Abaqus GUI程序開發(fā)過程中的一般調(diào)試方法

文章轉(zhuǎn)自《復(fù)合材料力學(xué)》微信公眾號

在采用Python語言對Abaqus進(jìn)行GUI應(yīng)用程序或者插件程序開發(fā)時(shí),最令人懊惱的就是每每修改了圖形界面代碼或者內(nèi)核程序,都需要反復(fù)重新啟動Abaqus/CAE才能檢驗(yàn)所修改內(nèi)容是否更新,所調(diào)試的bug是否已經(jīng)解決。整個調(diào)試過程,很大一部分時(shí)間都浪費(fèi)在重啟Abaqus/CAE的過程中。那有沒有辦法避免反復(fù)重啟Abaqus/CAE呢?

本文將介紹幾種方法,來提升Abaqus GUI程序開發(fā)效率。應(yīng)用程序及插件程序調(diào)試方法類似,故本文僅以插件程序調(diào)試為例。

一般插件程序有注冊文件、圖形界面文件及內(nèi)核執(zhí)行文件組成,想要提升插件程序調(diào)試效率,需要首先搞清楚不同的插件程序文件缺省情況下都是在何時(shí)被加載的:

(1)注冊文件:一般以xxx_plugin.py命名,其主要作用是注冊各類控件關(guān)鍵字,檢查數(shù)據(jù)的合法性,并將插件工具注冊到Plug-ins菜單或者自定義工具條中。注冊文件默認(rèn)是在Abaqus/CAE啟動時(shí)被加載,首次調(diào)用插件時(shí),插件文件夾內(nèi)會同時(shí)出現(xiàn)xxx_plugin.pyc文件,是最早被編譯的代碼文件。

(2)圖形界面文件:一般以xxxDB.py命名,其主要作用是定義圖形界面框架、各類控件,并關(guān)聯(lián)各控件的執(zhí)行目標(biāo)、執(zhí)行動作等。圖形界面文件是在插件菜單被點(diǎn)擊時(shí)加載,如果是首次調(diào)用插件,同時(shí)在插件文件夾內(nèi)會出現(xiàn)xxxDB.pyc文件。

(3)內(nèi)核執(zhí)行文件:內(nèi)核執(zhí)行文件是插件程序的核心,包含了一系列驅(qū)動Abaqus/CAE內(nèi)核程序的指令,通過執(zhí)行這些指令完成CAE建模以及數(shù)據(jù)處理等功能。內(nèi)核執(zhí)行文件同樣也是在插件菜單被點(diǎn)擊時(shí)加載,如果是首次調(diào)用插件,同時(shí)在插件文件夾內(nèi)會出現(xiàn)xxx.pyc內(nèi)核編譯文件。


默認(rèn)情況下,一旦插件文件夾中存在了pyc文件,則對應(yīng)的代碼不會再被重新編譯。在打開CAE的情況下,即便刪除本地的pyc文件,仍舊無法重新編譯py文件生成新的pyc,除非重新啟動Abaqus/CAE。

接下來介紹一下內(nèi)核執(zhí)行程序及圖形界面程序調(diào)試方法。

Abaqus GUI程序開發(fā)過程中的一般調(diào)試方法的圖1

一般方法:內(nèi)核腳本的調(diào)試

插件程序開發(fā)時(shí)切勿直接將圖形界面文件和內(nèi)核執(zhí)行文件直接關(guān)聯(lián),而是將內(nèi)核執(zhí)行文件單獨(dú)進(jìn)行調(diào)試。在內(nèi)核執(zhí)行文件中,將相關(guān)自定義關(guān)鍵字預(yù)留并賦予初值。然后在Abaqus/CAE界面下方命令交互行復(fù)制粘貼代碼即可。

Abaqus GUI程序開發(fā)過程中的一般調(diào)試方法的圖2

這樣執(zhí)行的好處是,可以從前到后逐塊執(zhí)行,所有的變量都可以較快速地通過print進(jìn)行查詢,同時(shí)還可以通過members和methods方法查詢每個對象的屬性和方法,方便后續(xù)程序開發(fā)。

Abaqus GUI程序開發(fā)過程中的一般調(diào)試方法的圖3

待內(nèi)核執(zhí)行代碼調(diào)試無誤之后,再去集成圖形界面文件和注冊文件。

但通常情況下,當(dāng)我們將內(nèi)核執(zhí)行代碼與圖形界面以及注冊文件關(guān)聯(lián)后,仍然需要局部對插件程序進(jìn)行完善,此時(shí)想要提高程序調(diào)試效率就得用更高效的方法。

Abaqus GUI程序開發(fā)過程中的一般調(diào)試方法的圖4

Abaqus PDE調(diào)試方法:圖形界面及內(nèi)核調(diào)試

Abaqus/PDE中除了可以調(diào)試內(nèi)核指令之外,也是可以調(diào)試復(fù)雜插件程序或者應(yīng)用程序的。

具體步驟如下:

(1)啟動Abaqus/CAE

(2)在File菜單中啟動Abaqus PDE

Abaqus GUI程序開發(fā)過程中的一般調(diào)試方法的圖5

(3) 在PDE中打開要調(diào)試的插件代碼,在代碼中右鍵單擊對關(guān)注的行設(shè)置斷點(diǎn),也可以選中變量名右鍵單擊添加監(jiān)控。

Abaqus GUI程序開發(fā)過程中的一般調(diào)試方法的圖6

(4) 切換回Abaqus/CAE,在插件菜單中調(diào)用插件并執(zhí)行,此時(shí)插件程序會自動暫停在PDE中設(shè)置的斷點(diǎn)處,切換回PDE界面即可查看相應(yīng)斷點(diǎn)位置以及監(jiān)控的變量數(shù)值。

熟悉PDE的讀者應(yīng)該知道,雖然這是Abaqus自帶的python調(diào)試環(huán)境,但體驗(yàn)感受并不順暢,效率低,易卡死。有時(shí)候我們寧愿選擇反復(fù)重啟ABAQUS/CAE。

登錄后免費(fèi)查看全文
立即登錄
App下載
技術(shù)鄰APP
工程師必備
  • 項(xiàng)目客服
  • 培訓(xùn)客服
  • 平臺客服

TOP

31
21
11