Python+abaqus Leerzeichen-Zufallsfeld, um die Knotenposition und Einheitenposition in der INP-Datei zu erhalten

python+abaqus
müssen wir das räumliche Zufallsfeld ausführen, die Prämisse ist, die Knotenposition und Einheitenposition in unserer INP-Datei abzurufen, der Code zum Abrufen der Knotenposition und Einheitenposition in der TXT-Datei über die INP-Datei lautet wie folgt: das ist nicht zu
ausführlich Die Erklärung ist nur vorübergehend von mir geschrieben, da beim Suchvorgang kein relevanter Code gefunden wurde, daher kann ich nur selbst anfangen, wie man Zufallsdaten generiert und in der inp-Datei für spätere Updates ersetzt

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