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 14 Alle Dateieigenschaften listen |
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.
' ********************************************************************** |
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
Kritik und Anregungen bitte an Stefan Berlitz. Letzte Änderung dieser Seite am Donnerstag, 01. Februar 2007 17:40 |