APDL中的弹出对话框功能

利用apdl进行ansys参数化建模的时候,在命令流的开始部分就将整个分析过程中可能用到的各个参数都定义出来,肯定是一个好习惯。经过诸如“ex=2.1e11”、“prxy=0.3”之类给变量赋值的过程之后,只需修改变量的数值,就可以轻松地完成一次新的分析,这也正式参数化分析的优势所在。

但有时候单单在txt/mac文件中修改apdl命令源码是不够的,比如做一个命令流文件给旁人,不同的人命名变量的习惯不同,碰上那种拼音英文混搭的选手可真是头疼。再比如,拿出来的apdl是经过加密的话,那修改参数变量岂不就更难办了。至少对以上两种情况,在分析过程中,实现弹出对话框进行参数定义的功能,是有意义的。

ansys中,弹出对话框的命令格式如下:

MULTIPRO,'start',Prompt_Num
*CSET,Strt_Loc,End_Loc,Param_Name,'Prompt_String',Def_Value
MULTIPRO,'end'

其中,Prompt_Num是变量参数的数目,一个闭合的MULTIPRO命令可定义10个参数。Param_Name是变量名称,'Prompt_String'是用单引号引起来的字符,显示在弹出的对话框之中。Def_Value 是该变量的默认值。至于Strt_Loc和End_Loc,是定义变量在对话框中显示位置的参数,有固定的定义格式。第一个变量中,Strt_Loc和End_Loc为1和3;第二个变量则为4和6。即,同一个变量中End_Loc=Strt_Loc+2,下一个变量的Strt_Loc=上一个变量的End_Loc+1。

举例说明,定义四个变量,变量名为a,b,c,d,默认值为10,20,30,40:

MULTIPRO,'start',4
*CSET,1,3,a,'a=',10
*CSET,4,6,b,'b=',20 
*CSET,7,9,c,'c=',30
*CSET,10,12,d,'d=',40
*CSET,61,62,'Input Variables: '
MULTIPRO,'end'

其中需要注意的是,*CSET,61,62,这一段就不是变量定义了,是对话框的标题栏。

可不要小瞧了MULTIPRO命令,虽然它不能与*DO命令合用,但是若与*IF/*ENDIF联手,一样可以做出许多漂亮的连环对话框出来。再举一个小例子:

MULTIPRO,'start',1  !用一个id变量来做判断函数
*CSET,1,3,id,'which one to choose? A&B(1)/C&D(0)',0
*CSET,61,62,'Make a judgement'
MULTIPRO,'end'

*IF,id,eq,1,then  ! 如果选择1,则定义变量A和B
MULTIPRO,'start',2
*CSET,1,3,a,'a=',10
*CSET,4,6,b,'b=',20
*CSET,61,62,'define A&B'
MULTIPRO,'end'

*ELSEIF,id,eq,0  !如果选择2,则定义变量C和D
MULTIPRO,'start',2
*CSET,1,3,c,'c=',30
*CSET,4,6,d,'d=',40
*CSET,61,62,'define C&D'
MULTIPRO,'end'
*ENDIF

 至此,若加上更复杂的判断语句,就能做出很完美的对话框来了。不过要提醒的是,如果一次定义的变量超过五个,对话框的界面中可能无法显示完整,这时候需要用TAB键来进行切换就好可以,对话框里面是不会产生滚动条的。

长河

在曾经的博客时代,是“首个桥隧工程领域独立博主”,目前是一名默默耕耘的普通高校教师。一家之言,仅供参考,未必成熟、绝不权威。

相关推荐

6 条评论

  1. 长河:请问ansys的网线网卡和本地连接之间是怎么回事儿啊。我不连接网线的时候可以运行ansys但是网线一插上就打不开了呢;还有就是连接网线就安装不上呢,是否网卡和ansys有冲突。我的邮箱是alex_rhh@163.com;如果你知道的话谢谢你的回复:我安装了很多次了 无果。

  2. 很不错的分享 支持哈!

  3. 茶叶蛋

    拜读完毕,经常看看博主的文章能有不少收获!

  4. 第一次来,你的博客搞得不错

  5. @韩国 这几天用无线网卡,运行ansys不方便。不过代码肯定是没问题滴

  6. 有没有演示的效果。

发表评论

您的电子邮件地址不会被公开,必填项已用*标注。