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.
As you route your board, you will be constantly modifying the routing that you have already done. There are two approaches to modifying the routing, you can either reroute, or re-arrange.
Alternatively, you can re-arrange the routing. To re-arrange existing routing, you click and hold on a track segment, and drag it to its new location. Connected track segments will remain connected, at the angle they were previously connected. Dragging also supports some of the Conflict Resolution Modes, including Push, Hug and Push, and Ignore.
Move means to move an object without regard to other objects that connect to it.
Drag means to move an object and have any connected objects remain connected to it.
Reroute an Existing Route
There is no need to un-route a connection to redefine its path, simply click the Route button 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 complete.
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 animation below), which you later resolve.
A simple animation showing the Loop Removal feature being used to modify existing routing.
Options that affect Rerouting
There are a number of options that impact on the rerouting behavior, these options are configured in the PCB Editor - Interactive Routingpage of the Preferences dialog.
The Automatically Remove Loops option must be enabled to perform rerouting.
As with Interactive Routing, the Current Routing Conflict Resolution mode will be used. 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 animation above). If this option is disabled, then the loop is removed when you right-click to release the current route.
Note that there are situations where 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.
Re-arrange Existing Routes
To interactively slide or drag track segments across the board, simply click, hold and drag, as shown in the animation below.
The default dragging behavior is configured in the PCB - Interactive Routing page of the Preferences dialog, as shown in the animation below.
The PCB editor will automatically maintain the 45/90 degree angles with connected segments, shortening and lengthening them as required.
An animation showing track dragging being used to modify the existing routing.
Track Dragging Tips
Change the default dragging behavior using the Unselected via/track and Selected via/track options in the PCB Editor - Interactive Routingpage of the Preferences dialog.
While dragging 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.
During dragging the routing conflict resolution modes also apply (Ignore, Push, HugNPush), 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.
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, if Push mode is enabled, as shown in the animation below.
An example of via dragging, with the routing conflict mode set to Push.