Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SIMULIA/ABAQUS
  Skript für automatisierte Field Output

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:  Skript für automatisierte Field Output (3701 mal gelesen)
ululak
Mitglied


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

Beiträge: 1
Registriert: 22.10.2007

erstellt am: 22. Okt. 2007 17:19    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,

da ich bei meinem Projekt mehrmals Geometrien ändere und dann die Daten neu auswerten muss, möchte ich mir einen automatisierten Ablauf programmieren.

Bisher erstelle ich mir immer über Report->Field Output eine Reportdatei, die mir die Hauptspannungen S11,S22,S33, Position Unique Nodal (etc. genau festgelegt) anzeigt.
Später importiere ich die Daten in einem Excel Arbeitsblatt, suche mir mit einfachen Suchalgorithmen die Spannungen an den interessanten Knoten und lasse sie grafisch darstellen. Sinn ist der anschließende Vergleich/Abgleich mit experimentell ermittelten Daten.

Ich möchte eine einfache Möglichkeit haben, das alles zu automatisieren. Das Importieren der Daten in Excel ist kein Problem mehr, ab dort funkktioniert alles einwandfrei. Problem für mich ist das automatische extrahieren der gewünschen Werte.

über den Kernel komme ich nicht an genau die Daten die ich brauche. Mit z.B.
"abaqus odbreport job=bendReport odb=bend etc." bekomme ich zwar eine Menge Daten geliefert, jedoch immer mit den "Output variablen: Position: Integration Point" (siehe Report->Field Output) D.h. ich bekommme viel zu viele Informationen.

Wie kann ich meine Arbeit im GUI, d.h. das Klicken auf "Report" im Menü,, auswählen der einzenen Häkchen im Dialog etc., automatisieren?
irgendeine Idee?

LG

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: 3554
Registriert: 04.08.2005

Abaqus

erstellt am: 28. Okt. 2007 12:36    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 ululak 10 Unities + Antwort hilfreich

Solche Dinge in CAE oder dem Viewer zu automatisieren geht ziemlich leicht. Du machst es einfach einmal und schaust dann in deinem Arbeitsvereichnis in dieDatei abaqus.rpy. Dort steht in Python-Syntax was du gemacht hast. Das kannst dann in eine extra Datei legen und erweitern.

Beispiel:
Das was du machen willst sieht als Mitschrift z.B. so aus:

Code:

odb = session.odbs['C:/tmp/Job-1.odb']
session.fieldReportOptions.setValues(printTotal=OFF, rintMinMax=OFF)
session.writeFieldReport(fileName='abaqus.rpt', append=OFF,
    sortItem='Node Label', odb=odb, step=0, frame=6, outputPosition=NODAL,
    variable=(('S', INTEGRATION_POINT, ((COMPONENT, 'S11'), (COMPONENT, 'S22'), (COMPONENT, 'S33'), )), ))


Wenn du das für bestimmte Frames haben willst, kannst du das in eine Schleife legen. Angenommen du willst das für die Frames 1 bis 6 in separaten Dateien haben:

Code:

from abaqus import *
from abaqusConstants import *
odb = session.odbs['C:/tmp/Job-1.odb']
session.fieldReportOptions.setValues(printTotal=OFF, printMinMax=OFF)
for i in range(1, 7):
    session.writeFieldReport(fileName='abaqus-'+str(i)+'.rpt', append=OFF,
        sortItem='Node Label', odb=odb, step=0, frame=i, outputPosition=NODAL,
        variable=(('S', INTEGRATION_POINT, ((COMPONENT, 'S11'), (COMPONENT, 'S22'), (COMPONENT, 'S33'), )), ))

Diesen Inhalt legst du dir in eine Datei (z.B. script.py) und rufst das Script in CAE/Viewer über File->Run script... auf.
Theoretisch kannst du auch das automatisieren, so dass du auf Kommandozeile nur noch das Script definierst und das Ganze ohne GUI abläuft.

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)2023 CAD.de | Impressum | Datenschutz