
發布
注冊
/
登錄TCL二次開發的案例
Tcl/Tk與APDL聯合編程實現ANSYS的二次開發
Tcl/Tk與APDL聯合編程實現ANSYS的二次開發
ANSYS的二次開發語言有四種,分別是APDL、UPFs、UIDL及Tcl/Tk,其中后面兩個用于ANSYS交互界面開發。APDL(ANSYS Parametric Design Language)大家都熟悉,ANSYS參數化設計語言,及俗稱的命令流。它由類似于FORTRAN的語言部分和1000多條ANSYS命令組成。
APDL是一種解釋性文本語言,有順序、選擇、循環及宏等結構。利用APDL將ANSYS命令組織起來,編寫出參數化的用戶程序,從而實現有限元分析的全過程,即建立參數化的實體模型、參數化的網格劃分與控制、參數化的材料定義、參數化的載荷和邊界條件定義、參數化的分析控制和求解以及參數化的后處理。
UPFs(User Programmable Features),即用戶可編程特性,它是源代碼層次的ANSYS二次開發,用戶可以根據需要利用UPFs重新編譯連接生成用戶定制版本的ANSYS軟件,例如創建新單元、定義新的材料屬性、定義用戶失效準則等等。
UIDL是ANSYS用戶界面設計語言(UserInterfaceDesignLanguage)的簡寫,允許用戶改變ANSYS的圖形界面中的一些組項,提供了一種允許用戶靈活使用組織設計ANSYS的強有力工具,不過功能有限。
Tcl稱為“工具命令語言”"Tool Command Language",是一種腳本語言。Tk則是基于Tcl的圖形界面開發工具箱,與UIDL相比,更能夠觸及深層,因此更加靈活,開發的界面受限更少。
采用Tcl/Tk與APDL聯合編程能夠通過界面實現參數化設計過程,非常直觀。
展開 UIDL-Tcl/Tk-APDL聯合編程實現ANSYS二次開發(終極篇)
本次介紹的是ANSYS的二次開發,二次開發不是為了將軟件應用的如何花哨,而是為了更好更快捷的應用軟件,有些軟件對一些問題的分析過程晦澀難懂,或者是操作過程繁瑣,再或者大量重復性工作,二次開發能夠有效解決這些問題,大大方便用戶(尤其是非專業用戶)的使用。
一、UIDL
ANSYS的界面開發語言有UIDL和Tcl/Tk兩種,Tcl/Tk能夠觸及深處因此能夠開發的界面功能更加強大,UIDL則是ANSYS本身的開發語言,能夠對ANSYS的菜單進行一些開發,得到新的菜單功能,或者可以對已有的菜單進行修改等。
對于編程者而言其實界面不那么重要,可有可無,而對于使用者而言界面就變得尤為重要。
ANSYS的界面開發的相關文件位于F:\Program Files\ANSYS Inc\v160\ansys\gui\en-us\UIDL目錄下面,其中的引用文件menulist160.ans就引用了相關的GRN和AUI文件,自行開發的UIDL文件如果要使用,也必須在這個文件進行引用,同時UIDL文件也要放在這個目錄下面。
UIDL開發的文件擴展名是GRN,利用UIDL編寫開發有其固定的格式。
抬頭是控制頭文件,由一系列的UIDL命令組成,且必須以冒號開頭,其結構如下:
:F UIMENU.GRN
:D Modefied %E%,Revision(SID)=%I%
:I 0, 0, 0
:!
展開 tcl語言hypermesh二次開發 門洞屈曲自動化計算程序 optistruct求解器 ¥500
<p><br></p><p><img src="/images/content/youku-case.png"></p><p><br></p><p><a href="https://www.yqgqt.org.cn/qa/14127" rel="noopener noreferrer" target="_blank" style="color: rgb(51, 51, 51);">hypermesh</a>二次開發 門洞屈曲自動化計算程序 optistruct求解器,付款后聯系我發tcl程序給你,手機端視頻無法觀看 可在電腦端觀看,自動抽中面 修補面 賦厚度屬性等-帶GUI輸入界面</p><p><br></p><p>部分代碼:</p><p>###########################################門洞屈曲自動化建模程序_編制日期202220909_前處理器Hypermesh__version_2020</p><p>###########################################求解器optistruct_version_2020</p><p>###########################################聲明門洞相關參數</p><p>namespace eval ::matGUISample {</p><p>variable _r1</p><p>variable _lengh1</p><p>variable _h11</p><p> variable _h21</p><p> variable _h31</p><p> variable _h41</p><p> variable _h51</p><p>
展開 基于Tcl二次開發,用于hypermesh—optistruct/nastran求解器模塊自動化屬性、材料卡 ¥25
</div><p><br></p><p>附件是tcl代碼及操作演示,歡迎基于tcl、python API功能開發者一起探討交流</p><p><br></p><div contenteditable="false" width="100%">
示例匹配:
</div><div contenteditable="false" width="100%">
SHANGKE_t0P8MM → 0.8
</div><div contenteditable="false" width="100%">
AL6061_T6_T3 → 3(識別末尾T3為厚度,避開T6材料標號)
</div><div contenteditable="false" width="100%">
STEEL_T8_t2P5 → 2.5
</div><div contenteditable="false" width="100%">
AL7075_T6 → ""(成功避開材料標號)
</div><p><br></p>
展開 
hypermesh tcl 二次開發針對框架梁結構自動抽中面 修補面 賦厚度屬性等-帶GUI輸入界面 ¥50
<p>手機端視頻無法觀看 可在電腦端觀看,自動抽中面 修補面 賦厚度屬性等-帶GUI輸入界面</p><p><img src="/images/content/youku-case.png"> </p><p><br></p><p><br></p>
你也可以來做二次開發--HyperMesh二次開發應用之123
大部分HyperMesh用戶覺得二次開發這種碼農干的事情大概很困難 。我們平時發現有的工程師非常有耐心:對一件單調乏味的事情重復千百次。其實有時候二次開發真的很簡單,懂一點二次開發會讓你的工作更有效率,讓你的分析生活更有趣。
應用1:創建節點(node)
前處理建模經常需要創建節點,有時數量還相當多 。接下來我們來看一下如何通過二次開發把這些點變到HyperMesh中去!
保證你一看就會!
應用1
輸入: 比如我們已經從別的途徑獲得了這些點的x,y,z坐標;這些坐標保存在nodesxyz.csv文件中,這是一個文本文件,可以使用文本編輯器或者excel打開。
?在HyperMesh中先按照傳統的方法創建第一個點
然后從下拉菜單Edit -> Command File打開命令流文件;我們可以看到下面這條命令,所以我們只需要按照這個格式得到其它命令語句即可實現目標。
展開 CAE軟件二次開發的核心不在代碼
所謂的有限元軟件的二次開發工作,絕大部分指的是前后處理的二次開發,基本不涉及求解器的開發。二次開發是現代企業提高工作效率,規范操作流程,確保仿真精度的一項重要的工作。既然是二次開發,就是需求分析,代碼編寫,界面設計以及最后調試使用等等一系列的工作,所以要想做好二次開發,代碼非常重要。優秀的代碼能力,能讓二次開發靈活柔性,容易使用,但達到這個并不容易。
CAE軟件的二次開發針對的是具有相當工程經驗的仿真工程師,仿真工具涉及到復雜的理論基礎和工程經驗,二次開發的目的和作用也嚴重依賴企業的工作流程,所以其真正的核心并不在代碼。
01 CAE軟件二次開發的核心在于流程
一個成熟的企業,其各項工作也必然是流程化和規范化的,具體到仿真工作也是一樣。以CAE的前處理來看,大致包含以下幾個工作:
有限元網格劃分
材料屬性的賦予
部件連接與裝配
仿真工況的設置
提交計算
二次開發的目的,就是減少重復繁瑣的工作內容,讓程序自動執行,提高工作效率減少人工錯誤的產生。要想達到二次開發,必須對工作方法和流程有一定的企業規范。拿材料屬性的的自動賦予舉例,很多公司都用tk/tcl語言進行二次開發,但首先程序必須識別該部件是什么材料,是solid還是pshell,厚度是多少,另外零件號也必須標明以區分不同的部件。而這就需要企業對部件的命名有一個規范,否則,二次開發就無從談起,基本不可能實現。
流程越詳細,細節規范的越清晰明了,二次開發的可能性也就越大。
展開 hypermesh二次開發之自動記錄用戶操作命令,方便二次開發 ¥19.89
hypermesh二次開發之自動記錄用戶操作命令,方便二次開發
解決Abaqus Python二次開發各種問題! 附ABAQUS PYTHON二次開發攻略文檔下載
網絡接口不僅能用python3來開發,甚至可以用任意一種更適合你開發需求的代碼來開發。網絡接口的環境和abaqus的python2環境是天然隔離的,安裝各種第三方庫自然不在話下了。
說到成果保護,作者可以精準對具體某個函數進行訪問控制,包括“哪個賬號可以訪問?”、“可以訪問幾次?”、“在哪個時間段可以訪問?”等等。
而且,這里提到的網絡可以是局域網。最小的局域網就是同一臺計算機訪問自身的不同端口,所以完全可以在你的計算機上配置好網絡服務器應用,然后在abaqus的python2環境中訪問、交互,實現上述的各種功能。
2、函數上云
對于那些飽含作者心血的寶貴函數,完全可以部署到各種云服務器上,在代碼“絕對安全”和用戶“絕對方便”的前提上讓有需要的人能夠方便快捷的使用到。
以上,都可以基于Abaqus python 漸進式二次開發的技術來實現。代碼的使用方法很大程度決定了代碼使用的場景和邊界。
所以,希望突破限制復制粘貼“長長”腳本的你,歡迎參加《Abaqus python 漸進式二次開發(二)》直播課,從基礎的開發“套路”開始,重新認識Abaqus python二次開發。
下載地址:ABAQUS PYTHON二次開發攻略文檔下載
展開 HyperMesh二次開發實例
HyperMesh二次開發
使用Tcl/Tk進行二次開發的過程很簡單:在Hypermesh的默認工作路徑下有一個文件Command.cmf,這個文件記錄了每個操作的動作。在打開Hypermesh之前,刪除這個文件。啟動Hypermesh,這個文件會被重新生成。執行一個需要重復操作的動作周期,Command.cmf就記錄了操作過程。編輯這個文件,將其中的括號和逗號全部用空格替代,將文本另存為以tcl為后綴的文件。
腳本實例一
以下是一個將Hypermesh網格按照component分組逐個輸出為nastran格式的腳本,輸出文件名為component名字,因此需要注意不要有特殊符號。代碼中的tmpl和savedir變量根據實際進行修改。
展開 ANSYS基于VC++6.0的二次開發ANSYS基于VC++6.0的二次開發與 相互作用分析在ANSYS中的實
④用戶可以添加新的功能或新的二次開發以實現程序升級。
(3)程序應具有良好的可移植性,不依賴于特定的硬件設備,只要能安裝ANSYS和VC++6.0的硬件環境都能使用本系統,保證程序使用的廣泛性。
(4)程序代碼應具有開放性和可重用性。這樣,在進一步的設計中,能保證設計者可以方便地對代碼進行修改擴充;同時,提供一定的設計接口,新的設計者可以根據接口,無須對程序進行大幅度的修改,就可以進行新的開發,以適應新的特殊要求。
程序的開發平臺是Microsoft VC++6.0、ANSYS6.1,基于WindowsXP編程。程序實現是利用微軟提供的Windows編程接口MFC和ANSYS公司的ANSYS/Multiphysics產品,采用面向對象的程序設計方法。
3程序的主要模塊和設計
如圖3-2所示,程序的主要模塊有:用戶界面模塊、ANSYS計算模塊、VC調用接口模塊和VC后處理模塊,分別論述如下:
3.1 ANSYS模塊
ANSYS為了滿足用戶的特殊需求,建立了開放的體系結構,提供了二次開發接口APDL、UIDL和UPFs(User Programming Features,用戶編程特性)等。其中,ANSYS接口允許用戶將自己的VC代碼連到ANSYS中去,或將ANSYS作為子程序調用,從而使ANSYS具備特殊的功能。
本文的ANSYS模塊是使用APDL語言進行二次開發的。在上面的二次開發中用到了參數化設計方法。參數是APDL的變量(它們更象FORTRAN變量,而不像FORTRAN參數),不必明確聲明參數類型,所有數值變量都以雙精度數存儲。被使用但未聲明的參數都被賦予接近0的“極小值”。在二次開發中使用參數化設計方法,增強了程序的易讀性和可移植性。用戶無須了解程序的具體結構只需改變參數值就可自動調用ANSYS模塊。
展開 
Hypermesh二次開發之蛛網螺栓批量建立 ¥15
采用Hypermesh中的二次開發可以有效加快模型處理效率,僅對符合連接的孔與孔之間創建螺栓結構,在非鉚接區域不予創建螺栓,效果如視頻所示。
文末有腳本內容及模型文件,如有需求可以進行獲取,十分感謝!
有限元軟件HyperMesh二次開發在汽車仿真行業的分析與應用
<o:p style="font-family:宋體, SimSun;font-size:14px;box-sizing: content-box;"></o:p>
5、HyperMesh二次開發實施過程<o:p style="font-family:宋體, SimSun;font-size:14px;box-sizing: content-box;"></o:p>
二次開發實施過程分為方案制定、目標確定、開發調試、應用驗證四個階段。<o:p style="font-family:宋體, SimSun;font-size:14px;box-sizing: content-box;"></o:p>
方案制定首先確定技術路線,然后確定二次開發的主要功能,最后規劃二次開發的工作流程。<o:p style="font-family:宋體, SimSun;font-size:14px;box-sizing: content-box;"></o:p>
目標確定需對各實際項目總結提煉,測試各種參數的影響,比對各種考察點選擇方案與各種壓頭模型和加載方案。<o:p style="font-family:宋體, SimSun;font-size:14px;box-sizing: content-box;"></o:p>
開發調試需固化各項參數設置,完成界面和主程序的開發,與傳統方法詳細比對和修正BUG改進功能。<o:p style="font-family:宋體, SimSun;font-size:14px;box-sizing: content-box;"></o:p>
應用驗證用于實際項目使用,驗證實際功能和效果并根據使用者反饋進一步改進。
展開 初識ABAQUS UMAT二次開發(二)
初識ABAQUS UMAT二次開發(二)
大家好,這一期小編接著上一期(初識ABAQUS UMAT二次開發)繼續向大家介紹ABAQUS軟件的UMAT二次開發功能。上一期我們說過ABAQUS是一款強大的非線性有限元軟件。
HyperMesh二次開發技術—插件界面開發
1.代碼實例
#新建過程subWindow
proc subWindow {} {
toplevel .subWindow -background {black}
wm overrideredirect .subWindow true
wm attribute .subWindow -topmost true
wm geometry .subWindow 296x120+300+250
frame .subWindow.f -relief flat
label .subWindow.f.label01 -text "" -width 1 -height 5 -background {black}
grid .subWindow.f.label01 -column 0 -row 0 -padx 2 -sticky ew
labelframe .subWindow.f.part01 -text "workPath" -width 25 -height 100
label .subWindow.f.part01.label00 -text "HomeDir" -font {arial 8 bold} -width 8
label .subWindow.f.part01.label10 -text "" -width 20 -height 2 -relief groove -borderwidth 4
button .subWindow.f.part01.button -text "Select" -width 5 -font {arial 8 bold}
grid .subWindow.f.part01.label00 -column 0 -row 0 -pady 18 -
展開