Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SIMULIA/ABAQUS
  Knotenspannungen im Post Processing

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:  Knotenspannungen im Post Processing (872 mal gelesen)
Database91
Mitglied
Student


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

Beiträge: 20
Registriert: 18.01.2021

erstellt am: 08. Feb. 2021 15: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 zusammen,

ich würde gern im Postprocessing Knotenspannungen meines Modells abrufen. Die Hindernisse sind dabei, dass ich
1) nicht über die Elemente und die Integrationspunkte gehen will, sondern direkt die Knotenspannungen auslesen möchte
2) das ganze soll nur von einem ausgewählten Knotenset passieren.
3) Die Spannungen für S11, S22 und S33 möchte ich zusammen mit den Knotennummern in einer .txt-Datei ausgeben lassen (Also 3 Dateien S11.txt...)

Im Preprocessing habe ich für genau das Knotenset ein Field output Request erstellt.

Code:
regionDef=mdb.models['Model-1'].rootAssembly.allInstances['ungekerbteProbe-1'].sets['Auswertung_Nodes']
mdb.models['Model-1'].FieldOutputRequest(name='F-Output-2',
    createStepName='Last_Kraft', variables=('S', ),
    frequency=LAST_INCREMENT, region=regionDef, sectionPoints=DEFAULT,
    rebar=EXCLUDE)

Über Report -> Field Output kann ich zwar über 'Unique Nodal' direkt die Knotenspannungen quasi ansprechen und bekomme diese auch in einer Textdatei - Wenn auch alle Spannungen in einer Datei - aber ich kann dabei keine Selektion der Knoten durchführen.

Ich habe es auch bereits über eine "Display Group" versucht und diese dann über 'Query -> 'Probe Values' ausgelesen. Das funktioniert in der GUI auch wunderbar, wenn ich allerdings über den Macro Recorder das ganze aufnehme, kommt dabei nicht raus.

Ich bräuchte bitte Hilfe.

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: 08. Feb. 2021 16: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 Database91 10 Unities + Antwort hilfreich

Wenn du vorm erstellen des Reports nur das Knotenset über die Display Group einblendest, wird auch nur diese Region im Report verwendet. Dass Spannungen nicht an Knoten visualisiert werden können, braucht dich dabei nicht stören.

Du kannst den Report 3x erstellen und dabei je eine Spannungskomponente anfordern. Dann hast du drei verschiedene Dateien, sofern du dabei drei verschiedene Dateinamen angibst.

Probier es erstmal in der GUI.

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

Database91
Mitglied
Student


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

Beiträge: 20
Registriert: 18.01.2021

erstellt am: 10. Feb. 2021 13:15    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

erst mal danke für die Antwort Mustaine.

Leider muss ich dir widersprechen. Wenn ich im Postprocessing bin und ich einen Doppelklick auf die DisplayGroup mit dem Knotenset mache wird erst einmal gar nichts mehr angezeigt, da Knoten alleine ja nicht dargestellt werden können. Aber die Gruppe ist definitiv mit den Knoten befüllt.
Wenn ich nun über
Report -> Field Output den Report erstelle, enthält der trotzdem die Spannungen für alle Knoten.

Hast du vielleicht noch eine andere Möglichkeit ?

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: 10. Feb. 2021 13:56    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 Database91 10 Unities + Antwort hilfreich

Ich habe es gerade nochmal getestet und es funktioniert so wie ich beschrieben habe.

Obwohl man die Knoten nicht sieht, sind sie im Viewport. Ein Report verwendet auch nur diese Knoten.

Du kannst ja nach dem einblenden des Knotensets mal die Knoten im Viewport abfragen. Tools->Query->Active Nodes
Alternativ wechselst du zu einem Symbol Plot von U. Zusätzlich kannst du dann noch die Knotensymbole und Label einblenden.
Options->Common->Label

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: 10. Feb. 2021 13:59    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 Database91 10 Unities + Antwort hilfreich

Wenn du es mir nicht glaubst oder nicht weißt was du falsch machst, kann ich auch kurz ein Video aufzeichnen und hochladen.

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

Database91
Mitglied
Student


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

Beiträge: 20
Registriert: 18.01.2021

erstellt am: 10. Feb. 2021 14:49    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

Ich werde es gleich erst noch mal testen und dir dann Bescheid geben

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

Database91
Mitglied
Student


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

Beiträge: 20
Registriert: 18.01.2021

erstellt am: 10. Feb. 2021 15: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

Ich muss dir recht geben.
Ich habe den Fehler gemacht, dass ich immer den gleichen Dateinamen verwendet habe und den Haken bei "Append File" drin gelassen habe ....

Aber jetzt besteht natürlich die große Frage, wie ich das ganze in dem Skript hinbekomme.

Code:
leaf = dgo.LeafFromNodeSets(nodeSets=('UNGEKERBTEPROBE-1.AUSWERTUNG_NODES',))
dg_Auswertung=session.DisplayGroup(leaf=leaf, name='Nodes_Auswertung')
dg1=session.displayGroups['Nodes_Auswertung']
session.viewports['Viewport:1'].odbDisplay.setValue(visibleDisplayGroups=(dg1,))

odb = openOdb(path=odbPath)
odb_s=session.odbs[odb]
session.writeFieldReport(fileName='Auswertung_S11', append=OFF,sortItem='Node Ladel', odb=odb_s,
step=0, frame=1, outputPosition=NODAL,variable=(('S', INTEGRATION_POINT, ((COMPONENT,'S11'), )), ))


so habe ich das quasi 1 zu 1 aus dem Macro Manager heraus geschrieben. Einzig die Zeile mit "odb_s" habe ich eingefügt, damit ich keinen festen Pfad habe, sondern immer auf mein entsprechendes Arbeitsverzeichnis zurück greife.

Dabei bekomme ich im oberen Teil allerdings eine Fehlermeldung zu der Zeile

Code:
session.viewports['Viewport:1'].odbDisplay.setValue(visibleDisplayGroups=(dg1,))

"KeyError: Viewport: 1 "
Was muss ich denn da ändern?


Im zweiten Block meckert er dann bei

Code:
odb_s=session.odbs[odb]

"TypeError: String Expected as dictionary Key".
das liegt sicherlich daran, dass mein odb = openOdb(r'C:/SIMULIA/Abaqus/Projektarbeit/ungekerbte Probe/korrigierte Geometrie/Berechnung_v6/Biegung_Pruefkraft.odb')
nicht nur den Pfad enthält, sondern auch noch das "openOdb"
Wie komme ich denn da an den Pfad dran?

[Diese Nachricht wurde von Database91 am 10. Feb. 2021 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: 10. Feb. 2021 16:27    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 Database91 10 Unities + Antwort hilfreich

Führe die Aktionen einfach in der GUI durch und adaptiere dann die Befehle aus der .rpy. Da findet man Befehle wie:

o1 = session.openOdb(name='D:/temp/test.odb', readOnly=False)
session.viewports['Viewport: 1'].setValues(displayedObject=o1)

leaf = dgo.LeafFromNodeSets(nodeSets=("RandomSetName", ))
session.viewports['Viewport: 1'].odbDisplay.displayGroup.replace(leaf=leaf)

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

Database91
Mitglied
Student


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

Beiträge: 20
Registriert: 18.01.2021

erstellt am: 10. Feb. 2021 16: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

Das habe ich ja in der GUI durchgeführt und mit dem Macromanager aufgezeichnet.
Der erste Teil war auch einfach nur ein Schreibfehler.

Aber der zweite Teil beschäftigt mich immer noch.

Im Macromanager ist der Befehl:

Code:
odb = session.odbs['C:/SIMULIA/Abaqus/.../Berechnung_v6/Biegung_Pruefkraft.odb']

Ich möchte das Skript aber ja an verschiedenen PCs und in verschiedenen Verzeichnissen verwenden können. Daher bräuchte ich einen Weg an den Pfad des aktuellen Arbeitsverzeichnisses ran zu kommen. Damit ich diesen dann einsetzen kann als Variable

Code:
odb = session.odbs[Arbeitsverzeichnis]

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: 10. Feb. 2021 17:00    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 Database91 10 Unities + Antwort hilfreich

Python bietet da:

import os
os.getcwd()

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

Database91
Mitglied
Student


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

Beiträge: 20
Registriert: 18.01.2021

erstellt am: 12. Feb. 2021 06:14    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

Besten Dank für die Hilfen Mustaine

edit: Da war ich wohl zu schnell... Aber jetzt funktioniert es

Für alle, die eventuell später noch mal hierauf stoßen auf der Suche nach einer Lösung.

Im Preprocessing erstellt:

Code:
p.Set(nodes=Node_list, name='Auswertung_Nodes')

regionDef=mdb.models['Model-1'].rootAssembly.allInstances['ungekerbteProbe-1'].sets['Auswertung_Nodes']
mdb.models['Model-1'].FieldOutputRequest(name='F-Output-2',
    createStepName='Last_Kraft', variables=('S', ),
    frequency=LAST_INCREMENT, region=regionDef, sectionPoints=DEFAULT,
    rebar=EXCLUDE)


Die Auswertung im Postprocessing:

Code:
job=job_Name + '.odb'
workDir=os.getcwd()
Part_1='ungekerbteProbe-1'
Nodeset='Auswertung_Nodes'
Step_1 = 'Last_Kraft'

o1 = session.openOdb(name=workDir+"\\"+job)
session.viewports['Viewport: 1'].setValues(displayedObject=o1)

leaf = dgo.LeafFromNodeSets(nodeSets=('UNGEKERBTEPROBE-1.AUSWERTUNG_NODES',))
dg_Auswertung=session.DisplayGroup(leaf=leaf, name='Nodes_Auswertung')
dg1=session.displayGroups['Nodes_Auswertung']
session.viewports['Viewport: 1'].odbDisplay.setValues(visibleDisplayGroups=(dg1,))

odb=session.odbs[workDir+"\\"+job]

session.writeFieldReport(fileName='Auswertung_S11.txt', append=OFF,sortItem='Node Ladel', odb=odb,
step=0, frame=1, outputPosition=NODAL,variable=(('S', INTEGRATION_POINT, ((COMPONENT,'S11'), )), ))

session.writeFieldReport(fileName='Auswertung_S22.txt', append=OFF,sortItem='Node Ladel', odb=odb,
step=0, frame=1, outputPosition=NODAL,variable=(('S', INTEGRATION_POINT, ((COMPONENT,'S22'), )), ))

session.writeFieldReport(fileName='Auswertung_S33.txt', append=OFF,sortItem='Node Ladel', odb=odb,
step=0, frame=1, outputPosition=NODAL,variable=(('S', INTEGRATION_POINT, ((COMPONENT,'S33'), )), ))



[Diese Nachricht wurde von Database91 am 12. Feb. 2021 editiert.]

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