首页/文章/ 详情

细数APDL中的流程控制命令

3月前浏览7239

本文摘要(由AI生成):

本文介绍了APDL中的流程控制命令,包括分支命令、条件分支和循环等。分支命令用于跳过中间命令,但优先级较低,不推荐使用。条件分支通过比较数值大小来确定是否执行后续命令,是建模和后处理中常用的控制命令。循环命令可以大幅度提高建模效率,尤其与数组结合使用时效果更佳。掌握这些命令可以减少工作量,提高程序的可读性和可操作性。


一、概述


有过其他编程语言经验的同学都知道,流程控制类语言命令在编程中是必须掌握的一门技巧,这类命令能大幅提高我们的编程效率,增加程序可读性。类似地,在APDL中也有很多的流程控制性命令,今天水哥就给大家捋一捋。


二、什么是流程类控制命令


ANSYS总是逐条执行命令语句的,但很多时候我们建模或者计算分析需要不断的重复执行一些模块化命令,例如在地震时程分析、荷载步加载等,因而就诞生了流程类控制命令,ANSYS常见的命令如下:


1)*Go 无条件分支


2)*IF --*IF ELSE--*ELSE--*ENDIF 有条件分支


3)*DO --*ENDDO 循环


4)*DO WHILE 循环


5)*REPEAT 重复一个命令,增加一个或多个命令


这上面五个命令中,*IF条件判断、*DO循环是使用频率最高的,任何稍微复杂点的建模或者后处理均需要用到。下面分别简单介绍下每个命令的使用方式。


三、详解


1、*Go 无条件分支


*Go是最简单的分支命令,是用来将程序流程转移到指定标识字所在行并执行后面的流程,也即跳过中间的所有命令,但值得注意的是该命令不能与条件分支和循环混合使用,其优先级低于循环和条件分支,个人不推荐使用这个命令。


案例:


*go,:BYST1 !流程跳转到后面的第一个写有:BYST1命令行

…….


:BYST1       !跳转目标行

 

*GO,STOP    !退出程序 


2、*IF --*IF ELSE--*ELSE--*ENDIF 有条件分支


这个命令是我们在建模或者后处理中使用最为频繁的流程控制命令之一,应重点掌握,该命令通过比较两个数值的大小来确定是否满足当前的判断条件,从而决定是否执行后续的命令,格式如下:


*IF,VAL1,Oper1,VAL2,Base1


Oper1 是比较运算的,ANSYS提供如下比较运算符:


1)EQ: 等于 ; 2)NE:不等于;3)LT:小于;4)GT 大于;5)LE不大于;6)GE 不小于;7)ABLT 绝对值小于;8)ABGT 绝对值大于。


 VAL1为比较数,VLA2为被比较数,Base1为当判定条件为真时所执行的操作。将Base1换为*Else就成为了一个标准的判断性流程控制语句。流程图如下:


例如:


Finish$/clear


/prep7


XX1=1         !给XX1赋值为1


*if,xx1,gt,2,then  !判断XX1是否大于2,如果大于2,则绘制一个矩形,否则画一个圆


Blc4,0,0,4,2


*else


Cyl4,0,0,5


*endif

 

3、*DO—*ENDDO 循环


*do循环和*if一样,也是我们平时所使用命令中最为频繁的控制性语句之一,*do循环其实本身是一个程序块,合理的利用*do循环,有时候能大幅度提高我们的建模效率,尤其是和数组的结合使用,例如在网壳模型建模过程中,*do循环的使用就能事半功倍。


*do循环格式如下:


*DO,par,ival,fval,inc


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


实例:


*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


*DOWHILE 从字面意思很好理解,主要用于重复执行循环体,直到外部参数发生改变为止,其使用格式如下:


*DOWHILE,Parm


这里Parm是循环判断条件,如果循环体得出的结果使得Parm为真(大于0.0)则执行下一次循环,如果为假(小于等于0.0)则终止循环。


5、*REPEAT


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


*REPEAT,Ntot,VINC1,VINC2…………………VIINC10


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


例如:


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     

 

四、结语


要学好APDL,掌握必要的流程控制命令至关重要,这些命令不但能减少我们的工作量,很大程度上还能提高程序的可读性以及可操作性,提高建模效率。


作者:水哥ANSYS,仿真秀科普作者。


声明:原创文章,首发ANSYS结构院公 众号,本文已授权,部分图片源自网络,如有不当请联系我们,欢迎分享,禁止私自转载,转载请联系我们。

ANSYS 其他通用其他软件
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2019-03-21
最近编辑:3月前
仿真圈
技术圈粉 知识付费 学习强国
获赞 9772粉丝 21178文章 3417课程 215
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈