The macro-file following the recording above, contains the following in the file abaqusMacros.py
residing in the work directory:
# -*- 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
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='Material-1')
mdb.models['Model-1'].materials['Material-1'].Density(table=((7.8e-09, ), ))
mdb.models['Model-1'].materials['Material-1'].Elastic(table=((200000.0, 0.3),
))
Removing everything not essential, relevant and/or not used:
from abaqus import *
from abaqusConstants import *
def Macro1():
mdb.models['Model-1'].Material(name='Material-1')
mdb.models['Model-1'].materials['Material-1'].Density(table=((7.8e-09, ), ))
mdb.models['Model-1'].materials['Material-1'].Elastic(table=((200000.0, 0.3), ))
Finally, making the code more useful by adding variables to the function and a function call:
from abaqus import *
from abaqusConstants import *
def newModelWithMaterial(modelname, materialname, rho, E, nu):
mod = mdb.Model(name = modelname)
mat = mod.Material(name=materialname)
mat.Density(table=((rho, ), ))
mat.Elastic(table=((E, nu), ))
newModelWithMaterial(modelname='M2', materialname='Steel', rho=7800E-12, E=200000, nu=0.3)
Note: Best practice is usually to first set the parameter replayGeometry
to the option COORDINATE
rather than the default value INDEX
since the latter will produce totally cryptic reference to enteties.
>>>session.journalOptions.setValues(replayGeometry = COORDINATE)