I like OpenSCAD for what it is good for: limited, geometrically simple parts and geometry demos.
I think CadQuery/Build123D are fine tools with much better abstractions than OpenSCAD. The latter is not, IMO, really a CAD tool at all; at no point does the Computer Aid the Design, in the CAD sense, whereas you can argue that the various OpenCascade code-CAD environments can at least expose generated geometry to code.
But the post is right: parametric GUI CAD is pretty much a visual analogue of functional programming. Once you get your head around the ways sketches or their equivalents can map onto existing geometry, a lot of the ways programmers think are very applicable to CAD.
You're basically working with a directed graph, which means you can do things like drive designs from parameter sets, or spreadsheets, and e.g. in FreeCA drive some variables from configuration tables (rows in a spreadsheet with different parameter sets) so you can make variations of objects.
As much as I think code-CAD has uses, especially perhaps for analysing and post-processing STEP files for download customisers, at this point someone with parametric CAD requirements should at least try a GUI CAD package like FreeCAD or any of the free/low-cost tiers of the commercial packages. FreeCAD can do OpenSCAD, and has a (verbose) Python layer, so it's accessible to code CAD.
The tools may initially be a little frustrating for programmers used to writing code, athough IMO less frustrating than the many quirks and significant limitations of OpenSCAD. But CAD methodology is logical and scaleable, and with a little learning you will be able to do things much more quickly and much less repetitively than OpenSCAD, which admittedly is a counterintuitive claim to a programmer.
I think programmers tend to think that GUI CAD must be to code-CAD what visual programming tools are to text IDEs: unnecessary fuss keeping you from the truth. But it's really not like that.
OpenSCAD is almost akin to writing assembly. So many things you would expect like in a higher-level language (FreeCAD, Fusion) are missing (like fillets and things like that). You onle have primitives and primitive operations to work with.
For example, you cannot write a routine that says "get me the edges of this object generated by this other routine, and apply a 1mm fillet to them all". Because while the code manipulates geometry, the result is not geometry. The result is a 3D approximated picture of the geometry rendered in another form of geometry.
To do anything like operate on result vertexes or edges you have to replicate the result geometry, by hand, in data structures in the code.
So it is not just fillets as an operation that are missing. It is any notion of being able to access the edges that you would wish to fillet.
This is why I think OpenSCAD does not "aid design" in the CAD sense. It does nothing but compile your wishes into a mesh. The most basic notion of "aiding design" ought to be exposing the result geometry of one operation so it can be used as the variable input for another.
Is it good for quickly understanding basic geometry or displaying the results of formulae? Yeah. Undeniably so.
I think CadQuery/Build123D are fine tools with much better abstractions than OpenSCAD. The latter is not, IMO, really a CAD tool at all; at no point does the Computer Aid the Design, in the CAD sense, whereas you can argue that the various OpenCascade code-CAD environments can at least expose generated geometry to code.
But the post is right: parametric GUI CAD is pretty much a visual analogue of functional programming. Once you get your head around the ways sketches or their equivalents can map onto existing geometry, a lot of the ways programmers think are very applicable to CAD.
You're basically working with a directed graph, which means you can do things like drive designs from parameter sets, or spreadsheets, and e.g. in FreeCA drive some variables from configuration tables (rows in a spreadsheet with different parameter sets) so you can make variations of objects.
As much as I think code-CAD has uses, especially perhaps for analysing and post-processing STEP files for download customisers, at this point someone with parametric CAD requirements should at least try a GUI CAD package like FreeCAD or any of the free/low-cost tiers of the commercial packages. FreeCAD can do OpenSCAD, and has a (verbose) Python layer, so it's accessible to code CAD.
The tools may initially be a little frustrating for programmers used to writing code, athough IMO less frustrating than the many quirks and significant limitations of OpenSCAD. But CAD methodology is logical and scaleable, and with a little learning you will be able to do things much more quickly and much less repetitively than OpenSCAD, which admittedly is a counterintuitive claim to a programmer.
I think programmers tend to think that GUI CAD must be to code-CAD what visual programming tools are to text IDEs: unnecessary fuss keeping you from the truth. But it's really not like that.