AnsweredAssumed Answered

Determine if Sketch Contour or Sketch Region

Question asked by Omid Amir on Oct 14, 2016
Latest reply on Oct 18, 2016 by Omid Amir

hello

I got this macro from solidworks api help of the sketch region

 

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

 

--------------------------------------------------------------------------------------

first question :  Are we able to select variable of varient  ?? ( select that in red line)

second question : when the macro arrives to " typeof  " ( the blue line ) gives Error 13 ( type mismatch) . WHY ?????

thanks .

Outcomes