首页 理论教育 APDL语言流程控制指南

APDL语言流程控制指南

时间:2023-10-27 理论教育 版权反馈
【摘要】:ANSYS在执行APDL语言编写的程序时,采取的是逐行解释并执行指令的方式。为此,APDL提供了一种接近于FORTRAN的流程控制命令。分支结构APDL允许根据条件执行某些供选择的程序体中的一个。结合一些*IF命令,将能得到和其他编程语言中CASE语句相同的功能。可以包含任何ANSYS命令,当然是在条件允许的情况下。常用的流程控制命令列于表7-3中,以供读者参考,更为详细的介绍请读者参考ANSYS的帮助文件。

APDL语言流程控制指南

ANSYS在执行APDL语言编写的程序时,采取的是逐行解释并执行指令的方式。复杂的程序经常需要控制指令的执行顺序。为此,APDL提供了一种接近于FORTRAN的流程控制命令。

(1)分支结构

APDL允许根据条件执行某些供选择的程序体中的一个。条件的值通过比较两个数的值(或等于某数值的参数)来确定。

*IF命令的语法为:

978-7-111-47915-4-Part01-273.jpg

其中,X和Y可以是数字,参数或参数表达式;Oper是比较运算符。

APDL提供了8个比较运算符,关于它们的详细讨论在*IF命令参考部分。简要地说,它们主要是:

978-7-111-47915-4-Part01-274.jpg

978-7-111-47915-4-Part01-275.jpg

若比较的值为真,则执行then指定的操作。之后的操作可能是:

*EXIT 退出DO循环。

*CYCLE 跳到DO循环末端。

这些操作符只有当条件为真时才起作用。否则,ANSYS将会移至*ELSEIF(若提供),*ELSE(若提供)和*ENDIF。

在最简单的形式中,*IF命令判断比较的值,若为真,则转向Base变量所指定的标识字处。结合一些*IF命令,将能得到和其他编程语言中CASE语句相同的功能。注意,不要转向某个位于if-then-else结构或do循环中的带标识字的行。

通过给THEN变量赋值STOP,可以离开ANSYS。

if-then-else结构仅仅判断条件并执行接下来的程序体或跳到*ENDIF命令的下一条语句处(用Continue注释表示):

978-7-111-47915-4-Part01-276.jpg

(2)循环结构

*REPEAT命令是最简单的循环命令,通过它可以直接按指定的次数执行上一条命令,并按常数增加命令所带参数。例如:(www.xing528.com)

978-7-111-47915-4-Part01-277.jpg

E命令在节点1和2之间生成一个单元*REPEAT命令指示执行E命令5次(包括最初的一次),每执行一次第二个节点号加1。结果共生成5个单元:1-2,1-3,1-4,1-5和1-6。

注意:大多数以斜线(/)或星号(*)开头的命令,以及扩展名不是.mac的宏,都不可以重复调用。但是,以斜线(/)开头的图形命令可以重复调用。同时,要避免对交互式命令使用*REPEAT命令,诸如那些需要拾取或需要用户响应的命令。

DO循环允许执行一个命令块数次。

实际上在DO循环中对其中包含什么内容没有限制。可以包含任何ANSYS命令(包括前处理,求解和处理),当然是在条件允许的情况下。

*DO开始循环,*ENDDO结束循环。

提示:可以用*EXIT(退出循环)和*CYCLE(跳到DO循环末)控制循环。*EXIT和*CYCLE也可以根据if-then的结果来执行。

在构造do循环时,要遵循以下原则。

●不要通过在*IF或*GO命令中带有Label来从do循环结构中跳出。

●不要在do循环结构中用Label来跳到另外一行语句。可以用if-then-else-endif结构来代替。

●在do循环结构中,第一次循环后,自动禁止命令结果输出。如果想得到所有循环的

结果输出,就在do循环结构中使用/GOPR或/GO(无响应行)命令。

常用的流程控制命令列于表7-3中,以供读者参考,更为详细的介绍请读者参考ANSYS的帮助文件。

表7-3 控制函数表

978-7-111-47915-4-Part01-278.jpg

(续)

978-7-111-47915-4-Part01-279.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈