ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

text-to-CAD:从自然语言到参数化模型的技术路线与工程实践

text-to-CAD:从自然语言到参数化模型的技术路线与工程实践

去年年底,团队内部接了个急活儿:设计师要把一套概念方案在48小时内变成可用于结构校核的CAD模型。按老流程,这至少需要一周,因为要从零开始建参数、搭约束、处理曲面。当时我们已经在几个AI工具上试了几个月文生图,基本停留在“看个热闹”的阶段,真正能落回参数化建模的几乎没有。我带着“这次大概率也是玩具”的心态试了几个text-to-CAD工具,结果意外地坚持了下来,不仅跑通了,还把这套流程固化成了团队内部的辅助管线。

这篇博文想跟你认真聊一聊text-to-CAD:它到底是什么、背后的技术路线怎么走、我在实际跑链路时踩了哪些坑,以及它现在到底处在什么阶段,哪些环节靠谱,哪些环节千万别当真商用。

1. text-to-CAD到底是什么,为什么它值得被认真对待

1.1 从一句话到三维模型,这件事的复杂度被严重低估

先给不熟悉的朋友一句话解释:text-to-CAD,就是用自然语言描述一个物体的形状、结构、约束关系,让AI生成对应的CAD模型文件。输入是“一个直径40mm、厚度3mm的带安装孔的圆形法兰盘”,输出不是一张渲染图,而是一个可以导入SolidWorks、FreeCAD、Fusion 360继续编辑的模型。

听起来和AI生图很像,但本质上差远了。生图任务里,一张“看起来像”的图片就是成功;CAD任务里,“看起来像”完全不够,模型必须满足尺寸约束、几何拓扑有效、可被后续特征树编辑,甚至能直接丢给CAM做加工。换句话说,text-to-CAD要求的是工程级正确性,而不是视觉级相似性。

之所以说它的复杂度被严重低估,是因为它横跨了两个方向的深度技术:自然语言理解要能把口语化描述映射成精确的参数约束,三维生成要能产出具备连续拓扑和可编辑特征的几何体。单独拎出来任何一端都是难题,合在一起更是硬仗。我在测试早期工具时经常遇到一种情况:描述里明明写了“四个对称的孔”,生成的模型却只有三个孔且位置完全不对称——这在大模型文本生成里是“小瑕疵”,在CAD里就是废件。

1.2 它和普通CAD自动化、AI生图的本质区别

传统CAD自动化靠的是脚本、模板和参数化驱动。你预先搭好一个法兰盘模板,改改直径和孔距,一分钟生成几十个变体。这条路很成熟,但前提是模板得先有人手动建出来。text-to-CAD想做的是抹平“从零开始”这个阶段——没有模板,没有历史参数,只有一个模糊甚至带口语的习惯性描述,直接出基础模型。

和AI生图的区别更明显。图像生成模型学的分布是“像素怎么排布”,CAD生成模型学的是“几何拓扑怎么组织、特征怎么构建”。前者可以容忍细节糊掉,后者掉一个倒角、少一个孔位就是结构性错误。这也是为什么text-to-CAD不能简单套用现有文生图的模型架构——它必须结合CAD特有的特征表达方式和参数约束机制来做设计。

从工作流上看,它填补的是从“概念描述”到“首版模型”之间的空白。过去这段路靠工程师手动建模,短则数小时,长则数天。现在AI先出一个“毛坯”,工程师在这个基础上做精修。这个变化看起来不大,但实际体验过之后你会发现,最大的收益不是省了那几个小时,而是“空白画布的启动成本”被彻底打掉了——你不再需要面对一个空白文件发呆,你拿到的是一个已经可以开始改的模型。

2. 核心技术路线拆解:一个字的生成背后发生了什么

2.1 自然语言如何被翻译成几何约束

这是整个链条里最微妙的一环。你写“一个带底部加强筋的L型支架”,这句话里至少有三种信息:几何类别(支架)、截面形状(L型)、附加特征(底部加强筋)。模型要做的第一件事是把这句话拆成语义单元,再映射到对应的几何参数。

当前主流的做法是两步走。第一步,用大语言模型做意图解析,把自然语言转成结构化的CSG操作树或者带参数的特征序列。比如“直径40mm”会变成一个圆柱体的直径参数,“打三个均匀分布的孔”会转成圆形阵列操作。第二步,把这张操作树喂给几何内核,由内核执行布尔运算、拉伸、旋转、阵列等操作。

难点在于自然语言的高歧义性。一个词在机械语境和日常语境里的含义完全不同——“壳体”在工艺里指薄壁结构,在通用语境下可能只是“一个外壳”。我在实际测试中发现,描述越口语化,生成结果越容易跑偏。解决办法只有两个方向:要么用户在描述时主动用工程术语,要么模型做大参数微调时灌入足够的行业语料。目前看,后者做得还远远不够。

2.2 网格生成、隐式场与参数化建模的取舍

text-to-CAD背后的几何生成路线,目前大致分成三派。

第一派是直接生成网格(Mesh),代表做法是类似文生3D的思路,从文本生成一个三角面片模型。这条路的好处是形状自由度大,能生成雕塑级曲面、有机形态。缺点也很致命:网格模型没有参数特征、没有历史树,放进主流CAD软件里只是一个“哑模型”,改尺寸非常痛苦,倒角、拉伸这些操作在网格上几乎不可行。

第二派是隐式场/神经辐射场路线,用神经网络拟合一个连续的占据场,再通过Marching Cubes提取等值面生成网格。它能表达非常精细的几何细节,但得到的依然是网格,工程可用性同样受限。我试过一些基于这类方案的工具,生成的模型表面质量不错,但导入CAD后一量尺寸就发现公差控制完全不可预期。

第三派是参数化特征路线,也是我认为真正配得上“text-to-CAD”这个名字的方向。它让模型直接输出带特征历史的参数化模型——拉伸、打孔、倒角、阵列都记录在特征树里,下游任意编辑。这个方向的挑战在于搜索空间更受限,模型必须学会调用固定的几何操作原语,而不是自由发挥曲面。但一旦生成成功,模型就是“活”的,直接接进工程流。

2.3 我看过的几种产品化路线与我的选择

目前市面上能接触到的text-to-CAD工具,大致按照“深度集成”程度分成两类。

第一类是传统CAD软件里内置的AI辅助插件,它们把生成结果直接转化为该软件的参数化特征。这类工具胜在工程闭环,生成后立刻可以继续做装配、仿真;缺点是受限于软件自身的几何内核表达,生成自由度有限,遇到需要复杂曲面时就老实了。

第二类是独立平台,生成后导出STEP、STL、BREP等通用格式。这类工具上手快、不绑架你的软件生态,但格式转换后特征的丢失问题比较严重。我实测过几轮,从独立平台导出的STEP模型,虽然几何体是完整的,但历史树往往被拍平,很多特征变成“哑体”,后期编辑效率大打折扣。

我个人的选择倾向很明确:如果目标是快速验证概念造型,用独立平台导出网格类格式就够用;如果目标是进入正式工程流程,那就必须选择能输出参数化特征的工具,哪怕它支持的几何类型窄一点。所谓“能用”和“能用得爽”之间,差的不是渲染效果,是特征树是否还活着。

3. 实操:从文本描述到可编辑模型的全流程

3.1 环境准备与工具选型,先别急着冲

在动手之前,先明确你需要什么。我的建议是:如果你只是想体验一下,直接在浏览器里找在线demo就够;但如果你想把text-to-CAD纳入到日常工作流,我强烈建议搭一个本地环境,哪怕初期多花一晚上配置时间,后面省的心力远大于投入。

工具选型上,我的判断标准有三个:一是能否输出参数化特征格式(至少也要是STEP),二是生成结果的几何精度是否稳定,三是是否支持对生成后的模型做二次编辑。按这个标准,我推荐的组合是:用支持文本驱动生成的开源CAD内核或插件作为主力,配套一个可以检查几何拓扑的开源CAD软件作为质检工具,再加一个轻量级网格检查工具兜底。

我没有把宝押在单一工具上,因为实测下来没有任何一个工具能覆盖全部需求。生成本身只是第一步,后续的模型清洗、格式转换、拓扑修复,每一步都需要在不同工具间切换。把所有工具串成一条自动化管道,是比“选一个万能工具”更务实的方案。

3.2 从描述到模型:三组完整的指令设计示例

很多人第一次用text-to-CAD时,指令写得非常随意,结果自然不理想。这里我分享三组我反复实验后沉淀下来的描述模板。

第一组,面向简单机械零件。描述格式建议为:“[类别] + [关键尺寸] + [主要特征] + [装配需求]”。例如:“一个铝合金L型支架,两臂长80mm和60mm,臂宽40mm,厚度5mm,两端各有一个直径8mm的安装通孔,孔中心距边缘10mm。” 这类描述信息密度高,歧义少,几乎所有工具都能给出不错的结果。

第二组,面向带复杂特征的零件。这种情况下建议把描述拆成“主体几何 + 特征操作序列”。例如:“主体是一个直径100mm、高50mm的圆柱体,顶部有一个直径30mm、深20mm的中心孔,底部有四个直径10mm、均匀分布在直径80mm圆周上的螺纹孔,外壁加一圈高度5mm的加强环。” 注意,特征顺序很重要,先主体后特征,AI生成的结构树更清晰。

第三组,面向装配体/多实体。当前多数工具支持得还不好,但如果你一定要试,建议把“零件间关系”写明确:“一个底座,尺寸为120x80x10mm,四角各有一个直径6mm的沉孔;一个竖直安装板,厚8mm,高100mm,通过底部两条滑槽固定在底座上。” 这类任务的失败率很高,不要指望一次性成功,后面会讲到怎么排查。

3.3 实操过程实录:一次从零到STEP的完整跑通

我按自己的标准流程走一遍,给你做个参考。我的环境是Windows 11,安装了FreeCAD作为本地质检工具,配合一个文本驱动参数的CAD生成插件。

先写描述。拿“一个方形法兰盘”举例,我写的是:“正方形法兰盘,边长60mm,厚度10mm,中心有一个直径25mm的贯穿孔,四角有四个直径6mm的安装孔,孔中心距边10mm,四个角做R5的倒圆角。” 这句话里包含了形状、关键尺寸、特征、细节处理四类信息。

提交生成大约等了40秒,返回了一个STEP文件加一个预览图。打开预览图那一瞬间我觉得挺稳,几何外形都对。但导入FreeCAD之后问题出来了:倒圆角特征虽然在预览里显示,但导入后特征树里没有对应节点,整个模型变成了一个单体的BREP实体。

这意味着如果我想在FreeCAD里修改倒角大小,只能删掉特征重新做。所以我又试了第二条路:在插件里打开模型,手动补建特征树,把倒角、孔位这些独立特征重新定义一遍,再导出STEP。这次再导入FreeCAD,特征树完整,孔位参数可改,整体体验接近原生建模。

整个流程跑下来,我的切身体会是:生成速度固然重要,但必须留出“特征修复”的时间预算。如果你把这个时间忽略掉,以为text-to-CAD是“一句话直接出终态模型”,那后续的修补成本一定会让你绝望。把生成结果当“高质量的起步模型”而不是“成品”,心态和工作流程都会顺畅很多。

4. 常见问题与排查技巧实录

4.1 生成结果不准确,怎么定位问题

这是最高频的问题,没有之一。我整理出三条排查路径,按优先级顺序执行,基本能解决80%的偏差。

先看描述是否足够结构化。如果你是“给我做个支架,差不多这么高就行”这类描述,生成结果五花八门是意料之中的。先把它改写成“类别+尺寸+特征+细节”的结构化格式,重新跑一遍,多半会改善。

再看尺寸数据是否自洽。比如你写了“直径100mm,高度50mm”,同时又写了“壁厚80mm”,这两个参数放在一个零件里明显不合理,模型不知道你在说什么,自然会在两个约束之间“和稀泥”。检查描述中所有尺寸是否存在冲突,是成本最低的排障方式。

最后才怀疑工具本身的问题。如果你已经给的是结构化描述、尺寸也自洽,但生成结果仍然出现孔位不对称、数量错误这类硬伤,那大概率是工具背后的生成网络对这类特征的拟合能力不足。这种情况我的建议是换个工具,或者把这类高频重复的特征在后续建模里手动做,不要跟它死磕。

4.2 几何拓扑错误与格式转换的坑

导入CAD后出现破面、偏置、布尔运算失败,是另一个高频问题。这类问题通常出在格式转换环节,而不是生成环节。

不同CAD内核之间交换BREP数据,靠的是STEP这类中间格式。但STEP转换本身就是有损的,尤其对于NURBS曲面和复杂倒角,不同内核的容差设置不一样,容易出现微小的缝隙和重叠面。我的经验是,导出时如果工具提供容差设置,优先选“精细/高精度”模式,虽然文件会变大,但后续修复工作会少很多。

如果破面已经出现,我用的修复流程是先做自动修复:在FreeCAD里用网格工作台检测并填充孔洞,然后做“从网格重建实体”操作。这一步能解决大部分拓扑错误,但会丢失参数特征。如果原模型特征树还在,我更推荐直接回到特征树里修改对应特征参数,而不是在网格层做修复。

还有一个硬盘级的坑:有些工具导出的STEP文件坐标系不统一。同一个零件,有的工具默认Z轴朝上,有的默认Y轴朝上,导入后会旋转90度。解决办法是养成习惯,每次导入后先检查边界框方向和主特征朝向,别等装配约束都做完了才发现方向全反了。

4.3 复杂装配体与重复特征:一次惨痛教训

说一个我记忆特别深的失败案例。当时想用text-to-CAD做一个泵体装配体,包含泵壳、叶轮、法兰、密封圈四个零件,每个零件三到五个特征。我满怀期待地写了三段话,把每个零件和装配关系都描述了一遍,提交生成。

结果:四个零件确实生成了,但装配面完全对不上。泵壳的法兰孔距是80mm,法兰零件的孔距却是75mm;密封圈的直径比安装槽直径大了整整一圈。原因不难猜——生成模型是独立出结果的,它们之间不存在装配约束的联动,你写得再清楚,模型也没有“让A适配B”的能力。

那次之后我调整了策略:不再试图让text-to-CAD一口气完成多零件装配任务,而是让它先生成单个零件,再用CAD里的装配模块约束配合关系。重复特征则是另一种情况——如果零件里有几十个同样的孔,AI生成时很容易漏掉几个。我的处理方式是:先让模型生成带一个孔的版本,再用阵列、镜像这类原生命令一次性补齐,既快又不会错。

4.4 快速自查清单

最后给一张我贴在工位上的清单,每次跑完生成结果就快速过一遍:

检查项自查方法常见结论
整体形状预览图与目标比对轮廓形状明显不符时优先改描述结构
关键尺寸用测量工具实测主要边长/孔径偏差超过5%需要重生成或手动改参
特征数量数一数孔、槽、加强筋的数量数量对不上时优先手动补齐
特征树查看是否保留参数化历史无特征树时考虑重新导出或接受哑体
拓扑完整性导入CAD做布尔求和/差测试失败时做网格修复或回退特征树

5. 应用场景与影响范围:谁能从这波变化里受益

5.1 工业设计与快速验证,效率翻倍的第一现场

工业设计是text-to-CAD最直接受益的领域。传统流程里,设计师画完概念草图后,要把草图交给建模工程师做三维化,这是一个来回拉扯多轮的过程。建模工程师需要理解设计师的意图,把它转成精确参数,这个过程慢且容易失真。

现在有了text-to-CAD,设计师自己就可以先生成一版初模,评估形态比例、装配空间这些关键问题。等到初模的形态方向确定后,再交给工程师做参数化精修。省掉的不只是建模时间,更是“传达与理解”这个环节本身。

特别值得注意的是快速验证场景。比如做结构校核,你不需要一个完美的参数化模型,只需要一个网格精度足够、尺寸基本准确的模型,就可以跑有限元分析做粗略判断。这类场景对特征树的要求不高,但对“快速建模速度”的要求极高。text-to-CAD在这里简直是降维打击——过去一天才能搭出来的简化模型,现在十几分钟搞定。

5.2 教育、创客与个人制造

在教育和创客领域,text-to-CAD的价值甚至被低估了。学生学习三维建模时,最大的障碍是操作软件本身——要记命令、要理解特征树逻辑、要习惯参数化思维。很多学生不是没有空间想象力,而是卡在软件操作上。

text-to-CAD可以把操作门槛降下来,让学生先用自然语言表达想法,看到一个接近意图的模型,再回头学习这个模型是怎么一步步建出来的。这个流程天然适合“逆向教学”——先有结果,再拆解过程,学习动机强很多。

创客领域也是一样。很多maker想做一些简单零件:无人机支架、摄像头云台、传感器外壳。过去他们要么求人帮忙建模,要么花半天学软件。现在直接打字描述,生成模型后导出STL切片打印,整条链路从“求助外援”变成“自助操作”。我甚至看到一个很有意思的用法:有人用text-to-CAD给家里做定制化零件,比如某品牌吸尘器配件的替换件、老床架的加固件,这类需求词条高度结构化,描述起来没有歧义,生成成功率很高。

5.3 对CAD行业工作流的影响:替代的不是建模师,是重复劳动

聊一个从业者最关心的问题:text-to-CAD会取代建模工程师吗?

我的判断是,短期内不会,但它会重新划分工作流里的职责边界。那些大量重复、模式化的建模工作——标准法兰、标准支架、通用外壳——确实会被自动化吞噬。今天你还在手动建这些模型,明天text-to-CAD配合参数模板就能批量产出。但那些需要跨领域经验才能做好的工作,比如理解制造工艺对几何的约束、在性能与可制造性之间做权衡、处理装配链路上的装配关系冲突,这些能力远不是大模型现阶段能兜住的。

更准确地说,text-to-CAD替代的是“用CAD软件描述东西”这个动作,但替代不了“知道该描述成什么样”的判断力。后者恰恰是资深工程师的护城河。所以我的建议是:不要抵抗这个趋势,但也不要只做建模的操作工。把精力放到工艺知识、结构设计经验、跨学科协作能力这些AI很难替代的维度上。

5.4 后续可以怎么扩展

我个人对text-to-CAD的期待,在于它和参数化模板库的结合。现在生成的模型,特征参数虽然存在,但缺乏复用性。如果能把每次生成的有效特征序列自动沉淀成参数模板,时间久了就能积累出一套“只属于你的AI建模风格库”,生成速度会越来越快,质量也会越来越稳。

也可能朝自动化装配的方向进化。当前多零件装配约束是最大的短板,一旦模型能够理解零件间的配合关系(比如轴孔配合、面贴合同轴约束),text-to-CAD才有真正的“设计”意义,而不仅仅是“建模”。这次实测中,我从工具生成的零件开始,手动添加装配约束,整个过程大约花了15分钟。虽然比不了手搭骨架的速度,但比从零开始还是快了一截。

根据我的个人经验,text-to-CAD最合理的定位是“工作流起点”——它负责把抽象的构思变成一个看得见、改得动的实体雏形,而你负责给它注入真正的工程思维。使用中有些小技巧:描述越结构化越好,但也不要过于繁琐;一个简单的实验方法是,如果你能在3句话内把你要的零件特征说清楚,生成的成功率就会很高。如果你连这个都做不到,那问题不在工具,而在你对设计意图的把握。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进