text-to-cad 全解析:从自然语言到可编辑 STEP 模型的技术路线与实战避坑指南
发布时间:2026/9/12 5:51:12 锦皓数字建站

text-to-cad 这个词最近一年在国内机械、3D 打印和 AI 工程圈子里出现频率越来越高。我第一次看见时还以为又是个营销概念直到自己动手试了一把输入一行描述等上一两分钟拿回来一个能继续编辑的 STEP 文件。那一刻才意识到这个方向解决的不是生成好看的样子而是从想法到工程模型这条最难自动化的链路。这篇文章就以 text-to-cad 为主线拆解它的技术路线、主流工具的上手流程以及我实际踩过的一堆坑。无论你是机械工程师、创客还是做 AI 应用开发的工程师都能从这里判断这个工具到底靠不靠谱、该怎么用。1. 先说清楚 text-to-cad 到底解决什么问题1.1 从一句话到可编辑模型省掉的是建模中的重复劳动传统的 CAD 工作流里工程师拿到需求通常是一张图纸、一段口头描述或者一张手绘草图。你要在 SolidWorks、Fusion 360 或者 FreeCAD 里重新建坐标系、画草图、加约束、拉伸切除、倒角。一个简单的法兰盘熟练的人也要十分钟遇到尺寸反复改的情况半小时搭进去很正常。而且这种需求大量重复——夹具、支架、连接件、外壳本质上都是某个形状 几组尺寸约束。text-to-cad 想压缩的正是这一段。它把自然语言描述直接转换成带工程语义的 CAD 模型文件典型输出是 STEP。和传统建模最大的区别在于你不必自己决定用什么特征、按什么顺序建模模型生成器替你把这些怎么画的问题解决了。对前期方案评估、标准件选型、快速打样来说这个能力非常实用。我做结构预研的时候经常要在十分钟内给团队看一眼这个东西大概长什么样、能不能装进去以前得现场开 CAD 慢慢画现在直接打字就行。1.2 它和文本生成 3D 网格完全是两种物种很多人会把 text-to-cad 和 AI 生成 3D 模型混为一谈这是最大的误区。市面上的 AI 3D 生成工具比如常见的那几个用扩散模型出图的输出几乎都是网格模型mesh也就是 STL、OBJ、GLB 这一类的文件。网格的本质是一堆三角形拼出来的近似表面它适合渲染、适合 3D 打印预览但拿给机加工师傅人家大概率会问你要 STEP 或者原始工程图。CAD 模型不一样。它背后是精确的几何表达面是平面、圆柱面、NURBS 曲面边是精确曲线而且是带拓扑关系的实体模型。你要在装配体里约束它、要标注公差、要做有限元分析都需要这种精确几何。text-to-cad 的难点和卖点恰恰在于它输出的不是一张像模型的皮而是一个真能进工程流程的实体。这也是为什么这个方向到目前为止落地形式多是大模型生成建模代码 几何内核计算而不是扩散模型直接出点云。2. 主流技术路线拆解代码生成、序列生成与生成式模型2.1 路线一大模型直接生成参数化建模代码这是目前 text-to-cad 产品最主流的技术路线。大致流程是这样的你把自然语言描述发给大模型模型不是直接去画几何而是生成一段可执行的建模脚本——常见的是 Python 加上 CadQuery 库或者 OpenSCAD 脚本有时候也输出一个结构化的建模指令序列。脚本提交给几何内核去执行内核做布尔运算、拉伸、倒角最后导出成 STEP 文件。这个路线的核心优势是可解释、可修正。生成的脚本是明文代码哪一步出了问题改一行就行哪里的尺寸不对找到对应参数直接改。而且 CadQuery 是构建在 OpenCASCADE 内核之上的OpenCASCADE 是工业界很成熟的开源几何内核底层精度和稳定性是够用的。Zoo 的 text-to-cad、开源的 Chisel 项目走的都是这个思路。我自己实测下来直径、孔径、法兰孔数这些规则几何成功率相当高一旦涉及自由曲面、复杂扫掠代码就容易写错常见的就是自相交、面缝不上后面会细说。2.2 路线二把 CAD 建模过程当作语言来生成学术界还有另一条思路就是把一个 CAD 模型的创建过程拆成一条操作序列比如新建草图 → 画圆 → 拉伸 → 打孔 → 倒角每种操作对应一个 token。这样整个建模过程就变成了一个序列可以用训练语言模型的方式去训练。DeepCAD 是最早把 CAD 建模序列化和深度生成模型结合的代表工作它建了一个包含十几万个参数化 CAD 模型的数据集模型输出的就是一段序列重建出来的模型还保留着特征历史。这条路线的想象力在于如果模型直接理解了建模操作顺序生成的模型天生就带特征树导出的格式也更容易被传统 CAD 读取。但它的短板也很明显——操作空间是固定的遇到数据集里没出现过的复杂特征组合模型容易生成一堆语法正确但几何一塌糊涂的序列。目前这个方向更多还停留在研究阶段产品化程度不如代码生成路线。不过它给了我们一个很重要的视角CAD 建模本质上是可以被当作一门语言来建模的这也是 text-to-cad 能成立的根本原因之一。2.3 路线三扩散模型与神经隐式表达再说说最容易混淆的扩散模型路线。Point-E、Shap-E 这类工作是用扩散模型从文本生成点云或者隐式场再从里面提取网格。这条路线的优势是自由曲面表达能力强生成速度快视觉效果好。但它生成的原始结果是网格没有 B-rep 拓扑没有参数化的特征历史严格意义上不是 CAD 模型。想把它变成工程可用的 CAD需要再做一步逆向工程从网格里拟合出曲面、重建特征树这一步的自动化程度目前很低复杂的零件基本要靠人工重新描一遍。所以选型逻辑就很清楚了如果你的目标是做视觉呈现、游戏资产、快速概念预览扩散模型路线更合适如果你的目标是出图、加工、装配那就得选能输出精确几何的代码生成方案。text-to-cad 这个词或者这个标签在市场上虽然经常被借用到网格生成工具上但工程语境下谈 text-to-cad默认还是指文本到可编辑 CAD 实体这一条。这也是我坚持认为代码生成路线会是工业落地主力方向的原因。2.4 选型逻辑为什么工程场景更吃代码生成理由不复杂。第一工程交付物要求的是确定性。代码生成的模型每一步几何操作都可以追溯出了问题能定位扩散模型的结果是概率采样出来的同一个 prompt 每次都不同模型坏了都不知道坏在哪一步。第二工程流程要求可编辑。设计永远会改螺栓从 6 个改成 8 个孔距从 90 改成 100代码生成方案改几个参数重跑一遍就行网格方案只能重新生成或者手动处理。第三工业软件生态早就建立在精确几何之上。STEP、IGES 这类标准格式三维建模软件的底层 API都是围绕 B-rep 实体设计的代码生成路线能无缝接入这套体系扩散模型生成的网格却要额外做一道翻译。所以我的判断很直接text-to-cad 的未来在大模型 几何内核的组合而不在大模型直接画网格。3. 上机实测把 text-to-cad 用起来3.1 捡个省事的入口先试试 Zoo text-to-cad如果你今天就想体验一下最省事的入口是 Zoo 的 text-to-cad。我试的时候它直接跑在浏览器里不用安装任何桌面软件登录以后在输入框里描述你想要的东西点生成按钮等几十秒到一两分钟页面上会出一个 3D 预览确认没问题就可以下载 STEP、STL 或者 GLB。整个过程大概分五步注册账号、进入生成页面、写 prompt、等生成、导出文件。这里给你一个我实际跑通过的完整示例。输入描述可以这样写A circular flange, outer diameter 120mm, inner bore diameter 40mm, thickness 10mm, with 6 holes of 8.5mm diameter evenly spaced on a 95mm bolt circle. Add a 1mm x 45 degree chamfer on the outer edge.生成结果是一个标准的圆盘法兰带六个孔导出的 STEP 文件直接拖进 Fusion 360 能正常打开尺寸也对得上。第一次成功的时候确实有点兴奋因为这是真家伙不是渲染图。需要说明的是Web 端工具的免费额度和排队情况会随运营政策调整我这里描述的是自己实测时的状态如果你打开发现界面变了你别慌核心流程大差不差。3.2 把 prompt 写明白的三个层次text-to-cad 好不好用一半取决于 prompt 质量。我总结了三个层次从基础到高级你可以照着往自己的描述里套。第一层物体类别加基本几何。先告诉它是什么再告诉它大概长什么样。比如一个 L 形支架一个带四个安装孔的底板。这层决定模型生成的骨架方向。第二层尺寸、单位、约束。这是最关键的一层。所有关键尺寸都要写清楚而且强烈建议每次都用毫米mm做单位别混用英寸。孔的数量、孔径、孔距、圆心位置最好逐一写明。比如直径 8.5mm 的孔6 个均匀分布在直径 95mm 的圆周上信息密度越高生成越稳。第三层制造语义和工程语义。比如带 45 度倒角沉头孔用于 M4 螺钉这个是 3D 打印件公差放宽等等。这些描述会影响模型生成时的细节处理。举个例子你说通孔和沉头孔生成的结果在孔的结构上是有明显差异的。反例我也踩过。直接写帮我画一个法兰出来的模型五花八门有的甚至默认成英制尺寸孔位数量也不对。后来我养成了习惯先套模板把几何尺寸、孔数、倒角、单位全部填好再丢给模型。成功率提升非常明显。3.3 拿到模型之后别急着投入使用从 text-to-cad 工具里下载 STEP 文件只是第一步。我强烈建议你把它导入自己常用的 CAD 软件里做一次体检别拿浏览器预览看一眼就下单加工。导入以后重点检查三件事第一几何完整性看看有没有破面、有没有缺面、有没有自相交。第二尺寸复核用测量工具把关键直径、厚度、孔距量一遍确认和你的输入一致。第三工程语义比如螺纹孔是不是真的带螺纹特征、沉头孔深度是否足够。这些都是模型生成过程里容易丢细节的地方修改成本远低于加工报废的成本。还有一个容易被忽略的点从绝大多数 text-to-cad 工具导出的 STEP 文件等于把模型拍平成了纯几何特征树、建模步骤这些信息在传输过程中是留不住的。你在源工具里看到的参数化结构到 SolidWorks 里打开之后就是一根没有历史的实体。所以别指望在本地 CAD 里还能像改自己建的模型那样拖拽特征。真要保留参数化结构得看工具是否支持导出原生格式或者直接在生成的代码层面改参数再生成为新文件。4. 核心细节B-rep、参数化约束与格式选择4.1 B-rep 到底是个啥要想理解 text-to-cad 为什么输出的是真 CAD你得先知道 B-rep。B-rep 全称是 Boundary Representation边界表示。它描述一个三维实体不是靠一大堆三角形去近似而是靠一组精确的面、边、顶点以及它们之间的连接关系。面可以是精确的平面、圆柱面、球面、NURBS 曲面边是这些面的交线有精确的曲线方程拓扑关系记录了面怎么围成一个封闭的实体。打个生活化的比方网格模型像是用马赛克拼出的一张图离远了看像凑近了全是方块B-rep 模型像是一段 SVG 矢量图里面记录的是这条线是圆弧、圆心在这、半径是 50放大多少倍都是清晰的。工程软件里的测量、配合、标注公差、仿真全都依赖这种矢量级的精确表达。所以 text-to-cad 的价值不在于生成了一个看起来像的模型而在于它生成的模型背后有这种精确的数学描述。这也是 DeepCAD 序列化建模操作、代码生成路线都要落到几何内核上执行的根本原因。4.2 可编辑、可参数化才是灵魂CAD 模型和一张图最大的区别是可编辑性。一个真正好用的 CAD 模型不仅是长得对还应该能改——螺栓孔数量从这个数改成那个数厚度加两毫米倒角半径调一下都应该有可操作的路径。基于代码生成的 text-to-cad天然就带这种属性生成的是脚本脚本里每个尺寸都是一个变量你改一个参数重新跑一遍新模型就出来了。我在实际操作中特别依赖这一点。方案评审的时候客户说法兰孔能不能从 6 个改成 8 个我不需要重新生成一个新的 prompt只要打开生成脚本找到孔的数量变量从 6 改成 8重新执行一分钟内拿到新模型。这种微改能力是直接把 text-to-cad 当成设计工具而不是只会出一次结果的玩具来用的关键。相比之下扩散模型生成的网格要改参数基本等于从头再来这在设计迭代场景里是致命的。4.3 STEP、STL、IGES、GLB 怎么选很多新手会问导出的时候选哪个格式我整理了一个速查表直接照着选就行。格式几何类型最适合的场景缺点STEPB-rep 实体机加工、装配、仿真、传统 CAD 互传不保留特征树历史IGESB-rep 曲面老旧系统传输、曲面数据交换实体表达能力弱文件大STL三角形网格3D 打印切片、快速预览无拓扑、无精确几何GLB网格 材质Web 预览、VR/AR 展示工程场景基本用不上我的建议很明确只要能选工程交付一律用 STEP。它是目前跨 CAD 平台最通用的精确几何交换格式SolidWorks、Creo、Fusion 360、FreeCAD 全部支持。如果是给 3D 打印机用那就导 STL但记得在切片软件里检查法线方向和水密性。IGES 现在基本上只在和老系统打交道的时候才会用到新项目就别费劲了。GLB 更多是给前端同事做展示用的工程上不用考虑。5. 常见问题与排查技巧实录5.1 破面、自相交和细小缝隙text-to-cad 用得多了你一定会遇到模型打开后提示几何错误的情况。最常见的三种破面、自相交、细小缝隙。破面的原因通常是布尔运算时两个面没有完美对齐产生了个别自由边自相交常见于复杂扫掠和阵列特征几何面自己和自己重叠了细小缝隙则是公差设置和计算精度导致的面之间差了一点点距离。遇到这类问题我一般的排查顺序是先用 CAD 自带的诊断功能看错误高亮在哪里如果是小缝隙试试统一几何容差或者合并面操作如果是破面优先回生成脚本里看对应步骤把可能出问题的尺寸微调一下重新生成比在 CAD 里补面高效得多。切记不要直接拿着有破面的模型去切片或加工轻则表面瑕疵重则整个模型无法实体化。这也再次印证了前面说的代码生成方案的优势在于你能回到源头修而不是在结果上打补丁。5.2 单位混乱和尺寸比例错误单位问题是 text-to-cad 最容易埋的雷没有之一。我遇到过最典型的情况是prompt 里写直径 4没写单位模型生成出来以后直径是 101.6mm——一看就是被当成了 4 英寸。还有一次一个底板模型整体尺寸对了但孔距差了 25.4 倍不用想肯定是一处毫米一处英寸串了。排查和预防的方法很简单。第一prompt 里像写合同一样写单位每个尺寸后面都要跟 mm别嫌啰嗦。第二生成之后第一步就量尺寸拿卡尺量两三个关键尺寸核对别先看形状。第三如果发现整体放大了 25.4 倍那不是重新生成的事直接在 CAD 里缩放 1/25.4 就行但如果是局部尺寸错就得回到 prompt 里检查是不是某些描述被理解成了英制把对应单位写明确再重新生成。单位问题看着小实际能把一个交付周期拉长半天真的不值得。5.3 语义翻车通孔、沉头孔和均布被误解大模型在几何推理上已经不错了但在工程术语理解上还是会翻车。我踩过的坑包括说沉头孔它给我生成一个通孔加一个倒角沉头锥面完全没有说均布 6 孔它理解成六个孔排成一条直线而不是均匀分布在圆上说内孔直径 40它有时会把外圆做 40 内孔做别的。这些不是模型笨而是自然语言本身有歧义尤其是工程语言里大量依赖行业默认知识模型不具备这些常识。我的应对办法是拆句 给数字。把一句笼统的描述拆成几何上无歧义的句子比如6 holes evenly spaced on a circle with diameter 95mm比均布六个孔稳妥得多。涉及孔的类型直接写through hole for M4, 4.5mm diameter或者counterbore for M4 socket head cap screw, counterbore diameter 8mm, depth 5mm把每个参数都钉死。工程上本来就是这样沟通的写 prompt 也一样信息密度决定模型下限。5.4 生成时间、限流和成本怎么平衡用在线 text-to-cad 服务你还得面对时间成本和费用问题。免费档的生成速度通常比较慢高峰期可能要排队一次生成几十秒到几分钟不等做批量生成或者接 API 的时候费用会随调用次数上涨。如果你是做方案预研每天生成十个八个免费档够用了要是想大规模铺开就得认真核算单位模型成本。我的建议是把工具分成两档用轻量需求走在线免费服务比如快速看结构概念批量、重复性高的场景用本地开源的方案跑。开源的 CadQuery 配合大模型接口你可以自己搭一个简化版 text-to-cad 流程写一个 prompt 模板让模型输出 CadQuery 代码本地执行导出 STEP。前期搭建成本不高后面每次生成几乎零边际费用而且脚本完全自己掌控不怕限流。对于个人开发者和小团队来说这是一条性价比很高的路。6. 实际操作中的几点心得用了一段时间 text-to-cad我的感受是这个工具目前最合适的定位是设计前端的加速器而不是替你完成全部设计的黑盒。它真正擅长的是把那些你已经想清楚、但手工建模浪费时间的标准件、简单结构件快速落地它还不擅长的是复杂的装配逻辑、严苛的公差分配、以及那些需要多年工程经验才能拍板的细节决策。所以我的工作流一直是先用文字把想法描述出来让 text-to-cad 出一版草模再把它导入 CAD 里做细化和验证。实测下来一个简单支架从想法到能用的 STEP 文件时间能压缩到原来手工建模的三分之一左右。最后再分享一个我个人的小技巧维护一个自己的 prompt 模板库。把你经常生成的那几类零件——法兰、支架、外壳、底板——的 prompt 模板全部存下来尺寸参数留成占位符。下次要出同类模型复制模板、改几个数字、生成完事连组织语言的时间都省了。这个小习惯看着不起眼但在频繁出图的日子里面每天能帮你省下不少心力也更不容易在单位、孔数这些细节上出错。text-to-cad 这个方向还在快速演进但不管底层模型怎么换这个模板化 快速验证的用法我觉得是长期适用的。
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。