(河北建筑工程學院 土木工程學院 河北 張家口 075000)
Python語言是一種功能強大具有解釋性、交互性和面向對象的編程語言。Python語言表達優美、簡潔,它有豐富的第三方數據庫,使得開發代碼效率非常高,可以實現如正則表
達式、文檔生成、FTP、WAV、GUI 等有關系統的操作。ABAQUS的前、后處理器為用戶提供了廣泛的功能,Python語言腳本可實現自動、重復化建模,執行參數化研究,訪問結果數據庫等。本文介紹利用Python腳本對鋼框架后處理的二次開發。
ABAQUS 提供了用于二次開發的腳本接口,該接口基于Python語言,極大豐富了ABAQUS的功能。ABAQUS 腳本接口是Python語言的一個擴展,可以使用Python語言編制腳本接口可以執行的程序,從而實現自動化重復性的工作、創建和修改模型數據庫、訪問數據庫的功能。
ABAQUS二次開發有如下幾種途徑:(1)用戶子程序可以開發新的模型,控制ABAQUS計算過程和計算結果;(2)通過環境初始化文件可以改變ABAQUS的許多缺省設置;(3)通過腳本繞過內核直接實現前處理建模和后處理分析結果提取;(4)利用GUI腳本創建新的圖形用戶界面實現人機交互。
編寫好的腳本文件在ABAQUS的執行過程表示為:ABAQUS自帶的Python解釋器解釋腳本語言;通過內核執行腳本命令并生成inp文件;賦予分析器有限元計算命令文件;最后在本地文件夾中生成結果文件,流程如圖1所示。
Python語言編碼導入ABAQUS軟件中的途徑有:(1)在ABAQUS/CAE命令流端口CLI中直接將編碼打進去按回車;或者直接編寫讀取外部腳本的命令:execfile(‘文件名’)。(2)利用Run Script功能鍵導入外部腳本,在 ABAQUS剛啟動時界面或者菜單欄中都可找到。(3)在啟ABAQUS/CAE時在命令窗口輸命令啟動腳本:abaqus cae script =文件名。其中第(2)(3)種方法得到結果較為迅速,因為方法(1)編碼還需要通過內核翻譯。

圖1 腳本語言環境通信關系
設計某三層鋼框架,各層梁、柱為工字型鋼且各層梁柱尺寸都相同,樓板為混凝土現澆內部未放置鋼筋。模擬鋼框架地震作用,在底柱末端施加x方向的地震波研究梁柱受力情況。耗能一定程度上體現了該樓層的受力情況。

利用Python語言腳本可快速提取個層柱的塑性耗能分布,主要編碼如下:
from odbAccess import*
import visualization
vp=session.viewports[session.currentViewprtName]
odb = vp.displayedObject
step1=odb.steps['DZB']
lastFrame=step1.frames[-1]
All = odb.rootAssembly.instances['--'].elementSets['--']
energy = lastFrame.fieldOutputs['ELPD']
AllEnergy = energy.getSubset(region=All)
print '塑性耗能:',v.elementLabel,v.data
#得到指定部件內單元的耗能列表
若想得到某個樓層所以柱單元塑性耗能和,輸入如下代碼實現:
sum=0
for v in AllEnergy.values:
sum = sum + v
print'總塑性耗能:',sum.data
通過上面Python語言腳本得到的各層柱單元耗能總和從一層開始分別為:1985978.0、684433.5和94595.1。可以發現底層柱耗能最大,第二層其次,頂層柱的耗能最小,固底層柱受到的作用力更大,是抗震的關鍵。
本文敘述了用Python語言腳本對ABAQUS進行二次開發,實現后處理數據的提取和計算,得到鋼框架各樓層塑性耗能的總和來分析樓層受力情況,對分析結構抗震有重要意義。