利用ANSYS UIDL定制新菜单功能的开发方法

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.png

图1

由于在创建新菜单的时候用来ANSYS自带的APDL命令multipro,因此点击该菜单会自动弹出一个对话框用于设置几个参数。点击对话框的OK按钮后及设置了4个参数,可以在ANSYS的主菜单栏查看,如下所示。

2.png

图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.png

图3

很明显,此时只剩下一个创建的按钮而已。

基于此,再结合APDL,可以将某个结构的自动化分析过程完全做成几个菜单就能解决的问题,不需要人为的干预。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空