上一贴(详解Abaqus插件脚本中的8种关键字(AFXKeyword)(上)) (注:此处有超链接)中,我们谈到了关键字的定义、共有8种类型,以及在不同脚本中的用法。
这一帖来讨论这8种类型关键字的创建方法,以及各用于何种控件。
1、整型关键字 AFXIntKeyword
构造方法:
AFXIntKeyword(command, name, isRequired=False, defaultValue=INT_DEFAULT, evalExpression=True)
参数解释:
command:GUI命令,或None。
在注册脚本中定义时,通常赋值为AFXGuiCommand的实例对象。
在对话框脚本中定义时,赋值为None。
name:关键字名称。
此名称为字符串,须与内核脚本中的参数同名。
isRequired:布尔值,是否为命令的必须参数。默认值为False,但使用时都改为True。
8种类型关键字都有以上三个参数。
defaultValue:默认值,在大多数类型的关键字中都有该参数。比如在文本框控件中,我们将defaultValue设为5,那么打开对话框时,默认则会出现5。
evalExpression:是否支持表达式,布尔值,默认为True。如果输入的值是5+3,那么在文本框中,则会出现8。
使用整型关键字的典型控件有:文本框控件、单选框控件等。
这里需提到参数tgt和sel的设置。通常有三种设置方式,具体见我另一个帖子《Abaqus插件对话框二次开发,参数tgt和sel的设置方法》
本贴只讨论第一种,tgt= 关键字,sel = 0 或非0
其中,tgt(消息目标)即为在注册脚本中创建关键字的变量,通过form. 来调用。
sel(消息ID)则根据关键字的类型不同,而有不同的赋值。
如何选择sel的赋值,需要看下表:
这里是AFXIntKeyword,则sel一般设为0。但如果是用于单选框控件,sel则采用大于0的整数
2、浮点型关键字 AFXFloatKeyword
构造方法:
AFXFloatKeyword(command, name, isRequired=False, defaultValue=FLOAT_DEFAULT, precision=6)
参数解释:
前四个参数,与AFXIntKeyword中是一样的,以下就不重复解释了。
precision:将关键字的浮点值转换为文本字符串的精度。
使用浮点型关键字的典型控件有:文本框控件、下拉列表控件、微调控件等。
使用浮点型关键字的控件,参数sel的赋值为0
3、字符串类型关键字 AFXStringKeyword
构造方法:
AFXStringKeyword(command, name, isRequired=False, defaultValue='')
使用字符串类型关键字的典型控件有:文本框控件、列表控件、下拉列表控件等。
使用字符串类型关键字的控件,参数sel的赋值为0
4、布尔类型关键字 AFXBoolKeyword
构造方法:
AFXBoolKeyword(command, name, booleanType=ON_OFF, isRequired=False, defaultValue=False)
参数解释:
booleanType:布尔值,一般赋值为AFXBoolKeyword.TRUE_FALSE
使用布尔类型关键字的典型控件有:复选框控件。
使用布尔类型关键字的控件,参数sel的赋值为0
5、符号常数类型关键字 AFXSymConstKeyword
构造方法:
AFXSymConstKeyword(command, name, isRequired=False, defaultValue=0)
abaqus自带有大量的符号常数,用from abaqusConstants import *导入后,可以使用。比如THREE_D、DEFORMABLE_BODY等
我们也可以人为定义一个符号常数,这样使用起来很直观。
使用符号常数类型关键字的典型控件有:列表控件和下拉列表,此时sel赋值为0;也可以用于单选框控件,此时sel赋值是大于0的整数。
6、元组类型关键字 AFXTupleKeyword
构造方法:
AFXTupleKeyword(command, name, isRequired=False, minLength=0, maxLength=-1, opts=0)
minLength:最小元组长度,默认为0
maxLength:最大元组长度,为-1表示无限制
这个关键字没有默认值。
使用元组类型关键字的典型控件有:文本框控件。
当从一个文本框中收集大于1个数据时,比如一个坐标为(10,20,30),相当于收集了3个数据,则可以用元组类型关键字,等同于从三个文本框中分别收集。此时sel赋值为大于零的整数。如果只收集1个数据,sel则为0.
7、表格关键字 AFXTableKeyword
构造方法:
AFXTableKeyword(command, name, isRequired=False, minLength=0, maxLength=-1, opts=0)
minLength:表格中最小行数,默认为0
maxLength:表格中最大行数,为-1表示无限制
这个关键字没有默认值。
使用表格类型关键字的典型控件有:表格控件。
使用表格类型关键字的控件,参数sel的赋值为0
8、对象类型关键字 AFXObjectKeyword
构造方法:
AFXObjectKeyword(command, name, isRequired=False, defaultValue='')
使用表格类型关键字的典型控件有:拾取控件。
使用表格类型关键字的控件,参数sel的赋值为0
虽然这些关键字可以用RSG自动创建出来,但它们本身也都有各自的方法和属性。加以灵活运用,可以让插件GUI具有更加方便和丰富的功能。