text-to-CAD 加一道有限元:几何对了,物理未必站得住
语言驱动的 CAD 生成已经能产出可编辑的参数化模型——但几何正确并不等于物理可行。
华东地区研究者在 PhyCAD(arXiv 2611.09401,2026-11-06)里把这句话做成了训练目标:让语言模型生成可执行的 CadQuery 程序,同时满足几何与物理约束。
一、它要解决的问题:奖励信号把两件事混在一起了
常规做法是把"几何得分"和"物理得分"加权求和。作者指出这会出事:某一项进步可以补偿另一项没达标——形状越来越像,强度越来越差,总分还在涨。
所以他们的核心不是模型架构,是奖励怎么排优先级:
- 先按验证状态把候选分成层级(哪些约束真的过了);
- 层与层之间比"进度",层内再按各目标做同伴排序;
- 合起来叫 Hierarchical Balanced Advantage,替代 GRPO 里扁平的聚合。
这样训练信号始终保留"跨层的优先级"(物理可行永远排在几何相似之前),同时又给部分完成提供细粒度反馈。
二、三件配套工程
| 部件 | 做什么 |
|---|---|
| 数据集 | 把参数化 CAD 模型与几何规格、载荷条件、物理约束关联起来 |
| 自动 CAD–CAE 验证器 | 程序执行 + 几何检查 + 有限元分析,三者一起给出反馈(相当于把仿真塞进了训练回路) |
| 分层奖励 | 见上一节,防止"某项进步掩盖另一项未达标" |
论文的结论是:在多个语言模型上,PhyCAD 都能稳定提高几何与物理约束的联合满足度。
三、为什么这件事对"程序化 3D"重要
程序化的价值在于可执行:模型输出的不是一张图、也不是一个 mesh,而是一段能被 CAD 引擎跑出实体的代码。可执行带来一个额外好处——可以被自动验证。
PhyCAD 把验证往前推了一步:不只是"能跑通、形状对",而是"跑完之后拿去算一遍,承力够不够"。这条路径一旦成立,"AI 生成零件"的验收标准就从"看起来像"变成"通过检查"。
四、我们的整理
4.1 一个可以直接搬走的训练/验收框架
不管你做不做 RL,这套分层可以照用:
- 第一层:可执行(代码能跑、无语法错);
- 第二层:几何(尺寸、位置、拓扑符合描述);
- 第三层:物理(载荷下不变形、不失效);
- 第四层:可制造(工艺、公差、装配)。
只有全部满足才叫交付。 把四层写成检查表,比调一个总分更实用——尤其在 AI 参与的流程里,分数会骗人,检查表不会。
4.2 对我们工具链的提醒
- CAD 查看器要能读出实体属性(体积、包围盒、特征数),而不只是渲染——验收靠的是数值;
- 仿真结果(应力、位移)要能和模型同屏对照,否则"哪里不行"看不出来;
- 生成的代码建议入库(
.py/.scad),跟软件一样 review。
4.3 自己搭一个“带仿真的生成回路”要四步
- 先有生成器:模型输出可执行脚本(CadQuery / build123d),不是 mesh;
- 再接执行器:每段脚本交给真 CAD kernel 跑,把实体存下来;
- 再接检查器:几何检查(尺寸/干涉)+ 仿真检查(加载荷、看应力);
- 最后才谈训练:把检查结果当成奖励,并按层级排优先级。
顺序很重要:很多团队一上来就调生成模型,结果没有可执行的检查器,只能拿渲染图当奖励——那就回到了“看起来像”的老路。
4.4 一份可以直接用的验收单
| 层 | 检查项 | 失败时改什么 |
|---|---|---|
| 可执行 | 脚本能跑、无语法错 | 改提示词/约束,不改模型 |
| 几何 | 尺寸、孔位、拓扑符合描述 | 补尺寸说明或换更强的 vare |
| 物理 | 载荷下应力/位移在限内 | 改结构参数(厚、筋、材料) |
| 可制造 | 工艺、公差、装配可行 | 回到人,不要交给模型 |
4.5 边界
- 物理可行性用的是有限元近似,边界条件对不对仍然取决于人:载荷加错位置,结论再漂亮也没用;
- 论文验证的是"约束满足度",不是工程可交付性(公差、工艺、装配都不在范围内);
- 训练成本与数据集构建成本是这类方法的隐性门槛,小团队更适合"生成 + 人工跑仿真"的半自动流程。
五、生成之后怎么自己验
程序跑出实体后,把 STEP / IGES 丢进 CAD Viewer 量尺寸、看特征;要出 GLB 做评审就用 3D Viewer;需要从零试一段文字生成,Text2STL 是最短的入口。
同主题阅读
- text-to-CAD 只有一条路真能出图:让模型写脚本,别让它想象形状
- AI 工厂数字孪生:智能体拼 OpenUSD 校区,尺寸仍要人核
- 3D 生成 LoRA 微调:9.3M 参数,鞋底 F-score 从 0.276 到 0.803
Sources
- Yuxin Cui 等《PhyCAD: Physics-Aware Text-to-CAD Generation via Hierarchical Reinforcement Learning》,arXiv 2611.09401,2026-11-06 https://arxiv.org/abs/2611.09401