SolidWorks MakroMania - Alle Dateieigenschaften listen

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 14
Alle Dateieigenschaften listen

Download
ZIP, 10 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.

Ein Beispiel, wie alle Dateieigenschaften für ein beliebiges SolidWorksdokument aufgelistet und deren Wert ausgegeben werden kann. Dies geschieht sowohl für die globalen als auch konfigurationsspezifischen Eigenschaften. Starten erfolgt wie üblich in der Main-Prozedur, die ruft dann einfach nur die Userform auf.

 

' **********************************************************************
' * Makro listet alle globalen und anschließend alle konfigurations-
' * spezifischen Dateieigenschaften mit deren Werten in einer Listbox
' *
' * 28.03.2002 Stefan Berlitz (stefan.berlitz@solidworks.cad.de)
' * http://solidworks.cad.de
' * http://swtools.cad.de
' *
' **********************************************************************

Sub main()
    ' alle Funktionen und Aufrufe in der Userform
    UserForm.Show

End Sub

In der Userform gibt es das Textfeld und zwei Befehlsschaltflächen:

' Formbezogene Variablen gelten in allen Routinen dieser Form
Dim swApp As Object
Dim ModelDoc As Object

Private Sub cmdExit_Click()
    End
End Sub

Private Sub cmdReadPropertyList_Click()

    Dim message As String
    Dim Anzahl As Long
    Dim Namen As Variant
    Dim ConfName As String
    Dim i As Long

    Set swApp = CreateObject("SldWorks.Application")

    ' Zeiger auf aktives Dokument holen und überprüfen,
    ' ob überhaupt eins aktiv ist
    Set ModelDoc = swApp.ActiveDoc
    If ModelDoc Is Nothing Then
        MsgBox ("Kein Modell geöffnet")
        End
    End If

    ' zuerst alle nicht Konfigurationsspezifischen
    ' Dateieigenschaften auslesen, dazu die Subroutine
    ' aufrufen und als Konfigurationsname "" mitgeben
    message = "Globale Dateieigeschaften sind:" & vbCrLf
    message = message & ReadAllFileProperties("") & vbCrLf
    message = message & vbCrLf


    ' dann alle Konfigurationen auslesen
    ' dazu die Anzahl der Konfigurationen holen
    Anzahl = ModelDoc.GetConfigurationCount
    ' die Namen der Konfigurationen holen
    Namen = ModelDoc.GetConfigurationNames

    If Anzahl > 0 Then
        message = message & "Konfigurationsspezifische Dateieigeschaften sind:" & vbCrLf

        For i = 0 To Anzahl - 1
            ConfName = Namen(i)
            message = message + "Konfiguration " & Str(i) & ": " & ConfName & vbCrLf
            message = message + ReadAllFileProperties(ConfName)
            message = message & vbCrLf
        Next
    Else
        message = message & "keine Konfigurationen vorhanden" & vbCrLf
    End If

    ' und noch allen Text sichtbar machen
    txtAusgabe.Text = message
    txtAusgabe.SelStart = 0
    txtAusgabe.SetFocus
End Sub

Function ReadAllFileProperties(ConfName As String) As String

    Dim Anzahl As Long
    Dim Namen As Variant
    Dim i As Long
    Dim erg As String

    ' das ModelDoc Object ist modulglobal deklariert und deswegen
    ' auch hier verwendbar. Der Name der Konfiguration (oder "" für
    ' die Datei) wird übergeben
    Anzahl = ModelDoc.GetCustomInfoCount2(ConfName)
    Namen = ModelDoc.GetCustomInfoNames2(ConfName)

    For i = 0 To Anzahl - 1
        ' erst den Namen der Eigenschaft
        erg = erg & Namen(i)
        ' und dann den Inhalt
        erg = erg & " (Wert:" & ModelDoc.CustomInfo2(ConfName, Namen(i)) & ")"
        ' und noch einen Zeilenumbruch
        erg = erg & vbCrLf
    Next i

    ReadAllFileProperties = erg

End Function

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