首页/文章/ 详情

Abaqus纯内核脚本添加到菜单栏的流程详解

1年前浏览6776

Abaqus二次开发做插件,往往是先开发出内核脚本,再用RSG做对话框,这样在Plug-ins菜单下,就可以随时调用这个插件了。

有时,脚本中并不需要输入参数,这时一般通过File - Run Scrip... 就即可运行。

然而,时间一长,这样的脚本越来越多,还都是英文名,可能会比较乱,不太好找。

能不能把一个内核脚本,也做成一个插件放在Plug-ins菜单栏中呢?

可以的。

思路:

和用RSG做出的对话框插件一样,把内核脚本xxx.py放入到 “工作目录-abaqus_plugins”中,建立一个xxx_plugin.py脚本,在该脚本中添加注册语句。

过程:

我这里有个很简单的内核脚本(createBeam1.py),函数为beam1(),其作用是创建一个梁,每次一运行该脚本,不用输入参数,即可创建一个梁。

1.png

想要把这个脚本,作为插件,放置到Abaqus的Plug-ins菜单栏中,跟着以下步骤来操作:

step 1、在工作目录 - abaqus_plugins中,新建一个英文名的文件夹(如createBeam1),把内核脚本拷贝进去

step 2、新建一个py脚本,起名为createBeam1_plugin.py

step 3、在新建的脚本中,输入以下内容:

2.png


重启,搞定

这两个脚本在附件中下载。



详解:

toolset = getAFXApp().getAFXMainWindow().getPluginToolset(),可以理解为toolset获得了Abaqus的主窗口的插件工具集的对象,它可以调用注册内核或注册Gui的方法。

注册脚本的作用是把内核脚本注册到主菜单中,它与带对话框的注册脚本类似,不过采用的方法不一样,这里是registerKernelMenuButton,而有对话框的是registerGuiMenuButton。

在帮助文档中,按照以下三个图,可以找到registerKernelMenuButton方法的注解:

3.png

4.png

5.png


说说registerKernelMenuButton方法中,各个参数的意思。

必选参数有三个:

moduleName:脚本名称,比如这里是createBeam1;

functionName:脚本中的函数名称,比如这里是beam1();

buttonText:在菜单中显示的名称,可以为中文,如这里为“创建梁(无参数)”。如果我们希望把该插件,放在下拉菜单中的子菜单中,可以用“|”给隔开,比如”创建梁|创建梁(无参数)”,会有下图的形式。

6.png


可选参数有6个:

icon:在下拉菜单中添加一个图标,可以用afxCreateIcon()来创建;

applicableModules:有时我们希望插件只在某一个/几个模块中显示,比如只在mesh模块中出现,则可以使用这个参数。默认为ALL,可选的为“Part”、“Property”、“Assembly”、“Step”、“Interaction”、“Load”、“Mesh”、“Job”、“Visualization”和“Sketch”。要注意的是,在自定义模块时候,需要用列表的形式,如这里的['Part', 'Assembly']

还有几个参数,如version、author、description和helpUrl,则用的很少,就不细述了。

需要注意的是,脚本中这几个参数是每个占一行,但它们之间是需要用“,”逗号隔开的,没有的话会出错。

如此一来,我们日常使用的脚本,无论是带对话框的,还是无对话框的,都可以放入到Plug-ins菜单中,还可以在下拉菜单中创建子菜单项,非常利于我们对脚本的管理。

附件

免费createBeam1.rar
Abaqus二次开发通用
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-10-06
最近编辑:1年前
陈开伟
硕士 Abaqus和HW二次开发
获赞 55粉丝 88文章 7课程 5
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈