Jeff Young
f24cf2250e
Make sure we have a BOARD when trying to read nets.
...
Also fixes a nullptr bug when trying to write nets when we don't
have a NODE.
2023-08-29 17:30:00 +01:00
Wayne Stambaugh
e4feb8826b
Coverity issue fixes.
2023-08-28 09:29:56 -04:00
Mike Williams
2b78c20a62
PCB: add grid overrides to graphics/router/etc.
2023-08-24 13:58:22 -04:00
Mike Williams
9079df85fd
PCB: check ratsnest for nullptr (segfaults)
2023-08-24 10:51:34 -04:00
Jeff Young
6040f49272
Don't write opaque data types to PNS log.
2023-08-24 12:12:16 +01:00
Roberto Fernandez Bautista
f4f1ca352a
Fix crash when running PNS Router Dump (pressing 0)
...
Some ITEMs don't have a Parent
2023-08-23 22:19:47 +02:00
Jeff Young
6166a96b8e
Update PSN logger to new NET_HANDLE architecture.
2023-08-23 14:10:03 +01:00
Jeff Young
76cd637895
Make the net identifier opaque to PNS router.
...
This also improves performance as we don't have to look up the
netcodes in a map.
2023-08-22 15:17:02 +00:00
Alex Shvartzkop
10e2e4a12d
Another try at fixing arcs.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15471
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15469
2023-08-22 16:10:58 +03:00
Jeff Young
8f1a987044
Fix typos.
2023-08-19 23:20:52 +01:00
Jeff Young
fa060c7c58
Make sure dummy tracks have ROUTER_TRANSIENT flags.
...
Also give them more info that might be queried by custom DRC rules.
This currently just includes positioning info (it already included
nets and principal layer). We *could* also try to figure out all
layers for dummy vias, and/or widths for dummy tracks / arcs....
2023-08-19 20:51:04 +00:00
Alex Shvartzkop
a0d96cea9f
Rename Save -> SaveBoard, Load -> LoadBoard in PLUGIN.
2023-08-15 05:26:12 +03:00
Jon Evans
a77e630901
ADDED: Connectivity for graphic shapes on copper layers
...
Graphic shapes (excluding text) can now have nets when on
copper layers. Shapes behave like tracks in that they will
pick up nets from connected pads, and follow track opacity
settings.
2023-08-10 21:47:43 -04:00
jean-pierre charras
cff2583f15
Minor fixes to help translations:
...
- do not translate a debug message.
- remove useless spaces at end of lines (always annoying for translators).
2023-08-10 10:16:24 +02:00
Roberto Fernandez Bautista
6ba250a4e6
PNS Log Viewer: Refactor loading/saving functions
2023-08-09 22:21:14 +00:00
Jon Evans
8776437f29
PNS: Placement is not valid if via can't be placed
2023-08-07 18:42:44 -04:00
Jon Evans
bb13e8e754
PNS: Use a via to resolve via sizes
2023-08-07 18:31:05 -04:00
Roberto Fernandez Bautista
feb887fe8f
PNS: Prevent re-entry events when saving log to file
2023-08-07 23:48:58 +02:00
Roberto Fernandez Bautista
79a6b0d129
PNS: Re-add debugging of via dragging
2023-08-07 23:48:24 +02:00
Roberto Fernandez Bautista
6ebc2fca15
PNS: Only log events when EnableRouterDump is true
2023-08-07 23:48:24 +02:00
Roberto Fernandez Bautista
3bf9797620
PNS: add new "EnableRouterDump" kicad_advanced setting
2023-08-07 23:43:54 +02:00
Jon Evans
103eb556f7
PNS: Make sure log viewer uses the actual design settings
2023-08-06 16:05:37 -04:00
Jeff Young
b401c214f5
Fix missing variable initialization.
2023-08-06 20:57:42 +01:00
Jon Evans
5cbe3c5d42
PNS: Fix a few issues with debug logging
...
Hide non-copper layers for clarity
Fix saving of router settings
2023-08-06 15:30:58 -04:00
jean-pierre charras
5e04e90fb3
LENGTH_TUNER_TOOL: fix a bug (missing initialization) creating a serious isse.
...
m_inLengthTuner was not initialized, preventing the tool to be started (sometimes)
Fix also a few not initialized members.
2023-08-06 13:20:43 +02:00
Jon Evans
6f2574d0d2
Manual cherry-pick of 2075a99c
2023-08-05 20:13:15 -04:00
Jeff Young
620b6b7169
Re-entrancy guard for length tuner tool.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15268
2023-08-04 17:37:09 +01:00
Jon Evans
ca4d6e8d1d
Fix msvc being unhappy
2023-08-01 19:59:58 -04:00
Jon Evans
cc7d470f8b
PNS: Improve behavior of dragging vias
...
- Fall back to walkaround when drag fails
- Properly check collisions with holes
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15117
2023-08-01 19:03:04 -04:00
Seth Hillbrand
96a34e5b57
Consolidate Maximum clearance calculation
...
We were calculating the same thing in three locations and we missed
adding the clearance from the footprints in, resulting in bad fills and
missed drc errors (see QA addition)
2023-07-26 12:55:48 -07:00
Seth Hillbrand
812c56bdc7
Clarify NeighboringSegmentFilter
...
This doesn't affect behavior but makes the code more readable
2023-07-25 11:05:56 -07:00
Jeff Young
5e18287ff9
Re-implement some commented-out hole clearance checking in router.
2023-07-17 16:01:15 +01:00
Jeff Young
581cbfc112
Don't treat a rule area as an edge cut in the router.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15200
2023-07-15 18:30:15 +01:00
Jeff Young
0446152d15
(Very) minor performance improvement.
2023-07-15 17:55:12 +01:00
Jeff Young
6da71e5d24
Allow routing to a free pad (even if it has a hole).
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15093
2023-07-01 14:23:38 +01:00
Jeff Young
63daf336b8
Formatting.
2023-07-01 14:23:38 +01:00
Ian McInerney
533d7531a1
Via routing actions need to use int flags
...
The actions the router uses for via placement can be a combination of
enum values, so the actions must use an int parameter instead of the
enum type.
Fixes KICAD-2DS
2023-06-29 23:21:15 +01:00
Ian McInerney
2fb6f19a84
Separate immediate and delayed action dispatch
...
Using a boolean argument just leads to a lot of trailing booleans in the
function calls and is not user friendly. Instead, introduce PostAction()
to send an action that runs after the coroutine (equivalent to passing
false or the default argument), and leave RunAction as the immediate
execution function.
2023-06-27 00:57:59 +01:00
Jeff Young
493828cc6b
Eradicate a bunch of calls to dyn_cast.
...
Also deletes PAD::GetParent() which fails to look for parent footprint
through groups.
2023-06-25 11:10:07 +01:00
Tomasz Wlostowski
61391e3984
router: take holes into account when building the restricted items set for collision search
2023-06-23 14:52:45 +02:00
Tomasz Wlostowski
a0a68d198c
router: when no collision search context is provided, assume differentNetsOnly is true
2023-06-22 23:52:21 +02:00
Tomasz Wlostowski
bd5954242e
router: provisional fix for 14926
2023-06-22 16:52:34 +02:00
Jeff Young
0fde88eefc
Protect custom rule function caches from transient items.
2023-06-21 18:14:41 +01:00
Ian McInerney
3c24ddd8cc
Fix passing CLIENT_SELECTION_FILTER through the tool framework
2023-06-20 21:52:50 +01:00
Ian McInerney
07cc85e76c
Fix more places where casts into RunAction were happening
2023-06-20 21:52:50 +01:00
Ian McInerney
b04e54dbea
Switch TOOL_EVENT and TOOL_ACTION to have a std::any parameter
...
Using std::any from C++17 allows for proper type handling in the
parameter field, removing the need for casting to void* and then casting
the void* to the desired type.
2023-06-20 21:52:50 +01:00
Mike Williams
37837dc392
PCB: introduce PCB_FIELD_T
2023-06-20 18:34:52 +00:00
Jeff Young
30336b2fe3
Unify go-back-one-step processing for drawing tools (and router).
...
Also warps mouse on all go-back-one-step operations for better feedback.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14981
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9985
2023-06-19 17:14:32 +01:00
Jeff Young
1c7971c4dc
Cleanup.
2023-06-17 18:12:13 +01:00
Jeff Young
9fbaa238a2
Don't create 22.5-degree gateways if we're not cardinal or diagonal.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14984
2023-06-17 16:05:35 +01:00