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 |
Nummer 13 Alle offenen Dateien speichern |
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
Kritik und Anregungen bitte an Stefan Berlitz. Letzte Änderung dieser Seite am Donnerstag, 01. Februar 2007 17:40 |