7
mirror of https://gitlab.com/kicad/code/kicad.git synced 2025-04-18 00:29:10 +00:00
Commit Graph

1808 Commits

Author SHA1 Message Date
JamesJCode
eb17ebee4e Implement time-domain length tuning
- 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
2025-04-17 21:46:56 +01:00
Mike Williams
40058ebe80 actions: move all basic selection operations to common actions 2025-04-02 12:02:01 -04:00
JamesJCode
906c24bc6d Unify length calculation between router, board / frame, and DRC 2025-03-30 09:18:41 +01:00
Tomasz Wlostowski
5f620f0fa1 router: don't try to lock the first vertex of a zero-vertex line. Might crash (sometimes).
Fixes https://gitlab.com/kicad/code/kicad/issues/20440
2025-03-26 00:12:43 +01:00
JamesJCode
24a8c2a684 Ensure PNS length tuning calculation uses correct layer ID context
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20372
2025-03-18 12:37:16 +00:00
Jeff Young
b569d919ea No more invisible (non-field) text. 2025-03-10 21:58:30 +00:00
Jeff Young
567da3de91 Tables support for router.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20295
2025-03-10 15:45:42 +00:00
Jeff Young
f951497a4f Code brevity. 2025-03-01 21:58:31 +00:00
Tomasz Wlostowski
b4d29a98f9 router: refine the endpoint moving logic so that it doesn't block shoving 2025-02-27 23:51:12 +01:00
Jeff Young
320a298394 Clarifying comments. 2025-02-27 17:53:06 +00:00
Jeff Young
144e660684 Treat changes in solder mask like a width change.
Also in theory keeps from losing tenting properties
on vias that are shoved, though I can't get via
shoving to work at all right now.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/20085
2025-02-27 15:24:30 +00:00
Jeff Young
8e461941c0 Formatting. 2025-02-27 15:24:30 +00:00
Tomasz Wlostowski
78fc95fd6d router: fix regression in post-shove optimization
Note to self: we keep track of the formerly pushed vias in the line stack, but pruning one from the optimizer queue should not prune the lines attached to it.
2025-02-24 23:45:19 +01:00
Tomasz Wlostowski
9e4947ed36 router: prevent assertion fail in MULTI_DRAGGER
Fixes https://gitlab.com/kicad/code/kicad/issues/20075
2025-02-24 23:42:20 +01:00
Tomasz Wlostowski
29a4ec0fde router: prevent disconencting via fanout traces when shoving
Note to self: move-endpoints fallback mode must check for vias connected at the obstacle LINE's ends - fallback is only applicable for unconnected ends.
2025-02-24 23:42:20 +01:00
Tomasz Wlostowski
bfbdfcf872 router: improved shove litter fix
Note to self: managing the shove stack is quite challenging and there were a few corner cases
where reverse via/segment collisions would cause a head segment (or a via) to have multiple clones in the stack.
As SHOVE::removeHeads() took only complete head lines, sometimes it resulted with stray vias/segments.

Fixes https://gitlab.com/kicad/code/kicad/issues/19045
2025-02-24 23:42:20 +01:00
Jon Evans
1c85751bf0 PNS: Use HasHole to check if an item has a hole
Just checking Hole() for nullptr isn't valid

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19948
2025-02-13 21:53:59 -05:00
Jon Evans
078703111b PNS: Check if either permutation is a keepout in collideSimple
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19923
2025-02-11 19:28:15 -05:00
Tomasz Wlostowski
8d858fe998 router: prevent shove endpoint-in-hull fallback code from making non-45 degree tracks
Fixes https://gitlab.com/kicad/code/kicad/issues/19760
2025-02-03 13:24:27 +01:00
Tomasz Wlostowski
232b286793 router: comment out some excessive debug calls
Too much PNS_DBG() calls make the debug tool very sluggish, even in release mode.
2025-02-03 13:24:27 +01:00
Tomasz Wlostowski
60b40579cb router: reenable diff pair placement in shove mode
Fixes https://gitlab.com/kicad/code/kicad/issues/19547
2025-02-03 13:24:27 +01:00
Tomasz Wlostowski
3ba87b9d08 router: fix 'litter' tracks issue
The commit adds missing calls to unwindLineStack() and fixes the logic of the method.
2025-02-03 13:24:27 +01:00
Tomasz Wlostowski
9f2eade5f5 router: dump NODE overrides debug method 2025-02-03 13:24:27 +01:00
Roberto Fernandez Bautista
c5120b9090 Add fake-autoroute to context menus (router and edit) 2025-01-31 15:49:27 +01:00
Seth Hillbrand
d4c9e1f069 Adjust LayerDepthFactor to account for layer size
We need to draw all layers on top of the layer behind us, the factor is
rather arbitrary but needs to ensure that the step is still below 0 when
subtracted using the full layer size

Fixes https://gitlab.com/kicad/code/kicad/issues/19795
2025-01-30 16:35:05 -06:00
Jeff Young
a9500de3f8 Ignore invisible copper text in router.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19420
2025-01-27 18:41:36 +00:00
jean-pierre charras
32673a0ead Pcbnew, router: fix crash when trying to create a blind via without a track
Using PnS router, when trying to create a blind/buried or micro via with layer
selection with no track in progress, the router crashed because the starting
layer was not defined.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19750
2025-01-27 18:29:54 +01:00
Seth Hillbrand
bfb3875a68 Add additional handling for arc collisions
Provides nearest point calculation for circles, segments and rects

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18203
2025-01-14 13:08:45 -08:00
JamesJCode
c80a71f64a Make netclass name methods clearer, and improve doc strings
There are two netclass name methods, which previously were not
obvious in their uses. These have been renamed to now have:

GetName() : Used for internal or tooling (e.g. netlist export) usage
GetHumanReadableName() : Used for display to users (e.g. in infobars)

Fixing the previous unclear naming will result in fewer bugs
when users start using the multiple netclass functionality, as
the incorrect usage had started creeping in to new code. Also this
will help authors of new code select the correct name method.
2025-01-14 20:44:09 +00:00
Tomasz Wlostowski
b54235262a router: fix assertion in multidragger (link count out of range)
Fixes https://gitlab.com/kicad/code/kicad/issues/19587
2025-01-11 18:11:29 +01:00
Tomasz Wlostowski
4ee52a21d0 router: take overlapping segments/arcs into account when syncing board state to router state
Fixes https://gitlab.com/kicad/code/kicad/issues/19581
2025-01-11 01:36:49 +01:00
Tomasz Wlostowski
bf64e74188 router: fix regression in simplifyNewLine() causing unnecessary segments to be added to board (forming loops)
(note to self: OPTIMIZER now unlinks the in-place-optimized LINEs)
2025-01-10 16:01:19 +01:00
Tomasz Wlostowski
8275292032 router: minor cleanup and commenting 2025-01-04 20:06:54 +01:00
Tomasz Wlostowski
be48ea216b router: hopefully a fix for the disappearing head segments issue
fixes: https://gitlab.com/kicad/code/kicad/-/issues/19047

(note: it would trigger only in shove mode when the head overlaps exactly an existing trace - removeHeads() would consider the segments already present in the PCB
as belonging to the current head, erasing them for good from subsequent shove iterations)
2025-01-04 20:06:53 +01:00
Tomasz Wlostowski
95df6d8ef2 router: multiple fixes in shove algorithm:
- allow small modifications for LINE's ends as a fallback scenario in case of shove failure
- make sure unwindLineStack() won't remove tadpole vias with pending collisions on layer other than the current head line

fixes: https://gitlab.com/kicad/code/kicad/-/issues/19082
fixes: https://gitlab.com/kicad/code/kicad/-/issues/19045

(note to self: it often happens on boards imported from foreign tools of when the clearance has been subtly changed, the router would fail
if the start/end of a LINE is inside a hull of another LINE).
2025-01-04 20:03:24 +01:00
Tomasz Wlostowski
b75245749f router: fix regression in handling NPTH holes
(note to self - was causing intermittent/occasional ignoring of NPTHs depending on the layer of the head track)
2025-01-04 19:57:33 +01:00
Tomasz Wlostowski
3ab59dfa67 router: fix regression in optimization of head lines 2025-01-04 19:57:12 +01:00
Tomasz Wlostowski
58f5e61186 router: pass current routing mode to rhWalkBase() so that it knows what kinds of board primitives to walk around 2025-01-04 19:57:12 +01:00
Seth Hillbrand
0b2d4d4879 Revise Copyright statement to align with TLF
Recommendation is to avoid using the year nomenclature as this
information is already encoded in the git repo.  Avoids needing to
repeatly update.

Also updates AUTHORS.txt from current repo with contributor names
2025-01-01 14:12:04 -08:00
Ian McInerney
c0622eaa45 Avoid copies when using auto 2024-12-31 00:18:10 +00:00
Ian McInerney
7f8b88221d Initialize variables 2024-12-31 00:18:10 +00:00
JamesJCode
dfe0d6345b Another go at supressing FOOTPRINT field on FOOTPRINT objects 2024-12-28 21:57:35 +00:00
Tomasz Wlostowski
7b6a344f45 router: provisional fix for crash when dragging footprints with exactly overlapping pad anchors
Fixes https://gitlab.com/kicad/code/kicad/issues/19382
2024-12-26 19:30:29 +01:00
Seth Hillbrand
e9bc8cfe9d Give Clipper1 a Viking funeral
Clears out the last spot where we were only using Clipper1 (how'd I
miss that?) and remove all calls to the Clipper1 structures
2024-12-23 17:12:09 -08:00
Seth Hillbrand
527e2e8027 Unify Trace/Track usage
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19329
2024-12-19 15:55:26 -08:00
Jon Evans
801311cf9c PNS: Fix several issues dragging footprints with shapes
Edge cuts, margin, and copper shapes need to be included
in the dragged item set

Shapes on the edge cut layer need to be painted with
their original width, but this has to be done by setting
the width on the router shape, not by re-cloning the
parent shape, because the router may now be moving that
shape.

Footprint drag position calculation needs to act only
on pad SOLIDs, not on any SOLID

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19280
2024-12-17 22:56:15 -05:00
Jeff Young
8519267c24 Cleanup. 2024-12-16 21:34:24 +00:00
JamesJCode
fc23cb1ac8 Remove added-by-not-actually-helpful IDE random include 2024-12-16 21:31:06 +00:00
JamesJCode
fc932233b1 Warp cursor to origin on single footprint drags
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19100
2024-12-16 19:18:11 +00:00
jean-pierre charras
1942f2f227 PNS: Ensure Pop-up "Track violates DRC" is erased at end of drag command.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19234
2024-12-03 10:56:27 +01:00