Professional Documents
Culture Documents
flin55@126.com
2009.2.1
#===========================================================
ansys ansys
DP /
Abaqus
AbaqusAbaqus cae
cae
cae inp inp
inp
Python
Abaqus Abaqus
Python Ansys Apdl
Script
Simwe Python
Python
Abaqus python
Abqus Python
#===========================================================
1. Python Abaqus
1.1 Python
Python
..
.()
abaqus Python
mdb.models['Model-1'].ConstrainedSketch(name='__profile__', sheetSize=0.3)
s = mdb.models['Model-1'].ConstrainedSketch(name='__profile__', sheetSize=0.3)
s.sketchOptions.setValues(decimalPlaces=3, viewStyle=AXISYM)
s.setPrimaryObject(option=STANDALONE)
s.ConstructionLine(point1=(0.0, -100.0), point2=(0.0, 100.0))
Pythonifforwhile
cae
http://forum.simwe.com/viewthread.php?tid=808007&highlight=Python
http://groups.google.com/group/ck436goooglemail/files
abaqus.rpy
1.3 Abaqus/Python
Python Swaroop, C.H.
Python Python simwe
Abaqus
Abaqus Scripting User's Manual
Abaqus Scripting Reference Manual
Getting Started with Abaqus: Interactive Edition
Abaqus
#===========================================================
2. Abaqus/Python
Abaqusobject modelsessionmdbodbobjectssession
mdbodbobject
Abaqus Scripting User's
Manualabaqus
object python
python
a = mdb.models['Model-1'].rootAssembly
s = a.instances['Mount-1'].edges
side1Edges = s.findAt(((0.0475, 0.0, 0.0), ))
findat edges
side1Edges
side1Edges = mdb.models['Model-1'].rootAssembly. instances['Mount-1'].edges.
findAt(((0.0475, 0.0, 0.0), ))
a.Surface(side1Edges=side1Edges, name='Bottom') side1Edges
edge 'Bottom' surface set
#===========================================================
3.
Python
1 a120
b130c140 python
2.cae Python cae Python reader
Python
3. Python cae
#===========================================================
4.
4.1 Set ( )
Set python surfaceelement
4.2 Findat ( )
celledgefacevertice
p = mdb.models['Model-1'].parts['Mount']
f = p.faces
faces = f.findAt(((0.042303, 0.006937, 0.0), ))
pickedRegions =(faces, )
p.setElementType(regions=pickedRegions,
elemTypes=(elemType1, elemType2))
4.3 Len ( )
len
p = mdb.models['precast culvert'].parts['soil']
e = p.elements
len(e)
n1=len(e)
elements = e[1:n1]
# e [ ]
p.Set(elements=elements, name='Set-3')
set
Abaqus
ansys abaqus
Abaqus
len
5. Abaqus/Python
Getting Started with Abaqus: Interactive Edition
PythoncopyCrtol + Vcae
cae
#ansys
from abaqus import *
from abaqusConstants import *
abaqusabaqus
session.viewports['Viewport: 1'].makeCurrent()
session.viewports['Viewport: 1'].maximize()
session.journalOptions.setValues(replayGeometry=COORDINATE,
recoverGeometry=COORDINATE)
caemaximize()
from caeModules import *
from driverUtils import executeOnCaeStartup
executeOnCaeStartup()
Mdb()
#-------------------------------------------------------------------------------------------------##
s = mdb.models['Model-1'].ConstrainedSketch(name='__profile__', sheetSize=0.3)
sketch 0.3
Python
g, v, d, c = s.geometry, s.vertices, s.dimensions, s.constraints
s.sketchOptions.setValues(decimalPlaces=3, viewStyle=AXISYM)
s.setPrimaryObject(option=STANDALONE)
mdb.models['Model-1'].sketches['__profile__'].sketchOptions.setValues(gridFreque
ncy=4)
sketch
s.rectangle(point1=(0.01, 0.0), point2=(0.025, 0.01))
s.DistanceDimension(entity1=g[2], entity2=v[0],textPoint=(0.00998260825872421,
-0.00830297358334064), value=0.01)
s.VerticalDimension(vertex1=v[0],vertex2=v[1],textPoint=(0.0,0.008514488115906
72), value=0.03)
s.ObliqueDimension(vertex1=v[0],vertex2=v[3],textPoint=(0.025699570775032,
-0.00830297358334064), value=0.05)
s.CircleByCenterPerimeter(center=(0.085,0.025),point1=(0.06,
0.00740899052470922))
s.CoincidentConstraint(entity1=v[5], entity2=g[5])
s.DistanceDimension(entity1=g[2],
entity2=v[4],textPoint=(0.0811913833022118,
-0.023865295574069), value=0.1)
s.VerticalDimension(vertex1=v[2],
vertex2=v[4],textPoint=(0.115524396300316,
0.0262394621968269), value=0.0)
s.ObliqueDimension(vertex1=v[5], vertex2=v[3],textPoint=(0.0519323498010635,
0.0), value=0.005)
s.autoTrimCurve(curve1=g[7],point1=(0.124150268733501,-0.00965208746492863
))
g[7]g=s.geometry
s.autoTrimCurve(curve1=g[5],point1=(0.0601795427501202,0.020298857241869))
s.autoTrimCurve(curve1=g[4],point1=(0.0557677671313286,0.030869778245687))
s.RadialDimension(curve=g[8],textPoint=(0.0725325122475624,0.0207393132150
173),radius=0.047169905660283)
d[6].setValues(reference=ON)
session.viewports['Viewport: 1'].view.fitView()
cae
p = mdb.models['Model-1'].Part(name='Mount', dimensionality=AXISYMMETRIC,
type=DEFORMABLE_BODY)
p = mdb.models['Model-1'].parts['Mount']
model
p.BaseShell(sketch=s)
s.unsetPrimaryObject()
session.viewports['Viewport: 1'].setValues(displayedObject=p)
del mdb.models['Model-1'].sketches['__profile__']
model
#-------------------------------------------------------------------------------------------------##
mdb.models['Model-1'].Material('Rubber')
mdb.models['Model-1'].materials['Rubber'].Hyperelastic(type=POLYNOMIAL,
table=())
mdb.models['Model-1'].materials['Rubber'].hyperelastic.UniaxialTestData(table=((
0.054E6, 0.0380), (0.152E6, 0.1338), (0.254E6, 0.2210), (0.362E6, 0.3450),
(0.459E6, 0.4600), (0.583E6, 0.6242), (0.656E6, 0.8510), (0.730E6, 1.4268)))
mdb.models['Model-1'].materials['Rubber'].hyperelastic.BiaxialTestData(table=((0.
089E6, 0.0200), (0.255E6, 0.1400), (0.503E6, 0.4200), (0.958E6, 1.4900),
(1.703E6, 2.7500), (2.413E6, 3.4500)))
mdb.models['Model-1'].materials['Rubber'].hyperelastic.PlanarTestData(table=((0.0
55E6, 0.0690), (0.324E6, 0.2828), (0.758E6, 1.3862), (1.269E6, 3.0345),
(1.779E6, 4.0621)))
##
##
##
mdb.models['Model-1'].Material('Steel')
mdb.models['Model-1'].materials['Steel'].Elastic(table=((200.E9, 0.3), ))
##
##
##
mdb.models['Model-1'].HomogeneousSolidSection(name='RubberSection',
material='Rubber', thickness=1.0)
mdb.models['Model-1'].HomogeneousSolidSection(name='SteelSection',
material='Steel', thickness=1.0)
#------------------------------------------------------------------##
Partition the part into two regions (rubber and steel regions)
s.unsetPrimaryObject()
del mdb.models['Model-1'].sketches['__profile__']
#-------------------------------------------------------------------------------------------------##
p = mdb.models['Model-1'].parts['Mount']
f = p.faces
faces = f.findAt(((0.042303, 0.006937, 0.0), ))
region = regionToolset.Region(faces=faces)
p.SectionAssignment(region=region, sectionName='RubberSection', offset=0.0)
##
##
##
faces = f.findAt(((0.043333, 0.003333, 0.0), ))
region = regionToolset.Region(faces=faces)
p.SectionAssignment(region=region, sectionName='SteelSection', offset=0.0)
a = mdb.models['Model-1'].rootAssembly
session.viewports['Viewport: 1'].setValues(displayedObject=a)
##
##
##
a.DatumCsysByDefault(CARTESIAN)
##
##
##
p = mdb.models['Model-1'].parts['Mount']
a.Instance(name='Mount-1', part=p, dependent=ON)
##
##
##
e = a.instances['Mount-1'].edges
edges = e.findAt(((0.020708, 0.03, 0.0), ))
a.Set(edges=edges, name='Middle')
findatedgesMiddle
##
##
v = a.instances['Mount-1'].vertices
verts = v.findAt(((0.01, 0.0, 0.0), ))
a.Set(vertices=verts, name='Out')
findatverticesOut
##
##
s = a.instances['Mount-1'].edges
side1Edges = s.findAt(((0.0475, 0.0, 0.0), ))
a.Surface(side1Edges=side1Edges, name='Bottom')
findatedgesBottom
#-------------------------------------------------------------------------------------------------##
step
mdb.models['Model-1'].StaticStep(name='Compress mount', previous='Initial',
description='Apply axial pressure load to mount', timePeriod=1,
adiabatic=OFF, maxNumInc=100, stabilization=None,
timeIncrementationMethod=AUTOMATIC,
initialInc=0.01, minInc=1e-05, maxInc=1, matrixSolver=SOLVER_DEFAULT,
amplitude=RAMP, extrapolation=LINEAR, fullyPlastic="", nlgeom=ON)
stepcae
session.viewports['Viewport: 1'].assemblyDisplay.setValues(
step='Compress mount')
##
mdb.models['Model-1'].fieldOutputRequests['F-Output-1'].setValues(
variables=('S', 'PE', 'PEEQ', 'PEMAG', 'NE', 'LE', 'U', 'RF',
'CF', 'CSTRESS', 'CDISP'))
regionDef=a.sets['Out']
mdb.models['Model-1'].HistoryOutputRequest(name='H-Output-1',
createStepName='Compress mount', variables=('U1', 'U2', 'U3'),
region=regionDef)
session.viewports['Viewport: 1'].assemblyDisplay.setValues(loads=ON, bcs=ON,
predefinedFields=ON)
#-------------------------------------------------------------------------------------------------##
load
region = a.surfaces['Bottom']
mdb.models['Model-1'].Pressure(name='Pressure',
createStepName='Compress mount', region=region, magnitude=500000.0)
bottomset
##
##
region = a.sets['Middle']
mdb.models['Model-1'].DisplacementBC(name='Symmetry',
createStepName='Compress mount', region=region, u2=0.0)
##
##
session.viewports['Viewport: 1'].assemblyDisplay.geometryOptions.setValues(
geometryEdgesInShaded=OFF,
datumPoints=OFF,
datumAxes=OFF,
datumPlanes=OFF,datumCoordSystems=OFF)
session.viewports['Viewport: 1'].assemblyDisplay.setValues(mesh=ON, loads=OFF,
bcs=OFF, predefinedFields=OFF)
session.viewports['Viewport: 1'].assemblyDisplay.meshOptions.setValues(
meshTechnique=ON)
p = mdb.models['Model-1'].parts['Mount']
session.viewports['Viewport: 1'].setValues(displayedObject=p)
mesh
#-------------------------------------------------------------------------------------------------##
mesh
p = mdb.models['Model-1'].parts['Mount']
e = p.edges
pickedEdges = e.findAt(((0.0225, 0.005, 0.0), ), ((0.0475, 0.0, 0.0), ),
((0.020708, 0.03, 0.0), ))
p.seedEdgeByNumber(edges=pickedEdges, number=30)
pickedEdges = e.findAt(((0.053289, 0.023434, 0.0), ), ((0.01, 0.01125, 0.0), ))
p.seedEdgeByNumber(edges=pickedEdges, number=14)
pickedEdges = e.findAt(((0.01, 0.00125, 0.0), ), ((0.06, 0.00375, 0.0), ))
p.seedEdgeByNumber(edges=pickedEdges, number=1)
##
##
f = p.faces
pickedRegions = f
p.setMeshControls(regions=pickedRegions, technique=STRUCTURED)
STRUCTURED
##
##
elemType1 = mesh.ElemType(elemCode=CAX4H, elemLibrary=STANDARD)
elemType2 = mesh.ElemType(elemCode=CAX3, elemLibrary=STANDARD)
faces = f.findAt(((0.042303, 0.006937, 0.0), ))
pickedRegions =(faces, )
p.setElementType(regions=pickedRegions, elemTypes=(elemType1, elemType2))
##
##
elemType1 = mesh.ElemType(elemCode=CAX4I, elemLibrary=STANDARD)
elemType2 = mesh.ElemType(elemCode=CAX3, elemLibrary=STANDARD)
faces = f.findAt(((0.043333, 0.003333, 0.0), ))
pickedRegions =(faces, )
p.setElementType(regions=pickedRegions, elemTypes=(elemType1, elemType2))
##
Generate mesh
##
p.generateMesh()
session.viewports['Viewport: 1'].assemblyDisplay.setValues(mesh=OFF)
session.viewports['Viewport: 1'].assemblyDisplay.meshOptions.setValues(
meshTechnique=OFF)
#-------------------------------------------------------------------------------------------------##
Create job
job
mdb.Job(name='Mount', model='Model-1',
description='Axisymmetric mount analysis under axial loading',
modelPrint=ON)
a = mdb.models['Model-1'].rootAssembly
a.regenerate()
##
##
##
mdb.saveAs('Mount')
#-------------------------------------------------------------------------------------------------
1.Abaqus python
2.pthon cae
3. python cae python
cae python.rpy python
abaqus python
#===========================================================
Python