有哪個大神能解釋一下,以下的代碼是否有錯,謝謝
# -*- coding: utf-8 -*-
from odbAccess import *
from abaqusConstants import *
import sys #匯入系統模塊
import string #匯入字串處理模塊
print 'begin abaqus python'
print 'this code is for obd process'
odb = openOdb (path='random.odb') #open the odb file
myAssembly = odb.rootAssembly
s = sys.argv[2]
f = open (s,'w') #open the output file
f.write ('TITLE=output RMS for radom response analysis')
f.write ('VARIABLES = "element","Mises" \n')
FrameLen = len(odb.steps['Step-2'].frames)
destframe=int (sys.argv[1]) #錄入需要提取頻率的frame數目
i=destframe
l=1
while i<destframe +1 : #當i=所需要幀時候,處理該幀下的資料
Frame = odb.steps['Step-2'].frames[1]
RootMeanStress=Frame.fieldOutputs['RS']
RSValues = RootMeanStress.values
count = len (RSValues) # print count
mises=range (0,count);
EleLab=range (0,count); #print len(EleLab),len(mises)
for l in range(0,count):
val = RSValues [1];
data = val.data
dataLen=len (data)
s11=data[0]
s22=data[1]
s33=data[2]
s12=data[3]
mises2=s11*s11+s22*s22+s33*s33-1.0/3.0*(s11+s22+s33)*(s11+s22+s33) #RMS mises stress
ises[l-1] =sqrt(mises2)
EleLab[l-1] =val.elementLabel
#print "S:",val.elementLabel,sqrt(mises2)
# f.write("hi\n")
sel=str(val.elementLabel)
smi=str(sqrt(mises2))
f.write(sel)
f.write('\t')
f.write('\t')
f.write(smi)
f.write('\t')
f.write('\n')
i=i+1
# f.write('end of process')
f.close()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/23116.html
上一篇:selenium 速度
