text-to-CAD 这个词我念叨了好一阵子。第一次看到它我脑子里的第一反应是真能把一句人话变成能直接开模的零件后来自己上手试了几次又翻了不少实现方案发现这个领域已经比多数人以为的要成熟。简单说text-to-CAD 就是输入一段自然语言描述AI 直接生成参数化 CAD 模型最常见的输出是 STEP 格式。换句话说它给的不是一张渲染图也不是一个 3D 打印用的网格而是一个能继续编辑、能对接加工的真实模型。这篇文章我会从原理、实操到避坑把它讲透适合搞机械设计、产品开发、3D 打印或者对 AI 辅助设计感兴趣的人看哪怕你完全没写过代码也能跟着往下走。1. text-to-CAD 是什么为什么值得我花时间研究1.1 传统建模的真实痛点不是不会画而是画起来太慢在接触这类工具之前我的日常工作里最烦的事不是画图本身而是反复重画。画一个带四个安装孔的法兰盘熟练的话大概二十分钟但如果客户说“孔径改小一点”“孔距再大两毫米”整个草图约束就要从头捋一遍。要是再遇到装配干涉经常是牵一发而动全身改到后面整个人都麻了。text-to-CAD 这类工具戳中的就是这个点。它不会抢走你精雕细琢的工作但它能把“从一张白纸开始建特征”这一步省掉。我把需求写成一句话等几十秒拿到一个形状正确的模型再自己调整参数和细节。这就像先让实习生打一版草稿我负责把关和修改而不是每次都在空白草图里从零开始拉线段。真正用下来之后我发现这类工具最稳定的受益场景是方案前期。需求还模糊的时候我可以在几分钟内生成三五个不同形态的支架、壳体或者底座摆在一起比较比手动建模做方案对比效率高太多。方案定下来之后再进 CAD 精细调整整个流程顺很多。1.2 和 AI 生图、生成 3D 网格有什么区别很多朋友一听“文字生成模型”马上会想到 Stable Diffusion 或者 Midjourney 那种一句话生成一张图。也有人玩过通过文字生成 3D 网格的 AI 工具能出一个类似石膏像的东西。但这两类和 text-to-CAD 本质上是不同的东西。AI 生图生成的是像素矩阵它没有几何信息。文生 3D 网格生成的是表面三角形看起来是一个立体形状但内部可能是空心、破面、非流形几乎不能用于工程设计。而 text-to-CAD 的目标是生成“参数化 CAD 模型”也就是带精确几何定义的实体。这种模型由数学曲线曲面描述有拓扑关系可以被 SolidWorks、Fusion 360、FreeCAD 这类软件直接打开并继续编辑。打个比方你就明白了AI 图片是照片只能看网格模型是泥塑外形像但没法拆解text-to-CAD 生成的是带施工图纸的实物建筑每面墙、每根梁都有准确尺寸和相互关系你可以继续改图纸也可以直接照着施工。这个区别对工程师和制造端来说是决定性的。1.3 这些场景最适合它哪些场景别硬凑我用下来给它的能力边界画了一条线适合结构清晰、特征规则的零件。比如法兰盘、轴承座、电机支架、外壳壳体、底板、简单连杆这些它出东西很快。凡是能用“几个圆柱”“几个矩形”“几个孔”“拉伸”“切除”描述出来的零件它都有不错的成功率。不适合它的场景也很明显。高自由度的曲面造型比如汽车 A 面、手机圆润后盖它目前很难做好装配体级别的设计它基本做不了多数工具一次只能生成一个零件关键的受力件、标准件也不该让它生成齿轮、轴承、紧固件都有标准手册老老实实查标准库才是正道。所以我的建议是把它当成一个“快速起稿”工具而不是“终版设计”工具。这部分想清楚了后面用起来心态会稳很多。2. 一句话怎么变成特征树核心技术原理拆解2.1 整体思路像是让 AI 先画草图再“拉特征”现在的 text-to-CAD 实现方案我看到的主流思路基本是两阶段先从文本生成 2D 草图再从草图生成 CAD 操作序列。第一阶段模型负责把“一个带四孔的底板”翻译成具体的二维图元组合哪条线是轮廓边哪个圆是安装孔哪些线需要垂直、平行、共线第二阶段模型继续决定用哪些特征操作把这些草图变成实体比如拉伸、切除、旋转、倒角、阵列。为什么大多数方案都这么设计而不是直接生成一个点云或者体素模型因为这与工程师的工作方式天然匹配。CAD 模型本质上不是一个“形状”而是一串有顺序的特征操作过程。你先画草图再拉伸再打孔再倒角每一步都携带设计语义。按这个流程来生成结果才可能被 CAD 软件识别、修改和重用。直接生成表面网格等于跳过了整个设计历史出来只是一个“哑模型”。如果你用过 CadQuery 这类程序化建模工具理解起来会更轻松。它们本质上就是把“拉伸一个矩形再在表面上切一个圆孔”这种操作写成代码让计算机按照固定流程执行。text-to-CAD 相当于把“写代码”这件事变成了“说人话”由 AI 负责把自然语言翻译成等价的操作序列。2.2 语言模型负责听懂需求几何求解器负责保证不出错整个流程里语言模型的任务是理解意图并转换为结构化参数。比如“四个直径 6 毫米的通孔均匀分布在直径 100 毫米的圆周上”语言模型要做的是把它解析成“圆阵列数量 4直径 6分布圆直径 100”。难点在于自然语言有大量歧义和隐含信息模型得靠训练时积累的几何常识去补全。第二步几何约束求解器再把这些参数变成真正的几何实体。为什么一定需要这一步因为语言模型擅长语义理解但不擅长数值一致性。你说“外径 80内孔 25厚度 10”但如果参数之间相互矛盾比如内孔比外径还大语言模型可能照办几何求解器就必须发现这个矛盾并处理。约束求解器的作用就是保证生成的几何满足拓扑关系、共面关系、相切关系等最后输出的是一个自洽的实体。我举个例子帮你理解约束系统如果你跟它说“一个圆柱凸台顶面和底板面共面”那么凸台高度参数必须和其他几何关系一起求解。拉伸的高度、草图的轮廓、基准面的位置所有变量塞进一个方程组求解器要找到一个满足全部条件的解。正是因为有这一层存在生成的模型看起来才不像那种“表面好看、一剖就烂”的网格模型。2.3 为什么大家那么看重 STEP 格式你可能注意到text-to-CAD 相关项目几乎都把 STEP 当成主要输出格式。原因不是炒作而是工程流程本来就离不开它。STEP 文件记录的是边界表示B-rep由精确的曲线、曲面和拓扑信息构成几何实体。主流 CAD 软件能无缝打开 STEP识别其中的面、边、顶点并允许你在这个实体上继续做特征。相比之下STL/OBJ 这类网格格式只保存三角形面的顶点坐标它是离散逼近不是精确几何。三角网格导入 CAD 后软件面对的是成千上万个平面三角形不可能直接给它加一个“直径 8 毫米的孔”这种参数化特征你得重新做曲面重构。一句话总结拿到 STEP 等于拿到了“工程图纸”拿到 STL 等于拿到一张“3D 照片”。这也就是为什么 text-to-CAD 的价值比单纯“生成 3D 模型”高出很多——它生成的不是视觉产物而是制造数据。2.4 现阶段的技术难点尺寸、单位、语义歧义技术再热短板也客观存在。我实际测试中最常遇到的坑是语义歧义。“一个中等大小的盒子”到底多大“光滑表面”在注塑、机加、3D 打印里的含义完全不同。语言模型只能猜测你的默认值猜测结果往往跟你脑子里想的不一样。另一个大坑是混合单位。如果你提示词里一会儿“50mm”一会儿“2inch”模型可能不会做单位换算直接用数字建模结果零件尺寸偏差巨大。矛盾描述也一样“壁厚 2 毫米”和“总高 50 毫米”同时出现如果不小心组合出几何冲突求解器要么强行妥协要么直接生成一个畸变结果。这些问题的解法只能靠提示词规范化后面我会详细说。3. 从提示词到 STEP 文件完整实操流程演示3.1 选择工具与运行方式目前体验 text-to-CAD 主要有三种方式在线 Web 界面、本地部署开源模型、API 调用。新手我建议先用在线 Web 界面走一遍因为零配置注册进去就能玩输入一行字点生成等几分钟就出结果。跑通之后如果你要批量生成或者集成进自己的工具链再考虑 API 或本地部署。本地部署的好处是数据私密、没有请求限制但对硬件有要求而且需要处理 Python 环境和依赖。我自己的主力机器是带 8GB 显存的显卡跑开源模型能接受但单次生成也要几十秒到一两分钟。API 调用则适合把 text-to-CAD 接进你自己的参数化选型脚本里比如批量生成不同尺寸的支架底座。从代码风格看常见的调用方式大概长这样# 示意代码具体接口以你用的库 / 服务为准 from text_to_cad import TextToCAD generator TextToCAD() step_file generator.run( prompt( a 100x80x10 mm rectangular base plate with four 6 mm mounting holes near the corners, symmetric about both axes ), output_formatstep, num_candidates3, ) step_file.save(base_plate.step)这种“返回 3 个候选让你挑”的参数设置非常实用。工程上没有哪个生成模型能一次到位给模型多点采样机会比自己反复改提示词高效多了。3.2 提示词怎么写三个层次一个都不能少提示词是 text-to-CAD 成败最关键的部分没有之一。我用下来的经验是一个可靠的提示词必须包含三层信息。第一层是明确形状类型。直接告诉模型“这是一个法兰盘”“这是一个 L 型支架”“这是一个矩形外壳”比让它从一堆轮廓里自己猜靠谱得多。第二层是核心几何尺寸。长、宽、高、外径、内径、壁厚、孔直径能写具体就写具体并且统一标注单位。第三层是特征关系。孔之间的相对位置、阵列方式、对称关系、与边缘的距离这些决定了生成结果是不是你真正想要的样子。举个例子。好的提示词是这样“一个法兰盘外径 80mm中心孔直径 25mm厚度 10mm外圈均匀分布四个直径 8mm 的通孔孔心所在圆直径 60mm孔轴线平行于中心孔轴线。”这个描述里每个特征都有精确坐标和几何关系模型基本不需要猜。坏的提示词是“一个法兰盘带一些孔看起来比较机械”——这种写法十个有九个会翻车因为“一些孔”是几个“比较机械”是什么风格模型只能瞎蒙。如果你写过工程设计规范你会发现这种提示词写法本质上就是在写“简版技术要求”。越接近工程语言生成质量越高。我甚至建议你把提示词当成一种“结构化口述图纸”来练习先写形状再写尺寸再写特征关联最后加单位。3.3 生成结果怎么看预览、测量与判断拿到 STEP 文件之后别急着导入完整 CAD 软件先在预览器里转一圈检查三件事一看拓扑是否完整有没有破面、悬空面、退化边二看主体轮廓是否符合预期该是矩形的是不是矩形该是圆形的是不是圆形三看孔洞和凸台数量是否对得上少一个孔或多一段凸台在 CAD 里修都很费事。确认轮廓没问题之后再导入 CAD 软件测量关键尺寸。这里有个特别容易踩的坑单位。STEP 本身不带强制单位信息多数情况下按毫米处理但有些模型内部默认用英寸导入后零件会大十分之一。导入 SolidWorks 或 Fusion 360 后第一件事就是检查文档单位再测量一下关键尺寸和你的预期是否一致。最后一个建议不要只盯着第一个结果。只要工具支持尽量生成 3 到 5 个候选再做选择。AI 生成本身是概率性的不同随机种子出来的结果差异很大。挑一个最接近需求的作为基础再进 CAD 精修成功率远高于死磕同一个结果。3.4 从模型到制造后处理和格式流转生成完 STEP 只是第一步真正到制造环节还有几关要过。如果你最终要做 3D 打印导出 STL 之前要检查水密性也就是模型内部有没有缺面、法向反转、孤立碎片。这些在切片软件里通常会报错最好在切片前就处理掉。如果是 CNC 加工要检查几个设计参数最小壁厚是否满足刀具要求、有没有倒扣区域、有没有需要增加圆角的地方。很多 AI 生成的模型默认不带倒角所有锐边都裸露在外这在实际加工中是个隐患。你需要根据工艺要求补倒角、调整拔模斜度再送去加工。还有一种比较常见的情况你拿到的 STEP 是一个不带特征历史的“哑实体”。在 SolidWorks 里打开后左侧特征树只有一个“输入”节点没有可编辑的草图或拉伸特征。这时候别慌SolidWorks 的 FeatureWorks 可以尝试自动识别特征Fusion 360 也支持直接编辑 B-rep 实体。如果识别效果不理想还可以把它当作参考几何重新对齐基准面拉一遍特征。因为轮廓已经在那里了重建的速度远比从零画快。4. 实战踩坑五个翻车现场与排查思路4.1 提示词没有歧义生成结果却一团乱这是最让人崩溃的情况明明是按规范写的提示词结果模型给了一个自相交、断裂、孔洞缺失的怪物。我排查这类问题的顺序是固定的。先看看是不是随机性问题——把同一个提示词多生成几次每次的随机种子不同结果往往差很多有时候多试两次就成功了。如果多次生成都失败再简化提示词。比如“外圈均匀分布四个孔”如果一直失败改成“四个孔中心在直径 60mm 的圆上间隔 90 度”这样约束更明确。最后一步是拆分描述把“主体”和“孔特征”分开写甚至分成两次调用再合并也能提高成功率。整体思路就是生成失败时先怀疑歧义再怀疑冲突最后怀疑模型能力边界。不要一上来就怪模型多数情况是我们给的描述还不够“工程化”。4.2 单位错了零件大了十倍或小十倍尺寸比例异常是 text-to-CAD 使用中最高频的问题之一。原因无外乎两种提示词里没写单位模型只能依赖训练数据里的默认值或者模型按毫米生成了你导入 CAD 时软件按英寸读取结果放大了 25.4 倍。解决方案也很直白。写提示词时强制带上单位最好在开头就写明“所有尺寸单位均为 mm”给模型一个基准。导入 CAD 后不要急着做任何操作先看一眼单位设置。我发现很多人翻车都是因为“默认 mm”这个直觉在作祟结果被软件的单位设置坑了一把。这个检查 10 秒钟就能完成但能省掉你后面所有返工时间。4.3 生成结果“好看”但没法加工有些模型从屏幕上看非常漂亮一送加工厂就被打回悬空孔、壁厚薄得像纸、负角、干涉全都凑齐了。这种事我遇到过不止一次所以现在对“好看”这个评价非常警惕。为了减少这种返工我建议在提示词里主动写明加工友好的约束。壁厚至少 1.5 到 2 毫米孔离边缘的距离至少 1.5 倍孔径尽量避免超过 3 倍深径比的深孔。这些数值不一定绝对正确但你得让模型知道你不是在做一个概念雕塑而是做一个能被制造的零件。我整理了一个自己常用的速查表设计要点建议值原因最小壁厚1.5mm 以上低于此值容易变形加工和打印都可能失败孔边距不小于 1.5 倍孔径太近会导致边缘破裂深孔深径比不超过 3:1加工时排屑困难打印时支撑难处理内部尖角尽量加圆角尖角应力集中刀具无法加工到位拔模斜度1 到 3 度注塑和压铸脱模必需在生成提示词里把这些约束写进去比拿到模型后再靠 CAD 修补省力得多。4.4 模型能用但没法二次修改前面提到过“哑实体”的问题这是所有用 AI 生成模型的人绕不开的坎。你导入 CAD 后发现特征树只有一个输入体任何参数都改不了尺寸一变整个形状就乱套。解决办法分几层。如果 STEP 是从带特征历史的中间格式转换过来的你可以在源工具里先用脚本修改参数再重新导出如果只有 B-rep就靠 CAD 软件的特征识别功能。再不行就只能以它为基础重新建模了。但说实话就算重新建模也不亏因为所有关键轮廓都已经摆在那儿了你只需要找到基准、重新画草图、拉特征比对着图纸从零画快非常多。4.5 批量生成特别慢等得没脾气最后一个是效率问题。text-to-CAD 生成本身就要跑深度学习模型在线服务还需要排队。如果你一次生成 10 个候选满心期待地等半小时结果前两个就够用了后面纯属浪费时间。我的做法是先用少量候选试提示词比如 num_candidates3确认描述方向对了再扩大到 10 个去筛选最优。如果需要批量生成不同尺寸尽量利用 API 而不是网页界面本地或者云端批量提交结果回来了再做筛选。生成任务尽量代码化别绑定在交互式界面里干等。5. 把 text-to-CAD 接入现有工作流效率提升与边界判断5.1 我的实际工作流AI 起稿人工精修现在我设计非标零件的流程已经固定下来了。接到一个需求先翻译成提示词参数表形状、长宽高、孔位、壁厚、加工约束全部列清楚。然后让 text-to-CAD 生成 3 到 5 个候选导入 CAD 做尺寸精修和特征完善最后按工艺要求补倒角、拔模、装配关系。这个流程和传统方式的差别主要在“起稿”阶段。以前从空白草图开始拉特征画错了要改约束约束改了可能引发整个下游特征报错特别消耗心力。现在 AI 给出的轮廓已经带着正确的拓扑关系我只需要把自己关心的参数调整到位很少再遇到那种连环改错的情况。总体效率提升是很明显的尤其在做方案对比的时候优势更大。5.2 提示词模板库让成功率稳定在七成以上我在实际使用中积累了一套提示词模板这是我想专门分享的小技巧。做法很简单把所有常用零件的提示词结构固定下来变量写成占位符例如a {shape} with overall dimensions {L}x{W}x{H} mm, wall thickness {t} mm, with {N} mounting holes, diameter {D} mm, located {R} mm from the edges, symmetric about both axes用的时候只需要替换花括号里的参数不需要每次都从头构思措辞。这个习惯帮我大幅降低了“提示词写得不错但结果不行”的概率因为模板里的措辞是经过多次验证可靠的。我建议你也从自己最常画的零件开始建立 5 到 10 个模板基本上就覆盖了日常工作中一大半的起稿需求。5.3 边界判断哪些零件永远不该用它生成最后聊聊边界问题。用了一段时间之后我给自己列了一个“黑名单”标准件不用它生成齿轮、轴承、螺纹紧固件这些都有标准手册直接查标准库更准确高精度配合件不用它生成公差和表面处理是 AI 现在理解不了的东西复杂曲面外观件不用它生成这类设计需要审美和曲面控制能力目前工具还差得远关键受力结构件不用它生成没有经过有限元验证的 AI 模型你敢直接装机吗text-to-CAD 最适合做的是“非标快速起稿”“方案对比”“教学演示”“业余爱好者的快速模型”。把期望值放在这个范围内你会发现它相当好用。最后说点大实话。我在实际使用中最大的体会是别把 text-to-CAD 当成可以交付的设计师它更像一个刚毕业、理解力一般但出图速度极快的实习生。你得把需求写得非常细它才能给你一个像样的草稿拿到草稿之后真正负责专业判断的仍然是你自己。在我这里现在设计非标支架的流程已经变成了先让 text-to-CAD 出三五个备选形状我挑一个顺眼的导入 SolidWorks 精修整体效率至少比从零建模快一半。如果你也想试我建议从自己最熟悉的零件类型开始先建一个提示词模板库把单位、壁厚、孔距这些参数固定成一种写法。刚开始生成出来的东西可能会让你想骂人但只要在提示词上多花两分钟后面的收益会非常明显。
阅读完成 · 觉得有帮助?