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 37 Zeichnungsblätter nach Konfiguration benennen |
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
Kritik und Anregungen bitte an Stefan Berlitz. Letzte Änderung dieser Seite am Freitag, 07. September 2007 18:26 |