Create Auto Route Example (VBA)
This example shows how to connect two points using the Auto Route interface.
'-----------------------------------------------------------------------------
' Preconditions:
' 1. Add SolidWorks Routing as an add-in
' (in SolidWorks select Tools > Add-Ins > SolidWorks Routing).
' 2. Add the SolidWorks <version> Routing Type Library as a reference
' (in the IDE select Tools > References).
' 3. In Tools > Options > System Options > Routing > Routing File Locations,
' add locations of your SolidWorks Routing files.
' 4. Open:
' <SolidWorks_install_dir>\samples\tutorial\api\top_assy_connectors.sldasm
' 5. Select Harness_2-top_assy_connectors, the assembly that contains Route1,
' in the FeatureManager design tree.
' 6. Open an Immediate Window.
'
' Postconditions: Auto Route connects the pins in orthogonal fashion
' in the electronic housing.
'
' NOTE: Because the assembly is used in a SolidWorks demo,
' do not save any changes to it.
'---------------------------------------------------------------------------
Option Explicit
Dim swApp As SldWorks.SldWorks
Sub main()
Dim swModel As SldWorks.ModelDoc2
Dim swTopLevelAssembly As SldWorks.AssemblyDoc
Dim rtRouteManager As SWRoutingLib.RouteManager
Dim autoRoute As SWRoutingLib.autoRoute
Dim resultCode, boolstatus As Long
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swTopLevelAssembly = swModel
' Get the RouteManager from the top-level assembly
Set rtRouteManager = swTopLevelAssembly.GetRouteManager
If rtRouteManager Is Nothing Then
Debug.Print "No RouteManager found in top-level document: " & swTopLevelAssembly.GetPathName
Exit Sub
End If
rtRouteManager.EditRoute
Set autoRoute = rtRouteManager.GetAutoRoute
autoRoute.ShowGuidelines
boolstatus = swModel.Extension.SelectByID2("Point3", "SKETCHPOINT", -0.457835, 0.10795, -0.2032, True, 0, Nothing, 0)
boolstatus = swModel.Extension.SelectByID2("Point8", "SKETCHPOINT", -0.218948, 0.0508, -0.470281, True, 0, Nothing, 0)
resultCode = autoRoute.CreatePointToPointAutoRoute(2)
rtRouteManager.ExitRoute
swTopLevelAssembly.EditAssembly
End Sub