ANSYS二次开发共29页word资料.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《ANSYS二次开发共29页word资料.doc》由会员分享,可在线阅读,更多相关《ANSYS二次开发共29页word资料.doc(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流ANSYS二次开发【精品文档】第 25 页ANSYS二次开发手册UIDL解析APDL解析目录第二章 解析UIDL篇12.1结识UIDL12.2看看UIDL的模样12.3 Ansys调用UIDL的过程4第三章UIDL实例解析一63.1问题描述:63.2环境准备:63.3添加菜单:73.4结束语9第四章UIDL实例解析二104.1问题描述:104.2环境准备及构建对话框:104.3参数提取杂谈124.4结束语13附录13第五章UIDL实例解析三155.1问题描述155.2环境准备及构建联机帮助:155.3几点说明185.4 结束语19第六章 解析APDL20
2、6.1 熟悉新朋友APDL206.2 二次开发工具之间的比较206.3 结束语20第七章 APDL综合实例217.1 问题说明217.2 解题思想227.3 构建步骤227.4 几点说明267.5 结束语26第二章 解析UIDL篇2.1结识UIDLUIDL是什么?Ansys二次开放语言的一种。OK,那么它能带给我们什么?很多很多,如果你想让你在Ansys中制作的用户界面具有专业水准的话,请来结识一下我们的UIDL把。l 全称: UIDL的全名是User Interface Design Language,是Ansys中二次开发工具方面的三大金刚之一。GUI方面几乎全部的二次开发功能都将由它运筹
3、帷幄。l 功用:n 组织我们自己强大的菜单系统。想象一下我们在Ansys中也能轻松做出可以和VC,VB之类主流GUI开发工具媲美的菜单响应效果,Ansys的世界将是多么的亲切、友好。n 构建功能繁复的对话框。Ansys中美观易用的ContactWizard对话框级联界面一定让你印象很深把,有了它,即使是最菜鸟的门外汉也能构建一流的工程算例,Ansys5.7中的DesignSpace应该就是无可争辩的例证之一。虽然从UNIX内核上讲(Windows下的东西是Ansys的后期移植,很多技术还不成熟,这里就不加讨论了),它们多构建在繁复的TCL编程基础上,但我们利用强大的UIDL工具,也能轻松架构起
4、我们自己的实用对话框向导。n 建立自己的联机帮助Ansys中的联机帮助(尤其是UNIX下的搜索引擎)非常实用,可以说是我所接触过许多有限元平台中最为好用的几种帮助平台之一。UNIX下的关键字查询简直是帅呆了,想构建自己完善的帮助系统吗?UIDL同样是这方面不可或缺的理想开发工具。2.2看看UIDL的模样认识了这位Ansys二次开发中的大侠了巴,现在我们就来进一步和它交流交流,把我们的感性认识上升到理性层次中。2.2.1 UIDL控制文件总结构一个完整的UIDL控制文件大致如一下结构:控制文件头结构块结构说明:任何一个UIDL控制文件开头都是一个控制文件头,其后接一个或多个结构块结构。2.2.2
5、控制文件头结构为避免鄙人在这里滔滔不绝,而读者在台下不知所云的尴尬,我们在以后的讲解中都将从一些典型结构例子入手,剖析清楚其各个部分的详细结构,当然这里从例子入手的剖析手段只能做到抛砖引玉,要想熟悉的了解各个命令的详细信息,请参阅UIDL手册:一个典型的控制文件头如下所示::F UIMENU.GRN:D Modified on %E%, Revision (SID) = 5.181.1.67 - For use with ANSYS 5.5:I 0, 0, 0几点说明:1. 控制文件头第一行必须有:F filename,filename是UIDL控制文件名。2. 控制文件头第二行必须有:D d
6、escription,description是对本文件的一些说明。注意到description中有时能带%E%扩展,但只有当你拥有类似SCCS的系统(含一源码控制系统),ANSYS才能 有效的进行%E%扩展,否则请手动把这些说明替代%E%写入description中。3. 控制文件第三行必须有:I 0, 0, 0,各个0必须出现在第9、18、27行。用户只需要在这些位置填入0,ANSYS在调用该文件后会自动在这些位置填入GUI界面的位置信息。4. :!这一行通常是用来在UIDL控制文件中做分隔标记的,可有可无,这里用来分隔控制文件头和结构块结构,建议在控制文件头和结构文件块之间,以及各个控制文
7、件块之间都加一行:!加以间隔。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
8、分隔几点说明:l 头部分u :N行定义一唯一的结构控制块名。u :S行定义结构控制块位置信息。用户只需在第9、16、23行输入0即可,ANSYS在调用该文件中将自动为这些域填入合适的值。u :T行定义该结构控制块的类型,可选类型有Menu、Cmd或者Help。u :A行对不同类型的结构控制块有不同的功用,在Menu块中通常用来定义出现在GUI菜单上的名字。u :D行通常用来描述该结构块的信息。u 头部分中还可以带许多其他命令,例如ANSYS内部命令等,这里就不详述了,我们将在例子中看到其具体用法。l 数据控制部分数据控制部分根据不同的结构控制块有不同的写法,但必须至少有一个数据控制行。例如在菜
9、单结构块中我们可以在其中使用Men_String来调用其他菜单项,还可以使用Fnc_String命令调用一些命令。String对应于特定的菜单名部分或者命令名部分。其他具体细节这里就不详述了。我们将在具体实例中看到他们是如何构建实现的。l 尾部分:E END标志着一个结构块的结束。l 分隔(可选)一般说来,我们将在结构块和结构块之间加入:!来间隔(可选)。2.3 Ansys调用UIDL的过程上面我们已经熟悉了整个UIDL控制文件的结构,可惜我们还是空有武器,鲜有用武之地,Ansys到底是怎么使用UIDL的呢?搞清楚这一点,我们才能够游刃有余的控制整个GUI界面的定制,在这部分里我们将描述一下A
10、nsys控制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/
11、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系统
12、将默认调用对应的基本UIDL控制文件。由此,我们可以产生一个想法:只要我们改变这一基本menulist55.ans中的指定,就能使用我们自己的UIDL控制文件。但其实我们有更加好的方法,一般来说我们不建议改变系统ansys55目录里任何文件内容,以避免不必要的失误。ANSYS本身在调用menulist55.ans文件的方式上就提供了便于进行UIDL开发的机制:通常ANSYS按照以下顺序寻找menulist55.ans文件: 用户工作目录(可以在Interactive启动方式中设定)-用户根目录-/ansys/docu目录,可见只要我们在用户工作目录中编辑自己的menulist55.ans文件,
13、ANSYS将优先使用我们自己的menulist55.ans文件。如果生成了自己的UIDL控制文件,并在我们自己的menulist55.ans文件中指向它们,我们就能实现对UIDL的全控制。以后的实例中我们将看到通用的UIDL开发过程。最后要指出的是,UIDL前处理器在处理UIDL控制文件后,将自动在:I行(控制文件头部分)和:S行(结构块的头部分)中填入相应的位置信息,并在整个文件最后写入一系列:X行(索引行)。第三章UIDL实例解析一3.1问题描述:任何一个级联菜单的最底级总是调用命令,在这个实例里我们试着添加一个菜单联结,指向一个我们自己构建的命令。这个命令的构建方式我们将在实例二中给出。
14、为方便起见,我们将在主菜单下添加一个MyProject菜单项,调用MyProject子菜单。MyProject子菜单中含有一个DoProject命令,该命令对一个实际问题进行优化设计,我们将在以后的实例中实现它。3.2环境准备:1. 配置好ANSYS环境,这里略过。2. 在当前用户目录下建立一个子目录UIDL%mkdir /UIDL3. 拷贝相应文件进入该子目录%cp /ansys55/docu/menulist55.ans .%cp /ansys55/docu/UIMENU.GRN .%cp /ansys55/docu/UIFUNC1.GRN .%cp /ansys55/docu/UIFUN
15、C2.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/do
16、cu/UIGUID.HPS/ansys55/docu/UITHRY.HLP/ansys55/docu/UITHRY.HPS/ansys55/docu/UIOTHR.HLP/ansys55/docu/UIOTHR.HPS5. 运行测试是不是能够正常启动ANSYS以Interactive方式启动,设置工作目录为刚刚创建的UIDL目录,并设置初始工作名为uidl,启动ANSYS,这是ANSYS的GUI界面应该和默认情况下启动,只不过不同的是调用的UIDL控制文件是当前UIDL目录下的了(只不过两者内容相同而已)。3.3添加菜单:ANSYS的浮动根菜单名字叫MenuRoot,我们将在根菜单下添加一个菜
17、单项MyProject,点击这个菜单项自动调用MyProject子菜单。MyProject子菜单中我们将放入一个命令DoProject,点击这个命令,将进入我们的问题处理。1. 定制DoProject命令这里我们把DoProject命令的定义写入UIFUNC2.GRN中,编辑UIFUNC2.GRN文件,在其中两个结构块之间加入一个DoProject命令结构块::N Fnc_DoProject:S 86, 73, 6:T Cmd:A DoProject:D Lets goInp_P:E END当然这样一个结构块什么也不干,只是一个虚块,在以后的实例中我们将完成这个命令的功能。2. 定制MyPro
18、ject子菜单这一步中我们把MyProject子菜单的定制写入UIMENU.GRN中,编辑UIMENU。GRN文件,在其中两个结构块之间加入一个MyProject菜单结构块:N Men_MyProject:S 120, 88, 25:T Menu:A MyProject:D Optimize the structure-Optimize-Fnc_DoProject:E END这里-Optimize-是出现在菜单上的静态文本,Ansys对任何寻找不到定义的调用均当做静态文本处理。如果某子菜单中只有静态文本的话,Ansys一般情况下将不显示这个子菜单。3. 将MyProject子菜单加到根菜单下这
19、里我们再次编辑UIMENU.GRN文件,在MenuRoot菜单结构块中添加到MyProject的链接。最后UIMENU.GRN的MenuRoot菜单结构块定义类似如下写法::N MenuRoot:S 433, 76, 350:T Menu:A Main Menu:D ANSYS ROOT MENUMen_UVBA_Main_T1Men_UVBA_Main_T2Men_UVBA_Main_T3Fnc_PreferencesSep_Men_PreprocMen_SolutionMen_GenlPostMen_TimePostSep_Men_MyProjectSep_K_LN(alpha)Men_D
20、esOpt可见我们把Men_MyProject子菜单链接加入到基于时间历程后处理的菜单项后。当我们重新启动ANSYS时看到的主菜单应该如下图(a)所示,点击MyProject菜单项将出现图(b)的情形。(b)(a)3.4结束语上面我们看到了怎么在浮动菜单中简单添加自己定制子菜单的方法,但这个时候我们点击DoProject命令什么也不发生,因为我们在命令定制中就是这么设定的。以后我们将完善这个命令,让它逐渐强大起来。大家也许会问,既然定义的这个命令是空命令,那能不能索性不定义呢。答案应该是不可以,大家可以试一试删去UIFUNC2.GRN中DoProject函数的定义,当你点击根菜单中的MyPro
21、ject菜单链接,MyProject应该都不会弹出。第四章UIDL实例解析二(a)图1(b)Hr4.1问题描述:如图1(a)一所示,一带孔薄板,长4000mm,宽2000mm,顶部中心部分1800mm处承受42MP的压力,左右两个长圆孔中心分别踞四周1000mm,长圆孔的具体形式如图1(b)所示,上下分别为半圆,中部用直线衔接。这里假设长圆长轴与水平方向夹角为。为了使得孔边缘应力集中最小,这里拟调整的大小(-/2, /2),以便在固定的H情况下达到长圆孔周围应力集中最小。本章中,我们将仅仅限于UIDL部分完成这个问题,即实现如下功能:通过菜单和对话框,用户输入参数H的大小,我们让Ansys自动
22、生产整个分析模型。4.2环境准备及构建对话框:1. 基于上一个实验的环境,在/UIDL目录下构建一个输入脚本,这里我们权且称其为create.inp,该脚本能针对固定的r、H、来构建出分析模型。Create.inp脚本文件可以参看附录。图22. 在文件UIFUNC2.GRN中任意两个结构块之间添加函数DoProject的定义::N Fnc_DoProject:S 0, 0, 0:T Command:A Optimize My Project:D Please Input the Custom Information:C )*SET,My_H,150Inp_NoApplyCmd_)*Cset,1
23、,1 Fld_0 Typ_Lab Prm_Custom the Geographic Information Fld_2 Prm_Please Input the H for Analysis(100200)图3 Typ_INT Def_*PAR(MY_H)Cmd_)/GoCmd_)finiCmd_)/clearCmd_)*GET,My_H,CPAR,1Cmd_)/Input,create,inp:E END这里我们可以清晰的看到,在命令结构块中,:A命令后的说明将出现在调用该函数的菜单项中,如图2所示,:D命令后的说明将出现在我们定制的对话框标题上。几点说明:u 这里我们定制了一个对话框(无
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ANSYS 二次开发 29 word 资料
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内