Suppress Component Feature Example (VBA)
This example shows how to suppress the selected component feature.
'------------------------------------------------
'
' Preconditions:
' (1)
Assembly document is open.
' (2)
Component feature is selected in the FeatureManager design tree.
'
' Postconditions: Selected component feature is suppressed.
'
' NOTE: Editing a component requires that geometry on
' the
component to be selected. However,
not
' all
features are associated with geometry.
' Therefore,
it is necessary to select the component
' before
attempting to edit the component.
'
'------------------------------------------------
Option Explicit
Public Enum swDocumentTypes_e
swDocNONE
= 0 '
Used to be TYPE_NONE
swDocPART
= 1 '
Used to be TYPE_PART
swDocASSEMBLY
= 2 '
Used to be TYPE_ASSEMBLY
swDocDRAWING
= 3 '
Used to be TYPE_DRAWING
End Enum
' Possible
status values for AssemblyDoc::EditPart2
Public Enum swEditPartCommandStatus_e
swEditPartFailure
= -1
swEditPartAsmMustBeSaved
= -2
swEditPartCompMustBeSelected
= -3
swEditPartCompMustBeResolved
= -4
swEditPartCompMustHaveWriteAccess
= -5
swEditPartSuccessful
= 0
swEditPartCompNotPositioned
= &H1
End Enum
Sub main()
Dim
swApp As
SldWorks.SldWorks
Dim
swModel As
SldWorks.ModelDoc2
Dim
swAssy As
SldWorks.AssemblyDoc
Dim
swEditModel As
SldWorks.ModelDoc2
Dim
swEditPart As
SldWorks.PartDoc
Dim
swEditAssy As
SldWorks.AssemblyDoc
Dim
swSelMgr As
SldWorks.SelectionMgr
Dim
swFeat As
SldWorks.feature
Dim
swComp As
SldWorks.Component2
Dim
sFeatName As
String
Dim
nStatus As
Long
Dim
nInfo As
Long
Dim
i As
Long
Dim
bRet As
Boolean
Set
swApp = Application.SldWorks
Set
swModel = swApp.ActiveDoc
Set
swAssy = swModel
Set
swSelMgr = swModel.SelectionManager
Set
swFeat = swSelMgr.GetSelectedObject5(1):
Debug.Assert Not swFeat Is Nothing
Set
swComp = swSelMgr.GetSelectedObjectsComponent2(1):
Debug.Assert Not swComp Is Nothing
Debug.Print
"File = " & swModel.GetPathName
Debug.Print
" "
& swFeat.Name & "
<" & swFeat.GetTypeName
& ">"
Debug.Print
""
sFeatName
= swFeat.Name
bRet
= swComp.Select2(False, 0): Debug.Assert
bRet
nStatus
= swAssy.EditPart2(True, False,
nInfo): Debug.Assert swEditPartSuccessful = nStatus
Set
swEditModel = swAssy.GetEditTarget
Select
Case swEditModel.GetType
Case
swDocPART
Set
swEditPart = swEditModel
Set
swFeat = swEditPart.FeatureByName(sFeatName):
Debug.Assert Not swFeat Is Nothing
bRet
= swFeat.Select2(False, 0): Debug.Assert
bRet
Case
swDocASSEMBLY
Set
swEditAssy = swEditModel
Set
swFeat = swEditAssy.FeatureByName(sFeatName):
Debug.Assert Not swFeat Is Nothing
bRet
= swFeat.Select2(False, 0): Debug.Assert
bRet
Case
Else
Debug.Assert
False
End
Select
'
Try to suppress the selected feature;
'
should not assert because feature might not be
'
able to be suppressed; for example, standard reference plane or
'
origin
bRet
= swEditModel.EditSuppress2: Debug.Assert
bRet
swAssy.EditAssembly
End Sub
'------------------------------------------