Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SIMULIA/ABAQUS
  Python - Set abfragen

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:  Python - Set abfragen (984 mal gelesen)
vespa71
Mitglied



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

Beiträge: 11
Registriert: 01.06.2004

erstellt am: 27. Aug. 2008 14:50    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,

ich habe ein Problem bezüglich Python.

Ich habe verschiedene Sets mit jeweils einem Knoten definiert und möchte nun für alle Sets die Temperatur (nt11) abfragen und in einer Datei ausgeben lassen. Wenn ich die Knotennummer direkt angebe, funktioniert die Ausgabe (siehe unten), allerdings schaffe ich es nicht die Sets direkt anzusprechen. Hat jemand eine Idee? Vorab vielen Dank!

Code:
from odbAccess import *
from abaqusConstants import *
odb = openOdb (path='/home/test.odb')
step = odb.steps['Abkuehlung']
region = step.historyRegions['Node PART-1-1.17814']
nt11Data = region.historyOutputs['NT11'].data
temperature = open('temperature.txt','w')
for time, nt11 in nt11Data:
temperature.write('%10.4E  %10.4E\n' % (time, nt11))
temperature.close()
odb.close()

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

carsten1983
Mitglied
Doktorand


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

Beiträge: 125
Registriert: 11.10.2007

erstellt am: 28. Aug. 2008 16:07    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 vespa71 10 Unities + Antwort hilfreich

Versuchst du den selben Code, nur dass du statt 'Node PART-1-1.17814' dann an diese Stelle ein Set einträgst?
Wenn ja würd ich sagen geht es so nicht. Im Scripting Reference Manual steht dazu drin, dass du ein Historypoint Object an dieser Stelle brauchst (und kein Set). Deshalb musst du dir Gedanken machen, wie du aus deinem Set die Punkte in geeigneter From extrahierst.
Im einfachsten Fall könnte das so funktionieren:
Code:

setKeys = mdb.models['Model-1'].parts['Part-1'].sets.keys()
K1,nodeKeys = 0,[]
while K1<len(setKeys):
    nodeKeys.append(mdb.models['Model-1'].parts['Part-1'].sets[setKeys[K1]].nodes)
    #das sollte dir eine Liste mit Knotennamen als Strings liefern
    K1+=1


Mit den Elementen dieser Liste von Knotennummern(die zu der setKeys Liste korrespondiert) könntest du im nächsten Schritt in die historyRegions rein gehen. Das ist allerdings ohne Gewähr, weil ich es nicht testen konnte ohne erst die odb anzulegen und alles so zu nennen wie du es hast..

edit: Ein Variablenname war falsch

[Diese Nachricht wurde von carsten1983 am 28. Aug. 2008 editiert.]

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

vespa71
Mitglied



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

Beiträge: 11
Registriert: 01.06.2004

erstellt am: 02. Sep. 2008 11: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

Ja, ich hatte einfach versucht statt der Knotennummer das Set einzutragen. Hat natürlich nicht funktioniert ...

Vielen Dank für Deinen Tipp! Hat bei mir leider nicht funktioniert, kann aber auch gut an meinen nur rudimentären Python-Kenntnissen liegen. Habe mich jetzt damit beholfen, die Knotennummern aus dem Inputfile zu kopieren, in eine Liste zu packen und nacheinander die Temperaturen auszugeben. Nicht sehr elegant, aber es funktioniert 

Ich bekomme jetzt für jeden Knoten Zeit und Temperatur. Ist es möglich, eine Spalte mit der Zeit und daneben die Temperaturen der einzelnen Knoten jeweils in einer Spalte auszugeben?

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

carsten1983
Mitglied
Doktorand


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

Beiträge: 125
Registriert: 11.10.2007

erstellt am: 02. Sep. 2008 12: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 vespa71 10 Unities + Antwort hilfreich

Die Ausgabe in eine Datei ist am einfachsten wie folgt möglich:

Code:

f=open('C:\....\name.txt','w')
f.write(str(wert1)+',    '+str(wert2)+',    '+str(wert3)+'\n')
f.close()

das erzeugt dir drei Spalten, wo jeweils wert1, wert2 und wert3 durch Kommas und ein paar Freizeichen getrennt werden. Die str() sind nötig weil nur Strings in die Datei geschrieben werden können.

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