打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
不用重启Abaqus,手把手教你快速调试插件程序GUI
做过Abaqus二次开发的人都知道,Plug-ins菜单下的RSG对话框生成器,能很方便地生成插件程序对话框。对话框制作好之后,如保存为standard plug-in格式,则能自动转为Abaqus Gui toolkit脚本。虽然不能再用RSG对话框生成器进行编辑,但这种代码才是二次开发的语言,我们可以修改成更高级的对话框GUI。
而在对插件程序GUI做二次开发时,每当代码有更改,想要查看修改后的界面,必须要重启Abaqus,随着调试次数的增多,以及版本提升造成的打开缓慢,一次次打开Abaqus会显得不胜其烦,不知不觉会产生焦虑感。
我们改完脚本后,有没有什么方法,不用重新打开Abaqus,也能立刻显示对话框更改后的界面呢?
当然是有的。
其实帮助文档中,已经提供了一个方法。
打开帮助文档(版本6.14)中的 Abaqus GUI Toolkit User's Guide

点击 2.4 Running the prototype application

帮助中提示我们可以用二次开发的方法,即使不用重启Abaqus ,也能立刻看到效果。首先去”SIMULIA Learning Community“去下载一个附件。

下载需要注册账号,我已经下载好了,贴在帖子里,大家可以在我发布于技术邻的原帖中下载:
prototypeApp.zip
附件解压缩后,是6个脚本:

帮助中并没有阐述下一步该怎么做,我来说明一下接下来该如何设置。
先来解释一下这6个脚本的作用:
1、appIcons.py,打开后是大大的F和D字母,它能作为xpm格式,通过FXXPMIcon()构造方法创建图标
2、prototypeApp.py,启动脚本,它能创建并打开Abaqus应用程序。这个脚本的代码格式是固定的。
3、prototypeMainWindow.py,它是主窗口脚本,负责Abaqus自带工具集和自定义工具集的注册,以及自带模块和自定义的注册。工具集和模块中都分别包括了菜单、工具条、工具箱和树。这个脚本中,除了注册了常见的工具集和模块,还单独注册一个自定义的工具集:PrototypeToolsetGui,并把这个工具集放置在菜单和工具箱中。
4、prototypeToolsetGui.py,自定义的工具集。这个脚本能够新建图标按钮F和D,把这两个图标通过映射的方式,与自定义的插件程序做关联。
5、testDB.py,对话框脚本,我们通过RSG对话框生成器做出来的插件对话框,用standard-in格式保存后,能自动生成这个脚本。
6、testForm.py,Form模式脚本,作用是用来收集从对话框中输入的信息。这个脚本能调用对话框脚本。它也能通过RSG对话框生成器自动生成,只不过生成的名称是test_plugin.py。这里之所以要改名为testForm.py,是因为有两种模式,一种是Form模式,还有一种是Procedure模式,在做二次开发时,为了便于区分,把自动生成的_plugin改为了Form。除了改名之外,还必须删除自动生成的脚本中最后几行注册代码。
 这6个脚本有两个作用:
一是能将Plug-ins菜单中的某个插件程序,转为左侧工具箱中的F和D图标按钮。(为什么要转为两个图标,下文讲解)
二是以往我们通过脚本修改插件程序后,必须重启Abaqus,才能看到改后的效果。而现在不用重启Abaqus主窗口,只要重新打开对话框,就能立刻看到改后的界面,等待时的焦虑感瞬间扫光。
这几个脚本毕竟只是个模板,怎么用于我们自己的插件程序呢?
我已经在社区下载脚本的基础上,做好另一套脚本,可以直接打开Abaqus,保留了F和D图标按钮,并也能实现即时查看更改后的对话框功能。大家可以在我发布于技术邻的原帖中免费下载。
New Abaqus.rar
下载后解压缩,打开文件夹。

双击”startup.bat“,能打开Abaqus/CAE主窗口。
在主窗口的左侧,工具箱中有很醒目的F和D,F表示Form,D表示Dialogbox。

点击D,弹出一个自定义的插件(我做的很简单的插件,仅做演示用),点击OK可生成一个梁。

我们来做个演示,查看即时更改的功能:
用脚本编译器打开beamCreateDB.py,把对话框脚本做一些更改。为了不出现语法错误,建议只改 ' ' 中的字符串。这里比如:把34行的 'Dimension' 改为 '尺寸:' ,改后保存。
把对话框关闭后,点击“D”,可以发现对话框立刻做了更改。


同样,打开beamCreateForm.py,这个脚本是收集在对话框输入的数据。→ABAQUS GUI程序开发指南比如将第28行的40改为150,保存。
先点击”F”,再点击”D”,会发现length的默认值从之前的40,改为了150。
这里的”F”对应的是Form模式脚本,它负责创建关键字,并启动对话框脚本,自己也带有默认值。

如果对控件代码有所了解,可以直接添加控件语句:
这套脚本是通用的,大家可以把自己的插件程序用于这套脚本上,按照以下步骤更改:
Step 1、在RSG中把插件对话框保存为standard plug-in格式,一般是3个脚本文件+图片。假设内核脚本名称是abc.py,另外两个脚本就是abcDB.py和abc_plugin.py。
Step 2、把这3个脚本文件和图片,全部复制到My Abaqus文件夹下。
Step 3、把abc_plugin.py,改名为abcForm.py
Step 4、打开刚改完名的abcForm.py脚本,做如下三处修改:
1)把定义的类名改为abcForm(一般在第10行),可参考beamCreateForm.py第15行,注意第一个字母大写,如下图

2)找到实例方法getFirstDialog(),在import abcDB语句后面增加一行:reload(abcDB)。具体可参考beamCreateForm.py脚本的第40行,如下图

3)删除(或注释)最后的几行注册语句,如下图。其余不变,保存。


Step 5、打开myToolsetGui.py脚本,做如下修改:
1)把第8行改为:import abcForm

2)第24行改为:self.form = abcForm.AbcForm(self) ,注意后面的AbcForm是类名,”A“是大写的

3)第38行,改为:reload(abcForm)
4)第39行,改为:self.form = abcForm.AbcForm(self) ,与第24行一样 

5)第45行,改为:return 'import abc'

更改完毕。
 大家试一试,是不是可以点击D按钮打开插件呢?还可以试试更改脚本,体验实时更新对话框吧。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Abaqus二次开发系列(一):使用RSG对话框构造器快速创建插件程序
「譯」一小时学会写Abaqus 脚本
3D打印软件Cura的二次开发(GUI)
Eric6的基础使用方法
Python脚本如何生成Windows可执行文件.exe | 书影博客
python调用wps(在wps中使用python脚本)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服