Hide Table of Contents

Create Holes using Hole Wizard and Sketch Points Example (VBA)

This example shows how to create holes using the Hole Wizard and sketch points.

 

'--------------------------------------------------------

'

' Problem:

'       When adding a number of Hole Wizard hole features,

'       it is often helpful to use a sketch with a number of

'       sketch points. However, when creating the holes,

'

'           IFeatureManager::HoleWizard

'

'       requires selection points to be on a face and in the

'       space of the model.

'

'       This example shows how to transform a sketch point

'       in the space of a sketch to the space of the model.

'

' Preconditions:

'       (1) Part or assembly is open.

'       (2) Assembly is fully resolved.

'       (3) Sketch is selected.

'       (4) Sketch contains at least one sketch point.

'

' Postconditions: Hole Wizard hole features are inserted at

'        each sketch point.

'

' NOTES:

'       (1) Hole creation can fail due to geometry

'           conditions.

'       (2) To access:

'               * IIWizardHoleFeatureData2::Face

'               * IWizardHoleFeatureData2::Vertex

'               * IWizardHoleFeatureData2::GetEndConditionReference

'           the feature must be rolled back with a call to

'           IWizardHoleFeatureData2::AccessSelections

'           because these are geometric entities and

'           can be consumed by subsequent features.

'       (3) All of the parameters of the feature are output to the

'           debug window for review.

 

Option Explicit

Public Enum swWzdGeneralHoleTypes_e

    swWzdCounterBore = 0

    swWzdCounterSink = 1

    swWzdHole = 2

    swWzdPipeTap = 3

    swWzdTap = 4

    swWzdLegacy = 5

End Enum

' If additional hole types are added to the hole wizard dialog,

' this is incremented

Public Enum swWzdHoleTypes_e

    swSimple = 0

    swTapered = 1

    swCounterBored = 2

    swCounterSunk = 3

    swCounterDrilled = 4

    swSimpleDrilled = 5

    swTaperedDrilled = 6

    swCounterBoredDrilled = 7

    swCounterSunkDrilled = 8

    swCounterDrilledDrilled = 9

    swCounterBoreBlind = 10

    swCounterBoreBlindCounterSinkMiddle = 11

    swCounterBoreBlindCounterSinkTop = 12

    swCounterBoreBlindCounterSinkTopmiddle = 13

    swCounterBoreThru = 14

    swCounterBoreThruCounterSinkBottom = 15

    swCounterBoreThruCounterSinkMiddle = 16

    swCounterBoreThruCounterSinkMiddleBottom = 17

    swCounterBoreThruCounterSinkTop = 18

    swCounterBoreThruCounterSinkTopBottom = 19

    swCounterBoreThruCounterSinkTopMiddle = 20

    swCounterBoreThruCounterSinkTopMiddleBottom = 21

    swHoleBlind = 22

    swHoleBlindCounterSinkTop = 23

    swCounterSinkBlind = 24

    swHoleThru = 25

    swHoleThruCounterSinkBottom = 26

    swHoleThruCounterSinkTop = 27

    swHoleThruCounterSinkTopBottom = 28

    swCounterSinkThru = 29

    swCounterSinkThruCounterSinkBottom = 30

    swTapBlind = 31

    swTapBlindCounterSinkTop = 32

    swTapThru = 33

    swTapThruCounterSinkBottom = 34

    swTapThruCounterSinkTop = 35

    swTapThruCounterSinkTopBottom = 36

    swPipeTapBlind = 37

    swPipeTapBlindCounterSinkTop = 38

    swPipeTapThru = 39

    swPipeTapThruCounterSinkBottom = 40

    swPipeTapThruCounterSinkTop = 41

    swPipeTapThruCounterSinkTopBottom = 42

    swCounterSinkBlindWithoutHeadClearance = 43

    swCounterSinkThruWithoutHeadClearance = 44

    swCounterSinkThruCounterSinkBottomWithoutHeadClearance = 45

    swTapBlindCosmeticThread = 46

    swTapBlindCosmeticThreadCounterSinkTop = 47

    swTapThruCosmeticThread = 48

    swTapThruCosmeticThreadCounterSinkTop = 49

    swTapThruCosmeticThreadCounterSinkBottom = 50

    swTapThruCosmeticThreadCounterSinkTopBottom = 51

    swTapThruThreadThru = 52

    swTapThruThreadThruCounterSinkTop = 53

    swTapThruThreadThruCounterSinkBottom = 54

    swTapThruThreadThruCountersinkTopBottom = 55

End Enum

'  Update this when you add new hole types

Public Enum swWzdHoleStandards_e

    swStandardAnsiInch = 0

    swStandardAnsiMetric = 1

    swStandardBSI = 2

    swStandardDME = 3

    swStandardDIN = 4

    swStandardHascoMetric = 5

    swStandardHelicoilInch = 6

    swStandardHelicoilMetric = 7

    swStandardISO = 8

    swStandardJIS = 9

    swStandardPCS = 10

    swStandardProgressive = 11

    swStandardSuperior = 12

End Enum

Public Enum swWzdHoleStandardFastenerTypes_e

    swStandardAnsiInchBinding = 0

    swStandardAnsiInchButton = 1

    swStandardAnsiInchFillister = 2

    swStandardAnsiInchHexBolt = 3

    swStandardAnsiInchHexBoltFinished = 4

    swStandardAnsiInchHexBoltHeavy = 5

    swStandardAnsiInchHexScrew = 6

    swStandardAnsiInchHexWasherScrew = 7

    swStandardAnsiInchPan = 8

    swStandardAnsiInchSocketCapScrew = 9

    swStandardAnsiInchSocketShoulderScrew = 10

    swStandardAnsiInchSquare = 11

    swStandardAnsiInchTruss = 12

    swStandardAnsiInchFlatSocket82 = 13

    swStandardAnsiInchFlatHead100 = 14

    swStandardAnsiInchFlatHead82 = 15

    swStandardAnsiInchOval = 16

    swStandardAnsiInchHcoilTapDrills = 17

    swStandardAnsiInchAllDrillSizes = 18

    swStandardAnsiInchFractionalDrillSizes = 19

    swStandardAnsiInchLetterDrillSizes = 20

    swStandardAnsiInchPipeTapDrills = 21

    swStandardAnsiInchScrewClearances = 22

    swStandardAnsiInchTapDrills = 23

    swStandardAnsiInchNumberDrillSizes = 24

    swStandardAnsiInchTaperedPipeTap = 25

    swStandardAnsiInchBottomingTappedHole = 26

    swStandardAnsiInchTappedHole = 27

    swStandardAnsiMetricButton = 28

    swStandardAnsiMetricHexBolt = 29

    swStandardAnsiMetricHexCapScrew = 30

    swStandardAnsiMetricHexScrewFormed = 31

    swStandardAnsiMetricPan = 32

    swStandardAnsiMetricSocketHeadCapScrew = 33

    swStandardAnsiMetricSocketShoulderScrew = 34

    swStandardAnsiMetricFlatSocket82 = 35

    swStandardAnsiMetricFlatHead82 = 36

    swStandardAnsiMetricOval = 37

    swStandardAnsiMetricHcoilTapDrills = 38

    swStandardAnsiMetricDrillSizes = 39

    swStandardAnsiMetricScrewClearances = 40

    swStandardAnsiMetricTapDrills = 41

    swStandardAnsiMetricBottomingTappedHole = 42

    swStandardAnsiMetricTappedHole = 43

    swStandardBSICheese = 44

    swStandardBSIHexBolt = 45

    swStandardBSIHexCapScrew = 46

    swStandardBSIHexMachineScrew = 47

    swStandardBSIPanHead = 48

    swStandardBSISocketCapScrew = 49

    swStandardBSIFlatSocketCap = 50

    swStandardBSIFlatHead = 51

    swStandardBSIOvalHead = 52

    swStandardBSIHcoilTapDrills = 53

    swStandardBSIDrillSizes = 54

    swStandardBSIScrewClearances = 55

    swStandardBSITapDrills = 56

    swStandardBSITappedHoleBottoming = 57

    swStandardBSITappedHole = 58

    swStandardBSITaperedPipeTap = 59

    swStandardDINHeavyHexBolt = 60

    swStandardDINHexFlangeBolt = 61

    swStandardDINCheeseHead = 62

    swStandardDINHexBolt = 63

    swStandardDINHexCapScrew = 64

    swStandardDINHexMachineScrew = 65

    swStandardDINPan = 66

    swStandardDINSocketHeadCap = 67

    swStandardDINSocketCTSKFlatHead = 68

    swStandardDINCTSKFlatHead = 69

    swStandardDINCTSKRaisedHead = 70

    swStandardDINHcoilTapDrills = 71

    swStandardDINDrillSizes = 72

    swStandardDINScrewClearances = 73

    swStandardDINTapDrills = 74

    swStandardDINTappedHoleBottoming = 75

    swStandardDINTappedHole = 76

    swStandardDINTaperedPipeTap = 77

    swStandardDMECCorePins = 78

    swStandardDMECXCorePins = 79

    swStandardDMETHXEjectorPins = 80

    swStandardDMEStandardLeaderPins = 81

    swStandardDMEReturnPins = 82

    swStandardDMESocketCapScrew = 83

    swStandardDMESupportPillarSHCS = 84

    swStandardDMESpruPullerPins = 85

    swStandardDMEStripperBolt = 86

    swStandardDMEFlatSocket82 = 87

    swStandardDMEFlatHead100 = 88

    swStandardDMEFlatHead82 = 89

    swStandardDMEOval = 90

    swStandardDMESupportPillarClearance = 91

    swStandardDMEFractionalDrillSizes = 92

    swStandardDMEHcoilTapDrills = 93

    swStandardDMEAllDrillSizes = 94

    swStandardDMELetterDrillSizes = 95

    swStandardDMENumberDrillSizes = 96

    swStandardDMEPipeTapDrills = 97

    swStandardDMEScrewClearances = 98

    swStandardDMECCorePinClearances = 99

    swStandardDMECXCorePinClearances = 100

    swStandardDMETHXEjectorPinClearances = 101

    swStandardDMELeaderPinClearances = 102

    swStandardDMEReturnPinClearances = 103

    swStandardDMESpruPullerPinClearances = 104

    swStandardDMETapDrills = 105

    swStandardDMEBottomingTappedHole = 106

    swStandardDMETappedHole = 107

    swStandardDMETaperedPipeTap = 108

    swStandardHascoMetricCCorePins = 109

    swStandardHascoMetricGuideBushings = 110

    swStandardHascoMetricGuidePillars = 111

    swStandardHascoMetricLocatingGuideBushings = 112

    swStandardHascoMetricLocatingGuidePillars = 113

    swStandardHascoMetricSocketCapScrew = 114

    swStandardHascoMetricShoulderScrew = 115

    swStandardHascoMetricCTSKFlatHead = 116

    swStandardHascoMetricDrillSizes = 117

    swStandardHascoMetricScrewClearances = 118

    swStandardHascoMetricCorePinClearances = 119

    swStandardHascoMetricCenteringSleeve = 120

    swStandardHascoMetricEjectorRodClearances = 121

    swStandardHascoMetricBottomingTappedHole = 122

    swStandardHascoMetricTappedHole = 123

    swStandardHcoilInchInsert10Dia = 124

    swStandardHcoilInchInsert15Dia = 125

    swStandardHcoilInchInsert20Dia = 126

    swStandardHcoilInchInsert25Dia = 127

    swStandardHcoilInchInsert30Dia = 128

    swStandardHcoilMetricInsert10Dia = 129

    swStandardHcoilMetricInsert15Dia = 130

    swStandardHcoilMetricInsert20Dia = 131

    swStandardHcoilMetricInsert25Dia = 132

    swStandardHcoilMetricInsert30Dia = 133

    swStandardISOCheeseHead = 134

    swStandardISOHexBolt = 135

    swStandardISOHexCapScrew = 136

    swStandardISOHexMachineScrew = 137

    swStandardISOPan = 138

    swStandardISOSocketHeadCap = 139

    swStandardISOSocketCTSKFlatHead = 140

    swStandardISOCTSKFlatHead = 141

    swStandardISOCTSKRaisedHead = 142

    swStandardISODrillSizes = 143

    swStandardISOScrewClearances = 144

    swStandardISOTapDrills = 145

    swStandardISOTappedHoleBottoming = 146

    swStandardISOTappedHole = 147

    swStandardISOTaperedPipeTap = 148

    swStandardJISCheeseHead = 149

    swStandardJISFillisterHead = 150

    swStandardJISButton = 151

    swStandardJISHexBolt = 152

    swStandardJISHexCapScrew = 153

    swStandardJISHexMachineScrew = 154

    swStandardJISPan = 155

    swStandardJISSocketHeadCap = 156

    swStandardJISSocketShoulderScrew = 157

    swStandardJISFlatCTSKHead = 158

    swStandardJISRaisedCTSKHead = 159

    swStandardJISDrillSizes = 160

    swStandardJISScrewClearances = 161

    swStandardJISTapDrills = 162

    swStandardJISTappedHoleBottoming = 163

    swStandardJISTappedHole = 164

    swStandardJISTaperedPipeTap = 165

    swStandardPCSReturnPins = 166

    swStandardPCSCorePins = 167

    swStandardPCSEjectorPins = 168

    swStandardPCSStandardLeaderPins = 169

    swStandardPCSSocketCapScrew = 170

    swStandardPCSStripperBolt = 171

    swStandardPCSSupportPillarSHCS = 172

    swStandardPCSFlatHead100 = 173

    swStandardPCSFlatHead82 = 174

    swStandardPCSOval = 175

    swStandardPCSFlatSocket82 = 176

    swStandardPCSHcoilTapDrills = 177

    swStandardPCSFractionalDrillSizes = 178

    swStandardPCSNumberDrillSizes = 179

    swStandardPCSPipeTapDrills = 180

    swStandardPCSScrewClearances = 181

    swStandardPCSAllDrillSizes = 182

    swStandardPCSEjectorPinClearances = 183

    swStandardPCSLetterDrillSizes = 184

    swStandardPCSSupportPillarClearances = 185

    swStandardPCSCorePinClearances = 186

    swStandardPCSLeaderPinClearances = 187

    swStandardPCSReturnPinClearances = 188

    swStandardPCSTapDrills = 189

    swStandardPCSBottomingTappedHole = 190

    swStandardPCSTappedHole = 191

    swStandardPCSTaperedPipeTap = 192

    swStandardProgressiveSocketCapScrew = 193

    swStandardProgressiveReturnPins = 194

    swStandardProgressiveCorePins = 195

    swStandardProgressiveEjectorPins = 196

    swStandardProgressiveSpruePullerPins = 197

    swStandardProgressiveSupportPillarSHCS = 198

    swStandardProgressiveStripperBolt = 199

    swStandardProgressiveStandardLeaderPins = 200

    swStandardProgressiveFlatSocket82 = 201

    swStandardProgressiveOval = 202

    swStandardProgressiveFlatHead100 = 203

    swStandardProgressiveFlatHead82 = 204

    swStandardProgressiveHcoilTapDrills = 205

    swStandardProgressiveFractionalDrillSizes = 206

    swStandardProgressiveNumberDrillSizes = 207

    swStandardProgressivePipeTapDrills = 208

    swStandardProgressiveScrewClearances = 209

    swStandardProgressiveAllDrillSizes = 210

    swStandardProgressiveEjectorPinClearances = 211

    swStandardProgressiveLetterDrillSizes = 212

    swStandardProgressiveSupportPillarClearances = 213

    swStandardProgressiveCorePinClearances = 214

    swStandardProgressiveLeaderPinClearances = 215

    swStandardProgressiveSpruePullerPinClearances = 216

    swStandardProgressiveReturnPinClearances = 217

    swStandardProgressiveTapDrills = 218

    swStandardProgressiveTappedHole = 219

    swStandardProgressiveBottomingTappedHole = 220

    swStandardProgressiveTaperedPipeTap = 221

    swStandardSuperiorReturnPins = 222

    swStandardSuperiorEjectorPins = 223

    swStandardSuperiorSpruePullerPins = 224

    swStandardSuperiorSupportPillarSHCS = 225

    swStandardSuperiorStripperBolt = 226

    swStandardSuperiorSocketCapScrew = 227

    swStandardSuperiorStandardLeaderPins = 228

    swStandardSuperiorFlatHead100 = 229

    swStandardSuperiorFlatHead82 = 230

    swStandardSuperiorOval = 231

    swStandardSuperiorFlatSocket82 = 232

    swStandardSuperiorHcoilTapDrills = 233

    swStandardSuperiorFractionalDrillSizes = 234

    swStandardSuperiorNumberDrillSizes = 235

    swStandardSuperiorPipeTapDrills = 236

    swStandardSuperiorScrewClearances = 237

    swStandardSuperiorAllDrillSizes = 238

    swStandardSuperiorEjectorPinClearances = 239

    swStandardSuperiorLetterDrillSizes = 240

    swStandardSuperiorSupportPillarClearances = 241

    swStandardSuperiorLeaderPinClearances = 242

    swStandardSuperiorSpruePullerPinClearances = 243

    swStandardSuperiorReturnPinClearances = 244

    swStandardSuperiorTapDrills = 245

    swStandardSuperiorTappedHole = 246

    swStandardSuperiorBottomingTappedHole = 247

    swStandardSuperiorTaperedPipeTap = 248

End Enum

Public Enum swWzdHoleCounterSinkHeadClearanceTypes_e

    swHeadClearanceIncreasedCsink = 0

    swHeadClearanceAddToCbore = 1

End Enum

Public Enum swWzdHoleHcoilTapTypes_e

    swTapTypePlug = 0

    swTapTypeBottom = 1

End Enum

Public Enum swWzdHoleScrewClearanceTypes_e

    swScrewClearanceClose = 0

    swScrewClearanceNormal = 1

    swScrewClearanceLoose = 2

End Enum

Public Enum swWzdHoleCosmeticThreadTypes_e

    swCosmeticThreadNone = 0

    swCosmeticThreadWithCallout = 1

    swCosmeticThreadWithoutCallout = 2

End Enum

Public Enum swWzdHoleThreadEndCondition_e

    swEndThreadTypeBLIND = 0

    swEndThreadTypeTHROUGH_ALL = 1

    swEndThreadTypeTHROUGH_NEXT = 2

End Enum

Public Enum swEndConditions_e

    swEndCondBlind = 0

    swEndCondThroughAll = 1

    swEndCondThroughNext = 2

    swEndCondUpToVertex = 3

    swEndCondUpToSurface = 4

    swEndCondOffsetFromSurface = 5

    swEndCondMidPlane = 6

    swEndCondUpToBody = 7

End Enum

Function CreateHoleWizardFeature _

( _

    swApp As SldWorks.SldWorks, _

    swModel As SldWorks.ModelDoc2 _

) As Boolean

    Dim swFeatMgr               As SldWorks.FeatureManager

    Dim swFeat                  As SldWorks.feature

    Dim swWizHole               As SldWorks.WizardHoleFeatureData2

    Set swFeatMgr = swModel.FeatureManager

    Set swFeat = swFeatMgr.HoleWizard _

                    ( _

                    swWzdCounterBore, _

                    swStandardISO, _

                    swStandardISOHexCapScrew, _

                    "M6", _

                    swEndThreadTypeBLIND, _

                    0.0066, _

                    0.02, _

                    0.014547, _

                    0.004, _

                    0#, _

                    1#, _

                    2.059488517353, _

                    0#, _

                    0#, _

                    0#, _

                    0#, _

                    0#, _

                    0#, _

                    0# _

                    )

    

    ' Hole creation can fail due to geometry conditions

    If swFeat Is Nothing Then

        CreateHoleWizardFeature = False

        Exit Function

    End If

    Set swWizHole = swFeat.GetDefinition

    

    Debug.Print "Feature = " + swFeat.Name

    Debug.Print "  Type                         = " & swWizHole.Type

    Debug.Print ""

    

    Debug.Print "  CosmeticThreadType           = " & swWizHole.CosmeticThreadType

    Debug.Print "  CounterBoreDepth             = " & swWizHole.CounterBoreDepth * 1000# & " mm"

    Debug.Print "  CounterBoreDiameter          = " & swWizHole.CounterBoreDiameter * 1000# & " mm"

    Debug.Print "  CounterDrillAngle            = " & swWizHole.CounterDrillAngle * 57.3 & " deg"

    Debug.Print "  CounterDrillDepth            = " & swWizHole.CounterDrillDepth * 1000# & " mm"

    Debug.Print "  CounterDrillDiameter         = " & swWizHole.CounterDrillDiameter * 1000# & " mm"

    Debug.Print "  CounterSinkAngle             = " & swWizHole.CounterSinkAngle * 57.3 & " deg"

    Debug.Print "  CounterSinkDiameter          = " & swWizHole.CounterSinkDiameter * 1000# & " mm"

    Debug.Print "  Depth                        = " & swWizHole.Depth * 1000# & " mm"

    Debug.Print "  Diameter                     = " & swWizHole.Diameter * 1000# & " mm"

    Debug.Print "  DrillAngle                   = " & swWizHole.DrillAngle * 57.3 & " deg"

    Debug.Print "  EndCondition                 = " & swWizHole.EndCondition

    'Debug.Print "  Face                         = " & swWizHole.face

    Debug.Print "  FarCounterSinkAngle          = " & swWizHole.FarCounterSinkAngle * 57.3 & " deg"

    Debug.Print "  FarCounterSinkDiameter       = " & swWizHole.FarCounterSinkDiameter * 1000# & " mm"

    Debug.Print "  FastenerSize                 = " & swWizHole.FastenerSize

    Debug.Print "  FastenerType                 = " & swWizHole.FastenerType2

    'Debug.Print "  GetEndConditionReference     = " & swWizHole.GetEndConditionReference

    Debug.Print "  HeadClearance                = " & swWizHole.HeadClearance * 1000# & " mm"

    Debug.Print "  HeadClearanceType            = " & swWizHole.HeadClearanceType

    Debug.Print "  HoleDepth                    = " & swWizHole.HoleDepth * 1000# & " mm"

    Debug.Print "  HoleDiameter                 = " & swWizHole.HoleDiameter * 1000# & " mm"

    Debug.Print "  MajorDiameter                = " & swWizHole.MajorDiameter * 1000# & " mm"

    Debug.Print "  MidCounterSinkAngle          = " & swWizHole.MidCounterSinkAngle * 57.3 & " deg"

    Debug.Print "  MidCounterSinkDiameter       = " & swWizHole.MidCounterSinkDiameter * 1000# & " mm"

    Debug.Print "  MinorDiameter                = " & swWizHole.MinorDiameter * 1000# & " mm"

    Debug.Print "  NearCounterSinkAngle         = " & swWizHole.NearCounterSinkAngle * 57.3 & " deg"

    Debug.Print "  NearCounterSinkDiameter      = " & swWizHole.NearCounterSinkDiameter * 1000# & " mm"

    Debug.Print "  Standard                     = " & swWizHole.Standard2

    Debug.Print "  TapDrillDepth                = " & swWizHole.TapDrillDepth * 1000# & " mm"

    Debug.Print "  TapDrillDiameter             = " & swWizHole.TapDrillDiameter * 1000# & " mm"

    Debug.Print "  ThreadAngle                  = " & swWizHole.ThreadAngle * 57.3 & " deg"

    Debug.Print "  ThreadDepth                  = " & swWizHole.ThreadDepth * 1000# & " mm"

    Debug.Print "  ThreadDiameter               = " & swWizHole.ThreadDiameter * 1000# & " mm"

    Debug.Print "  ThruHoleDepth                = " & swWizHole.ThruHoleDepth * 1000# & " mm"

    Debug.Print "  ThruHoleDiameter             = " & swWizHole.ThruHoleDiameter * 1000# & " mm"

    Debug.Print "  ThruTapDrillDepth            = " & swWizHole.ThruTapDrillDepth * 1000# & " mm"

    Debug.Print "  ThruTapDrillDiameter         = " & swWizHole.ThruTapDrillDiameter * 1000# & " mm"

    Debug.Print "  Type                         = " & swWizHole.Type

    CreateHoleWizardFeature = True

End Function

Sub main()

    Dim swApp                   As SldWorks.SldWorks

    Dim swMathUtil              As SldWorks.MathUtility

    Dim swModel                 As SldWorks.ModelDoc2

    Dim swSelMgr                As SldWorks.SelectionMgr

    Dim swFeat                  As SldWorks.feature

    Dim swSketch                As SldWorks.Sketch

    Dim vSketchPtArr            As Variant

    Dim vSketchPt               As Variant

    Dim swSketchPt              As SldWorks.SketchPoint

    Dim swSketchXform           As SldWorks.MathTransform

    Dim nPtData(2)              As Double

    Dim vPtArr                  As Variant

    Dim swPt                    As SldWorks.MathPoint

    Dim bRet                    As Boolean

    

    Set swApp = Application.SldWorks

    Set swMathUtil = swApp.GetMathUtility

    Set swModel = swApp.ActiveDoc

    Set swSelMgr = swModel.SelectionManager

    Set swFeat = swSelMgr.GetSelectedObject5(1)

    Set swSketch = swFeat.GetSpecificFeature2

    Set swSketchXform = swSketch.ModelToSketchTransform

    Set swSketchXform = swSketchXform.Inverse

    

    vSketchPtArr = swSketch.GetSketchPoints

    For Each vSketchPt In vSketchPtArr

        Set swSketchPt = vSketchPt

        

        nPtData(0) = swSketchPt.X

        nPtData(1) = swSketchPt.Y

        nPtData(2) = swSketchPt.Z

        vPtArr = nPtData

        

        Set swPt = swMathUtil.CreatePoint(vPtArr)

        Set swPt = swPt.MultiplyTransform(swSketchXform)

        

        bRet = swModel.SelectByID2("", "FACE", swPt.ArrayData(0), swPt.ArrayData(1), swPt.ArrayData(2))

        Debug.Assert bRet

    

        ' Do not assert because hole creation can fail due to

        ' geometry conditions

        bRet = CreateHoleWizardFeature(swApp, swModel)

    Next

End Sub



Provide feedback on this topic

SOLIDWORKS welcomes your feedback concerning the presentation, accuracy, and thoroughness of the documentation. Use the form below to send your comments and suggestions about this topic directly to our documentation team. The documentation team cannot answer technical support questions. Click here for information about technical support.

* Required

 
*Email:  
Subject:   Feedback on Help Topics
Page:   Create Holes using Hole Wizard and Sketch Points Example (VBA)
*Comment:  
*   I acknowledge I have read and I hereby accept the privacy policy under which my Personal Data will be used by Dassault Systèmes

Print Topic

Select the scope of content to print:

x

We have detected you are using a browser version older than Internet Explorer 7. For optimized display, we suggest upgrading your browser to Internet Explorer 7 or newer.

 Never show this message again
x

Web Help Content Version: API Help (English only) 2012 SP05

To disable Web help from within SOLIDWORKS and use local help instead, click Help > Use SOLIDWORKS Web Help.

To report problems encountered with the Web help interface and search, contact your local support representative. To provide feedback on individual help topics, use the “Feedback on this topic” link on the individual topic page.