Ich versuche, alle bis auf einige Eigenschaften in allen PRT-, ASM- und DRW-Datei-@-Konfigurationen zu entfernen.
Ich habe diesen Code gefunden, der alle Eigenschaften in den Konfigurationen entfernt, den ich ein wenig angepasst habe.
Wie schließe ich mehrere Eigenschaften aus? Der Code entfernt eine Variable.
In meinem Fall DESIGNATION_FR, DESIGNATION_UK, CODE_ARTICLE und NUM_PLAN
Option Explizit Sub main() Dim swApp als SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim swConfig als SldWorks.Configuration Dim swCustPropMgr As SldWorks.CustomPropertyManager Dim vPropNames als Variante Dim vPropName als Variante Dim configNames als Variante Dim configName als Variante Legen Sie swApp = Application.SldWorks fest Festlegen von swModel = swApp.ActiveDoc
Für jeden configName in configNames Legen Sie swConfig = swModel.GetConfigurationByName(configName) fest Legen Sie swCustPropMgr = swConfig.CustomPropertyManager fest vPropNames = swCustPropMgr.GetNames Für jeden vPropName in vPropNames Wenn vPropName <> "DESIGNATION_FR", dann swCustPropMgr.vPropName löschen Ende, wenn Nächster
Option Explicit
Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swConfig As SldWorks.Configuration
Dim swCustPropMgr As SldWorks.CustomPropertyManager
Dim vPropNames As Variant
Dim vPropName As Variant
Dim configNames As Variant
Dim configName As Variant
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
If swModel Is Nothing Then
swApp.SendMsgToUser2 "Ouvrir un fichier pièce", swMbWarning, swMbOk
Exit Sub
End If
If swModel.GetType <> swDocPART Then
swApp.SendMsgToUser2 "Ouvrir un fichier pièce", swMbWarning, swMbOk
Exit Sub
End If
Set swCustPropMgr = swModel.Extension.CustomPropertyManager(Empty)
vPropNames = swCustPropMgr.GetNames
For Each vPropName In vPropNames
If vPropName <> "DESIGNATION_FR" AND vPropName <> "DESIGNATION_UK" AND vPropName <> "CODE_ARTICLE" AND vPropName <> "NUM_PLAN" Then
swCustPropMgr.Delete vPropName
End If
Next
configNames = swModel.GetConfigurationNames
For Each configName In configNames
Set swConfig = swModel.GetConfigurationByName(configName)
Set swCustPropMgr = swConfig.CustomPropertyManager
vPropNames = swCustPropMgr.GetNames
For Each vPropName In vPropNames
If vPropName <> "DESIGNATION_FR" AND vPropName <> "DESIGNATION_UK" AND vPropName <> "CODE_ARTICLE" AND vPropName <> "NUM_PLAN" Then
swCustPropMgr.Delete vPropName
End If
Next
Next
End Sub
Dies kommt wahrscheinlich daher, dass Sie keine Eigenschaften in der betreffenden Konfiguration haben, Sie können einen Test durchführen, indem Sie Folgendes eingeben:
If IsEmpty(vPropNames) = False Then
For Each vPropName In vPropNames
If vPropName <> "DESIGNATION_FR" And vPropName <> "DESIGNATION_UK" And vPropName <> "CODE_ARTICLE" And vPropName <> "NUM_PLAN" Then
swCustPropMgr.Delete vPropName
End If
Next
End If