直接说结论text-to-cad 现在不是“能不能用”的问题而是“怎么用才能不白折腾”的问题。我最近密集试了一圈公开可用的方案从拿自然语言直接生成机械零件、生成可以用参数修改的特征历史树到在开源工具里用自然语言驱动脚本建模踩了不少坑也摸出了一些靠谱的流程。这篇东西就把我在实操中的拆解、选型思路、提示词技巧和典型事故记录下来给想上手这个方向的朋友一个少走弯路的参考。这个方向解决的核心痛点一直很明确CAD本身的学习和使用门槛极高传统参数化建模要求你同时具备空间想象能力、特征操作经验和工程制图知识。text-to-cad 把“设计意图”的输入方式从鼠标点击和参数面板变成了自然语言描述这等于把“和机器讲参数”改成了“和人讲需求”。凡是搞过机械设计、产品原型、3D打印模型、创客项目的朋友都应该能感受到这件事的价值。1. 技术路线解析从“听懂人话”到“生成几何”的三条路径我最初以为 text-to-cad 就是把文本丢给大语言模型让它吐出一段脚本后来实际调研和测试之后才发现这个方向内部的技术分歧远比我预想的大。拿当前主流的实现方案来看大致可以拆成三条技术路线理解它们各自的优缺点才知道为什么有些工具能改参数、有些却只能出一堆死模型。1.1 路线一LLM 程序化建模脚本把问题翻译成代码这条路线最直接也最容易落地。核心思路是让大语言模型理解用户输入的目标然后输出一段可执行的程序化建模脚本。这类脚本通常基于 OpenSCAD、CadQuery、FreeCAD 的 Python API 或者像 Zoo 那样自己定义的一套建模语言。模型本身不直接产生几何体它只是一个“翻译器”把自然语言转换成计算机辅助设计命令。你给它一句“带四个通孔的法兰盘外径80毫米内径30毫米孔心分布在直径60毫米的圆上”它输出一段 CAD 脚本你把它丢进解释器出来的就是一个完整的三维模型。这条路线的最大优势是结果天然具备参数化能力因为脚本本身就是参数化的改一个变量、重建模型全部特性都能跟着变。但缺点也很明显模型输出的是代码代码就可能出错语法错误、数组越界、坐标打架任何一个问题都会让整个建模流程崩溃。我实测下来模型对简单轴套、支架、法兰这类规则零件把握得不错一旦遇到需要多个特征间布尔运算、复杂倒角顺序的零件就经常输出有几何错误的结果比如本应拆除的体积没拆掉、圆角方向反了。1.2 路线二专门数据集微调模型让模型直接输出CAD操作序列第二条路线在学术和商业工具中都很火。用 DeepCAD 这类包含大量设计流程数据的数据集把每个模型文件从打开、创建草图、拉伸、切除、壳、圆角、阵列的完整步骤序列做成训练数据。模型被训练成“给定自然语言或者局部几何条件直接预测一系列 CAD 操作命令”。这种方式不等价于生成代码而是生成操作历史序列最后重建出的模型带有完整的特征树。它比 LLM脚本路线更接近工程师思维因为生成的是特征历史你可以和真人建模一样去编辑前面的步骤。比如你让模型先做一个圆柱底座再打孔嫌孔太小直接改特征参数就能更新。这不是把几何体当面条揉而是把几何体当工程模型来构建。不过这条路线的问题在于训练数据有限。DeepCAD 这类数据集的规模和多样性远不如大语言模型的训练语料所以这类模型目前在复杂装配体、曲面造型、非规则自由曲面上的表现会明显退化。它能很快生成一个轴套但你让它生成一个吹风机外壳它大概率会在曲面上束手无策。1.3 路线三文本/图像直接生成隐式表达再做网格转换第三条路线更激进干脆放弃参数化建模流程让模型直接输出几何体。做法是生成一个经神经网络表示的距离场或者隐式曲面再通过算法把它提取成三角形网格最后输出 STL 或 OBJ 格式。你输入“一张四条腿的圆桌”模型直接给你一个完整桌子的网格数据。直观上很快几秒钟就能看到模型轮廓也确实能应对那些自由曲面和有机形态比如雕塑、玩具、装饰品。但它的致命弱点是——输出的是网格不是B-Rep实体模型也没有特征历史树。这导致它很难直接进入传统制造流程因为数控加工、有限元分析、装配干涉检查都依赖于边界表示和几何拓扑信息而不是一张“表面皮”。我做产品结构时频繁用到的一个判断标准就是拿到的模型能不能在切片软件里顺利切片、能不能在 CAM 里生成刀路、能不能在仿真里赋予材料属性。网格模型在这些环节里全都捉襟见肘。所以第三条路线更适合虚拟预览、3D打印原型和概念方案展示不太适合做真正要交付制造的结构件。1.4 我为什么不直接迷信“一键生成整个装配体”网上很多演示视频特别有迷惑性输一句“生成一个发动机”几秒钟一个庞大的装配体就出现了。但我在实际工作中验证后发现这类“神级演示”大多是把文本描述分解成多个子零件再简单堆叠各零件之间没有真实的配合约束没有材料定义也没有装配逻辑纯粹是“看起来像”。在初步设计方案探索阶段这东西聊胜于无可一旦拿去出工程图、做公差分析就会被各种干涉和缺特征问题折磨。我个人的态度是text-to-cad 适合用来生成单件、中小型组件以及快速生成可编辑的早期结构不适合直接把整车、整机级别作为输入目标。把需求拆小、拆单、拆特征才是正确用法。2. 工具选型对比哪个方案真正适合拿来做活了解完技术路线接下来就是现实问题手头有哪些工具该用哪个我把市面上能接触到的方案按“可以直接用”“半开源需要折腾”“纯学术验证”三个层次做了使用对比。这个环节我在实际测试上花了很多时间直接说结论和适用场景。2.1 商业在线方案上手简单但可控性弱以 Zoo 的 Text-to-CAD 为典型代表。它直接在云端提供输入框敲入自然语言描述后台模型完成解析和生成输出结果可以在浏览器里查看、编辑特征参数、导出模型。体验最好的地方是它不需要任何环境配置打开就能跑特别适合零基础的验证性使用。对模型不足的地方它的可编辑性也给了我惊喜一些尺寸参数可以直接改改完重建速度很快不用重新生成全部内容。但这类在线服务最让我不放心的点是设计数据放在云端且生成逻辑是黑盒特殊行业、需要严格数据保密的使用场景基本没法用。至于一些大型CAD厂商内置的AI辅助功能大多还处于“草图智能识别”“约束自动推断”的层面离“一句话生成整个特征历史”还有距离。它们更适合在已有工程模型的基础上进行局部智能编辑比如选一个面自动生成加强筋、识别孔位自动补螺栓而不是从零生成一个新零件。2.2 开源脚本方案任何场景都能接适合二次开发OpenSCAD、CadQuery 这类基于脚本的建模工具是 text-to-cad 场景下最值得关注的开源选项。它们的建模语言本身就是程序化结构天然适合被 LLM 当作输出格式。你不一定非要用官方工具而是在自己的项目里直接调用它们的编译器或 API比如用 CadQuery 时直接在 Python 里生成草图、拉伸、打孔全部走代码后续还能自动化。这套路线高度可控、可离线部署、可集成到现有工作流。我自己搭建的自动化流程里就是让本地 LLM 输出 CadQuery Python 代码然后放进一个 Docker 容器里执行出错就反馈给模型重新生成。这个过程中模型偶尔会产出一个“看起来是对的”但编译不了的代码比如漏了必要的 import或用了不存在的参数名这时候把它当作反馈丢回模型让它继续改多迭代几轮就能跑通。2.3 学术项目适合技术细节探索不适合生产使用Text2CAD、CAD-GPT、或者一些基于扩散模型生成CAD序列的论文项目大多在论文里展示了极强的技术能力。它们确实训练了专门的模型结构用 CAD 命令序列作为生成目标能从文本生成结构化建模步骤是现阶段最接近“AI原生CAD建模”的方向。但这些项目的代码和预训练模型经常不完整数据集下载情况要看当时的研究者是否维护复现门槛偏高。而且就算跑通了它在可控性和稳定性上也远不能做生产力工具。我建议对研究感兴趣的朋友拿它们做技术验证和算法学习不太适合用到实际交付项目里。2.4 我的选型建议速查表如果你还在纠结选哪条路线直接按这个表去找使用场景推荐方案理由快速概念验证、展示效果商业在线 Text-to-CAD零配置、出结果快适合给用户看效果内部自动化批处理、保密数据本地 LLM CadQuery/OpenSCAD数据不离线、流程可控可集成 CI/CD学习技术原理、算法实验Text2CAD等学术项目代码可读性高训练逻辑清晰机械加工件设计商业CAD原生AI功能辅助特征历史树最完整出图最稳3D打印个人创作、快速原型网格生成式方案只管外观后续切片打印友好这个表不需要当作金科玉律但按这个方向选基本不会走弯路。3. 实操全流程从一句需求到一个可用模型说再多原理和选型不如完整走一遍实操。下面这个案例我选择了“多孔法兰座”作为演示对象因为它特征数量适中既有拉伸、切除又有圆周阵列能把 text-to-cad 路线的能力边界完整展现出来。我将用本地 LLM CadQuery 这条组合来演示。3.1 需求拆分把“人话”翻译成可执行参数实操的第一步不是写提示词而是把模糊需求拆成几何参数。很多人翻车就翻在拿到需求后直接让模型生成结果描述里全是“好看”“大一点”“差不多”这类无法程序化表达的词汇。一个合格的需求拆分应该包含基础形状、精确尺寸、特征类型、特征位置、数量、阵列方式。比如目标零件可以拆成底板外形长120毫米、宽80毫米、厚10毫米中心圆柱外径40毫米、高30毫米与底板顶面同心连接中心孔直径20毫米贯穿圆柱和底板四个安装孔直径6毫米分布在一个直径60毫米的圆上均匀阵列圆柱根部倒角C2把上述条目整理成文本描述后再做一次反向自查如果我是建模师看到这段描述能不能在 CAD 里独立建模而不产生歧义如果有歧义就补充没有就开始生成。3.2 提示词写法让模型理解“你是个CAD脚本生成器”我用的提示词框架大致是五段式实测效果最好角色定义、任务描述、输出格式约束、几何描述、兜底要求。其中兜底要求关键必须让模型在不确定时选择使用默认合理值而不是凭空捏造。一个直接可用的提示词模板如下你是一个专业的 CadQuery 脚本生成器。请根据下面的零件描述输出一段可以直接运行的 CadQuery Python 代码。要求 1. 代码必须包含 import cadquery as cq 2. 使用 workplane、sketch 或 box/cylinder 等基础方法构建特征 3. 采用自顶向下建模方式定义好尺寸变量 4. 最后将结果赋值给变量 result并调用 show_object(result) 5. 不要输出任何解释性文字只输出代码块。 零件描述底板上放置一个带中心孔和四个阵列安装孔的圆柱凸台。底板长120毫米、宽80毫米、厚10毫米圆角R5圆柱凸台直径40毫米、高30毫米中心孔直径20毫米四个安装孔直径6毫米分布在直径60毫米的圆上均匀分布圆柱根部与底板连接处做2mm倒角。这样写完之后模型输出的代码大概率能跑通。如果你用的是更简单的提示词比如“做一个法兰座”你就会发现模型输出的尺寸全都来自它自己的“默认想象”没有对你提供的任何参数负责这在工程场景下是不能接受的。3.3 执行与迭代代码出错怎么处理拿到第一版代码后直接执行大概率会遇到报错。我共试了六次前三次都有小问题有把circle参数类型写错、有的在mirrorY上犯迷糊、有的忘写combine布尔操作。这部分是正常情况不值得气馁。关键在迭代方式。我建议每次把报错信息原样贴回对话里让模型自己看错误原因而不是自己动手改。因为你的目标是验证“这个模型能否自己发现问题并修复”如果每次都要人工修那 text-to-cad 的自动化价值就不大了。实测中第四轮模型自己发现漏了union操作第五轮所有参数都能对上第六轮已经能加上隐藏导圆角。import cadquery as cq # 尺寸参数 base_length 120.0 base_width 80.0 base_height 10.0 corner_radius 5.0 boss_diameter 40.0 boss_height 30.0 hole_diameter 20.0 bolt_hole_diameter 6.0 bolt_circle_diameter 60.0 chamfer_size 2.0 result ( cq.Workplane(XY) .box(base_length, base_width, base_height, centered(True, True, False)) .edges(|Z).fillet(corner_radius) .faces(Z).workplane() .circle(boss_diameter / 2).extrude(boss_height) .faces(Z).workplane() .hole(hole_diameter) .faces(Z).workplane() .pushPoints([(bolt_circle_diameter / 2, 0), (0, bolt_circle_diameter / 2), (-bolt_circle_diameter / 2, 0), (0, -bolt_circle_diameter / 2)]) .hole(bolt_hole_diameter) ) result result.edges(Z).chamfer(chamfer_size) show_object(result)这段代码跑出来的模型满足全部需求参数图形正确也可以直接导出 STEP 格式做后续处理。敢用 CadQuery 而不直接用 OpenSCAD 的理由是CadQuery 的建模思路更接近传统 CAD 的“草图-特征”流程工程语义更强后续如果要接到 FreeCAD 等工具里做二次编辑兼容性也更好。3.4 渲染预览与格式导出到这一步才算是真正的“能用”脚本执行成功不等于万事大吉。我习惯再做三个验证动作。首先把模型导入CQ-editor 或者直接调用 FreeCAD 的 GUI 看一遍检查形状是否符合预期、有没有多余的独立实体、有没有互相交错的几何。其次是在软件里量关键尺寸确认中心孔直径、安装孔距等是否和需求一致。最后是导出 STEP 格式再重新导入一次确认数据交换环节没有丢失面或碎边。这三个动作看似繁琐但能避免把“脚本能通过”误判为“模型正确”。“脚本能通过”是语法层面的成功“模型正确”是几何/工程层面的成功两者之间还有一条巨大的鸿沟。4. 踩坑实录text-to-cad 最常见的失败模式与排查方法工具用多了就会遇到规律性错误。我总结了几类高频失败模式每一类都给出原因和排查方向方便你面对黄澄澄的报错提示时不会满脑子只有“这工具太垃圾了”这个想法。4.1 模型“一本正经地胡说八道”最常见的是模型输出了一段解释性文字比如把建模步骤写成了一段“你要先画草图然后拉伸”而不是代码。原因很简单提示词没约束输出格式。排查时先看提示词里是否明确写了“只输出代码”“不要解释”如果没写模型天然倾向于用自然语言回答它毕竟是个语言模型不是建模工具。更隐蔽的一类是“输出很完整但逻辑荒谬”。它会用 Circle 画了一个圆然后最下面又整体加了一个 Box把前面所有特征盖住最终出来的模型看上去没毛病其实是空的。排查这类问题最好把最终几何体重心、体积、包围盒尺寸打出来用数据验证。一个体积只有1e-8的模型大概率是布尔操作被整个吞掉了。4.2 尺寸单位混用这类错误异常危险而且不容易一眼发现。模型有时会把“直径40毫米”理解成“半径40毫米”把原本直径80的圆做成直径80的圆可能只影响尺寸。更狂野的是把毫米、厘米、英寸混用生成一个F1赛车那么大的法兰盘。这些问题在视觉预览阶段不容易看出来只有实际去测量尺寸时才会暴露。处理办法是在提示词里明确写“所有尺寸单位均为毫米”并在生成代码后立刻检查变量参数是否和需求参数一一对应。CadQuery 里所有尺寸默认都是毫米但模型不一定总记得这一点它可能会直接输出circle(20)而这个 20 应该代表半径还是直径就全靠它当时“心情”了。参数写清楚再生成比事后排查效率高得多。4.3 特征树混乱后续编辑无从下手部分方案生成的结果看单独模型没问题但进入特征树后你会看到一大团合并、差集、操作堆在一起完全没有命名规范。这种模型在工程上基本等于一次性的修改时只能全删重来因为它缺乏参数驱动链路。要避免这点实操上还是优先选择“输出脚本代码”的方案。脚本本身就是一种严格特征树每个命令都是独立特征改参数容易。商业黑盒方案生成的 B-Rep 实体模型也一样拿到手就是一个没有历史的“死模型”当一次性数据用可以想传承设计意图就困难了。4.4 阵列位置不对、方向错乱生成对称零件时模型的旋转角度经常出事。比如四个孔分布在一个圆上它会把第一个孔放在0度后面的孔按90度递增但螺栓孔要和某个基准对齐时可能就需要从45度开始这时候模型往往没有空间感知能力。排查这类问题时我在提示词里会刻意声明“第一个孔位于X轴正方向逆时针均匀分布”。如果对阵列极度敏感直接提示“使用横向对称布置而不是圆周阵列”让模型切换策略。常见问题排查速查表可以直接收藏现象可能原因处理办法输出文字而不是代码提示词没有输出格式约束在提示词末尾加“只输出代码块不要解释”模型生成后显示空白几何体被隐藏、布尔差集操作顺序错误检查几何体体积查看最终语句是否遗留了多余建模步骤尺寸与原需求不符单位混用或半径直径混用明确写“单位为毫米”用代码变量再人工核对特征树太乱无法修改选了黑盒AI生成方案换脚本路线或者只把生成结果当一次性数据阵列元素位置偏移起始角度、旋转轴定义不明确在提示词里补充基准方向和分布方式生成结果无法导出STEP格式方案输出网格模型直接选参数化方案输出脚本再导出STEP5. 关于未来应用text-to-cad 能在什么场景最快产生价值做完整套方案测试后我对这个技术方向的实际落地价值有了和最初完全不同的认知。它并不是要立刻取代建模工程师而是在几个特定场景里能最快产生真实收益。第一类是产品概念设计早期的快速验证。结构工程师拿到一个模糊需求不再需要从头画草图拉特征而是用自然语言描述意图快速生成3-5版结构方案然后在里面挑一个合适的继续深化。这能把前期“从零到有”的时间从几小时压缩到几分钟。第二类是大量定制件、小批量标准件的自动建模。比如客户的机柜需要不同尺寸的安装支架几十上百个变体人工建模型滞后又易错。把需求参数化掉之后让text-to-cad模型批量生成脚本再统一渲染验证效率提升非常明显。第三类是3D打印创客领域的门槛降低。非工程背景的爱好者只说一句“做一个能套在手机上的支架带一个穿线孔”就能拿到一个具备基础结构的可打印模型。虽然离精细设计还有差距但足以从“完全不会”过渡到“先用起来”。第四类是教育和培训领域。text-to-cad可以直接在CAD课程里作为一个交互式引导工具学生用自然语言表达设计意图再对照生成的脚本学习“原来拉伸、切除、倒角是这样表示的”比对着教程记忆命令效率高很多。我一直觉得CAD本身的困难并不在于“鼠标操作”而在于“要把三维想法拆解成二维特征步骤”这项能力对新手极不友好。text-to-cad把“命令记忆”和“参数思维”这两道门槛大幅降低让更多人能直接表达设计意图这才是这个方向最大的价值。6. 我最后想多说的两点建议第一不要追求完全自动化。现在所有公开方案都远没到“自然语言进去生产图纸出来”的程度。靠谱的工作流是“人工定参数、定约束AI生成主形体人工检查细节、补倒角、补公差”。把AI当作一个极其熟练但容易走神的建模助理而不是一台全自动机床。第二务必尽早建立参数化审查习惯。每次生成完不管视觉效果多好都养成检查尺寸、体积、包围盒、特征树的习惯。把关键参数做成变量并在代码里留注释哪怕后续真需要改也还能抢救一下。text-to-cad这个大方向我还会持续跟进但短期内最值得做的就是把现有工具用好纳入日常设计流程让它帮你把重复劳动干掉而不是看着演示视频惊叹然后就完了。这玩意儿动手试一次比读十篇评测都管用。
阅读完成 · 觉得有帮助?