def getPressAve(odbname): odb=openOdb(odbname) lastFrame=odb.steps['Step-1'].frames[-1] pressure=lastFrame.fieldOutputs['CPRESS'] press=[[0,0]] # sets the first element to [0,0] for n in pressure.values: gridPt=part1.nodes.getFromLabel(n.nodeLabel) coord=assemb.getCoordinates(gridPt) press.append([n.nodeLabel,n.data,coord]) press=avePress=press[1:] # removes the first element press.sort(Comp_X) print ('pressure extracted') index=0 while index<len(press): sum=0 tally=0 if index!=0: sum=sum+press[index-1][1] tally=tally+1 if index!=1: sum=sum+press[index-2][1] tally=tally+1 if index!=2: sum=sum+press[index][1] tally=tally+1 if index<len(press)-1: sum=sum+press[index+1][1] tally=tally+1 if index<len(press)-2: sum=sum+press[index+2][1] tally=tally+1 average=sum/tally avePress[index][1]=average index=index+1 odb.close() print ('pressure averaged') return avePress
2 回答

慕容708150
TA贡献1831条经验 获得超4个赞
在Python中,缩进很重要。照原样,您正在定义一个getPressAve
仅执行以下操作的函数:
odb=openOdb(odbname)
定义函数后,您可以继续执行
lastFrame=odb.steps['Step-1'].frames[-1]
以及功能之外的东西。那不是你想要的。解决方案是使该odb=openOdb(odbname)
行之后的所有内容缩进该级别,以便将这些行解释为该函数主体的一部分。

慕容森
TA贡献1853条经验 获得超18个赞
您忘记正确缩进代码了:
def getPressAve(odbname):
odb=openOdb(odbname)
...
print ('pressure averaged')
return avePress
由于您尚未使用该return关键字,因此该关键字已在函数外部出现,因此出现错误:SyntaxError: 'return' outside function。
添加回答
举报
0/150
提交
取消