Using macro recording

Using macro recording

The macro-file following the recording above, contains the following in the file abaqusMacros.py residing in the work directory:

In [ ]:
# -*- 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:

In [ ]:
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:

In [ ]:
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)
TOC Next Prev

Disclaimer:This site is designed for educational purposes only. There are most likely errors, mistakes, typos, and poorly crafted statements that are not detected yet... www.ntnu.edu/employees/nils.p.vedvik

Copyright 2024, All rights reserved