我正在尝试使用abaqus脚本进行谐波分析。每次我运行下面的代码,我都会得到'KeyError: XYPlot-1‘。任何帮助都将不胜感激。提亚
# -*- coding: mbcs -*-
# Do not delete the following import lines
from abaqus import *
from abaqusConstants import *
import __main__
def Macro1():
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.Line(point1=(0.0, 0.0), point2=(0.235000000051223, 0.0))
s.HorizontalConstraint(entity=g[2], addUndoState=False)
s.ObliqueDimension(vertex1=v[0], vertex2=v[1], textPoint=(0.140255361795425,
0.0583333373069763), value=0.985)
session.viewports['Viewport: 1'].view.setValues(nearPlane=0.686013,
farPlane=1.19961, width=1.74884, height=0.832297, cameraPosition=(
0.0144624, 0.0330418, 0.942809), cameraTarget=(0.0144624, 0.0330418,
0))
p = mdb.models['Model-1'].Part(name='Part-1', dimensionality=TWO_D_PLANAR,
type=DEFORMABLE_BODY)
p = mdb.models['Model-1'].parts['Part-1']
p.BaseWire(sketch=s)
s.unsetPrimaryObject()
p = mdb.models['Model-1'].parts['Part-1']
session.viewports['Viewport: 1'].setValues(displayedObject=p)
del mdb.models['Model-1'].sketches['__profile__']
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='Stainless Steel',
description='Creating of Material Properties for Stainless Steel 304')
mdb.models['Model-1'].materials['Stainless Steel'].Density(table=((7930.0,
), ))
mdb.models['Model-1'].materials['Stainless Steel'].Elastic(table=((
200000000000.0, 0.31), ))
mdb.models['Model-1'].PipeProfile(name='Profile-1', r=0.008, t=0.0015)
mdb.models['Model-1'].BeamSection(name='Tube Section',
integration=DURING_ANALYSIS, poissonRatio=0.0, profile='Profile-1',
material='Stainless Steel', temperatureVar=LINEAR,
consistentMassMatrix=False)
p = mdb.models['Model-1'].parts['Part-1']
e = p.edges
edges = e.getSequenceFromMask(mask=('[#1 ]', ), )
region = p.Set(edges=edges, name='Set-1')
p = mdb.models['Model-1'].parts['Part-1']
p.SectionAssignment(region=region, sectionName='Tube Section', offset=0.0,
offsetType=MIDDLE_SURFACE, offsetField='',
thicknessAssignment=FROM_SECTION)
p = mdb.models['Model-1'].parts['Part-1']
e = p.edges
edges = e.getSequenceFromMask(mask=('[#1 ]', ), )
region=p.Set(edges=edges, name='Set-2')
p = mdb.models['Model-1'].parts['Part-1']
p.assignBeamSectionOrientation(region=region, method=N1_COSINES, n1=(0.0, 0.0,
-1.0))
a = mdb.models['Model-1'].rootAssembly
session.viewports['Viewport: 1'].setValues(displayedObject=a)
a1 = mdb.models['Model-1'].rootAssembly
a1.DatumCsysByDefault(CARTESIAN)
p = mdb.models['Model-1'].parts['Part-1']
a1.Instance(name='Part-1-1', part=p, dependent=OFF)
session.viewports['Viewport: 1'].partDisplay.setValues(sectionAssignments=OFF,
engineeringFeatures=OFF)
session.viewports['Viewport: 1'].partDisplay.geometryOptions.setValues(
referenceRepresentation=ON)
p = mdb.models['Model-1'].parts['Part-1']
session.viewports['Viewport: 1'].setValues(displayedObject=p)
p = mdb.models['Model-1'].parts['Part-1']
e = p.edges
pickedEdges = e.getSequenceFromMask(mask=('[#1 ]', ), )
p.PartitionEdgeByParam(edges=pickedEdges, parameter=0.5)
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(
adaptiveMeshConstraints=ON)
mdb.models['Model-1'].StaticStep(name='Modes', previous='Initial',
description='Finding the frequencies fro all the Modal Shapes')
session.viewports['Viewport: 1'].assemblyDisplay.setValues(step='Modes')
del mdb.models['Model-1'].steps['Modes']
session.viewports['Viewport: 1'].assemblyDisplay.setValues(step='Initial')
mdb.models['Model-1'].FrequencyStep(name='Modes', previous='Initial',
description='Finding Frequencies of all Mode Shapes', numEigen=20)
session.viewports['Viewport: 1'].assemblyDisplay.setValues(step='Modes')
mdb.models['Model-1'].fieldOutputRequests['F-Output-1'].setValues(variables=(
'U', 'E'))
session.viewports['Viewport: 1'].assemblyDisplay.setValues(loads=ON, bcs=ON,
predefinedFields=ON, connectors=ON, adaptiveMeshConstraints=OFF)
a = mdb.models['Model-1'].rootAssembly
v1 = a.instances['Part-1-1'].vertices
verts1 = v1.getSequenceFromMask(mask=('[#1 ]', ), )
region = a.Set(vertices=verts1, name='Set-1')
mdb.models['Model-1'].EncastreBC(name='BC-1', createStepName='Modes',
region=region, localCsys=None)
mdb.models['Model-1'].boundaryConditions.changeKey(fromName='BC-1',
toName='Left_Edge_Fixed')
a = mdb.models['Model-1'].rootAssembly
v1 = a.instances['Part-1-1'].vertices
verts1 = v1.getSequenceFromMask(mask=('[#4 ]', ), )
region = a.Set(vertices=verts1, name='Set-2')
mdb.models['Model-1'].EncastreBC(name='BC-2', createStepName='Modes',
region=region, localCsys=None)
mdb.models['Model-1'].boundaryConditions.changeKey(fromName='BC-2',
toName='Right_Edge_Fixed')
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)
a = mdb.models['Model-1'].rootAssembly
e1 = a.instances['Part-1-1'].edges
pickedEdges = e1.getSequenceFromMask(mask=('[#3 ]', ), )
a.seedEdgeByNumber(edges=pickedEdges, number=20, constraint=FINER)
a = mdb.models['Model-1'].rootAssembly
partInstances =(a.instances['Part-1-1'], )
a.generateMesh(regions=partInstances)
session.viewports['Viewport: 1'].assemblyDisplay.setValues(mesh=OFF)
session.viewports['Viewport: 1'].assemblyDisplay.meshOptions.setValues(
meshTechnique=OFF)
mdb.Job(name='Mode_Job', model='Model-1',
description='Job to find the mode shapes and frequencies',
type=ANALYSIS, atTime=None, waitMinutes=0, waitHours=0, queue=None,
memory=90, memoryUnits=PERCENTAGE, getMemoryFromAnalysis=True,
explicitPrecision=SINGLE, nodalOutputPrecision=SINGLE, echoPrint=OFF,
modelPrint=OFF, contactPrint=OFF, historyPrint=OFF, userSubroutine='',
scratch='', resultsFormat=ODB)
mdb.jobs['Mode_Job'].submit(consistencyChecking=OFF)
session.mdbData.summary()
o3 = session.openOdb(name='C:/ABAQUS/Simulations/Scripting/Mode_Job.odb')
session.viewports['Viewport: 1'].setValues(displayedObject=o3)
session.viewports['Viewport: 1'].makeCurrent()
session.viewports['Viewport: 1'].odbDisplay.display.setValues(plotState=(
DEFORMED, ))
session.linkedViewportCommands.setValues(_highlightLinkedViewports=False)
odb = session.odbs['C:/ABAQUS/Simulations/Scripting/Mode_Job.odb']
session.xyDataListFromField(odb=odb, outputPosition=NODAL, variable=(('U',
NODAL, ((COMPONENT, 'U2'), )), ), nodePick=(('PART-1-1', 1, ('[#2 ]',
)), ), )
odb = session.odbs['C:/ABAQUS/Simulations/Scripting/Mode_Job.odb']
xyList = xyPlot.xyDataListFromField(odb=odb, outputPosition=NODAL, variable=((
'U', NODAL, ((COMPONENT, 'U2'), )), ), nodePick=(('PART-1-1', 1, (
'[#2 ]', )), ), )
xyp = session.xyPlots['XYPlot-1']
chartName = xyp.charts.keys()[0]
chart = xyp.charts[chartName]
curveList = session.curveSet(xyData=xyList)
chart.setValues(curvesToPlot=curveList)
session.charts[chartName].autoColor(lines=True, symbols=True)
session.viewports['Viewport: 1'].setValues(displayedObject=xyp)
odb = session.odbs['C:/ABAQUS/Simulations/Scripting/Mode_Job.odb']
session.xyDataListFromField(odb=odb, outputPosition=NODAL, variable=(('U',
NODAL, ((COMPONENT, 'U2'), )), ), nodePick=(('PART-1-1', 1, ('[#2 ]',
)), ), )
p = mdb.models['Model-1'].parts['Part-1']
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)
mdb.models['Model-1'].SteadyStateModalStep(name='FRF', previous='Modes',
description='FRF of the tube', frequencyRange=((0.0, 750.0, 50, 3.0),
), directDamping=((1, 5, 0.06), ))
session.viewports['Viewport: 1'].assemblyDisplay.setValues(step='FRF')
mdb.models['Model-1'].FieldOutputRequest(name='F-Output-FRF',
createStepName='FRF', variables=('S', 'MISESMAX', 'E', 'U', 'TU', 'TA',
'RT'))
session.viewports['Viewport: 1'].assemblyDisplay.setValues(loads=ON, bcs=ON,
predefinedFields=ON, connectors=ON, adaptiveMeshConstraints=OFF)
a = mdb.models['Model-1'].rootAssembly
v1 = a.instances['Part-1-1'].vertices
verts1 = v1.getSequenceFromMask(mask=('[#2 ]', ), )
region = a.Set(vertices=verts1, name='Set-4')
mdb.models['Model-1'].ConcentratedForce(name='Applied Load',
createStepName='FRF', region=region, cf2=-12.5+0j,
distributionType=UNIFORM, field='', localCsys=None)
session.viewports['Viewport: 1'].assemblyDisplay.setValues(loads=OFF, bcs=OFF,
predefinedFields=OFF, connectors=OFF)
mdb.Job(name='FRF_Job', model='Model-1', description='Job to find FRF',
type=ANALYSIS, atTime=None, waitMinutes=0, waitHours=0, queue=None,
memory=90, memoryUnits=PERCENTAGE, getMemoryFromAnalysis=True,
explicitPrecision=SINGLE, nodalOutputPrecision=SINGLE, echoPrint=OFF,
modelPrint=OFF, contactPrint=OFF, historyPrint=OFF, userSubroutine='',
scratch='', resultsFormat=ODB)
mdb.jobs['FRF_Job'].submit(consistencyChecking=OFF)
session.mdbData.summary()
o3 = session.openOdb(name='C:/ABAQUS/Simulations/Scripting/FRF_Job.odb')
session.viewports['Viewport: 1'].setValues(displayedObject=o3)
session.viewports['Viewport: 1'].makeCurrent()
session.linkedViewportCommands.setValues(_highlightLinkedViewports=False)
odbName=session.viewports[session.currentViewportName].odbDisplay.name
session.odbData[odbName].setValues(activeFrames=(('FRF', ('0:-1', )), ))
odb = session.odbs['C:/ABAQUS/Simulations/Scripting/FRF_Job.odb']
session.xyDataListFromField(odb=odb, outputPosition=NODAL, variable=(('U',
NODAL, ((COMPONENT, 'U2'), )), ), numericForm=REAL, nodePick=((
'PART-1-1', 1, ('[#2 ]', )), ), )
odb = session.odbs['C:/ABAQUS/Simulations/Scripting/FRF_Job.odb']
xyList = xyPlot.xyDataListFromField(odb=odb, outputPosition=NODAL, variable=((
'U', NODAL, ((COMPONENT, 'U2'), )), ), numericForm=REAL, nodePick=((
'PART-1-1', 1, ('[#2 ]', )), ), )
xyp = session.xyPlots['XYPlot-1']
chartName = xyp.charts.keys()[0]
chart = xyp.charts[chartName]
curveList = session.curveSet(xyData=xyList)
chart.setValues(curvesToPlot=curveList)
session.charts[chartName].autoColor(lines=True, symbols=True)
session.viewports['Viewport: 1'].setValues(displayedObject=xyp)
odb = session.odbs['C:/ABAQUS/Simulations/Scripting/FRF_Job.odb']
session.xyDataListFromField(odb=odb, outputPosition=NODAL, variable=(('U',
NODAL, ((COMPONENT, 'U2'), )), ), numericForm=REAL, nodePick=((
'PART-1-1', 1, ('[#2 ]', )), ), )
Macro1()任何关于我如何做for循环来为不同的杨氏模量,泊松比和密度做各种迭代的额外信息也将非常感谢。
发布于 2020-05-31 03:06:54
欢迎来到Stack Overflow。在python意义上,这意味着找不到密钥XYPlot-1。
宏中的
https://stackoverflow.com/questions/61974634
复制相似问题