详解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的二次开发 高级篇

(5条)
默认 最新
点赞
评论 点赞
👍
评论 点赞

查看更多评论 >

点赞 30 评论 5 收藏 29
关注