abaqus_Python实例-操作excel文件

13
abaqus Python 实实——实实 excel 实实 目目目目目目目目目 excel pythoner 目目目目目 python 目目 excel 目目 Python 目 excel 目目目 目目目目目 目目目目目 ,一 xlrd/xlwt 目 目 bug 目 目 ujs505目目目目 Win32Com 目目目目64bit 目 目目目目 目目 xlrd/ xlwt 目 目 ,。 目目目目目目目目 TRA目目目目目目目目目目目目目目目目目目目目目目目excel 目目目目 目目目目目 ,, 目目 from math import * import sys import re import xlrd from xlwt import Workbook book=Workbook() sheet=book.add_sheet('test_NT',cell_overwrite_ok=True) sheet1=book.add_sheet('engineer',cell_overwrite_ok=True) sheet2=book.add_sheet('True',cell_overwrite_ok=True) sheet3=book.add_sheet('Plastic',cell_overwrite_ok=True) sheet4=book.add_sheet('Plastic_modify',cell_overwrite_ok=True) total_nubmer=46 nclown=0 nclown_e=0 nclown_t=0 nclown_p=0 nclown_pm=0 for i in range(total_nubmer):

description

abaqus_Python实例-操作excel文件

Transcript of abaqus_Python实例-操作excel文件

abaqus PythonexcelexcelpythonerpythonexcelPythonexcelxlrd/xlwtbugujs505Win32Com64bitxlrd/xlwtTRAexcelfrom math import *import sysimport reimport xlrdfrom xlwt import Workbookbook=Workbook()sheet=book.add_sheet('test_NT',cell_overwrite_ok=True)sheet1=book.add_sheet('engineer',cell_overwrite_ok=True)sheet2=book.add_sheet('True',cell_overwrite_ok=True)sheet3=book.add_sheet('Plastic',cell_overwrite_ok=True)sheet4=book.add_sheet('Plastic_modify',cell_overwrite_ok=True)total_nubmer=46nclown=0nclown_e=0nclown_t=0nclown_p=0nclown_pm=0for i in range(total_nubmer):myfile='tensile-'+str(i+1)f=open(myfile+'.TRA','r')engineer_strain=[]true_strain=[]engineer_stress=[]true_stress=[]plastic_strain=[]test_force=[]s1=f.readline()s2=f.readline()s3=f.readline()s4=f.readline()s1=re.sub('"|\t|;|\n',' ',s1)s1=re.split(' +',s1)name=s1[2]little=name[-2:]s2=re.sub('"|\t|;|\n',' ',s2)s2=re.split(' +',s2)times=s2[2]print name+'run'+str(times)bk=xlrd.open_workbook('Static report.xls')sh=bk.sheet_by_name("Stat")diameter=sh.cell_value(i+2,4)area=pi*((diameter)**2)/4E_modulus=sh.cell_value(i+2,7)state=Trues0=f.readlines()s0=s0[-2]s0=re.sub(';',' ',s0)s0=re.split(' +',s0)f.seek(0)s1=f.readline()s2=f.readline()s3=f.readline()s4=f.readline()while state:s=f.readline()s=re.sub(';',' ',s)s=re.split(' +',s)#print s#print s0if (s=="EOF")|(s==s0):state=Falseelse:force=float(s[1])eee=float(s[0])/100.0sss=force/areatest_force.append(force)engineer_strain.append(eee)engineer_stress.append(sss)true_strain.append(log(1.0+eee))true_stress.append(sss*(1.0+eee))plastic_strain.append(log(1.0+eee)-sss*(1.0+eee)/E_modulus)f.close()##########################################################3simu_strain=[]simu_P_strain=[]simu_triax=[]simu_force=[]simu_E=204323.0simu_little=str(int(little)+3)simu_name="New_pass"+simu_little+"test.dat"print 'refer to'+simu_namesimu_f=open(simu_name,'r')simu_state=Trues0=simu_f.readlines()s0=s0[-1]s0=re.sub(';',' ',s0)s0=re.split(' +',s0)#print s0simu_f.seek(0)simu_s1=simu_f.readline()while simu_state:simu_s2=simu_f.readline()simu_s2=re.sub(';',' ',simu_s2)simu_s2=re.split(' +',simu_s2)if (simu_s2=="EOF")|(simu_s2==s0):simu_state=Falseelse:#print simu_s2s_force=float(simu_s2[5])s_eee=float(simu_s2[2])s_triax=float(simu_s2[3])s_sss=s_force/areasimu_force.append(s_force)simu_triax.append(s_triax)simu_strain.append(s_eee)simu_P_strain.append(log(1.0+s_eee)-s_sss*(1.0+s_eee)/simu_E)simu_f.close()##########################################################3nrows=3sheet.write(0,nclown,'sample')sheet.write(0,nclown+2,name)sheet.write(1,nclown,"area")sheet.write(1,nclown+2,area)sheet.write(1,nclown+1,diameter)sheet.write(1,nclown+3,"E_modulus")sheet.write(1,nclown+4,E_modulus)sheet.write(2,nclown,"E_strain")sheet.write(2,nclown+1,"E_stress")sheet.write(2,nclown+2,"T_strain")sheet.write(2,nclown+3,"T_stress")sheet.write(2,nclown+4,"PL_strain")for i in range(len(engineer_strain)):sheet.write(nrows,nclown,engineer_strain[i])sheet.write(nrows,nclown+1,engineer_stress[i])sheet.write(nrows,nclown+2,true_strain[i])sheet.write(nrows,nclown+3,true_stress[i])sheet.write(nrows,nclown+4,plastic_strain[i])nrows+=1nclown+=5#output engineer strain and stressnrows=3sheet1.write(0,nclown_e,'file')sheet1.write(0,nclown_e+1,myfile)sheet1.write(0,nclown_e+2,"E_modulus")sheet1.write(0,nclown_e+3,E_modulus)sheet1.write(1,nclown_e,'sample')sheet1.write(1,nclown_e+1,name)sheet1.write(1,nclown_e+2,'run')sheet1.write(1,nclown_e+3,times)sheet1.write(2,nclown_e,"E_strain")sheet1.write(2,nclown_e+1,"E_stress")for i in range(len(engineer_strain)):sheet1.write(nrows,nclown_e,engineer_strain[i])sheet1.write(nrows,nclown_e+1,engineer_stress[i])nrows+=1nclown_e+=4#output true strain and stressnrows=3sheet2.write(0,nclown_t,'file')sheet2.write(0,nclown_t+1,myfile)sheet2.write(0,nclown_t+2,"E_modulus")sheet2.write(0,nclown_t+3,E_modulus)sheet2.write(1,nclown_t,'sample')sheet2.write(1,nclown_t+1,name)sheet2.write(1,nclown_t+2,'run')sheet2.write(1,nclown_t+3,times)sheet2.write(2,nclown_t,"T_strain")sheet2.write(2,nclown_t+1,"T_stress")for i in range(len(engineer_strain)):sheet2.write(nrows,nclown_t,true_strain[i])sheet2.write(nrows,nclown_t+1,true_stress[i])nrows+=1nclown_t+=4#output plastic strain and stressnrows=3sheet3.write(0,nclown_p,'file')sheet3.write(0,nclown_p+1,myfile)sheet3.write(0,nclown_p+2,"E_modulus")sheet3.write(0,nclown_p+3,E_modulus)sheet3.write(1,nclown_p,'sample')sheet3.write(1,nclown_p+1,name)sheet3.write(1,nclown_p+2,'run')sheet3.write(1,nclown_p+3,times)sheet3.write(2,nclown_p,"PL_strain")sheet3.write(2,nclown_p+1,"T_stress")for i in range(len(engineer_strain)):sheet3.write(nrows,nclown_p,plastic_strain[i])sheet3.write(nrows,nclown_p+1,true_stress[i])nrows+=1nclown_p+=4#output modified plastic strain and true stressnrows=3i_temp=1sheet4.write(0,nclown_pm,'file')sheet4.write(0,nclown_pm+1,myfile)sheet4.write(0,nclown_pm+2,"E_modulus")sheet4.write(0,nclown_pm+3,E_modulus)sheet4.write(1,nclown_pm,'sample')sheet4.write(1,nclown_pm+1,name)sheet4.write(1,nclown_pm+2,'run')sheet4.write(1,nclown_pm+3,times)sheet4.write(2,nclown_pm,"PL_strain")sheet4.write(2,nclown_pm+1,"Force")running=Truefor i in range(len(engineer_strain)):if running:mincr=150temp_e=(test_force[i]-test_force[i+mincr])/(plastic_strain[i]-plastic_strain[i+mincr])if temp_e>400000.0:i_temp=irunning=Falseelse:modifed_strain=engineer_strain[i]-engineer_strain[i_temp]modifed_plastic_strain=log(1.0+modifed_strain)-engineer_stress[i]*(1.0+modifed_strain)/E_modulussheet4.write(nrows,nclown_pm,modifed_plastic_strain)sheet4.write(nrows,nclown_pm+1,test_force[i])nrows+=1##output simulation resultnrows=3sheet4.write(2,nclown_pm+2,"PL_strain")sheet4.write(2,nclown_pm+3,"Force")sheet4.write(2,nclown_pm+4,"TRIAX")for j in range(len(simu_P_strain)):sheet4.write(nrows,nclown_pm+2,simu_P_strain[j])sheet4.write(nrows,nclown_pm+3,simu_force[j])sheet4.write(nrows,nclown_pm+4,simu_triax[j])nrows+=1#######################next file(Test result)nclown_pm+=5book.save('material_treat.xls')import csvfrom odbAccess import *from abaqusConstants import *

filename=getInput('Please input the ODB file name')#listelementArea={} elementConn={}nodeArea ={}timeTP =[]#odb#odbodb=openOdb(path=filename)#assemblyinstanceinst=odb.rootAssembly.instances #instance,odbinstance#.keys()listinstanceelments=inst[inst.keys()[0]].elements#for el in elments: label=el.label nodes=el.connectivity elementConn[label]=nodes

#nodes=inst[inst.keys()[0]].nodesfor nd in nodes: label=nd.label nodeArea[label]=0

#stepst=odb.steps[odb.steps.keys()[0]]

#stepfor v in st.frames[-1].fieldOutputs['EVOL'].values: label=v.elementLabel data =v.data elementArea[label]=data

for k,v in elementArea.iteritems(): nds=elementConn[k] for nd in nds: nodeArea[nd]+=0.25*v

#frameNT11frames=st.frames for fr in frames: nt11=fr.fieldOutputs['NT11'].values time=fr.frameValue sumTp=0 sumAr=0 for va in nt11: label=va.nodeLabel data=va.data if data