The problem with most CAD tools is they don't represent "design intent" or high-level components well, and I believe this is mostly due to the language's not being sophisticated enough
e.g. a human says "these holes need to be separated by 2mm", but when we program in OpenSCAD and other CAD languages we usually specify x={-1} for one component and x={1} for the other (just an example of how design intent is being lost)
When we can represent design intent well, we'll have something that LLMs can really grab hold of and build higher level components
> e.g. a human says "these holes need to be separated by 2mm", but when we program in OpenSCAD and other CAD languages we usually specify x={-1} for one component and x={1} for the other (just an example of how design intent is being lost)
What you mean there is constraints, I suppose?
And yes -- there's some work to add constraints to CadQuery sketches/cqparts, but it's early.
I suppose the logic has always been that if you control the placement of parts in code, you can build your own quasi-constraint logic to make reactive, parametric designs. And you might argue that "having complete control over this in code" is its own kind of "design intent" with its own potential justifications.
Specifying constraints in the way the CadQuery development does may not be natural.
But both CadQuery and Build123D have kernel-based tools like face finders, vertex finders etc., that are capable of things that OpenSCAD definitionally cannot do at kernel level.
Replicad (a JS OpenCascade environment) has face and vertex finders, face-based sketching, etc.
e.g. a human says "these holes need to be separated by 2mm", but when we program in OpenSCAD and other CAD languages we usually specify x={-1} for one component and x={1} for the other (just an example of how design intent is being lost)
When we can represent design intent well, we'll have something that LLMs can really grab hold of and build higher level components