ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

实测text-to-cad:一句话生成可编辑CAD模型,工作流与翻车指南

实测text-to-cad:一句话生成可编辑CAD模型,工作流与翻车指南 搜“text-to-cad”的时候我第一反应是又一个蹭AI热度的玩具——输入一句话就生成三维模型听起来跟当年“输入一句描述就生成网站”的噱头差不多。直到我在社区看到有人用一句话生成了一个带安装孔的电机法兰盘导出的STEP文件在SolidWorks里打开特征树干干净净还能直接改参数。那一刻我意识到这事不太一样了。这篇文章不聊概念把我实际从头到尾玩了一圈的过程记录下来它到底怎么工作的、生成质量到什么水平、哪些prompt必定翻车、以及作为工程师和设计师怎么把这东西真正嵌进现有工作流。如果你也在观望要不要用、怎么用这篇应该能给你省不少试错时间。1. text-to-cad到底改变了什么从“画图”到“对话”1.1 传统建模流程的隐性成本先看传统CAD建模一条简单的路你想画一个带圆角的矩形底座上面竖一根空心圆柱。打开软件新建零件选草图平面画矩形、标尺寸、加约束、拉伸、再画圆、再拉伸、选抽壳、选圆角边……熟练的人五分钟能搞定不熟练的人可能得半小时。但真正的成本不在操作本身在于“把脑子里那个形状翻译成软件能听懂的操作序列”这个过程。这个翻译过程是需要训练的。你得知道该用旋转还是拉伸、该用什么基准面、草图要封闭、倒角要放在抽壳前还是后。这本质上是一种“空间操作语法”。text-to-cad直接跳过了这一层你把最终形状用语言说清楚它来帮你做这个翻译。它没取代CAD软件它取代的是“建模思维”的门槛。1.2 它不是文生图它生成的是“能用的模型”这里要跟Midjourney那类文生图做个明确区分。文生图生成的是像素矩阵你没法旋转、测量、标注尺寸更没法拿去加工。text-to-cad要生成的是真正意义上的CAD模型——有几何拓扑、有特征树、有参数约束、可以导出STEP或STL去做CAM或3D打印。我见过很多第一次接触的人有个误解以为它是生成一张“看着像3D的图片”。我最初也这么以为。实际上你拿到的是一份带工程语义的结构化文件。举个直接体现差异的例子同一个prompt“一个半径25mm、高60mm的圆柱体”文生图给你的是一张光影效果不错的渲染图但图片里那个圆柱是不是精确的R25无从考证。text-to-cad给你的文件里标注清清楚楚模型树里能看到一个拉伸特征草图上标着Φ50和60这个是可测量的、可编辑的、可以被后续工序直接使用的。1.3 不同工具的路线差异现在市面上的text-to-cad工具不止一个走的路线也不完全一样。我实测下来大致分两类一类是云端生成完整模型的比如Zoo.dev的Text-to-CAD。它的典型流程是把你的描述变成中间代码再在云端重建出模型文件生成完导出STEP或STL。优点是上手快浏览器打开就能用不需要装环境缺点是参数可控性一般想精确控制倒角半径、壁厚这类参数对prompt的写法要求比较高。另一类是生成程序化脚本的比如LlamaCAD。它输出的是OpenSCAD、CadQuery这类参数化脚本然后你在本地跑脚本生成模型。这类方式的优势是“可复现性”极好——脚本是纯文本你可以改、可以版本管理、可以批量跑参数。缺点是得会一点代码而且最终建模能力受限于脚本库的表达上限复杂曲面基本没戏。两类不是替代关系。我的建议是追求快速出图、验证想法用第一类追求可批量、可维护、要纳入现有自动化管线用第二类。后面第五章细说。2. 模型背后的生成管线成也参数化败也参数化2.1 从一句话到一颗螺丝钉中间发生了什么如果只是把“文字”对应到“模型文件”这跟文生图没有本质区别——都是高维空间里找映射。但CAD模型不是一堆点云它有严格的拓扑约束面要闭合、边要重合、实体要水密。大模型直接输出网格数据几乎不可能满足这些约束所以目前的实现路径基本是“间接生成”。我根据实测表现和公开资料做了一个合理推断各家的管线大差不差分四步文本编码把自然语言描述编码成语义向量这一步跟常规LLM没区别。草图指令生成模型输出一系列带参数的建图元指令——画一个圆、圆心坐标是多少、半径多少画一条线、起点终点在哪。这一步相当于把语言翻译成“纸面上的铅笔动作”。特征操作生成在草图基础上生成拉伸、旋转、扫掠、倒角、抽壳等特征指令并标注特征之间的父子关系。这相当于告诉建模软件“先画底座再从底座往上拉出圆柱最后给圆柱的顶边倒角”。参数约束求解把前面生成的指令交给约束求解器和几何内核去算得到最终实体模型。其中最容易出问题的就是第三步和第四步。模型生成的“特征顺序”如果不对比如先倒角后抽壳抽壳壁厚可能直接穿透倒角面如果约束条件给得不全——比如漏了“同轴”“相切”几何内核就可能解出一个扭曲体。所以你经常看到一些翻车案例生成结果是个“仿佛有那个意思但完全不对”的畸形体根因多半就是特征顺序或约束求解失败。2.2 为什么“生成脚本”比“直接生成网格”更聪明这里要解释一个关键选型为什么大家不干脆让AI直接输出三角网格答案在于下游可用性。三角网格STL/OBJ看起来也是三维的但它是“死”的。你想改一个孔的直径网格模型里根本没这个语义你得重新建模。而脚本或特征历史不同它保留了“当时是怎么建模的”完整记录。这就好比给你一盘做好的菜和一个写了完整步骤的菜谱。菜只能吃不能改但有菜谱你随时可以调整口味、换食材、重新做一份。对工程师来说可编辑性比建模速度重要得多。我拿到一个AI生成的法兰盘STEP第一件事不是看外形像不像而是打开特征树检查它是不是用旋转特征做的孔是不是阵列特征如果是我改一下法兰厚度四个孔会跟着自动移动。如果是死网格改个孔位等于重新画一遍。所以各家都在往“生成参数化特征历史”这个方向使劲这不是技术洁癖是下游工业流程的真需求。2.3 那些没人告诉你但必须知道的隐含规则实际跑下来我发现模型对口述的“工程语言”理解有限但有几类隐含规则它学得还不错默认单位是毫米。你只说“半径5”没带单位它默认是5mm。对称性词敏感“对称”“阵列”“等距”这类词触发约束布局非常准。倒角/圆角这类修饰性特征如果prompt里没明确给数值模型倾向于给一个看着协调的默认值但往往跟你的实际意图不符。它无法真正理解“壁厚均匀”这类铸造/注塑工艺语言。你嘴上说“壁厚均匀”它不一定真的给你抽壳你得明确说“厚度2mm”。这些不是官方文档写的是反复试出来的规律。想让输出靠谱描述里必须把“形状、尺寸、特征、修饰”拆开给缺一项就默认发挥而默认发挥通常是灾难现场。3. 实测全流程从一句描述到可编辑模型3.1 工具准备与首次尝试我用的工具是Zoo.dev的Text-to-CAD原因很简单浏览器打开即可用支持导出STEP对国内网络环境比较友好。注册之后进主界面就是一个大输入框加一个生成按钮没有复杂的参数面板。第一次生成我刻意拿了个最简单的描述试水A round base plate with a diameter of 80mm and a thickness of 5mm, with 4 holes of 6mm diameter evenly distributed on a 60mm bolt circle.大概等了十几秒页面返回一个可交互预览。我旋转看了看形状是对的80mm圆盘5mm厚四个Φ6孔均匀分布在Φ60的圆周上。导出STEP后在FreeCAD里打开特征树里能看到“草图1—拉伸1—孔阵列”这样一个结构跟人手动建模的套路几乎一致。第一次成功不代表可用接着我加大了难度。3.2 三个典型prompt与输出质量对照为了客观一点我做了三组不同复杂度的测试结果整理如下测试prompt核心描述生成结果可用程度基础拉伸件80mm圆形底座厚5mm4个均布Φ6孔生成后用于固定电机外形、尺寸、孔位全部正确孔为阵列特征可编辑直接可用中等旋转件一个外径40mm、内径30mm、高25mm的轴套在外圆面上有一圈2mm深的环形槽槽宽5mm整体形状正确环形槽深度实测约1.8mm略偏特征顺序是先旋转后切槽合理稍修尺寸可用复杂混合体一个方形外壳边长60mm高40mm壁厚2mm顶部有一个半径20mm的半球凸起底部四角各有一个M4安装柱底部安装柱只生成了两个另外两个位置被识别成孔半球凸起中心偏离了2mm不可直接使用需手动重构这个结果很有代表性越接近“基本体素组合标准特征”成功率越高一旦涉及“多个特征在同一实体上的空间关系”模型明显吃力。后面测试多个案例也印证了这个趋势。3.3 导出格式的选择逻辑平台支持导出STEP和STL。我的建议只要不是纯外观验证一律导出STEP。原因是STEP格式保存的是B-rep边界表示包含精确的几何曲面和拓扑关系。下游无论是进SolidWorks、FreeCAD、Fusion 360还是直接用CAM软件编程都能保持“可编辑”状态。STL只在一种情况下用你要立刻送去3D打印而且确定不用再改。即便如此我也建议先导出STEP在切片软件里看一眼水密性确认没有破面再转STL。实测AI生成的模型偶尔会出细小的非水密面直接打印会得到残废品。格式是否可编辑是否含特征历史适用场景STEP是含几何拓扑不含特征树工程编辑、CAM、装配STL否无纯网格3D打印外观验证F3D/Fusion原生是含完整特征树深度参数化修改虽然导出的STEP一般不带特征树但好消息是几何精度是准的。你在FreeCAD里打开STEP虽然看到的是一个“死”实体用“Part Design”重新建参考坐标系、以它为底重新做特征比重头画快得多。4. 质量边界与高频失败场景哪些话术注定翻车4.1 五个必翻车案例这一节全是花钱买来的教训。我整理了五个典型的失败prompt以及失败方式和原因分析案例一形容词堆砌prompt“做一个好看的花瓶”结果结果是能看出是花瓶但没有任何尺寸口部歪斜底部厚度只有0.3mm完全不能加工。原因模型把“好看”理解成了随机曲面抖动而不是稳定的几何比例。审美这个词对AI建模来说没有任何约束力。案例二矛盾尺寸prompt“一个圆柱形杯子直径100mm但是底是正方形的”结果生成出一个方底圆口的扭曲过渡体。原因“圆柱形”和“底是正方形”在拓扑上不可同时成立模型没有能力判断“冲突”它只会做出一个“两边都不得罪”的畸形答案。案例三工艺级描述prompt“一个用于CNC加工的铝合金支架带加强筋”结果外形看着是个支架但加强筋壁厚5mm且与主体之间没有圆角过渡CNC实际加工会出现应力集中。原因模型不知道“CNC加工”意味着需要可加工性约束它只能理解看得见的几何特征理解不了“工艺合理性”。案例四复杂装配关系prompt“两个零件装配在一起后能互相转动”结果只生成了两个零件没有任何装配约束和运动副关系放一起是悬浮交错的。原因目前工具都是“单零件生成”对装配和运动关系几乎没有训练数据。案例五依赖参考坐标的描述prompt“在底面上距左边30mm处打一个孔”——理解简单但模型对“左边”这个相对方位经常左右颠倒因为训练数据里坐标轴方向的标注本身是混杂的。4.2 为什么这些坑如此普遍这五个案例背后其实是同一个问题大模型对几何的描述方式跟CAD软件的几何定义方式存在巨大的语义鸿沟。人描述一个零件时默认带入了“它是实体”“它有参考面”“尺寸关系是明确可解的”这些背景知识。但模型看到的是纯文本它没有“常识”可依赖。你对它说“漂亮的”“工艺合理的”它没法像人类一样补全这些概念的几何含义。反过来它对“数值”的处理倒是相对可靠因为训练数据里的工程图纸、参数化模型库都包含大量确切数值。这也是为什么“把一切可能的地方都数字化”是提高成功率的第一原则。你不能说“厚一点”你要说“厚度5mm”不能说“均匀分布”要说“角度间隔90度”。4.3 一个直接可用的prompt模板经过几十次试错我总结出一个结构化的prompt写法目前成功率明显高于自由发挥。你直接套这个模板改写就行[实体类型]一个[主体形状描述] [关键尺寸]外形XXmm × XXmm × XXmm壁厚XXmm [特征1]在[位置/面]上有[特征类型]尺寸为XXmm数量/间距为XX [特征2]…… [修饰/约束]所有棱边加R2圆角孔的中心距底面XXmm [格式要求]输出为单个实体单位mm坐标系原点在[哪个位置]举个例子一个方形法兰底座外形100mm × 100mm × 10mm 中心有一个直径30mm的通孔 四个角各有一个直径6mm的通孔孔中心距相邻边10mm 所有外棱边加R3倒角 单位mm坐标系原点在底面中心。这套模板的核心逻辑是告诉它“有什么、多大、在哪、怎么修边”而不是“做什么、像什么、好看点”。4.4 生成后快速验证的三板斧拿到结果第一件事不要盯着渲染图看。渲染图有欺骗性看起来挺像那么回事实际尺寸反了。我建议按三步验证看特征树。一个糟糕的模型通常伴随几十个冗余特征——一个简单盒子搞了十几个拉伸切除。如果特征树异常臃肿说明模型自己也在混乱中这种直接放弃重写prompt。量关键尺寸。用测量工具量外形尺寸、孔距、壁厚跟prompt里的数值逐一核对。实测至少有30%的情况有一两个尺寸存在微小偏移需要用软件里的“移动面/修改尺寸”修一下。做几何检查。导出STEP前先在预览器里做一次“质量检查”查有没有自由边、非流形边、薄面。有的话说明几何内核求解时产生了退化拓扑这种模型进CAM必出问题。5. 给实际工作流的接入建议从玩具到打工人5.1 它到底是什么角色思路速写笔不是交付绘图员先说结论现阶段text-to-cad最合适的定位是概念设计阶段的“思路速写笔”。你跟客户开会对方案口头说了半天一个带散热孔的底座客户理解的可能性跟你脑子里的图差着十万八千里。这时候你把这句描述丢进text-to-cad十几秒出一版交互式三维预览直接投屏给客户看。尺寸大概对比例大概对对方可以说“孔太大了往中间挪一点”——这个过程在以前得等你打开CAD画一个多小时才能实现同样的沟通效果。但它不适合当“交付绘图员”。它生成的东西机构精度、公差、工艺约束都不达标。不要试图让AI直接给你一份用于投产的图纸。正确的分工是AI负责把模糊想法快速变成可视模型人负责用专业能力把模型修成能落地的东西。5.2 一条亲测能跑的混合工作流我目前实际在用的流程是这样分享出来你可以直接抄用text-to-cad生成一个约70%准确度的零件初稿导出STEP。导入FreeCAD免费或SolidWorks用“从STEP导入实体”功能。以这个实体为参考重新在它身上建特征你不需要从零画草图可以直接在已有面上新建草图、用“投影实体”把原模型的轮廓投影出来再做拉伸切除。关键尺寸和配合关系全部重标一遍。存成带特征树的原生格式进工程图或CAM。这套流程的核心价值在于AI帮你跳过了“从空白画布到第一个完整轮廓”这个最磨人的阶段。工程师平均有30%-40%的建模时间花在画草图轮廓上而AI最擅长的恰恰是给你一个大致可用的轮廓。5.3 把text-to-cad变成自己工具链的一环如果你偏开发向可以进一步把这类工具集成到自动化工作里。我用过一次Zoo.dev的API做批量测试。在Python里写循环把一批prompt逐个提交拿到结果后自动转格式、自动跑尺寸校验筛出成功率。简单示意的代码逻辑如下import requests import json def generate_cad(prompt, output_formatstep): resp requests.post( https://api.zoo.dev/text-to-cad, json{prompt: prompt, output_format: output_format}, headers{Authorization: Bearer YOUR_API_KEY} ) if resp.status_code 200: return resp.content # 拿到的是文件字节流 else: return None跑批量时注意一点给自己的prompt分优先级。简单的“板状件孔组”这类成功率在八成以上适合批量。复杂的“壳体突起薄壁”这类批量跑大概率出一半废品不如人工慢慢修。批量测试的意义不在于直接得到可用模型而在于统计出哪些描述结构是稳定可复现的然后把稳定的那部分知识固化成语料模板下一次直接用。5.4 关于“AI取代建模师”这件事的看法最后说点跑偏但真实的想法。天天有人问“AI能建模了我还要学CAD吗”我试完一圈的结论是恰恰相反AI让CAD技能变得更值钱了。原因很简单AI生成的东西需要人来判断好坏、修复错误、下最后决定。你越懂建模越能识别AI生成的模型错在哪、为什么错、怎么改。一个不会CAD的人拿到一个扭曲的畸形实体只会觉得“AI真没用”一个会用CAD的人拿到同一个实体三分钟定位到问题出在特征顺序改掉重算就解决。工具没有取代技能工具淘汰的是“只会机械操作”的那部分工作而放大了“懂原理会判断”的那部分价值。text-to-cad把重复劳动接了过去空出来的时间你可以去思考更值得思考的问题——比如这个零件要承受哪些力、用什么材料、怎么加工更便宜。这些才是真正值钱的部分。我实际用了这段时间最大的感受是它改变了我跟三维几何交互的方式。过去建模是“动手”现在是“表达”。表达准确结果就准确表达含糊结果就随机。这个道理本质上也适用于人和人的沟通——只是现在你得跟一台机器讲清楚了。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进