首页 / 资讯中心 / 文章详情

Text-to-CAD实测:从AI生成到可制造模型的完整避坑指南

Text-to-CAD实测:从AI生成到可制造模型的完整避坑指南 ★ FEATURED ARTICLE
1. 一次实测我让AI生成“电机支架”导出STL后切片器直接报错最近一个月我密集试了一圈 text-to-cad 工具起因很简单工作室里要做一个电机支架形状不复杂但我懒得从头画一遍参数。于是我想试试最偷懒的方式——用一句话让AI直接生成CAD模型。我当时输入的提示词是“一个L型电机支架底板长90mm、宽60mm、厚度3mm底板四角有四个直径4.2mm的通孔立板高50mm立板顶端有一个直径30mm的半圆开口。”工具在十几秒里给了一个看起来相当像样的模型。透视图里倒角圆滑、孔位对称渲染出来甚至有点工业设计感。我心想text-to-cad 这事儿看来真的能用了。然后我导出STL拖进切片器打脸来得非常快模型直接报“非流形实体”修复之后我再量了一下关键尺寸四个孔实际直径只有3.7mm底板厚度从3mm变成了2.1mm立板与底板的连接处还有一段肉眼几乎看不出来的间隙。这正是 text-to-cad 目前最真实的写照它能生成“看起来对的模型”但离“可以直接制造的零件”还差着几何约束、尺寸精度、拓扑完整性和制造工艺常识这四道坎。这篇文章我不想做概念搬运就把自己踩过的坑、验证过的工具路线、以及现在真正在用的工作流完整写出来。你要是正准备入坑 text-to-cad照着走能少走不少弯路。先说结论现在的 text-to-cad 更适合做概念验证、非标件初稿、备件还原、以及把“脑子里的形状”快速变成“可编辑的参数化脚本”而不是直接交付生产图纸。原因后面会展开。2. 从根上理解 text-to-cad它不是“3D文生图”而是“可制造几何的翻译器”2.1 你以为在生成模型其实在翻译约束很多人第一次玩 text-to-cad 时会把它理解为“立体版的文生图”——输入描述输出三维模型。这个理解不算错但非常误导人。文生图输出的是像素矩阵像素本身没有“可测量”“可装配”“可受力”的属性。AI画出来的图像哪怕手指数错了只要整体氛围对人眼照样接受。但 CAD 模型不是像素它是边界表示B-rep、特征树、参数化历史、装配约束的集合。一个完整的CAD模型必须回答这些问题这个面是平面还是曲面边界在哪这个孔的中心坐标是多少直径公差几级这个倒角是 R1 还是 R3两个零件装配时配合面之间是间隙配合还是过盈配合模型中是否存在零厚度边、自相交曲面、非流形顶点所以 text-to-cad 真正的难点不是“理解自然语言”而是把自然语言转换成一套无歧义、可测量、可编辑、可制造的几何描述。语言是模糊的几何是精确的这个鸿沟才是所有工具目前都在挣扎的地方。2.2 为什么“直接输出网格”会让你后面很难受目前大多数 text-to-cad 工具比如一些基于扩散模型的工业预览工具输出的是三角网格mesh。网格本质上是一堆三角形拼出来的外壳它看起来像实体但只是一个空心壳。切片软件能把网格转成打印路径但前提是网格必须是流形manifold、水密watertight、法线一致。这个问题在我第一次实测时直接暴露了。网格模型还面临一个更尴尬的问题不可参数化编辑。你想把孔从直径4mm改成6mm在参数化CAD里改一个数字就行在网格模型里你可能要把孔周围几百个三角形全部重做。这就像你拿到一张照片想改变照片里人物的笑容只能靠修图而CAD里的做法是直接回去改驱动参数。所以 text-to-cad 要从玩具变成工具关键不在于“生成得多像”而在于“生成的东西能不能被继续编辑、被制造系统理解”。2.3 一个最小可复现的体验流程帮助你快速建立直觉如果你想在十分钟内建立对 text-to-cad 的真实感知我建议跑一个最小流程不要只盯着渲染图看随便用一个 text-to-cad 工具输入一个带明确尺寸的描述比如“外径30mm、内径20mm、高度5mm的圆环垫片”。拿到输出后不要看渲染图直接导出 STL。用 Blender 的 3D-Print Toolbox 插件跑一次“非流形边检查”。再把模型导入 FreeCAD用测量工具量一下内外径和高度。把实际测量值和提示词里的目标值对比。我敢说你一定会发现偏差。这不是某个工具的问题而是整个生成范式的现状自然语言模型的 token 预测和 CAD 内核的数学精度本质上不是一个评价体系。理解这一点你就不会对任何“一句话生成零件”的宣传全盘相信也不会彻底否定这条路而是会学会在合适的环节使用它。3. 主流实现路线与代表性工具哪条路最接近“真的能造”3.1 文本到参数化脚本目前最“CAD原生”的路线我实测下来最靠谱的路线不是让AI直接生成网格体而是让AI生成参数化脚本最常见的是 OpenSCAD 和 CadQuery。这类脚本的本质是“用代码描述建模过程”比如定义圆柱、做差集、加圆角。输出的是真正的几何内核结果尺寸精确到小数点后若干位而且可以随意改参数重新生成。举个例子我曾经让 text-to-cad 工具生成一个法兰盘描述是“直径80mm、厚度10mm的圆盘中心直径30mm通孔六个直径6.5mm螺栓孔均匀分布在直径60mm的分度圆上”。工具给出一段 OpenSCAD 代码简化后大概是这个意思$fn 64; difference() { cylinder(h 10, d 80); // 法兰外圆 cylinder(h 10.2, d 30); // 中心通孔略高于本体确保贯穿 for (i [0:5]) { // 六个螺栓孔均布 rotate(i * 60) translate([30, 0, 0]) cylinder(h 10.4, d 6.5); } }这段代码生成后放到 OpenSCAD 里直接 F6 渲染导出 STL 就能切片打印。尺寸完全精确没有任何破面问题。为什么这条路最稳因为它没有绕开CAD内核而是把自然语言先翻译成了建模指令真正执行建模的仍然是传统几何内核生成结果自然满足可测量、可编辑、可参数化的要求。这条路的问题是AI 对复杂几何的理解能力不足。你说“圆角过渡”“减重槽”“加强筋”它可能生成一堆代码布尔运算结果却是空壳或报错。而且 OpenSCAD/CadQuery 的表达能力被“参数化特征”限制很难描述复杂的自由曲面——比如一个符合人体工学的鼠标外壳。这种形状代码生成路线基本无能为力。3.2 文本到三角网格视觉惊艳但工程属性弱第二条路线更出名典型代表是 OpenAI 的 Shape-E、Point-E以及一批商业化的 AI 建模工具。这类工具通常用扩散模型在三维隐式表示上做去噪或者从文本 embedding 直接回归出网格。它们的优势是自由曲面、复杂形态、风格化造型都能生成视觉上非常接近“你心里想的样子”。但工程上的坑也很实在。我测试过这类工具生成的小零件普遍存在以下问题网格不是水密的存在开口边或非流形边表面细节虽然丰富但没有任何尺寸基准你无法确定某个特征是10mm还是10像素没有特征树后续改图基本等于重新建模当模型经过自动修复后体积和壁厚会发生不可控的偏移。所以我给这类工具的角色定位是“灵感生成器”和“视觉方案探索器”适合放在设计前期不适合直接往下游的制造环节丢。3.3 面向工业场景的 B-rep 生成方向对了但还很早第三条路线是直接生成 B-rep边界表示也就是 CAD 软件内部真正使用的实体表示。比如 Autodesk 的 Project Bernini 和一些学术界的 BrepGen 工作。它们尝试让模型学习“面、边、顶点之间的拓扑关系”输出可以直接被主流 CAD 内核读取的实体。这条路线如果走通价值是革命性的因为它跳过了网格转换和曲面重构直接给你一个“正经CAD模型”。但我实际能接触到的预览版本仍然很早期能生成简单壳体、规则特征但对复杂装配、工程约束的理解还很有限。加上这类工具大多没有对外开放完整API普通用户目前很难把它纳入日常流程。我的判断是如果未来两三年内 text-to-cad 要进入制造业的正式工作流走的肯定是这条路线而不是网格路线。3.4 怎么选型一张表说清楚我把三条路线整理成了下面这个对比表方便你根据自己的场景直接选实现路线输出形式尺寸精度可编辑性制造可用性典型场景LLM 参数化脚本OpenSCAD/CadQuery代码高由CAD内核保证极好改参数即可高规则机械零件、非标件、备件扩散模型 网格生成STL/OBJ网格低依赖随机采样几乎无法编辑低需大量修复概念设计、灵感探索、外观展示B-rep 生成模型实体模型中等仍不稳定较好接近原生CAD中等早期工业设计、结构件初稿一句话总结我的实测体验如果你的需求是“快速得到一个能加工的规则零件”优先选代码生成路线如果你的需求是“看看某个奇形怪状的东西长什么样”那网格路线更合适至于 B-rep 生成保持关注暂时别把它当成主力工具。4. 我把一句话变成可制造模型的全流程以及每步翻车的地方4.1 提示词工程请描述几何而不是描述外观很多人玩 text-to-cad 生成的模型没法用问题一半出在提示词。AI 不是设计师它不会替你脑补“合理的工业结构”。你写“帮我画一个漂亮的变速箱外壳比较圆润”它只能凭训练数据里相似图片的平均值随便捏一个出来的东西你当然没法用。我总结了一套提示词写法规矩核心原则是用工程语言描述几何用数字代替形容词。先看反面例子“帮我做一个好看的遥控器外壳。”再看正面例子“生成一个遥控器外壳主体整体长150mm、宽55mm、高18mm壁厚2mm顶面有一个长80mm、宽30mm、深度1.5mm的凹陷区域用于放置按键底部四角有四个直径3.2mm的沉头螺丝孔侧面预留一个直径8mm的充电口圆孔。”差别非常明显。前者全是主观感受词没有量纲AI 只能用“平均数”来猜后者每个特征都有绝对尺寸和位置关系AI 不需要猜只需要执行。再给一个可以直接套用的模板零件类别和整体形态块状、回转体、壳体、钣金件。整体尺寸长、宽、高尽量写绝对数值单位用mm。关键特征孔、槽、凸台、加强筋、圆角每个都给出相对位置。配合关系如果有装配需求写明“直径10mm轴孔配合”“M3螺纹孔”等。制造工艺意图说明这是FDM打印、CNC加工还是注塑件AI会因此调整壁厚和细节比例。关键词方面尽量少用“漂亮”“圆润”“流畅”多用“对称”“等距”“垂直”“同心”“贯穿”“均匀分布”。后者才是几何约束词前者只是审美形容词。4.2 从提示词到成品的完整链路三条路径各有各的翻车方式把提示词转换成可制造模型我实际走通过三条链路每一条都踩过坑。链路一提示词 → 参数化脚本 → CAD预览 → 切片。这是最稳的一条但翻车点在“AI 写代码的细节”。它经常把变量名写混比如d130定义的是内径后面布尔减除时却用了d2或者忘了给孔增加贯穿余量导致孔底部留了一层薄壁。解决方案是拿到代码先别急着导出用 OpenSCAD 或 FreeCAD 打开逐个特征检查确认布尔运算对象都正确再导出。链路二提示词 → 网格直接生成 → 修复 → 切片。这条路看起来很爽实际每一步都在救火。网格生成后第一件事是用 MeshLab 或 Blender 的 3D-Print Toolbox 做检查你会发现大量非流形边、零厚度面、内部孤立片体。Blender 的自动修复能处理一部分但处理完后的尺寸通常会漂移。有一次我修复一个“直径20mm的圆柱”修复完成后实际直径变成了19.4mm。原因很简单自动修复是通过移动顶点、坍缩三角形来实现的这个过程不会参考你的原始尺寸要求。链路三提示词 → B-rep 生成预览 → 导出 → 兼容性处理。这条路目前最容易出问题的地方在格式转换。生成器输出的原生产物在自家预览器里没问题一导出 STEP 或 IGES放到其他软件里就会出现面丢失、拓扑错误。我的建议是如果工具允许优先导出 STEP 而不是 STL因为 STEP 保留的是几何表面信息后续补救空间更大。4.3 尺寸校验千万别相信生成界面上的数字这是 text-to-cad 目前最坑的一点很多工具界面上会显示一个“尺寸标注”看上去好像模型是照着这个尺寸生成的但那个数字很可能只是图形推断出来的渲染值并不是模型的实际几何值。我吃过两次亏。第一次是我让AI生成一个内径20mm的轴承座界面上清清楚楚写着“内径20.00mm”我直接按这个值设计了配合轴结果装配时轴塞不进去一量实际内径只有19.2mm。第二次是壁厚界面上标注“壁厚3mm”切片后发现实际只有2.4mm。从那以后我把“模型内部实际测量值”定为唯一标准。凡是进到打印流程的模型必定会在 FreeCAD 里做一次布尔剖切或者距离测量用实测结果反向修正参数。这不是对工具的不信任而是对几何精度这个问题的基本尊重。如果你不想每次生成后都手动测量另一个办法是走可参数化脚本路线把关键尺寸全部写成变量在脚本里定义inner_diameter 20.0生成结果就是 20.0000mm因为 CAD 内核不会对着这个数字打折扣。这是目前唯一能真正做到“字面上的尺寸就是实际尺寸”的方式。4.4 修复工具的真实能力边界遇到网格破损时我常用的工具是 Blender 的 3D-Print Toolbox 和 MeshLab。这两个工具能自动处理“非流形边”“内部面”“零厚片”等常见问题但你要对修复结果保持怀疑。自动修复的本质是局部拓扑修正它不会理解“这里原本是一个圆柱孔”这样的语义信息有可能为了闭合网格而把孔洞填掉或者把一条 90 度棱边改成了扭曲面。我的经验是修复之前先备份原文件。修复后做三件事——检查特征是否还在、测量关键尺寸是否漂移、做一次“切片预览”确认内部没有悬空面。如果你发现修复后的模型只需要改个小细节就能用与其在网格上死磕不如换思路参照这个网格的形状用参数化脚本重新建一个干净模型。听起来费劲但往往比修网格更快而且后面改尺寸自由得多。5. 为什么生成式建模离“自动设计”还差着硬三坎5.1 第一道坎几何拓扑的完整性与水密性前面多次提到流形和水密这里我把这层窗户纸捅破。一个“可打印/可加工”的实体模型理想状态下必须满足每条边恰好被两个面共享每个顶点周围的面形成一个连续的伞状结构模型整体是一个封闭的壳。只要出现一条边只被一个面共享切片软件就无法判断“哪里是内部、哪里是外部”。扩散类生成模型的本质是从噪声中采样几何分布它对拓扑没有任何先验约束所以生成结果出现裂缝、悬面、自相交是必然的反而是小概率事件。这就是为什么我把“生成后先查流形”写成了固定动作。工业软件里那些看起来平平无奇的模型背后都是几十年几何内核的积累生成式模型要想在这方面追平不是堆数据就能解决的需要在模型架构里内置拓扑约束。5.2 第二道坎制造工艺常识没有被建模即便模型在数学上是完美的实体离“能造”还差十万八千里。不同制造工艺对几何有不同的硬性要求FDM打印超过45度的悬垂面基本要加支撑支撑结构和接触面处理会影响表面质量CNC切削内直角需要圆角过渡否则刀具进不去深腔加工还要考虑刀具长度注塑成型壁厚尽量均匀避免缩水脱模方向需要拔模角否则零件卡死在模具里。现在的 text-to-cad 工具几乎全部不关心这些工艺规则。你让它生成一个“外观好看的盒子”它不会自动加拔模角也不会考虑打印时悬垂面积你让它生成“可CNC加工的支架”它不会自动给内角加R角。也就是说目前的模型只理解几何语义不理解“制造语义”。这个差距比拓扑问题还要难填因为工艺知识是高度分散、经验性的很难做成干净的训练语料。5.3 第三道坎装配体与系统级约束单个零件生成已经很难了但实际工程中更常见的是装配体一个设计里有十几个零件彼此有配合关系、运动关系、层级关系。text-to-cad 目前基本不具备这个能力。它能生成一个“齿轮”但无法生成“两个啮合齿轮的轴向距离与中心距”它能生成一个“外壳”但无法保证外壳内部空间正好放下指定的电路板。我尝试过让AI生成“一个轴承座装配体包含底座、轴承位、端盖和四个螺栓”结果它只是把零件摆在了一个类似的位置上配合面之间没有实际约束公差更是完全不存在。这说明生成式模型目前更擅长“形状生成”而不是“工程设计”。工程设计本质上是一个约束求解过程而现阶段的 text-to-cad 更像一个“无约束生成器”。要突破这第三道坎可能不是纯模型结构的问题而是整个范式要朝着“约束求解 生成”的方向融合。5.4 还有一个隐藏问题训练数据的质量与标注最后一个容易被忽视的问题是数据。text-to-cad 模型训练依赖大量“文本-3D模型”配对数据但真正高质量、带完整特征树、带制造信息、带装配关系的CAD数据大部分掌握在商业软件厂商和企业手里公开数据极度匮乏。网络上能抓取到的大量模型是渲染用的网格体用来训练视觉生成够用用来训练制造级CAD模型显然不够。这解释了为什么目前工具的视觉效果越来越好但工程可用性进步缓慢——因为数据本身的工程含金量就不高。6. 我现在真正在用的 text-to-cad 工作流以及给入坑者的建议6.1 我目前的主力工作流踩过足够多的坑后我现在的流程收敛成了一个相对固定、高成功率的方式先用 text-to-cad 工具代码生成路线拿到 OpenSCAD/CadQuery 脚本这一阶段只求一个“形状方向正确”的骨架。手动提取关键变量长度、宽度、高度、孔径、孔距、壁厚全部改成带默认值的参数比如flange_thickness 10.0。放进 OpenSCAD 或 FreeCAD 里跑一次预览对照“提示词原件”逐特征核对重点看布尔运算是否完整、贯穿孔是否真的贯穿。需要外形微调时直接改参数而不改代码结构。如果AI生成的代码结构太混乱我会让它先注释清楚每个 block 的作用再逐步修正。确认无误后导出 STL 或 3MF进入切片软件。打印第一版后用卡尺实测关键尺寸把误差回填到脚本参数里生成第二版。这套流程看起来还是在做CAD但AI承担了“把语言转化成初始特征树”这个最耗时间的环节我只需要检查和调参。实测下来一个规则非标件的建模时间从原来的二三十分钟缩短到五到十分钟而且质量可控。6.2 哪些场景值得用哪些场景千万别用我自己的判断是text-to-cad 现在很适合三类场景——非标零件快速初稿、缺失备件的翻版还原、设计前期的形态探索。这三类场景的共同特点是容错率高、以形状为主、后续还有充分的修改空间。反过来三类场景我建议谨慎使用甚至别用有精密公差配合的传动件、要承载结构力的承力件、以及需要合规认证的批量产品。这些场景里一个孔的直径差 0.2mm都可能让整个设计报废而 text-to-cad 目前给不了这种级别的确定性。6.3 给想入坑的人三个建议第一先在本机装好 FreeCAD 和 OpenSCAD这两个工具免费且足够用来校验任何 text-to-cad 输出。很多平台生成的模型你在网页上看不出问题只有放进离线CAD环境里跑一遍测量和布尔运算才能看清真面目。第二不要一上来就追求“全自动生成”先用“提示词 → 脚本 → 手工调参”的半自动流程积累手感。你会慢慢理解哪些描述词对AI有效、哪些是废话这种理解会直接提高生成成功率。第三给自己建立一套“关键尺寸核对清单”包括孔径、中心距、壁厚、配合面平面度、螺纹孔位置。每次拿到生成结果按清单量一遍再决定是否进入下游。这个习惯救过我很多次。最后再分享一个小经验如果你想让 text-to-cad 生成真正能用的模型最重要的不是把提示词写得更长、更华丽而是把它写得更“无聊”。去掉所有形容词只留下数值、位置、方向、对称关系和数量。越无聊的提示词生成的模型越可靠。这个反直觉的现象可能恰恰说明了现在生成式AI对“工程语言”的理解程度——它擅长模仿形状的平均值但只有你给它精确的约束它才有机会做一个合格的执行者。
阅读完成 · 觉得有帮助?
咨询建站