7.2 Generating a customized plot

The following section provides examples of ABAQUS Scripting Interface scripts that open an output database and generate a customized plot. In effect, these scripts reproduce the functionality of the Visualization module in ABAQUS/CAE. The following examples are provided:


7.2.1 Opening the tutorial output database

Each of the following example scripts opens the output database used by the Visualization module tutorial in Getting Started with ABAQUS. Use the following command to retrieve the output database that is read by the scripts:

abaqus fetch job=viewer_tutorial


7.2.2 Opening an output database and displaying a contour plot

The following example of a script containing ABAQUS Scripting Interface commands uses the output database used by Appendix D, Viewing the Output from Your Analysis,” of Getting Started with ABAQUS.

Use the following command to retrieve the example script:

abaqus fetch job=viewerOpenOdbAndContour
The script does the following:
  • Creates a viewport, and makes it the current viewport.

  • Opens an output database.

  • Displays a contour plot.

  • Displays the model in the first frame of the third step.

  • Sets the number of contour intervals and the contour limits.

  • Prints a color image of the viewport to a .png file.

"""
viewerOpenOdbAndContour.py

Print a contour plot to a local PNG-format file.
"""

from abaqus import *
from abaqusConstants import *
import visualization

# Create a new Viewport for this example.

myViewport=session.Viewport(name='Print a contour plot', 
    origin=(10, 10), width=200, height=100)

# Open the output database and associate it
# with the new viewport.

odbPath = "viewer_tutorial.odb"
myOdb = visualization.openOdb(path=odbPath)
    
myViewport.setValues(displayedObject=myOdb)

# Display a contour plot of the output database.

myViewport.odbDisplay.setPlotMode(CONTOUR)

# Change to the first frame of the third step.
# Remember that indices in Python begin with zero: 
#   The index of the first frame is 0.
#   The index of the third step is 2.

myViewport.odbDisplay.setFrame(step=2, frame=0)

# Change the number of contour intervals to 10
# starting at 0.0 and ending at 0.10.

myViewport.odbDisplay.contourOptions.setValues(numIntervals=10, 
    maxAutoCompute=OFF, maxValue=0.10, 
    minAutoCompute=OFF, minValue=0.0,)

# Generate color output. 
# Do not print the viewport decorations or the black background.

session.printOptions.setValues(rendition=COLOR,
    vpDecorations=OFF, vpBackground=OFF)

# Print the viewport to a local PNG-format file.

session.printToFile(fileName='contourPlot', format=PNG,
    canvasObjects=(myViewport,)) 



7.2.3 Printing a contour plot at the end of each step

The following example script demonstrates how to produce and print a contour plot at the last frame of every step within an output database file. The example sets the appropriate contour limits so that all plots can be viewed within a fixed range.

Use the following command to retrieve the example script:

abaqus fetch job=viewerPrintContours
The script does the following:
  • Defines the contour limits function.

  • Determines the final frame of every step within an output database file.

  • Produces a contour plot at the final frame of every step.

  • Prints the contour plot to a file.

"""
viewerPrintContours.py

Print a set of contour plots to .png files.
"""

from abaqus import *
from abaqusConstants import *
import visualization

# Create a viewport for this example.

myViewport=session.Viewport(name=
    'Print contour plot after each step', origin=(10, 10),
    width=150, height=100)

# Open the output database and associate it with the viewport.
# Then enter the contour plot mode.

try:
    myOdb = visualization.openOdb(path='viewer_tutorial.odb')

except (AbaqusException), value:
    print 'Error:', value

myViewport.setValues(displayedObject=myOdb)

myViewport.odbDisplay.setPlotMode(CONTOUR)

# Determine the number of steps in the output database.

mySteps = myOdb.steps
numSteps = len(mySteps)

# Set the maximum and minimum limits of the contour legend.

myViewport.odbDisplay.contourOptions.setValues(numIntervals=10,
      maxAutoCompute=OFF, maxValue=0.1,
      minAutoCompute=OFF, minValue=0.0)

# Establish print preferences.

session.printOptions.setValues(vpBackground=OFF)
session.psOptions.setValues(orientation=LANDSCAPE)
myViewport.viewportAnnotationOptions.setValues(
    triad=OFF,title=OFF,state=OFF)
myViewport.odbDisplay.basicOptions.setValues(
    coordSystemDisplay=OFF, )

# For each step, obtain the following:
#     1) The step key.
#     2) The number of frames in the step.
#     3) The increment number of the last frame in the step.
#

for i in range(numSteps):
    stepKey = mySteps.keys()[i]
    step = mySteps[stepKey]
    numFrames = len(step.frames)

#   Go to the last frame.
#   Display a contour plot.
#   Display the step description and the increment number.

    myViewport.odbDisplay.setFrame(step=i, frame=numFrames-1)
    myViewport.odbDisplay.setPlotMode(CONTOUR)
    
# Remove white space from the step key and use the result
# to name the file.

    fileName=stepKey.replace(' ','')

# Print the viewport to a file.

    session.printToFile(fileName, PNG, (myViewport,))