HyperWorks 的扩展(Extensions)机制是二次开发的重要入口。通过扩展,开发者可以将脚本、图像、动态链接库等资源打包,以插件形式集成到应用程序中,增强用户体验。本篇系统讲解扩展系统的架构、扩展管理器、extension.xml 格式及各类 XML 配置文件。
扩展是与应用程序集成以增强用户体验的程序。一个扩展是一组资源的集 合(包括脚本、图像、dll等),通过 .xml 文件定义。扩展可通过脚本或扩展管理器(Extension Manager)注册,且可以跨多个配置文件(profile)使用。



扩展管理器(Extension Manager)通过 File > Extension Manager 打开。它用于注册、查看、加载/卸载/移除扩展,显示扩展的名称、版本与描述信息,并支持所有客户端(clients)。
操作步骤:
①
②
③
④
⑤


extension.xml 是扩展的核心定义文件,采用 section/entry 结构组织。关键选项包括:name、version、resources、autoLoad、supportedClient、tclscript、script,以及 profile(含 ribbonxml、tclscript、toolbars、contexts)。
以下是一个 extension.xml 的结构示例:
<extension name="myextension" version="1.0"> <resources> <resource>icons</resource> <resource>scripts</resource> </resources> <autoLoad>true</autoLoad> <supportedClient>HyperMesh</supportedClient> <tclscript>init.tcl</tclscript> <script>main.py</script> <profile name="HyperMesh"> <ribbonxml>ribbon.xml</ribbonxml> <tclscript>profile_init.tcl</tclscript> <toolbars>toolbar.xml</toolbars> <contexts>contexts.xml</contexts> </profile> </extension>
extension.xml 支持的主要选项如下:
Ribbons XML 用于定义功能区页面。其结构层次为:root > actionlist + page > group > actiongroup > action / secondaryribbon / menu。
Ribbons XML 支持 visible 属性,可根据 $HMPROFILE 实现条件显示;也支持 if 标签配合 eval 属性实现条件渲染。
支持的命令类型包括:py:(Python)、tcl:(Tcl)、panel:(面板)、context:(上下文)。
以下是一个 Ribbons XML 的 actionlist 与 page 结构示例:
<root> <actionlist id="myActions"> <action id="runA nalysis" name="Run" icon="run.png" command="py:run_ana lysis()"/> <action id="setupModel" name="Setup" icon="setup.png" command="tcl:setup_model"/> </actionlist> <page name="MyTools"> <group name="Tools"> <actiongroup> <action ref="runAna lysis"/> <action ref="setupModel"/> </actiongroup> </group> </page> </root>
Toolbar XML 用于定义工具栏。其结构层次为:root > actionlist + toolbar > item。工具栏位置(location)支持:left、right、bottom。同时支持 include 引用外部 action 文件。
Filemenu XML 用于自定义文件菜单条目。其结构层次为:root > button > item,可为文件菜单添加自定义条目及子选项。示例如下:
<root> <button name="MyExport" label="Export Results"> <item name="exportCSV" label="Export CSV" command="py:export_csv()"/> <item name="exportH3D" label="Export H3D" command="py:export_h3d()"/> </button> </root>
所有命令属性均支持 $EXTENSION_DIR 变量,用于相对路径引用。该变量在所有 XML 文件中可用,使扩展能够在不同安装位置间移植而无需修改路径。
<!-- 使用 $EXTENSION_DIR 引用扩展目录下的脚本 --> <action id="run" name="Run" command="py:$EXTENSION_DIR/scripts/run.py"/> <action id="icon" name="Tool" icon="$EXTENSION_DIR/icons/tool.png"/>
扩展开发要点:extension.xml 是扩展的"身份证",Ribbons/Toolbar/Filemenu XML 分别定义了扩展在功能区、工具栏和文件菜单中的呈现。善用 $EXTENSION_DIR 变量与条件渲染(visible/if),可以让扩展跨 profile、跨平台稳定运行。
—— HyperWorks 2026 二次开发系列 · 完 ——