培训内容安排 APDL基础 模态分析技术 非线性分析技术 热-结构耦合分析 练习 APDL练习 模态分析 接触分析
APDL基础 — 概论 APDL 基础
APDL基础 — 概论 APDL 是 ANSYS 参数化设计语言 的缩写。它是一种 功能强大的解释性语言,能够进行参数化建模,并自 动处理一般的任务。 利用APDL可以实现: 模型的参数化 获取ANSYS数据库信息 定义经常使用的命令或宏的缩写(快捷键) 使用if-then-else分支和do循环等来执行一系列任务。
APDL基础 — 主要内容 A. 参数的定义与使用 B. 获取数据库信息 C. 分支结构 D. Do循环 E. 工具条和缩写
参数的定义与使用 参数定义格式:Name=Value 例子: inrad=2.5 outrad=8.2 numholes=4 thick=outrad-inrad e=2.7e6 density=0.283 bb=cos(30) pi=acos(-1) Utility Menu > Parameters > Scalar Parameters…
参数的定义与使用 关于参数用法的例子: jobname=‘proj1’ /filnam,jobname ! 文件名 /prep7 youngs=30e6 mp,ex,1,youngs ! 杨氏模量 force=500 fk,2,fy,-force ! 2号关键点的力 fk,6,fx,force/2 ! 6号关键点的力
获取数据库信息 获取数据库信息并将其分配给参数,使用*GET 命令或 Utility Menu > Parameters > Get Scalar Data... 可以得到大量包括模型及结果的信息,参见*GET 命令的描述
获取数据库信息 例子: *get,x1,node,1,loc,x ! x1 = 节点1的X坐标[CSYS]* /post1 *get,sx25,node,25,s,x ! sx25 = 节点 25处X方向的应力[RSYS]* *get,uz44,node,44,u,z ! uz44 = 节点 44 处的Z方向位移[RSYS]* nsort,s,eqv ! 通过米塞斯应力过滤节点 *get,smax,sort,,max ! smax= 过滤得到的最大值 etable,vol,volu ! 将单元体积存储为vol ssum ! 对所有的单元表的列求和 *get,totvol,ssum,,vol ! totvol = vol 列的求和 *CSYS = 激活的坐标系 (CSYS) * RSYS = 激活的结果坐标系(RSYS)
获取数据库信息 一些数据可由内嵌函数得到 例如: x1=nx(1) ! x1 = 节点 1的X坐标 [CSYS]* nn=node(2.5,3,0) ! nn = (2.5,3,0) 附近的节点[CSYS]* /post1 ux25=ux(25) ! ux25 = 节点25处的位移 UX [RSYS]* temp93=temp(93) ! temp93 = 节点 93处的温度 width=distnd(23,88) ! width = 节点 23 和 88之间的距离
分支结构 分支以 *IF开始,以*ENDIF结束,之间允许有*ELSEIF及*ELSE : *if, x, eq, y, then 运用IF-THEN-ELSE结构,只要条件满足,就可执行一个或一系列命令 分支以 *IF开始,以*ENDIF结束,之间允许有*ELSEIF及*ELSE : *if, x, eq, y, then *elseif, x, eq, z, then *else *endif
分支结构 *if, x, eq, y, then 条件可以是: x 和 y 可以是数字、参数或参 数表达式 x, EQ, y ! x = y x, NE, y ! x y x, LT, y ! x < y x, GT, y ! x > y x, LE, y ! x y x, GE, y ! x y x, ABLT, y ! |x| < |y| x, ABGT, y ! |x| > |y| x 和 y 可以是数字、参数或参 数表达式 THEN 执行后面的命令 行为可以是: *EXIT 离开do循环 *CYCLE 跳到do循环的尾端 *STOP 中止 ANSYS 行为值发生在条件为真时。否则 ANSYS 将移动到*ELSEIF (如出 现), *ELSE (如出现), 及*ENDIF.
DO循环 Do循环能够执行一系列命令数次 在ANSYS的do循环中,包括什么内容没有限制。可以对整个分析过程进行循环 — 包括前处理、求解及后处理- 如果情况许可。 *DO 开始循环, *ENDDO 结束循环 可以控制DO循环,用*EXIT离开do循环, 用 *CYCLE跳到 do循环的尾端 Exit 及cycle 也可以是IF测试的结果
DO循环的例子 ! -- Macro TOTVOLUME.MAC to calculate total element volume. ! -- Usage: Issue TOTVOLUME in POST1 after a solution. ! -- Result: ! -- a) evolume(i) = total volume for element type i ! -- b) totvol = grand total volume ! *get,numtypes,etype,,num,count ! Get number of element types *dim,evolume,array,numtypes ! Open a numtypes x 1 array *do,i,1,numtypes ! For i = 1 - numtypes... esel,s,type,,i ! Select elements of type i etable,volume,volu ! Store volume in element table ssum ! Sum element table items *get,totvol,ssum,,item,volume ! totvol = sum of ‘volume’ evolume(i) = totvol ! Store totvol in evolume(i) *enddo ! End of do-loop *vscfun,totvol,sum,evolume(i) ! totvol = grand total volume esel,all ! Activate full set of elements
工具条和缩写 缩写是一个通用功能的简化,它是一个代表ANSYS命令的字符串. 只要定义了一个缩写, 它将作为一个按钮出现在 ANSYS的Toolbar上, 使您通过一个按钮即可实现所期望的功能. 当您第一次进入ANSYS,有4个预先定义好的缩写, 但也可以修改它们或自己定义 — 总共可定义100 个缩写.
工具条和缩写 若定义两个缩写: 例如, 在画线图中显示线号, 可以进行如下操作: Utility Menu > PlotCtrls > Numbering… > Line numbers On > OK Utility Menu > Plot > Lines 然后, 关闭线号开关, 必须使用同样的菜单操作. 若定义两个缩写: LINE_ON 用命令串 ‘/pnum,line,on $ /replot’ LINE_OFF用命令串 ‘/pnum,line,off $ /replot’ 然后简单地按下工具条中的适当按钮就可打开或关闭线号开关.
工具条和缩写 定义一个缩写需要以下信息: *ABBR 命令定义缩写: 简化名称 所代表的命令串. 为了找出某一特定功能的命令,只需先通过 GUI方式执行该功能, 然后显示记录文件 (Utility Menu > List > Files > Log File). *ABBR 命令定义缩写: *ABBR, name, command_string 如果 command_string 包含一个以上命令 (用一个 $符号分隔), 它必须包含在一对引号内. 可用便捷的对话框: Utility Menu > MenuCtrls > Edit Toolbar… 或 Utility Menu > Macro > Edit Abbreviations…