Skip to content

D111 — Advice regions as in-memory rule areas and rules

Decision

Advice regions are an in-memory rule area plus disallow track/via rules (doc 05 §34) whose conditions use only && (A.intersectsArea('tmk:advice:N') && A.NetName != 'NET1', or == 'NET3'): "reserve for" or "keep out", per layer, tracks and/or vias. They live in the router's working copy (RouterOptions::extra_zones / extra_rules) and never in the output board or the caller's rules

Alternatives

A new obstacle type with a per-net scope in the obstacle caches; keep-out zones (they block every net, so the named ones cannot be exempt)

Reason

§34 already applies position-dependent rules in the lattice search and in every exact check, outside the per-class caches, and handles nets. KiCad's grammar reads a && b \|\| c as a && (b \|\| c), so no \|\| is generated and "every net but these" is a conjunction of inequalities (doc 17 §4)