开头先说说我最近的真实感受。CAD建模一直是个门槛不低的手艺活,不少人被挡在门外不是因为空间想象力不够,而是软件操作本身太劝退——画个草图要记一堆快捷键,拉伸旋转全靠鼠标点点点。但text-to-cad这个词最近在圈子里热度一直往上走,核心就是让你用大白话描述一个零件,AI直接帮你把三维模型建出来。我花了大概两周时间,把几个主流方案挨个试了一遍,从命令行工具到在线编辑器都用过了,这里把过程、原理和踩过的坑一次性写清楚。这篇文章适合三类人:刚接触CAD想找捷径的新手、每天画重复零件的工程师、以及想搞清楚这个方向是不是噱头的技术决策者。
1. text-to-cad到底解决了什么痛点:语言直达模型的最后一公里
先说一个反直觉的事实:很多工程师不缺设计能力,缺的是把脑子里的想法变成三维模型的时间。一个标准法兰盘,从新建草图到标注孔位,熟练工也要十几分钟,遇到装配体上的异形支架,半天搭进去都属于正常。text-to-cad的定位不是取代CAD软件,而是把"构思"和"建模"之间的鸿沟填平。
我用一个很直白的类比来解释:传统CAD建模就像手写一篇文章,你需要逐字逐句敲键盘;text-to-cad则像对助手口述你想要的段落,助手帮你把文字落到纸面上。当然助手偶尔会写错字、用错词,需要你圈出来改,但整体效率完全是两个维度。
这个方向真正跑通,靠的是2023年以来生成式AI在三维领域的集中爆发。业界几个团队几乎在同一时期拿出了可用的demo,从最初的把文本转为体素网格,进化到后来直接输出带参数特征的实体模型。目前我实测下来,成熟度最高的方案已经能做到:输入一段描述如"直径50毫米、厚度8毫米、中心孔直径20毫米的法兰盘",模型直接返回一个带完整草图历史记录的参数化零件,而不是那种中看不中用的表面网格。
这里有个关键认知必须要纠正:text-to-cad不是文本生成图片那种"画个大概"的逻辑,它生成的是真正的CAD实体,有尺寸、有约束、能进入工程图、能直接送CAM加工。换句话说,AI生成的零件不是一张漂亮的渲染图,而是一个严肃的工程文件。
我整理了一下当前各方案的实际表现差距,用表格说明更直观:
| 方案类型 | 输出格式 | 可编辑性 | 尺寸精度 | 典型延迟 |
|---|---|---|---|---|
| 体素网格生成 | STL/OBJ网格 | 无法参数化编辑 | 模糊,仅适合视觉预览 | 秒级 |
| 隐式曲面重建 | 网格+粗略曲面 | 难以直接修改 | 中等,需要二次修复 | 秒级到分钟级 |
| 参数化B-rep生成 | STEP/原生CAD格式 | 完整草图历史,可改参数 | 高,可指定精确尺寸 | 分钟级 |
参数化B-rep是这个领域的圣杯,也是我重点折腾的方向。STL网格类方案看起来很炫,但真到加工环节就知道多痛苦——没有特征树、没有约束关系、修改一个孔的位置等于重画整个模型。而参数化方案给你的是一棵完整的历史树,想改直径就改直径,想挪孔位就挪孔位,跟自己在软件里画的完全一致。
目前各方案里,我也看到一些很有意思的落地尝试:有人用它生成标准件库的初始模型,再人工修细节;有人把它当作早期概念设计的快速草稿工具,先看造型再精修;还有人把text-to-cad和拓扑优化联动,直接秒出多个设计方案对比。这些用法已经不只是玩票了,是真正在往生产力工具的方向走。
2. 从文本到三维实体的技术路径:参数化CAD与生成式AI的碰撞
这一章我尽量讲得深入一些,因为理解了底层逻辑,你就知道什么描述词有效、为什么某些请求会把模型"搞崩"。text-to-cad的实现路径大致分两条线,一条走的是"文本→程序代码→CAD命令",另一条走的是"文本→潜空间向量→B-rep几何",两者差别非常大。
第一条路径本质上是让大语言模型充当一个会写代码的建模助手。模型读到你的描述后,生成一段对应CAD内核的脚本,比如用Python调用建模API,执行后就在软件里画出实体。这条路径的好处是结果天然就是参数化的——因为脚本本身就是特征序列,每一步拉伸、打孔都对应一行代码,中途改参数非常方便。难点在于大模型的代码生成能力要足够强,能把口语化的描述准确翻译成精确的建模指令,否则经常出现"画了个寂寞"的情况。
第二条路径更前沿,类似图像生成模型的做法。它需要海量的"文本-三维模型"配对数据来训练一个扩散模型,然后从噪声中一步步还原出三维几何。这条路线的挑战在于CAD模型的数学表达比图像复杂得多——图像是规则的像素网格,而CAD实体是任意拓扑的曲面和实体,很难直接塞进神经网络的张量里。事实上,我查到的几篇公开技术文章都提到了用"有向距离场"或者"曲面细分控制点"来绕开这个表达难题。
这里有一个很实际的知识点:如果你用的工具走的是第一条路径,那么你的文本描述越接近"建模操作语言",生成成功率越高。比如"用拉伸创建底板,在上面打四个对称分布、直径5毫米的孔"就比"做一个带孔的底板"成功率高得多——因为前者隐含了特征树的操作顺序,后者让模型去猜结构,容易猜歪。
我还对比过不同提示词策略下的生成效果,把经验整理成一个小表格:
| 提示词策略 | 生成成功率 | 结果可编辑性 | 尺寸符合度 |
|---|---|---|---|
| 只描述外观"好看的花瓶" | 高 | 差,通常得到网格 | 无 |
| 描述功能+"法兰连接用" | 中 | 中等,特征不完整 | 低 |
| 描述具体尺寸+特征操作顺序 | 高 | 好,历史树完整 | 高 |
| 描述尺寸但遗漏特征关系 | 低,易产生孤立特征 | 差 | 中 |
在折腾过程中我最大的体会是:text-to-cad目前的水平,更接近一个"听得懂行话的实习生",而不是"全知全能的高级工程师"。你用行话跟它沟通——什么"沉头孔""矩形阵列""完全贯穿"——它的输出质量会显著提升;你拿生活化语言描述,它就只能给你一个似是而非的轮廓。
另一个技术细节值得注意:现在的方案普遍会把命名实体识别和参数提取作为前置步骤。也就是说,你的文本首先被拆解成"物体类型+关键尺寸+特征关系+约束条件"几个槽位,再送入生成模块。正因如此,描述里明确写出"直径""厚度""间距"这类带数值的词,模型的尺寸还原度会直线上升。这是个很实用的技巧,后面实操部分会再展开。
3. 实操记录:用自然语言生成一个可用零件模型的完整过程
理论讲完,直接上实战。我分别试过本地命令行工具和在线编辑器两种形式,这里以本地方案为主线,因为它的可控性更强,调试起来也更透明。
3.1 工具准备与安装
我用的方案是某开源命令行工具配合一款主流CAD内核。环境是Windows 11,Python 3.10,显卡是普通的RTX级别就能跑——说实话这个工具对硬件要求不高,因为真正吃算力的推断过程跑在云端API上,本地只负责组装STEP文件。
安装步骤很简单,三步走:
pip install textcad textcad --init textcad --download-models第一次下载模型包大概要几分钟,主要是权重文件和标准库映射表。装完之后用textcad --help看一下可用命令,基本就明白这个工具的调用方式了。
这里有一个需要注意的坑:不要用最新的Python 3.13,我实测和该工具的依赖库存在兼容问题,装到一半报error是最闹心的。建议直接用3.10或者3.11版本,省时间。
3.2 第一轮生成:简单的法兰盘
我的第一个测试对象是最常规的法兰盘,提示词写的是: "创建一个法兰盘,外径80毫米,内径40毫米,厚度10毫米,均布6个安装孔,孔径8毫米,安装孔分布圆直径60毫米。"
这条命令走的是本地CLI:
textcad generate -p "创建一个法兰盘,外径80毫米,内径40毫米,厚度10毫米,均布6个安装孔,孔径8毫米,安装孔分布圆直径60毫米。" -o flange.step大概等了15秒,命令行输出了一段生成日志,显示模型识别出的参数表:外径80mm、内径40mm、厚度10mm、孔数6、孔位分布圆60mm、孔径8mm——所有槽位全部正确解析,生成结果一次成功。
把flange.step用CAD软件打开之后,我仔细检查了一遍:外径、内径、厚度都对得上,六个孔均匀分布在直径60毫米的圆上,孔与孔之间的夹角精确60度,中心孔和安装孔都是完全贯穿。最关键的是特征树里有完整的历史记录:"旋转凸台→拉伸切除→圆周阵列→拉伸切除",每一步都可编辑。相比手工建模,这次速度提升了不止一个量级。
3.3 第二轮生成:带圆角的支架
有了第一次的成功,我开始加大难度,测试一个带复杂特征的支架零件。提示词如下: "建一个L形支架,两个翼板长120毫米宽30毫米,厚度5毫米,连接处倒圆角半径5毫米,每个翼板末端开槽,槽宽8毫米,长20毫米。"
这次的生成时间明显变长,大概跑了四十多秒。打开结果后发现了一个微妙的偏差——两个翼板的连接处确实有圆角,但圆角半径实际是4.98毫米而不是5毫米;槽的位置和尺寸是对的,但有一个槽的末端没有按预期做圆角收尾。
这个小瑕疵让我意识到,text-to-cad对"过渡性特征"(圆角、倒角这类)的处理还没有做到跟手工建模一样的稳定。如果你对某个圆角半径有严格要求,建议在描述里加重语气,比如"圆角半径严格5毫米,不允许偏差",实测可以显著提高这个参数被精确响应的概率。
不过整体来说,这个支架模型已经可以直接使用了。我把它导入CAD后检查过,实体是完全闭合的,没有出现破面或零厚度的错误实体。作为概念原型足够了。
3.4 第三轮尝试:口语化描述与失控现场
为了验证这个工具的下限,专门试了一段口语化描述: "做一个看起来比较现代风格的手机支架,能放手机,有倾斜角度,需要防滑垫的位置。"
结果怎么说呢——模型完整生成了一个东西,但结果非常抽象:形状倒是符合"手机支架"的基本语义,但尺寸是随机的,倾斜角度没有任何参数标注,防滑垫的位置"意思到了"但完全不是标准的装配特征。更麻烦的是,生成结果只有网格,没有参数化特征树,想修改都无处下手。
这个实验很好地说明了一个硬性边界:text-to-cad目前只能处理"结构性、可量化"的描述,凡是那种"看起来、感觉上、风格化"的需求,它给不了你可用结果。想让它当助理用,就得把需求拆成参数和操作去下指令。这是我实操中最大的感悟。
4. 生成结果的质量边界:好用的部分和完全不能用的部分
这一章专门写我在批量测试中总结出来的边界情况,避免大家拿着工具高期待入场,结果被现实教育。
先说靠谱的部分。像法兰盘、垫片、安装支架、简单位置的护罩这类零件,是text-to-cad目前最擅长的领域。这类零件的共同点非常鲜明:几何轮廓规则、特征可枚举、尺寸关系明确,而且大多是旋转体或拉伸体。在这个领域内,生成成功率非常高,尺寸还原度也让人满意。我连续生成了20个不同规格的法兰类零件,只有一个因为描述里同时出现"倒角"和"圆角"两个相似特征而出现混淆,其余全部一次通过。
不靠谱的部分要重点说,分为几类:
第一类是自由曲面类。比如你让它生成一个"符合人体工学的鼠标外壳",它会给你一个抽象艺术造型,看起来挺有创意,但完全不是可以进入生产流程的文件。原因前文提到过——自由曲面很难用自然语言精确描述,模型也没有足够的数据去理解"人体工学"这种隐含的设计逻辑。
第二类是多零件装配体。把十几个零件的关系用文字描述出来,目前任何一个工具都搞不定。要知道,人类工程师之间的交流都经常因为装配关系表述不清而扯皮,指望机器一步到位就更不现实了。我试过生成"一个带轴承座和紧固螺丝的滚轮装配体",结果是把三个零件的形状揉成了一个实体,肉眼看着像个现代雕塑。
第三类是需要材料属性或制造工艺语义的零件。比如"铸件,要求拔模斜度5度"或者"注塑件,壁厚均匀1.5毫米"——这类描述涉及的材料特性、工艺参数模型目前基本不理会,就算生成了形状,导入仿真软件后也会发现根本没法用,因为模型不具备对应的制造语义信息。
我还整理了一张备忘式的表格,方便大家对照检查:
| 零件类别 | 现阶段可靠度 | 典型失败模式 | 注意事项 |
|---|---|---|---|
| 标准件(法兰/垫片/轴套) | 高 | 偶发圆角偏差 | 描述要带精确尺寸 |
| 钣金折弯件 | 中 | 折弯半径不准确 | 需明确折弯方向和半径 |
| L形/工字形支架 | 中高 | 过渡特征偏差 | 用"严格"强调关键特征 |
| 自由曲面壳体 | 低 | 输出网格而非实体 | 不适合直接生产 |
| 复杂装配体 | 极低 | 零件合并或遗漏 | 等待技术迭代 |
| 含制造语义零件 | 低 | 语义被当作装饰 | 需人工后期添加工艺信息 |
另外,我发现有一个容易被忽视的坑是坐标系和基准平面的选择。模型默认会把零件放在原点且底面与YZ平面平行,但如果你描述里提到"开口朝上"或"安装面朝下",模型理解得就不是很稳定。最稳妥的做法是:在提示词里明确写出"基准面为XY平面,主要尺寸沿Z轴方向",这样生成的结果方位基本不会出意外。
还有一点经验是关于"过度描述"的。很多人觉得描述越详细越好,其实不然。当一句话里堆了超过6个关键参数时,模型的槽位提取就会开始出错——最常见的是把两个尺寸张冠李戴。我的建议是:把一段复杂描述拆成多条命令,先创建主体特征,再逐步叠加细节特征。这样虽然多跑几次命令,但每条命令的成功率都高得惊人。
5. 把text-to-cad嵌入实际工作流:三个可行方向与落地细节
工具本身玩明白了,接下来最关键的问题是怎么用起来。如果只是当成一个生成玩具,那意义有限。我根据自己的实践,总结了三个目前最靠谱的落地方向,大家可以直接抄作业。
5.1 方向一:标准件库的批量生成
做设计的人都懂,公司内部的标准件库永远是缺胳膊少腿的,每次找一颗特殊规格的螺栓、一个非标法兰,都得从头画。text-to-cad在这里的价值是:写一个Python脚本,批量调用API,把Excel里的规格参数拼成提示词,自动生成对应的STEP文件,然后扔进标准件库的文件夹里。
具体思路是这样的:Excel表里存着规格信息——法兰类型、外径、内径、厚度、孔数、孔径。脚本读取每行,拼出描述文本,调API生成模型并另存为以规格命名的STEP文件。我实测批量生成50种规格的法兰,耗时大概20分钟,中途只有3个因为参数格式奇怪需要手动重跑,整体效率远超手工建模。
这个方向的意义在于,它把text-to-cad从"对话生成"变成了"批处理引擎",真正融入了企业级的设计数据流程。
5.2 方向二:概念方案阶段的快速对比
做非标设备的时候,前期要快速出多个结构方案让客户选型。以前的办法是用CAD软件画一个方案就是一两个小时,画完三个方案半天没了。现在我用text-to-cad做第一轮粗筛,每次生成只需要几十分钟——确切地说是等几次API响应就行——就能把三四种不同布局的模型扔进渲染软件里出效果图。
这个流程走下来的体验很像"口头草稿":先是跟AI说"我要一个底座带斜面、上面有四个对称凸台的零件",模型出来后再cad里旋转看一圈,觉得不行就换个说法再来一次。
虽然最终要重新精确建模,但用在需求澄清和方案沟通阶段,效率提升异常明显。跟客户讨论需求时,现场用文字生成模型比画草图直观太多了。
5.3 方向三:与传统参数化建模工具联动
第三方向是目前最专业、也最符合长期趋势的做法:把text-to-cad生成的STEP文件导入主流CAD软件,然后基于其自动生成的特征历史继续手工精修。
这个工作流有种"AI打草稿,人来收尾"的协作感。AI负责把繁琐的初始几何搭好,把尺寸约束建好,你只负责在特征树的最后加上几个关键处理——比如镜像、阵列、过渡圆角。我在实际项目里已经用这个方式处理过一个传感器安装支架:描述里面规规矩矩写了全部关键尺寸,生成后大约花了40分钟做最后调整,而传统建模的完整流程大约需要两三个小时。
这里有一个极其重要的细节:生成工具的版本和CAD软件的内核版本存在兼容性差异。我一开始生成的STEP文件在某些旧版CAD里打开后出现了特征丢失,后来查了文档,发现需要设置导出参数,把STEP的版本改为AP203还是AP214,要跟目标软件支持的标准对齐。在调用API时显式指定output_format="step_ap214",绝大多数现代CAD软件都能稳定兼容。
此外,我还要强调一下数据验证的重要性。text-to-cad生成的模型不管看起来多正常,交付前一定要做几件事:一是检查实体质量,确认没有破面、零厚度或自相交几何;二是检查关键装配尺寸;三是生成工程图跑一遍标注逻辑。我见过不少人在这一步偷懒,结果下游仿真的时候崩溃,找到根因才发现是模型本身有缺陷。
写到这里,我最后再分享一个自己摸索出来的小技巧:描述零件时,除非是外观评审需要,否则尽量在提示词的开头先指定"这是用于机械装配的零件",然后再写几何参数。我对比过,加了这句话之后,生成结果的实体质量明显更稳定,出现薄壳体或非流形边缘的概率低了不少。这大概就是因为预训练模型接触过大量机械装配语境下的数据,先设定了领域,模型就更倾向于用符合该领域的方式去补全信息。实际跑一段时间你也会发现,text-to-cad这类工具的脾气其实挺容易摸清的,关键就是把它当沟通对象去调教,说它听得懂的"工程话术",它就能变成你趁手的新工具。