第一次见到 text-to-cad 这个叫法时我第一反应是这不就是把最偷懒的想法变成最折腾的软件操作吗后来在项目里真正用起来才发现这个方向解决的并不是懒而是产品设计早期最常见的浪费——需求在文档里写了好几页落到 CAD 里却要一版一版重画改个孔径、挪个孔位牵一发而动全身。text-to-cad 做的事情很简单你告诉它我要一个什么样的零件它直接给你一个可以编辑的 CAD 模型。这个词在 CAD 圈已经热了两三年但真正能落地、能接进现有图纸流程的方案并不多。这篇内容我会把原理、工具、接进传统 CAD 流程的方法、以及一条完整的实操链路全讲清楚适合正在做结构设计、产品打样、创客项目的朋友参考也适合那些刚接触 CAD 制图入门、想了解 AI 建模到底能做到什么程度的新手。1. 把说图变成现实一句话到可编辑模型的完整链路1.1 为什么过去做不到现在突然行了传统 CAD 的操作逻辑是人直接指挥软件你想建一个法兰盘得先画圆、拉伸、再打孔每一步都是明确的几何命令。这种方式的优点是精确缺点是慢——特别是需求频繁变化时改几十个特征能让人崩溃。text-to-cad 的逻辑完全反过来你描述需求模型负责拆解成一系列 CAD 操作。能做到这一点核心不是 CAD 软件变聪明了而是大语言模型学会了两件事理解自然语言里的空间关系以及把这种理解翻译成程序化建模的代码。这两件事缺一不可。只理解语言但不会建模得到的是一段废话只会建模但不懂语言本质上还是传统参数化插件。大模型出现后语言到代码的翻译质量突然跨过了一条线text-to-cad 才真正从论文走向了可用的工具。1.2 三条技术路线直接生成、程序化生成、检索复用目前市面上的 text-to-cad 方案底层路线可以分成三类搞清楚它们你才能判断哪种结果能用在哪个环节。直接生成网格代表方向是类似 DreamFusion 这一类扩散模型思路模型直接输出 STL 网格。这种路线适合概念设计、3D 打印打样、视觉验证生成速度快表面细节丰富。问题也很明显STL 网格是一堆三角面片没有任何特征树、没有参数、没有约束关系。你想在 CAD 里改一个圆角半径几乎等于重新建模。程序化生成这是我认为最接近工程师思路的路线。大模型不直接画模型而是输出一段代码代码调用 CadQuery、OpenSCAD、FreeCAD 的 Python API或者直接生成某个 CAD 支持的特征脚本最终在本地执行代码生成模型。这个方式生成的模型天然带参数——代码里的变量就是参数你想改直径、改厚度、改孔数改代码里的数值即可CAD 里的特征树也相对完整。检索与复用模型先去理解你的文本描述然后从已有模型库中检索最接近的零件再通过变形、缩放、特征调整去匹配你的需求。这条路对有大量历史模型积累的企业特别有价值相当于把企业知识库盘活了。但公开的通用模型库很难覆盖所有需求所以检索方案通常会和程序化生成配合使用。1.3 为什么程序化生成最接近工程师的思考方式我自己的感觉是直接生成网格的路线做出来的东西看着像但没法干活因为 CAD 工程师拿到模型后第一件事永远是看特征树。特征树有点像做菜的菜谱先放什么、后放什么、每一步参数是多少全部记录在案。你改菜谱里的配料量整道菜会按比例调整而不是把已经炒好的菜端出来重新切一遍。程序化生成恰好保留了这个特性。一段 CadQuery 代码里圆的半径是一个变量拉伸的高度是一个变量阵列数量是一个变量。大模型生成的代码可能有冗余可能有风格问题但它的本质仍然是一份菜谱你可以打开这份菜谱按自己的需求调整。这比拿到一个死板的网格模型要实用得多。所以我接下来的实操环节重点也会放在这条路线上。2. 工具盘点与选型别一上来就找最强的要找最顺手的2.1 当前能上手的方向text-to-cad 的工具生态还在快速变化我尽量按现在实际能用来盘点而不是列一堆参数指标。在线试用类平台像 Zoo Text-to-CAD 这类网站输入文字描述就能生成可下载的模型适合零基础体验。它底层走的其实也是多路线混合用户不需要关心模型是怎么生成的直接拿结果用。这类平台适合快速验证想法——比如你想看一个带加强筋的 L 形支架大概长什么样生成一下就知道。开源程序化建模框架CadQuery 和 OpenSCAD 是两条主流。CadQuery 基于 Python逻辑表达能力强适合复杂特征OpenSCAD 更像写代码建模语法简单但功能相对基础。真正让它们具备 text-to-cad 能力的关键是你把大模型当成代码生成器——用自然语言描述需求大模型输出 CadQuery 代码本地执行得到模型。这条路几乎没有新增成本只要你本地装好 Python 和 CadQuery 就行。专业 CAD 的内置 AI 助手国内外主流 CAD 厂商都在往这个方向发力Autodesk 在推广自己的 AI 辅助设计能力国产的中望 CAD 等也在逐步集成智能化功能。这些方案的优点是和原生格式无缝衔接缺点是目前开放的深度参差不齐有的还停留在帮你查命令而不是帮你生成模型。2.2 按使用场景选型我建议你按最终交付物来决定用哪条路场景推荐路线原因概念设计、视觉验证在线生成平台 / 网格生成速度快不需要太精确重点看形状结构件、机械零件程序化生成CadQuery/OpenSCAD有参数、有特征树后续改尺寸方便需要历史模型复用的企业检索 参数调整结合企业模型库保证设计一致性最终交付图纸生成后导入专业 CAD 再重建模特征树和图纸规范还在 CAD 里完成2.3 实际操作时如何保证输入质量很多人第一次用 text-to-cad 失败不是工具不行而是话没说清。自然语言最大的问题是省主语、省单位、省约束。你说一个圆盘带几个孔模型可能默认单位是英寸孔的数量也许给你 6 个而你想要 8 个。我的习惯是像写工程需求文档一样写提示词明确的几何类型、明确的尺寸数值、明确的单位、明确的特征数量、明确的空间关系。比如直径 120 毫米、厚度 10 毫米的圆盘中心有一个直径 20 毫米的通孔在直径 90 毫米的圆周上均匀分布 6 个直径 8 毫米的螺栓孔。这句话没有多余信息但模型生成结果的可用率会大幅提升。3. AI 生成只是前半场后半场还要在 CAD 里把活干完3.1 格式转换STL、STEP、DWG 到底该用哪个text-to-cad 生成的结果最终要落到工程流程里格式问题绕不开。STL 适合 3D 打印但进不了正式图纸STEP 是通用的三维交换格式几乎所有 CAD 软件都能读零件几何不会丢DWG 则是二维图纸的绝对主流但三维模型没法直接转成高质量 DWG必须回到 CAD 里做视图投影。所以我的建议是生成阶段用 STEP 做中间格式进入 CAD 后重建二维图纸再转 DWG。很多新手会把 STL 直接拖进 CAD发现软件卡成幻灯片面片数量太大特征也改不了这就是吃了格式的亏。3.2 把 AI 生成的模型并进现有图纸坑比想象中多生成模型只是零件你要的是把它们放进一套完整图纸里。这里就有图纸合并的学问。最常见的方式有两种一是直接复制粘贴块适合简单情况二是外部参照 XREF适合团队协作和频繁更新的场景。AI 生成模型的定位往往不准放进布局后你会发现原点对不上、比例不对而且模型自带的图层和颜色乱七八糟。我的做法是进入 CAD 后先建一个统一图层模板把 AI 生成的图元全部选中改到标准图层再按原点对齐。生成的模型大概率带着一堆无名图层像0_Part__Body这种名字不整理的话后期打印、批量统计图层都会出问题。3.3 交付环节绕不开的杂活字体缺失、PDF 导出、批量修改接进现有图纸后交付环节的杂活更是每个 CAD 人都躲不开的。打开别人发来的图纸提示缺少 SHX 字体显示一串问号这是 CAD 使用中最常见的老问题。解决方案就两条路下载对应的字体库或者用系统字体替换缺失字体。替换字体快但版式容易乱补字体库麻烦但排版不变。如果你经常收到外部图纸建议固定维护一套常用 SHX 字体目录一劳永逸。cad shx 字体大全这种东西不用刻意去背遇到一次补一次几次就齐了。然后是 CAD 转 PDF。很多初学者直接用默认设置导出出来的 PDF 线宽全都一样打印出来层次感全无。正确方式是用打印样式表把轮廓线、中心线、尺寸线分别设置颜色和线宽再通过打印到 PDF的方式输出。这样生成的 PDF 才能直接用于归档和发给客户评审。如果 AI 批量生成了几十个零件变体你不可能一个一个手动改属性。这时候 Python 批量修改就派上用场了用 ezdxf 这类库可以直接读写 DXF 文件批量改图层、改颜色、改块属性。这个环节我会在下一节结合案例一起讲。3.4 环境问题卸载不干净导致的二次安装失败还有一个容易被忽略却非常影响体验的问题CAD 装完不想要了想换版本或重新安装结果安装到一半报错失败。多数原因是卸载不干净——软件卸载后注册表条目、安装目录残留、许可服务、运行库版本冲突还在尤其是安装时报 C 2005 运行库错误基本就是旧版本运行时残留作祟。彻底卸载的正确顺序是先用自带卸载程序卸载再重启电脑然后手动删除安装目录剩余文件和用户配置目录最后用系统清理工具或注册表编辑器清理残留条目再重新安装。这个过程比较繁琐但能避免装新版本一直被旧残留卡住的恶性循环。别偷懒跳过重启那一步很多运行库服务不重启不会释放。4. 从一句话到交付图纸法兰盘生成全流程实录4.1 需求描述与提示词写法光讲理论没意思我用一个实际做过的法兰盘案例把整个流程串一遍。我的原始需求就一句话加工车间需要一个法兰盘直径 120 毫米厚度 10 毫米中心有个直径 20 毫米的孔周围 6 个 M8 螺栓孔均匀分布。这段需求口语化很重直接拿去给模型大概率给你生成一个中心孔明显偏大、螺栓孔大小靠猜的抽象作品。所以我先把它改写成结构化的提示词强调单位、几何关系和特征数量。改写后的提示词长这样生成一个 CadQuery 代码创建圆形法兰盘外径 120mm厚度 10mm中心通孔直径 20mm在直径 90mm 的圆周上均匀分布 6 个通孔每个孔径 8mm无倒角坐标系原点在圆盘底面圆心。每个约束都在明面上模型没有自己发挥空间生成结果的准确率会高很多。4.2 让模型输出 CadQuery 代码并本地执行把提示词交给大模型后它会输出类似这样的代码注意模型生成的代码不一定完美需要人工审查后再执行import cadquery as cq result ( cq.Workplane(XY) .circle(60) # 外径120mm .extrude(10) # 厚度10mm .faces(Z) .workplane() .hole(20) # 中心通孔直径20mm .workplane() .polarArray(45, 0, 6, 360) # 直径90mm圆周上6个孔 .circle(4) .cutBlind(-10) ) cq.exporters.export(result, flange.step)这里有几个细节需要核对外径 120 对应半径 60polarArray 的半径参数应该是 45 而不是 90因为阵列半径是直径的一半。孔径 8 对应圆半径 4。如果模型生成时把 90mm 当成半径写进去孔就会跑到直径 180mm 的圆周上这一步必须人工校验。这也是我说程序化生成需要懂一点数学的原因——模型代码生成器不是万无一失的橡皮擦。本地执行这段代码需要先装好 Python 和 CadQuery。验证无误后运行STEP 文件就出来了。4.3 把生成结果导入 CAD 做特征化重构STEP 文件导入中望 CAD 或 AutoCAD 里都能识别但导入后你会发现一个问题模型是一个整体特征树里只有一个实体没有中心孔螺栓孔这些你想改的东西。这是正常现象跨软件交换 STEP 后参数化特征通常会被固化。所以进 CAD 后我通常会做一步特征化重构把 AI 生成的模型作为位置参考回到 CAD 里用原生命令重新建一遍特征树。听起来有点多此一举但这一步的价值很大——重构后的模型特征完全属于当前 CAD 环境后续改孔径、加倒角都是在自家环境里轻松完成而不是永远对着一个改不动的石头。4.4 Python 批处理一次生成多个法兰盘变体重构完一个法兰盘之后你可能还需要直径 100、6 孔和直径 150、8 孔的变体。这时候手工重画三个模型太蠢了正确的做法是回到 CadQuery 代码层做循环批处理。我把尺寸参数抽成变量用循环一次性生成多个 STEP 文件再在 CAD 里用脚本批量导入。如果生成的是二维图纸场景可以用 ezdxf 直接修改 DXF 文件。比如把一批法兰盘圆孔从直径 8 统一改成直径 10import ezdxf doc ezdxf.readfile(flange_variants.dxf) msp doc.modelspace() for circle in msp.query(CIRCLE): if abs(circle.dxf.radius - 4.0) 0.01: # 原半径4 circle.dxf.radius 5.0 # 改为半径5 doc.saveas(flange_variants_updated.dxf)这个脚本看起来短但实际用起来能省掉大量重复劳动。批量对 CAD 修改的核心思路就是先用文本打开一批 DXF/DWG 看清结构和实体类型再写脚本按规则批量修改最后用 CAD 打开抽查结果。千万别跳过抽查这一步批量修改的 bug 往往是一批一起错。4.5 最终交付合并图纸、布局、转 PDF生成完变体、核对无误后我把法兰盘的二维视图放进统一模板外框用粗实线中心线和尺寸线用细线打印样式设置好颜色和线宽。然后新建布局插入视口调整显示比例标注尺寸和技术要求。这一步其实就是CAD 导入 layout的完整流程模型空间负责画图布局空间负责出图每个视口可以单独设定比例和显示范围。图纸最终要发给工艺部门评审我直接用打印到 PDF的方式输出选对打印样式表导出的 PDF 线宽分明、字体完整不会出现打印出来一团黑的情况。5. 我踩过的坑自然语言建模的隐藏边界与工程细节5.1 自然语言描述里的歧义单位、方向、默认厚度第一批坑几乎都是语言歧义带来的。你说一个 10mm 厚的板子模型可能默认拉伸方向是 Z 轴正方向但你的装配环境要求它是从某个定位面开始拉伸的。你说均匀分布 6 个孔模型可能从 X 轴正方向开始但工艺要求从某个特征对齐的位置开始。我的经验是涉及空间位置时把坐标系原点和起始角度写进提示词。涉及默认属性时主动声明无倒角、无圆角、无螺纹或带 C1 倒角。因为模型倾向于往复杂里做不写死它就会自作主张加斜面和圆角。5.2 工程语义缺失倒角、公差、螺纹不会自动出现text-to-cad 生成的模型几何正确不代表工程正确。真实零件要考虑加工工艺孔是不是通孔、螺纹是粗牙还是细牙、倒角是 C0.5 还是 C1、轴孔配合公差是 H7/g6。这些信息在自然语言里很难精确表达而且大模型难以理解制造工艺约束。所以我看到很多生成模型看起来精致实际没法加工——孔位没有公差标注圆角半径没按标准系列取数螺纹更是几乎不会生成。结论是text-to-cad 适合做前期的形态设计、方案推演和概念验证不适合直接出生产图纸。公差、工艺、标准件这些内容必须交给经验丰富的 CAD 工程师在后续重构中处理。5.3 命令和别名冲突f 命令用不了这类小毛病在 CAD 传统流程里还有一些老生常谈的问题会突然跳出来。比如有人问为什么我按 F 键圆角命令用不了。排查起来很简单先看输入法是不是全角状态全角状态下字母命令不生效再看命令行有没有执行到一半被其他命令打断最后检查别名配置文件 acad.pgp看 F 键的别名是不是被其他程序覆盖了。现在 AI 生成的图纸多了之后这类小问题变得更常见了因为 AI 生成的文件经常包含自定义命令、新插件、自定义别名一旦你装到没有对应配置的环境里命令冲突就很频繁。遇到这种情况别急着重装软件先检查别名和命令定义。5.4 行业化差异不是所有 CAD 场景都适合直接套用同样叫 CAD机械、建筑、测绘、服装、钣金是完全不同的玩法。text-to-cad 在机械零件上的效果相对好是因为机械零件有清晰的几何特征和参数化约束。但你让它生成复杂地形那就麻烦了——地形图要的是真实测绘高程数据不是模型想象出来的山包。CAD 切地形这类工作本质是对测绘数据的处理和剖面分析和文本生成模型完全是两回事。服装 CAD 更特殊版型需要的是经验曲线和面料属性参数化规则极其复杂目前通用的 text-to-cad 很难直接生成合格的服装裁片。钣金 CAD 要好一些因为钣金件有明确的折弯系数、展开公式和工艺规则像金林钣金 CAD 这类专业工具本身就内置了大量参数规则如果能配合程序化生成思路反而容易做出落地成果。一句话垂直行业要等垂直模型通用模型解决不了所有专属问题。6. 把 text-to-cad 变成你自己的生产力几条务实建议6.1 先积累自己的提示词模板库我现在的习惯是每成功生成一个可用的模型就把当时的提示词结构化整理成一个模板存到一个固定的备忘录里。模板里标注清楚哪些是必须写的尺寸哪些地方容易产生歧义哪些描述会导出错误特征。这个过程有点像早期积累 CAD 图库前期投入时间后面收益越来越大。一个标准的模板长这样几何类型 关键尺寸带单位 位置关系 特征数量 倒角/公差约定 坐标系原点和起始方向。这套模板也可以反向用来让模型帮你反推一个已有模型对应的提示词做二次修改。6.2 构建语言—参数工作流纯 text-to-cad 工作流不一定适合所有人我个人的做法是把自然语言生成作为参数输入的一部分。具体说保留传统 CAD 的特征树但用文本描述来控制最核心的几个参数。比如法兰盘的外径、厚度、孔径、孔数这些用一个简单的配置文件就能管理。然后通过 Python 脚本批量驱动 CadQuery 生成变体再导入 CAD 做工艺补充。这种组合方式把文本、代码、传统 CAD 三者串在了一起既保留了传统 CAD 的严谨和规范又获得了生成式工具的效率和灵活性。6.3 思维方式的转变比工具更新更重要用了大半年 text-to-cad我最大的感受是它真正改变的未必是出图速度而是你面对一个全新需求时的第一反应。以前接到任务第一反应是我会画什么、该用什么命令现在第一反应是这个需求能不能被拆解成有限个参数、用一段代码自动化地变出来。这个转变对新人尤其有价值。CAD 制图初学入门时大家总在纠结命令记不牢其实制图规范和工程常识才是更底层的能力。text-to-cad 帮我们把把命令变成图形这一步自动化了但知道什么叫合理的设计、什么叫可加工的零件、什么叫规范的图纸的能力反而变得更加稀缺、也更加值钱。我现在的工作流里文本生成已经不是新鲜事真正让我花时间的是审查模型代码里的几何逻辑核对工程约束有没有遗漏再把结果接进一套干净的传统 CAD 流程中交付出去。AI 替我把手速提上来了但经验、判断和工程底线还得靠自己一版一版图纸地磨。