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)試方法。
一般方法:內(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ù)制粘貼代碼即可。
這樣執(zhí)行的好處是,可以從前到后逐塊執(zhí)行,所有的變量都可以較快速地通過print進(jìn)行查詢,同時(shí)還可以通過members和methods方法查詢每個對象的屬性和方法,方便后續(xù)程序開發(fā)。
待內(nèi)核執(zhí)行代碼調(diào)試無誤之后,再去集成圖形界面文件和注冊文件。
但通常情況下,當(dāng)我們將內(nèi)核執(zhí)行代碼與圖形界面以及注冊文件關(guān)聯(lián)后,仍然需要局部對插件程序進(jìn)行完善,此時(shí)想要提高程序調(diào)試效率就得用更高效的方法。
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
(3) 在PDE中打開要調(diào)試的插件代碼,在代碼中右鍵單擊對關(guān)注的行設(shè)置斷點(diǎn),也可以選中變量名右鍵單擊添加監(jiān)控。
(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。
工程師必備
- 項(xiàng)目客服
- 培訓(xùn)客服
- 平臺客服
TOP




















