首页/文章/ 详情

IF你看了本文THEN就会用这种条件分支控制

3年前浏览4008

在ANSYS中,经常用到条件分支流程控制,也就是所谓的IF块。ANSYS中的IF块与其他高级语言的类似,但表达形式有些差异。APDL的IF块命令格式如下:

*IF,VAL1,Oper1,VAL2,Base1{,VAL3,Oper2,VAL4,Base2}

*ELSEIF,VAL1,Oper1,VAL2{,Conj,VAL3,Oper2,VAL4}

*ELSE

*ENDIF

其中:{}内的可不输入,即可使用,也可不使用,根据情况而定。

VAL1~VAL4为比较用数值或数字或字符等。

Oper1(Oper2)为比较运算符,可取:

EQ--等于

NE--不等于

LT--小于

GT--大于

LE--小于等于

GE--大于等于

ABLT--绝对值小于

ABGT--绝对值大于

Base1是第一个条件(Oper1)为真时执行的操作,如果后面无{}内部分,则取THEN;否则可取:

STOP--退出ANSYS,但交互模式不会退出

EXIT--退出DO循环

CYCLE--跳过*CYCLE的循环

THEN--如上

AND--Oper1和Oper2同时为真

OR--Oper1和Oper2至少一个为真

XOR--Oper1和Oper2都为假时为真

Base2是两个条件成立时执行的操作,实际是Base2=THEN

Conj是两个条件的连接符,可取AND、OR、XOR之一。

最简单的IF块如:

*IF,A,EQ,B,THEN

Block1

*ENDIF!0

较简单的IF块如

*IF,A,EQ,B,THEN!

Block1!1

*ELSE!

Block2

*ENDIF!

较复杂的IF块如

*IF,A,EQ,1,THEN

Block1!!!

*ELSEIF,A,EQ,2

Block2!!

*ELSEIF,A,EQ,3

Block3

*ELSEIF,A,EQ,4

Block4

*ELSE!!

*IF,MOD(A,2),EQ,0,THEN

Blocka

*ELSE

Blockb

*ENDIF

*ENDIF!!

上述语句中的Blockx可包含另外的完整IF块。

例如下面命令流

FINISH$/CLEAR$/PREP7

*CREAT,IFTHEN,MAC

*IF,ARG1,EQ,1,THEN

BLC4,,,1,2!ARG1=1创建矩形

*ELSEIF,ARG1,EQ,2

CYL4,,,2!ARG1=2创建全圆

*ELSEIF,ARG1,EQ,3

CYL4,,,3,,,90!ARG1=3创建1/4圆

*ELSEIF,ARG1,EQ,4

CYL4,,,4,,,180!ARG1=4创建半圆

*ELSE!!!

*IF,MOD(ARG1,2),EQ,0,THEN

BLC4,,,1,2,3!ARG1整除2时创建六面体

*ELSE!!!!

CYL4,,,1,,,,1!ARG1不整除2时创建圆柱

*ENDIF!!!!!

*ENDIF!!!

*END

/VIEW,1,1,1,1

IFTHEN,7

IFTHEN,10

IFTHEN,2

IFTHEN,3

通常,在ANSYS中所使用的IF块较简单,较复杂的逻辑流程控制不多,除非是编制特殊而专门的小应用程序。因此,掌握本文的几种IF块结构,基本就可在ANSYS中应用流程控制。而包含STOP或/CLEAR,或者与DO 循环嵌套并跳出等较复杂的流程控制,可自行试错完成。(图片来自中铁电气化局集团第三工程有限公司通信分公司网页)

---------------------------------------------------------------------------------------------

版权声明:

原创文章,来源铁大王新敏,本文已经授权,欢迎分享,如需转载请联系作者。


科普代码&命令求解技术ANSYS 其他
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2021-01-01
最近编辑:3年前
王新敏
硕士 | 教授 好好学习,天天快乐
获赞 122粉丝 615文章 96课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈