Commit Graph

1563 Commits

Author SHA1 Message Date
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
Jon Evans d781d70a09 PNS fix dragging a single footprint
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15693
2023-09-20 11:53:43 -04:00
Jon Evans 5a9c028e85 PNS: Allow dragging more than one footprint
Fixes https://gitlab.com/kicad/code/kicad/-/issues/11312
2023-09-18 22:37:11 -04:00
Marek Roszko 22b733209d Fail GAL on its header leaking audit
Maybe we should rethink directly accessing GAL so much, but at least 600 files didn't need GAL leaked into them due to view_overlay.h
2023-09-18 19:52:27 -04:00
Alex Shvartzkop 06463fd35a Fixes for Wayland cursor warping:
- Emulate the mouse position, since no motion events are sent after warp
- Do not call wl_surface_commit to prevent an assert
- Re-organize code a bit
2023-09-18 12:56:54 +00:00
Jeff Young ed292e180d Don't assert on 0-width tracks. Just don't inherit from them.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14558
2023-09-15 19:09:58 +01:00
Jeff Young 408f505b75 Formatting. 2023-09-15 19:09:58 +01:00
Tomasz Wlostowski a7ae4d8e9a router: orphaned net is not the same as null net handle 2023-09-12 16:03:55 +02:00
Jeff Young 93f004ff65 Formatting, and a fix for a shadowed variable. 2023-09-12 13:45:28 +01:00
Marek Roszko 3bbf3a61b5 Remove PNS APIEXPORT that never made sense
It can't work because all base classes must be APIEXPORTed
2023-09-08 18:44:46 -04:00
Alex Shvartzkop f211b2cdd0 Remove unused method from router_tool.h 2023-09-07 10:57:02 +03:00
Marek Roszko 67b031adab Painter base class should just live in gal instead of being in denial 2023-09-06 20:23:19 -04:00
Jeff Young 43862d767e Don't return separate shapes from a custom-shaped pad.
It just confuses the hull generator.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15553
2023-09-03 13:23:53 +01:00
Jeff Young 891583f616 Fix nullptr error. 2023-09-02 12:08:37 +01:00
Jeff Young 9a045af81f Make all debugging statments use netcode (instead of some using netname). 2023-08-31 15:15:57 +01:00
Jeff Young 05135eed66 Extra debugging info for pns regression tests. 2023-08-31 15:15:57 +01:00
Jeff Young c049e1e90d Formatting (no functional changes). 2023-08-31 15:15:57 +01:00
Jeff Young cf14b3c233 Fix conversion to netnames in PNS_DBG output. 2023-08-31 00:25:20 +01:00