ANSYS流程控制命令

1. *1.GO 无条件分支

*GO是最简单的分支命令,用来将程序流程转移到标识字符所在行并执行后面的流程,即跳过中间的所有命令。

注意:该命令不能与条件分支和循环混合使用,其优先级低于循环和条件分支,不推荐使用此命令

1.1 举例

1
2
3
4
*go,:BYST1 !流程跳转到后面的第一个写有:BYST1命令行
......
:BYST1 !跳转到目标行
*go stop !退出程序

2. *IF​ ​*IF ELSE​ ​*ELSE​ ​*ENDIF有条件分支

调用格式:

$$
\begin{align}
*IF,Val1,Oper1,Val2,Base1
\end{align}
$$

,Oper为比较运算,使用方法见下表

命令 参数值
EQ 等于
NE 不等于
LT
小于
GT 大于
LE 不大于
ABLT 绝对值小于
ABLE 绝对值大于

Val1为比较数,Val2为被比较数,Base1为当判定条件为真时所执行的操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
*IF,A,EQ,1,THEN
!BLOCK1
......
*ELSEIF,A,EQ,0
!BLOCK2
......
*ELSEIF,A,EQ,-1
!BLOCK3
......
*ELSE
!BLOCK4


*ENDIF
!Continue

2.1 例子

1
2
3
4
5
6
7
8
9
10
Finish$/clear

/prep7

XX1=1 !为XX1赋值为1
*IF,XX1,gt,2,then !判断XX1是否大于2,如果大于2,则绘制一个矩形,否则绘制一个圆形
Blc4,0,0,4,3
*else
cyl4,0,0,5
*endif

3. DO​ ​*ENDDO 循环

循环格式如下:

$$
\begin{align}
*DO,par,ival,fval,inc
\end{align}
$$

,其中par为循环控制变量,ival,fval,inc分别为循环控制变量的起始值,终点值以及间隔值## 例子

1
2
3
4
5
6
7
8
*dim,xx,array,10,1,1  !定义一个数组
*do,i,1,10,1 !定义循环
xx(i)=I !定义数组元素
k,i,xx(i) !定义关键点
*if,i,ge,2 !条件判断
L,I-1,I !绘制直线
*endif
*enddo !结束循环

4. *DOWHILE

其调用格式:

$$
\begin{align}
*DOWHILE,Parm
\end{align}
$$

,这里的Parm循环判断条件,如果循环体得出的结果使得Parm为真(大于0),则执行下一次循环,如果为假(小于等于0)则终止循环# 5. *REPEAT

*REPEAT也属于简单的循环命令,但与其他控制命令不同,它定义的是按指定的次数循环执行上一句命令,并且命令中的参数可以按固定的增量递增,格式为:

$$
\begin{align}
*REPEAT,Ntot,VINC1,VINC2……VINC10
\end{align}
$$

,其中Ntot表示命令重复执行的次数,且包含初始的次数,故必须大于等于2,vinc~vinc10是命令的第1到第11个参数在每次循环时的增量## 例子

1
2
3
4
5
6
7
8
9
10
Csys,1    
*do,I,1,6,1 !定义6个节点
N,i,10,60*I,0
*enddo
Type,1
Mat,1
Real,1
E,1,2 !建立单元
*REPEAT,5,1,1 !通过节点编号每次增加1的方式建立圆环
E,6,1