当前位置:文档之家› ansys培训第二天

ansys培训第二天

1. Do-loop循环控制 2. 条件分支
3. 无条件分支
4. 宏嵌套(子程序) 5. 重复执行命令
November 1, 2002 Inventory #001755 14-16
*do 循环
• 按指定的次数循环执行一系列的命令
– *DO和*ENDDO
*DO,I,1,5 LSREAD,I OUTPR,ALL,NONE ERESX,NO LSWRITE,I *ENDDO ! I = 1 to 5; ! 读取载荷步文件I ! 改变输出控制 ! 重写载荷步文件 I
November 1, 2002 Inventory #001755 14-13
总体/局部变量
总体变量:
在所有流程中均可引用的变量
Training Manual
ANSYS 预定义两套特殊命名的局部变量:
传递命令行变量到宏内
• 共19个标量ARG1~AR19
• *USE只传递前18个标量 • *.mac可传19个标量
Training Manual
November 1, 2002 Inventory #001755 14-20
无条件分支
*GO, Base
其中BASE取值: :label – 标识字 STOP - 从该行退出ANSYS程序
Training Manual
结构
*GO, :BRANCH1
… ! 被跳过(不执行)
4. 用户注册目录(home directory) 5. 当前目录
November 1, 2002 Inventory #001755 14-6
创建宏

Training Manual
既然宏是一系列保存在文本文件中的ANSYS命令, 那么可以用任何一种 文本编辑器来创建和编辑一个宏.
– – – – 比如 UltraEdit 这是一个最通用的方法, 比较适合于很长且复杂的宏 一个平台上生成的宏可以在任何平台上使用 用这种方法创建宏时,不要包含有*CREATE 和*END命令
November 1, 2002 Inventory #001755 14-12
运行宏和宏库文件
Utility Menu>Macro>Execute Macro (无论扩展名, 可带路径) *USE, Name32Char, ARG1, … , ARG9, AR10, … , AR18 在命令输入窗口运行宏搜索路径中扩展名为.mac(命令)
在ANSYS中创建宏- /TEE

Training Manual
执行/TEE ,NEW 或 /TEE,APPEND可以让ANSYS把接收的命令重定向 输出到该命令指定的文件中
– 同时执行这些命令

直到执行/TEE,END命令此动作终止 /TEE, Label, Fname, Ext

若存在与/TEE,NEW指定文件的同名文件,将覆盖该文件
• •
命令中用到的所有参数都会被写入文件(参数的当前值不被替代) 不能在DO循环中使用*CREATE命令
November 1, 2002 Inventory #001755 14-8
在ANSYS中创建宏- *CFWRITE
• • 首先用*CFOPEN命令来指定宏文件名 只有以*CFWRITE命令开头的命令行才会被写入指定文件中
概述
• • • APDL最强有力的特征之一是创建宏的能力。 宏就是一系列贮存在一个文件中的ANSYS命令 利用宏可以创建自定义的ANSYS命令
– 例如: 求断裂参数
Training Manual

常用宏特性:
– 假如命令流文件取扩展名MAC, 则可以直接象ANSYS命令一样运行 – 可以接受参数 – 分支和循环用来控制一系列命令 – 交互式特征如图形拾取,提示,以及对话框 – 宏可以嵌套――一个宏引用第二个宏,第二个宏引用第三个宏,等等―一直 可嵌套20级。
– 如果想和ANSYS 命令一样执行宏,则扩展名应为mac
Training Manual

不能与ANSYS内部命令同名
– 可以在命名之前,在命令窗口敲入测试
• •
文件名或文件扩展名中不能包含空格 不能包含当前文件系统禁止使用的字符
November 1, 2002 Inventory #001755 14-5
Training Manual

也可以通过与*IF联用增强循环控制:
– *CYCLE – *EXIT :跳到do-loop的结尾并开始下一循环 :跳到do-loop的结尾并终止do-loop

其他循环:*DOWHILE
– *DOWHILE,Parm – 只要Parm 为真,循环将不停进行下去。
*DO, Par, IVAL, FVAL, INC … *IF, VAL1, Oper, VAL2, Base *EXIT *ELSE *CYCLE *ENDIF …
宏搜索路径
1. ANSYSnn\docu目录 Program Files\Ansys Inc\Vnn\ANSYS\apdl 目录 2. ANSYS_MACROLIB环境变量指定路径 3. /PSEARCH指定路径
– Utility Menu>Macro>Macro Search Path
Training Manual
Training Manual
运行: mymacro,4,3,2.2,1
November 1, 2002 Inventory #001755 14-15
流程控制
Training Manual
除了顺序执行命令之外,ANSYS 提供了丰富的执行流程控制, 这 些控制与有限元分析结合起来,能为用户的分析提供极大的灵活性 ,适应性,并发挥创造力
*do, count,1,10 /parsav, scalar, parameters, txt /cle /parres,new parameters,txt … *enddo
November 1, 2002 Inventory #001755 14-18
条件分支 *IF
结构
一个*IF 一个或多个*ELSEIF 一个*ELSE 一个*ENDIF EQ :等于 NE :不等于 LT :小于 GT :大于 LE :小于或等于 GE :大于或等于 ABLT :绝对值小于 ABGT :绝对值大于

除此之外,用户可以在ANSYS程序内部创建宏,有四种方法 :
– – – – *CREATE命令 *CFOPEN、*CFWRITE和*CFCLOS命令 /TEE命令 GUI中Utility Menu>Macro>Create Macro
November 1, 2002 Inventory #001755 14-7
– 其他输入的命令则即时运行
Training Manual

参数被当时的值所代替
*cfopen, testcf,trite,block,,a,,b,,c *cfclos 实际写入的命令为 block,,4,,2.5,,2

关闭宏文件,执行*CFCLOS命令
November 1, 2002 Inventory #001755 14-9
… /EOF MACRONAME2 mybloc /prep7 /view,,-1,-2,-3 block,,4,,3,,2 finish /EOF mysphere /prep7 /view,,-1,-2,-3 sphere,1 finish /EOF
Training Manual

/EOF MACRONAME3 … ./EOF
– 可以使用/TEE,APPEND来避免
November 1, 2002 Inventory #001755 14-10
在ANSYS中创建宏-GUI
• Utility Menu>Macro>Create Macro
– 不能打开并编辑已存在的宏 – 若在*CREATE域输入一个已经存在的 宏名,将覆盖
:BRANCH1 …
November 1, 2002 Inventory #001755 14-21
仅在宏内使用
• 最多由AR20~AR99共79个
• 不会传入调用的宏中 • 调用宏完毕恢复该文件中定义的值
November 1, 2002 Inventory #001755 14-14
将变量传递到宏
• ARG1 到 AR19 用于将参数值从调用宏传递到被调用宏中
– – – – – 局部有效 数值; 文字数字字符串(括在单引号中,最多8个字符); 数字或字符参数; 参数表达式 /prep7 /view,,-1,-2,-3 block,,arg1,,arg2,,arg3 sphere,arg4 vsbv,1,2 finish
November 1, 2002 Inventory #001755 14-3
宏可以调用的对象
• • • ANSYS命令 GUI函数 将参数传给其它的宏
Training Manual
November 1, 2002 Inventory #001755 14-4
宏文件命名规则
• • • 文件名不能超过32个字符 文件名不能以数字开头 扩展名不能超过8个字符
*ENDDO
November 1, 2002 Inventory #001755 14-17
… *do 循环
• 在构造DO循环时,要遵循以下原则:
Training Manual
– 不要利用带有:Label 分支语句*IF或*GO命令跳出DO循环结构; – 在DO循环结构中,第一次循环后,自动禁止命令结果输出。如果想 得到所有循环的结果输出,在DO循环结构中使用/GOPR或/GO (无 响应行)语句。 – 在DO循环结构中使用/CLEAR命令要特别小心。/CLEAR命令不会 清除DO循环堆栈,但是它会删除所有的参数,包括在本身的*DO语 句中的循环参数。为避免由此引发的循环值未定义的问题,可以在 /CLEAR命令前运行/PARSAV命令,然后执行/CLEAR命令和 /PARRES命令。
相关主题