Get All Edges in Visible Component in Drawing View Example (VBA)
This method gets all of the edges in the first visible component in
a drawing view.
'---------------------------------
'
' Preconditions: Drawing document is open and
' contains
at least one component.
'
' Postconditions: None
'
'----------------------------------
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim swSelMgr As SldWorks.SelectionMgr
Dim swSelData As SldWorks.SelectData
Dim swComp As SldWorks.Component2
Dim swView As SldWorks.View
Dim swEnt As SldWorks.Entity
Dim vComps As Variant
Dim vEdges As Variant
Dim itr As Long
Dim boolstatus As Boolean
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swModelDocExt = swModel.Extension
Set swSelMgr = swModel.SelectionManager
boolstatus = swModel.ActivateView("Drawing
View1")
boolstatus = swModelDocExt.SelectByID2("Drawing
View1", "DRAWINGVIEW", 0, 0, 0, False, 0, Nothing, 0)
Set swView = swSelMgr.GetSelectedObject5(1)
swModel.ClearSelection2
True
'Get all visible components
vComps = swView.GetVisibleComponents
'Print name of first visible component
Debug.Print vComps(0).Name2
' Get all edges on the first visible component
vEdges = swView.GetVisibleEntities(vComps(0),
swViewEntityType_Edge)
'Iterate through and select all edges on the first visible
component
Set swSelData = swSelMgr.CreateSelectData
swSelData.View
= swView
For itr = 0 To UBound(vEdges)
Set
swEnt = vEdges(itr)
boolstatus
= swEnt.Select4(True, swSelData)
Next itr
End Sub