使用python進行ABAQUS批處理-Gui代碼

 在使用python進行ABAQUS批處理-總體思路中, 我們梳理了插件開發需求與流程, 本篇將詳細講述該插件的Gui的設計。



使用python進行ABAQUS批處理-Gui代碼的圖1


    使用ABAQUS自帶的RSG即可搭建簡易的GUI操作界面, 這樣可以避免書寫大量的GUI代碼, 只需針對其不符合使用需求的部分進行修改即可. 這樣一來, 就要求在設計完成后, 保存GUI時應選擇standard plug-in, 同時你還需要能夠找到這個文件, 來進行修改.


使用python進行ABAQUS批處理-Gui代碼的圖2

    

    如何使用RSG工具構造GUI并關聯kernel程序的方法, 在本篇文章中不進行討論.


    在設計GUI的時候, 我們已經發現了兩個問題:

  1. label標簽內容不可以換行, 即使輸入\n也不行;

  2. RSG沒有提供選擇文件夾的控件, 只提供了選擇文件的控件.


    以下, 將就這兩個問題展開討論


01


label標簽內容可以換行



    label標簽如果不能換行, 那么在輸入一些解釋性的信息的時候會比較麻煩, 要么會拉寬對話框, 要么就得需要多個label.

    其實label不是不能換行, 只是其不能在RSG頁面進行換行, 想要換行的話, 需要自己手動編輯自動生成的帶有DB字樣的py文件.

使用python進行ABAQUS批處理-Gui代碼的圖3

    從上圖可以發現, \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:

使用python進行ABAQUS批處理-Gui代碼的圖4

    成功換行!    


02


文件夾的選擇


    RSG自動生成的file控件是無法選擇文件夾的:

使用python進行ABAQUS批處理-Gui代碼的圖5

    如此一來我們就需要查閱幫助文檔, 首先我們需要知道控件的名稱, 打開對應的帶有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)

使用python進行ABAQUS批處理-Gui代碼的圖6

    OK, 可以選擇文件夾了



03


總結

    至此, 所有技術細節已經處理完畢, 在kernel代碼設計完成后, 使用RSG工具設計GUI界面的初始樣式, 并關聯kernel,  然后自行修改帶有DB字樣的py文件, 已達到標簽換行和選擇文件夾的目的.


關注公眾號并回復: batch analysis, 獲取ABAQUS批處理插件源代碼程序.


期待更多技術干貨, 請關注AbaqusCoder!

使用python進行ABAQUS批處理-Gui代碼的圖7

如果本文對您有幫助, 期待您的轉發與點亮再看!


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

TOP

19
11
22