凌晨两点,我对着电脑屏幕把一段微信消息来回看了三遍——"轴承座外侧再加两个M6的安装孔,孔距40,别碰到加强筋"。一台已经出图的设备要做设计变更,落到图纸上意味着改三个视图、更新两处标注、再检查一遍干涉和装配关系,少说也要折腾大半天。我当时脑子里冒出来的第一个念头是:如果这句话能像发消息一样直接变成CAD模型,哪怕只生成一个带参数的基础体,后面的活至少能省掉三分之一。
这个念头对应的技术方向就是text-to-cad,也是我这半年一直在折腾、踩坑、并且最终跑通了完整工作流的东西。这篇博客不是概念科普,是我从原理、工具选型到实际生成、再到导入主流CAD软件出图的完整记录。适合这几类人看:被改图折磨的机械工程师、想用AI提效的非标设计从业者、玩3D打印的创客,以及刚入门CAD、想搞清楚"用AI生成模型到底靠不靠谱"的学生。我尽量把每一步怎么操作、为什么这么操作、哪里容易翻车都讲透,你跟着走一遍,基本就能自己动手了。
需要先说清楚的是,text-to-cad目前还不是"输入一句话直接得到一张符合国标的工程图"那么神,它有很强的能力边界。它真正擅长的是把自然语言描述的几何需求,变成可编辑的参数化模型或网格模型。至于公差、粗糙度、材料、热处理这些工程信息,目前还得靠人。搞清楚这个边界,你才不会对它产生不切实际的期待,也不会错过它已经能帮你省下的那些时间。
1. 我不是想偷懒,是被改图改怕了:text-to-cad到底在解决什么
1.1 设计变更的"连锁反应",才是CAD工作的真正痛点
很多人以为CAD工作者的日常是"从零开始画一个新零件",实际上大量时间都消耗在改图上。你画一个支架,甲方说孔位挪3毫米,看着只是改一个尺寸,但关联的草图约束、特征树、工程图视图、标注、装配关系全都要跟着动。一个零件改完,常常要检查七八个关联位置,这种工作重复、枯燥、还特别容易漏。
text-to-cad这种方向出现的意义,就在于它尝试把"几何描述的传递"这件事自动化。传统流程里,需求从人话变成图纸,靠的是设计师在CAD软件里一锤子一锤子敲出来;text-to-cad则是让大模型直接理解人话里的几何意图,然后生成对应的模型文件。它不一定每次都能一次到位,但作为"需求到几何"的第一步,已经能替人把最耗时的搭骨架部分做掉。
1.2 它承诺了什么,又没承诺什么
我接触text-to-cad的这半年,最大的收获不是"AI能直接画图了",而是想明白了它的能力边界。它能做好的事情很明确:把"外径50、内径25、厚度10的法兰盘,带4个均布的直径6孔,螺栓圆直径40"这种话,翻译成一个参数化的旋转体加阵列特征。这类基础几何体的生成,可靠性已经相当高。
它目前做不好的事情也同样明确:
- 生成完整带公差、粗糙度、形位公差的工程图,它给出的标注基本不能直接用,需要人工重标
- 处理需要行业经验判断的细节,比如铸造圆角该给多大、拔模斜度怎么定、加工余量留多少——这些它都不会
- 复杂装配体和曲面造型,它生成的模型常常拓扑混乱,修复成本比重新画还高
换句话说,text-to-cad现在更像一个"几何翻译器+草图搭建设计师",而不是"全能工程师"。它把初始模型给你搭好,剩下的工程化工作还得你来。
1.3 哪些岗位和场景真正适合用它
基于上面这个边界,我给不同人群一个诚实的判断:
- 非标自动化设计:适合。大量钣金支架、轴套、法兰、电机安装座都是标准几何的组合,text-to-cad搭基础体非常快,能省下建模的起步时间
- 3D打印创客:非常适合。打印件对公差和工艺要求低,生成STL直接切片就能用,整个流程几乎全是加分项
- 概念设计阶段:适合。用文字快速生成多个备选方案,比在软件里逐个建模效率高得多
- 需要严格按GB/T出图、走工艺评审的制造业核心零件:暂时不适合。模型可以辅助,但图纸必须人工完成
这个判断很重要。别拿它去做它做不了的事,也别因为它做不了那些事就否定它。工具好不好用,取决于你用对地方没有。
2. 它不是"AI画画",是"AI写代码":text-to-cad的核心原理拆解
2.1 两条技术路线:代码生成 vs 几何生成
我刚开始接触text-to-cad时有个误解,以为它是像Midjourney那样,"画"出一张像素图,再转成模型。后来研究才发现,主流路线根本不是这样,而是分成了两条完全不同的技术方向。
第一条叫"代码生成路线"。大模型不直接输出几何体,而是输出一段程序——通常是OpenSCAD脚本、CadQuery的Python代码,或者某个CAD软件的宏脚本。然后由CAD内核去执行这段程序,生成真正的参数化模型。Zoo的Text-to-CAD、很多基于GPT-4搭建的开源方案走的就是这条路线。
第二条叫"几何生成路线"。训练一个专门的生成模型,让它在点云、体素、隐式曲面(比如SDF)等几何表示空间里直接生成形状,再通过网格化或拟合算法转成STL、STEP文件。这条路线的代表是学术界一些CAD生成模型(比如Text2CAD数据集训练出的模型),它的优势是能表达自由曲面,劣势是生成结果往往是"死"网格,没法在CAD软件里像普通特征那样编辑参数。
我拿一个和生活贴近的类比来说:代码生成路线像"给厨师一份菜谱",你想改成微辣,改一行字就行;几何生成路线像"给你一道做好的菜",外形可以改,但想调整配方就得重新做。作为需要稳定出图、后有修改的工程师,我显然更倾向前者。
2.2 为什么"参数化"是这条路的命根子
这也是我认为整个text-to-cad方向最核心的概念:参数化建模。在传统CAD里,一个法兰盘不是"一个圆柱加一圈孔"这么简单,它是"一个旋转特征,草图上标注了外径、内径、厚度,孔用圆周阵列关联到螺栓圆直径"这么一套有父子关系的特征树。你想要改外径,只要改那个尺寸参数,其他特征会自动跟着变。
text-to-cad如果走代码生成路线,输出的OpenSCAD或CadQuery代码本身就是一个参数化描述。你让AI"改一下孔径",它可能是重新生成一段代码,甚至可能是直接改掉代码里的一个数字。这就是它和"像素画"路线的本质区别——它保住的是可编辑性。我实际用下来,这个特性在工程场景里是压倒性的优势,因为设计没有一版定稿的,改参数是常态。
2.3 大模型是怎么"听懂"尺寸描述的
你可能好奇,大模型怎么知道"外径50"对应代码里的哪个参数?这里面的关键是自然语言到程序语言的映射,它靠的是大模型在海量CAD代码和文档上训练出来的模式识别能力。你在提示词里写"外径50",模型会把它映射到类似outer_diameter = 50这样的变量定义;写"4个均布孔",模型会映射到for (i = [0:3]) rotate([0, 0, i*90])这样的循环。
不过这里有一个坑必须提醒你:大模型对"单位"的处理经常含糊。你写"厚度10",它可能按毫米生成,也可能按厘米、英寸理解,取决于它当时生成的脚本里单位怎么定义。我在实操中吃过这个亏,后面有一章专门说怎么在提示词里锁定单位。
3. 我实测过的工具:从网页Demo到能接进工作流的方案
3.1 Zoo Text-to-CAD:目前最省事的入门选择
我第一个用的就是Zoo的Text-to-CAD,用下来感受是:门槛极低,效果超出预期。它是一个网页端的工具,你输入文字描述,它给你返回多个候选模型,可以直接预览、旋转查看,然后导出STL、OBJ、STEP这些常见格式。它底层走的就是代码生成路线,后台用大模型生成脚本再跑出模型,所以导出的STEP文件在主流CAD里打开,很多还能保留特征树或者至少保留可编辑的几何实体。
它适合的场景是快速验证想法。比如我随手输入"一个带四个安装孔的矩形底座,120乘80,高10,孔在四角距边10",几分钟就能拿到可用的基础体,这在以前至少得开软件建半小时。对非标设计的前期方案讨论,这个效率提升是实打实的。
3.2 Autodesk Fusion技术预览:和正式CAD软件的深度集成
2024到2025年这段时间,Autodesk在Fusion里陆续放出了Text-to-CAD相关的技术预览功能。它的做法是把AI生成能力直接嵌进Fusion的操作界面里,你输入描述,生成的结果直接就进Fusion的参数化环境,可以继续用Fusion的建模命令继续编辑,还能直接关联到CAM制造流程。
这个方案的优点显而易见:生成模型之后不需要"跨软件搬运",在Fusion里就能完成后续全部工作,从草图、特征到加工路径一气呵成。缺点是技术预览阶段的稳定性一般,我遇到过生成结果卡死、参数树混乱的情况;另外得看你用的是不是Fusion的正版订阅。如果你本来就用Fusion,这条路值得重点关注,如果你用的是其他CAD平台,参考价值就有限。
3.3 开源DIY路线:GPT大模型 + OpenSCAD / CadQuery
对于工具党来说,还有个最灵活的方案:自己搭。用GPT-4级别的对话大模型,让它直接输出OpenSCAD代码或CadQuery代码,然后本机执行生成模型。这条路我折腾得最多,因为它完全可控——提示词想怎么设计就怎么设计,输出的代码能自己review,还能集成到自动化脚本里做批量生成。
OpenSCAD适合纯脚本化建模,它的语法就是用代码构建几何体,非常直白,比如cylinder(h=10, r=25, $fn=100)就是一个底面半径25、高10的圆柱,大模型训练见过大量这种代码,生成得很准。CadQuery是Python库,功能更强,适合和现有的Python处理流程结合,比如批量修改CAD参数。这条路的技术栈简单说就是:一个大模型API加一个本地脚本执行环境,具体步骤我在下一章详细讲。
3.4 横向对比:这几个方案怎么选
| 工具方案 | 生成质量 | 可编辑性 | 上手门槛 | 成本 | 适合人群 |
|---|---|---|---|---|---|
| Zoo Text-to-CAD | 中上,基础几何很稳 | 中等,STEP可编辑 | 极低,网页即用 | 免费额度+订阅 | 快速验证、创客、初学者 |
| Fusion技术预览 | 较高,产物直接进参数环境 | 高,原生Fusion特征 | 中等,需Fusion基础 | Fusion订阅 | Fusion重度用户、有CAM需求 |
| 大模型+OpenSCAD | 中,受提示词影响大 | 高,代码即参数 | 需一定编程基础 | API费用 | 自动化、批量场景、程序员 |
| 大模型+CadQuery | 较高,适合复杂逻辑 | 高,Python全可控 | 高,需Python能力 | API费用+本地环境 | 批量处理、二次开发方向 |
我的建议是,先花半小时试Zoo,理解"文字生成模型"到底能做到什么程度,再决定要不要往自建方案投入。别一上来就折腾代码路线,容易因为环境问题劝退。
4. 手把手实操:把"一个带法兰的轴套"变成能用的STEP模型
4.1 工程化提示词模板:尺寸、单位、特征一次说清
很多人在text-to-cad上翻车,90%是栽在提示词写得含糊。我在反复试用后总结了一套工程化的提示词模板,四个要素缺一不可:主体几何、关键尺寸、特征细节、输出要求。
拿"带法兰的轴套"举例,一个合格的提示词应该长这样:
生成一个带法兰的轴套模型,单位毫米。 主体:外径40、内径20、总长60的圆柱套筒。 法兰:位于套筒一端,外径70、厚度8。 安装孔:法兰上均布4个直径5的螺栓孔,螺栓圆直径55。 所有锐边倒角0.5,法兰和套筒连接处圆角R3。 导出STEP格式,保持实体。注意几个细节。第一,我明确写了"单位毫米",这是防止AI按英寸或厘米理解的关键。第二,我写全了"均布4个孔+螺栓圆直径",因为"四个孔"只能表达数量,"均布"表达了阵列关系。第三,我连倒角圆角都写在里面,否则AI生成的模型大概率是没有任何工艺特征的光秃秃几何体,导入CAM软件还得自己补。
4.2 生成、迭代、选择:不要指望一次成功
所有text-to-cad工具都有一个共同特点:同一条提示词生成多次,结果会有差异。这不是bug,而是大模型的概率采样特性决定的。所以我操作的标准流程是:
- 同样的提示词,至少生成3到5个候选模型
- 快速浏览每个模型的预览图,排除拓扑明显错误的
- 选中一个最接近需求的,指出具体问题继续微调提示词,比如"法兰上的孔改成6个""壁厚加3毫米"
- 反复迭代直到形状符合预期
我实测下来,一个中等复杂度的零件(轴套、支架、法兰这类),通常迭代3轮左右就能得到满意的模型。关键是每轮只改一个变量,别同时改好几个地方,否则你根本不知道是哪个改动让结果变好的还是变坏的。
4.3 导出前的几何检查:单位、实体、开孔方向
拿到满意模型之后,别急着导出导入CAD软件,先做三个检查,能给你后面省一堆麻烦。
第一是检查单位。Zoo这类工具导出STEP文件时单位一般是毫米,但自建方案可能出问题。用文本编辑器打开STEP文件,开头往往能看到SI_UNIT相关的声明,看到MILLI METRE就是毫米,看到INCH就得注意了。
第二是检查是不是实体。导出的模型可能在网格模式下是"壳"而不是"体",在CAD里导入后会显示为开放的曲面。判断方法很简单:在CAD里选中模型,看能不能直接进入特征编辑,或者用软件自带的质量属性查询看有没有体积。没有体积体积显示为零,就是壳体,需要用后续的实体化修复。
第三是检查孔的方向正确。AI生成的特征有时候会把孔开在反侧,或者在法兰和套筒交接处生成不正确的布尔减运算,导致孔不贯通。这一步眼睛看预览不一定看得出来,导入CAD剖视图一看便知。
4.4 本地自建方案的最小可运行示例
如果你想走自建路线,这里给你一套最简单的可运行流程。需要准备的东西:OpenSCAD软件、一个能调用大模型API的Python脚本。
Python脚本的大致逻辑就三步:把你的提示词发给大模型,请它"只输出OpenSCAD代码,不要解释";把返回的代码写入一个.scad文件;调用本机的OpenSCAD命令行把它渲染成STL或STEP。关键代码骨架如下:
import openai import subprocess prompt = "请生成OpenSCAD代码:一个外径40、内径20、高30的圆管,底部带外径60、厚度6的法兰,法兰上均布4个直径5的孔,螺栓圆直径45。只输出代码。" response = openai.ChatCompletion.create( model="gpt-4", messages=[{"role": "user", "content": prompt}] ) code = response["choices"][0]["message"]["content"] with open("flange.scad", "w", encoding="utf-8") as f: f.write(code) subprocess.run([ "openscad", "flange.scad", "-o", "flange.stl", "--export-format", "binstl" ])这个方案最大的优势是可以放进批量循环里:遍历一个Excel里的规格参数,自动生成几十个不同的模型文件。后面讲Python批量处理的时候还会提到它。
5. 从"生成的模型"到"能出图的图纸":最后这一公里怎么走
5.1 网格转实体:STL不是终点,STEP才是
很多新手用text-to-cad拿到STL文件就直接拖进CAD试图标尺寸出图,结果发现模型是一堆三角形面片,根本没法标注、没法剖切,连选中边缘都费劲。原因很简单,STL是网格表示,只有表面三角形,没有拓扑关系和参数特征;工程出图需要的是实体模型(NURBS或B-Rep表示),有边、有面、有连续的几何信息。
所以我的经验是:凡是最终要出工程图的,一律让工具导出STEP格式。STEP文件里保存的是真正的实体几何,导入SolidWorks、中望CAD、Fusion这类软件后,能直接选中面、标注尺寸、生成剖视图。如果工具只给你STL,那就需要做网格转实体的操作——大部分CAD软件都提供这种功能,Fusion里叫"网格转BRep",SolidWorks里有"网格实体"转"实体"的工具,只是转换结果往往要修复破面,过程比较痛苦。
5.2 制图环境的"老三样"问题:字体、布局、PDF导出
模型进入CAD软件之后,制图流程的坑和text-to-cad本身关系不大,却会卡住大多数人。我按踩坑频率排序给你说。
字体问题排第一。CAD打开图纸时如果提示缺少SHX字体,或者汉字全显示成问号,多半是字体文件缺失。网上流传的各种"cad shx 字体大全"之所以有用,是因为不同版本的CAD、不同协作方的图纸,用到的字体千奇百怪。我现在的做法是在图纸里强制指定一个通用字体样式,比如用HZTXT.SHX配合gbcbig.shx来覆盖工程图的中文标注,换电脑、换软件都不容易出现乱码。
布局(Layout)问题排第二。很多从AI模型直接出的图纸,模型还堆叠在模型空间原点附近,视图全挤在一起。正确的做法是进入布局空间,用视口把模型按比例排好。简单说:先用MVIEW开视口,设置视口比例(比如1:2),再锁定视口,然后图框内标注。这一步不做好,导出的PDF要么视图不全,要么比例乱跳。
PDF导出排第三。导出前一定检查打印机/绘图仪配置里的线宽表(CTB或STB文件),否则导出的PDF所有线条一个粗细,图面层次全无。我习惯单独建一个"导出PDF"的布局,配好线宽、颜色映射,一键出图。
5.3 特殊领域的建模差异:钣金和服装CAD不是一回事
这里多说一句给特定行业的朋友。如果你做的是钣金件或服装纸样,text-to-cad的通用模型生成能力帮助有限——钣金要求展开图、折弯系数、扣除值,服装要求版型曲线和放码规则,这些都不是通用几何生成能覆盖的。金林钣金CAD这类专用工具、瑞丽服装CAD这类行业软件,它们的设计逻辑是另一套体系。
我建议这两个领域的人把text-to-cad当成"辅助出基础造型"的工具,比如钣金外壳的粗略形状、服装配件的三维效果示意,而真正的展开图、纸样还是要回到专用软件里做。别强行用通用CAD的逻辑套行业专用的生产流程,方向错了工具再好也白搭。
6. 批量、安装、精度:工程环境里的几道现实门槛
6.1 Python批量修改:让text-to-cad服务于"批量出变体"
我前面提到过,text-to-cad和Python结合之后,最大的价值是批量生成。实际场景是这样的:客户要一款设备的三个规格,大、中、小号,外形相似但尺寸不同。传统做法是手动建模三次;用自建的代码生成路线,只需要写一个循环,遍历尺寸表,自动生成三个STEP文件。
更进一步,Python还能做批量修改。对于已经导入CAD的模型,可以用pyautocad或comtypes库直接操作AutoCAD对象模型,遍历块、改尺寸、重新导出。这种方式适合那种"几十张图纸统一改标题栏、统一改孔距"的活,脚本写好之后一分钟跑完,比人工逐个图改快一个数量级。
我常用的批量处理流程是这样:先用text-to-cad生成初始模型,导出STEP;再用Python脚本批量写入不同参数重新生成变体;最后用自动化脚本统一出PDF和BOM。这套流程跑顺之后,我个人的感受是前期建模时间省了一半,后期重复劳动基本清零。
6.2 别让环境问题卡在起跑线:CAD安装与激活的常见坑
聊到这里必须说一个很现实的事:很多人用text-to-cad的热情,最后是死在本地CAD软件的安装环境上的。我在群里看到过太多求助:装CAD一直弹"C++ 2005 runtime错误"、激活页面报脚本错误、装完第一次能开第二次打不开。
这些问题虽然和AI无关,但它会直接卡死你"生成模型→导入CAD→出图"的整条链路。我的建议是不管装的是哪个品牌的CAD,安装前先把Visual C++运行库装齐(2005到2022的x86和x64都装上),关闭杀毒软件再运行安装程序,激活时尽量以管理员身份运行。对于一些国内常用的中望CAD等国产软件,安装过程通常比国外软件省心,但同样建议先清理旧版本再安装,避免残留的注册表项影响二次安装。
一句话总结这块的教训:环境问题虽然低级,但浪费的时间一点也不少。先把地基打牢,再谈AI提效。
6.3 精度与制造环节的"最后一公里":AI生成的几何够不够用
最后说一个最容易被忽视的问题:精度。text-to-cad生成的STEP模型,几何数据的精度通常能满足"看图和概念设计"的需求,但到了制造环节,需要确认两件事。
第一是圆和圆弧的离散精度。有些工具在导出时会把圆离散成多边形,肉眼看不出来,但CAM加工时刀具路径会跟着走折线,影响表面质量。导入CAD后,用"测量圆弧"检查一下圆形边缘是否还是真圆弧,如果不是,就要检查导出设置或直接在CAD里重新约束。
第二是特征是否适合加工。AI生成的圆角、倒角、拔模角,很多时候只是"看起来合理",并没有考虑加工可行性。比如一个内腔圆角比刀具半径还小,实际加工就铣不出来。所以我的原则是:AI生成的模型永远是"设计意图的参考",投制造前必须有工程师人工检查关键特征。这不是信不过AI,是制造业的底线——图纸错了还可以改,刀下去了就是真金白银。
我个人的实战体会
折腾text-to-cad这半年,我最大的转变是重新理解了"建模"这件事。以前我觉得建模是动手活,手速快就高效;现在我发现建模更重要的是"表达清楚需求"。你把需求描述得越精确、越结构化,AI给你的回报就越大。这其实是在倒逼工程师把脑子里模糊的设计意图,变成一句一句清晰的几何描述——这个能力本身,就是工程素养的一部分。
最后再分享一个小技巧:建立你自己的"提示词库"。每次成功生成一个可用模型的提示词,都存下来,按零件类型分文件夹——法兰类、支架类、轴套类、底座类。下次遇到相似需求,复制改几个数字就能用。我在这个库里攒了上百条有效提示词,现在很多零件的建模工作,从需求到可用模型的时间压缩到了十分钟以内。技术迭代很快,但这种"积累自己的方法库"的习惯,什么时候都不会过时。