After learning basics of 2D sketching in CadQuery, I continued on to an overview of how CadQuery assembles multiple parts into assemblies. Many open-source CAD software focus only on making individual parts, providing no way to relate parts to each other. FreeCAD has the opposite problem: too many ways. Multiple competing FreeCAD assembly workbenches exist, leaving a beginner user confused. As of this writing, CadQuery has one and only one way to build assemblies, and I see that as an advantage over other alternatives.

The overview page starts with an example that was thin on explanation, fortunately it was there to set the stage for information that followed. Including a constraint solver that finds a way to mate parts together while satisfying all the specified constraints. It looks good on the surface but with three questions to be determined in the future:

  • I will need some first hand experience before I understand constraint specification syntax, at first glance they are quite opaque but I expected that.
  • During said first hand experience I'm sure I will run into errors. It remains to be seen how well I could understand those errors to find and fix their root cause. This is where FreeCAD failed me and I hope I have a better experience in CadQuery.
  • And finally, I don't know computational performance of CadQuery constraint solver. The longer it takes between iterations, the more frustrating debugging will be.

We can assign different colors to each part in order to visually distinguish parts in an assembly. This is great, but I was surprised to see a complete color reference chart taking up a quarter of this document. It seems like a very large amount of space to convey relatively little information. I see my favorite HTML test color here: "aliceblue" and wonder if these are identical to HTML named colors. if so, there's even less need to duplicate that full color chart in CadQuery documentation. But I guess it doesn't hurt anybody by being here, so I shrug and move on.