
做机械设计这行的多少都碰过这种场景脑子里有个大概形状要在 CAD 里把它落成能出图、能加工的零件顺利的话两三个小时不顺利一天就搭进去了。我最近大半年一直在折腾AI文字生成CAD模型这条路——把自然语言的提示词喂给大模型让它吐出可执行的建模脚本跑出实体再一路推到能打印、能上机床的成品。这篇文章不聊概念只讲这条链路上每一步我实际是怎么做的、卡在哪里、怎么绕过去。会一点基础建模、想把这套流程跑通的朋友可以直接照着抄完全没碰过 CAD 的小白也能看因为我会把每一层为什么必须存在讲清楚做增材和机加工的老师傅翻到第四部分的可制造性清单就够了那部分是我踩坑最多的地方。先把结论摆前面提示词到可制造零件之间隔着的不是一次生成而是一条五段的流水线——需求结构化、脚本生成、几何校验、工艺适配、实物验证。任何一段偷懒后面都要加倍还回来。我见过太多演示视频一句话生成一个花瓶看着漂亮导出 STL 一量壁厚 0.4mm打印机根本出不来。演示和交付之间的差距全在这条流水线的细节里。1. 先认清链路文字和实体之间隔着三层1.1 大模型不可能直接吐出几何体这一点必须先说透不然方向就错了。语言模型的本质是预测下一个 token它输出的是一维的符号序列而 CAD 实体是三维空间里的拓扑与几何——面、边、顶点、B-rep 的连续性约束。这两者之间没有直接通道。所谓AI 生成模型实际发生的是模型把自然语言翻译成一种机器能执行的几何描述再由几何内核去算出实体。这个几何描述目前只有两种形态。第一种是代码比如 OpenSCAD 的 DSL、CadQuery 的 Python API代码执行一次几何就出来一次第二种是参数比如一份 JSON里面写着长度 90、宽度 60、孔径 4.4由一段固定的宿主程序读进去驱动建模。前者灵活能表达复杂拓扑后者稳定适合做系列化。我自己的做法是两者混用主体结构用代码尺寸族用 JSON 覆盖。理解了这一层你就不会再问为什么它生成的模型尺寸不对——尺寸不对是因为脚本里的数字不对改数字就行不用重新生成。这是整条链路里最让人安心的一点任何问题都是可定位的。1.2 四条技术路线的取舍市面上能跑通的路子大概有四条我全试过各有各的脾气。路线典型工具输出格式优势主要坑点适用场景脚本化 B-rep 建模CadQuery、build123dSTEP / STL参数化、精度高、能出工程图学习曲线陡API 幻觉多结构件、装配件、要加工的零件脚本化 CSG 建模OpenSCADSTL语法极简模型生成成功率高布尔运算易产生非流形网格外观件、快速验证、创意造型端到端网格生成各类 text-to-3D 方案网格造型自由一句话出形尺寸不可控、无参数、拓扑脏概念草图、渲染参考商业 CAD 参数驱动各类 CAD 的脚本接口原生特征树可直接进现有设计流程接口封闭调试成本高已有设计体系内的自动化我的默认选择是第一条CadQuery 为主。原因很实在它底层跑的是 OCCT 内核输出的是真正的 B-rep 实体导出的 STEP 能被下游的 CAM 软件、工程图模块直接吃下去不会出现网格看着对、一加工全错的情况。OpenSCAD 我留着做快速验证尤其是那些形状古怪、只需要看个大概的场合它的语法短模型写错的概率低。端到端网格生成我只用来做外观概念绝对不进制造环节——那类模型的尺寸是看起来像不是量出来是。1.3 我固定的技术栈长什么样环境是 Python 3.11核心库三个cadquery或build123d负责建模trimesh负责网格侧的校验numpy做数值处理。切片用常规的桌面切片器看工程图就导 STEP 进任意一个能读 STEP 的 CAD。为什么不选别的语言因为大模型对 Python 的语料覆盖最厚API 调用写对的概率明显更高这一点在长期迭代里省下的时间非常可观。提示不要一上来就追求一句话出成品。先让模型生成一个能跑通的 20 行脚本跑通了再加特征。每次只增加一个变量出问题才知道是谁的锅。2. 提示词不是聊天把它写成一份需求文档2.1 一个可以反复用的提示词骨架大部分人失败在第一句话上。帮我生成一个支架模型只能猜。它猜壁厚 2mm猜孔位随便放猜完你还得从头改。我的做法是把提示词当需求文档写固定成七段式每次只换内容不换结构。【角色】你是一名熟悉 CadQuery 的机械设计工程师。 【零件功能】某桌面设备的电机固定支架承受约 3kg 静载无高频振动。 【几何要求】 - 底板长 90mm × 宽 60mm × 厚 5mm - 竖板位于底板 60mm 方向一端高 45mm厚 5mm - 底板四角各一个 M4 通孔孔心距板边 9mm - 竖板上两个 M4 通孔水平间距 40mm距底板上表面 20mm 【材料与工艺】6061 铝板CNC 铣削批量 20 件。 【制造约束】 - 所有内圆角半径不小于 3mm对应 Ø6 立铣刀 - 最小壁厚不小于 4mm - 孔边到零件边缘距离不小于 6mm 【输出要求】 - 使用 CadQuery 2.x 的 Python API - 所有尺寸作为函数默认参数集中写在函数签名里 - 不要使用伪代码不要省略号不要注释掉的分支 - 结尾导出 STEP 和 STL并打印包围盒尺寸与体积 【自检】在函数内加入 assert校验包围盒三个方向尺寸与设计值偏差小于 0.01mm。这个模板里最容易被忽略但最有用的是【制造约束】和【自检】两段。前者把能不能做出来提前塞进了生成阶段后者让脚本自己先暴露一次错误。我统计过自己前 50 次生成加了自检之后能一次跑通的比例从三成多提到了七成以上。2.2 把差不多大换成数值和区间自然语言里最害人的词是适当合理稍微。模型对这些词的理解和你完全不在一个频道。凡是能用数字表达的一律给数字实在拿不准的给区间并要求它说明取值依据。比如壁厚不要写壁厚适中写壁厚 4~6mm优先取 5mm理由是 CNC 加工时 4mm 以下容易让刀。模型拿到这种描述输出的参数往往就落在合理区间里而且会在注释里带上理由你回头 review 的时候一眼能看出它是不是在胡说。孔位也一样。M4 螺栓的通孔标准孔径是 4.5mm但 FDM 打印会因为挤出胀宽导致孔变小通常要放到 4.6~4.7mmCNC 加工则按 4.5mm 走配合精度高的地方用 4.2mm 做铰孔前打底。这些差异必须写进提示词不能让模型自己觉得。2.3 三条硬约束把幻觉压下去大模型写 CAD 脚本最爱犯的错是编 API。它会写出一个看起来特别合理、但库里根本不存在的方法名比如给 Workplane 加一个.makeBracket()。压这个问题的办法有三条我每次都写进提示词。第一给白名单。直接把当前版本可用的方法列表贴给它注明只允许使用以下方法其余一律不许调用。列表不用全把常用的十几个列出来就够比如box、cylinder、hole、cut、union、fillet、faces、edges、workplane、pushPoints、extrude、translate、rotate。这一条能把 API 幻觉砍掉大半。第二禁止伪代码。明确要求不允许出现...、# 此处省略、your_code_here一旦模型知道你不接受占位符它就会老老实实把每一行写完。第三要求先给参数表再给代码。让它在写代码之前先用表格把每个参数的名称、取值、单位、依据列一遍。这一步相当于强制它做一次设计计算很多尺寸冲突在这一步就能被发现比跑完代码再看模型省事得多。2.4 报错回灌的正确姿势脚本跑不起来是常态关键是怎么把错误喂回去。我的做法是把完整的 traceback 原样贴回加上一句只修改出错的那一段其余代码保持不变输出完整的修改后函数。不要只贴最后一行错误信息也不要自己转述错误模型需要看到调用栈才能判断是参数问题还是 API 问题。还有个更省事的技巧当模型第二次改还是错就别让它改了让它输出一份最小复现脚本——只保留出错的那三五行。最小脚本往往一眼就能看出问题比如坐标系搞反了、单位混了、选择的面根本不是你想要的那个面。这个习惯帮我省掉了大量来回。3. 建模脚本实操从参数到 STEP3.1 环境准备依赖不多装起来很快。python -m venv venv source venv/bin/activate # Windows 下用 venv\Scripts\activate pip install cadquery trimesh numpyCadQuery 依赖 OCCT 的预编译包主流平台都有 wheel一般不用自己编译。装完之后跑一句python -c import cadquery; print(cadquery.__version__)确认能导入。版本号一定要记下来写进提示词里——不同大版本之间 API 有变动模型默认按它训练语料里的版本来写版本对不上就会莫名其妙报错。3.2 完整案例某桌面设备的电机固定支架上面那份需求文档喂进去模型给出的第一版代码我整理成了下面这样。注意参数全在函数签名里一眼能改。import cadquery as cq def make_bracket( L90.0, # 底板长度 W60.0, # 底板宽度 T5.0, # 板厚 H45.0, # 竖板高度 hole_d4.5, # M4 通孔直径 edge9.0, # 孔心到板边距离 ): # 1. 底板 base cq.Workplane(XY).box(L, W, T, centered(True, True, False)) # 2. 底板四角安装孔 px, py L / 2 - edge, W / 2 - edge base ( base.faces(Z).workplane() .pushPoints([(px, py), (-px, py), (-px, -py), (px, -py)]) .hole(hole_d) ) # 3. 竖板贴在 W 方向的一端 upright ( cq.Workplane(XY) .box(L, T, H, centered(True, True, False)) .translate((0, W / 2 - T / 2, T)) ) # 4. 竖板上两个电机安装孔沿 X 对称 pins [] for x in (-20.0, 20.0): pin ( cq.Workplane(XZ) .center(x, T 20.0) .circle(hole_d / 2) .extrude(T 4.0) # 沿 -Y 方向拉伸 .translate((0, W / 2 2.0, 0)) ) pins.append(pin) for p in pins: upright upright.cut(p) # 5. 合并 part base.union(upright) # 6. 自检 bb part.val().BoundingBox() assert abs(bb.xlen - L) 0.01, fX 向尺寸异常: {bb.xlen} assert abs(bb.ylen - W) 0.01, fY 向尺寸异常: {bb.ylen} assert abs(bb.zlen - (T H)) 0.01, fZ 向尺寸异常: {bb.zlen} # 7. 导出 cq.exporters.export(part, bracket.step) cq.exporters.export(part, bracket.stl, tolerance0.01, angularTolerance0.1) print(f包围盒: {bb.xlen:.2f} x {bb.ylen:.2f} x {bb.zlen:.2f}) return part if __name__ __main__: make_bracket()这段代码里有两个地方值得单独说。第一个是.faces(Z).workplane()之后pushPoints的坐标。选择顶面之后工作平面的原点通常落在该面的中心所以后面给的坐标是相对于板中心的不是相对于整机的绝对坐标。这个坑我在最开始连着踩了三次每次孔都跑到零件外面去。第二个是 XZ 平面上的拉伸方向。cq.Workplane(XZ)的法向是 -Y所以.extrude()正值是往 -Y 走。我把它 translate 到W/2 2.0的位置再往 -Y 拉T 4.0正好从W/2 2拉到W/2 - T - 2穿透了位于[W/2 - T, W/2]区间的竖板。这类方向问题光看代码是看不出来的必须跑一遍看结果。3.3 几何自检几行代码挡住大部分低级错误导出成功不代表模型正确。我固定跑三项检查每项都只有几行但救过我很多次。第一项水密性与法向一致性。这一步针对 STL。import trimesh m trimesh.load(bracket.stl) m.process(validateTrue) # 合并重复顶点、修复法向 print(水密:, m.is_watertight) print(法向一致:, m.is_winding_consistent) print(体积:, round(m.volume, 2), mm^3) print(包围盒:, m.bounds[1] - m.bounds[0])is_watertight为 False 意味着网格有破洞切片器要么拒绝加载要么在切片时自动补洞补出一堆意外结构。is_winding_consistent为 False 更隐蔽模型的表面法向有正有反切片出来的内外判断会乱表现为实心区域变成空腔。第二项壁厚抽样。用射线法做个粗略估计够用了。import numpy as np, trimesh m trimesh.load(bracket.stl) m.process(validateTrue) pts, fidx trimesh.sample.sample_surface(m, 5000) normals m.face_normals[fidx] origins pts - normals * 1e-4 hits, ray_idx, tri_idx m.ray.intersects_location( origins, -normals, multiple_hitsFalse ) dist np.linalg.norm(hits - origins[ray_idx], axis1) print(最小厚度:, round(dist.min(), 3)) print(1% 分位:, round(np.percentile(dist, 1), 3))看最小值容易误判——尖角附近的射线可能斜穿过去量出来偏大或偏小。我更关注 1% 分位数这个值低于工艺下限才需要真去改。这个方法不算精确但对有没有明显薄壁这个判断足够了。第三项体积合理性。拿体积和手算的估算值对一下。上面这个支架底板 90×60×5 是 27000 mm³竖板 90×5×45 是 20250 mm³减去重叠和孔应该在 46000 mm³ 上下。如果跑出来是 4600 或者 460000不用看别的肯定是单位错了或者某个特征没生成出来。这个检查最土但最快。注意trimesh.load()读 STL 时不会自动合并重复顶点直接用is_watertight判断经常会得到 False。必须先process(validateTrue)或者merge_vertices()否则你会被假警报折腾半天。3.4 参数化与族表一次生成多规格复用单件建模只是起点。实际项目里同一个结构往往有好几个规格我习惯把尺寸抽成 JSON用一层薄薄的驱动脚本去批量生成。import json, cadquery as cq from bracket import make_bracket # 上面那个函数 with open(variants.json) as f: variants json.load(f) for v in variants: part make_bracket(**v[params]) cq.exporters.export(part, fout/{v[name]}.step)配套的variants.json长这样[ {name: bracket_S, params: {L: 70, W: 50, T: 4, H: 35}}, {name: bracket_M, params: {L: 90, W: 60, T: 5, H: 45}}, {name: bracket_L, params: {L: 120, W: 80, T: 6, H: 55}} ]这么做的好处是改一处结构只需要改一次函数所有规格自动跟着变。而且每次生成的 STEP 文件名带规格后缀版本管理清爽很多。我用 Git 管这些脚本和 JSON每次改动都有记录比在 CAD 软件里靠另存为堆一堆final_v3_真的最终版强太多。4. 可制造性把演示件改成能落地的零件4.1 工艺先定几何后调这一节是我最想强调的。很多人拿到一个能显示的模型就开始找打印机结果发现壁太薄、悬垂太多、孔位对不上。正确顺序是先确定工艺再让几何去适配工艺。同一份几何走 FDM 打印和走 CNC 铣削改法完全相反打印要加厚、要加倒角、要预留收缩铣削要减少内尖角、要保证刀具可达、要考虑装夹。所以我在提示词阶段就会把工艺写死不让模型在通用状态下发挥。写了FDM 打印它就会考虑悬垂角写了CNC 铣削它就会考虑刀具半径。两者的输出差异非常大。4.2 增材制造几个必须守住的数值FDM 打印的几何约束我总结成一张表每次出图前对着过一遍。项目建议值说明最小壁厚≥ 1.2mm0.4 喷嘴等于 3 圈挤出线宽低于这个值填充率无法保证最小立柱直径≥ 2.4mm细柱在打印中容易被喷头带倒悬垂角≤ 45°超过这个角度需要支撑支撑面质量差最小孔径≥ 2mm更小的孔打印后基本堵死建议打底孔后钻孔孔径补偿0.1~0.2mm挤出胀宽导致孔变小具体值按机器实测水平孔补偿0.15~0.25mm圆度差需要额外余量层间结合弱面避免垂直拉伸受力方向垂直于层平面时强度下降明显圆角≥ 0.5mm锐边容易翘曲和刮手孔径补偿这一项网上给的值五花八门从 0.05 到 0.3 都有人说。我的建议是自己测打一块测试片上面开 3.0、3.2、3.4、3.6、3.8、4.0 六个孔打完拿卡尺量算出你这台机器的平均偏差以后所有孔都按这个值补偿。我手上的机器稳定偏小 0.12mm用这个数补偿之后M4 螺栓的配合就从来没出过问题。收缩补偿是另一回事PLA 大概在 0.2% 左右ABS 能到 0.8%。90mm 的件ABS 会缩 0.7mm这在装配上已经能感觉出来了。所以我做 ABS 件的时候会在脚本里加一个全局缩放系数建模尺寸乘以 1.008打出来正好。4.3 减材与钣金另一套完全不同的硬约束CNC 铣削最核心的约束是刀具可达性。任何内凹的直角铣刀都进不去因为刀是圆的。所以模型里所有内圆角半径必须大于等于刀具半径。用 Ø6 的刀内圆角就得不小于 R3。这条如果建模时没做CAM 阶段就得改图重来。深宽比也得控制。型腔深度除以刀具直径铝件一般不超过 6钢件不超过 4超过之后刀具刚性不足会让刀、振纹、尺寸超差。还有一个容易被忽略的点薄壁装夹变形。3mm 以下的薄壁铣完松开夹具会弹回来尺寸直接跑掉。这种地方要么加筋要么留余量分两次加工要么改设计。钣金是第三套逻辑。折弯内半径一般不小于板厚孔到折弯线的距离要不小于2.5 × 板厚 折弯半径否则孔会被拉变形。展开尺寸要算 K 因子薄板大概在 0.4~0.5 之间具体跟材料、折弯半径与板厚的比值有关。这部分如果让 AI 生成一定要在提示词里把 K 因子和折弯扣除明确写出来不然它给你的展开图基本没法用。工艺关键几何约束常见踩坑FDM 打印壁厚 ≥1.2mm悬垂 ≤45°孔径补偿 0.1~0.2mm孔变小、支撑面粗糙、细柱断裂SLA 打印壁厚 ≥1mm需排液孔最小特征 ≥0.3mm残液固化堵孔、大平面翘曲CNC 铣削内圆角 ≥ 刀具半径深宽比 ≤4~6尖角加工不到、薄壁变形、二次装夹误差钣金折弯内 R ≥ 板厚孔边距 ≥2.5tR展开尺寸偏差、孔变形、折弯回弹激光切割最小孔径 ≈ 板厚间距 ≥ 板厚小孔烧边、密集孔热变形4.4 公差与配合别指望打印件直接装配这一块最容易翻车。打印出来的件尺寸公差通常在 ±0.2mm 这个量级指望它做精密配合不现实。我的经验是分级处理。结构性连接比如螺栓穿过通孔留 0.3~0.4mm 间隙也就是 M4 螺栓开 4.4~4.5mm 的孔装进去有轻微晃动但能拧紧就行。定位性配合比如一个轴要插进孔里同心留 0.15~0.2mm 间隙装进去手感顺滑、不晃。需要刚性固定的地方比如轴承位就别硬做了改成打印底孔再铰孔或者用螺纹嵌件。螺纹嵌件的底孔尺寸是个固定值M3 的热熔铜螺母一般用 4.0mm 底孔M4 用 5.0mm具体按你买的嵌件外径减 0.1~0.2mm 来定。装的时候烙铁温度 240~260℃垂直压入别旋转旋转会把孔壁搅烂。配合类型单边间隙典型场景间隙配合0.15~0.25mm需频繁拆装的插接件过渡配合0.05~0.10mm定位销、对中结构过盈配合-0.05~-0.10mm不需拆卸的压入件打印件慎用螺纹孔底孔按嵌件外径 -0.15mm热熔铜螺母预埋螺栓通孔公称直径 0.3~0.4mmM3 取 3.4M4 取 4.44.5 一份可以照着打勾的检查清单我把上面的内容压成一份清单每次出图前过一遍五分钟的事。最小壁厚是否满足工艺下限有没有孤立的薄片结构所有悬垂面角度是否在免支撑范围内必须支撑的面是否避开了配合面孔的实际打印尺寸是否做了补偿深孔是否有排屑或排液通道内圆角是否大于刀具半径机加工件外圆角是否有必要薄壁与深腔是否能可靠装夹是否需要工艺凸台装配链上每个配合的间隙是否明确累计公差是否算过螺栓头、扳手、螺丝刀是否有足够的操作空间零件在打印平台或机床上的摆放方向是否合理受力方向是否避开层间弱面是否有明确的基准面导出 STEP 时坐标原点是否落在基准上提示清单里操作空间这一条最容易被 AI 忽略。它给你画的孔位几何上完全正确但螺栓头转一圈会撞到旁边的竖板。这种问题在三维视图里经常看不出来得用装配体做一次运动干涉检查或者干脆用一根实际螺栓比划一下。5. 排查实录跑通了但装不上的那些坑5.1 模型能显示切片器报错最常见的报错是模型不是流形或者检测到非流形边。这种情况八成是布尔运算留下的残留面——两个面恰好共面或者两条边恰好重合布尔之后产生了零厚度的薄片。OpenSCAD 里尤其多因为它做的是网格层面的布尔精度有限。处理办法有两个方向。一是从源头改把参与布尔的几何稍微错开比如让切除用的圆柱比板厚多伸出 1mm别让端面正好对齐把共面的两个体错开 0.01mm别让它们贴死。二是在网格层面修用trimesh的修复功能或者干脆在切片器里开自动修复。但后者只是应急修复出来的几何形状可能已经变了尺寸不能信。我的原则是从源头改不在结果上补。非流形一旦出现说明建模逻辑有问题补一次还会有第二次不如把布尔关系理清楚。用 CadQuery 这类 B-rep 内核的话这类问题会少很多因为 B-rep 有严格的拓扑约束不合法的几何根本建不出来——报错会提前到建模阶段反而好排查。5.2 单位、坐标、基准三个连环套单位问题最典型的表现是模型特别小或特别大。STL 文件本身不存单位切片器默认按毫米读。如果你的脚本里某个尺寸是英寸导出来就会缩水 25.4 倍。STEP 稍微好一点有单位信息但不同软件之间转换也有出岔子的。我的做法是所有脚本开头统一声明单位所有尺寸字面量都写成浮点数并带_mm后缀的习惯虽然 Python 里没这个类型但写出来自己看着清楚。另外assert里一定要校验包围盒这是最快的单位检查。坐标和基准的问题更隐蔽。模型的几何完全正确但原点不在零件的基准面上导入装配体之后位置全错。解决方式是在建模的最后一步显式地把零件移动到基准面过原点、主孔轴线对齐 Z 轴的状态别指望下游软件帮你对齐。# 让底面落在 Z0且零件在 XY 平面居中 part part.translate((0, 0, -part.val().BoundingBox().zmin))这两行我几乎每个脚本都加省掉了后面无数次手动对位。5.3 尺寸都对就是装不上这是最让人抓狂的一类。拿卡尺量每个尺寸都在公差内装配就是进不去。原因通常有三个。一是累计公差。A 零件孔位偏 0.1B 零件孔位偏 0.1方向相反装配时就差 0.2再加上螺栓本身的间隙不够就卡住了。解决办法是在设计时留出装配余量或者在其中一个件上做长圆孔吸收误差。二是形位公差被忽略。两个孔的位置度如果只是各自在 ±0.1 以内但中心距偏差方向相反实际偏差能到 0.2。这在打印件上很常见因为热收缩是整体性的离得越远偏差越大。对策是把关键配合的孔做成一个件上的整体孔避免跨件配合。三是模型和实物的系统性偏差。打印机可能有 0.1~0.2mm 的整体偏大或偏小机加工有刀具磨损这些不会体现在模型里。我的处理办法是打第一批样件时故意做三个尺寸版本一个标称、一个 0.1、一个 -0.1装一遍看哪个合适然后把这个偏移量固化到后续所有模型里。这招笨但一次就能把系统偏差摸清楚。5.4 问题速查表现象最可能原因排查动作处理方式切片器拒绝加载网格非水密、法向不一致is_watertight/is_winding_consistent网格修复或回到建模阶段改布尔模型尺寸差 25.4 倍单位混用英寸/毫米检查包围盒数值统一单位加 assert孔位偏移工作平面坐标理解错打印孔心坐标核对用相对面中心的坐标重新计算装配干涉累计公差、未留间隙装配体做干涉检查单边留 0.15~0.25mm 间隙打印件孔太小挤出胀宽卡尺量实际孔径按实测偏差做孔径补偿薄壁开裂层间结合弱、壁厚不足检查壁厚与受力方向加厚或调整摆放方向内圆角加工不到圆角半径小于刀具半径核对最小内 R改到 ≥ 刀具半径大平面翘曲收缩不均、无筋观察翘曲位置加筋、加圆角、改填充螺纹滑牙直接攻丝在打印件上检查连接方式改热熔嵌件或加大底孔6. 我对这套流程的真实评价折腾到现在我对 AI文字生成CAD模型 这件事的判断是比较冷静的。它确实改变了我的工作方式但改的不是我以为的那部分。它真正省下来的是样板代码和 API 记忆。以前写一个带阵列孔的支架我得翻文档确认pushPoints的参数顺序、确认hole是不是带沉头、确认导出的容差参数叫什么名字来回半小时。现在这些交给模型我只需要检查结果对不对。它也帮我做了一些数值计算比如给定载荷和跨距估算板厚虽然结果要自己复核但有个起点总比从零开始强。它没有省下来的是工程判断。载荷方向、失效模式、装夹方式、成本取舍这些它给不出可靠答案。我试过让它优化这个支架的结构它给我的方案在力学上都说得通但加工成本翻了三倍因为它加了一堆必须五轴才能做出来的曲面。这种时候人的经验是不可替代的。还有一个体会是这套流程的上限取决于你的校验能力不是生成能力。生成一个模型太容易了难的是判断它对不对。所以我现在花在写校验脚本上的时间比花在写提示词上的时间多。上面那几段 trimesh 校验代码是我这半年最值钱的产出比任何一个具体模型都值钱。最后分享一个我一直在用的小习惯每做完一个零件把提示词、生成的脚本、校验结果、实际加工或打印参数全部存进同一个文件夹命名带上日期。三个月后回头看你会发现自己的提示词模板在悄悄进化——哪些约束是必须写的哪些是自己多虑的全在记录里。这个过程没法跳过只能一件一件攒。