ABAQUS Python Scripting Problem

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
stiner313
User
Beiträge: 12
Registriert: Samstag 28. Januar 2017, 09:52

Hallo liebe Python-Gemeinde,

ich bin noch ziemlich neu mit Python unterwegs (vorher nur C++). Da ich aber nun beruflich viel mit ABAQUS zu tun habe und mir einiges an Arbeit durch Scripting sparen möchte habe ich hier gleich 2 Fragen bei denen ich gerade einfach nicht weiterkomme und hoffe, dass mir ein erfahrener Benutzer hier helfen kann.

Erste Frage:
Ich führe in einem ODB-File einen Envelope der Spannungen am Bauteil durch und möchte diese in einen neuen Step mit neuem Frame speichern. Der Envelope klappt und auch das neue Frame erzeugen klappt.
Nun möchte ich das aber nicht in das aktuelle ODB-File speichern, sondern in ein neues wo nur der Envelope drin ist ohne die ganzen anderen Steps mit den Gigabytes an FieldOutput.
Bisher kopiere ich mir das Original-ODB über shutil und füge im neuen ODB-File den Step mit Frame hinzu. Dauert aber alles zu lange, da das zu kopierende ODB-File groß ist. Um jedoch den Envelope im neuen ODB als Frame darzustellen brauche ich ja logischerweiße das Strukturmodell des alten ODBs deswegen wollte ich das Modell in das neue ODB kopieren (inkl. Nodes Elements usw.). Genau an dem Punkt hänge ich.

Später möchte ich dann im neuen ODB nur noch über:

Code: Alles auswählen

newStep = odb.Step(name='xx',description='Envelope fuer xx',domain=TIME,timePeriod=1.0)
newFrame=newStep.Frame(incrementNumber=0,frameValue=0.0,description='xxx')
newField = newFrame.FieldOutput(name='MAX_ENV',description='Stress components (maximum envelope)', field=max_S1)
den neuen FieldOutput anhängen, sodass ich eine Zusammenfassung der Ergebnisse habe und dabei eine kleine Datenmenge.

Komme aber an diesem Punkt gerade einfach nicht weiter...
Gibt es denn keine einfache Möglichkeit aus einem ODB nur Instances, Materials, NodeSets usw. zu kopieren ohne den riesigen FieldOutput?

Zweite Frage (einfache Frage?):
Am Anfang werden die Step-Namen der ODB eingelesen und ich möchte, dass der Benutzer auswählen kann, welche Steps in die Analyse mit einbezogen werden (so unkompliziert wie möglich). Ich dachte daran ein GetInput() Befehl zu schreiben, aber möchte, dass in dem Fenster bereits der Inhalt drin steht. Der Inhalt soll alle erfassten Steps aus dem ODB sein, sodass der Benutzer nur noch 1-2 Steps die nicht miteinbezogen werden sollen, herauslöschen muss.

Kann mir in den beiden Punkten wer weiterhelfen? Ich komme da gerade absolut nicht weiter...

Grüße
stiner313
Zuletzt geändert von Anonymous am Samstag 28. Januar 2017, 10:15, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
BlackJack

@stiner313: Die beiden Fragen klingen so als müsste man sich mit ABAQUS auskennen. Falls hier keine Antwort kommen sollte, liegt das sehr wahrscheinlich daran, dass dieses Programm zu speziell ist und es keiner hier kennt, zumindest nicht genau genug um die Frage(n) beantworten zu können. Eventuell gibt es ja Foren speziell für diese Software‽
stiner313
User
Beiträge: 12
Registriert: Samstag 28. Januar 2017, 09:52

Hallo,

das war auch meine Vermutung.
Ich dachte mir da es trotzdem um Python geht, versuche ich es mal.
Ist aber nicht so schlimm. Ich habe Frage 2 immerhin mit einem split() Befehl hinbekommen. :)

Deshalb kann das ganze hier geschlossen werden.
Danke trotzdem für deine Rückmeldung.

Grüße
stiner313
Antworten