Autor
|
Thema: Element einer Slection über Namen finden (1508 mal gelesen)
|
ThomasJay Mitglied Dipl-Ing
Beiträge: 159 Registriert: 19.04.2011 CATIA V5 R19
|
erstellt am: 14. Jul. 2011 16:20 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen, Ich kenne von einem Object nur den Namen. Jetzt würde ich gerne dieses Object ansprechen. Dazu selektiere ich ein Geometrisches Set und durchsuche es nach allen Elementen. Würde ich die Position des Elements kennen funktioniert: Code: Set Spline1 = Selection.Item(5)
da ich aber leider nur den Namen weiß habe ich es hiermit versucht: Code: Set Spline1 = Selection.Item("Name")
Hier bekomme ich immer die Fehlermeldung: "Type missmatch" Weiß jemand einen Rat?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 14. Jul. 2011 18:09 <-- editieren / zitieren --> Unities abgeben: Nur für ThomasJay
Servus Du kannst auch innerhalb einer Selektion suchen zB: selection.Search "Name=NAME,sel" Set Spline1 = Selection.Item(1).valueOder deine Selektion mit einer Schleife durchsuchen zB for i = 0 to Selection.Count if Selecton.item(i).name = "NAME" then Set Spline1 = Selection.Item(1).value exit for end if next[/i] Gruß Bernd PS: Alle Code-Schnippsel sind ungetestet ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThomasJay Mitglied Dipl-Ing
Beiträge: 159 Registriert: 19.04.2011 CATIA V5 R19
|
erstellt am: 14. Jul. 2011 18:55 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank für die schnelle Antwort. Das Problem bei der ersten Methode ist, dass diese Operation bereits in einer Schleife ist und der Name sich ändert, d.h. ich möchte ihn über eine Variable angeben und nach der kann ich nicht suchen. Zumindest habe ich noch nicht herausgefunden wie. Wenn ich die Variable angebe wird sie für einen String gehalten und dementsprechend nicht gefunden. Methode 2 klingt sehr einleuchtend. Ich habe nur eine große Selekionsmenge und muss das ganze mehrmals durchführen --> lange Rechenzeit. Falls jemand noch eine Methode weiß wäre ich sehr dankbar. Woran liegt es eigentlich, dass ich eine Selection nicht nach einem Namen durchsuchen kann? Wenn ich beispielsweise ein Element aus einem GeoSet ansprechen möchte ist das doch kein Problem... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 14. Jul. 2011 19:12 <-- editieren / zitieren --> Unities abgeben: Nur für ThomasJay
Servus Was hast du (in deiner Schleife) selektiert? Wenn es das GeoSet ist kannst du ja wieder über den Elementennamen auf deinen Spline zugreifen (GeoSet einer Variabel zuweisen und über GeoSet.Item(Name)) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThomasJay Mitglied Dipl-Ing
Beiträge: 159 Registriert: 19.04.2011 CATIA V5 R19
|
erstellt am: 14. Jul. 2011 20:43 <-- editieren / zitieren --> Unities abgeben:
Geht leider nicht. Die Splines sind in verschiedenen GeoSets drin, die wiederum in einem übergeordnetem Set zusammengefasst sind. Da ich nicht weiß in welchem sich der gewünschte Spline befindet muss ich das übergeordnete Set durchsuchen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 14. Jul. 2011 23:00 <-- editieren / zitieren --> Unities abgeben: Nur für ThomasJay
Servus Du könntest vielleicht durch einen geeigneten Filter schon zuvor die Menge der selektierten Elemente einschränkten, dass du dir eine For-Next-Schleife erlaube kannst. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThomasJay Mitglied Dipl-Ing
Beiträge: 159 Registriert: 19.04.2011 CATIA V5 R19
|
erstellt am: 15. Jul. 2011 14:29 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 15. Jul. 2011 14:59 <-- editieren / zitieren --> Unities abgeben: Nur für ThomasJay
Servus Zu deiner Aussage das du einen Suchstring nicht mit einer Variable belegen willt: Code: Dim Filter As String Filter = "Block*" selection1.Search "Name=" & Filter & ",sel"
GetItem ist AFIAR mit Vorsicht zu genießen. Was ist wenn mehrere Element so heißen? Was ist wenn es das Objekt nicht gibt wird ein Fehler ausgegeben?)?Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThomasJay Mitglied Dipl-Ing
Beiträge: 159 Registriert: 19.04.2011 CATIA V5 R19
|
erstellt am: 15. Jul. 2011 17:40 <-- editieren / zitieren --> Unities abgeben:
|