代码之家  ›  专栏  ›  技术社区  ›  Schneider

abaqus中的Python脚本错误:“numpy。ndarray对象没有属性“setValues”

  •  -2
  • Schneider  · 技术社区  · 8 年前

    基本上,我试图输出一个包含两个数据x0和x1的报告。我跟着阿巴克斯。rpy格式,并试图重命名计算变量,但它给了我这个错误。

    • AttributeError:“numpy。ndarray对象在中的第72行没有属性“setValues” xy2。设置值(sourceDescription='s+'U3 PI:PLATE-1 N:40402 NSET RP-1')

    (行号与下面代码中提供的行号不同。)

    from abaqus import *
    from abaqusConstants import *
    from caeModules import *
    import random  
    import mesh
    import time
    import odbAccess
    import visualization
    
    
    session.XYDataFromHistory(name='U3 PI: PLATE-1 N: 40402 NSET RP-1', odb=odb, 
    outputVariableName='Spatial displacement: U3 PI: PLATE-1 Node 40402 in NSET RP', 
    steps=('compression', ), __linkedVpName__='Viewport: 1')
    xy1 = session.xyDataObjects['U3 PI: PLATE-1 N: 40402 NSET RP-1']
    xy2 = s+xy1
    xy2.setValues(sourceDescription=' s + "U3 PI: PLATE-1 N: 40402 NSET RP-1"')
    tmpName = xy2.name
    session.xyDataObjects.changeKey(tmpName, 'XYData-1')
    x0=session.XYDataFromHistory(name='RF3 PI: PLATE-1 N: 40402 NSET RP-1', odb=odb, 
    outputVariableName='Reaction force: RF3 PI: PLATE-1 Node 40402 in NSET RP', 
    steps=('compression', ), __linkedVpName__='Viewport: 1')
    x1 = session.xyDataObjects['XYData-1']
    session.writeXYReport(fileName='Thickness_Estimation.rpt', xyData=(x0, x1), appendMode=OFF) 
    

    请让我知道如何克服这个问题。

    1 回复  |  直到 8 年前
        1
  •  0
  •   Schneider    8 年前

    找到了此问题的答案。我只是需要转换一下 xy2 进入XY数据对象。

    xy1 = session.xyDataObjects['U3 PI: PLATE-1 N: 40402 NSET RP-1']
    xy2Data=[]
    for datapoint in xy1.data:
      xy2Data.append([datapoint[0], datapoint[1]+s])
    
    xQuantity = visualization.QuantityType(type=TIME)
    yQuantity = visualization.QuantityType(type=DISPLACEMENT)
    session.XYData(name='Distance', data=xy2Data, 
    sourceDescription='s+U3', axis1QuantityType=xQuantity, 
    axis2QuantityType=yQuantity, )
    xy2 = session.xyDataObjects['Distance']
    x0=session.XYDataFromHistory(name='RF3 PI: PLATE-1 N: 40402 NSET RP-1', 
    odb=odb, 
    outputVariableName='Reaction force: RF3 PI: PLATE-1 Node 40402 in NSET RP', 
    steps=('compression', ), __linkedVpName__='Viewport: 1')
    
    session.writeXYReport(fileName='Load_Caliper.rpt', xyData=(x0,xy2), 
    appendMode=OFF) 
    
    推荐文章