news 2026/10/27 21:13:46

text-to-cad 从原理到实战:AI 生成可编辑 CAD 模型的完整链路

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
text-to-cad 从原理到实战:AI 生成可编辑 CAD 模型的完整链路

最近几个月,text-to-cad 这个词在我常逛的几个技术社区里刷屏频率明显高了不少。不少做机械设计、产品结构、3D打印的朋友跑来问我:这玩意是不是真的能像 Midjourney 出图那样,敲一句话就给我一个能用的 CAD 模型?我的回答是:能,但和多数人想象的不太一样。它不是"AI 画了个模型图",而是"AI 替你写了一套建模过程,再让 CAD 内核把它算成真实几何体"。这篇内容我想把 text-to-cad 从概念、原理、工具选型到实战链路完整拆一遍,重点讲清楚哪些工作流现在就能落地,哪些必须在后处理阶段人工兜底。无论你是工程师、创客还是刚接触参数化建模的新手,都能从中找到自己可以直接抄作业的部分。

1. text-to-cad 到底是什么,为什么突然火起来

1.1 一句话解释:它是"文本到可编辑几何"的翻译管线

先给个准确定义:text-to-cad 指的是通过自然语言描述,自动生成符合 CAD 语义的几何模型文件,核心产物是可直接编辑、可装配、可出工程图的 B-rep 实体或参数化脚本,而不是一张好看的渲染图。

这句话里有两个关键点容易被忽略。第一,"CAD 语义"意味着它输出的不是像素,而是点、线、面、约束、尺寸、特征树这些传统建模软件里真实存在的东西。第二,"可编辑"意味着模型不是一次性快照——你拿到手之后还能改参数、调尺寸、重新生成变体。这跟 AI 生图工具输出的 PNG 有本质区别,也跟"文生3D"工具输出的三角网格(mesh)完全不是一个物种。

我见过不少朋友第一次接触 text-to-cad 时的反应:对着屏幕输入"帮我画一个带四个安装孔的法兰盘",结果得到的是一个 OBJ 网格文件,导入 Fusion 360 后一编辑就散架。这不是 text-to-cad 骗人,而是那个工具根本走的文生3D路线,输出物压根不是 CAD 实体。所以第一篇内容必须先把这个分水岭讲清楚:你要的是"能进装配体、能出工程图、能减重优化"的模型,就必须认准 B-rep / 参数化脚本 / 特征树 这类标的物。

1.2 为什么偏偏是这两年火起来

text-to-cad 的爆发不是单一技术进步推动的,而是三条线正好汇到了一起。

第一条线是大语言模型(LLM)的代码生成能力足够强了。CAD 建模本质上是"用几何内核 API 描述操作序列",OpenSCAD 是写 CSG 表达式,CadQuery 是写 Python 代码,FreeCAD 的 Python 控制台也是代码。LLM 最擅长的恰恰就是"把你的自然语言指令翻译成结构化的操作序列"。早期模型生成的脚本错漏百出,现在主流模型在简单零件上的脚本通过率已经相当可观。

第二条线是参数化建模生态的成熟。以前 CAD 自动化被各大商业软件厂商锁在高墙里,现在开源社区把 OpenSCAD、CadQuery、Build123d 这些工具打磨得足够好用,几何内核也可以直接通过 Python 调用。text-to-cad 的落地路径变成了:LLM 生成脚本 → 脚本调用内核 API → 内核算出实体 → 导出 STEP/STL。整条链路全是开放协议,没有哪个环节必须依赖某个商业软件。

第三条线是制造端的需求倒逼。3D 打印、CNC 加工、非标自动化行业的订单越来越碎片化,设计人员花大量时间做重复的"改尺寸出图"工作。这些工作不仅枯燥,而且恰恰是最容易被参数化脚本替代的部分。text-to-cad 正好切中这个痛点:与其手动拖拽建模,不如描述需求让 AI 先把初稿铺好,工程师只做审查和修改。

1.3 它和普通 AI 生图、文生3D 的边界在哪

很多人把 text-to-cad 和 AI 生图、文生3D 混为一谈,实际三者目标完全不同。

  • AI 生图(如 Midjourney、Stable Diffusion):输出二维像素矩阵,信息量是"看起来像什么",没有任何几何精度可言。
  • 文生3D(如常见的手办模型生成工具):输出三角网格,形状接近但拓扑杂乱,面数高,不能直接用于机械仿真和加工仿真。
  • text-to-cad:输出参数化模型或 B-rep 实体,有精确尺寸、有特征历史、能改参、能装配、能出图。

我举一个实际生产里的例子。客户说"需要一个直径 80mm 的圆形法兰,厚度 10mm,四个 M6 通孔均布在直径 62mm 的螺栓圆上,外圈倒角 C1"。文生3D 工具大概率给你一个看起来像圆盘的网格,但孔位、孔径、倒角全部是假的;text-to-cad 工具则应该输出一个带完整特征树的 STEP 文件,每个孔都是真正的通孔特征,倒角是可修改的参数。后者才能进 CNC 程序,前者只能拿去当摆件。

搞清楚这个边界之后,下面才好继续聊原理和实操。

2. 从提示词到模型文件:一条链路拆开看

2.1 主流路线一:LLM 生成参数化脚本,内核负责算几何

目前最成熟、最可控的 text-to-cad 路线可以概括为四段式流水线:

  1. 用户输入自然语言描述。
  2. LLM 将描述翻译成一段参数化建模脚本(OpenSCAD、CadQuery、Build123d 或某个软件的 Python API)。
  3. 脚本交给对应的几何内核执行,内核依次执行建模操作,最终生成实体。
  4. 实体导出为 STEP、STL、BREP 等标准格式。

这条路线最大的优点是每一步都可干预。脚本是文本,错了可以直接改;参数是变量,想调尺寸改一个数字就行;内核执行结果可以预览,不满意就回去改自然语言描述或者直接改脚本。

以 CadQuery 为例,一个带法兰的圆管可能是这样的脚本:

import cadquery as cq result = ( cq.Workplane("XY") .circle(40) # 外圆直径80 .extrude(10) # 厚度10 .faces(">Z") .workplane() .circle(30) # 内孔直径60 .cutThruAll() # 打通 .faces(">Z") .workplane() .pushPoints([(31, 0), (-31, 0), (0, 31), (0, -31)]) # 四个孔位 .circle(1.5) # M3通孔半径1.5 .cutThruAll() ) cq.exporters.export(result, "flange.step")

这段脚本不复杂,但 LLM 要"理解"你的自然语言描述并正确生成它,需要具备几个能力:理解几何术语(法兰、凸台、肋板、倒角),理解制造约束(通孔、盲孔、螺纹底孔),以及把离散操作组织成正确的特征顺序。这正好是现在主流 LLM 的强项。

2.2 主流路线二:扩散模型生成几何,再转换 B-rep

另一条路线借鉴了文生图里的扩散模型思路,直接在体素空间或点云空间里"生成形状",然后通过 Marching Cubes 提取等值面得到网格,再做网格到 B-rep 的转换。

这条路线在学术圈很热,因为它的上限更高——理论上不需要理解 CAD 操作序列,直接把"形状"涌现出来,更适合自由曲面、有机形态这类难以用参数化特征描述的东西。

但落到工程实践里,它有三个绕不开的痛点:

  • 精度不足:扩散模型输出的体素网格通常是 128³ 或 256³ 分辨率,转换成实体后尺寸误差可能达到毫米量级,而机加工件动辄要求 ±0.05mm 甚至更高。
  • 拓扑质量差:网格转 B-rep 的过程中容易产生非流形边、自相交面、缝隙等拓扑错误,需要大量修复工作。
  • 特征不可编辑:转换后的 B-rep 是"哑几何",没有特征树,改一个孔径等于重新建模。

所以目前业界落地项目基本都以"脚本生成"为主路线,扩散模型更多用在概念设计阶段,作为灵感来源。

2.3 为什么"脚本生成"路线目前更实用

直接说结论:对于 90% 的机械结构件,脚本生成路线都比扩散模型路线实用,原因有三个。

第一,精确尺寸可保证。脚本里写circle(40)就是直径 80mm,内核算出来一丝不差。扩散模型做不到这一点,它只会"猜一个大概"。

第二,可追溯、可复审。脚本是人的语言,工程师拿到手能看懂每一步在干嘛,哪里不对改哪里。扩散生成的几何怎么改?没法改,只能重新生成。

第三,和现有设计流程兼容。现代 CAD 系统全部支持特征树、参数驱动、脚本建模。脚本生成的模型进入装配体后,还能通过修改驱动尺寸同步更新零件列表,这是企业真正需要的。

如果你的需求只是快速看一眼"这个造型大概什么样",扩散模型路线没问题;但只要你打算把它制造出来,几乎必然选择脚本生成。

2.4 一个关键概念:约束、特征树和参数

理解 text-to-cad 的产出物,必须先理解 CAD 模型的三个核心概念。

  • 约束:规定几何元素之间的关系,比如"这两个圆同心""这条边和那条边平行""这个面到那个面的距离是 25mm"。约束越完整,模型越稳定,AI 生成时也越不容易跑偏。
  • 特征树:记录建模操作的先后顺序。先拉伸、再切孔、最后倒角,每一个操作都挂在树上。修改树的中间节点,后面所有特征会自动重新计算。
  • 参数:特征树上的关键尺寸抽出来就是参数,比如长度、直径、厚度。参数化模型的魅力在于改一个参数,全模型联动。

text-to-cad 的输出质量高低,很大程度上取决于生成的脚本是否充分使用了约束和参数,而不是写一堆魔法数字。比如"法兰厚度 10mm"应该定义成thickness = 10,后面所有引用都用变量,将来改厚度不用翻遍整段脚本。这也是我在后文提示词技巧部分会反复强调的点。

3. 现成工具与选型:哪些能用、各有什么脾气

3.1 商业与半商业工具:Zoo.dev 和 Autodesk 的探索

先聊我实际体验过的几个有代表性的工具,避免云评测。

第一个是 Zoo.dev 推出的 Text-to-CAD。它的定位非常明确:不是生成一个视图,而是直接生成真实几何。用下来几个感受:对标准机械零件的理解不错,像"支架""法兰""带孔圆盘"这些常见物能生成相当规整的 feature tree;输出格式直接给 STEP,导入 Fusion 360、SolidWorks 都能继续编辑;但自由曲面、非对称形状、多实体装配体的生成质量明显弱于简单零件。它比较适合"在装配设计早期快速生成标准结构件"的场景。

第二个是 Autodesk 的 Project Bernini,还处在技术预览阶段。它在生成式 AI 上尝试的是"多模态条件生成"——不但支持文本,还支持输入一张图片作为参考。我测试的感受是:它在处理"功能性几何"上有自己的一套思路,能把输入图像中的核心结构抽象出来,但生成结果距离可用于生产的程度还有差距,毕竟还没正式面向公众开放。

还有一类工具不走"云端生成"路线,而是把 LLM 嵌进 CAD 软件里。这类工具直接建模,生成的不是 STEP 文件,而是模型的草图和特征操作。好处是和现有设计环境无缝衔接;坏处也很明显:受限于宿主软件 API 的能力边界,生成功能复杂时容易报错。

3.2 开源方案:LLM 加 OpenSCAD / CadQuery 的本地组合

对工程师来说,最能掌控全局的其实是开源方案。我目前最常用的组合是本地 LLM 或 API + CadQuery + FreeCAD。

逻辑是这样的:CadQuery 负责把脚本变成实体,FreeCAD 负责预览和导出,LLM 负责生成脚本。三者全是开源的,数据也完全在自己手里,不用担心模型文件被平台拿走,也不用担心云端服务挂了导致整个设计流程停摆。

如果你更熟悉 OpenSCAD,也完全可以把 CadQuery 替换成 OpenSCAD。OpenSCAD 的语法更简单(就是 CSG 布尔运算的堆积木),LLM 生成起来错误率更低,适合初学者。

如果你不想自己搭环境,也可以直接用 Hugging Face 上现成的 text-to-cad 模型。我之前试过几个专门针对 CAD 脚本微调的模型,效果和通用旗舰模型互有胜负:专用模型在"标准零件"上更稳,通用模型在"理解复杂自然语言描述"上更强。

3.3 选型对照表:按需求对号入座

需求场景推荐方案理由
快速生成标准结构件并直接编辑Zoo.dev Text-to-CAD输出 STEP,特征树完整,云端免安装
本地部署、数据安全优先LLM + CadQuery / OpenSCAD全开源,脚本可控,无数据外传
概念造型探索、无精确尺寸要求文生3D / 扩散模型类工具速度快,形态丰富,但不适合制造
在现有 CAD 软件内工作软件内置 AI 插件环境无缝切换,但功能受限
批量生成参数化变体自建 LLM + 脚本流水线可以批处理、改参数重新生成

选型这件事没有银弹。我的建议是:如果你只做样板和演示,Zoo.dev 这类云服务足够;如果你要在我自己团队里落地,我一定会选开源脚本方案,因为只有脚本才能进版本管理、才能 diff、才能自动跑回归测试。

4. 上手实操:用开源方案跑通一个简单零件

4.1 环境准备:装齐四件套

实际操作之前先装环境。我用的是 Windows 11 + WSL2 + Python 3.11,下面这些步骤在 Ubuntu 上同样适用。

第一步,安装 CadQuery:

pip install cadquery

第二步,安装 FreeCAD,作为 STEP 预览工具。从 FreeCAD 官方源下载对应系统版本即可,安装过程没什么特别之处。

第三步,安装 Jupyter Notebook 或者 VS Code,用于交互式调试 CadQuery 脚本。我强烈建议你用 Jupyter,因为 CadQuery 可以直接在单元格里显示三视图预览,调试效率高很多:

from cadquery import exporters result = cq.Workplane("XY").box(10, 10, 10) exporters.export(result, "test.step")

第四步,准备好 LLM 的访问渠道。自用的话选一个主流大模型 API 就行,或者用本地部署的模型。这一步各家情况不同,我不展开说具体平台,关键是确保 LLM 能稳定输出 CadQuery 代码。

环境就绪后,做一个简单自检:跑通上面那个 10mm 立方体的脚本,确认能导出 STEP 并能在 FreeCAD 里打开。

4.2 提示词怎么写才"稳":五个实测有效的技巧

提示词是 text-to-cad 里最容易被低估的环节。很多人觉得"AI 应该能理解我的话",实际测试几次就会发现,模棱两可的描述得到的一定是模棱两可的模型。下面这五个技巧是我在几十次实测里总结出来的:

  1. 写清楚基准和坐标系。开头就写明"以 XY 平面为底面""Z 轴向上"之类的话,避免模型朝向随机。
  2. 每个尺寸都带上单位。写"直径 80mm"而不是"直径80",避免模型在 mm 和 inch 之间乱猜。
  3. 明确特征之间的位置关系。"四个孔均布在直径 62mm 的螺栓圆上"比"四个孔在圆盘上"严谨得多。
  4. 告诉它该用哪种特征。需要通孔就写"cutThruAll",需要盲孔就写"盲孔深度 8mm"。LLM 知道 CadQuery API,你不指明它可能选错方法。
  5. 一次只生成一个主要特征。宁可分三次对话把零件做完,也不要让 AI 一次生成一个十特征复杂件。生成脚本出错后,分步调试的难度低一个量级。

下面我示范一条合格的提示词:

生成一个 CadQuery 脚本:圆形法兰盘,以 XY 平面为底面,Z 轴向上。外径 80mm,厚度 10mm,中心开直径 30mm 的通孔。在直径 62mm 的螺栓圆上均布 4 个 M6 通孔(直径 6.5mm)。所有锐边添加 1mm 倒角。请使用参数化变量定义所有尺寸。

短短几句话,把几何、尺寸、特征类型、参数化要求全说清楚了。AI 生成脚本后你真正要改的地方会非常少。

4.3 完整示例:从描述到 STEP 文件的生成过程

我实际跑一次上面的提示词。LLM 输出的 CadQuery 脚本大致长这样:

import cadquery as cq # 参数化定义 outer_diameter = 80 flange_thickness = 10 center_hole_diameter = 30 bolt_circle_diameter = 62 bolt_hole_diameter = 6.5 num_bolts = 4 chamfer_size = 1 # 第一步:创建法兰主体 result = ( cq.Workplane("XY") .circle(outer_diameter / 2) .extrude(flange_thickness) # 第二步:切中心孔 .faces(">Z") .workplane() .circle(center_hole_diameter / 2) .cutThruAll() # 第三步:均布4个螺栓孔 .faces(">Z") .workplane() .pushPoints([ (bolt_circle_diameter / 2, 0), (0, bolt_circle_diameter / 2), (-bolt_circle_diameter / 2, 0), (0, -bolt_circle_diameter / 2), ]) .circle(bolt_hole_diameter / 2) .cutThruAll() ) # 第四步:所有外侧锐边倒角 result = result.edges().chamfer(chamfer_size) cq.exporters.export(result, "flange_with_chamfer.step")

把这段脚本保存成flange.py,在终端执行:

python flange.py

正常情况下会在当前目录生成一个flange_with_chamfer.step文件,用 FreeCAD 打开就能看到带完整特征的模型。

这里有个细节值得注意:pushPoints我用了四个坐标点来均布孔位。如果螺栓孔数量改成 6 个,手动写坐标就太蠢了。更专业的做法是用循环:

import math points = [] for i in range(num_bolts): angle = 2 * math.pi * i / num_bolts points.append(( bolt_circle_diameter / 2 * math.cos(angle), bolt_circle_diameter / 2 * math.sin(angle), ))

这一步其实就是"参数化"的雏形:你把数量定义成变量,脚本自动算坐标。text-to-cad 的价值不仅是生成一个固定模型,更重要的是帮你建立这套"变量驱动几何"的思路。

4.4 输出检查与格式转换:别急着拿去加工

STEP 文件生成之后,我建议你做三件事再进入下一环节:

  1. 用 FreeCAD 打开,检查坐标系朝向和视觉比例是否符合预期。
  2. 在 FreeCAD 的"Part"工作台里运行"检查几何体"命令,看有没有无效几何、自相交、重复面。
  3. 如果需要 3D 打印,导出 STL 前先确认网格密度合适:太粗糙会丢失倒角大细节,太细腻会导致文件切不动。

STL 导出可以用 CadQuery 直接搞定:

cq.exporters.export(result, "flange.stl", tolerance=0.01, angularTolerance=0.1)

tolerance是曲面离散化的弦高误差,0.01mm 对大多数 FDM 打印来说足够精细;angularTolerance控制相邻三角面的角度变化上限。这两个参数别乱调,太小文件巨大,太大细节丢失。

5. 实测中的翻车现场与排查思路

5.1 单位与公差:最常见的隐形杀手

text-to-cad 最容易翻车的点不是模型生成不出来,而是生成出来的模型尺寸全错。我遇到过最典型的一次:提示词写"直径 1 英寸的轴",AI 生成的脚本里直接写成了circle(1),在 CadQuery 默认毫米单位下变成了直径 1mm 的针。原因很简单——LLM 对"英寸"和"毫米"的换算需要显式给出。

我的排查思路是这样的:

  • 第一步,在提示词里强制声明"所有尺寸单位均为毫米,如果用户使用英寸请换算为毫米"。
  • 第二步,在生成脚本的头部加入单位断言注释,比如# All dimensions in millimeters,让 LLM 在生成后面代码时保持上下文一致。
  • 第三步,打开模型后先用测量工具量一个基准尺寸,确认无误再继续。

公差方面更要小心。text-to-cad 生成的模型是名义尺寸(nominal size),它不可能知道你的配合要求是 H7/g6 还是滑动配合。所以"生成模型用于概念确认"可以,"生成模型直接出加工图"还差得远。

5.2 几何拓扑问题:自相交、缝隙与非流形

脚本生成的模型理论上是内核算出来的,不应该有拓扑问题。但实际操作里,复杂的特征顺序完全可能产生意外结果。我遇到过几种典型情况:

  • 自相交:凸台和主体重叠但合并顺序错了,导致实体内部出现互相贯穿的面。
  • 缝隙:两个面本应焊接在一起,但公差误差导致中间有一条肉眼看不见的缝,后续切片软件会在这里报错。
  • 非流形边:一条边被三个以上面共享,这在实体建模里是非法的,导出 STL 后切片器直接崩溃。

排查手段很简单:FreeCAD 的"Part → 检查几何体"能识别绝大多数这类问题;更基础的办法是在导出 STL 后用切片软件(比如 PrusaSlicer、Cura)的"修复网格"功能试一遍,如果报错或者自动修复后出现大洞,基本就是拓扑问题。

遇到这类问题,我一般不手动修网格,而是回头改脚本。因为网格修完就不具备参数化能力了,下次改尺寸又是重新来一遍。正确做法是:检查脚本特征顺序,把布尔操作改成更稳妥的顺序(先合并所有加料特征,再一次性切所有减料特征),重新生成。

5.3 实体化失败:从网格回到实体有多难

如果你是走扩散模型/文生3D 的路子,最后一定绕不开"网格转实体"这个坎。三角网格本质上只是曲面逼近,要变成 CAD 实体需要做曲面拟合。

实用一点的流程是:

  1. 从网格提取特征曲线(尖锐边、边界线)。
  2. 用这些曲线重建样条曲面。
  3. 把曲面缝合(sew)成封闭壳。
  4. 用壳填充成实体。

这四步每步都可能失败。网格分辨率不够,提取出来的曲线就带着锯齿;曲面缝合时出现微小缝隙,实体化就会报错。我自己的实测结论是:对于基准平面、圆柱、圆锥这些解析曲面占主体的零件,网格转实体成功率尚可;一旦出现自由曲面,基本要做好大修甚至重新建模的心理准备。

所以我在前面反复强调脚本路线。不是因为它"高级",而是因为它绕开了这一整类麻烦。

5.4 提示词歧义:你以为是 AI 的问题,其实是需求没说清

有一次我想生成一个"L 形支架",提示词写的是"L-shaped bracket, 80mm long, 40mm wide, 3mm thick"。结果 AI 给了三种理解:

  • 俯视看是 L 形,厚度 3mm;
  • 侧视看是 L 形,长臂 80mm、短臂 40mm;
  • 两个长方形拉伸后布尔合并,但到底哪边是 40 有歧义。

这台怪不了 AI。人类工程师之间说"L形支架",配合图纸和手势能确认;但文本通道里只有字面信息。解决方法是把"视图方位"和"几何构成规则"写清楚:

L形支架,从正面看呈 L 形。竖直臂高 80mm,水平臂长 60mm,两者厚度均为 3mm,宽度均为 40mm。竖直臂底边与水平臂左端连接,连接处外倒角 R5。

这样每个数字都有明确的归属实体,AI 生成的脚本可预期性大幅提升。

5.5 完整的排查链路:从报错信息倒推问题点

分享一套我自己的排查逻辑,遇到 text-to-cad 出的问题基本上按这个顺序来:

现象优先怀疑对象排查动作
脚本运行直接抛异常LLM 生成的代码 API 用错看报错信息是哪个方法/参数不合法,对照 CadQuery 文档修正
脚本能跑但结果是空零件特征顺序问题,切料发生在加料前检查是哪个cut操作把整个实体切没了
模型有但尺寸离谱单位/数值换算错误回看提示词,确认是否有单位声明
模型能导出但无法切片拓扑问题FreeCAD 检查几何体,修复后重导
STEP 导入其他软件特征丢失导出格式和版本不兼容换STEP的 AP214 协议再导出

这套链路不一定每次都能一击命中,但它能帮你快速缩小问题范围,而不是对着一个出错的模型盲目乱试。

6. 给文本生成结果"兜底":后处理与人工修正

6.1 为什么不能拿第一版结果直接用

有人可能会问:既然 text-to-cad 生成这么方便,能不能生成完直接下单加工?我的建议是,加工前至少要过一次人工评审。理由有三个:

第一,AI 对"设计意图"的理解是概率性的。它看到"法兰盘"会生成一个标准的法兰盘,但你的实际使用场景可能需要特定的密封槽、特定的螺栓沉头角度、特定的加强筋布局。这些细节提示词里没写,AI 就不会凭空生成。

第二,标准规范无法内化。每个公司都有自己的制图标准、公差标准和材料标准,这些内容几乎不可能全部写进提示词。

第三,制造工艺约束。AI 生成的特征在几何上合法,但在工艺上不一定合理。比如一个深腔结构,AI 生成了一个 90° 内角,实际 CNC 加工根本做不到,需要改成圆角过渡。

所以正确的流程是:AI 生成初稿 → 工程师修改 → 工艺评审 → 再生成变体 → 定稿。AI 承担的是"从 0 到 80 分"的工作,剩下的 20 分必须由人来补。

6.2 常用后处理操作:参数微调、布尔运算、倒角补全

我在实际操作里最常用的后处理操作有三个。

第一个是参数微调。脚本里的变量就是天然的修改入口。客户说法兰厚度从 10mm 改成 12mm,改flange_thickness = 12,重新跑一遍脚本,新模型就出来了。这是 text-to-cad 相比传统手工建模最大的效率优势。

第二个是布尔运算。AI 生成的多个零件可能需要合并、切除或取交集。CadQuery 里这几种操作都有现成 API:

combined = part_a.union(part_b) cut_result = part_a.cut(part_c) intersect_result = part_a.intersect(part_d)

注意执行布尔运算前,最好先做一遍几何检查,避免因为拓扑瑕疵导致运算失败。

第三个是倒角和圆角补全。AI 经常漏掉这些细节,因为提示词里没有明确要求。拿到 STEP 后用 FreeCAD 的倒角工具批量处理,比在脚本里逐个指定快得多。但如果这个零件后续还需要参数化迭代,我建议还是补回脚本里,保持"设计源头可驱动"。

6.3 把 AI 结果接进设计评审流程

团队协作时,我可以给 text-to-cad 的产物建立一条简单的评审链路:

  • 第一步,AI 生成模型的同时,自动导出一份"设计说明文件",里面写清楚关键尺寸、材料假设、特征列表。这个文件可以由 LLM 一并生成。
  • 第二步,把 STEP 文件和说明文件发到评审群/评审系统,工程师对照设计意图逐项勾选。
  • 第三步,评审意见反馈到提示词和脚本变量,重新生成下一版。

这套流程跑起来后,AI 输出的质量会随着评审反馈逐渐提高——因为你实际上是在不断精调提示词和脚本模板。用了两三周后我明显感觉到,团队里沉淀出的提示词模板和脚本模板越来越可靠,新员工只要照着模板改参数,就能产出过去需要十年经验才能画出的零件初稿。

7. 我的体会:什么时候该用 text-to-cad,什么时候别用

7.1 高效场景:概念验证、非标件沟通、标准件参数化

用了几十次 text-to-cad 之后,我总结出三个真正能带来效率提升的场景。

第一是方案阶段的概念验证。客户问你"这个安装座能不能放进 300×300 的机箱里",你不需要开 CAD 从零画,直接让 AI 生成一个带基本外形的模型,导入装配体里看一眼干涉就完事。前后不到十分钟,比传统建模快一个数量级。

第二是非标件的跨角色沟通。采购、供应商、销售往往不具备读工程图的能力,但大家都能看懂一个三维模型。遇到非标件询价,我直接让 AI 根据文字描述生成 STL,发过去对方转一下就能看,沟通效率极高。

第三是标准件和参数化系列件的批量生成。比如做一套从 M3 到 M20 的螺栓垫片模型库,传统方式要手动画十几个模型,用 text-to-cad 加循环脚本,一次生成全部规格,还保证每个模型的特征树结构完全一致。

7.2 不适用场景:高精度配合、复杂曲面 A 面、企业标准合规

反过来,有三个场景我现在坚决不用 text-to-cad。

第一是高精度配合件。轴和孔的公差配合、齿轮啮合、凸轮轮廓这些需要严格尺寸链计算的场景,AI 生成模型只能提供形状,无法保证公差链的完整性。误差哪怕只有 0.1mm,装配时就可能卡死。

第二是复杂曲面 A 面。汽车外饰、消费电子外观件这类对曲面质量要求极高的设计,需要 Class A 曲面、曲率连续、光影评审。扩散模型生成的网格或 AI 生成的扫掠面,曲率分布完全不可控,现阶段想都不要想。

第三是涉及企业标准合规的零件。比如压力容器法兰、航空支架,这些零件有明确的行业标准、材料规范和取证要求。text-to-cad 只能生成几何形状,不具备生成合规设计依据的能力。这类工作必须由持证工程师按标准规范手动完成。

7.3 未来扩展:从单零件到装配体、从文本到 BOM

最后聊一点趋势。text-to-cad 现在能做到的是单零件生成,但真正的产品设计是装配体——几十上百个零件相互配合。我判断下一步会朝着两个方向发展:

方向一是装配级生成。用户用一段话描述整个机构:包括哪些零件、零件之间什么连接关系、运动关系是什么。系统先生成零件清单,再逐个生成零件,最后自动装配。这套流程的难点不在单零件生成,而在"约束关系"的表达和传递。

方向二从文本直接生成设计文档。AI 生成模型的同时,自动输出工程图、材料清单(BOM)、加工工艺建议。我看到已有项目把 CadQuery 脚本和 BOM 表格生成绑在一起:脚本里每个特征自动带出材料类型、表面处理、采购属性,这样模型一变,整套文档同步更新。

我个人的实际操作体会是:text-to-cad 最值得投入的时间,不是琢磨怎么让 AI 一步到位,而是把提示词模板、脚本模板、后处理流程沉淀成团队资产。模型生成能力会越来越强,但围绕它建立的工程化流程才是真正能复用的东西。你把第一版跑通后,花半天时间把流程固化下来,后面每次使用省下的时间远不止半天。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/27 21:13:17

企业AI落地难题与JVS-AI套件的破局之道

1. 企业AI落地为何频频"水土不服"? 去年我参与过一家制造业客户的AI质检系统部署,他们前期投入了200多万采购某国际大厂的视觉检测方案,结果上线三个月就沦为摆设。不是因为技术不先进,而是产线环境的光照变化导致误判率…

作者头像 李华
网站建设 2026/10/27 21:12:11

Redis主从复制深度解析:从配置到高可用的五阶演进

1. 为什么主从复制不是“配个IP就能跑”,而是Redis高可用的生死线?“300分钟吃透分布式缓存”这个标题里,“吃透”两个字很关键——它不是让你背命令、抄配置,而是要你真正理解:当主节点突然宕机,从节点凭什…

作者头像 李华
网站建设 2026/10/27 21:12:09

Qt多选下拉框:带复选框的ComboBox实现与状态管理

简介:本资源是一个面向Windows桌面开发者的自定义控件实现方案,聚焦于解决标准ComboBox不支持多选的痛点,提供开箱即用的带CheckBox功能的多选组合框(MultiSelectComboBox),适用于权限配置、标签筛选、设置…

作者头像 李华
网站建设 2026/10/27 21:12:01

SXSSFWorkbook百万级Excel导出实战:内存优化与生产避坑指南

1. 项目概述:为什么百万级Excel导入不能只靠XSSFWorkbook?“使用SXSSFWorkbook实现高效百万数据导入Excel的方法”——这个标题里藏着一个在企业级数据处理中反复被踩坑、又反复被验证的硬核真相:当你的系统需要把几十万甚至上百万行业务数据…

作者头像 李华
网站建设 2026/10/27 21:11:40

jsoncpp 1.9.5 预编译二进制包:Linux x86_64 快速集成指南

简介:本资源为已编译的jsoncpp C JSON处理库预构建包,专为Visual Studio开发者设计,解决C项目中快速集成JSON解析与生成能力的刚需。无需自行编译源码,开箱即用,显著降低环境配置门槛,特别适合课程实验、毕…

作者头像 李华
网站建设 2026/10/27 21:10:52

AI辅助UE5图形渲染:从三角形基础到动态建模

1. 项目概述:当AI导师遇上UE渲染引擎上周在UE社区看到个有趣现象:越来越多开发者开始用AI辅助学习Unreal Engine的图形渲染管线。这让我想起自己第一次用ChatGPT解释"为什么三角形是3D建模的原子单位"时的震撼——原来那些藏在渲染管线底层的数…

作者头像 李华