Access and Release Access to Edges Example (VBA)
This example shows how to access edges to select them, and then how
to release access to those edges on a rip feature.
'-------------------------------------------------
'
' Preconditions:
' (1)
Part document is open.
' (2)
Rip feature is selected.
'
' Postconditions: None
'
'--------------------------------------------------
Option Explicit
Sub main()
Dim
swApp As
SldWorks.SldWorks
Dim
swModel As
SldWorks.ModelDoc2
Dim
swSelMgr As
SldWorks.SelectionMgr
Dim
swFeat As
SldWorks.Feature
Dim
swRip As
SldWorks.RipFeatureData
Dim
vEdge As
Variant
Dim
swEdge As
SldWorks.Edge
Dim
swEnt As
SldWorks.entity
Dim
i As
Long
Dim
bRet As
Boolean
Set
swApp = CreateObject("SldWorks.Application")
Set
swModel = swApp.ActiveDoc
Set
swSelMgr = swModel.SelectionManager
Set
swFeat = swSelMgr.GetSelectedObject5(1)
Set
swRip = swFeat.GetDefinition
'
Returns negative value if using default gap
Debug.Print
"Gap = " + Str(swRip.gap * 1000#) + " mm"
'
Roll back to get access to edges
'
because rip consumes edges
bRet
= swRip.AccessSelections(swModel,
Nothing)
'
Roll back so that list of edges is generated
Debug.Print
"NumEdges = " + Str(swRip.GetEdgesCount)
swModel.ClearSelection2 (True)
vEdge
= swRip.edges
For
i = 0 To UBound(vEdge)
Set
swEdge = vEdge(i)
Set
swEnt = swEdge
Debug.Print
"DirEdge(" + Str(i) + ") = " + Str(swRip.GetDirection(swEdge))
bRet
= swEnt.Select2(True, 0)
Next
i
'
cancel rollback
swRip.ReleaseSelectionAccess
End Sub
'-------------------------------------------------