Text-to-CAD 是一套开源的 Agent 技能库(GitHub 项目 earthtojake/text-to-cad),安装后可让 Codex、Claude Code、DeepSeek Harness 等 AI 编程 Agent 通过一句自然语言或一张参考图,生成尺寸精确、可编辑的参数化 3D CAD 模型,并导出 STEP、STL、3MF 等工程标准格式。本教程将从项目介绍、工作原理讲起,完整演示三种安装方式,并通过实战案例带你完成从一句话描述到 3D 打印文件的整个流程。

前置教程

如想快速开始学习本教程,你可能需要先完成以下前置教程:

资源下载

1. Text-to-CAD 是什么

1.1 从一句话到一张工程图

传统 3D 建模流程中,工程师需要在 SolidWorks、Fusion 360 或 FreeCAD 等软件中手动绘制草图、拉伸特征、装配零件,一个简单的支架往往要花费数十分钟。Text-to-CAD 把这个过程交给 AI 编程 Agent:你在对话中写下"帮我设计一个 40 毫米宽、带两个 5 毫米安装孔的 L 形铝制支架",Agent 会自动拆解尺寸、编写参数化建模代码、调用 CAD 内核生成模型,并输出符合工程标准的 STEP 文件。

项目的核心定位是面向 Agent 的 CAD、CAE 与 CAM 技能库。它当前在 GitHub 上获得超过 1.6 万 Star,采用 MIT 协议完全开源免费,所有计算都在本地完成,模型与文件不上传云端。

1.2 项目核心特性

特性 说明
参数化建模 生成的是可编辑的 Python 参数化模型源码,改一个数字即可重新生成模型
STEP 优先输出 主输出为工业标准 STEP 格式,可直接导入主流 CAD 软件与 CAM 流程
多格式导出 支持导出 STL、3MF(3D 打印)与 GLB(网页预览)格式
图纸建模 支持从参考图片或 2D 图纸中提取尺寸进行建模
本地运行 CAD 内核与渲染全部在本地完成,无需 API Key、无云端依赖
多 Agent 支持 以 Skill 或插件形式接入 Codex、Claude Code、Cursor、Grok Build 等 Agent

1.3 技能清单

Text-to-CAD 是一套覆盖 CAD、制造与机器人领域的技能组合,安装后 Agent 会根据任务自动选择对应技能:

技能 用途
CAD 核心技能,从自然语言或图片创建、编辑 CAD 模型,输出 STEP/STL/3MF/GLB
CAD Viewer 启动本地浏览器预览页,查看 CAD 与机器人模型文件
step.parts 搜索螺丝、轴承、电机、连接器等现货 STEP 零件模型
DXF 生成轮廓、垫片、切割排版等 2D DXF 图纸
URDF 编写机器人结构描述文件(连杆、关节、惯性、网格)
SRDF 为 URDF 补充 MoveIt 规划组、末端执行器与碰撞规则
SDF 创建仿真器模型与世界文件(坐标系、物理、传感器、灯光)
SendCutSend 上传前检查 DXF/STEP 文件是否符合 SendCutSend 加工要求
DfAM Check 按工艺检查网格可打印性:壁厚、悬垂、支撑量与打印朝向
G-code 调用真实切片器 CLI,把网格文件切片为 FDM 打印的 gcode
Bambu Labs 对校验过的 gcode 做试运行、上传并谨慎启动拓竹打印机任务

1.4 与 Blender MCP 的对比

本系列此前介绍过 Blender MCP安装配置与AI建模实战教程,它通过 MCP 协议驱动 Blender 完成建模。两者代表了 AI 生成 3D 模型的两条技术路线:

对比项 Text-to-CAD Blender MCP
建模内核 OpenCascade(工程 CAD 内核) Blender(影视级网格建模)
模型精度 参数化精确尺寸,毫米级 网格近似,尺寸精度依赖提示词
输出格式 STEP/STL/3MF/GLB,工程标准 blend/fbx/obj/glTF
可复现性 Python 源码即模型,可版本管理与批量修改 依赖操作序列回放,难以增量修改
适用场景 机械零件、装配体、3D 打印、机器人 影视道具、场景、艺术创作

一句话概括选型:做能加工的工程零件选 Text-to-CAD,做视觉效果选 Blender

2. 工作原理

2.1 整体架构

Text-to-CAD 的本质是一组写入 Agent 技能目录的 Markdown 指令文件(SKILL.md)加一个名为 cadgen 的 Python 命令行工具。Agent 读取技能指令后,用大模型编写 Python 建模代码,再由 cadgen 调用 OpenCascade CAD 内核完成几何计算。整个流程如下:

graph LR A[用户需求
自然语言或图片] --> B[Agent 宿主
Codex / Claude Code 等] B --> C[加载 CAD 技能
SKILL.md 指令] C --> D[大模型编写
Python 参数化模型] D --> E[cadgen CLI
调用 OpenCascade 内核] E --> F[输出 STEP 主文件
STL / 3MF / GLB] F --> G[快照审查与
浏览器预览] G --> H{尺寸与外观
是否达标} H -- 不达标 --> D H -- 达标 --> I[交付模型文件
与审查报告] style B fill:#e8f4f8,stroke:#1a6b8a,stroke-width:2px style D fill:#d6eaf8 style E fill:#d5f5e3 style G fill:#fadbd8

流程中的关键设计是验证闭环:技能要求 Agent 在生成几何后必须生成快照图片并自查,尺寸不符时回到模型源码修正后重新运行,直到满足要求才交付。

2.2 模型即源码:Python 装饰器契约

Agent 生成的每个模型都是一个普通 Python 脚本,其中包含一个用装饰器标记的无参数函数,函数返回 build123d 几何对象。下面是技能文档中的官方示例 src/bracket.py

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)
    body.label = "bracket"
    return body


if __name__ == "__main__":
    bracket()

运行 python src/bracket.py 即可在 STEP/ 目录生成 bracket.step 文件。这种设计带来三个好处:

好处 说明
可复现 模型就是源码,放进 Git 即可追踪每次设计变更
可增量修改 想改宽度只需改 WIDTH = 40.0 一个数字再运行
可组合 装配体模型可以调用子模型并声明相对位置,父模型重新运行即同步子件变更

2.3 输出格式说明

格式 定位 生成方式
STEP 主输出,工程交换标准,含精确几何 @step 装饰器,每次运行自动生成
STL 3D 打印通用网格格式 @stl 装饰器或 cadgen stl build 命令
3MF 3D 打印现代格式,含颜色与单位信息 @threemf 装饰器或 cadgen 3mf build 命令
GLB 网页与 AR 预览格式 @glb 装饰器或 cadgen glb build 命令

3. 安装 Text-to-CAD

3.1 环境要求

依赖 要求 用途
Python 3.11 及以上 运行建模代码与 cadgen 工具
Node.js 18 及以上 仅 Skills CLI 安装方式需要,用于 npx 命令
Agent 宿主 Codex 0.142.0+ / Claude Code / DeepSeek Harness 等 承载技能、驱动大模型
Chromium 由 Playwright 自动安装 CAD Viewer 渲染快照与预览页

Windows 11 用户请先阅读 6.1 节的 Smart App Control 说明,再决定在 Windows 还是 WSL 中安装,避免安装完成后运行报错。

3.2 方式一:Skills CLI 安装(推荐)

Skills CLI 是官方推荐的安装方式,一条命令即可把技能装进当前机器上已支持的各类 Agent。在终端执行:

npx skills add earthtojake/text-to-cad

安装过程会列出识别到的 Agent(如 Claude Code、Codex、Cursor 等),按提示选择要安装的目标即可。安装完成后技能文件会出现在对应 Agent 的技能目录中。

两点使用约定需要注意。其一,更新与安装使用同一条命令add 会重新拉取最新包并覆盖已安装技能,同时装上新版新增的技能;npx skills update 只刷新锁文件里已有的技能,会漏掉新版新增的技能。其二,若某个技能在上游被移除,需要手动执行 npx skills remove <技能名> 清理。

3.3 方式二:Codex 插件安装

如果你主要使用 Codex,可以用插件方式安装,要求 Codex 版本不低于 0.142.0:

codex plugin marketplace add earthtojake/text-to-cad
codex plugin add cad@text-to-cad

旧版本 Codex 会静默跳过该插件,codex plugin list 中看不到任何条目。遇到这种情况先用以下命令升级 Codex 后重试:

npm install -g @openai/codex@latest

3.4 方式三:Claude Code 插件安装

Claude Code 用户可执行:

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

DeepSeek Harness 等兼容 Claude Code 技能目录的 Agent,建议改用 3.2 节的 Skills CLI 方式安装,安装后如果技能列表中没有出现新技能,重启 Agent 即可。

3.5 安装 CAD 技能的 Python 依赖

技能文件本身只是指令,真正的几何计算依赖需要按技能要求安装到项目解释器中。先在任意目录验证 Python 版本:

python --version

确认输出为 3.11 及以上后,找到技能安装目录中的 cad/requirements.txt(Skills CLI 安装时通常位于 Agent 技能目录下,可在安装输出中查看具体路径),执行:

python -m pip install -r /path/to/installed/cad/requirements.txt
python -m playwright install chromium

其中依赖的核心包有两个:cadgen 是技能配套的命令行工具,负责运行模型、导出格式、生成快照;build123d 与 OCP 提供参数化建模 API 与 OpenCascade 几何内核。

3.6 验证安装

text-to-cad 提供了自诊断命令 cadgen doctor,它会检查技能包版本与 CAD 内核是否可用:

cadgen doctor /path/to/installed/cad

输出中确认包版本与内核加载均无错误,即表示安装成功。若提示 cadgen 命令不存在,可用等价写法 python -m cadgen.cli 替代,例如:

python -m cadgen.cli doctor /path/to/installed/cad

4. 实战:从一句话到 3D 模型

本章以 DeepSeek Harness 为例,完成第一个 AI 建模任务。其他 Agent 的操作完全一致,只是入口不同。

4.1 创建建模项目

text-to-cad 推荐使用固定的项目目录结构组织 CAD 工程。先建好骨架:

mkdir -p cad-demo/src cad-demo/STEP cad-demo/tmp
cd cad-demo

目录约定如下:src/ 存放模型源码,STEP/STL/ 等按格式存放输出文件,tmp/ 存放审查快照等临时产物。之后启动 Agent 并进入该目录开始对话。

4.2 用自然语言描述零件

在 Agent 对话框中输入需求。描述越具体,首次成功率越高。推荐按"零件用途 + 关键尺寸 + 特征细节"三段式描述:

在当前目录创建一个 CAD 项目,用 CAD 技能建模一个 L 形安装支架:
底板长 60mm、宽 40mm、厚 5mm,立板高 35mm、厚 5mm,
底板上有两个直径 5mm 的通孔,孔中心距两端各 10mm。
建模完成后导出 STEP,并生成快照给我确认。

Agent 会自动加载 CAD 技能,拆解尺寸后在 src/ 下生成参数化模型脚本,运行脚本生成 STEP/l_bracket.step,再用 cadgen 生成快照图片自查,全程无需人工干预。

4.3 理解 Agent 生成的模型代码

打开 Agent 生成的 src/l_bracket.py,你会看到与 2.2 节示例同构的结构:文件顶部导入 cadgen 提供的建模模块,尺寸以大写常量集中声明:

PLATE_LENGTH = 60.0
PLATE_WIDTH = 40.0
THICKNESS = 5.0
HOLE_DIAMETER = 5.0

完整文件以 Agent 实际生成为准。修改任何尺寸常量后重新运行脚本,即可同步更新 STEP 输出。

读懂三个要素即可接管这份代码:尺寸常量在文件顶部集中声明;几何构建逻辑在装饰器函数内完成(拉伸、打孔、倒角等 build123d 操作);输出路径@step(out=...) 声明,注意该路径相对于模型脚本所在目录解析。

4.4 导出 STL 用于 3D 打印

模型确认后,让 Agent 继续导出打印格式,或者直接在项目根目录手动执行:

cadgen stl build STEP/l_bracket.step STL/l_bracket.stl
cadgen 3mf build STEP/l_bracket.step 3MF/l_bracket.3mf

生成的 STL 可直接导入 Cura、OrcaSlicer 等切片软件;3MF 则保留了单位信息,是拓竹、Bambu Studio 等切片器的推荐格式。

4.5 快照审查与浏览器预览

技能流程要求 Agent 对每次几何变更生成快照并自查,对应命令为:

cadgen step snapshot STEP/l_bracket.step tmp/review.png

如果安装了 CAD Viewer 技能,Agent 交付时会附上一个本地浏览器预览链接,可在网页中旋转、缩放查看模型。你也可以主动说"打开预览",让 Agent 启动本地预览页面。

5. 进阶应用

5.1 按图片建模

把机械图纸、产品照片或手绘草图直接拖入对话,并补充文字约束。Agent 会从图中提取已标注的尺寸建模,对图中未标注的部分记录假设并在交付说明中列出,例如"图上未标注壁厚,按 3mm 处理"。对关键假设不满意时,直接指出并让 Agent 修改对应常量即可。

5.2 装配体建模

装配体由多个子模型组合而成。实践时按"一个零件一个源文件"组织,装配模型调用子模型并声明相对位置。Agent 收到"把 A 和 B 按某某位置装配"的指令后,会自动建立装配文件并把子件输出聚合。子零件修改后重新运行父装配脚本,装配结果随之更新。

5.3 现货零件搜索

需求中出现标准件时,告诉 Agent"优先搜索现货零件"即可触发 step.parts 技能。它会检索螺丝、轴承、电机、连接器等常见现货 STEP 模型,找到后直接引入装配;检索不到时按占位模型处理并记录假设。这一步能显著减少手绘标准件的工作量。

5.4 从 CAD 到 3D 打印的完整链路

text-to-cad 把打印前后的工序也做成了技能,串联起来就是一条完整的桌面制造流水线:

graph LR A[CAD 建模
生成 STEP] --> B[DfAM Check
壁厚与悬垂检查] B --> C[G-code 技能
调用切片器切片] C --> D[Bambu Labs 技能
试运行并启动打印] style A fill:#d5f5e3 style B fill:#fadbd8 style C fill:#d6eaf8 style D fill:#ffecd6

其中 DfAM Check 按具体工艺(FDM、光固化等)测量壁厚、悬垂角、支撑体积并建议摆放朝向;G-code 技能调用本机真实切片器 CLI 生成经过校验的 gcode;Bambu Labs 技能面向拓竹打印机,支持先试运行再实际启动打印任务。

5.5 机器人描述文件

URDF、SRDF、SDF 三个技能面向机器人开发者:URDF 描述连杆与关节结构,SRDF 补充 MoveIt 运动规划组,SDF 生成 Gazebo 等仿真器的模型与世界文件。配合 CAD Viewer 可以在浏览器中直接查看机器人模型并验证逆运动学。

6. 常见问题排查

6.1 Windows 11 下 OCP 模块加载失败

这是 Windows 用户最常遇到的问题。CAD 内核 OCP(OpenCascade 的 Python 绑定)的安装包中包含未签名的原生模块,而 Windows 11 全新安装默认开启的 Smart App Control(智能应用控制)会拦截未签名原生代码,导致所有 cadgen 命令与 import build123d 报错:

ImportError: DLL load failed while importing OCP

cadgen doctor 会主动识别并报告这一情况。该拦截没有按应用放行的机制,只有两条出路:

方案 操作 影响
关闭 Smart App Control 设置 > 隐私和安全性 > Windows 安全中心 > 应用和浏览器控制 > 智能应用控制设置 关闭后只有重装 Windows 才能重新开启
改用 WSL 运行 在 WSL 的 Ubuntu 环境中安装技能与依赖 不受该策略影响,推荐已经配置 WSL 的用户使用

6.2 安装后 Agent 里看不到新技能

三个排查方向:其一,重启 Agent 宿主,部分 Agent 只在启动时扫描技能目录;其二,确认技能安装到了当前使用的 Agent 目录,Skills CLI 安装时会列出目标 Agent,装错目标时重新执行 npx skills add earthtojake/text-to-cad 勾选正确目标;其三,Codex 插件方式要求 0.142.0 及以上版本,低版本会静默跳过。

6.3 技能版本过旧

新版本会新增技能与修复模型契约,执行与安装相同的命令即可完成更新:

npx skills add earthtojake/text-to-cad

更新后按 3.5 节重新安装一遍技能的 requirements.txt,保证 cadgen 版本与技能文档匹配。

6.4 生成的模型尺寸不对

把具体数字写进需求,避免"差不多""适中"这类描述;建模完成后让 Agent 执行几何检查,技能要求 Agent 用 read_scene 读取已保存的 STEP 文件实测尺寸;对仍存在的偏差,指出具体部位与目标尺寸让 Agent 修改源码重新生成。

7. 总结

7.1 核心内容回顾

  • Text-to-CAD 是一套开源免费的 Agent 技能库,让 Codex、Claude Code、DeepSeek Harness 等 AI 编程 Agent 从自然语言或图片生成参数化 CAD 模型。
  • 推荐用 npx skills add earthtojake/text-to-cad 一条命令安装,Codex 与 Claude Code 也可用各自的插件命令安装。
  • 技能安装后还需在 Python 3.11+ 环境执行技能自带的 requirements.txt 安装,并用 cadgen doctor 验证。
  • 模型即 Python 源码,尺寸是可修改的常量,STEP 为主输出,STL/3MF/GLB 按需导出。
  • Windows 11 用户注意 Smart App Control 会拦截 OCP 内核,可关闭该功能或改在 WSL 中运行。
  • 进阶链路覆盖图片建模、装配体、现货零件搜索、可打印性检查、切片与拓竹打印控制。

7.2 常见问题与解答

问:生成的 STEP 文件能导入 SolidWorks 或 Fusion 360 吗?

答:可以。STEP 是 CAD 行业的标准交换格式,生成的文件可直接导入 SolidWorks、Fusion 360、FreeCAD、Onshape 等主流软件继续编辑。

问:需要付费的 API Key 吗?

答:Text-to-CAD 本身完全免费且本地运行,不调用任何云端几何服务。唯一的成本来自 Agent 宿主所用大模型的调用费用,模型选择取决于你的 Agent 配置。

问:生成的模型能保证可以加工吗?

答:技能内置了验证闭环,Agent 会自查尺寸并生成快照,DfAM Check 技能还能按工艺检查壁厚与悬垂。涉及真实加工时,仍建议人工复核关键尺寸与公差后再投产后处理。

问:中文描述建模需求有效吗?

答:有效。建模指令由大模型理解并翻译为 Python 建模代码,中文、英文均可,混合标注尺寸的图片同样支持。