Abaqus GUI程序开发过程中的一般调试方法

文章转自《复合材料力学》微信公众号

在采用Python语言对Abaqus进行GUI应用程序或者插件程序开发时,最令人懊恼的就是每每修改了图形界面代码或者内核程序,都需要反复重新启动Abaqus/CAE才能检验所修改内容是否更新,所调试的bug是否已经解决。整个调试过程,很大一部分时间都浪费在重启Abaqus/CAE的过程中。那有没有办法避免反复重启Abaqus/CAE呢?

本文将介绍几种方法,来提升Abaqus GUI程序开发效率。应用程序及插件程序调试方法类似,故本文仅以插件程序调试为例。

一般插件程序有注册文件、图形界面文件及内核执行文件组成,想要提升插件程序调试效率,需要首先搞清楚不同的插件程序文件缺省情况下都是在何时被加载的:

(1)注册文件:一般以xxx_plugin.py命名,其主要作用是注册各类控件关键字,检查数据的合法性,并将插件工具注册到Plug-ins菜单或者自定义工具条中。注册文件默认是在Abaqus/CAE启动时被加载,首次调用插件时,插件文件夹内会同时出现xxx_plugin.pyc文件,是最早被编译的代码文件。

(2)图形界面文件:一般以xxxDB.py命名,其主要作用是定义图形界面框架、各类控件,并关联各控件的执行目标、执行动作等。图形界面文件是在插件菜单被点击时加载,如果是首次调用插件,同时在插件文件夹内会出现xxxDB.pyc文件。

(3)内核执行文件:内核执行文件是插件程序的核心,包含了一系列驱动Abaqus/CAE内核程序的指令,通过执行这些指令完成CAE建模以及数据处理等功能。内核执行文件同样也是在插件菜单被点击时加载,如果是首次调用插件,同时在插件文件夹内会出现xxx.pyc内核编译文件。


默认情况下,一旦插件文件夹中存在了pyc文件,则对应的代码不会再被重新编译。在打开CAE的情况下,即便删除本地的pyc文件,仍旧无法重新编译py文件生成新的pyc,除非重新启动Abaqus/CAE。

接下来介绍一下内核执行程序及图形界面程序调试方法。

Abaqus GUI程序开发过程中的一般调试方法的图1

一般方法:内核脚本的调试

插件程序开发时切勿直接将图形界面文件和内核执行文件直接关联,而是将内核执行文件单独进行调试。在内核执行文件中,将相关自定义关键字预留并赋予初值。然后在Abaqus/CAE界面下方命令交互行复制粘贴代码即可。

Abaqus GUI程序开发过程中的一般调试方法的图2

这样执行的好处是,可以从前到后逐块执行,所有的变量都可以较快速地通过print进行查询,同时还可以通过members和methods方法查询每个对象的属性和方法,方便后续程序开发。

Abaqus GUI程序开发过程中的一般调试方法的图3

待内核执行代码调试无误之后,再去集成图形界面文件和注册文件。

但通常情况下,当我们将内核执行代码与图形界面以及注册文件关联后,仍然需要局部对插件程序进行完善,此时想要提高程序调试效率就得用更高效的方法。

Abaqus GUI程序开发过程中的一般调试方法的图4

Abaqus PDE调试方法:图形界面及内核调试

Abaqus/PDE中除了可以调试内核指令之外,也是可以调试复杂插件程序或者应用程序的。

具体步骤如下:

(1)启动Abaqus/CAE

(2)在File菜单中启动Abaqus PDE

Abaqus GUI程序开发过程中的一般调试方法的图5

(3) 在PDE中打开要调试的插件代码,在代码中右键单击对关注的行设置断点,也可以选中变量名右键单击添加监控。

Abaqus GUI程序开发过程中的一般调试方法的图6

(4) 切换回Abaqus/CAE,在插件菜单中调用插件并执行,此时插件程序会自动暂停在PDE中设置的断点处,切换回PDE界面即可查看相应断点位置以及监控的变量数值。

熟悉PDE的读者应该知道,虽然这是Abaqus自带的python调试环境,但体验感受并不顺畅,效率低,易卡死。有时候我们宁愿选择反复重启ABAQUS/CAE。

(20条)
默认 最新
用PDE调试是好方法。 如果要调试主窗口GUI脚本,还有更简便直接的方法,直接看cmd窗口。 报错后,cmd上会有出错信息,美中不足的是,cmd窗口停留的时间有时长,有时短。 想要仔细看的话,最好用截屏的方法,粘贴到画图上,仔细分析。 有时cmd窗口干脆一闪而过,看不清楚,这时往往在工作目录会生成abaqus.guiState文本文件,当中也有详细提示。 不过用PDE的话,还是更直观的
评论 1 点赞 1
回复
厉害的老师!
评论 点赞
评论 点赞

查看更多评论 >

点赞 31 评论 21 收藏 11
关注