| |
 | CATIA V5 Grundkurs | Einsteiger - 5 Std. 15 Min 48 |
| |
 | KISTERS 3DViewStation: Schutz sensibler 3D CAD Daten, egal von wo Sie arbeiten, eine Pressemitteilung
|
Autor
|
Thema: Teile performant ausblenden (1347 mal gelesen)
|
Antelito Mitglied

 Beiträge: 88 Registriert: 27.11.2013 CATIA R24 WIN 10 x64
|
erstellt am: 19. Nov. 2015 10:51 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich habe in einem Product verschiedene Bauteile. 3 Bauteile möchte ich sehen, den Rest möchte ich ausblenden (Hide). Wie das geht ist mir klar (über VisPropertySet), allerdings möchte ich ein makro schreiben, was alle anderen ausblendet und dabei auch noch performant (also schnell) arbeitet. Mein erster schuss war, dass ich alle elemente selektiert habe und dann über eine Namensprüfung alle "ungewünschten" Bauteile in den NoShow-Modus setze. Allerdings dauert die Selektion viel zu lange. Darüber hinaus habe ich ein Problem mit der Suche: Folgendes funktioniert: (z.B. nach dem Bauteil "Feder" suchen)
Code: selection.Search "Name=Feder,all"
Dies hat allerdings den Nachteil, dass ich die Suche nicht in eine Schleife einbauen kann. Folgendes funktioniert NICHT (Fehler: typen unverträglich, warum auch immer???, Feld1 ist Array vom Typ String)
Code: For i = 0 To UBound(Feld1) Suchstring = "Name=" & Feld1(i) & ",all" selection.Clear selection.Search Suchstring Next
Ich habe über die Forensuche einige Beiträge gefunden, in denen die CATIA-Suche nochmals eingegrenzt wurde. So ganz verstanden habe ich es allerdings noch nicht, weil das beispiel natürlich nicht auf mein Problem anwendbar ist. Wenn jemand eine Dokumentation der Suche verlinken könnte (z.B. Internetseite, etc) oder gar sich die Mühe machen möchte, es hier zu erklären, wäre ich sehr dankbar. Wichtig ist allerdings, dass die Suche performant verläuft, da das Product doch ziemlich groß ist. Vielen Dank im Vorraus [Diese Nachricht wurde von Antelito am 19. Nov. 2015 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 19. Nov. 2015 11:07 <-- editieren / zitieren --> Unities abgeben:          Nur für Antelito
Servus Schau dir mal die Suche (Strg+F) genauer an. Dort kannst du die Kriterien weiter einschränke (lässt sich dann auch gut mit dem Makrorekorder aufzeichnen). Beispiel für einen besseren Suchstring Code: "CATAsmSearch.Product.Name!=Feder*,all"
Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Antelito Mitglied

 Beiträge: 88 Registriert: 27.11.2013 CATIA R24 WIN 10 x64
|
erstellt am: 19. Nov. 2015 12:42 <-- editieren / zitieren --> Unities abgeben:         
Hallo, vielen Dank erstmal... Die Idee mit dem Makro Rekorder funktioniert ganz gut, bis auf ein Problemchen: ich verstehe es immernoch nicht... Ich kann höchstens Copy/Paste machen, mehr aber nicht. Gibt es vielleicht irgendwo eine Dokumentation dazu? Code: selection1.Search "(Name=*1723564 & ((((((CATProductSearch.Part + CATStFreeStyleSearch.PartFeature) + CATAsmSearch.Part) + CATPrtSearch.PartFeature) + CATGmoSearch.PartFeature) + CATSpdSearch.PartFeature) + CATPcsSearch.Part)),all"
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Antelito Mitglied

 Beiträge: 88 Registriert: 27.11.2013 CATIA R24 WIN 10 x64
|
erstellt am: 20. Nov. 2015 12:55 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen, ich bin mittlerweile etwas weiter gekommen. Aber nun habe ich das nächste merkwürdige Problem: Code:
objselection.Clear Suchstring = "Name='*" & Geo1 & "*',all" objselection.Search Suchstring objselection.Delete Suchstring = "Name='*" & Geo2 & "*',all" objselection.Search Suchstring objselection.Delete
Diesen Code-Schnipsel habe ich 3 Mal in meinem Makro eingesetzt. Es selektiert Teile in der Struktur und löscht diese raus. Das merkwürdige ist, dass es beim ersten durchlauf funktioniert. Beim zweiten gibt er mir die Fehlermeldung: "Typen unverträglich"... Dabei ist es irrelevant, welches Teil es ist. Es steigt immer erst beim zweiten durchlauf aus Weiss jemand wieso das so ist? Danke! [Diese Nachricht wurde von Antelito am 20. Nov. 2015 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 20. Nov. 2015 13:06 <-- editieren / zitieren --> Unities abgeben:          Nur für Antelito
Servus Willst du den Filter nicht weiter einschränken? (ggf wird zu viel selektiert) Wird beim 2. Durchlauf was selektiert? (Counter der Selektion auswerten) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Antelito Mitglied

 Beiträge: 88 Registriert: 27.11.2013 CATIA R24 WIN 10 x64
|
erstellt am: 20. Nov. 2015 13:40 <-- editieren / zitieren --> Unities abgeben:         
Hallo, es könnte tatsächlich sein, dass zuviel selektiert wird. Beim Nachschauen habe ich festgestellt, dass nicht nur das Teil selektiert wird, sondern auch noch eins seiner unterelemente (siehe Screenshot) Vielleicht kannst du mir helfen, den suchfilter aufzubauen? wie genau schränke ich die Suche ein, dass nur das oberste Element selektiert wird? Danke! [Diese Nachricht wurde von Antelito am 20. Nov. 2015 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Antelito Mitglied

 Beiträge: 88 Registriert: 27.11.2013 CATIA R24 WIN 10 x64
|
erstellt am: 20. Nov. 2015 13:54 <-- editieren / zitieren --> Unities abgeben:         
Hallo, danke für den Tipp mit der Mehrfachselektion. Der Makro-Recorder spuckte auch den gesuchten Suchstring heraus: Code: selection1.Clear Suchstring = "(Name=*" & Geo1 & "*& CATAsmSearch.Product),all" selection1.Search Suchstring selection1.Delete selection1.Clear Suchstring = "(Name=*" & Geo2 & "*& CATAsmSearch.Product),all" selection1.Search Suchstring
Fall gelöst (hoffe ich) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |