说个最近圈子里的热词:text-to-cad。我第一次看到这个词的时候,第一反应是这玩意儿是不是又一个"输入一句话,AI帮你画个图"的噱头。直到自己上手试了一圈,才意识到它解决的不是"画图"这件事,而是把CAD建模从"参数驱动"硬生生拽进了"语义驱动"的时代。这篇文章我会把text-to-cad的技术原理、工具选型、实操流程和踩坑记录都摊开讲,适合正在做机械设计、工业设计、3D打印的工程师,也适合想用AI辅助建模的开发者。
1. text-to-cad是什么,它到底解决了什么痛点
1.1 从"画图"到"说图",建模门槛被砍掉了一大截
传统的CAD建模是个什么体验?你脑子里想的是一个法兰盘,手上却要从画草图、标尺寸、选拉伸方向、添加倒角一步步来。一个稍微复杂的非标零件,熟练工也得折腾半小时起步,新手更是在特征树里迷路。text-to-cad直接把这个过程压缩成一句话:你告诉AI"我要一个外径80mm、内径30mm、四个均布螺栓孔、带2mm倒角的法兰盘",它就把对应的CAD模型给你生成出来。
这里有个容易被忽略的关键点:text-to-cad生成的不是一个普通3D网格文件,而是一个真正可编辑、带参数、带特征树的CAD实体模型。这意味着你拿到手之后还能继续修改尺寸、调整孔位、变更倒角半径。它跟那些只能生成3D打印用网格模型的文生3D工具(比如常见的文生Mesh模型)有本质区别——后者生成的模型无法用于工程制造,而text-to-cad的目标就是直接对接设计和加工环节。
那它到底适合谁?我个人的判断是:
- 机械/非标设计工程师:快速生成标准件、非标件的初始版本,省去大量重复建模时间。
- 3D打印玩家:描述一个零件需求,直接拿到可打印模型,顺便解决"网上找不到合适的STL"这个老大难。
- 产品设计和工业设计:概念阶段快速出多个方案,方便对比造型和结构。
- 做CAD二次开发的技术人员:理解text-to-cad背后的数据结构和训练范式,可能会找到新的插件开发方向。
1.2 三条技术路线,各有各的脾气
目前市面上的text-to-cad工具,背后技术路线大致分三类。我把它们的特点整理成了个表格,方便对比:
| 技术路线 | 代表工具/项目 | 核心逻辑 | 优势 | 短板 |
|---|---|---|---|---|
| 检索匹配式 | 早期的一些零件库工具 | 用文本语义去匹配已有模型库,找到最接近的模型返回 | 速度快,几何质量可靠 | 只能找"已有的",无法生成"没见过的" |
| 端到端生成式 | 部分文生3D模型工具 | 从文本直接生成3D网格或体素 | 描述自由度高 | 尺寸精度差、模型不可编辑、基本无法用于加工 |
| 参数化序列生成式 | Zoo、Backflip、Text2CAD | 将文本解析为CAD操作序列(如拉伸、打孔、倒角),通过CAD内核执行 | 输出的是特征树模型,可编辑、可制造 | 生成复杂度有限,对文本描述的规范性要求高 |
当前真正有价值的、被工业界看好的主要是第三种——参数化序列生成式。它本质上是把"人用CAD软件建模"的动作变成"AI生成CAD操作序列",然后在后台用CAD内核执行。比如用户说"画一个矩形草图,拉伸20mm,在四个角添加R5的倒角",工具需要理解这句话里的每一个动作,然后翻译成特征树操作。
2. 实操上手:用text-to-cad从零生成一个法兰盘
2.1 工具选型参考
现在能直接用上的text-to-cad工具大概有这么几类,我逐个说下实际体验,方便你按需求选。
Zoo(Text-to-CAD):目前知名度最高的一家,由前Onshape的工程师创立。它的思路是训练模型直接生成Onshape平台上的参数化特征序列。输入一段文本提示,它会在浏览器里构建出完整的特征树,用户可以像在CAD软件里一样拖动尺寸、修改参数。我用下来感觉对机械零件理解得比较到位,"法兰""轴承座""安装支架"这类词它能准确映射到对应结构。
Backflip AI:这个项目主打的也是文本生成模型,输出格式可以直接对接主流的CAD工具和切片软件。它的亮点是除了文本,还能结合图片输入做参考建模。邀请制内测的时候我试过,生成的模型曲面处理得不错,但在精确尺寸控制上略逊于Zoo。
Text2CAD(学术开源项目):这是科研圈的一个基准项目,把文本指令自动转成CAD命令序列,用的是DeepCAD数据集做训练。如果你不是用它来直接干活,而是想研究或者做二次开发,这个项目的代码和模型很值得扒一扒——它把"自然语言到CAD操作序列"这个映射关系做成了透明可分析的状态机。
LLM + OpenSCAD/CadQuery脚本:严格说这不算完整的text-to-cad工具,而是活用大语言模型。让ChatGPT这类LLM生成OpenSCAD或CadQuery代码,然后在本地执行生成模型。优势是灵活、代码可改可复用,缺点是写提示词要极度严谨,且生成的代码经常需要人工调试。
我自己的选择是主力用Zoo做日常零件的快速生成,同时用Text2CAD的思路做技术验证。下面实操部分以Zoo为例,但不影响这套方法迁移到其他工具。
2.2 完整实操流程
第一步,把需求想清楚再写提示词。很多人在这一步就翻车了,输入"帮我画个法兰盘",结果生成的模型乱七八糟。不是AI不行,是你给的信息太少了。
一个合格的提示词应该包含四个层次:
- 形状定义:明确是圆形法兰、方形法兰还是异形法兰。
- 核心尺寸:外径、内径、厚度、孔数、孔径。精确到数字。
- 孔位分布:均布还是非均布,分度圆直径是多少。这一步决定了后续装配能不能对上。
- 加工特征:倒角、圆角、螺纹孔、沉头孔等工艺细节。
我实际写的一段提示词是这样的:
Create a circular flange with outer diameter 80mm, inner bore 30mm, overall thickness 10mm, four through holes of 9mm diameter equally spaced on a 60mm bolt circle, and 1mm chamfer on the outer and inner edges.注意几个细节:
- 全部用英文,不用中文。当前text-to-cad主流模型在英文语料上训练得最好,中文描述经常出现语义漂移。如果你实在想用中文描述,建议先自己翻译成英文再提交。
- 用"through holes"而不是"holes",用"bolt circle"而不是"circle pattern"。这是CAD领域的精确术语,喂给AI的词汇越接近工程师实际使用的表达,生成结果越准确。
- 每个尺寸都写明单位"mm",防止模型在英制和公制之间摇摆。
第二步,等待生成后检查特征树。Zoo生成完之后,你可以直接在网页里看到模型和左侧的特征树列表。第一步先检查特征树是否和你的预期吻合:应该有创建草图、拉伸凸台、阵列孔、倒角这几个主要特征。如果特征树里出现了你完全没提到过的怪异操作(比如"loft"放样、"sweep"扫掠),大概率模型理解偏了。
第三步,在参数面板里微调关键尺寸。这一步是text-to-cad相对传统建模最有体验优势的地方。你不用重画,直接改参数值就行。比如我发现生成的孔直径是9mm,但我实际需要的孔径是8.5mm,直接在参数面板改掉一分钟都不用。
2.3 提示词设计的三个层次,从入门到进阶
我在反复测试中总结了提示词设计的三个层次,如果你想让模型稳定输出高质量结果,建议按照这个思路来组织语言。
第一层:粗粒度功能描述。只说你要一个什么东西,比如"一个轴承座"。这一层的作用是让模型确定大方向。但只到这一层的后果就是模型自由发挥,你收到什么完全靠运气。
第二层:精确尺寸驱动。把所有你能想到的关键尺寸都写进去。外径、内径、厚度、孔数、孔距。模型对数字的敏感度远超对形容词的敏感度,你写"一个大法兰盘"不如写"外径120mm的法兰盘"来得靠谱。这个规律其实也好理解:CAD本身就是数字驱动的软件,数字特征在特征树里是刚性约束,而形容词只是模糊的语义标签。
第三层:制造工艺补全。这一层最容易被忽略,但对做机械加工的人来说影响巨大。同一个零件,做3D打印和做CNC铣削,对倒角、公差、拔模斜度的要求完全不同。你在提示词里把工艺特征描述进去:"with 0.5mm chamfer on the outer edge"或者"with 2 degree draft angle",模型生成的模型才能更接近可直接加工的状态。
我自己总结的提示词可选模板,套用起立省心:
Create a [零件类型] with the following specifications: - Main body: [形状描述 + 关键尺寸] - Holes: [孔类型 + 孔径 + 分布方式 + 分度圆或间距] - Edge treatment: [倒角/圆角 + 参数] - Overall dimensions: [总长/总宽/总高 + 材料厚度] - Manufacturing notes: [公差等级/表面处理/拔模斜度,如果有特殊要求]逐项填参数,比自由发挥稳定得多。
3. 核心细节拆解:text-to-cad模型是怎么理解自然语言的
3.1 从文本到特征树,这是一条"语义翻译"链路
要理解text-to-cad的难点,得先明白CAD模型在电脑里的底层逻辑。一个工业零件模型,本质上是一棵特征树:先有草图(Sketch),然后拉伸成实体(Extrude),再添加孔(Hole)、倒角(Fillet/Chamfer),形成完整的造型历史。这套历史记录可以回溯、可以编辑。
text-to-cad要做的,就是让AI学会"读一句自然语言,生成一连串特征操作指令"。这个链路比文生图模型要复杂得多:图片是像素网格,错了改一改不明显,但CAD特征的任何一步错了,整个零件就废了。比如拉伸方向反了、孔打在了反面、倒角选错了边,后续特征全都会跟着出错。而且CAD操作是有顺序依赖的,你得先建立草图才能拉伸,先有实体才能打孔。AI必须理解这种时序约束。
3.2 为什么传统的自然语言处理在这里失效了
有人会问:现在LLM那么强,直接把提示词丢给它,让它输出CAD文件不就行了?这里面有两个难点:
第一个难点是数据稀缺。CAD模型不像图片文本那样满天飞,网上的三维模型很多是网格模型,没有特征树信息,无法用于训练"操作序列生成"模型。真正带完整建模历史的CAD数据少之又少。目前用得比较多的数据集是Fusion 360 Gallery Dataset和DeepCAD Dataset,规模也就在十几万到几十万的量级,相比文生图模型动辄几十亿的训练样本,数据量差了太多。
第二个难点是语义鸿沟。自然语言描述是模糊的、口语化的。"一个大小适中的孔"这种话,人听了大概能猜个八九不离十,AI没有常识数据库根本没法猜。CAD里的"孔"是一种精确到毫米、带有公差和表面粗糙度注释的工程特征。这个语义鸿沟是目前text-to-cad最头疼的问题——把模糊语言翻译成精确几何,信息本身就损耗了一大截。
3.3 为什么尺寸精度始终是绕不过去的坎
我测试过很多次,text-to-cad工具在"形状像不像"这个问题上已经做得不错,但在"尺寸对不对"上经常翻车。这背后有个技术层面的必然:主流模型都是序列到序列的生成框架,它在生成参数时本质是在做概率预测,而不是精确求解。
举个例子,你输入"4 holes equally spaced on a 60mm bolt circle",AI需要自行推断出四个孔的坐标。60度、120度、180度、240度、300度,这些角度对应的坐标值需要计算。如果是人在CAD里操作,草图的几何约束会保证孔位自动均布;但AI生成的是离散的操作序列,任何一个坐标算错,视图上看起来没问题,实际测量时就会发现角度不均。
这也是为什么行业内对text-to-cad的期待逐渐从"输入即得"变成了"半自动辅助"——AI负责搭建结构和形态,工程精度还需要人在CAD软件里做二次确认和调整。任何跟你说"全自动生成精确加工模型"的text-to-cad工具,都建议你持保留态度。
4. 我踩过的坑:text-to-cad用起来到底哪里不顺手
4.1 高频问题清单与排查思路
| 问题现象 | 可能原因 | 解决办法 |
|---|---|---|
| 生成的模型没有内部孔洞,只有一个实心圆柱 | 提示词用了"hole"而不是"through hole";或者模型把孔理解成了外观特征 | 明确写"through hole"或"drilled hole",并标注孔的深度/是否为通孔 |
| 尺寸严重漂移,外径80mm生成成了85mm | 模型在生成参数时发生了概率漂移,这是生成式模型的通病 | 生成后用参数面板直接改回精确值;或在提示词里重复强调关键尺寸 |
| 模型是空心的壳 | 工具其实只生成了曲面模型,不是实体特征 | 检查输出格式,确认是B-rep实体还是mesh网格,工程使用必须选实体 |
| 中文输入效果明显比英文差 | 当前模型的训练语料以英文为主 | 切换成英文描述,或用翻译工具把中文转成英文提示词 |
| 生成的倒角方向反了 | 模型对倒角"边"的选择逻辑与预期不一致 | 不要在提示词里同时要求多个方向倒角,逐个添加减少歧义 |
| 模型输出格式是PLY/OBJ | 你用的工具本质还是文生3D模型,不是真正的text-to-cad | 换用支持B-rep/STEP或特征树输出的工具 |
4.2 三个实操心得,让生成结果稳定不少
第一个心得:先搜后画,别从零生成。text-to-cad这一类工具通常背后都有模型库支撑。与其一上来就提复杂需求,不如先用简短的描述把最接近的模型找出来,再基于这个基础版本写提示词做调整。比如我要设计一个非标的电机安装支架,先搜"motor mounting bracket"拿到基础模型,再告诉AI"enlarge mounting holes to 6mm, add a 20mm cutout on the base"。这样做比从一开始生成一个全新模型要稳定得多。其实这也更符合工程师的真实工作习惯——很少从零设计,更多是在已有标准件基础上做适配。
第二个心得:用数字驱动,不用形容词驱动。"大一点的底座"这句话在机器眼里等于没有信息,"120mm 80mm的矩形底座"才能转化成特征树里的具体参数。凡是能定量的地方,尽量定量;凡是能给出具体值的,不要给范围。写提示词最忌讳的就是模糊的"差不多""尽量""稍微"这类词。
第三个心得:复杂零件要分而治之。我一开始试着让AI一次生成一个完整的蜗轮减速器箱体,结果惨不忍睹。后来学乖了,把箱体拆成"下壳体"和"上盖"两部分,每部分单独生成,再考虑合并。text-to-cad目前的生成能力对付五六个特征的简单零件还可以,一旦特征数量超过十个,出错率就会急剧上升。拆分描述,每次只要求生成一个功能模块,成功率高很多。
4.3 生成后的精度修复才是真功夫
AI生成了模型,不等于你拿到了能用的模型。上一步生成完成之后,无论如何我都建议在CAD软件里做一轮标准的"模型体检":
- 检查草图是否有未闭合的轮廓或过约束的线。这一步直接影响后续拉伸是否报错。
- 检查特征树的顺序是否合理,比如孔特征是否在拉伸特征之后,倒角是否在其他孔特征之后,顺序乱了可能导致几何冲突。
- 测量关键尺寸,跟提示词逐项核对。别偷懒,90%的尺寸漂移问题在这步能发现。
- 检查是否有重复的面或微小碎面。生成式模型偶尔会创建出肉眼看不出来、但实际影响后续倒角的细小几何。
我当时用Onshape做体检,发现Zoo生成的模型在参数化格式上基本兼容,导入后特征树能保留;但如果是用它导出的STEP文件,再导入其他软件,特征树信息就丢了,参数化修改能力也随之消失。所以你要权衡清楚自己到底要的是"可编辑的参数化模型"还是"可以直接给加工的STEP文件"。
5. 应用场景与后续玩法
5.1 已经落地验证的场景
3D打印快速原型:这是目前text-to-cad落地最顺畅的场景。3D打印对模型的精确度要求相比传统机加工低,切片工具接受mesh格式,而且打印出的实物如果尺寸不合适,改起来比返工模具和机加工成本低太多。我自己用text-to-cad给家里的打印机做过几个小零件:一个走线夹、一个轴端限位块、一个摄像头支架。从文本描述到拿到STL文件,十分钟以内搞定,省去了翻模型库和手绘草图的环节。
标准件与非标件的快速方案对比:机械设计里做方案时,经常需要在几分钟内确定"这个位置的支架用U型还是L型"这种粗粒度结构判断。以前最快的办法是从标准件库拖一个改,而现在可以直接给AI描述两种方案,让它分别生成模型用来对比评估。尺寸虽然还要后续细调,但结构的合理性一眼就能评估了。
设计教育与培训:这个场景可能很多人没想到,但我实际在大学同学和带新人的过程里用了好几次。新手最难理解的其实是"特征树"这个概念——为什么倒角要在打孔之后?为什么先拉伸后切除?text-to-cad生成的模型天然带特征历史,让AI生成一个零件,再带着新人一步步看模型的特征树是怎么长出来的,比死记教材里的操作步骤直观得多。
5.2 text-to-cad会不会取代CAD建模师
我个人的判断:短期不会取代,但会重新分配建模师的工作重心。
原因很好理解。工业建模不只是"把形状画出来",它包含大量的工程判断:这个位置受力,壁厚要加大;这个孔要跟标准件配合,公差等级得严格控制;零件要注塑成型,必须有脱模斜度。这些不是几何问题,是决策问题。text-to-cad擅长的是把语言翻译成几何操作,而不是替你做工程决策。
实际更可能出现的分工模式是:AI负责从文本生成初始模型,解决"从无到有"这一步;工程师负责检查、修正、做工艺性分析,解决"从有到优"这一步。我自己用下来最明显的感受是,它帮我省掉了大约三成的重复建模劳动,但并没有减少我在工艺分析和结构优化上的投入,这两块的判断力恰恰是工程师真正的价值所在。
5.3 如果你想训练自己的text-to-cad模型
这块是写给想做深度研究或二次开发的朋友的。如果你不满足于用现成工具,想在这条赛道做点什么,几个核心资源值得关注:
- 数据集:Fusion 360 Gallery Dataset、DeepCAD Dataset、ABC Dataset。前两者带完整的建模历史序列,是训练参数化生成模型的黄金数据源。
- 开源模型:Text2CAD 项目、DeepCAD 模型,它们是当前这个方向的基础框架。其中DeepCAD已经能做到从Sketch到Extrude的完整序列生成,Text2CAD则进一步引入了自然语言接口。
- 自建模型的思路:基本路径是先用CAD数据集预训练一个操作序列生成模型,再用成对的"文本-操作序列"数据做指令微调。其中文生序列的对齐是难点和关键,因为CAD操作序列的语法结构非常严格,一个错误的参数就可能导致最终模型几何报错。
- 硬件和部署:如果你只是做研究验证,单卡A100级别的算力可以完成DeepCAD级别的模型微调。如果要做大规模部署,就要考虑推理速度和CAD内核的调度优化,这块牵扯的知识会比较深。
最后分享一点个人体会
这个内容从第一篇测试到现在也折腾了几周,我最深的感觉是:text-to-cad已经越过"能不能用"的临界点,进入"顺手不顺手"的优化阶段了。就我自己来说,现在画一个普通的机械结构零件,打开CAD软件从头画是最后的兜底方案,第一选择永远是先用text-to-cad生成一个基础版本,再在参数面板里精修。用AI生成初稿、人工做精度和工艺迭代,这套工作流运转起来之后,画图效率的提升不是一点半点。如果你手里正好有件着急出图的活儿,不妨按我上面写的方法试一次,感受一下"说图"和"画图"的差别,说不定你就回不去了。