build123d
Modern, Pythonic B-rep modelling, run through uv.
Kind: Code CAD · Document: model.py · Install: brew install uv · winget install astral-sh.uv · Override: CXDDIE_UV
Works exactly like CadQuery: model.py is run with uv run, the first session downloads build123d, and run_code replaces and re-runs the script.
The geometry is whatever is passed to show_object(...), else a variable named result, else the last build123d shape assigned at top level. Units are millimetres, Z up. export supports STEP, STL, OBJ and GLB.
from build123d import *
box = Box(40, 20, 10)
result = fillet(box.edges().filter_by(Axis.Z), radius=2)
result -= Cylinder(2.5, 10)