Parent page: The Routing
Routing a printed circuit board is a detailed, iterative process. Rarely are you able to simply route, or ActiveRoute, 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.
Improving the Routing
To help produce neat routing with the minimum number of corners, the PCB editor also includes a Glossing tool. Glossing is a sophisticated set of algorithms developed specifically to produce cleaner routing and pad entries, that respect the intent of the applicable design rules. Glossing attempts to reduce the path length and also improve the shape of corners and reduce their number, generally resulting in neater routing created from fewer segments. Glossing also leaves sub-net jumpers as they were, and when there are room-based width rules, width changes at the boundary are respected. As you move the cursor around as you define a new interactive route path, all of the yet-to-be committed routing is also automatically glossed.
The Glossing engine also includes a Retrace Selected command. Use this when you need to update selected routes to the changes you have made to settings in the routing rules. With Retrace you can "fatten up" that existing power routing, or update that differential pair to new width and gap settings.
-
Glossing focuses on improving the trace geometry, where Retrace assumes the overall geometry is satisfactory, focusing instead on satisfying the design rules.
-
Glossing preserves the existing trace width and differential pair gap, while Retrace changes them to Preferred.
-
Glossing runs whenever ActiveRoute finishes, if the Gloss Results option is enabled in the PCB ActiveRoute panel.
-
Glossing also runs during interactive routing, on all track segments that are yet to be committed (all segments placed since the Interactive Routing command was launched and you started routing a net).
Glossing and Retracing are automated tools for cleaning and improving the quality of existing routes, the PCB editor also includes powerful interactive re-routing and track sliding features.
► Learn more about Modifying the Routing
Summary of Glossing Behavior
To summarize:
- Flexible approaches to selection can be used, supporting partial glossing of a routed net:
- To gloss only a section of a routed net you can select a track segment at either end of the section or select a pin or a via to signify the end of the desired section.
- Glossing attempts to repair dangerous pad entries:
- Gloss does not automatically comply with the SMT rules (SMD Entry & SMD To Corner) if it detects that they are encouraging unnecessary jogs and circuitous routing.
- If SMT rules rules are present the gloss engine tries to recognize dangerous situations, such as the potential for solder bridging, and adjusts its behavior based on these rules.
- For this to occur, the Corner option must be disabled in the SMD Entry rule, and the SMD To Corner rule must have a suitable setting.
- Rule deviations: Gloss will keep the track segment orthogonal with the pad edge being exited from, but will not necessarily keep it centered within that edge. Gloss will also allow the track segment to exit from the side of the pad if the SMD to Corner distance and other applicable rules can be satisfied.
- Glossing differential pairs:
- When applied to differential pair routes, Gloss attempts to zip-up the pair, reducing the lengths of the unzipped portions. The corresponding unzipped portions from opposite sides are made equal in length, if possible, but Gloss does NOT add meanders to the shorter side of the pair. If length balancing is not achieved naturally, the pair is left unbalanced.
- Particular attention is applied to differential pair pad entries to improve their quality, but Gloss does not attempt to match the lengths of the entry routes.
- Where differential pair routes cross a room boundary and change width, Gloss gives preference to synchronous width change of the pair members. This means it does not change the width/gap of both routes right on the boundary, instead it focuses on keeping the pair matched, so when a width change occurs, it happens to both segments at the same time. So if the routing enters the room at an angle, one route in the pair will change width on the room boundary, and the second route in the pair will change width at a location adjacent to the first route. (show image)
- Support for Subnet Jumpers:
- Gloss treats Subnet Jumper tracks as fixed.
- Support for room-based rules:
- Gloss adheres to Clearance and Diff Pair Routing rules scoped to rooms.
- Gloss allows the route to change width as it enters a room; it will attempt to preserve the original widths used both outside and within the room.
- If there is a width change at a room boundary, Gloss will maintain the width change.
- Exclusions:
- To exclude routes from glossing or retracing, lock the track segments.
- Tracks at non-45 degree angle increments are not glossed; it is assumed these have been placed intentionally to satisfy a design requirement.
- Feedback:
- Command and progress information is displayed on the Status bar.
- Info and Warning messages are displayed in the Messages panel. Details are in the Information and Warnings section below.
If a Route Guide has been used, the routes within the guide are not glossed because glossing is not aware of the route guide shape.
Selecting the Routes to be Glossed or Retraced
One of the great challenges with interactive software tools is interfacing those tools to the designer's fingertips so they can easily and fluidly move between the various tasks, such as creating, reshaping and cleaning the routing. For this to happen, it must be easy to select the routes of interest.
To select a routed net (or nets) for glossing or retrace:
- Click to select an object anywhere along the route then press Tab to extend that selection to all connected track segments on the layer(s) on which the original object is present. A second press of the Tab key will extend the selection to all connected objects on that net, on all used layers. If there are other sections of the net that are not directly connected to the currently selected objects, a third press of the Tab key will extend the selection to include all objects in that net. The next press of Tab will revert back to the original selection set.
- Click+Drag to select a rectangle, from right to left, to invoke the (green) select touching rectangle mode to quickly select a track segment in multiple nets then use the Tab key to select all connected tracks on that layer for all of the nets you have selected.
- To gloss only a section of a routed net, select a track segment at either end of the section then run the Gloss command. Only the routing between (and including) the selected segments will be glossed.
Select Within or Select Touching?
In the PCB editor, selection can either be objects that are within the selection rectangle or touching the selection rectangle. This is controlled by the direction you move the mouse as you draw the selection rectangle:
![Demonstration of the selection techniques. Demonstration of the selection techniques.](/documentation/sites/default/files/wiki_attachments/302081/Mouse_L-ClkDrg_Outlined_L-R.webp) |
Select Within - click and drag a blue rectangle from left to right to select all visible, unlocked objects that are completely within the selection rectangle. |
![Mouse left click and drag from right to left, selects objects that are touched by the selection box](/documentation/sites/default/files/wiki_attachments/302081/Mouse_L-clkdrg_Outlined_R-L.webp) |
Select Touching - click and drag a green rectangle from right to left to select all visible, unlocked objects that touch the selection rectangle. |
Techniques to select connections or existing routes
To Select |
Use Mouse + Keys |
Outcome |
Existing Routes |
![Mouse left click and drag from right to left, selects objects that are touched by the selection box](/documentation/sites/default/files/wiki_attachments/294712/Mouse_L-ClkDrg_Small_Outlined_R-L.webp) |
All unlocked track segments that are touched by the green selection rectangle are selected. Use the Tab key to select additional track segments in those nets. |
Routes under a component |
![Hold Shift then left mouse click and drag from right to left to add all objects that are touched to the selection set](/documentation/sites/default/files/wiki_attachments/302081/Key_Shift_L-ClkDrg_Outlined.webp) |
All unlocked track segments that are touched by the green selection rectangle are selected. Without Shift, the click and drag can be interpreted as Move Object; if it is the component above the routes will move. The component will also be selected, however when you press Tab to select connected track segments, the component will be deselected.
Alternatively, use the Selection Filter in the Properties panel to disable the selection of large objects, such as components and polygons.
|
Component pads |
![Hold Ctrl down, then left mouse click and drag from right to left to select all component pads that are touched](/documentation/sites/default/files/wiki_attachments/302081/Key_Ctrl_L-ClkDrg_Outlined_R-L.webp) |
All unlocked component pads that are touched by the green selection rectangle are selected. |
Other objects in the net |
![Tab key, after selecting a routing object press Tab to extend the selection to include connected objects](/documentation/sites/default/files/wiki_attachments/294712/Key_Tab.webp) |
First press of Tab adds other objects on a layer(s) that the selected object touches.
Second press of Tab adds all same-net objects on other layers.
Continue to press Tab to cycle through the available selection states.
|
Additional routes |
+ combinations shown above |
Retain current selection as additional objects are selected. |
Demonstration of the selection techniques
Demonstration of the selection techniques.
Preparing for Glossing
Glossing runs during Interactive Routing; when ActiveRoute completes (if the Gloss Results option is enabled); or as a manually-run pass on the selected routing, obeying the current settings configured in the Interactive Routing page of the Preferences dialog. As well as selecting the routing to be glossed, there are also a number of options that control glossing behavior.
Options that Control Glossing Behavior
![Interactive Routing preferences](/documentation/sites/default/files/wiki_attachments/302081/Dlg_Prefs_InteractiveRouting-highlight_AD20_2.webp)
Gloss Effort (Routed)
How strongly a route is glossed is controlled by the current Gloss Effort (Routed) setting. Configure the option in the Interactive Routing page of the Preferences dialog, or use the Ctrl+Shift+G shortcuts to cycle through the three modes. The current setting is displayed on the Status bar. (show image)
- Off - In this mode, glossing is essentially disabled. Note, however, that cleanup is still run after routing/dragging occurs to eliminate, for example, overlapping track segments. This mode is typically useful at the end stage of board layout when the ultimate level of fine-tuning is required (for example, when manually dragging tracks, cleaning pad entries, etc.).
- Weak - In this mode, a low level of glossing is applied with the Interactive Router considering only those tracks directly connected to or in the area of the tracks that you are currently routing (or tracks/vias being dragged). This mode of glossing is typically useful for fine-tuning track layout or when dealing with critical traces.
- Strong - In this mode, a high level of glossing is applied, with a strong emphasis on the shortest path. This mode of glossing is typically useful in the early stages of the layout process when the aim is to get a large portion of the board routed quickly.
Gloss Effort (Neighbor)
Gloss Effort (Neighbor) configures the amount of glossing applied to adjacent routes that are impacted by the current interactive routing or sliding. It also has three settings; Off, Weak and Strong.
Hugging Style
This option controls how corner shapes are to be managed during glossing. Glossing applies to all track segments that are impacted by the current editing action, so can also affect surrounding tracks. For example, during interactive routing or interactive sliding in push mode both the tracks being slid and the tracks being pushed will be glossed, according to the current Hugging Style setting.
- 45 Degree - always use straight orthogonal/diagonal segments to create corners (use this mode for traditional orthogonal/diagonal routing behavior).
- Mixed - use straight track segments when the objects being moved/pushed against are straight, use arcs when they are curved.
- Rounded - use arcs at each vertex being glossed. Use this mode for snake routing, and to use arcs + any angle routes when glossing (during interactive routing and manual glossing).
Minimum Arc Ratio
The Minimum Arc Ratio is applied during any angle interactive routing and also during interactive sliding with Mixed Hugging Style. The ratio is used to determine the minimum radius arc allowed, when the arc radius falls below this minimum the arc is replaced by track segments, where:
Min Arc Radius = Min Arc Ratio x Arc Width
- This setting is not applied during any arc in corner routing or interactive sliding with Rounded Hugging Style, as these modes do not use segmented arcs.
- Set the Minimum Arc Ratio to 0 (zero) to always use arcs.
Miter Ratio
The Miter Ratio controls the minimum corner tightness. The Miter Ratio multiplied by the current track width equals the separation between walls of the tightest U-shape that can be routed for that ratio, as shown below. Enter a positive value equal to or greater than zero.
![Routing corner tightness is controlled by the Miter Ratio](/documentation/sites/default/files/wiki_attachments/302081/MiterRatio_AD20_2.webp)
Pad Entry Stability
The Pad Entry Stability slider protects centered pad entries. It applies during glossing to protect an already-centered pad entry (exit), it does not attempt to re-center an existing off-center pad entry.
0 (Off) =
no protection
10 (Max) =
maximum protection
Demonstration of the Pad Entry Stability feature.
Performing a Gloss
The glossing tool is run:
- On selected routing - by choosing the Route » Gloss Selected command from the menus or pressing the Ctrl+Alt+G keyboard shortcuts.
- After ActiveRoute - by enabling the Gloss Results option in the PCB ActiveRoute panel.
- During Interactive Routing - in accordance with the current gloss settings, defined in the Preferences dialog or the Interactive Routing mode of the Properties panel.
- During Interactive Sliding - in accordance with the current gloss settings, defined in the Preferences dialog or the Interactive Sliding mode of the Properties panel.
Inhibit Glossing During Routing and Sliding
There may be times when you want to temporarily turn off glossing. Glossing can be inhibited during routing by pressing and holding the Ctrl+Shift shortcut keys - as soon as the keys are released glossing resumes at the current Routing Gloss Effort setting. Note that the status bar will not reflect this state; it will continue to display the last selected state.
Retrace your Routes
The Glossing engine includes a second command for improving existing routes, which is Route » Retrace Selected. Where Glossing attempts to shorten the overall route length and reduce the number of corners, Retrace re-applies the preferred width and clearance requirements to an existing route. Using Retrace, you can easily decrease or increase the routed width of a selected set of nets, or even the width and gap of differential pairs.
Retrace works exactly as its name implies, running along the selected routes, updating them to the current rule specifications. Because it does this on an individual net or pair level, it will attempt to maintain clearances, but is not able to push surrounding routes if more room is required. In this situation, the rule updates are applied only to those route segments that do not create a violation.
Access
The retrace tool can be accessed in the PCB Editor by:
- Choosing the Route » Retrace Selected command from the main menus.
Retrace Behavior
To summarize:
- Retrace is similar to Gloss (and uses the same engine internally). The differences are:
- Gloss preserves the width; Retrace changes it to the Preferred value.
- Gloss produces the shortest possible result, often radically deviating from the original; Retrace approximately follows the original.
- Use the same selection principles as Gloss to select the routes to be Retraced.
- Use Retrace to update the selection and apply the applicable preferred Width rule.
- Modifies selected routes as needed to avoid poor quality corners and pad entries while preserving the general route geometry.
- Use Retrace to update the diff pair gap:
- Will update the zipped portion of the pair (where the sides are at Max Gap or less from each other), changing the gap to Preferred.
- To reduce the gap in a routed pair, change the Diff Pair Routing rule so that the Preferred Gap is the desired gap, and the Max Gap is the old Preferred Gap value, then run Retrace. Caveat: Retrace does not handle an unreasonably large Max Gap.
- Retrace can also be used to increase the gap in a routed pair; set the Preferred Gap in the Diff Pair Routing rule to the required value.
- Note: if the new Preferred settings are larger than the current width/gap, Retrace may fail to reach its goal without creating violations. In such cases it will use smaller values to avoid creating violations. No pushing of obstructions is performed.
- Exclusions:
- Retrace requires both ends of the selected routing to connect to a pad or via, it does not work on dangling routes.
- Feedback:
- Command and progress information is displayed on the Status bar.
- Info and Warning messages are displayed in the Messages panel. Details are in the Information and Warnings section below.
For differential pairs, the Retrace algorithm works in such a way that Max Gap also affects the freedom for deviating from the original geometry - the larger the Max Gap, the more deviation allowed. To reduce the amount that differential pairs are moved during a Retrace action that reduces the width/gap, a good rule of thumb is to set the Max Gap to the previous Preferred Gap.
Information and Warning Messages
Info |
Reason |
Skipped immovable + <Descriptor> |
An object is protected from Gloss/Retrace: for example, locked or belonging to a component.
Max count 20, clickable. |
Skipped subnet jumper + <Descriptor> |
Subnet jumpers are left alone, user informed in each case.
Max count 20, clickable. |
Skipped reflex angle + <Descriptor> |
Arcs greater than 180 degrees are not glossed.
Max count 20, clickable.
|
Skipped objects in user-defined Union |
Objects belonging to a union are not glossed (does not apply to Length Tuning unions).
Issued once per union involved.
Max count 20, clickable, zooming to the Union bounding rectangle.
|
Command does not apply to arcs (Retrace only) |
Retrace does not support arcs.
Max count 1, clickable, zoom to the first arc encountered.
|
Warning |
Reason |
Applicable Diff Pair Routing rule not found for some object(s) + <Descriptor> |
Some of the Gloss / Retrace targets belong to a diff pair net, but there is no applicable Diff Pair Routing rule.
In such cases, the command treats the target as a non-diff pair object, meaning the two sides of the pair may be Glossed away from each other.
Max count 1, clickable.
|
Applicable Width rule not found for some object(s) + <Descriptor> |
Retrace uses Min to Preferred Width rule settings. If there is no applicable Width rule found, the current width is preserved.
Max count 1, clickable.
|
Pre-existing Min Width violation(s) detected + <Descriptor> |
Retrace uses Min to Preferred Width rule settings, using preferred if it causes no DRC violations, or smaller if needed to avoid DRC violations.
Thus, a DRC-free track will stay DRC-free if it was at least at Min Width to begin with. If it was narrower, setting it to Min width may result in a DRC violation.
This message warns of such occurrences, whether or not it resulted in an actual DRC violation.
Note that the original thin object will have been widened and possibly moved by the time you have a chance to click on the message. You may need to Undo to understand what has happened.
Max count 1, clickable.
|