在CAD这个圈子里,我见过太多人把“用自然语言直接生成三维模型”这件事想得太轻松。两年前我刚开始尝试text-to-CAD工作流的时候,第一印象其实是失望:输入“给我一个M8六角螺母”,输出的却是一堆表面坑坑洼洼的网格碎片,没有螺纹参数,也没有尺寸约束,放进切片软件里连支撑布局都很难规划。后来我才慢慢意识到,这份失望的根源,是我把CAD当成了“三维版图片生成”。而CAD的核心从来不是“长得像”,而是“可制造、可修改、可复用”。这篇文章我想从自己的实测经验出发,把text-to-CAD背后的原理、当前真实能做到的边界,以及提示词怎么写才更稳的经验完整梳理一遍,给正在观望的你一份不带滤镜的参考。这个方向确实还没到“一句话自动出图”的理想状态,但只要工作流选对了,它完全能成为设计前期的强力助手。
1. 先对齐认知:CAD难就难在“看起来像”远远不够
1.1 图像生成是填像素,CAD是搭工程关系
为什么通用大模型在写文章、画插画上表现惊艳,一到CAD这里就频频翻车?一个很重要的原因是,自然语言生成图像本质上是在二维画布上填充像素,像素之间没有严格的空间约束,哪怕某个区域拟合得不够干净,人眼也未必能察觉。而CAD模型面对的是制造和装配场景,孔轴配合间隙、壁厚、拔模角、干涉检查,每一项都可能直接决定这个模型能不能被加工出来。
打个比方:图像生成像是让AI画一幅风景画,画歪一栋楼,观感上顶多觉得“这个风格很抽象”。CAD生成则像让AI帮你搭一个书架,如果两块层板的尺寸差了两毫米,你放书的体验就是完全不同的。CAD文件背后是一整套参数关系和工程语义,比如“这个孔必须和对面那个孔同轴”“这个圆角的半径必须小于止口宽度”,而这些关系在自然语言里往往只是几个词,模型很难只凭几个关键词把它们完整复用出来。
1.2 我用实测验证过:AI做出来的东西“看起来对”不等于“能用”
早先我用一个开源脚本建模工具做过一次实验,提示词是“设计一个带四个安装孔和中心轴的电机支架”。大模型很快生成了一段结构完整的脚本,工具运行后也确实出现了一个支架造型,四个孔在视觉上基本对称。但当我把它导出的实体放到测量环境里检查时,问题全部暴露:中心轴的名义直径是8毫米,实际曲面却分布在8.02到8.06毫米之间,既不是严格的圆柱,也没有任何公差标注;四个安装孔的位置虽然对称,但中心距和实际要安装的电机端盖完全对不上。
这次经历给我最大的启发不是“AI不行”,而是我一开始的预期错了。text-to-CAD当前阶段的定位应该是“概念雏形生成器”,而不是“最终图纸输出器”。它的价值在于几秒钟内给出一个符合大致外形和结构逻辑的起点,最终的尺寸链闭合、公差校核、装配验证,仍然需要工程师用自己的专业判断去收尾。把预期放在正确的位置上,之后选工具、写提示词、检查结果才会顺手很多。
2. 三条技术路线拆解:脚本、网格、参数化特征,各管一段
text-to-CAD这个词其实覆盖了三种完全不同的技术路线,而每条路线的能力、局限和适用场景都不一样。很多人在网上看到的“AI建模神器翻车合集”,往往就是拿网格生成流程去干参数化建模的活,结果当然不理想。所以先花点时间把三条路线理清楚,比盲目追新工具重要得多。
2.1 路线一:通用大模型直接写建模脚本
这条路最直观,也最容易被DIY玩家上手。做法是让通用大模型充当程序员,根据你的自然语言描述,生成一段能够创建三维几何的脚本,比如OpenSCAD的CSG脚本,或者FreeCAD的Python宏。你把这代脚本粘贴进对应工具里运行,就能得到模型。
这条路的优势是零额外依赖、结果可编程、可反复修改。缺点则是模型对CAD API的理解深度参差不齐,生成的脚本经常出现参数错误、引用不存在的特征,需要多次迭代调试。不过因为脚本本身是文本,修改成本相对低,多试几次通常能稳定产出简单零件。我看见很多第一次接触的人,在第一次报错之后就放弃了,其实只要把报错信息原样丢回给模型,通常一两轮就能修好。
2.2 路线二:用扩散模型直接生成三维网格
如果你听说过“文本生成3D模型”,大概率体验过这条路。它通常使用多视图扩散或点云扩散,从文本直接输出一个网格化的三维对象,再经过重建算法变成可导入的模型格式。这种方式的视觉表现力很强,特别适合生成有机形态、艺术造型,比如概念车外观、雕塑、游戏道具。
但它最大的问题在于,生成结果是“一张数位捏合的皮”,没有参数化历史,也没有可编辑的特征树,想修改某个尺寸几乎等于重新建模。叠加网格转CAD时,非流形几何、噪声曲面也经常让后续加工工具抓狂。所以这条路更适合看效果、做展示,离“可直接制造”还有明显距离。如果你只是想做一张产品概念图,它完全够用;但别指望它能进入工程BOM。
2.3 路线三:LLM当指挥官,参数化建模引擎当执行者
这是目前工业界视角下最接近“真CAD”的方向。系统里内置一套构造实体几何或特征建模引擎,LLM负责把用户意图解析成一系列建模指令,比如“新建一个矩形拉伸”“在顶端加一个圆角”“在左下角挖一个贯通孔”,然后由引擎按指令执行,最终生成带完整特征历史的B-rep实体模型。
因为输出保留了特征树和参数,用户可以像对待正常CAD文件一样继续编辑、加约束、做装配。这已经是目前最接近“用自然语言驱动CAD”的形态,代价是实现难度高,工具数量少,提示词的微小偏差也可能导致一连串特征顺序错误,非常考验模型的指令解析能力。目前这个方向主要还是停留在科研原型和少数垂直工具里,但我觉得它的进化速度会比前两条路线快得多。
2.4 三条路线怎么选
我用下面这个表把我实测后的判断列出来,方便你对号入座:
| 对比维度 | 脚本生成路线 | 网格生成路线 | 参数化特征路线 |
|---|---|---|---|
| 输出结果是否可编辑 | 是(改脚本) | 否(重新生成) | 是(特征树齐全) |
| 制造友好程度 | 中高,取决于API | 低 | 高 |
| 适合造型风格 | 规则机械件 | 自由曲面、有机形态 | 规则机械件、产品结构件 |
| 上手门槛 | 中偏低 | 最低 | 目前最高 |
| 典型坑点 | API理解偏差、脚本报错 | 非流形网格、无尺寸控制 | 工具少,提示词要求高 |
你选哪条路线,不取决于谁听起来更先进,而取决于交付物最终要拿去干什么。做展示选第二条,做快速验证选第一条,做可迭代的工程模型,再麻烦也得合计第三条的门路。
3. 我实测过的三种工作流,以及它们各自的脾气
理论讲完,上实操。下面三种工作流是我在过去一段时间里反复跑的,我把详细步骤、观察到的现象和容易踩的坑都记录下来,方便你直接复用。
3.1 用OpenSCAD脚本生成小型零件:最快上手
OpenSCAD是一个以脚本为核心的开源建模工具,天然适合和对话式大模型配合。我的基本流程是:先把需求描述给模型,要求它输出CSG脚本,并明确指定单位、尺寸变量和渲染模块。接着把脚本粘贴进OpenSCAD预览,出问题再让模型根据报错修改。
实测发现,针对“带若干孔的回转体”“角码类钣金件”这类规则特征,模型基本一次就能生成可用外形。但你最好在提示词里明确变量名,比如“全程使用变量base_w和base_h,不允许修改为其他名字”,这样后续调整尺寸只需要改变量,不需要重写特征。另外一定要求脚本加注释,模型在生成代码时保留注释的习惯,直接影响你排查几何逻辑的效率。
有一个坑需要重点提醒:OpenSCAD的CSG运算在布尔交叠操作上特别考验精度,如果孔位刚好卡在两个特征的边界上,很容易出现非流形结果。我的处理办法是让孔稍微穿过整个实体厚度,比如在描述里写明“贯通”,而不是用“沉到表面”,这样能避免悬空裁剪导致报错。
3.2 用FreeCAD的Python宏做参数化修改:兼顾修改性
如果你的目标不只是快速看造型,而是希望后续能调整尺寸、复用特征,FreeCAD的Python API是一条更合适的路。我通常让模型生成一个完整的宏脚本,里面封装好一个建模型的函数,参数以函数入参的形式暴露出来,这样后续修改参数不需要动几十行的几何代码。
实测中遇到频率最高的问题有两个。一个是API版本差异造成的属性名报错,比如不同版本里某个对象的访问接口名称不一样,解决方式是让模型参考当前版本的官方文档描述,而不是凭记忆硬写。另一个是坐标变换容易出错,尤其是涉及旋转零件、基于平面创建草图这类操作,模型经常把坐标轴方向理解反。我的习惯是在描述里明确“坐标系原点在零件左下角、Y轴沿高度方向”,并让模型在脚本开头打印出关键点的坐标,方便人工核对。
3.3 用网格生成流程做概念验证:速度优先但别下生产线
第三种我实际跑得不多,因为它的定位比较特殊。通常用于客户沟通、方案比选阶段,比如快速生成几种不同外形风格的机箱外观,给客户选方向。这个流程的核心是“用秒级生成换认知成本”,让非技术背景的人能在方案初期直接看到3D效果,而不是等半天建模。
但必须强调:这类流程产出的模型一旦进入制造环节,往往需要专业的逆向重建或参数化重绘,换算下来总成本未必低。如果你最终要的是可交付的加工图纸,起点就选择带参数化历史的路线,不要在网格模型上浪费太多修复时间。我曾经为了网格模型修了半天破面,最后发现还不如重新用脚本建一次来得快。
3.4 我给三条工作流的最终定位
综合来看,我目前倾向这样分配:快速验证概念用OpenSCAD脚本,因为它轻、快、能迭代;需要持续修改和维护模型用FreeCAD宏,因为参数暴露得清晰;需要表现力强的效果图则临时动用网格生成,但只把它当作视觉参考,不当作工程交付。
记住一个原则:工具链的选择不是看谁生成的模型更好看,而是看你最终要拿着模型去做什么。先把使用场景想清楚,再决定选哪套流程,顺序不能反。
4. 提示词才是被你忽略的工程图纸:从翻车到可用的进化记录
同一个text-to-CAD工具,有人输入一句“做个齿轮”得到废模,有人输入一段详细描述得到能直接打样的小零件,差别全在提示词。在文本生成图像的时代,提示词是艺术;到了CAD领域,提示词必须回归工程,它要写清楚的不只是“长什么样”,还有“怎么造、能用在哪、和谁配合”。
4.1 一个提示词从翻车到可用,需要补上什么
我们拿“做一个齿轮”来演示进化过程。
第一版提示词:“做一个标准直齿轮。”输出:模型理解成“一个圆盘带一些齿”,齿数、模数、压力角完全没有依据,看起来像动画道具。这个结果本质上是模型在“猜”齿轮,而不是在设计齿轮,因为你根本没有给出任何约束。
于是我改成:“生成一个模数为2、齿数为24的标准直齿圆柱齿轮,齿形按渐开线近似绘制,顶圆直径52毫米,齿根圆直径43毫米,中心孔直径10毫米,并在中心孔内加一个宽度5毫米的键槽。”输出:齿形特征立刻对了,测量顶圆和齿根圆几乎命中,中心孔和键槽的布尔运算也成功。
第二个版本为什么成功?因为它把制约几何的关键尺寸全部锁死。模数和齿数决定了齿轮的核心比例,顶圆、齿根圆直接给了加工基准,中心孔与键槽定义了装配关系。这串看似枯燥的数字,才是CAD建模真正需要的信息。
4.2 写提示词前逐项自查的六个要素
我总结了一个自查清单,每次写提示词之前按顺序过一遍,能规避绝大部分低级问题:
- 制造方式:明确“这是要3D打印、CNC铣削,还是注塑件”。制造方式决定拔模角、圆角、壁厚等工艺参数,模型不会自动猜。
- 单位体系:写明“全部使用毫米、角度使用度”,防止模型在公制和英制之间来回横跳。
- 关键尺寸链:把相互制约的尺寸一次性给出,不要让模型推断。比如“轴承孔径25毫米,轴肩直径30毫米,轴肩长度12毫米”,模型就能画出合理级联关系。
- 约束关系:用文字明说“这个孔与那个孔同心”“这些凸台高度必须相等”。仅仅靠位置坐标描述,模型很容易丢失关系语义。
- 工艺要素:倒角半径、圆角大小、螺纹规格,能给的都当面给,不要让模型自由发挥。
- 输出格式:指定要CSG脚本、Python宏,还是STEP文件。模型只有在明确交付物时才能组织合理的结构。
4.3 不要迷信“模型会主动追着你问”
很多工具的演示片会渲染AI主动询问用户“需要什么材质”的场面,但现实中的text-to-CAD工作流里,模型很少主动追问缺失信息,更常见的是它默认一个“典型值”然后继续生成。你要是没写螺纹规格,它给你一个直径对的孔但完全没有螺纹特征,最后你自己还得补加工标记。
所以,把“信息完整性”当成自己的责任,而不是模型的义务。一步步往提示词里补参数、补关系的过程,本质上就是在把自己脑海里的设计约束显性化。这个过程本身,也有助于你发现自己对零件需求的理解是否足够清晰。
5. 落到实际项目:值得用的场景与别抱期望的场景
道理说了一堆,最后还是要回到项目现场。我结合自己的使用经验,把text-to-CAD当前阶段适合与不适合的场景各列三类,供你对照自己的项目判断。
5.1 目前最适合的四类场景
第一,概念验证与方案比选。项目前期需要快速验证几种结构外形,用text-to-CAD花十分钟生成三套不同形态的雏形,比从零建模效率高得多。我习惯同时生成三到五个方案,导成图片贴在沟通文档里,比画草图直观,也比上手精模快。
第二,标准件与参数化族库生成。像法兰盘、轴承座、遮光罩、支架这类特征高度规律化的零件,最能把text-to-CAD的优势放大,一次生成后还能通过改参数复制出全系列。你只要把族库参数表整理好,后面的重复劳动几乎为零。
第三,教学演示。让学生看到“一句描述如何映射为三维特征”,对理解建模逻辑、培养参数化思维都有帮助。前提是模型输出一定要保留特征历史,而不是纯网格。没有特征树的演示,学生学到的只是依赖感,不是方法论。
第四,导入旧数据前的结构预判。做逆向工程的初筛阶段,可以用它估算目标模型的总体尺寸和特征分布,缩短点云分类的时间。这项我最近用得多,配合传统逆向工具,工作效率提升非常明显。
5.2 暂时别抱期望的三类场景
第一,精密配合的装配体。轴孔配合公差要求微米级,text-to-CAD当前的输出很难稳定控制配合类型,装配体更是常常丢失零件间的约束关系。强行使用的结果,就是你把时间从建模省下来,又原封不动花在了装配检查和返工上。
第二,A级曲面和复杂自由形态。汽车外观、消费类电子外壳那种对曲面连续性极敏感的设计,网格生成路线的质量远远不达标。你让模型做一个连续曲面,它给你的往往是拼接痕迹明显的多面体,后续光顺工作量极大。
第三,仿真驱动设计。涉及有限元分析、拓扑优化结果的模型重建,其几何往往高度不规则,而且对网格质量有严格指标,靠自然语言描述根本无法覆盖。这类工作必须跑专业求解器和逆向重建流程。
我这么说不是在泼冷水,而是希望大家把工具放在它擅长的地方。一名设计师真正的竞争力,不在于能不能用AI生成模型,而在于他知道什么时候该用AI、什么时候该绕开AI。
5.3 我对人机分工的实操原则
我现在的工作习惯是:AI负责“铺路”,我负责“修路”。也就是让模型先把基础轮廓、重复特征、系列化零件搭出来,然后我来做尺寸链复核、装配关系整理和工艺性调整。模型输出后至少要经过三项人工检查:几何尺寸与原始需求逐项比对、布尔运算后的实体质量检查、文档标注完整性检查。这三项做完,模型结果才敢进入下一步。
这套流程帮我节省了大约三到四成的重复建模时间,同时把风险控制在可控范围。如果你一上来就让AI全自动交付图纸,大概率会踩到我前面说的各种坑;但如果你全程手工作业,又等于放弃了这个工具的价值。分寸感,是在试错中试出来的。
6. 几个落地细节,是教程里通常不提的实战经验
技术路线和工作流都聊完了,最后补几个在实战中容易被忽略的细节。这些细节没有写在任何官方文档里,但直接影响你能不能把text-to-CAD稳定用起来。
第一,一定要给生成过程留“版本意识”。脚本生成路线里,模型每一次交互都可能改掉你之前锁定的尺寸变量,所以在对话里明确“不要修改已定义变量,只新增特征”,能避免很多来回返工。FreeCAD宏这种形式尤其适合配一个版本管理仓库,每次调整都留一次提交记录,出了异常能快速回滚到可用状态。
第二,验证模型时别只看屏幕上的三维渲染。我习惯把生成的模型直接切一层剖面,检查内部空腔、加强筋和孔道的连接是否合理。三维显示里看着顺眼的造型,剖面里经常藏着隐形缺陷;反之,剖面一打开,很多问题一眼就能看出来。手建模型时可以偷懒不做剖面检查,但面对AI生成的结果,这步几乎应该成为默认动作。
第三,关于我自己的节奏,我最看好的不是模型直接画出大而全的产品,而是“一句话生成特征链、专业软件再做精细加工”这种有分工的流水线。前端的语言模型越来越会解析意图,后端的参数化引擎越来越标准,两者之间的接口层,才是接下来真正的机会点。哪怕是做工程设计的普通工程师,如果能提前把提示词写作、脚本调试、特征历史检查这几项基本功练好,在工具进化到你完全不用管细节的那一天之前,你都已经在用它在节约时间了。
我自己的体会是:text-to-CAD最迷人的地方,不是它马上能替代任何人,而是它第一次让“想法”到“几何”之间的反馈回路变得如此短。你描述得越具体,它给你的越接近可用的东西;而你描述的能力,恰恰又是一个工程师核心功底的另一种体现。这个方向值得持续盯,但更值得现在就动手试几下。