| |
| Dassault PLM Integrationen mit der 3DViewStation, eine Pressemitteilung
|
Autor
|
Thema: Partname mit Indize auslesen (2598 mal gelesen)
|
IIYTII Mitglied
Beiträge: 85 Registriert: 30.05.2007 Catia V5 R19 Programmierung unter CATvba
|
erstellt am: 27. Okt. 2009 08:45 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe mal wieder eine Frage zu den Benennungen. Und zwar möchte ich gerne ein Partname mit Indize von einer Flächenselektion auslesen, kann jedoch mit Value.Parent.Parent.Parent...Name nur den Namen auslesen (Quasi das, was vor den (Part.1) steht). Gibt es da eine komfortablere Möglichkeit direkt den Inhalt der Klammer "Part.1" auszulesen? Ich vergas zu erwähnen, das ich mich im Product befinde... [Diese Nachricht wurde von IIYTII am 27. Okt. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
IIYTII Mitglied
Beiträge: 85 Registriert: 30.05.2007 Catia V5 R19 Programmierung unter CATvba
|
erstellt am: 27. Okt. 2009 15:42 <-- editieren / zitieren --> Unities abgeben:
|
McByte Mitglied Entwicklungsingenieur
Beiträge: 60 Registriert: 05.12.2003
|
erstellt am: 27. Okt. 2009 17:02 <-- editieren / zitieren --> Unities abgeben: Nur für IIYTII
|
IIYTII Mitglied
Beiträge: 85 Registriert: 30.05.2007 Catia V5 R19 Programmierung unter CATvba
|
erstellt am: 28. Okt. 2009 08:18 <-- editieren / zitieren --> Unities abgeben:
|
HAW-Raptor Mitglied Design Release Engineer
Beiträge: 58 Registriert: 12.10.2009
|
erstellt am: 02. Nov. 2009 20:20 <-- editieren / zitieren --> Unities abgeben: Nur für IIYTII
Hallo, leider hat mir der oben angegebene Code nicht weitergeholfen, sondern führt zur Fehlermeldung "Object doesn't support this property or method" Gibt es eine andere Möglichkeit auf den PartName mit Indize, also Part.1, Part.2 etc. zuzugreifen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12005 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 02. Nov. 2009 20:44 <-- editieren / zitieren --> Unities abgeben: Nur für IIYTII
Servus zB: CATIA.ActiveDocument.Product.Products.Item(1).NameOder von wo aus willst du auf den Exemplarnamen zugreifen? Gruß Bernd EDIT: Tippfehler ausgemerzt. ------------------ Warum einfach, wenn es auch kompliziert geht. [Diese Nachricht wurde von bgrittmann am 02. Nov. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HAW-Raptor Mitglied Design Release Engineer
Beiträge: 58 Registriert: 12.10.2009
|
erstellt am: 02. Nov. 2009 20:51 <-- editieren / zitieren --> Unities abgeben: Nur für IIYTII
Hallo Bernd, also ich erzeuge erstmal ein Part mit Code: Set PP = CATIA.ActiveDocument.Product.Products Liste(0) = "Festplattenpfad" & teilenummer & ".CATPart" PP.AddComponentsFromFiles Liste, "CATPart"
Wenn ich nun zweimal so ein Part einfüge, dann heisst das eine natürlich Part.1 und das gleiche Teile Part.2 Des Weiteren benötige ich den Namen einer Selection Ich befinde mich dabei die ganze Zeit in einem Product... [Diese Nachricht wurde von HAW-Raptor am 02. Nov. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pittyplatsh Mitglied
Beiträge: 62 Registriert: 27.12.2008 CATIA V5 R16 SP3
|
erstellt am: 02. Nov. 2009 22:43 <-- editieren / zitieren --> Unities abgeben: Nur für IIYTII
Also den Instanz-Namen erhälst du mit Code: CATIA.ActiveDocument.Product.Products.Item(1).Name
Wobei ActiveDocument das aktive Dokument ist. Product ist das Hauptprodukt in diesem Dokument (in deinem Bsp. wäre damit PRODUCT2 gemeint) Products ist eine Kollektion aller Produkte, die unter dem Hauptprodukt liegen Item( ) ermöglicht den Zugriff auf die einzelnen Products (durchnummeriert, beginnend bei 1 bis Products.Count -> Anzahl aller Item's unter Products) Name wäre dann der Instanz-Name Mit dem oben genannten Code gelangst du also zum Instanz-Namen des ersten Elementes des Hauptproduktes im aktiven Dokument. Willst du den Instanz-Namen des zweiten Part-Product haben, tippst du also Item(2) usw. Zitat: Des Weiteren benötige ich den Namen einer Selection
Wie genau meinst du das? Meinst du der User selektiert ein Element und du möchtest den Namen zurückgegeben haben was ausgewählt wurde? Was genau soll selektiert werden? Solange es kein BRep-Element ist sollte das kein Problem darstellen. Code: Dim oSelection As Selection Set oSelection = CATIA.ActiveDocument.Selection 'Deklariert die SelektionoSelection.Clear 'Löscht die aktuelle Selektion Dim Status As String Status = oSelection.SelectElement3(iFilterType, iMessage, iMultiSelectionMode, iTooltip)
Staus liefert den Staus der Selektion zurück, zb. "Cancel" falls die Selektion abgebrochen wurde. iFilterType legt die Typen fest, die selektiert werden können. iMessage ist eine Nachricht, die unten eingeblendet wird (zb: "Wählen sie ein Part aus") iMultiSelectionMode legt fest, wie und wieviel selektiert werden kann (siehe dazu die Dokumentation) iTooltip ist eine Nachricht, die eingeblendet wird falls der Mauszeigen über einem selektierbaren Objekt ist. Bsp: Dim ObjectType(1) 'Array mit 2 Elementen ObjectType(0) = "Line" ObjectType(1) = "Product" 'Es können in der Selektion nur Linien und Produkte angewählt werden, AnyObject für mögliche Selektion aller Objecte Code: Status = oSelection.SelectElement3(ObjectType, "Wählen sie eine Linie oder ein Product", false, CATMultiSelTriggWhenUserValidatesSelection, false)
Das "Ergebnis" der Selektion befindet sich in oSelection. Mit oSelection.Count erfährst du wieviele Objecte selectiert wurden. Mit oSelection.Item(i).Value kannst du auf die Objekte in der Selektion zugreifen und dann auch mit .Name hinten dran den Namen der Objekte herausbekommen. Viel fürs erste mal ^^ Aber du schaffst das schon Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HAW-Raptor Mitglied Design Release Engineer
Beiträge: 58 Registriert: 12.10.2009
|
erstellt am: 02. Nov. 2009 23:10 <-- editieren / zitieren --> Unities abgeben: Nur für IIYTII
Hallo, erstmal vielen Dank für diese ausführliche Hilfe nur leider hat sie mir nicht weitergeholfen. Ich suche den Namen des Catparts, welchen ich über SelectElement2 selektiert habe. Ich habe bereits in der oSelection gesucht und unter Selection>Parent>Product>Products sind ja auch alle Elemente aufgeführt. Nur wo ist der Name meines selektierten Elementes explizit aufgeführt. Und nicht alle, wie in dem oben aufgeführten Verzeichnis, weil da ja eben auch die Namen der anderen CatParts vorhanden sind Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lusilnie Mitglied
Beiträge: 1486 Registriert: 13.07.2005
|
erstellt am: 02. Nov. 2009 23:44 <-- editieren / zitieren --> Unities abgeben: Nur für IIYTII
Hallo HAW-Raptor, es wäre viel einfacher Dir zu helfen, wenn Du mal konkret sagen würdest, was Du brauchst bzw. erreichen willst. Noch besser wäre es natürlich, wenn Du Dein Problem mit dem entsprechenden Code untermalen würdest, frei nach dem Prinzip "Ein 'Bild' sagt mehr als tausend Worte!", wobei das 'Bild' hier der Code wäre. Nun zu Deinen Problemen:
1.) Zitat: Wenn ich nun zweimal so ein Part einfüge, dann heisst das eine natürlich Part.1 und das gleiche Teile Part.2
Ist dieses Problem nun gelöst oder ist dies die Frage, dass Du dies nicht willst und nicht verstehst, warum dieses Ergebnis zustande kommt? 2.) Zitat: Ich suche den Namen des Catparts, welchen ich über SelectElement2 selektiert habe.
Die Antwort hat Dir doch 'pittyplatsh' schon gegeben: oSelection.Item(i).Value.Name , wobei "i" im Fall der Selektion nur eines CATParts halt "1" ist! Natürlich bleibt hier noch die Frage, welchen Namen Du haben möchtest, da im CATIA ja für ein in ein CATProduct eingefügtes CATPart 3 Namen existieren: der Dateiname, der Instanz-Name und die PartNumber. Welchen der 3 suchst Du denn? mfg, Lusilnie
------------------ Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!! frei nach größeren Geistern Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Peter91 Mitglied
Beiträge: 39 Registriert: 12.10.2015 Catia V5-6R2014 Windows 7 VBA 7.1
|
erstellt am: 20. Okt. 2015 20:04 <-- editieren / zitieren --> Unities abgeben: Nur für IIYTII
|