-
-
Save anonymous/82cb7f691673e0147edf to your computer and use it in GitHub Desktop.
f.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def f(x): | |
for i in range(x): | |
yield 2*i | |
print(list(f(10))) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
#!/usr/bin/env python
--coding:utf-8 --
from odbAccess import *
import os
def odbReadByClutch(odb):
#寻找需要输出的集合----------------------------------------------------------------------
set_ee=odb.rootAssembly.instances['PART-1-1'].elementSets['SET-YINGBIAN']
set_ss=odb.rootAssembly.instances['PART-1-1'].elementSets['SET-ZENGQIANGCENG']
fieldStrain=odb.steps['Step-1'].frames[-1].fieldOutputs['EE']
fieldStress=odb.steps['Step-1'].frames[-1].fieldOutputs['S']
Field_EE=fieldStrain.getSubset(region=set_ee)
Field_SS=fieldStress.getSubset(region=set_ss)
#----------------------------------------------------------------------------------------
job_ee=[]
job_s11=[]
job_s22=[]
job_s33=[]
job_s12=[]
#循环读取个单元应力应变数值,以列表形式缓存。----------------------------------------------
#EE
for i in range(len(Field_EE.values)):
app_ee=Field_EE.values[i].maxPrincipal
job_ee.append(app_ee)
#S
for j in range(len(Field_SS.values)):
app_s11=Field_SS.values[j].data[0]
job_s11.append(app_s11)
for k in range(len(Field_SS.values)):
app_s22=Field_SS.values[k].data[1]
job_s22.append(app_s22)
for m in range(len(Field_SS.values)):
app_s33=Field_SS.values[m].data[2]
job_s33.append(app_s33)
for n in range(len(Field_SS.values)):
app_s12=Field_SS.values[n].data[3]
job_s12.append(app_s12)
odb.close()
#提取最大应力应变--------------------------------------------------------------------------
Max_EE=max(job_ee)
Min_EE=min(job_ee)
Max_s11=max(job_s11)
Max_s22=max(job_s22)
Max_s33=max(job_s33)
Max_s12=max(job_s12)
Min_s11=min(job_s11)
Min_s22=min(job_s22)
Min_s33=min(job_s33)
Min_s12=min(job_s12)
#以字典的形式返回结果---------------------------------------------------------------------
return {'Max_EE':Max_EE,'Min_EE':Min_EE,'Max_s11':Max_s11,'Min_s11':Min_s11,
'Max_s22':Max_s22,'Min_s22':Min_s22,'Max_s33':Max_s33,'Min_s33':Min_s33,
'Max_s12':Max_s12,'Min_s12':Min_s12}
#-----------------------------------------------------------------------------------------
#主函数
if name == "main":
#获取当前文件夹路径,并读取文件夹下的所有文件。-------------------------------------------
dir_path=os.getcwd()
fileName=os.listdir(dir_path)
xrfile=[]
#遍历所有ODB文件--------------------------------------------------------------------------
for i in range(len(fileName)):
if fileName[i][-3:]=='odb':
try:
odb=openOdb(fileName[i])
except:
newFileName='upGrade'+fileName[i]
upgradeOdb(fileName[i],newFileName)
odb=openOdb(newFileName)
xr=odbReadByClutch(odb)
xrfile.append(fileName[i])
xrfile.append(xr)
#向esfile.txt中写入读取到的数据-------------------------------------------------------------
esfile=open('esfile.txt','w')
for j in xrfile:
esfile.write(str(j))
esfile.write('\n')
esfile.close()
#提示所有过程已经结束-----------------------------------------------------------------------
print '数据提取完毕并写入esfile.txt中。'
'''
Abaqus/CAE Release 2016
Internal Version: 2015_09_25-04.31.09 126547
Run by Clutch on Sun Sep 03 2017
'''