APDL编程教程Word格式文档下载.docx

上传人:b****5 文档编号:20749757 上传时间:2023-01-25 格式:DOCX 页数:78 大小:466.75KB
下载 相关 举报
APDL编程教程Word格式文档下载.docx_第1页
第1页 / 共78页
APDL编程教程Word格式文档下载.docx_第2页
第2页 / 共78页
APDL编程教程Word格式文档下载.docx_第3页
第3页 / 共78页
APDL编程教程Word格式文档下载.docx_第4页
第4页 / 共78页
APDL编程教程Word格式文档下载.docx_第5页
第5页 / 共78页
点击查看更多>>
下载资源
资源描述

APDL编程教程Word格式文档下载.docx

《APDL编程教程Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《APDL编程教程Word格式文档下载.docx(78页珍藏版)》请在冰豆网上搜索。

APDL编程教程Word格式文档下载.docx

QUIT,"

"

POWRGRPH,"

和"

ANSYSWEB"

缩写中,"

Fnc_/QUIT,"

Fnc_/GRAPHICS,"

Fnc_HomePage"

都是唯一的UIDL函数名,用来确定与QUIT,POWRGRPH,和ANSYSWEB缩写对应的ANSYS的拾取菜单或对话框。

有关UIDL的更多信息在5.6部分。

String最多可包含60个字符,但不能含有以下字符:

字符"

$"

,命令C***,/COM,/GOPR,/NOPR,/QUIT,/UI,或*END。

缺省的ANSYS工具条包含如下预定义的缩写:

*ABBR,SAVE_DB,SAVE

*ABBR,RESUM_DB,RESUME

*ABBR,QUIT,Fnc_/EXIT

*ABBR,POWRGRPH,Fnc_/GRAPHICS

*ABBR,ANSYSWEB,Fnc_HomePage

例如,要加一个按钮到工具条中来调用宏文件mymacro.mac,如下图所示在UtilityMenu>

EditToolbar对话框中输入值。

图2-2加新缩写

新按钮被添加到如下图所示的工具条按钮条中。

图2-3新缩写的按钮

当执行的ANSYS任务发生改变时,工具条按钮也会改变。

但是,工具条按钮被保存在数据库中,因此在ANSYS任务中执行任何一条"

resume"

命令都将仍然包含原来的工具条按钮。

要保存定制的按钮定义,必须通过UtilityMenu>

SaveToolbar菜单项明确地把它们保存到文件中,并通过UtilityMenu>

RestoreToolbar菜单项(*ABBRES命令)在每个ANSYS任务中进行恢复。

可以在宏中编程完成这项功能。

注意-如果在同名文件中已经存在某些缩写,*ABBSAV命令将覆盖它们。

缩写文件的格式就是一些用来产生缩写的APDL命令序列。

因此,如果要编辑很多按钮或要改变其顺序,通过一个文本编辑器来实现是最方便的了。

例如,下面的文件就是由保存缺省工具条按钮而产生的:

/NOPR

*ABB,SAVE_DB,SAVE

*ABB,RESUM_DB,RESUME

*ABB,QUIT,Fnc_/EXIT

*ABB,POWRGRPH,Fnc_/GRAPHICS

*ABB,ANSYSWEB,Fnc_HomePage

/GO

*ABB命令(*ABBR的缩写形式)定义按钮。

第一行的/NOPR使下面的操作不被写入log文件,最后一行的/GO使后面的操作被写入log文件。

2.2嵌套工具条缩写

上面讲的保存-恢复特性使嵌套缩写成为可能。

通过在一个按钮下嵌套缩写,可以定义专用的工具条(假如有很多缩写放在一个工具条下,将会引起混乱,很难找到正确的按钮)。

为了嵌套缩写,可以简单地定义一个恢复缩写文件的缩写。

例如,下面的命令定义PREP_ABR作为一个缩写,该缩写从文件prep.abbr中恢复缩写。

*ABBR,PREP_ABR,ABBRES,,PREP,ABBR

PREP_ABR将作为一个按钮显示在工具条上。

单击它,现在的按钮将被文件prep.abbr中所定义的那套按钮代替。

通过定义缩写来恢复文件,并在这些文件中包含缩写,就可以在某个特定的ANSYS任务中定义不受数目限制的缩写。

甚至可以通过嵌套一些缩写文件把这一方法扩展到产生自己的菜单层次。

在实现菜单层次的过程中,最好在每一个文件中添加一个"

return"

按钮的缩写以通过菜单返回。

第三章使用参数

3.1参数

参数是APDL的变量(它们更象Fortran变量,而不象Fortran参数)。

不必明确声明参数类型。

所有数值变量(整形或实形)都以双精度数储存。

被使用但未声明的参数都被赋一个接近0的值,或"

极小值"

,大约为

例如,若参数A被定义为A=B,但B没被定义,则赋给A一个极小值。

ANSYS包含两种类型的参数:

标量和数组。

本章前一部分的内容适用于这两种类型。

3.11后的内容只适用于数组类型的参数。

括在单引号中的字符串(最多8个字符)可以赋给参数。

APDL提供的数组参数的类型有:

数值,字符和表(一种特殊的数值数组,能自动产生插值)。

可以用一个参数(代替数值或字符串)作为任何一个ANSYS命令的变量,该参数被求值并被赋给命令变量。

例如,把值2.7赋给参数AA,然后执行命令:

N,12,AA,4

ANSYS程序将把该命令解释为:

N,12,2.7,4(定义节点12为点X=2.7,Y=4)。

3.2参数命名规则

参数名称必须以字母开头,且只能包含字母、数值和下划线。

下面列出一些有效和无效的参数名:

有效参数名:

ABC

PI

X_OR_Y

无效参数名:

NEW_VALUE(超过8个字符)

2CF3(以数值开头)

M&

E(含非法字符"

&

"

在命名参数时,注意以下几点:

●要避免参数名与经常使用的ANSYS标识字相同,如:

自由度(DOF)标识字(TEMP,UX,PRES等);

常用标识字(ALL,PICK,STAT等);

用户定义标识字(如用ETABLE命令定义的标识字);

数组类型标识字(如CHAR,ARRAY,TABLE等)

●记住,名称为从ARG1到ARG9和从AR10到AR99的参数被保留为局部参数。

通常,局部参数用于宏中(见4.4)。

●参数名不能与用*ABBR命令定义的缩写相同。

有关缩写的更多内容在2.1中。

●参数名不能以下划线(_)开头。

这类参数名只能用于GUI和应用于ANSYS的宏中。

3.2.1从*STATUS命令中隐藏参数

3.3.4部分讲述了通过*STATUS命令列表显示参数。

可以通过参数的命名约定来从*STATUS命令中隐藏参数:

名称中以下划线(_)结束的任何参数,在执行*STATUS命令都将不被显示。

当为很多其他用户开发APDL宏时,这一功能是十分有用的。

可以用这一功能来建立宏,而ANSYS用户和其它的宏编程人员不能列表显示你定义的参数。

3.3定义参数

除非特别说明,以下几节的内容对标量和数组类型参数都适用。

从3.11后的内容只适用于数组类型的参数。

定义参数的方法主要有:

可以把值赋给参数,也可以提取ANSYS提供的值,再把这些值赋给参数。

还可以用*GET命令或各种内嵌获取函数从ANSYS中提取值。

下面的部分对其进行详细说明。

3.3.1在运行过程中给参数赋值

可以用*SET命令定义参数。

如下面的例子:

*SET,ABC,-24

*SET,QR,2.07E11

*SET,XORY,ABC

*SET,CPARM,'

CASE1'

也可以用"

="

作为一种速记符来调用*SET命令(这更方便),其格式为Name=Value,这里Name是指参数名,Value是指赋给该参数的数值或字符。

对于字符参数,赋给的值必须被括在单引号中,并不能超过8个字符。

下面的例子说明"

的用法:

ABC=-24

QR=2.07E11

XORY=ABC

CPARM='

在GUI中,可以直接在ANSYS输入窗口或标量参数对话框的"

Selection"

域(通过UtilityMenu>

Parameters>

ScalarParameters菜单项访问)中输入"

3.3.2在启动时给参数赋值

当从操作系统的命令行启动ANSYS时,可以定义参数作为变量:

仅仅只需在ANSYS的运行命令(与系统有关)之后按-NameValue的格式输入参数定义即可。

例如,下面定义了两个参数(parm1andparm2),分别赋值89.3和-0.1:

ansys55-parm189.3-parm2-0.1

最好不要在启动时指派一个或两个字符参数名,以避免与ANSYS命令行选项发生冲突。

注意-UNIX操作系统把单引号和有些非文字数字字符作为专用符号。

定义字符参数时,必须在单引号前插入后斜线(\)以免误会。

例如,下面定义两个字符参数,分别赋值`filename'

和`200'

ansys55-cparm1\'

filename\'

-cparm2\'

200\'

如果不是用命令行形式启动ANSYS,可以通过Interactive或Batch菜单项(仍采用上面描述的-NameValue格式)来定义参数。

假如在启动时要定义很多参数,更加方便的做法是在start5x.ans文件中或一个能用/INPUT命令加载的单独文件中进行参数定义。

3.3.3赋ANSYS提供的值给参数

ANSYS提供了两种方法来从ANSYS中提取数据:

1.*GET命令,从某个特定的项目中提取数据并赋给某个特定的参数;

2.内嵌获取函数,可在运行时使用。

每个获取函数从某个特定的项目中提取特定的数据。

3.3.3.1*GET命令的用法

*GET命令(UtilityMenu>

GetScalarData)从某个特定的项目(一个点、一个单元、一个面等)中提取ANSYS提供的数据并赋给某个用户命名的参数。

各种关键词、标识字和数字结合在一起来确定被提取的项目。

例如,*GET,A,ELEM,5,CENT,X返回单元5的质心的X坐标值并赋给参数A。

*GET命令的使用格式为:

*GET,Par,Entity,ENTNUM,Item1,IT1NUM,Item2,IT2NUM

这里,

●Par是将被赋值的参数名;

●Entity是被提取项目的关键词,有效的关键词是NODE,ELEM,KP,LINE,AREA,VOLU等,在ANSYSCommandsReference(ANSYS命令参考手册)中的*GET部分对之有完整的说明;

●ENTNUM是实体的编号(若为0指全部实体);

●Item1是指某个指定实体的项目名。

例如,如果Entity是ELEM,那么Item1要么是NUM(选择集中的最大或最小的单元编号),要么是COUNT(选择集中的单元数目)。

在ANSYSCommandsReference(ANSYS命令参考手册)中的*GET部分对每种实体的Item1值有完整的说明。

可以把*GET命令看成是对一种树型结构从上至下的路径搜索,即从一般到特殊的确定。

可用下面的例子来说明*GET命令的用法。

下面的第一条命令用于获得单元97的材料属性(MAT参考号)并赋给单元BCD:

*GET,BCD,ELEM,97,ATTR,MAT!

BCD=单元97的材料号

*GET,V37,ELEM,37,VOLU!

V37=单元37的体积

*GET,EL52,ELEM,52,HGEN!

EL52=在单元52生成的热值

*GET,OPER,ELEM,102,HCOE,2!

OPER=单元102面2上的热系数

*GET,TMP,ELEM,16,TBULK,3!

TMP=单元16面3上的体积温度

*GET,NMAX,NODE,,NUM,MAX!

NMAX=最大激活节点数

*GET,HNOD,NODE,12,HGEN!

HNOD=在节点12生成的热值

*GET,COORD,ACTIVE,,CSYS!

COORD=激活的坐标系值

3.3.3.2内嵌获取函数的用法

对于某些项目,可以用内嵌的获取函数来代替*GET命令。

获取函数返回项目的值并直接用于当前运行之中。

这样就不必先把值赋给参数,然后再在运行中调用该参数,从而可以省去起中间作用的参数。

例如,要计算两个节点的X坐标的平均值,可以采用*GET函数:

1.使用下面的命令来把节点1的X坐标值赋给参数L1:

*GET,L1,NODE,1,LOC,X

2.再使用*GET命令来把节点2的X坐标值赋给参数L2;

3.计算中间值MID=(L1+L2)/2.。

更简便的方法是使用节点坐标的获取函数NX(N),该函数返回节点N的X坐标值。

这样就可以不用中间参数L1和L2。

如下所示:

MID=(NX

(1)+NX

(2))/2

获取函数的参数可以是参数也可以是其它的获取函数。

例如,获取函数NELEM(ENUM,NPOS)返回在单元ENUM上NPOS处的节点编号,则联合函数NX(NELEM(ENUM,NPOS))返回该节点的X坐标值。

下面的表总结了所有可用的获取函数:

获取函数

提取值

实体状态:

NSEL(N)

节点N的状态(-1=未被选择,0=未定义,1=被选择)

ESEL(E)

单元E的状态(-1=未被选择,0=未定义,1=被选择)

KSEL(K)

关键点K的状态(-1=未被选择,0=未定义,1=被选择)

LSEL(L)

线L的状态(-1=未被选择,0=未定义,1=被选择)

ASEL(A)

面A的状态(-1=未被选择,0=未定义,1=被选择)

VSEL(V)

体V的状态(-1=未被选择,0=未定义,1=被选择)

选择下一个实体:

NDNEXT(N)

选择节点编号大于N的下一个节点

ELNEXT(E)

选择单元编号大于E的下一个单元

KPNEXT(K)

选择关键点编号大于K的下一个关键点

LSNEXT(L)

选择线编号大于L的下一条线

ARNEXT(A)

选择面编号大于A的下一个面

VLNEXT(V)

选择体编号大于V的下一个体

定位:

CENTRX(E)

单元E的质心在总体笛卡儿坐标系中的x坐标值

CENTRY(E)

单元E的质心在总体笛卡儿坐标系中的y坐标值

CENTRZ(E)

单元E的质心在总体笛卡儿坐标系中的z坐标值

NX(N)

节点N在当前激活坐标系中的x坐标值

NY(N)

节点N在当前激活坐标系中的y坐标值

NZ(N)

节点N在当前激活坐标系中的z坐标值

KX(K)

关键点K在当前激活坐标系中的x坐标值

KY(K)

关键点K在当前激活坐标系中的y坐标值

KZ(K)

关键点K在当前激活坐标系中的z坐标值

LX(L,LFRAC)

线L的长度百分数为LFRAC(0.0to1.0)处的X坐标值

LY(L,LFRAC)

线L的长度百分数为LFRAC(0.0to1.0)处的Y坐标值

LZ(L,LFRAC)

线L的长度百分数为LFRAC(0.0to1.0)处的Z坐标值

就近定位:

NODE(X,Y,Z)

距点X,Y,Z最近的被选择的节点的编号(在当前激活坐标系中;

符合条件的关键点中编号最小者)

KP(X,Y,Z)

距点X,Y,Z最近的被选择的关键点的编号(在当前激活坐标系中;

距离:

DISTND(N1,N2)

节点N1和节点N2之间的距离

DISTKP(K1,K2)

关键点K1和关键点K2之间的距离

DISTEN(E,N)

单元E的质心和节点N之间的距离。

质心由单元上选择的节点确定。

角度:

ANGLEN(N1,N2,N3)

两条线之间的夹角(由三个节点确定,其中N1为顶点)。

单位缺省为弧度。

ANGLEK(K1,K2,K3)

两条线之间的夹角(由三个关键点确定,其中K1为顶点)。

离某实体最近:

NNEAR(N)

最接近节点N的节点

KNEAR(K)

最接近关键点K的关键点

ENEARN(N)

最接近节点N的单元。

单元位置由选择的节点确定。

面积:

AREAND(N1,N2,N3)

由节点N1,N2,和N3围成的三角形的面积

AREAKP(K1,K2,K3)

由关键点K1,K2,和K3围成的三角形的面积

ARNODE(N)

与节点N相连的被选择单元在节点N上分配的面积。

对于二维平面实体,返回与节点N相连边界的面积;

对于轴对称实体,返回与节点N相连边表面的面积;

对于三维体实体,返回与节点N相连面的面积。

法向:

NORMNX(N1,N2,N3)

节点N1,N2,和N3确定平面的法线与X轴的夹角的余弦值

NORMNY(N1,N2,N3)

节点N1,N2,和N3确定平面的法线与Y轴的夹角的余弦值

NORMNZ(N1,N2,N3)

节点N1,N2,和N3确定平面的法线与Z轴的夹角的余弦值

NORMKX(K1,K2,K3)

关键点K1,K2,和K3确定平面的法线与X轴的夹角的余弦值

NORMKY(K1,K2,K3)

关键点K1,K2,和K3确定平面的法线与Y轴的夹角的余弦值

NORMKZ(K1,K2,K3)

关键点K1,K2,和K3确定平面的法线与Z轴的夹角的余弦值

关联:

ENEXTN(N,LOC)

与节点N相连的单元。

若有很多单元与节点N相连,则由LOC定位。

列表结束时返回零。

NELEM(E,NPOS)

单元E中在NPOS(1-20)位置上的节点号。

表面:

ELADJ(E,FACE)

与单元E的某个表面号(FACE)邻近的单元。

面号与面载荷关键号相同。

仅仅考虑那些有相同维数和形状的单元。

若邻近的单元多于一个,则返回-1,若无邻近单元,返回0。

NDFACE(E,FACE,LOC)

单元E的某个表面(FACE)上的LOC处的节点。

LOC指表面上的节点位置(对于IJLK表面,LOC=1指节点I,2指节点J等)

NMFACE(E)

包含选定节点的单元E的表面号。

面号输出就是面载荷关键号。

如果一个面上出现多个载荷关键号(例如线单元和面单元),该面上的最小载荷关键号将被输出。

ARFACE(E)

对于二维平面实体和三维体实体,返回包含选定节点的单元E的表面面积。

对于轴对称单元,返回总表面积(360度)。

自由度结果:

UX(N)

节点N在X向的结构位移

UY(N)

节点N在Y向的结构位移

UZ(N)

节点N在Z向的结构位移

ROTX(N)

节点N绕X向的结构转角

ROTY(N)

节点N绕Y向的结构转角

ROTZ(N)

节点N绕Z向的结构转角

TEMP(N)

节点N上的温度

PRES(N)

节点N上的压力

VX(N)

节点N在X向的流动速度

VY(N)

节点N在Y向的流动速度

VZ(N)

节点N在Z向的流动速度

ENKE(N)

在节点N上的湍流动能(FLOTRAN)

ENDS(N)

在节点N上的湍流能量耗散(FLOTRAN)

VOLT(N)

节点N处的电压

MAG(N)

在节点N上的磁标势

AX(N)

在节点N上的X向磁矢势

AY(N)

在节点N上的Y向磁矢势

AZ(N)

在节点N上的Z向磁矢势

3.3.4排列显示参数

一旦定义了参数,就可以用*STATUS命令把它们排列显示出来。

如果仅用*STATUS命令(没有附加参数),将列表显示目前所有已定义的参数。

下面的例子说明了该命令的用法及典型的排列显示:

*STATUS

PARAMETERSTATUS-(5PARAMETERSDEFINED)

NAMEVALUETYPEDIMENSIONS

ABC-24.0000000SCALAR

HEIGHT57.0000000SCALAR

QR2.070000000E+11SCALAR

X_OR_Y-24.0000000SCALAR

CPARMCASE1CHARACTER

通过UtilityMenu>

List>

Other>

Parameters或UtilityMenu>

Status>

AllParameters菜单项也可以得到参数的列表显示。

注意-以下划线(_)开头或结尾的参数不能由*STATUS命令显示出来。

可以通过给*STATUS命令定义附加参数来单独显示某些参数。

下面的例子说明了如何显示参数ABC的状态:

*STATUS,ABC

PARAMETERSTATUS-abc(5PARAMETERSDEFINED)

也可以通过UtilityMenu>

NamedParameter或UtilityMenu>

Parameters>

NamedParameters菜单项指定参数的列表显示。

注意-虽然ANSYS最多允许有1000个参数,但是由于GUI和ANSYS宏需要用到一些参数,所以用户可用参数不到1000个。

用户界面定义的参数(内部参数)数目可由*STATUS命令列出

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1