3. 模型版本命名规范设计

在 HyperMesh 的实际协作中,模型文件往往经历多轮网格划分、连接调整、材料更新与工况迭代。如果文件名只依赖“另存为”时随手输入的 model_final_2.hm,很快就会陷入无法判断哪一版才是当前有效版本的困境。命名规范的本质,是把“谁、在什么时候、对哪个模型、做了第几轮修改、处于什么状态”这五类信息压缩进一个可排序、可检索、可校验的字符串中,使文件系统本身成为一条轻量的追溯链。

一、命名规则的字段结构

推荐采用“项目—对象—阶段—版本—日期—责任人—状态”的分段式命名,各段之间用下划线连接,段内不使用空格,避免跨平台传输时被截断或转义。一个可直接落地的格式如下:

项目代号_模型对象_阶段_版本号_日期_责任人_状态.hm
示例:PRJ-A12_BodyBIW_Mesh_v03_20250612_zhangq_Review.hm

各字段的取值约定需要提前固化,否则不同人写出的名字仍然无法对齐:

  • 项目代号:取自项目立项编号,如 PRJ-A12,全项目唯一,不使用中文或空格。
  • 模型对象:描述该文件承载的装配范围或子系统,如 BodyBIW(白车身)、FrontCrash(前碰子系统)、FullVehicle(整车)。同一对象在项目内必须使用同一拼写。
  • 阶段:标识模型所处的工程阶段,建议限定为 CAD、Mesh、Conn、Load、Solve、Post 六类,分别对应几何导入、网格划分、连接建立、工况加载、求解提交与后处理。
  • 版本号:见下一节的策略说明。
  • 日期:统一使用 YYYYMMDD 八位格式,保证按文件名排序时天然按时间递增。
  • 责任人:使用企业账号或拼音缩写,如 zhangq,不使用昵称。
  • 状态:限定为 WIP(进行中)、Review(待评审)、Release(已发布)、Obsolete(已作废)四种,状态字段是判断文件能否被下游引用的关键。

二、版本号策略:主版本与次版本分离

版本号建议采用 v主版本.次版本 两段式,例如 v03.2。主版本递增表示模型发生了影响下游的实质性变更:几何替换、网格重划、连接拓扑调整、材料或属性重新指派。次版本递增表示不影响下游接口的局部修正:单元质量清理、个别 RBE3 权重调整、注释补充、未改变连接关系的重命名。

这样区分的好处是,下游 CAE 工程师只需关注主版本变化,而网格工程师可以在同一主版本内自由迭代次版本。判断标准可以固化为三条:若变更导致模型节点数变化超过 1%、连接单元数量变化、或任何工况的边界条件位置改变,则升主版本;否则升次版本。主版本递增时次版本归零,例如从 v03.2 直接进入 v04.0,而不是 v03.3。

版本号只增不减。即使回退到旧模型,也应在新版本号下重新提交,例如将 v03.0 的内容恢复后命名为 v05.0,并在变更说明中注明“回退自 v03.0”。这样版本序列始终单调递增,避免出现同名不同内容的文件。

三、日期与责任人标识的配合

日期字段记录的是该版本完成并保存的日期,而不是开始修改的日期。责任人字段记录的是该版本的主要修改者,而非文件所有者。当多人协作时,建议在文件内部另设一个变更记录表,记录每次保存的修改人、修改内容与关联的版本号,文件名中的责任人只保留最终提交者。这样文件名保持简洁,详细追溯由文件内记录承担。

日期与版本号存在冗余,但这种冗余是有意的:版本号保证同一对象内的顺序,日期保证跨对象、跨项目的全局排序。当需要按时间线梳理某项目的模型演进时,直接按日期字段排序即可获得完整视图。

四、命名体系的可追溯性校验

一套命名规范是否有效,可以用三个问题快速检验:第一,拿到任意一个文件名,能否在不打开文件的情况下判断它是否可用于当前分析?第二,能否仅凭文件名还原出该版本的修改顺序?第三,当两个文件冲突时,能否依据命名规则确定唯一有效版本?如果三个问题都能回答,说明字段设计基本完备。

下面这张图展示了命名规则各字段的解析关系,以及从文件名到追溯判断的映射路径。图中以示例文件名 PRJ-A12_BodyBIW_Mesh_v03_2_20250612_zhangq_Review.hm 为对象,逐段拆解字段含义,并给出该文件在版本序列中的位置与可用状态判断。

模型版本命名解析与追溯判断 PRJ-A12_BodyBIW_Mesh_v03.2_20250612_zhangq_Review.hm 项目代号 PRJ-A12 模型对象 BodyBIW 阶段 Mesh 版本号 v03.2 日期 20250612 责任人 zhangq 状态 Review 项目归属 装配范围 工程阶段 修改轮次 完成日期 提交人 可用性 版本序列(同一对象 BodyBIW / 阶段 Mesh) v02.0 v02.1 v03.0 v03.1 v03.2 v04.0 v04.1 当前文件位置 追溯判断 状态为 Review,表示已提交待评审,下游可引用但需关注评审结论;版本 v03.2 属于 v03 主版本的第 2 次局部修正,未改变连接拓扑,可用于网格质量复查。

五、落地时的常见问题与处理

规范制定后最容易出现的问题是“字段太长、输入麻烦”。解决方式不是删减字段,而是提供命名生成工具:在 HyperMesh 的 Tcl 脚本中封装一个保存命令,自动读取当前项目代号、对象名、阶段与责任人,按规则拼接文件名并递增版本号。这样工程师只需选择阶段与状态,其余字段由脚本填充,既保证一致性,又降低手工输入负担。

另一个常见问题是状态字段被滥用。例如有人把 WIP 文件直接发给下游,导致对方误用未评审模型。处理办法是在团队约定中明确:只有 Release 状态的文件才允许被其他专业引用;Review 状态仅用于评审传递;WIP 文件不得离开个人工作目录。文件名中的状态字段与文件存放目录应保持一致,例如 Release 文件统一放入共享的 /release 目录,WIP 文件保留在个人目录。

不要使用“final”“new”“最新”“改后”等主观词汇作为版本标识。这些词无法排序、无法判断先后,也无法在多人协作中表达唯一含义。版本号与日期字段已经能够完整表达顺序,主观词汇只会破坏命名体系的可追溯性。

最后需要强调的是,命名规范不是一次性文档,而应随项目阶段演进做小幅调整。例如在进入求解阶段后,可能需要在文件名中增加工况代号字段,如 _LC01。调整时应同步更新命名生成脚本与团队约定,并对已有文件做一次批量重命名,确保新旧文件在同一规则下可比较。只有文件名本身成为可信的追溯入口,后续的版本对比、变更评审与模型归档才有稳定的基础。