
今年我把 text-to-cad 这个方向前前后后折腾了好几个月最大的感受是它确实不是噱头但也不是一句话替代设计师的科幻剧情。简单说text-to-cad 就是让你用自然语言描述比如生成一个带四个腰型槽的安装底座让 AI 输出可编辑的 CAD 实体模型甚至直接给你一个 STEP 文件。这篇文章把我实际试过的技术路线、工具选型、踩坑经历都整理出来给准备切入 CAD AI 方向的机械设计、建筑画图、3D 打印玩家做一个还算详细的参考。先说个结论如果你以为输入帮我画一个减速器就能拿到完整装配体趁早打消这个念头。以现在的成熟度text-to-cad 更适合做概念草图、前期方案比选、以及给完全不会 CAD 的人一个快速起点。真正能用得顺手的人往往是那些本来就懂 CAD、愿意把 AI 生成的模型拿回来修的人。下面展开聊。1. 先搞清楚text-to-cad 到底在解决什么问题1.1 不是自动画图是把语言翻译成几何传统 CAD 的工作流是草图、约束、拉伸、切除、倒角、装配每一步都需要人手动完成。哪怕你非常熟练把一个脑子里的想法变成三维实体也得十几分钟起步。text-to-cad 的工作方式完全反过来你负责描述模型负责把文字转成几何数据。这里要区分两类输出网格模型Mesh类似游戏模型由三角面片组成看着像一回事但没法直接用于机械加工或二次编辑。实体模型B-rep / STEP由 CAD 内核里的拓扑信息描述有面、边、孔、倒角等特征能回到 FreeCAD、中望 CAD、AutoCAD 这类软件里继续改。目前很多演示视频里生成的是网格真正能用的 text-to-cad 工具会把结果转成 STEP 或至少转成可重建的脚本。这个区别直接决定了生成的文件是摆设还是真能干活。从使用场景看text-to-cad 最密集的应用方向有三个一是工业设计初期的概念验证二是给不会 CAD 的创客/3D 打印爱好者提供快速建模入口三是教育场景里帮助学生理解几何描述到实体生成的思考过程。在这些场景里核心需求不是精确而是快。1.2 概念设计与制造级模型的差距还很大我说句实在话现阶段大多数 text-to-cad 工具生成的模型拿来比划比划完全没问题但要直接进加工车间还差得远。为什么因为真实零件不只有形状还有尺寸公差、表面粗糙度、螺纹标注、材料信息甚至加工工艺约束。这些信息藏在工程图里AI 目前既没有能力帮你做受力分析也不知道你这根轴后面要配什么轴承。所以我的观点是text-to-cad 解决的是从文字到几何的鸿沟而不是从几何到制造的鸿沟。后者仍然是传统 CAD/CAE 软件的天下。凡是宣传一句话出工程图的我建议你把期待值调到 30%。2. 扒一扒实现路线三条主流技术流派2.1 文本生成代码用 CAD 内核重建这个思路很好理解你给一大段自然语言LLM 把它翻译成一段 CAD 脚本比如 OpenSCAD、CadQuery 或 FreeCAD 的 Python API然后在本地用参数化内核执行脚本生成真正的实体模型。拿 CadQuery 举例它的几何构建方式是从面出发一步步画草图和拉伸。假设提示词是生成一个长 40mm、宽 30mm、高 10mm 的盒子上表面中心有一个直径 8mm 的通孔大模型可以写成import cadquery as cq box cq.Workplane(XY).box(40, 30, 10) box box.faces(Z).workplane().center(0, 0).hole(8) cq.exporters.export(box, output.step)这段代码执行后输出一个带孔实体的 STEP 文件尺寸精确、拓扑干净可以直接导入任何主流 CAD 软件。这就是文本转代码再转 CAD的典型流程。这个流派最大的优势是结果天然是可控的参数化模型。因为代码就是参数改一个数字就是改一个尺寸生成的每种特征都由 CAD 内核验证过不会出现破面或非流形体。缺点也很明显——只适合规则几何体遇到自由曲面就得换路子。2.2 文本生成三维张量再把点云变成曲面这个流派跟 AI 画画更像。文本首先被编码成条件向量喂给扩散模型或自回归模型模型输出体素、点云或者神经辐射场NeRF。这些原始表示不能直接当 CAD 用后面还要经过一个曲面重建步骤变成网格再尝试转成 B-rep 实体。我测过几个开源模型比如 Shap-E 和 Point-E。它们生成一个小兔子、一把椅子、一个花瓶都挺像样但你要量一下尺寸大概率惨不忍睹因为这类模型根本不对齐坐标轴也没有尺寸概念。从点云重建 B-rep 更是世界级难题市面上大部分工具宁可只给你 STL 网格也不碰 STEP 转换。但你别说它没用。外观设计、概念雕塑、快速演示这类场景里像比准重要。我先让模型出一个大致的体量块再拿回 FreeCAD 里用曲面工具重新描一遍轮廓效率反而比从零开始拉曲线高。它的定位是灵感生成器不是出图工具。2.3 基于零件库的检索匹配与特征组合第三种思路比较取巧提前给常见零件建好带文字描述的库比如法兰、轴承座、支架输入提示词时先做语义检索找到最相似的几个零件再把它们组合成装配或直接把特征拼到一起。这样做的好处是精度高、速度快还能保证生成结果在制造可行性上不出大错。缺点是库里没有的东西它变不出来。很多工业级 AI 建模产品会用这个路线做兜底以提升成功率。对个人用户来说这个流派最适合做标准件选型和装配方案预览。2.4 从生成结果到可用模型为什么总要整形不管是扩散模型还是检索组合最终落到 CAD 里都会遇到一个绕不开的问题拓扑修复。点云重建的网格常有破洞、交叉面、零厚度边体素转实体又容易出现阶梯效应多特征布林运算时还可能出现该切掉的没切掉不该切的少了一块。你可以把这一步理解为AI 用泥巴捏了个坯子你还需要拿刮刀把它修出精确的棱角。所以我在实操流程里永远留一个几何修复环节工具主要用 FreeCAD 的 Part 菜单里的修复形状或者 Blender 的网格清理插件。养成这个习惯之后text-to-cad 出活率会高很多。3. 现阶段能落地的工具和我的选型3.1 我测过的几个 text-to-cad 方向的代表项目这里不吹不黑只说我真实测过的方案按易用性排序。工具 / 项目输出格式上手难度适合场景主要坑CadQuery LLM自建流程STEP / BREP中规则机械零件、标准件组合需要写一点 Python提示词要讲究Zoo Text-to-CAD网页端STEP / 3MF低概念设计、快速出形状生成速度不稳复杂描述容易翻车Shap-E / Point-E开源模型STL / PLY 网格高外观形状探索、概念造型尺寸乱、拓扑烂需要大量修复Tinkercad AI 插件思路模型/STL低教育、极简单体只支持非常基础的特征FreeCAD 的 Python 宏 LLMSTEP中需要精确控制的零件生成代码容易报错需要反复调我重点推荐两种组合如果你要做机械类零件走 CadQuery LLM 路线如果只是做外形概念用 Zoo Text-to-CAD 这种网页端先出形状再导出 STL 做后期处理。3.2 不同场景的选型原则选工具不是越贵越好而是匹配需求。你要先问自己三个问题。第一个问题输出需不需要回到专业 CAD 里改需要就选能出 STEP 的工具不要选只能导 STL 的不然你导入 AutoCAD 或中望 CAD 后会发现它只是个实心的网格壳根本无法编辑特征。第二个问题你更在乎形状像还是尺寸准形状像就交给扩散模型尺寸准则必须走参数化脚本路线。我用 CadQuery 生成过自带安装孔和圆角的底座所有尺寸都严丝合缝对上同样的话术丢给扩散模型它只会给我一块看起来像底座但孔位完全随机的疙瘩。第三个问题你的耐心和修复能力有多少如果你只会双击打开 CAD、对曲面修复一无所知那就老实选工具内置模板如果愿意花半小时修拓扑扩散模型反而能打开更多创意空间。4. 亲手做一遍从一句描述到可编辑的 STEP 文件4.1 环境准备与一个最小可跑的 Demo我这里演示一个完全开源的流程本地安装 CadQuery再用大模型 API 写生成脚本。你不需要多高的显卡CadQuery 是纯 CPU 计算普通笔记本就能跑。先安装依赖pip install cadquery然后写一个最简化的入口脚本把我们想要的自然语言描述通过提示词传给大模型拿到返回的 Python 代码后再执行import os import cadquery as cq import openai def text_to_cad(description, api_key): openai.api_key api_key prompt f 你是CAD脚本工程师。请将用户描述转换为CadQuery Python代码。 要求 1. 使用cadquery库 2. 代码必须可以独立运行 3. 最终用cq.exporters.export(part, output.step)导出STEP 4. 所有尺寸显式写明单位毫米 用户描述{description} resp openai.ChatCompletion.create( modelgpt-4o-mini, # 也可以换成本地开源模型 messages[{role: user, content: prompt}] ) code resp[choices][0][message][content] # 清理代码块 code code.strip() if code.startswith(python): code code[9:] if code.endswith(): code code[:-3] exec(compile(code, generated, exec), {}) return code这里有个细节要注意给大模型的提示词里一定要写所有尺寸显式标明单位毫米否则它可能在代码里用 1 当 10 用出来的零件不是你想要的大小。4.2 提示词这样写出来的模型才像样text-to-cad 成不成提示词占七成功力。我踩了很多次坑之后总结出一个通用模板生成一个[零件类型] 主体尺寸为[长]x[宽]x[高]毫米 在[指定位置]添加[特征类型]特征参数为[关键尺寸]位置相对于[参考面/原点] 其他加工面需要做到[圆角/倒角/螺纹等] 导出为STEP文件。举个例子实际我常用的描述生成一个L形支架主体长60mm宽40mm高10mm竖直部分高35mm厚度8mm 底面有四个直径6mm的安装通孔孔位于四角距边缘10mm处 所有外轮廓边倒角1mm导出为STEP文件。这样写的好处是信息密度高模型不用去猜L形支架具体长什么样。现实是同一个L形支架在不同人脑子里尺寸完全不同所以你不想让它自由发挥的地方就全部写死。4.3 生成代码并执行大模型返回的 CadQuery 代码经常会有小问题比如把faces(Z)写成faces(z)或漏掉最终导出语句。我自己会给模型提一个附加要求先写完整代码再写一行 seelf-check 说明。不过就算这样也不能保证一次通过。一个非常实用的做法是把 exec 包在 try/except 里如果报错就把错误信息重新塞给大模型让它修一版。这类似于AI 生成 人工反馈的闭环。try: exec(compile(code, generated, exec), {}) except Exception as e: fix_prompt f代码运行报错{e}请修复并重新输出完整代码。 # 再调用一次模型修复我实际测试中一个中等复杂度的零件有主体、有孔、有倒角平均需要 2~3 轮修复才能跑通。这不算麻烦关键是每轮错误信息都很明确修起来快。4.4 生成后导入传统 CAD 并转成工程图CadQuery 导出的 STEP 文件可以直接拖进 FreeCAD、中望 CAD、SolidWorks 或 AutoCAD。这里以 FreeCAD 为例打开 FreeCAD新建一个文件。菜单文件 - 导入选择刚才生成的output.step。导入后模型会在部件工作台下显示为一个实体对象。选中它检查属性 - 形状是否是 Solid。然后切换到技术绘图工作台新建一个 A4 图纸页面把模型拖到视图上添加尺寸标注。最后导出 PDF 或 DXF这就是一份能给别人看的工程图。很多网友搜cad 导入 layout 步骤详解其实跟这个流程是一回事。AI 生成的模型并不特殊导入后它就是普通几何体。你唯一要注意的是单位如果 CadQuery 代码写的是毫米但 FreeCAD 导入后变成 20 米说明导入单位设置不一致直接在导入设置里改成毫米就好。5. 实操中踩过的坑问题排查速查5.1 最常见的 8 个问题和解决步骤我把这段时间反复遇到的问题整理成了表格每一条都是真金白银的教训。症状可能原因解决步骤生成的 STEP 导入 CAD 后是空的导出路径没写对或代码没执行导出语句检查cq.exporters.export是否执行路径是否带.step后缀模型尺寸完全不对比如单位变成米没在提示词里指定毫米或导入设置错提示词写单位毫米导入时按毫米导入孔的位置偏了或漏了提示词里的四角距边缘10mm语义有歧义换成四个孔中心坐标分别为 (10,10), (50,10), (10,30), (50,30)这种明确坐标布尔运算失败特征加不上去草图平面选错了面不在预期的面上检查.faces(Z)是否正确改成faces(Z or Y)重新试模型有破面或不是实体扩散模型生成的是网格不是 B-rep在 CAD 里先做网格转实体或是改用 CadQuery 路线大模型生成代码里混入无关文本提示词不够强它返回了解释文字解析代码块时只取 python 中间内容加强提示词AI 输出的代码用了不存在的函数训练数据包含旧版 API在提示词里加上只使用 cadquery 当前稳定版本的函数生成过程很慢CPU 一直满载模型本身复杂CadQuery 重建实体耗时不是报错耐心等复杂造型拆分成多个小特征5.2 圆角命令用不了这类经典 CAD 坑在 AI 模型里也会遇到很多 CAD 用户搜过cad 里面 f 命令用不了其实这问题我在 text-to-cad 流程中也遇到过。大模型生成一个带圆角的零件我用 FreeCAD 打开后想再倒一个角结果命令没反应。原因通常是导入的 STEP 虽然看着是实体但内部某些边已经退化或者模型是由多个壳拼接而成没有统一成一个实体。解决方法是先在 CAD 里做修复形状FreeCAD 的 Part 菜单里有或者用并集把多个壳合并。这个步骤看起来多余但能解决 90% 的命令点不动问题。5.3 算力不够怎么把 text-to-cad 用起来很多人一听到 AI 3D 生成就觉得必须要有 4090 显卡。其实分工具。CadQuery 路线纯 CPU 就能跑生成的代码量不大对硬件几乎没要求。Shap-E 这类扩散模型确实需要 GPU但 8GB 显存的显卡也能勉强跑再低就建议直接用网页端工具反正生成的是概念模型不涉及本地隐私。显存不够时有一个常见报错CUDA out of memory。办法是把输入体素分辨率降低比如从 128 降到 64或者把模型推理的 batch size 设为 1。如果你用的是 Zoo 这类网页端就没有这个烦恼但你会遇到排队问题高峰期可能要等几分钟。6. 我的真实使用心得和后续扩展思路6.1 什么项目我建议用 text-to-cad从我个人的经验看下面这几类项目用 text-to-cad 最划算。第一类是给客户出方案前的前期比选。以前我要画三版外观方案每个都从零开始至少半天。现在用 text-to-cad 生成几种外形草图再各花十分钟细化提案效率翻倍。第二类是教学演示。我需要给学生展示从需求描述到三维模型的完整链路text-to-cad 本身就是最好的教具。第三类是3D 打印的快速原型。只要不要求高精度很多外壳、支架类零件直接让 AI 生成 STL切片打印够用了。反过来需要严格尺寸控制、强度校核、配合公差的项目我不建议用。比如齿轮轴、壳体密封面、需要和气缸配合的零件老老实实手画吧。6.2 后续可以怎么扩展如果你已经跑通上面这条流程还可以往三个方向深入。一是自建零件描述库。把你们公司常用零件整理成描述- CadQuery 代码对再塞给本地模型做微调之后的生成成功率会明显提高。二是结合拓扑优化。先让 text-to-cad 出初始结构再用仿真软件做拓扑优化把 AI 生成的概念变成一个真正满足力学性能的设计。三是给提示词加约束规则。比如把必须使用 45 号钢可加工的特征写到系统提示词里让大模型避开过于诡异的悬臂结构或极薄壁厚。这能大幅减少生成出来但根本没法加工的尴尬。我在实际使用中发现text-to-cad 最大的价值不是把你变成 CAD 高手而是把想法的第一次落地这个环节压缩到了分钟级。哪怕后面那些修正工作依然要靠人前面的启动成本已经低到可以随时做头脑风暴了。所以我的建议是别等工具完美先把它当成一个可控的智能草图助手今天就可以拿简单的支架、法兰、盒子去试。试完你会对AI 能帮工程师做什么有更具体的答案。