Autor
|
Thema: [PYTHON] benachbarte Faces finden (1433 mal gelesen)
|
DolcheVita Mitglied Wissenschaftlicher Mitarbeiter an der Uni
Beiträge: 75 Registriert: 13.03.2008
|
erstellt am: 30. Mai. 2013 12:28 <-- editieren / zitieren --> Unities abgeben:
Hi, ich habe eine Assembly, die aus mehreren Parts besteht. Diese sind nun mittels "Tie" verbunden. Kennt jmd. eine Möglichkeit die dann benachbarten Flächen anzuwählen? Also die, die in einer anderen Instance sind. Der getByBoundingBox Befehl nimmt ja nur Flächen, die auch ganz in der BoundingBox drin sind. Ich suche im Prinzip 'nen befehl, wie ich Flächen finde, die nur angeschnitten sind, z.B. durch eine BoundingBox. Ich hoffe ich habe mich verständlich ausgedrückt. MfG
------------------ MfG Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
slein89 Mitglied
Beiträge: 139 Registriert: 30.04.2012
|
erstellt am: 30. Mai. 2013 13:02 <-- editieren / zitieren --> Unities abgeben: Nur für DolcheVita
Eine kleine Skizze zu deinem Problem wäre hilfreich. Wenn du die Koordinaten des Bereiches kennst, in dem sich deine faces berühren, könnten dich die FaceArray Methoden findAt() und getClosest() interessieren. (ABAQUS Scripting Reference Manual 7.6.1 und 7.6.7). Also ich stelle mir das so vor, dass du die Methoden auf die Mittelpunktkoordinaten der einen Fläche loslässt und in deinm FaceArray beide Flächen erhältst. Evtl. musst du die Koordinaten so anpassen, dass du garantierst deine gesuchte Fläche mit den Methoden auswählst. Grüße Slein Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DolcheVita Mitglied Wissenschaftlicher Mitarbeiter an der Uni
Beiträge: 75 Registriert: 13.03.2008
|
erstellt am: 30. Mai. 2013 14:21 <-- editieren / zitieren --> Unities abgeben:
FindAt() und getClosest() helfen mir nicht so richtig. zu mindest nicht ohne größere Umwege, Programmieraufwand. in der nebenstehenden Skizze ist mein abstraktes Problem aufgezeichnet. zu sehen ist eine Gesamtansicht und ein Zoombild. Grün ist ein Part und das grau (im Zoom) ist ein anderes Part. Anden berührenden Kanten sind sie jeweils mit Tie verbunden. Wenn man jetzt von der Face mit der roten Raute ausgeht, sollen alle weiteren FAces mit einem blauen Rechteck gefunden werden, während die Fläche mit dem grünen Pentagon nicht gefunden werden soll. bei Findat uder getclosest würde ich nicht alle Flächen finden... Ausserdem soll es möglichst abstrakt sein, unter der Annahme, dass ich nicht die Koordinaten und "Verwandschaftsbeziehungen" vorher kenne... einfach alle Faces ablaufen und alle dazugehörigen Nachbarn finden... DAnke im Voraus! ------------------ MfG Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mustaine Ehrenmitglied V.I.P. h.c.
Beiträge: 3554 Registriert: 04.08.2005 Abaqus
|
erstellt am: 30. Mai. 2013 21:43 <-- editieren / zitieren --> Unities abgeben: Nur für DolcheVita
An den Kanten deiner Flächen die Koordinaten abfragen. Dann mit findAt() an diesen Koordinaten schauen ob es da noch andere Kanten gibt. Wenn ja, dann über alle Flächen iterieren und herausfinden an welchen Flächen diese Kanten sind. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
slein89 Mitglied
Beiträge: 139 Registriert: 30.04.2012
|
erstellt am: 31. Mai. 2013 07:08 <-- editieren / zitieren --> Unities abgeben: Nur für DolcheVita
Mit findAt() oder getClosest() erst mal eine der Flächen (in der grünen Instanz) beim roten Raute finden, und mit face.getAdjacentFaces() die angrenzenden Faces ermitteln. Bei denen musst du anhand der Koordinaten rausfiltern, welche du brauchst und welche nicht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |