Autor
|
Thema: Darstellung von extremwerten über den gesamten berechnugszeitraum von Outputvariablen (1329 mal gelesen)
|
Gunkerle Mitglied WMA
Beiträge: 133 Registriert: 15.03.2007
|
erstellt am: 28. Apr. 2008 11:07 <-- editieren / zitieren --> Unities abgeben:
Hallo alle, ich versuche gerade mir die maximalen Werte (von Mises, Hauptspannungen, und den einzelnen Spannungskomponenten ) meiner Rechnungen über die Field output Funktionalität ausgeben zu lassen. Ich scheine da allerdings etwas falsch zu machen. Ziel ist es über die gesamte Rechnung, also aus allen Frames jeweils die maximalen Werte in einem Plot darzustellen, was, wenn ich es richtig versdtanden habe über die Option: Tools-> Create Field Output-> from Frames (und dann entweder minimalen oder maximalen Wert aktivieren, sowie alle steps & frames aktivieren) funktionieren sollte, leider geht es schief, mache ich ewas falsch? ciao Gunkerle
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mustaine Ehrenmitglied V.I.P. h.c.
Beiträge: 3554 Registriert: 04.08.2005 Abaqus
|
erstellt am: 28. Apr. 2008 16:29 <-- editieren / zitieren --> Unities abgeben: Nur für Gunkerle
|
Gunkerle Mitglied WMA
Beiträge: 133 Registriert: 15.03.2007
|
erstellt am: 29. Apr. 2008 08:57 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von Mustaine: Was geht denn schief? Kommt eine Fehlermeldung? Oder weißt du einfach nicht wie man an die so generierten Daten herankommt?
Momentan weiss ich nicht so richtig wire ich an die daten herankommen kann. Es wäre schön, wenn vielleicht der Abaluf kurz skizziert werden könnte. Noch mal nachgehakt: Kann man mit dieser Methode 1.) für mehrere Ausgabevariable gleichzeitig & 2.) über den gesamten Rechenverlauf sich die Extremwerte-Zeit Verläufe ausgeben lassen? und 3.) wie kann man dann diese ausgeben, dass diese günstig von excel verarbeitet werden können. Die Report-Funktion taugt dafür leider ja nicht wirklich etwas. ciao Gunkerle
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mustaine Ehrenmitglied V.I.P. h.c.
Beiträge: 3554 Registriert: 04.08.2005 Abaqus
|
erstellt am: 29. Apr. 2008 10:09 <-- editieren / zitieren --> Unities abgeben: Nur für Gunkerle
Du führst diese Aktion 'Create Field Output from Frames' aus. Danach hast du einen neuen temporären Session Step welcher das Ergebnis beinhaltet. Zum Anzeigen wählst du Result->Step/Frame. Das Umschalten der Ergebnis-Variable ist wie gehabt. Mit Report->Field Output sollte dieses Ergebnis auch exportiert werden können. Du hast dann aber nur diesen einen Zustand. Wenn vom ganzen Modell eine oder mehrere Variablen für jeden Zeitpunkt exportieren willst, kannst du mit Python relativ einfach eine Schleife um die Report-Funktion legen und sie so automatisieren. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gunkerle Mitglied WMA
Beiträge: 133 Registriert: 15.03.2007
|
erstellt am: 03. Mai. 2008 09:28 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von Mustaine: Du führst diese Aktion 'Create Field Output from Frames' aus. Danach hast du einen neuen temporären Session Step welcher das Ergebnis beinhaltet. Zum Anzeigen wählst du Result->Step/Frame. Das Umschalten der Ergebnis-Variable ist wie gehabt.Mit Report->Field Output sollte dieses Ergebnis auch exportiert werden können. Du hast dann aber nur diesen einen Zustand. Wenn vom ganzen Modell eine oder mehrere Variablen für jeden Zeitpunkt exportieren willst, kannst du mit Python relativ einfach eine Schleife um die Report-Funktion legen und sie so automatisieren.
Hallo Mustaine, was ic momentan benötige ist ein Verlauf der maximalen Spannungen von mehrenren Vergleichsrechnungen. Dies mache ich momentan durch Export der max-Werte mittels der Report Option. Gibt eine Möglichkeit automatisiert diese Ergebnisse
(a) in das report -file zu schreiben --> momentan muss ich noch jeden frame einzeln anklicken, um diese in die Report-file zu schreiben und: Das Format ist für die weitere Auswertung (Excel) ja so nicht zu gebrauchen. Momentan erfolgt bei mir eine hädische Umformatierung. (b)Wie kann ich dieses (Python) automatieren Wäre es möglich, dass du mir ein enstprechendes Python-Skript zusendest. Momnentan extrahiere ich aus mehreren dutzend Rechnungen die Ergebnisse noch händisch und dies dauert einfach mörderich lange. ciao Gunkerle
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mustaine Ehrenmitglied V.I.P. h.c.
Beiträge: 3554 Registriert: 04.08.2005 Abaqus
|
erstellt am: 07. Mai. 2008 12:00 <-- editieren / zitieren --> Unities abgeben: Nur für Gunkerle
Es ist zwar nicht schwer, aber ein komplettes Script für Punkt b) kann ich dir trotzdem nicht erstellen. Erstens fehlt mir dazu die Zeit. Und zweitens weiß ich nicht wie die formatierte Datei aussehen soll. Für Punkt a) kann ich nachher schnell ein kleines Beispielscript erstellen. Das ist quasi in wenigen Minuten erledigt. Für Punkt b) kannst du dann eigentlich mit jeder beliebigen Sprache einfach die Dateien umsortieren. Mit Python ist das z.B. sehr leicht. Ein Python-Einführungsbuch- oder Script vermittelt eigentlich schon alle notwendigen Kenntnisse wie man mit Dateien und Zeichenketten arbeitet. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mustaine Ehrenmitglied V.I.P. h.c.
Beiträge: 3554 Registriert: 04.08.2005 Abaqus
|
erstellt am: 07. Mai. 2008 14:01 <-- editieren / zitieren --> Unities abgeben: Nur für Gunkerle
Anbei das Script. Es läuft über alle Steps und Frames (außer jeweils Frame null) und schreibt für jeden Frame einen Report. Im meinem Beispiel werden alle Verschiebungen in den Report geschrieben. Einfach odb im Viewer öffnen und das Script via File->Run Script starten. Code:
from abaqus import * from abaqusConstants import * # odbName = session.viewports['Viewport: 1'].displayedObject.name odb= session.odbs[odbName] # nameodb = odbName.split('/')[-1].split('.')[0] # for s in odb.steps.keys(): step = odb.steps[s] for i in range(len(step.frames)): if i>0: session.fieldReportOptions.setValues(printTotal=OFF, printMinMax=OFF) session.writeFieldReport(fileName='Report_'+nameodb+'_Step_'+str(step.number)+'_Frame_'+str(i)+'.rpt', append=OFF, sortItem='Node Label', odb=odb, step=int(step.number-1), frame=i, outputPosition=NODAL, variable=(('U', NODAL), )) # print 'Done. Reports written for '+nameodb
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |