把一句话变成CAD模型,这事在很长一段时间里听起来都像是CAD厂商画的大饼。但最近一年多,text-to-cad这个方向突然被认真做起来了。我第一次用Zoo的在线工具测试时,输入"带四个安装孔的L形支架,长边120mm,短边60mm,厚度5mm",大概等了半分钟,它真的交给我一个能正常打开的STEP文件。那一刻说实话有点恍惚——做机械设计十来年,"建模"这个动作本身被重新定义了,大概就是这种感受。
这篇文章我打算以一个长期在SolidWorks、Fusion 360和FreeCAD之间来回折腾的机械从业者身份,聊聊text-to-cad目前的真实水平、背后的技术逻辑,以及真正拿它干活时提示词怎么写、模型怎么验、坑怎么躲。不讲虚的,大部分内容是我自己反复试错出来的经验。无论你是工程师、3D打印玩家,还是被建模门槛卡住的产品经理,应该都能从这里找到点有用的东西。
1. text-to-cad 到底解决了什么问题
1.1 建模门槛背后的"翻译成本"
先把立场说清楚:text-to-cad不是为了消灭CAD软件,更不是要让工程师失业。它真正解决的问题,是"从想法到几何表达"这一步的摩擦成本。
传统流程是这样的:你脑子里已经有一个零件的完整形态,然后你需要打开软件、新建零件、选基准面、画草图、标尺寸、加约束、拉伸切除、倒圆角……这一整套动作,本质上是在把"语言层面的空间想象"翻译成"参数化特征树上的操作序列"。这个翻译过程对熟练工程师来说可能只需要几分钟,但对没受过训练的人,可能就是噩梦。
我在给一些做硬件创业的朋友辅导时经常遇到这种情况:他们产品方案想得很清楚,结构上需要什么样的支架、什么样的外壳,但一打开建模软件就懵了——草图约束不会加,拉伸切除搞不明白,更别提扫描、放样这些高级特征。text-to-cad的出现,等于把这道坎直接挪走了。你只需要把脑子里的零件"说"清楚,它负责输出那个翻译好的操作序列。
1.2 它和传统参数化建模的本质区别
传统参数化建模有一个核心特性:过程是显式的。打开模型的特征树,你能看到这个零件是怎么一步步建出来的——先画了什么草图,拉伸了多少,哪里切了一刀。每一步都可以单独修改、重新排序,整个设计过程是可追溯、可调整的。
text-to-cad生成的模型,在生成引擎内部其实也保留着类似的"隐式特征树"——它确实是先画草图、再拉伸、再开孔这样的命令流。但问题在于,当你把它导出成STEP文件,再导入到其他CAD软件时,这些历史特征就全部丢失了,只剩一个孤立的B-rep实体。你看到的是一块"死几何",没法直接改某个孔的直径然后让整个模型自动更新。
这一点特别关键。很多刚接触text-to-cad的朋友拿到的STEP模型第一反应是直接开始改,结果发现改不动——因为那不是参数化模型。这也决定了它的实际定位:它是草图生成器,不是设计替代者。聪明的用法是把它当"起笔",而不是"终稿"。
另一个本质区别在于确定性。传统建模每一步都是确定的、可预期的;text-to-cad是概率性的,同一个提示词生成两次,结果可能完全不同。这在工程上是个需要严肃对待的问题——你不能把一个可能"发挥失常"的工具直接扔进生产流程,必须在它和人之间加一层验收机制。
2. 技术原理:语言到几何的翻译是怎么发生的
2.1 为什么不让大模型直接生成STEP文件
很多第一次接触这个领域的人会有一个很自然的疑问:STEP文件本质上也是文本,为什么不让大模型直接学会生成STEP呢?回答这个问题,比了解工具本身更能帮你理解这个领域的技术边界。
STEP文件采用的B-rep(边界表示)格式,对一致性要求极端苛刻。一个实体的每个面都要引用若干条边,每条边都要引用两个顶点,所有顶点的三维坐标必须精确闭合。任何一条引用关系断掉,任何一个坐标值轻微漂移,整个文件就是废的。你在软件里可能看到的就是破面、撕裂、非流形体,甚至根本无法导入。
你可以把B-rep想象成一座极其复杂的交通网络:每个路口是顶点,每条路是边,每个街区是面,它们之间必须严丝合缝。大模型生成大段文本时,单个token的出错率虽然很低,但累积到上千行、上万条实体记录时,几乎必然出错。让大模型直接写STEP,就像让它蒙着眼睛画一张立交桥图纸——画完大概率是没法用的。
所以现在主流方案都做了一个工程上的关键取舍:让大模型生成的不再是几何文件,而是"CAD命令序列"。你输入"我要一个L形支架",模型把它翻译成类似这样的操作清单:
在XY平面上新建草图 画直线:起点(0,0),终点(120,0) 画直线:起点(120,0),终点(120,60) 画直线:起点(120,60),终点(0,60) 画直线:起点(0,60),终点(0,0) 闭合草图 拉伸:5mm 在草图平面添加两个孔: 孔1:直径6mm,圆心(10, 15) 孔2:直径6mm,圆心(110, 15) 倒圆角:内角处R3这个命令序列再交给一个确定性的几何内核去执行。内核是数学上精确的,它负责计算坐标、生成拓扑、保证闭合,模型只负责"决策"而不负责"计算"。这个设计把确定性留给程序,把不确定性留给AI,是非常聪明的一种拆解方式。
2.2 主流实现路线的对比
目前市面上能看到的实现路线大致可以分成三类,各有各的取舍逻辑。
第一类是"微调视觉-语言模型 + 命令序列生成",代表是Zoo的Text-to-CAD。它在一个大规模合成CAD数据集上微调了视觉-语言模型,让模型学会把文字描述对应到CAD操作。更妙的是,他们还训练了一个奖励模型——简单理解就是"AI裁判",用来给生成的模型打分排序。实际生成时,系统会跑出多个候选方案,裁判模型从中挑一个最优的。这有点类似"先海选再晋级"的思路,虽然消耗了更多算力,但效果确实比单次生成稳定不少。
第二类是"开源浏览器方案",代表是CADmium。整个生成流程在浏览器里跑,模型参数规模不大,输出结果还带着特征高亮显示,你能清楚看到它每一步做了什么操作。它的定位更像透明教学工具:你可以在浏览器里打开源码,研究它到底是怎么把语言转成命令序列的。但对实际交付来说,它目前的能力还比较有限,更多适合学习与研究。
第三类是"传统CAD厂商的AI助手路线",比如Autodesk在Fusion里推出的各种AI辅助功能。这类并没有做到严格的端到端text-to-cad,更多是对话式辅助:你说需求,它帮你搭草图和特征,你仍然留在软件环境里做确认和调整。优势在于和现有工作流结合得很紧,劣势是端到端程度不够,无法脱离人。
这三条路线背后其实反映了不同的产品哲学。第一类追求"从文本到可交付文件"的完整性;第二类追求开放与可复现;第三类不赌彻底重构,而是温和地融入工程师已经习惯的工作方式。从我的立场看,短期内最容易被广泛接受的是第三类,但最让人兴奋、最能拉低门槛的是第一类。
2.3 数据集与训练逻辑
text-to-cad真正卡脖子的地方,不在模型架构,而在数据。CAD操作序列的数据实在太难拿了:工业界的设计文件大多涉及保密,公开的带特征历史数据的模型库少得可怜。
目前已知的数据来源主要有三类。第一类是Autodesk的Fusion 360 Gallery数据集,收集了数千个带完整特征历史的模型,是学术圈用得最多的资源。第二类是ABC数据集,包含上百万条B-rep几何数据,但只有几何没有操作序列,所以只能用于几何理解类的预训练。第三类是程序化合成数据——一些公司会写脚本随机生成海量CAD操作和模型,再把这些模型渲染成图片、配上文字描述,形成"自己出题自己考"的训练闭环。
合成数据的优势非常明显:规模可以无限扩展,数据精度完全可控。但它的弊端同样突出:完全随机组合出来的CAD特征,往往"几何上合理、工程上无意义"。真实零件里的螺纹孔是为了装配,加强筋是为了抗弯,这些工程语义是合成数据很难模拟出来的。这就是为什么你会经常看到text-to-cad生成的模型"远看像模像样,近看全是问题"。
我自己有个很朴素的类比:现在的text-to-cad,就像让一个看过大量建筑照片但从未进过工地的人去画施工图。他能画出像模像样的建筑轮廓,但你要是让他标注钢筋间距、设计排水坡度,他就露馅了。好消息是,这个"没进过工地"的短板正在被越来越多的真实数据和工程反馈所校正,而且校正的速度比我预想的要快。
3. 工具选型:现阶段有哪些能上手的方案
3.1 商业产品与开源项目横评
过去几个月,我把市面上能试的text-to-cad工具基本都摸了一遍,简单做个横向对比,方便大家按需求对号入座:
| 工具 | 形式 | 输出格式 | 上手难度 | 实际质量 |
|---|---|---|---|---|
| Zoo Text-to-CAD | 网页版 / API | STEP | 极低 | 简单机械件表现不错 |
| CADmium | 浏览器开源 | 自定义格式 / 导出 | 中 | 中等,适合研究原理 |
| Fusion AI辅助 | 桌面软件内 | 原生参数化 | 中 | 稳定,但端到端程度有限 |
| 各类学术Demo | 网页 / 论文代码 | STL / OBJ为主 | 高 | 不稳定,工程价值有限 |
先说Zoo。它在网页上直接输入文字,几乎不需要任何CAD基础,半分钟到几分钟就能拿到STEP文件。我实测下来,那些特征清晰的简单零件——支架、盖板、带孔的盒子、简单的轴类件——效果相当能打。但复杂度一上来就不行:螺旋特征、复杂曲面、或者多个零件之间有装配逻辑的设计,基本不用指望。另外它的网页版目前是免费的,但每天有次数限制,重度使用可以考虑走API。
再说CADmium。它是完全开源的,整个生成流程在浏览器里跑,模型不大,但输出结果会带特征高亮,你能看到它每一步执行了什么命令。这个透明的特性对研究很有价值——如果你想弄清楚"语言到CAD操作"这个翻译过程到底发生了什么,它是目前最好的教材。但要说用它来做正经交付,还差得很远。
Fusion的AI辅助功能则是另一条路线。它不追求一次性生成整个零件,而是在你建模过程中帮你完成某些环节,比如自动识别草图中的约束、推荐标准特征、辅助生成设计变体。对已经在使用Fusion的工程师来说,这类功能几乎没有学习成本,也能实打实提效。
3.2 我的选择标准和使用场景
工具选型这件事,我在这个领域吃过不少亏,总结下来有三个硬标准,供大家参考。
第一,输出格式必须支持STEP。原因很简单:STEP是机械CAD领域目前最通用的中性交换格式,绝大多数软件都能无损读写。如果工具只给你STL,那只能用于可视化和3D打印切片,后续做参数化编辑、出工程图、跑CAM全都无从谈起。拿到STL等于拿了一块"冻结的石头"。
第二,生成结果必须有多个候选或可迭代空间。我试过某些学习性质的Demo,输入一句话只回一个结果,不好用就得整句改提示词重来。这就像让设计师画草图却只给你一张图还拒绝修改意见,根本没法定稿。好的工具至少要让你在"候选方案"层面有挑选的余地。
第三,必须能正确处理尺寸与单位语义。你输入"5mm厚的板",模型应当明确地把5mm当作绝对长度而不是相对比例。很多早期模型把文本里的数字全部当作"无单位相对值"处理,生成出来的几何完全不具备工程意义。这一条直接决定了生成结果能不能进下游流程。
说下我自己的实际使用场景。一个是快速出方案草图:客户在电话里描述零件需求时,我打开text-to-cad生成初版模型,先在空间关系上确认大方向,再进正式设计。这一步能把前期沟通成本压缩一半以上。另一个是给3D打印爱好者做辅导:很多玩打印机的朋友建模是最大短板,用text-to-cad先生成一个基础模型,在Fusion里稍微修一修,比自己从零画快太多了。还有一个是异形非标件的前期评估:比如过渡法兰、异形垫片这类东西,先用文本生成看装配空间够不够,不行就换方案,试错成本几乎为零。
3.3 API集成与批量生成
除了网页版,还有一个值得提的实操方向:API集成。如果你有少量的重复性建模需求——比如每周生成几款标准规格的支架、护罩——完全可以把text-to-cad接到自己的脚本或工具链里。
我在自己维护的一个小工具里做过类似的事:用Python脚本读取一个表格,表里写好了零件名称、关键尺寸、特征描述,脚本逐行调用生成接口,拿到STEP后自动归档到目录,再触发Fusion的批处理导入。整个过程基本无人值守,省下来的时间非常可观。
不过要提醒一点,API返回的模型仍然只是"生成稿",我依然会在下游做全套验收检查。自动化只是把"画草图"这个劳动密集环节替代了,验收环节永远不会被省掉。
4. 实操:从一句话到可制造的模型
4.1 提示词的写法:描述几何,不要描述意图
这是整个流程中我认为最核心、也最值得分享的经验。
text-to-cad的模型本质上是"几何推理器",不是"工程咨询师"。你输入"我需要一个能固定电机的支架",它并不知道电机厂家标准的安装孔距是多少,也不知道电机法兰的形状。但如果你输入"中心距30mm的四个6mm直径通孔,围绕40mm x 40mm的方形法兰均布",它大概率能给你精准建出来。
一句话总结:说人话没用,要说"几何话"。
我整理了一套提示词模板,可以当公式直接用:
- 总体形状加外廓尺寸。先讲清楚是什么基本形——板、支架、壳体、轴——再用毫米标注关键外形尺寸。
- 特征操作加精确参数。逐个描述孔、槽、凸台、倒角、拔模角,每个特征尽量带完整的尺寸和位置数据。
- 对称与约束关系。说"四角各一个孔,距边缘10mm"比笼统说"四个角上有孔"好得多。模型不是人,它不会脑补"那当然是均布的啊"。
- 删掉形容词和主观感受。"结实""美观""像苹果一样"这类词,在text-to-cad里是无效信息,甚至可能干扰几何生成。
举一个我用过非常成功的示例,大家可以直接抄作业:
生成一个L形支架。侧视为L形,长边水平方向120mm,短边竖直方向60mm,整体厚度5mm。两段交接处的内侧倒R3圆角。长边上开两个直径6mm的过孔,孔中心分别位于距左端10mm与110mm处,距长边下边缘15mm。
这串描述看起来啰嗦,但CAD建模本来就是精确的语言游戏。text-to-cad只不过帮你把这个"语言描述"翻译成了"特征操作",描述越精确,翻译的误差越小。
相反的例子我也踩过。有一次我想生成一个"配电箱外壳",提示词里写了很多功能需求,什么"防尘防水""侧面要散热孔""底部要出线口",结果出来的模型惨不忍睹——尺寸比例失调,孔数是随机的,壁厚薄得能透光。原因很简单:我描述的是功能和意图,而不是几何和操作。后来我把提示词改成高度参数化的描述:"箱体主体300x200x150mm,壁厚2mm,顶盖与箱体分离,顶盖通过四个M4螺丝固定,孔位距边缘8mm",结果立刻可用。
4.2 生成结果的检查清单
模型生成只是起点,验收才是重头戏。这一步无论如何不能省——把text-to-cad的输出直接扔进生产环节,等于在赌概率,而AI生成的概率性决定了它一定有翻车的时候。
我每次拿到生成结果,都会按下面这张清单过一遍:
- 整体尺寸是否与预期一致?用测量工具确认长宽高、壁厚等核心尺寸。
- 特征数量对不对?说好的4个孔是不是真的4个?圆角是否遗漏?
- 位置关系是否正确?孔的间距、孔到边缘的距离逐一确认,不能只看个大概。
- 几何是否有破损?导入时要观察是否有非流形、破面报错。
- 最小特征是否满足工艺要求?比如0.5mm的薄壁,3D打印或许能勉强做,CNC基本没戏。
检查手段并不复杂。在Fusion或FreeCAD里导入STEP后,我第一件事是查看质量属性——如果是合法的实体,系统会给出一致的体积与惯性矩数值;如果是破壳或非闭合几何,质量属性计算会直接报错。这个"质量属性计算"是最简单有效的实体合法性测试。然后我会逐个特征测量,重点确认孔的相对位置。有时候孔是6.2mm而不是6mm,屏幕上根本看不出来,只有测量才能发现。
4.3 与参数化建模软件的接力
拿到STEP之后,多数人在自己常用的CAD里要做的第一件事不是直接改,而是"重新参数化"。
原因前面说过:STEP是一个纯几何格式,没有参数化历史。你没法直接改某个孔的直径再让整个模型自动更新。所以标准的接力流程是:把生成的实体当作参考,基于它重新建立自己的参数化特征树。
我在Fusion里的具体操作是这样的:
- 导入STEP文件,得到原始实体。
- 新建草图时开启"捕捉原始实体",把它当作参考几何。
- 在参考几何上重新画草图、重新定义拉伸与切除特征。
- 新特征树建立完成后,隐藏或删除原始导入实体。
这个流程做完,你重新获得了完整的可编辑性。之后任何尺寸改动、设计迭代,都能在参数化特征树上直接操作。有人觉得这一步多此一举,但做过工程项目的人都会明白:设计变更从V1到V2是最频繁的阶段,直接在"死几何"上改,会让人崩溃。
5. 踩坑实录:生成结果是"好看"还是"能用"
5.1 精度、单位与公差问题
这里必须给大家泼一盆冷水:text-to-cad目前最大的问题,不是画不出来,而是画出来了但"不靠谱"。
第一个坑是单位混淆。某些模型会把数字当作相对单位而不是绝对尺寸。你输入"一个100 x 50 x 2的板",它可能给你一个体积放大了几十倍的抽象块。我的对策是:提示词里强制带"mm",生成后再用CAD测量工具验证核心尺寸,双保险。
第二个坑是尺寸漂移。比如你要求孔中心距左边缘10mm,它实际生成时可能给到10.2mm。这0.2mm看起来微不足道,但在装配场景里就是一个孔位偏了装不上的现实。这类误差在导入CAD后一定能测量出来并修正,前提是——你必须量。
第三个坑是几何细微错误。模型在屏幕上看着完美,放大几百倍之后,可能会在圆角处发现微小的褶皱或者自交曲面。这些瑕疵在普通显示下完全看不出来,但切片软件或仿真求解时一定会炸给你看。所以务必养成"导入诊断+质量属性计算+切片预览"三连检查的习惯。
5.2 可制造性检验
"好看"和"能用"之间的距离,大概隔着一个完整的工艺知识库。
我见过不少初学者兴奋地向周围人展示AI生成的零件模型,但那类模型压根没法加工。举几个我真实遇到的例子。
第一,完全没有拔模角。注塑件和压铸件几乎都要有拔模角,但text-to-cad生成的大多数模型侧壁都是90度垂直的,这种设计一开模就会刮伤产品、甚至导致无法脱模。第二,壁厚严重不均。同一块板上既有0.5mm的薄区又有5mm的厚区,注塑时会缩水翘曲,3D打印时会拉丝和冒支撑。第三,内圆角半径小到没法加工。CNC铣削内角时必须考虑刀具半径,R1的内圆角配直径10mm的刀,刀根本转不进去。
所以拿到任何生成模型,我都会先做一层"工艺体检":确定目标工艺是注塑、CNC还是3D打印,然后按该工艺的核心约束逐项检查特征。现在有些软件工具支持DFM自动检查,能提前标出一些明显的加工风险点,但最终判断还是得靠人——尤其那些涉及装配关系、结构强度的判断,AI短期内很难替你作主。
5.3 常见问题速查表
我把自己这段时间踩过的坑整理成了一张表,遇到问题时可以快速对照,省得一个个试。
| 症状 | 可能原因 | 处理方式 |
|---|---|---|
| 生成模型整体尺寸离谱 | 单位被当作相对值 | 提示词里强制写mm,导入后先量测 |
| 孔的数量不对 | 提示词没明确数量 | 明确"4个直径6mm的孔",而不是"几个孔" |
| 孔位置漂移 | 缺少位置约束描述 | 补充"距左边缘10mm""中心距30mm" |
| 破面或导入报错 | 生成引擎拓扑缺陷 | 先尝试CAD修复工具,不行就重新生成 |
| 模型看起来像样但不能加工 | 缺少工艺特征(拔模、圆角) | 在CAD里补齐工艺特征后再评估 |
| 生成结果不是实体 | 输出了曲面或壳 | 检查导出选项,尝试重新生成 |
这张表不万能,但覆盖了我测试过程中八成以上的问题。还有一个很重要的心得:遇到生成结果不理想,我的第一反应永远是回头看自己的提示词,八成是哪里把参数写漏了或者写模糊了。AI的"笨"往往源于人的"懒"。
5.4 一个完整的翻修案例
最后分享一个具体的翻修过程,让大家感受一下实际工作流是什么样。
我做过一个电缆固定座,需求是:一个长方体底座,上面有一个半圆形卡槽,两侧各有一个安装耳。我用text-to-cad生成了初版,生成结果第一眼看起来很对——底座、卡槽、安装耳都在。但测量后发现两个问题:一是两侧安装耳上的孔没有给出直径,工具随机生成了4.5mm的孔;二是半圆形卡槽的半径比电缆直径大了2mm。
处理过程是这样的:先把STEP导入Fusion,质量属性验证通过后,用参考几何重新建特征树。重建时我把安装耳孔的直径改为M4螺纹配合的4.5mm过孔,卡槽半径改成匹配电缆规格的精确值,然后顺手加了入口倒角和底座固定螺丝孔。整个过程大概十五分钟。如果从零开始画这个零件,我至少需要四十分钟。这就是text-to-cad现阶段最舒服的使用姿势:它把基础形状给你,你负责把工程灵魂加进去。
6. 我的体会与一个长期观察
最后说点个人体会,不打算做那种"以上等等"式的总结,就是几句碎碎念。
text-to-cad这个方向,我越用越觉得它像早期的机器翻译工具——一开始你指望它通篇翻译不现实,但拿它做初稿、做草稿润色,效率提升是实实在在的。放到工程上,把它定位成"草图生成器"而不是"设计替代者",是最务实的心态。
一个很有意思的现象是:我身边高频使用text-to-cad的人,恰恰不是最资深的工程师,而是那些"懂设计但没空画图"的角色——产品经理、结构项目负责人、还有我这种需求描述能力强但建模熟练度一般的工程师。这个分布本身就说明了它的历史使命:它不是给顶尖设计师用的神笔,而是给每个脑子里装着真实零件的人配的一支来得快的铅笔。
另一个观察是,这个领域正处在从"学术Demo"走向"工程实践"的关键跨越期。早期论文里的方法大多输出点云、体素或者STL,离工业场景太远;现在商业化的方案已经能端到端输出可编辑的STEP,这背后是数据管线、评价体系、后处理流程共同成熟的成果。我不敢说三五年后工程师这个岗位会消失,但"花十分钟把想法变成精确模型"这件事的门槛,确实已经在肉眼可见地崩塌。
如果你想亲自体验一下text-to-cad到底到了什么水平,我的建议是:不要拿网上的演示样例测试,拿一个你真实工作中画过的小零件当题目。只有用它处理你熟悉的东西,你才会准确知道它到底几斤几两——哪些环节能放心交给它,哪些环节必须自己盯着。说到底,AI工具的价值不在于替代你,而在于把你在重复劳动上的时间挤出来,让你去做更值得的事。以上,就是我这段时间折腾text-to-cad的全部经验。如果你也在用类似方向的工具,欢迎评论区聊聊你踩过的坑,说不定比我写的这些更精彩。