Professional Documents
Culture Documents
L2.2
Abaqus
Abaqus
Abaqus
Abaqus
Abaqus
Abaqus
L2.4
Abaqus
Abaqus
Abaqus ASI Python
Abaqus
Abaqus abaqus_v6.env
ODB
Abaqus
L2.5
Abaqus
GUI
Abaqus/CAE
1
GUI
command
line
interface
(CLI)
3
script
commands
Python
interpreter
replay
files
Abaqus/CAE
kernel
input file
Abaqus/Standard
Abaqus/Explicit
L2.6
Abaqus
TAB
CLI
L2.7
Abaqus
CLI
Python
Abaqus Abaqus/CAE
Abaqus/CAE Python
L2.8
Abaqus
Abaqus/CAE
Abaqus/CAE
Abaqus/CAE
File
Python
execfile()
start-up
Abaqus/CAE :
abaqus python myscript.py
abaqus script myscript.py
Introduction to Python and Scripting in Abaqus
Dassault Systmes, 2008
L2.9
Abaqus
Macro Abaqus
abaqusMacros.py
Abaqus .rpy
session abaqus.rpy
Abaqus/CAE session
abaqus.rpy.1
L2.10
Abaqus
:
:
1) Abaqus/CAE View/Specify
.rpy
session.viewports['Viewport:1'].view.rotate(xAngle=10,
yAngle=0,zAngle=0,mode=MODEL)
2) Python :
for x in range(36):
session.viewports['Viewport:1'].view.rotate(xAngle=10,
yAngle=0,zAngle=0, mode=MODEL)
rotate.py.
Introduction to Python and Scripting in Abaqus
Dassault Systmes, 2008
L2.11
Abaqus
3) File FileRun
Script.
L2.12
Abaqus
Abaqus
GUI
CLI
CLI
Python _main__
CLI !
.rpy
vp = session.viewports['Viewport: 1']
vp CLI
Abaqus
L2.14
Abaqus
Abaqus Python
Abaqus
Abaqus
roots
SessionMdb Odb
Abaqus
container
L2.15
Abaqus
ownership
Abaqus/CAE
Introduction to Python and Scripting in Abaqus
Dassault Systmes, 2008
L2.16
Abaqus
members
methods
constructor
ownershippath
SessionMdb Odb Python
L2.17
Abaqus
:
vp = session.viewports['Viewport: 1']
vp.setValues(origin=(200,0))
cell4 = mdb.models['block'].parts['crankcase'].cells[4]
cell4
mdb
block
crankcase
mdbblock crankcase 4
cell 4
L2.18
Abaqus
Abaqus Scripting User's Manual:
, ,
!
Abaqus Scripting Reference Manual:
Abaqus Python
Access
Path
L2.19
Abaqus
Abaqus Access Path Abaqus
L2.20
Abaqus
p = mdb.models['Model-1'].Part(name='Part-1',
dimensionality=THREE_D, type=DEFORMABLE_BODY)
mdb.models['Model-1'].Part
mdb.models['Model-1'].parts['Part-1']
L2.21
Abaqus
Abaqus
member setValues
printOptions rendition
session.printOptions.setValues(rendition=GREYSCALE)
Introduction to Python and Scripting in Abaqus
Dassault Systmes, 2008
L2.22
Abaqus
Session
L2.23
Abaqus
Session
Session ( Abaqus/CAE Abaqus/Viewer
)
Session
Session Abaqus/CAE Abaqus/Viewer
Session :
XYData Session
ODB
L2.24
Abaqus
Mdb
Mdb .
Mdb
Abaqus/Viewer Abaqus/CAE
.
Mdb
L2.25
Abaqus
ODB
Odb
Odb :
from odbAccess import *
from odbAccess import openOdb, Odb
L2.26
Abaqus
Python
.cae .odb
type()
Abaqus
object.__members__
object.__methods__
:
>>> vp = session.viewports['Viewport: 1]
>>> type(vp)
<type 'Viewport'>
>>> vp.__members__
['activeColorModes', 'animationConnect', 'animationPlayer', ]
>>> vp.__methods__
['Layer', 'bringToFront', 'disableMultipleColors', ]
L2.27
Abaqus
Abaqus __doc__
>>> from odbAccess import openOdb
>>> print openOdb.__doc__
sys.modules['odbAccess'].openOdb(path) -> This method opens an
existing output
database (.odb) file and creates a new Odb object. You typically
execute this
method outside of Abaqus/CAE when, in most cases, only one output
database is
open at any time. For example,
import odbAccess
shockLoadOdb = odbAccess.openOdb(path='myOdb.odb')
>>>
Abaqus Python Tab
Python
Introduction to Python and Scripting in Abaqus
Dassault Systmes, 2008
Abaqus Types
L2.29
Abaqus
Python Abaqus Python
Abaqus ()
Abaqus MeshNodeArrays
MeshElementArrays
L2.30
Abaqus
Abaqus Abaqus
ALL_CAPS
: QUAD, SAX2T, RB2D2, DEFORMABLE, D_2D,
DEFORMABLE_BODY
a.setMeshControls(elemShape=QUAD)
: Boolean titleBar
if vp.titleBar:
print "The title bar will be displayed"
Abaqus Python
L2.31
Abaqus
Abaqus
280
:
type(mdb.models['Model-1'].materials['Steel'])
<type 'Material'>
Type
s = mdb.models['Model-1'].sections['sec-1']
...
...
if type(s) == HomogeneousSolidSection:
print 'This object is of type HomogeneousSolidSection'
from section import HomogeneousSolidSection
L2.32
Abaqus
Abaqus
vp = session.viewports['Viewport: 1']
vp.odbDisplay.display.setValues(plotState=(CONTOURS_ON_UNDEF, ))
del
vp
del vp
Viewport: 1
del session.viewports['Viewport: 1']
L2.33
Abaqus
: section
>>> s = mdb.models['Model-1'].sections['sec-1']
>>> type(s)
<type 'HomogeneousSolidSection'>
>>> s.__members__
['material', 'name', 'thickness']
>>> s.__methods__
['setValues']
>>> for member in s.__members__:
...
print 's.%s = %s' % (member, getattr(s, member))
s.material = mat-1
s.name = sec-1
s.thickness = 1.0
>>> del mdb.models['Model-1'].sections['sec-1']
Abaqus
L2.35
Abaqus
part
material
section
assembly
step
interaction
load
mesh
job
visualization
odb
odbAccess
sketch
L2.36
Abaqus
Python import Abaqus
caeModules Abaqus
from caeModules import *
Abaqus GUI
Abaqus
L2.38
Abaqus
Abaqus
abaqus_v6.env
Abaqus Python/ASI
Abaqus Python
onCaeStartup()
onCaeGraphicsStartup()
onJobStartup()
onJobCompletion()
Python
L2.39
Abaqus
Abaqus : abaqus_v6.env
def onCaeStartup():
# Compatibility issues
backwardCompatibility.setValues(includeDeprecated=OFF)
# Graphics preferences
session.graphicsOptions.setValues(displayLists=ON,
dragMode=AS_IS)
# Print preferences
session.printOptions.setValues(vpDecorations=OFF,
vpBackground=OFF,
rendition=COLOR, printCommand='lpr')
# Visualization preferences
def setVisPreferences(module, userData):
from visualization import SHADED, EXTERIOR, CONTINUOUS
session.defaultOdbDisplay.commonOptions.setValues(
renderStyle=SHADED, visibleEdges=EXTERIOR)
session.defaultOdbDisplay.contourOptions.setValues(
contourStyle=CONTINUOUS)
addImportCallback('visualization', setVisPreferences)
# Material properties - read them from a file
execfile('my_material_library.py')
L2.40
Abaqus
Abaqus abaqus_v6.env ()
onJobCompletion onJobStartup
savedir, id, scrdir, analysisType, applicationName,
abaqus_version
def onJobCompletion():
import os
extensions = ('res','stt','mdl','prt','abq','pac')
restartDir = savedir + id + '_restart' + os.sep
if (not os.path.exists(restartDir)):
os.mkdir(restartDir)
for extension in extensions:
fileName = id + '.' + extension
if (os.path.exists(savedir + fileName)):
os.rename(savedir + fileName, restartDir + fileName)
def onJobStartup():
import os, osutils
restartDir = savedir + id + '_restart'
if (os.path.exists(restartDir)):
osutils.removeTree(restartDir)
L2.41
Abaqus
Execution environment
abaqus_v6.env
abaqus_v6.env
Predefined names
onCaeStartup
for name in globals().keys():
if name != '__builtins__':
print '%s = %s' % (name , eval(name))
(this code be used at top level or within one of the functions)
L2.43
getInput
.
getInputs 1 /
Enter ok
getInput getInputs
L2.44
getInput (getInput.py sy31.py)
from abaqus import *
from math import sqrt
input = getInput('Enter a number', '9')
number = float(input)
print sqrt(number)
getInput float
getInputs
x = getInputs((('Enter first', '1'),
('Enter second', '2'),
('Enter third', '3')))
print x
L2.46
2-1:
scr_viewport_tiler.py
createViewports()
tileViewports()
createViewports()
tileViewports()
CLI
L2.47
2-2: A
: A (A.py)
1 mdb
from abaqus import *
from abaqusConstants import *
from caeModules import *
Mdb()
mdb
L2.48
2-2: A
2
myModel = mdb.Model(name='Model A')
mySketch = myModel.ConstrainedSketch(
name='Sketch A', sheetSize=200.0)
xyCoordsInner = ((-5 , 20), (5, 20), (15, 0),
(-15, 0), (-5, 20))
xyCoordsOuter = ((-10, 30), (10, 30), (40, -30),
(30, -30), (20, -10), (-20, -10),
(-30, -30), (-40, -30), (-10, 30))
for i in range(len(xyCoordsInner)-1):
mySketch.Line(point1=xyCoordsInner[i],
point2=xyCoordsInner[i+1])
for i in range(len(xyCoordsOuter)-1):
mySketch.Line(point1=xyCoordsOuter[i],
point2=xyCoordsOuter[i+1])
L2.49
2-2: A
3
myPart = myModel.Part(name='Part A',
dimensionality=THREE_D, type=DEFORMABLE_BODY)
myPart.BaseSolidExtrude(sketch=mySketch,
depth=20.0)
L2.50
2-2: A
5
partInstances = (myInstance,)
myAssembly.seedPartInstance(
regions=partInstances, size=5.0)
myAssembly.generateMesh(regions=partInstances)
L2.51
2-3:
Abaqus 2.3.4
(skewshell_parametric.py)
L2.53
L2.54
2-2: (workshop2-2.py)
1. Abaqus/CAE
2. abaqusMacros.py
3.
Abaqus/CAE GUIProperty