在CAD这个行当待久了,你会发现一个挺有意思的现象:入行时老师傅逼着你背快捷键、练图层规范、抠线型比例,结果这两年AI一来,大家讨论最多的变成了“我能不能直接说一句‘给我画个法兰盘’,CAD自己就把图出了”。这个需求确实真实存在,而且已经有了一堆工具和开源项目在做,它就是今天要聊的主角——text-to-cad。
简单说,text-to-cad就是通过自然语言描述,直接生成可编辑的CAD模型或图纸文件。它解决的是传统CAD制图里最耗时的那一环:把脑子里的设计意图翻译成精确的几何约束和参数。这篇内容不是给你翻译论文,而是基于我实际折腾这些工具、踩过各种坑的经验,聊聊text-to-cad目前到底能干什么、不能干什么、主流实现路径是哪几条,以及你真想把它塞进工作流,应该怎么选型。
1. text-to-cad到底在做什么:一句话需求变成图纸的背后逻辑
先说个结论:text-to-cad不是玄学,它本质上是在做“设计意图翻译”。你输入“一个直径50mm、厚度5mm的垫片,中心孔直径18mm”,工具要做的不是从无到有“凭空想象”一个垫片,而是把这个描述拆解成几何特征、尺寸参数、位置关系,再转成CAD内核能识别的指令。搞清楚这个底层的翻译逻辑,你就明白为什么有的需求能成、有的需求怎么折腾都出不来。
1.1 它和传统CAD建模的核心区别
传统CAD建模是“手动驱动”的。你画一条线,选一个约束,改一个尺寸,每一步都是显式操作。哪怕你用的是参数化建模软件,所谓参数化也只是把你手动定义的关系保存下来,下次改参数时自动更新,但初始构建仍然靠人手。
text-to-cad想改变的是这个起点。它把“构建”这个过程从手动操作变成了语言解析加程序生成。这就带来两个连锁变化:
- 输入门槛大幅降低:不需要知道圆角命令在哪、拉伸用哪个选项卡,只要描述清楚形状和尺寸。
- 参数化能力天然增强:语言描述里带尺寸,生成代码或脚本时参数就是变量,改一个数就能变一个件。
但这里有一个容易误会的点:text-to-cad并没有取消“精确建模”这个环节,它只是把精确建模的“驱动方式”从鼠标键盘变成了文本和程序。最终落地到你电脑上的,依然是某个CAD软件能打开的文件,而生成文件背后的路径,决定了这个文件能多精确、能不能改。
1.2 一个典型的text-to-cad工作链路
以目前比较常见的开源方案为例,一条完整的链路大概长这样:
- 用户输入自然语言描述,比如“M8六角螺栓,螺杆长度30mm,头部对边13mm,头部厚度8mm”。
- 大语言模型把描述解析为结构化意图,输出一段生成脚本代码(比如CadQuery或PythonOCC代码)。
- CadQuery之类的程序库调用OpenCascade几何内核,通过代码构建实体模型。
- 导出成STEP、STL或DXF格式,再导入到你常用的CAD软件里做后续处理。
这中间最关键的不是第3步和第4步,那些是成熟的技术,而是第2步——让大模型准确地把你的文字翻译成不会报错的代码。我实测下来的感受是:描述越接近“工程语言”,生成成功率越高。如果你说“做一个好看的连接件”,模型大概率给你一个华而不实的网格;如果你说“底板100×60×8,四角倒角R5,中心一个直径20的凸台高度12”,它基本能给你一个非常靠谱的参数化零件。
2. 当前text-to-cad的三大实现路径:代码驱动、模型生成、模板参数化
我在试了从论文里的Demo到商业软件的各种方案之后,把目前能落地的text-to-cad实现方式大致归成三类。三类路径背后的技术栈完全不同,适用场景也完全不同,理解了它们,你看到任何一款相关工具时都能快速判断它是“真能干活”还是“演示玩具”。
2.1 路径A:LLM + 程序化建模库(代码驱动)
这条路线的核心是:大模型不直接生成CAD文件,而是生成一段建模脚本。脚本用什么库无所谓,关键是脚本本身是可执行、可修改的参数化程序。常见组合有:
| 建模库 | 底层内核 | 输出格式 | 适合场景 |
|---|---|---|---|
| CadQuery | OpenCascade | STEP、STL、DXF | 机械零件、参数化系列件 |
| PythonOCC | OpenCascade | STEP、BREP | 复杂曲面、基于B-rep建模 |
| build123d | OpenCascade | STEP、STL | 新兴库,API更友好,适合AI生成 |
| OpenSCAD | CGAL | STL、DXF | 简单实体、程序化建模爱好者 |
这条路径最大的优势是输出精度高、可编辑性强。因为脚本是基于精确几何内核跑的,出来的STEP文件可以直接进SolidWorks、Fusion 360、FreeCAD继续编辑。专业CAD用户最在意的“文件能不能二次修改”这个问题,代码驱动天然满足。
但它对使用者的要求也相对高。虽然你不需要手写代码,但你得看得懂代码,至少在模型出问题时能定位是哪个参数写错了。我用了这么久的感受是:LLM生成的CadQuery代码,第一遍能一次跑通的概率大概六成,剩下四成需要人工微调——比如坐标方向反了、某个face选取方式不对。
2.2 路径B:端到端的AI生成模型(模型驱动)
这是工程圈讨论度最高、但实际上手后最容易落差大的一条路。所谓端到端,就是直接把文字描述喂给一个训练好的深度学习模型,模型直接输出三维体素、点云、多视图投影或网格数据,再通过算法转成曲面模型。代表工作有OpenAI Shap-E、微软3D-Former,以及学术界一堆Autodesk、Meta发的论文工作。
我的真实评价是:这条路径从视觉惊艳到工程可用之间,还差着十万八千里。原因有四:
- 生成的物体是“看起来像”,几何尺寸精度完全不可控。
- 输出通常为网格文件(OBJ/STL网格),转成STEP做参数化编辑难度极大。
- 对机械零件、对称特征、装配关系的理解很弱。
- 工业级CAD软件接收网格文件后,无法直接作为制造依据。
你说它完全没用也不对。在概念设计早期、做产品形态探索、生成灵感草图的时候,这类工具效率确实高。你给模型写一段“一个类似相机外壳的造型,圆润,手柄位置在右侧”,它给你几个形态供参考,这种场景比用代码驱动更合适。
2.3 路径C:LLM + 参数化模板库(模板驱动)
如果你回到真实工程场景就会发现,其实很多零件根本不需要“重新发明”。法兰、支架、齿轮、轴承座、钣金折弯件——这些全都是标准化或系列化的。所谓的text-to-cad,有时候只是把自然语言里的参数填到一个预设模板里。
- 这种方案的做法很简单:建好模板库,把模板里的尺寸、材料、孔径都变成变量,让LLM去填参数。
- 优点是极致稳定,只要参数识别对,生成出来的文件必然合理。
- 缺点是适用范围限死在模板库覆盖的范围内,碰到新形状就抓瞎。
这个路径在工业界已经有不错的落地产品。比如一些液压元件选型工具,你说“DN25的球阀,法兰连接”,系统直接生成对应的装配模型,这就是模板驱动的text-to-cad。你在网上看到很多“输入一句话生成标准件”的演示视频,大部分背后其实是模板库,不是AI从零建模。
3. 实测能落地的场景:标准件、工程图辅助、批量改图
光讲原理容易飘,我自己实测下来,text-to-cad目前真正能提升效率、值得放进工作流的场景,大概是下面这三个。恰好这三个场景也对应了网上搜索热度很高的几类需求。
3.1 场景一:标准件与钣金件的快速生成
这是唯一我敢放心让AI直接出生产文件的场景。拿钣金来举例,你给LLM描述“冷轧钢板Q235,厚2mm,L形折弯,两翼200×100,折弯内半径2mm”,它生成的CadQuery脚本会包含建模、展平、甚至折弯扣除量计算。出来的STEP文件直接进SolidWorks,钣金特征还是可识别的,这是我实测中效果最好的一个方向。
这类操作对AI来说简单,是因为规则非常固定:材料参数、折弯半径、展开计算都有国标/厂标可循。大模型只要熟练掌握这些规则,代码写错的可能性就很小。加上钣金件几何相对简单,Parasolid或OpenCascade内核处理起来毫无压力,出错概率低。
3.2 场景二:作为CAD学习的“脚手架”
网上搜“cad制图初学入门”的人特别多,很多人卡在第一步:连命令都不知道,更不确定画出来对不对。text-to-cad在这块是个极其好用的学习工具。
我试过带一个新来的实习生入门,直接让他用自然语言问模型“画一个底座,主视图是什么样子,剖视图怎么表达”,模型给出的代码和解释,比对着教科书一步步看更直观。因为你能直接看到“描述”和“结果”的对应关系,相当于有人手把手告诉你哪种叙述方式对应哪种几何效果。
更妙的是,你能让模型调节参数来验证理解:把直径从20改成40,看看实体如何变化。这种即时反馈、参数驱动的方式,非常适合零基础的人建立空间想象力和制图规则感。传统教学强调“先学命令”,text-to-cad提醒我们其实可以“先学思维,再学命令”。
3.3 场景三:批量处理与图纸修改
网上常常有人搜“python批量对cad修改”,这类需求很多公司都有:几十张图纸要统一改标题栏、改图层颜色、改某一个标准尺寸。以前写Python脚本操作CAD是专业程序员才能干的事,现在有了LLM,这事变成了你给我一个改法的描述,我给你一段能跑的脚本。
我实际干过一件事:一批设备的DXF图纸,需要把所有“虚线层”线型比例从0.5改成0.25,涉及四十多张图。我用自然语言给LLM描述需求,它输出一段用ezdxf库处理DXF的Python脚本,我跑了五分钟全部搞定。这个效率对比手工操作是数量级的提升。
需要注意,这条场景里AI生成的是“批处理脚本”,不是直接改图。而脚本本身能不能正确执行,取决于对DXF数据结构描述得够不够清楚。你要是没告诉模型你的图层叫什么名字,它就只能瞎猜,最后脚本一跑,把不该改的图层也改了。
4. 边界与坑:为什么text-to-cad还替代不了专业设计师
这些年我见过很多AI爱好者把text-to-cad吹得天花乱坠,也见过很多老工程师对它嗤之以鼻。两个极端都不对。我自己的判断是:它离替代专业设计还差得远,但确实已经是个值得认真看待的辅助工具。下面这几个坑,是我实际踩过之后最有体感的。
4.1 精度与加工语义的缺失
这是最致命的一条。CAD文件不只是“画得像”,它必须承载公差、表面粗糙度、材料热处理要求、加工工艺标注这些制造语义。现有text-to-cad工具生成的模型,基本只有几何信息,没有任何制造语义。
举个例子,你让模型生成一个轴,它给你一根完美圆柱;但真实设计里这根轴哪个部位需要磨削、哪个配合面公差是H7/g6、要不要开油槽、热处理硬度多少,这些才是设计的价值所在。自然语言描述可以带上这些信息,但大模型很难精准地把它们映射到CAD的标注系统里。我测试过让模型生成带公差的STEP文件,它能做,但标注位置、标注规则错漏百出,后续修正成本比直接从零画还高。
4.2 格式兼容没有想象中美好
我见过太多人兴冲冲用AI生成了一个STL文件,Open in SolidWorks之后发现是个“网格尸体”,没法编辑。这个体验非常典型:网格文件(STL/OBJ)和实体内核文件(STEP/IGES)是两码事。网格适合3D打印适合视觉展示,但不适合机械加工和装配设计。
实用建议是:如果目标是机械加工,必须选择生成STEP的路径(也就是代码驱动方案);如果只是3D打印外观原型,STL网格完全够用。网上有些工具号称能“把文字变成CAD”,仔细一看输出的是STL,那它在制造业用户眼里就是“只能看不能用”的玩具。选型之前一定看清它输出什么格式,这比它宣传的AI模型多大、参数多少重要得多。
4.3 文本描述的模糊性与需求对齐困难
自然语言天然是有歧义的。你说“一个长方体的盒子”,模型可能觉得长宽高比例不重要,随便给了个1:1:1;但工程上这个盒子长360宽250高120,每一个数字都不能错。这里的问题不在于模型能力不够,而在于需求本身从来没有被精准表达。
我试过的几个方案里,哪怕用相同的大模型,描述精确度的提升对生成结果的影响,远远大于换一个更强模型的提升。你以为自己在用AI生成CAD,实际上是在跟它做“需求对齐”。谁对齐得越清晰,谁拿到的结果越好。这不是AI的局限,这是所有工具类软件的共同规律。
4.4 千万别指望它能处理装配体和复杂关联设计
一个装配体里有几十个零件、互相有约束关系、有运动自由度定义、有一个零件变动导致关联零件跟着变。这种复杂项目所有text-to-cad工具目前集体“熄火”。原因很简单:单个零件的几何生成还可以靠局部理解做到,但装配体的关联规则、层级关系、干涉检查、运动仿真,这些需要的是系统性工程思维,不是语言模型擅长的事。
所以我的判断是:在小零件级、规则明确的场景,text-to-cad可以当半个助手用;在系统级、复杂关联的场景,它只是一个快速出草稿的工具。别期待过高,它就不会让你失望。
5. 想把手头工具换成text-to-cad,我的五个选型判断维度
如果你被上面的场景打动了,真准备在团队里引入text-to-cad,我根据项目踩坑的经验整理了五个判断维度。工具层出不穷,今天火一个明天火一个,但你拿着这五把尺子去量,基本不会被忽悠。
5.1 输出格式决定它能不能进你的流程
这是第一位的。我们直接给一个对照表:
| 输出格式 | 能否进一步参数化编辑 | 能否做CAM加工 | 兼容CAD软件 |
|---|---|---|---|
| STEP | 能 | 能 | 几乎所有主流CAD |
| DXF/DWG | 能(二维为主) | 部分 | 几乎所有主流CAD |
| STL/OBJ网格 | 难 | 有限(3D打印为主) | 通用但难编辑 |
| 原生脚本(CadQuery等) | 能 | 能(导出STEP后) | 全流程 |
我建议你先问自己一个问题:我拿了生成文件之后要干嘛?要加工,就必须STEP或DXF;要3D打印,STL就行;要给别人改图,原生脚本反而是最好的,因为参数化改起来比CAD里改还快。没有想清楚这一步,后面全白搭。
5.2 参数化和特征识别能力
这个维度很多人会忽略。一个合格的生成结果不只是“几何尺寸对”,它应该保留特征树。工业软件里打开能看见:“拉伸1”“切除2”“倒角3”这些特征步骤,而不是一个“尬的一体化实体”。前者你能回去改特征,后者动一下都费劲。
实测目前CadQuery和build123d生成的STEP文件,导入到FreeCAD或SolidWorks后特征识别率还不错;但如果你从端到端AI模型拿到的是一个“缝合曲面”,特征树基本是废的。还是那句话:选择代码驱动路径,是对可编辑性的最大保障。
5.3 大模型的识别准确率如何,有没有领域微调
同样是LLM,直接用通用大模型和用微调过工程语料的大模型,生成成功率差距明显。判断方法很简单:让它生成一个带具体参数的常见零件,看一次成功率和需要人工修正的程度。比如让它用CadQuery生成一个“直径30mm、高度20mm、带6个均布孔直径6mm的法兰盘”,一次跑通且尺寸正确的,才值得进入下一轮考察。
我见过一些项目为了准确率,专门用几千个CadQuery脚本微调模型,效果确实好很多。这类工具一般会强调自己“专为CAD优化”,但要注意有些只是包装话术,实际还是通用模型套了个壳。多测几个标准件,比看任何宣传都管用。
5.4 学习成本与社群生态
对个人用户而言,工具再强,没有社区和教程支持,用起来就是灾难。选型时建议去GitHub看一下Star数量、Issue回复速度、文档质量。CadQuery和build123d的文档我反复用过,相对友好;PythonOCC功能强大但文档抽象,新手容易懵;一些商业软件的自带工具看起来封装得很好,但出问题了连报错都看不懂,属于黑盒。
这个维度放在后一位不是因为不重要,而是因为前几个维度属于“能不能用”,这个属于“用起来爽不爽”。长期用的话,学习成本直接决定你最后能不能坚持用下来。
5.5 数据安全和私有化部署
最后这条,做军工、汽车、医疗器械的朋友请划重点。你喂给云端AI的文本描述,本质上就是你的设计意图,甚至包含产品参数、结构原理,这些是最核心的商业机密。端到端在线服务看着方便,但你的数据等于裸奔在别人的服务器上。
稳妥的做法是:
- 优先考虑可以本地部署的开源方案,比如自己搭一套CadQuery + 开源的代码生成模型。
- 商业软件里看清楚数据协议,到底是匿名处理还是明文存储。
- 涉密项目绝对不要用免费的在线text-to-cad工具。
6. 实操参考:我用CadQuery跑通的一个text-to-cad小例子
光说选型太虚,我放一个最小的可复现例子,完整走一遍“文字→代码→模型”的流程。你只要装了Python环境就能跟着跑,看完就明白整个链路是怎么转起来的。
6.1 环境准备
建议直接用Anaconda建一个独立环境,避免依赖冲突。装两个包就够了:
pip install cadquery pip install jupytercadquery第二个包不是必须的,但它能在Jupyter里直接看三维模型预览,调试效率高很多。
6.2 让LLM生成CadQuery代码
我给LLM的描述是这样写的:
“用CadQuery生成一个矩形底板,长100毫米,宽60毫米,厚度8毫米,在四个角各打一个直径6毫米的通孔,孔心距边缘10毫米。底板中心加一个直径25毫米、高度15毫米的圆柱凸台。”
注意我把尺寸、位置、形状全部用数字明确写出来了。这比“一个大板子上有几个孔,中间有个台子”的成功率高一个数量级。LLM给的代码大致如下:
import cadquery as cq result = ( cq.Workplane("XY") .box(100, 60, 8) .edges() .fillet(2) .faces(">Z") .workplane() .rect(80, 40, forConstruction=True) .vertices() .hole(6) .faces(">Z") .workplane() .circle(12.5) .extrude(15) ) show_object(result)这段代码里有些细节值得注意:rect(80, 40, forConstruction=True)是在顶面建立一个80×40的构造矩形,然后取其顶点作为孔位。因为孔心距边缘10毫米,所以四个角孔位形成的矩形正好是80×40。这个逻辑要求模型懂CadQuery的API习惯,也要求它理解几何关系,不是只会套模板就行。
6.3 导出STEP
在CadQuery里加一行导出代码,把模型转成STEP文件,后用SolidWorks或FreeCAD打开验证:
cq.exporters.export(result, "plate_with_hub.step")到这里,一次完整的text-to-cad流程就走完了。你输入了一段自然语言,得到一个精确的、可编辑的STEP文件,总共花了不到五分钟。这是目前这个技术最成熟、最稳定的形态。
7. 最后分享一个我吃了亏之后的血泪建议
text-to-cad的价值边界我算是看清了:它真正擅长的是把“反复出现的、规则明确的、参数标准化的”设计任务自动化。对这类任务,一套用自然语言描述需求、AI生成Sketch参数化脚本的闭环,能把你从重复劳动里解放出来,效率提升是几倍到十几倍。但对那些真正需要创造力的、非标的、充满制造经验的产品级设计,它目前还只能当个灵感草稿工具,替代不了你的工程判断和工艺积淀。
所以我给你的建议是两条腿走路:一只手把text-to-cad工具融进日常的重复性工作,另一只手把你的核心专业能力沉淀在经验、标准、工艺里。AI负责给你省出时间,你负责把这些时间投入到真正有设计深度的事情上。这个工具的本质,其实和当年从图板走向CAD软件没什么两样——它淘汰的不是设计师,而是不愿意更新工具的设计师。