AnsweredAssumed Answered

How to Set properties in the cutting list vba macro

Question asked by Isaac Vur on Feb 4, 2021
Latest reply on Feb 5, 2021 by Artem Taturevych



the macro that I want to write takes a value out of a property from the Fileproperties and writes the value into the cutting list attribute.

The property is Teilenummer, the value of this property is taken into the code.

The attribute in the cutting list is also Teilenummer (it does already exist, see screenshot), and there I want to write the value.

The code makes a welded part and then updates the cutting list folder.

And then swFeat.CustomPropertyManager.Set2 is not working ?!


Screenshot of cutting list:



CODE Concept:


Option Explicit


Dim swApp As SldWorks.SldWorks
Dim swModel As ModelDoc2
Dim swModelDocExt As ModelDocExtension
Dim swCustProp As CustomPropertyManager
Dim val As String
Dim valout As String
Dim bool As Boolean


Dim swAssy As SldWorks.AssemblyDoc


Sub main()


Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swModelDocExt = swModel.Extension


' Get the custom property data
Set swCustProp = swModelDocExt.CustomPropertyManager("")


'Funktion schreibt Teilenummer-Werte in val und valout


bool = swCustProp.Get4("Teilenummer", False, val, valout)


Debug.Print "Value:                    " & val
Debug.Print "Evaluated value:          " & valout
Debug.Print "Up-to-date data:          " & bool


MsgBox "Der Wert/Textaudruck der Zeile in den Eigenschften ist:  " & val & "Der evaluierte Wert ist: " & valout


'Mache Schweißteil aus Part
Dim swFeatureMgr As SldWorks.FeatureManager
Dim swFeature As SldWorks.Feature
Set swFeatureMgr = swModel.FeatureManager
Set swFeature = swFeatureMgr.InsertWeldmentFeature()


Dim vComps As Variant
Dim swFeat As SldWorks.Feature
Set swFeat = swModel.FirstFeature


Dim swBodyFolder As SldWorks.BodyFolder
                    'Set swBodyFolder = swFeat.GetSpecificFeature2


'Lese swFeat aus , swFeat entspricht erstem Ordner im Feature Baum
Dim Auslesen As String
Auslesen = swFeat.GetTypeName
MsgBox Auslesen
' Auslesen sagt Favorit Folder


' gehe Folder im Feauter Baum durch bis Cutlist Folder kommt


Dim Counter As Integer
Counter = 0
' 10. Zeile im FeatureManager Tree ist hier die Zuschnitssliste


Do While Counter < 10
'Get Next Feature
Set swFeat = swFeat.GetNextFeature
Auslesen = swFeat.GetTypeName
'MsgBox Auslesen
Counter = Counter + 1


       Set swBodyFolder = swFeat.GetSpecificFeature2




'Aktualiesere Partdatei
    Dim boolstatus As Boolean
    Dim topOnly As Boolean


    Set swApp = CreateObject("SldWorks.Application")
    Set swModel = swApp.ActiveDoc
    topOnly = True


'Next Teilenummer in Zuschnittsliste BEGINN




'Next Teilenummer in Zuschnittsliste ENDE


'bool = swFeat.AddCustomProperty("Teilenummer", "30", "Verify1")
Dim x2 As Integer
x2 = 222
Debug.Print "x2 VORHER:          " & x2
x2 = swFeat.CustomPropertyManager.Set2("Teilenummer", 222)


Dim CustomPropertiesAuslesen1 As String
CustomPropertiesAuslesen1 = "Anfangs"
Debug.Print "CustomPropertiesAuslesen1     " & CustomPropertiesAuslesen1
CustomPropertiesAuslesen1 = swFeat.CustomPropertyManager.IGetNames(9)
Debug.Print "CustomPropertiesAuslesen1     " & CustomPropertiesAuslesen1


Debug.Print "x2 Nachher: :          " & x2
'   1 = Custom property does not exist
End Sub