好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

第17章APDL基础ansys教程课件.ppt

44页
  • 卖家[上传人]:M****1
  • 文档编号:591331803
  • 上传时间:2024-09-17
  • 文档格式:PPT
  • 文档大小:1.03MB
  • / 44 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 17.1 概述概述概要概要:v利用格式利用格式 Name=Value 定义参数定义参数v参参数数值值可可以以是是一一个个数数值值,,一一个个以以前前定定义义过过的的参参数数,,一个函数,一个参数表达式,或者一个字符串一个函数,一个参数表达式,或者一个字符串v利用利用 *GET命令或函数从命令或函数从ANSYS数据库中获取信息数据库中获取信息vANSYS存存储储的的是是参参数数的的实实际际值值(数数字字或或字字符符串串),,而而不是参数名不是参数名 17.2  定义参数定义参数(续续)v以以上上例例子子是是关关于于标标量量参参数数的的, 它它只只有有一一个个值值 — 数数字字或者字符或者字符vANSYS也也提提供供数数组组参参数数, 它它有有若若干干个个值值数数字字数数组组和字符数组都是有效的和字符数组都是有效的28.7-9.2-2.151.00.0 xvalues =job1job2job3job4job5 filnam = 17.2  定义参数定义参数(续续)一些命名规则:一些命名规则:v参数名不超过参数名不超过8个字符,并以字母开头个字符,并以字母开头v参数名中只能出现字母,数字和下划线参数名中只能出现字母,数字和下划线v避免以下划线开头,这在避免以下划线开头,这在 ANSYS 中另有它用中另有它用v参参数数名名不不分分大大小小写写,,如如“RAD” 和和 “Rad” 是是一一样的。

      所有的参数都以大写形式存储样的所有的参数都以大写形式存储v避免使用避免使用ANSYS标识,如标识,如 STAT, DEFA, 和和 ALL 17.3 使用参数使用参数v使使用用参参数数时时,,只只需需在在对对话话框框中中或或通通过过命命令令输输入参数名就行了入参数名就行了v例如例如, 利用参数定义一个利用参数定义一个 w=10,,h=5的矩形的矩形,™您可以使用以下菜单您可以使用以下菜单:Preprocessor > Create > Rectangle > By 2 Corners +™或命令或命令:/prep7blc4,,,w,h 17.4 参数的用法参数的用法注意注意:v当当使使用用参参数数时时,,ANSYS 将将立立刻刻把把参参数数名名换换为为它它的的值上上一一个个例例子子中中的的矩矩形形将将被被存存为为10×5 , 而而不不是是 w×h也也就就是是说说,,如如果果你你在在生生成成矩矩形形后后再再改改变变w或或h的的值值,,矩形将不被修改矩形将不被修改 17.4 参数的用法参数的用法(续续)v其它一些关于参数用法的例子其它一些关于参数用法的例子:jobname=‘proj1’/filnam,jobname! 作业名作业名/prep7youngs=30e6mp,ex,1,youngs! 杨氏模量杨氏模量force=500fk,2,fy,-force   ! 2号号关关键键点点的的力力fk,6,fx,force/2 ! 6号关键点的力号关键点的力 17.5  从数据库中获取信息从数据库中获取信息v从从数数据据库库中中获获取取信信息息并并给给参参数数赋赋值值, 使使用用 *GET 命命令令或或 Utility Menu > Parameters > Get Scalar Data...v对对获获取取大大量量信信息息是是很很有有用用的的,,包包括括模模型型和和结结果果数数据据,,请参看请参看 *GET命令的详细资料。

      命令的详细资料 17.5  从数据库中获取信息从数据库中获取信息(续续)v例子例子:*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的的UZ方向的位移方向的位移[RSYS]*nsort,s,eqv  !对节点的对节点的 von Mises 应力排序应力排序*get,smax,sort,,max  !smax = 排序的最大值排序的最大值etable,vol,volu  !用用vol 存储单元体积存储单元体积ssum  !对单元表的列求和对单元表的列求和*get,totvol,ssum,,vol  !totvol = 对对 vol 的列求和的列求和*CSYS = 激活坐标系激活坐标系 (CSYS) RSYS = 激活的结果坐标系激活的结果坐标系 (RSYS) 17.5  从数据库中获取信息从数据库中获取信息(续续)v一些数据可以通过函数获取一些数据可以通过函数获取  例如例如:x1=nx(1) ! x1 = 节点节点1的的x坐标坐标 [CSYS]*nn=node(2.5,3,0) !nn=在在(2.5,3,0)处的节点处的节点[CSYS]*/post1ux25=ux(25) !ux25 = 25号节点的号节点的UX值值[RSYS]*temp93=temp(93) !temp93 = 节点节点93的温度值的温度值width=distnd(23,88) !width=23号号节节点点和和88号号节节点点间的距离间的距离*CSYS = 激活坐标系激活坐标系 (CSYS) RSYS = 激或的结果坐标系激或的结果坐标系 (RSYS) 17.5  从数据库中获取信息从数据库中获取信息(续续)v在在一一些些地地方方您您可可以以直直接接取取函函数数值值,,就就象象用用一一个个参参数数一样。

      例如:一样例如:k,10,kx(1),ky(3) !10号号关关键键点点x坐坐标标取取1号号关关键键点点的的x坐标,坐标,y坐标取坐标取3号关键点的号关键点的y坐标坐标k,11,kx(1)*2,ky(3)! [CSYS]*f,node(2,2,0),fx,100!在在 节节 点点 (2,2,0)施施 加加 力力 FX [CSYS]**CSYS = 激活坐标系激活坐标系 (CSYS) 17.6  数组参数数组参数v数组参数数组参数 是能够容纳多个值的参数是能够容纳多个值的参数v数组参数可以是数组参数可以是 1-D, 2-D, or 3-D™1-D:  m 行行 × 1 列列™2-D:  m 行行 × n 列列™3-D:  m 行行 × n 列列 × k 面面17.1-47.6-5.225.0107.9814173861057 -477041033 -523487141 25-666221071115x1 array5x3 arraymxnx3 arrayAA =BB =CC = 17.6.1  数组参数的类型数组参数的类型v有三种数组参数类型有三种数组参数类型:™数值数组数值数组™数据表数据表™字符数组字符数组v数数值值数数组组 是是标标准准的的 1-D, 2-D, 或或 3-D 数值矩阵,如下面的数值矩阵,如下面的 BB™BB(2,3) = 704™BB(3,1) = 1033™等等814 17 3861057 -47 7041033 -52 3487141 25 -66622 107 1115x3 arrayBB = 17.6.1  数组参数的类型数组参数的类型(续续)v 数数据据表表 除除了了行行、、列列、、面面可可以以是是实实数数外外,,与数值数组类似。

      与数值数组类似™第零行、零列、零面必须填充数字第零行、零列、零面必须填充数字™对对定定义义随随时时间间变变化化的的载载荷荷和和类类似似情情况况非常有用非常有用™例例如如::表表FORCE可可以以表表示示力力随随时时间间的的变化关系,第零行表示时间值变化关系,第零行表示时间值vFORCE(0.4) = 279.9996vFORCE(6.5) = 560.0vFORCE(8.9) = 119.25v等等 17.6.1  数组参数的类型数组参数的类型(续续)v一个字符型数组是一个字符型数组是 1-D, 2-D,或或 3-D 的字符串矩阵的字符串矩阵™可用来存放文件名可用来存放文件名,自由度标识等自由度标识等™每个字符串不超过每个字符串不超过8个字符JOB1JOB2JOB3JOB4JOB5jobs =UXUYUZROTYROTZdofs = 17.6.2  怎样定义数组怎样定义数组定义数组的步骤定义数组的步骤:1. 指定类型和维数指定类型和维数ØUtility Menu>Parameters>   Array Parameters>Define/Edit>AddØ或使用或使用 *DIM 命令,例如命令,例如:*dim,aa,array,4      !4×1×1 array*dim,bb,array,5,3  !5×3×1 array*dim,force,table,5  !5×1×1 table*dim,dofs,char,6 !6×1×1 character array 17.6.2  怎样定义数组怎样定义数组(续续)2.  给数组赋值给数组赋值™Utility Menu > Parameters > Array Parameters > Define/Edit > Edit™或或使用使用*VEDIT 命令命令™或或使用使用“=”命令命令.例如例如:bb(1,1)=11,21,31,41,51bb(1,2)=12,22,32,42,52bb(1,3)=13,23,33,43,53 17.6.2  怎样定义数组怎样定义数组(续续)v对于表型数组对于表型数组,必须定义第必须定义第0位置。

      位置 否则,取缺省值否则,取缺省值 7.8886E-31™例如例如:force(1,1)=0,560,560,238.5,0force(1,0)=1E-6,0.8, 7.2,8.5,9.3force(0,1)=0 17.6.2  怎样定义数组怎样定义数组(续续)v对字符数组对字符数组, 不能以图形方式填充字符串不能以图形方式填充字符串™使使用用 “=”命命令令键键入入值值, 接接着着用用 *STAT 显显示示字字符符串串 ™每个字符串必须用单引号括起来每个字符串必须用单引号括起来™例如例如:dofs(1) = ‘ux’, ‘uy’, ‘uz’, ‘rotx’, ‘roty’, ‘rotz’*stat,dofs 17.6.2  怎样定义数组怎样定义数组(续续)v给数组赋值的其他方法给数组赋值的其他方法:™用用 *VFILL 命命令令或或 (Utility Menu > Parameters > Array Parameters > Fill)预定义函数赋值预定义函数赋值v跃阶函数跃阶函数v随机函数随机函数v等等™从一个文件读入数据从一个文件读入数据:v*VREAD 用于数值数组用于数值数组v*TREAD 用于数据表用于数据表v或或  Utility Menu > Parameters > Read from File™从数据库获取从数据库获取(下一步讨论下一步讨论) 17.6.3 获取数据库信息获取数据库信息v正如正如 *GET 从数据库获取标量数据,可以用从数据库获取标量数据,可以用 *VGET 获获取数组信息取数组信息™或或 Utility Menu > Parameters > Get Array Datav先定义数组,然后获取数据先定义数组,然后获取数据v例如例如:*dim,dispval,array,20,3! 20×3 array*vget,dispval(1,1),node,1,u,x! UX of nodes 1-20 in column 1*vget,dispval(1,2),node,1,u,y! UY in column 2*vget,dispval(1,3),node,1,u,z! UZ in column 3 17.6.3 获取数据库信息获取数据库信息(续续)v其他可获取的数组信息类型其他可获取的数组信息类型:™节点和关键点坐标节点和关键点坐标(当前坐标系当前坐标系)™单元属性单元属性, 体,面等体,面等™实体的选择状态实体的选择状态(1 选上选上, 0 未选上未选上)™节点应力节点应力,应变应变,温度梯度,热通量等温度梯度,热通量等™单元表数据单元表数据™等等… 17.6.4 数组操作数组操作v一旦定义了数组参数一旦定义了数组参数,就可以对它们进行各种操作就可以对它们进行各种操作™Utility Menu > Parameters > Array Operations ™或使用或使用 *VFUN, *VOPER, *VSCFUN, *VWRITE等命令等命令 17.6.4 数组操作数组操作(续续)v*VFUN 对单个数组操作对单个数组操作™*vfun,b(1),sin,a(1) 等价等价于于  b(j)=sin(a(j))™其他操作包括:其他操作包括:v自然对数自然对数, 常用对数常用对数, 指指数数v平方根平方根, 排序排序, 复制复制v局部坐标系与整体坐标系局部坐标系与整体坐标系的相互转换关系的相互转换关系v路径的切线和法线矢量路径的切线和法线矢量v等等 17.6.4 数组操作数组操作(续续)v*VOPER 对两个数组参数操对两个数组参数操作。

      作™*voper,c(1),a(1),sub,b(1)  等价于等价于    c(k)=a(k)-b(k)™其它操作包括其它操作包括:v加加,减减,乘乘,除除v最小值最小值,最大值最大值,逻辑运逻辑运算算v微分,积分微分,积分v点积和叉积点积和叉积 17.6.4 数组操作数组操作(续续)v*VSCFUN 定义数组参数的属性定义数组参数的属性™*vscfun,maxval,max,a(1)等等价价 于于 一一 个个 标标 量量     maxval  = max(a(i))™其它操作包括其它操作包括:v求数组的所有元素的和求数组的所有元素的和v诸诸如如标标准准偏偏差差,,中中值值,,平平均均数等统计量数等统计量v最最小小值值/最最大大值值,,最最小小值值/最最大值的位置大值的位置 v第第一一个个和和最最后后一一个个非非零零记记录录的位置的位置 17.6.4 数组操作数组操作(续续)v*VWRITE把把数数据据按按格格式式写写进进文文件件例如例如: *cfopen,wing,dat*vwrite(/,3x,’Node Number’,4x,’Temperature’,/)*vwrite,nnum(1),tval(1)(5x,f6.0,6x,e14.8)*cfclose将将会会创创建建一一个个名名为为wing.dat的的文文件件,,包含指定格式的包含指定格式的nnum和和tval数组数组 17.7 宏基础宏基础vAPDL(ANSYS参参数数设设计计语语言言)最最强强有有力力的的特特征征之之一是创建宏的能力一是创建宏的能力v宏宏就就是是一一系系列列贮贮存存在在一一个个文文件件中中的的ANSYS命命令令,,并且能象一个并且能象一个ANSYS命令一样来运行命令一样来运行v常用宏功能:常用宏功能:™  它可以如同它可以如同ANSYS命令一样具有变量命令一样具有变量™  分支和循环用来控制一系列命令分支和循环用来控制一系列命令™  交互式特征如图形拾取,提示,以及对话框交互式特征如图形拾取,提示,以及对话框™  宏宏可可以以嵌嵌套套—一一个个宏宏引引用用第第二二个个宏宏,,第第二二个个宏引用第三个宏,等等宏引用第三个宏,等等—一直可嵌套一直可嵌套20级级 17.7 宏基础宏基础(续续)v在这一节,我们将给出创建宏的基本步骤:在这一节,我们将给出创建宏的基本步骤:        A..  创建一个宏创建一个宏        B..  带参数的宏带参数的宏        C..  分支分支        D..  循环循环        E..  总的指导方针总的指导方针        F..   练习练习 17.7.1 创建宏创建宏v创创建建一一个个宏宏,,在在文文本本编编辑辑器器中中,,创创建建一一系系列列命命令令,,并以文件名并以文件名name.mac保存它们保存它们™ name以一个字母开始,可以达以一个字母开始,可以达32个字符个字符v在文件名中空格不允许在文件名中空格不允许v避免特殊字符避免特殊字符v确确保保name不不是是一一个个有有效效的的ANSYS命命令令。

      可可以以在在开开始始或或所所有有处处理理器器((PREP7,,POST1,,等等等等))中中进进行行检检验验如如果果得得到到这这种种信信息息...不不是是有有效效的的命令或宏命令或宏…那么这个名字是那么这个名字是“安全的安全的”™扩扩展展名名.mac允允许许你你运运行行宏宏如如同同运运行行一一个个命命令令一一样样::只需敲入只需敲入name 17.7.1 创建宏创建宏(续续)v例子:例子:™宏宏totvolume.mac用来计算所有单元的整个体积:用来计算所有单元的整个体积:esel,all                  !选择所有单元!选择所有单元etable,volume,volu!将所有单元体积建立单元表!将所有单元体积建立单元表ssum!求解单元表选项总和!求解单元表选项总和*get,totvol,ssum,,item,volume!! totvol=体体积总和积总和*stat,totvol!列!列totvol值值™--在在Post1(在在求求解解之之后后)中中发发出出totvolume来来计计算算整整个体积个体积 17.7.1 创建宏创建宏(续续)v搜索路径:搜索路径:v--ANSYS首首先先在在下下列列搜搜索索路路径径中中寻寻找找文文件件name.mac并运行它:并运行它: 1././ansys57/docu     2.在.在ANSYS__MACROLIB环境变量路径中环境变量路径中     3.在.在WINDOWS系统中的注册路径系统中的注册路径     4.当前工作路径.当前工作路径v  --如如果果在在上上级级路路径径和和下下级级路路径径同同时时寻寻找找到到同同样样的的文文件名,则采用上级路径件名,则采用上级路径 17.7.2 带参数的宏带参数的宏v通通过过特特殊殊的的字字符符名名,,你你可可以以创创建建多多达达20个个参参数数的的宏:宏:  --NAME,arg1,arg2,arg3,…,ar10,ar11,ar12,…,ar20v参数如同标准的参数如同标准的ANSYS命令中的参数,可以为:命令中的参数,可以为:™  数字数字™  字符(被包括在单引号中)字符(被包括在单引号中)™  参数(标量或数组)参数(标量或数组)™  参数表达式参数表达式v参数的意义由所定义的宏来决定参数的意义由所定义的宏来决定 17.7.2 带参数的宏带参数的宏(续续)v例例如如,,我我们们可可以以定定义义宏宏totvolume.mac来来计计算算指指定定类型的所有单元体积和:类型的所有单元体积和:          --TOTVOLUME,,TYPEv宏具体如下:宏具体如下:esel,s,type,,arg1 etable,volume,volussum*get,totvol,ssum,,item,volume*vwrite,arg1,totvol(‘Total volume for type’,f4.0,’elements=’,f8.2)v求求解解之之后后在在通通用用后后处处理理器器中中发发出出totvolume,1将将得得出出下列结果:下列结果: 17.7.2 带参数的宏带参数的宏(续续)v注意:注意:™  --特特殊殊的的字字符符名名ARG1--ARG9和和AR10--AR99仅仅是局部参数,仅仅在该宏中有效。

      仅仅是局部参数,仅仅在该宏中有效v一一旦旦宏宏运运行行结结束束后后并并返返回回ANSYS主主程程序序,,它们将无意义它们将无意义v避免在模型的其它地方应用这些名称避免在模型的其它地方应用这些名称™  --无无论论何何时时应应用用参参数数时时,,一一定定通通过过在在宏宏中中包包含注释来描述它们的意义含注释来描述它们的意义 17.7.2 带参数的宏带参数的宏(续续)例例如如,,下下面面在在宏宏totvolume.mac的的开开始始处处的的注注释释是非常有用的是非常有用的       !!Macro  TOTVOLUME.MAC  to  calculate total volume of elements     !Usage:  TOTVOLUME,TYPE.valid  only  in POST1 after a solve     !TYPE=valid element type number         esel,s type,,arg1  …     … 17.7.3 分支分支v通通过过应应用用IF--THEN--ELSE结结构构,,在在只只有有一一定定的的条条件满足的情况下,你可以运行一个命令或命令块。

      件满足的情况下,你可以运行一个命令或命令块v在在*IF 和和*ELSEIF命命令令中中,,可可以以运运用用AND,,OR ,,或或XOR 比较符™  IF,A,EQ,B,AND,C,GT,D,THENv分分枝枝以以*IF开开始始和和*ENDIF结结束束ELSEIF和和*ELSE在在它它们中也可以使用:们中也可以使用:*if,x,eq,y,then,,,,,,,,,,,,*elseif,x,eq,z,then,,,,,,*else,,,,,,,,,,,,*endif 17.7.3 分支分支(续续)v条件符可能是:条件符可能是: x, EQ, y     ! x = yx, NE, y     ! x   yx, LT, y     ! x < yx, GT, y     ! x > yx, LE, y     ! x   yx, GE, y     ! x   yx, ABLT, y ! |x| < |y|x, ABGT, y ! |x| > |y|vX和和Y可可以以是是数数字字,,参参数,或参数表达式数,或参数表达式v操作符为:操作符为:THEN 运行随后的命令块运行随后的命令块*EXIT 退出退出DO循环循环*CYCLE跳跳到到DO循循环环末末端端v这这些些操操作作符符只只有有当当条条件件为真是才起作用。

      为真是才起作用v否否则则,,ANSYS将将会会移移至至*ELSEIF(若若 提提 供供 ),,*ELSE(若若 提提 供供 ),, 和和*ENDIF*if, x, eq, y, then 17.7.3 分支分支(续续)v例例如如,,你你可可以以在在宏宏totvolume.mac中中增增加加if-test来来测测试输入的变量是的有效性:试输入的变量是的有效性:*if,arg1,lt,1,then!如果如果ARG1小于小于1*msg,warn          !发出一个警告:!发出一个警告:Element type number must be 1 or greater/eof                     !退出宏!退出宏*endifesel,s,type,,arg1  !选择所有确定类型的单元!选择所有确定类型的单元etable,volume,volu!建立单元表!建立单元表ssum                     !求解单元表数据总和!求解单元表数据总和v发出发出totvolume,-1将得出下列结果:将得出下列结果: 17.7.4 循环循环v DO循环允许执行一个命令块数次。

      循环允许执行一个命令块数次v实实际际上上在在DO循循环环中中对对其其中中包包含含什什么么内内容容没没有有限限制制你你可可以以包包含含任任何何ANSYS命命令令――包包括括前前处处理理,,求求解解和处理和处理――这是在条件允许的情况下这是在条件允许的情况下v**DO开始循环,*开始循环,*ENDDO结束循环结束循环  --你你可可以以用用**EXIT(退退出出循循环环)和和**CYCLE(跳跳到到DO循环末循环末)控制循环控制循环  --EXIT和和CYCLE也可以根据也可以根据if-test的结果来执行的结果来执行v作作为为一一个个例例子子,,我我们们通通过过加加入入DO循循环环来来扩扩展展宏宏totvolume.mac,,计计算算所所有有单单元元类类型型并并将将它它们们各各的的体体积保存在数组参数中积保存在数组参数中 17.7.4 循环循环(续续)!  --  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 × 1 array 17.7.4 循环循环(续续)*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 精品课件精品课件! 精品课件精品课件! 17.7.5 一般注意事项一般注意事项v建立短小且简单的宏。

      建立短小且简单的宏v当当创创建建宏宏的的时时候候,,可可以以在在ANSYS命命令令窗窗口口中中剪剪切切并并粘贴命令来检测这些命令的顺序是否正确粘贴命令来检测这些命令的顺序是否正确v运用注释来描述意图或期望的执行结果运用注释来描述意图或期望的执行结果v在自己的目录中保存你自己的宏在自己的目录中保存你自己的宏v在在ANSYS__MACROLIB环环境境变变量量目目录录中中保保存存那那些些任何人都可以进入的宏任何人都可以进入的宏。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.