text-to-cad:讓智能體掌握參數化 CAD 能力

Published · AI Daily — AI-assisted deep research, methodology & disclosure

text-to-cad 是一套為智能體設計的 CAD 技能庫。它把參數化建模寫成 Python 原始碼,基於 build123d 與 OpenCascade 核心生成 STEP 檔案,並支援 STL、3MF、GLB 匯出、幾何檢查與快照審閱。原始碼是設計意圖的紀錄,STEP 是衍生產物,因此修改、回溯與重新生成都能走軟體工程的流程。儲存庫同時提供 Codex、Claude Code、Cursor 與 Grok Build 外掛。本文分析其設計取捨,並指出版本遷移靜默遺失資料、Windows 智慧應用程式控制阻斷等風險。

技术背景与问题定义

机械设计至今仍依赖图形界面。工程师打开 CAD 软件,画草图,加约束,做拉伸,再把 STEP 文件交给加工车间。语言模型能写 Python,也能读懂需求文档,却很难照着这套点击流程完成工作。于是有一个很实际的问题:智能体能否把自然语言需求或零件照片,变成别人可以检查、修改并投产的三维模型?

text-to-cad 给出的答案是一个明确的设计选择。模型本身就是源码。每个零件都是一个基于 build123d 的 Python 文件,而 build123d 是运行在 OpenCascade 内核之上的 Python CAD 库。运行这个文件就会得到成果。主要输出是 STEP 文件,源码则记录设计意图。几何因此变成可以做差异比较、可以审阅、可以重新生成的对象。

真正的难点在于验证,而不是生成。模型在查看器里可能看起来完全正确,孔位却放错了地方。因此,这个仓库把测量、快照审阅和校验做成独立的技能,而不是事后补充。这个取舍的分量,比任何一个生成功能都重。

核心架构与原理解析

text-to-cad 不是单一程序,而是一个智能体技能库。它包含 12 个技能:CAD、step.parts、工程图纸、DXF、URDF、SRDF、SDF、SendCutSend、DfAM 检查、DFM、G-code 与 Bambu Labs。CAD 技能居于核心,其余技能大多消费它的输出,或为另一种工具重新描述同一个零件。 版本约束是明确的。技能的 requirements.txt 将 cadgen[snapshot] 固定在 0.7.11。README 徽章标明 build123d 0.11、Open CASCADE 7.9、Python 3.11 及以上、Node.js 20 及以上。也就是说,智能体运行这套技能时依赖一个特定的内核和运行时。固定版本让团队能够复现某次发布的行为,代价是升级需要手动完成。

技术栈可以分成三层来看。最上层,智能体读取 SKILL.md,按任务类型跳转到简短的参考文档。中间层,cadgen 命令行工具与 MCP 服务负责执行,MCP 服务通过 uvx 启动,因此首次运行会下载运行时。最底层,OCP 绑定把 OpenCascade 暴露给 Python,负责几何运算与 STEP 读写。 设计原则是:源文件才是事实来源。SKILL.md 要求智能体修改模型源码并用 python 重新运行,而不是去修补导出的文件。因此每次改动都是 Python 文件里的一个差异,网格与 STEP 只是派生结果。这与代码可审查的道理一致,也正好适配版本控制。 分发方式遵循同样的逻辑。Codex、Claude Code、Cursor 与 Grok Build 都有插件,技能也可以通过 npx skills add 安装。各宿主显示模型的方式不同,但底层调用的是同一个 cadgen 包。

关键功能与实战评估

核心功能有四项。第一是建模:智能体编辑 Python 源码并运行。第二是检查:用 build123d 原生几何或 cadgen.geometry 编写检查脚本。第三是快照:渲染已保存的文档,用于审阅外观与运动,需要 Chromium。第四是导出:STL、3MF、GLB 可以通过装饰器或 build 命令生成。 SKILL.md 中有两条警告值得重视。其一,需要版本迁移的模型如果不迁移,运动学、材料与动画信息会被悄悄丢弃。静默丢失比直接报错更危险,团队应当把迁移做成流水线中明确的一步。其二,在启用了智能应用控制的 Windows 11 上,未签名的 OCP 原生模块会被阻止,导入时出现 DLL 错误。仓库给出的办法是关闭该功能,或改在 WSL 下运行。

我没有安装这个工具,也没有在任何真实零件上测试几何精度、生成速度或模型质量。以上判断全部来自仓库的文档与配置。接口设计看起来合理,但生成的零件能否加工,仍须用户借助测量和快照自行验证。 落地时的建议是:把生成的 Python 源码纳入 git,固定 cadgen 版本,将 cadgen doctor 纳入环境检查,并为每个关键尺寸编写断言式检查脚本。

行业影响与未来演进

这个项目代表一种方向:CAD 不再只靠图形界面操作,而是成为可以被代码、测试和版本管理约束的工程资产。对机械设计团队、机器人团队和已经用 Python 工作的小批量制造者来说,参数化设计的门槛因此降低。 它也改变了责任的落点。生成模型很容易给出看似合理的尺寸,风险就从绘图的人转移到了检验流程上。采用这种方式的团队,需要在投产前设置测量关卡。仓库中的 DFM、DfAM 检查与 SendCutSend 技能指向这一方向,它们依据制造规则检验零件,而不是信任几何本身。

机器人描述类技能又引出第二个问题:格式之间的一致性。URDF、SRDF 与 SDF 为不同消费者描述同一个机器人。让 CAD 几何、关节限位与仿真模型长期保持一致,仍是一个未解的工程问题。把它们放进同一个技能库是合理的结构,但一致性检查仍然要由使用者完成。 截至本次快照,项目有 16,697 颗星,关注度很高。但关注不等于验证。有价值的证据是真实项目中的返工率、检查通过率和交付周期。本分析没有这些数据。读者宜把它视为一个值得试用的新接口,而不是已被证明可以取代 CAD 工作站的成熟方案。

Sources

FAQ

text-to-cad 的模型源文件是什么形式?

每个零件是一个基于 build123d 的 Python 文件,运行 python 脚本即生成 STEP 文件。源码是事实来源,导出的网格与 STEP 都是派生结果。

它的版本依赖是如何固定的?

技能的 requirements.txt 将 cadgen[snapshot] 固定为 0.7.11。README 标注 build123d 0.11、Open CASCADE 7.9、Python 3.11 及以上。

使用中有哪些已知风险?

未迁移的旧模型会静默丢失运动学、材料和动画信息。在启用智能应用控制的 Windows 11 上,未签名的 OCP 模块会被阻止,需关闭该功能或改用 WSL。