Determine if Sketch Contour or Sketch Region Example (VBA)
This example shows how to determine if the object is a sketch contour
or a sketch feature. It also shows how to use the TypeOf
keyword to determine the type of object in a given position in an array.
'---------------------------------------
'
' Preconditions:
' (1)
Part document is open.
' (2)
Part contains a base sketch with multiple sketch regions or sketch
' contours
or both.
' (3)
Extrude1 feature was created using sketch regions or
' sketch
contours of base sketch.
'
' Postconditions: None
'
'--------------------------------------
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim Part As SldWorks.PartDoc
Dim boolstatus As Boolean
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
boolstatus = Part.Extension.SelectByID2("Extrude1",
"BODYFEATURE", 0, 0, 0, False, 0, Nothing, swSelectOptionDefault)
'Extrude3 is an extruded feature that has a combination
of multiple
'contours and multiple regions selected in its base sketch.
Dim Extrudefeature As SldWorks.feature
Dim Extrudefeature_DEF As SldWorks.ExtrudeFeatureData2
Dim SelMgr As SldWorks.SelectionMgr
Dim ContourArray As Variant
Set SelMgr = Part.SelectionManager
Set Extrudefeature = SelMgr.GetSelectedObject5(1)
Set Extrudefeature_DEF = Extrudefeature.GetDefinition
Extrudefeature_DEF.AccessSelections
Part, Nothing
ContourArray
= Extrudefeature_DEF.Contours
Extrudefeature_DEF.ReleaseSelectionAccess
Dim SR As SketchRegion
Dim SC As SketchContour
ContourArray(0).Select
False, 0
Debug.Print TypeName(ContourArray(0))
If TypeOf ContourArray(0)
Is SketchRegion Then
Debug.Print
"Object is SketchRegion"
Set
SR = ContourArray(0)
Else
Debug.Print
"Object is SketchContour"
Set
SC = ContourArray(0)
End If
End Sub