首页/文章/ 详情

HyperWorks Extensions:扩展程序开发框架

1小时前浏览0

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

一、扩展系统概述

扩展是与应用程序集成以增强用户体验的程序。一个扩展是一组资源的集 合(包括脚本、图像、dll等),通过 .xml 文件定义。扩展可通过脚本或扩展管理器(Extension Manager)注册,且可以跨多个配置文件(profile)使用。

扩展管理器中的扩展示例
扩展在功能区中的示例
扩展在工具栏中的示例

二、扩展管理器

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

操作步骤:

  • ①

     打开扩展管理器;  
  • ②

     点击 Add Extension,浏览到包含 extension.xml 的目录;  
  • ③

     启用滑块(enable slider)以加载扩展;  
  • ④

     禁用滑块以卸载扩展;  
  • ⑤

     点击 Remove 以取消注册。  
注册扩展
扩展详情视图

三、extension.xml 格式

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 支持的主要选项如下:

选项    
说明    
name    
扩展的内部名称    
displayName    
扩展的显示名称    
version    
扩展版本号    
autoLoad    
是否自动加载    
unloadable    
是否可卸载    
resources    
资源目录列表    
minProductVersion    
所需的最低产品版本    
removable    
是否可移除    
supportedClient    
支持的客户端    
documentation    
文档路径    
tclscript    
Tcl初始化脚本    
script    
Python主脚本    
ribbonxml    
功能区XML定义    
toolbars    
工具栏XML定义    
contexts    
上下文定义    
icon    
图标路径    
workflowhelp    
工作流帮助    

四、Ribbons 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 格式

Toolbar XML 用于定义工具栏。其结构层次为:root > actionlist + toolbar > item。工具栏位置(location)支持:left、right、bottom。同时支持 include 引用外部 action 文件。

六、Filemenu XML 格式

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 变量

所有命令属性均支持 $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 二次开发系列 · 完 ——


来源:TodayCAEer
ACTHyperMesh二次开发pythonUM渲染
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2026-10-15
最近编辑:1小时前
TodayCAEer
本科 签名征集中
获赞 87粉丝 198文章 788课程 2
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈