我有以下腳本來打開 ABAQUS ODB 檔案并獲取特定節點集的位移和坐標。我可以將這些列印在螢屏上,但需要幫助才能將它們寫入檔案(.xlsx、.cvs、.dat 或 .txt)以進行后期處理。我是 abaqus 腳本的新手,所以任何幫助將不勝感激。目前代碼如下:
from odbAccess import *
from numpy import array
odb = openOdb(path='Test_3.odb')
lastFrame = odb.steps['Step-1'].frames[1]
displacement = lastFrame.fieldOutputs['U']
coords=lastFrame.fieldOutputs['COORD']
NodeSet_x = odb.rootAssembly.instances['CFRP_SKIN_TS-1'].nodeSets['NODE_SET_X_AXIS']
NodeSet_y = odb.rootAssembly.instances['CFRP_SKIN_TS-1'].nodeSets['NODE_SET_Y_AXIS']
centerDisplacement_x = displacement.getSubset(region=NodeSet_x)
NodeCoord_x = coords.getSubset(region=NodeSet_x)
centerDisplacement_y = displacement.getSubset(region=NodeSet_y)
NodeCoord_y = coords.getSubset(region=NodeSet_y)
for v in centerDisplacement_x.values:
disp_out = v.nodeLabel, v.data[2]
print (disp_out)
for c in NodeCoord_x.values:
coord_out = c.nodeLabel, c.data[0], c.data[1], c.data[2]
print (coord_out)
odb.close()
uj5u.com熱心網友回復:
我認為,它只是基本的檔案讀寫事情。但無論如何。
有關如何在 python 中的文本檔案中寫入資料的更多詳細資訊,請參閱以下鏈接。
單擊此處了解有關在 Python 中打開和關閉檔案的資訊。
單擊此處了解 Python 中的寫入格式。
請遵循以下適用于任意數量節點集的簡單代碼行。
node_sets = ['NODE_SET_X_AXIS','NODE_SET_Y_AXIS']
for node_set in node_sets:
fileName = '%s.dat'%node_set
fout = open(fileName,'w')
nset = odb.rootAssembly.instances['CFRP_SKIN_TS-1'].nodeSets[node_set]
field = odb.steps['Step-1'].frames[1].fieldOutputs['U'].getSubset(region=nset)
for val in field.values:
data = val.data
node_label = val.nodeLabel
node = odb.rootAssembly.instances['CFRP_SKIN_TS-1'].getNodeFromLabel(label=node_label)
coords = node.coordinates
fout.write('d.4E.4E.4E.4E.4E.4E\n'%tuple([node_label,] list(coords) list(data)))
fout.close()
此代碼為每個節點集創建一個單獨的文本檔案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/363611.html
標籤:python-2.7 abaqus
上一篇:將Python2.7更新到3.9嘗試:fromcStringIOimportStringIO除了:fromStringIOimportStringIO
