Autor
|
Thema: Item auslesen (1292 mal gelesen)
|
IIYTII Mitglied
Beiträge: 85 Registriert: 30.05.2007 Catia V5 R19 Programmierung unter CATvba
|
erstellt am: 19. Nov. 2009 09:20 <-- editieren / zitieren --> Unities abgeben:
Hi, bin mal wieder bei meinen Selections.... Ich klicke auf ein Part im Product und dann brauche ich den command um als ergebnis "ItemX" zu bekommen. Wie lautet der? sel.name liefert mir nur "Catia Selection + fortlaufende Zahl" In der Dokumentation habe ich auch mal geschaut, jedoch gab es dort keinen Eintrag unter selection. Gibt es da eine extra Rubrik für Makroprogrammierung? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
em Michael Kirsch Mitglied Teamleiter KBE Methoden & Tools
Beiträge: 222 Registriert: 21.10.2002 CATIA V5 R16 CATIA V5 R18 CATIA V5 R19 NX 5 NX 6 NX 7.5
|
erstellt am: 19. Nov. 2009 09:35 <-- 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: 19. Nov. 2009 09:55 <-- editieren / zitieren --> Unities abgeben:
Sub CATMain() Dim produkt As Product Set produkt = CATIA.ActiveDocument.Product Dim filter(0) filter(0) = "AnyObject" Dim b As SelectedElement Dim sel Dim usersel Set usersel = CATIA.ActiveDocument.Selection sel = usersel.SelectElement2(filter, "Bitte Teil selektieren", False) Set b = CATIA.ActiveDocument.Selection.Item(1) MsgBox (b.Value) End Sub wo ist mein fehler?
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: 19. Nov. 2009 10:49 <-- 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: 19. Nov. 2009 12:27 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 19. Nov. 2009 13:27 <-- editieren / zitieren --> Unities abgeben: Nur für IIYTII
Servus Un was soll in deinem Beispielscript angezeigt werden? Ich vermute du meinst es so (ungetestet) Set Part = CATIA.ActiveDocument.Selection.Item(1).Value MsgBox (Part.Name)
Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. 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: 19. Nov. 2009 13:40 <-- editieren / zitieren --> Unities abgeben:
mein Beispielsscript soll die Anforderung erfüllen, die ich ganz oben genannt habe und das wäre in diesem Fall mir das ItemX auszulesen, welches das Part bekleidet. Mein Beispielscript kann das nicht und ich möchte es gerne so umschreiben, dass es das kann. Mir fehlt leider ein benutzerfreundliches Kompendium. Die Dokumentation ist absolut nicht Anfängerfreundlich. Die Stichwortsuche ein Witz. 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: 19. Nov. 2009 18:57 <-- editieren / zitieren --> Unities abgeben: Nur für IIYTII
Code: Sub CATMain()Dim produkt As Product Set produkt = CATIA.ActiveDocument.Product Dim filter(0) filter(0) = "AnyObject" Dim b As Object Dim sel As String Dim usersel As Selection Set usersel = CATIA.ActiveDocument.Selection sel = usersel.SelectElement2(filter, "Bitte Teil selektieren", False) If sel = "Normal" Then 'Selektion war erfolgreich, "Cancel" zb bei Abbruch ... Set b = usersel.Item(1).Value 'um zum selektieren Objekt zu gelangen MsgBox(b.Name) 'Gibt den Namen des Objektes aus End If End Sub
Das SelectedElement ist ein Objekt, welches innerhalb der Selection die Referenz (den Link) zu den selektieren Objekten hält. Es ist also nicht selber das Objekt sondern "sagt" dir nur wo sich das "richtige" befindet. Selection.Item().Value gibt dir dann das Objekt zurück, quasi den Wert des SelectedObject's. Edit: Ist damit auch deine Anforderung an das "ItemX" erfüllt? Bin mir leider nicht so sicher was du damit meinst und es hilft auch nicht sich selber Namen für Dinge auszudenken. Willst du den Namen (PartNumber), den InstanzNamen (Name), den vollständigen Namen mit Pfad falls gespeichert (FullName), die "Positions-Nummer" innerhalb des Produktes oder was auch immer? Liebe Grüße, pitty [Diese Nachricht wurde von pittyplatsh am 19. Nov. 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: 20. Nov. 2009 08:27 <-- editieren / zitieren --> Unities abgeben:
Zitat: Ist damit auch deine Anforderung an das "ItemX" erfüllt? Bin mir leider nicht so sicher was du damit meinst und es hilft auch nicht sich selber Namen für Dinge auszudenken. Willst du den Namen (PartNumber), den InstanzNamen (Name), den vollständigen Namen mit Pfad falls gespeichert (FullName), die "Positions-Nummer" innerhalb des Produktes oder was auch immer?
Ich bedanke mich für die Antwort, ist jetzt nicht böse gemeint aber du benennst ja auch die "Positions-Nummer" als eine solche. Ich kannte den "Namen" dafür leider nicht, daher habe ich mich auf ItemX festgelegt.. gebe zu, dass es sicherlich ein wenig unglücklich gewählt war, jedoch zwingt mich mein Halbwissen leider oft dazu mir "lustige Namen" auszudenken. Klicke ich das X-te Element im Product an, dann wollte ich als Ergebnis auch gerne Item(X) bekommen. So wars eigentlich gemeint. Hat sich aber erledigt, weil wir im anderen Thread ja diskutiert haben, dass es auch durchaus ohne auslesen der "Positions-Nummer" geht. danke! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |