用 Python 脚本做参数化三维建模:CadQuery 从方块到装配体的完整指南

发布时间:2026/8/24 11:06:22
用 Python 脚本做参数化三维建模:CadQuery 从方块到装配体的完整指南 用 Python 脚本做参数化三维建模CadQuery 从方块到装配体的完整指南【免费下载链接】cadqueryA python parametric CAD scripting framework based on OCCT项目地址: https://gitcode.com/gh_mirrors/ca/cadqueryCadQuery 是一个基于 OpenCASCADE 内核的 Python 参数化 CAD 框架你写的不是点击步骤而是一段脚本它直接生成实体模型还能导出 STEP、STL、AMF、3MF 等格式。对想用改一个变量就重生成整个零件来替代手工建模的工程师、学生和创客来说它是目前最顺滑的入门路径之一。为什么参数化脚本比手点 CAD 更省心传统 CAD 里改个尺寸往往要回到特征树里逐项调整而 CadQuery 把模型写成一段可读的 Python——模型本身就是文档版本进 git改参数重跑一遍就得到新零件。适合的场景结构件系列化、批量生成相似零件、把几何算进仿真流水线。把尺寸变成变量改一行数字就重生成模型下面这段脚本先搭一块底座长宽高都是变量import cadquery as cq from cadquery.vis import show l, w, t 60.0, 80.0, 10.0 result cq.Workplane(XY).box(l, w, t) show(result)改l 60.0为任意值重跑脚本模型立即更新。这就是参数化建模模型由数据驱动而不是由你的手速驱动。工作平面给模型指定一张临时草稿纸真正难的往往不是画形状而是画在哪儿。CadQuery 的答案是工作平面Workplane选一个面在它上面画线打孔完全不用手算三维坐标。top result.faces(Z).workplane() result top.hole(22.0)faces(Z)选中最朝上的面workplane()把这张面变成新的草稿纸接着就能像平面作图一样定位特征。从草图到实体建模主线怎么走Sketch 组合轮廓再拉伸成三维cq.Sketch负责二维轮廓拉伸extrude负责变三维——绝大多数零件都是这条路径sk cq.Sketch().rect(50, 30).vertices().fillet(5) sk sk.push([(15, 15), (-15, -15)]).circle(3) result cq.Workplane(XY).placeSketch(sk).extrude(8)先画 50×30 的圆角矩形再在两个点各加一个圆最后整体拉伸 8mm。草图加拉伸覆盖了日常零件的 80% 需求。布尔运算加减模型只要一行组合多个实体时cut、union、intersect就是最直接的思路base cq.Workplane(XY).box(100, 100, 20) hole cq.Workplane(XY).circle(10).extrude(30) result base.cut(hole)从长方体里减掉一个圆柱一个通孔就出来了。倒角、抽壳、开孔这类常用操作API 也做了封装fillet、shell、hole、cboreHole你很少需要手写底层布尔。用阵列和选择器把重复劳动变一行代码选择器让你精确挑出面、边、顶点Z最上面的面、|Z竖直的边、XY平行于 XY 平面的面阵列则让重复特征只写一次。以四角沉头孔为例result ( cq.Workplane(XY) .box(80, 60, 10) .faces(Z) .workplane() .rect(80 - 12, 60 - 12, forConstructionTrue).vertices() .cboreHole(2.4, 4.4, 2.1) )构造矩形只用来取四个顶点forConstructionTrue不会参与轮廓cboreHole一次性生成四个沉头孔。孔位跟着rect走你把板子改大改小孔永远留在四角——这正是参数化的威力。从单个零件到装配体再到渲染展示Assembly 组装多零件位置关系清晰可控零件建好了Assembly把它们按位置和名字组装起来from cadquery import Assembly, Location, Vector assy Assembly() assy.add(cq.Workplane(XY).box(100, 50, 20), namebase) assy.add(cq.Workplane(XY).cylinder(15, 30), namepost, locLocation(Vector(50, 25, 20)))两个零件、各自命名、各自定位装配关系一目了然后续还能导出成 STEP 交付给其他 CAD 工具。自带可视化转视角、调透明度、出截图模型建完总要看一眼。CadQuery 从 2.4 版起内置了基于 VTK 的可视化不需要外部工具show(result, alpha0.6, roll-30, elevation-30)透明渲染配合视角调整方便检查内部结构加一个screenshotimg.png参数还能直接存图写报告、贴文档都很方便。文档、示例与上手第一步资源位置快速上手教程doc/quickstart.rst安装说明doc/installation.rst工作平面与特征 APIcadquery/cq.py选择器语法cadquery/selectors.pySketch 草图模块cadquery/sketch.py装配体实现cadquery/assembly.py渲染与截图cadquery/vis.py建模示例脚本examples/建议的学习路径先读快速上手再跑examples/里的脚本——每个文件都是可运行的完整零件比如Ex100_Lego_Brick.py用rarray生成乐高凸点阵列、Ex003_Pillow_Block_With_Counterbored_Holes.py就是本文垫块的完整版。第一步就三件事git clone https://gitcode.com/gh_mirrors/ca/cadquery克隆后按doc/installation.rst装好环境推荐 conda/conda-forge然后打开doc/quickstart.rst跟着敲一遍。你会发现从一个方块到一个能交付的零件比你想象的要短。【免费下载链接】cadqueryA python parametric CAD scripting framework based on OCCT项目地址: https://gitcode.com/gh_mirrors/ca/cadquery创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考