python+abaqus空间随机场获取inp文件中节点位置、单元位置

python+abaqus
我们需要做空间随机场的前提是获取我们的inp文件中的节点位置、单元位置,下面通过inp文件获取节点位置和单元位置保存在txt文件中的代码如下:
这个没做过于详细的讲解,只是本人临时编写的,因为在搜索过程中未发现相关代码,只能自己上手,后续更新如何生成随机数据以及替换到inp文件中

import numpy as np
with open("E:\\abaqus\job-1.inp",'r',encoding='ANSI') as txtfile:
    line=txtfile.readlines()
    # print(line)
    list2=[]
    list4=[]
    list5 = []
    for i,rows in enumerate(line):
        if rows.find("*Part, name=Part-1")!=-1:
            print(f"第{i+1}行出现了'*Part, name=Part-1'")
            line_1=i+2
        elif rows.find("*Element, type=CPE4R")!=-1:
            print(f"第{i+1}行出现了'*Element, type=CPE4R'")
            line_2=i+1
        elif rows.find("*Nset, nset=slope-1, generate")!=-1:
            print(f"第{i+1}行出现了'*Nset, nset=slope-1, generate'")
            line_3=i
        else:
            #print(f"第{i+1}行没有出现")
            continue
    for i,rows in enumerate(line):
        if i in range(line_1,line_2-1):
            list2.append(rows.strip('\n'))
        elif i in range(line_2,line_3):
            list4.append(rows.strip('\n'))
        # elif i in range(line_3, len(line)):
        #     list5.append(rows.strip('\n'))
# print(str(list2))
# print(list4)
# np.savetxt('node.txt', list2, fmt='%d')
# np.savetxt('elementlist.txt', list4, fmt='%d')
# 提取节点坐标
with open('node.txt','w') as f:
    for i in list2:
        # print(i)
        f.write(i+'\n')
# 单元格的坐标
with open('elementlist.txt', 'w') as f:
    for i in list4:
        # print(i)
        f.write(i + '\n')
# 提取单元格的单元行数
with open('elelist.txt', 'w') as f:
    for i in list4:
        print(i.split(',')[0])
        f.write(i.split(',')[0] + '\n')

猜你喜欢

转载自blog.csdn.net/self_Name_/article/details/127438914