3 ms·
I am a passionate OpenSCAD user and prefer it for many things, but there are several reasons I tend to work in FreeCAD sometimes, and recommend it to people: -
by Kliment 6y ago
I am a passionate OpenSCAD user and prefer it for many things, but there are several reasons I tend to work in FreeCAD sometimes, and recommend it to people:
- Way more functionality
- STEP support
- Constraint solver
Also it's much more point-and-clicky, in the same way Fusion is, so it's much less confusing for a Fusion user to transition to FreeCAD rather than OpenSCAD. That said, OpenSCAD is phenomenally powerful, it just requires you to think in a particular way. I happen to enjoy thinking that way and most of what I make ends up being OpenSCAD. I mostly use OpenSCAD to design parts, and FreeCAD to design assemblies and integrate parts into existing things.
If you're looking for an intermediate thing, check out cadquery, which uses the same geometry engine as FreeCAD but has a very OpenSCAD-like feel and language to it.
- mrfusion 6y agoThanks for the write up! I too think like openscad. But wow cadquery looks like quite an improvement and I’d prefer to work in python anyway. Any warnings before I invest time learning it? (Btw what’s the best way to edit an existing stl? I want to cut out the middle of a piece and pull the two halves together.)
- Kliment 6y agoCadquery is a massive pain to install. Most users use conda to get all the dependencies going which is a horrible monstrosity. That's my biggest warning. Openscad is the best for working with existing STLs. Say you have a centered 30x10x10 mm part and you want to remove the central 10mm. My strategy could be: 1. import the part, translate it by 5mm in positive x direction, and subtract from it a centered cube larger than the part that is moved in positive x direction so that it ends at x=0: difference(){ translate([5,0,0])import("file.stl"); translate([16,0,0])cube([32,12,12],center=true); } 2. import the part again, translate it by 5mm in negative x direction, and subtract from it a centered cube larger than the part that is moved in negative x direction so that it ends at x=0. Because this is so similar, you can reuse the code: for(dir=[-1,1])difference(){ translate([dir*5,0,0])import("file.stl"); translate([dir*16,0,0])cube([32,12,12],center=true); } 3. Make a watertight join between the two - you want to make sure the two shapes overlap a tiny bit. So we change the cut cube to be out of the origin line by 0.05mm: for(dir=[-1,1])difference(){ translate([dir*5,0,0])import("file.stl"); translate([dir*(16-0.05),0,0])cube([32,12,12],center=true); } protip: prefix a negative shape with # to see it in the preview - like in the above replace cube with #cube
- mrfusion 6y agoThanks for the advice! That’s good to know I can edit stl’s right in openscad.
- rurban 6y agoYou can have a GPL interactive visual editing parametric constraint solver system also: SolveSpace. Just do it with the mouse. As in Blender