告别反复重画:Python参数化CAD框架CadQuery快速入门指南
2026/8/21 3:22:39 网站建设 项目流程

告别反复重画:Python参数化CAD框架CadQuery快速入门指南

【免费下载链接】cadqueryA python parametric CAD scripting framework based on OCCT项目地址: https://gitcode.com/gh_mirrors/ca/cadquery

CadQuery是一个用Python编写、基于OCCT几何内核的参数化CAD框架,它把三维建模从"拖拽鼠标"变成了"编写代码",让每一个模型都能被精确复现、随时调整。

深夜十一点,你收到客户消息:"尺寸再改一版,板厚从8毫米改成6毫米。"你打开建模软件,找到那个画了两小时的零件,删掉重画,检查约束,重新出图——直到凌晨。第二天又收到:"改成7.5吧。"🤯

如果你也经历过这种"改一个数字就要重做一遍"的循环,那么下面要介绍的这个开源工具,可能正是你要找的答案。

从加班故事说起:为什么"画图"应该变成"写程序"

传统CAD软件的痛点在于:模型和它的设计逻辑是分离的。你看到的是一个结果,却记不住"这个圆孔为什么在离边缘17毫米的位置"。

而参数化CAD的思路完全不同:模型本身就是一段可执行的程序。尺寸不再是孤立的数值,而是代码里一个可以被反复修改的变量。改一个参数,程序重新运行,模型自动重生。

CadQuery正是这样一个Python参数化CAD脚本框架。它不靠鼠标拖拽,而是用一行行Python代码描述"我想要的形状"。好处显而易见:

  • 可复现:同一段代码在任何电脑上跑出来,都是同一个零件
  • 可版本控制:模型是文本,放进Git就能回溯每一次设计变更
  • 可自动化:写个循环,一次生成几十种不同尺寸的变体

认识CadQuery:模型是如何被"计算"出来的

要理解CadQuery,先记住它的两大支柱。

第一根支柱是OCCT几何内核。OCCT(OpenCascade Technology)是工业界久经考验的几何计算引擎,负责处理布尔运算、倒角、曲面拟合这些"硬核数学"。CadQuery把它包装成好用的Python接口——你不需要懂底层算法,只要知道"这里应该打个孔"就行。

第二根支柱是Workplane(工作平面)。可以把它想象成一块"虚拟工作台"。你在这块台面上画草图、拉伸成实体,再换一块台面继续操作,就像在车间里逐道工序加工零件。整个建模过程在代码中体现为一条连贯的"操作链",每一步都基于上一步的结果。

核心的Workplane实现位于cadquery/cq.py,几何实体相关逻辑在cadquery/occ_impl/shapes.py,想深挖底层可以从这两个文件入手。

三步完成CadQuery安装并跑通第一个零件

安装非常简单,你熟悉的Python包管理器就能搞定:

pip install cadquery

习惯用conda的话也可以:

conda install -c conda-forge cadquery

装好后,让我们用不到十行代码创建第一个零件——一块带中心孔的板子:

import cadquery as cq result = ( cq.Workplane("XY") # 在XY平面上开工 .box(40, 20, 10) # 画一个40×20×10的长方体 .faces(">Z") # 选中顶面 .workplane() # 在顶面上新建工作平面 .hole(6) # 打一个直径6的孔 )

执行这段代码,一个实体模型就诞生了。

注意看代码的"口语化"程度:faces(">Z")表示"选中朝Z方向的面",hole(6)就是"打个6毫米的孔"。即使没有CAD基础,你也能大致读懂每一步在干什么。

从方块到零件:四种建模能力一次讲清

等你熟悉了基础操作,CadQuery会陆续放出它的"大招"。我们按难易程度把它们分成四档:

第一档:基础特征——拉伸、旋转、扫掠、放样。这是机械零件最常用的组合拳。画一个草图,extrude拉伸成实体;或者让截面绕轴线revolve旋转,生成轴类零件;沿曲线sweep扫掠出管道;用多个截面loft放样出渐变体。官方示例examples/Ex018_Making_Lofts.pyexamples/Ex023_Sweep.py是很好的入门教材。

第二档:特征操作——倒角、圆角、抽壳、阵列。一个零件好不好看、能不能加工,往往取决于这些细节。fillet圆角、chamfer倒角、shell抽壳(把实体掏成薄壁)、rarray矩形阵列——几行代码就能完成手工软件里繁琐的重复操作。

第三档:选择器——精确操控每一个面、边和点。这是CadQuery的"鼠标"替代品。cadquery/selectors.py里提供了丰富的选取规则,比如选中"最大的面"、选中"最靠近某个点的边"。配合tag给几何打标签,即使模型改动后拓扑变了,你的代码依然能准确找到目标。

第四档:自由曲面——用控制点驾驭复杂造型。借助NURBS曲线与曲面工具(见cadquery/occ_impl/nurbs.py),你可以通过控制点来塑造复杂的曲面和曲线,做工业设计、产品造型时特别有用。

从单件到整机:装配体也能用代码约束

单个零件只是开始。真实项目里,一个机构往往由十几个零件配合而成。CadQuery提供了Assembly装配模型,你可以在代码里把零件"装"在一起,并用约束关系描述它们之间的配合——轴对孔、面对齐、固定距离等等,最后solve()求解出每个零件的正确位置。相关代码在cadquery/assembly.py

这意味着什么?当某个零件的尺寸改变时,整个装配体会自动重新配合,不需要你手动调整每一个相邻零件。设计师最头痛的"牵一发动全身",在这里变成了程序自动完成的事。

把参数化CAD模型送进现实:导出、打印与可视化

模型建好了,最终要落地。CadQuery支持丰富的导出格式,涵盖设计、制造、展示全流程:

  • 设计交换:STEP、BREP,可与主流CAD软件互通
  • 3D打印:STL、AMF、3MF
  • 二维图纸:DXF、SVG(用于激光切割或工程出图)
  • 可视化/渲染:VTK、GLTF、VRML

这些能力都集中在cadquery/occ_impl/exporters/目录下。从模型到实物,CadQuery为每一步都留好了接口——有社区用户就曾用它生成模型,直接驱动CNC雕刻机加工出木制零件。

在可视化方面,cadquery/vis.pyshow()函数可以弹出3D窗口;在Jupyter Notebook里模型能内嵌显示;cadquery/cqgi.py还能把脚本包装成带参数面板的服务——让不懂代码的人也能通过滑块调整参数、实时预览模型。

设计迭代与自动化:让参数成为你的"旋钮"

到这里,你一定发现了CadQuery最迷人的地方:参数就是你的旋钮

把尺寸、数量、角度统统写成变量,你就得到了一个"模型生成器"。批量出图时,写个循环遍历一组参数,几十个规格的零件一次生成;做结构优化时,让程序自动计算不同参数组合下的体积、重心、质量;跟团队协作时,设计意图完整保留在代码里,任何人接手都能看懂"当初为什么这么设计"。

想更进一步,还可以把模型接入CI/CD流程:每次修改代码自动重建模型、跑几何检查、导出工程文件。这正是脚本化CAD相比传统软件的核心优势——它让设计本身变成了可以测试、可以部署的工程资产

现在就动手:给新手的四步行动清单

与其继续想象,不如花半小时亲自体验:

  1. 安装:执行pip install cadquery,一行命令搞定
  2. 跑通示例:浏览examples/目录下的官方示例脚本,从Ex001_Simple_Block.py开始,按编号顺序逐个运行
  3. 改改参数:把示例里的数字改小改大,感受模型随参数变化的奇妙
  4. 提交代码:把自己写的第一个参数化零件放进Git仓库,从此你的设计有了"后悔药"

想深入源码研究的话,可以用git clone https://gitcode.com/gh_mirrors/ca/cadquery把整个项目拉到本地,结合doc/目录下的文档逐行阅读。

也许你会觉得"写代码建模"有门槛,但请相信:当你第一次通过修改一个变量、让整个装配体重生时,那种"掌控设计逻辑"的快感,是鼠标拖拽永远给不了的。现在就装好CadQuery,让三维设计从此可计算、可复现、可传承。🚀

【免费下载链接】cadqueryA python parametric CAD scripting framework based on OCCT项目地址: https://gitcode.com/gh_mirrors/ca/cadquery

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询