abaqus 獲取odb場輸出中某一集合的數據

獲取odb中某一個集合的數據,有代碼實現和cae實現

代碼實現:主要的是一個getSubset的函數,可以參考abaqus手冊

https://help.3ds.com/2022/english/dssimulia_established/SIMACAECMDRefMap/simacmd-c-odbintroreadregpyc.htm?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, 0.0132824070751667, 1.27494768094039e-05, 8.11893332866021e-05,-0.0778346583247185], 'f'), 
# 'dataDouble': 'unknown', 'elementLabel': 18080, 'face': None, 'instance': 'OdbInstance
# object', 'integrationPoint': 2, 'inv3': 1.69891095161438, 'localCoordSystem': None,
# 'localCoordSystemDouble':'unknown', 'magnitude': None, 'maxInPlanePrincipal': 0.0, 'maxPrincipal': 1.71781802177429,
# 'midPrincipal':0.086165688931942, 'minInPlanePrincipal': 0.0, 'minPrincipal': -0.0698400065302849, 'mises': 1.71498501300812,
# 'nodeLabel': None, 'outOfPlanePrincipal': 0.0, 'position': INTEGRATION_POINT, 'precision': SINGLE_PRECISION,
# 'press': -0.578047931194305, 'sectionPoint': None, 'tresca': 1.78765797615051, 'type': TENSOR_3D_FULL}

cae實現:在Visualization-->Tools-->Display Group-->create ,創建集合相應的display group, 再點擊Query-->Probe values,可以選擇輸出相應的display group 的各種數據

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

1
8