Tcl/Tk與APDL聯(lián)合編程實現(xiàn)ANSYS的二次開發(fā)
Tcl/Tk與APDL聯(lián)合編程實現(xiàn)ANSYS的二次開發(fā)
ANSYS的二次開發(fā)語言有四種,分別是APDL、UPFs、UIDL及Tcl/Tk,其中后面兩個用于ANSYS交互界面開發(fā)。APDL(ANSYS Parametric Design Language)大家都熟悉,ANSYS參數(shù)化設(shè)計語言,及俗稱的命令流。它由類似于FORTRAN的語言部分和1000多條ANSYS命令組成。
APDL是一種解釋性文本語言,有順序、選擇、循環(huán)及宏等結(jié)構(gòu)。利用APDL將ANSYS命令組織起來,編寫出參數(shù)化的用戶程序,從而實現(xiàn)有限元分析的全過程,即建立參數(shù)化的實體模型、參數(shù)化的網(wǎng)格劃分與控制、參數(shù)化的材料定義、參數(shù)化的載荷和邊界條件定義、參數(shù)化的分析控制和求解以及參數(shù)化的后處理。
UPFs(User Programmable Features),即用戶可編程特性,它是源代碼層次的ANSYS二次開發(fā),用戶可以根據(jù)需要利用UPFs重新編譯連接生成用戶定制版本的ANSYS軟件,例如創(chuàng)建新單元、定義新的材料屬性、定義用戶失效準則等等。
UIDL是ANSYS用戶界面設(shè)計語言(UserInterfaceDesignLanguage)的簡寫,允許用戶改變ANSYS的圖形界面中的一些組項,提供了一種允許用戶靈活使用組織設(shè)計ANSYS的強有力工具,不過功能有限。
Tcl稱為“工具命令語言”"Tool Command Language",是一種腳本語言。Tk則是基于Tcl的圖形界面開發(fā)工具箱,與UIDL相比,更能夠觸及深層,因此更加靈活,開發(fā)的界面受限更少。
采用Tcl/Tk與APDL聯(lián)合編程能夠通過界面實現(xiàn)參數(shù)化設(shè)計過程,非常直觀。Tcl/Tk與APDL的通信主要依靠三個ANSYS API函數(shù)實現(xiàn),分別是:
ans_sendcommand:向ANSYS傳遞APDL命令;
ans_getvalue:從ANSYS數(shù)據(jù)庫中獲取變量;
ans_getvector:從ANSYS數(shù)據(jù)庫中獲取向量。
舉幾個簡單的例子如下:
ans_sendcommand “$set,ansVar,$tkVar”
將變量tkVar的值傳遞給ans_Var
set tkVar [ans_getvalue PARM,ansVar,Value]
獲取ANSYS中的變量ansVar,賦值給tkVar
set tkArray [ans_vector ansArray]
獲取ANSYS中的數(shù)組ansArray
下面將編寫一個實際的例子,Tcl腳本creatplane.tcl代碼如下:

代碼1

代碼2

代碼3

代碼4
Tcl/Tk主要用于設(shè)計界面,APDL用于實際建模和分析,腳本文件寫完之后,可以在ANSYS中通過命令行運行,運行方式有三種,分別如下:
~tcl,’source creatplane.tcl’
~tk,’source creatplane.tcl’
~eui,’source creatplane.tcl’
注意需要將腳本文件放在ANSYS的工作目錄下,最終得到以下開發(fā)的窗口:

圖1
在對話框中輸入?yún)?shù)即可自動進行建模和計算,得到的模型如下所示:

圖2
計算后的結(jié)果為:

圖3
簡單總結(jié)以下,Tcl/Tk在用于圖形化界面開發(fā)的時候比較好用,界面開發(fā)較為靈活,除了上面的這種簡單界面的開發(fā),也能夠開發(fā)比較系統(tǒng)全面的界面,結(jié)合Tcl語言本身就能夠完成很多的工作,對于參數(shù)化過程非常方便。
工程師必備
- 項目客服
- 培訓(xùn)客服
- 平臺客服
TOP




















