综合 / 开发工具 · 2026-10-16 11:07 · 1 阅读 · 0 赞
给 AI Agent 装上 CAD 内核:text-to-cad 让参数化代码直接出 STEP
text-to-cad 让 Agent 写 build123d 参数化代码,由 OpenCASCADE 内核生成 STEP 精确实体,并串联工程图、DFM 检查、切片与打印,已获 1.8 万 Star。
让 AI 画个 3D 模型不新鲜,难的是画出来的东西机床肯收。这个开源项目 text-to-cad 换了条路走,它让 Agent 写参数化代码,再交给真的 CAD 内核算。现在 1.8 万 Star,建议先收藏。

它换掉的是哪一步
市面上的文生 3D 大多吐网格文件,能看能玩,进不了图纸。机械加工要的是 STEP 这种精确实体,带原生 B-rep 面与边的拓扑,尺寸可量、公差可标。

text-to-cad 绕开了「让模型直接生成几何」这件事。它让 Agent 写一段参数化 Python,库是 build123d,底下驱动的是 OpenCASCADE,工业界用了很多年的那套几何内核。
一个零件在它眼里就是一个普通的 Python 脚本。改个常量就换个尺寸,重跑一遍就出新几何,版本管理交给 git。你拿到手的是一份能重新构建的模型源码。
from cadgen import build123d as bd
from cadgen import step
WIDTH = 40.0
@step(out="../STEP/bracket.step")
def bracket():
body = bd.Box(WIDTH, 20, 6)
return body
输出主格式是 STEP,另外可导 STL、3MF、GLB。作者给这个项目的一句话定位是「给 Agent 装上 CAD 超能力」,听着夸张,用起来不算离谱。
12 个技能,从画图一路做到上机床
装一次进来 12 个技能,画图、机器人、切片、下料全在这条链上。
| 方向 | 技能 | 做什么 |
|---|---|---|
| 建模 | cad | 从自然语言或图片出模型,主输出 STEP |
| 选型 | step-parts | 找现成零件,螺丝、轴承、电机、连接器 |
| 出图 | engineering-drawing | 出带尺寸标注的工程图 PDF,含隐藏线与标题栏 |
| 二维 | dxf | 轮廓、垫片、下料排版图 |
| 机器人 | urdf srdf sdf | 机器人结构、MoveIt 规划组、仿真世界 |
| 可制造性 | dfam-check dfm | 按工艺量壁厚、悬垂、拔模、倒扣 |
| 落地 | gcode bambu-labs sendcutsend | 切片成 G-code、推到拓竹打印机、上传前检查 |
dfm 那个技能设计得挺克制。每一条结论后面都要挂实测数据和它引用的那条规则,读完你知道该改哪儿、为什么改。
装一次,六个 Agent 共用一套内核
官方推荐的做法是把仓库地址丢给你的 Agent,让它自己装。手装的话一条命令:
npx skills add earthtojake/text-to-cad#latest
Claude Code、Claude Desktop、Codex、Cursor、Grok Build、Gemini 都有现成入口。
背后有个细节值得说。所有技能跑 cadgen 时用的是同一条命令,里面把版本钉死,插件配置和每个技能的说明文件都带这条,发版脚本统一盖戳,测试断言它们必须一致。
uv 对同一个依赖只留一份安装,cadgen 又按这份安装给构建守护进程命名,于是服务端、每个对话线程、每条技能命令共用一个热守护进程。
作者在仓库规范里说得很直白,第二次安装就是第二个 daemon,连「技能自己写 requirements.txt 装 cadgen」这条路都堵死了。
五个月,76 个版本
2026 年 4 月 22 日建的仓,5 月 30 日发第一个 release。到 10 月 6 日的 v0.7.15,累计 76 个版本。光 10 月 1 日到 6 日这六天,就发了 11 个。
节奏快不等于乱。这仓库的规矩是把 VERSION 改一次就触发一次发布,合并 PR 即发布。所以正常开发里谁都不许碰版本号,也不许自己决定升哪一位。
测试纪律比发版纪律更狠,仓库不接受「只能手动跑」的测试门槛,也不留任何手工闸门。
一个没有 CI 任务去跑的测试就是死代码。要么接进流水线,要么删掉。(AGENTS.md 原文译文)
还有一句,不稳定的测试只能修掉或者删掉,绝不重试。CI 的 web 任务有 7 分钟预算,谁拖长了得在 PR 里说清代价。
还有个细节我挺喜欢。仓库禁止任何符号链接进发布树,理由是三个 Agent 安装器处理符号链接的方式各不相同,Skills CLI 会解引用,Claude Code 原样保留,Codex 静默丢弃,发出去的技能会缺文件。
Windows 用户,先看这一段
好消息是这个项目对 Windows 的坑写得很坦诚。坏消息是坑是真的。
Windows 11 全新安装的 Smart App Control 会拦下 OpenCASCADE 绑定包 OCP 里那个未签名的原生模块,症状是 ImportError: DLL load failed while importing OCP,事件查看器在 CodeIntegrity 里记事件 ID 3077。
SAC 没有单应用白名单,要么关掉它,要么把 CAD 技能放到 WSL 里跑。README 有专章,cadgen doctor 也会直接点名。
另一个 issue 269 值得翻。报告者发现 Windows 上 DXF 生成必然失败,根因是 Windows 的字节范围锁是强制的,不像 Linux 的 flock 只是建议性的,持锁方自己读自己锁的文件照样报 EBUSY。
他把脱离 cadgen 的最小复现和补丁一起交了,作者当天发 0.4.12 修掉。
「你的诊断和补丁都用了,两个都用了。」作者在那封回复里还顺手翻出两处没人看见的问题:同一处持锁读取让另一条进度归属功能静默失效;而当文件系统根本不支持加锁时,NFS 和部分 SMB 挂载上的每一次构建都会失败,还顶着同一句误导性的报错。
顺手纠几个错
中文转载里错的地方挺集中。有公众号给的安装命令是 claude plugin install cad@text-to-cad,这条对应的是更早的命名,仓库后来把 marketplace 名改成 earthtojake、插件名改成 text-to-cad,现在照着抄装不上。
还有英文站整理出的技能清单里冒出 cad-dfm、cad-export、cad-fabrication 这些名字,这几个名字里没一个真实存在。
同一个来源还说它直连了 Xometry、Fictiv、Protolabs 之类做即时报价,仓库里没有这些对接,实际只有 SendCutSend 和拓竹两家。
项目自己的文档也有打架的地方。models/README.md 里写着样例库打算用 Git LFS 管,还给了拉取命令,但 AGENTS.md 明写不用 Git LFS,仓库根目录连 .gitattributes 都没有。
最后说两句
说实话,这类项目最容易让人兴奋过头。它能给你一个能继续检查的工程产物,不等于这个零件明天就能上机床,强度、公差、材料这些判断仍然是人的事。
但「Agent 写参数化代码 + 真内核出图 + 制造性检查」第一次被串在同一个本地循环里,这件事本身挺有意思。
去 GitHub 给它点个 Star 吧,顺便翻翻 AGENTS.md 和 issue 区,工程质量比不少商业项目厚实。
GitHub text-to-cad
给 AI Agent 装上本地 CAD 工作流的插件,覆盖建模、工程图、机器人描述与可制造性检查