| > 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. https://cadquery.readthedocs.io/en/latest/assy.html
https://cadquery.readthedocs.io/en/latest/sketch.html#constr... 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. |