Technical Tip

Speichern von Eigenschaften in einer Textdatei

Manchmal ist es wichtig, dass man die Eigenschaften seiner SOLIDWORKS Konstruktion extern abspeichert. Über die Makro-Funktion haben wir die Möglichkeit, alle Eigenschaften eine SOLIDWORKS Teils, einer Baugruppe oder Zeichnung auszulesen und weiter zu verarbeiten. In diesem Technical Tip zeige ich Ihnen, wie es möglich ist, diese Eigenschaften in einer simplen Textdatei abzuspeichern.


Zuerst starten wir mit dem Grundgerüst:

Dim swApp As Object
Sub main()
Set swApp = Application.SldWorks
End Sub

Mit diesem Grundgerüst haben wir nun ein Objekt vom Typ SldWorks und können alle Funktionen verwenden, die dieses Objekt zur Verfügung stellt.

Zunächst benötigen wir das Modell. Hierführ können wir einfach das bereits geöffnete Dokument abfragen. Zusätzlich erstellen wir ein Objekt für den Manager der verschiedenen Eigenschaften - diese werden von der Standard-Konfiguration geladen. Eine andere Konfiguration kann aber als Parameter mitgegeben werden. Hierzu muss der Name der Konfiguration einfach unter CustomPropertyManager("NAME KONFIGURATION") eingegeben werden:

Dim swApp As Object
Sub main()
Set swApp = Application.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swCustPropMgr As SldWorks.CustomPropertyManager
Set swModel = swApp.ActiveDoc
Set swCustPropMgr = swModel.Extension.CustomPropertyManager("")
End Sub

Als nächstes muss abgefragt werden, welche Eigenschaften das Dokument denn überhaupt hat. Dies kamm man mit einer einfachen Funktion des Managers erledigen:

Dim names As Variant
Names = swCustPropMgr.GetNames

Nun da wir eine Liste aller Namen der Eigentschaften haben, können wir auch deren Wert abfragen. Dafür muss jeder Name separat abgefragt werden:

Dim name As Variant
Dim textexp As String
Dim evalval As String
For Each name In names
swCustPropMgr.Get2 name, textexp, evalval
Next name

In dieser Funktion definieren wir ein paar Variablen, um die einzelnen Eigenschaften und deren Werte abspeichern zu können, und wir durchlaufen jede einzelne Eigenschaft und fragen deren Wert ab. Allerdings werden diese bis jetzt noch nirgends verarbeitet. Um diese nun in einer Textdatei zu speichern, brauchen wir erst ein "FileSystemObject", und mit diesem erstellen wir eine Datei. Dazu müssen wir den Pfad der Datei als Prameter übergeben. In meinem Beispiel erstelle ich auf dem Laufwerk C:\\ eine test.txt Datei, in welche jede Eigenschaft gespeichert wird.

In der Schleife, in der alle Werte der Eigenschaften abgerufen werden, müssen wir anschliessend noch einfügen, dass jede Zeile in die Textdatei eingetragen wird. Anschliessend sieht unser Makro wie folgt aus:

Dim swApp As Object
Sub main()
Set swApp = Application.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swCustPropMgr As SldWorks.CustomPropertyManager
Dim names As Variant
Dim name As Variant
Dim textexp As String
Dim evalval As String

Set swModel = swApp.ActiveDoc
Set swCustPropMgr = swModel.Extension.CustomPropertyManager("")
names = swCustPropMgr.GetNames

Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Dim oFile As Object
Set oFile = fso.CreateTextFile("C:\\test.txt")

For Each name In names
swCustPropMgr.Get2 name, textexp, evalval
oFile.WriteLine textexp & " = " & name & " = " & evalval

Next name
oFile.Close
Set fso = Nothing
Set oFile = Nothing

End Sub

Ich hoffe, dass diese einfache Anleitung euch hilft, wenn ihr Eigenschaften aus SOLIDWORKS in eine Textdatei exportieren müsst. Viel Spass beim Ausprobieren!


Sagen Sie uns Ihre Meinung

Wie hilfreich sind diese Technical Tips für Sie im Alltag?

Haben Sie Vorschläge für einen Technical Tip?

Teilen Sie Ihre Erfahrungen mit uns: Am besten als Kommentar, hier oder auf unserer Facebook-Seite.

  • Keine Kommentare gefunden