我想看一级黄色大片_久久亚洲国产精品一区二区_久久精品免视看国产明星_91久久青青青国产免费

您的位置:網站首頁 > CAD新聞

基于ABAQUS前、后處理模塊二次開發的應用

時間:2011-02-25 10:30:36 來源:

  1 ABAQUS/CAE處理過程和二次開發接口介紹

  ABAQUS/CAE處理有兩個程序:①內核程序;②GUI程序。內核程序實際上就是它的腳本語言,它采用的是Python語言,同時擴展了Python語言,額外提供了大約500個對象模型,對象模型之間的關系復雜,它們間部分關系如圖1所示。

  

  圖1 ABAQUS對象模型

  圖1中,Container表示容器,里面包括其他對象,而Singular object只表示單個對象。

  而對于GUI程序來說,它是一個方便用戶輸入或選擇參數的圖形用戶接口,ABAQUS/CAE是采用IPC協議來完成內核程序和GUI程序的通信的。它們之問的通信如圖2所示。

  

  圖2 內核程序和GUI程序的通信

  ABAQUS有限元程序通過集成Python語言向二次開發者提供了很多庫函數,通過ABAQUS腳本接口(ABAQUS Scripting Interrace),Python語言調用這些庫函數來增強ABAQUS的交互式操作功能。它允許用戶繞過ABAQUS/CAE的GUI(graphical user interfaces)直接與內核交互,可以大大提高工作效率或完成ABAQUS/CAE沒有提供的功能。但是兇為它沒有通過GUI,顯的不那么直觀,而且如想改變某些參數就不得不修改腳本程序,這些對一般用戶來說就顯的比較麻煩。因此,對ABAQUS二次開發一般應先開發出GUI后,讓用戶輸入或選擇有關參數后,然后生成ABAQUS的腳本語言來自動處理。ABAQUS的GUI是用ABAQUS GUI Toolkit來編寫,它也是對FOX GUIToolkit的拓展,它在編寫程序時也是遵循Python語言的格式。

  ABAQUS二次開發有如下幾種途徑:①通過用戶子程序可以開發新的模型,控制ABAQUS計算過程和結果;②通過環境初始化文件可以改變ABAQUS的許多缺省設置;③通過內核腳本建立的函數可以用于前處理建模和后處理分析計算結果;④通過GUI腳本可以創建新的圖形用戶界面。本文將使用聯合使用第3、4種方法,來實現對ABAQUS的前后處理的二次開發。

  2 應用舉例

  本文將以莊茁老師出版的《ABAQUS非線性有限元分析與實例》一書中的P392頁的ABAQUS/Explicit凹槽成型為例來說明二次開發在ABAQUS中的應用。在本文中我們將使用GUI來方便用戶選擇或輸入參數,而在對ABAQUS的界面開發有兩種方法,一是建立自己的應用程序,另一種是在ABAQUS的Plugins菜單中加載自己的菜單來實現。在本文中將分別使用這兩種方法來完成預期的功能。

  2.1 二次開發在前處理中的應用

  我們都知道二次開發在前處理中主要功能是提高工作效率,對與上述例題如按照一般步驟來要完成先建模、創建材料特性、裝配等過程。而在建模和裝配過程中是比較費時的,尤其是在裝配過程中容易出錯。本節將使用第一種方法即開發出自己應用程序的界面,只要用戶輸入相關參數就可是自動完成建模和裝配任務,以提高工作效率。

  要開發出自己的應用程序就必須綜合應用Python語言和ABAQUS GUI Toolkit進行編程。為了使程序編寫方便和便于檢查錯誤,我們把不同功能的程序寫在不同的文件中(也叫不同模塊)。通過模塊問的調用來完成整個過程。在調試好程序后,我們可以在ABAQUS Command中輸入如下語句:abaqus cae-custom meichongyaApp-noStartup然后回車即可。圖3是開發出來的自己應用程序界面。在工具欄菜單中選擇chongy-Part and Assembly就可以得到網4的界面。在輸入如圖4的相關參數后,按下OK鍵就可以得到我想要的結果如圖5所示。圖6表示了不同模塊之問的調用關系。

  

  圖3 應用程序界面

  

  圖4 用戶輸入對話框

  

  圖5 裝配效果圖

  

jpg

  圖6 不同模塊間的調用關系

  在圖6中meichongyaApp模塊的主要作用是修改標準的ABAQUS/CAE GUI并初始化應用程序。chongyaMainWindow模塊的主要作用是創建主窗口并加載相關標準菜單和模塊。chongyaGuiModule模塊的主要作用是定義用戶自己的菜單,并初始化。honyga模塊。chongyaForm模塊中主要完成相關關鍵字的定義、定義好getFirstDialog并為AFXGuiCommand定義好參數。chongya模塊的作用是按照圖4的參數來創建模型并自動完成裝配功能。

  chongyaD B模塊的作用是應用ABAQUS GUI Toolkit來完成對圖4的界面的排序功能,并調用Icons。模塊或相關圖片。本例中在此使用是調用圖片,如果,要使用調用Icon。模塊的方法則要用XPM圖片數據作為Python的字符列表來定義icon,這樣比較麻煩,尤其對于復雜的圖形。(注:ABAQUS GUI Toolkit支持以下n種格式來創建icon;① XPM格式;QBMP格式;③ GIF格式;.PNG格式,而后三種格式是一般的繪圖軟件就支持的格式,如windows自帶的畫圖軟件就支持后三種格式,這樣我們就可以不要去寫復雜的Python語句了)。

  2.2二次開發在后處理中的應用

  在完成裝配后,分別定義好材料屬性、分析步、接觸類型、邊界條件和載荷、單元類型和網格劃分就可以提交任務分析,最后在ABAQUS的Visualization模塊中查看分析結果。在查看我們關心的結果之前,我們要判斷此結果是否是準靜態的,而對此判斷有一個好的方法即比較動能(ALLKE)和內能(ALLIE)的歷史。在金屬成型分析中,大部分的內能是由于塑性變形產生的,在此模型中,為了確定是否是獲得一個可接受的準靜態結果,動能應該小于其內能幾個百分點。

  但是,ABAQUS后處理模塊中并沒有直接提供動能和內能的歷史動態的比值。因此在這里我們將使用上述所提到的第二種方法即在ABAQUS的Plug-ins菜單中加載自己的菜單來實現。如圖7所示是在Plugins菜單中加入自己菜單。選擇Result-Energy rate就可以彈出如圖8所示的對話框,這是我們這要選擇”Plot”按鈕就可以得到我們想要的結果了,結果如圖9所示。從圖9我們可以看出除了在開始階段外的整個分析步中.動能是相對于內能是一個很小的百分數。從而我們可以直接判斷此結果是準靜態的。圖10表示在Plug-ins菜單中二次開發不同模塊的調用關系。

  

  圖7 Plug-ins中二次開發菜單

  

  圖8 用戶選擇對話框

  

  圖9 動能和內能歷史比例關系

  

  圖10 plug-ins菜單中不同模塊調用關系

  energy_plugin模塊主要完成關鍵字的定義并調用energyDB模塊;同時在Plug-ins菜單中加入自己的菜單并導入energy模塊。

  energyDB模塊主要作用是完成對圖8的排序功能,energy模塊的作用是應用Python語言來實現動能和內能的動態歷史比值,如圖9所示。我們通過比較圖6和圖10不難看出,第二種方法比第一種方法要簡單,但是第一種方法可以實現許多第二種方法實現不了的功能,如修改或刪除ABAQUS/CAE的丁具欄或一些模塊、改變程序名稱等。所以,相對簡單的二次開發我們就可以用第二種方法,而要想實現復雜的功能則用第一種方法。

  3 注意點

  (1)兇為本文是要在自己開發的程序中添加了標準的Plug-ins菜單,但是Plug-ins菜單的添加方法和別的標準菜單的添加方法不一樣(如:File、View等)。在本文的3.1節中我們已經提到過一般標準菜單是在書MainWindow模塊中添加的。如加載File菜單使用的語句為self.registerToolset(FileToolsetGui(),GUI-IN-MENUBAR GUI-IN-TOOLBAR)而Plug-ins菜單的添加方法和上面的方法不一樣,它使用registerPluginToolset()語句就可以了,并且此語句不是放在加載標準菜單的模塊中(如:本例的chongyaMainWindow模塊),而是放在初始化程序(如本例的meichongyaApp模塊)模塊中。

  (2)因為ABAQUS在執行這些模塊時,首先是對它們進行編譯,并自動創建相應的*.pyc文件,這樣如果把所有的文件都放在Temp目錄下,只顯得很亂,并且一答程序出現問題,也不好找,如果我們在Temp目錄下建立一個文件夾把除了初始化程序(如本例的meichongyaApp模塊)都發在里面,這樣就顯的有條理并且一但程序發生錯誤我們可以很快的找到相應的文件。如本文中3.1節把除了初始化程序所用的程序(模塊)都發在名稱為mei的文件夾內,此時應注意要在文件夾內加上一個名稱為_init_.PY程序文件,它的內容只有一句話:pass,如果不加此程序,則會出現ImportError:No module named meiehongya.ehongyaMainWindow錯誤提示。

  4 結束語

  本文基于ABAQUS軟件使用python語言和ABAQUS GUI Toolkit開發出自己應用程序,并把Plug-ins菜單加到應用程序中,其主要目的是充分利用在Plug-ins菜單中二次開發簡便性;通過開發出對話框可以使本應用程序更加容易被用戶所接受。在前處理的二次開發中可以自動完成建模、裝配等任務,這樣可以減少工作強度,提高有限元軟件的使用效率;在后處理二次開發在中,通過動能和內能的比較,從而判斷結果是否是準靜態的,為后續分析提供依據。同時文中分析了ABAQUS的界面開兩種方法的優缺點,這對有關ABAQUS其它方面的二次開發有一定的參考價值。