Alex Shvartzkop
7abe2e3ea0
Restore clearance cache usage in PNS::NODE::NearestObstacle.
...
This (and the other commit) restores router performance to pre-7.0.3 levels.
(cherry-picked from commit 5e93814283
)
2023-11-07 23:25:53 +03:00
Seneral
55c44966d9
Added a temporary item cache to improve router performance
...
Some items only used within algorithms were never cached
Because they are hard to manually clean up
But caching them does help the algorithms a lot
So this solution is the best I can think of
(cherry picked from commit d29c07a663
)
2023-11-07 23:23:52 +03:00
Jeff Young
abda3c0d33
Handle various keepout flags independently.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16037
2023-11-07 11:57:23 +00:00
Jeff Young
7f8e397dfb
Behave (or assert) when source or target are null or dirty.
2023-11-01 17:11:42 +00:00
Jeff Young
2ce4adc739
Check physical_clearance rules in the router.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16007
2023-11-01 14:13:16 +00:00
Jeff Young
d93bb464bf
When garbage collecting locally we also need to clear global references.
2023-11-01 12:47:54 +00:00
Wayne Stambaugh
6183a1e4de
Coverity warning fixes.
2023-10-30 09:16:24 -04:00
Jeff Young
0747d35228
Minor formatting fixes.
2023-10-28 17:58:33 +01:00
Jeff Young
a2f19ea6bb
Push m_forceMarkObstaclesMode down into the DRAGGER.
...
The existing flag was never read anyway, and it's only the DRAGGER
that knows that the starting state is already colliding and that we
need to force mark-obstacles mode.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8641
2023-10-28 17:52:15 +01:00
Ian McInerney
171458a27b
Introduce action friendly names
...
Friendly names can be used to display action information that is clearer
in non-hierarchical contexts (e.g. not in menus).
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8075
2023-10-27 23:58:29 +01:00
Wayne Stambaugh
6269453416
Coverity warning fixes.
2023-10-27 16:48:14 -04:00
Jeff Young
8d3a3419f8
Honour 90-degree router mode in a few more places.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10421
2023-10-26 14:18:28 +01:00
jean-pierre charras
4ffa013467
Fix minor compil and Coverity warnings (not initialized vars)
2023-10-23 20:13:46 +02:00
Jeff Young
fb84f4592b
Check vias before holes as we assume any hole is non-pushable.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15840
2023-10-22 22:46:19 +01:00
Jeff Young
7c08aa09d5
Don't generate virtual vias when editing a tuning pattern.
2023-10-22 20:35:15 +01:00
Jeff Young
f1efae1e05
We don't want to do collision testing against virtual vias.
...
(Which means they had better not have a hole.)
2023-10-22 20:35:15 +01:00
Jeff Young
5da35d7750
Don't modify dp-tuning when doing skew tuning.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15901
2023-10-22 20:35:14 +01:00
Jeff Young
059a95a2f2
Lock generated tracks when routing.
...
Otherwise they lose their group status when being replaced by the
router (even if they weren't otherwise modified).
2023-10-19 11:39:01 +01:00
Mike Williams
70917a14e7
Route from end: fix crash and snapping bug
...
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/13992
2023-10-18 12:32:32 -04:00
Jeff Young
89011e888c
More modern look & feel for tuning status popup.
...
(Also includes min and max info, and move string processing out
of router.)
2023-10-17 13:30:58 +01:00
Jeff Young
9ed802e951
Support min/max rules in diff pair placer and skew placer.
2023-10-17 13:30:58 +01:00
Wayne Stambaugh
f629898c8b
Coding policy fixes.
2023-10-17 08:07:15 -04:00
Wayne Stambaugh
b5eee9dd7e
Coverity warning fixes.
2023-10-16 17:04:14 -04:00
Jeff Young
2c9d43474d
Formatting.
2023-10-16 13:44:05 +01:00
Jeff Young
64cc8dd6aa
Adjust dashed-box and edit-point locations to be outside meanders.
2023-10-16 13:44:05 +01:00
Jeff Young
d51e058e24
Move diff-pair netname resolution to BOARD.
...
Also adds reporting of dp gap constaints and max uncoupled to track
selections, and max uncoupled during routing.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13748
2023-10-15 22:46:23 +01:00
Jeff Young
ccc20348bf
Don't start with MEANDER_SIDE_DEFAULT.
...
It means we get a different default for left-to-right-drawn than we
do when going the other way.
Also fixes bug in PNS::DP_MEANDER_PLACER so that it honours side
specified in settings.
2023-10-15 17:59:11 +01:00
Jeff Young
2450250ae7
Use "tuning pattern" in the GUI.
2023-10-15 17:59:11 +01:00
Jeff Young
5f5113c80a
Pick up current rule values when editing meanders.
2023-10-14 15:04:18 +01:00
Alex Shvartzkop
61bdee027b
Fix a crash when using length tuning tools.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15874
2023-10-14 16:53:28 +03:00
Jeff Young
0a111e9fbb
Hook up layer-toggle command to router.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15812
2023-10-13 21:33:27 +01:00
Jeff Young
62d959ed0e
Don't assume an error location for PAD::GetEffectivePolygon().
...
While ERROR_INSIDE was good for plotting, 3D generation, etc., it's
not good for generating router hulls.
Also reverts part of the change to always use polygons for PNS::SOLIDs. A single shape in a SHAPE_COMPOUND will be faster (and
more accurate).
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14898
2023-10-13 13:59:26 +01:00
Jon Evans
96f9f2c658
PNS: Allow for approximation error in hull clearance
...
Also revert to using exact hulls for non-compound shapes
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14898
2023-10-12 22:55:34 -04:00
Jeff Young
1b676985f6
Retire length tuning tool in favour of first-class meanders.
2023-10-12 17:54:34 +01:00
Jeff Young
d04641c868
ADDED: support for editing target length in Meander Properties dialog.
...
Also supports overriding the custom rules.
2023-10-12 17:54:34 +01:00
Jeff Young
d916e650f1
Tuning status popup for point editor.
2023-10-10 11:55:57 +01:00
Jeff Young
d10b0b053e
Move meander placer picker tool from item highlighting to net highlighting.
2023-10-09 22:32:32 +01:00
Jeff Young
35d8635a6b
Default skew tuning lenght to diff between N/P, but allow override.
2023-10-09 15:22:41 +01:00
Alex Shvartzkop
a4832dd3c8
ADDED: Interactive meander objects for length tuning.
2023-10-08 02:41:17 +00:00
Alex Shvartzkop
455268f45e
Allow to specify meander initial side via meander settings.
2023-10-08 02:41:17 +00:00
Alex Shvartzkop
ce8849f8bc
Skip move in meander placers if points match.
2023-10-08 02:41:17 +00:00
Alex Shvartzkop
8b21a260c9
Refactor MEANDER_PLACER_BASE::cutTunedLine to SHAPE_LINE_CHAIN::Split.
2023-10-08 02:41:17 +00:00
Alex Shvartzkop
546c7ed218
Introduce GENERATOR_TOOL.
2023-10-08 02:41:17 +00:00
Alex Shvartzkop
74075fe4d6
Fix target skew not working properly in meander skew placer.
2023-10-07 03:51:26 +03:00
Alex Shvartzkop
e4e769493c
Skip very short segments in MEANDER_SHAPE::forward.
2023-10-07 03:51:18 +03:00
Jeff Young
420cadab34
Separate meander settings from target length/skew.
...
Settings move to Board Setup, while target length is sourced from
the custom rules (or a text-entry dialog if no rules are active for
the track).
Target skew is sourced from the coupled-trace-length minus the
trace-to-be-tuned length.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12075
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15826
2023-10-06 19:46:55 +01:00
Ian McInerney
0876fb0985
Re-implement direct layer switching in the router tool
...
Also add a new framework to allow grouping actions that are similar into
a single context that can then be used for mass comparisons.
2023-10-05 13:34:25 +01:00
Mike Williams
c2d7b26ebd
PCBNew: don't grab the wrong parameter type when placing vias
2023-10-04 12:17:15 -04:00
Jeff Young
9214e47367
Only allow switching to enabled layers.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15779
2023-10-01 15:27:55 +01:00
Jeff Young
be532e96d6
Fix errors in calculating tuning length.
...
Fix mismatched parameter passing in TOPOLOGY::followTrivialPath()
and TOPOLOGY::AssembleTrivialPath().
Fix logic error in PNS::JOINT::IsLineCorner().
Handle VVIAs in PNS::JOINT::IsNonFanoutVia().
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10614
2023-09-25 15:50:44 +00:00