SolidWorks MakroMania - Zeichnungsblätter nach Konfiguration benennen

SolidWorks MakroMania ist eine Beispielsammlung einiger Makros, die Ihnen eine Vorstellung davon geben soll, was man auch schon mit Makros in SolidWorks alles anstellen kann. Der Code des Makros sollte so gut dokumentiert sein, dass Sie damit ohne weitere Anleitung verstehen, was gemacht wird.

< voriges
MakroMania
Übersicht


nächstes >

Nummer 37
Zeichnungsblätter nach Konfiguration benennen

Download
ZIP, 9 KB

Diese Makro wurde als Antwort auf eine Anfrage im SolidWorks-Brett auf CAD.de erstellt, also einfach mal auf http://ww3.cad.de/foren/ubb/Forum2/HTML/012824.shtml schauen.

Ich übernehme keine Haftung für die korrekte Funktion der Routinen oder irgendwelcher Schäden bei der Anwendung dieser Beispiele. Das gesamte Risiko trägt der Benutzer selbst. - Sorry, muss sein.

' **********************************************************************
' * Makro benennt alle Blätter einer Zeichnung um, dazu wird der
' * Konfigurationsname des Modells in der Zeichenansicht genutzt, die
' * auch für die benutzerdefinierten Eigenschaften in den
' * Blatteigenschaften eingestellt ist
' *
' * 22.05.2007 Stefan Berlitz (stefan.berlitz@solidworks.cad.de)
' * http://solidworks.cad.de
' * http://swtools.cad.de
' *
' **********************************************************************

Dim swApp As Object
Dim DrawingDoc As Object
Dim Sheet As Object
Dim Viewname As String
Dim View As Object
Dim ConfigName As String

Dim i As Long
Dim AnzahlBl As Long
Dim SheetNames As Variant

' Konstante aus swconst.bas
Const swDocDRAWING = 3

Sub main()

    ' an SolidWorks anhängen
    Set swApp = CreateObject("SldWorks.Application")

    ' prüfen, ob überhaupt ein Dokument offen ist ...
    Set DrawingDoc = swApp.ActiveDoc
    If DrawingDoc Is Nothing Then
        MsgBox "Kein Dokument offen"
        Exit Sub
    End If
    ' ... und ob das auch eine Zeichnung ist
    If (DrawingDoc.GetType <> swDocDRAWING) Then
        MsgBox "Nur für Zeichnungen sinnvoll"
        Exit Sub
    End If

    ' einen Loop über alle Blätter, dazu die Anzahl der Blätter holen,
    ' und dann in der Schleife eines nach dem anderen abklappern
    AnzahlBl = DrawingDoc.GetSheetCount
    SheetNames = DrawingDoc.GetSheetNames

    For i = 0 To AnzahlBl - 1
        ' das nächste Blatt aktivieren
        If DrawingDoc.ActivateSheet(SheetNames(i)) Then
            ' aktuelles Blatt holen
            Set Sheet = DrawingDoc.GetCurrentSheet

            ' Namen zurücksetzen
            ConfigName = "???"

            ' den Viewnamen aus den Blatteigenschaften auslesen
            Viewname = Sheet.CustomPropertyView
            ' dann den passenden View suchen,d er erste View ist immer das Blatt selbst
            Set View = DrawingDoc.GetFirstView
            ' wenn der Viewname "Standard" ist wird der erste View genommen
            If Viewname = "Standard" Then
                ' also die Konfig aus dem Modell des ersten Views holen
                Set View = View.GetNextView
                ConfigName = View.ReferencedConfiguration
            Else
                ' ansonsten die View suchen, deren Namen angegeben ist
                While Not View Is Nothing
                    If View.GetName2 = Viewname Then
                        ConfigName = View.ReferencedConfiguration
                    End If
                    Set View = View.GetNextView
                Wend
            End If

            ' So, jetzt haben wir den Namen der Konfiguration, die jetzt in
            ' den Blattnamen eintragen
            ' eigentlich müsste hier noch geprüft werden, ob es schon ein Blatt
            ' mit diesem Namen gibt, denn sonst klappt das Umbenennen nicht
            Sheet.SetName (ConfigName)

        End If
    Next i

End Sub

Zurück zum Seitenanfang

hr.gif (4491 Byte)

counter Kritik und Anregungen bitte an Stefan Berlitz. Letzte Änderung dieser Seite am Freitag, 07. September 2007 18:26