用Python做3D建模:CadQuery
·
文章目录
CadQuery安装
CadQuery是Python的一款CAD开发库,有了这个,可以直接用Python代码来开发3D模型。可用conda来安装,由于依赖较多,建议新建一个环境
conda create -n cad
conda activate cad
conda install -c conda-forge cadquery
安装完成后,可以做一个简单的示例
import cadquery as cq
from cadquery.vis import show
result = cq.Workplane("XY" ).box(3, 3, 0.5).edges("|Z").fillet(0.125)
show(result)
两行代码,第一行创建模型,第二行对模型进行可视化

CQ-editor
CQ-editor是基于QT的CadQuery用户图形界面。这是个绿色软件,无需安装,双击直接启动。界面如下

如图可知,CQ-editor 主要分为几大核心区域,例如代码编辑区、3D 视图区、对象树 以及控制台等。
在左侧的代码窗口中,和上面的纯python代码相比,多了一行绘图show_object,但实测就算没有这个,中间窗格仍会显示3D图形。
初步示例
CadQuery给出的第一个示例如下

绘制代码为
height = 60.0
width = 80.0
thickness = 10.0
diameter = 22.0
padding = 12.0
result = (
cq.Workplane("XY")
.box(height, width, thickness)
.faces(">Z")
.workplane()
.hole(diameter)
.faces(">Z")
.workplane()
.rect(height - padding, width - padding, forConstruction=True)
.vertices()
.cboreHole(2.4, 4.4, 2.1)
)
show(result)
其工作流程为
- 先指定工作平面为XY,并在XY平面上绘制 60 × 80 × 10 60\times80\times10 60×80×10的立方体。
- 选定Z坐标最大的面(即刚刚创建立方体的顶面)为新的工作平面,并打一个直径为 22 22 22的洞。
- 选定Z坐标最大的面,绘制一个辅助矩形,并选中该矩形的顶点,向下钻4个沉头孔。
代码中,box, hole, rect, cboreHole都是几何体,分别为长方体、圆孔、矩形、沉头孔,其中cbore 是 Counterbore 的缩写。
【Workplane】用于指定工作平面,在CadQuery中,每次操作,均需在指定的工作平面上。
【faces】用于切换工作平面, > Z >Z >Z是一种选择器,表示Z坐标最大的面。类似的还有 < Z <Z <Z表示底面, > X >X >X表示右侧面等。
【forConstruction】是辅助线标记,选为True后,创建的rect不会生成任何实体材料。
模型导出
CadQuery支持多种模型的导出,常用导出格式包括
| 格式 | 扩展名 | 核心特点 | 最佳用途 |
|---|---|---|---|
| STEP | .step / .stp | 保留精确的 B-Rep (边界表示) 数学曲面。文件体积小,包含完整的拓扑信息。 | ✅ 首选。CNC 加工、导入 SolidWorks/Fusion 360 等其他 CAD 软件、精确测量。 |
| STL | .stl | 将模型转换为三角网格 (Mesh)。丢失精确曲面信息,圆角会变成多边形面片。 | ✅ 3D 打印 (FDM/SLA)。需手动设置公差以保证圆角平滑。 |
| DXF | .dxf | 2D 矢量轮廓格式。 | ✅ 激光切割、水刀切割、CNC 2D 铣削。 |
| 3MF / AMF | .3mf / .amf | 现代 3D 打印格式,支持颜色和多部件信息(CadQuery 支持基础导出)。 | 高级 3D 打印(需保留颜色或装配关系时)。 |
其导出代码为
cq.exporters.export(result, "my_part.step")
更多推荐


所有评论(0)