Journal

Generative Design of Sheet Metal Structures

Amir Barda, Guy Tevet, Adriana Schulz, Amit H. Bermano

Tel Aviv University; University of Washington

一句话总结

提出首个能从高层规格(环境 + 载荷)全自动生成”承载型”钣金件的框架,用形状文法 + 多链 MCMC 探索、弹簧收缩优化与 beam-search 组合,在满足空间、制造与结构约束下最小化用料,并借助钣金独有的”自铆接”进一步降低柔度。

研究背景

  • 领域现状:钣金(Sheet Metal, SM)是最常见的金属加工工艺之一,加工过程是对一张平板做一系列切割和折弯。现有的 CAD 工具(SolidWorks、Onshape 等)和多数研究都停留在”辅助人工设计”层面——做交互界面、平面展开、特征识别,几乎没有系统能从功能需求直接自动生成可制造的钣金件。
  • 核心痛点:钣金设计目前高度依赖人工,一个中等复杂度的零件专家也要数小时。为降低复杂度,工程师被迫采用刚性规范(如只用直角折弯),这限制了搜索空间、牺牲了强度-重量比。其本质困难在于搜索空间同时具有离散拓扑(折弯/切割的数量与结构)和连续几何(折弯角度、切割尺寸)双重属性,且要同时满足环境(避碰 + 可铆接)、制造(单板切出、可按序无碰折弯)、结构(应力与柔度达标)三类约束,导致有效解稀疏、评估昂贵(需物理仿真)。
  • 本文 idea:把问题拆成”发现”与”组合”两阶段——先构建一个由局部最优子结构(segment,连接载荷到支撑点的一串 tab)组成的库,再从库里搜索一个满足结构约束且用料最省的子集组合。围绕这个主干提出三个关键洞察:分阶段解耦、离散采样 + 连续优化解耦、多条互通 MCMC 链促进多样性。

方法

整体框架:系统输入是环境(3D 模型,标注可铆接区域与需避开的障碍)和待连接的载荷(3D 盒 + 外力),输出是一份可直接制造的平面展开图 + 有序折弯指令。核心是两阶段的探索-组合流水线。

flowchart LR
  A["输入: 环境 + 载荷"] --> B["段发现 Segment Discovery"]
  B --> B1["MH 文法探索 (离散采样)"]
  B --> B2["弹簧收缩几何优化 (连续)"]
  B1 --> C["段库 Segment Library"]
  B2 --> C
  C --> D["段组合 Segment Composition (Beam-Search)"]
  D --> E["自铆接 Self-Riveting 柔度修正"]
  E --> F["输出: 平面展开 + 折弯指令"]

关键设计:

  1. 精简形状文法。用上下文无关文法表示搜索空间,只保留一种节点——tab(在最终件中保持平面的一块区域),从父 tab 的某条边以指定角度延伸。每个 tab 用 6 个参数刻画:父边起点 \(d\)、宽 \(w\)、垂直长 \(l\),以及三个相对父 tab 的旋转角 \(\theta_1,\theta_2,\theta_3\)。文法树天然对应折弯操作链,显式指定折弯顺序后可即时检查所有可制造性约束。

  2. 可逆跳跃 MCMC 探索。用 Metropolis-Hastings 采样器在离散-连续混合空间搜索,支持两种动作:Diffuse move(局部:重采样某个 feeler tab 参数)和 Jump move(全局:删掉某子树并重新采样)。似然函数同时奖励”靠近铆接区”和”多样性”——对已被多链频繁连接的铆接区做惩罚: \[f=\sum_{i}^{\#RA}\sum_{j}^{edge(T)} e^{-\alpha\cdot dist(edge_j, RA_i)}\cdot\left(1-\frac{c(RA_i)}{1+\sum_{RA_i} c(RA_i)}\right)^{\beta}\] 其中 \(RA_i\) 是第 \(i\) 个铆接区,\(c\) 统计跨所有链到 \(RA_i\) 的连接数,\(\alpha,\beta\) 设为 1 和 3。为避免早期解偏置,作者跑 \(M\) 条互通的链(每条允许新段从旧段生长),并让链间共享连接信息以鼓励探索欠开发区域。

  3. 弹簧收缩几何优化。文法采到的连接对制造而言往往过长过窄。作者把段建模成弹簧网络做物理收缩以最小化用料:直接梯度法难以处理与复杂网格的避碰,无导数优化又不够稳健高效。关键技巧是把弹簧常数设为 \(k_{base}/(l_i-l_{min})\),使被最小化的能量从”平方长度之和”退化为”长度之和”: \[E_{segment}=\frac{1}{2}\sum_i k\cdot(l_i-l_{min})^2=\frac{1}{2}K_{base}\sum_i (l_i-l_{min})\] 先做长度最小化,再做宽度最大化(增大 \(w\)、减小 \(d\) 直到碰撞或撑满父边宽)——因为钣金件加宽通常在不增加成本的前提下增强零件。

  4. Beam-Search 组合 + 自铆接。段之间对强度是单调的(并联弹簧只会增刚),故可独立发现再组合。由于穷举组合需要 \(2^{O(N)}\) 次 FEM 仿真不可行,改用 beam-search,用户仅需调 beam 宽度一个参数权衡质量与耗时。最后利用钣金独有的自铆接:把零件折到贴合自身并铆接重叠处,用较小的增重把高柔度边连到低柔度边,在满足安全裕度(MOS)但柔度超标时显著降低柔度、且减少用料与折弯数。

实验结果

材料为航空常用 Aluminum 2024T3(厚 1.6 mm),并发链数 10、探索迭代 1000 次。主实验是与人类专家的对比:给一位钣金工程师一个含 10 个载荷的航电舱环境设计钣金件,再用本系统跑同一场景,统计累计耗时与用料。

指标 专家 本文 变化
耗时 [hrs] 12.45 3.65 -70.6%
用料 [m²] 5.169 4.467 -13.5%

系统在设计时间上大幅缩短(分钟级 CPU 计算替代数小时人工),同时产出更轻的零件。此外还在多种复杂度环境(含障碍、尖角铆接面)上验证了可生成满足约束的可制造设计(每个约 10–20 分钟),并实际加工了 4 个结果验证可制造性。消融实验表明:边选择/段优化策略优于贪心与均匀基线(避免库中充斥冗余低质段);单链易陷局部最优,组合阶段确有必要;自铆接确实能在小幅增重下大幅降柔度。

亮点与局限

  • 亮点:
    • 首个从高层功能规格全自动生成承载钣金件的系统,填补该方向空白。
    • 将棘手的离散-连续混合搜索干净地解耦为”发现(采样 + 连续优化)”与”组合(beam-search)”,并用多链互通 MCMC 系统性地促进多样性。
    • 巧妙地通过修改弹簧常数把弹簧网络能量转化为”长度之和”,用现成物理引擎即可稳健地做长度最小化。
    • 挖掘并利用钣金独有的自铆接特性,反直觉地”增重反降料”。
  • 局限:
    • 一旦找到满足规格的解即终止,不保证全局最优(组合空间的通病)。
    • 专家对比仅招募到一位工程师,只能作为能力参考,不足以断言系统普遍优于人类。
    • 计算瓶颈在文法树深度与发现阶段允许的最大子节点数,更深的图(如面向艺术设计的场景)尚待可扩展性评估。

延伸思考

  • 作者指出”发现-组合”这一结构可迁移到其他”连接发现”类问题,例如 3D 打印支撑结构、塑料浇口的设计,只需少量领域特定改动,值得作为通用框架推广。
  • 全流程未使用任何学习组件,是纯优化/搜索方法;结合可微仿真或以神经代理模型替代昂贵的 FEM 评估,或许能进一步加速组合阶段的结构约束检查。
  • 似然函数里”惩罚热门铆接区”的多样性机制与探索/利用权衡(如 novelty search、count-based exploration)思路相通,可与更成熟的多样性采样理论对接。