ANSYS命令流学习指南-APDL内容简解
数值型数组变量的值通过
Parameters->ARRAYParameters->definearray查看、修改和删除 清除变量值 *set,AA或AA=
删除某个变量可以用*del
*del,AA
*del,all删除所有变量 参数保存和恢复
如果要在其他ANSYS任务中使用当前定义的参数,可以先把它们写入一个文件中,然后读取(恢复)该文件。读取文件时,可以全部代替当前定义的参数,也可以只把它们加到当前定义的参数中(会覆盖已存在的参数)。
可用PARSAV命令把参数写入一个文件中(UtilityMenu>Parameters>SaveParameters)。 参数文件是ASCII文件,主要由APDL*SET命令组成,该命令用来定义各种参数。可用PARRES命令从一个文件中读取参数(UtilityMenu>Parameters>RestoreParameters)。 字符变量的用法
暂无
数组初步
数组是ANSYS非常实用有效的数据存储和运算工具。其定义方法与普通变量略有差别。 ANSYS中数组包括数值型、字符型和表三种类型的数组。下面分别是三种数组的定义方法。
一般格式*DIM,变量名,[数组类型],行数,[列],[面] *DIM,AA,,4!类型ARRAY为缺省类型,维数为4[x1x1] *DIM,XYZ,ARRAY,12!ARRAY类型数组,维数为12[x1x1] *DIM,FORCE,TABLE,5!TTABLE类型数组,维数为5[x1x1] *DIM,T2,,4,3!维数为4x3[x1]
*DIM,CPARR1,CHAR,5!CHAR类型数组,维数为5[x1x1]
DareDoc
8
ANSYS命令流学习指南-APDL内容简解
其中数值型和字符型数组,下标为整数,行列面的起始下标均为1,而TABLE的下标为大于等于0的实数或整数。 数组赋值
1)利用*set命令或―=‖给单个或多个数组元素赋值与scalar变量赋值是格式相同。 2)利用*set或―=‖赋值时,赋值对象为第一个元素名,赋值数据是一个列矢量,赋值结果是按列下标递增顺序从第一个赋值数组依次赋值。注意,一次最多只能给10个连续数组元素赋值,当只给一个元素赋值时与变量赋值完全一致。
举例:
(1)*DIM,A,ARRAY,12,1,1
定义数组A为一个array类型,12行1列
A(1)=1,2,……12
给每个元素赋值为其行标 (2)*DIM,B,array,4,3,1
定义数组B为一个array类型4行3列
B(1,1)=11,21,31,41 B(1,2)=12,22,32,42 B(1,3)=31,32,33,43 B=
注意此赋值的下标!对于二维数组,赋值顺序按照列进行赋值,注意此规律。三维也是一样的。
(3)*DIM,C,char,4,1,1
C(1)=?a‘,?b‘,?c‘,?d‘
ANSYS*get命令和查询函数
*get命令
ANSYS*get(UtilityMenu>Parameters>GetScalarData)命令可以返回一些值并存储在一个变量或者数组中。
例如通过*GET,node1x,NODE,1,LOC,X可以获得节点1的X坐标,并存储在变量node1x中,其GUI操作如下:
DareDoc 9
ANSYS命令流学习指南-APDL内容简解
*get命令调用的格式如下
*GET,Par,Entity,ENTNUM,Item1,IT1NUM,Item2,IT2NUM 这里
Par是将被赋值的参数名;
Entity是被提取项目的关键词,有效的关键词是NODE,ELEM,KP,LINE,AREA,VOLU等。 ENTNUM是实体的编号(若为0指全部实体);
Item1是指某个指定实体的项目名。例如,如果Entity是ELEM,那么Item1要么是NUM(选择集中的最大或最小的单元编号),要么是COUNT(选择集中的单元数目)。在ANSYSCommandsReference(ANSYS命令参考手册)中的*GET部分对每种实体的Item1值有完整的说明。帮助路径为//CommandReference//VIII.GCommands//*GET 可以把*GET命令看成是对一种树型结构从上至下的路径搜索,即从一般到特殊的确定。 可用下面的例子来说明*GET命令的用法。下面的第一条命令用于获得单元97的材料 属性(MAT参考号)并赋给单元BCD:
*GET,BCD,ELEM,97,ATTR,MAT!BCD=单元97的材料号 *GET,V37,ELEM,37,VOLU!V37=单元37的体积
*GET,NMAX,NODE,,NUM,MAX!NMAX=最大激活节点数 *GET,COORD,ACTIVE,,CSYS!COORD=激活的坐标系值
*GET,NCOUNT,node,0,count!NCOUNT=得到这些节点的个数
*GET,ND_NUM_MN,node,0,num,min!ND_NUM=得到这些节点中编号最小的节点号 正如*GET从数据库获取标量数据,可以用*VGET获取数组信息或UtilityMenu>Parameters>GetArrayData
先定义数组,然后获取数据 例如:
*dim,dispval,array,20,3 !20×3array
*vget,dispval(1,1),node,1,u,x !UXofnodes1-20incolumn1
DareDoc
10
? ? ? ?
ANSYS命令流学习指南-APDL内容简解
*vget,dispval(1,2),node,1,u,y !UYincolumn2 *vget,dispval(1,3),node,1,u,z !UZincolumn3 查询函数(Inquiry Function)
在ANSYS操作过程或条件语句中,常常需要知道有关模型的许多参数值,如选择集中的单元数、节点数,最大节点号等。此时,一般可通过*GET命令来获得这些参数。现在,对于此类问题,我们有了一个更为方便的选择,那就是查询函数 — Inquiry Function。
Inquiry Function类似于ANSYS的 *GET 命令,它访问ANSYS数据库并返回要查询的数值,方便后续使用。ANSYS每执行一次查询函数,便查询一次数据库,并用查询值替代该查询函数。
假如你想获得当前所选择的单元数,并把它作为*DO循环的上界。传统的方法是使用*GET命令来获得所选择的单元数并把它赋给一个变量,则此变量可以作为*DO循环的上界来确定循环的次数
*get, ELMAX,elem,,count *do, I, 1, ELMAX … …
*enddo
现在你可以使用查询函数来完成这件事,把查询函数直接放在*DO循环内,它就可以提供所选择的单元数
*do, I, ELMIQR(0,13) … …
*enddo
这里的ELMIQR并不是一个数组,而是一个查询函数,它返回的是现在所选择的单元数。括弧内的数是用来确定查询函数的返回值的。第一个数是用来标识你所想查询的特定实体(如单元、节点、线、面号等等),括弧内的第二个数是用来确定查询函数返回值的类型的(如选择状态、实体数量等)。
同本例一样,通常查询函数有两个变量,但也有一些查询函数只有一个变量,而有的却有三个变量。
ANSYS提供了许多类似的查询函数,下面举一个例子,其它常用查询函数可以在帮助中查询。
NODE—ndinqr(node,key)
node—节点号,对于key=12,13,14为0 key—标识关于node的返回信息 =1, 选择状态 =12,定义的数目 =13,选择的数目 =14,定义的最大数 =-2,超单元标记 =-3,主自由度 =-4,激活的自由度 =-5,附着的实体模型 ndinqr(node,key)的返回值 对于key=1
DareDoc
11
ANSYS命令流学习指南-APDL内容简解
=-1,未选择 =0,未定义 =1, 选择
系统信息查询函数/INQUIRE
要获得当前系统时间、ANSYS工作目录、文件信息、系统时间等参数使用/INQUIRE命令。格式为:
/INQUIRE, StrArray, FUNC
StrArray:将接受返回值的字符数组参数名 FUNC:指定系统信息返回的类型
参考目录:// Command Reference // X. I Commands // /INQUIRE
内嵌获取函数的用法
对于某些信息,除了使用*get命令获取外,可以通过ANSYS内嵌的获取函数来获得信息。主要分成两类,一般函数和数学函数。
例如
Node1x=NX(1)!节点1在当前激活坐标系中的x坐标值 与上面的*GET,node1x,NODE,1,LOC,X!等价
可以看出,此类函数比*get的用法更加简洁和明确
同样,ANSYS提供了一些常用的数学函数,比如三角函数,取整,取余等。
ABS(x) SIGN(x,y) CXABS(x,y) EXP(x) LOG(x) LOG10(x) SQRT(x) NINT(x) MOD(x,y) RAND(x,y) GDIS(x,y)
SIN(x),COS(x),TAN(x) *AFUN.
ASIN(x),ACOS(x),ATAN(x) ATAN2(y,x)
VALCHR(CPARM) CHRVAL(PARM) UPCASECPARM LWCASE(CPARM)
查询这些函数在ANSYS14.5中的路径为
//ANSYSParametricDesignLanguageGuide//B.GETFunctionSummary
宏
什么是APDL宏
DareDoc
12