Hi all, I copied this function from a different thread and I'm trying to convert it to select edges instead of faces. Everything works except for the line " Set Edge = Body.GetEdge ". How do I get GetEdge to work? The link to the other forum https://forum.solidworks.com/thread/213089
Dim swApp As SldWorks.SldWorks
Dim AssyDoc As SldWorks.ModelDoc2
Dim longstatus As Long
Dim MyMate As Object
Dim CompName As String
Dim EdgeName As String
Dim CCompName As String
Dim EEdgeName As String
Dim boolstatus As Boolean
Dim myComp1 As Component2
Dim myComp2 As Component2
Dim swAssy As SldWorks.AssemblyDoc
Dim swComp As SldWorks.Component2
Dim SelMgr As Object
Dim SelData As SldWorks.SelectData
Dim Comp As Object
Dim Body As Object
Dim Edge As SldWorks.Edge
Dim CurEdgeName As String
Const swSelCOMPONENTS = 20
Public Sub SelectComponentEdgeByName(CompName As String, EdgeName As String)
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set SelMgr = swModel.SelectionManager()
Set SelData = SelMgr.CreateSelectData
Set Comp = swModel.GetComponentByName(CompName)
Set Body = Comp.GetBody()
If (Body Is Nothing) Then
swApp.SendMsgToUser "Component Body Unavailable."
swApp.SendMsgToUser "Make sure not lightweight or suppressed"
Exit Sub
End If
Set Edge = Body.GetEdge
Do While Not Edge Is Nothing
CurEdgeName = swModel.GetEntityName(Edge)
If (CurEdgeName = EdgeName) Then
boolstatus = Edge.Select4(True, SelData)
Exit Do
End If
Debug.Print CurEdgeName
Set Edge = Edge.GetNextEdge
Loop
End Sub
SolidworksApi macros