☰
text-to-cad深度解析:从自然语言到可制造模型的原理、路线与实操指南
2026/10/26 15:53:04 网站建设 项目流程

最近被问得最多的一个词,就是 text-to-cad。朋友圈和群里到处在转各种演示视频:输入一句话,屏幕上就长出一个法兰盘、一个支架、一个能直接下载的 STEP 文件。做设计的同事第一反应是"这玩意会不会让我失业",玩 3D 打印的朋友则在问"能不能直接描述一个零件就出模型"。我的答案比较折中:它暂时取代不了 CAD,但它正在改变"从想法到模型"的第一公里。这篇文章我想认真聊聊 text-to-cad 目前能干什么、背后的技术路线长什么样、我实际使用中踩到过哪些坑,以及什么场景下它才真正值得用。

text-to-cad 和很多人熟悉的"文字生成 3D 模型"不是一回事。后者生成的更多是视觉模型——网格、贴图,甚至是一整张图片转成空间体块,适合游戏、动画和概念展示;前者要的是工程模型:带参数、带特征、能投进 CNC 或 3D 打印机里真正造出来。这个区别往深了说,是"看起来对"和"造得出来"的区别。整篇文章都会围绕这个核心差异展开。

1. text-to-cad 到底解决了什么问题(不是单纯"文字出模型")

1.1 从"描述一个零件"到"描述一个能被加工和组装的零件"

传统意义上的"文字生成 3D 模型",用户在乎的是视觉像不像,比如"一只戴着帽子的柴犬",模型只要轮廓和质感接近,就算成功。但 CAD 语境下,一句"一个法兰盘"要真正可用,必须包含足够多的工程信息:外径多少、厚度多少、中心孔多大、几个安装孔、孔距多少、倒角倒多大、有没有螺纹。这不是颜值问题,是能不能装到机器上的问题。

我习惯用一个类比向非设计背景的朋友解释:文字生成图片等于"给画画的人讲一个画面",文字生成 CAD 等于"给机加工师傅下工艺单"。工艺单上只有"好看"没用,师傅拿到 CNC 机床上第一步就是问你尺寸、公差、材料和表面处理。text-to-cad 想要落地,就必须把自然语言转成这种"工艺单级"的描述,再进一步转成数学上严格的几何实体。

CAD 文件在底层是一种叫 B-Rep(边界表示)的数据结构。它记录的不只是一个个三角面片,而是精确的曲面方程、边、顶点、拓扑关系。STEP 文件能从一个软件挪到另一个软件而不变形,靠的就是这种精确描述。所以 text-to-cad 如果走的是"生成一堆网格"的老路,产线根本不敢用;必须输出真正 B-Rep 格式或者能生成 B-Rep 的脚本,才算摸到了工程设计的大门。

1.2 三类最容易被吸引的用户

我观察了一下身边的实际需求,最容易被 text-to-cad 吸引的是这三类人。

第一类是 3D 打印玩家。他们不缺打印机,缺的是"把脑子里的小配件变成文件"的效率。打个相机快装板、做个耳机收纳盒,用传统 CAD 从画草图到拉伸打孔,怎么也得半小时;用 text-to-cad 可能 5 分钟就能拿到第一版,直接切片打印。这类用户对精度要求相对低,迭代速度快,是 text-to-cad 最友好的试验田。

第二类是机械工程师。他们手里已经有大把 SolidWorks、Fusion 360、FreeCAD 的模型,平时最耗时间的其实是"标准件和通用件"的重复建模,比如一块底板、一个支座、一组安装孔。用自然语言描述这些没什么技术含量的基础件,能省下不少重复劳动。

第三类是跨职能打样。我见过很多产品经理、电子工程师、甚至市场部同事,想表达一个结构需求但不会画图。以前要么手画草图拍照发群里,要么求结构同事帮忙,现在他们可以直接生成一个粗糙但能用的 STEP 文件作为沟通介质。这东西不需要好看,但能让结构工程师三秒理解需求。这些场景本身就是 text-to-cad 存在的理由。

1.3 为什么是这两年突然能落地

不是这个方向今年才出现,我读研究生的时候就有学者做"自然语言驱动建模",但当年效果确实不太行,因为传统 NLP 根本接不住三维几何背后的复杂逻辑。这两年突然能落地,我认为有三个现实条件同时到位了。

第一,大语言模型在"写代码"这件事上跨越了实用门槛。CAD 有很强的程序化建模传统,CadQuery、OpenSCAD、FreeCAD 宏都是把几何操作写成代码。LLM 最擅长的恰恰是把自然语言翻译成结构化代码,所以天然踩中了节奏。

第二,在线推理平台让算力门槛消失。像 Zoo 的 Text-to-CAD、Autodesk 的 Project Bernini 这类产品,背后是大模型在做多模态推理,个人电脑根本跑不动。现在做成网页服务,用户只打提示词,后端集群出结果,普通人也能零成本尝鲜。

第三,3D 打印生态足够成熟。生成一个零件模型,最便宜的验证方式是打到桌面级打印机上。FDM 和光固化设备已经便宜到"试错没什么心理负担",这让 AI 生成的模型有了快速反馈回路:错了立刻打印出来看,改提示词再来一次。这个循环在几年前并不存在。

2. 主流技术路线的底层拆解:代码、几何、检索

2.1 代码生成路线:最接近"真 CAD"的路线

我目前最看好的,是"让 LLM 生成参数化建模代码"这条路线。思路不复杂:用户输入自然语言,模型把它翻译成 CadQuery、OpenSCAD 或 FreeCAD 宏的脚本,脚本在本地/云端执行后生成精确的实体模型。因为源头是代码,尺寸和参数都是变量,后续改一个数字就能重建整个零件,可编辑性极强。

这条路线在学术圈已经有代表性工作。比如 Text2CAD 相关论文就提出用多模态模型把文本和草图一起转成 CAD 建模操作序列,再通过代码生成具体模型。工业产品上,一些在线 text-to-cad 平台也走了类似思路:输出的不是一张图片,而是可以导入主流 CAD 的 STEP 文件。

我实际测下来,这条路线对小零件效果最好。比如一个圆盘、一块带孔板、一个 L 型支架,LLM 生成 CadQuery 代码的准确率相当高。因为这类零件对应的建模操作就那么几步:画草图、拉伸、开孔、倒角,模型的推理负担不大。但一旦涉及多实体布尔运算、复杂曲面、装配关系,代码会越来越长,幻觉概率也会几何级上升。我见过模型把孔位坐标算错,也见过整个实体拉伸方向反掉,这些在简单件上很少出现。

2.2 扩散模型与隐式场:速度快但工程属性弱

另一条路线是从文本直接生成三维几何,典型工具包括 Point-E、Shap-E、Meshy 那一类文生 3D 模型,以及为工程场景改良过的专用模型。底层技术通常是扩散模型,从文本特征出发,逐步去噪生成一个三维场的表达,再提取为网格。速度快、自由曲面能力强,这是它的优点,也是做概念设计时的好帮手。

但把这类输出拿到工程软件里一打开,问题就来了。首先是网格本身通常不是"水密"的——有裂缝、有重叠面、法线方向混乱,3D 打印前必须修复。更关键的是,网格是离散的三角面,不是 B-Rep,软件里的倒角、拔模、抽壳这些"特征操作"全都失效。AutoCAD、SolidWorks 虽然可以自动识别特征,但对复杂模型识别率有限,最后往往变成一堆乱七八糟的曲面片。

Autodesk 的 Project Bernini 算是这条路线上的一个特殊存在。它对输入形式做了很多工程化改造,接受文本、图像、点云和网格,并强调输出是"可编辑的 CAD 模型",而不是单纯网格。从我看到的公开演示来推断,它的内部一定做了网格转曲面、特征识别甚至参数化重建的工作,相当于在扩散模型后面挂了一个"逆向工程引擎"。这条路线的天花板,取决于那个引擎对特征的识别能力。

2.3 模板检索与参数化装配:最稳妥但不性感

还有一个容易被忽视的路线,我称之为"检索+参数化"。核心逻辑是:先让 LLM 理解用户需求,然后从标准件库/企业零件库里检索最接近的模板,再根据需求里的尺寸参数实例化。比如用户说"需要一个 M6 内六角圆柱头螺钉,长度 20mm",模型不需要从头画,它只需要找到螺钉模板,把 diameter、length、head height 这些参数填进去,然后返回 STEP 文件。

这条路线看起来最不"智能",但可靠性最高。原因在于,工程世界里大量需求本来就是标准件和通用结构,比如螺栓、螺母、轴承座、导轨、型材支架。与其让模型自由发挥画一个"大概能用的螺栓",不如从经过验证的模板库里取。很多企业内部的参数化设计系统,本质上就是干这件事的,现在只是加了一个自然语言输入层。

缺点是"不性感":它无法生成库之外的任何新东西。用户想要一个从没见过的异形支架,检索路线就抓瞎。所以大多数商业化产品不会只走一条路线,而是上面几种混合:识别需求类型是标准件就检索,是新零件就生成代码或扩散几何。

2.4 三条路线的直观对比

路线输出形态可编辑性几何精度典型适用场景短板
代码生成参数化脚本 → STEP高,改参数即重建高,精确 B-Rep机加工件、打印件复杂模型代码易错
扩散/隐式场网格 Mesh低,特征树缺失中低,需修复概念造型、外观模型难进传统 CAD 流程
检索+参数化模板模型/参数表中,改参数高,依赖源模型标准件、通用件无法生成新结构

查过一圈之后你会发现,没有一条路是包打天下的。真正可用的产品,大概率是把代码生成作为主干,把扩散生成作为概念阶段输入,再把检索作为标准件补充。这个判断也决定了你选型时该关注什么:如果是想快速造标准件,检索够用;如果是想从无到有设计非标件,代码生成更靠谱;如果只做外观验证,扩散生成够了。

3. 实操记录:从一句话到 STEP 文件的完整流程

3.1 选线上工具还是本地开源方案

实际做项目时,第一步不是急着写提示词,而是先决定用什么工具。

线上工具的代表如 Zoo 的 Text-to-CAD,特点是真的"傻瓜式":浏览器打开,输入描述,选择单位,点击生成,几分钟后拿到可下载的 STEP 文件。它对硬件零要求,适合快速验证"这条路通不通"。我建议第一次尝鲜的人先从这里开始。但要注意,线上平台意味着数据会上传,如果设计内容涉密或涉及未公开产品,就别用了。

本地方案的核心是"大模型 + CadQuery/OpenSCAD"。你可以本地起一个支持代码生成的模型,也可以调用商用的 API,让模型输出 CadQuery 代码,然后用 cq-editor 或 Jupyter 执行,最终导出 STEP。本地方案的好处是可控、可批量、可保密,坏处是要配环境、调模型、处理幻觉,起步成本明显更高。我个人是先在线上跑通流程,确定这个零件确实适合 text-to-cad 之后,才挪到本地批量处理。

3.2 提示词怎么写才不出废件

如果你只打算记住一个技巧,那就是:提示词要写"工程参数",不要写"美术描述"。看看下面两组对比。

差的提示词:"帮我生成一个好看的支架,中间有个洞,用来固定东西。"

好的提示词:"生成一个 L 型支架,材质建议用铝合金,整体尺寸 80mm 宽、60mm 高、8mm 厚,水平面上有两个直径 6.5mm 的通孔,孔距 40mm,中心对称,用于安装 M6 螺栓。所有尺寸单位按毫米。"

区别在哪?差的那句里全是"好看""用来固定"这类无法映射到几何的参数,模型只能靠猜。好的那句给出了明确的数值和约束,模型就有依据去生成精确几何。我自己的提示词模板一般包含四块:主题类型、形状和尺寸、功能特征、约束条件。功能特征包括孔、槽、倒角、螺纹;约束条件包括单位、位置关系、对称要求。

另一个高频坑是单位。很多平台默认是毫米,但模型训练语料里同时存在英寸和毫米。提示词里不加单位,最后可能给你一个大了 25.4 倍的零件。我习惯在提示词最后单独加一句"所有尺寸单位均为毫米",实测能显著降低单位错误。

还有一个容易忽略的点:不要用散文。把需求拆成条目,或者用短句,模型对条理化的描述理解更准。比如下面的写法:

"一个圆盘零件。外径 50mm,厚度 8mm,中心有一个直径 12mm 的通孔。外缘需要倒角 1mm×45°。单位:毫米。"

这种描述比"我要一个中间打孔的外径五十厚八的圆盘"更容易生成干净代码。

3.3 用 CadQuery + 大模型生成可编辑零件

如果你选择本地开源路线,我给你一个能直接跑通的参考流程。先安装 CadQuery:

pip install cadquery

然后让大模型根据提示词生成类似下面的 CadQuery 代码。这是一个最简单的法兰盘:

import cadquery as cq result = ( cq.Workplane("XY") .circle(25) .extrude(8) .faces(">Z") .workplane() .circle(6) .cutThruAll() ) cq.exporters.export(result, "flange.step")

这个脚本干了四件事:在 XY 平面上画一个半径 25mm 的圆,拉伸 8mm 成为圆盘,然后在顶面工作平面上画一个半径 6mm 的圆,打通孔,最后导出 STEP。整个零件参数化程度很高,想改外径,直接改circle(25)里的数字就行。

但这里有个典型的坑:很多大模型训练数据里的 CadQuery 代码是旧版本 API,生成出来的代码经常打印出"module 'cadquery' has no attribute 'Workplane'"之类的报错。实际上 CadQuery 2.x 的主用方式就是上面这个写法,新版本还支持cq.Workplane(...)。为了减少这类问题,我会在提示词里加一句"请基于 CadQuery 2.4 及以上版本的 API 生成代码,使用 cadquery.Workplane 语法"。加完之后,代码一次跑通的概率明显上升。

跑通之后,如果你不想用命令行,可以安装 cq-editor 作为图形界面,也能直接预览模型和导出 STEP。拿到 STEP 文件后,我会再导入 FreeCAD 或 Fusion 360 做一次"体检"。

3.4 生成后的验证与后处理清单

拿到 text-to-cad 生成的模型,千万别直接发去打样,先做一轮验证。我的后处理清单大概是这样的:

第一,验证单位。导入 CAD 后先测一下关键尺寸:外径、孔距、厚度,看是不是和需求一致。特别是从线上平台下载的模型,尤其要检查英寸和毫米的问题。测量不对就回炉重造,别试图缩放。缩放一个 STEP 文件表面上救了急,但会让里面的孔位和螺纹尺寸也一起变,后续风险很大。

第二,检查特征。打开模型的特征树,看它是不是从可编辑特征构建的。如果打开后是一个孤零零的网格或者一个"死人实体"(没有任何建模历史),你要做好重建的心理准备。我处理过好几个"看着没问题"的模型,一导入 SolidWorks 才发现是几百个曲面片拼起来的。

第三,做干涉检查。如果这个零件是要装到现有装配里的,把它拖进装配体,用干涉检测工具看会不会碰撞。AI 生成零件时不会自动考虑它和周围零件的安装空间,这一步只能靠人。

第四,可打印性检查。如果目标是 3D 打印,检查最小壁厚、悬垂角度、是否需要支撑。很多 AI 生成的模型在视觉上成立,但 1mm 的薄壁一打印就断。

4. 当前必须正视的六个坑

4.1 几何精度与可制造性之间隔着十万八千里

text-to-cad 能给你一个"形状正确"的模型,但不代表它"可制造"。工程制造关心的不只是外形尺寸,还有公差、表面粗糙度、壁厚均匀性、拔模角度、应力集中、热处理状态。这些信息不是自然语言能轻易描述的,更不是现有 text-to-cad 模型会主动考虑的。

我见过最典型的问题,是薄壁和细小结构。模型生成了一个看起来完全正常的支架,但局部壁厚只有 0.3mm,金属打印直接烧穿,注塑直接打不满。还有一个案例,生成的孔位和螺栓直径完美匹配,但完全没留出装配扳手的操作空间,结构工程师拿到手一口老血。这类问题,光看 3D 渲染图根本发现不了,必须结合实际制造工艺来检查。

4.2 可编辑性:没有特征树等于半成品

我前面说过,代码生成路线的可编辑性最好,但很多线上平台为了省算力,可能直接给网格或者"焊接"好的实体,而不是参数化特征。判断方法很简单:拿到文件后发现特征树是空的,或者只有一步"导入",这就是不可编辑模型。

不可编辑模型在工程上意味着什么?意味着后续想改孔位、改厚度,只能整个重画。做设计的都知道,模型的价值往往不在第一版,而在后续的迭代和复用。一个不能改的模型,和一张截图没有本质区别。所以我在选型时宁可要"生成结果粗糙但带参数脚本"的方案,也不要"渲染得很精致但没法改"的方案。

4.3 单位、坐标系与命名习惯的混乱

跨软件协作时,单位和坐标系是最容易被忽略的隐形杀手。有的工具默认毫米,有的默认英寸;有的 Y 轴向上,有的 Z 轴向上。text-to-cad 模型训练数据来自互联网,天然混着各种坐标系和单位习惯,所以你拿到手的模型一定要先做"入场检查"。

坐标系尤其坑。我遇到过一次生成的模型在 SolidWorks 里看是个正常的零件,但一转到装配环境,它躺在 YZ 平面而不是 XY 平面。原因大概率是模型在生成代码时选择了不同的基础工作平面。修一个坐标还算简单,但如果你没意识到,到装配阶段才发现,整个零件定位逻辑都要乱。

4.4 装配、约束与配合关系基本靠猜

这个坑目前是行业级难题。现有的 text-to-cad 大多擅长生成"单一个件",不擅长生成"一套能装在一起的零件"。因为装配意味着多个零件之间必须共享尺寸、约束、公差、位置关系,比如轴和孔的配合、螺栓和螺纹孔的匹配。这要求模型在生成零件 A 的时候就记住零件 B 的存在,目前的架构很难做到。

实际体验是:让它生成一个法兰盘和配套的盲法兰,分开生成两个单件,大概率装不上,要么孔位对不上,要么螺栓孔数量不一致。想让它们匹配,只能靠用户自己在提示词里把所有共享尺寸写清楚,或者生成后在 CAD 里加配合约束。这也是 text-to-cad 短期内很难进入复杂产品设计的原因之一。

4.5 数据安全与知识产权红线

这个是很多人忽略但最要命的问题。你已经把产品设计需求原封不动发给了第三方服务平台,这些需求可能是公司未发布产品的核心参数。公有大模型服务通常会把输入数据用于模型迭代,或者至少经过云端服务器,数据出境、留存、审阅都是潜在风险。

我的建议很简单:未公开的产品、客户定制件、军工航天医疗相关的零件,一律不要上传任何公网 text-to-cad 平台。要么用本地部署的开源模型,要么让 IT 部门签好数据处理条款再走企业版。在团队内部,也应该建立一条规矩:涉及新产品的设计需求,先用二维草图或内部模板表达,不要在公网 AI 服务里裸奔。

4.6 许可证和免责条款要看清楚

很多人把 AI 生成的模型直接拿去商用,却完全没看服务条款和模型许可证。有的平台明确禁止将生成内容用于商业用途;有的开源模型权重允许商用但要求派生作品也开源;还有的平台会在条款里写"生成内容的全部权利归平台所有"。这不是危言耸听,是我见过有人踩过——做了一款产品,结果模型源权利不在自己手里。

规避方法:商用前把你准备使用的工具清单列出来,逐个检查授权条款。开源权重重点看 LICENSE 文件,在线服务重点看 Terms of Service。如果条款写得不清楚,直接发邮件问对方销售或开源社区,把答复留档。工程上可以糙一点,法律边界这件事别糙。

5. 它到底该用在什么场景(和不该用的场景)

5.1 值得用:标准件、概念草模、打印件、教学

经过这么多轮实测,我心目中 text-to-cad 的"甜点区"其实很清晰。首先是标准件和通用件,像底板、支架、法兰、轴套这类结构相对固定、参数明确的零件,AI 生成的可靠性很高,能省下大量重复劳动。其次是概念草模,设计早期需要快速验证一个想法的空间形式,不需要精确公差,用 text-to-cad 生成一个看得见摸得着的模型,比传统建模快得多。

3D 打印件是另一个典型场景。打印机本身就是一套宽容度比较高的制造系统,对壁厚、倒角的要求没机加工那么严格,AI 模型经过简单检查就能上机。我自己就用 text-to-cad 生成过不少打印小件,包括设备支架、线缆固定座、收纳盒盖,整体成功率很高。

教育领域也很适合。教学场景里,text-to-cad 能让学生快速看到一个自然语言描述如何变成实体模型,帮助建立"工程语言"的感觉。我见过老师让学生先描述一个零件,再对比 AI 生成结果和真实零件,这对学生理解尺寸标注和建模逻辑非常有帮助。

5.2 别硬用:复杂装配体、受监督行业、高精度模具

我也要给几个"千万别硬用"的场景泼点冷水。

第一,复杂装配体。一套含二十个以上零件、彼此有配合关系的机构,现在的 text-to-cad 做不了。它不是"能不能生成单个零件"的问题,而是"没有能力保证零件之间的装配逻辑"。真要在这种场景硬用,调试成本比手工建模还高。

第二,受监管行业。医疗器械、航空航天、汽车安全件、压力容器,这些领域对设计流程、文档记录、追溯性有严格要求。AI 生成的模型拿不出完整的推导依据和验证记录,合规性就是硬伤。就算模型本身没问题,审计也过不了。

第三,高精度模具。模具的拔模角度、收缩率、分型面、冷却水路设计,每一样都是多年经验积累的结果,不是自然语言能覆盖的。AI 生成的模具模型大概率只能当个概念展示,直接加工就是灾难。

5.3 与现有 CAD 工作流配合的三种姿势

我目前比较推荐的,不是拿 text-to-cad 去替换 CAD,而是把它塞进现有流程的某些环节,当"加速器"用。

姿势一是做初稿。用 text-to-cad 快速生成一个概念模型,导入 CAD 后重新参数化或转成可编辑特征,再由设计师精修。这样 AI 负责"从无到有",人负责"从有到优"。

姿势二是做需求传达。产品经理用 text-to-cad 生成一个 STEP 文件发给结构工程师,结构工程师不用再靠想象解读文字描述,省掉了来回沟通的成本。

姿势三是做参数化模板入口。把企业里常用的标准件做成 CadQuery/OpenSCAD 模板,再用 LLM 把自然语言映射到模板参数上。等于给标准件库装了一个"人话接口"。这个我强烈建议有内部零件库的团队去试,投入不大,收益非常直接。

6. 说句实话:我的建议和踩坑体会

聊到这儿,我猜很多人会问:那到底该不该上车?我的个人体会是,应该上车,但别把油门踩到底。

先用最简单的方式试一两次,建立手感。找一个你熟悉的零件,比如办公室椅子的脚垫、旧设备上的某个支架,用 text-to-cad 描述并生成,拿真实零件对比,看差多少。这个动作能让你快速理解模型的边界:它擅长什么,不擅长什么。我第一回测试时以为描述得足够细就行,结果模型把两个安装孔的对称关系完全搞反了,从那以后我就再也不敢省略"中心对称"这种约束词。

在团队里推广时,我有一个建议:不要介绍太多工具,挑一个最合适的,建立一套内部提示词模板。比如我们自己沉淀了一套句式模板,包含单位、材料、加工方式、关键尺寸、螺纹标准、倒角要求。团队里谁要用,直接填空,生成质量立刻稳定。这套模板已经被我复制到了好几个项目里,零基础同事也能用。

更重要的一点是,别因为 AI 能生成模型,就以为可以不需要会判断模型的人。我见过最危险的场景,是新人拿到 AI 生成的零件直接下单加工,结果孔位错得离谱,浪费了材料和时间。恰恰是因为生成变快了,验证环节的重要性反而变高了。能准确判断"A 模型能不能用、哪里有问题"的人,才是流程里最稀缺的。

我现在的工作习惯是:把 text-to-cad 当成一个随时在线的实习生。你说需求,它出方案,但每个方案都要过我的眼睛。它最大的价值不是让我少干活,而是把那些重复的、低技术含量的"从文字到草模"环节压缩掉,把时间省下来留给真正需要经验积累的决策。工具来来去去,基本功永远是你能不能看懂一个模型、能不能判断它能不能造出来。这一点,目前没有任何工具能替代。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询