Code:
Option ExplicitDim swApp As SldWorks.SldWorks
Dim swModel As ModelDoc2
Dim swModelDocExt As ModelDocExtension
Dim swCustProp As CustomPropertyManager
Dim sDocTitel As String
Dim vConfigNames As Variant
Dim sPorpValBauteilnummer As String
Dim valout As String
Dim boolstatus As Boolean
Dim longstatus As Long
Dim i As Integer
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swModelDocExt = swModel.Extension
'Dokumentnamen ermitteln und Endung entfernen
sDocTitel = swModel.GetTitle
sDocTitel = Replace(sDocTitel, ".SLDPRT", "")
'Konfigurationsnamen ermitteln
vConfigNames = swModel.GetConfigurationNames()
'Bauteilnummer aus Benutzerdefinierten Eigenschaften auslesen
Set swCustProp = swModelDocExt.CustomPropertyManager("")
boolstatus = swCustProp.Get4("Bauteilnummer", False, sPorpValBauteilnummer, valout)
'Eigenschaften in Konfigurationsspezifischen Eigenschaften erstellen
For i = 0 To UBound(vConfigNames)
Set swCustProp = swModelDocExt.CustomPropertyManager(vConfigNames(i))
boolstatus = swCustProp.Add3("Bezeichnung", 30, sDocTitel, True)
boolstatus = swCustProp.Add3("Bauteilnummer", 30, sPorpValBauteilnummer, True)
boolstatus = swCustProp.Add3("Material", 30, """SW-Material@@" + vConfigNames(i) + "@" + sDocTitel + ".SLDPRT""", True)
boolstatus = swCustProp.Add3("Gewicht", 30, """SW-Mass@@" + vConfigNames(i) + "@" + sDocTitel + ".SLDPRT""", True)
Next i
'Eigenschaften aus Benutzerdefinierten Eigenschaften entfernen
Set swCustProp = swModelDocExt.CustomPropertyManager("")
longstatus = swCustProp.Delete2("Bezeichnung")
longstatus = swCustProp.Delete2("Bauteilnummer")
longstatus = swCustProp.Delete2("Material")
longstatus = swCustProp.Delete2("Gewicht")
End Sub