詳解Abaqus插件腳本中的關鍵字(AFXKeyword)(上)

Abaqus插件的腳本往往有3個,內核腳本(xxx.py)、對話框腳本(xxxDB.py)和注冊腳本(xxx_plugin.py)。打開注冊腳本(xxx_plugin.py)后,經常可以發現諸如AFXStringKeyword、AFXIntKeyword、AFXBoolKeyword等構造方法。

 

從名稱看,我們知道它們是某某類型的關鍵字。那它們是什么意思?不同類型的關鍵字的區別是什么?怎么使用?用在何處?

 

今天,我們來聊聊Abaqus GUI二次開發中的關鍵字(AFXKeyword)。

 

在幫助文檔(6.14)Abaqus GUI Toolkit User's Guide中6.5.8,有關于AFXKeyword的定義。但說實話,說的不清楚,不好理解。

 

說大白話,關鍵字大多創建在注冊腳本,而用于對話框腳本中。關鍵字對象賦值給tgt參數,專門收集用戶的數據,作為參數發送給內核腳本。

 

關鍵字(AFXKeyword)的構造方法為:

AFXKeyword(command, name, isRequired=False)

參數解釋:

command:GUI命令,或None。

在注冊腳本中定義時,通常賦值為AFXGuiCommand的實例對象。

在對話框腳本中定義時,通常賦值為None。

name:關鍵字名稱。

此名稱為字符串,須與內核腳本中的參數同名。

isRequired:布爾值,是否為命令的必須參數。默認值為False,但使用時都改為True。

 

實際使用時,我們并不會用AFXKeyword()創建關鍵字對象,因為關鍵字一共有8種類型,分別是:

整型關鍵字:              AFXIntKeyword    

浮點型關鍵字:           AFXFloatKeyword      

字符串類型關鍵字:    AFXStringKeyword   

布爾類型關鍵字:        AFXBoolKeyword    

符號常數類型關鍵字: AFXSymConstKeyword

元組類型關鍵字:        AFXTupleKeyword  

表格關鍵字:                AFXTableKeyword    

對象類型關鍵字:         AFXObjectKeyword 

 

對話框中,不同的控件,對應的關鍵字類型是不一樣的。所以要依照控件,來創建相應類型的關鍵字。

 

這8種關鍵字在創建時,都具備以上三個參數,不同類型的關鍵字還都有自己的參數。

 

剛才說了,關鍵字在注冊腳本創建,而應用于對話框腳本中,我們分開討論。

 

注冊腳本:

創建一個字符串類型的關鍵字

詳解Abaqus插件腳本中的關鍵字(AFXKeyword)(上)的圖1

4.png

第23行,需要以AFXGuiCommand創建一個GUI命令,以它作為關鍵字的第一個參數。這個參數可以給所有關鍵字共用。

第26行,構造方法AFXStringKeyword(),創建關鍵字對象,賦值給self.keyword01Kw

 

對話框腳本:

字符串類型關鍵字使用于特定的控件中,比如文本框控件:

詳解Abaqus插件腳本中的關鍵字(AFXKeyword)(上)的圖3

2.png

參數tgt的賦值,即為剛才創建的關鍵字對象。因為處于不同的腳本,需要用form來調用該關鍵字。

由于關鍵字的類型是字符串,所以sel的賦值為0,這是固定格式。

 

如此一來,文本框控件創建好了。文本框中輸入的字符串(Part-1),會被賦值給參數 keyword01,傳遞給內核腳本。

詳解Abaqus插件腳本中的關鍵字(AFXKeyword)(上)的圖5

3.png

參數tgt和sel通常有三種設置方式,在《Abaqus插件對話框二次開發,參數tgt和sel的設置方法》帖子中有詳細闡述,這里使用的是第一種方式。

在下一貼中,我們繼續討論8種關鍵字的具體創建方法,以及用于何種控件: 

詳解Abaqus插件腳本中的關鍵字(AFXKeyword)(下)


Abaqus GUI二次開發三部曲:

Abaqus 主窗口GUI的二次開發

Abaqus插件程序GUI的二次開發 初、中級篇

Abaqus插件程序GUI的二次開發 高級篇

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

TOP

30
5
31