Het herlezen van de twee stukjes code die ik in de vorige vraag heb gepost, het is makkelijker dan ik dacht, maar ik had geen tijd om te testen.
Om in een nieuwe macro in SolidWorks te worden geplaatst vanuit het menu " Macro > New Tools > Tools ".
'Edit: code opschonen en opmerkingen
Optie Expliciete Sub hoofd() Dim swApp als SldWorks.SldWorks Dim swModel als SldWorks.ModelDoc2 Dim vConfNameArr als variant Dim sConfigName als tekenreeks Zon i Zo lang
Stel swApp = CreateObject("SldWorks.Application") in SolidWorks maakt het mogelijk in VBA Stel swModel = swApp.ActiveDoc in 'Haalt het actieve document op vConfNameArr = swModel.GetConfigurationNames 'Haalt alle configuraties in een array op Voor i = 0 Naar UBound(vConfNameArr) Loop over alle configuraties sConfigName = vConfNameArr(i) sConfigName.ChildComponentDisplayInBOM = swChildComponentInBOMOption_e.swChildComponent_Promote 'Activeert de promotiefunctie op elk van de configuraties volgende i Einde Sub
Ik heb een collega die macro's kent, dit is wat hij schreef.
Na een test of twee lijkt het te werken.
Optie Expliciete Sub hoofd() Dim swApp als SldWorks.SldWorks Dim swModel als SldWorks.ModelDoc2 Dim swConfig als SldWorks.Configuration Dim vConfNameArr als variant Dim sConfigName als tekenreeks Zon i Zo lang
Stel swApp = Toepassing.SldWorks in SolidWorks maakt het mogelijk in VBA Stel swModel = swApp.ActiveDoc in 'Haalt het actieve document op vConfNameArr = swModel.GetConfigurationNames 'Haalt alle configuraties in een array op Voor i = 0 Naar UBound(vConfNameArr) Loop over alle configuraties Set swConfig = swModel.GetConfigurationByName(vConfNameArr(i)) 'sConfigName = vConfNameArr(i) swConfig.ChildComponentDisplayInBOM = swChildComponentInBOMOption_e.swChildComponent_Promote 'Activeert de promotiefunctie op elk van de configuraties