01两道关:导入时校验与材料健康检查
插件 1.5.0 对材料数据有两道独立的关,区别只在「查什么时候的数据」:
- 导入时校验发生在数据写进模型之前。 JSON 里一张表不合规,对应材料整个不建,消息区出 FAILED 行, 已经建了一半的临时材料会被删掉,模型保持干净;
- 材料健康检查反过来,读模型里已经存在的材料: 插件导进来的、你在 Property 模块手填的、从老模型继承下来的,一视同仁。 入口是菜单 Plug-ins → 材料库 →
材料健康检查..., 它是一个内核菜单按钮,不弹对话框、不要求登录授权、不联网, 结果直接打印在 CAE 消息区。
所以正确顺序是:导入时看一眼汇总,交付前不管材料哪来的再统一体检一次。 健康检查的描述(插件注册信息里的原话)只承诺四类: 弹性模量范围、塑性硬化曲线、互斥组合(如弹性加超弹性)、单位制一致性; 下面 12 条是它和导入校验合起来的完整覆盖面。
02先认得消息区的五种结果行
导入报告以这一行为开头:
--- Material Importer -> model "模型名" ---后面可能出现五种行,轻重完全不同:
created (n): .../replaced (n): ...: 新建或覆盖成功的材料;skipped, already present (n): ... [tick "Overwrite" to replace]: 同名材料已存在被跳过,勾「Overwrite(覆盖)」才会替换;FAILED 材料名: 原因:这条材料没有进模型, 半成品已被删除,原因是逐字的校验串;WARNING 材料名: ... created without ... -- check it before solving.: 材料建成了,但有属性块这个版本不构造,求解前必须人工核对;- 什么都没建成时最后一行是
nothing imported.。
03健康检查实际查的七件事,以及它的边界
体检对模型里每种材料依次做七项检查:
- 经共享读取器把材料读一遍,读不出来的块、未处理的行为逐条列出;
- 互斥组合:同一种材料上同时挂弹性和超弹性;
- 各向同性弹性表的范围(弹性模量为正、泊松比在开区间内);
- 塑性硬化曲线:按温度分组,每组从塑性应变 0 开始、应力为正、应变递增;
- 阻尼四个因子全为零时提示;
- 密度表逐行检查必须为正;
- 导热系数表逐行检查必须为正。
七项之外还有一项跨材料的交叉检查:把模型里所有材料的单位样本 (密度、模量等)各自判定一遍,像 tonne-mm-s 与像 SI 的材料同时存在时,追加一行 CROSS-CHECK。
三条边界,别超范围信任它
- 弹性范围检查只走各向同性表;LAMINA 等各向异性常数的个数 是导入时的关卡,健康检查不数个数;
- 单位交叉检查要求模型里至少有两种带可测量值的材料, 而且每种材料的单位归属要判定明确: 落在模糊带里的材料不贡献证据,不明确时它宁可沉默;
- 它只体检材料定义本身。材料有没有挂到 Section、曲线是不是真应力, 都不在检查范围内(见第 05 节)。
04交付前自查 12 条:每条对应哪句原话
报错串里的 %g、%s 是内核填实际数值和名字的占位符, 下表照 1.5.0 源码原串收录。「谁拦」一列说明这句话出现在哪一关。
| # | 自查项 | 不合格时消息区的原话(节选) | 谁拦 |
|---|---|---|---|
| 1 | 全篇同一单位制;mm 制下金属密度必须是 e-9 量级 | unit-system mismatch: A look like tonne-mm-s, B look like SI -- check that every material is in the same unit system | 健康检查 + 导入时单位检查 |
| 2 | 弹性模量为正 | elastic: youngsModulus must be positive, got %g | 导入时 / 体检 |
| 3 | 泊松比严格落在 −1 与 0.5 之间,0.5 也不行 | elastic: poissonsRatio must be between -1 and 0.5 (exclusive), got %g | 导入时 / 体检 |
| 4 | 塑性表第一行塑性应变必须是 0 | plastic: the first plastic strain must be 0, got %g | 导入时 / 体检 |
| 5 | 屈服应力为正,塑性应变逐行严格递增 | plastic: yieldStress must be positive, got %gplastic: plasticStrain must increase down the table, got %g after %g | 导入时 / 体检 |
| 6 | 温度表里每一行的数列数相同(别漏写温度列) | %s: all rows must have the same length | 导入时 |
| 7 | 弹性与超弹性不共存(金属用前者,橡胶用后者) | elastic and hyperelastic are two alternatives for the same property -- a material cannot carry both; drop whichever does not apply | 导入时 / 体检 |
| 8 | 阻尼至少给一个因子、因子非负、不能四个全是 0 | damping: needs at least one of alpha, beta, composite, structuraldamping.%s: must not be negative, got %gdamping: every factor is zero -- it damps nothing | 导入时 / 体检 |
| 9 | 密度表每一行为正(零和负数都会被点名) | density: must be positive, got %g | 体检 |
| 10 | 导热系数表每一行同样必须为正 | conductivity: must be positive, got %g | 体检 |
| 11 | 每个属性块都真的建出来了,没有被当陌生键跳过(最常见是 plastic 拼成 plastics) | WARNING %s: this release does not build %s, so the material was created without %s -- check it before solving.none of its property blocks (%s) is built by this release, which handles %sno recognised property blocks (%s) | 导入时 WARNING / FAILED |
| 12 | 各向异性弹性常数个数对版:LAMINA 6 个、ENGINEERING_CONSTANTS 与 ORTHOTROPIC 9 个、ANISOTROPIC 21 个(带温度再加 1 列) | elastic: type LAMINA needs 6 values per row, or 7 with a trailing temperature column, got 5 | 导入时(1.4.1 起) |
温度相关塑性表注意一点:第 4、5 条是每个温度分组内部各自从 0 开始、 组内递增,报错串会插入 at temperature %g 说明是哪个温度组。 单位换算本身见帮助文档的单位对照表,每句报错的中文解释在报错原因对照表。
05机器查不到的三件事,靠流程兜底
这三类问题不会生成任何报错行,健康检查也不覆盖,必须在交付流程里留人工节点:
- 材料建了但没有挂上去。材料 → Section → Section Assignment 三层任何一层没做,单元就没有材料,求解可能照样出结果。查法见材料建了不生效;
- 硬化曲线填的是工程应力应变。Abaqus 的塑性表吃真应力和真塑性应变, 填工程值的表现是承载偏低、塑性区偏大,且全程无报错。换算见真应力真应变换算;
- 零应变参考温度与初始温度场单位不一致。 两边都必须是摄氏度,一边开尔文一边摄氏度的结果是凭空出现热应力。见热膨胀与参考温度。
另有一件按工况判断的事:静力通用可以不填密度,但模态、显式动力学没有密度根本算不对, 详见密度什么时候必须填,单位制的选择依据见tonne-mm-s 单位制。
06怎么跑、查的是哪个模型、报告怎么读
菜单 Plug-ins → 材料库 → 材料健康检查..., 不需要选中任何材料,它扫描整个模型。多模型文件里, 它检查的是当前视口正在显示的那个模型; 没有可用视口时,退化为按名字排序的第一个模型。 体检前先确认视口停在目标模型上。
报告以这一行开头,随后按材料名列问题:
--- Material Audit -> model "Model-1" ---
Demo_Steel:
- density: must be positive, got 0
1 material(s) with issues.上面这份是示意报告,材料名和数值都是示意值,只为说明版式。真实运行还可能出现:
CROSS-CHECK: unit-system mismatch: ...:跨材料单位冲突, 跟在材料问题清单之后;all N material(s) look healthy.:七项检查全无问题 (但第 05 节那三件事仍需人工确认);nothing to report.:检查无问题、也没有交叉冲突;no materials to check.:当前模型里一种材料都没有;--- Material Audit: no such model "X" ---:指定的模型名不存在。