Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SIMULIA/ABAQUS
  mit Python NT11 an Knoten auslesen

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:  mit Python NT11 an Knoten auslesen (3713 mal gelesen)
Kampf-Ameise
Mitglied
Ingenieur


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

Beiträge: 129
Registriert: 12.03.2002

Abaqus Standard 6.5.1 bis 6.9.2, Intel Fortran 9.1

erstellt am: 30. Jan. 2008 08:17    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 zusammen,

ich möchte mir einige immerwiederkehrende Arbeiten mit Hilfe eines Python Skriptes erleichtern. Da ich kaum Python-Kenntnisse habe geht die Sache bei mir etwas zäh von der Hand. Ich möchte nun mit Hilfe von "odbAccess" nodal temperatures (NT11) an einigen Knoten auslesen und in eine Datei schreiben. Leider schaffe ich es nicht ganz die Werte an einem Knoten auszulesen. Über probieren bin ich schonmal soweit mit dem Befehl gekommen:

Code:
odb.steps['Kriechrechnung'].frames[2].fieldOutputs['NT11']

weiß aber nicht was ich da noch weiter dran hängen soll und ob das überhaupt der richtige Weg ist. Gibt es irgendeine Möglichkeit die Befehle von odbAccess nachzuschauen? Ich habe bisher über probieren also mit "print" und tab usw. versucht herauszufinden welche Befehle existieren.

Vielen Dank schonmal an alle die Posten.

[Diese Nachricht wurde von Kampf-Ameise am 30. Jan. 2008 editiert.]

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

Nicksen
Mitglied
wissenschaftlicher Mitarbeiter


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

Beiträge: 239
Registriert: 04.05.2007

erstellt am: 30. Jan. 2008 08:35    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 Kampf-Ameise 10 Unities + Antwort hilfreich

Hallo,

also zum einen gibt es ein ABAQUS Scripting User's Manual und ein ABAQUS Scripting Reference Manual und zum anderen werden saemtliche Aktionen im CAE in der Datei "abaqus.rpy" gespeichert.

Hier im Forum kam schon oft der Tip, dass man einfach alle seine Aktionen nacheinander durchfuehrt und anschließend die entsprechenden Befehle dort rauskopiert, ggf. editiert und in einem eigenen Skript ablegt. Dann kann man dieses Makro stets ausfuehren, ohne staendig die Aktionen per Klick zu taetigen.

Ich schlage also vor, diese *.rpy Datei anzuschauen und dann mit den angesprochenen Hilfebuechern die notwendigen Aenderungen einzubringen.

Viel Erfolg dabei.

Gruß vom Nixxon

------------------
==========
==  Dingsen  ==
==========

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

Kampf-Ameise
Mitglied
Ingenieur


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

Beiträge: 129
Registriert: 12.03.2002

Abaqus Standard 6.5.1 bis 6.9.2, Intel Fortran 9.1

erstellt am: 30. Jan. 2008 08:38    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 Nicksen,

Im Abaqus Scriptin Manual habe ich nachgeschaut. Dort stehen die Infos nicht die ich benötige. Über die einzelnen Befehlsstrukturen steht da leider wenig drinne,oder ich finde es nicht.

Die Möglichkeit mit dem Report-File fällt für mich in diesem Fall aus, da ich nicht über XY-Report oder ähnliches gehen möchte sondern ich will die Werte direkt ansprechen und über Python rausschreiben.

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: 30. Jan. 2008 11:05    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 Kampf-Ameise 10 Unities + Antwort hilfreich

Du kannst bei der Report-Funktion auch direkt auf Field Output zugreifen. Das ist der einfachst und schnellste Weg NT11 für Knoten in eine Datei schreiben zu lassen.

Also Report->Field Output. Dann musst du bei Position auf 'Unique Nodal' umstellen. Nachdem du ggf. noch weitere Optionen eingestellt hast, werden nun für alle im Viewport dargestellten Knoten NT11 in eine Datei geschrieben.

Es gibt auch noch einen zweiten Weg ohne Scripting. Mit dem Keyword *NODE PRINT kannst du schon vom Solver NT11 für alle Knoten oder ein Knotesets in die dat-Datei schreiben lassen.

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

Kampf-Ameise
Mitglied
Ingenieur


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

Beiträge: 129
Registriert: 12.03.2002

Abaqus Standard 6.5.1 bis 6.9.2, Intel Fortran 9.1

erstellt am: 30. Jan. 2008 13:51    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 Mustaine,

ich möchte schon über Python an die Knoten und dessen NT Werte direkt heran. Über Report->FieldOutput bekomme ich ja eine Liste der NT11 Werte aller Knoten. Da mein Modell zu groß ist und ich die Werte in einer bestimmten Anordnung in eine Datei schreiben möchte will ich das schon über Python machen. Ein Arbeitskollege, der leider, leider nichtmehr bei uns ist hat das auch schon getan. Allerdings hat er zeitliche VErläufe über einen Centroid audgegeben. Diese Beispiel versuche ich zu übertragen. Sein Code lautete so:

Code:
        for step in odb.steps.values():

              count+=1
              counti=0
#              print 'step=',count
#              if count>3: break

              for frame in step.frames:
                  counti+=1
#                  print '  increment=',counti
#                  if counti>3: break

#                  print frame.fieldOutputs
                  stressall=frame.fieldOutputs['S']
                  stress=stressall.getSubset(region=center, position=CENTROID)
                  stressValues=stress.values


Ein weiterer Punkt warum ich genau so die Werte ansprechen will ist, dass das Script ohne CAE/Viewer laufen soll. ich will das ganze soweit automatisieren dass ich mit Hilfe eines Batch-Files die Jobs starte und danach gleich auswerte. D.h. in meinem Python-Code darf kein "viewports" vorkommen.

[Diese Nachricht wurde von Kampf-Ameise am 30. Jan. 2008 editiert.]

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: 30. Jan. 2008 14: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 Nur für Kampf-Ameise 10 Unities + Antwort hilfreich

Das sollte dir helfen Zugriff auf NT11 zu erhalten.

Code:

from odbAccess import *
from abaqus import *
from abaqusConstants import *

odb = openOdb(path='Job-1.odb')

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

text = ''

for x in nodes.values:
    output = str(x.nodeLabel) +'  '+ str(x.data)
    text = '\n'.join([text, output])
   

datei=file('results.txt', 'w')
datei.write(text)
datei.close()

odb.close()


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

Kampf-Ameise
Mitglied
Ingenieur


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

Beiträge: 129
Registriert: 12.03.2002

Abaqus Standard 6.5.1 bis 6.9.2, Intel Fortran 9.1

erstellt am: 30. Jan. 2008 14:22    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

ahhhhhhhhhhh 

spitze! Das sollte helfen.
Ich versuche es gleich mal. Ich habe nicht gepeilt dass hinter "region" das ganze odb usw. muss.

Ich probiers gleich mal aus

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: 30. Jan. 2008 14:46    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 Kampf-Ameise 10 Unities + Antwort hilfreich

Wenn du mehrere Bauteile hast und du mit Part- und Assemblystruktur arbeitest, solltest du erst auf die Instancen und dann auf deren Knoten zugreifen (am besten über Sets). Ansonsten tauchen Nummern mehrfach in der Liste auf.

Beispiele gibts genügend im Manual.

siehe Abaqus Scripting Users Manual
8.5.4 Reading model data
8.5.7 Using regions to read a subset of field output data
8.5.9 An example of reading node and element information from an output database

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