I'm getting oriented with CadQuery via the time-honored process of Reading The Fine Manual. After getting an overview of general concepts, I continued onward to an overview of CadQuery's 2D sketch process. This concept is fairly limited in OpenSCAD to simpler geometry primitives. If I wanted to do something more complex, my takeaway was "do it somewhere else" then bring it into OpenSCAD via SVG or DXF imports. I'm glad to see CadQuery has more sophistication in this area, hopefully suffice for my future projects.

Similar to OpenSCAD, I can sketch in CadQuery by specifying simple 2D primitives. They can be combined using various modes. Fuse adds new shape to an existing one, and I assume it was indeed called "add" at some point by its mode specification character "a". Similar cut mode probably started as "subtract" given it is "s". At least intersection mode is still "i". Finally there is mode "c" which is not cut but construction used to guide future operations.

Examples throughout this guide lets me walk through operations by typing them in step by step in CQ-editor. They illustrate the commands under discussion but they also used a few commands that went unexplained probably because they're not core to 2D sketch concepts. I saw multiple calls to reset() and an explanation "Note that selectors are implemented, but selection has to be explicitly reset" but I don't fully understand what that means yet. Nor do I yet understand the role of clean() which removes some visual clutter but I don't fully understand what it means from a geometry standpoint. Are these operations strictly optional tidying up that I can choose to skip for performance? Or are there times when they are critically important? Or possibly, are there times when I explicit should not call them? Things to learn for the future.

The biggest attraction in this section was constraint-based sketches, a feature I failed to find in any other code CAD platforms I investigated. While I'm very hopeful this will prove useful capturing design intent in my CadQuery projects, I'm aware of the fact it is still an incomplete experimental feature with a small set of constraints. The final proof will be in the using but I think it'll be fine. In the worst case I get frustrated and end up not using it, which leaves me no worse off than where I am now. I have a similar attitude going into CadQuery assemblies.