- Abaqus GUI程序開發指南(Python語言)
- 賈利勇 富琛陽子 賀高 周正光
- 1279字
- 2019-04-12 12:03:52
2.2 Python與Abaqus
Abaqus作為國際公認的大型通用非線性有限元軟件之一,被廣泛應用于機械制造、航空航天、汽車交通、船舶、土木工程、能源礦產、醫療衛生以及日用家電等諸多領域。隨著Abaqus應用領域及用戶的不斷拓展,軟件自身提供的功能往往不能滿足一些特殊的使用要求。為了進一步滿足不同用戶在軟件使用過程中不斷產生的新需求,Abaqus軟件為用戶提供了開放的二次開發接口,包括基于FORTRAN語言的用戶子程序接口和基于Python語言的腳本接口。前者主要是方便用戶開發自定義材料模型、自定義單元、自定義輸出變量以及復雜載荷等,其影響的是CAE分析過程中的求解環節;后者主要是方便用戶根據自身的需求開發前后處理工具(GUI程序)或者輔助用戶實現參數化的建模以及數據處理等工作,其影響的是CAE分析過程的前后處理環節。
Abaqus在繼承Python原有庫函數的基礎上,進一步擴展了Python的庫函數,通過調用這些庫函數,可繞過Abaqus/CAE界面,直接操縱Abaqus的內核程序,實現快速前處理建模及后處理功能。
Abaqus腳本接口可以通過以下多種方式與Abaqus/CAE內核程序進行交互(如圖2.1所示)。
(1)圖形用戶界面(GUI):在自定義對話框中設置或選擇參數,適用于復雜、系統、完整功能實現。本書第四、五、六章將詳細講述GUI控件的使用方法以及GUI插件程序和GUI應用程序的開發。
(2)主窗口下部命令交互界面(CLI):適用于單句或者多句簡單指令執行。本書第二章及第三章中的簡單實例多采用這種方式。
(3)執行腳本文件(script):適用于相同指令重復執行的情況。本書第二章及第三章中的復雜實例以及GUI插件的內核執行文件均采用這種方式進行測試。

圖2.1 命令流與ABAQUS/CAE內核關系圖
本書的第二章和第三章主要是通過CLI和script兩種方式與Abaqus/CAE內核程序進行交互,后續章節主要采用GUI的形式與Abaqus/CAE內核程序進行交互。GUI界面的創建基于Abaqus GUI Toolkit,它是Abaqus專為二次開發提供的GUI工具包,提供了大量的窗體控件,并給出了各個控件的組成部分以及創建該控件的方法。同時,GUI工具包也是FOX GUI Toolkit的擴展,它允許用戶修改和擴展Abaqus/ CAE的功能,以便更有效率地運用Abaqus解決問題。Abaqus腳本接口擴展了Python自身的對象模型,豐富了其函數庫,使得Abaqus的二次開發更為快捷。
簡單地講,Abaqus軟件通過提供Python語言的腳本接口可以實現以下功能。
(1)參數化的建模。通過編寫腳本實現模型的參數化建模,當某些參數發生變化時,只需要在腳本文件中對相應參數進行修改并重新執行腳本文件即可完成重新建模工作,可以避免因修改參數引起的大量手動重復操作。
(2)參數學習。在參數化模型的基礎上,通過改變某些特征參數,并以腳本的形式反復提交計算并輸出結果,可以分析目標變量隨著某些參數的變化歷程,當達到指定的目標值時停止計算,輸出最終的優化結果。
(3)創建GUI插件程序。插件程序是Abaqus二次開發中較為簡單的GUI開發類型,用戶可以借助RSG對話框構造器快速地創建GUI圖形界面。有關插件程序的開發內容詳見本書第五章“插件程序開發指南”。
(4)用戶自定義GUI應用程序開發。用戶自定義GUI程序開發是Abaqus二次開發中一類高級的GUI開發方式,應用程序中可以集成多功能組件、多模塊、多類GUI工具包,適合用于復雜的應用平臺開發。有關自定義GUI應用程序的詳細內容請參照本書第六章“用戶自定義GUI應用程序開發指南”。