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 35 Dateieigenschaften erzeugen |
Diese Makro wurde als Antwort auf eine Anfrage im SolidWorks-Brett auf CAD.de erstellt, dort gibt es auch noch andere Lösungen und Diskussionen dazu. Also einfach mal auf http://ww3.cad.de/foren/ubb/Forum2/HTML/011498.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 erzeugt Dateieigenschaften mit Dummywert. Sinnvoll um schnell
' bestimmte vorgegebene Dateieigenschaften an Dokumente zu bekommen.
' Wenn konfigurationsspezifische Werte eingetragen werden sollen den
' Parameter "AllConfigs" auf 1 setzen.
'
' ACHTUNG:
' * ggf. vorhandene Attribute werden NICHT überschrieben
' * alle Dateieigenschaften werden als Typ Text angelegt
'
' 17.11.2006 Stefan Berlitz
' Stefan.Berlitz@solidworks.cad.de
' http://solidworks.cad.de
' http://swtools.cad.de
' **********************************************************************
' diese folgenden Werte können editiert werden
'
' AllConfigs steuert, ob das Dokument die Dateieigenschaften als konfigurations
' spezifische Eigenschaften erstellt oder auf Dateiebene
Const AllConfigs = 1
'
' unten noch die Properties eintragen!
'
' NICHT MEHR AB HIER EDITIEREN, es sei denn Sie wissen was sie tun ;-)
' **********************************************************************
' Definitions of typenames are consistent as in swconst.bas
Option Explicit
Const swDocPART = 1
Const swDocASSEMBLY = 2
Const swDocDRAWING = 3
Public Enum swCustomInfoType_e
swCustomInfoUnknown = 0
swCustomInfoText = 30 ' VT_LPSTR
swCustomInfoDate = 64 ' VT_FILETIME
swCustomInfoNumber = 3 ' VT_I4
swCustomInfoYesOrNo = 11 ' VT_BOOL
End Enum
Sub Main()
Dim swApp As Object
Dim ModelDoc As Object
Dim ConfigCount As Long
Dim ConfigNames As Variant
Dim PropConfigs As New Collection
Dim PropNames As New Collection
Dim Prop As Variant
Dim Config As Variant
Dim PropType As Long
Dim PropText As String
Dim i As Long
Set swApp = CreateObject("SldWorks.Application")
Set ModelDoc = swApp.ActiveDoc
If ModelDoc Is Nothing Then
' Call MsgBox("Keine Datei geöffnet", vbOKOnly, "Information")
Exit Sub
End If
'
' **********************************************************************
' diese folgenden Werte können editiert werden, hier einfach die Namen
' der Dateieigenschaften reinschreiben/ergänzen/Löschen ;)
'
' die gewünschten Properties mal sammeln, ggf. einfach erweitern
PropNames.Add "Abendessen"
PropNames.Add "Einen-fuer-Mama"
PropNames.Add "Einen-fuer-Papa"
PropNames.Add "und-einen"
PropNames.Add "fuer-die-liebe-Oma"
' jetzt besser nicht mehr editieren ;)
' **********************************************************************
' alle Dateieigenschaften aus der Konfiguration holen
ConfigCount = ModelDoc.GetConfigurationCount
ConfigNames = ModelDoc.GetConfigurationNames
' dann die Coolection vorbereiten mit den Namen der Konfigs bzw. "" wenn auf Datei
If AllConfigs = 0 Then
PropConfigs.Add ""
Else
For i = 0 To ConfigCount - 1
PropConfigs.Add ConfigNames(i)
Next i
End If
For Each Config In PropConfigs
For Each Prop In PropNames
' als Dateieigenschaft wieder einsetzen, Dummywert "bitte ausfüllen" eintragen
' und neu hinzufügen; falls schon vorhanden passiert nix
Debug.Print ModelDoc.AddCustomInfo3(Config, Prop, swCustomInfoText, "bitte ausfüllen")
Next
Next
End Sub
Kritik und Anregungen bitte an Stefan Berlitz. Letzte Änderung dieser Seite am Mittwoch, 11. Juli 2007 18:09 |