Comment by ejp
5 days ago
OpenSCAD is great for functional parts, built of basic components. It can start to be good for moderate complexity components with the BOSL library (I use BOSL2) including chamfers/fillets where needed. And the parametric/customization aspect is second to none - IF it's built with that in mind.
Where it really falls down is when you need to somehow get data OUT of the model to feed to other shapes. I would love to be able to specify a chamfer or fillet along a contact edge of two other shapes, but unless you know the exact contact shape, location, and size a priori you will have a tough time getting anything to line up. If you want to use a mesh or model as a negative, every model's zero coordinate needs to be just right or it will just be entirely misaligned.
I've also tried to spend some time performance optimizing for render/output. It is not cooperative at all. It will just soak CPU time for a minute at a time for not even a complex shape! As pseudosudoer said, it really goes off the rails.
But for functional connectors, adapters, and replicating parts, it's great to be able to leverage my software skills in 3D modeling!
>I would love to be able to specify a chamfer or fillet along a contact edge of two other shapes
Yes, this is how the big cad programs work, they are 'constraint based'. You pick points and lines from other features (or other parts) and add whatever new geometry you want, and a solver fills in the rest. Features build off each other in this way. In OpenSCAD, you are the solver. But, the big programs have a ton of buttons, and scripting, while there, is usually hidden.
It's kind of like the difference between <insert image library> and Photoshop. Photoshop has a ton of useful tools inside, but if all you want to do is crop the bottom 30px from 2000 images, it's better to have a script do that. The scripts can technically do everything that Photoshop can do, but for other things it's easier just to click a few buttons and be done than reinvent the wheel from the ground up each time.
> I've also tried to spend some time performance optimizing for render/output. It is not cooperative at all.
Have you started using a recent nightly build with the Manifold backend and not the "stable" (aka obsolete) release?
I have not! I will give that a shot, and hope that it will maintain compatibility with BOSL2 (also beta).
BOSL2 devs use more recent snapshots, so it definitely does.