☰
text-to-cad实测:从一句话到可用STEP模型的原理与边界
2026/10/27 21:48:40 网站建设 项目流程

第一次看到text-to-cad这个词,我脑子里闪过的其实是"又是来收割设计行业焦虑的AI概念"。但当我真的把一个带通孔、倒角和安装面的零件需求打进去,十几秒后收到一个可以打开的STEP文件时,我承认我有点被震住了。作为和三维建模软件打了十几年交道的人,我太清楚从一句"我要一个什么样的零件"到屏幕上出现可编辑的三维模型,中间要跨过多少东西——草图约束、特征顺序、基准面选择、参数驱动,每一样都能劝退一个新手,也能折磨一个老手。text-to-cad瞄准的正是这条最反直觉、最耗时的路径:它试图把"设计意图"直接翻译成"可编辑的CAD文件"。

这篇文章我想以一个实际用过、踩过坑的从业者身份,把text-to-cad的现状、原理、上手流程和真实边界讲清楚。适合三类人看:想用自然语言快速出模型的产品设计师,做非标设备和工装的机械工程师,以及只想要个三维模型却不想学完整参数化建模的3D打印玩家。

1. 手动建模十几年,我第一次被"一句话建模"震到

1.1 过去最难的不是画线,而是"把脑子里的东西翻译成特征"

我常年做非标自动化设备的零部件设计,说句实话,建模软件本身并不难学,难的是两件事。第一,你得先想清楚这个零件需要哪些特征:一块板是拉伸出来的,一个孔是打出来的,圆角是后加的,顺序错了后面全部要改。第二,特征之间的父子关系一旦拉错,改一个尺寸会引发连锁报错。这些规则本质上和画图无关,而是"特征建模思维"。

对一个想快速验证点子的工程师来说,这层认知门槛经常比软件操作本身更费时间。更别提那些非设计岗位的人——工艺、采购、项目经理——他们脑子里有完整的需求,但没有建模训练,每次想交流结构方案都只能靠截图和比划。text-to-cad真正替代的,其实就是这层"把意图翻译成特征"的工作。它把翻译过程交给大模型,人只需要描述"是什么",不需要关心"怎么建"。我第一次用它生成一块带孔底板时,脑子里冒出来的反应是:这不就是我带新人时反复讲的那套特征分析逻辑吗?只是这一次,机器替我干了。

1.2 text-to-cad不是AI画图,它产出的东西要"能用"

最开始很多人会把text-to-cad和Midjourney这类文生图工具混为一谈,这是最大的误解。文生图产出的是像素矩阵,你可以拿来做概念参考,但没法拿去做有限元分析,更没法上CNC加工。text-to-cad产出的是真正的几何内核文件——如果是走脚本路线的工具,输出的是CadQuery或OpenSCAD代码,执行后得到带边界的实体模型,也就是B-rep,可以导出标准STEP文件;即便是不带参数历史的版本,至少也是可测量、可切片的实体或网格。

这意味着生成的模型是可以进入工程链路的:能测量、能装配、能出工程图、能送加工。这才是它和"AI画图"的本质区别。也是这篇博文里所有讨论的前提:我们讨论的是"能用的模型",不是"好看的图"。所以后面所有章节,我都会围绕一个核心问题展开:怎么让生成结果从"看着像"变成"真的能用"。

2. 拆开text-to-cad的引擎盖:三条技术路线谁在裸泳

2.1 大模型直接写CadQuery/OpenSCAD脚本:目前最"能用"的路线

目前最主流、也是我个人最推荐的路线,是用大语言模型直接生成程序化CAD脚本。代表性实现比如Autodesk前员工团队做的Zoo,早期就叫Text-to-CAD:你在输入框里描述一个零件,系统调用大模型生成一段CadQuery或Build123d的Python代码,然后在云端执行,返回STEP文件。这个路线的精妙之处在于:代码是可编辑的,这意味着LLM生成的不是一锤子买卖的"死模型",而是保留着建模过程的"活脚本"——你想改孔的直径,改一个数字重新执行就行。

这条路线能跑通,依赖的是CadQuery这类库的"程序化建模"特性。用代码建模其实就是把拉伸、打孔、倒角这些操作写成函数调用,代码本身就是建模历史。LLM在这件事上相当于一个会写代码的结构工程师,虽然偶尔写错API,但整体生成的脚本结构是可读、可修的。一个最简单的板+孔模型,CadQuery脚本长这样:

import cadquery as cq plate = ( cq.Workplane("XY") .box(100, 60, 10) # 长100mm、宽60mm、高10mm的板 .faces(">Z") # 选中顶面 .workplane() .hole(20) # 打直径20mm的通孔 ) cq.exporters.export(plate, "plate.step")

我在实测中的体会是:只要提示词里把形状、尺寸、位置说清楚,生成结果的可靠性比想象中高很多。它的短板则在于,LLM并不天生理解CAD的几何约束,有可能生成一个"看起来对"、实际上面与面之间没有正确相交的模型,这类问题只能在检查阶段发现。

2.2 检索与模板变形:被低估的务实派

第二条路线不是从零"生成",而是"检索+变形"。系统内部维护一个零件库,每个零件附带文本语义标签和参数化模板。用户输入"带四个安装孔的法兰盘",系统先检索最接近的模板,再把法兰外径、孔距、孔径这些参数按描述调整,输出一个新模型。

这条路线的优点是稳——不会出现幻觉特征,因为所有几何都来自已验证的模板;缺点也明显:你只能得到"库的边界内"的东西,遇到库里没有的形状就抓瞎。目前不少面向标准件、重复性高的行业软件,背后其实是这个逻辑,它不追求酷炫,但胜在可靠。我在实际项目里碰到过类似系统的落地:给客户做快速选型方案时,文本检索加参数变体能在几秒内出一版带工程图的三维方案,这种稳定生产力是纯生成路线暂时给不了的。

2.3 神经隐式表达:看着像3D,其实是"泥塑"

第三条路线是生成式3D里的热门路线:用扩散模型从文本生成体素场、隐式场或表面网格,代表如OpenAI的Shap-E,以及市面上各种text-to-3D工具。这类模型输出的通常是三角网格,有漂亮的连续曲面,视觉冲击力很强,但内核上更像"数字泥塑",而不是"机械零件"。网格模型进不了标准CAD装配流程,无法直接做工程约束,也很难参数化修改。

如果要做CNC或3D打印,网格还需要经过逆向工程转成B-rep,那一圈的精度损失和人工成本,经常比从头建模还高。所以我的判断是:神经隐式表达这条路线更适合游戏资产、影视道具、快速形态探索,离真正的"CAD生产"还有一段距离。这也是为什么现在不少厂商会把"可编辑性"作为卖点——因为大多数生成3D模型,恰恰在最关键的这一环上缺失。

2.4 三条路线对比:一张表看清该选谁

对比维度LLM生成CAD脚本检索+模板变形神经隐式/网格生成
输出格式脚本+B-rep/STEP模板衍生STEP网格/隐式场
可编辑性高(脚本即参数历史)中(只能改可控参数)低(需逆向工程)
自由形状支持一般较差强
几何可靠性中,需检查高低(精度差)
适用场景机械件、快速方案标准件、选型系统概念造型、CG资产
代表性工具Zoo Text-to-CAD、CadQuery生态行业参数化选型系统Shap-E、各类text-to-3D工具

这不是说哪条路线绝对优劣,而是提醒大家选工具时要先问一句:我到底要"一个能生产的零件",还是要"一个好看的三维示意图"?答案不同,工具方向完全不同。

3. 跑通一条最小可工作流程:从一句话到STEP文件

3.1 工具组合与准备工作

我目前主用的组合是:Zoo Text-to-CAD(云端生成)+ FreeCAD(本地检查和修改)。选这个组合的原因很简单:Zoo走的是LLM生成CadQuery脚本路线,输出的STEP自带几何可靠性;FreeCAD免费开源,能打开STEP做测量、剖面和基础修改,不需要为了验证一步去装一套完整商业CAD。

如果你更倾向本地化,也可以用支持代码补全的编辑器加CadQuery库再加一个Python环境,提示词里让大模型输出CadQuery代码,自己执行生成STEP。两条路我都跑过,云端方案对新手最友好,本地方案适合需要批量生成和微调脚本的进阶用户。

准备阶段有一个细节容易被忽略:确认你熟悉"打开一个STEP却没有特征树"时的操作基线。FreeCAD打开STEP后,得到的是一个不可参数化编辑的几何体,但你仍然可以通过Part模块对它做布尔运算、测量和导出。这意味着即使生成结果不够理想,你也有一个"兜底修改"的途径,而不是只能推倒重来。

3.2 提示词的正确写法:三个层次的结构化描述

用多了之后我发现,text-to-cad的效果七成以上取决于提示词怎么组织。好的提示词不是一句大白话,而是三层结构。

  • 第一层:主体形状。明确类型、尺寸、单位。例:"一块矩形板,长100mm、宽60mm、高10mm"。
  • 第二层:附加特征。凡是与主体不同的几何操作都要点名。例:"在板顶面中心,垂直于顶面打一个直径20mm的通孔"。
  • 第三层:修饰与约束。倒角、圆角、阵列,以及限制性要求。例:"四边外轮廓倒角2mm,不要添加任何未提及的特征"。

有一个我踩过多次的坑:很多人只给"一个带孔的法兰盘",结果孔的数量、位置全靠模型脑补。后来我改成"在直径80mm的圆盘中心,按直径60mm的圆周均匀分布6个直径8mm的通孔",结果就稳定多了。描述特征时,位置关系比形状本身更重要——把"哪里有什么"说清楚,而不是只说"有一个什么"。另外,可以提示模型"使用毫米单位""使用CadQuery的Workplane接口"这类工程约束,能显著减少单位错乱和API误用。

3.3 拿到生成结果后的"五项体检"

按我的习惯,每个生成模型到手后都要过五关。

  1. 尺寸测量:在FreeCAD里用测量工具核对外形长宽高与关键孔径,偏差是否在预期内。
  2. 特征完整性:对照需求逐项检查孔、凸台、倒角、槽等特征是否存在。
  3. 几何健康度:查看是否有多余面、破碎边,尝试做一个剖面,确认内部没有悬空或异常薄壁。
  4. 可编辑性:如果拿到的是脚本,重新执行一遍确认无报错;如果只有STEP,确认是否需要在原软件里重建特征。
  5. 方向与基准:检查主视图方向、基准面是否符合后续装配习惯,避免导入装配体后还要旋转半天的尴尬。

这套体检流程不要省略,尤其是几何健康度。LLM生成脚本时,"视觉上正确但布尔运算失败"的情况并不少见,比如孔没有完全贯穿、圆角与其他表面相切失败。提前发现,省下的时间足够你再生成三轮。

4. 实测翻车现场:问题现象、根因与排查链路

4.1 单位错乱:标注120mm,实际块头差了1000倍

我第一次用text-to-cad生成一个支架时,提示词里写的是"底座长度120mm"。拿到STEP在FreeCAD里一测量,尺寸属性赫然显示120 in,等于实际零件是3048mm——比人还高。根因很明确:模型内部对单位的默认假设与我不同,它把数词和单位分开考虑了,数值120保留,单位却按自身默认的英寸落地。

排查链路是这样的:首先怀疑单位,而不是尺寸。打开文件属性看单位设置,测一个已知特征的长度,判断是否成倍数关系,25.4倍是常见的英寸毫米换算;确认后,回到提示词里明确加一句"所有尺寸均使用毫米,不要做任何单位转换",重新生成。之后我再没遇到这个问题。如果你用的是本地CadQuery脚本路线,还可以在代码里强制指定单位,CadQuery默认基于毫米,输入数值时直接带毫米单位也可以消除歧义。

4.2 特征树惊魂:能出图,却改不了任何参数

第二次踩坑更有迷惑性:生成结果长得很对,尺寸也对,但导入FreeCAD后发现这只是一个"冻住的实体",没有任何参数历史,想改一下孔径只能整体缩放或者删掉重做。原因是那次我走的工具输出的是"纯几何STEP",而不是"带脚本的可编辑模型"。生成过程在云端已经完成了几何运算,脚本没有随文件一起交付。

排查时我先确认文件来源与生成方式:如果是云端工具,看它是否提供"获取脚本"的选项;如果只有STEP,那就别指望参数化修改。处理方式有两条路:一是回到对话里,让模型"生成CadQuery脚本并贴出代码",二是用FreeCAD的Part Design重建关键特征。从那以后,我在所有提示词里都固定加一句"请同时提供完整的CadQuery脚本",这个习惯帮我保住了大量模型的可编辑性。

4.3 小特征集体失踪:螺丝孔和圆角到底去哪了

还有一个高频问题:大特征都在,但螺丝孔、安装倒角这类"小特征"经常被模型无视。本质原因是LLM在生成代码时倾向于优先满足形状主体和主要尺寸,对同时出现的多个次要特征,注意力会被稀释。

排查链路涉及两个方向:先检查提示词里是否对这些特征给出了明确尺寸和位置;如果没有,补全为"在四角距离边缘10mm处,各打一个直径4.5mm的通孔"。再检查是不是特征数量超过了一次生成的合理范围——我实测下来,一个提示词里同时要求超过四五个独立特征时,漏掉小特征的概率会明显上升。这时候把需求拆成两轮:先生成主体加大孔,再基于已有脚本追加小特征,往往比一次性要求更稳。这也间接说明了"小步快跑"策略的价值。

4.4 幻觉参数:模型里多出了一个你没要的"台阶"

最后一种翻车最隐蔽:模型形状整体正确,但多出了一个原始需求里根本不存在的结构——比如一个限位台阶、一圈法兰沿。这是LLM最常见的"幻觉":它从通用机械常识里脑补了"这类零件通常有凸台",然后加了进去。如果做概念演示,这个多出来的结构可能无伤大雅;但如果直接出图加工,就是实打实的废品。

排查方法也简单:将生成结果与需求清单逐项核对,凡是需求里没有的特征一律视为"程序错误"。修复手段是在提示词里增加负面约束:"严格只包含列出的特征,不要添加任何额外结构。"这条约束效果非常明显,强烈建议写进模板。如果模型在负面约束下仍多次脑补,还可以改成更结构化的描述方式,把每个特征单独编号,让模型按编号逐一生成,幻觉空间会被进一步压缩。

5. 哪些场景值得用、哪些场景先别碰

5.1 我实测下来最值得用的三个场景

第一个是3D打印快速原型。我做过一个相机支架的早期版本,需求就两句话:"一个L型支架,底面带两个M4沉头孔,侧板顶部开一个25mm宽的槽。"text-to-cad十几秒出稿,我导入切片软件就打了第一版,用来装相机验证角度。这种"低精度、快速验证"的场景,与传统建模相比节省的往往是半小时到一小时,尤其在赶方案时价值极大。

第二个是给客户或同事做概念方案演示。需求沟通阶段经常要出"示意级"模型,不需要公差,不需要完全可制造,只需要一眼看懂结构。text-to-cad生成的STEP能放进装配体里看布局、做干涉检查,沟通效率比PPT里的二维草图高一个量级。

第三个是教学与知识辅助。我在带新人入门参数化建模时,会让对方先用自然语言描述一个零件,再对比text-to-cad生成的脚本和手工建模的特征顺序。这个过程能让新手直观理解"一个孔在脚本里其实就是一次workplane加hole调用"这类抽象概念,学习曲线明显变缓。

5.2 高精度配合、复杂装配、标准合规:现阶段先别碰

先说高精度配合。凡是涉及配合公差、形位公差的件,比如轴承座配合孔、轴孔间隙,现阶段text-to-cad基本给不了可用结果。公差不是一个简单的数字,它关联基准、工艺和测量方法,而生成式工具目前连"把公差写进模型属性"都做得不完整,更别提真正满足H7/g6这类配合。我用它生成过一组含公差提示的法兰,结果只能当"示意",最终还是要手动重建。

复杂装配体也别指望一步到位:一个由十几个零件组成的机构,靠一段自然语言生成几十个相互约束的零件,复杂度已经超出当前模型的能力边界。我的经验是,工具适合做"零件级"输入,不适合做"装配级"输入。标准合规场景同理,涉及行业标准、安全规范或强制检测印记的设计,所有几何和标注都必须是可控、可审计的,生成式模型给不了可追溯性,出了问题说不清是哪次生成的,责任风险很大。

5.3 和传统参数化建模融合的新工作流

踩过一圈坑后,我摸索出一套比较顺的工作方式:text-to-cad做"粗模",传统CAD做"精修"。具体流程是:先用文本快速生成带主要特征的STEP粗模,确认形态与尺寸方向没问题;然后把关键特征在专业CAD里重建为参数化模型,把公差、基准、标准件配合逐一落实。整个过程里,text-to-cad负责把"从零到一"的时间从两小时压到十五分钟,专业CAD负责"从一到百"的工程化,两者不是替代关系,而是接力关系。

还有一种更省事的变体:如果生成器提供脚本,直接让大模型迭代修改参数——"孔径改为25mm""厚度减薄到8mm"——改完重新执行脚本,比在传统CAD里一个个改草图约束快得多。这种"对话式参数化"的工作流目前已经能扛起量产变体设计的活,比如不同安装孔距的外壳系列,一条提示词改孔径就能批量出变体。

6. 一点个人经验:把text-to-cad变成真正生产力

6.1 建立你自己的"零件描述字典"

我自己在一个共享文档里维护着一份"零件描述字典",把常做的零件类型、常用特征句式和固定约束整理成模板。比如"法兰盘"一类,固定句式是:圆盘外径X、厚度Y、中心孔直径Z、螺栓孔在直径R的圆周上均布N个直径为D的通孔。有了这套模板,每次生成前只需要替换数字,不需要重新组织语言。这个习惯让生成成功率提高了非常多——因为模型对一个"结构完整、信息密度高"的提示词,远比对一个口语化的长句更友好。

维护字典时,我会把每次生成为什么失败也记录进去,比如"没写单位导致英寸毫米错乱",下次翻到就提醒自己。坚持几个月后,我的提示词就越来越"吝啬"——每一句都只提供有效信息,没有任何多余修辞。文本生成建模这条路上,信息密度就是准确率。

6.2 坚持"小步快跑"的生成与验证节奏

我的另一条铁律是:一次只生成"一个足够复杂但能数清特征的零件",生成后立即做体检,通过后再进入下一轮。千万不要试图让模型一次生成整个装配体,也不要一次塞进七八个特征期待它全部准确。所谓"小步快跑",不是说提示词要短,而是每轮的输出范围要可控。

实测中,把一个大需求拆成三个小需求分别生成,再用CAD里的布尔运算合体,比一次性生成大模型的成功率高出太多。配合前面的体检清单,每一轮都能明确知道"这次失败在哪",有针对性地修提示词或修脚本,而不是面对一团乱麻撞运气。这套节奏看上去慢,实际上终点是最快的。

6.3 接下来值得关注的方向

最后说说我观察到的趋势。一个方向是多模态输入:草稿图加文本描述联合生成,你随手画个草图,再补充"这里倒角、那里打通",这比纯文本更符合工程师的自然表达。另一个方向是可编辑性增强:越来越多工具开始主打"输出可编辑脚本/特征历史",而不是只给一个网格或STEP,这是text-to-cad能否真正进入生产流程的关键。

还有一个方向是行业垂直化:针对标准件、钣金、管道等具体领域微调的模型,可靠性会比通用模型高一个台阶。国内也有类似思路的中文对话式CAD工具在落地,对中文描述的支持更好,这也是一个值得关注的变化。我一直在留意这些方向,一旦有稳定工具出现,我会第一时间替换掉现有流程里最卡脖子的环节。

说到这儿,想起一个体会:text-to-cad这类工具最大的价值,其实不是让工程师失业,而是把过去"从脑子到模型"这段最劝退人的路,变成了可以快速试错的对话。现在我做非标件,已经习惯先花十五秒说一版需求,拿到粗模再决定要不要动手精修——这个习惯,放在三年前我是完全不敢想的。

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

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

立即咨询