针对Abaqus GUI的二次开发,Abaqus提供了RSG Dialog Builder工具,如图1所示,通过这个交互式对话框界面工具,我们可以定义一些我们想要的GUI界面然后进行保存,保存后就可以在abaqus插件中直接看到。在保存的方式上,Abaqus提供了两种方法,一种是RSG plug-in,一种是Standard plug-in。虽然都会生成对应的DB和Plugin文件,但通过RSG plug-in保存生成的内容,可以重新被RSG Dialog Builder工具加载然后进行修改,而通过Standard plug-in保存的内容,RSG Dialog Builder工具无法再编辑。

图1 Abaqus RSG Dialog Builder界面
在实际的应用开发中,直接通过RSG Dialog Builder生成的界面不一定能满足使用要求,为了弥补这个不足,Abaqus提供了通过 AFX(Abaqus Foundation Extension)进行 GUI 开发的方法,这也是官方推荐的插件界面开发方式。它基于FOX GUI Toolkit,允许工程师为Abaqus CAE创建自定义工具栏、对话框、表单和模块扩展,AFX实现方式的基础代码来自于通过Standard plug-in保存而生成。对于如何通过Standard plug-in生成的代码进行Abaqus GUI二次开发,一直是初次接触Abaqus二次开发人员的拦路虎。本文目的在于通过详细流程和代码介绍,让Abaqus二次开发初学者可以更快开始核心代码开发工作,而不是GUI界面本身。
要让插件生效,Abaqus需要重新启动才能实现,这对于GUI的开发来说,如果每次调试都需要重启Abaqus,效率无法满足要求。为了解决这个问题,Abaqus官方提供了一个GUI调试软件prototypeApp。下面的步骤将会详细介绍如何让自己的代码在这个调试软件里跑通。
1、prototypeApp软件下载
先下载调试软件prototypeApp,下载地址:https://www.ict.com.cn/ruanjian/4212.html
2.prototypeApp调整
下载解压后,我们会看到prototypeApp文件夹中含有6个python文件,如下图2所示,但我们没有看到任何可执行程序,为了能看到调试程序的界面,我们需要创建一个.bat启动文件,并在该文件里输入abaqus cae -custom prototypeApp -noStartup,保存并双击该文件,即可打开调试app程序,(注意该app启动需要abaqus程序是激活状态),该程序界面如下图3所示。

图2 prototypeApp中的文件

图3 prototypeApp界面
通过点击F和D按钮就可以快速调试GUI代码。但此时会提示reload没有定义,无法运行。需要在testForm.py 和prototypeToolsetGui.py两个文件中加入代码:from importlib import reload。可以在测试的testDB中进行调整测试,通过F和D来实现。

图4 添加代码
如将TestDB中代码改成如下图所示,Test Dialog的变化如图6所示。

图5 代码调整

图5TestDB调整前后
3.调试自定义程序
接下来可以通过prototypeApp调试我们自定义的GUI程序。首先将通过standard plug-in保存的程序复制进prototypeApp文件夹,在文件夹中新建一个__init__.py文件(没有单独新建文件夹则可以不建)。在对应的xxxplugin.py文件中做如下处理:
A.加入相应的DB文件和reload,在前面部分加入代码:import xxDB;from importlib import reload;

图6 plugin文件中加入代码
B.在对应的GetFirstDialog()函数中注释掉import xxxDB文件,增加reload(xxxDB),将插件注册程序注释掉。
在prototypeToolsetGui.py中进行代码调整:
A.在前面加入代码,把testForm替换成自己生成的plugin文件(prototpypeApp文件夹中自带的文件),把类函数TestForm替换成plugin的类函数,调入reload函数。Beam_stand_plugin和Beam_stand_plugin分别是自定义的文件以及里面的类函数。

图7 plugin代码调整
B.将prototypeToolsetGui.py文件中所有的testFrom.TestFrom替换为TestFrom
C.在prototypeToolsetGui.py文件中onCmdForm函数里,在reload(testFrom)后面添加一行(如果在同一个文件夹下,可以不加)。

图8 onCmdForm调整
到这里,我们就可以进行快速调试自定义的GUI界面了,通过调整DB和Plugin文件实现我们想要的界面。下面我们通过简单例子来看下如何通过prototypeApp进行GUI界面的快速定义。下图为RSG直接生成的GUI界面,以standard plug-in方式保存生成了对应的beam_stand_plugin.py和beam_standDB.py文件。

图9 Abaqus RSG Dialog Builder生成的GUI界面
按照前面的步骤调整完后,在Beam_standDB(AFXDataDialog)中调整相应代码如下,主要是增加一些变量,调整一些布局。FXGroupBox主要用来定义装饰框,AFXTesxtTield用来定义文本框,FXHorizontalFrame用来定义水平放置还是竖直放置,afxCreatePNGIcon用来定义插图,FXLabel用来定义标题,在labelText中可以通过/t实现鼠标移动到该名称上时出现提示语。

图10 Beam_standDB(AFXDataDialog)代码调整
因为涉及到增加了一些变量,所以在Beam_stand_plugin(AFXForm)中也需要做相应定义,定义代码如下图所示。

图11 Beam_stand_plugin(AFXForm)代码调整
调整后的GUI界面如下:

图12 调整后GUI界面
注意在涉及到变量调整时,需要重启prototypeApp才能正常过程,不然容易报错。当然AFX控件远不止如此,大家可以参考相关资料做更复杂的界面开发。当调整完后,需要将前面的设置操作还原,即将xxxplugin.py中A、B两项还原,将prototypeToolsetGui.pyDB.py中A、B、C进行还原。然后把调整后的DB和Plugin等文件放入abaqus_plugins文件夹即可使用。如果涉及到变量调整,需要在主函数里添加相应定义。
获取正版软件免费试用资格,有任何疑问拨咨询热线:400-886-6353或 联系在线客服
未解决你的问题?请到「问答社区」反馈你遇到的问题,专业工程师为您解答!
 SOLIDWORKS 2026发布会活动(暨2025创新日)
                            SOLIDWORKS 2026发布会活动(暨2025创新日)