Hacker News new | ask | show | jobs
by sysrpl 1704 days ago
I've worked a bit in OpenSCAD, and although I really enjoy the programming approach to generating 3D designs, it really is limited when compared to traditional CAD software. Being able to visually align an item, or use even basic commands like offset or fillet, are absent in OpenSCAD. Sure OpenSCAD has it's place, but I think that's in the area of procedural generated shapes, and it's not for 3D part or machine design.

For reference here are some of the items I designed using OpenSCAD:

https://cache.getlazarus.org/images/projects/101/case-and-st...

https://cache.codebot.org/prints/soldering-station.jpg

https://cache.getlazarus.org/images/desktop/soldering-kit-mo...

https://cache.codebot.org/prints/power-supply.jpg

https://cache.getlazarus.org/images/projects/102/control-box...

2 comments

Try out fogleman/sdf[1]. It is like OpenSCAD in many ways but the distance field model gives you offsets and fillets more easily.

[1] https://github.com/fogleman/sdf

SDFs don't really work for CAD. You cannot even apply an anisotropic scale without making the distance field non-euclidian, which will render the effect of subsequent operations unintuitive. Extrusion along a path is impractical if not impossible in the general case.
As a successful power user making physical objects, I'm wondering how you work without dimensioned drawings?

If you want to learn the distance between two arbitrary points on a part, you need to read the code, and sometimes even do some trig even if you wrote the code. Having markings on the axes is not the same thing: you really want to select two points on a drawing and say "show me this".

This is my biggest wish for OpenSCAD.

> This is my biggest wish for OpenSCAD.

Even better would be a procedural way to "measure" things on models returned by code.

e.g. a method that would return a sorted list of intersection points between a 3D line and a model.

This would be a killer feature for OpenSCAD.

This is all the more sad that the underlying engine (CGAL) does support this feature.