SolidWorks MakroMania - Dateieigenschaften erzeugen

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 35
Dateieigenschaften erzeugen

Download
ZIP, 11 KB

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

Zurück zum Seitenanfang

hr.gif (4491 Byte)

counter Kritik und Anregungen bitte an Stefan Berlitz. Letzte Änderung dieser Seite am Mittwoch, 11. Juli 2007 18:09