作为一个在CAD领域摸爬滚打十来年的人,我第一次看到text-to-cad这个词时,第一反应是:这不就是渲染圈早就喊过的“一句话生成模型”吗?后来真在项目里跑通一次,才发现自己还是天真了。它并不是一个概念,而是两条技术路线——一条是神经网络直接“糊”出几何体,另一条是大模型生成可执行的CAD脚本,再让程序精确建模。前一条看着唬人,后一条才是能真正落进日常设计流程里的东西。
这篇文章不讲天书,只讲三件事:text-to-cad到底是怎么工作的、我亲测可行的一套本地搭建方案,以及我在把它接入AutoCAD、中望CAD这类常用软件时踩过的坑。适合想在流程里引入AI辅助的机械设计、建筑制图、电气CAD从业者,也适合刚入门CAD、想知道这玩意儿跟自己到底有什么关系的新手。
1. 先搞清楚text-to-cad解决的是什么问题
1.1 给计算机描述一个零件,难在“说人话”
做过设计的人都有这种经历:你脑子里想的明明是一个直径50、厚度8、带6个均布孔的圆法兰,但把它从无到有画出来,要经历建基准、拉伸、旋转、阵列、布尔运算等一连串操作。哪怕是快捷键飞起的老手,一个中等复杂度的零件也要几分钟;换成实习生,可能要半天。
text-to-cad想解决的核心问题,就是把“画图”这一步的时间压到最短。你直接用自然语言描述要的东西,程序帮你把建模操作做了。说白了,它替换的不是设计能力,而是“建模手艺”。很多人担心这会不会取代设计师,我的理解正好相反:CAD操作从来不是设计工作的价值所在,值钱的是你脑子里的方案和约束。text-to-cad这类工具真正想干掉的是“右手画图”的重复劳动,让你把时间省下来改方案、调参数。
它适合谁?一句话概括:凡是工作中需要大量重复建模、出图前反复改参数的人,都应该关注。建模工程师、工艺工程师、结构设计、非标自动化、做电气柜壳体的,甚至带课程设计的老师,都是潜在用户。
1.2 两条技术路线:生成几何 vs 生成脚本
我一开始以为text-to-cad只有一种实现方式,就是输入文字直接输出一个STL或者STEP文件。研究了一圈才发现,目前主流方案分为两条路线,思路完全不同,落地难度也完全不一样。
第一条路线是“直接生成几何”,代表做法是训练像Point-E、Shap-E那样的模型,输入文本描述,输出点云或体素,再转换成网格。优点是对用户零门槛、速度快,缺点是结果往往只是“长得像”,没有精确的尺寸关系,没有装配约束,工程上很难直接用。
第二条路线是“生成建模脚本”,比如通过大模型把文字转换成CadQuery、OpenSCAD或者AutoCAD脚本语言的代码,由脚本程序精确建模。这条路生成的模型天生带参数、带约束,尺寸标注严谨,可以放进装配体。缺点是要求模型先把可参数化的逻辑想清楚,生成的脚本偶尔得人工修正。
我后文给的实操方案走的是第二条路线,原因很简单:我是做设计的,不是做概念玩具的。最终要进加工或出图的数据,必须有严格的几何与尺寸定义,脚本路线才可能做到这一点。
2. 技术原理拆解:AI是怎么把一句话变成模型的
2.1 第一环:文本理解,从自然语言到设计意图
这一步的核心不是“分词”,而是把一句口语化的描述映射到结构化的参数表。比如“一个直径50厚度8带6个均布孔的法兰”,系统要做的事是:识别主体(法兰)、识别关键尺寸(直径50、厚度8)、识别特征(6个均布孔)。这背后通常是一个经过微调的语言模型,它比通用聊天模型更懂机械设计的词汇。
打个比方,就像你给一个资深绘图员口述要求,他说“懂了”,但他脑子里其实在干一件事:把你的话拆成“对象+尺寸+特征+约束”四个栏位,填进一张结构化表格。语言模型干的差不多就是这个,只不过它看过大量图纸说明和建模教程,更懂行话。
实际用下来,我发现描述越接近“约束式表达”,生成效果越好。“直径50厚度8带6个均布孔的法兰”要好过“一个圆形片片上有洞”。前者给的是参数,后者给的是类比,而类比在几何生成里最不可靠。
2.2 第二环:几何生成,点云、B-rep与参数化
模型理解意图之后,就要把意图变成几何。这里有两种做法:一种是把文字转成点云坐标,再把点云拟合成曲面,擅长自由曲面、有机形态;另一种是通过程序化建模库,直接用代码生成精确的B-rep边界表示模型,擅长规矩的机械零件。
B-rep模型的核心信息是“面-边-点”拓扑关系,以及每个面对应的数学曲面方程。STEP、IGES这类格式存的就是这个。你拿到的模型之所以能精确倒角、能装配、能算重量,靠的就是这种表示——它像建筑师的精确施工图,而不是雕塑家手里糊出来的泥巴。
CadQuery这类库之所以适合text-to-cad,是因为它把建模操作做成了可编程的积木:选平面、拉伸、开孔、倒角、阵列,每一步都是确定性的代码。大模型学习过这些库的用法后,完全有能力根据一段文本生成一段正确的建模代码,代码一跑,精确模型就出来了。
2.3 第三环:约束与拓扑,保证模型“能用”的关键
如果说前两环决定模型“像不像”,第三环决定“能不能用”。一个长得再像的模型,如果拓扑是坏的,导进CAD软件后会出现曲面撕裂、实体检查失败、工程图剖切报错,那它就是废的。
多数text-to-cad工具会有后处理环节:修复重复边、合并共面、重建法线、检查实体封闭性。但这一步在自动流程里做得远不如人工精细。所以我建议,凡是AI生成的模型,进入正式流程前都要用软件的“实体检查/修复”功能过一遍。
我遇到最多的拓扑问题有三个:重复面、零厚度特征、孔轴线偏离基准面。前两个可以靠软件修复,第三个基本只能重新生成。这也解释了为什么我不建议直接把AI原始输出扔给下游:中间缺的这一步“体检”,得习惯自己补上。
3. 我的实操方案:用本地Python跑通text-to-cad
3.1 环境准备与工具选择
这个方案不需要性能怪兽,普通笔记本就够。我用的配置:Python 3.10、CadQuery 2.4(2.5的预发布版也行)、OpenSCAD做交叉验证,再加一个免费的STEP浏览器看结果。电脑是几年前买的Win11笔记本,内存16G,全程无压力。
安装CadQuery的坑值得单独说:它依赖很多底层几何内核库,直接pip install cadquery很容易撞上环境冲突。我的建议是用conda建一个干净的虚拟环境,再执行conda install -c conda-forge cadquery。这一步能省掉后面80%的依赖噩梦。
另一个建议是装上Jupyter Lab。CadQuery和Jupyter配合特别舒服——实时看到模型预览,改参数马上重跑,调试效率高很多。我不建议新手一上来就扎进VS Code里盲写,你得先看得到模型,才谈得上修改。
3.2 实操演示:一句话生成一个带法兰的轴套
我们以“带法兰的轴套”为例,这是设备设计里很常见的零件。假设需求是:轴套主体直径25,内孔直径12,长度40;法兰直径45,厚度5,带4个直径6的均布安装孔。
我写提示词时不写太长句子,按“主体+特征+约束”的结构拆开,翻译成CadQuery代码后,核心部分长这样:
import cadquery as cq result = ( cq.Workplane("XY") .circle(25 / 2).extrude(40) # 主体外圆,直径25,长度40 .faces(">Z").circle(12 / 2).cutThruAll() # 内孔直径12 .faces("<Z").circle(45 / 2).extrude(5) # 法兰,直径45,厚5 ) # 法兰上的4个均布安装孔,直径6 result = ( result.faces("<Z[1]") .workplane() .pushPoints([(45/2 - 4, 0), (0, 45/2 - 4), (-45/2 + 4, 0), (0, -45/2 + 4)]) .circle(6 / 2).cutThruAll() ) cq.exporters.export(result, "flanged_bushing.step")跑完这段代码,你会得到一个STEP文件,里面有完整三维实体和精确尺寸,整个过程不到10秒。把直径从25改成32,改一行代码再跑一次,新模型就出来了——这就是参数化的价值。
注意,这里法兰安装孔的定位用的是“半径减边距”的做法,实际设计时应该根据螺栓规格和法兰强度计算,而不是随便取个4mm边距。AI生成的代码能给你一个起点,但工程判断永远得人来做。
3.3 把AI输出导入AutoCAD、中望CAD验证
生成STEP文件只是第一步,验证才谈得上落地。我的做法分三步。
第一步,用免费的STEP浏览器检查外形,确认没有破面、没有怪异扭曲。这一步很快,但能挡住大部分低级错误。
第二步,导入AutoCAD。说实话,AutoCAD对STEP的支持不算最顺手,新版可以用IMPORT直接进,低版本多半要报错或转成SAT、IGES再导入。我实际更常用的做法是:先在中立格式里验证,再通过转换工具转成DWG或者SAT,再进AutoCAD。别指望每一步都丝滑,能顺利进去已经是胜利。
第三步,如果是要和中望CAD用户协作,导入后另存为对应版本的DWG或DXF,比如2007版、2010版,不要直接发最新格式的文件。大家软件版本不一样时,最抓瞎。
我实测下来,AutoCAD和中望CAD这类软件对标准STEP文件的导入都很顺畅,真正出问题的几乎都在单位、图层和线宽设置上,而不是几何本身。
4. 落地时最坑我的五个问题
4.1 单位:看起来是小问题,坑起来要人命
我吃过一次大亏:AI生成的一个模型,内部单位是毫米,我却用英寸的工程模板打开,结果一个直径50的法兰在屏幕上变成1270毫米的庞然大物,整个装配全乱了。这事的讽刺之处在于,单位问题在每步操作里都显得不重要——生成脚本时没人管,看预览时也没人注意,直到装配体炸了才发现。
排查这类问题,我习惯在导入后立刻用“距离测量”验证一个已知尺寸。你生成的是直径50的孔,测出来是50说明单位没问题;测出来是1.969,那就是毫米和英寸打架了,50÷25.4≈1.969。趁项目还没推进,赶紧统一单位。我现在给所有text-to-cad生成的脚本,第一行固定写清单位,出口统一转成毫米,从根源上杜绝后患。
4.2 拓扑错误:转STEP后修复到崩溃
第二个高频问题是拓扑错误。不同CAD软件对STEP文件的读取宽容度不同,同一个文件在A软件里没毛病,在B软件里就报警。我遇到过导出STEP后一个圆柱面法线方向反了,导致后面布尔运算全部失败;也遇到过打开模型提示“实体不是流形”,看着像多面体,却死活选不了面。
针对这种情况,我总结了一套处理顺序:先用实体修复工具跑一遍,再做布尔运算;如果修复失效,就降低STEP版本,用AP203而不是AP214再试。有时候问题压根不在几何,而在版本兼容。实在不行,就把模型切成几块单独导入,哪里坏了修哪里,比抱着整个文件死磕快得多。
4.3 提示词:AI不是神仙,别指望随口一说就有好结果
很多人第一次用text-to-cad,上来就是“帮我画个好看的零件”,然后傻等。我的经验是:提示词里至少要包含主体形状、关键尺寸、特征数量三个要素,缺一项,生成结果就只能靠猜。
我常用的提示词模板是:主体是XX形状,外径或长宽高是XX,厚度XX,上面有X个直径为XX的均布孔,底部有尺寸为XX的安装槽。按这个模板写,成功率会高很多。描述里不要出现“好看”“结实”“高级感”这种主观词,AI没法把你的审美翻译成公差和材料。倒是有一次我写了“壁厚不小于3”,出来的模型就真的把壁厚控制在了3.2——具体约束远比形容词有用。
4.4 版本兼容:最新格式不一定是最优解
CAD软件的版本互相咬合极紧。我遇到过同事用新版AutoCAD存了DWG,我这边老版本打开直接提示“图形文件无效”。text-to-cad生成的STEP文件也一样,可能包含新版STEP标准里才有的元素。
我的习惯是生成通用性最强的格式,而不是最新格式。给机械同事发STEP AP203,给建筑同事发DWG 2007或2010,给电气同事发DXF。宁可牺牲点高级特性,换来“发给谁都能开”。另外,如果你常和用中望CAD这类国产软件的同事协作,也别一上来就发高版本格式,他们大多还是以DWG/DXF互转为主,发之前先问一句对方版本,能省一大堆沟通成本。
4.5 通用模型对应不上专有功能
最后一个坑更多出在行业软件场景里。热搜词里“cad里面的bl命令在cass里面是什么”“cad切地形”这类问题,本质是通用CAD模型在某个行业软件里没有对应的功能定义。text-to-cad生成的模型也一样,它是通用几何,不会自动带上地质符号、电气元件图例、盘扣脚手架节点参数这类行业属性。
所以如果你做的是行业化CAD工作,别指望通用text-to-cad一把梭。更可行的路线是:用text-to-cad出基础几何,再进入行业软件里补充属性、挂接图例、设置图层。比如“金林钣金cad版”这类专用场景,AI能给你的是钣金件的特征草图,剩下那些折弯系数、展开图规则,还得靠专业工具和人工经验。
我把这五个问题整理成一张速查表,遇到类似情况可以对着看:
| 问题方向 | 典型表现 | 首选处理 |
|---|---|---|
| 单位不一致 | 模型比例突变 | 统一毫米制,用距离测量验证已知尺寸 |
| 拓扑错误 | 曲面撕裂、无法选择面 | 实体修复 → 降STEP版本 → 分块导入 |
| 提示词含糊 | 生成结果靠猜 | 按“主体+尺寸+特征+约束”模板描述 |
| 版本不兼容 | 文件打不开、属性丢失 | 发AP203、DWG2007、DXF等通用格式 |
| 行业属性缺失 | 图例、参数、图层丢失 | 通用模型加行业软件二次挂接 |
5. 普通CAD用户到底能从text-to-cad里得到什么
5.1 从热搜词看需求:大家真正想要的是“少干活”
我注意到和CAD相关的搜索词大量集中在“cad下载”“cad安装教程”“cad制图初学入门”“cad图纸合并”“cad快速看”这类词上。这说明什么?说明绝大多数用户的痛点根本不是建模,而是软件门槛和重复劳动。
那些“安装cad一直出现c++2005错误”“cad激活页面脚本发生错误”的词,我看着特别有共鸣。我自己早年也背着安装包到处跑,每次装到一半看到运行库报错就头皮发麻。这类问题本质是环境冲突,和会不会画图毫无关系,但能把人卡在门口进不去。如果你现在正被这类问题困住,优先用官方渠道的安装包,装之前把旧版本残留清理干净,装完再补运行库。网上很多人建议“彻底卸载再重装”,那确实能解决大部分问题,但操作前一定要把自定义菜单和个人配置备份出来——我干过清了所有配置重新画图的蠢事。
还有“cad图纸合并”“cad导入layout步骤详解”这种词,本质上是流程化操作。流程化恰恰是脚本自动化最好的素材:把合并图纸时的块和图层整理写成脚本,把模型空间挪到图纸空间的重复步骤做成工具,一次能省半小时。text-to-cad附带的大模型代码生成能力,在这些地方远比你想象中好用。
5.2 值得先试的几个场景
第一个场景是方案阶段的快速概念模型。客户说“要一个能放4个M8螺栓的L型支架”,你不需要立刻打开CAD,先用text-to-cad生成一个带4个孔径9的L型支架做参照,再进正式设计里细化倒角、考虑加强筋。真正价值是沟通成本变低了,大家一起盯着三维说话,而不是对着文字和草图猜。
第二个场景是标准件的参数化变体。很多企业有标准件库,但散落在不同工程师电脑里,今天要用外径60的版本,明天要用外径75的版本。有了text-to-cad加持,你可以把一套标准件用脚本管理起来,需要什么规格就输入对应参数让AI生成,省掉从历史模型堆里翻找的时间。
第三个场景是给程序化设计打底子。如果你本来就有用CadQuery、OpenSCAD生成模型的习惯,现在可以直接让AI帮你搭脚本骨架。你先用自然语言描述结构,AI给出带参数的代码,你负责审查逻辑、调整关键参数。我刚开始用这个方法时,能省掉一半从零写脚本的时间,后面越来越熟练,省的时间比例还在往上走。
第四个场景是图纸交付与批处理。热搜词里“cad转pdf”“cad快速看”“cad看图王”背后其实是同一类需求:图纸要能被人方便打开、查看、审批。text-to-cad附带的大模型能力,同样可以用来写批处理脚本,把一堆STEP或DWG统一转成PDF、整理图框图层、批量改图签文字。这些活累人又不产生设计价值,交给脚本正合适。
另外,热搜词里还有“电气cad安装”“盘扣cad插件免费版”“金林钣金cad版”这类行业专用词。它们背后是同一个逻辑:行业化CAD用户不只要通用线框,还想要“内置了专用工具”的建模环境。text-to-cad现在给不了你完整的行业插件,但它能做一件更基础的事:先把你需要的专用零件参数化生成出来,再导入行业软件里挂接符号、图例、属性。相当于先用AI造“毛坯”,再手动“精装修”。
5.3 给新手的冷启动路线
如果你今天才第一次听说text-to-cad,先别急着扎进代码里。我的建议是分三步走,每一步都有一个明确的学习目标。
第一步是建立直观认识。找一个在线的text-to-cad工具,输入几个简单描述,比如“一个直径40的圆柱体”或“一块边长100的方板上有4个孔”,认真看看输出结果的精度、单位、特征是否和你预期一致。这一步会让你快速理解这类工具的强项和短板。我见过不少人在这一步停下来,他们发现AI生成的东西“看起来像”但不“完全对”,然后就放弃了。这其实是学习提示词技巧的最佳时机。
第二步是按我第3节的方法搭好本地环境。安装Python、CadQuery,把轴套示例跑通,然后试着改数字——直径改成35、内孔改成15、法兰上孔的数量改成6个,观察结果怎么变。这一步不是为了让你成为程序员,而是理解“参数化建模”的核心概念:你改的从来不是图,而是参数。
第三步是拿一个你过去真正画过的小零件做测试。翻出旧图纸,先自己用文字描述它,再让AI生成脚本,最后把输出的STEP导入CAD对照尺寸。结果大概率是三种:AI完美复现,输错参数改两行代码就好,或者AI生成了完全错误的东西,但帮你重新梳理了一遍设计意图。无论哪种,你都已经比昨天更快了。
最后再分享一个体会。text-to-cad这个词看着很酷,但它真正让我觉得有价值的时刻,不是模型生成成功的那一瞬间,而是后来做设计变更的时候。以前客户说“孔径从12改成14”,我要回到历史树里查关联尺寸,可能牵一发动全身;现在改一下提示词里的数字,重新生成模型,几秒钟拿到新版本,改图变成了改词。AI没有取代我做设计判断,它只是把最耗时的部分变成了可以随时重来的游戏。