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种关键字在创建时,都具备以上三个参数,不同类型的关键字还都有自己的参数。
刚才说了,关键字在注册脚本创建,而应用于对话框脚本中,我们分开讨论。
注册脚本:
创建一个字符串类型的关键字
第23行,需要以AFXGuiCommand创建一个GUI命令,以它作为关键字的第一个参数。这个参数可以给所有关键字共用。
第26行,构造方法AFXStringKeyword(),创建关键字对象,赋值给self.keyword01Kw
对话框脚本:
字符串类型关键字使用于特定的控件中,比如文本框控件:
参数tgt的赋值,即为刚才创建的关键字对象。因为处于不同的脚本,需要用form来调用该关键字。
由于关键字的类型是字符串,所以sel的赋值为0,这是固定格式。
如此一来,文本框控件创建好了。文本框中输入的字符串(Part-1),会被赋值给参数 keyword01,传递给内核脚本。
参数tgt和sel通常有三种设置方式,在《Abaqus插件对话框二次开发,参数tgt和sel的设置方法》(注:此处有超链接)帖子中有详细阐述,这里使用的是第一种方式。
在下一贴中,我们继续讨论8种关键字的具体创建方法,以及用于何种控件:
详解Abaqus插件脚本中的8种关键字(AFXKeyword)(下) (注:此处有超链接)