Modifying Existing Routes

Now reading version 22.0. For the latest, read: Modifying Existing Routes for version 25
 

Parent page: Routing the PCB

Routing a printed circuit board is a detailed, iterative process. Rarely are you able to simply route all of the nets in a single pass. More often, you will be routing a set of nets and as you move on to the next set of nets, you are continually adjusting and moving existing routes, perhaps manually dragging them, or perhaps pushing and shoving them as you interactively route more nets.

The end result is that your finished routing can end up looking like it was autorouted, with lots of unnecessary jigs and corners.

Re-routing & Rearranging Existing Routes

Routing a board can be a complex and time-consuming process as you work to position the components and complete the routing - move that component slightly, shove that routing, re-route those critical nets to avoid potential cross-talk, now see if that bus can be routed through that area, and so on. As you route your board, you will be constantly modifying routing that you have already done.

There are two approaches to modifying the routing; you can either reroute or re-arrange.

Rerouting is ideal when the new route path is more complex than simply moving a few track segments. Rerouting is performed in the same way as the initial routing using the Interactive Routing (or Interactive Differential Pair Routing) command - when you complete the new route path the old loop of redundant track segments is removed.

Alternatively, you can re-arrange the routing. To re-arrange existing routing, click and hold on a track segment then drag it to its new location. Connected track segments will remain connected at the angle they were previously connected - a behavior called interactive sliding (because it maintains the orthogonal/diagonal patterns defined in the original routing). Interactive sliding can call on the same set of routing technologies that are available during interactive routing and also supports the Conflict Resolution Modes, including Push, Hug and Push, and Ignore.

Move - to move an object without regard to other objects that connect to it.

Drag - to move an object and have any connected objects remain connected to it. The connected objects may or may not retain their original placement angle.

Slide - to move a routing object and have the connected objects remain connected, with those objects retaining their original placement angle.

Reroute an Existing Route

  • There is no need to un-route a connection to redefine its path; simply click the Interactive Routing button on the Active Bar ( ) and start routing the new path.
  • The Loop Removal feature will automatically remove any redundant track segments (and vias) as soon as you close the loop and right-click to indicate you are done.
  • You can start and end the new route path at any point, swapping layers as required.
  • You can also create temporary violations by switching to Ignore Obstacle mode (as shown in the video below), which you later resolve.


A simple animation showing the Loop Removal feature being used to modify existing routing.

Rearrange Existing Routes

  • To interactively slide or drag track segments across the board, click, hold and drag as shown in the video below.
  • The default dragging behavior is configured on the PCB Editor - Interactive Routing page of the Preferences dialog.
  • The PCB editor will automatically maintain the 45/90 degree angles with connected segments, shortening and lengthening them as required.

It is important to configure the sliding options to suit the routing style you have used on the board. For example, if you have routed with diagonal corners then the hugging style should be set to 45 Degree or Mixed. If it is set to Rounded then the glossing engine will curve (add arcs into) each corner affected by the sliding action.


A demonstration of interactive sliding being used to modify the existing routing.

Interactive Sliding Tips:

  • Configure the Interactive Sliding options to suit the routing style used on the board - for example, the Hugging Style should be 45 Degree if your routing has diagonal corners. Press the Shift+Spacebar shortcut keys to cycle through the Hugging Style modes during sliding.
  • During sliding, one of the Routing Conflict Resolution modes applies. Press Shift+R to cycle through the modes as you drag a track segment.
  • To convert a 90-degree corner to a 45-degree route, start dragging on the corner vertex.
  • The interactive sliding engine includes algorithms specifically for dragging a vertex (corner), configure the Vertex Action in the Preferences dialog, or in the Interactive Sliding mode of the Properties panel. Press the Spacebar to cycle through the modes as you drag a vertex.
  • When you click and drag on a vertex (the point where two track ends meet), the current Vertex Action setting is applied, use the Deform mode if you want to reshape the corner.
  • To break a single segment, select the segment first, then position the cursor over the center vertex to add in new segments.
  • Existing pads and vias will be jumped, or vias will be pushed if necessary and possible when the Allow Via Pushing option is enabled.   
  • Interactive sliding supports non-orthogonal routing.
  • The extent that the moving tracks are reshaped as you slide them is controlled by the current Gloss Effort (Routed) setting, press the Ctrl+Shift+G shortcuts to cycle through the modes during sliding. If you find that the routing will not slide how you want, try lowering the Routing Gloss Effort setting.
  • The impact that the moving tracks have on the adjacent routing is controlled by the current Gloss Effort (Neighbor) setting, press Tab during sliding to change the setting.
  • The default behavior is to drag (slide) tracks (selected or unselected). If you need to move a segment without maintaining its connection to the attached segments, change the default dragging behavior using either the Unselected via/track or the Selected via/track options on the PCB Editor - Interactive Routing page of the Preferences dialog.
  • The routing that you are sliding will not only snap to the current snap grid, the cursor snap behavior to is also dependent on: the object snapping settings in combination with the layer snapping setting, and if the snap guides and axes snapping settings are enabled (press Ctrl+E to toggle these on/off). To temporarily inhibit snapping during interactive sliding, hold down the Ctrl key. Learn more about Working with the Cursor-Snap System.
  • While sliding a route, you can move the cursor and hotspot snap it to an existing, non-moving object such as a pad. Use this to help align the new segment location with an existing object and avoid very small segments being added.
  • To more easily see the objects that make up the current routing, adjust the Transparency of the routing objects in the View Configuration panel (show image).

The Interactive Sliding options available in the panel are described with the Interactive Routing options, in the Interactive Routing and Interactive Sliding Options section.

Interactive Sliding Options

To provide better visibility and control of the sliding process, the Properties panel includes an Interactive Sliding mode - press Tab during sliding to access the options in the panel. The default settings are configured in the PCB Editor - Interactive Routing page of the Preferences dialog.

The following collapsible sections contain information about the Interactive Sliding options and controls available:

Modifying T-Junctions

There are specific algorithms included to support interactively modifying a T-junction - click and drag on the junction point to modify a T-junction.

Examples of the T-Junction dragging capabilities.

Interactive Via Dragging

PCB designers can spend a lot of time adjusting the routing, perhaps due to a late design change, or to achieve completion of their design. This can mean pushing and shoving of existing routing, dragging vias, and nudging components.

Adjust the via dragging behavior in the Properties panel.Adjust the via dragging behavior in the Properties panel.

Complementing the support for glossing of neighbor routes, via dragging is also supported. Via dragging supports Neighbor Glossing, configured through the Interactive Via Dragging mode of the PCB editor's Properties panel. Press Tab during via dragging to access the panel and adjust the settings.

Press Tab as you drag to configure the Via Dragging options.

The following collapsible sections contain information about the Interactive Via Dragging options and controls available:

Differential Pair Dragging

To recognize the members in a differential pair, the concept of Coupling is used. When the software recognizes objects that belong to a differential pair it will attempt to drag the pair's partner track or via if the Keep Coupled option is enabled in the Interactive Sliding or the Interactive Via Dragging modes of the Properties panel.

Press X as you drag a via-pair to rotate the pair by 90 degrees.

To confirm that the partner objects are coupled, the software checks that the objects:

  • For via pairs - belong to the pair, and are closer than 2 * Preferred Gap
  • For track pairs - belong to the pair, are on the same layer, are separated by no more than the Preferred Gap

Options that Affect Routing, Rerouting and Interactive Sliding

There are a number of options that impact the rerouting behavior, these options are configured in the PCB Editor - Interactive Routing page of the Preferences dialog.

 
 
 
 
 
  • The Automatically Remove Loops option must be enabled to perform rerouting. There are situations when you may want to create loops, for example, power net routing. If necessary, Loop Removal can be disabled for an individual net by editing that net in the PCB panel. To access the option, set the panel to Nets mode, then double-click on the net name in the panel to open the Edit Net dialog.
  • As with Interactive Routing, the Current Routing Conflict Resolution mode will be used.
    • Use the checkboxes to enable only those modes you want to be available in the Current Mode list.
    • Press Shift+R to cycle through the enabled modes as you reroute.
  • The Automatically Terminate Routing option is useful. If it is enabled, as soon the new route connects to the existing routing, the redundant loop is removed (as shown in the video above). If this option is disabled, the loop is removed when you right-click to release the current route. The option can work against you when you need to place new routing on top of the existing routing (perhaps overlapping), in this situation it can be better to disable it.
  • The Glossing Effort options control how strongly the routing engine attempts to smooth or gloss the routing being modified, and it does this based on the Hugging Style, Arc Ratio, Miter Ratio, and Pad Entry Stability settings. Learn more about glossing in the, Improving the Quality of the Routing section below.

Interactive Routing and Interactive Sliding Options

Whether you're interactively routing a connection or dragging an existing route to make way for more routing, the same set of routing technologies are applied. This section summarizes the options available in the Interactive Routing and the Interactive Sliding modes of the Properties panel. Press Tab as you work to open the Properties panel in the relevant mode. After changing the settings, click the  icon in the middle of the screen to return to routing or sliding. The default settings for these options are configured in the PCB Editor - Interactive Routing page of the Preferences dialog.

Routing-Aware Move Component

While routing the board, it is not uncommon for the designer to need to adjust the location of a routed component to create space for new routing. To help with this, the PCB editor includes a routing-aware move component feature. The feature is enabled via the Component Re-route checkbox, in the PCB Editor - Interactive Routing page of the Preferences dialog. Essentially, the feature will break the routing at the component pads, fanouts or escape routes, and then attempt to re-route those broken connections once the moving component(s) has been placed.

 
 
 
 
 

A key requirement of the feature is to preserve fanouts and escape routing. To support this, the Shift+Tab shortcut is used to cycle through the possible sets of objects being moved, as detailed below.

During the move process, the options can be controlled using the following shortcuts:

  • Component Re-route Mode (Shift+R) - toggles the re-route mode on and off. After the moving set has been released, the software will attempt to re-route the component(s) to reconnect any broken nets. Use the Shift+R shortcut to inhibit the re-route behavior (or disable the Component re-route option on PCB Editor - Interactive Routing page of the Preferences dialog). The current Component Re-route status is displayed in the Heads Up display and on the Status bar. 
  • Change Component Selection (Shift+Tab) - while dragging, the set of objects being moved can still be changed. Press Shift+Tab to cycle through the following selection sets:
    • Components only, then
    • Components +Via Fanouts +Escapes +Interconnects, then
    • Initial selection set (if different from the previous two), then
    • Back to Components only.
  • Change Gloss Effort (Ctrl+Shift+G) - cycle through the available Routing Gloss Effort options to control the amount of gloss applied during component re-routing.

Enable the Move component with relevant routing option in the Dragging region on the PCB Editor - Interactive Routing page of the Preferences dialog to start the move component action with the relevant routing (Components +Via Fanouts +Escapes +Interconnects). Use the Shift+Tab shortcut to cycle the selection set as described in the previous section. Specify the number of pins in the up to field below. If a component has more pins than specified in this field, the Move component with relevant routing option will not "work," and relevant routing will not be moved with the component. 

 
 
 
 
 

Disable the Move component with relevant routing option to start the move component action with components only selected. Because the set of relevant routing objects is detected prior to the move commencing, it is not possible to use Shift+Tab to cycle through the selection set when the option is disabled.

To make the Move Component behavior routing-friendly, the software detects and fixes violations in both the moving routing and the pre-existing routing. The default handling of violations is to visualize them while moving and attempt to resolve them on drop. Violations are resolved by pushing the pre-existing routing. Violations that cannot be resolved are left.
 
 
 
 
 


When the Component re-route option is enabled, connected routes are restored after the moving component is placed.

For better control of how pads of the component being moved should be connected with the objects of the same nets, you can use the N key to cycle through net line connect modes. The following modes are supported:

  • Pad to Pad - during the move, connection lines are displayed between the pads of the component being moved and the nearest pads of the same nets on the board.
  • Breaks - during the move, connection lines are displayed between the pads of the component being moved and the track breaks of the same nets on the board. This mode indicates where the connection lines have been severed and will possibly be restored after the selection being moved is released.
  • Hidden - connection lines are hidden.

Current net line connect mode is shown in the Heads Up Display (HUD) when a component is moved.

Clearing and Cleaning the Routing

The Backspace key has a useful behavior that can help remove selectively remove a single, selected end-of-route object. This can be a component-free track, arc, via, or pad. If an individual object is selected, and that object only touches one other object, then when Backspace is pressed the selected object will be deleted and the touching object will become selected. Press Backspace again; that object deletes, and the touching one selects. Continue to press Backspace to unroute back to the required location.

Note that if the selected object has more than one object touching it, the object will be deleted (as though using the Delete key) and no connected routing object will be selected when Backspace is pressed.

Use the Backspace key to remove a segment and then select the last-touching segment.
Use the Backspace key to remove a segment and then select the last-touching segment.

To delete one or more selected routing objects on the current document and automatically select all routing objects connected to those deleted, the Ctrl+Delete keyboard shortcut can be used. By using the command repeatedly, you are able to incrementally unwind the routed path in both directions.

Unroute Commands

To remove routes, i.e. remove routed track and vias and replace these with logical connections, you can also use the commands of the Route » Un-Route sub-menu of the main menus.

  • All – unroute all physical connections on the board.
  • Net – unroute all physical connections in a specified net. After launching the command, the cursor will change to a cross-hair. Position the cursor over a routed connection (or pad) belonging to the net you wish to unroute then click or press Enter.

    If you do not know the location of a pad on the net, or one of its routed connections, click in free space and a dialog will pop up prompting for the net name. If you are unsure of the net name, type ? then click OK to launch the Nets Loaded dialog, which lists all loaded nets for the design. The physical connections for the net you choose in the dialog will be unrouted when you click OK.

  • Connection – unroute the physical connection between two pads. After launching the command, the cursor will change to a cross-hair. Position the cursor over a segment of track that you wish to unroute (or a pad or via that it is connected to) then click or press Enter. If opting to unroute a connection by clicking on the associated pad, the following behavior is observed when there are multiple connections to the pad: current layer track will be unrouted first, followed by track in layer stack-up order (from the top layer down).
  • Component – unroute all physical connections emanating from the pads of a specified component. After launching the command, the cursor will change to a cross-hair. Position the cursor over the component whose physical connections you wish to unroute then click or press Enter.

    If you do not know the location of a component, click in free space and a dialog will pop up, prompting for the component's designator. If you are unsure of the designator, type ? then click OK to launch the Components Placed dialog, which lists all components in the design. The physical connections for the component you choose in the dialog will be unrouted when you click OK.

    Track is unrouted from a component pad to the next destination pad along the track. Track on the other side of this destination pad will remain routed.
    You can also unroute all physical connections emanating from the pads of the component under the cursor by right-clicking over a component and choosing the Component Actions » Unroute Component command from the context menu.
  • Room – unroute all physical connections associated with a particular room. After launching the command, the cursor will change to a cross-hair and you will be prompted to choose a room. Position the cursor over the room whose physical connections you wish to unroute then click or press Enter. A dialog will appear asking whether you wish to unroute connections that extend outside of the room. If you click Yes, all track (and vias) that resides in or passes into/out of the room will be removed and replaced by the logical connections. If you click No, only the pad-to-pad connections that are contained wholly inside the room will be unrouted.

    Where track passes outside of the boundaries of the room, the track is unrouted from a component pad in the room to the next destination pad along the track, outside of the room. Track on the other side of this destination pad will remain routed.
    You can also unroute all physical connections associated with the room under the cursor by right-clicking over a room and choosing the Room Actions » Unroute Room command from the context menu.
  • If any track or via primitives to be unrouted are locked, a confirmation dialog will appear asking whether you want to allow the unroute of locked primitives. If you select No, only track and via primitives that are not locked will be unrouted.
  • As well as using one of the Route » Un-Route commands to remove existing routing, it can often be quicker to select the track segments and delete them. Check out the Strategies for Selecting the Routing page for tips and techniques on selecting routing.

Clean Nets Commands

To clean all or individually routed nets for undesired duplicate (stacked) track segments, you can use the Design » Netlist » Clean All Nets and Design » Netlist » Clean Single Nets command, respectively, from the main menus. All nets (or the chosen net) will be analyzed and all instances of stacked track segments will be resolved, with the redundant segments being removed. The command will only work on stacked track segments that are identical in their properties (ie. same layer, same width, etc).

The Autorouter initiates this command automatically after it has finished routing.
If you find an issue, select the text/image and pressCtrl + Enterto send us your feedback.
Note

The features available depend on your Altium product access level. Compare features included in the various levels of Altium Designer Software Subscription and functionality delivered through applications provided by the Altium 365 platform.

If you don’t see a discussed feature in your software, contact Altium Sales to find out more.

Content