Hacker News new | ask | show | jobs
by 15155 744 days ago
The advantage of OpenSCAD and CadQuery is that history is in your undo buffer or source control, not some impossible-to-consistently-manipulate stack.

All "features" (in the physical sense) are exposed to you - no hiding, no magically forgetting a single fillet somewhere.

Oneshot rendering is a huge advantage.

4 comments

It's definitely flatter. But I feel that the modelling techniques you need for successfully using these tools are no less rigorous than the design techniques you need to make 3D CAD work. They are just different.

I grappled with this idea of the stack/tree hiding complexity in FreeCAD but I've come to understand that once you get more confident thinking about design, it is more or less obvious where a given driving constraint should be derived from.

FreeCAD's expressions are no more complex than CadQuery paths, and they are certainly more expressive than OpenSCAD variables.

I would never diss the sheer coder-accessibility of OpenSCAD, which helped change my brain for the better, but GUI CAD models real-world thinking in often a very accessible way.

Just to play devil's advocate to my own point, there's really no reason you couldn't do source control for regular CAD programs is there? I know Git doesn't play super well with binaries from a space efficiency perspective, but it does work, and you could use something like Mercurial which does play ok with binaries I believe.
You could, KiCad does this (uses a text-based LISP-like format): it's not at all human-creatable and results in huge output.

The difference is that OpenSCAD/CadQuery are dense logic formats (code) rather than just serialization formats.

Large amounts of human intent are encoded in the order of evaluation, function calls, etc.

Mm. It strikes me that it might be more difficult to visualise changes.

e.g. in FreeCAD land:

FreeCAD uses a "zip-and-manifest" file format so there are ways to unpack that and manage it in git, but one of the challenges is getting useful human-readable diffs.

One offering is WebTools Git:

https://wiki.freecad.org/WebTools_Git

This versions the binary file but there are useful tips about using a FreeCAD utility to get a text diff using fcinfo.

On unpacking and re-packing the FCStd zip file:

https://blog.lambda.cx/posts/freecad-and-git/

Not sure what Ondsel is doing for its online engineering suite, which does have version history.

For those features which match up positionally with parameters --- often I have to brush up on my trigonometry to work out a calculation which will provide the position of features which do not.
Right -- my trig is weak. Joan Horvath's "Make: Trigonometry", which teaches with OpenSCAD, is on my reading list [0]

bRep environments liberate you from trig to some extent because you can build on arbitrary faces and edges, so you'd get some of those parametric, auto-updating benefits with Build123D or CadQuery.

FreeCAD's sketcher tool means I've only resorted to trig a few times.

[0] https://www.makershed.com/products/make-trigonometry-print

I have that and the other two books in the series in my list:

https://www.goodreads.com/review/list/21394355-william-adams...

Yes -- me too!

Such a neat idea.

What do you mean by a stack? Fusion360 for example doesn't use a stack, you can insert & delete operations in your history, not just push & pop off the end.