pythonabaqusabaqus-odb

Abaqus Python: Accessing XYDataFromHistory at particular nodes


I have defined the following in an attempt to export HISTORY OUTPUT data at specified nodes from abaqus odb file. It is not clear to me how to resolve this error. Any suggestions?

from odbAccess import

def main():
    odb=openOdb('name.odb')

    ['Spatial acceleration: A1 at Node 84735155 in NSET SENSOR1',
     'Spatial acceleration: A2 at Node 84735155 in NSET SENSOR2']
    results = []
    for i in range(len(new_list)):
        f=XYDataFromHistory(odb=odb, 
                            outputVariableName=new_list[i],
                            steps=('Step-4', ), name='test{}'.format(i) )
        results.append(f)

Error

  Traceback (most recent call last):
  File "odb_processing_SSD_acceleration_export_v4.py", line 66, in <module>
    main()
  File "odb_processing_SSD_acceleration_export_v4.py", line 32, in main
    f=XYDataFromHistory(odb=odb,
NameError: global name 'XYDataFromHistory' is not defined

Solution

  • XYDataFromHistory(...) is Abaqus method that is a part of the session and xyPlot objects. Thus, you have to call it correctly in your code.

    from odbAccess import *
    
    
    def main():
        odb=openOdb('name.odb')
    
        ['Spatial acceleration: A1 at Node 84735155 in NSET SENSOR1',
         'Spatial acceleration: A2 at Node 84735155 in NSET SENSOR2']
        results = []
        for i in range(len(new_list)):
            f=session.XYDataFromHistory(odb=odb, 
                                outputVariableName=new_list[i],
                                steps=('Step-4', ), name='test{}'.format(i) )
            results.append(f)
    

    or

    from odbAccess import *
    
    
    def main():
        odb=openOdb('name.odb')
    
        ['Spatial acceleration: A1 at Node 84735155 in NSET SENSOR1',
         'Spatial acceleration: A2 at Node 84735155 in NSET SENSOR2']
        results = []
        for i in range(len(new_list)):
            f=xyPlot.XYDataFromHistory(odb=odb, 
                                outputVariableName=new_list[i],
                                steps=('Step-4', ), name='test{}'.format(i) )
            results.append(f)