Set Component State Example (VBA)
This example shows how to set the state of the selected assembly components.
'-----------------------------------------------
'
' Preconditions:
' (1)
Assembly document is open.
' (2)
One or more components are selected.
'
' Postconditions: The state of the selected components
is set to suppressed if
' their
states are resolved.
'
'------------------------------------------------
Option Explicit
Public Enum swComponentSuppressionState_e
swComponentSuppressed
= 0 '
Fully suppressed
- no data is loaded
swComponentLightweight
= 1 '
Featherweight
- only graphics data is loaded
swComponentFullyResolved
= 2 '
Fully resolved
- model data is completely loaded
End Enum
Public Enum swInConfigurationOpts_e
swConfigPropertySuppressFeatures
= 0
swThisConfiguration
= 1
swAllConfiguration
= 2
swSpecifyConfiguration
= 3
End Enum
Sub main()
Dim
swApp As
SldWorks.SldWorks
Dim
swModel As
SldWorks.ModelDoc2
Dim
swAssy As
SldWorks.AssemblyDoc
Dim
swSelMgr As
SldWorks.SelectionMgr
Dim
swConfigMgr As
SldWorks.ConfigurationManager
Dim
swConf As
SldWorks.Configuration
Dim
i As
Long
Dim
nSelCount As
Long
Dim
swCompArr() As
SldWorks.Component2
Dim
vCompArr As
Variant
Dim
sConfName As
String
Dim
bRet As
Boolean
Set
swApp = Application.SldWorks
Set
swModel = swApp.ActiveDoc
Set
swAssy = swModel
Set
swSelMgr = swModel.SelectionManager
Set
swConfigMgr = swModel.ConfigurationManager
Set
swConf = swConfigMgr.ActiveConfiguration
sConfName
= swConf.Name
ReDim
swCompArr(0)
nSelCount
= swSelMgr.GetSelectedObjectCount
For
i = 1 To nSelCount
If
Not swSelMgr.GetSelectedObjectsComponent2(i)
Is Nothing Then
Set
swCompArr(i - 1) = swSelMgr.GetSelectedObjectsComponent2(i)
ReDim
Preserve swCompArr(UBound(swCompArr) + 1)
End
If
Next
i
Debug.Assert
UBound(swCompArr) > 0
ReDim
Preserve swCompArr(UBound(swCompArr) - 1)
vCompArr
= swCompArr
bRet
= swAssy.SetComponentState( _
swComponentSuppressed,
_
(vCompArr),
_
swThisConfiguration,
sConfName, False): Debug.Assert bRet
End Sub
'-----------------------------------------------