
發(fā)布
注冊
/
登錄Tcl/Tk的案例
Tcl/Tk與APDL聯(lián)合編程實(shí)現(xiàn)ANSYS的二次開發(fā)
舉幾個(gè)簡單的例子如下:
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
下面將編寫一個(gè)實(shí)際的例子,Tcl腳本creatplane.tcl代碼如下:
代碼1
代碼2
代碼3
代碼4
Tcl/Tk主要用于設(shè)計(jì)界面,APDL用于實(shí)際建模和分析,腳本文件寫完之后,可以在ANSYS中通過命令行運(yùn)行,運(yùn)行方式有三種,分別如下:
~tcl,’source creatplane.tcl’
~tk,’source creatplane.tcl’
~eui,’source creatplane.tcl’
注意需要將腳本文件放在ANSYS的工作目錄下,最終得到以下開發(fā)的窗口:
圖1
在對話框中輸入?yún)?shù)即可自動進(jìn)行建模和計(jì)算,得到的模型如下所示:
圖2
計(jì)算后的結(jié)果為:
圖3
簡單總結(jié)以下,Tcl/Tk在用于圖形化界面開發(fā)的時(shí)候比較好用,界面開發(fā)較為靈活,除了上面的這種簡單界面的開發(fā),也能夠開發(fā)比較系統(tǒng)全面的界面,結(jié)合Tcl語言本身就能夠完成很多的工作,對于參數(shù)化過程非常方便。
展開 UIDL-Tcl/Tk-APDL聯(lián)合編程實(shí)現(xiàn)ANSYS二次開發(fā)(終極篇)
,ALL
三、Tcl/Tk
Tcl稱為“工具命令語言”"Tool Command Language",是一種腳本語言。
Tcl/Tk與APDL聯(lián)合編程參數(shù)化建模螺旋結(jié)構(gòu)
結(jié)合Tcl/Tk和ANSYS的APDL參數(shù)化語言編寫螺旋結(jié)構(gòu)的參數(shù)化建模程序,程序完成后即可在ANSYS中運(yùn)行,運(yùn)行后會彈出編寫好的界面,通過設(shè)置其中的幾個(gè)參數(shù)即可實(shí)現(xiàn)一鍵參數(shù)化建模與分網(wǎng)。
編寫好的界面如下所示,可以對比界面中的示意圖設(shè)置其中的幾個(gè)尺寸,包括螺旋半徑R,螺距H,圈數(shù)N和螺紋的半徑Rr,設(shè)置完后點(diǎn)擊Creat即可快速創(chuàng)建模型。
Tcl/Tk開發(fā)HyperWork目錄樹結(jié)構(gòu)
Tcl/Tk開發(fā)HyperWork目錄樹
HyperWork的二次開發(fā)主要是HyperMesh(前處理)和HyperView(后處理的開發(fā)),用到的語言是Tcl/Tk和大量的API函數(shù),HyperMesh和HyperView的二次開發(fā)形式多樣,在HyperMesh里面比較簡單的是利用宏文件開發(fā)按鈕,然后利用按鈕實(shí)現(xiàn)一系列的功能,當(dāng)然雖然只是簡單的按鈕,卻也可以實(shí)現(xiàn)很強(qiáng)大的功能,甚至是整個(gè)完整的分析過程。還有一種是利用Process Studio開發(fā)流程樹。
除了自帶的這個(gè)開發(fā)工具,Tk本身也可以直接開發(fā)具有目錄樹結(jié)構(gòu)的系統(tǒng),主要用到treeview組件,下面就以一個(gè)簡單的例子實(shí)現(xiàn)這個(gè)功能。
展開 
Fidelity Pointwise 中用于 Python 的 Glyph API
Tcl/Tk: package require PWI_Glyph 2 # 建立 'pw' 命名空間
Python: glf = GlyphClient(port=0)
pw = glf.get_glyphapi()
2. Glyph 類名對于 Python 和 Tcl 都是區(qū)分大小寫的,因此名稱必須完全匹配。
3. 所有字形類都是頂級(“pw”)對象的有效屬性。
Tcl/Tk:pw::Application
Python:pw.Application
4. 任何公開靜態(tài)“創(chuàng)建”操作的 Glyph 類都可以使用語法“pw.GlyphClassName()”直接實(shí)例化。如果 create 操作接受參數(shù),它們可以像任何其他參數(shù)一樣傳遞(參見規(guī)則 8)。
Tcl/Tk:設(shè)置 con [pw::Connector 創(chuàng)建]
Python:con = pw.Connector()
5. 所有靜態(tài) Glyph 類操作都在等效的 Python/Glyph 對象上調(diào)用。
Tcl/Tk:pw::Application getVersion
Python:pw.Application.getVersion()
6. 返回 Glyph 對象的 Glyph 動作被包裝在 GlyphObject 的實(shí)例中,該實(shí)例以與關(guān)聯(lián)的 Glyph 對象一致的方式起作用。在此對象上只能調(diào)用實(shí)例操作,并且沒有隱式充當(dāng)“setter/getter”方法(常見的 Python 習(xí)慣用法)的屬性。
7. Python/Glyph 對象上的實(shí)例方法被轉(zhuǎn)換為 Glyph 實(shí)例操作。
Tcl/Tk:設(shè)置昏暗 [$con getDimension]
Python dim = con.getDimension()
8.
展開 ANSYS界面定制初步
筆者所知的,ANSYS支持的二次開發(fā)語言有四種:APDL,UPFs,UIDL,Tcl/TK。其中APDL筆者就不介紹了;UPFs一般用于用戶子程序的開發(fā),比如用戶可以自己創(chuàng)建單元類型、材料模型、以及各種底層的功能,事實(shí)上這就對開發(fā)者的理論水平要求較高,非一般用戶可以企及的;UIDL和Tcl/TK的作用都是定制用戶界面,其中UIDL比較簡單,相應(yīng)功能也較少;Tcl/TK是指Tcl語言的TK庫,非常適用于用戶界面的定制,但需要較多學(xué)習(xí)才能掌握。本文的界面定制只涉及UIDL。
筆者自己做了個(gè)一個(gè)例子,紅色框內(nèi)是筆者創(chuàng)建的:
那么這是如何實(shí)現(xiàn)的呢?
第一步:需要用APDL編輯四個(gè)mac(宏文件)
第二步:需要修改ansys的start.ans文件
第三步:如果我們修改了mac文件,需要更新功能。
運(yùn)行這幾個(gè)按鈕的效果:
01 單擊PAR1按鈕,參數(shù)可以自由修改。
02 單擊PAR2按鈕,參數(shù)可以自由修改。
03 單擊PAR3按鈕,參數(shù)可以自由修改。
04 單擊FREQ按鈕,根據(jù)之前的參數(shù)設(shè)定,進(jìn)行有效的分析。
以上例子的整個(gè)運(yùn)行過程就是:筆者需要分析一個(gè)系統(tǒng),先要定義整個(gè)系統(tǒng)的相關(guān)參數(shù),最后再計(jì)算這個(gè)系統(tǒng)的相關(guān)結(jié)果,并且把需要的結(jié)果自動載入TXT文件中。
ansysmac.zip
展開 TCL語言入門文檔推薦
Tcl 全稱是Tool command Language 。它是一個(gè)基于字符串的命令語言,基礎(chǔ)結(jié)構(gòu)和語法非常簡單,易于學(xué)習(xí)和掌握。
Tcl 語言是一個(gè)解釋性語言,所謂解釋性是指不象其他高級語言需要通過編譯和聯(lián)結(jié),它象其他shell 語言一樣,直接對每條語句順次解釋執(zhí)行。
Tcl 數(shù)據(jù)類型簡單。對Tcl 來說,它要處理的數(shù)據(jù)只有一種——字符串。Tcl 將變量值以字符串的形式進(jìn)行存儲,不關(guān)心它的實(shí)際使用類型。
內(nèi)嵌的Tk( toolkit )圖形工具可以提供簡單而又豐富的圖形功能,讓用戶可以輕松的創(chuàng)建簡單的圖形界面。
Tcl 的執(zhí)行是交互式的, Tcl 提供了交互式命令界面,界面有兩種: tclsh 和wish 。tclsh 只支持Tcl 命令, wish 支持Tcl 和Tk 命令。通過交互界面,我們就可以象執(zhí)行UNIX shell 命令一樣,逐條命令執(zhí)行,并即時(shí)得到執(zhí)行結(jié)果。
Tcl/Tk 可以提供跨平臺的支持。Tcl 語言可以運(yùn)行于絕大多數(shù)當(dāng)今流行的UNIX、WINDOWS和Macintosh 等系統(tǒng)上,而且命令通用,只是啟動的細(xì)節(jié)有些不同。
Tcl/Tk 與C/C++ 的良好兼容性。Tcl/Tk 腳本可以很好的集成到C/C++ 程序中。
推薦一本基礎(chǔ)全面的TCL語言入門的文檔,和一個(gè)快速入門文檔。
TCL語言入門 — OpenSees 1.0.pdf
Tcl快速入門.pdf
展開 招聘啦!Hypermesh二次開發(fā)高級工程師
</p><p class="ql-align-justify"><br></p><p class="ql-align-justify"><strong style="color: rgb(35, 90, 166);">崗位要求:</strong></p><p class="ql-align-justify">1.熟練使用CAE軟件Hypermesh軟件;</p><p class="ql-align-justify">2.熟悉TCL/TK,1年以上編程、使用經(jīng)驗(yàn);</p><p class="ql-align-justify">3.了解常用數(shù)據(jù)庫(SQL Server、MySQL) ,熟悉常用數(shù)據(jù)庫訪問組件;</p><p class="ql-align-justify">4.有工科背景及新產(chǎn)品的結(jié)構(gòu)設(shè)計(jì)、研發(fā)、驗(yàn)證經(jīng)驗(yàn)優(yōu)先;</p><p class="ql-align-justify">5.有CAD/CAE二次開發(fā)、CAE仿真經(jīng)驗(yàn)優(yōu)先考慮;</p><p class="ql-align-justify">6.優(yōu)秀應(yīng)屆畢業(yè)生亦可。
展開 招聘崗位:hyperworks二次開發(fā)工程師(全職)
崗位職責(zé):
1.TCL/TK界面編程,專業(yè)相關(guān)功能編程;
2.軟件代碼修改與調(diào)試,WINDOWS系統(tǒng)下二次開發(fā)軟件的編寫;
3.負(fù)責(zé)軟件使用過程中的技術(shù)支持;
4.遵循開發(fā)流程,保證項(xiàng)目開發(fā)的正常運(yùn)行,嚴(yán)格確保整個(gè)項(xiàng)目通過測試要求。
崗位要求:
1.本科及以上學(xué)歷,工科專業(yè)背景,
2.熟練使用Hypermesh軟件;
3.至少熟悉TCL/TK、C++、python其中一種語言,1年以上編程、使用經(jīng)驗(yàn);
4.熟悉WINDOWS下標(biāo)準(zhǔn)的調(diào)試與開發(fā)、MFC開發(fā)架構(gòu)者優(yōu)先考慮
5.有CAD/CAE二次開發(fā)、CAE仿真經(jīng)驗(yàn)優(yōu)先考慮。
工作地點(diǎn):上海、杭州優(yōu)先。
應(yīng)聘請加微信:jishulink888
展開 Hypermesh二次開發(fā)自動創(chuàng)建網(wǎng)格材料屬性并賦予相應(yīng)的部件 ¥39
程序?qū)崿F(xiàn)功能:用HyperMesh所支持的Tcl/TK創(chuàng)建了一個(gè)腳本,根據(jù)各個(gè)已經(jīng)劃分好網(wǎng)格的部件名稱,提取其中的材料、厚度信息,創(chuàng)建對應(yīng)名稱的屬性并賦予相應(yīng)的部件。
程序注意事項(xiàng):1.修改User Profiles,選擇需要環(huán)境 ,打開文件 2. 通過File-Run-Tcl/Tk Script選擇程序文件 3.所有路徑上的文件夾及文件命名都必須使用英文或數(shù)字,中文不可識別 4. 如出現(xiàn)名稱不符合規(guī)定格式的部件,程序會自動跳過,并在Command Window中有提示。
程序很簡潔,能快速執(zhí)行,完成批量操作,并且準(zhǔn)確無誤!
以下是程序部分:
*createmark comps 1 "all"
set compsList [hm_getmark comps 1]
# 掃描comp名稱并提取信息
foreach Compid $compsList {
set compname [hm_getvalue comps id=$Compid dataname=name]
展開 Altair 網(wǎng)絡(luò)研討會系列:你也可以做開發(fā):一個(gè)例子讓你懂得HyperMesh二次開發(fā)
用戶可以根據(jù)自己的獨(dú)特需求利用Tcl/Tk語言結(jié)合這些API進(jìn)行HyperMesh二次開發(fā)。本次網(wǎng)絡(luò)研討會我們將結(jié)合單元陣列這個(gè)具體開發(fā)案例講解進(jìn)行HyperMesh二次開發(fā)的基本方法。主要內(nèi)容涉及以下幾個(gè)方面:
1.HyperMesh二次開發(fā)基本步驟
2.Tcl/Tk語言介紹
3.腳本的編寫和調(diào)試
4.為腳本創(chuàng)建快捷鍵和圖形界面
點(diǎn)擊這里進(jìn)行注冊,并瀏覽更多信息。

分享Hypermesh入門簡單開發(fā)技巧 附Hypermesh生成柔性體MNF文件下載
Hypermesh的操作錄制的語言是tcl(Tool Command Language),默認(rèn)存放在文檔文件夾下的command.tcl文本里(若直接打開.hm文件,則command.tcl文本在當(dāng)前文件夾里),可以直接用文檔、word直接打開,建議用Notepad打開,里面可以選擇tcl語言讓文本有語法高亮,有助于編寫。
在Hypermesh面板中View—Toolbars—Hyperwoks—Scripting調(diào)出腳本快捷按鍵。
點(diǎn)擊第二個(gè)圖標(biāo)(Open tcl/tk script)右邊的三角下拉菜單,選擇Open Command File。
會發(fā)現(xiàn)里面的內(nèi)容很多,找不到自己的操作過程,因此需要清空這個(gè)文件里的內(nèi)容,記得要save一下,操作完面板再點(diǎn)擊下Open tcl/tk script即可查看剛才面板操作的所有記錄(Hypermesh2017版本及14.0能夠在此窗口下直接操作,高版本如2020無法修改,示版本而定)。
在View中勾選Command Window可調(diào)出命令窗口。
復(fù)制Command File里的錄制碼,在Command Window中粘貼即可復(fù)現(xiàn)剛才的一系列操作。更高級的用法可以與tcl語言相結(jié)合進(jìn)行編譯,后續(xù)會陸續(xù)分享二次開發(fā)的一些例子進(jìn)行講解。
下載地址:Hypermesh生成柔性體MNF文件
展開 HyperMesh 二次開發(fā)案例之焊縫連接
用戶可以根據(jù)自己的獨(dú)特需求利用Tcl/Tk語言結(jié)合這些API進(jìn)行HyperMesh二次開發(fā)。針對HyperMesh二次開發(fā),主頁君將通過一些簡單案例進(jìn)行分享學(xué)習(xí)心得。
2 焊縫連接小案例
在hypermesh中,焊縫連接需要采用rigid中的reb2連接,并且節(jié)點(diǎn)需要一個(gè)一個(gè)選取,操作過程很是麻煩,本文開發(fā)了一個(gè)簡單的焊縫連接的例子,同時(shí)對二次開發(fā)進(jìn)行簡單介紹。
首先采用GUI操作對焊點(diǎn)進(jìn)行連接,然后通過Edit=>Command File查看GUI對應(yīng)的命令。如圖可以看出形成的新命令是*rigid(1182,390,123456),通過Help可以查到*rigid的意思。
NAME
*rigid - Creates a rigid element between two nodes.
SYNTAX
*rigid node1 node2 dofs
1182和390表示節(jié)點(diǎn),123456表示約束的自由度。然后我們可以通過一個(gè)循環(huán)實(shí)現(xiàn)多個(gè)節(jié)點(diǎn)一起創(chuàng)建REB2.
通過*createlistbypathpanel和set命令創(chuàng)建兩組對應(yīng)的節(jié)點(diǎn),然后采用foreach循環(huán)來實(shí)現(xiàn)多個(gè)對應(yīng)節(jié)點(diǎn)一起創(chuàng)建reb2.
具體命令流如下圖所示。將命令流保存為tcl后綴,然后在File中的Run=>TCL/TK file,打開保存的文件,即可實(shí)現(xiàn)操作。
本文主要命令為:*createlistbypathpanel創(chuàng)建路徑選擇按鈕,set設(shè)置變量,foreach循環(huán),*rigid縫合節(jié)點(diǎn)。如果覺得有用請隨手點(diǎn)贊,后續(xù)內(nèi)容更精彩。
展開 高薪誠聘│Hypermesh二次開發(fā)高級工程師
招聘崗位:二次開發(fā)高級工程師
薪資:面議
崗位職責(zé):
1.熟悉TCL/TK界面編程,開發(fā)中大型項(xiàng)目;
2.負(fù)責(zé)編寫hypermesh/hyperview自動化程序,提升建模和后處理的速度和效率;
3.Linux系統(tǒng)下二次開發(fā)軟件的開發(fā)、修改、調(diào)試;
4.負(fù)責(zé)自動化程序使用過程中的技術(shù)支持和優(yōu)化迭代,識別效率堵塞點(diǎn),提出迭代優(yōu)化方向并實(shí)施;
5.維護(hù)項(xiàng)目開發(fā)的正常運(yùn)行,編寫二次開發(fā)項(xiàng)目的指導(dǎo)書。
崗位要求:
1.熟練使用CAE軟件Hypermesh軟件,具備中大型項(xiàng)目的經(jīng)驗(yàn)經(jīng)驗(yàn);
2.熟悉TCL/TK,3年以上編程、使用經(jīng)驗(yàn);
3.熟練使用常用數(shù)據(jù)庫(SQL Server、MySQL) ,熟練使用常用數(shù)據(jù)庫訪問組件;
4.熟練串口通訊編程或熟悉COM開發(fā)與應(yīng)用,熟悉WINDOWS下標(biāo)準(zhǔn)的調(diào)試與開發(fā);
5.力學(xué)/機(jī)械/汽車/材料等工科專業(yè),碩士/博士研究生優(yōu)先;
6.對新產(chǎn)品的結(jié)構(gòu)設(shè)計(jì)、研發(fā)、驗(yàn)證經(jīng)驗(yàn)有較好的理解;
7.具備CAD/CAE二次開發(fā)經(jīng)驗(yàn),有一定的CAE項(xiàng)目的經(jīng)驗(yàn)。
職業(yè)發(fā)展:
在這里你將接受全方位鍛煉、培訓(xùn)、參與專題項(xiàng)目等,擁有公平開放發(fā)展平臺,如果你有想法無法施展,這將會是一個(gè)優(yōu)秀卓越的平臺,我們希望尋找腳踏實(shí)地實(shí)干型的人才。
職位福利:
五險(xiǎn)一金、績效獎(jiǎng)金、帶薪年假、員工旅游、節(jié)日福利等。
關(guān)于我們:
深圳市有限元科技有限公司(簡稱有限元科技/FEATech/元王)成立于2007年,是一家以工程軟件開發(fā)為核心,以CAD/CAE為主業(yè),集工業(yè)軟件、研發(fā)質(zhì)量管理平臺銷售、軟件二次開發(fā)、技術(shù)咨詢、培訓(xùn)為一體的國家高新技術(shù)企業(yè)、專精特新企業(yè)。
我們是產(chǎn)品設(shè)計(jì)+仿真應(yīng)用的技術(shù)咨詢及工業(yè)軟件公司。
展開 基于ANSYS的汽車起重機(jī)專用有限元軟件定制開發(fā)(原創(chuàng),如轉(zhuǎn)載,請注明出處)
完成人:技術(shù)鄰ANSYS專家
業(yè)務(wù)咨詢網(wǎng)址:http://www.yqgqt.org.cn/content/other/402981
研究對象:汽車起重機(jī)
開發(fā)語言:TCL/TK APDL
TCL/TK作為ANSYS經(jīng)典的界面開發(fā)語言,可以使實(shí)現(xiàn)命令和數(shù)據(jù)的無縫交換(WB采用其他語言)
APDL可以實(shí)現(xiàn)參數(shù)化編程和功能實(shí)現(xiàn)。
開發(fā)時(shí)間:大于1年
軟件特點(diǎn):
高效精準(zhǔn)的建模分析技術(shù)
完全參數(shù)化控制(結(jié)構(gòu)參數(shù)、控制參數(shù)、工況參數(shù)等);
基于參數(shù)化的自動化實(shí)現(xiàn)(自動實(shí)現(xiàn)建立幾何模型、網(wǎng)格劃分、加載、施加邊界條件、自動計(jì)算和分析);
有限元操作的完全內(nèi)部封裝,傻瓜式操作的特點(diǎn)(完全不懂有限元,都能得到專業(yè)分析結(jié)果);
基于行業(yè)標(biāo)準(zhǔn)和國家標(biāo)準(zhǔn)的計(jì)算結(jié)果評估系統(tǒng)(15個(gè)有限元計(jì)算結(jié)果評估子系統(tǒng))。
展開