使用python進行ABAQUS批處理-Gui代碼
“ 在使用python進行ABAQUS批處理-總體思路中, 我們梳理了插件開發需求與流程, 本篇將詳細講述該插件的Gui的設計。”
使用ABAQUS自帶的RSG即可搭建簡易的GUI操作界面, 這樣可以避免書寫大量的GUI代碼, 只需針對其不符合使用需求的部分進行修改即可. 這樣一來, 就要求在設計完成后, 保存GUI時應選擇standard plug-in, 同時你還需要能夠找到這個文件, 來進行修改.
如何使用RSG工具構造GUI并關聯kernel程序的方法, 在本篇文章中不進行討論.
在設計GUI的時候, 我們已經發現了兩個問題:
label標簽內容不可以換行, 即使輸入\n也不行;
RSG沒有提供選擇文件夾的控件, 只提供了選擇文件的控件.
以下, 將就這兩個問題展開討論
01
—
label標簽內容可以換行
label標簽如果不能換行, 那么在輸入一些解釋性的信息的時候會比較麻煩, 要么會拉寬對話框, 要么就得需要多個label.
其實label不是不能換行, 只是其不能在RSG頁面進行換行, 想要換行的話, 需要自己手動編輯自動生成的帶有DB字樣的py文件.
從上圖可以發現, \n并沒有達到換行的目的.
通過查看上圖所對應的帶有DB的py文件可以發現:
l = FXLabel(p=GroupBox_1, text='000000000000000000000000000\\n00000000000000000000', opts=JUSTIFY_LEFT)
我們設計的這個label文件的內容中的\n被禁止轉義了, 相信我們主要取消這個禁止, 就可以實現換行:
l = FXLabel(p=GroupBox_1, text='000000000000000000000000000\n00000000000000000000',opts=JUSTIFY_LEFT)
然后重啟ABAQUS:
成功換行!
02
—
文件夾的選擇
RSG自動生成的file控件是無法選擇文件夾的:
如此一來我們就需要查閱幫助文檔, 首先我們需要知道控件的名稱, 打開對應的帶有DB字樣的python文件, 可以找到控件的類型為AFXFileSelectorDialog.
fileDb = AFXFileSelectorDialog(getAFXApp().getAFXMainWindow(), 'Select a File', self.fileNameKw, self.readOnlyKw, AFXSELECTFILE_ANY, self.patterns, self.patternTgt)
在幫助文檔中, 我們可以發現這個控件是通過mode參數來設定選擇類型的:
File selection modes
| AFXSELECTFILE_ANY | A single file, existing or not (to save to). |
| AFXSELECTFILE_EXISTING | An existing file (to load). |
| AFXSELECTFILE_MULTIPLE | Multiple existing files. |
| AFXSELECTFILE_MULTIPLE_ALL | Multiple existing files or directories. |
| AFXSELECTFILE_DIRECTORY | Existing directory. |
| AFXSELECTFILE_REMOTE_HOST | Enable opening files on a remote host. |
作如下更改后, 重啟ABAQUS:
fileDb = AFXFileSelectorDialog(getAFXApp().getAFXMainWindow(), 'Select a Folder', self.fileNameKw, self.readOnlyKw, AFXSELECTFILE_DIRECTORY, self.patterns, self.patternTgt)
OK, 可以選擇文件夾了
03
—
總結
至此, 所有技術細節已經處理完畢, 在kernel代碼設計完成后, 使用RSG工具設計GUI界面的初始樣式, 并關聯kernel, 然后自行修改帶有DB字樣的py文件, 已達到標簽換行和選擇文件夾的目的.
關注公眾號并回復: batch analysis, 獲取ABAQUS批處理插件源代碼程序.
期待更多技術干貨, 請關注AbaqusCoder!
如果本文對您有幫助, 期待您的轉發與點亮再看!
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















