首页/文章/ 详情

Workbench开发指南:自定义菜单

3年前浏览6699

在之前文章中,小田老师分享过Workbench中的脚本开发与仿真流程集成的方法;有朋友后台留言说希望能直接对Workbench界面进行开发定制,那么今天果断安排上,给朋友们说一说如何自定义菜单及功能

在19.0之前版本,只能通过Workbench SDK定制界面,这就要配置开发环境、掌握C#编程、编译插件等,需要专业的编程技能,对于我们工程师来说是复杂费时的。

不是一个专业的开发人员?也别担心!在19.0版本之后,ANSYS使用ACT作为统一的二次开发平台,采用了IronPython和XML开发语言,取代了之前的SDK开发方式,消除了开发过程中编程的复杂性,这样我们工程师也能基于Workbench定制仿真应用,从此告别鼠标手。

该如何去定制实现自定义菜单呢?
可以参考小田老师的开发指南
接下来开始划重点啦

在开始之前如果你不了解ACT的话,可以阅读《ANSYS ACT开发宝典》掌握基本数据结构。

然后就可以进入正题,在XML文件中定义<interface>标签来描述界面元素,然后在插件的标签中使用<oninit>和<onterminate>回调函数来定义、注册和取消菜单项,代码如下:

接着,我们需要创建IronPython脚本文件,编写回调函数实现自定义菜单功能。

首先,不要慌!该用到的类和模块一个都别落下,统统引入到环境中。引用Workbench界面相关的动态链接库:界面渲染和管理-Ans.UI.dll、界面控件创建 - Ans.UI.Toolkit.dllAns.UI.Toolkit.Base.dll,然后导入相关模块到开发环境中,这里我们主要用到UIManager类和IGuiOperation接口。

然后,我们来定义上面两个回调函数<oninit><onterminate>,分别用于创建和移除自定义菜单。
回调函数<oninit>需要给定参数context,然后调用Ansys.UI.MenuManager类下的AddDynamicEntity方法创建菜单,CreateMenu回调函数的代码如下:

回调函数< onterminate >使用给定参数context,调用Ansys.UI.MenuManager类下的RemoveDynamicEntity方法移除菜单,RemoveMenu回调函数的代码如下:

在CreateMenu回调函数中,我们使用一个类AboutMeOperation实例作为AddDynamicEntity方法的参数传入,这个类需要继承IGuiOperation接口类,实现Invoke和GuiItemCallBack的虚方法,代码如下:

上面代码重写Invoke方法,其中我们可以定义自己的仿真功能;示例代码中,点击自定义菜单就会弹出消息框。
将上面的XML文件和IronPython脚本内容分别保存为UserMenu.xml和main.py,按照ACT的文件结构存放,并加载到Workbench中,使用的效果如下:

后记:上面的代码只是演示实现的技术路线,功能相对简单。实际上,自定义菜单为我们提供接口去扩展Workbench功能,通过脚本开发GUI封装技术,可以实现更复杂的功能,完成仿真流程的封装固化,形成仿真系统。

复杂的功能演示大伙可以参考《基于Ansys Workbench 的二次开发,让你的振动试验仿真事半功倍》。

Ok,以上就是小田老师今天给你带来的分享,那么我们下回见,拜了个拜。

ACTWorkbench二次开发代码&命令
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2020-06-11
最近编辑:3年前
小田老师
硕士 | 仿真工程师 欢迎关注ANSYS仿真与开发!
获赞 604粉丝 3602文章 62课程 4
点赞
收藏

作者推荐

未登录
1条评论
小丑
无知不是生存的障碍,傲慢才是!
3年前
一个用心的工程师
回复

课程
培训
服务
行家

VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈