PyQt平臺開發Abaqus計算程序
PyQt平臺開發Abaqus計算程序
1 概述
PyQt平臺是Qt里針對Python語言程序進行界面設計的平臺,借助這個平臺采用Python編程語言可以開發各種各樣的程序。Abaqus的執行命令也是采用Python編寫的,因此可以結合這個平臺開發Abaqus計算程序,調用Abaqus執行有限元分析過程。
本次以一個平面開孔模型為例,如圖1所示,設計一個程序能夠通過程序界面設置相關參數并執行計算。

圖1 平面開孔模型
2 程序界面
參數化的參數包括矩形長度w、矩形寬度h、圓的半徑r、材料的彈性模量E、泊松比以及壓力載荷p,并設置三個按鈕:
生成腳本:利用VB生成Abaqus可以執行的腳本文件;
開始計算:啟動Abaqus,調用生成的腳本文件進行有限元分析。
同時還添加了一個Label控件,用于顯示圖片,方便參數輸入。
最終得到的程序界面如圖2所示,給所有的Textbox命名,方便后臺代碼調用,并設置默認值。

圖2 程序界面
這里注意一下,在Label如何插入圖片?如圖3所示,圖上內容為Label的屬性設置框,通過Pixmap可以設置圖片,通過scaledContents可以調整圖片適合Label控件大小。

圖3 Label加載圖片
3 功能代碼
PyQt自由化設計程序界面,而編譯界面的代碼一般用Eric。并且在Eric里面為了編寫方便通常將界面與邏輯代碼分離,此操作可回看之前發的文章。
通過定義兩個槽函數,分別執行腳本文件生成和啟動Abaqus計算的操作。
(1)代碼轉換
定義腳本文件的槽函數為:
self.GenerateBtn.clicked.connect(self.GeneratePy)
定義槽函數時采用write逐行輸出Python命令行,在命令行中獲取界面參數的內容如下:
f.write("ww="+self.ww_lineEdit.text()+"\n")
f.write("hh="+self.hh_lineEdit.text()+"\n")
f.write("rr="+self.rr_lineEdit.text()+"\n")
f.write("EE="+self.EE_lineEdit.text()+"\n")
f.write("bb="+self.bb_lineEdit.text()+"\n")
f.write("pp="+self.pp_lineEdit.text()+"\n")
同時,在代碼里出現的任何以上參數均采用變量名代替,比如ww。
生成腳本文件同樣需要打開一個py格式的文件,將嵌入進來的代碼再輸出到py文件中。
最終實現的功能如圖4所示,生成的py文件:

圖4 Py腳本文件
(2)開始計算
啟動Abaqus調用Python腳本文件在PyQt里面比較好的實現方法是利用Abaqus Command命令提示符窗口。因此,在PyQt里面只需要通過subprocess函數啟動計算機里面的Abaqus Command并且在窗口輸入調用語句即可。
最終即可實現參數化計算,程序界面輸入參數,程序自行啟動Abaqus執行計算。
當然,程序還可以結合Python對Abaqus的計算結果進行后處理,此次不作闡釋。
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















