Tcl/Tk與APDL聯(lián)合編程實現(xiàn)ANSYS的二次開發(fā)

Tcl/TkAPDL聯(lián)合編程實現(xiàn)ANSYS的二次開發(fā)

ANSYS的二次開發(fā)語言有四種,分別是APDLUPFsUIDLTcl/Tk,其中后面兩個用于ANSYS交互界面開發(fā)。APDLANSYS Parametric Design Language)大家都熟悉,ANSYS參數(shù)化設(shè)計語言,及俗稱的命令流。它由類似于FORTRAN的語言部分和1000多條ANSYS命令組成。

APDL是一種解釋性文本語言,有順序、選擇、循環(huán)及宏等結(jié)構(gòu)。利用APDLANSYS命令組織起來,編寫出參數(shù)化的用戶程序,從而實現(xiàn)有限元分析的全過程,即建立參數(shù)化的實體模型、參數(shù)化的網(wǎng)格劃分與控制、參數(shù)化的材料定義、參數(shù)化的載荷和邊界條件定義、參數(shù)化的分析控制和求解以及參數(shù)化的后處理。

UPFsUser Programmable Features),即用戶可編程特性,它是源代碼層次的ANSYS二次開發(fā),用戶可以根據(jù)需要利用UPFs重新編譯連接生成用戶定制版本的ANSYS軟件,例如創(chuàng)建新單元、定義新的材料屬性、定義用戶失效準則等等。

UIDLANSYS用戶界面設(shè)計語言(UserInterfaceDesignLanguage)的簡寫,允許用戶改變ANSYS的圖形界面中的一些組項,提供了一種允許用戶靈活使用組織設(shè)計ANSYS的強有力工具,不過功能有限。

Tcl稱為“工具命令語言”"Tool Command Language",是一種腳本語言。Tk則是基于Tcl的圖形界面開發(fā)工具箱,與UIDL相比,更能夠觸及深層,因此更加靈活,開發(fā)的界面受限更少。

采用Tcl/TkAPDL聯(lián)合編程能夠通過界面實現(xiàn)參數(shù)化設(shè)計過程,非常直觀。Tcl/TkAPDL的通信主要依靠三個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.png

代碼1

代碼2.png

代碼2

代碼3.png

代碼3

代碼4.png

代碼4

Tcl/Tk主要用于設(shè)計界面,APDL用于實際建模和分析,腳本文件寫完之后,可以在ANSYS中通過命令行運行,運行方式有三種,分別如下:

~tcl,’source creatplane.tcl’

~tk,’source creatplane.tcl’

~eui,’source creatplane.tcl’

注意需要將腳本文件放在ANSYS的工作目錄下,最終得到以下開發(fā)的窗口:

圖1.png

1

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

圖2.png

2

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

圖3.png

3

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

登錄后免費查看全文
立即登錄
App下載
技術(shù)鄰APP
工程師必備
  • 項目客服
  • 培訓(xùn)客服
  • 平臺客服

TOP

3
3
2