Использование функции L oop для автоматизации переменных в Abaqus - PullRequest
0 голосов
/ 25 марта 2020

Я пытаюсь смоделировать футбольный заголовок, используя шар, созданный в Abaqus, и форму головы EN960, импортированную из внешнего источника. Во время этого моделирования я наблюдаю результирующее ускорение после удара в различных местах удара.

Поэтому я изучал использование сценариев abaqus и функции l oop для автоматизации этого процесса. Тем не менее, мои знания сценариев abaqus очень ограничены, поэтому мне интересно, какие шаги / советы мне могут понадобиться для достижения моей цели.

Ниже AbaqusMacro из того, что можно было бы назвать контрольным местом воздействия.

# -*- coding: mbcs -*-
# Do not delete the following import lines
from abaqus import *
from abaqusConstants import *
import __main__



import section
import regionToolset
import displayGroupMdbToolset as dgm
import part
import material
import assembly
import step
import interaction
import load
import mesh
import optimization
import job
import sketch
import visualization
import xyPlot
import displayGroupOdbToolset as dgo
import connectorBehavior
s = mdb.models['Model-1'].ConstrainedSketch(name='__profile__', sheetSize=1.0)
g, v, d, c = s.geometry, s.vertices, s.dimensions, s.constraints
s.setPrimaryObject(option=STANDALONE)
s.ConstructionLine(point1=(0.0, -0.5), point2=(0.0, 0.5))
s.FixedConstraint(entity=g[2])
s.CircleByCenterPerimeter(center=(0.0, 0.0), point1=(0.11, 0.0))
s.CoincidentConstraint(entity1=v[0], entity2=g[2], addUndoState=False)
s.autoTrimCurve(curve1=g[3], point1=(-0.0695642977952957, 0.0805632919073105))
p = mdb.models['Model-1'].Part(name='Ball', dimensionality=THREE_D, 
    type=DEFORMABLE_BODY)
p = mdb.models['Model-1'].parts['Ball']
p.BaseShellRevolve(sketch=s, angle=360.0, flipRevolveDirection=OFF)
s.unsetPrimaryObject()
p = mdb.models['Model-1'].parts['Ball']
session.viewports['Viewport: 1'].setValues(displayedObject=p)
del mdb.models['Model-1'].sketches['__profile__']
p = mdb.models['Model-1'].parts['Ball']
e, d1 = p.edges, p.datums
p.DatumPlaneByLinePoint(line=d1[1], point=p.InterestingPoint(edge=e[0], 
    rule=MIDDLE))
p = mdb.models['Model-1'].parts['Ball']
f, e1, d2 = p.faces, p.edges, p.datums
t = p.MakeSketchTransform(sketchPlane=d2[2], sketchUpEdge=d2[1], 
    sketchPlaneSide=SIDE1, origin=(0.0, 0.0, 0.0))
s1 = mdb.models['Model-1'].ConstrainedSketch(name='__profile__', 
    sheetSize=0.84, gridSpacing=0.02, transform=t)
g, v, d, c = s1.geometry, s1.vertices, s1.dimensions, s1.constraints
s1.setPrimaryObject(option=SUPERIMPOSE)
p = mdb.models['Model-1'].parts['Ball']
p.projectReferencesOntoSketch(sketch=s1, filter=COPLANAR_EDGES)
s1.CircleByCenterPerimeter(center=(0.0, 0.0), point1=(0.11, 0.0))
s1.autoTrimCurve(curve1=g[5], point1=(-0.0974756479263306, 0.0514689832925797))
p = mdb.models['Model-1'].parts['Ball']
f = p.faces
pickedFaces = f.getSequenceFromMask(mask=('[#1 ]', ), )
f1, e, d1 = p.faces, p.edges, p.datums
p.PartitionFaceBySketchThruAll(sketchPlane=d1[2], sketchUpEdge=d1[1], 
    faces=pickedFaces, sketchPlaneSide=SIDE1, sketch=s1)
s1.unsetPrimaryObject()
del mdb.models['Model-1'].sketches['__profile__']
session.viewports['Viewport: 1'].view.setValues(session.views['Front'])
session.viewports['Viewport: 1'].view.setValues(nearPlane=0.690673, 
    farPlane=0.990565, width=0.346809, height=0.234955, 
    viewOffsetX=0.0205154, viewOffsetY=6.29399e-06)
p = mdb.models['Model-1'].parts['Ball']
v1, e1 = p.vertices, p.edges
p.DatumPointByMidPoint(point2=v1[1], point1=p.InterestingPoint(edge=e1[2], 
    rule=MIDDLE))
p = mdb.models['Model-1'].parts['Ball']
v2, e, d2, n = p.vertices, p.edges, p.datums, p.nodes
p.ReferencePoint(point=d2[4])
session.viewports['Viewport: 1'].view.setValues(nearPlane=0.685717, 
    farPlane=0.995521, width=0.389679, height=0.263998, 
    viewOffsetX=0.0365582, viewOffsetY=-1.64424e-05)
step = mdb.openStep('C:/Temp/Python_script/Head.stp', scaleFromFile=OFF)
mdb.models['Model-1'].PartFromGeometryFile(name='Head', geometryFile=step, 
combine=False, mergeSolidRegions=True, dimensionality=THREE_D, 
type=DEFORMABLE_BODY, scale=0.001)
p = mdb.models['Model-1'].parts['Head']
session.viewports['Viewport: 1'].setValues(displayedObject=p)
mdb.models['Model-1'].parts['Head'].AutoRepair()
session.viewports['Viewport: 1'].partDisplay.setValues(sectionAssignments=ON, 
    engineeringFeatures=ON)
session.viewports['Viewport: 1'].partDisplay.geometryOptions.setValues(
    referenceRepresentation=OFF)
mdb.models['Model-1'].Material(name='Ball')
mdb.models['Model-1'].materials['Ball'].Density(table=((1100.0, ), ))
mdb.models['Model-1'].materials['Ball'].Hyperelastic(materialType=ISOTROPIC, 
    testData=OFF, type=POLYNOMIAL, n=2, volumetricResponse=VOLUMETRIC_DATA, 
    table=((5317171.47, 2649830.47, -81085.5961, 406587.722, -9070.56494, 
    7.5e-08, 0.0), ))
mdb.models['Model-1'].Material(name='Material-2')
mdb.models['Model-1'].materials['Material-2'].Density(table=((1740.0, ), ))
mdb.models['Model-1'].materials['Material-2'].Elastic(table=((44800000000.0, 
    0.28), ))
mdb.models['Model-1'].materials.changeKey(fromName='Material-2', 
    toName='Head_mg_k1')
mdb.models['Model-1'].HomogeneousShellSection(name='Ball_section', 
    preIntegrate=OFF, material='Ball', thicknessType=UNIFORM, 
    thickness=0.0146, thicknessField='', nodalThicknessField='', 
    idealization=NO_IDEALIZATION, poissonDefinition=DEFAULT, 
    thicknessModulus=None, temperature=GRADIENT, useDensity=OFF, 
    integrationRule=SIMPSON, numIntPts=5)
mdb.models['Model-1'].HomogeneousSolidSection(name='Head_section', 
    material='Head_mg_k1', thickness=None)
p = mdb.models['Model-1'].parts['Head']
c = p.cells
cells = c.getSequenceFromMask(mask=('[#1 ]', ), )
region = p.Set(cells=cells, name='Head_set')
p = mdb.models['Model-1'].parts['Head']
p.SectionAssignment(region=region, sectionName='Head_section', offset=0.0, 
    offsetType=MIDDLE_SURFACE, offsetField='', 
    thicknessAssignment=FROM_SECTION)
p = mdb.models['Model-1'].parts['Ball']
session.viewports['Viewport: 1'].setValues(displayedObject=p)
p = mdb.models['Model-1'].parts['Ball']
f = p.faces
faces = f.getSequenceFromMask(mask=('[#3 ]', ), )
region = p.Set(faces=faces, name='Ball_set')
p = mdb.models['Model-1'].parts['Ball']
p.SectionAssignment(region=region, sectionName='Ball_section', offset=0.0, 
    offsetType=MIDDLE_SURFACE, offsetField='', 
    thicknessAssignment=FROM_SECTION)
a = mdb.models['Model-1'].rootAssembly
session.viewports['Viewport: 1'].setValues(displayedObject=a)
session.viewports['Viewport: 1'].assemblyDisplay.setValues(
    optimizationTasks=OFF, geometricRestrictions=OFF, stopConditions=OFF)
a = mdb.models['Model-1'].rootAssembly
a.DatumCsysByDefault(CARTESIAN)
p = mdb.models['Model-1'].parts['Head']
a.Instance(name='Head-1', part=p, dependent=ON)
session.viewports['Viewport: 1'].view.setValues(nearPlane=0.551495, 
    farPlane=0.963975, width=0.275925, height=0.186932, 
    viewOffsetX=0.015468, viewOffsetY=0.00799466)
a = mdb.models['Model-1'].rootAssembly
a.rotate(instanceList=('Head-1', ), axisPoint=(0.0, 0.0, 0.0), axisDirection=(
    10.0, 0.0, 0.0), angle=270.0)
session.viewports['Viewport: 1'].view.setValues(nearPlane=0.51226, 
    farPlane=1.00315, width=0.61196, height=0.414588, viewOffsetX=-0.02952, 
    viewOffsetY=-0.0592923)
p = mdb.models['Model-1'].parts['Ball']
session.viewports['Viewport: 1'].setValues(displayedObject=p)
p = mdb.models['Model-1'].parts['Head']
session.viewports['Viewport: 1'].setValues(displayedObject=p)
p = mdb.models['Model-1'].parts['Head']
p.DatumPointByCoordinate(coords=(0.00346, 4.05e-05, 0.127))
session.viewports['Viewport: 1'].view.setValues(nearPlane=0.556444, 
    farPlane=0.959026, width=0.231236, height=0.156656, 
    viewOffsetX=-0.0348714, viewOffsetY=0.00958098)
p = mdb.models['Model-1'].parts['Head']
v1, e1, d1, n1 = p.vertices, p.edges, p.datums, p.nodes
p.ReferencePoint(point=d1[5])
a = mdb.models['Model-1'].rootAssembly
a.regenerate()
a = mdb.models['Model-1'].rootAssembly
session.viewports['Viewport: 1'].setValues(displayedObject=a)
session.viewports['Viewport: 1'].view.setValues(nearPlane=0.549445, 
    farPlane=0.965964, width=0.259463, height=0.175779, 
    viewOffsetX=0.0315453, viewOffsetY=0.0493602)
a = mdb.models['Model-1'].rootAssembly
a.translate(instanceList=('Head-1', ), vector=(-0.00346, -0.127, 4.1e-05))
a = mdb.models['Model-1'].rootAssembly
p = mdb.models['Model-1'].parts['Ball']
a.Instance(name='Ball-1', part=p, dependent=ON)
p1 = a.instances['Ball-1']
p1.translate(vector=(0.242692413710857, 0.0, 0.0))
session.viewports['Viewport: 1'].view.fitView()
session.viewports['Viewport: 1'].view.setValues(nearPlane=1.01727, 
    farPlane=1.6629, width=0.232876, height=0.157768, 
    viewOffsetX=-0.0402756, viewOffsetY=0.0266032)
a = mdb.models['Model-1'].rootAssembly
a.rotate(instanceList=('Ball-1', ), axisPoint=(0.242692, 0.0, 0.0), 
    axisDirection=(0.0, -10.0, 0.0), angle=90.0)
a = mdb.models['Model-1'].rootAssembly
a.translate(instanceList=('Ball-1', ), vector=(0.007308, 0.0, 0.0))
a.translate(instanceList=('Ball-1', ), vector=(0, 0.110, 0.0))
session.viewports['Viewport: 1'].assemblyDisplay.setValues(
    adaptiveMeshConstraints=ON)
mdb.models['Model-1'].ExplicitDynamicsStep(name='Contact', previous='Initial', 
    timePeriod=0.05, improvedDtMethod=ON)
session.viewports['Viewport: 1'].assemblyDisplay.setValues(step='Contact')
mdb.models['Model-1'].fieldOutputRequests['F-Output-1'].setValues(
    numIntervals=300)
p = mdb.models['Model-1'].parts['Head']
session.viewports['Viewport: 1'].setValues(displayedObject=p)
p = mdb.models['Model-1'].parts['Head']
r = p.referencePoints
refPoints=(r[6], )
p.Set(referencePoints=refPoints, name='Head_COM')
session.viewports['Viewport: 1'].view.setValues(width=0.245279, height=0.16617, 
    viewOffsetX=-0.0372087, viewOffsetY=0.00965707)
p = mdb.models['Model-1'].parts['Ball']
session.viewports['Viewport: 1'].setValues(displayedObject=p)
a = mdb.models['Model-1'].rootAssembly
a.regenerate()
a = mdb.models['Model-1'].rootAssembly
session.viewports['Viewport: 1'].setValues(displayedObject=a)
regionDef=mdb.models['Model-1'].rootAssembly.allInstances['Head-1'].sets['Head_COM']
mdb.models['Model-1'].historyOutputRequests['H-Output-1'].setValues(variables=(
    'AR', ), numIntervals=300, region=regionDef, sectionPoints=DEFAULT, 
    rebar=EXCLUDE)
regionDef=mdb.models['Model-1'].rootAssembly.allInstances['Head-1'].sets['Head_set']
mdb.models['Model-1'].HistoryOutputRequest(name='H-Output-2', 
    createStepName='Contact', variables=('ACOM1', 'ACOM2', 'ACOM3'), 
    numIntervals=300, region=regionDef, sectionPoints=DEFAULT, 
    rebar=EXCLUDE)
p = mdb.models['Model-1'].parts['Ball']
session.viewports['Viewport: 1'].setValues(displayedObject=p)
p = mdb.models['Model-1'].parts['Ball']
r = p.referencePoints
refPoints=(r[5], )
p.Set(referencePoints=refPoints, name='Ball_COM')
a = mdb.models['Model-1'].rootAssembly
a.regenerate()
a = mdb.models['Model-1'].rootAssembly
session.viewports['Viewport: 1'].setValues(displayedObject=a)
regionDef=mdb.models['Model-1'].rootAssembly.allInstances['Ball-1'].sets['Ball_COM']
mdb.models['Model-1'].HistoryOutputRequest(name='H-Output-3', 
    createStepName='Contact', variables=('VT', ), region=regionDef, 
    sectionPoints=DEFAULT, rebar=EXCLUDE)
session.viewports['Viewport: 1'].assemblyDisplay.setValues(interactions=ON, 
    constraints=ON, connectors=ON, engineeringFeatures=ON, 
    adaptiveMeshConstraints=OFF)
session.viewports['Viewport: 1'].view.setValues(session.views['Front'])
mdb.models['Model-1'].ContactProperty('IntProp-1')
mdb.models['Model-1'].interactionProperties['IntProp-1'].TangentialBehavior(
    formulation=FRICTIONLESS)
mdb.models['Model-1'].interactionProperties['IntProp-1'].NormalBehavior(
    pressureOverclosure=HARD, allowSeparation=ON, 
    constraintEnforcementMethod=DEFAULT)
a = mdb.models['Model-1'].rootAssembly
s1 = a.instances['Head-1'].faces
side1Faces1 = s1.getSequenceFromMask(mask=('[#ffffffff:60 #3f ]', ), )
region1=a.Surface(side1Faces=side1Faces1, name='Head_Surf')
a = mdb.models['Model-1'].rootAssembly
s1 = a.instances['Ball-1'].faces
side1Faces1 = s1.getSequenceFromMask(mask=('[#2 ]', ), )
region2=a.Surface(side1Faces=side1Faces1, name='Ball_Surf')
mdb.models['Model-1'].SurfaceToSurfaceContactExp(name ='Contact_Int', 
    createStepName='Contact', master = region1, slave = region2, 
    mechanicalConstraint=PENALTY, sliding=FINITE, 
    interactionProperty='IntProp-1', initialClearance=OMIT, datumAxis=None, 
    clearanceRegion=None)
session.viewports['Viewport: 1'].view.setValues(nearPlane=1.05324, 
    farPlane=1.34427, width=0.213851, height=0.144879, 
    viewOffsetX=-0.0643578, viewOffsetY=0.000939541)
a = mdb.models['Model-1'].rootAssembly
c1 = a.instances['Head-1'].cells
cells1 = c1.getSequenceFromMask(mask=('[#1 ]', ), )
region2=a.Set(cells=cells1, name='b_Set-1')
a = mdb.models['Model-1'].rootAssembly
r1 = a.instances['Head-1'].referencePoints
refPoints1=(r1[6], )
region1=regionToolset.Region(referencePoints=refPoints1)
mdb.models['Model-1'].RigidBody(name='Constraint-1', refPointRegion=region1, 
    bodyRegion=region2)
session.viewports['Viewport: 1'].view.setValues(nearPlane=0.973954, 
    farPlane=1.42355, width=0.794277, height=0.538103, 
    viewOffsetX=0.140652, viewOffsetY=-0.0428251)
a = mdb.models['Model-1'].rootAssembly
region1=a.instances['Head-1'].sets['Head_COM']
a = mdb.models['Model-1'].rootAssembly
region2=a.surfaces['Head_Surf']
mdb.models['Model-1'].Coupling(name='Constraint-2', controlPoint=region1, 
    surface=region2, influenceRadius=WHOLE_SURFACE, couplingType=KINEMATIC, 
    localCsys=None, u1=ON, u2=ON, u3=ON, ur1=ON, ur2=ON, ur3=ON)
session.viewports['Viewport: 1'].assemblyDisplay.setValues(loads=ON, bcs=ON, 
    predefinedFields=ON, interactions=OFF, constraints=OFF, 
    engineeringFeatures=OFF)
session.viewports['Viewport: 1'].assemblyDisplay.setValues(step='Initial')
a = mdb.models['Model-1'].rootAssembly
f1 = a.instances['Ball-1'].faces
faces1 = f1.getSequenceFromMask(mask=('[#2 ]', ), )
region = regionToolset.Region(faces=faces1)
mdb.models['Model-1'].Velocity(name='Predefined Field-1', region=region, 
    field='', distributionType=MAGNITUDE, velocity1=-6.0, omega=0.0)
session.viewports['Viewport: 1'].assemblyDisplay.setValues(mesh=ON, loads=OFF, 
    bcs=OFF, predefinedFields=OFF, connectors=OFF)
session.viewports['Viewport: 1'].assemblyDisplay.meshOptions.setValues(
    meshTechnique=ON)
p = mdb.models['Model-1'].parts['Ball']
session.viewports['Viewport: 1'].setValues(displayedObject=p)
session.viewports['Viewport: 1'].partDisplay.setValues(sectionAssignments=OFF, 
    engineeringFeatures=OFF, mesh=ON)
session.viewports['Viewport: 1'].partDisplay.meshOptions.setValues(
    meshTechnique=ON)
p = mdb.models['Model-1'].parts['Ball']
p.seedPart(size=0.0075, deviationFactor=0.1, minSizeFactor=0.1)
p = mdb.models['Model-1'].parts['Ball']
p.generateMesh()
p = mdb.models['Model-1'].parts['Head']
session.viewports['Viewport: 1'].setValues(displayedObject=p)
p = mdb.models['Model-1'].parts['Head']
c = p.cells
pickedRegions = c.getSequenceFromMask(mask=('[#1 ]', ), )
p.setMeshControls(regions=pickedRegions, elemShape=TET, technique=FREE)
elemType1 = mesh.ElemType(elemCode=UNKNOWN_HEX, elemLibrary=EXPLICIT)
elemType2 = mesh.ElemType(elemCode=UNKNOWN_WEDGE, elemLibrary=EXPLICIT)
elemType3 = mesh.ElemType(elemCode=C3D10M, elemLibrary=EXPLICIT)
p = mdb.models['Model-1'].parts['Head']
c = p.cells
cells = c.getSequenceFromMask(mask=('[#1 ]', ), )
pickedRegions =(cells, )
p.setElementType(regions=pickedRegions, elemTypes=(elemType1, elemType2, 
    elemType3))
p = mdb.models['Model-1'].parts['Head']
p.seedPart(size=1.0, deviationFactor=0.1, minSizeFactor=0.1)
p = mdb.models['Model-1'].parts['Head']
p.generateMesh()
a1 = mdb.models['Model-1'].rootAssembly
a1.regenerate()
a = mdb.models['Model-1'].rootAssembly
session.viewports['Viewport: 1'].setValues(displayedObject=a)
session.viewports['Viewport: 1'].assemblyDisplay.setValues(mesh=OFF)
session.viewports['Viewport: 1'].assemblyDisplay.meshOptions.setValues(
    meshTechnique=OFF)
mdb.Job(name='Job-1', model='Model-1', description='', type=ANALYSIS, 
    atTime=None, waitMinutes=0, waitHours=0, queue=None, memory=90, 
    memoryUnits=PERCENTAGE, explicitPrecision=SINGLE, 
    nodalOutputPrecision=SINGLE, echoPrint=OFF, modelPrint=OFF, 
    contactPrint=OFF, historyPrint=OFF, userSubroutine='', scratch='', 
    resultsFormat=ODB, parallelizationMethodExplicit=DOMAIN, numDomains=4, 
    activateLoadBalancing=False, multiprocessingMode=DEFAULT, numCpus=4)
mdb.jobs['Job-1'].submit(consistencyChecking=OFF)
session.viewports['Viewport: 1'].partDisplay.setValues(sectionAssignments=ON, 
    engineeringFeatures=ON, mesh=OFF)
session.viewports['Viewport: 1'].partDisplay.meshOptions.setValues(
    meshTechnique=OFF)
p = mdb.models['Model-1'].parts['Head']
session.viewports['Viewport: 1'].setValues(displayedObject=p)
p = mdb.models['Model-1'].parts['Ball']
session.viewports['Viewport: 1'].setValues(displayedObject=p)
a = mdb.models['Model-1'].rootAssembly
session.viewports['Viewport: 1'].setValues(displayedObject=a)
session.viewports['Viewport: 1'].assemblyDisplay.setValues(
    adaptiveMeshConstraints=ON)
regionDef=mdb.models['Model-1'].rootAssembly.allInstances['Ball-1'].sets['Ball_set']
mdb.models['Model-1'].historyOutputRequests['H-Output-3'].setValues(variables=(
    'VCOM1', 'VCOM2', 'VCOM3'), region=regionDef)
session.viewports['Viewport: 1'].assemblyDisplay.setValues(
    adaptiveMeshConstraints=OFF)
mdb.Job(name='contact', model='Model-1', description='', type=ANALYSIS, 
    atTime=None, waitMinutes=0, waitHours=0, queue=None, memory=90, 
    memoryUnits=PERCENTAGE, explicitPrecision=SINGLE, 
    nodalOutputPrecision=SINGLE, echoPrint=OFF, modelPrint=OFF, 
    contactPrint=OFF, historyPrint=OFF, userSubroutine='', scratch='', 
    resultsFormat=ODB, parallelizationMethodExplicit=DOMAIN, numDomains=4, 
    activateLoadBalancing=False, multiprocessingMode=DEFAULT, numCpus=4)
mdb.jobs['contact'].submit(consistencyChecking=OFF)
session.mdbData.summary()
o3 = session.openOdb(name='C:/Temp/Python_script/contact.odb')
session.viewports['Viewport: 1'].setValues(displayedObject=o3)
session.viewports['Viewport: 1'].makeCurrent()
a = mdb.models['Model-1'].rootAssembly
session.viewports['Viewport: 1'].setValues(displayedObject=a)
session.mdbData.summary()
session.viewports['Viewport: 1'].setValues(
    displayedObject=session.odbs['C:/Temp/Python_script/contact.odb'])
o3 = session.openOdb(name='C:/Temp/Python_script/contact.odb')
session.viewports['Viewport: 1'].setValues(displayedObject=o3)
session.viewports['Viewport: 1'].makeCurrent()
session.viewports['Viewport: 1'].odbDisplay.display.setValues(plotState=(
    CONTOURS_ON_DEF, ))
odb = session.odbs['C:/Temp/Python_script/contact.odb']
xy1 = xyPlot.XYDataFromHistory(odb=odb, 
    outputVariableName='Average acceleration: ACOM1  of element set ASSEMBLY_HEAD-1_HEAD_SET', 
    steps=('Contact', ), suppressQuery=True, 
    __linkedVpName__='Viewport: 1')
c1 = session.Curve(xyData=xy1)
xy2 = xyPlot.XYDataFromHistory(odb=odb, 
    outputVariableName='Average acceleration: ACOM2  of element set ASSEMBLY_HEAD-1_HEAD_SET', 
    steps=('Contact', ), suppressQuery=True, 
    __linkedVpName__='Viewport: 1')
c2 = session.Curve(xyData=xy2)
xy3 = xyPlot.XYDataFromHistory(odb=odb, 
    outputVariableName='Average acceleration: ACOM3  of element set ASSEMBLY_HEAD-1_HEAD_SET', 
    steps=('Contact', ), suppressQuery=True, 
    __linkedVpName__='Viewport: 1')
c3 = session.Curve(xyData=xy3)
xy4 = xyPlot.XYDataFromHistory(odb=odb, 
    outputVariableName='Rotational acceleration: AR1 PI: HEAD-1 Node 64607 in NSET HEAD_COM', 
    steps=('Contact', ), suppressQuery=True, 
    __linkedVpName__='Viewport: 1')
c4 = session.Curve(xyData=xy4)
xy5 = xyPlot.XYDataFromHistory(odb=odb, 
    outputVariableName='Rotational acceleration: AR2 PI: HEAD-1 Node 64607 in NSET HEAD_COM', 
    steps=('Contact', ), suppressQuery=True, 
    __linkedVpName__='Viewport: 1')
c5 = session.Curve(xyData=xy5)
xy6 = xyPlot.XYDataFromHistory(odb=odb, 
    outputVariableName='Rotational acceleration: AR3 PI: HEAD-1 Node 64607 in NSET HEAD_COM', 
    steps=('Contact', ), suppressQuery=True, 
    __linkedVpName__='Viewport: 1')
c6 = session.Curve(xyData=xy6)
xyp = session.XYPlot('plot_b')
chartName = xyp.charts.keys()[0]
chart = xyp.charts[chartName]
chart.setValues(curvesToPlot=(c1, c2, c3, c4, c5, c6, ), )
session.viewports['Viewport: 1'].setValues(displayedObject=xyp)
import sys
sys.path.insert(46, 
    r'c:/SIMULIA/CAE/2019/win_b64/code/python2.7/lib/abaqus_plugins/excelUtilities')
import abq_ExcelUtilities.excelUtilities
abq_ExcelUtilities.excelUtilities.XYtoExcel(xyDataNames='From Current XY Plot', 
    trueName='From Current XY Plot')
...