Python extrahiert die Feldinformationen der ODB-Datei in abaqus

Wie Sie die Feldinformationen der ODB-Datei in abaqus extrahieren, das soll im Folgenden am Beispiel des Displacement-Feldes kurz erklärt werden, schauen Sie sich nach dem Lesen der Erklärung den Quellcode an.
1. Dekodierung
Diese Zeile muss unbedingt in der Datei stehen und darf nicht gelöscht werden, da sie sonst nicht dekodiert werden kann und ein Fehler gemeldet wird

# -* - coding:UTF-8 -*-

2. ODB lesen und Schritt laden
Hier kommt die openOdb-Funktion von odbAccess, also müssen wir die Bibliothek importieren

from odbAccess import*# 打开odb的库

Der folgende Lesepfad wird von Ihnen selbst erstellt. In der Regel befindet er sich unter dem von Ihnen festgelegten Arbeitspfad. Sie können ihn in andere Ordner kopieren, beachten Sie jedoch, dass es sich um einen englischen Pfad handeln muss, und lesen Sie dann den Ladeschritt. In der Regel werden wir dies tun Reduzieren Sie die Stärke. Laden Sie das Reduktionsfeld für Schwerkraftanlässe. Was ich hier gelesen habe, ist das Reduktionsfeld. "Reduzieren" ist der Name des Ladeschritts, den ich beim Modellieren eingestellt habe. Er muss angepasst werden. Wenn Sie nicht daran denken, dies zu überprüfen die inp-Datei, Sie werden es wissen, wie unten gezeigt
Bildbeschreibung hier einfügen
Bildbeschreibung hier einfügen

odb=openOdb(path='Job-1.odb')# 读取odb
step1=odb.steps['Reduce']# 读取odb.折减用Load和Reduce

3. Wählen Sie die zu lesende Zeit aus.
Bildbeschreibung hier einfügen
Wie viele Formatdateien möchten wir überprüfen? Wir können die Länge von step1.frames überprüfen oder direkt die Zahlen im obigen Bild überprüfen. Wir müssen uns im Allgemeinen nur das Endergebnis ansehen, also wir benutze step1.frames hier [-1]

len(step1.frames)

4. Lesefeld
Ich zeichne einen zweidimensionalen Schnitt, also stehen nur x und y zur Verfügung, wenn es sich um eine dreidimensionale Z-Richtung handelt, ist es v.data[2]

for v in displacementValues_last:#这里保存最后一步的位移场
    DISP.append([v.nodeLabel,v.data[0],v.data[1]])# 节点编号,X位移,Y位移,Z位移

5. Speichern Sie unsere Feldvariable
Hier sollten wir aufpassen, legen Sie sie nicht in das Arbeitsverzeichnis unseres Modells, sie kann nicht gespeichert werden.

with open('E:\\abaqus_field\\field.txt', 'w') as f:
    for i in DISP:
        i=(','.join(str(j) for j in i))
        f.write(str(i) + '\n')

Speichern Sie das Ergebnis
Die erste Spalte enthält die Knotenanforderungen, gefolgt von der Verschiebungszahl
Bildbeschreibung hier einfügen
6 in x- und y-Richtung, und schließlich zeigen Sie die extrahierten Ergebnisse und das Wolkenbild der Ergebnisse auf abaqus..
Abgesehen vom Formproblem kann es das sein Es gibt ein Problem mit den von mir extrahierten Koordinaten. Es muss korrigiert werden.
Beachten Sie, dass
die endgültige Codedatei im Skript ausgeführt werden muss, das in abaqus ausgeführt wird. Diese Datei muss im englischen Pfad abgelegt werden, da sie sonst nicht gefunden werden kann.
Bildbeschreibung hier einfügenBildbeschreibung hier einfügen

vollständiger Code

#!/user/bin/python
# -* - coding:UTF-8 -*-
# 功能:读取变形位移

import numpy as np# 可输出txt文件
from odbAccess import*# 打开odb的库
import os
import sys

odb=openOdb(path='Job-1.odb')# 读取odb
step1=odb.steps['Reduce']# 读取odb.折减用Load和Reduce

firstFrame=step1.frames[0]# 第一帧
lastFrame=step1.frames[-1]# 最后一帧 # 读取odb.step.frames

# 第一帧
displacement_first=firstFrame.fieldOutputs['U'] # 读取odb.step.frames.fieldOutputs
displacementValues_first=displacement_first.values# 读取odb.step.frames.fieldOutputs.values

# 最后一帧
displacement_last=lastFrame.fieldOutputs['U']# 读取odb.step.frames.fieldOutputs
displacementValues_last=displacement_last.values# 读取odb.steps.frames.fieldOutputs.values

# txt文件导出
DISP = []
for v in displacementValues_last:#这里保存最后一步的位移场
    DISP.append([v.nodeLabel,v.data[0],v.data[1]])# 节点编号,X位移,Y位移,Z位移
    #DISP.append(v.data)# X位移,Y位移,Z位移
    # print DISP
# np.savetxt('DISP.txt',DISP)
with open('E:\\abaqus_field\\field.txt', 'w') as f:
    for i in DISP:
        i=(','.join(str(j) for j in i))
        f.write(str(i) + '\n')
odb.close

Supongo que te gusta

Origin blog.csdn.net/self_Name_/article/details/127472586
Recomendado
Clasificación