SOLIDWORKS macro to change configuration specific properties for component in pattern
This macro example demonstrates how to change the following configuration specific properties using SOLIDWORKS API.
- Use same configuration as pattern seed component
- Use named configuration
IAssemblyDoc::CompConfigProperties5 SOLIDWORKS API is used to modify the multiple properties at a time for the selected component.
In the instance component of the pattern (e.g. Sketch Driven Pattern)
Enum SeedCompConfigOpts_e UseSameConfigAsPatternSeed UseNamedConfiguration End Enum Dim swApp As SldWorks.SldWorks Dim swAssy As SldWorks.AssemblyDoc Sub main() Set swApp = Application.SldWorks Set swAssy = swApp.ActiveDoc Dim swComp As SldWorks.Component2 Set swComp = swAssy.SelectionManager.GetSelectedObject6(1, -1) If Not swComp Is Nothing Then 'Set use named to 'Config1' SetConfigSpecProps swComp, SeedCompConfigOpts_e.UseNamedConfiguration, "Config1" Stop 'Set use same configuration as pattern seed component SetConfigSpecProps swComp, SeedCompConfigOpts_e.UseSameConfigAsPatternSeed Else MsgBox "Please select component" End If End Sub Sub SetConfigSpecProps(comp As SldWorks.Component2, opts As SeedCompConfigOpts_e, Optional namedConf As String = "") comp.Select4 False, Nothing, False Dim suppOpts As Long Dim solveOpts As Long Dim isVisible As Boolean Dim exlFromBom As Boolean Dim isEnv As Boolean Dim useNamedConf As Boolean Dim refConfName As String suppOpts = comp.GetSuppression() solveOpts = comp.Solving If solveOpts = -1 Then 'Note: for part components this will be -1 but the CompConfigProperties5 failse if -1 is passed solveOpts = swComponentSolvingOption_e.swComponentRigidSolving End If isVisible = comp.Visible exlFromBom = comp.ExcludeFromBOM isEnv = comp.isEnvelope Select Case opts Case SeedCompConfigOpts_e.UseSameConfigAsPatternSeed useNamedConf = False Case SeedCompConfigOpts_e.UseNamedConfiguration useNamedConf = True refConfName = namedConf End Select swAssy.CompConfigProperties5 suppOpts, solveOpts, isVisible, useNamedConf, refConfName, exlFromBom, isEnv End Sub