Documentation | Cheatsheet | GitHub Discussions | Google Group | GUI Editor
CadQuery is an intuitive, easy-to-use Python module for building parametric 3D CAD models. Using CadQuery, you can write short, simple scripts that produce high quality CAD models. It is easy to make many different objects using a single script that can be customized.
CadQuery was built to be used as a Python library without any GUI. This makes it great for use cases such as integration into servers, or creating scientific and engineering scripts. However, it includes internal visualization capabilities. Additionally, other options for visualization are also available including CQ-Editor and JupyterLab.
For those who are interested, the OCP repository contains the current OCCT wrapper used by CQ.
- Build 3D models with scripts that are as close as possible to how you would describe the object to a human.
- Create parametric models that can be very easily customized by end users.
- Output high quality (loss-less) CAD formats like STEP and DXF in addition to STL, VRML, AMF and 3MF.
- Provide a non-proprietary, plain text model format that can be edited and executed with only a web browser.
- Offer advanced modeling capabilities such as fillets, curvilinear extrudes, parametric curves and lofts.
- Build nested assemblies out of individual parts and other assemblies.
To learn more about designing with CadQuery, visit the documentation, examples, and cheatsheet.
To quickly get started you can use apptainer
apptainer run oras://ghcr.io/cadquery/cadquery-apptainer:master ipython -i -c"from cadquery.func import *; from cadquery.vis import show; show(box(1,1,1))"
or docker/podman.
podman run -i -v /tmp:/tmp -e DISPLAY=$DISPLAY --userns=keep-id --user "$(id -u):$(id -g)" --device /dev/dri -t ghcr.io/cadquery/cadquery-docker:master ipython -i -c"from cadquery.func import *; from cadquery.vis import show; show(box(1,1,1))"
The CadQuery library (with or without CQ-editor) and its dependencies may be installed using conda/mamba/micromamba/pixi, or pip. Note that conda-based installation (or the CQ-editor installer) is the better supported option.