
上个月朋友让我帮忙弄一个传感器支架微信里就甩来一句话「6061 铝L 型底边四个孔立边一个 M8 螺纹孔总高 60。」这句话放到十年前够我开软件画半小时放到现在text-to-cad 这类工具已经能把这种描述变成能编辑的 CAD 模型。我自己用这类工具也有小半年了摸过云端生成器也折腾过本地用大模型生成 CadQuery 代码总体感受是它确实不是魔法但作为一个「草图加速器」是真的香。这篇就把我踩过的路、试过的坑、能直接上手的流程一起写出来给想入坑的朋友做个参考。1. 先说重点text-to-cad 现在到底能干什么、不能干什么text-to-cad 字面理解很简单输入自然语言输出 CAD 模型。但真正落地的时候各家做的事差别非常大。有的输出的是 STL 网格适合渲染和 3D 打印有的输出带参数特征的实体模型能在 CAD 里继续编辑还有的根本不直接出模型而是生成一段 CadQuery 或 OpenSCAD 代码靠代码再生模型。你如果不先把「自己到底需要哪种输出」想清楚后面大概率会被生成结果气到。1.1 它能干的概念模型、标准件类零件、可编辑的半成品从我实际用下来的情况看text-to-cad 最擅长的是那些「结构特征明确、形状不算复杂」的东西。比如各种支架、底座、连接板、角码这类钣金或机加件带法兰、带凸台、带阵列孔的旋转体零件外壳、盖子、卡扣位这种偏向产品结构的零件需要快速做 3~5 个方案给客户选的早期概念模型。这类零件的共同点是拓扑结构简单主要靠布尔运算和拉伸/旋转/打孔就能做出来。自然语言里说清楚「底板 80×50、四个角孔、中间凸台」这一类指令AI 是能理解并且生成出来的。而且很多云端服务现在支持输出 STEP 这类实体格式不再是只能拿去打印的 STL这意味着你可以把模型拉进 Fusion 360 或 SolidWorks 里继续改。1.2 它干不了的精密配合、复杂装配、带标注的工程图虽然听起来很厉害但我必须泼盆冷水目前主流的 text-to-cad 工具离「一句话下车间的零件图」还有很大距离。具体的短板集中在这些地方公差和配合AI 不知道 Φ20 H7/g6 是什么意思更不知道怎么在生成模型里体现间隙、过盈和最大实体条件。复杂曲面涡轮叶片、汽车 A 柱、鼠标外壳这类自由曲面现有生成工具基本做不像能做出来的也就是个「形似」的网格多零件装配关系它能给你一个零件的形状但给不了「这个零件和那个零件之间怎么装、哪里需要避让」的装配体逻辑工程图与标注尺寸标注、形位公差、表面粗糙度、热处理要求这些是图纸的灵魂而 AI 生成模型往往只给几何不给语义。换句话说它擅长的是「把一句话变成一个看得见摸得着的几何体」不太擅长「把这个几何体变成能上机床、能交付的工业产品」。1.3 衡量一个 text-to-cad 工具的关键指标如果你现在想选一个工具我建议不要只看演示视频里的炫酷效果而是盯住这几个指标指标说明为什么重要输出格式STEP/BREP 还是 STL/OBJ决定你能不能导入主流 CAD 继续编辑还是只能拿去渲染/打印参数化程度生成的特征是不是带可改尺寸的参数没参数化的模型改一处孔距可能要重画单位控制是否明确支持 mm/inch单位一旦搞错整个模型就是废的特征树质量生成的是「拉伸打孔」还是「一个网格体」特征树越干净后续修改成本越低可重复性同一提示词结果是否稳定影响你把它当成可复现工具而非抽卡游戏我自己对工具的要求很俗能导出 STEP、单位不跑偏、结果可以反复修改。按这个标准很多宣传得很热闹的「文字生成 3D」产品直接被过滤掉了。2. 为什么「一句话出模型」这么别扭几何表示、设计意图和精度那点事很多人第一次用 text-to-cad 时都会觉得「怎么这么笨我说得这么清楚了你还不懂」。其实这背后不是 AI 傻而是自然语言和 CAD 模型之间存在几个根本性的鸿沟。2.1 自然语言天生缺精度「一个大圆孔」这句话在人脑里可能对应「直径 20、通孔、无倒角、中心在板件正中间」。但对 AI 来说这句话的歧义非常大是大圆孔还是小圆孔是通孔还是盲孔要不要倒角孔的中心落在哪公差多少如果你把这句话原封不动发给一个工具它只能在统计意义上猜一个最可能的结果。我自己的习惯是每一条 prompt 都把关键尺寸、功能位置、加工方式写死。比如「直径 6.8mm 的通孔」比「一个大孔」靠谱一万倍。语言里缺掉的精度只能靠用户自己补齐这是目前 text-to-cad 绕不开的「使用成本」。2.2 网格模型和实体模型不是一回事这是最多人踩的坑。很多「文字转 3D」工具其实是「文字转网格」输出的是一个由几百万个三角形拼成的表面。网格模型长得很像那么回事但当你把它拖进 CAD 里想倒角、打孔、测量体积时会发现它根本没有「实体」概念。传统 CAD 里用的是 BREP 表示模型由面、边、顶点构成背后是一堆 NURBS 曲面和拓扑关系。你可以选中一个面可以沿法向拉伸一个草图可以在圆柱面上精确打一个孔。而三角形网格本质上是「一张揉皱的锡纸」没有真正的圆柱面、没有平面度加工时根本没法引用。关键判断只要你的最终目标是 CNC 加工、钣金展开、装配配合就不要选择只输出 STL/OBJ 的「文字转 3D」工具。至少得是 STEP最好带参数化特征树。2.3 「设计意图」才是最难传的东西几何相似并不等于设计意图一致。举个我常遇到的例子同样是一个法兰盘上的六个孔你可以用「每个孔都我手动按坐标放」来生成也可以用「圆周阵列 6 份」来生成。从表面看两种方式得到的孔位置完全一样但后续修改时天差地别前者想改成 8 个孔得删掉重画后者改一下阵列数量就完了。text-to-cad 工具很难从你的自然语言里读出「这里应该是一个阵列」「这两个孔应该保持同轴」「这个面和那个面应该平行」这类设计逻辑。它更倾向于直接生成一堆绝对值坐标。这就导致你拿到手的模型改起来可能比从头画还费劲。2.4 制造语义圆角、拔模、螺纹都不是装饰外行看模型会觉得圆角和螺纹是「细节」做过加工的人知道这些是制造的基本门槛。拔模角度决定零件能不能从模具里脱出来圆角半径决定刀具能不能下得去螺纹底孔直径决定攻丝会不会断丝锥。text-to-cad 工具目前对这类制造语义的理解非常浅。让它生成一个「M8 螺纹孔」它大概会给你一个直径 8mm 的光孔或者更常见的是切一个 6.8mm 的底孔但不会告诉你这是 6H 级螺纹、有效深度 18mm。这些信息在模型里几乎无法表达通常只能靠工程图标注补上。所以从这个意义上说text-to-cad 出的是「几何草案」不是「工程模型」。3. 三条能上手的路线对比云端生成器、LLM 写代码、混合工作流想上手 text-to-cad 不只是「找个网站输入文字」这一条路。我实际用下来目前能落地的路线有三条各有各的适用场景。3.1 云端生成器输入提示词直接出可编辑模型以 Zoo 出品的 Text-to-CAD 以及类似服务为代表。这类工具通常在网页端或 API 上提供一个对话框输入自然语言、选好单位等一会儿就返回一个模型。做得比较靠前的一批服务已经支持输出带特征的实体格式甚至能在云端继续编辑参数。我的使用场景是对着它疯狂生成「变体」底边长一点、孔多一点、凸台高一点一次生成十个挑一个最顺眼的。这种方式特别适合前期方案发散比如客户说「我想要一个安装座」你也不知道他想要什么形状那就让 AI 把常见的安装座形态都出给你看。3.2 LLM 写代码让大模型输出 CadQuery / OpenSCAD这一条是我自己用得最多的路线。思路很简单不要求大模型直接「变出」模型而是让它写一段 CAD 脚本用 CadQuery、build123d 或 OpenSCAD 来描述模型然后我在本地运行脚本生成模型。这样做的好处非常明显模型是程序生成的改一个参数就能重新生成天然带「参数化」属性代码可以放进 Git 版本管理任何一次修改都有记录不依赖某个云服务的黑盒也不怕它改版或关停生成结果不对时你可以看代码里的坐标、布尔操作到底哪里出了问题而不是对着一个模型猜。坏处是上手门槛比网页工具高一点至少要会跑 Python、能看懂一段简单脚本。但对于机械/产品工程师来说这不是难事。3.3 混合工作流AI 生成初稿人工进 CAD 收尾大多数人最终会落在这条路上用 text-to-cad 快速出一个或者几个「差不多」的模型然后导入传统 CAD 里重新建模或者大幅修改。我把这种方式叫「AI 草图 人工精修」。实际操作时我不会直接拿 AI 模型去出图而是把它当成参考。打开 Fusion 360照着 AI 生成的外形重新画一遍草图、定约束、加配合、做圆角。这个过程看起来是「白干了」但真正省下来的是从零开始构思形状、定大致比例的半小时。尤其在陌生零件面前AI 给的那个粗糙形状往往能逼你快速建立空间判断。3.4 三条路线的取舍看一张表就够路线代表输出类型可编辑性最适合云端生成器Zoo Text-to-CAD、Autodesk Project BerniniSTEP/BREP 或 STL中等方案发散、快速出多个变体LLM 写代码CadQuery / build123d Claude / GPT代码 参数化模型高标准件族、批量生成、可追溯网格生成工具Meshy、Tripo、Luma GenieSTL / OBJ低游戏资产、3D 打印摆件、外观预览需要说明的是像 Autodesk 的 Project Bernini 这类项目现在还处于实验阶段能力边界变化很快。我的建议是别押注单一工具而是把「提示词——模型——代码/文件」这条链路掌握在自己手里工具随时可以换。4. 一个能复现的实操用自然语言生成一个「带四个安装孔的支架」光讲抽象的东西没用我直接拿一个前两天刚做的需求走一遍完整流程。目标是生成一个安装支架一块矩形底板四角有安装孔顶面中心有一个带通孔的凸台。4.1 我用的工具链一个普通笔记本、Python 环境、CadQuery 库外加一个会写代码的大模型。我没有用云端可视化工具因为我想让每个尺寸都在代码里留痕方便后面改成参数化零件。先安装依赖pip install cadqueryCadQuery 是一个用 Python 描述参数化 CAD 模型的库它的写法比 OpenSCAD 更接近传统 CAD 的「草图 特征」思路适合机械零件。如果你更熟悉函数式建模用 build123d 也可以原理一样。4.2 第一轮提示词我习惯把提示词写得很琐碎不放过任何一个尺寸生成一个 6061 铝制安装支架单位 mm 1. 底板是 80mm x 50mm x 6mm 的长方体 2. 四条竖直边倒 R5 圆角 3. 底板上有 4 个直径 4.2mm 的通孔孔心按照 60mm x 30mm 的矩形阵列分布关于中心对称 4. 底板顶面中心有一个直径 20mm、高 10mm 的圆柱凸台 5. 凸台顶面中心有一个直径 6.8mm 的通孔用于后续 M8 攻丝 请用 CadQuery 实现关键尺寸放到变量里。注意我把「M8 螺纹」拆成了「直径 6.8mm 的通孔」。因为 CadQuery 默认不会生成真实螺纹牙形而加工 M8 螺纹的底孔直径就是 6.8mm。这算是一种制造语义的输入技巧。4.3 大模型返回的代码以及我做的修改假设大模型第一次返回了这样的代码import cadquery as cq plate_l 80.0 plate_w 50.0 plate_h 6.0 hole_d 4.2 boss_d 20.0 boss_h 10.0 tap_d 6.8 result ( cq.Workplane(XY) .rect(plate_l, plate_w) .extrude(plate_h) .edges(|Z) .fillet(5.0) .faces(Z) .workplane() .rect(60.0, 30.0, forConstructionTrue) .vertices() .hole(hole_d) .faces(Z) .workplane() .circle(boss_d / 2.0) .extrude(boss_h) .faces(Z) .workplane() .circle(tap_d / 2.0) .cutThruAll() )这段代码基本能跑里面比较关键的设计点是先用草图矩形拉伸成底板edges(|Z)选的是平行于 Z 轴的竖直棱边用它来倒 R5 圆角不会误伤顶面边界用forConstructionTrue画一个构造矩形取它的四个顶点作为孔心保证孔对称分布凸台是在底板上表面重新建立一个工作平面画圆拉伸上去最后在凸台顶面切一个 6.8mm 的通孔。第一次运行大概率不会完美我的习惯是连续追问大模型。比如「把 4 个孔心的位置约束为距板边至少 10mm避免孔太靠边」「凸台与底板之间加一个 R2 的过渡圆角」「把通孔改成 8mm 深的盲孔底孔锥角 120 度」。每次只改一个点确认执行结果后再提下一个需求这样对代码哪一行改了什么完全可控。4.4 导出和后续处理生成实体后导出非常简单cq.exporters.export(result, mounting_bracket.step) cq.exporters.export(result, mounting_bracket.stl)STEP 文件留给正式 CAD 做后续编辑STL 文件可以用来快速 3D 打印验证手感。如果只是讲概念我会把 STEP 直接拉进 Fusion 360重新用参数化特征照着修一遍加上倒角标注和材料信息。注意任何 text-to-cad 工具生成的模型我都不建议直接下车间。至少要把 STEP 导入 CAD 重建特征树、检查壁厚、确认拔模和刀具半径之后再说。5. 踩坑记录我在反复改提示词时遇到的五个高频问题用得多了之后我发现很多问题不是出在「AI 能力不够」而是出在「人机之间的沟通协议」没建立好。下面是五个我反复遇到的高频麻烦以及对应的处理办法。5.1 尺寸单位混乱mm 还是 inch这个真的很常见。同一个提示词有时候生成出来的孔间距是 60mm有时候会被理解成 60inch。一旦单位错了整个模型放大 25.4 倍而且很难从截图上发现直到导入 CAM 才知道出问题。我的处理办法在提示词开头用固定格式写明「单位mm所有尺寸均为毫米」。同时在生成的代码里要求「尺寸值必须赋值给变量不许直接写数字」这样一眼就能看出尺寸数值合不合理。5.2 「四角倒圆角」把不该倒的也倒了「倒圆角」是个看似简单其实坑很多的指令。一个长方体有 12 条棱用户说「四角倒圆角」通常指的是四个竖直边但 AI 可能把顶面四条边也一起倒圆了。后来我学乖了提示词里会明确说清楚竖直的四条边倒 R5顶面和底面边界保持直角。再进一步我会直接加一句「用 CadQuery 的 edges(|Z) 方式选择目标边」把实现方式也写进去。代码生成工具就是这一点好——实现方式写死AI 就不太会自由发挥。5.3 孔特征被识别成「装饰」这个主要出现在网格生成类工具上。你让它生成「一块带四个安装孔的板」它可能真的生成了一块表面上有四个凹陷的板看起来像孔实际上不是贯穿的。如果拿去 3D 打印还好勉强能看想拿去装配就会发现螺丝根本穿不过去。如果是网格工具我一般会在提示词里反复强调「通孔、贯穿、drill through all」这类词。如果用的还是 CadQuery 路线直接查看代码里有没有.hole()或.cutThruAll()就知道真假了。5.4 同一提示词两次生成结果差很多云服务的随机性有时候会让人崩溃。同一句话上午生成的是长方形板下午生成的是圆盘。这在方案发散时是优点但当你确认了某个方案想微调时它就变成灾难了。我的做法是一旦某个生成结果接近目标立刻把它的参数截图、提示词、输出格式、生成的具体设置全部存下来。如果走的是代码路线就更简单直接把代码文件提交进 Git。文本生成是有概率的版本管理才是确定性的来源。5.5 导入 CAD 后特征树一团乱最让我头大的不是生成失败而是生成「看起来成功但没法改」。有些云端工具输出的 STEP 模型导入 Fusion 360 后变成了一坨「导入实体」没有特征树、没有草图、没有约束。你想改一个孔距只能重新画。现在我基本默认所有 text-to-cad 的输出都需要二次建模。快速验证就用原生文件正式交付就照着它在 CAD 里重新画一遍顺便把公差和制造信息加进去。听起来有点折腾但这恰恰是自动化工具最合理的定位让人把精力放在约束、公差、装配这些 AI 还搞不定的地方。6. 怎么把它放进真实工作流当 AI 草稿箱用别当最终图纸用如果你问我现在对 text-to-cad 的整体评价我会说它是个非常优秀的「草稿箱」但还不是「出图机器」。把这个定位想清楚用起来就会顺手很多。6.1 先做一遍可制造性三问拿到任何 AI 生成的模型我都会先问自己三个问题这个模型的拔模方向是什么有没有无法出模的倒扣螺纹是真实特征还是只是一个光孔孔到底是通孔还是盲孔底孔直径对不对这三个问题能在五分钟内过滤掉八成不靠谱的结果。我遇到过很多次看起来精细的模型一检查全是渲染层面的「假特征」。6.2 最适合用它的三个环节第一是前期概念发散。客户说不清楚要什么你用 text-to-cad 一次性生成十种形态比口头沟通高效得多。第二是标准件变体。法兰、支架、外壳、底板这类零件改几个尺寸就能复用的用 LLM 生成代码再批量跑参数比我手动建模快很多。第三是跨专业沟通。结构工程师可以用它快速做出一个示意模型给电气工程师看安装空间够不够双方不用为「先出个草图」这种需求开会。6.3 我现在的标准工作流讲一下我实际项目中的固定流程用 text-to-cad 工具或 LLM 生成 3~5 个方案输出 STEP 或代码挑出最合适的 1~2 个导入主流 CAD 软件在 CAD 里重新建模只参考 AI 生成的外形和比例给关键配合面加公差、加表面粗糙度、加材质检查壁厚、圆角半径、最小刀具可加工性最后才出工程图或直接走 CAM。这个流程里 AI 负责的是「把脑子里的草图快速变成看得见的 3D」剩下的工程化工作还是要靠人。6.4 一个很实用的检查技巧最后分享一个我天天在用的技巧拿到生成模型后先在 CAD 里做一个「爆炸性质检」——把模型拆成单一特征逐个看它是不是独立可编辑的。如果整个模型点一下全变黄、根本选不到单个面或边那基本可以断定是网格或缝合体趁早放弃别浪费时间精修。我现在的态度是text-to-cad 已经是我的工具箱里很靠前的一个工具了但我对它的定位始终是「几何形态的搜索引擎」。搜索出来的结果是我进一步思考的起点而不是终点。真到出图交付的时候我信得过的依然是自己亲手敲出来的特征树以及那些 AI 还学不会的制造常识。