Alex Shvartzkop
05e954ad5d
Fixes for length tuning patterns.
2023-11-12 12:17:08 +03: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
Jeff Young
64cc8dd6aa
Adjust dashed-box and edit-point locations to be outside meanders.
2023-10-16 13:44:05 +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
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
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
6543d23d9f
router: Re-add electrical path lines drawing for length tuning.
2023-02-01 20:36:52 +03:00
Jon Evans
971abcfc1a
Fix DP meander placer when tuning from an uncoupled section
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12212
2023-01-28 22:25:46 -05:00
Alex
e56064696b
router: Refactor m_padToDieLength out of meander placer base.
2022-12-02 01:03:34 +03:00
Alex
126914859a
Use correct pad to die lengths in DP length tuner.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/12859
2022-11-13 21:07:09 +00:00
Mike Williams
b1f2273bc6
PNS: Add CurrentStart() to placers.
2022-09-28 13:29:52 +00:00
Mark Roszko
b00178adb3
Nuke base_units from orbit
2022-09-16 04:38:10 +00:00
Seth Hillbrand
f1261e71d4
Replace boost::optional with std::optional
2022-08-25 15:50:47 -07:00
Seth Hillbrand
e0b3f6c258
PNS: Handle via-in-pad distances when tuning
...
Tuning with a via in pad, the via isn't a part of the full line. But we
still need to account for the line length distance of the
starting/ending vias. To do this, we simply measure the height from
the ending track to the ending pad and starting track to starting pad
(cherry picked from commit 82e8e38054
)
2022-08-01 20:25:17 -07:00
Tomasz Wlostowski
45f7cf9571
router: rework the DEBUG_DECORATOR a bit:
...
- support for dumping complete PNS::ITEMs and generic SHAPEs
- support for log nesting levels
- wxT-ized strings
- more verbose output where needed
2022-03-03 01:02:00 +01:00
Jeff Young
b2e3f03222
More wide-string declarations.
2022-02-05 22:03:04 +00:00
Roberto Fernandez Bautista
71156368c9
Length Tuner: Allow controlling the side of the meander using the cursor
...
Also fixes an issue that did not allow single meanders to be placed
2021-09-28 18:50:31 +01:00
Roberto Fernandez Bautista
0120c5fa4b
PNS Length Tuning: Recover original arc tracks after tuning
2021-08-09 21:10:33 +01:00
Wayne Stambaugh
cf00319c85
More NULL expunging.
2021-07-20 07:27:18 -04:00
Tomasz Wlostowski
ebd957b08e
router: rework router's debugging infrastructure to be more compatibile with the 'qa/pns/pns-log-viewer' tool.
...
The log viewer tool lets you inspect all the intermediate stages of the routing algorithms. This patch:
- Adds source location tracking of the debug calls (need to use the PNS_DBG macro, sorry)
- Moves some wxLogTrace calls to DEBUG_DECORATOR::Message() so that messages can be displayed alongside the corresponding geometric shapes
2021-05-29 00:13:24 +02:00
Jon Evans
2535daf661
PNS: Account for via stack height in diff pair length tuner
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8256
2021-04-20 19:31:10 -04:00
Jon Evans
c7ecb51f77
Update PNS length tuning algorithm to match the new BOARD algorithm
...
Now tracks inside pads are optimized to give a more accurate length.
Also, the start/end of the assembled line is used to identify the right
pad joints for pad-to-die length calculation.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4204
Fixes https://gitlab.com/kicad/code/kicad/-/issues/1765
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6877
2021-04-04 20:27:22 -04:00
Jeff Young
8be213e36f
Trim includes (and use consistent terminology in error messages).
2021-03-21 20:15:47 +00:00
Jon Evans
7431d5c985
PNS: First pass at updating meander placers for arcs
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6464
2021-01-05 17:57:21 -05:00
Mikolaj Wielgus
400c15b8eb
Add mils to units, remove useMils variables
2020-10-03 20:06:56 +00:00
Seth Hillbrand
4dfe630b28
PNS: Moving the rest of the placer to Fix/Commit
...
Springback introduced a new PNS structure to check for valid placement
as well as separating the Fix/Commit routines. This updates the
remaining placers to utilize the new structure.
Fixes https://gitlab.com/kicad/code/kicad/issues/4008
2020-03-06 09:56:44 -08:00
Ian McInerney
00e58cd974
Fix unintialized values (from coverity scan)
2020-01-12 13:00:42 +00:00
Mark Roszko
11ff16be4e
Switch to scoped enums
2019-12-20 14:11:39 +00:00
Seth Hillbrand
4178cf7f36
pcbnew: Add PadToDie length for tuning actions
...
This adds the pad to die parameter from each pad to the total line
length of the tuned line for comparison with desired.
Fixes: lp:1711541
* https://bugs.launchpad.net/kicad/+bug/1711541
2019-10-31 16:00:19 -07:00
Seth Hillbrand
c8a6878eb8
pcbnew: Allow tuning length to be longer than INT_MAX
...
The INT_MAX limit for most elements makes sense only for single-segment,
straight line elements. For elements that accumulate lengths, we should
utilize the long long int (64 bits) to allow for greater lengths.
Fixes: lp:1842367
* https://bugs.launchpad.net/kicad/+bug/1842367
2019-09-03 16:41:09 -07:00
Tomasz Włostowski
eea949ce0a
router: don't cross DP lines when length tuning, fix swap pair polarity bug
...
Fixes: lp:1798500
* https://bugs.launchpad.net/kicad/+bug/1798500
Fixes: lp:1798221
* https://bugs.launchpad.net/kicad/+bug/1798221
2018-10-18 13:48:43 +02:00
Jeff Young
ff34c7a948
Eradicate g_userUnit from router.
...
(cherry picked from commit 5e90e6b)
2018-07-17 15:12:26 +01:00
Jeff Young
f7861c90ec
Use more self-documenting names for conversion routines.
...
In particular, make sure no one thinks the low-precision ones are
OK for dialogs and/or files.
(cherry picked from commit bc1fcfa)
2018-07-17 15:10:13 +01:00
Tomasz Wlostowski
f6f726acab
router: allow placing tracks/diff pairs without continuing routing by Shift+L-Click
...
Fixes: lp:1777688
* https://bugs.launchpad.net/kicad/+bug/1777688
2018-06-19 19:30:03 +02:00
Tomasz Włostowski
9932ff32ae
refactoring: wrapped boost::optional in OPT<> class for the purpose of easier transition to C++17 in the future
2017-11-03 23:59:02 +01:00
decimad
96a3145543
use unique_ptr at client <-> pns-router border, to document the pns router is taking ownership
...
add overloads for NODE::Add( ... ) taking pointers to specific item types (retain old private add-Functions, they will come in handy later)
LINE overloads now take by reference, to document their special treatment.
updated code throughout affected by these changes
2016-09-06 16:06:06 +02:00
decimad
6c749e0ba8
Remove PNS_ prefix from most types inside namespace PNS
2016-09-06 16:06:06 +02:00
decimad
4cf44d9725
Rename pns item kind constants in preparation for renaming pns classes
2016-09-06 16:06:06 +02:00
decimad
de6281e977
Move PNS router code into namespace PNS
...
update copyright messages
2016-09-06 16:06:06 +02:00
Maciej Suminski
78050c05e2
Changed PNS logging routine to wxLogTrace
2016-08-17 16:00:21 +02:00
Maciej Suminski
0ef866ee74
Code formatting
2016-08-15 17:16:53 +02:00
Christian Gagneraud
7e0caf7abe
[pns] Make the placer algo draw debugging stuff by relying on a new PNS_DEBUG_DECORATOR, this removes a reversed dependency b/w PNS_ROUTER and PNS_ALGO Tom: some rework of the patch
2016-08-15 17:16:48 +02:00
Christian Gagneraud
e9a2cb0642
[pns] Remove unnecessary includes of KiCad colors.h
2016-08-15 17:16:48 +02:00
Simon Richter
1b2fd6a382
Replace BOOST_FOREACH with C++11 range based for.
2016-06-29 16:07:55 -04:00
Maciej Suminski
2607497b37
Code formatting.
2015-10-05 18:28:41 +02:00
Tomasz Wlostowski
b4135e0a33
router: fixed snapping to target while placing diff pair
2015-08-21 16:35:34 +02:00
Maciej Suminski
766da1e494
Code formatting.
2015-07-02 16:11:15 +02:00
Tomasz Wlostowski
a180f70086
router: compute (and display) DP gap dynamically when tuning length
2015-07-02 16:10:49 +02:00