PyQt平臺開發Abaqus計算程序

PyQt平臺開發Abaqus計算程序

1 概述

PyQt平臺是Qt里針對Python語言程序進行界面設計的平臺,借助這個平臺采用Python編程語言可以開發各種各樣的程序。Abaqus的執行命令也是采用Python編寫的,因此可以結合這個平臺開發Abaqus計算程序,調用Abaqus執行有限元分析過程。

本次以一個平面開孔模型為例,如圖1所示,設計一個程序能夠通過程序界面設置相關參數并執行計算。

15.1.png

1 平面開孔模型

2 程序界面

參數化的參數包括矩形長度w、矩形寬度h、圓的半徑r、材料的彈性模量E、泊松比以及壓力載荷p,并設置三個按鈕:

生成腳本:利用VB生成Abaqus可以執行的腳本文件;

開始計算:啟動Abaqus,調用生成的腳本文件進行有限元分析。

同時還添加了一個Label控件,用于顯示圖片,方便參數輸入。

最終得到的程序界面如圖2所示,給所有的Textbox命名,方便后臺代碼調用,并設置默認值。

 

15.2.png

2 程序界面

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

15.3.png

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文件:

15.4.png

4 Py腳本文件

2)開始計算

啟動Abaqus調用Python腳本文件在PyQt里面比較好的實現方法是利用Abaqus Command命令提示符窗口。因此,在PyQt里面只需要通過subprocess函數啟動計算機里面的Abaqus Command并且在窗口輸入調用語句即可。

最終即可實現參數化計算,程序界面輸入參數,程序自行啟動Abaqus執行計算。

當然,程序還可以結合PythonAbaqus的計算結果進行后處理,此次不作闡釋。

 

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

3
1
2