看到"text-to-cad"这个词条出现在热词榜上,我一点都不意外。这两年AI生成图像、生成视频已经不算新鲜事,真正让工程圈和设计圈坐不住的,是这个方向终于开始往"精确制造"这个硬骨头上啃了——也就是直接用自然语言生成可供加工、装配、仿真使用的CAD模型。
我过去一年里反复试过市面上好几套文本转CAD的工具和研究原型,结论是:好消息是这条路真的走得通,坏消息是它跟"你说一句话,机器直接给你出全套工程图"还差着十万八千里。这篇东西我不打算做概念科普,就围绕我自己实测过的流程、踩过的坑、以及我认为合理的落地方式展开,尽量少讲虚的,多给能直接参考的东西。
1. 文本到CAD的底层逻辑:不是"一句话变图纸",而是整条建模管线的重构
很多人对text-to-cad有个直觉理解:像ChatGPT写作文一样,我输入"帮我画一个法兰盘",软件就哗啦一下给你生成一个法兰盘。这个理解不能说全错,但会严重误导你对能力边界和使用方式的判断。
实际上,目前所有能跑的文本转CAD方案,底层都是把"自然语言描述"层层翻译成CAD内核能理解的操作序列。一次完整的转换至少要经历这么几个环节:
- 语义解析:把描述中涉及的功能意图、零件类型、特征关系(比如"底座上有四个均匀分布的孔")拆解成结构化的约束条件。
- 参数映射:将尺寸、公差、材料等属性映射到具体的数值或参数变量。
- 建模过程生成:按CAD操作的顺序生成一系列步骤——草绘、拉伸、旋转、打孔、阵列、倒角。
- 内核执行:把上述步骤交给CAD几何内核(Parasolid、ACIS、OpenCASCADE这类)真正构造成实体模型。
这也是为什么text-to-cad跟text-to-image有本质区别。生成图片哪怕手指数错了也无所谓,看起来"像"就行;但CAD模型最终要进CAE仿真、CAM加工、3D打印切片,差0.01毫米在装配时就是装不上。所以整个转换链路里,最烧脑的不是"能不能识别出这是一个法兰盘",而是"能不能把模糊的描述精确成一套无歧义的建模指令"。
打个比方:文生图像是让一个画家听你描述画出意象,画错了你顶多觉得不像;text-to-cad则是让一个经验丰富的制图员听你描述后,直接在图纸上把每个尺寸标注出来。前者考领悟力,后者考还原度和精确度。
这套逻辑决定了我们使用它的方式——你不能指望"一把椅子"这种级别的输入得到满意的模型,但如果你给的是"座椅高度450mm、座面宽度500mm、深度520mm、靠背倾角100度的四脚椅,椅脚带20mm倒角",那么目前的主流模型基本都能生成一个相当可用的基础模型,你再在这个基础上做细化调整,效率就非常高了。
实测下来,描述信息的质量和结构化程度,对生成结果的影响远大于模型本身的选择。这是我反复验证过的第一准则。
2. 当前几类主流实现路径,各自的成熟度和适用场景
我拆了几个方向分别做了测试和调研,目前能跑通的技术路线大致可以分成四大类。它们不是替代关系,各自适用的场景差异很大,选错路线会特别痛苦。
2.1 文本到程序化CAD代码:最接近可用的方案
这条路线的基本思路是:LLM接收自然语言描述,输出一段参数化建模脚本(常用OpenSCAD、CadQuery、build123d这类Python库),然后由脚本解释器在CAD内核中执行生成模型。
它最大的优势在于生成结果可审查、可修改。你拿到的不只是一个死模型,而是一段带参数的代码,改一个数字就能调节尺寸,甚至可以反复生成组合出系列化变体。
我实际测试过用CadQuery描述机械零件。比如输入"生成一个直径100mm的圆柱体,中心开直径30mm的通孔,端面四周均匀分布4个直径8mm的沉头孔,沉头直径15mm,深度5mm",LLM给出的代码可以直接跑通并生成正确模型。这类问题的语法规则明确、逻辑链条清晰,LLM处理得很稳。
不过缺陷也很明显。LLM对"代码语法"的记忆非常好,但对"空间关系"和"拓扑语义"的理解经常出错。比如它可能写出一段语法完全正确的代码,但生成的模型中两个特征重叠了,或者孔的位置计算偏了一个角度。这些错误从代码上看很难发现,必须打开模型检查。
2.2 文本到B-rep网格/隐式曲面:适合概念设计,不适合制造
另一条路线是让模型直接输出网格或隐式表示的几何体,类似文生3D的思路。包括一些基于扩散模型的研究工作,以及不少NeRF/3DGS衍生项目,都能从文字生成有一定细节的三维形状。
这条路线生成的东西看起来非常"漂亮",曲面流畅、造型复杂,特别适合工业设计前期的造型探索和概念展示。但它天然存在几个目前无解的问题:
- 生成的是网格,而不是参数化实体,导入SolidWorks、NX这类传统CAD软件后无法直接编辑特征。
- 曲面精度不可控,经常出现非流形几何、自相交面片、微小裂缝等工程灾难。
- 拓扑结构混乱,想把圆孔变成腰形槽这类修改几乎等同于重建模。
我的判断是:这条路线短期内更适合做方案比选和客户沟通用的"示意模型",离实际投产还有明确距离。如果你只需要"看起来像那么回事"的模型给领导汇报,用它效率极高;如果你打算拿生成结果去开模具,趁早放弃。
2.3 文本编辑存量模型:被严重低估的落地方向
这个方向可能听起来没那么性感,但实际价值非常大——用自然语言对已有CAD模型做交互式修改。比如"把这块板的厚度从5mm改成8mm"、"在左侧凸台上增加一个直径10mm的安装孔"、"把圆角半径从2mm改成3mm"。
为什么说它被低估?因为存量模型的修改在工程实践中占了日常工作量的巨大比例。改版、适配、复用、参数调优,这些活儿的模型基础是明确的,LLM只要理解清楚"改哪里、怎么改",再定位到对应的特征和参数,执行修改的成功率远比从零生成高得多。
目前这块主要依赖两类实现:一类是直接操作特征树和参数表,前提是你的模型是参数化建模生成的,特征树干净可解析;另一类是通过CAD软件的API二次开发接口做程序化修改,比如SolidWorks的API、FreeCAD的Python接口。
我试过的场景里,最顺手的是对参数化特征树明确的标准件模型做修改。输入"把这个齿轮的齿数从20改成24,保持模数不变",程序能在几秒内完成修改并重新生成。但如果模型是别人建模的、特征树一团乱麻、一堆无特征命名和多余的参考几何,LLM基本就抓瞎了——能不能定位到准确的特征都是问题。
这个方向的瓶颈不在于语言理解,而在于CAD软件的底层数据结构和开放的API能力。哪个平台把特征识别和程序化修改这条路铺平,哪个平台就能在AI辅助设计这个赛道上占住身位。
2.4 LLM Agent直接操作CAD软件:理想丰满,现实骨感
这是最"科幻"的方向——不生成代码,也不离线建模,而是让AI像人一样直接打开CAD软件,移动鼠标、点击工具栏、弹对话框、操作视图。相当于给LLM配了一双操作软件的手。
AutoCAD的某些实验性功能、SolidWorks的宏录制回放扩展、以及部分研究团队做的智能体原型,都是沿着这个方向走的。我试过一些能在CAD界面里自动执行操作的Agent框架,说实话,看演示视频很震撼,自己上手就露馅。
问题出在CAD软件本身。它的操作界面是几十年的历史包袱,菜单层级深、对话框逻辑复杂、不同版本界面差异大,Agent光"找到正确按钮"这一步就要消耗大量资源。而且CAD操作需要精准的视图控制,Agent在三维空间里的视角判断经常出现偏差——它以为自己在顶视图操作,实际上模型已经转到了一个奇怪的角度。
我不否认这个方向长远的可能性,但目前阶段作为生产力工具还太早了。如果你在评估选型,除非你的场景非常标准化、操作路径非常固定,否则不要在这条路上下重注。当个研究方向跟踪可以,拿来解决实际生产问题是给自己找麻烦。
| 实现路径 | 输出形式 | 可制造性 | 可编辑性 | 当前成熟度 | 适合场景 |
|---|---|---|---|---|---|
| 程序化CAD代码 | 参数化脚本+实体模型 | 高 | 高 | 较高 | 标准件、机械零件初版生成 |
| 网格/隐式曲面 | 网格模型 | 低 | 低 | 中等 | 概念设计、方案比选 |
| 存量模型文本编辑 | 修改后的模型 | 高 | 高 | 中高 | 改版、参数调整、系列化适配 |
| Agent直接操作软件 | 软件内模型文件 | 中 | 中 | 低 | 标准化流程自动化 |
3. 我把流程完整跑通了一次:一套可参考的文本到CAD实操流程
理论说多了全是概念,我直接分享一下自己完整跑通的一套流程。选型上我用的是LLM生成CadQuery脚本 + FreeCAD内核执行验证的组合,理由很简单:开源、可控、出错了能看代码修代码。
3.1 环境准备:三个环节缺一不可
- LLM:我用的是通用大语言模型API,没有做微调,靠Prompt约束。你要是有资源做微调当然更好,但先用通用模型验证流程完全够用。
- CadQuery:这是一个基于Python的参数化CAD库,封装了OpenCASCADE内核。安装直接
pip install cadquery,依赖会自动处理。 - FreeCAD或其他CAD查看器:用于验证生成结果。也可以用CadQuery自带的
cq.exporters.export导出STEP文件,再丢进FreeCAD看。
安装这块最容易踩的坑是CadQuery和本机OpenCASCADE的版本冲突。建议直接用虚拟环境装,别往系统Python里硬塞,不然依赖冲突能折腾你半天。
3.2 提示词模板:结构化描述是成功的一半
我多次实验后发现,一个好的text-to-cad提示词,只靠"请生成一个XXX"远不够。至少要包含五个部分的信息:
- 实体类型和目标:明确要建什么零件,用途是什么。
- 关键尺寸参数:尽可能给出具体数值,没有数值就定义变量名和约束关系。
- 特征描述:孔、槽、倒角、阵列这些特征的位置和参数。
- 对称与装配约束:哪些孔均匀分布、哪些面要贴合、有没有同轴度要求。
- 输出格式要求:明确要求生成CadQuery代码,且代码要包含可调参数。
我实际用过的一个典型提示词长这样:
请使用CadQuery生成一个法兰盘模型。要求: 1. 外径120mm,内径40mm,厚度15mm 2. 沿外圈均匀分布6个直径12mm的通孔,孔心距圆心半径45mm 3. 正反两面各有一个深2mm、宽3mm的退刀槽 4. 所有锐边倒角C0.5 5. 代码中所有尺寸用变量定义,并放在文件顶部方便修改这个提示词跑出来的代码质量就相当高,因为我把几何约束全都显式化了。你要是丢一句"画个法兰盘",模型大概率画出一个完全不像的东西——不是它笨,是你没给它足够的信息。
3.3 生成结果验证的完整动作
拿到CadQuery脚本后,别急着高兴,验证环节至少要过三关:
第一关:语法和运行。直接跑脚本,看能不能出STEP文件。这一步能过滤掉相当大比例的垃圾输出,比如缩进错误、函数名拼错、坐标系弄反这类低级问题。
第二关:几何参数复核。把生成的STEP文件导入FreeCAD,用测量工具逐个核对关键尺寸。我实测最常见的问题是"特征参数对了但位置偏了"——比如孔的数量对,但分布圆的直径差了一截。这种错误单纯看代码很难发现,必须量模型。
第三关:拓扑连通性检查。在FreeCAD里用Part模块检查模型是不是单个连续实体,有没有多个壳、退化面、无效边。这一步直接关系到后续能不能做CAM和仿真。
三关全过之后,我会把模型和提示词配对存档。因为下一轮如果你想生成类似零件,直接在旧提示词上改参数比从零写提示词效率高得多——这也是这套流程真正值钱的地方:跑通一次之后,后续同类零件的生成成本几乎降到了零。
4. 落地过程中必然踩的坑:我替你排掉前五名
这套流程我前前后后跑了小半年,踩过的坑比成功的次数多。挑五个最有代表性的说说应对方法,能帮你少走至少两个月的弯路。
4.1 自然语言的模糊性和CAD确定性的冲突
你会发现一个规律:提示词里只要出现"大约""差不多""稍微""更大一点"这类词,生成结果就是一场赌博。因为CAD本质上是精确的数学运算,它不接受模糊,你必须给一个具体的数。
这跟人跟设计师沟通完全不同。你跟学徒说"这里孔再大一点",他能凭借经验判断是从8mm改到9mm还是改到10mm;但LLM没有这个判断依据,它就是随机给你挑一个数。
避坑方法:提示词模板里强制要求"任何模糊描述必须被替换为具体数值或参数变量"。如果你的内部流程允许,最好给LLM一个参考数值表,比如"标准的M8连接孔,孔径9mm,沉头直径16mm"这种工程常识库,能显著提高准确率。
4.2 拓扑错误的隐蔽性
语义是通的、尺寸是对的、特征也都存在,但模型就是不能用于制造——这是最气人的情况。问题往往出在拓扑层面:两个实体看起来是连在一起的,实际上中间有一条肉眼不可见的微缝;或者布尔运算后留下了退化面。
这种问题在三视图里根本看不出来,只有切截面、做干涉分析、检查实体属性时才会暴露。处理办法只有一个:强制验证流程,不打折扣。每次生成后都跑一遍几何检查,用代码把"检查实体数量=1、检查边界表示有效、检查体积>0"这几个断言写进流程里,不合格就自动让LLM修复或重新生成。
4.3 单位混乱:英制公制混搭
这是最让人血压飙升的坑。LLM训练数据里既有英制又有公制,如果你提示词里写的是英寸,但没明说单位,它可能直接按公制处理,或者反过来。生成的模型尺寸差25.4倍,初看工艺图上根本发现不了,一上机床全废。
避坑方法:提示词开头强制声明"本场景一律使用公制,所有尺寸默认单位毫米"。如果涉及英制参数,先换算成公制再写进提示词。这个约束成本最低,收益最大。
4.4 特征约束丢失
"四个孔均匀分布"这句话看起来没问题,但LLM可能真的就给你生成了四个随意放置的孔,虽然数量和直径都对,位置却完全没按均匀分布来。原因在于LLM的空间推理能力本质上很弱,它对"均匀分布"一词的理解是文本层面上的,而不是几何层面上的。
避坑方法:不要在一句话里描述复杂特征,要拆开写:"阵列方式=圆周阵列;阵列数量=4;阵列圆心=(0,0);分布半径=40mm"。把隐式的约束关系显式化、列表化,让LLM不用"推理"几何关系,只需要做信息转换。
4.5 用户对生成结果的过度信任
这点与其说是技术问题,不如说是管理问题。text-to-cad生成的模型往往外观规整、尺寸标注齐全,看起来非常专业,反而容易让人放松警惕,跳过正常的审查流程。
我见过不止一次,工程师拿到AI生成的模型觉得"好得很",直接发给了供应商报价,结果对方一打开就发现存在无法修复的拓扑缺陷。记住一个原则:AI生成的模型在任何意义上都等同于"新人第一版"的图纸,必须走完整的校对、审核流程,不能因为是AI生成的反而跳过质量关口。
5. 这技术往深了走,会把设计流程带向哪里
聊完地上跑的,最后聊点抬头看的方向。我判断text-to-cad真正的大杀器不是"从文字生成新模型",而是下面三个延伸方向。
5.1 参数化模板生成器:把系列化设计成本打下来
任何做非标设备、专用机械的公司,都有一堆结构相似但参数不同的零件。过去这些零件要一个个建,现在text-to-cad最合适的切入场景就是做参数化模板:用一次性的投入生成一个带全套参数的模板模型,后续所有变体只需要改文字描述即可。
比如你有一系列的支撑座,轴径从20到60毫米有十几种规格。用传统方式你得建十几个模型,用text-to-cad你只需要把一个模板模型做好了,剩下的是让LLM根据"轴径改为45,对应安装孔距调整为80"这类指令自动输出变体模型。
这个逻辑的本质是把"建模工作量"转化为"参数定义工作量",后者成本远低于前者,而且不容易出错。我建议所有涉及系列化设计的团队都往这个方向做积累,越早建好的模板池,后期复用率越高。
5.2 设计意图捕获器:把经验沉淀进模型
一个比生成模型更值得关注的方向是"反向的":把文字描述和经验约束绑定到已有模型上。比如工程师建了一个箱体结构,他顺手写了一句"壁厚8mm是因为要承受2MPa内压",这句话如果被系统捕获并跟模型特征关联起来,后续任何修改壁厚的操作都会触发安全提醒。
这个能力往大了说就是"设计知识的结构化管理"。现在大量工程经验躺在老师傅脑子里,人一退休经验就没了。text-to-cad的技术底座天然适合干这件事——因为LLM擅长文本理解,CAD软件擅长结构表达,两者一结合,经验就能以可检索的形式沉淀下来。
我不觉得这很近,但它一旦成型,对整个行业的知识传承方式会是颠覆性的改变。
5.3 几何内核成为Agent的"手",而不是LLM成为CAD的"嘴"
最后说一个我认为判断技术走势的关键视角。现在很多人在争论"LLM会不会取代CAD软件",我的看法很明确:不会,恰恰相反,LLM会让底层几何内核变得更重要。
CAD软件的核心价值从来不是界面和对话框,而是它内部的几何建模内核——那个能把数学曲面、拓扑关系、布尔运算跑得又快又准的引擎。LLM负责的是理解需求、拆解意图、生成指令,最终的执行还是靠几何内核。未来真正可能出现的局面是:LLM在前台做"翻译官",几何内核在后台做"工匠",而传统CAD软件那层厚重的图形界面和交互逻辑,反而可能被压缩成薄薄的一层。
对从业者来说,这个判断有一个非常实际的指导意义:你真正要学的不是怎么跟AI对话,而是怎么理解几何内核的建模逻辑。参数化建模的思想、特征树的组织方式、草图的约束体系——这些底层概念才是你驾驭AI工具的关键,而不是某个具体软件的操作技巧。
写在最后的一点个人选择建议
如果你问我,现在这个阶段到底该不该在项目里用text-to-cad,我的回答是:该用,但要用对地方。我自己目前的用法边界是这样的——从零生成全新复杂装配体,不用,风险太大;生成标准件、基础零件、系列化变体,放心用,效率提升非常明显;修改存量模型参数型尺寸,放心用,但前提是特征树干净;概念方案快速比选,放心用,反正后面还要重做。
别指望它是万能设计助手,把它当成一个"特别勤快但需要盯着的实习生",你的使用体验会好很多。这位实习生24小时不休息,出活快,但偶尔会把孔的位置放偏,你得记得检查。