APDL中除了定义单个变量参数,还可以定义包含多个值的数组参数。这种方式的好处是对于某一组或某一类的数据,只需要定义一个一维、二维或三维的数组参数,即可通过下标序号来调用多个数值,避免定义太多单独变量造成混乱和维护困难。
本篇主要介绍ANSYS APDL参数化应用时的数组的定义及赋值。
APDL支持一维、二维和三维的数组参数,分别用I, J, K表示各维度坐标。
ANSYS允许定义以下几种数组类型:
1) ARRAY数值型数组
2) CHAR字符型数组
3) TABLE表(特殊的数值型数组)
4) STRING字符串数组
其中,TABLE表可以通过下标实现数组元素的插值计算;字符串数组可以将字符串输入到数组中;这两种数组较为特殊,但本质与1、2两种类型相同。
数组是通过 *DIM 命令来定义的,帮助文档中的定义和参数如下所示:
帮助文档中关于*DIM的说明
其中Par为定义的数组名称;Type为定义的数组类型,默认为ARRAY数值型数组;IMAX、JMAX、KMAX表示数组行、列、面的数量;Var1\2\3是TABLE类型时的行、列、面的变量名,CSYSID为对应的坐标系ID(默认为0)。
用*DIM定义数组的示例如下:
数组的定义示例
定义好的数组可以用GUI方式查看,路径为
给数组赋值最简单的办法就是通过 “ = ”来赋值,例如给上述一维字符型数组CC赋值时,命令和结果如下所示:
给二维数组也可用 “=” 赋值,不过二维数组的赋值顺序是按列进行赋值的,即先给一列的所有行赋值之后再换到下一列进行赋值,而每一列的赋值方法和一维数组相同,例如在给上述二维数值型数组AAA赋值时的命令和结果:
其中,数组括号内的两个下标分别指代的起始的行和列,比如AAA(1,2)就表示从AAA数组的第1行,第2列位置开始,依次给第2列各行上的元素赋值。
在赋值时需要注意:
1、赋值的个数不能超过定义数组时设定的元素个数,比如给CCC再多赋值一个NAME7,就超过了CCC定义的6个元素数量,此时NAME7是无效的。
2、在对数组赋值的时候,依次最多能给10个元素赋值,超过10个之后需要从第11个开始继续赋值,例如:
3、不同于C#和Python等编程语言,APDL数组的起始值是从1开始而不是从0开始的,在赋值和调用的时候不要搞混。
对于三维数组的赋值,是首先从面开始定义元素,然后按列,最后按行,与二维数组的赋值方式类似。
可以通过交互方式查看或编辑已经定义的数组。
具体操作是在菜单栏中Parameters→Array Parameters→Define/Edit,然后在弹出的对话框中选择要查看和编辑的数组名即可,不过该方法不能编辑字符型数组。
小技巧Tips:
在定义数组的时候,是支持参数化定义的,例如:
可以定义一个包含8个元素的一位数值型数组,这种方法对于数组元素个数依赖于其他步骤的处理结果来确定的情况非常有效。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删