CadQuery 参数化建模完全指南:几行 Python 搞定复杂三维 CAD

📅 2026/8/24 12:29:48
CadQuery 参数化建模完全指南:几行 Python 搞定复杂三维 CAD
CadQuery 参数化建模完全指南几行 Python 搞定复杂三维 CAD【免费下载链接】cadqueryA python parametric CAD scripting framework based on OCCT项目地址: https://gitcode.com/gh_mirrors/ca/cadquery改一个安装孔的尺寸是不是又得打开 CAD 软件逐个修改草图CadQuery 参数化建模把三维设计放进纯文本文件你用几十行 Python 描述整个模型改一个参数整个零件自动重建。CadQuery 是基于 OCCTOpen CASCADE内核的参数化 CAD 脚本框架——没有图形菜单没有鼠标点击模型本身即可版本化、可测试、可复现。 为什么把 CAD 写进脚本里传统 CAD 工具与参数化脚本的最大区别在于设计意图存放在哪里。常规软件里意图存在于你的脑袋和一连串菜单操作里磁盘上的文件只是一坨几何体建模过程无法重放。CadQuery 把这个关系倒了过来模型就是代码参数就是变量改设计等于改数字。这带来三个直接收益。其一一个脚本能产出一整族零件——建模逻辑固定后循环参数组合就能输出系列化规格。其二模型可以直接进版本库变更可 diff、可评审、可随时回溯。其三你获得了整个 Python 生态for 循环布孔阵列、调用任意第三方库驱动几何、批量自动化导出整条 Python 自动化建模链路都归你指挥。同时它底层是工业级实体建模内核模型质量可直接导出 STEP、STL 等格式对接 3D 打印与 CNC 加工。⚡ CadQuery 快速上手第一个参数化模型理解工作平面workplane这个核心概念你就能写下第一段 Python 三维建模脚本。cq.Workplane(XY)先在坐标原点建立一块二维工作台后续的画线、拉伸、打孔都发生在上面。6 行代码就能生成第一个参数化模型import cadquery as cq length, height, thickness 80.0, 60.0, 10.0 result cq.Workplane(XY).box(length, height, thickness) show_object(result)box()在工作平面中心放置一个长方体尺寸全部由顶部变量驱动。把length改成 120 再运行零件立刻变成新的尺寸几何本身一行都不用碰。脚本可直接在 Jupyter 或命令行中执行结果即时渲染成三维窗口。 典型场景从单个零件到整套装配体掌握了工作平面参数化 CAD 设计的真正威力才显现出来。轴承座一个脚本产出一族零件examples/ 中的 Ex003 示例是一个教科书级的机械零件带中心大孔、四角沉头安装孔、边缘倒圆的轴承座。import cadquery as cq length, width, thickness 80.0, 100.0, 10.0 result ( cq.Workplane(XY).box(length, width, thickness) .faces(Z).workplane().hole(22.0) .faces(Z).workplane() .rect(length - 24.0, width - 24.0, forConstructionTrue) .vertices().cboreHole(2.4, 4.4, 2.1) .edges(|Z).fillet(2.0) )操作链值得拆开看faces(Z)选出 Z 方向最靠上的面.workplane()在其上建立新工作台hole()自动在工作台中心打穿心孔。巧妙之处在于rect(..., forConstructionTrue)画了一个仅作辅助的定位矩形接着vertices()抓住它的四个角一次cboreHole()同时布下 4 个沉头孔最后fillet把竖直棱边倒圆。全部尺寸参数化之后这份脚本就是你批量生成系列轴承座的生产线。柜门用约束搭出来的装配体当产品从单个零件变成多个零件就需要装配模块登场。cq.Assembly()先逐个.add()零件并命名再用.constrain()把不同零件的面用 Plane 等约束关联.solve()一次性算出最终位置。doc/assy.rst 里的柜门示例就是由 20×20 V 型槽铝型材、门板和拉手拼成的完整装配。door ( cq.Assembly() .add(left_profile, nameleft) .add(right_profile, nameright) .add(panel, namepanel) .constrain(leftfacesZ, panelfaces-Z, Plane) .solve() )constrain()里两段字符串是零件名选择器的写法指明哪个零件的哪一面。配合关系以声明式写进脚本而不是靠鼠标在模型里硬拖这正是装配体易于维护的原因。 Python 自动化建模的效率进阶实践把建模脚本当工程来写时有三个做法最值得一提。模块化拆分是第一位的。按特征把复杂模型拆成函数比如make_mounting_plate()、make_drill_holes()每个函数返回独立的 Shape 对象顶层脚本只负责拼装与展示。函数可以单独测试、单独调试出问题能精确定位而不是面对一长条操作链抓瞎。参数关系管理紧随其后。别把魔法数字散落在代码各处把关键尺寸集中在文件顶部或配置文件里用表达式推导相关尺寸——比如孔位等于零件边缘减去偏移量——这样零件改尺寸时孔位自动跟随一致性由代码保证而非人工记忆。自动化验证决定交付质量。在测试里对关键零件断言几何属性包围盒尺寸对不对、面数是否符合预期、体积是否在合理区间。参数一旦越界错误几何会被测试用例先于车间拦截。tests/ 目录提供了覆盖建模、导出、装配各模块的完整测试套件写自己的测试时可以直接参照它的组织方式。 生态与资源接下来去哪儿学本文相当于一份精简的 CadQuery 入门教程完整的学习路径是先跑通 examples/ 里二十多个可运行示例从简单方块一路推进到放样、扫掠、DXF 导入再翻 doc/ 目录下的 API 参考与教程补全细节所有建模功能实现在 cadquery/ 核心模块中想深入底层时读源码是最快的捷径。导出方面支持 STEP、STL、SVG、DXF、AMF、3MF 等格式模型做完即可直接进入 3D 打印与数控加工环节。现在开始动手最短路径只有三步执行git clone https://gitcode.com/gh_mirrors/ca/cadquery获取代码打开examples/里的示例运行然后改一个参数看模型如何更新。五分钟内你就会体会到参数化建模的乐趣。【免费下载链接】cadqueryA python parametric CAD scripting framework based on OCCT项目地址: https://gitcode.com/gh_mirrors/ca/cadquery创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考