ansys-APDL编程 - 图文 下载本文

数据(必须接在*MSG命令之后)。%C与FORTRAN中的描述符A8类似。*MSG 命令不能由GUI直接得到。

? PARSAV和PARRES

前一个命令把字符参数保存到一个文件中(通过PARSAV命令或Utility Menu>Parameters> Save Parameters菜单项),后一个命令从文件中恢复参数(通过PARRES命令或Utility Menu>Parameters> Restore Parameters菜单项) ? *VREAD

该命令(Utility Menu>Parameters>Array Parameters>Read from File)用于从某个文件中读取字符参数并生成一个字符数组参数。FORTRAN 中的字符描述符(A)用于*VREAD命令后的格式行中。 ? *VWRITE

该命令(menu path Utility Menu>Parameters>Array Parameters>Write to File)可用来以某种格式化的顺序把字符参数数据写到一个文件中。FORTRAN 中的字符描述符(A)可用于*VWRITE 命令后的格式行中。

3.6.2.3 字符参数的限制

虽然字符参数和数字参数有很多相同的功能,但是在有些场合字符参数是无效的: ? 在*SET, *GET, *DIM, 和 *STATUS 命令中,Par参数对应的字符参数是不能被置

换的。

? 对于字符数组参数,不能应用交互式编辑方式(*VEDIT命令)。

? 向量运算命令,诸如*VOPER, *VSCFUN, *VFUN, *VFILL, *VGET和*VITRP,不

能用于字符数组参数。

? 对字符参数进行运算时,*VMASK 和*VLEN命令只能应用于*VWRITE 和

*VREAD命令中。

? 字符参数不能用于包括加、减、乘等运算的参数公式中。

3.7 数字或字符参数的动态置换

应用/TITLE, /STITLE, *ABBR, 和 /TLABEL命令时会发生参数的动态置换。动态置换允许使用参数被修改后的值,即使使用该参数的命令还没有被调用。

例如:

XYZ='CASE 1'

/TITLE,This is %XYZ% APLOT

标题\将显示在面区域。

若改变XYZ的值,那么在接下来的绘图中即使没有调用/TITLE命令,也将显示新的标题。

XYZ='CASE 2'

标题 \将显示在以后的绘图中。

第 14 页

3.8 参数公式

参数公式包括对参数和数值的运算,如加、减、乘、除等。例如: X=A+B

P=(R2+R1)/2

D=-B+(E**2)-(4*A*C) ! 求值D = -B + E2 - 4AC

XYZ=(A

M=((X2-X1)**2-(Y2-Y1)**2)/2 下面是APDL 算子的完全列表: 运算符号 + - * / ** < > 操作 加 减 乘 除 求幂 小于 大于 也可以如上例一样使用圆括号。ANSYS运算的顺序如下所示:

1. 圆括号中的运算 (最里面最优先) 2. 求幂 (从右到左) 3. 乘和除 (从左到右)

4. 一元联合 (例如 +A或-A) 5. 加和减 (从左到右) 6. 逻辑判断 (从左到右)

因此一个诸如Y2=A+B**C/D*E的公式按如下顺序求值:最先求B**C,第二步/D,第三步*E,最后+A。为了更清楚,可以在公式中使用圆括号。圆括号最多可嵌套4层,在每套圆括号中最多可有9次运算。一般来说,在公式的运算符之间不要有空格。特别是在*之前不能有空格,这是因为如果这样,接下来的输入行(以*开头)将被作为一条命令来解释,而不再是公式的一部分了。

3.9 带参数的函数

一个带参数的函数是数学运算的程序序列,并返回一个值,例如SIN(X), SQRT(B), 和 LOG(13.2)。下面的表完整地列出了当前可用的ANSYS函数: 标准FORTRAN 77 函数 ABS(x) SIGN(x,y) EXP(x) LOG(x) LOG10(x) X的绝对值 X的绝对值,但取y(正负)符号。y=0时结果取正号。 X的指数值 X的自然对数值(ln (x)) X的常用对数值(log10(x)) 第 15 页

SQRT(x) NINT(x) MOD(x,y) RAND(x,y) GDIS(x,y) SIN(x),COS(x), TAN(x) X的平方根值 X的整数部分 x/y的余数部分。若y=0,则返回0 在x到y范围内产生随机数(一致分布)(x 为下限,y为上限) 生成平均值为x且偏差为y的正态分布的随机数 X的正弦、余弦及正切值。X的缺省单位为弧度,但可用*AFUN命令转化为度数。 SINH(x), COSH(x), X的双曲线正弦、余弦及正切值。 TANH(x) ASIN(x), ACOS(x), X的反正弦、反余弦及反正切值。对于ASIN 和ACOS ,X必须在ATAN(x) -1.0和 +1.0 之间。输出的缺省单位为弧度,但可用*AFUN命令转化为度数。对于ASIN和ATAN,输出值的范围在-pi/2到+pi/2之间;对于ACOS,输出值的范围在0 到pi之间 ATAN2(y,x) y/x的反正切值。输出的缺省单位为弧度,但可用*AFUN命令转化为度数。输出值的范围在-pi到+pi之间。 数字参数PARM的字符值。小数位置数取决于数值大小。 把CPARM转化为大写 把CPARM转化为小写 VALCHR (CPARM) 返回CPARM的数字值。(如果CPARM是一个数值则返回0.0) CHRVAL (PARM) UPCASE (CPARM) LWCASE (CPARM) 下面是一些带参数函数的例子: PI=ACOS(-1) ! PI = -1的反余弦值, PI的精确度由机器确定 Z3=COS(2*THETA)-Z1**2 R2=SQRT(ABS(R1-3))

X=RAND(-24,R2) ! X = 在-24和R2的随机值 *AFUN,DEG ! 把角度的单位转换为度数 THETA=ATAN(SQRT(3)) ! THETA等于60度 PHI=ATAN2(-SQRT(3),-1) ! PHI 等于-120度

*AFUN,RAD ! 把角度的单位转换为弧度 X249=NX(249) ! 节点249的X轴坐标 SLOPE=(KY(2)-KY(1))/(KX(2)-KX(1))

! 连接关键点1和2的线的斜率 CHNUM=CHRVAL(X) ! CHNUM = X的字符值

UPPER=UPCASE(LABEL) ! UPPER = 参数LABEL的大写字符

3.10 保存、恢复、写参数

如果要在其他ANSYS任务中使用当前定义的参数,可以先把它们写入一个文件中,然后读取(恢复)该文件。读取文件时,可以全部代替当前定义的参数,也可以只把它们加到当前定义的参数中(会覆盖已存在的参数)。

可用PARSAV命令把参数写入一个文件中(Utility Menu>Parameters>Save Parameters)。 参数文件是ASCII文件,主要由APDL *SET命令组成,该命令用来定义各种参数。用下面的例子来说明参数文件的格式:

/NOPR

第 16 页

*SET,A , 10.00000000000 *SET,B , 254.3948750000 *SET,C ,'string '

*SET,_RETURN , 0.0000000000000E+00 *SET,_STATUS , 1.000000000000 *SET,_ZX ,' ' /GO

可用PARRES命令从一个文件中读取参数(Utility Menu>Parameters>Restore Parameters) 。

若需要,最多可用FORTRAN实数格式写10个参数或数组到一个文件中。可以利用这一特性来写用于其他程序、报告等的输出文件。其对应的命令为*VWRITE(Utility Menu>Parameters>Array Parameters>Write to File)。关于该命令的内容在3.11.7部分。

3.11 数组参数

除数量参数(一个值)之外,还可以定义数组参数(多个值)。ANSYS数组可以是一维(一列),二维(行和列)或三维(行、列和面)。

ANSYS提供了三种数组类型: ARRAY

这种类型与FORTRAN 77的数组类似,是缺省的数组类型。和FORTRAN 77的数组一样,行、列和面的下标从1开始,为连续的整形数,数组元素为整形或实形数。该类型数组最多可有10242-1行、255列和7面。 CHAR

字符数组,每个元素包含不超过8个的文字数字字符,行、列和面的下标从1开始,为连续的整形数。该类型数组最多可有10242-1行、255列和7面。 TABLE

这是一种特殊的数字数组类型,通过它,ANSYS可以计算在数组中明确定义的元素之间的值(通过线性插值)。而且可以为每一行、列和面定义数组下标,下标为实数(不是整形数)。数组元素可以是整数,也可以是实数。在后面的讨论中可以看到,这一特性为数学运算提供了一个非常有力的工具。该类型数组最多可有65,535行、255列和7面。

3.11.1 数组的基础知识

以下面的一个二维数组(ARRAY或CHAR)为例:它有m行长和n列宽,即其维数为m 乘以n。每行由行下标i确定,i在1到m之间;每列由列下标j确定,j在1到n之间。

第 17 页