☰
text-to-cad 全解析:从文字到工业级 CAD 模型的关键技术与工具选型
2026/10/27 5:37:59 网站建设 项目流程

text-to-cad 这个词,这两年在国内外的三维设计圈子里出现频率越来越高。我第一次认真关注它,是因为看到 ZOO 放出的 KittyCAD 演示:输入一段描述,几分钟后返回一个带完整 B-rep 拓扑的 STEP 文件,可以直接拖进 Fusion 360 做装配。说实话,那个演示确实把我震了一下——这不是“文字生成一个好看的 3D 素材”那种玩具级效果,而是往“能直接进制造流程”的工业级方向走。

这篇文章我结合自己试用多个 text-to-cad 工具和开源项目的实际经历,把这个方向从头到尾拆一遍。会讲清楚它到底是什么、和传统建模有什么区别、现阶段值得用的工具和项目、从提示词到 STEP 文件的完整实操流程,以及我踩过的坑和排查思路。适合产品设计师、机械工程师、创客、以及所有对 AI 辅助三维设计感兴趣的人阅读。

1. 从“写文字”到“拿图纸”:text-to-cad 到底在解决什么问题

1.1 一句话讲清 text-to-cad 是什么

text-to-cad,从名字就能猜到,是“文本描述到 CAD 模型”的生成过程。你输入一段自然语言,比如“一个 M6 螺栓,头部是六角形,对边尺寸 10mm,杆部直径 6mm,长度 30mm”,模型返回的不是一张图片,而是实实在在的三维几何数据。

关键点和常见误解在“实实在在”四个字上。很多朋友把 text-to-cad 和 AI 绘画、文生 3D 素材混为一谈,其实差别非常大。AI 绘画生成的是像素,普通文生 3D(比如 Stable Diffusion 的 3D 扩展、Point-E 这类)生成的是网格点云,也就是一堆三角形面片,看起来像模型,但没法拿去加工。text-to-cad 的目标是生成边界表示(B-rep)或者参数化特征历史,也就是 CAD 软件真正认识的那种拓扑结构——有实体、有面、有边、有尺寸约束,能倒角、能打孔、能继续编辑。

我打个比方:传统建模是你亲手把板材切割、焊接成零件;文生 3D 是吹出一个 3D 打印的气球,形状在但没法拆开加工;text-to-cad 则是你给老师傅一张图纸,他按图纸把零件车出来。图纸上的尺寸、公差、形状约束,就是 text-to-cad 想生成的东西。

这个方向的底层逻辑并不神秘。目前主流的实现路径有三种。第一种是大语言模型驱动,让 LLM 输出 CAD 软件能执行的命令序列,比如 ZOO 的 KittyCAD 方案,就是让模型生成 JSON 格式的几何构造指令,后端引擎执行后产出 B-rep 实体。第二种是扩散模型直接预测几何参数,比如 MIT 的 Text2CAD 项目,模型学会从文本中提取尺寸和约束,再生成对应的二维草图轮廓和三维特征。第三种是把自然语言翻译成参数化脚本,比如用 Python 脚本驱动 CAD 内核,或者生成 OpenSCAD 代码。

1.2 和传统建模、AI 生成素材相比,差别在哪里

要理解 text-to-cad 的价值,最好把三条路线放在一起对比。

传统 CAD 建模,从草图、拉伸、旋转、扫描到倒角、抽壳,每一步都由人手动操作。优点是精确可控,缺点同样是精确可控——一个熟练工程师画一个中等复杂度的零件,快则十几分钟,慢则一两个小时。如果是系列化的变体设计,比如一个法兰盘要出 10 种孔径版本,手动建模就非常枯燥。

AI 文生 3D 素材,强调“像”和“快”,比如生成一只靴子、一把椅子,视觉上能看,但模型拓扑往往很糟糕:非流形边缘、法线翻转、内部空洞,拿来 3D 打印都要修半天,更别提用于工程分析或 CNC 加工。

text-to-cad 试图站在二者中间:既保留 CAD 实体的精确性,又用自然语言降低建模门槛。它面向的场景不是“讲故事”,而是“做零件”——机械件、外壳、支架、接头、装配体的基础结构。这也是为什么很多人说它是“机械设计领域的 Copilot”。

对比项传统 CAD 建模AI 文生 3D(网格)text-to-cad
建模方式手动草图+特征操作文字/图片生成网格文字生成 B-rep 实体或参数化脚本
可编辑性特征树完整,随时改参数基本不可参数化修改理想情况下可直接编辑,视工具而定
精度和单位毫米级精确无单位概念可指定尺寸和单位
制造可用性可进入 CAM/CAE 流程仅适合可视化或打印前需要大量修复目标是进入 CAM/CAE 流程
学习门槛需要系统学习低低,但需要会写提示词

从这个表能看出来,text-to-cad 的核心价值不是取代工程师,而是把“重复性建模”和“从概念到初稿”这两块时间压缩下来。真正要进模具、上机床的关键零件,还是需要工程师逐条检查尺寸、配合关系和公差,这一点后面细说。

2. 工具选型:别一上来就追新模型,先搞清楚自己要什么

2.1 现阶段值得关注的几个方向和项目

text-to-cad 的工具生态还比较早期,但已经有几个方向值得实际试用。

ZOO 的 KittyCAD 是我接触到的第一个商业级方案。它走的是 LLM 生成 JSON 指令、后端内核构建 B-rep 的路线,API 调用一次,能返回 STEP、STL、OBJ 等格式,几何精度和拓扑质量在商业方案里算靠前的。适合想直接接入产品做批量生成、二次开发能力要求高的团队。

MIT 发布的 Text2CAD 是开源项目里讨论度较高的一款,核心思路是用文本描述生成 CAD 草图约束和建模序列,既支持生成 STEP,也能输出参数化步骤。它适合想在自己 GPU 上跑、想研究模型原理的技术团队,不过生成复杂装配的能力还比较有限。

ParaCAD 走的是另一条路:训练模型直接输出参数化 CAD 脚本,用户可以拿脚本在传统 CAD 里重新生成模型。这种思路对“可编辑性”的追求很强,因为脚本本身就是特征历史,随时改参数。

CAD-GPT 和类似的大模型方案则是把自然语言转成 OpenSCAD 或 PythonOCC 代码,再在本地环境里执行建模。好处是无需专门的 CAD 内核端,坏处是复杂几何靠代码描述比较吃力,很多时候生成的脚本能跑通,但和预期形状有差距。

传统 CAD 巨头也在跟进。Autodesk 的 Project Bernini 属于通用 3D 生成方向,覆盖的不仅仅是 CAD 实体,也能生成一定的功能性结构,不过目前公开信息有限。SolidWorks、Fusion 360、FreeCAD 也都陆续在内部接入 AI 助手,能力多数停留在“自然语言命令操作现有特征”而不是“凭空生成新零件”。

项目/工具路线输出格式开源/商业适合人群
ZOO KittyCADLLM→JSON→B-rep 内核STEP/STL/OBJ商业 API有开发能力的产品团队
MIT Text2CADDiffusion+LLM 生成特征序列STEP/草图步骤开源研究者、自部署玩家
ParaCAD生成参数化脚本脚本(可重建模型)开源看重可编辑性的工程师
CAD-GPT 类生成 OpenSCAD/PythonOCC 代码脚本大多开源喜欢脚本化工作流的用户
Autodesk Project Bernini生成式 3D 基础模型未完全公开商业关注未来趋势的人

2.2 选型的关键分叉:实体模型还是网格模型

选工具前必须问自己一个问题:我拿到模型之后要做什么?这决定了你应该选生成 B-rep 的还是生成网格的。

如果目标是 3D 打印一个外形件,网格模型其实够用。SLM、FDM 切片器吃的是 STL 格式,而 STL 本质上就是网格。很多文生 3D 工具生成的网格经过 Meshmixer 或 Blender 修复后也能打印,没必要非得用 text-to-cad。

但如果目标是 CNC 加工、钣金展开、有限元分析、装配干涉检查,或者要和其他工程师协作改图,那就必须拿到实体模型或参数化特征。网格模型在这些场景里基本寸步难行——CAE 软件做仿真需要体网格,CAM 软件做刀路需要识别封闭轮廓和加工特征,装配约束也要建立在实体边面和坐标系的语义上。

这一点在选型时最容易被忽略。很多人一看 Text2CAD 能生成 STEP 就觉得万事大吉,实际跑完才发现:STEP 是生成了,但模型是表面缝合体,不是 solid;或者有实体但特征树是空的,只有裸几何,没法改参数。这种情况下,生成“STEP”和生成“可用的 STEP”是两回事。

我自己的建议是:概念探索阶段随便用什么都行,关键是要快、要能出形状;到了要下厂加工或者进仿真阶段,必须走生成参数化脚本或 B-rep 实体的工具,并做好人工审查准备。

2.3 部署方式和成本怎么算

text-to-cad 的部署方式分三类:商业 API、本地开源模型、商业软件内置。

商业 API 比如 ZOO,省心、精度高、拓扑质量好,费用按调用次数或订阅制收取。它的问题是数据安全。你上传的产品描述、生成的几何模型,都会经过第三方服务。涉密项目或者还在设计早期不想外露的产品,用起来要非常谨慎。

本地开源模型适合动手能力强、有 GPU 的人。MIT Text2CAD 这类项目在消费级显卡上能跑,但生成速度不快,一个中等复杂度的零件可能要等几分钟到十几分钟不等,显存占用也不小。好处是数据不出本地,而且模型权重开放,可以继续微调适配自己的零件库。

最后一种“内置 AI 助手”模式,成本最低但能力范围受限。它更像是一个“自然语言操作界面”,帮你快速完成拉伸、旋转、倒角这些命令,而不是从零生成零件。

还有个容易被忽略的成本是“时间成本”。开源项目从拉代码、配环境、下权重到能稳定出图,往往要折腾半天。这不是说开源不好,而是要有心理预期。如果你想快速验证这个方向值不值得投入,先花几十块调几次商业 API 反而更高效。

3. 实操全流程:从提示词到能用的零件

3.1 提示词的基本功:单位、特征、约束,一样都不能少

很多人的第一反应是“我会说中文就会写提示词”,实际上 text-to-cad 的提示词和聊天提示词完全是两回事。聊天时你少说一句,模型能脑补;CAD 生成时少说一个尺寸,模型只能瞎猜。

我踩过最典型的坑是:输入“生成一个带四个孔的安装板”,结果出来的板子四个孔位置随机分布,孔的大小和板子厚度完全不成比例。原因是提示词里没有单位、没有具体尺寸、也没有约束关系。CAD 模型本质上是一个受约束的几何系统,你不给约束,模型就按训练数据里的统计概率给你猜一个。

写一条合格的 text-to-cad 提示词,至少包含四个要素:

  • 基准和单位:明确“所有尺寸单位均为毫米”。不同工具对单位的默认值不一致,有的默认英寸,有的默认“无单位”,不写清楚后期缩放非常头疼。
  • 几何类型和尺寸:不要只写“一个盒子”,要写“一个长方体,长 100mm,宽 60mm,高 30mm,壁厚 3mm”。如果是回转体,写清楚旋转轴、直径、高度。
  • 特征操作:倒角、圆角、开孔、阵列、布尔差集,这些都要显式描述。例如“在顶面中心开一个直径 8mm 的通孔”“四个棱边倒 C2 角”。
  • 约束和配合关系:写清两个孔之间的中心距、某个面要和另一个面重合、孔和轴的配合关系(过孔、间隙孔、螺纹孔)。比如“两个直径 6.5mm 的过孔,中心距 40mm,对称分布在长边中心线上”。

下面是一个正反例对比,感受一下差别。

反面示例:一个带四个孔的安装板。

正面示例:一块矩形安装板,材料为铝合金,长 80mm,宽 50mm,厚 5mm。板的四个角分别有一个直径 6.5mm 的过孔,孔中心距板的长边边缘 10mm,距短边边缘 10mm。所有尺寸单位均为毫米。

正面示例生成的结果明显更接近真实使用场景。M6 螺栓的标准过孔直径是 6.5mm 左右,孔距边缘 10mm 是经验值,这些工程常识模型不一定懂,但你在提示词里写清楚,它能感知的约束就越多,输出越靠谱。

3.2 导出格式的讲究:STL、OBJ、STEP 到底选哪个

text-to-cad 生成结果的导出格式选择,直接决定了后续工作流是否顺畅。

STL 格式最通用,几乎所有 3D 打印切片器都支持。但 STL 只有三角形网格,没有颜色、材质、单位信息,更没有任何实体语义。它适合快速验证外形、3D 打印展示件,不适合做精密装配和仿真。

OBJ 和 PLY 比 STL 多一点属性支持,但本质上还是网格。除非你要把生成结果导入渲染软件做产品效果图,否则在工程流程里用不上。

STEP 是工程界的“通用语言”。绝大多数 CAD 软件能导入导出 STEP,它携带实体几何和拓扑信息。发图纸给供应商、进 CAE 仿真、做 CAM 编程,STEP 是最稳妥的选择。注意,text-to-cad 工具声称“生成 STEP”不代表生成的 STEP 一定干净——打开后可能是缝合曲面、可能是破碎面、也可能是通过布尔运算生成的裸几何,要逐个排查。

如果你需要继续编辑,最理想的是拿到参数化脚本或原生格式,比如 OpenSCAD 的 .scad、FreeCAD 的 .FCStd,或者直接生成 PythonOCC 脚本。脚本能改参数重新生成,相当于带着“特征树”的模型。这是 text-to-cad 未来最有价值的方向之一。

提示:不要把 STL 直接改扩展名当 STEP 用。文件格式不是换个后缀就万事大吉,CAD 软件打开后会报错或者根本识别不了。

3.3 生成完不等于能用:清理、修复、再参数化

text-to-cad 生成的模型,哪怕是商业 API 出品的,也建议当作“需要质检的毛坯件”处理,别当作最终产品直接下厂。

我拿过多个开源模型生成的 STEP 文件做过测试。大部分文件用 FreeCAD 打开后,直接选中实体属性,显示的是“Solid”(实体)而不是“Shell”。但有一部分会出现:表面有微小的裂缝、某些面是反向法线、边折叠、非流形顶点等问题,肉眼看不到,一进仿真软件就报错。

如果你的目标是 3D 打印,网格修复相对简单:Blender 里有 3D 打印工具箱,一键检查非流形边、内壁、翻转法线;Meshmixer 的 Inspector 也能自动补洞。

如果目标是 CNC 或仿真,情况麻烦得多。网格修复根本解决不了问题,必须回到实体层面处理。常用的兜底方案有两个:

  • 用 FreeCAD 的 Part 模块,把导入的 STEP 拆成面,再用 Shape Builder 把面重新缝合成实体。这个过程很费时间,但能在一定程度上救活破碎模型。
  • 直接用 OpenSCAD 或 FreeCAD 重建模。逆向工程一个简单零件比重建更快,直接把 text-to-cad 当作“出草图灵感”的工具,最终模型以人工重建为准。

实践经验是:text-to-cad 生成的简单几何体(板类、块类、回转体)经过修复后能用;生成的复杂装配体或者自由曲面特征,修复成本可能超过手工建模。所以用工具前先评估零件复杂度,别拿着“生成复杂装配体”的想法去试一个只能做单零件的模型。

3.4 完整实例:桌面显示器支架从文字到 STEP

为了把上面这些流程串起来,我用一个简单的桌面显示器支架作为完整案例,走一遍从需求拆解到生成验证的过程。

需求拆解后写成提示词:

生成一个桌面显示器支架底座,形状为圆形,直径 220mm,厚度 10mm。中心位置有一个直径 50mm 的圆形沉孔,沉孔深度 5mm,用于插入支撑立柱。底座底面边缘做 R5 圆角,底面刻一圈防滑槽,槽宽 3mm,深 1mm,从半径 80mm 处开始,槽间距 5mm,共 3 圈。单位为毫米。

这条提示词写清楚了几件事:外轮廓几何(圆盘)、关键配合尺寸(立柱孔)、加工特征(圆角、防滑槽)、单位和阵列关系(3圈间距5mm)。用支持 STEP 输出的工具跑一遍,得到一个圆盘模型。

接下来验证环节:先把 STEP 导入 FreeCAD,选中实体看属性类型;再用测量工具确认直径、厚度、沉孔直径是否和提示词一致。实测中我遇到的情况是:外径和厚度正确,但沉孔变成了一个装饰性盲孔,开口直径 50mm,底部却收了一道倒角,导致立柱插不进去。原因大概率是模型把“沉孔”理解成了视觉上的凹槽,而不是一个严格的加工特征。

修复方案:在 FreeCAD 里新建草图,画一个直径 50mm 的圆,打孔切除到指定深度,删除原来的错误特征。整个过程十分钟搞定。最终的 STEP 文件进入 CAM 加工流程,没有出现问题。

这个过程告诉我一个核心道理:text-to-cad 的准度还没到“拿来即用”的程度,但你把它当作“自动出初稿的助手”,效率确实比从零建模快得多。

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

4.1 生成结果不是实体(surface body / 非流形)

这是最常遇到的问题。生成结果打开是“空壳”,选中零件只有面没有体积,或者进入切片软件后显示“模型不是封闭的”。

原因通常有两个:一是模型生成的几何本身存在拓扑缺陷,面和面之间没有完全缝合;二是导出的格式在转换过程中丢失了实体信息。排查思路很简单:先在源软件里查看模型属性,确认是实体还是壳;如果在源软件里是实体,导入目标软件后变壳,那就是导出/导入设置的问题,试着换格式或调导入公差;如果源软件里就是壳,就需要在 FreeCAD 这类工具里做缝补和填充。

一个小技巧:FreeCAD 的 Part 工作台里,“Part 菜单—创建实体—从外壳创建实体”这个功能,有时能直接把闭合壳转为实体。如果外壳本身没有封闭,就得先查哪条边是开口的,手动补面。

4.2 尺寸比例离谱,怎么校准

生成结果尺寸和预期差十倍、单位完全不对、孔距分布随心所欲,这类问题非常让人沮丧。原因还是提示词里的约束不足。

解决第一步,在提示词里把所有尺寸都带上“毫米”单位,并且写全整个过程涉及到的尺寸。第二步,生成后用测量工具(FreeCAD 的 Part Workbench、Blender 的 MeasureIt、或在线 STL 测量工具)做三点测距,记录关键尺寸是否匹配。第三步,如果不匹配,优先在 CAD 软件里用“缩放实体”功能,按目标尺寸/实际尺寸的比值统一缩放。

需要特别提醒:缩放必须是等比缩放,否则圆孔会变椭圆、倒角会变形。非等比的错误缩放会留下严重设计隐患。还有,有的工具生成的本身就是“无单位”的,你在提示词里说 100mm,它建模时当成 100 个单位,导出时却不带单位。这时候更稳妥的做法是直接用参数化脚本重建,别去猜它的导出单位。

4.3 从生成模型到 CAE/CAM,中间到底卡在哪

网格模型进 CAE 软件做有限元分析,通常直接失败,因为求解器要的是实体单元,不是表面三角形。即使能勉强导入,网格质量和拓扑错误也会让计算结果不可信。CAM 编程同理,识别刀路需要加工特征,而网格模型的边线特征往往无法正确提取。

经验法则是:要进 CAE/CAM,生成阶段就锁定 STEP 格式,并且在导入目标软件后立刻做实体检查。很多 text-to-cad 工具默认输出 OBJ 或 STL,你要在设置里改输出格式。如果工具只支持网格输出,可以用网格转实体的软件做重建——但这只适合简单几何体,复杂模型转换后特征会丢失、计算会出现误差。

我做夹具设计时用过一次网格转实体:一个带三个安装孔的 L 形支架,用 Meshmixer 转成实体后再导入 CAM,出来的刀路确实能用,但孔的同心度差了一些,不得不手工修正。所以结论是:能直接生成 STEP 最好,不能的话就接受“网格生成结果只能做展示件”的现实。

4.4 提示词怎么改都不生效,先查这几个地方

如果你连续改了五版提示词,生成结果都没什么变化,问题可能不在提示词,而在工具本身。

先确认模型上下文长度。很多开源模型对长提示词支持不友好,超过长度的部分会被截断,你要检查实际输入长度,把提示词精简到核心信息上。

再检查工具是否支持你要的特征类型。比如“阵列”是一个高级特征,很多 text-to-cad 模型训练数据里就没出现过阵列,你说“复制三个”比说“阵列”更容易被理解。不是所有专业术语都能被模型识别,用“说人话”的方式描述加工意图,往往更有效。

还有一个关键点:尽量避免否定和双重否定表达。模型对“不能”“不要”“除了”这类逻辑的把握远不如对肯定句把握得好。“不要有圆角”的生成结果大概率还是带圆角,不如改成“所有棱边保持直角,不添加圆角”。

如果以上都排查完还不行,可以换个思路:用多个工具生成同一个需求,对比择优,然后人工拼接。不同模型的训练数据差异决定了它们对不同几何类型的擅长程度,多工具并行的策略在现阶段性价比很高。

5. 用了一段时间之后,我总结的几点实在话

5.1 把 text-to-cad 当“初中级工程师助理”用,而不是“全自动制造机”

text-to-cad 现阶段最合适的定位,是“拿到需求后能在几分钟内给出初版几何”的助理角色。它能帮你把模糊需求快速变成可讨论的形状、快速产出变体、批量生成结构类似的非关键零件。

但它的结果必须经过人工审查,这就像实习生画的草图,方向对了,细节需要你逐一确认。关键承力件、配合面、公差要求高的位置,别指望一次生成就达到可用状态。我见过有人因为生成结果看着很像样,直接把 STEP 发给供应商加工,结果装配时发现孔位偏了 0.5mm,整批报废。这类教训足够深刻。

建议把 text-to-cad 嵌入一个明确的质检流程:生成、检查实体属性、测量关键尺寸、进入 CAD 修正、确认后再出图。设置这五步并不会花太多时间,但能避免大多数“AI 生成翻车”事故。

5.2 几个值得长期关注的方向

text-to-cad 后续的扩展空间很值得期待。一个是与拓扑优化结合,用算法基于边界条件自动探索形状候选,human 只负责筛选和细化;另一个是与制造工艺的打通,从文字直接生成可制造性分析报告、建议工艺路线;还有一个是批量变体生成,比如参数化法兰盘系列,写一个脚本循环调用 API,一次出 20 个版本供选型,这在以往需要重复劳动的场景里非常实用。

关于落地建议,我更倾向于从“辅助设计”切入而不是“全自动设计”。考虑到现有的生成精度、拓扑质量和审查成本,短期内它能给中小型团队带来最直接的价值,就是省掉大量“从零画草图”的时间,把精力转移到真正需要经验判断的地方——材质选择、加工工艺、装配配合这些 AI 还难以可靠替代的环节。这个方向还在快速迭代,只要持续关注,用起来不算晚。

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

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

立即咨询