php 自定义菜单json数据结构,Workbench开发指南:自定义菜单

在之前文章中,小田老师分享过Workbench中的脚本开发与仿真流程集成的方法;有朋友后台留言说希望能直接对Workbench界面进行开发定制,那么今天果断安排上,给朋友们说一说如何自定义菜单及功能。507e90e88a474bc879610e7c1c7ae3c6.png在19.0之前版本,只能通过Workbench SDK定制界面,这就要配置开发环境、掌握C#编程、编译插件等,需要专业的编程技能,对于我们工程师来说是复杂和费时的。

29348032ae5d893423524879806a87d8.png

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

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

在开始之前如果你不了解ACT的话,可以阅读《ANSYS ACT开发宝典》掌握基本数据结构。然后就可以进入正题,在XML文件中定义标签来描述界面元素,然后在插件的标签中使用和回调函数来定义、注册和取消菜单项,代码如下:

b842c65400f4d776d4c9c3d38243a3de.png

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

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

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

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

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

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

319f57068c0a01df15081376fc71c72a.png

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值