我想看一级黄色大片_久久亚洲国产精品一区二区_久久精品免视看国产明星_91久久青青青国产免费

您的位置:網(wǎng)站首頁 > Ansys教程

ANSYS UIDL二次開發(fā)的使用特點

時間:2011-01-26 09:18:27 來源:未知

 本文介紹了ANSYS UIDL二次開發(fā)的使用特點相關(guān)內(nèi)容。

  UIDL是什么?Ansys二次開放語言的一種。UIDL的全名是User Interface Design Language,是Ansys中二次開發(fā)工具方面的三大金剛之一。GUI方面幾乎全部的二次開發(fā)功能都將由它運籌帷幄。

  功用:

  組織我們自己強大的菜單系統(tǒng)。想象一下我們在Ansys中也能輕松做出可以和VC,VB之類主流GUI開發(fā)工具媲美的菜單響應(yīng)效果,Ansys的世界將是多么的親切、友好。

  構(gòu)建功能繁復(fù)的對話框。Ansys中美觀易用的ContactWizard對話框級聯(lián)界面一定讓你印象很深把,有了它,即使是最菜鳥的門外漢也能構(gòu)建一流的工程算例,Ansys5.7中的DesignSpace應(yīng)該就是無可爭辯的例證之一。雖然從UNIX內(nèi)核上講(Windows下的東西是Ansys的后期移植,很多技術(shù)還不成熟,這里就不加討論了),它們多構(gòu)建在繁復(fù)的TCL編程基礎(chǔ)上,但我們利用強大的UIDL工具,也能輕松架構(gòu)起我們自己的實用對話框向?qū)А?/p>

  建立自己的聯(lián)機幫助

  Ansys中的聯(lián)機幫助(尤其是UNIX下的搜索引擎)非常實用,可以說是我所接觸過許多有限元平臺中最為好用的幾種幫助平臺之一。UNIX下的關(guān)鍵字查詢簡直是帥呆了,想構(gòu)建自己完善的幫助系統(tǒng)嗎?UIDL同樣是這方面不可或缺的理想開發(fā)工具。

  UIDL控制文件總結(jié)構(gòu)

  一個完整的UIDL控制文件大致如一下結(jié)構(gòu):

  控制文件頭

  結(jié)構(gòu)塊結(jié)構(gòu)

  ……………

  說明:

  任何一個UIDL控制文件開頭都是一個控制文件頭,其后接一個或多個結(jié)構(gòu)塊結(jié)構(gòu)。

  控制文件頭結(jié)構(gòu)

  一個典型的控制文件頭如下所示:

  ---------------------------------------------------------------------------------------------

  :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 description,description是對本文件的一些說明。注意到description中有時能帶%E%擴展,但只有當(dāng)你擁有類似SCCS的系統(tǒng)(含一源碼控制系統(tǒng)),ANSYS才能有效的進行%E%擴展,否則請手動把這些說明替代%E%寫入description中。

  3.控制文件第三行必須有:I 0, 0, 0,各個0必須出現(xiàn)在第9、18、27行。用戶只需要在這些位置填入0,ANSYS在調(diào)用該文件后會自動在這些位置填入GUI界面的位置信息。

  4.:!這一行通常是用來在UIDL控制文件中做分隔標(biāo)記的,可有可無,這里用來分隔控制文件頭和結(jié)構(gòu)塊結(jié)構(gòu),建議在控制文件頭和結(jié)構(gòu)文件塊之間,以及各個控制文件塊之間都加一行:!加以間隔。

  結(jié)構(gòu)塊結(jié)構(gòu)

  結(jié)構(gòu)塊結(jié)構(gòu)是一個UIDL控制文件的核心,它涵蓋了菜單信息,命令信息,以及幫助文件信息,按照其不同的類型可劃分為菜單結(jié)構(gòu)塊,命令結(jié)構(gòu)塊和幫助結(jié)構(gòu)塊。一般來說函數(shù)結(jié)構(gòu)塊還都伴隨著構(gòu)建一個對話框結(jié)構(gòu)。

  1.結(jié)構(gòu)塊結(jié)構(gòu)基本框架

  麻雀雖小,五臟俱全,讓我們先看一看結(jié)構(gòu)塊的基本結(jié)構(gòu):

  頭部分

  數(shù)據(jù)控制部分

  尾部分

  2.例子說明

  這里基于一個菜單結(jié)構(gòu)塊描述一下這些基本結(jié)構(gòu)的細(xì)節(jié),讓大家有一個感性認(rèn)識:

  --------------------------------------------------------------------------------------

  頭部分

  :N Men_Add

  :S 0, 0, 0

  :T Menu

  :A Add

  :C

  :D Add

  數(shù)據(jù)控制部分

  Fnc_VADD

  Fnc_AADD

  Fnc_LCOMB

  尾部分

  :E END

  分隔

  :!

  ----------------------------------------------------------------------------------------

  幾點說明:

  ?

  頭部分

  :N行定義一唯一的結(jié)構(gòu)控制塊名。

  :行定義結(jié)構(gòu)控制塊位置信息。用戶只需在第9、16、23行輸入0即可,ANSYS在調(diào)用該文件中將自動為這些域填入合適的值。

  :T行定義該結(jié)構(gòu)控制塊的類型,可選類型有Menu、Cmd或者Help。

  :A行對不同類型的結(jié)構(gòu)控制塊有不同的功用,在Menu塊中通常用來定義出現(xiàn)在GUI菜單上的名字。

  :D行通常用來描述該結(jié)構(gòu)塊的信息。

  頭部分中還可以帶許多其他命令,例如ANSYS內(nèi)部命令等,這里就不詳述了,我們將在例子中看到其具體用法。

  數(shù)據(jù)控制部分

  數(shù)據(jù)控制部分根據(jù)不同的結(jié)構(gòu)控制塊有不同的寫法,但必須至少有一個數(shù)據(jù)控制行。例如在菜單結(jié)構(gòu)塊中我們可以在其中使用Men_String來調(diào)用其他菜單項,還可以使用Fnc_String命令調(diào)用一些命令。String對應(yīng)于特定的菜單名部分或者命令名部分。其他具體細(xì)節(jié)這里就不詳述了。我們將在具體實例中看到他們是如何構(gòu)建實現(xiàn)的。

  尾部分

  :E END標(biāo)志著一個結(jié)構(gòu)塊的結(jié)束。

  分隔(可選)

  一般說來,我們將在結(jié)構(gòu)塊和結(jié)構(gòu)塊之間加入:!來間隔(可選)。

  Ansys調(diào)用UIDL的過程

  ANSYS在調(diào)用GUI界面時會自動調(diào)用menulist55.ans文件,該文件中描述了UIDL前處理器到哪里去尋找UIDL控制文件。ANSYS在其docu/目錄中有一個基本的menulist55.ans文件和對應(yīng)的基本UIDL控制文件。默認(rèn)情況下,ANSYS就調(diào)用這一menulist55.ans文件。

  下面是這一基本menulist55.ans文件的內(nèi)容:

  ----------------------------------------------------------

  /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系統(tǒng)將默認(rèn)調(diào)用對應(yīng)的基本UIDL控制文件。

  由此,我們可以產(chǎn)生一個想法:只要我們改變這一基本menulist55.ans中的指定,就能使用我們自己的UIDL控制文件。

  但其實我們有更加好的方法,一般來說我們不建議改變系統(tǒng)ansys55目錄里任何文件內(nèi)容,以避免不必要的失誤。ANSYS本身在調(diào)用menulist55.ans文件的方式上就提供了便于進行UIDL開發(fā)的機制:

  通常ANSYS按照以下順序?qū)ふ襪enulist55.ans文件: 用戶工作目錄(可以在Interactive啟動方式中設(shè)定)->用戶根目錄->/ansys/docu目錄,可見只要我們在用戶工作目錄中編輯自己的menulist55.ans文件,ANSYS將優(yōu)先使用我們自己的menulist55.ans文件。如果生成了自己的UIDL控制文件,并在我們自己的menulist55.ans文件中指向它們,我們就能實現(xiàn)對UIDL的全控制。

  最后要指出的是,UIDL前處理器在處理UIDL控制文件后,將自動在:I行(控制文件頭部分)和:S行(結(jié)構(gòu)塊的頭部分)中填入相應(yīng)的位置信息,并在整個文件最后寫入一系列:X行(索引行)。