
發(fā)布
注冊
/
登錄odb文件處理的案例
Abaqus采用Python 處理多個odb文件輸出excel ¥3
Python腳本操作ODB文件進行計算結(jié)果數(shù)據(jù)提取方面具有快速高效的優(yōu)勢。
因計算要求,需計算大量模型,得到的數(shù)量居多的結(jié)果文件,目前網(wǎng)上很多代碼均針對單一odb文件的結(jié)果進行處理,并未有針對多模型,多數(shù)據(jù)進行輸出到excel表格的。故針對此需要編寫了python代碼。
Abaqus-利用python處理有多個instances的odb文件,得到inp模型數(shù)據(jù)用于前處理
在一些情況下,odb文件中包含有多個instances,instances之間會有節(jié)點和單元是重合。很多情況下需要得到該odb模型數(shù)據(jù),并將其導入hypermesh進行前處理。如果直接從abaqus中得到odb模型數(shù)據(jù)的inp輸入導入到hypermesh中,會有重合節(jié)點和單元報錯,然而利用python可以解決該問題。
abaqus 2017屈曲分析后處理odb轉(zhuǎn)vtu python文件 ¥100
(1)abaqus 2017屈曲分析后處理odb轉(zhuǎn)vtu python文件
(2)單元介紹
##############################################后處理函數(shù)
# CAX3: 三節(jié)點三角形單元,用于二維和三維分析。
# CAX4R: 四節(jié)點四邊形單元,用于二維和三維分析。
# C3D8: 八節(jié)點六面體單元,用于三維分析。
# C3D8R: 八節(jié)點六面體單元,具有簡化的積分方案,用于三維分析。
# C3D6: 六節(jié)點楔形單元,用于三維分析。
# C3D4: 四節(jié)點四面體單元,用于三維分析。
# S4: 四節(jié)點殼單元,用于二維和三維分析。
# S3: 三節(jié)點殼單元,用于二維和三維分析。
展開 利用Python批量打開ODB文件,提取位移數(shù)據(jù)寫入txt文件 ¥2
借助abaqus在參數(shù)分析時經(jīng)常遇見大量的odb數(shù)據(jù)需要處理,本人結(jié)合個人經(jīng)驗,編制了以下腳本,可打開多個odb模型,并進行數(shù)據(jù)處理。
odb模型列表如下:
Job-2000.odb
Job-2500.odb
Job-3000.odb
Job-3500.odb
Job-4000.odb

ODB to Output2:將ABAQUS結(jié)果文件轉(zhuǎn)譯為NASTRAN的output2文件
這個問題的主要原因是:比如nCode2018只支持ABAQUS2017的odb文件。甚至軟件如果更新的比較頻繁,發(fā)布的月份都會有影響。
我在工作中就遇見過類似的問題:ABAQUS2018版本的odb文件不能被nCode2018和Altair2018讀取。通過錯誤提示,我發(fā)現(xiàn)nCode2018和Altair2018均只支持ABAQUS2017。
所以我采用的解決方法是使用ABAQUS內(nèi)置的轉(zhuǎn)譯功能將odb文件轉(zhuǎn)譯成output2文件,這樣一來2018的odb就變成了2017的output2,就可以在nCode2018和Altair2018之間通用了。
ABAQUS提供的轉(zhuǎn)譯語句是:
abaqus toOutput2 job=jobname odb=odbname step=stepid
使用方法:
打開Abaqus Command;
指定當前工作目錄到需要轉(zhuǎn)譯的odb文件所在的目錄;
鍵入命令:abaqus toOutput2 job=jobname odb=odbname step=stepid。
展開 ODB數(shù)據(jù)庫批量處理 ¥27
可以批量提取某路徑下所有ODB相應節(jié)點集或單元集的應力S,應變LE,位移U和RF
Abaqus odb文件無法導入
odb文件在另一個電腦上打開時報錯,Error in converting the odb file. ipc_CONNECTIONBROKEN
在Fe-safe中識別ODB文件
對于一個多部件問題,在ABAQUS中采用動力學顯示分析生成ODB文件后,導入Fe-safe中讀取后出現(xiàn)零部件識別不全的問題,想知道是什么原因?qū)е碌模趺唇鉀Q?
abaqus非線性屈曲odb轉(zhuǎn)為vtu文件(v2017) ¥200
<div contenteditable="false" width="100%">
maxlpfindex = 10 #8階,求解階數(shù)
</div><div contenteditable="false" width="100%">
meshtype = "UnstructuredGrid" #支持六面體網(wǎng)格
</div><div contenteditable="false" width="100%">
job_name = "Job-2" # odb名字
</div><div contenteditable="false" width="100%">
workdir = "E:/test" #從# 案例路徑
</div><div contenteditable="false" width="100%">
step_name = "Step-1"
</div><div contenteditable="false" width="100%">
#調(diào)用方法
</div><div contenteditable="false" width="100%">
Nonlinear_vtu(workdir, job_name, step_name, maxlpfindex,meshtype)
</div><div contenteditable="false" width="100%">1)適合非線性屈曲分析將odb轉(zhuǎn)為vtu ,STE類型 :static Riks</div><div contenteditable="false" width="100%">2)雙擊 test.bat</div><p><br></p>
展開 一個提高訪問Abaqus結(jié)果ODB文件效率的方法技巧
另外一個問題,如果需要訪問多個frame,也是有兩種方式:
方式1:
for i in range(len(odb.steps[name].frames)-1):
frame[i] = odb.steps[name].frames[i]
方式2:
frameRepository = odb.steps[name].frames
for i in range(len(frameRepository)-1):
frame[i] = frameRepository[i]
明顯,方式2是更經(jīng)濟的做法。
使用python進行ABAQUS批處理,自動識別文件夾內(nèi)的待處理inp文件 ¥10
平時工作中,有時會接手好多項目,或者一個項目需要使用不同的參數(shù)進行分析,并且如果涉及非線性的分析會耗時很久,為了有效的利用時間,我決定下班的時間讓工作站自動計算,計算完成后工作站關(guān)機,并在此基礎(chǔ)上,構(gòu)思了使用Python自動識別工作文件夾內(nèi)的待計算inp文件然后順序提交求解。
程序描述:
獲取當前工作目錄后,創(chuàng)建用于存放結(jié)算結(jié)果的Result文件夾;
獲取當前文件夾的文件信息列表,并對該信息列表進行遍歷提交;
遍歷操作:如果這個文件是inp文件,則根據(jù)該文件提交ABAQUS求解,提取其文件名并將名字中的'.'替換為'-'(該替換是因為在使用CAE GUI提交的時候不允許有'.',使用非ABAQUS前處理生成inp的時候文件名有可能會帶有ABAQUS提交計算時的非法字符);
重新獲取當前文件夾的文件信息,并根據(jù)后綴類型進行保存或刪除,'.inp' '.sta' '.odb''.msg'被保存,其余的刪除,如果需要保存別的類型文件,就在類型判斷中添加即可;
工作站自動關(guān)機,如果不需要自動關(guān)機,那么可以將程序的最后兩行使用#進行注釋化或者刪除。
由于我并未選擇保留py文件,所以注意該程序的備份。
使用方法:
新建一個文件夾,將需要計算的inp文件與用于提交求解的py文件復制進去;
打開ABAQUS command,將當前工作目錄設置為1中建立的文件夾;
使用命令abaqu cae noGUI=python_BatchAbaqus.py進行求解。
如果各位大俠在使用該程序過程中出現(xiàn)什么問題或者有什么好的建議,歡迎留言交流。
展開 
#從odb或stl文件提取變形后的幾何模型插件(三維) ¥199
<p>ABAQUS采用拉格朗日網(wǎng)格計算分析的時候,總是會遇到網(wǎng)格畸變過大導致不收斂的問題,那么這個時候我們網(wǎng)格是通過采用網(wǎng)格的重新劃分就可以解決,對于二維模型的網(wǎng)格重新劃分,我們在前面的帖子已經(jīng)介紹過了,但是對于三維模型而言,ABAQUS中沒有直接從結(jié)果odb提取幾何模型的命令,所以,我們就采用插件更加方便簡潔地提取變形后的幾何模型,具體操作如下:</p><p>1 假如我們獲得了一個odb文件,變形前后的模型如下:</p><div contenteditable="false" width="100%"><div><img src="https://img.jishulink.com/upload/201812/9213d092eabe4d649aa839525bb4a192.jpg" title="a.jpg" alt="a.jpg" style="max-width:760px;" data-mobile-src="https://img.jishulink.com/upload/201812/9213d092eabe4d649aa839525bb4a192.jpg?image_process=/format,webp/quality,q_40/resize,w_400" data-pc-src="https://img.jishulink.com/upload/201812/9213d092eabe4d649aa839525bb4a192.jpg?
展開 abaqus地鐵盾構(gòu)開挖三維模型(CAE+ODB+INP文件)。 ¥88
abaqus地鐵盾構(gòu)開挖三維模型(CAE+ODB+INP文件)。模擬巖土體,等代層、管片、盾構(gòu)等,注漿壓力,考慮地應力平衡。包含所有操作步驟CAE及結(jié)果文件ODB,精品資料,助您學習事半功倍!
用python保存odb文件中每一幀的mises應變
直接在abaqus里面調(diào)用就可以了
from abaqus import *
from abaqusConstants import *
from odbAccess import *
import numpy as np
import os
SavePath = 'G:/Abaqus_jobFile/6/'
odb = openOdb(path='G:/Abaqus_jobFile/6.odb ')
for i in range(len(odb.steps['static'].frames)):
frame = odb.steps['static'].frames[i]
#print frame.frameId
fileName = SavePath + str(frame.frameId)+'.txt'
with open(fileName,'a') as f:
s_field = frame.fieldOutputs['S'].values
for j in s_field:
data = str(j.elementLabel)+'\t' +str(j.mises) + '\n'
f.write(data)
展開 Abaqus采用Python腳本提取ODB信息,輸出為VTK的UnstructureGrid文件格式 ¥49.99
在有些場景下,需要將Abaqus計算結(jié)果提取出來保存為VTK格式,用于一些可視化和數(shù)據(jù)處理(VTK在可視化這方面還是強大)。最近寫了兩個腳本,一個是保存VTK非結(jié)構(gòu)網(wǎng)格格式的文件,一個是提取Abaqus計算結(jié)果中的網(wǎng)格信息、field信息,將兩個腳本結(jié)合起來就可以實現(xiàn)提取ODB中的信息,并保存成為VTK非結(jié)構(gòu)網(wǎng)格文件,當然,還是需要有Abaqus環(huán)境。
注意:提取ODB信息的那個腳本目前僅僅是針對我自己提供的那個算例,有能力的朋友完全可以修改一下用于自己的情況。寫VTK非結(jié)構(gòu)網(wǎng)格文件的那個腳本目前應該沒有太大的bug。ODB信息的提取還是需要有Abaqus環(huán)境,并不是解析二進制文件。請看清楚再確定是否需要。
之所以做這個,還是希望慢慢完善,從而積累出一定數(shù)量的腳本,用于ODB數(shù)據(jù)的提取。
以下是abaqus中的網(wǎng)格和云圖,和用paraview查看的vtk文件的網(wǎng)格和云圖:
展開