Autor
|
Thema: Verdecken/Anzeigen auf einen bestimmten Koerper anwenden (2169 mal gelesen)
|
Norman Schulz Mitglied Konstrukteur Catia V4/V5
Beiträge: 300 Registriert: 18.03.2002 V5R19SP9 // V5R20SP7 //V5R24SP5 Lizenz MD2 Lenovo ThinkPad W540 WIN 7 64bit 16GB Intel i7-4800MQ 2.7GHz
|
erstellt am: 17. Jan. 2011 08:39 <-- editieren / zitieren --> Unities abgeben:
Hallo! Ich hoffe Ihr koennt mir weiterhelfen. Ich moechte einen Koerper mit Namen X ( in allen Parts immer gleich) ueber die F7 Taste innerhalb des PartDesign mal verdecken, mal anzeigen. Ich habe mir ein Makro mitschreiben lassen, jedoch habe ich hier das Problem das immer nur ein Zustand (z.b anzeigen) abgebildet wird. Kann man dies aendern, dass es mit ein und der selben Taste wie beim Verdecken/Anzeigen funktioniert? Vielen Dank fuer jeden Hinweis. Gruss Norman ------------------ WTL Engineering GmbH n.schulz@wtl-group.de http://www.wtl-group.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian.O Mitglied Konstrukteur
Beiträge: 1212 Registriert: 17.07.2009
|
erstellt am: 17. Jan. 2011 09:21 <-- editieren / zitieren --> Unities abgeben: Nur für Norman Schulz
Servus, anbei das Makro als Textfile. Erstellt wurde das Makro mit VBA. Du kannst das Makro jetzt auch innerhalb eines Products anwenden. Bei dem Script dass du erhalten hast wurde kein Vergleich zwischen Hide und Show gemacht. Da gab es eben nur einen Zustand. Edit: Text im Makro geändert ------------------ Mit freundlichen Grüßen aus Tirol Christian Obholzer [Diese Nachricht wurde von Christian.O am 17. Jan. 2011 editiert.] 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. Jan. 2011 09:23 <-- editieren / zitieren --> Unities abgeben: Nur für Norman Schulz
Servus Versuch es mal so: Code: Language="CATScript"Sub CATMain() If CATIA.Windows.Count = 0 Then Exit Sub End If Set PartDocument = CATIA.ActiveDocument If TypeName(PartDocument) <> "PartDocument" Then Exit Sub End If Dim oSel As Selection Set oSel = PartDocument.Selection 'Suche starten oSel.Search "(Name=RESULT & CATPrtSearch.BodyFeature),all" If oSel.Count = 0 Then Exit Sub End If Set VisProterty = oSel.VisProperties VisProterty.GetShow Status If Status = 1 Then oSel.VisProperties.SetShow 0 Else oSel.VisProperties.SetShow 1 End If oSel.Clear End Sub
Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Starbirth Mitglied Konstrukteur
Beiträge: 119 Registriert: 22.10.2009
|
erstellt am: 17. Jan. 2011 09:27 <-- editieren / zitieren --> Unities abgeben: Nur für Norman Schulz
Hallo Norman, über die "GetShow" Methode von VisProperties kannst du den aktuellen Status abfragen. Dazu hier das kleine Beispiel aus der V5Automation.chm
Code: Dim showstate As CatVisPropertyShow Set visProperties1 = CATIA.ActiveDocument.Selection.VisProperties visProperties1.GetShow showstate MsgBox "show = " & showstate
Später kannst du dann entweder über eine If Abfrage den entsprechenden Befehl (Anzeigen/Verdecken) absetzen. Alternativ dürfte es auch funktionieren, nachdem der entsprechende Körper in der Selektion steckt, über CATIA.StartCommand einfach "Hide/Show" auszuführen. Allerdings machst du dich so abhängig von der eingestellten Umgebungssprache, weshalb ich den oberen Weg bevorzugen würde. EDIT: Tja, die anderen waren wohl schneller [Diese Nachricht wurde von Starbirth am 17. Jan. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Norman Schulz Mitglied Konstrukteur Catia V4/V5
Beiträge: 300 Registriert: 18.03.2002 V5R19SP9 // V5R20SP7 //V5R24SP5 Lizenz MD2 Lenovo ThinkPad W540 WIN 7 64bit 16GB Intel i7-4800MQ 2.7GHz
|
erstellt am: 17. Jan. 2011 09:44 <-- editieren / zitieren --> Unities abgeben:
Hallo! Vielen Dank fuer die schnellen Antworten. @Christian.O: momentan bekomme ich noch folgende Meldung: Fehlernummer 438. Object doesn´t support this property or method Fehlt mir da eventuell irgendeine Lizenz? @bgrittmann: laeuft @starbirth Danke fuer die Info Also, nochmal Dank an Euch alle fuer die schnelle Hilfe. Ich werde jetzt mal ein bischen tueffteln und mich nochmal melden. Gruss Norman ------------------ WTL Engineering GmbH n.schulz@wtl-group.de http://www.wtl-group.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |