本文介紹了ANSYS UIDL二次開發的使用特點相關內容。
UIDL是什么?Ansys二次開放語言的一種。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同樣是這方面不可或缺的理想開發工具。
UIDL控制文件總結構
一個完整的UIDL控制文件大致如一下結構:
控制文件頭
結構塊結構
……………
說明:
任何一個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 description,description是對本文件的一些說明。注意到description中有時能帶%E%擴展,但只有當你擁有類似SCCS的系統(含一源碼控制系統),ANSYS才能有效的進行%E%擴展,否則請手動把這些說明替代%E%寫入description中。
3.控制文件第三行必須有:I 0, 0, 0,各個0必須出現在第9、18、27行。用戶只需要在這些位置填入0,ANSYS在調用該文件后會自動在這些位置填入GUI界面的位置信息。
4.:!這一行通常是用來在UIDL控制文件中做分隔標記的,可有可無,這里用來分隔控制文件頭和結構塊結構,建議在控制文件頭和結構文件塊之間,以及各個控制文件塊之間都加一行:!加以間隔。
結構塊結構
結構塊結構是一個UIDL控制文件的核心,它涵蓋了菜單信息,命令信息,以及幫助文件信息,按照其不同的類型可劃分為菜單結構塊,命令結構塊和幫助結構塊。一般來說函數結構塊還都伴隨著構建一個對話框結構。
1.結構塊結構基本框架
麻雀雖小,五臟俱全,讓我們先看一看結構塊的基本結構:
頭部分
數據控制部分
尾部分
2.例子說明
這里基于一個菜單結構塊描述一下這些基本結構的細節,讓大家有一個感性認識:
--------------------------------------------------------------------------------------
頭部分
:N Men_Add
:S 0, 0, 0
:T Menu
:A Add
:C
:D Add
數據控制部分
Fnc_VADD
Fnc_AADD
Fnc_LCOMB
尾部分
:E END
分隔
:!
----------------------------------------------------------------------------------------
幾點說明:
?
頭部分
:N行定義一唯一的結構控制塊名。
:行定義結構控制塊位置信息。用戶只需在第9、16、23行輸入0即可,ANSYS在調用該文件中將自動為這些域填入合適的值。
:T行定義該結構控制塊的類型,可選類型有Menu、Cmd或者Help。
:A行對不同類型的結構控制塊有不同的功用,在Menu塊中通常用來定義出現在GUI菜單上的名字。
:D行通常用來描述該結構塊的信息。
頭部分中還可以帶許多其他命令,例如ANSYS內部命令等,這里就不詳述了,我們將在例子中看到其具體用法。
數據控制部分
數據控制部分根據不同的結構控制塊有不同的寫法,但必須至少有一個數據控制行。例如在菜單結構塊中我們可以在其中使用Men_String來調用其他菜單項,還可以使用Fnc_String命令調用一些命令。String對應于特定的菜單名部分或者命令名部分。其他具體細節這里就不詳述了。我們將在具體實例中看到他們是如何構建實現的。
尾部分
:E END標志著一個結構塊的結束。
分隔(可選)
一般說來,我們將在結構塊和結構塊之間加入:!來間隔(可選)。
Ansys調用UIDL的過程
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控制文件后,將自動在:I行(控制文件頭部分)和:S行(結構塊的頭部分)中填入相應的位置信息,并在整個文件最后寫入一系列:X行(索引行)。
相關文章
- 2021-09-08BIM技術叢書Revit軟件應用系列Autodesk Revit族詳解 [
- 2021-09-08全國專業技術人員計算機應用能力考試用書 AutoCAD2004
- 2021-08-30從零開始AutoCAD 2014中文版機械制圖基礎培訓教程 [李
- 2021-08-30從零開始AutoCAD 2014中文版建筑制圖基礎培訓教程 [朱
- 2021-08-30電氣CAD實例教程AutoCAD 2010中文版 [左昉 等編著] 20
- 2021-08-30電影風暴2:Maya影像實拍與三維合成攻略PDF下載
- 2021-08-30高等院校藝術設計案例教程中文版AutoCAD 建筑設計案例
- 2021-08-29環境藝術制圖AutoCAD [徐幼光 編著] 2013年PDF下載
- 2021-08-29機械AutoCAD 項目教程 第3版 [繆希偉 主編] 2012年PDF
- 2021-08-29機械制圖與AutoCAD [李志明 主編] 2014年PDF下載