1 ABAQUS/CAE處理過程和二次開發(fā)接口介紹
ABAQUS/CAE處理有兩個程序:①內(nèi)核程序;②GUI程序。內(nèi)核程序?qū)嶋H上就是它的腳本語言,它采用的是Python語言,同時擴展了Python語言,額外提供了大約500個對象模型,對象模型之間的關(guān)系復雜,它們間部分關(guān)系如圖1所示。

圖1 ABAQUS對象模型
圖1中,Container表示容器,里面包括其他對象,而Singular object只表示單個對象。
而對于GUI程序來說,它是一個方便用戶輸入或選擇參數(shù)的圖形用戶接口,ABAQUS/CAE是采用IPC協(xié)議來完成內(nèi)核程序和GUI程序的通信的。它們之問的通信如圖2所示。

圖2 內(nèi)核程序和GUI程序的通信
ABAQUS有限元程序通過集成Python語言向二次開發(fā)者提供了很多庫函數(shù),通過ABAQUS腳本接口(ABAQUS Scripting Interrace),Python語言調(diào)用這些庫函數(shù)來增強ABAQUS的交互式操作功能。它允許用戶繞過ABAQUS/CAE的GUI(graphical user interfaces)直接與內(nèi)核交互,可以大大提高工作效率或完成ABAQUS/CAE沒有提供的功能。但是兇為它沒有通過GUI,顯的不那么直觀,而且如想改變某些參數(shù)就不得不修改腳本程序,這些對一般用戶來說就顯的比較麻煩。因此,對ABAQUS二次開發(fā)一般應(yīng)先開發(fā)出GUI后,讓用戶輸入或選擇有關(guān)參數(shù)后,然后生成ABAQUS的腳本語言來自動處理。ABAQUS的GUI是用ABAQUS GUI Toolkit來編寫,它也是對FOX GUIToolkit的拓展,它在編寫程序時也是遵循Python語言的格式。
ABAQUS二次開發(fā)有如下幾種途徑:①通過用戶子程序可以開發(fā)新的模型,控制ABAQUS計算過程和結(jié)果;②通過環(huán)境初始化文件可以改變ABAQUS的許多缺省設(shè)置;③通過內(nèi)核腳本建立的函數(shù)可以用于前處理建模和后處理分析計算結(jié)果;④通過GUI腳本可以創(chuàng)建新的圖形用戶界面。本文將使用聯(lián)合使用第3、4種方法,來實現(xiàn)對ABAQUS的前后處理的二次開發(fā)。
2 應(yīng)用舉例
本文將以莊茁老師出版的《ABAQUS非線性有限元分析與實例》一書中的P392頁的ABAQUS/Explicit凹槽成型為例來說明二次開發(fā)在ABAQUS中的應(yīng)用。在本文中我們將使用GUI來方便用戶選擇或輸入?yún)?shù),而在對ABAQUS的界面開發(fā)有兩種方法,一是建立自己的應(yīng)用程序,另一種是在ABAQUS的Plugins菜單中加載自己的菜單來實現(xiàn)。在本文中將分別使用這兩種方法來完成預期的功能。
2.1 二次開發(fā)在前處理中的應(yīng)用
我們都知道二次開發(fā)在前處理中主要功能是提高工作效率,對與上述例題如按照一般步驟來要完成先建模、創(chuàng)建材料特性、裝配等過程。而在建模和裝配過程中是比較費時的,尤其是在裝配過程中容易出錯。本節(jié)將使用第一種方法即開發(fā)出自己應(yīng)用程序的界面,只要用戶輸入相關(guān)參數(shù)就可是自動完成建模和裝配任務(wù),以提高工作效率。
要開發(fā)出自己的應(yīng)用程序就必須綜合應(yīng)用Python語言和ABAQUS GUI Toolkit進行編程。為了使程序編寫方便和便于檢查錯誤,我們把不同功能的程序?qū)懺诓煌奈募?也叫不同模塊)。通過模塊問的調(diào)用來完成整個過程。在調(diào)試好程序后,我們可以在ABAQUS Command中輸入如下語句:abaqus cae-custom meichongyaApp-noStartup然后回車即可。圖3是開發(fā)出來的自己應(yīng)用程序界面。在工具欄菜單中選擇chongy-Part and Assembly就可以得到網(wǎng)4的界面。在輸入如圖4的相關(guān)參數(shù)后,按下OK鍵就可以得到我想要的結(jié)果如圖5所示。圖6表示了不同模塊之問的調(diào)用關(guān)系。

圖3 應(yīng)用程序界面

圖4 用戶輸入對話框

圖5 裝配效果圖

圖6 不同模塊間的調(diào)用關(guān)系
在圖6中meichongyaApp模塊的主要作用是修改標準的ABAQUS/CAE GUI并初始化應(yīng)用程序。chongyaMainWindow模塊的主要作用是創(chuàng)建主窗口并加載相關(guān)標準菜單和模塊。chongyaGuiModule模塊的主要作用是定義用戶自己的菜單,并初始化。honyga模塊。chongyaForm模塊中主要完成相關(guān)關(guān)鍵字的定義、定義好getFirstDialog并為AFXGuiCommand定義好參數(shù)。chongya模塊的作用是按照圖4的參數(shù)來創(chuàng)建模型并自動完成裝配功能。
chongyaD B模塊的作用是應(yīng)用ABAQUS GUI Toolkit來完成對圖4的界面的排序功能,并調(diào)用Icons。模塊或相關(guān)圖片。本例中在此使用是調(diào)用圖片,如果,要使用調(diào)用Icon。模塊的方法則要用XPM圖片數(shù)據(jù)作為Python的字符列表來定義icon,這樣比較麻煩,尤其對于復雜的圖形。(注:ABAQUS GUI Toolkit支持以下n種格式來創(chuàng)建icon;① XPM格式;QBMP格式;③ GIF格式;.PNG格式,而后三種格式是一般的繪圖軟件就支持的格式,如windows自帶的畫圖軟件就支持后三種格式,這樣我們就可以不要去寫復雜的Python語句了)。
2.2二次開發(fā)在后處理中的應(yīng)用
在完成裝配后,分別定義好材料屬性、分析步、接觸類型、邊界條件和載荷、單元類型和網(wǎng)格劃分就可以提交任務(wù)分析,最后在ABAQUS的Visualization模塊中查看分析結(jié)果。在查看我們關(guān)心的結(jié)果之前,我們要判斷此結(jié)果是否是準靜態(tài)的,而對此判斷有一個好的方法即比較動能(ALLKE)和內(nèi)能(ALLIE)的歷史。在金屬成型分析中,大部分的內(nèi)能是由于塑性變形產(chǎn)生的,在此模型中,為了確定是否是獲得一個可接受的準靜態(tài)結(jié)果,動能應(yīng)該小于其內(nèi)能幾個百分點。
但是,ABAQUS后處理模塊中并沒有直接提供動能和內(nèi)能的歷史動態(tài)的比值。因此在這里我們將使用上述所提到的第二種方法即在ABAQUS的Plug-ins菜單中加載自己的菜單來實現(xiàn)。如圖7所示是在Plugins菜單中加入自己菜單。選擇Result-Energy rate就可以彈出如圖8所示的對話框,這是我們這要選擇”Plot”按鈕就可以得到我們想要的結(jié)果了,結(jié)果如圖9所示。從圖9我們可以看出除了在開始階段外的整個分析步中.動能是相對于內(nèi)能是一個很小的百分數(shù)。從而我們可以直接判斷此結(jié)果是準靜態(tài)的。圖10表示在Plug-ins菜單中二次開發(fā)不同模塊的調(diào)用關(guān)系。

圖7 Plug-ins中二次開發(fā)菜單

圖8 用戶選擇對話框

圖9 動能和內(nèi)能歷史比例關(guān)系

圖10 plug-ins菜單中不同模塊調(diào)用關(guān)系
energy_plugin模塊主要完成關(guān)鍵字的定義并調(diào)用energyDB模塊;同時在Plug-ins菜單中加入自己的菜單并導入energy模塊。
energyDB模塊主要作用是完成對圖8的排序功能,energy模塊的作用是應(yīng)用Python語言來實現(xiàn)動能和內(nèi)能的動態(tài)歷史比值,如圖9所示。我們通過比較圖6和圖10不難看出,第二種方法比第一種方法要簡單,但是第一種方法可以實現(xiàn)許多第二種方法實現(xiàn)不了的功能,如修改或刪除ABAQUS/CAE的丁具欄或一些模塊、改變程序名稱等。所以,相對簡單的二次開發(fā)我們就可以用第二種方法,而要想實現(xiàn)復雜的功能則用第一種方法。
3 注意點
(1)兇為本文是要在自己開發(fā)的程序中添加了標準的Plug-ins菜單,但是Plug-ins菜單的添加方法和別的標準菜單的添加方法不一樣(如:File、View等)。在本文的3.1節(jié)中我們已經(jīng)提到過一般標準菜單是在書MainWindow模塊中添加的。如加載File菜單使用的語句為self.registerToolset(FileToolsetGui(),GUI-IN-MENUBAR GUI-IN-TOOLBAR)而Plug-ins菜單的添加方法和上面的方法不一樣,它使用registerPluginToolset()語句就可以了,并且此語句不是放在加載標準菜單的模塊中(如:本例的chongyaMainWindow模塊),而是放在初始化程序(如本例的meichongyaApp模塊)模塊中。
(2)因為ABAQUS在執(zhí)行這些模塊時,首先是對它們進行編譯,并自動創(chuàng)建相應(yīng)的*.pyc文件,這樣如果把所有的文件都放在Temp目錄下,只顯得很亂,并且一答程序出現(xiàn)問題,也不好找,如果我們在Temp目錄下建立一個文件夾把除了初始化程序(如本例的meichongyaApp模塊)都發(fā)在里面,這樣就顯的有條理并且一但程序發(fā)生錯誤我們可以很快的找到相應(yīng)的文件。如本文中3.1節(jié)把除了初始化程序所用的程序(模塊)都發(fā)在名稱為mei的文件夾內(nèi),此時應(yīng)注意要在文件夾內(nèi)加上一個名稱為_init_.PY程序文件,它的內(nèi)容只有一句話:pass,如果不加此程序,則會出現(xiàn)ImportError:No module named meiehongya.ehongyaMainWindow錯誤提示。
4 結(jié)束語
本文基于ABAQUS軟件使用python語言和ABAQUS GUI Toolkit開發(fā)出自己應(yīng)用程序,并把Plug-ins菜單加到應(yīng)用程序中,其主要目的是充分利用在Plug-ins菜單中二次開發(fā)簡便性;通過開發(fā)出對話框可以使本應(yīng)用程序更加容易被用戶所接受。在前處理的二次開發(fā)中可以自動完成建模、裝配等任務(wù),這樣可以減少工作強度,提高有限元軟件的使用效率;在后處理二次開發(fā)在中,通過動能和內(nèi)能的比較,從而判斷結(jié)果是否是準靜態(tài)的,為后續(xù)分析提供依據(jù)。同時文中分析了ABAQUS的界面開兩種方法的優(yōu)缺點,這對有關(guān)ABAQUS其它方面的二次開發(fā)有一定的參考價值。
相關(guān)文章
- 2021-09-08BIM技術(shù)叢書Revit軟件應(yīng)用系列Autodesk Revit族詳解 [
- 2021-09-08全國專業(yè)技術(shù)人員計算機應(yīng)用能力考試用書 AutoCAD2004
- 2021-09-08EXCEL在工作中的應(yīng)用 制表、數(shù)據(jù)處理及宏應(yīng)用PDF下載
- 2021-08-30從零開始AutoCAD 2014中文版機械制圖基礎(chǔ)培訓教程 [李
- 2021-08-30從零開始AutoCAD 2014中文版建筑制圖基礎(chǔ)培訓教程 [朱
- 2021-08-30電氣CAD實例教程AutoCAD 2010中文版 [左昉 等編著] 20
- 2021-08-30電影風暴2:Maya影像實拍與三維合成攻略PDF下載
- 2021-08-30高等院校藝術(shù)設(shè)計案例教程中文版AutoCAD 建筑設(shè)計案例
- 2021-08-29環(huán)境藝術(shù)制圖AutoCAD [徐幼光 編著] 2013年P(guān)DF下載
- 2021-08-29機械A(chǔ)utoCAD 項目教程 第3版 [繆希偉 主編] 2012年P(guān)DF