text-to-cad 开源:跟 AI 聊句话,产出能直接加工的 3D 零件

先问一个问题:你跟 AI 说过"帮我做个能 3D 打印的支架"吗?

我猜大概率是这种结局——它要么回你一段看不懂的 CADquery 代码,让你自己装环境自己跑;要么更直接,甩一张渲染图过来,看着像那么回事,但你把它拖进切片软件里,切片软件根本不认。图片是图片,模型是模型,这中间隔着一整套工业软件栈。

原因不复杂:大模型本身不会画三维实体。它的训练数据里全是文本和代码,你让它"想象"一个带螺栓孔的支架,它只能拼凑出一个看起来对的东西——而机械这行,"看起来对"和"尺寸对"之间隔着一道银河系。壁厚少 0.5 毫米,打印出来就是废件;孔距差一丝,螺丝拧不进去。更麻烦的是,你要想改个尺寸,得回到代码里找参数,改完重新跑一遍,跟传统 CAD 软件里拖拽草图比,半点优势都没有。

所以真正的需求一直摆在那:能不能让 AI 别猜,而是调用一套真正的几何内核,把零件精确地算出来?

最近注意到一个叫 text-to-cad 的开源插件,干的就是这件事。它给 Claude Code、Cursor、Gemini 这类 AI Agent 装上"CAD 超能力":你用大白话说需求,Agent 调用本地的工业级几何内核,直接吐出 STEP、STL、3MF 这些制造端认的文件。不是代码片段,不是图片,是能拿去加工的真模型。

这篇文章拆解它是怎么做到的,以及哪些设计取舍值得抄。

这个项目是什么

text-to-cad(仓库 earthtojake/text-to-cad,MIT 协议)是一个开源的 Agent 插件,官方自己的定位一句话就能说清:"Give your agent CAD superpowers"——给你的 Agent 装上 CAD 超能力。

它支持所有带插件系统或 skills 框架的 Agent:Claude Code、Codex、Cursor、Gemini、Grok Build、Claude Desktop 都在列。没有插件系统的 Agent,也能用 Skills CLI 单独装技能。底层是 cadgen(PyPI 上的 Python 包),骨架是 build123d 框架,几何内核是 Open CASCADE,要求 Python 3.11+ 和 Node.js 20+。

翻译成大白话:它把"自然语言到可制造 3D 模型文件"这条路打通了,中间不经过人的鼠标。

核心功能拆解

一、主心骨 CAD 技能:从一句话到 STEP 文件

整个插件的心脏是 CAD 技能。你用自然语言描述,或者直接丢一张产品照片过去,Agent 就在本地把模型建出来,主输出是 STEP 格式——CAD 行业交换实体模型的事实标准,SolidWorks、Fusion 360 全都认——同时可以导出 STL(3D 打印用)、3MF(新一代 3D 打印格式)和 GLB(网页和 AR 展示用)。

有个细节能看出它的工程品味:DXF 技能支持"从 Python 源码或 CAD 几何"生成二维图纸。这说明整条链路从根上就是代码驱动的——模型不是 AI 拍脑袋生成的网格,而是由代码描述、几何内核计算出来的实体。代码放在那儿,你改一个尺寸重跑一次就行,参数化建模的成本几乎为零。

二、不只是建模:12 个技能覆盖后半程

如果只会"生成模型",它不过是个更花哨的玩具。真正让它和玩具拉开距离的是配套技能——整个仓库一共 12 个,覆盖从设计到制造的完整链路:

  • step.parts:找现成的标准件 STEP 文件,螺丝、轴承、电机、连接器,不用 Agent 凭空发明一个螺栓。机械设计里"会选标准件"和"会画非标件"同样重要;
  • Engineering Drawing:从零件直接生成带尺寸的 PDF 工程图,视图、隐藏线、尺寸标注、孔标注、标题栏一应俱全,不用你手画;
  • DXF:生成二维图纸,轮廓、模板、垫片、激光切割排版都能用;
  • URDF / SRDF / SDF:机器人描述文件三件套——连杆、关节、限位、惯量,MoveIt 规划组、末端执行器、碰撞规则,仿真世界里的框架、物理、传感器、灯光。做机器人的同学知道这三份文件以前要手写到多晚。

三、制造闭环:打印之前,先过制造这一关

这是我觉得最有意思的部分。它没有停在"给你一个模型文件"就撒手,而是把制造端的检查也接了进来:

  • DfAM Check:按工艺测量可打印性——壁厚够不够、悬垂角度多大、支撑体积多少、摆放方向是否合理;
  • DFM:按钣金、CNC、注塑三种工艺逐条评审,每条发现都带实测证据和引用的规则出处,拔模角、底切、投影面积直接从网格上量出来;
  • G-code:用 OrcaSlicer 切片,用你自己的打印机预设;
  • Bambu Labs:直接把活发给拓竹打印机,走 Bambu Connect 或 Bambu Studio;
  • SendCutSend:上传钣金订单前先检查 DXF 和 STEP 文件。

翻译一下:从"做个支架"到"支架正在打印",中间不用你打开任何 CAD 软件,也不用在四五个网站之间来回复制粘贴文件。模型生成和制造检查长在同一个工作流里,这件事目前没几个工具做到。

text-to-cad 工作流示意:从自然语言对话到 3D 模型、工程图纸与实体制造

容易被忽略的设计取舍

取舍一:用 build123d + Open CASCADE,而不是让模型"想象"网格

底层引擎是 cadgen,骨架是 build123d,几何内核是 Open CASCADE——同门的 CADQuery 也构建在这套内核之上,几何精度是经过工业生产验证的。

为什么重要?现在市面上不少"AI 生成 3D"的工具走另一条路:让模型直接生成三角网格。网格看着像,但尺寸不可控、不可参数化、编辑困难。text-to-cad 反过来:Agent 写代码描述模型,几何内核负责精确计算,出来的 STEP 文件每个面都是解析曲面,能直接进 CNC 流程。这是"工程师的工具"和"演示玩具"的分水岭。

取舍二:本地优先,遥测透明可关

所有 CAD 运算都跑在本地,通过 uv 管理运行时,模型文件、路径、你的提示词从不出门。默认会发匿名使用统计——版本、安装来源、系统类型、各功能调用次数,带一个随机 ID,官方明说不含文件、路径、内容和提示词。介意的话一句 uvx cadgen telemetry off 关掉,而且会把已经发出去的数据删掉。

这种"默认开着,但一键关闭且删历史"的做法,比那些偷偷传数据的项目体面得多。另外更新检查每天最多请求一次,也可以设 CADGEN_UPDATE_CHECK=0 彻底静音。

取舍三:诚实得可爱的"坑文档"

README 里专门有一节讲 Windows 11 的 Smart App Control:几何内核的 Python 绑定 OCP 轮子带未签名原生模块,而 SAC 在全新安装的系统上默认开启,会导致每条 cadgen 命令都报 ImportError: DLL load failed while importing OCP。作者的建议很实在:要么关掉 SAC(注意,关了之后想恢复只能重装 Windows),要么在 WSL 里跑。cadgen doctor 命令会自动识别这个情况。

一个开源项目愿意把"我的软件在你系统上会怎么坏"写进 README,这件事本身就是维护质量的信号。反过来看,那种通篇只吹功能、对已知问题只字不提的项目,你敢用在生产环境里吗?

安装与使用

最省事的方式:直接把下面这句话发给你的 Agent,它会自己装——

Install text-to-cad from https://github.com/earthtojake/text-to-cad

手动装的话,Claude Code 两条命令:

claude plugin marketplace add earthtojake/text-to-cad#latest
claude plugin install text-to-cad@earthtojake

Cursor 会自动加载 Claude Code 装好的插件,不用重复装;Gemini 用 gemini extensions install;其他 Agent 用 npx skills add earthtojake/text-to-cad#latest 只装技能。

装好后的使用全程对话,不用记任何命令。走一遍典型流程:

"做个壁厚 3mm、两个 M3 安装孔的 L 形支架" → Agent 输出 STEP "检查能不能 FDM 打印" → DfAM 量出壁厚、悬垂、支撑体积 "出一张带尺寸的工程图" → Engineering Drawing 给你 PDF "直接发到打印机" → Bambu Labs 技能把活递过去

要改尺寸就接着聊,Agent 就地改模型重新出文件。三个注意点:第一次启动要联网下载 CAD 运行时,之后完全离线也能干活;Bambu、G-code、SendCutSend 这几个技能要接外部服务账号,不是开箱即用;模型质量取决于你用的 LLM 和描述清不清楚,复杂装配、高精度公差仍然需要人审。

适用人群

  • 机械工程师和硬件创业者:概念验证阶段改图改得最凶,参数化模型加对话式迭代,把"改一版"的成本打到接近零;
  • 创客和 3D 打印爱好者:不用学 SolidWorks,不用啃草图约束,一句话到实物;
  • 机器人开发者:URDF/SRDF/SDF 三件套以前是纯体力活,现在对话里就能生成和修改;
  • 重度 AI Agent 用户:如果你的 Agent 已经在帮你写代码、查资料,给它补上"造东西"的能力,是顺理成章的下一步。

写在最后

过去两年我们习惯了 AI "帮你写代码",text-to-cad 指向的是下一步:AI 帮你造东西。 而且它的路线选得很清醒——不去和工业软件巨头拼功能完整性,而是当一根杠杆:把最专业的几何内核包成 Agent 能调用的技能,让专业能力通过对话流出来。

当然,边界也要说清楚:它是插件不是独立软件,复杂场景下人的把关一个都少不了。但方向是对的——当"设计一个零件"的门槛从"学半年 CAD"降到"说一句话",会发生什么,值得每个做产品的人想一想。

项目地址:github.com/earthtojake/text-to-cad

官方文档:texttocad.dev