I also do not understand how 3d printing is involved in this thread, could someone explain? What 3d printing people are doing with pcbs? I think I have heard that stencils can be 3d printed, but not sure…(?)
Didn’t I explain? Mechanical prototyping (for example for designing a chassis or designing ergonomics). But I may have misunderstood the original post. I thought it refers to the empty space between the board and a SMD component which you can see in my screenshot. Here is another screenshot, taken from FreeCAD which has opened a STEP model exported from KiCad:
But StepUp import works better, it doesn’t leave that empty space.
this should be only a viewer issue…
I haven’t tested with the internal exporter, but the library has been designed to be on the pcb, not floating…
If you load the board and parts in FreeCAD using StepUp you can union all parts and it should result in a single watertight solid (unless you have TH parts which are detached because the terminals don’t touch the pads).
Then you can 3d print your object without issues.
As I said while you were writing, the STEP model exported from KiCad has the same problem.
I designed the kicad 3D library scripts exactly with this intent … and also that is why the 3D library is designed to have each part as a single unioned object.
Does anyone has any idea, is there some reason behind that empty gap in the KiCad 3D view/export? Maybe this should be reported as an issue?
And BTW, sorry for hijacking this thread for serious purposes.
I didn’t know or think about that, so my joke about loose components was misunderstood. Sorry. But this discussion is quite interesting, and maybe even usefull
Sorry, I still dont understad… What object to print do you keep in mind? I understand that cases can be 3d printed and I don’t get how realistic looking solder drops or micrometer gaps between pcb and 3d models can effect 3d printed device case? Talking about micrometers here…
Gap existance is already reported in gitlab (saw that 2021 summer)
Aaaargh, people are 3d printing models of boards itself, right? In order to prototype device cases?
Now I get it
The PCB with components. It would mimic the final board before manufacturing and soldering the real PCB, for mechanical testing purposes.
I really don’t know if the gaps can affect 3D printing. But I know the printers don’t basically print floating objects without any support, so it depends on the printing technology and software.
The libraries have been done to allow the unioning of the parts to be able to create a watertight model which is the base for a good 3D modeling and even to generate a non problematic STL file when converted.
Why Watertight?
Most 3D printing software requires watertightness in order to print correctly. A non-watertight model will generate a problematic STL file when converted.
The obvious meaning of watertightness is that the model should be a single, entirely closed volume that would hold water if filled. So no holes, no internal faces. But less intuitively, your model should also have all surfaces facing the same way.
https://danieltal.com/is-your-3d-print-model-watertight-part-1/
Maybe this is a thread to ask a question I’ve had for a while:
Due to mechanical stability I felt like I needed a 3D printed case that was an exact negative of the assembled PCB (all the room that is not a component on the board is filled with plastics). I expected to be able to import the design into FreeCAD, dilate all components a bit to have some clearance and subtract is from the “enclosure”. Unfortunately it was not that easy because the components are not a type of 3D model that can be dilated easily. I ended up redrawing all components (it was only SMD capacitors and QFN packages) as simple cuboids including clearance and regenerating the assembly with KicadStepUp using the manually drawn component models instead of the default ones.
Does anyone know an easier way to get something like a “3D Keepout model” of an assembly?
Yes, a much easier way… as follows:
If I understand correctly, you want to Scale-Up your PCB/Parts such that there’s a surrounding boundary. This is typically referred to as an Interface Control Definition (ICD) where the Keep-Out-Zone is defined and controlled in a Spec/Drawing.
Regardless of the paperwork/drawing/spec, the Geometry and 3D-Modeling is simple.
If this is what you want, you can do it by thinking of the Keep-Out-Zone as a Mold Cavity created from a scaled-up set of items.
Do it in FreeCad. You will need to:
- Scale-up your PCB/parts (using Draft workbench)
- Create a Solid Surrounding Base model (use PartDesign workbench)
- Boolean subtract the PCB/parts from the Base (use Part workbench)
- Slice open the Base at desired location… (use PartDesign workbench)
FYI - you can customize the Toolbars to make it more user-friendly versus back-and-forth workbench selecting…
For a Drawing of this, use TechDraw workbench…
Doing it is not going to be simple and clear until you’ve don’e it as FreeCad has some learning-curve to this type of thing. But, it takes only one minute to do it (after many minutes of learning)…
Sequence of Images may help - below. Perhaps I should have used a simpler model but, I grabbed a PCB, loaded it using StepUp plugin, then did as described, above.
Results: Showing original and scaled-up dim’s (scale used = 1.2)
TechDraw used for showing dim’s…
Hey BlackCoffee,
Thanks for the nice write up. My main problem was figuring out the dilation, and I think the proposed solution based on scaling has a problem: the position of parts changes. The further a part is from the origin, the further it is moved away from it. Additionally it does not add a fixed offset like 1mm but one that depends on the parts size (could make sense in some cases).
I’ll try figuring out next time I have a new revision (which will be when semiconductors are available again, so could take some time).
Thanks again for your help!
Unfortunately, there is No magic button for scaling only the outer shape and leaving all-else as is.
However, I showed how to do scaling, if you want, you can scale in only the ‘Z’ (height) direction. That will leave Pin-Pitch and all other X/Y dim’s as-is. Thus, enveloping it for a Height boundary…
EDIT: Added Info and Images
Image shows only the Height scaled
EDIT#2: Added This:
In the Above, You noticed the Wire-Lines and solid fills suggest the parts are scaled thus, all dimensions get scaled.
If you Don’t want Scaled (Dilated) parts/pcb and want Only Raised part (and/or PCB) Heights then, simply Raise them to the desired Boundary height.
Useful way to do it is by adjusting the ‘Placement’ dim’s. Naturally, probably want to do that on a ‘Copied PCB/Parts’ or added Step model of them. That way, everything is at correct dimensions but elevated to desired boundary height.
Note: I colored the Original Yellow and the Elevated is Green (only on one of them for example). Looking at the Wire-Lines, you’ll see they were all elevated, not scaled…
That should clarify it…
I don’t want to hijack the original thread…
Anyway what I think is needed for @qosch is the FreeCAD 3D offset
https://wiki.freecadweb.org/Part_Offset
It doesn’t work well with complex shapes, so it would be easier working with bounding box shapes and apply 3d offset on those.
It could be done using the StepUp bounding box option and a macro to process with 3D offset tool each object you need to enlarge.
For pcb it is possible to create a 2D offset and then extrude the contour
https://wiki.freecadweb.org/Part_Offset2D
This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.