In this article we introduce a beginner’s series on CadQuery. You’ll learn a bit more about programatic CAD, the options currently available in the open source space, and get acquainted with CadQuery.
Why Programatic CAD?
Programatic CAD software provides an exciting alternative approach to the traditional 3D design/modeling software most commonly used on the market. By providing a descriptive language for describing the geometry of a part, Programatic CAD solutions give users an unprescedents amount of flexibility. Most notably, this approach permits parametric models, which allow designers to specify variables which dictate the geometry (for example the length/width/height/diameter/thickness, etc) of a feature making them easily editable at a later time. It also allows for components to be reused easily, permits inheritance, enables iterative design, and facilitates change tracking and versioning.
Because designs are easily shared, tweaked, and modified, Programatic CAD designs are extremely compelling for open source projects. One of the most popular Open Source Programatic CAD packages, OpenSCAD, has enabled the open source community and ethos to thrive in the 3D printing space, for example. Thousands of parametric OpenSCAD designs can be found on platforms (like Thingiverse, Printables, etc), and some even have built in “Customizer” tools which allow users to tweak a deisgn’s parameters and download an STL for 3D printing.
Programatic CAD Tools:
There are many options available for newcomers to Programatic CAD, and if you’re like myself this might be a bit overwhelming at first. OpenSCAD may be the first solution that you come across, and while widely used (thus ensuring it a has a good number of tutorials and other community support available) there are lots of things to dislike about this solution. I am far from qualified to explore them all, and online discussion of purported flaws tends to spawn some pretty vigorous debate (see the comments section here for an example). I’m far from an authority on the subject, but for me: OpenSCAD is slow to render (namely as designs increase in complexity, rendering time shoots through the roof), the syntax is clunky and not particularly expressive, it’s missing core features (things as simple as fillets and chamfers), it runs on a CSG rather than BREP modeling system, etc.
The focus of this article isn’t disparaging OpenSCAD, however. Instead, I want to introduce you to CadQuery, a promising new option which I hope can one day overtake OpenSCAD as the superstar of Programatic CAD software.
So, why should you give CadQuery a go for your next CAD project? I cannot say it any better than the CadQuery creators have themselves:
CadQuery is an intuitive, easy-to-use Python library for building parametric 3D CAD models. It has several goals:
– Build models with scripts that are as close as possible to how you’d describe the object to a human, using a standard, already established programming language
– Create parametric models that can be very easily customized by end users
– Output high quality CAD formats like STEP and AMF in addition to traditional STL
I’m far from a CadQuery guru, having only used the software for a few weeks, however my experience so far has been really enjoyable. The CadQuery syntax provides a much more fluids means of expressing my ideas into parametric designs than any other solution I’ve tried (especially OpenSCAD). That said, there’s definitely a pretty big learning curve. It’s for this reason that I’ve created this series of articles: to help new users get started while avoiding some of the pitfalls I personally encountered on my CadQuery journey. Click below to get started!