Skip to content

Instantly share code, notes, and snippets.

/f.py Secret

Created June 13, 2015 16:06
Show Gist options
  • Save anonymous/82cb7f691673e0147edf to your computer and use it in GitHub Desktop.
Save anonymous/82cb7f691673e0147edf to your computer and use it in GitHub Desktop.
f.py
def f(x):
for i in range(x):
yield 2*i
print(list(f(10)))
@JarvanClutch
Copy link

#!/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
'''

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment