不知火舞的被虐|伊人天伊人天天综合网|博洛尼亚天气|任你懆这里只有精品4|久久美日韩精品久久|掌中之物漫画免费阅读观看|0丨d老妇

ODB++的案例

abaqus 獲取odb場輸出中某一集合的數據
contextscope=all odb = openOdb(path='Job-2.odb') # 打開odb文件 print odb.rootAssembly.elementSets.keys() # 查看odb文件中可用的單元集合 elementset=odb.rootAssembly.elementSets[odb.rootAssembly.elementSets.keys()[1]] # 創建一個OdbSet stressField = odb.steps['Step-1'].frames[1].fieldOutputs['S'] # 創建整個場輸出數據 field = stressField.getSubset(region=elementset, position=INTEGRATION_POINT, elementType='C3D6') # 獲取單元集的輸出數據 fieldValues = field.values # fieldValues的數據類型為 FieldValueArray for v in fieldValues: print v # 想獲取什么內容,就輸入對應的名稱,比如v.data=[ 1.71781802177429, 0.00304327975027263, 0.0132824070751667, 1.27494768094039e-05, 8.11893332866021e-05,-0.0778346583247185] # v.elementLabel=18080 #{'baseElementType': 'C3D6', 'conjugateData': None, 'conjugateDataDouble': 'unknown', # 'data': array([1.71781802177429, 0.00304327975027263
展開
ODB to Output2:將ABAQUS結果文件轉譯為NASTRAN的output2文件
這個問題的主要原因是:比如nCode2018只支持ABAQUS2017的odb文件。甚至軟件如果更新的比較頻繁,發布的月份都會有影響。 我在工作中就遇見過類似的問題:ABAQUS2018版本的odb文件不能被nCode2018和Altair2018讀取。通過錯誤提示,我發現nCode2018和Altair2018均只支持ABAQUS2017。 所以我采用的解決方法是使用ABAQUS內置的轉譯功能將odb文件轉譯成output2文件,這樣一來2018的odb就變成了2017的output2,就可以在nCode2018和Altair2018之間通用了。 ABAQUS提供的轉譯語句是: abaqus toOutput2 job=jobname odb=odbname step=stepid 使用方法: 打開Abaqus Command; 指定當前工作目錄到需要轉譯的odb文件所在的目錄; 鍵入命令:abaqus toOutput2 job=jobname odb=odbname step=stepid。
展開
利用Python批量打開ODB文件,提取位移數據寫入txt文件 ¥2
借助abaqus在參數分析時經常遇見大量的odb數據需要處理,本人結合個人經驗,編制了以下腳本,可打開多個odb模型,并進行數據處理。 odb模型列表如下: Job-2000.odb Job-2500.odb Job-3000.odb Job-3500.odb Job-4000.odb
利用Python提取ABAQUS的.odb結果中的輪軌接觸信息 ¥500
ABAQUS 顯式explicit計算時所有結果都將寫入到.odb文件中,在GUI界面進行數據提取時效率較低,且有些詳細結果不能直接從.odb中獲取。因此,需要利用python讀取.odb,然后進行提取關心的數據,以此進行下一步計算。
ODB++圖1
abaqus 2017屈曲分析后處理odb轉vtu python文件 ¥100
(3)輸出 VTU 格式文件, 輸出位移 (4)函數調用buckle_output_result_vtu(job_path, job_name, step_name, Numeig,meshtype) #job_path路徑 #job_name:odb名字 #step_name:載荷步名字 #Numeig:特征值個數 #meshtype = "UnstructuredGrid" 部分代碼: def buckle_output_result_vtu(job_path, job_name, step_name, Numeig,meshtype): #import abaqusConstants odb = odbAccess.openOdb(path=os.path.join(job_path, str(job_name) + ".odb")) write_eigenvalue_list(job_path,job_name,step_name) assembly = odb.rootAssembly step = odb.steps[step_name] try: for frame_index in range(1,Numeig+1): last_frame = step.frames[frame_index] #單元類型和VTU轉換關系 abaqus_to_vtu = { "CAX3" : 5, "CAX3H" : 5, "CAX4R" : 9, "CAX4I" : 9, "C3D8" : 12, "C3D8R" : 12, "C3D8I" : 12, "C3D6" : 13, "C3D10M": 24, "C3D4
展開
abaqus combine odbs
想將多個odb文件合并,在后處理中做成一個動畫,對于combine odb有問題, 查了,有用如下的 abaqus restartjoin originalodb=<original odb file name> restartodb=<restart odb file name> [copyoriginal] [history] [compressresult] , 試了沒效果, 也看了abaqus插件中的combine odbs, 也試不出來。 求助
ABAQUS結果提取重構插件【ODB Extractor and Builder Tool】 ¥19.89
當我們用abaqus對一個模型計算完成后,會得到一個odb結果文件,該文件可大可小,有的結果文件甚至高達幾十上百G,如果我們想把該odb結果文件的部分信息提供給其他人查看,出于保密原因考慮,我們不能提供完整的結果文件,所以這個時候我們就可以使用插件OEBT來完成,提取我們想要的部分或全部結果信息。 這個插件提供了一種方法來重新創建Abaqus結果數據庫(.odb)的一部分作為一個新的.odb文件。具體有以下特點: 1 和分析團隊/外部合作伙伴分享部分結果數據信息; 2 減少odb數據庫加載時間(通過刪除不必要的數據); 3 通過縮減odb文件以只存儲某些相關結果來減少存儲空間占用; OEBT插件界面 插件使用方法: 將壓縮包解壓,復制到*D:\SIMULIA\CAE\2019\win_b64\code\python2.7\lib\abaqus_plugins 下即可使用 注意:最新版插件名字已經由之前的OEBT改為了ORB,該插件對abaqus2018及以后的版本兼容,對早期低版本不兼容。 附件是該ORB2.3.0插件和使用說明書
展開
Python 提取odb結果
### python腳本提取解釋 # 導入模塊 from odbAccess import * from abaqusConstants import * from odbMaterial import * from odbSection import * import math # 打開odb文件 odb = openOdb(path=r'G:\CABLE_CON\TEXT2\Job-1.odb') Step_1=odb.steps['Step-1'] # 鎖定目標繩索 region = Step_1.historyRegions['Element ASSEMBLY.1'] xy1=region.historyOutputs['CTF1'].data[300] # 取最后一幀數據,并將括號刪掉 s=str(xy1) s = s.replace("(", "") s = s.replace(")", "") # 將繩力輸出到 F1.txt 文件 disFile=open('F1.txt','w') disFile.write(s) disFile.close() # 取最后一幀數據 lastFrame=Step_1.frames[-1] Zuobiao=lastFrame.fieldOutputs['COORD'] Regioncare=odb.rootAssembly.nodeSets['RP'] Coor1=Zuobiao.getSubset(region=Regioncare) Zuobiao_x=Coor1.values[0].data[0] Zuobiao_y=Coor1.values[0].data[1] Zuobiao_z=Coor1.values[0].data[2] Zhuanjiao=lastFrame.fieldOutputs
展開
用Python代碼獲得ODB文件中某些容器中的key(比如step的名字)
有時候在利用Python進行前后處理的時候,訪問容器中的某一個對象時,需要這個對象的名字,也就是這個對象的key,但是如果對這個ODB文件不是很了解,或者時間長了忘記了,那么可以通過如下方式來獲得容器中的所有key。
Abaqus-利用python處理有多個instances的odb文件,得到inp模型數據用于前處理
在一些情況下,odb文件中包含有多個instances,instances之間會有節點和單元是重合。很多情況下需要得到該odb模型數據,并將其導入hypermesh進行前處理。如果直接從abaqus中得到odb模型數據的inp輸入導入到hypermesh中,會有重合節點和單元報錯,然而利用python可以解決該問題。
ABAQUS odb數據解析系列文章---總綱
此系列文章將著手于odb文件的結構特征, 進而使得在后處理插件開發過程中少走彎路, 少做重復性工作.” python是一種面向對象的高級語言, 那么在使用python處理odb的時候就要著手于對象, 將odb文件的對象譜系梳理清晰. 在完成上述工作之后, 再進行后處理二次開發的時候就可以直接按圖索驥, 快速找到自己需要使用的方法了. 01 — 解析過程中的重要工具 ABAQUS為其定義的所有類提供了兩個特別有用的方法: object.__methods__: 可以查看該類內部的所有方法 object.__members__: 可以查看該類內部的所有屬性 這兩個方法為梳理ABAQUS對象譜系起到了很大的作用, 避免了使用python自帶的dir方法(因其將對象內部所有的方法與屬性同時返回, 導致解析困難). ABAQUS還提供了優化了的print方法, 該方法位于ABAQUS的textRepr中, 名為prettyPrint.
展開
ODB++圖2
一個提高訪問Abaqus結果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是更經濟的做法。
ABAQUS批量提交Job與Python讀取ODB結果應力應變數據
# coding: utf-8#微信公眾號:ABAQUS二次開發#作者:阿信老師CAE#email:axin_cae@163.com#2022.03.17 from odbAccess import *from visualization import * frame_num = 20 #定義需要輸出的幀odbName = 'X:/***/***.odb' #odb路徑和名稱elemSetName = '***' #單元setodb = openOdb(path=odbName)#打開odbregion = odb.rootAssembly.elementSets[elemSetName]frameRps = odb.steps['Step-1'].framesf_S1 = frameRps[frame_num].fieldOutputs['S'] #需要輸出的場變量sub_f_S1 = f_S1.getSubset(region=region) S_Value = sub_f_S1.values#讀取所有單元的應力值for i in range(len(S_Value)): Stress =S_Value[i].data print Stressodb.close() 若有緣,江湖再會。 阿信 2022.3.17 文章來源:ABAQUS二次開發
展開
用python保存odb文件中每一幀的mises應變
直接在abaqus里面調用就可以了 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
最近寫了兩個腳本,一個是保存VTK非結構網格格式的文件,一個是提取Abaqus計算結果中的網格信息、field信息,將兩個腳本結合起來就可以實現提取ODB中的信息,并保存成為VTK非結構網格文件,當然,還是需要有Abaqus環境。 注意:提取ODB信息的那個腳本目前僅僅是針對我自己提供的那個算例,有能力的朋友完全可以修改一下用于自己的情況。寫VTK非結構網格文件的那個腳本目前應該沒有太大的bug。ODB信息的提取還是需要有Abaqus環境,并不是解析二進制文件。請看清楚再確定是否需要。 之所以做這個,還是希望慢慢完善,從而積累出一定數量的腳本,用于ODB數據的提取。 以下是abaqus中的網格和云圖,和用paraview查看的vtk文件的網格和云圖:
展開