Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SIMULIA/ABAQUS
  Automatisches Erzeugen eines Path

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:  Automatisches Erzeugen eines Path (3883 mal gelesen)
dabauer82
Mitglied



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

Beiträge: 121
Registriert: 22.11.2007

Pro/E WiFi3 M050
Win 7
ABQ 6-14

erstellt am: 30. Jul. 2011 10:37    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 liebe Gemeinde,

ich habe mein Modell und meine Partitionen so aufgebaut, dass ich exakt auf der Y-Achse und exakt im Ursprung Netzknoten liegen habe, die ich gerne auslesen würde. Und zwar automatisch. Zur Zeit gehe ich hin, und erzeuge via CAE einen Path und klicke meine zehn knoten an (0,0,0; 0,-1,0; ... 0,-10,0) an und lasse mir den XY-Plot hierzu plotten.

Wie kann ich das denn automatisieren? Dadurch, das nicht jedes Modell die gleiche Elementzahl hat, sind die Knotenbezeichnung unterschiedlich.

Hat jemand eine Idee? Danke.

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

dabauer82
Mitglied



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

Beiträge: 121
Registriert: 22.11.2007

Pro/E WiFi3 M050
Win 7
ABQ 6-14

erstellt am: 01. Aug. 2011 10:21    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 rausgefunden dass ich per GetByBoundingCylinder meine Nodes auslesen kann. Aber leider funktioniert mein Befehl nicht. Ich würde das falsche Object nutzen. Wie geht es richtig?

Code:
# Define Path
# BKV-1
myFolder = 'D:/Temp/team_trt/'
myFile = 'ZM_G15X5T2_1HG6_P250_D70_V70_V2a.odb'
myOdbPath = myFolder+myFile

myOdbFile = session.openOdb(name='myOdbFile', path=myOdbPath, readOnly=True)
myMeshElementArray = myOdbFile.getByBoundingCylinder((0,35,0),(0,34,0),0.01)


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: 01. Aug. 2011 15:55    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 dabauer82 10 Unities + Antwort hilfreich

So einfach geht das nicht. Du musst nicht nur die Knoten haben, du musst sie auch noch in der korrekten Reihenfolge angeben. Ich habe mal schnell was geschrieben. Hierbei wird davon ausgegangen, dass du den Pfad entlang einer Geometriekante haben möchtest (ggf. vorher partitionieren). Lege diese Kante in ein Set und einen Endpunkt der Kante (=Startpunkt des Pfades) in ein weiteres Set. Trage die Sets in das Skipt ein und starte es im Postprocessing. Das Skript sollte dann einen Pfad erstellen.

Code:

"""
- script to create a path based on a node set and a set with the start node
- sets need to be defined on assembly level
"""


# to be defined by user
set_nodes = 'SET-NODES'
set_startnode = 'SET-POINT'
pathname = 'Path-x'
##


from abaqus import *
from abaqusConstants import *
from caeModules import *
from math import *


dict_nodes ={}
list_nodes = []


vps = session.viewports.values()[0]
odbName = vps.displayedObject.name
odb = session.odbs[odbName]

instancename = odb.rootAssembly.nodeSets[set_startnode].nodes[0][0].instanceName
coord_point = odb.rootAssembly.nodeSets[set_startnode].nodes[0][0].coordinates

for node in odb.rootAssembly.nodeSets[set_nodes].nodes[0]:

    dist = sqrt((pow(node.coordinates[0]-coord_point[0],2))+ \
              (pow(node.coordinates[1]-coord_point[1],2))+ \
              (pow(node.coordinates[2]-coord_point[2],2)))
   
    dict_nodes[dist] = node.label
   

x = dict_nodes.keys()
x.sort()

for y in x:
    list_nodes.append(dict_nodes[y])
 
list_nodes = tuple(list_nodes)

session.Path(name=pathname, type=NODE_LIST, expression=((instancename, (
    list_nodes)), ))


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

dabauer82
Mitglied



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

Beiträge: 121
Registriert: 22.11.2007

Pro/E WiFi3 M050
Win 7
ABQ 6-14

erstellt am: 01. Aug. 2011 21:28    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

Danke! Wird getestet!

[Diese Nachricht wurde von dabauer82 am 01. Aug. 2011 editiert.]

Hallo,

ich habe dein Script umgesetzt und erweitert. Nicht zu 100% exakt weil meine ODB kein Set im Assembly hat, aber ich habe das Set mit den Knoten im Part und daher musste ich nur n wenig umbauen. Aber generell würde ich es sehr begrüßen, wenn man die Knoten direkt aus dem ODB-Part auslesen kann. Hintergrund ist jener, dass ich nicht alle ODBs selbst simuliere und viele bekomme und daher nicht sicherstellen kann, dass jeder ein Set mit der Bezeichnung XYZ erstellt. Daher fand ich die Lösung mit getByBoundingCylinder recht angenehm. Gibt es denn so eine Lösung? Wie ich das richtig sehe geht GetByBoundingCylinder nur für MessArrays und folglich nicht für ODBMeshArrays oder ich war zu doof   

Danke!

[Diese Nachricht wurde von dabauer82 am 03. Aug. 2011 editiert.]

Ich habe noch einen Haken gefunden. Mein Netz ist enlang des Sets nicht konstant. Zumindest sind nur die ersten 11 Knoten äquidistant und die letzten 3 sind es auch, aber bei den 11 hab ich 50 und bei den letzten drei 10µm Kantenlänge...Jetzt ist deine Distanzrechnung irgendwie anders...

[Diese Nachricht wurde von dabauer82 am 03. Aug. 2011 editiert.]

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

m.o
Mitglied


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

Beiträge: 4
Registriert: 20.03.2012

erstellt am: 20. Mrz. 2012 16:48    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 dabauer82 10 Unities + Antwort hilfreich

Hallo,

ich habe das Skript folgendermaßen umgesetzt:

# to be defined by user
set_nodes = 'Seil1'
set_startnode = 'Seil1_Start'
pathname = 'Path-Seil1'
##

from abaqus import *
from abaqusConstants import *
from caeModules import *
from math import *

dict_nodes ={}
list_nodes = []

vps = session.viewports.values()[0]
odbName = vps.displayedObject.name
odb = session.odbs['odbName']


instancename = odb.rootAssembly.nodeSets[set_startnode].nodes[0][0].instanceName


Der Durchlauf des Skriptes wird dann in der letzten Zeile mit folgender Fehlermeldung abgebrochen:
KeyError: Seil1_Start

Kann mir vielleicht jemand weiterhelfen, wo das Problem liegt?
Danke!

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: 21. Mrz. 2012 13:45    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 dabauer82 10 Unities + Antwort hilfreich

Gibt es das Set Seil1_Start an der Instance?

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

m.o
Mitglied


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

Beiträge: 4
Registriert: 20.03.2012

erstellt am: 30. Mrz. 2012 13:28    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 dabauer82 10 Unities + Antwort hilfreich

Ja

[Diese Nachricht wurde von m.o am 04. Mai. 2012 editiert.]

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

m.o
Mitglied


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

Beiträge: 4
Registriert: 20.03.2012

erstellt am: 04. Mai. 2012 11:54    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 dabauer82 10 Unities + Antwort hilfreich

Mein Problem hat sich leider noch nicht gelöst

Die Fehlermeldung "KeyError: Seil1_Start" kommt immer;
unabhängig davon, ob das Set "Seil1_Start" im Assembly oder im Part definiert.

Für weitere Ideen wäre ich sehr dankbar

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

lecter84
Mitglied


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

Beiträge: 1
Registriert: 19.06.2012

erstellt am: 19. Jun. 2012 21: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 Nur für dabauer82 10 Unities + Antwort hilfreich

Hallo,

warum:
coord_point = odb.rootAssembly.nodeSets[set_startnode].nodes[0][0].coordinates

und nicht:
coord_point = odb.rootAssembly.nodeSets[set_startnode].nodes[0].coordinates

Wieso muss man hier 2mal "dereferenzieren" ?
Ich stand einmal vor einem ähnlichen Problem, bin nur aus Zufall auf die Lösung gekommen.

Wär nett, wenn mir das jemand erklären könnte!

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

GuteMusik14
Mitglied
Mech Eng Student

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

Beiträge: 1
Registriert: 18.11.2015

erstellt am: 18. Nov. 2015 19:23    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 dabauer82 10 Unities + Antwort hilfreich

Ganz ehrlich, Hammer!

Es hat zwar eine ganze Weile gebraucht, bis ich bemerkt habe, dass man die eigenen Node Sets in Capital Lettern in das Skript einfügen muss - aber das Rätseln hat sich gelohnt!

Nun kann ich vernünftig mein Parametermodell auswerten!

Danke

------------------
Morgen, morgen, nur nicht
heute, sagen alle faulen
Leute

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