Create Auto Route Example (C#)
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 SolidWorks.Interop.SWRoutingLib.dll as a reference
//
(in
the IDE right-click the project, select Add Reference,
//
and browse <SolidWorks_install_dir>\api\redist).
// 3. Open:
//
<SolidWorks_install_dir>\samples\tutorial\api\top_assy_connectors.sldasm
// 4. In Tools > Options > System Options > Routing > Routing File
Locations,
//
add locations of your SolidWorks Routing files.
// 5. Modify the namespace to match the name of your C# project.
// 6. Select the assembly that contains Route1 in the FeatureManager
design tree.
// 7. 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.
//--------------------------------------------------------------------------
using
SolidWorks.Interop.sldworks;
using
SolidWorks.Interop.swconst;
using
SolidWorks.Interop.SWRoutingLib;
using
System;
using
System.Diagnostics;
namespace
CreateAutoRoute_CSharp.csproj
{
partial
class
SolidWorksMacro
{
public
void Main()
{
ModelDoc2
swModel = default(ModelDoc2);
AssemblyDoc
swTopLevelAssembly = default(AssemblyDoc);
RouteManager
rtRouteManager = default(RouteManager);
AutoRoute
autoRoute = default(AutoRoute);
int
resultCode = 0;
Boolean
boolstatus = false;
swModel = (ModelDoc2)swApp.ActiveDoc;
swTopLevelAssembly = (AssemblyDoc)swModel;
// Get the RouteManager from
the top-level assembly
rtRouteManager = (RouteManager)swTopLevelAssembly.GetRouteManager();
if
(rtRouteManager == null)
{
Debug.Print("No
RouteManager found in top-level document");
return;
}
rtRouteManager.EditRoute();
autoRoute = (AutoRoute)rtRouteManager.GetAutoRoute();
autoRoute.ShowGuidelines();
boolstatus = swModel.Extension.SelectByID2("Point3",
"SKETCHPOINT",
-0.457835, 0.10795, -0.2032, true,
0, null,
0);
boolstatus = swModel.Extension.SelectByID2("Point8",
"SKETCHPOINT",
-0.218948, 0.0508, -0.470281, true,
0, null,
0);
resultCode = autoRoute.CreatePointToPointAutoRoute(2);
rtRouteManager.ExitRoute();
swTopLevelAssembly.EditAssembly();
}
public
SldWorks
swApp;
}
}