☰
从自然语言到可编辑CAD模型:text-to-cad原理、工具与落地实践
2026/10/27 5:39:26 网站建设 项目流程

从“我想在 CAD 里画一个 120×80 的安装板,四角带安装孔,中间一个沉孔”到最终能导进中望或 AutoCAD 的 STEP 文件,过去我至少要开软件、建草图、拉约束、打孔、倒角,忙活十几分钟。如果告诉你现在可以对着电脑输入一句话就拿到这个模型,你会不会觉得这是给设计师的“魔法”?这就是 text-to-cad 在做的事。

text-to-cad 本质上是把自然语言描述转成可编辑的三维 CAD 模型。它和我平时给客户做的三维效果图完全不同——效果图只需要“看起来像”,而 CAD 模型必须“能加工、能装配、能出工程图”。这篇文章就是写给想把这个工具真正用进日常设计流程的人,包括刚接触 CAD 制图的初学者,也包括被重复建模折磨的工程师。我会从技术原理讲起,把当下能用的方案逐个对比,最后给出一条从生成到落地生产的完整链路,以及我实测踩过的真实坑。

1. 一句话出图?CAD 工程师先别高兴太早

第一次看到 text-to-cad 的演示视频,我脑子里蹦出来的想法是:以后是不是不用画图了?但等我真正在项目里用了一段时间才发现,这句话得拆成两半理解。它确实能让你少画大量重复的基础几何,但离“输入一句描述就拿到一张能直接下发的生产图纸”还差得远。

1.1 它到底解决了什么问题

传统 CAD 建模流程里,最耗时间的往往不是“设计”本身,而是把设计意图“翻译”成几何的操作过程。你想表达“直径 8 毫米的孔”,就得点选面、再选孔命令、输入直径、给定深度、确认位置,这一套动作熟练工也要几秒钟。如果一个零件上有十个孔,而且孔距、孔径还在反复修改,时间成本会成倍上涨。

text-to-cad 的思路是把“操作翻译”这层交给大模型。你只需要描述最终结果,比如“一块 100 毫米长、60 毫米宽、8 毫米厚的铝板,四角各有一个直径 5 的孔,顶部有一个 M6 的螺纹孔”,模型尝试生成对应的参数化特征。它特别适合以下场景:

  • 前期概念设计的快速验证:客户说的需求还比较模糊,想看到几个备选外形,比手动画三个方案快很多。
  • 标准件、非标件的初版模型生成:像支架、法兰、安装板这类规则几何,文本描述足够清楚时,生成效果相当可期。
  • 重复变体设计:同样一个底座,孔径不同、孔距不同,用文本模板批量出模型,远比一个个改图省事。

它不适合的场景也很明显:复杂的曲面造型(比如汽车外覆盖件)、需要大量空间姿态调整的装配体、以及需要严格遵循内部设计规范的零部件。这类工作目前的 text-to-cad 工具还接不住,别硬来。

1.2 对新手和老师傅的价值不一样

刚学 CAD 制图的人,经常会卡在“不知道用什么命令组合出想要的形状”。text-to-cad 可以当半个老师:你描述形状,它生成特征历史树,新手照着历史树一步步看,能反推出建模思路。这个价值被很多人忽略了,它其实是一种“建模思路可视化”。

对于老师傅,价值则在另一头。你在行业里干了十几年,脑子里全是设计规范,最烦的是重复劳动。把“先画草图、拉伸、再切孔”这种规律操作交给工具,自己能腾出时间做结构评审、工艺分析和成本估算。我接触过的一个做盘扣脚手架配件的工厂,他们内部的建模流程就是把常用构件做成模板参数,然后在 CAD 插件里调用。这种场景和 text-to-cad 天然互补——模板负责约束,文本负责快速改参数,两者合起来是效率翻倍的路子。

一句话总结:别指望它替你当设计师,指望它替你当“建模操作工”,目前更现实。

2. 画画归画画,制图归制图:为什么 text-to-cad 拼的不是生成能力而是 B-rep

很多做 AI 生成的人一开始想得很简单:既然 Stable Diffusion 能从文本生成图像,那从文本生成 CAD 模型不就是把输出从像素换成三维网格吗?真做起来才发现,这条路从根上就比图像生成难一个量级。

2.1 网格、体素和 B-rep 的根本差异

图像和三维打印用的 STL 文件,本质是一堆三角形网格。网格可以非常精细地逼近任意曲面,但它有一个致命问题:它只是一层“皮”,没有内部拓扑信息。你在网格模型上拉一个圆孔,孔壁是由几百个小三角面拼出来的,面与面之间没有连成严格的数学曲面,更没有圆柱面、球面这种“高级语义”。

CAD 软件里真正的实体模型,用的是 B-rep,边界表示法。它把三维实体描述成一系列精确的数学曲面(平面、圆柱面、NURBS 曲面)以及它们之间的拓扑关系——哪条边属于哪个面、哪个顶点被哪些边共享、哪组面围成一个封闭壳体。这个描述本身就是“可以精确到小数点后第三位”的,所以加工厂才敢照着它开机床。

打个不那么严谨但很直观的比方:AI 画图是给你一幅油画,text-to-cad 必须给你一份建筑蓝图。油画好看就行,蓝图差一毫米楼就塌。

2.2 为什么生成 B-rep 这么难

生成一个 B-rep 模型,等价于要求 AI 同时满足三个条件:几何形状正确、拓扑封闭、特征语义完整。三个条件里任何一个出错,模型导入 CAD 后就会出现破面、实体不闭合、无法拉伸倒角这类问题。

更麻烦的是参数化特征。设计软件里的圆柱孔不是一个“静态的洞”,它是一段带有参数(直径、深度、位置)的建模历史。你要修改直径,直接改参数就行。text-to-cad 如果只生成最终 B-rep 而没有生成特征树,那它给到你的就是一个“死模型”——能看、能测,但改不了,等于半废。

还有个被低估的瓶颈是数据。大模型擅长从海量数据里学规律,但公开的、带特征树标注的三维 CAD 数据集极其稀缺。图像数据集动辄上亿张,带标注的 CAD 模型数据集能到百万级就算很了不起,而且标注一个特征树需要专业的 CAD 工程师手工完成,成本比给图片打标签高太多了。训练数据不够,生成质量自然受限。

所以你会发现,当下的 text-to-cad 模型生成结果经常“远看还行,近看全是毛病”。这不是研发团队不努力,而是问题本身难。

2.3 现在主流的技术路线

我拆过几个开源项目,目前最主流的做法不是让大模型直接输出网格,而是让它输出一段 CAD 脚本。原理很聪明:大模型不适合精确计算坐标和拓扑,但它很擅长写代码。于是把建模操作封装成 Python 接口(比如 CadQuery、build123d),让大模型生成脚本,再在本地执行脚本得到真正的 B-rep 模型。

这样做的好处是“可控”,脚本生成的每一步都有迹可循,报错了能看日志。坏处是“上限取决于脚本接口”,特别复杂的曲面造型用脚本表达很难。另一条路线是 Autodesk 等大厂直接训练专用模型输出原生 B-rep,但它对数据和算力的要求高得离谱,现阶段只有少数大公司玩得起。

理解了这条技术路线,你就能明白为什么我会建议“想认真玩 text-to-cad 的人先学一点 Python 和 CadQuery”——因为你只有看懂脚本,才能真正掌控生成的模型。

3. 当前能落地的 text-to-cad 方案:表格对比和我的实测结论

市面上的 text-to-cad 工具,真正能称得上“能落地”的不多,更多是演示级项目。我按自己的实际使用体验把它们分成了三类,各有各的脾气,千万别只看宣传就入坑。

3.1 三类方案速览

方案输出形式可编辑性部署方式适合人群
ZOO(原 Text2CAD 团队)可编辑 B-rep / 网格中等,支持特征导出云端 + 本地混合不太会写代码的设计师
Project Bernini原生 B-rep较强,支持多种 CAD 格式云端,预览阶段愿意尝鲜、不担心格式兼容的人
LLM + CadQuery/build123d脚本 + STEP最强,完全参数化本地运行会 Python 的工程师
部分 CAD 插件/垂直工具符合特定模板的构件视插件而定本地 CAD 内特定行业(如盘扣脚手架)用户

先说说 ZOO。它当年刚出来时我第一时间本地部署过,界面确实漂亮,生成速度也快。但它有个老毛病:生成一些复杂模型时会牺牲拓扑精度,导入 CAD 后需要修复。我拿它生成过一个有多级台阶的基座,外表看着挺好,导入中望后一检查,内部有面没闭合,根本不能直接切片加工。它更适合做“形状探索”,不适合直接出生产模型。

再来是 Project Bernini。它接受文本、图像甚至点云输入,输出是 B-rep,这是它最吸引我的地方。实际测试下来,它对简单机械件的几何理解力不错,但因为是云端预览阶段,免费额度有限,生成速度也受服务端排队影响。还有一个实际痛点:它导出的文件在某些老版本 CAD 里兼容性一般,处理不当会丢特征。

3.2 我更推荐“脚本控制”这条路线

用过一圈之后,我自己工作流里用得最多的反而是“LLM 写脚本”这条路。我本地跑一个开源大模型,或者调用云端 API,让它生成 CadQuery 代码,然后我在本地执行得到 STEP 文件。这样做最大的好处是:任何时候生成的模型不对,我能直接看脚本定位问题,而不是对着一个黑盒结果干瞪眼。

我拿一个真实的案例测过。描述是“一个外径 80、内径 60、厚度 12 的法兰,圆周上均匀分布四个直径 8 的孔”。LLM 生成的 CadQuery 脚本基本能一次跑通,输出的 STEP 导进 CAD 后,所有尺寸和孔位都能正确识别,而且因为脚本里有明确参数,我把外径改成 100,重新执行一次,整圈孔位自动跟着改。这种“参数化”能力,是其他方案很难给的。

但脚本路线对使用者的要求也明确:你得会看 Python,至少要能读懂坐标变换、循环、布尔运算。否则模型生成错了,你也无从下手。我的建议是:如果你想长期依赖 text-to-cad 提升效率,花一周时间把 CadQuery 的基本接口过一遍,性价比极高。

4. 从生成模型到能下发生产的 STEP 文件:完整链路一次走通

模型生成出来只是第一步,真正让它进入你的设计流程才是重头戏。我平时接触的很多同行,卡就卡在这:AI 工具生成结果挺好,但不知道怎么把它变成自己 CAD 环境里那个能继续编辑、能出图、能交接的文件。

4.1 一条我实测跑通的链路:文本到 STEP

以我上面提到的“带孔安装板”为例,完整走一遍:

第一步,把需求拆成结构化的中文描述。我建议不要让模型猜,把关键参数全部点明,包括长宽高、孔直径、孔位置、孔数量,有特殊要求(比如倒角、螺纹)也一并写清。写得越像“工程说明”而不是“口语聊天”,生成质量越高。

第二步,用 LLM 生成 CadQuery 脚本。如果你用的是本地开源模型,把上面那段描述丢给它,要求它“生成 Python 代码,使用 CadQuery 3.x,创建如下几何体”。生成的脚本经过我人工检查和少量修正后,长这样:

import cadquery as cq plate = ( cq.Workplane("XY") .box(120, 80, 10) .faces(">Z") .workplane() .rect(80, 40, forConstruction=True) .vertices() .hole(8) .faces(">Z") .workplane() .center(0, 0) .hole(30) ) cq.exporters.export(plate, "mounting_plate.step")

第三步,在本地执行脚本,得到 STEP 文件。这一步注意,CadQuery 有不同的版本,接口有变化,最好在虚拟环境里固定版本,否则今天能跑明天报错是常事。

第四步,把 STEP 文件导入你日常使用的 CAD。中望 CAD 和主流的三维软件对 STEP 支持都不错,导入后可以直接继续做工程图、标注尺寸、出 BOM。之前有个同事拿着 STEP 到 AutoCAD 里想直接编辑,发现只能看不能改——这是正常现象,STEP 本质上是一个交换格式,三维特征在部分软件里会被压成一个“哑实体”,你再想改就得在原生环境里重建特征。所以我现在的习惯是:如果后续还要大幅修改,就保留 CadQuery 脚本;如果只是出图和外发加工,STEP 就够了。

4.2 供应链和后处理:转 PDF、快速看图那一摊事

模型建完,真正的生产协同才刚刚开始。日常项目里,我至少得面临三类后续需求:出 PDF 图纸给客户、把模型发到手机上快速预览、以及把多个零件图合成一张总装图。这些工作,text-to-cad 本身不管,但如果你把生成链路建立起来,它们全都变成“顺手的事”。

转换 PDF 工程图不用多说,很多 CAD 软件自带批量打印功能,也可以先导入中望的查看器再导出。快速看图我用得最多的是手机端轻量工具,STEP 大文件先转成轻量化网格或者直接发原文件,手机上翻一翻,和客户当场确认结构,不用开电脑。至于多个零件的图纸合并,处理烦人的图框、比例协调的话,用脚本批量操作比手搓有效率得多,前提是你前一步生成的每个零件文件命名规范、版本清晰。

我还见过有人用 python 批量处理这些 CAD 文件,比如把所有生成零件的孔距统一改大 2 毫米,或者把一批 STEP 批量转成中间格式再导入总装。这种活人工做容易漏,用脚本做就是几行循环的事。text-to-cad 的价值在这里和脚本自动化叠加了:它批量生成初版,脚本批量修正变体,最后统一出图归档。这样一条流水线,才是“AI 辅助设计”真正让人省心的地方。

4.3 垂直行业插件的启示

热搜词里那个“盘扣 CAD 插件”让我印象很深。它本质上是把盘扣式脚手架的构件做成参数化模板,在 CAD 里直接调用生成。这和 text-to-cad 的思路殊途同归,区别在于:行业插件是人工把规则固化成“按钮”,text-to-cad 是让模型理解文本、现场生成脚本。

我现在很看好二者的结合:垂直插件提供行业规范和构件库,text-to-cad 提供灵活的文本入口。用户说一句“立杆间距 1.2 米,步距 1.5 米,三层”,系统理解后去调插件模板,输出合法合规的盘扣架体模型。这比让 AI 自由发挥靠谱得多——因为行业标准、荷载规范这类东西,大模型根本背不全,必须交给插件去约束。

5. 五连坑复盘:单位、布尔体、插件残留和中文描述的教训

用 text-to-cad 这几个月,我踩过的坑完全可以单独写一篇“排雷报告”。这里挑五个最有代表性的,个个都是加班换来的教训。

5.1 单位不统一:模型直接差 25.4 倍

第一次用 LLM 生成脚本时,我描述里写“长度 4”,本意是 4 英寸还是 40 毫米?模型给了我一个 4 单位的模型,导入软件后按毫米解释,整块板小得跟硬币一样。后来我学乖了:不管描述还是代码里,一律标注单位。描述写“长度 101.6 毫米(即 4 英寸)”,代码里用cq.Workplane("XY").box(101.6, ...)。单位这问题不只在 text-to-cad 里有,但 AI 生成让它变得更隐蔽——因为你看不到过程,只看到结果,错了也不容易意识到。

5.2 布尔运算失败:看着是实体,其实是个“坏体”

生成脚本里如果有多个实体做并集或差集,时不时就会遇到布尔运算失败。CadQuery 这类库对几何内核的容错性再高,也架不住两个面完全共面或者微小缝隙。典型的报错是“cannot compute boolean operation”,遇到这种情况别硬调代码,先简化模型——减少不必要的拆分,合并特征,或者把共面的部分稍微错开 0.001 毫米,往往就能绕过。

5.3 中文自然语言描述远没你想的靠谱

我用中文描述过“圆角稍微大一点”,结果模型给我倒了一个 5 毫米的角,根本不是我要的“稍微”。这里我必须说句实话:当前的大模型对中文工程语义的理解,比英文要弱不少,尤其是单位、公差、表面处理这些隐含信息。想避坑,就得把描述写“死”。不要写“稍微”“大约”“圆润一点”,写“倒角 2×45°”“公差 H7”“表面 Ra1.6”。工程语言越像代码,模型越不容易自由发挥。

5.4 玩插件玩出的系统残留

为了试各种 text-to-cad 客户端和插件,我在工作电脑上装了一堆环境。某次我卸了一个英文工具的本地服务模块,结果它没把注册表和环境变量清理干净,导致我后来装新版本 CAD 插件时一直报错,折腾了整整半天才查出来是残留的 DLL 在捣鬼。这件事教会我两件事:第一,尝鲜工具尽量装在虚拟机或独立环境里,别污染主力设计环境;第二,卸载这类带服务、带命令行工具的软件,要检查系统变量和启动项,确保彻底清理,否则“影响二次安装”绝不是危言耸听。

5.5 云端生成的数据安全问题

这是很多人忽略的一坑。把公司新产品的结构描述丢给免费云端 text-to-cad 工具,等于把设计意图告诉了一个你完全不控制的服务。我听说过有同行把未公开的零件外形喂进去生成概念图,结果一个星期后模型参数在网上被泄露的传闻——真假没法验证,但风险是实打实的。能本地部署就本地部署,或者至少脱敏处理:把真实尺寸等比模糊成整数,生成后再自己换算回来。

6. 给准备入坑的人:从哪学起、怎么写描述最不踩雷

如果你看到这里,说明你是真的想把这个工具用起来,而不只是看个热闹。那我给你几条基于实际经验的建议,照着走能少走很多弯路。

6.1 先选一条适合你的入门路径

我建议按你的编程基础分两条路走。完全不会写代码的,先用商业化的云端产品(比如 ZOO、Bernini)感受一下完整流程,重点观察它输出的模型能不能导入你自己的 CAD、导入后能不能编辑。这个阶段不用纠结原理,目标是建立“文本到模型”的直觉。

会一点 Python 的工程师,我强烈建议直接学 CadQuery 或 build123d 的基本用法。你不需要精通计算机图形学,只要会画矩形、拉伸、打孔、做阵列这四件事,就足够覆盖 80% 的机械零件场景。学完基础后,再让大模型帮你生成脚本,你会发现自己改脚本的速度比从头手搓快得多。

6.2 写描述就按“特征清单”来

我总结了一个实操模板,能让生成成功率大幅提高。描述按这个结构写:主轮廓(基本形状和尺寸) + 特征列表(孔、槽、凸台、倒角) + 约束关系(对齐、对称、阵列、同心) + 单位与精度 + 输出要求(STEP、可参数化)。

举一个正面例子:“创建一块 L 形安装板,总长 150 毫米,总宽 100 毫米,厚度 10 毫米,两臂宽度均为 50 毫米;四角各有一个直径 6 毫米的通孔,孔中心距边缘 12 毫米;右侧臂上阵列 3 个直径 4 毫米的孔,间距 20 毫米;所有棱边倒 1 毫米圆角。单位:毫米,输出 STEP 文件。”

对比一下反面例子:“做个 L 形板,上面打几个孔,带圆角。”前者模型基本能一次生成,后者大概率会给你一个面目全非的“六边形战士”。

6.3 最后一件事:把“审图”的立场守住

text-to-cad 生成的东西再快,也只是“提案”,不是“成品”。我现在的习惯是,AI 生成的模型一律当草稿看待,进入正式评审前必须做一轮几何检查:实体是否闭合、是否有干涉、关键尺寸是否在公差范围内、制造工艺是否可行。这个流程不是我信不过 AI,而是工程出图这件事本身就不允许“差不多”。

我自己这几月最大的体会是:text-to-cad 真正提升的不是“画图速度”,而是“方案的试错速度”。以前改一版结构我要花 40 分钟重新建模,现在只需要改一段文字、重新执行一次脚本,十分钟就能拿到新模型。工具给到的是一种“快速把想法变成几何”的能力,至于这个几何好不好、能不能用,定夺的人仍然是你。把这层想明白了,你就不会对它过度期待,也不会轻易错过它。

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

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

立即咨询