Routing costs

These are Autorouter parameters and their related costs and effects. The names of the parameters are the same as they would be used in an Autorouter control file (.ctl).

Layer costs

   
cfBase.xx: 0..20 Base costs for one step on the corresponding layer. Recommendation: outside layers (Top, Bottom) always 0, inside layers greater than 0.

Costs

   
cfVia: 0..99 Controls the use of vias. A low value produces many vias but also allows the preferred direction to be followed. A high value tries to avoid vias and can violate the preferred direction. Recommendation: low value for the routing pass, high value for the optimization.
cfNonPref: 0..10 Controls following of the preferred direction. A low value allows tracks to be routed against the preferred direction, while a high value forces them into the preferred direction.

If cfNonPref is set to 99, track sections can only be placed in the preferred direction. Only select this value if you are certain that this behavior is really wanted.
cfChangeDir: 0..25 Controls how often the direction is changed. A low value means that many bends are allowed within a track. A high value produces virtually straight tracks.
cfOrthStep, cfDiagStep Implements the rule that the hypotenuse of a right-angled triangle is shorter than the sum of the other two sides. The default values are 2 and 3. That means that the costs for the route using the two other sides are 2+2, as against 3 for the hypotenuse. These parameters should be altered with great care!
cfExtdStep: 0..30 Controls the avoidance of track sections that run at an angle of 45 degrees to the preferred direction, and which would divide the board into two sections. A low value means that such sections are allowed while a high value tries to avoid them.

In combination with the parameter mnExtdStep you can control the length of these tracks. If mnExtdStep = 0, each grid step at 45 degrees to the preferred direction causes costs that are defined in parameter cfExtdStep. Choosing for example mnExtdStep = 5 allows a track to run five steps at 45 degrees without any additional costs. Each further step causes costs defined in cfExtdStep. In this way, 90-degree bends can be given 45-degree corners. Settings like cfExtdStep = 99 and mnExtdStep = 0 should avoid tracks with 45-degree angles. This parameter is only relevant to layers which have a preferred direction.

Recommendation: use a lower value for the routing pass, and a higher value for the optimization.
cfBonusStep, cfMalusStep: 1..3 Strengthens the differentiation between preferred (bonus) and bad (malus) areas in the layout. With high values, the router differentiates strongly between good and bad areas. When low values are used, the influence of this factor is reduced. See also cfPadImpact, cfSmdImpact.
cfPadImpact, cfSmdImpact: 0..10 Pads and SMDs produce good and bad sections or areas around them in which the Autorouter likes (or does not like) to place tracks. The good areas are in the preferred direction (if defined), the bad ones perpendicular to it. This means that tracks which run in the preferred direction are routed away from the pad/SMD. With high values the track will run as far as possible in the preferred direction, but if the value is low it may leave the preferred direction quite soon. It may be worth selecting a somewhat higher value for cfSmdImpact for densely populated SMD boards.
cfBusImpact: 0..10 Controls whether the ideal line is followed for bus connections (see also cfPadImpact). A high value ensures that the direct line between start and endpoint is followed. Only important for bus routing.
cfHugging: 0..5 Controls the hugging of parallel tracks. A high value allows for a strong hugging (tracks are very close to each other), a low value allows for a more generous distribution. Recommendation: higher value for routing, lower value for the optimization.
cfAvoid 0..10 During the ripup, areas are avoided from which tracks were removed. A high value means strong avoidance. Not relevant to the optimization passes.
cfPolygon 0..30 If a polygon has been processed with the RATSNEST command and therefore is displayed as a filled area before you start the Autorouter, every step within the polygon is associated with this value.

A low value makes it easier for the Autorouter to route traces inside the polygon area. The probability, however, that the polygon is broken into several pieces is higher. A higher value causes the Autorouter to make fewer connections inside the polygon. If a polygon is in outline mode and not processed by RATSNEST before you start the Autorouter, it won't be considered at all. cfPolygon does not play a role for such polygons.

Maximum

   
mnVia 0..30 Controls the maximum number of vias that can be used in creating a connecting track.
mnSegments 0..9999 Determines the maximum number of wire pieces in one connecting track.
mnExtdSteps 0..9999 Specifies the number of steps that are allowed at 45 degrees to the preferred direction without incurring the value of cfExtdStep. See also cfExtdStep.