ANSYS的界面开发语言有UIDL和Tcl/Tk两种,Tcl/Tk能够触及深处因此能够开发的界面功能更加强大,UIDL则是ANSYS本身的开发语言,能够对ANSYS的菜单进行一些开发,得到新的菜单功能,或者可以对已有的菜单进行修改等。
对于编程者而言其实界面不那么重要,可有可无,而对于使用者而言界面就变得尤为重要。
ANSYS的界面开发的相关文件位于F:\Program Files\ANSYS Inc\v160\ansys\gui\en-us\UIDL目录下面,其中的引用文件menulist160.ans就引用了相关的GRN和AUI文件,自行开发的UIDL文件如果要使用,也必须在这个文件进行引用,同时UIDL文件也要放在这个目录下面。
UIDL开发的文件扩展名是GRN,利用UIDL编写开发有其固定的格式。
抬头是控制头文件,由一系列的UIDL命令组成,且必须以冒号开头,其结构如下:
:F UIMENU.GRN
:D Modefied %E%,Revision(SID)=%I%
:I 0, 0, 0
:!
第一行:F Filename 控制文件名称
:N 定义唯一的构造块名称
:S 描述构造块的位置信息,这个当引用后会自动更新
:T 描述构造块的类型,可分为Menu,Cmd,Help等类型
:A 对不同类型的构造块有不同的功能,在Menu中为必须的,定义出现在GUI中的子菜单的名称
:D 描述构造块的信息
:C 用于执行APDL命令
以下是一段完整的菜单栏的UIDL代码,创建了一个新的菜单,在菜单栏的最下面,菜单名称为Input Parameter.
:F Screwmenu.GRN !建立名称为Scremenu.GRN的控制文件
:D Modefied on %E%,Revision(SID)=%I%
:I 0, 0, 0 !第9,18,27行
:!
:N MenuRoot !定义的构造块名称
:S 0, 0, 0 !第9,16,23行
:T Menu !模块为菜单模块类型
:A Ansys Main Menu !主菜单的菜单名
:D ANSYS Main MENU !以上四行是模块首部
Men_UVBA_Main_T1 !以下是数据控制部分
Men_UVBA_Main_T2
Men_UVBA_Main_T3
Fnc_preferences !调用功能模块
Sep_ !分割线
Men_Preproc !调用菜单模块
Men_Solution !调用求解模块
Men_GenlPost !调用通用后处理模块
Men_TimePost !调用时间历程后处理模块
K_LN(DROPTEST)
Sep_
K_LN(DROPTEST)
Men_DropTest
Sep_
Men_ToPo
Men_ROM
Men_DesXplorerVT
K_LN(alpha)
Men_DesOpt
K_LN(ALPHA)
Men_DesOpt_al
Men_ProbDesign
Men_Aux12
Men_RunStat
Sep_
Fnc_UNDO
Sep_
Fnc_FINISH !以上是菜单的一般形式
Sep_
Men_input !添加菜单
K_LN(UTILMENU)
Men_utilMenu
Men_UVBA_Main_B1
Men_UVBA_Main_B2
Men_UVBA_Main_B3
:E END !该行是模块尾行
:N Men_input
:S 0, 0, 0
:T Menu
:A Input Parameter
:D Input Parameter
:C) Multipro,'start',4 !创建对话框
:C) /prep7
:C) *cset,1,3,A,'Parameter A',5
:C) *cset,4,6,B,'Parameter B',10
:C) *cset,7,9,C,'Parameter C',15
:C) *cset,10,12,D,'Parameter D',20
:C) Multipro,'end'
:E END
将上述UIDL代码保存在GRN文件中,复制到之前所说的目录下面,并修改ans文件添加引用,重新打开ANSYS即可自动加载,最终显示的菜单栏如下所示。
图1
由于在创建新菜单的时候用来ANSYS自带的APDL命令multipro,因此点击该菜单会自动弹出一个对话框用于设置几个参数。点击对话框的OK按钮后及设置了4个参数,可以在ANSYS的主菜单栏查看,如下所示。
图2
这里面用到的*cset和multipro命令可以查看笔者之前的文章查看其用法。
可以注意到,上面一大段的UIDL代码创建新菜单的同时也引用了ANSYS的原来很多菜单,因此可以修改或者删除其中的一些命令,那么菜单就可以按照自己的意愿分布。
如果将UIDL代码缩短为如下:
:F Screwmenu.GRN !建立名称为Scremenu.GRN的控制文件
:D Modefied on %E%,Revision(SID)=%I%
:I 0, 0, 0 !第9,18,27行
:!
:N MenuRoot !定义的构造块名称
:S 0, 0, 0 !第9,16,23行
:T Menu !模块为菜单模块类型
:A Ansys Main Menu !主菜单的菜单名
:D ANSYS Main MENU !以上四行是模块首部
Sep_
Men_input !添加菜单
K_LN(UTILMENU)
Men_utilMenu
Men_UVBA_Main_B1
Men_UVBA_Main_B2
Men_UVBA_Main_B3
:E END !该行是模块尾行
:N Men_input
:S 0, 0, 0
:T Menu
:A Input Parameter
:D Input Parameter
:C) Multipro,'start',4 !创建对话框
:C) /prep7
:C) *cset,1,3,A,'Parameter A',5
:C) *cset,4,6,B,'Parameter B',10
:C) *cset,7,9,C,'Parameter C',15
:C) *cset,10,12,D,'Parameter D',20
:C) Multipro,'end'
:E END
那么重新打开ANSYS后即可显示如下图所示的菜单分布。
图3
很明显,此时只剩下一个创建的按钮而已。
基于此,再结合APDL,可以将某个结构的自动化分析过程完全做成几个菜单就能解决的问题,不需要人为的干预。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删