ansys里面的宏命令.ppt_第1页
ansys里面的宏命令.ppt_第2页
ansys里面的宏命令.ppt_第3页
ansys里面的宏命令.ppt_第4页
ansys里面的宏命令.ppt_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

宏,模块10,January30,2001Inventory#00144310-2,10.宏基础,APDL(ANSYS参数设计语言)最强有力的一个特征是创建宏的能力。宏就是一系列贮存在一个文件中的ANSYS命令,并且能象一个ANSYS命令一样来运行。一些有用的宏的能力:它可以如同ANSYS命令一样具有参数。分枝和循环用来控制一系列命令。交互式特征如图形拾取,提示,以及对话框。宏可以嵌套一个宏引用第二个宏,第二个宏引用第三个宏,等等。一直可嵌套20级。,January30,2001Inventory#00144310-3,宏基础,在这一章,我们将给出创建宏的基本步骤:A创建一个宏B带参数的宏C分枝D循环E总的指导方针F练习更多的细节,请参考你的APDL程序指南或ANSYS系列软件。,January30,2001Inventory#00144310-4,宏基础A.创建宏,为了创建一个宏,在文本编辑器中,创建一系列命令,并以文件名name.mac保存它们.name以一个字母开始,可以达32个字符。在文件名中空格不允许。避免特殊字符。确保name不是一个有效的ANSYS命令。可以在开始或所有处理器(PREP7,POST1,等等)中进行检验。如果得到这种信息.不是有效的命令或宏那么这个名字是“安全的”。扩展名.mac允许你运行宏如同运行一个命令一样:只需敲入name。,January30,2001Inventory#00144310-5,宏基础创建宏,例子:宏totvolume.mac用来计算所有单元的整个体积:esel,all!选择所有单元etable,volume,volu!将所有单元体积建立单元表ssum!求解单元表选项总和*get,totvol,ssum,item,volume!totvol=体积总和*stat,totvol!列totvol值在Post1(在求解之后)中发出totvolume来计算整个体积。,January30,2001Inventory#00144310-6,宏基础创建宏,创建一个宏寻找路径:ANSYS首先在下列搜寻路径中寻找文件fame并运行它:1ansys57/docu2在ANSYSMACROLIB环境变量路径中。3在WINDOWS系统中的注册路径。4当前工作路径。如果在上级路径和下级路径同时寻找到同样的文件名,则采用上级路径。,January30,2001Inventory#00144310-7,宏基础B.带参数的宏,通过特殊的字符名,你可以创建多达20个参数的宏:NAME,arg1,arg2,arg3,ar10,ar11,ar12,ar20参数如同标准的ANSYS命令中的参数,可以为:数字字符(被包括在单引号中)参数(标量或数组)参数表达式参数的意义由所定义的宏来决定。,January30,2001Inventory#00144310-8,宏基础带参数的宏,例如,我们可以定义宏totvolume.mac来计算指定类型的所有单元有体积和:TOTVOLUME,TYPE宏具体如下:esel,s,type,arg1etable,volume,volussum*get,totvol,ssum,item,volume*vwrite,arg1,totvol(Totalvolumefortype,f4.0,elements=,f8.2)求解之后在通用后处理器中发出totvolume,1将得出下列结果:,January30,2001Inventory#00144310-9,宏基础带参数的宏,注意:特殊的字符名ARG1ARG9和AR10AR99仅仅是局部参数,仅仅在该宏中有效。一旦宏运行结束后并返回ANSYS主程序,它们将无意义。避免在模型的其它地方应用这些名称。无论何时应用参数时,一定通过在宏中包含注释来描述它们的意义。例如,下面在宏totvolume.mac的开始处的注释是非常有用的。!MacroTOTVOLUME.MACtocalculatetotalvolumeofelements!Usage:TOTVOLUME,TYPE.validonlyinPOST1afterasolve!TYPE=validelementtypenumberesel,stype,arg1,January30,2001Inventory#00144310-10,宏基础C.分枝,通过应用IFTHENELSE结构,在只有一定的条件满足的情况下,你可以运行一个命令或命令块。在*IF和*ELSEIF命令中,可以运用AND,OR,或XOR比较符。IF,A,EQ,B,AND,C,GT,D,THEN分枝以*IF开始和*ENDIF结束。*ELSEIF和*ELSE在它们中也可以使用:*if,x,eq,y,then,*elseif,x,eq,z,then,*else,*endif,January30,2001Inventory#00144310-11,宏基础分枝,条件符可能是:x,EQ,y!x=yx,NE,y!xyx,LT,y!xyx,LE,y!xyx,GE,y!xyx,ABLT,y!|x|y|X和Y可以是数字,参数,或参数表达式。,操作符为:THEN运行随后的命令块*EXIT退出DO循环*CYCLE跳到DO循环末端这些操作符只有当条件为真是才起作用。否则,ANSYS将会移至*ELSEIF(若提供),*ELSE(若提供),和*ENDIF。,*if,x,eq,y,then,January30,2001Inventory#00144310-12,宏基础分枝,例如,你可以在宏totvolume.mac中增加if-test来测试输入的变量是的有效性:*if,arg1,lt,1,then!如果ARG1小于1*msg,warn!发出一个警告Elementtypenumbermustbe1orgreater!退出宏/eofesel,s,type,arg1!选择所有确定类型的单元etable,volume,volu!建立单元表ssum!求解单元表数据总和发出totvolume,-1将得出下列结果:,January30,2001Inventory#00144310-13,宏基础D.循环,DO循环允许执行一个命令块数次。实际上在DO循环中对其中包含什么没有什么限制。你可以包含任何ANSYS命令包括前处理,求解和处理这是在条件允许的情况下。DO开始循环,ENDDO结束循环。你可以用EXIT(退出循环)和CYCLE(跳到DO循环末)控制循环。EXITT和CYCLE也可以根据if-test的结果来执行。作为一个例子,我们通过加入DO循环来扩展宏totvolume.mac,计算所有单元类型并将它们各的体积保存在数组参数中。,January30,2001Inventory#00144310-14,宏基础循环,!-MacroTOTVOLUME.MACtocalculatetotalelementvolume.!-Usage:IssueTOTVOLUMEinPOST1afterasolution.!-Result:!-a)evolume(i)=totalvolumeforelementtypei!-b)totvol=grandtotalvolume!*get,numtypes,etype,num,count!Getnumberofelementtypes*dim,evolume,array,numtypes!Openanumtypesx1array*do,i,1,numtypes!Fori=1-numtypes.esel,s,type,i!Selectelementsoftypeietable,volume,volu!Storevolumeinelementtablessum!Sumelementtableitems*get,totvol,ssum,item,volume!totvol=sumofvolumeevolume(i)=totvol!Storetotvolinevolume(i)*enddo!Endofdo-loop*vscfun,totvol,sum,evolume(i)!totvol=grandtotalvolumeesel,all!Activatefullsetofelements,January30,2001Inventory#00144310-15,宏基础E.一般注意事项,建立短小且简单的宏。当创建宏的时候,可以

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论