Gear in build123d: https://github.com/GarryBGoode/gggears
Gear in build123d: https://github.com/GarryBGoode/gggears
Does anyone have idea about the STEP export support status for KCL/µcad? To me it looks like KCL cannot, and I cannot find information on it about µcad. The one tool I'm familiar within this space is OpenSCAD and it cannot. While FreeCAD is able to (sometimes?) convert from STL to STEP, it seems actually working with such models in FreeCAD is quite compute-inefficient.
If you import, sew, check geometry, refine, etc., you can eliminate unnecessary triangles in planar faces. But you can't magically make a 120-sided-polygon that should be a circle a circle; you're going to have to do that yourself.
Though Mark Ganson's MeshRemodel workbench looks interesting: https://github.com/mwganson/MeshRemodel
And FreeCAD is not the best tool for correcting broken meshes, which are commonplace. MeshLab and the vaguely-on-life-support AutoCAD MeshMixer are better at it.
STEP/IGES is as you say more or less essential if you want to work with code-CAD output in any other serious context. STL is not enough: it is like converting to JPEG in the middle of a photo editing flow, not at the end. It destroys information — in this case geometry.
You might find DeclaraCAD interesting.
Obj is a bit better but for real design modification you kinda need the original file and the program it was designed in. At least in my experience.
I've never come across STEP though, is that a real design parameter preserving file format?
So in our image processing analogy, it is still in a sense a "flattened" representation of the layers, but it's a vector format. The best way to think of it is broadly like a 3D SVG, I guess.
https://en.wikipedia.org/wiki/ISO_10303-21
3D printer slicers (except maybe Cura without a paid add-on) can usually load STEP now, but they are still internally meshing before slicing. I think Orca/Bambu/PrusaSlicer all give you some control over that meshing (they all use OpenCascade to do it, in fact).
In FreeCAD you can do things like defeaturing, so if you have a hole in a rounded plate, you can delete the hole, you can delete corner-rounding. You can also break STEP files down to faces and use the surface/curves tool to work on them, or use them as a BaseFeature for a Part Design Body, etc.
This is a pretty useful video for showing the differences:
For FreeCAD specifically, there looks to be an OpenSCAD import process directly. I don't have experience with how it works, but that may be better than going through STL
But I also quite quickly found examples that don't work. I don't know if that's the import not being very good, me finding weird examples, needing to install more libraries, or PEBKAC.