Autor
|
Thema: Filter für Selektion funktionierrt nicht (1145 mal gelesen)
|
Datterich Mitglied
Beiträge: 4 Registriert: 16.01.2014 WIN 7 SP1 CATIA V5R19 SP2 Intel Pentium Dual-Core 2GHz
|
erstellt am: 06. Feb. 2014 16:42 <-- editieren / zitieren --> Unities abgeben:
Hallo V5-Gemeinde, ich möchte in meinem Makro die Auswahl eines Produktes realisieren. Wie das geht weiß ich, nur habe ich ein Problem bei der Einschränkung der Auswahl durch den Filter. Auch wenn ich den Filter für ein Produkt setzte, kann ich neben Produkten (weißes Blatt/blaues und gelbes Zahnrad) auch Parts (weißes Blatt/blaues und gelbes Zahnrad/rotes Achsensystem) auswählen. Hier mal mein Code: Code:
Dim DefSelProd(0) DefSelProd(0) = "Product" Dim UserSelProd Dim ProdName As String Set UserSelProd = CATIA.ActiveDocument.Selection UserSelProd.Clear Dim SelProdState 'As CATBSTR SelProdState = UserSelProd.SelectElement2(DefSelProd, "Produkt selektieren!", True) If SelProdState <> "Normal" Then MsgBox "Es wurde kein Produkt ausgewählt." & Chr(10) & "Das Makro wird abgebrochen.", 16, "Abbruch" Exit Sub End If ProdName = UserSelProd.Item(1).Value.Name
Habe ich den falschen Filter verwendet oder worin liegt der Fehler? Ich bin für jede Hilfe dankbar. Mfg Datterich Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jens Hansen Mitglied Senior Consult
Beiträge: 1055 Registriert: 05.08.2000 Win7 CATIA V5 R19 VB.Net C#
|
erstellt am: 07. Feb. 2014 08:27 <-- editieren / zitieren --> Unities abgeben: Nur für Datterich
|
Datterich Mitglied
Beiträge: 4 Registriert: 16.01.2014 WIN 7 SP1 CATIA V5R19 SP2 Intel Pentium Dual-Core 2GHz
|
erstellt am: 07. Feb. 2014 09:37 <-- editieren / zitieren --> Unities abgeben:
Hallo Jens, zunächst einmal vielen Dank für die Antwort. Ich habe deinen Vorschlag ausprobiert. Dabei wurde die Ausführung abgebrochen (siehe Anhang). Also gibt es den Filter "Assembly" wohl nicht. Hat noch jemand eine Idee? Mfg Datterich 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: 07. Feb. 2014 09:42 <-- editieren / zitieren --> Unities abgeben: Nur für Datterich
Servus Du könntest nach der Selektion eines "Products" prüfen ob das Parent (oder ReferenceProduct.Parent) ein "ProductDocument" ist. Falls nicht eine Meldung anzeigen und die Userselektion neu starten. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Datterich Mitglied
Beiträge: 4 Registriert: 16.01.2014 WIN 7 SP1 CATIA V5R19 SP2 Intel Pentium Dual-Core 2GHz
|
erstellt am: 07. Feb. 2014 09:57 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, danke für die Antwort. Das ist zunächst mal eine gute Idee. Somit wäre eine falsche Selektion ausgeschlossen. Trotzdem hätte ich gerne interessehalber gewusst, warum man bei dem Filter "Product" auch Parts selektieren kann und ob es für Produkte einen anderen Filter gibt. Mfg Datterich 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: 07. Feb. 2014 14:24 <-- editieren / zitieren --> Unities abgeben: Nur für Datterich
Servus Innerhalb eines Assemblies können nur Products verbaut werden. Deshalb besteht ein PartDocument aus einem Product und einem Part (siehe Doku und Watchfenster). Man kann sich da Product als Containern für verschiedene Dokumente (CATPart und CATProduct) vorstellen. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |