【Python&Hypermesh】ABAQUS导入网格,并在Part内保留SET
在Hypermesh定义好set,划分好网格以后,可以导出为INP。然后在ABAQUS导入inp,就可以得到网格。但是这样倒进来的网格一般有两个问题:
- 网格全在一个部件里,原来定义好的Set会出现在装配级别下,而不是Part级别,这在某些情况还是比较麻烦的
- Hypermesh中的component并不和ABAQUS的Part相对应
这是由于Hypermesh的模板有问题,导出时缺少某些关键字。可以自己补充完整
python脚本:
# ********只处理单个PART*****
def function(InpFile,OutInp):
if len(InpFile)==1:
OutInp='Out.inp'
else:
OutInp=[]
for i in range(1,len(InpFile)):
OutInp.append(str(i)+'.inp')
for i in range(len(InpFile)):
SubFun(InpFile[i],OutInp[i])
def SubFun(OutInp,InpFile):
f2 = open(OutInp, 'w')
with open(InpFile, 'r',encoding="utf-8") as f1:
for i in f1:
if i=='*NODE':
f2.write("*PART,NAME=PART-1\n")
f2.write(i)
elif i=='\n'|i=='*****':
f2.write('*END PART\n')
f2.write('*ASSEMBLY,NAME=ASSEM-1\n')
f2.write(' *INSTANCE, NAME=IN-1, PART=Part-1\n')
f2.write(' *END INSTANCE\n')
f2.write('*END ASSEMBLY\n')
f2.close()
本文来自博客园,作者:FE-有限元鹰,转载请注明原文链接:https://www.cnblogs.com/aksoam/p/17369750.html