Text-to-CAD实战指南:从提示词到可用模型的完整工作流
上个月有个项目让我重新审视了text-to-cad这一类工具。老板丢过来一句话客户想要一个能放三节18650电池、带Type-C接口的便携充电宝外壳先出个结构方案。以前这种需求意味着我要先纠结塑胶还是钣金画草图、拉实体、修圆角整整大半个晚上。这次我抱着试试看的心态把这句话原封不动敲进text-to-cad工具里十几秒后引擎生成了一版带电池仓、接口槽和壳体轮廓的STEP文件。虽然尺寸离可用还差得远但作为概念阶段的形态沟通它已经足够让团队开第一次评审了。text-to-cad直白讲就是用文本描述一个零件或产品让算法替你生成CAD模型。听起来很像文生图但工程领域对它的期待完全不同我们需要的是能进装配体、能出工程图、能送CAM的实体而不是一张好看的渲染图。这篇文章我从实际使用者的角度把前后试过的几个主流方案、踩过的坑、以及最终沉淀下来的工作流一次讲清楚。适合三类人看想提高概念设计效率的机械和结构工程师想把AI接进自家设计流程的开发者以及被AI要替代CAD这类说法搞得很焦虑的管理者。看完你会明白这东西的边界到底在哪以及它现在究竟能帮你省下多少时间。1. Text-to-CAD不是文字变模型那么简单——先搞懂输出什么才是关键1.1 生成图片人人都懂生成CAD为什么难文生图为什么看似简单因为在像素网格里多一个像素少一个像素不影响语义图还是那张图但CAD模型是精确的边界表示一个面差0.01毫米都可能导致装配干涉。两者难度完全不在一个量级。从技术底层看一个真正可用的CAD实体必须满足几件事几何闭合所有面构成封闭实体不能有悬空边、非流形边、尺寸明确长宽高、孔径、圆角半径都是精确数值不是大概这么大、特征语义正确孔、槽、圆角、拔模角这些工程特征直接关系到之后能不能加工、怎么加工、以及可编辑性用户要能改壁厚、改孔位而不是只能看。当前的文本生成图像算法几乎不关心任何一条生成的图片哪怕透视错误都能被接受但CAD里没有艺术风格这种说法。所以业界做text-to-cad的路线很少直接让大模型去画一个实体而是让模型在受限的CAD表征空间里生成。要么生成一段建模程序要么生成一组边界曲面要么生成一份特征操作序列。理解了这一点你就明白为什么这个领域进展比文生图慢得多——它不是换个数据域那么简单而是从模糊的视觉相似切换到了精确的工程约束整个优化的目标函数都变了。1.2 输出类型决定一切B-rep实体、网格、脚本、参数化特征树我在评估一个text-to-cad方案时第一个要问的问题永远是它到底输出什么因为输出形式决定了整个下游流程比模型多大、推理多快都重要。目前市面上能看到的主要是四种输出路线原生化B-rep实体STEP/IGES工业可用能直接导入主流CAD/CAM缺点是很多实现丢弃了特征历史改尺寸基本等于重新生成。可执行脚本CadQuery/Python/OpenSCAD模型生成的是代码执行后得到实体。最大价值是参数化可编辑缺点受建模库能力限制复杂曲面很容易写崩。网格模型STL/OBJ/GLB3D打印、渲染、游戏没问题但要转回参数化CAD非常痛苦逆向工程成本高做CNC更是灾难。检索加参数调整先在数据库里找到相似模型再按文本描述修改尺寸速度快但泛化能力弱遇到没见过的东西直接哑火。我把这几种输出列成一张表方便对照输出类型工业精度可编辑性制造对接典型代表B-rep/STEP实体高低无历史高Zoo Text-to-CAD、Autodesk版本CAD脚本高高高CadQuery、OpenSCAD生成类方案网格模型中低中TRELLIS、各类文生3D工具检索加改参中中低较早期的学术方案别小看这个区别。我见过不少朋友用文生3D工具导出STL然后直接把STL扔给CNC加工结果就是好看不能加工。因为网格模型没有真正的平面、圆柱面、圆孔特征定义刀路根本算不准图纸标注也标注不出来。搞清输出形式再决定工具选型这是你接触text-to-cad之后最值得花时间的一步。2. 我把主流方案都试了一遍实测表现和翻车现场2.1 Zoo和Autodesk的两个版本玩起来差别很大我第一个试的是Zoo开源的Text-to-CAD。它主打从文本和参考图生成完整的STEP B-rep模型生成结果在几何完整度上给我留下很深的印象。同一个提示词生成的零件面与面闭合得很干净很少出现破面但它给的是最终形态没有留下完整的建模步骤你想改一个圆角半径等于要重新描述一遍需求再生成一次。Autodesk Research放出的版本则是另一条思路。它更强调把文本映射到一组CAD建模操作序列先拉伸、再切槽、再打孔。从公开资料和演示来看它训练数据来自大量带参数量产模型生成结果更贴近设计人员建模时的思维顺序至少看起来多了点懂制造的味道。缺点是推理链路复杂本地部署成本高而且对提示词的语法敏感度更明显措辞稍变结果就飘。两版我都跑了大量测试。简单说如果目标是拿到一个可以立刻丢进装配体的单一整体Zoo风格更顺手如果目标是拿到模型状态继续自己改CadQuery/OpenSCAD这类生成程序化模型的方案上限更高。别指望一个工具覆盖所有需求现阶段它们各自强项完全不同。2.2 本地部署与在线体验别被显存和依赖环境劝退在线版的好处是零门槛适合验证想法。坏处是额度有限、排队时间长、模型版本是个黑盒你根本不知道线上跑的是哪一版权重、有没有偷偷换过。我建议真正想把这套工具接进工作流的至少试一次本地部署。拿开源权重来说大多数方案需要至少一块24GB显存的消费级显卡才能跑出像样的结果。我自己的实践是先用在线Demo确认某个模型能输出我需要的格式再在本地拉权重做批量验证。本地部署时最值得注意的不是推理代码本身而是依赖环境OpenCascade相关库、Python版本、CUDA编译版本任何一个不匹配都能浪费你大半天。如果你只是想在个人电脑上试试我建议直接用Docker镜像装好现成环境别为了跑个生成模型把日常开发环境搞坏。这里多说一句本地跑通开源模型不等于它就能用。很多开源版本的训练数据偏学术对M3螺纹孔拔模角沉头孔这类工程语义的理解能力明显弱于商业版。我的建议是本地版本用来做批量验证和私有数据微调重要零件宁可从零画也不要被一个看似合理的生成模型误导。2.3 同一个提示词四个工具的生成结果对比为了测试语义理解能力我固定了一个提示词一个边长40mm的方形塑料盒壁厚2mm底部有四个均匀分布的M3安装孔内壁四条竖加强筋。分别丢给四个不同实现结果差异非常大。Zoo的Text-to-CAD生成了完整盒体B-rep四个孔的位置基本准确加强筋做出来了但壁厚被翻译成外部轮廓特征内部空腔形态接近却没有任何特征历史改壁厚只能重建。CadQuery程序生成方案里脚本结构非常理想所有尺寸都变成变量出现我改一处壁厚整个模型自动更新不过加强筋是直线拉伸而成没有自动倒圆角形状偏功能件那种直愣愣的感觉。某在线文生3D工具输出的是STL网格看起来是个盒子但开口方向反了边角的孔变成凹陷不穿透一看就无法用于装配。Autodesk版本生成了建模步骤有四条特征记录但对M3这种标准件语义掌握得一般有时会把通孔识别成沉孔。这个对比给我的结论很明确不要指望任何单一工具全知全能。text-to-cad目前的强项是建立概念形态加识别基础特征弱项是掌握工程语义和制造约束。你用哪个工具取决于你的下游是要做评审、打印还是量产而不是看谁的演示视频更炫。3. 从提示词到实体特征中间到底发生了什么3.1 LLM把语言翻译成CAD建模API调用很多text-to-cad模型看似在生成模型实际是在生成建模指令。以CadQuery为例底层是一系列Python对象上的建模操作Workplane.box()拉一个立方体faces().hole()在面上打孔edges().fillet()倒圆角。模型的任务就是把自然语言里的孔、槽、加强筋、圆角映射成这些API调用。这个映射比看上去难得多。普通用户会说旁边留个缝孔要均匀分布但API层面没有缝和均匀这两个函数模型必须自己拆解成偏移坐标系、计算间距、循环打孔等具体步骤。模型能走多远取决于训练语料里有多少种语言到操作序列的配对。配一个最简单的真实示例。给模型的提示词是一个带四个M3安装孔的方形板边长50mm孔距40mm中心对称它输出的CadQuery脚本大致长这样import cadquery as cq plate_length 50 hole_spacing 40 hole_diameter 3.2 # 这里是M3过孔直径 plate cq.Workplane(XY).box(plate_length, plate_length, 3, centeredTrue) holes ( plate.faces(Z) .workplane() .rect(hole_spacing, hole_spacing, forConstructionTrue) .vertices() .hole(hole_diameter) )拿到这段代码你改一个hole_spacing就能重建出新的孔位这就是text-to-cad真正让人上头的地方——它不是生成一张不可变的图而是生成一个你随时可以捏的参数模型。但注意代码里M3的过孔直径其实是3.2mm螺纹底孔则是2.5mm如果提示词没写清楚这是过孔还是螺纹孔AI很可能猜错。这就是后面要讲的工程语义问题。3.2 约束求解与尺寸兜底模型怎么处理模糊描述文本里真正棘手的其实不是方盒螺栓这类名词而是大一点配得上壁厚2毫米这种量化和相对关系的表达。实测下来主流模型对明确数值的遵循度尚可对模糊量词的判断基本靠训练数据里的先验概率。举个例子你写能放一节18650电池的筒状外壳。一个负责任的设计师立刻知道电池直径是18.6mm高度是65.2mm留2mm装配间隙后内径至少应该做到20.6mm。但多数text-to-cad模型并不知道这些物理对象的标准尺寸它可能会给你一个内径16mm的筒看起来非常完美但电池根本塞不进去。模型自己没有任何关于18650电池的常识。解决办法是把约束写显式。你想表达能放18650电池就写内径20.5mm深66mm想表达底板上有安装孔就说四个均匀分布的孔孔间距35mm想表达边缘圆润一点就说所有外圆角半径1mm。模型解决不了物理世界常识但它能很好地执行你已经推理好的尺寸。换句话说text-to-cad适合当你画图的双手目前还不适合当你设计的脑子。这个定位想不清楚你会觉得它处处是坑想清楚了它就是一把锋利的刀。3.3 为什么可编辑脚本是最实用的输出形式这个问题我问过自己很多次既然有些工具能直接给STEP实体为什么我还这么看重脚本输出原因很简单产品设计过程的本质就是反复改参数。同一套外形壁厚要出2mm、2.5mm、3mm三个版本给不同供应商评估工艺同一块安装板孔距要适配三种标准电机客户今天说喜欢直壁明天说想要圆角。这些需求用脚本输出几分钟就能批量生成用STEP输出却意味着每个版本都要重新描述、重新生成、重新检查。脚本输出的另一个隐藏优势是可追溯性。你想知道一个孔为什么是3.2mm而不是2.5mm去看代码里的注释和变量名就能还原设计意图。这在团队协作和工程审图里有实际价值图纸上的尺寸不是凭空来的AI生成的文件更应该保留为什么。当然脚本也不是万能。复杂曲面、多实体布尔运算、大型装配用CadQuery这类库写起来极其痛苦AI也容易生成逻辑正确但实际运行报错的代码。所以我的判断是规则几何的功能件、结构件值得用脚本型text-to-cad自由曲面、外观件传统CAD自己画反而更快。4. 能用什么、不能用什么边界测试与补救手法4.1 工业件测试螺纹、孔、圆角、公差这些能搞定吗我专门拿一批典型工业特征做过测试M螺纹孔、沉头孔、定位销孔、矩形凹槽、燕尾槽、倒角、不同壁厚的壳体、带拔模角的面。结果按工程分类说比笼统喊好用或不好用更有参考价值。沉头孔、通孔、盲孔绝大多数方案能识别但沉孔直径和深度经常错提示词里写M3沉头孔和直径6.5mm沉孔结果会很不一样。螺纹基本只能生成示意性的螺旋线或者干脆忽略成光孔真正的ISO标准螺纹特征目前没有一个工具能可靠生成必须自己在CAD里调标准库。圆角和倒角提示词直接写圆角R1的遵循度比较高写边缘柔和一点则基本靠猜。拔模角极少数方案能正确理解拔模方向和角度多数会生成直壁。公差和表面粗糙度完全不要指望这属于制造语义不属于几何语义。这个结果其实符合预期。text-to-cad目前更像快速概念草模生成器而不是详细设计完成器。你可以在概念阶段大量使用但到详细设计阶段还是要把模型拉回正式CAD环境里补标注。把这个预期管理好你才不会觉得它是废物也不会被它坑到量产阶段。4.2 翻车类型盘点别指望它给你做曲面造型和装配翻了这么多车我把典型失败模式归成四类供大家对照自己踩过的坑。第一类是非流形拓扑出现悬空面、两条边交汇但平面不闭合轻则导入软件报警重则CAM刀路整体算不出来。第二类是单位与尺寸漂移提示词写50mm生成结果可能按英寸逻辑换算或者直接跑出来一个看起来像50英尺的盒子每次生成后都要检查单位。第三类是布尔运算残留多个体相互穿插但未合并导入装配体后明明看着重合干涉检查却报出复杂相交体。第四类最危险叫语义错误但形态完美外观完全符合描述但孔没有打通、卡扣方向反了、抽壳方向错了这类结果会骗过你的眼睛因为你不放大看根本发现不了。另外复杂自由曲面、A级曲面、整体薄壁件比如手机后盖这类造型任务当前方案几乎都不适合。文本语义到曲面形状的映射空间太大模型往往只能给出一个曲面形状接近但无法制造的网格。遇到这种需求老实回到传统CAD别跟它较劲。4.3 补救流程从生成模型到可用模型的微调链路我不会因为上面这些失败就放弃这个工具关键在于建立一套补救流程把AI输出当高置信度草稿而不是最终答案。我常走的处理管线是这样生成后先导入FreeCAD或你常用的CAD环境做几何检查看合并面、边缘、体量是否正常用自动修复工具拼接破面再手动检查所有孔和槽的方向接着把关键尺寸全部标注一遍用测量工具核验单位和数值然后把需要保留的实体特征重建成参数化特征树这步最花时间但完成后模型就彻底变成自己的了最后保存为标准模板后续变体在这个模板上改而不是每次都让AI重新发明轮子。如果是脚本型输出可以省掉重建参数化特征树那一步。让AI生成CadQuery代码你在代码里直接修尺寸等于保留了特征历史避免无历史STEP转特征的逆向工程过程。做过的人都知道那玩意儿比从零画一个还痛苦。我这里有一句经验AI生成一个能用的模型只要30秒但设计师检查这个模型可能花3小时。你要确保这3小时花得值就得在设计流程里设一道明确的审查岗而不是让生成结果直接流向生产。5. 把它接进真实工作流从概念设计到CAM/3D打印5.1 概念评审阶段十分钟出三个变体给客户选text-to-cad目前最值得部署的阶段我强烈认为是概念评审。以前给客户看结构方案我可能要准备一整天从草图到简单渲染现在半天能出三个风格差异明显的变体一个纯直壁方盒、一个带圆角过渡、一个加加强筋版本。评审现场把三个STEP直接拉进装配体里对比比PPT里的渲染图有说服力得多。我还试过用它做竞品结构的快速还原拿一张产品照片配合文本描述它的主要功能结构让它生成一个概念级的几何外形帮助团队快速理解竞品空间布局。结果当然不能直接当逆向工程用但在预研阶段足够开启讨论让结构、电气、外观几个方向的人能对着一个实体模型说话而不是对着空气比划。另外报价阶段也可以沾光。客户问这个件大概多大、壁厚多少、注塑能不能做时我现场生成一个概念模型直接用测量工具报出外形尺寸和壁厚估算值比口头描述可信多了。5.2 参数化链路生成脚本加尺寸变量等于快速改型如果工具输出的是CadQuery/OpenSCAD脚本那么你实际上拿到了一套参数化模型方程。这里举一个实际的例子还是那块18650充电宝的外壳电池数量从3节改成4节改一个变量就够壳长自动变化壁厚从1.5mm改成2mm内部的空腔会重算接口槽从Type-C改成Micro USB替换对应槽位的生成逻辑就行。这些改动对脚本而言是秒级的对传统重画来说是小时级的。做非标产品的朋友应该深有体会客户每一次顺便改一下传统CAD都可能要重排整个特征树而参数化脚本只是变量表里多改一行。参数化管理有一个容易踩的坑命名规范。AI生成的变量名通常没有任何工程语义比如v1、v2、val13时间一长你根本不知道哪个是壁厚哪个是孔距。我的习惯是拿到脚本之后立刻重命名所有关键参数写清楚单位再加一行注释说明初始值的依据。这样半个月后再打开这个文件你还能看懂自己在干什么。5.3 制造端对接STL切网格、STEP转工程图、公差手动标注从生成模型到制造中间还隔着几个必须人工干预的环节跳过任何一个都会在生产端炸雷。先说3D打印网格输出直接切片最省事但要注意壁厚下限。AI生成壁厚0.3mm这种主观认为很薄、对FDM机器却是灾难的参数切片预览阶段就能看出来。打印前最好在切片软件里做整体缩放确认并且检查有没有悬空面积需要加支撑。再说CNC和模具一定要用STEP而不是STL。STEP导入CAM后能直接识别孔特征生成钻孔循环STL只能当作曲面体做粗加工精度和效率都差很多。出工程图也是老规矩AI不会替你标公差和表面粗糙度这些只能手动补充。最后是坐标系问题AI输出偶尔会带不同单位标签导入时务必检查零件尺寸的实际数值它生成的面经常以xy平面为底和你习惯的视图方向不一致最好建一个统一的导入模板省得每次手动旋转。提示接生产前一定先测量模型的最小壁厚和孔径。AI生成的孔有时只是视觉凹陷并没有真的打通整个截面。6. 我的选型建议和个人经验6.1 什么场景值得用什么场景先别用用了一年左右的text-to-cad类工具我给自己整理了一张判断表每次接到新需求先对照一下。场景建议原因方案预研、概念评审放心用生成速度快形态沟通价值高标准件、简单结构件用脚本型方案参数化改型方便历史记录好维护自由曲面外观件别用语义到曲面映射太弱手工CAD更快量产级结构件谨慎用只取概念详细设计必须人工完成教学演示、快速原型放心用成本低效果直观参数化可逆性好整体的判断原则就一句话需要别人愿意看第一眼的事交给text-to-cad需要别人签字确认负责的事把控制权拿回自己手里。6.2 不同需求下的工具选择逻辑如果只是想要一张3D概念图直接上在线文生3D服务导出STL就够了别纠结STEP和特征树。如果想要一个可编辑的单一实体试试Zoo风格的开源B-rep生成器注意它没有建模历史。如果想要参数化模型、需要反复改尺寸优先找CadQuery/OpenSCAD生成类方案哪怕生成结果日常翻车只要给你代码你就有办法修。如果想要和Autodesk生态深度绑定持续关注Autodesk Research版本的后续更新它跟自家CAD产品的联动潜力最大。如果想要稳定的批量生成能力务必本地部署统一容器环境跑成熟脚本。不建议同时追太多模型。工具更新太快与其频繁切换不如选一个主用、一个备用的组合先用三个月再说。你真正需要的不是最新最强的模型而是你已经在上面踩过足够多坑、知道怎么补救的那一版。6.3 最后几条实操心得写到这里我把这一年攒下来的几条心得一并放出来算是给准备入坑的朋友的见面礼。提示词必须面向制造特征写不要面向形容词写。你写一个圆润的塑料盖不如写直径30mm、高5mm、顶部R3圆角、底部直壁的圆形塑料盖。模型对圆润的理解跟你大概率不一样但对顶部R3的理解基本准确。生成后第一件事是量尺寸不是看外形。外形正常但尺寸错乱的情况太常见了养成先测量再观察的习惯能避免后续百分之八十的麻烦。同一个提示词多跑几次。这类生成模型天然有随机性同样的描述十次里出两次好的就算走运。我通常跑十次挑一个最接近意图的再手工修正比自己从零画快很多。永远保留降级方案。如果生成结果在关键项目里拖了后腿你要有能力在短时间内从零画出同一个零件。AI是提效工具不是兜底工具。我个人的体会是把它定位成极快的草模助手而不是设计替代者项目反而推进得更顺。等哪天它能带着完整的参数特征历史、稳定输出ISO标准螺纹和公差再考虑把详细设计也交给它。在那一天到来之前概念阶段省下来的这些时间已经足够我多做几轮结构评审了。