《ansys里面的宏命令.ppt》由会员分享,可在线阅读,更多相关《ansys里面的宏命令.ppt(16页珍藏版)》请在金锄头文库上搜索。
1、宏宏模模块10INTRODUCTION TO ANSYS 5.7 - Part 2INTRODUCTION TO ANSYS 5.7 - Part 2Training Manual10. 宏基宏基础础APDL(ANSYS参参数数设计语言言)最最强有有力力的的一一个个特特征征是是创建建宏宏的的能能力。力。宏宏就就是是一一系系列列贮存存在在一一个个文文件件中中的的ANSYS命命令令,并并且且能能象象一一个个ANSYS命令一命令一样来运行。来运行。一些有用的宏的能力:一些有用的宏的能力:它可以如同它可以如同ANSYS命令一命令一样具有参数。具有参数。分枝和循分枝和循环用来控制一系列命令。用来控制一系
2、列命令。交互式特征如交互式特征如图形拾取,提示,以及形拾取,提示,以及对话框。框。宏宏可可以以嵌嵌套套一一个个宏宏引引用用第第二二个个宏宏,第第二二个个宏宏引引用用第第三三个个宏宏,等等。等等。一直可嵌套一直可嵌套20级。January 30, 2001Inventory #00144310-INTRODUCTION TO ANSYS 5.7 - Part 2INTRODUCTION TO ANSYS 5.7 - Part 2Training Manual宏基宏基础础在在这一章,我一章,我们将将给出出创建宏的基本步建宏的基本步骤:A创建一个宏建一个宏B带参数的宏参数的宏C分枝分枝D循循环E总的
3、指的指导方方针F练习更多的更多的细节,请参考你的参考你的APDL程序指南或程序指南或ANSYS系列系列软件。件。January 30, 2001Inventory #00144310-INTRODUCTION TO ANSYS 5.7 - Part 2INTRODUCTION TO ANSYS 5.7 - Part 2Training Manual宏基宏基础础A. 创创建宏建宏为了了创建建一一个个宏宏,在在文文本本编辑器器中中,创建建一一系系列列命命令令,并并以以文文件件名名name.mac保存它保存它们.name以一个字母开始,可以达以一个字母开始,可以达32个字符。个字符。在文件名中空格不
4、允在文件名中空格不允许。避免特殊字符。避免特殊字符。确确保保name不不是是一一个个有有效效的的ANSYS命命令令。可可以以在在开开始始或或所所有有处理理器器(PREP7,POST1,等等等等)中中进行行检验。如如果果得得到到这种种信信息息.不不是是有效的命令或宏有效的命令或宏那么那么这个名字是个名字是“安全的安全的”。扩展名展名.mac允允许你运行宏如同运行一个命令一你运行宏如同运行一个命令一样:只需敲入:只需敲入name。January 30, 2001Inventory #00144310-INTRODUCTION TO ANSYS 5.7 - Part 2INTRODUCTION TO
5、 ANSYS 5.7 - Part 2Training Manual宏基宏基础础创创建宏建宏例子:例子:宏宏totvolume.mac用来用来计算所有算所有单元的整个体元的整个体积:esel,all!选择所有所有单元元etable,volume,volu!将所有将所有单元体元体积建立建立单元表元表ssum !求解求解单元表元表选项总和和*get,totvol,ssum,item,volume!totvol=体体积总和和*stat,totvol!列列totvol值在在Post1(在求解之后)中在求解之后)中发出出totvolume来来计算整个体算整个体积。January 30, 2001Inve
6、ntory #00144310-INTRODUCTION TO ANSYS 5.7 - Part 2INTRODUCTION TO ANSYS 5.7 - Part 2Training Manual宏基宏基础础创创建宏建宏创建一个宏建一个宏寻找路径:找路径:ANSYS首先在下列搜首先在下列搜寻路径中路径中寻找文件找文件fame并运行它:并运行它:1ansys57/docu2在在ANSYSMACROLIB环境境变量路径中。量路径中。3在在WINDOWS系系统中的注册路径。中的注册路径。4当前工作路径。当前工作路径。如如果果在在上上级路路径径和和下下级路路径径同同时寻找找到到同同样的的文文件件名名
7、,则采采用用上上级路径。路径。January 30, 2001Inventory #00144310-INTRODUCTION TO ANSYS 5.7 - Part 2INTRODUCTION TO ANSYS 5.7 - Part 2Training Manual宏基宏基础B. 带参数的宏参数的宏通通过特殊的字符名,你可以特殊的字符名,你可以创建多达建多达20个参数的宏:个参数的宏:NAME,arg1,arg2,arg3,ar10,ar11,ar12,ar20参数如同参数如同标准的准的ANSYS命令中的参数,可以命令中的参数,可以为:数字数字字符(被包括在字符(被包括在单引号中)引号中)参
8、数(参数(标量或数量或数组)参数表达式参数表达式参数的意参数的意义由所定由所定义的宏来决定。的宏来决定。January 30, 2001Inventory #00144310-INTRODUCTION TO ANSYS 5.7 - Part 2INTRODUCTION TO ANSYS 5.7 - Part 2Training Manual宏基宏基础础带带参数的宏参数的宏例如,我例如,我们可以定可以定义宏宏totvolume.mac来来计算指定算指定类型的所有型的所有单元有体元有体积和:和:TOTVOLUME,TYPE宏具体如下:宏具体如下:esel,s,type,arg1etable,vol
9、ume,volussum*get,totvol,ssum,item,volume*vwrite,arg1,totvol(Totalvolumefortype,f4.0,elements=,f8.2)求解之后在通用后求解之后在通用后处理器中理器中发出出totvolume,1将得出下列将得出下列结果:果:January 30, 2001Inventory #00144310-INTRODUCTION TO ANSYS 5.7 - Part 2INTRODUCTION TO ANSYS 5.7 - Part 2Training Manual宏基宏基础础带带参数的宏参数的宏注意:注意:特特殊殊的的字字
10、符符名名ARG1ARG9和和AR10AR99仅仅是是局局部部参参数数,仅仅在在该宏中有效。宏中有效。一旦宏运行一旦宏运行结束后并返回束后并返回ANSYS主程序,它主程序,它们将无意将无意义。避免在模型的其它地方避免在模型的其它地方应用用这些名称。些名称。无无论何何时应用参数用参数时,一定通,一定通过在宏中包含注在宏中包含注释来描述它来描述它们的意的意义。例如,下面在宏例如,下面在宏totvolume.mac的开始的开始处的注的注释是非常有用的。是非常有用的。!MacroTOTVOLUME.MACtocalculatetotalvolumeofelements!Usage:TOTVOLUME,T
11、YPE.validonlyinPOST1afterasolve!TYPE=validelementtypenumberesel,stype,arg1January 30, 2001Inventory #00144310-INTRODUCTION TO ANSYS 5.7 - Part 2INTRODUCTION TO ANSYS 5.7 - Part 2Training Manual宏基宏基础础C. 分枝分枝通过应用IFTHENELSE结构,在只有一定的条件满足的情况下,你可以运行一个命令或命令块。在*IF 和*ELSEIF命令中,可以运用AND,OR ,或XOR 比较符。 IF,A,EQ,B
12、,AND,C,GT,D,THEN分枝以*IF开始和*ENDIF结束。*ELSEIF和*ELSE在它们中也可以使用:*if,x,eq,y,then,*elseif,x,eq,z,then,*else,*endifJanuary 30, 2001Inventory #00144310-INTRODUCTION TO ANSYS 5.7 - Part 2INTRODUCTION TO ANSYS 5.7 - Part 2Training Manual宏基宏基础础分枝分枝条件符可能是:条件符可能是:x, EQ, y! x = yx, NE, y! x yx, LT, y! x yx, LE, y! x
13、 yx, GE, y! x yx, ABLT, y! |x| |y|X和和Y可可以以是是数数字字,参参数数,或或参参数数表达式。表达式。操作符操作符为:THEN运行随后的命令运行随后的命令块*EXIT退出退出DO循循环*CYCLE 跳到跳到DO循循环末端末端这些些操操作作符符只只有有当当条条件件为真真是是才才起作用。起作用。否否 则 , ANSYS将将 会会 移移 至至*ELSEIF(若若提提供供),*ELSE(若提供),和若提供),和*ENDIF。*if, x, eq, y, thenJanuary 30, 2001Inventory #00144310-INTRODUCTION TO AN
14、SYS 5.7 - Part 2INTRODUCTION TO ANSYS 5.7 - Part 2Training Manual宏基宏基础础分枝分枝例如,你可以在宏例如,你可以在宏totvolume.mac中增加中增加if-test来来测试输入的入的变量是的有效性:量是的有效性:*if,arg1,lt,1,then!如果如果ARG1小于小于1*msg,warn!发出一个警告出一个警告Elementtypenumbermustbe1orgreater !退出宏退出宏/eofesel,s,type,arg1!选择所有确定所有确定类型的型的单元元etable,volume,volu!建立建立单元表
15、元表ssum !求解求解单元表数据元表数据总和和发出出totvolume,-1将得出下列将得出下列结果:果:January 30, 2001Inventory #00144310-INTRODUCTION TO ANSYS 5.7 - Part 2INTRODUCTION TO ANSYS 5.7 - Part 2Training Manual宏基宏基础础D. 循循环环DO循循环允允许执行一个命令行一个命令块数次。数次。实际上上在在DO循循环中中对其其中中包包含含什什么么没没有有什什么么限限制制。你你可可以以包包含含任任何何ANSYS命命令令包包括括前前处理理,求求解解和和处理理这是是在在条条
16、件件允允许的的情况下。情况下。DO开始循开始循环,ENDDO结束循束循环。你你可可以以用用EXIT(退退出出循循环)和和CYCLE(跳跳到到DO循循环末末)控制循控制循环。EXITT和和CYCLE也可以根据也可以根据if-test的的结果来果来执行。行。作作为一一个个例例子子,我我们通通过加加入入DO循循环来来扩展展宏宏totvolume.mac,计算所有算所有单元元类型并将它型并将它们各的体各的体积保存在数保存在数组参数中。参数中。January 30, 2001Inventory #00144310-INTRODUCTION TO ANSYS 5.7 - Part 2INTRODUCTIO
17、N TO ANSYS 5.7 - Part 2Training Manual宏基宏基础础循循环环! - 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
18、 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 ietable,volume,volu! Store volume in element tablessum! Sum element table items*get,totvol,ssum,item,volume! totvol = sum of volumeevolume(i) = totvol! St
19、ore totvol in evolume(i)*enddo! End of do-loop*vscfun,totvol,sum,evolume(i)! totvol = grand total volumeesel,all! Activate full set of elementsJanuary 30, 2001Inventory #00144310-INTRODUCTION TO ANSYS 5.7 - Part 2INTRODUCTION TO ANSYS 5.7 - Part 2Training Manual宏基宏基础础E.一般注意事一般注意事项项建立短小且建立短小且简单的宏。的宏。
20、当当创建建宏宏的的时候候,可可以以在在ANSYS命命令令窗窗口口中中剪剪切切并并粘粘贴命命令令来来检测这些命令的些命令的顺序是否正确。序是否正确。运用注运用注释来描述意来描述意图或期望的或期望的执行行结果。果。在自己的目在自己的目录中保存你自己的宏。中保存你自己的宏。在在ANSYSMACROLIB环境境变量量目目录中中保保存存那那些些任任何何人人都都可可以以进入的宏。入的宏。January 30, 2001Inventory #00144310-INTRODUCTION TO ANSYS 5.7 - Part 2INTRODUCTION TO ANSYS 5.7 - Part 2Training Manual宏基宏基础础F.练习练习练习由下列由下列问题组成:成:W6.U-Bracker请参考你的参考你的说明明书的的练习附附录。January 30, 2001Inventory #00144310-