What it does
CadQuery is an open-source Python library for parametric solid modelling. It uses the OpenCascade modelling kernel and exports CAD geometry or meshes, with graphical editors available as separate interfaces.
A small plate can be described through dimensions and operations:
import cadquery as cq
width, depth, thickness = 48, 28, 6
plate = cq.Workplane("XY").box(width, depth, thickness)
plate = plate.faces(">Z").workplane().hole(8)
plate.export("plate.step", unit="MM")
The box creates the stock, the face selection places the next workplane on top, and the hole operation cuts the opening. Changing the named dimensions changes the construction. The STEP export declares millimetres; CadQuery also provides separate model-unit and output-unit settings when another unit convention is needed.
Keep the Python script with the exported part. CadQuery's interchange formats do not preserve its full parametric history. STEP suits geometry exchange with another CAD application; STL, AMF and 3MF contain meshes. glTF/GLB export is restricted to assemblies, with the filename extension selecting text or binary output.
The library is free under Apache License 2.0. CQ-editor and Jupyter integrations supply optional interfaces. Redistribution of the library carries licence and notice requirements; using a graphical front end does not change the need to preserve the model script for later parameter edits.
Strengths
- Python parameters and modelling operations retain an editable construction.
- STEP and mesh formats serve different downstream geometry uses.
Watch out for
- Interchange exports do not retain CadQuery's full parametric construction.
- glTF export is available only for assemblies.
Best for
- Programmers creating families of dimensioned parts
- Parametric CAD generation within Python workflows
Sources
- CadQuery | Introduction and Parametric Examples (Oct 28, 2026)
- CadQuery | Importing and Exporting Files (Oct 28, 2026)
- CadQuery Repository | Apache License2.0 (Oct 28, 2026)
