提取abaqus中节点集合的应力应变

节点是没有应力应变的,只有积分点才有,所以直接在odb文件里面用FieldOutput是整不出来的(结果是个空列表),只能用session这种让abaqus自己帮你处理。具体的代码需要根据自己操作的时候abaqus.rpy这个文件中代码的变化来更改

import numpy
from abaqus import *
from abaqusConstants import *
from caeModules import *
import visualization
from driverUtils import executeOnCaeStartup
import numpy as np
from driverUtils import executeOnCaeStartup
from odbAccess import *
import numpy as np

job_name = "v1100-2"
o1 = session.openOdb(name='D:/Abaqus/file/'+job_name+'.odb')
odb = session.odbs['D:/Abaqus/file/'+job_name+'.odb']

# F
session.xyDataListFromField(odb=odb, outputPosition=NODAL, variable=(('CF',
                                                                      NODAL, ((COMPONENT, 'CF1'), (COMPONENT, 'CF2'),
                                                                              (COMPONENT, 'CF3'),)),),
                            nodeSets=("RP_F",))
# c0 = session.Curve(xyData=xy0)
xy1 = session.XYDataFromHistory(name='RF2 PI: rootAssembly N: 1 NSET RP_F-1',
                                odb=odb,
                                outputVariableName='Reaction force: RF2 PI: rootAssembly Node 1 in NSET RP_F',
                                steps=('Step-1',), __linkedVpName__='Viewport: 1')
# c1 = session.Curve(xyData=xy1)
xy2 = session.XYDataFromHistory(name='RF3 PI: rootAssembly N: 1 NSET RP_F-1',
                                odb=odb,
                                outputVariableName='Reaction force: RF3 PI: rootAssembly Node 1 in NSET RP_F',
                                steps=('Step-1',), __linkedVpName__='Viewport: 1')

# c1
session.xyDataListFromField(odb=odb, outputPosition=NODAL,
                            variable=(('LE', INTEGRATION_POINT, ((COMPONENT, 'LE22'),)),),
                            nodeSets=("C1_LE22_P8",))
xy1 = session.xyDataObjects['LE:LE22 (Avg: 75%) PI: V11-1 N: 575']
xy2 = session.xyDataObjects['LE:LE22 (Avg: 75%) PI: V11-1 N: 2501']
xy3 = session.xyDataObjects['LE:LE22 (Avg: 75%) PI: V11-1 N: 2506']
xy4 = session.xyDataObjects['LE:LE22 (Avg: 75%) PI: V11-1 N: 2511']
xy5 = session.xyDataObjects['LE:LE22 (Avg: 75%) PI: V11-1 N: 2516']
xy6 = session.xyDataObjects['LE:LE22 (Avg: 75%) PI: V11-1 N: 2521']
xy7 = session.xyDataObjects['LE:LE22 (Avg: 75%) PI: V11-1 N: 2526']
xy8 = session.xyDataObjects['LE:LE22 (Avg: 75%) PI: V11-1 N: 2531']
xy9 = sum(xy1, xy2, xy3, xy4, xy5, xy6, xy7, xy8) / 8
xy9.setValues(
    sourceDescription='sum("LE:LE22 (Avg: 75%) PI: V11-1 N: 575", "LE:LE22 (Avg: 75%) PI: V11-1 N: 2501", \
    "LE:LE22 (Avg: 75%) PI: V11-1 N: 2506", "LE:LE22 (Avg: 75%) PI: V11-1 N: 2511", "LE:LE22 (Avg: 75%) PI: V11-1 N: \
    2516", "LE:LE22 (Avg: 75%) PI: V11-1 N: 2521", "LE:LE22 (Avg: 75%) PI: V11-1 N: 2526", "LE:LE22 (Avg: 75%) PI: \
    V11-1 N: 2531")/8')
session.xyDataObjects.changeKey(xy9.name, 'c1')

# c2
session.xyDataListFromField(odb=odb, outputPosition=NODAL, variable=(('LE',
                                                                      INTEGRATION_POINT, ((COMPONENT, 'LE11'),)),),
                            nodeSets=("C2_LE11_P8",))

xy1 = session.xyDataObjects['LE:LE11 (Avg: 75%) PI: V11-1 N: 96']
xy2 = session.xyDataObjects['LE:LE11 (Avg: 75%) PI: V11-1 N: 1268']
xy3 = session.xyDataObjects['LE:LE11 (Avg: 75%) PI: V11-1 N: 1273']
xy4 = session.xyDataObjects['LE:LE11 (Avg: 75%) PI: V11-1 N: 1278']
xy5 = session.xyDataObjects['LE:LE11 (Avg: 75%) PI: V11-1 N: 1283']
xy6 = session.xyDataObjects['LE:LE11 (Avg: 75%) PI: V11-1 N: 1288']
xy7 = session.xyDataObjects['LE:LE11 (Avg: 75%) PI: V11-1 N: 1293']
xy8 = session.xyDataObjects['LE:LE11 (Avg: 75%) PI: V11-1 N: 1298']
xy9 = sum(xy1, xy2, xy3, xy4, xy5, xy6, xy7, xy8) / 8
xy9.setValues(
    sourceDescription='sum("LE:LE11 (Avg: 75%) PI: V11-1 N: 96", "LE:LE11 (Avg: 75%) PI: V11-1 N: 1268", "LE:LE11 (Avg: 75%)\
     PI: V11-1 N: 1273", "LE:LE11 (Avg: 75%) PI: V11-1 N: 1278", "LE:LE11 (Avg: 75%) PI: V11-1 N: 1283", "LE:LE11 (Avg: 75%) \
     PI: V11-1 N: 1288", "LE:LE11 (Avg: 75%) PI: V11-1 N: 1293", "LE:LE11 (Avg: 75%) PI: V11-1 N: 1298")/8')
session.xyDataObjects.changeKey(xy9.name, 'c2')

# c3
session.xyDataListFromField(odb=odb, outputPosition=NODAL, variable=(('LE',
                                                                      INTEGRATION_POINT, ((COMPONENT, 'LE22'),)),),
                            nodeSets=("C3_LE22_P8",))
xy1 = session.xyDataObjects['LE:LE22 (Avg: 75%) PI: V11-1 N: 310']
xy2 = session.xyDataObjects['LE:LE22 (Avg: 75%) PI: V11-1 N: 1689']
xy3 = session.xyDataObjects['LE:LE22 (Avg: 75%) PI: V11-1 N: 1694']
xy4 = session.xyDataObjects['LE:LE22 (Avg: 75%) PI: V11-1 N: 1699']
xy5 = session.xyDataObjects['LE:LE22 (Avg: 75%) PI: V11-1 N: 1704']
xy6 = session.xyDataObjects['LE:LE22 (Avg: 75%) PI: V11-1 N: 1709']
xy7 = session.xyDataObjects['LE:LE22 (Avg: 75%) PI: V11-1 N: 1714']
xy8 = session.xyDataObjects['LE:LE22 (Avg: 75%) PI: V11-1 N: 1719']
xy9 = sum(xy1, xy2, xy3, xy4, xy5, xy6, xy7, xy8) / 8
xy9.setValues(
    sourceDescription='sum("LE:LE22 (Avg: 75%) PI: V11-1 N: 310", "LE:LE22 (Avg: 75%) PI: V11-1 N: 1689", \
    "LE:LE22 (Avg: 75%) PI: V11-1 N: 1694", "LE:LE22 (Avg: 75%) PI: V11-1 N: 1699", "LE:LE22 (Avg: 75%) PI: V11-1 \
    N: 1704", "LE:LE22 (Avg: 75%) PI: V11-1 N: 1709", "LE:LE22 (Avg: 75%) PI: V11-1 N: 1714", "LE:LE22 (Avg: 75%) \
    PI: V11-1 N: 1719")/8')
session.xyDataObjects.changeKey(xy9.name, 'c3')

# c4
session.xyDataListFromField(odb=odb,
                            outputPosition=NODAL,
                            variable=(('LE', INTEGRATION_POINT, ((COMPONENT, 'LE11'),)),),
                            nodeSets=("C4_LE11_P8",))

xy1 = session.xyDataObjects['LE:LE11 (Avg: 75%) PI: V11-1 N: 354']
xy2 = session.xyDataObjects['LE:LE11 (Avg: 75%) PI: V11-1 N: 2116']
xy3 = session.xyDataObjects['LE:LE11 (Avg: 75%) PI: V11-1 N: 2121']
xy4 = session.xyDataObjects['LE:LE11 (Avg: 75%) PI: V11-1 N: 2126']
xy5 = session.xyDataObjects['LE:LE11 (Avg: 75%) PI: V11-1 N: 2131']
xy6 = session.xyDataObjects['LE:LE11 (Avg: 75%) PI: V11-1 N: 2136']
xy7 = session.xyDataObjects['LE:LE11 (Avg: 75%) PI: V11-1 N: 2141']
xy8 = session.xyDataObjects['LE:LE11 (Avg: 75%) PI: V11-1 N: 2146']
xy9 = sum(xy1, xy2, xy3, xy4, xy5, xy6, xy7, xy8) / 8
xy9.setValues(
    sourceDescription='sum("LE:LE11 (Avg: 75%) PI: V11-1 N: 354", "LE:LE11 (Avg: 75%) PI: V11-1 N: 2116", "LE:LE11 \
    (Avg: 75%) PI: V11-1 N: 2121", "LE:LE11 (Avg: 75%) PI: V11-1 N: 2126", "LE:LE11 (Avg: 75%) PI: V11-1 N: 2131", \
    "LE:LE11 (Avg: 75%) PI: V11-1 N: 2136", "LE:LE11 (Avg: 75%) PI: V11-1 N: 2141", "LE:LE11 (Avg: 75%) PI: V11-1 \
    N: 2146")/8')
session.xyDataObjects.changeKey(xy9.name, 'c4')

c1 = [i[1] for i in session.xyDataObjects['c1']]
c2 = [i[1] for i in session.xyDataObjects['c2']]
c3 = [i[1] for i in session.xyDataObjects['c3']]
c4 = [i[1] for i in session.xyDataObjects['c4']]
cf1 = [i[1] for i in session.xyDataObjects['CF:CF1 PI: ASSEMBLY N: 1']]
cf2 = [i[1] for i in session.xyDataObjects['CF:CF2 PI: ASSEMBLY N: 1']]
cf3 = [i[1] for i in session.xyDataObjects['CF:CF3 PI: ASSEMBLY N: 1']]

expdata = []
for i in range(len(c1)):
    expdata.append([c1[i], c2[i], c3[i], c4[i], cf1[i], cf2[i], cf3[i]])

exp_arr = np.array(expdata)
np.savetxt('D:/Abaqus/file/data_process/'+job_name+'.csv', exp_arr, delimiter=',')

del session.xyDataObjects['LE:LE22 (Avg: 75%) PI: V11-1 N: 2526']
del session.xyDataObjects['LE:LE22 (Avg: 75%) PI: V11-1 N: 2531']
del session.xyDataObjects['LE:LE11 (Avg: 75%) PI: V11-1 N: 96']
del session.xyDataObjects['LE:LE11 (Avg: 75%) PI: V11-1 N: 354']
del session.xyDataObjects['LE:LE11 (Avg: 75%) PI: V11-1 N: 1268']
del session.xyDataObjects['LE:LE11 (Avg: 75%) PI: V11-1 N: 1273']
del session.xyDataObjects['LE:LE11 (Avg: 75%) PI: V11-1 N: 1278']
del session.xyDataObjects['LE:LE11 (Avg: 75%) PI: V11-1 N: 1283']
del session.xyDataObjects['LE:LE11 (Avg: 75%) PI: V11-1 N: 1288']
del session.xyDataObjects['LE:LE11 (Avg: 75%) PI: V11-1 N: 1293']
del session.xyDataObjects['LE:LE11 (Avg: 75%) PI: V11-1 N: 1298']
del session.xyDataObjects['LE:LE11 (Avg: 75%) PI: V11-1 N: 2116']
del session.xyDataObjects['LE:LE11 (Avg: 75%) PI: V11-1 N: 2121']
del session.xyDataObjects['LE:LE11 (Avg: 75%) PI: V11-1 N: 2126']
del session.xyDataObjects['LE:LE11 (Avg: 75%) PI: V11-1 N: 2131']
del session.xyDataObjects['LE:LE11 (Avg: 75%) PI: V11-1 N: 2136']
del session.xyDataObjects['LE:LE11 (Avg: 75%) PI: V11-1 N: 2141']
del session.xyDataObjects['LE:LE11 (Avg: 75%) PI: V11-1 N: 2146']
del session.xyDataObjects['LE:LE22 (Avg: 75%) PI: V11-1 N: 310']
del session.xyDataObjects['LE:LE22 (Avg: 75%) PI: V11-1 N: 575']
del session.xyDataObjects['LE:LE22 (Avg: 75%) PI: V11-1 N: 1689']
del session.xyDataObjects['LE:LE22 (Avg: 75%) PI: V11-1 N: 1694']
del session.xyDataObjects['LE:LE22 (Avg: 75%) PI: V11-1 N: 1699']
del session.xyDataObjects['LE:LE22 (Avg: 75%) PI: V11-1 N: 1704']
del session.xyDataObjects['LE:LE22 (Avg: 75%) PI: V11-1 N: 1709']
del session.xyDataObjects['LE:LE22 (Avg: 75%) PI: V11-1 N: 1714']
del session.xyDataObjects['LE:LE22 (Avg: 75%) PI: V11-1 N: 1719']
del session.xyDataObjects['LE:LE22 (Avg: 75%) PI: V11-1 N: 2501']
del session.xyDataObjects['LE:LE22 (Avg: 75%) PI: V11-1 N: 2506']
del session.xyDataObjects['LE:LE22 (Avg: 75%) PI: V11-1 N: 2511']
del session.xyDataObjects['LE:LE22 (Avg: 75%) PI: V11-1 N: 2516']
del session.xyDataObjects['LE:LE22 (Avg: 75%) PI: V11-1 N: 2521']
del session.xyDataObjects['LE:LE22 (Avg: 75%) PI: V11-1 N: 2521']
del session.xyDataObjects['RF2 PI: rootAssembly N: 1 NSET RP_F-1']
del session.xyDataObjects['RF3 PI: rootAssembly N: 1 NSET RP_F-1']
del session.xyDataObjects['RF3 PI: rootAssembly N: 1 NSET RP_F-1']
# del session.xyDataObjects['CF:CF1 PI: ASSEMBLY N: 1']
# del session.xyDataObjects['CF:CF2 PI: ASSEMBLY N: 1']
# del session.xyDataObjects['CF:CF3 PI: ASSEMBLY N: 1']
# del session.xyDataObjects['c1']
# del session.xyDataObjects['c2']
# del session.xyDataObjects['c3']
# del session.xyDataObjects['c4']

猜你喜欢

转载自blog.csdn.net/qq_41926099/article/details/130709703