当前位置:文档之家› ANSYS二次开发

ANSYS二次开发

ANSYS二次开发手册UIDL解析APDL解析目录第二章解析UIDL篇 (1)2.1结识UIDL (1)2.2看看UIDL的模样 (2)2.3 Ansys调用UIDL的过程 (7)第三章UIDL实例解析一 (10)3.1问题描述: (10)3.2环境准备: (10)3.3添加菜单: (12)3.4结束语 (16)第四章UIDL实例解析二 (17)4.1问题描述: (17)4.2环境准备及构建对话框: (18)4.3参数提取杂谈 (21)4.4结束语 (23)附录 (23)第五章UIDL实例解析三 (27)5.1问题描述 (27)5.2环境准备及构建联机帮助: (28)5.3几点说明 (34)5.4 结束语 (35)第六章解析APDL (36)6.1 熟悉新朋友—APDL (36)6.2 二次开发工具之间的比较 (36)6.3 结束语 (37)第七章APDL综合实例 (38)7.1 问题说明 (38)7.2 解题思想 (39)7.3 构建步骤 (40)7.4 几点说明 (47)7.5 结束语 (48)第二章解析UIDL篇2.1结识UIDLUIDL是什么?Ansys二次开放语言的一种。

OK,那么它能带给我们什么?很多很多,如果你想让你在Ansys中制作的用户界面具有专业水准的话,请来结识一下我们的UIDL把。

●全称:UIDL的全名是User Interface Design Language,是Ansys 中二次开发工具方面的三大金刚之一。

GUI方面几乎全部的二次开发功能都将由它运筹帷幄。

●功用:⏹组织我们自己强大的菜单系统。

想象一下我们在Ansys中也能轻松做出可以和VC,VB之类主流GUI开发工具媲美的菜单响应效果,Ansys的世界将是多么的亲切、友好。

⏹构建功能繁复的对话框。

Ansys中美观易用的ContactWizard对话框级联界面一定让你印象很深把,有了它,即使是最菜鸟的门外汉也能构建一流的工程算例,Ansys5.7中的DesignSpace应该就是无可争辩的例证之一。

虽然从UNIX内核上讲(Windows下的东西是Ansys的后期移植,很多技术还不成熟,这里就不加讨论了),它们多构建在繁复的TCL编程基础上,但我们利用强大的UIDL工具,也能轻松架构起我们自己的实用对话框向导。

建立自己的联机帮助Ansys中的联机帮助(尤其是UNIX下的搜索引擎)非常实用,可以说是我所接触过许多有限元平台中最为好用的几种帮助平台之一。

UNIX下的关键字查询简直是帅呆了,想构建自己完善的帮助系统吗?UIDL同样是这方面不可或缺的理想开发工具。

2.2看看UIDL的模样认识了这位Ansys二次开发中的大侠了巴,现在我们就来进一步和它交流交流,把我们的感性认识上升到理性层次中。

2.2.1 UIDL控制文件总结构一个完整的UIDL控制文件大致如一下结构:说明:任何一个UIDL控制文件开头都是一个控制文件头,其后接一个或多个结构块结构。

2.2.2控制文件头结构为避免鄙人在这里滔滔不绝,而读者在台下不知所云的尴尬,我们在以后的讲解中都将从一些典型结构例子入手,剖析清楚其各个部分的详细结构,当然这里从例子入手的剖析手段只能做到抛砖引玉,要想熟悉的了解各个命令的详细信息,请参阅UIDL手册:一个典型的控制文件头如下所示:---------------------------------------------------------------------------------------------:F UIMENU.GRN:D Modified on %E%, Revision (SID) = 5.181.1.67 - For use withANSYS 5.5:I 0, 0, 0:!---------------------------------------------------------------------------------------------几点说明:1.filename是UIDL控制文件名。

2.description是对本文件的一些说明。

注意到description中有时能带%E%扩展,但只有当你拥有类似SCCS的系统(含一源码控制系统),ANSYS才能有效的进行%E%扩展,否则请手动把这些说明替代%E%写入description中。

3.0必须出现在第9、18、27行。

用户只需要在这些位置填入0,ANSYS在调用该文件后会自动在这些位置填入GUI界面的位置信息。

4.UIDL控制文件中做分隔标记的,可有可无,这里用来分隔控制文件头和结构块结构,建议在控制文件头和结构文2.2.3结构块结构结构块结构是一个UIDL控制文件的核心,它涵盖了菜单信息,命令信息,以及帮助文件信息,按照其不同的类型可划分为菜单结构块,命令结构块和帮助结构块。

一般来说函数结构块还都伴随着构建一个对话框结构。

1.结构块结构基本框架麻雀虽小,五脏俱全,让我们先看一看结构块的基本结构:2.例子说明这里基于一个菜单结构块描述一下这些基本结构的细节,让大家有一个感性认识:--------------------------------------------------------------------------------------头部分:N Men_Add:S 0, 0, 0:T Menu:A Add:C:D Add数据控制部分Fnc_VADDFnc_AADDFnc_LCOMB尾部分:E END:!----------------------------------------------------------------------------------------几点说明:●头部分◆◆用户只需在第9、16、23行输入0即可,ANSYS在调用该文件中将自动为这些域填入合适的值。

◆可选类型有Menu、Cmd或者Help。

◆Menu块中通常用来定义出现在GUI菜单上的名字。

◆◆头部分中还可以带许多其他命令,例如ANSYS内部命令等,这里就不详述了,我们将在例子中看到其具体用法。

●数据控制部分数据控制部分根据不同的结构控制块有不同的写法,但必须至少有一个数据控制行。

例如在菜单结构块中我们可以在其中使用Men_String来调用其他菜单项,还可以使用Fnc_String命令调用一些命令。

String对应于特定的菜单名部分或者命令名部分。

其他具体细节这里就不详述了。

我们将在具体实例中看到他们是如何构建实现的。

●尾部分●分隔(可选)一般说来,(可选)。

2.3 Ansys调用UIDL的过程上面我们已经熟悉了整个UIDL控制文件的结构,可惜我们还是空有武器,鲜有用武之地,Ansys到底是怎么使用UIDL的呢?搞清楚这一点,我们才能够游刃有余的控制整个GUI界面的定制,在这部分里我们将描述一下Ansys控制UIDL文件的过程。

下面的一些设置情况都是基于工作站版本的ANSYS5.5,其他版本的ANSYS的设置处理也类似,这里就不加赘述了。

ANSYS在调用GUI界面时会自动调用menulist55.ans文件,该文件中描述了UIDL前处理器到哪里去寻找UIDL控制文件。

ANSYS在其docu/目录中有一个基本的menulist55.ans文件和对应的基本UIDL控制文件。

默认情况下,ANSYS就调用这一menulist55.ans文件。

下面是这一基本menulist55.ans文件的内容:----------------------------------------------------------/ansys55/docu/UIMENU.GRN/ansys55/docu/UIFUNC1.GRN/ansys55/docu/UIFUNC2.GRN/ansys55/docu/UICMDS.HLP/ansys55/docu/UICMDS.HPS/ansys55/docu/UIELEM.HLP/ansys55/docu/UIELEM.HPS/ansys55/docu/UIGUID.HLP/ansys55/docu/UIGUID.HPS/ansys55/docu/UITHRY.HLP/ansys55/docu/UITHRY.HPS/ansys55/docu/UIOTHR.HLP/ansys55/docu/UIOTHR.HPS----------------------------------------------------------可见,正是因为这一menulist55.ans文件的指定,ANSYS系统将默认调用对应的基本UIDL控制文件。

由此,我们可以产生一个想法:只要我们改变这一基本menulist55.ans 中的指定,就能使用我们自己的UIDL控制文件。

但其实我们有更加好的方法,一般来说我们不建议改变系统ansys55目录里任何文件内容,以避免不必要的失误。

ANSYS本身在调用menulist55.ans文件的方式上就提供了便于进行UIDL开发的机制:通常ANSYS按照以下顺序寻找menulist55.ans文件: 用户工作目录(可以在Interactive启动方式中设定)->用户根目录->/ansys/docu目录,可见只要我们在用户工作目录中编辑自己的menulist55.ans文件,ANSYS 将优先使用我们自己的menulist55.ans文件。

如果生成了自己的UIDL控制文件,并在我们自己的menulist55.ans文件中指向它们,我们就能实现对UIDL的全控制。

以后的实例中我们将看到通用的UIDL开发过程。

最后要指出的是,UIDL前处理器在处理UIDL行(控制文件头部分)。

第三章UIDL实例解析一3.1问题描述:任何一个级联菜单的最底级总是调用命令,在这个实例里我们试着添加一个菜单联结,指向一个我们自己构建的命令。

这个命令的构建方式我们将在实例二中给出。

为方便起见,我们将在主菜单下添加一个MyProject菜单项,调用MyProject子菜单。

MyProject子菜单中含有一个DoProject命令,该命令对一个实际问题进行优化设计,我们将在以后的实例中实现它。

3.2环境准备:1.配置好ANSYS环境,这里略过。

2.在当前用户目录下建立一个子目录UIDL----------------------------%mkdir ~/UIDL----------------------------3.拷贝相应文件进入该子目录-------------------------------------------------------%cp /ansys55/docu/menulist55.ans .%cp /ansys55/docu/UIMENU.GRN .%cp /ansys55/docu/UIFUNC1.GRN .%cp /ansys55/docu/UIFUNC2.GRN .-------------------------------------------------------4.编辑该子目录下文件menulist55.ans前面我们已经看到了这个基本menulist55.ans的内容,这里我们想使用自己的UIDL控制文件,而不用默认目录/ansys55/docu下的UIDL控制文件,因此我们把该文件修改成如下内容:-------------------------------------------------------./UIMENU.GRN./UIFUNC1.GRN./UIFUNC2.GRN/ansys55/docu/UICMDS.HLP/ansys55/docu/UICMDS.HPS/ansys55/docu/UIELEM.HLP/ansys55/docu/UIELEM.HPS/ansys55/docu/UIGUID.HLP/ansys55/docu/UIGUID.HPS/ansys55/docu/UITHRY.HLP/ansys55/docu/UITHRY.HPS/ansys55/docu/UIOTHR.HLP/ansys55/docu/UIOTHR.HPS---------------------------------------------------5.运行测试是不是能够正常启动ANSYS以Interactive方式启动,设置工作目录为刚刚创建的UIDL目录,并设置初始工作名为uidl,启动ANSYS,这是ANSYS的GUI界面应该和默认情况下启动,只不过不同的是调用的UIDL控制文件是当前UIDL目录下的了(只不过两者内容相同而已)。

相关主题