Autor
|
Thema: Selektion ändern mittels Makro (1018 mal gelesen)
|
Butterhirsch Mitglied
Beiträge: 6 Registriert: 16.02.2017 HP Elitebook G3 840 Intel i5-6300U @ 2,4 GHz 8 GB RAM CATIA V5 R25
|
erstellt am: 17. Feb. 2017 08:27 <-- editieren / zitieren --> Unities abgeben:
Hallo miteinander! Ich habe eine Frage zum Thema Selektion mittels Makro. Als erstes wurden alle Dimensions auf einem Sheet ausgewählt, nun nun möchte ich alle Maße, welche in einer Klammer stehen, aus der Zeichnung entfernen, da ich sie nicht weiter benötige. Mein Code sieht bisher so aus: Code: Sub CATMain() Set drawingDocument1 = CATIA.ActiveDocument Set selection1 = drawingDocument1.Selection selection1.Search "CATDrwSearch.DrwDimension,all" For i = 1 To selection1.Count Set Maß = selection1.Item(i).Value Set MaßWerte = Maß.GetValue MaßWerte.GetBaultText intIndexZahl, intVorne, intHinten, intOben, intUnten If intVorne = "(" Then 'Das betreffende Element aus der Selektion löschen End if Next End Sub
Ich habe es schon mit Selection1.Remove versucht, .delete löscht logischerweise die gesamte Selektion... Vielleicht findet sich ja jemand, der mir helfen kann. Danke vorab LG 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: 17. Feb. 2017 09:12 <-- editieren / zitieren --> Unities abgeben: Nur für Butterhirsch
Servus Willkommen im Forum. Bitte Systeminfo ergänzen. Der Ablauf ist: - Selektion von hinten nach vorne abarbeiten (damit sich der Index nicht verändert) - falls das Maß keine Klammer hat dieses aus der Selektion entfernen - am Schluss die Selektion löschen Code: Sub CATMain() Set drawingDocument1 = CATIA.ActiveDocument Set selection1 = drawingDocument1.Selection selection1.Search "CATDrwSearch.DrwDimension,all" For i = selection1.Count to 1 Step -1 Set Mass = selection1.Item(i).Value Set MassWerte = Mass.GetValue MassWerte.GetBaultText 1, intVorne, intHinten, intOben, intUnten If intVorne <> "(" Then selection1.Remove(i) 'ggf auch ohne Klammer End if Next selection1.Delete End Sub
Gruß Bernd EDIT: Korrekturen im Code: keine Sonderzeichen in Variablennamen (ß), bei GetBaultText den Index für den Hauptwert ergänzt ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Butterhirsch Mitglied
Beiträge: 6 Registriert: 16.02.2017 HP Elitebook G3 840 Intel i5-6300U @ 2,4 GHz 8 GB RAM CATIA V5 R25
|
erstellt am: 17. Feb. 2017 09:49 <-- editieren / zitieren --> Unities abgeben:
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|