2022年ANSYS二次開發(fā)教案資料_第1頁
2022年ANSYS二次開發(fā)教案資料_第2頁
2022年ANSYS二次開發(fā)教案資料_第3頁
2022年ANSYS二次開發(fā)教案資料_第4頁
2022年ANSYS二次開發(fā)教案資料_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、ANSYS 二 次 開 發(fā)ANSYS 二次開發(fā)手冊UIDL 解析APDL 解析目錄其次章 解析 UIDL 篇. 12.1 結(jié)識 UIDL . 1 2.2 看看 UIDL 的模樣 . 22.3 Ansys調(diào)用 UIDL 的過程 . 6第三章 UIDL 實例解析一 . 93.1 問題描述: . 93.2 環(huán)境預備: . 93.3 添加菜單: . 10 3.4 終止語 . 14第四章 UIDL 實例解析二 . 154.1 問題描述: . 154.2 環(huán)境預備及構(gòu)建對話框:. 164.3 參數(shù)提取雜談 . 19 4.4 終止語 . 20 附錄 . 20第五章 UIDL 實例解析三 . 235.1 問題

2、描述 . 235.2 環(huán)境預備及構(gòu)建聯(lián)機幫忙:. 245.3 幾點說明 . 28 5.4 終止語 . 29第六章 解析 APDL . 306.1 熟識新伴侶 APDL . 306.2 二次開發(fā)工具之間的比較. 306.3 終止語 . 31第七章 APDL 綜合實例 . 327.1 問題說明 . 32 7.2 解題思想 . 33 7.3 構(gòu)建步驟 . 34 7.4 幾點說明 . 40 7.5 終止語 . 40其次章 解析 UIDL 篇 2.1 結(jié)識 UIDL UIDL 是什么 .Ansys二次開放語言的一種;OK,那么它能帶給我們什么?很多很多,假如你想讓你在 Ansys 中制作的用戶界面具有專

3、業(yè)水準的話,請來結(jié)識一下我們的 UIDL 把;全稱 : UIDL 的全名是 User Interface Design Language,是 Ansys中二次開發(fā)工具方面的三大金剛之一;將由它運籌帷幄;功用 : GUI 方面幾乎全部的二次開發(fā)功能都組織我們自己強大的菜單系統(tǒng);想象一下我們在 Ansys 中也能輕松做出可以和 VC,VB 之類主流 GUI 開發(fā)工具媲美的菜單響應 成效, Ansys 的世界將是多么的親切、友好;構(gòu)建功能繁復的對話框; Ansys中美觀易用的 ContactWizard 對話 框級聯(lián)界面肯定讓你印象很深把,有了它,即使是最菜鳥的門外漢也能構(gòu)建一流的工程算例,Ansy

4、s5.7中的 DesignSpace應當就是無可爭論的例證之一;雖然從 UNIX 內(nèi)核上講( Windows 下的東西是 Ansys的后期移植,很多技術(shù)仍不成熟,這里就不加爭論了),它們多構(gòu)建在繁復的TCL 編程基礎上,但我們利用強大的 UIDL 工具,也能輕松架構(gòu)起我們自己的有用對話框向?qū)В唤⒆约旱穆?lián)機幫忙Ansys中的聯(lián)機幫忙(特別是UNIX 下的搜尋引擎)特別有用,可以說是我所接觸過很多有限元平臺中最為好用的幾種幫忙平臺 之一; UNIX 下的關鍵字查詢簡直是帥呆了,想構(gòu)建自己完善的 幫忙系統(tǒng)嗎? UIDL 同樣是這方面不行或缺的抱負開發(fā)工具;2.2 看看 UIDL 的模樣熟識了這位

5、Ansys 二次開發(fā)中的大俠了巴,現(xiàn)在我們就來進一步和它 溝通溝通,把我們的感性熟識上升到理性層次中;2.2.1 UIDL 掌握文件總結(jié)構(gòu) 一個完整的 UIDL 掌握文件大致如一下結(jié)構(gòu):掌握文件頭結(jié)構(gòu)塊結(jié)構(gòu) 說明:任何一個 UIDL 掌握文件開頭都是一個掌握文件頭,其后接一個或多 個結(jié)構(gòu)塊結(jié)構(gòu);2.2.2 掌握文件頭結(jié)構(gòu)為防止鄙人在這里滔滔不絕,而讀者在臺下不知所云的尷尬,我們在以后的講解中都將從一些典型結(jié)構(gòu)例子入手,剖析清晰其各個部分的詳細結(jié)構(gòu),當然這里從例子入手的剖析手段只能做到拋磚引玉,要想熟識的明白各個命令的具體信息,請參閱 UIDL 手冊:一個典型的掌握文件頭如下所示:- :F UI

6、MENU.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的系統(tǒng)(含一源碼掌握系統(tǒng)),ANSYS 才能 有效的進行%E%擴展,否就請手動把這些說明替代 中;%E%寫入 descr

7、iption3. 掌握文件第三行必需有 :I 0, 0, 0,各個 0 必需顯現(xiàn)在第9、18、27 行;用戶只需要在這些位置填入0,ANSYS 在調(diào)用該文件后會自動在這些位置填入 GUI 界面的位置信息;4.:.這一行通常是用來在UIDL 掌握文件中做分隔標記的,可有可無,這里用來分隔掌握文件頭和結(jié)構(gòu)塊結(jié)構(gòu),建議在掌握文件頭和結(jié)構(gòu)文件塊之間,以及各個掌握文件塊之間都加一行 :. 加以間隔;2.2.3 結(jié)構(gòu)塊結(jié)構(gòu)結(jié)構(gòu)塊結(jié)構(gòu)是一個UIDL 掌握文件的核心,它涵蓋了菜單信息,命令信息,以及幫忙文件信息,依據(jù)其不同的類型可劃分為菜單結(jié)構(gòu)塊,命 令結(jié)構(gòu)塊和幫忙結(jié)構(gòu)塊;一般來說函數(shù)結(jié)構(gòu)塊仍都相伴著構(gòu)建一個

8、對話 框結(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)的細節(jié),讓大家有 一個感性熟識:- 頭部分 :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)掌握塊名;:S 行定義結(jié)構(gòu)掌握塊位置信息;用戶只需在第 9、16、23 行輸入 0 即可, ANSYS 在調(diào)用該文件中將自動為這些域填入

9、合適的值;: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 對應于特定的菜單名部 分或者命

10、令名部分;其他具體細節(jié)這里就不詳述了;我們將 在具體實例中看到他們是如何構(gòu)建實現(xiàn)的;尾部分 :E END 標志著一個結(jié)構(gòu)塊的終止;分隔(可選)一般說來,我們將在結(jié)構(gòu)塊和結(jié)構(gòu)塊之間加入 :. 來間隔(可選);2.3 Ansys 調(diào)用 UIDL 的過程上面我們已經(jīng)熟識了整個UIDL 掌握文件的結(jié)構(gòu),惋惜我們?nèi)允强沼形淦?鮮有用武之地, Ansys 究竟是怎么使用 UIDL 的呢?搞清晰這一點,我們才能夠游刃有余的掌握整個GUI 界面的定制,在這部分里我們將描述一下 Ansys 掌握 UIDL 文件的過程;下面的一些設置情形都是基于工作站版本的ANSYS5.5,其他版本的ANSYS 的設置處理也類似

11、,這里就不加贅述了;ANSYS 在調(diào)用 GUI 界面時會自動調(diào)用menulist55.ans文件,該文件中描述了 UIDL 前處理器到哪里去查找 UIDL 掌握文件; ANSYS 在其 docu/目錄中有一個基本的 menulist55.ans文件和對應的基本 UIDL 掌握文件;默認情形下, ANSYS 就調(diào)用這一 menulist55.ans文件;下面是這一基本 menulist55.ans文件的內(nèi)容:- /ansys55/docu/UIMENU.GRN /ansys55/docu/UIFUNC1.GRN /ansys55/docu/UIFUNC2.GRN /ansys55/docu/UI

12、CMDS.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)將默認調(diào)用對應的基本 UIDL 掌握文件;由此,我們

13、可以產(chǎn)生一個想法:只要我們轉(zhuǎn)變這一基本 menulist55.ans中的指定,就能使用我們自己的UIDL 掌握文件;但其實我們有更加好的方法,一般來說我們不建議轉(zhuǎn)變系統(tǒng) ansys55目錄里任何文件內(nèi)容,以防止不必要的失誤;ANSYS 本身在調(diào)用menulist55.ans文件的方式上就供應了便于進行 UIDL 開發(fā)的機制:通常 ANSYS 依據(jù)以下次序查找menulist55.ans文件 : 用戶工作目錄(可以在 Interactive啟動方式中設定) -用戶根目錄 -/ansys/docu目錄,可見只要我們在用戶工作目錄中編輯自己的menulist55.ans文件, ANSYS 將優(yōu)先使用

14、我們自己的 menulist55.ans文件;假如生成了自己的 UIDL 掌握文件,并在我們自己的 menulist55.ans文件中指向它們,我們就能實現(xiàn)對 UIDL 的全掌握;以后的實例中我們將看到通用的UIDL 開發(fā)過程;最終要指出的是, UIDL 前處理器在處理 UIDL 掌握文件后,將自動 在:I 行掌握文件頭部分 和 :S 行(結(jié)構(gòu)塊的頭部分)中填入相應的位置信息,并在整個文件最終寫入一系列:X 行(索引行);第三章 UIDL 實例解析一3.1 問題描述:任何一個級聯(lián)菜單的最底級總是調(diào)用命令,在這個實例里我們試著添加一個菜單聯(lián)結(jié),指向一個我們自己構(gòu)建的命令;這個命令的構(gòu)建方式我們將

15、在實例二中給出;為便利起見,我們將在主菜單下添加一個 MyProject 菜單項,調(diào)用 MyProject 子菜單; MyProject 子菜單中含有一個 DoProject 命令,該命令對一個實際問題進行優(yōu)化設計,我們將在以后的實例中實現(xiàn)它;3.2 環(huán)境預備:1.配置好 ANSYS 環(huán)境,這里略過;UIDL 2.在當前用戶目錄下建立一個子目錄- %mkdir /UIDL - 3. 拷貝相應文件進入該子目錄- %cp /ansys55/docu/menulist55.ans . %cp /ansys55/docu/UIMENU.GRN . %cp /ansys55/docu/UIFUNC1.G

16、RN . %cp /ansys55/docu/UIFUNC2.GRN . - 4.編輯該子目錄下文件menulist55.ans 前面我們已經(jīng)看到了這個基本menulist55.ans的內(nèi)容,這里我們想使用自己的 UIDL 掌握文件,而不用默認目錄 /ansys55/docu下的UIDL 掌握文件,因此我們把該文件修改成如下內(nèi)容:- ./UIMENU.GRN ./UIFUNC1.GRN ./UIFUNC2.GRN /ansys55/docu/UICMDS.HLP /ansys55/docu/UICMDS.HPS /ansys55/docu/UIELEM.HLP /ansys55/docu/UI

17、ELEM.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 UIDL 目錄,并以 Interactive 方式啟動,設置工作目錄為剛剛創(chuàng)建的設置初始工作名為uidl,啟動 ANSYS ,這是 ANSYS 的 GUI 界面應該和默認情形下啟動,只不過不同的是調(diào)用的 UIDL 掌握文件是當前UIDL

18、 目錄下的了(只不過兩者內(nèi)容相同而已);3.3 添加菜單:ANSYS 的浮動根菜單名字叫MenuRoot,我們將在根菜單下添加一個菜單項 MyProject,點擊這個菜單項自動調(diào)用 MyProject 子菜單; MyProject子菜單中我們將放入一個命令 處理;1. 定制 DoProject 命令DoProject,點擊這個命令,將進入我們的問題這里我們把 DoProject 命令的定義寫入 UIFUNC2.GRN 中,編輯UIFUNC2.GRN 文件,在其中兩個結(jié)構(gòu)塊之間加入一個 DoProject 命令結(jié)構(gòu)塊:- :N Fnc_DoProject :S 86, 73, 6 :T Cmd

19、:A DoProject :D Lets go Inp_P :E END :. - 當然這樣一個結(jié)構(gòu)塊什么也不干,只是一個虛塊,在以后的實例中我們將完成這個命令的功能;2.定制 MyProject 子菜單UIMENU.GRN這一步中我們把 MyProject 子菜單的定制寫入中,編輯 UIMENU ;GRN 文件,在其中兩個結(jié)構(gòu)塊之間加入一個MyProject 菜單結(jié)構(gòu)塊 : - :N Men_MyProject :S 120, 88, 25 :T Menu :A MyProject :D Optimize the structure -Optimize- Fnc_DoProject :E E

20、ND :. - 這里-Optimize-是顯現(xiàn)在菜單上的靜態(tài)文本,Ansys 對任何查找不到定義的調(diào)用均當做靜態(tài)文本處理;假如某子菜單中只有靜態(tài)文本的話, Ansys 一般情形下將不顯示這個子菜單;3. 將 MyProject 子菜單加到根菜單下這里我們再次編輯UIMENU.GRN 文件,在 MenuRoot 菜單結(jié)構(gòu)塊中添加到 MyProject 的鏈接;最終 UIMENU.GRN 的 MenuRoot 菜單結(jié)構(gòu)塊定義類似如下寫法:- :N MenuRoot :S 433, 76, 350 :T Menu :A Main Menu :D ANSYS ROOT MENU Men_UVBA_Ma

21、in_T1 Men_UVBA_Main_T2 Men_UVBA_Main_T3 Fnc_Preferences Sep_ Men_Preproc Men_Solution Men_GenlPost Men_TimePost Sep_ Men_MyProject Sep_ K_LNalpha Men_DesOpt - 可見我們把 Men_MyProject 子菜單鏈接加入到基于時間歷程后處理的菜單項后;當我們重新啟動ANSYS 時看到的主菜單應當如下圖(a)所示,點擊 MyProject 菜單項將顯現(xiàn)圖( b)的情形;(a)(b)3.4 終止語上面我們看到了怎么在浮動菜單中簡潔添加自己定制子菜單

22、的方法,但這個時候我們點擊 DoProject 命令什么也不發(fā)生,由于我們在命令定制 中就是這么設定的;以后我們將完善這個命令,讓它逐步強大起來;大家或許會問,既然定義的這個命令是空命令,那能不能干脆不定義呢;答案應當是不行以,大家可以試一試刪去 DoProject函數(shù)的定義,當你點擊根菜單中的 MyProject 應當都不會彈出;UIFUNC2.GRN 中 MyProject 菜單鏈接,第四章 UIDL 實例解析二4.1 問題描述:r H 圖a b 如圖 1a一所示,一帶孔薄板,長4000mm,寬 2000mm,頂部中心部分 1800mm 處承擔 42MP 的壓力,左右兩個長圓孔中心分別踞四

23、周 1000mm,長圓孔的具體形式如圖1b所示,上下分別為半圓,中部用直線連接;這里假設長圓長軸與水平方向夾角為 ;為了使得孔邊緣應力集中最小,這里擬調(diào)整 的大?。?- /2, /2 ), 以便在固定的 H情形下達到長圓孔四周應力集中最??;本章中,我們將僅僅限于UIDL 部分完成這個問題,即實現(xiàn)如下功能:通過菜單和對話框,用戶輸入?yún)?shù) H 的大小,我們讓 Ansys自動生產(chǎn)整個分析模型;4.2 環(huán)境預備及構(gòu)建對話框:1. 基于上一個試驗的環(huán)境,在 /UIDL 目錄下構(gòu)建一個輸入腳本,這里我們權(quán)且稱其為 create.inp,該腳本能針對固定的 r、H、 來構(gòu)建出分析模型; Create.inp

24、腳本文件可以參看附錄;2.在文件 UIFUNC2.GRN 中任意兩個結(jié)構(gòu)塊之間添加函數(shù)DoProject 的定義:- :N Fnc_DoProject :S 0, 0, 0 圖 2 :T Command :A Optimize My Project :D Please Input the Custom Information :C *SET ,My_H ,150 Inp_NoApply Cmd_*Cset,1,1 Fld_0 Typ_Lab Prm_Custom the Geographic Information Fld_2 Prm_ Please Input the H for Analy

25、sis100200 Typ_INT Def_*PAR (MY_H )Cmd_/Go Cmd_fini Cmd_/clear Cmd_*GET,My_H,CPAR,1 Cmd_/Input,create,inp :E END :. - 圖 3 這里我們可以清晰的看到,在命令結(jié)構(gòu)塊中,:A 命令后的說明將顯現(xiàn)在調(diào)用該函數(shù)的菜單項中,如圖 現(xiàn)在我們定制的對話框標題上;幾點說明:2 所示, :D 命令后的說明將出這里我們定制了一個對話框(無拾取點線等的功能),在任 何一個自定義的對話框中,至少應當有一個 Typ_命令,但不 能有 Inp_P 命令;本對話框由于比較簡潔,不需要Apply 按鈕(該按鈕多

26、用來處理復雜輸入,動態(tài)刷新功能),因此我們設定為 Inp_NoApply 命令;下面的 Fld_0,Fld_2 什么的都是一個個對話框域;不同的數(shù) 據(jù)輸入域,比方說:輸入框、多項框、列表框的都必需有獨 立的域號,象本例中一個數(shù)值輸入框域代號為 2;但全部靜態(tài)文本都可以寫在Fld_0 域內(nèi),由于不會顯現(xiàn)我們調(diào)用時的沖突;這里,我們的 Fld_0 域內(nèi)是 Typ_Lab 的靜態(tài)文本,內(nèi) 容書寫在 Prm_后; Fld_2 域是一個整數(shù)輸入對話框域(Typ_INT ),前面 Prm_后有一段文字說明,并設定默認值(Def_);下面的幾行 Cmd_后跟的都是針對這一數(shù)值輸入域處理的 Ansys 命令,

27、主要功能是先清數(shù)據(jù)庫,再取到域 2 內(nèi)用戶輸 入的 H 參 數(shù)值,然后進行 基于 該參數(shù)的模型構(gòu)建;3. 輸出結(jié)果:這是 =/4 ,H150 情形下自動生成的幾何模型;雖然例子比較簡潔,但我們從中可以把握一種GUI 定制參數(shù)并運用到腳本建模中的技巧,把握了這種技巧,我們就不難輕松的構(gòu)建各種更加復雜的模 型;4.3 參數(shù)提取雜談上面我們看到了一種比較簡潔有效的對話框參數(shù)提取、傳遞的技巧,其實在 Ansys 中參數(shù)的提取有好些方法;通常的用戶命令中 比方說設定實常數(shù)等 ,Ansys 中由于有固定的命 令與其對應,在 GUI 函數(shù)命令中 Ansys是這樣定制的,在對話框起始處給出一個 Cmd_R 命

28、令這里以提取實常數(shù)命令 Fld_2、Fld_3 等域 Ansys 將自動拾取之并對應R 為例 ,其后對應的 R 命令的其次個參數(shù)、第三個參數(shù)等;但我們初學二次開發(fā)時不行能擁有自己的命令,因此這里我們棄而不用;等以后我們學習了UPF 二次開發(fā)工具,能夠定制自己的命令后,我們再來回憶一下這種參數(shù)話方法;這里我們使用的是CSET 命令和 CPAR 命令,也是一種比較簡潔有效的方式;命令結(jié)構(gòu)塊頭部分我們用 :C *SET,My_H,150 命令在環(huán)境中設定 一變量 My_H ,初值為 150,并用 Def_*PAR (MY_H )命令指定為數(shù)值 域的初值;然后用 Cmd_*CSET,1,1 命令把第一

29、個數(shù)值域的內(nèi)容指定儲備 到*CSET 命令對應的一矢量數(shù)值中,其次在數(shù)值域中指定用 Cmd_*GET,My_H,CPAR,1 命令讓參數(shù) My_H 再把用戶輸入的數(shù)值域內(nèi)容從該矢量數(shù)組中讀回來,這樣我們就有了一個用戶輸入的參數(shù)值 My_H ,最終就可以直接調(diào)用腳本文件,生成需要得到的參數(shù)化建模結(jié) 果;在 UIFUNC2.GRN中我們?nèi)钥梢钥吹狡渌恍﹨?shù)化提取方式,比如說利用系統(tǒng)參數(shù) _z1_z9 ,用命令*GET,PAR,CMD,0,FIELD,2來拾取命令中域 2 中的內(nèi)容到自己設定的參數(shù)中;以后我們可以對各種方法都練練手,這里就不再贅述了;4.4 終止語上面我們用 UIDL 對話框的技術(shù)

30、輕松實現(xiàn)了有用戶化界面的參數(shù)化建模,在以后的例子中我們將對這個實例進行完善,并融入 APDL 和 UPF的內(nèi)容;附錄create.inp清單:- .This is a script which can create the modal with a parameter sita. .Clear the workspace .fini ./clear,nostart .Setup the Parameters PI=4*atan1 sita=PI/4 r=200 .H=150 H=My_H .Customize the Material Property keyw,pr_struc,1 /pre

31、p7 et,1,shell63 r,1,120,120,120,120 uimp,1,ex,dens,nuxy,2400,1.2,0.375 .Modeling .Create plate k,1,0,0 k,2,2000,0 k,3,2000,2000 k,4,0,2000 k,5,1800,0 k,6,1000,1000 l,1,5 l,5,2 l,2,3 l,3,4 l,4,1 al,1,2,3,4,5 .Create hole .Create my coordinate k,7,1000+H*cossita,1000+H*sinsita k,10,1000+H*cossita,1000

32、+H*sinsita,100 k,8,1000+r*cossita+PI/2,1000+r*sinsita+PI/2 cskp,11,0,6,7,8 csys,11 .Create Hole k,9,H,r l,7,9 l,7,6 adrag,6,7 arotat,6,7,10,-90 arsys,y,2,3,1 arsym,x,2,5,1 aadd,2,3,4,5,6,7,8,9 asba,1,10 - 第五章 UIDL 實例解析三 5.1 問題描述本章我們我們將描述 助文檔;UIDL 的最終一個功能構(gòu)建我們自己的聯(lián)機幫誠然聯(lián)機幫忙在一般的開發(fā)過程中有點無足輕重,但假如你想讓你的工作更 加完

33、善、更加專業(yè)的話,建立起自己強大的幫忙系統(tǒng)是必不行少的,這一個 實例中我們將對 UIDL 實例二構(gòu)建我們自己的聯(lián)機幫忙文檔;構(gòu)建完聯(lián)機幫 助文檔后,在菜單中點擊 DoProject 菜單項將顯示如下對話框:看到了把,現(xiàn)在這個對話框中增加了一個 按鈕看看成效把,顯示結(jié)果如下:Help 按鈕,點擊這個 Help這里的文字可以任意,輕松寫入任何泥想寫入的幫忙信息巴;下面我 們就具體的說明如何建立這樣的一個聯(lián)機幫忙;5.2 環(huán)境預備及構(gòu)建聯(lián)機幫忙:Ansys 中的聯(lián)機幫忙一般有三種形式:ASCII 形式, ZBitmap 形式,PostScript形式; PostScript形式的聯(lián)機幫忙多是在 Un

34、ix 下和打印功能有關的,我們這里就不加詳述了;ZBitmap 形式的聯(lián)機文檔應當是功能最強大的,應當類似于 Windows 下的 PDF 格式幫忙文檔把,可以在幫忙文檔中有 圖形或者文字的超級鏈接,構(gòu)建這樣的幫忙文件我們得需要構(gòu)建 744pixels925pixels 的 XWD 格式圖像, xwd 格式是 UNIX 中用 xwd 工具抓圖所得的一 種圖像格式,惋惜的是這里我們嶄時缺少這樣能夠生成固定尺寸格式的 XWD 圖像文件的工具,所以這里我們也不預備認真對它的構(gòu)建方法進行描述(你可以試驗用任意尺寸的XWD 格式構(gòu)建 ZBitmap 格式的幫忙文檔,正常情形下 Ansys 系統(tǒng)應當不加顯

35、示任何圖片);這里我們在上一個實例的基礎上描述一下如何建立 ASCII 形式的幫忙 文檔;1.在 Unix 下,構(gòu)建你的幫忙文檔文字信息,把它存成文件hlp_other2: ZengP Work Group This Project is designed by Heling. Enjoy it. 2. 檢查 hlp_other2 文件字節(jié)數(shù):Unix 下可以用命令 ls hlp_other2或者 wc c hlp_other2命令查看該文3.件的字節(jié)數(shù),這里得出的字節(jié)數(shù)為63 hlp_other1 構(gòu)建幫忙文件的數(shù)據(jù)掌握部分,把它存成Customized Help Hlp_ Hlp_ ASC

36、II 63 END_OF_HYPERLINKS 這里的數(shù)據(jù)掌握部分是有固定格式的,第一行表示幫忙對話框的標題;其次行和第三行是描述該幫忙文件的前端鏈接和后端鏈接;這里由于是我們自己定義的幫忙文檔,沒有前端鏈接和后端鏈接,因此我們都把它寫成 Hlp_就可以了,第四行是描述幫忙文件格式、字節(jié)信息的,這里我們是ASCII 格式,字節(jié)數(shù)是上一步中得到的字節(jié)數(shù)63(對 ZBitmap 格式后面需要供應壓縮后字節(jié)數(shù)和壓縮前字節(jié)數(shù)兩個信息,具體做法請自己參看UIDL 幫忙手冊);以下到最終一行的END_OF_HYPERLINKS 之間是定義幫忙文檔之間超級鏈接的,由于我們這里是做 ASCII 的幫忙信息,不

37、是 任何超級鏈接需要定義;ZBitmap 格式的,因此沒有4. 把 hlp_other1 和 hlp_other2 合成一個文件 hlp_other %cat hlp_other1 hlp_other2 hlp_other 5. 檢查一下文件 hlp_other 的字節(jié)數(shù)%wc c hlp_other 6.這個例子中得到的字節(jié)數(shù)是116 head_other: 構(gòu)建幫忙文件的頭信息,把它儲備為:N Hlp_0_Contents :S 0, 0, 0 :T HELP 116 7. 構(gòu)建幫忙文件尾信息 ,把它儲備為 end: :E End 8.構(gòu)建幫忙文件的掌握文件頭,把它儲備為control_o

38、ther: :F OTHER.HLP :D Modified on 1/17 :I 0, 0, 0 :. 9.構(gòu)建總的幫忙文件OTHER.HLP cat control_other head_other hlp_other end OTHER.HLP 10. 把我們構(gòu)建好的幫忙文件OTHER.HLP 加入 menulist55.ans中去;最終 menulist55.ans顯示內(nèi)容如下:./UIMENU.GRN ./UIFUNC1.GRN ./UIFUNC2.GRN /ansys55/docu/UICMDS.HLP /ansys55/docu/UICMDS.HPS /ansys55/docu/

39、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 ./OTHER.HLP 11. 在我們的函數(shù)定義DoProject 中加入聯(lián)機幫忙信息 . 編輯 UIFUNC2.GRN 中的 DoProject 函數(shù)定義,由于我們定制的幫忙 文件名為 Hlp_0_Contents,我們把它加

40、入到函數(shù)定義中去,編輯完后 該函數(shù)定義內(nèi)容結(jié)果如下::N Fnc_DoProject :S 396, 147, 242 :T Command :A Optimize my Project :D Please Input Custom Information :C *Set,My_H,150 :H Hlp_0_Contents Inp_NoApply Cmd_*Cset,1,1 Fld_0 Typ_Lab Prm_Custom the Geographic Information Fld_2 Prm_ Please Input the H for Analysis100200 Typ_INT D

41、ef_*PARMy_H Cmd_/Go Cmd_fini Cmd_/clear Cmd_*GET,My_H,CPAR,1 Cmd_/Input,create,inp :E END :. 12. 萬事具備,測試一下你自己構(gòu)建的幫忙文檔把;5.3 幾點說明從前面可以看到,一個幫忙文件一般有文件掌握頭和如干幫忙文件結(jié)構(gòu)塊組成,對幫忙文件結(jié)構(gòu)塊來說,其包含四個部分:頭部分,數(shù)據(jù)控制部分,幫忙內(nèi)容部分和尾部分;與函數(shù)說明不同的是它增加了幫忙內(nèi)容部分,這里存放各種格式的幫忙文檔,其次它需要供應很多幫忙內(nèi)容 部分的字節(jié)信息;所以構(gòu)建幫忙文件的時候一般都是分塊構(gòu)建,不斷用 wc 或者 ls 命令觀看字節(jié)信息,

42、最終生成完善的幫忙文件;感愛好的同學 可以自己生成強大的幫忙文檔信息,由于這一部分不是二次開發(fā)的重 點,我們在這里也不具體爭論其細節(jié)了,利用上面的學問我們已經(jīng)足以 構(gòu)建任何復雜的 ASCII 文檔信息;5.4 終止語到這里為止,我們已經(jīng)對UIDL 的全部功能都基于例子進行了具體描述,講到這里大家已經(jīng)有足夠的UIDL 學問構(gòu)建比較專業(yè)化的基于GUI 界面的參數(shù)化建模本事了;在后續(xù)章節(jié),我們將基于APDL 和 UPF 學問對這一例子進行優(yōu)化處理實現(xiàn),期望大家保持充分的愛好連續(xù)向下學習;第六章 解析 APDL 6.1 熟識新伴侶 APDL APDL 是我們即將結(jié)識的其次個強大二次開發(fā)工具;它的全稱是

43、ANSYS Parametric Design Language;APDL 可以幫忙你更加有效的進行分析運算,可以讓你輕松自動化你的工作(循環(huán)、分支、宏等結(jié)構(gòu)),并是一種高效的參數(shù)化建模手段;很多情形下,APDL 主要用在優(yōu)化設計或者自適應網(wǎng)格劃分中;但在日常分析中假如你知道善用,APDL 也將發(fā)揮其強大的優(yōu)勢,讓你的工作變的生動起來;6.2 二次開發(fā)工具之間的比較APDL 所能實現(xiàn)的功能通俗的說來應當是次于UPF 而強與 UIDL ,但實際上是由于三者具體側(cè)重點不同造成的:UIDL 主要掌握 GUI 界面的各類二次開發(fā)方法,涉及的分析部分就要少一些,頻繁打交道的一組小型工具,功能強大,但不和

44、APDL 可以稱其為和分析部分 UIDL 一樣能夠特別具體的針對某一兩方面的二次開發(fā)處理,通常情形下的他融合在分析的角角落落 中;UPF 是三者之間的最強者,他能完成最復雜的二次開發(fā)工作,比如說構(gòu)建新單元,復雜數(shù)據(jù)庫交互,外圍命令定制等,但UPF 在很多情形下也借助了 APDL 命令來完全實現(xiàn)其功能;同樣我們也能在 令,來構(gòu)建比較復雜的 GUI 二次開發(fā)工作;UIDL 中欠入 APDL 命一句話, UIDL 、APDL 和 UPF 三者各有所長,密不行分;結(jié)合使用三 者,我們將能夠?qū)崿F(xiàn)任何強大的分析功能;6.3 終止語我們這里對 APDL 的介紹將著重于它的一些基本功能,而不會象 UIDL 那

45、樣用一組實例來完整的描述他的全部功能,當然其間也會夾雜敘述 一些例子,來加強大家對 APDL 工具應用技巧;第七章 APDL 綜合實例 7.1 問題說明 本章在闡明 APDL 技術(shù)時本想也實行實例的方式,把 APDL 的各個細節(jié)都用一個個具體的實例說清晰,無奈APDL 細節(jié)內(nèi)容比較繁復,而且不和 UIDL 那樣各成體系, APDL 的應用很多情形下都是和 UIDL 、UPF 結(jié)合在一起應用的,它甚至滲透到基礎分析中的各個環(huán)節(jié)中,可以說也是 ANSYS 的腳本基礎;考慮到大家都不會有愛好來傾聽枯燥的數(shù)組構(gòu)建法,宏函數(shù)的參元特性等羅嗦的 比較大的綜合實例來想大家描述一部分 到我們能用 APDL 干

46、些什么;APDL 語法,這里我們準備用一個 APDL 的功能,從這里你將能看仍記得 UIDL 實例解析二中的一個例子巴,這里我們有必要重溫一 下:r H 圖a b 如圖 1a一所示,一帶孔薄板,長4000mm,寬 2000mm,頂部中心部分 1800mm 處承擔 42MP 的壓力,左右兩個長圓孔中心分別踞四周 1000mm,長圓孔的具體形式如圖1b所示,上下分別為半圓,中部用直線連接;這里假設長圓長軸與水平方向夾角為 ;為了使得孔邊緣應力集中最小,這里擬調(diào)整 的大?。?- /2, /2 ), 以便在固定的 H情形下達到長圓孔四周應力集中最小;在 UIDL 實例二的部分我們只是在GUI 界面下實

47、現(xiàn)了它的參數(shù)化建模,這部分工作在本章的綜合實例中仍舊有效,下面我們將一步步 完全實現(xiàn)這一問題;7.2 解題思想本問題是在用戶給定H 的情形下求得 角的最優(yōu)解,使得孔邊最大拉應力最?。ㄟ@是由于材料抗拉性能比較弱);這里我們的想法是把 取每 一個角度時候得到的孔邊最大拉應力都求出,比較一下,得到孔邊拉應 力最小情形下對應的 取值;現(xiàn)在的問題是,我們只能夠?qū)γ恳浑x散的 值求取其孔邊最大拉應力,讓 在 0 360 之間連續(xù)取值不僅是無法做 到的,而且在工程中也沒有必要,這里我們擬每隔肯定角度運算一下孔 邊最大拉應力,最終在這些有限的角度中求取出正確的 值;因此我們?nèi)?需要用戶自定義求解的精度參數(shù),即我

48、們每隔多少角度來運算一次(決定了結(jié)果精確到什么程度);比方說我們定義每隔 5 運算一次的話,整 個優(yōu)化過程需要進行 180/5=36 次求解運算;7.3 構(gòu)建步驟下面說明一下在構(gòu)建過程中的一些全局參數(shù):My_H :用戶輸入的 H 參數(shù)值 My_sita:每次運算對應的 參數(shù)值 My_dsita:每兩次運算之間間隔的角度值(用戶輸入的參 數(shù));My_N :總共需要分析運算的次數(shù);My_N=180/My_dsita My_sita0:初始 值,這里統(tǒng)肯定義為 0 ;My_MinS1 :最優(yōu)化位置處的最大拉應力值;(運算完以后才 是)My_Msita :最優(yōu)化位置處對應的 值;Mysmin:每次分析

49、運算得到對應特定 角時的孔邊最大拉應力;(一 般都是孔邊產(chǎn)生應力集中,所以也是整個板料內(nèi)部的最大拉應力處)_s1 數(shù)組:對應特定 時求解得到各個節(jié)點上的最大拉應力值;1. 第一我們重新構(gòu)建一比較完善的參數(shù)話建模腳本,取名為modaling.mac ,該腳本針對固定的My_H和 My_sita 將構(gòu)建整個幾何模型,加好載荷和約束,具體細節(jié)請參看附錄;2. 構(gòu)建腳本 mysolve.mac:My_sita0=0 My_N=180/My_dsita *do,I,0,My_N-1 parsav,all,mypar fini /clear,start parres,new,mypar My_sita=M

50、y_sita0+My_dsita*I modaling /solu solve /post1 ar11=ndinqr0,14 _s1= *dim,_s1,ar11 *vget,_s11,node,1,s,1 *vscfun,mysmin,max,_s11 *if,I,eq,0,then My_MinS1=mysmin My_Msita=My_sita *ELSE *IF,mysmin,lt,My_MinS1,then My_MinS1=mysmin My_Msita=My_sita *ENDIF *ENDIF parsav,all,mypar *enddo 下面是幾點說明 : 程序整個框架是先

51、依據(jù)用戶輸入的參數(shù)定制好一些解題環(huán)境,比方說求出需要重復運算的次數(shù)My_N,然后用 APDL 的*do 循環(huán)結(jié)構(gòu)繁復執(zhí)行 My_N 次,每次求得對應角度的孔邊最大拉應力 值,不斷積存出這些對應角度孔邊最大拉應力值的最小結(jié)果;完成了 My_N 次結(jié)果后,最優(yōu)結(jié)果 My_Msita 也就求出來了;My_MinS1 和對應的角度不同次分析運算過程前必需對 ANSYS 環(huán)境中的現(xiàn)有模型清零,用到/clear命令,但該命令會使用戶參數(shù)同時清零,這里用到 parsav和 parres技術(shù),在每次清零過程前先把當前工作區(qū)的參數(shù) 儲存起來,清模型終止后再調(diào)入工作區(qū),這樣就實現(xiàn)了只清模型、不清參數(shù)的成效;解題終

52、止后,我們先用ndinqr0,14這一 UPF 命令求取模型中的節(jié)點總數(shù);然后用 *vget 命令把全部節(jié)點上的最大拉應力都儲存 到_s1數(shù)組中,最終用 *vscfun 函數(shù)得到 _s1數(shù)組中的最大值;留意每次求解完提取數(shù)據(jù)時都要重新定義_s1數(shù)組的大小(由于每次劃分單元后總節(jié)點數(shù)不同),這時候每次 ANSYS 都回顯現(xiàn)讓你確認是否把已經(jīng)存在的_s1數(shù)組結(jié)構(gòu)轉(zhuǎn)變的對話框,這將導致自動化求解中斷,這里我們采納的一個技巧是每次重新定義 _s1數(shù)組前先清掉 _s1數(shù)組(用 _s1=命令行);這樣救防止了 Ansys的詢問;同樣解決 /clear命令的 Ansys 詢問方法就是寫全/clear命令:/

53、clear,start;留意這里我們是必需要用 start參數(shù)的,它表面我們在新建模型時讀入start55.ans文件,我們必需在工作目錄中構(gòu)建一個我們自己的start55.ans文件,里面添加上PI 參數(shù)的說明(由于 modaling.mac宏文件中將利用這一參數(shù),假如系統(tǒng)環(huán)境中沒有這一參數(shù)的說明,將產(chǎn)生建模錯誤);3.解決完一次運算,儲存完數(shù)據(jù)后記得用 parsav函數(shù)儲存環(huán)境參數(shù);完善 GUI參數(shù)化界面這里我們要比上次UIDL 實例二中多增加一個參數(shù)My_dsita ,為此我們修改 UIFUNC2.GRN函數(shù)中 DoProject 函數(shù)::N Fnc_DoProject :S 0, 0, 0 :T Command :A Optimize m

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論