SolidWorks MakroMania - Alle offenen Dateien speichern

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 13
Alle offenen Dateien speichern

Download
ZIP, 2 KB

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.

Manchmal ist es wünschenswert, alle geöffneten Dateien in SolidWorks mit einem Durchgang speichern zu können (z.B. vor dem "Testen" absturzträchtiger Funktionen). Wenn man nur eine Baugruppe offen hat, ist das einfach, aber bei vielen geöffneten Parts, Baugruppen und Zeichnungen kann das ganz schön in Klickerei ausarten. Dazu dient dieses Makro.

' **********************************************************************
' * Makro speichert alle offenen Dateien im laufenden SolidWorks
' * Einschränkung:
' * Dokumente, die noch nie gespeichert wurden, werden auch
' * mit diesem Makro nicht gespeichert
' *
' * 15.02.2002 Stefan Berlitz (stefan.berlitz@solidworks.cad.de)
' * http://solidworks.cad.de
' * http://swtools.cad.de
' *
' **********************************************************************

Dim SldWorks As Object
Dim ModelDoc As Object

Dim status As String
Dim errors As String
' ein paar Zähler
Dim iSaved As Long
Dim iNotSaved As Long
Dim iClean As Long

Dim retval As Long

Sub main()

    ' an SolidWorks anklinken
    Set SldWorks = CreateObject("SldWorks.Application")
    Set ModelDoc = SldWorks.ActiveDoc

    ' durch alle offenen Dokumente gehen
    Set ModelDoc = SldWorks.GetFirstDocument

    While Not ModelDoc Is Nothing

        ' das "dirty flag" abchecken, dies wird auch von SolidWorks selbst
        ' benutzt, um die "Wollen Sie die Datei speicjern" Dialogbox aufzurufen
        If ModelDoc.GetSaveFlag Then
            ' speichern unter dem Originalnamen; wenn dieses Dokument noch nie
            ' gespeichert war den Benutzer anschließend informieren, ich bin zu
            ' faul, den Speichern als Dialog mit abzubilden :-))
            If Len(ModelDoc.GetPathName) > 0 Then
                retval = ModelDoc.Save2(True)
                If retval = 0 Then
                    ' add one to saved documents
                    ' ein gespeichertes Dokument mehr
                    iSaved = iSaved + 1
                Else
                    ' OOOPS, ein Fehler beim speichern passiert
                    errors = errors & " FEHLER beim speichern: " & ModelDoc.GetTitle & _
                             " bitte prüfen" & vbCrLf
                    iNotSaved = iNotSaved + 1
                End If
            Else
                ' Warnung, wenn Dokument noch nie gespeichert wurde
                errors = errors & " WARNUNG" & ModelDoc.GetTitle & _
                         " wurde noch nie gespeichert, bitte prüfen" & vbCrLf
                iNotSaved = iNotSaved + 1
            End If
        Else
            ' Dokument brauchte nicht gespeichert werden
            iClean = iClean + 1
        End If
        ' und das nächste Dokument
        Set ModelDoc = ModelDoc.GetNext
    Wend

    ' und eine Zusammenfassung ausgeben
    status = iClean & " unveränderte Dokumente (brauchten nicht gespeichert werden)" & vbCrLf
    status = status & iSaved & " gespeicherte Dokumente" & vbCrLf
    status = status & iNotSaved & " NICHT gespeicherte Dokumente (siehe unten)" & vbCrLf
    status = status & errors
    MsgBox status

End Sub

Zurück zum Seitenanfang

hr.gif (4491 Byte)

counter Kritik und Anregungen bitte an Stefan Berlitz. Letzte Änderung dieser Seite am Donnerstag, 01. Februar 2007 17:40