简述ANSYS图形界面二次开发

2019-07-19 09:00周凯旋
四川建筑 2019年3期
关键词:用户界面管理器调用

周凯旋

(西南交通大学土木工程学院,四川成都 610031)

从20世纪70年代以来,随着计算机技术的迅速发展,有限元分析软件在结构分析中的作用日益显著,其中ANSYS作为大型通用有限元软件之一,拥有结构、热、电、磁、流体等分析功能[1]。由于ANSYS是作为一种通用有限元软件而使用,故在某些特定专业问题分析上流程复杂、操作繁琐、不易掌握,为了便于专业用户使用,ANSYS为二次开发提供了多种语言接口,用户可根据自身专业特点,对ANSYS进行功能扩充和系统集成。在ANSYS二次开发的过程中,主要用到APDL、UIDL、UPFs等语言,此外,ANSYS的运行依赖于TCL/TK脚本语言,因而ANSYS可以采用该种语言进行用户自定义界面编写,配合使用上述语言,极大的方便了用户根据自身需要对ANSYS进行二次开发。

1 UIDL

1.1 UIDL简介

UIDL是User Interface Design Language的缩写,就是用户界面设计语言。在ANSYS中主要完成以下三种图形界面的设计:主菜单系统及菜单项、对话框和拾取框、对话框帮助系统。一个完整的UIDL至少包含一个控制文件头及若干个结构块,控制文件头及结构块中各个位置代码均有严格规定[2-3]。

1.2 ANSYS调用UIDL

在安装有ANSYS的计算机上(15.0版本),UIDL在如下安装目录下,ANSYS15.0ANSYS INCV150ANSYSGUIEN-USUIDL,在UIDL文件夹下,主要有UIMENU.GRN、UIFUNC1.GRN、UIFUNC2.GRN、MENULIST150.ANS等文件,前三个用于菜单界面的制定,最后一个是ANSYS调用UIDL的文件路径。也就是用户在编写UIDL语言时,可以在原ANSYS安装目录下的UIMENU.GRN、UIFUNC1.GRN、UIFUNC2.GRN中进行编写,亦可在其他任意位置编写自己的UIDL文件,只需要将ANSYS安装目录下的MENULIST150.ANS文件中的调用路径做相应修改即可。

1.3 菜单界面的开发

ANSYS菜单界面的开发基于UIDL即可,主要修改UIDL文件夹下的UIMENU.GRN与UIFUNC2.GRN文件即可完成菜单的添加[5]。根据编写规则,在UIMENU.GRN中的任意两个结构块之间编写自己的菜单代码即可。代码所在的位置决定菜单在界面上显示的位置,如图1所示菜单界面,其对应的一、二级菜单代码见表1,并在表中对代码所实现的功能做出解释。

图1 菜单界面示例

三级菜单的添加需要在UIFUNC2.GRN文件中进行,在UIFUNC2.GRN中的代码编写规则与表1相同,同样在任意两个结构块之间编写三级菜单的代码,最后将Doproject添加至UIFUNC.GRN中的根菜单(Menuroot)下即完成图1所示菜单界面的编写。

通过以上编写,完成在ANSYS中添加自己的菜单界面,单击菜单选项所响应的界面,可以在UIDL中进行编写,也可以采用TCL/TK语言进行编写并生成一个TCL文件,只需在UIDL中调用该文件即可。

表1 一、二级菜单源代码

2 TCL/TK编写用户界面

2.1 创建窗口

在创建用户界面时,窗口是最顶层结构,其他一切构件的摆放均需要在窗口上实现,如Toplevel.Dcck 可以创建一个名称为Dcck的窗口。命令Wm Title.Dcck “建模窗口”设置窗口标题显示的文本内容为“建模窗口”。在创建顶层窗口之后,才能在窗口上面进行其他构架的设计[6]。

2.2 标签、标签框架及按钮

创建标签的命令是Lable,如“Label.H -Text “名称”-Relief Sunken -Width 10 -Font {仿宋 25}”,.H是所创建标签的名称,Text为标签显示的文本内容。标签的文本选项有Text与Textvariable两种,Text是文本要显示的字符串,Textvariable 选项可以将它的值设置为一个对全局的变量并显示该变量的内容,当文本框中的内容改变时,该变量会发生相应的改变。-Font用于设置标签字体。Labelframe命令与Label命令格式相似,用于创建标签框架,并将界面上的组件进行分组,使界面整洁有序。

创建按钮的基本语句如:Button Cancel -Text “取消” -Command Quxiao。创建了一个名为“Cancel”的按钮,按钮上显示的文本内容为“取消”,-Command选项为按钮创建一个名称为“Quxiao”响应过程,但这个过程的响应功能还需要另外定义。

创建输入框的命令为Entry,如Entry.Entry -Width 20 -Relief Sunken,创建一个名为Entry的输入框,指定其宽度为20,-Relief选项用于设置输入框的凹凸样式,其后面参数有Raised、Sunken、Flat、Groove、Ridge,同样适用于标签框架。

2.3 几何管理器

TK的几何管理器决定组件在窗口上的位置及尺寸。TK中有三种几何管理器分别是打包器(Pack),定位器(Place)与网格管理器(Grid)。最常用的为Grid,它将界面划分网格,将组件在窗口上按行列布置,其后面的属性有-Row(行位置),-Column(列位置)。Rowspan(跨行),Columnspan(跨列),如Grid $Lab1 -Row 2 -Column 1,将Lab1放在窗口上的第二行,第一列位置。

2.4 图像

创建图像的语句如:Image Create Type Name Option Value。Image Create是创建图像的命令;Type是图像的类型;Name是的图像的名字;Option Value对参数指定图像的属性。图像可以采用内部命令创建也可以调用已有的图片。图片的显示可以采用如下方法,先读取图片并将其显示在一个标签上,然后通过Grid命令将带有图片的标签显示在窗口上。

2.5 事件绑定

绑定事件可以实现图形的动态刷新。绑定事件的命令为bind,可以用于绑定的事件有Key或Keypress—按下按键,Keyrelease—释放按键,Button或Buttonpress—按下鼠标键等。如语句:Bind.Entry {.Entry Delete Insert}。第一个参数指定了要创建绑定的窗口名,它也可以是组件的名称;第二个参数指定了绑定组件将要响应的事件,它可以是一个或多个,在本例中是单个事件Keypress;第三个参数是任意的TCL脚本,定义组件所绑定的事件发生时所要执行的过程,绑定可以触发任意次,如果没有解除绑定的命令,只要事件被触发,它会一直执行。调用Bind.Entry {}带空TCL脚本的语句可以解除绑定。

综合运用以上功能,用户即可根据自身需求编写出自己的用户界面,将编写该界面所用的每一类代码举例列于表2,配合使用如下代码,即可编写出图2所示用户界面。

表2 部分源代码

图2 自定义用户窗口界面

2.6 TCL/TK与ANSYS的交互

用TCL/TK编写的界面文件以TCL为扩展名,将编写好的TCL文件放在电脑中,并在ANSYS中可以通过以下三种命令的方式调用TCL/TK所编写的文件。

(1)~Tcl,’Source Filename’;

(2)~Tk,’Source Filename’;

(3)~Tui, ’Source Filename’。

其中’Source Filename’是TCL/TK程序,包括调用路径和所要调用的TCL文件名。在用UIDL所编写的菜单中也可以调用TCL文件,要实现该功能就要在用UIDL编写菜单时使用:C命令,在该命令后编写相应调用语句。

TCL文件亦可向ANSYS传递命令,实现该功能的命令为Ans_Sendcommand,在上述编写界面的TCL文件中,在代码开头加入Ans_Sendcommand,那么在该代码后面即可编写ANSYS自身的APDL命令,用于建模计算等。也就是ANSYS的用户界面编写及后续的计算分析命令,均可集成于TCL文件中。

3 结论

本文介绍了在ANSYS中通过修改UIDL中相应文件来定制用户自定义菜单的方法,运用TCL/TK中创建窗口、标签以及按钮等功能编写用户界面,通过几何管理器实现构件在窗口上的合理摆放,并由绑定事件功能实现界面上构件的过程响应,最后通过ANSYS与TCL文件互调命令,实现ANSYS调用集成的TCL文件与TCL文件向ANSYS传递命令。根据该方法,用户可以方便的编写符合自身需求的界面,并将部分ANSYS命令集成于TCL文件中,从而可以大大提高设计效率。此外,本文给出代码示例,可以为其他用户开发自身需求的界面提供参考。

猜你喜欢
用户界面管理器调用
基于CiteSpace的国外用户界面体验图谱量化分析
启动Windows11任务管理器的几种方法
应急状态启动磁盘管理器
核电项目物项调用管理的应用研究
物联网用户界面如何工作
系统虚拟化环境下客户机系统调用信息捕获与分析①
Windows文件缓冲处理技术概述
UI用户界面色彩设计研究
基于B/S的跨平台用户界面可配置算法研究
利用RFC技术实现SAP系统接口通信