Now keeps track of branch points, recursing through them to find the
longest path it can in both directions. This helps to ignore
overlapping segments
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7809
Skip vias are vias that are flashed on their start and end layers but
have no annular rings on the interior layers and do not connect to zones
in those layers
You can now select Annular ring type "Start and end layers only". This
will prevent annular ring flashing on intermediate layers and zones
fills will provide clearance. You can still connect tracks to
intermediate layers but preventing that will fall to the designer
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21433
WALKAROUND::singlestep is used by both shove and walkaround modes and
can bog down when applied to clusters with many objects. In these
cases, we are unlikely to find a viable solution and it is beter to
allow the user to find a different ending position
(cherry picked from commit d9cfb942812a57238d5ed6bbaa2c1d22a8676071)
Note: the single-trace placer (LINE_PLACER) has moved to the FIXED_TAIL for tracking the interim placed routes (and reverting them if user pressed backspace). Unfortunately the DIFF_PAIR_PLACER didn't follow. The result was the dummy CommitPlacement() call at the end of aborted routing would commit the last shove state, even if FixRoute() was never called. For longer-term fix: fix ROUTER_TOOL logic to indicated aborted routing to the router/placer (AbortPlacement() is already there). Also implement FIXED_TAIL in diff pair placement mode.
Note to self: likely a regression after adding aAllowSegmentSizeMismatch parameter (default = true) to AssembleLine(). We need to improve the simplification algorithm to take differing widths into account.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21078
Note to self:
LINE_PLACER::FixRoute used to silently reclaim the UID of the transient via (as used by the SHOVE's heads tracking logic).
Depending on the particular sequence of user events (the bug is next to impossible to reproduce on a touchpad), this would
result in freshly placed vias disappearing...
Fixes https://gitlab.com/kicad/code/kicad/issues/20999
Don't mark a segment as visited until the
start of the next loop.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20379
(cherry picked from commit 52e9cdde992e0a888f9a66575594758dbcd2336a)
Co-authored-by: Jon Evans <jon@craftyjon.com>
UI was getting out of sync with router and they could be on different
layers. There was also some confusion about whether previous layer was
the opposite of next layer (-1/+1 to current layer), or effectively a
back button for the current layer.
Avoids resizing existing tracks to match new track. Adds new parameter
to AssembleLine to allow current behavior while only preventing width
overrides when creating new lines
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20031
- Adds time and delay units
- Adds time domain tuning parameters entry and storage
- Adds pad-to-die delay property
- Adds time domain parameter interface for length / delay calculations
- Adds unit tracking for numerical constants through LIBEVAL
- Will need future work to truly propagate through binary expressions
- Adds time domain tuning to meander placers
- Adds time delay display to net inspector panel
- Modifies DRC to handle time domain constraints