2. HyperMesh界面与碰撞模型工作环境定制

HyperMesh 的默认界面面向通用有限元前处理,而碰撞安全模型有其鲜明的作业特征:模型规模大(整车百万级单元)、连接关系密集(焊点、粘胶、铰链、螺栓)、工况多(正碰、侧碰、偏置碰、柱碰、行人保护)、求解器以 LS-DYNA 与 Radioss 为主。如果每次打开软件都从零调整面板、菜单和工具栏,效率损失会非常可观。本节的目标是把 HyperMesh 从"通用工具"改造成"碰撞专用工作台",核心手段是四件事:用户配置文件、快捷键、宏命令、碰撞专用工具栏与模板加载。

一、用户配置文件:让每次启动都回到自己的工作状态

HyperMesh 的用户配置由一组文件共同决定,它们通常位于用户目录下的 Documents/Altair/<版本>/hm 或安装目录的 hm/scripts 中。最关键的几个文件是:

  • hmmenu.set:菜单与面板的可见性、位置、自定义菜单项;
  • hmsettings.tcl:启动时自动执行的 Tcl 脚本,用于设置单位制、默认求解器模板、图形显示、自动保存等;
  • hm.key:键盘快捷键映射;
  • command.cmf:命令记录文件,可回放操作,是生成宏命令的原始素材。

实际工程中推荐的做法是:在 hmsettings.tcl 中固定碰撞作业的"基线环境"。例如把默认求解器接口设为 LS-DYNA,把长度单位设为 mm、质量单位设为 t、时间单位设为 s(即 mm-t-s 一致单位制,对应力单位为 MN、应力单位为 MPa),把自动保存间隔设为 10 分钟,把图形背景设为浅色以便截图评审。下面是一段可直接参考的示例配置:

# hmsettings.tcl —— 碰撞作业基线环境(示例)
*setvalue profile.name LS-DYNA
*setvalue units.length mm
*setvalue units.mass t
*setvalue units.time s
*setvalue graphics.background "white"
*setvalue autosave.interval 10
*setvalue autosave.enable 1
# 默认打开碰撞常用面板
*setvalue panel.default "Analysis > Safety"

需要强调的是,上述参数属于教学示例,实际项目中应以企业标准或主机厂规范为准。单位制一旦确定,全文与所有图示必须保持一致,否则后续焊点直径、材料密度、时间步长都会出现量级错误。

二、快捷键:把高频操作压缩到一次按键

碰撞前处理的高频操作集中在视图控制、选择过滤、单元质量检查、连接创建四类。HyperMesh 允许通过 hm.key 或 Preferences 中的 Keyboard 面板重新映射。建议按"左手键盘、右手鼠标"的原则分配,例如:

  • F:Fit 视图,快速回到整车包围盒;
  • R:Rotate,配合鼠标中键旋转;
  • Z:Zoom 框选放大到局部接头;
  • W:Wireframe 线框显示,检查穿透与重叠;
  • Q:Quality Index,快速查看单元质量云图;
  • M:Mask,按组件屏蔽非关注区域。

快捷键的价值在于减少鼠标在面板间的往返。对于每天要处理数十个焊点、上百个连接的前处理工程师,单次节省 2 秒,一天累计就是可观的工时。

三、宏命令:把重复动作固化为可复用脚本

宏命令的本质是把 command.cmf 中记录的命令序列提取出来,保存为 .tcl 或 .cmf 文件,再绑定到按钮或快捷键。碰撞前处理中最典型的可宏化动作包括:批量创建 ACM 焊点、按组件批量赋厚度、批量重命名 PID、批量导出关键字卡片。

以"按给定坐标批量创建焊点"为例,思路是读取一个包含 x、y、z 的文本文件,循环调用 *createentity 与 *createmark,再用 *spotweld 或 *feabsorb 生成连接单元。示例脚本骨架如下:

# batch_spot.tcl —— 批量焊点(示例骨架)
set fp [open "spots.txt" r]
while {[gets $fp line] >= 0} {
    if {[string trim $line] == ""} { continue }
    lassign $line x y z
    *createentity nodes id=0 x=$x y=$y z=$z
}
close $fp
*createmark nodes 1 "all"
# 后续按实际焊点间距与直径生成连接单元

宏命令调试时建议先在副本模型上运行,确认节点数量、ID 连续性、连接单元类型无误后再用于正式模型。判断成功的依据是:模型树中节点数增量与输入行数一致,焊点单元无重复 ID,且质量检查中无零长度或负体积单元。

四、碰撞专用工具栏与模板加载

HyperMesh 的工具栏可以按作业阶段组织。碰撞前处理建议建立四个自定义工具栏:模型准备(几何清理、中面抽取、网格划分)、连接建模(焊点、粘胶、螺栓、铰链)、工况设置(刚性墙、初速度、重力、接触)、检查导出(穿透检查、质量检查、关键字导出)。每个工具栏只放本阶段真正用到的按钮,避免面板过载。

模板加载则决定了求解器卡片、材料本构、单元公式的默认集合。加载 LS-DYNA 模板后,材料面板会自动提供 *MAT_024、*MAT_020、*MAT_123 等碰撞常用本构;单元面板会提供 *SECTION_SHELL 与 *SECTION_SOLID。模板文件通常以 .tpl 或 .xml 形式存在,可通过 Load Template 加载,也可在 hmsettings.tcl 中指定默认路径,实现启动即加载。

HyperMesh 碰撞工作环境定制关系图 用户配置文件 hmsettings.tcl hmmenu.set hm.key command.cmf 单位制 / 求解器 / 自动保存 菜单布局 / 快捷键映射 定制手段 快捷键映射 宏命令脚本 自定义工具栏 模板加载 F/R/Z/W/Q/M 视图与检查 批量焊点 / 批量赋厚度 碰撞前处理作业阶段 模型准备 几何清理 / 中面 / 网格 连接建模 焊点 / 粘胶 / 螺栓 工况设置 刚性墙 / 初速度 / 接触 检查导出 穿透 / 质量 / 关键字 模板加载与求解器接口 LS-DYNA 模板 *MAT_024 / *SECTION_SHELL Radioss 模板 /MAT/PLAS_JOHNS 单位制基线 mm - t - s - MPa 自动保存 间隔 10 min 定制效果:启动即进入碰撞作业状态,减少重复设置,保证单位制与求解器一致 配置文件 → 快捷键 / 宏命令 / 工具栏 / 模板 → 模型准备 → 连接建模 → 工况设置 → 检查导出

五、定制后的验证与常见问题

完成定制后,建议用一个小模型做一次"冷启动验证":关闭 HyperMesh,重新打开,检查默认求解器是否为 LS-DYNA、单位制是否为 mm-t-s、自定义工具栏是否出现、快捷键是否生效、宏命令按钮是否可点击。若某项未生效,优先排查 hmsettings.tcl 的语法错误(Tcl 对大小写和括号敏感),其次检查文件是否放在当前用户目录而非安装目录。

常见问题包括:模板加载后材料面板仍显示旧本构,通常是模板路径未更新或缓存未清除;宏命令运行报错,多因节点 ID 冲突或输入文件存在空行;快捷键与系统输入法冲突,可改用组合键。判断定制是否成功的最终标准不是"界面好看",而是"打开软件后能否在最短时间内进入碰撞建模状态,且单位、求解器、连接类型与项目规范一致"。

建议把 hmsettings.tcl、hm.key 与常用宏脚本纳入版本管理(如 Git),团队共享同一套基线配置,避免各人环境不一致导致模型关键字差异。