Hot News aus dem CAD.de-Newsletter:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SIMULIA/ABAQUS
  Output automatisch in Datei schreiben

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:   Output automatisch in Datei schreiben (2233 mal gelesen)
Poldi1979
Mitglied



Sehen Sie sich das Profil von Poldi1979 an!   Senden Sie eine Private Message an Poldi1979  Schreiben Sie einen Gästebucheintrag für Poldi1979

Beiträge: 51
Registriert: 22.07.2007

erstellt am: 08. Feb. 2008 16:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Community.

Ich führe eine Umformsimulation von dünnen Blechen in Abaqus/Explicit durch. Ich nutze dabei ein Input-File. Meine Geometrie ist dabei über Shell-Elemente modelliert.
Ich würde mir jetzt gerne am Ende der Simulation diverse Informationen direkt in eine Datei schreiben lassen. Dieser Vorgang sollte dabei automatisiert und nicht über CAE geschehen.
Ich benötige folgende Informationen:
- Shell Thickness (STH) zum Ende der Simulation für jeden Knoten
- Koordinaten eines jeden Knotens
- Elementvolumen zum Anfang und zum Ende der Simulation für jedes Element (EVOL ?)
Leider steige ich durch die Dokumentation nicht so richtig durch. Kann mir jemand helfen, wie man diese Informationen direkt in eine Datei schreiben kann?
Für Hinweise und Tipps bin ich sehr dankbar :-)

Vielen Dank und viele Grüße

Thorsten

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Mustaine
Ehrenmitglied V.I.P. h.c.



Sehen Sie sich das Profil von Mustaine an!   Senden Sie eine Private Message an Mustaine  Schreiben Sie einen Gästebucheintrag für Mustaine

Beiträge: 3357
Registriert: 04.08.2005

Abaqus

erstellt am: 08. Feb. 2008 17:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Poldi1979 10 Unities + Antwort hilfreich

Das geht mit den Keywords
*Node Print
und
*El Print

Je nachdem ob es Knoten- oder Elementergebnisse sind.
Alles weitere findest du über das Keyword Reference Manual heraus.

Alternativ kann man auch über ein Python Script direkt die odb auslesen.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Poldi1979
Mitglied



Sehen Sie sich das Profil von Poldi1979 an!   Senden Sie eine Private Message an Poldi1979  Schreiben Sie einen Gästebucheintrag für Poldi1979

Beiträge: 51
Registriert: 22.07.2007

erstellt am: 09. Feb. 2008 09:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Vielen Dank für die Hinweise.
Da ich allerdings Explicit rechne, muss ich sicherlich *el file und *node file benutzen, oder?
Leider musste ich feststellen, dass das Elementvolumen (evol) nicht herausgeschrieben werden kann. Wie müsste denn ein Python Skript aussehen, dass dieses realisieren könnte?

Viele Grüße

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Mustaine
Ehrenmitglied V.I.P. h.c.



Sehen Sie sich das Profil von Mustaine an!   Senden Sie eine Private Message an Mustaine  Schreiben Sie einen Gästebucheintrag für Mustaine

Beiträge: 3357
Registriert: 04.08.2005

Abaqus

erstellt am: 11. Feb. 2008 12:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Poldi1979 10 Unities + Antwort hilfreich

Abaqus Scripting User's Manual
8. Using the Abaqus Scripting Interface to access an output database


Bevor du anfängst solltest du aber nochmal überlegen ob die Report-Funktion im Viewer nicht doch eine Option wäre.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Poldi1979
Mitglied



Sehen Sie sich das Profil von Poldi1979 an!   Senden Sie eine Private Message an Poldi1979  Schreiben Sie einen Gästebucheintrag für Poldi1979

Beiträge: 51
Registriert: 22.07.2007

erstellt am: 11. Feb. 2008 13:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke Mustaine für die Infos.

Es ist für meine Arbeiten wichtig, dass die Informationen automatisch herausgeschrieben werden, da ich einen automatischen Optimierungs-Algorithmus implementieren möchte.

Ich habe von einem anderen Beitrag aufgeschnappt, dass das Vorgehen in ABaqus CAE in einer Datei (*.rpy ?) gespeichert wird. Kann man diese Informationen einfach verwenden, um ein Python-Skript zu entwickeln?

Vielen Dank im Voraus und Grüße

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Mustaine
Ehrenmitglied V.I.P. h.c.



Sehen Sie sich das Profil von Mustaine an!   Senden Sie eine Private Message an Mustaine  Schreiben Sie einen Gästebucheintrag für Mustaine

Beiträge: 3357
Registriert: 04.08.2005

Abaqus

erstellt am: 11. Feb. 2008 14:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Poldi1979 10 Unities + Antwort hilfreich

Ja, das geht. Du machst die Aktionen einmal manuell und nimmst dann die Mitschrift (.rpy) als Grundlage für ein Script. Dieses kann dann beim nächsten mal vollautomatisch laufen. Du kannst dann auch den Viewer inkl. Script ohne GUI aufrufen.

Somit kannst du das alles innerhalb eines größeren automatisierten Prozesses laufen lassen.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

ZETT1980
Mitglied


Sehen Sie sich das Profil von ZETT1980 an!   Senden Sie eine Private Message an ZETT1980  Schreiben Sie einen Gästebucheintrag für ZETT1980

Beiträge: 4
Registriert: 12.02.2008

erstellt am: 12. Feb. 2008 21:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Poldi1979 10 Unities + Antwort hilfreich

Hallo,
ich hab hier mal etwas mitgelesen und habe da noch ein paar Fragen.
1)Was muss ich an der .rpy Datei ändern, damit ich sie durch abaqus python <dateiname> starten kann? Wenn ich den Text einfach kopiere kommen mehrere Fehlermeldungen. Erste Fehlermeldung ist, dass abaqus import* nicht funktioniert, danach ist auch noch session nicht deklariert etc.

2)Ich habe versucht eine eigene Datei zu schreiben, die mir das ausliest. Dabei bin ich auf folgenden Code gestoßen:

[Code]

lastFrame = odb.steps[odb.steps.keys()[-1]].frames[-1]
temperature = lastFrame.fieldOutputs['NT11']
nodes = temperature.getSubset(region=odb.rootAssembly.nodeSets[' ALL NODES'])

Kann mir jemand die erste und die Letzt Zeile erklären? Im besonderen verstehe ich in der letzten Zeile das' ALL NODES' nicht. Was muss ICH da eingeben?

Danke für die Mühe

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

HerrHansen
Mitglied
Dipl.-Ing.


Sehen Sie sich das Profil von HerrHansen an!   Senden Sie eine Private Message an HerrHansen  Schreiben Sie einen Gästebucheintrag für HerrHansen

Beiträge: 257
Registriert: 03.12.2005

Abaqus/CAE 6.3 bis 6.12

erstellt am: 13. Feb. 2008 09:42    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Poldi1979 10 Unities + Antwort hilfreich

Zitat:
Was muss ich an der .rpy Datei ändern, damit ich sie durch abaqus python <dateiname> starten kann?

Der Syntax eines alleine lauffähigen Scripts unterscheidet sich von dem, der im Replay-File aufgezeichnet wurde. Dies hängt mit der unterschiedlichen Hierarchie-Struktur zusammen. Anbei findest du ein Beispiel, wie man ein History-Output ausliest und in ein File schreibt.

Code:

from odbAccess import *
from abaqusConstants import *

odb = openOdb(path='\irgendwo\irgendwas\test.odb')

step = odb.steps['Bewegung']
region = step.historyRegions['Node BAUTEIL1-1.50']
u2Data = region.historyOutputs['U2_ANTIALIASING'].data
dispFile = open('verschiebung.rpt','w')
for time, u2Disp in u2Data:
    dispFile.write('%10.4E  %10.4E\n' % (time, u2Disp))
dispFile.close()
odb.close()


Benutzt habe ich diesen Code für eine Optimierungsaufgabe, bei der mehrere hundert Rechenläufe automatisch durchgeführt wurden.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Mustaine
Ehrenmitglied V.I.P. h.c.



Sehen Sie sich das Profil von Mustaine an!   Senden Sie eine Private Message an Mustaine  Schreiben Sie einen Gästebucheintrag für Mustaine

Beiträge: 3357
Registriert: 04.08.2005

Abaqus

erstellt am: 13. Feb. 2008 11:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Poldi1979 10 Unities + Antwort hilfreich

lastFrame = odb.steps[odb.steps.keys()[-1]].frames[-1]

Vom letzten Step soll der Frame für die Auswertung verwendet werden. Man greift also erstmal auf die Steps zu. Da die Steps aber in Anzahl und Namen immer unterschiedlich sind, macht man sich mit den keys eine Liste der Steps greifbar und sagt mit [-1] 'den letzten Eintrag wählen'. Von diesem Step holt man sich dann mit zweiten [-1] den letzten Frame.

nodes = temperature.getSubset(region=odb.rootAssembly.nodeSets[' ALL NODES'])

Es gibt in der odb immer ein Assembly-Set ' ALL NODES' in dem alle Knoten abgelegt sind. Hier wird bei der Region für die die Temperatur gelesen werden soll auf dieses Set verwiesen.


Wie weit man die rpy ändern muss hängt von Anwendungsfall ab. Will man nur bestimmte Dinge im Viewer einstellen oder sich automatisch einen Plot anzeigen lassen kann man viel aus der rpy verwenden.

Für Anwendungen wo man aber ohne Viewer Daten aus der odb ziehen will muss man recht viel selbst schreiben. Das Scripting Users Manual sollte man sich dann mal näher anschauen.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

ZETT1980
Mitglied


Sehen Sie sich das Profil von ZETT1980 an!   Senden Sie eine Private Message an ZETT1980  Schreiben Sie einen Gästebucheintrag für ZETT1980

Beiträge: 4
Registriert: 12.02.2008

erstellt am: 13. Feb. 2008 11:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Poldi1979 10 Unities + Antwort hilfreich

Hallo ich nochmal,
also ich hab jetzt  folgenden Code geschrieben :
[CODE][/CODE]
from odbAccess import *
from abaqusConstants import *

odb = openOdb(path='E:/test1.odb')
lastFrame = odb.steps['Step-1'].frames[-1]
thickness = lastFrame.fieldOutputs['STH']
nodes = thickness.getSubset([ELEMENT_NODAL])

datei=file('results.txt', 'w')

for x in nodes.values:

  datei.write (str(x.nodeLabel) +str(x.data)+'\n')

datei.close()
odb.close()

Jetzt gibt der mir die Integration Point STH aus. Ich will aber die Unique Nodal STH haben.

Wo Ist mein Fehler?

Danke nochmals für die Mühe 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Mustaine
Ehrenmitglied V.I.P. h.c.



Sehen Sie sich das Profil von Mustaine an!   Senden Sie eine Private Message an Mustaine  Schreiben Sie einen Gästebucheintrag für Mustaine

Beiträge: 3357
Registriert: 04.08.2005

Abaqus

erstellt am: 13. Feb. 2008 14:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Poldi1979 10 Unities + Antwort hilfreich

STH ist keine Knotenvariable. Sie steht an den Section Points der Elemente. Wenn man Sie dennoch an den Knoten abfragt, wie du es getan hast, wird das Ergebnis extrapoliert. Was dann aber nicht gemacht wird, ist die verschiedenen Ergebnisse der angrenzenden Elemente auf einen Wert zu mitteln. Deswegen tauchen in deiner Datei mehrere Ergebnisse pro Knoten auf.

Wenn du aber die gemittelten Werte haben willst, hast du 2 Möglichkeiten:
1. Du nutzt automatisiert die Report-Funktion des Viewers die die Ergebnisse gemittelt schreiben kann und liest die Ergebnisse aus der Report-Datei mit deinem Script aus.
2. Du nutzt die ungemittelten Ergebnisse wie du sie bisher hast und mittelst sie mit deinem Script.

Beides sollte mit Python recht leicht machbar sein.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2020 CAD.de | Impressum | Datenschutz