Is er een manier om alle "configuratiespecifieke" eigenschappen van een partij onderdelen te wissen, naar het voorbeeld van een SW-tool, Mycad of een macro? Of zal het alleen het feit benadrukken dat er een of meer "configuratiespecifieke" eigenschappen zijn?
Het is echt vervelend om een bubbel in een masterplan te hebben die op zoek gaat naar deze eigenschappen terwijl we alles netjes hebben opgevuld met smartbom of batchproperties >:(
Met batchProperties zet u de naam van de eigenschap (1) of eigenschappen die moeten worden gewist met @Delete (2) als de waarde, vervolgens in de opties (3) in de toepassingen van de eigenschappen, kiest u op alle configuraties en past u vervolgens toe op de batch onderdelen of samenstellingen.
Ik koos voor de macroversie van yannick.petit, zodat ik deze kon gebruiken in Mycad-integratie. Het andere voordeel is dat ik de naam van de te verwijderen eigenschappen niet hoef op te geven.
Ik heb de code iets gewijzigd om het handmatige bevestigingsverzoek te verwijderen.
Idealiter zou ik het opnieuw moeten aanpassen zodat het op alle configuraties werkt, en niet alleen op de actieve.
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
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
swCustPropMgr.Delete vPropName
Next
Next
End Sub
Het is waar dat batch het voordeel heeft dat het bijna onmiddellijk is.
Ik stuur ook de macro terug omdat het niet ongebruikelijk is dat ik mijn assemblage toch door de molen haal. Het integreren van deze functie is bovendien niet duur.