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

VIP免费下载

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

文档简介

宏 模块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并运行它 1 ansys57 docu2 在ANSYS MACROLIB环境变量路径中 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 宏基础 带参数的宏 注意 特殊的字符名ARG1 ARG9和AR10 AR99仅仅是局部参数 仅仅在该宏中有效 一旦宏运行结束后并返回ANSYS主程序 它们将无意义 避免在模型的其它地方应用这些名称 无论何时应用参数时 一定通过在宏中包含注释来描述它们的意义 例如 下面在宏totvolume mac的开始处的注释是非常有用的 MacroTOTVOLUME MACtocalculatetotalvolumeofelements Usage TOTVOLUME TYPE validonlyinPOST1afterasolve TYPE validelementtypenumberesel stype arg1 January30 2001Inventory 00144310 10 宏基础C 分枝 通过应用IF THEN ELSE结构 在只有一定的条件满足的情况下 你可以运行一个命令或命令块 在 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 x yx LT y xyx LE y x yx GE y x yx 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 sumof volume evolume 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

提交评论