ansys提高10-宏
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
•
X和Y可以是数字,参数,或参数 表达式.
November 3, 2003 Inventory #001970 10-11
宏基础
…分支
Training Manual
INTRODUCTION TO ANSYS - Part 2
• 例如,可以在宏 totvolume.mac 中增加 条件测试检查输入的变量是 否有效:
• 为了创建一个宏,在文本编辑器中,创建一系列命令,并以文件名 name.mac保存。
– name以一个字母开始,可以多达32个字符。
• 文件名中不允许有空格。 • 避免用特殊字符。 • 确保name不是一个有效的 ANSYS命令。可以在开始或所有处理器 ( PREP7,POST1, 等 等 ) 中 进 行 检 验 。 如 果 看 到 “ … not a recognized command or macro… ”,这个名字是“安全的”。 – 扩展名.mac允许象运行命令一样运行宏:只需键入宏名。
November 3, 2003 Inventory #001970 10-15
宏基础
F.练习
• 本章练习: • W9 压力校验 • 请参考练习附录。
Training Manual
November 3, 2003 Inventory #001970 10-16
INTRODUCTION TO ANSYS - Part 2
•
操作符为:
THEN
*EXIT
!x=y
!xy !x<y !x>y
运行随后的命令块
退出DO循环
*CYCLE 跳到DO循环结尾
x, LE, y
x, GE, y x, ABLT, y x, ABGT, y
!xy
!xy ! |x| < |y| ! |x| > |y|
• •
这些操作符只有当条件为真时才 起作用。 否则, ANSYS 将会转到 *ELSEIF (若提供), *ELSE(若提供) ,和*ENDIF.
• 创建宏时,可以剪切、粘贴宏,通过 ANSYS 命令窗口检验命令是 否正确。 • 检查一段宏时,在你想要结束的地方输入一条 /EOF语句, 然后在命 令输入窗口继续输入下面的命令,查看这段命令的运行情况。
• 使用注释描述目的意图和命令结果。
• 在用户自己的目录中保存宏。 • 在ANSYS_MACROLIB环境变量目录中保存那些公用宏。
• 例如,下面在宏 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 ! Select elements of specified type … …
*if,arg1,lt,1,then !如果ARG1小于1 *msg,warn !发出一个警告 Element type number must be 1 or greater /eof !退出宏 *endif esel,s,type,,arg1 !选择所有指定类型的单元 etable,volume,volu !建立单元表 ssum !求解单元表数据总和 ...
Training Manual
INTRODUCTION TO ANSYS - Part 2
1.
2. 3.
/ansys_inc/v80/ansys/apdl 目录
ANSYS_MACROLIB环境变量指定或注册的路径 $HOME环境变量指定的路径
4. 当前工作路径
-如果找到两个同名,大小写不同的文件,使用大写字符的文件
• 用 totvolume,-1 执行宏,将得出以下结果:
November 3, 2003 Inventory #001970 10-12
宏基础
D. 循环
• DO循环允许多次执行一个命令块。
Training Manual
INTRODUCTION TO ANSYS - Part 2
• 实际上,在 DO 循环中对其中包含什么并无限制。可以包含任何 ANSYS 命令 — 包括前处理,求解和后处理 — 在条件允许的情况下 。 • *DO 或 *DOWHILE开始循环,*ENDDO结束循环。
November 3, 2003 Inventory #001970 10-4
宏基础
…创建宏
• 示例: – 宏 totvolume.mac 用来计算所有单元的体积:
Training Manual
INTRODUCTION TO ANSYS - Part 2
esel,all etable,volume,volu ssum *get,totvol,ssum,,item,volume *stat,totvol
• 参数如同标准的ANSYS命令中的参数,可以为:
– – 数字 字符(被包括在单引号中)
–
–
参数(标量或数组)
参数表达式
• 参数的意义由所定义的宏来决定。
November 3, 2003 Inventory #001970 10-7
宏基础
…带参数的宏
•
– TOTVOLUME, TYPE
Training Manual
•
求解之后在通用后处理器中用totvolume,1执行宏,得出如下结果:
November 3, 2003 Inventory #001970 10-8
宏基础
…带参数的宏
• 注意:
Training Manual
INTRODUCTION TO ANSYS - Part 2
– 特殊的参数名 ARG1-ARG9和 AR10-AR99是局部参数,仅在该宏中 有效。 • 一旦宏运行结束后,返回ANSYS主程序,这些参数将无意义。 • 避免在其它地方应用这些名称。 – 应用参数时,建议在宏中用注释来描述它们的意义。
November 3, 2003 Inventory #001970 10-9
宏基础
C. 分支
• • •
Training Manual
通过应用IF-THEN-ELSE结构,只在满足一定条件的情况下,运行某个 命令或命令块。 在*IF 和*ELSEIF命令中,可以用AND,OR ,或XOR 逻辑运算.
November 3, 2003 Inventory #001970 10-6
宏基础
B. 带参数的宏
• 通过使用特殊的参数名,可以创建多达20个参数的宏:
– NAME,arg1,arg2,arg3,…,ar10,ar11,ar12,…,ar20
Training Manual
INTRODUCTION TO ANSYS - Part 2
– 宏可以如同ANSYS命令一样具有参数。
– 可以使用分支和循环。
– 交互式特征,如图形拾取、提示、对话框。 – 宏可以嵌套。一个宏引用第二个宏,第二个宏引用第三个宏,等等。 一直可嵌套20层。
November 3, 2003 Inventory #001970 10-2
…宏基础
• 本章,给出创建宏的基本步骤: A.创建一个宏 B.带参数的宏 C. 分支 D. 循环 E.总的指导方针 F. 练习
第10章
宏基础
10. 宏基础
Training Manual
INTRODUCTION TO ANSYS - Part 2
• APDL(ANSYS参数化设计语言)最强有力的特点是创建宏。 • 宏是一系列贮存在一个文件中的 ANSYS 命令,能象一个 ANSYS 命 令一样执行。 • 一些有用的宏的特性:
宏基础
…循环
! -- 宏 TOTVOLUME.MAC用来计算所有单元的体积。 ! --方法:求解后在POST1下执行 TOTVOLUME。 ! -- 结果: ! -- a) evolume(i) = 所有单元类型 I 的体积 ! -- b) totvol = 体积总数 ! *get,numtypes,etype,,num,count !提取单元类型的个数 *dim,evolume,array,numtypes !定义 numtypes x 1的array数组 *do,i,1,numtypes !循环变量 I从到 numtypes,增量为1 esel,s,type,,i ! 选取类型为 I的单元 etable,volume,volu !在单元表中存储体积 ssum !计算单元表项目的和 *get,totvol,ssum,,item,volume ! totvol = 体积和 evolume(i) = totvol !将 totvol存入 evolume(i) *enddo !结束循环 *vscfun,totvol,sum,evolume(i) ! totvol = 所有体积 esel,all !激活所有单元设置
Training Manual
INTRODUCTION TO ANSYS - Part 2
• 更多的细节,请参考 APDL 程序指南或 ANSYS 软件。
November 3, 2003 Inventory #001970 10-3
宏基础
A. 创建宏
Training Manual
INTRODUCTION TO ANSYS - Part 2
•
*IF结构可以嵌套20层。
November 3, 2003 Inventory #001970 10-10
宏基础
…分支
*if, x, eq, y, then
• 条件运算符可能是:
x, EQ, y
x, NE, y x, LT, y x, GT, y
Training Manual
INTRODUCTION TO ANSYS - Part 2
!选择所有单元 !对所有单元体积建立单元表 !对单元表求和 ! totvol =体积总和 ! 列 totvol值
– 在POST1 (在求解之后) 执行 totvolume来计算整个体积.
November 3, 2003 Inventory #001970 10-5
宏基础
…创建宏
• 宏查找路径:
– ANSYS 按照如下的搜索顺序查找文件 name.mac 并运行它:
Training Manual
November 3, 2003 Inventory #001970 10-14
INTRODUCTION TO ANSYS - Part 2
宏基础
E.一般注意事项
• 建立简短的宏。
Training Manual
INTRODUCTION TO ANSYS - Part 2
– 可以用*EXIT(退出循环)和*CYCLE(跳到DO循环末)控制循环 。
– EXITT和CYCLE也可以根据条件测试的结果来执行。
• 作为一个例子,通过加入DO循环扩展宏 totvolume.mac,计算所有 单元类型,并把它们的体积存入数组参数
November 3, 2003 Inventory Βιβλιοθήκη Baidu001970 10-13
– *IF,A,EQ,B,AND,C,GT,D,THEN
INTRODUCTION TO ANSYS - Part 2
分支以*IF开始,以*ENDIF结束。*ELSEIF和*ELSE在结构内部可以使用 :
*if, x, eq, y, then *elseif, x, eq, z, then *else *endif
INTRODUCTION TO ANSYS - Part 2
例如,我们可以定义宏totvolume.mac来计算某种类型的所有单元体积和:
•
宏如下:
esel,s,type,,arg1 ! 选择指定类型的单元 etable,volume,volu ! 在单元表内储存体 ssum ! 计算单元表 *get,totvol,ssum,,item,volume ! totvol =体积总和 *vwrite,arg1,totvol ! 写出1 和 totvol (‘Total volume for type ’, F4.0, ‘ elements = ’, F8.2)