' Makro: Change_Color ' Version: 1.0 ' Catia Level: V5R19 ' UIL: English (User Interface Language) ' Autor: Christian Obholzer ' E-Mail: ch.obholzer@aon.at ' Erstellt: 21.04.2011 ' Zweck: Es wird das ausgewählte Product oder Part eingefärbt '----------------------------------------------------------------------------------- ' Änderungen: Datum, Name ' Hier wird die Änderung angegeben ' Datum, Name ' Hier wird die Änderung angegeben '----------------------------------------------------------------------------------- Option Explicit Sub CATMain() '***Deklarationen Dim objWindows As Windows Dim objDoc As Document Dim strTyp As String Dim objSel As Object Dim strSel As String Dim strSearchFilter(0) '***Fehlerroutine einschalten On Error GoTo Fehler '***Abfrage nach geöffnetem Dokument Set objWindows = CATIA.Windows If objWindows.Count = 0 Then MsgBox "Es ist kein Dokument geöffnet." & vbNewLine & _ "Das Makro kann nicht ausgeführt werden und wird beendet.", vbCritical + vbOKOnly, "Kein Dokument offen" Exit Sub End If '***Auslesen der Dokumentart Set objDoc = CATIA.ActiveDocument strTyp = TypeName(objDoc) If strTyp <> "ProductDocument" Then MsgBox "Dieses Dokument ist kein Product." & vbNewLine & _ "Das Makro kann nicht ausgeführt werden und wird beendet.", vbCritical + vbOKOnly, "Falscher Dokumententyp" Exit Sub End If Set objSel = objDoc.Selection '***Vorselektion löschen um das Ergebnis nicht zu verfälschen objSel.Clear '***Element selektieren strSearchFilter(0) = "Product" strSel = objSel.SelectElement2(strSearchFilter, "Wählen Sie ein Product oder Part aus // ESC-Taste zum Abbrechen der Selektion", False) '***Auswertung der Selektion If strSel = "Normal" Then '***Element einfärben objSel.VisProperties.SetRealColor 0, 0, 0, 1 Else MsgBox "Abbruch der Selektion durch den User." & vbNewLine & _ "Das Makro wird beendet.", vbExclamation + vbOKOnly, "Abbruch der Selektion" objSel.Clear Exit Sub End If '***Meldung an User MsgBox "Makro wurde erfolgreich beendet.", vbInformation + vbOKOnly, "Makro erfolgreich beendet" Exit Sub '***Fehlerbehandlung: Ausgabe der Fehlernummer und Fehlerbeschreibung Fehler: MsgBox "Fehlernummer: " & Err.Number & vbNewLine & _ "Fehlerbeschreibung: " & Err.Description, vbCritical + vbOKOnly, "Fehler" End Sub