Jeff Young
2ea6bc5529
Formatting.
2021-01-04 19:19:55 +00:00
Jeff Young
648c42f643
Show collisions preventing routing from starting.
...
Also introduces a callback to the infobar so that the view can be
cleaned up when the timer expires.
Fixes https://gitlab.com/kicad/code/kicad/issues/6930
2021-01-04 19:19:55 +00:00
Jeff Young
71215bcab3
Make sure TH pads get collision layer highlighted.
...
Also cleans it up to centralise all the decision-making.
Fixes https://gitlab.com/kicad/code/kicad/issues/6925
2021-01-03 21:16:09 +00:00
Jeff Young
6b6694f55f
Fix typo.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/6913
2021-01-02 15:04:30 +00:00
Jeff Young
fc1b0ec11f
Improve feedback when routing in highlight collisions mode.
...
In particular, when Allow DRC violations is NOT turned on and we
bump in to an obstacle.
2021-01-01 17:25:37 +00:00
Jeff Young
ecc0e861d3
Implement hole clearance and hole-to-hole clearance in router.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/6882
2021-01-01 00:31:36 +00:00
Jon Evans
79502a0d88
PNS: A new approach to arc placement
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6334
2020-12-30 18:23:24 -05:00
Jeff Young
d304f12284
Formatting.
2020-12-11 12:48:04 +00:00
Jeff Young
00edc85f4f
Allow layer switching when routing from pad.
...
Additionally, don't process layer events from both main loop and
transitions -- it makes for a mess.
Fixes https://gitlab.com/kicad/code/kicad/issues/4832
2020-12-02 21:17:56 +00:00
Jeff Young
d06d35a74d
Formatting.
2020-12-02 20:05:47 +00:00
Jeff Young
64876a2761
PNS_DRAGGER should report its layers.
...
Also, don't use ViewGetLayers() for visibility checking. For some
things (like vias) it deals with synthetic layers, not board layers.
Fixes https://gitlab.com/kicad/code/kicad/issues/6328
2020-11-08 17:19:37 +00:00
Jeff Young
76ac8b5acf
Preflight routing so we can give a warning if it's not going to work.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4975
2020-11-02 00:10:21 +00:00
Jeff Young
8bfb255c96
Put a warning when routing can't start due to DRC violation.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4975
2020-11-01 23:46:42 +00:00
Jeff Young
409cd9d4ee
Formatting.
2020-11-01 20:25:36 +00:00
Jeff Young
f6c92ab1ea
DRAGGER needs to report it's nets.
...
Otherwise things like snapping don't work.
Fixes https://gitlab.com/kicad/code/kicad/issues/4147
2020-11-01 19:57:42 +00:00
Jeff Young
a95e2184da
A more generic error message when route start pt violates DRC.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/1812
2020-11-01 18:23:07 +00:00
Jeff Young
c17ceb5875
Make sure proxy items at least get the right net for clearance lines.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5980
2020-10-30 23:37:35 +00:00
Tomasz Wlostowski
5e4fb46aef
MINOPTMAX: added OptThenMin() method as syntax sugar
2020-10-09 00:01:26 +02:00
Jeff Young
d23d5510e7
Restore a side-effect that the router appears to depend on.
2020-10-06 00:07:34 +01:00
Jeff Young
18a3c4c1db
Fix some fairly catastrophic bugs in shape collision optimization.
...
I did a little too much copy & paste last time around....
2020-10-05 22:32:07 +01:00
Tomasz Wlostowski
379aa8f3b5
router: clearer distinction between LOGGER and DEBUG_DECORATOR classes.
...
The first one keeps a log of events (start routing, mouse motion, etc).
The second allows for adding temporary debug drawings and messages which are stored synchronously with the events in LOGGER.
The event stream together with the PCB design (now with UUIDs) can be used to deterministically replay routing bugs as the user sees them.
2020-07-22 18:05:54 +02:00
Tomasz Wlostowski
44905e1b0a
router: initial support for dragging components with traces attached
2020-02-28 23:17:15 +01:00
Tomasz Wlostowski
4525a17076
router: backspace key to undo last fixed segment(s)
2020-02-27 22:02:56 +01:00
Tomasz Wlostowski
dbe90e163e
router: use one global logger object
2020-02-27 22:02:56 +01:00
Seth Hillbrand
8c19b4b6ae
pcbnew: Adding arcs to PNS
...
This is allows ARCs in tracks to be synchronized with
the PNS router. Note this does not yet include the UI components
to route curved traces
2020-02-21 16:11:41 -08:00
Jon Evans
e59a3d981e
Implement a new settings framework across all of KiCad
...
CHANGED: Settings are now stored in versioned sub-directories
ADDED: First-run dialog for migrating settings from a previous version
CHANGED: Settings are now stored as JSON files instead of wxConfig-style INI files
CHANGED: Color settings are now all stored in a separate settings file
CHANGED: The symbol editor and footprint editor now have their own settings files
CHANGED: Color settings are no longer exposed through BOARD object
CHANGED: Page layout editor now uses Eeschema's color scheme
Settings are now managed through a central SETTINGS_MANAGER held by PGM_BASE.
Existing settings will be migrated from the wxConfig format on first run of each application.
Per-application settings are now stored in one class for each application.
2020-02-19 23:44:56 -05:00
Seth Hillbrand
a2edf9c442
Unified update to C++14 std::make_unique
...
This update replaces the existing uses of unique pointer creation with
the C++14 std::make_unique call that provides proper memory release in
event of an exception.
2019-12-05 10:43:55 -08:00
Tomasz Włostowski
45e4387ed1
router: remove unnecessary include
2019-08-07 23:46:32 +02:00
Seth Hillbrand
cf63ae7ae2
pcbnew: Show clearance when editing tracks
...
When requested by display options, we should show the track clearance
when dragging tracks.
Fixes: lp:1818343
* https://bugs.launchpad.net/kicad/+bug/1818343
2019-04-07 21:25:28 -07:00
Seth Hillbrand
f47089a804
pcbnew: Enforce router settings
...
When the user selects "Ignore DRC" in the Highlight collisions mode,
they should be allowed to start drc violating tracks as well as end
them.
2019-02-23 08:19:50 -08:00
Seth Hillbrand
9523b26472
pcbnew: Fix dragging snap to items
...
Snapping while dragging depends on the current net being assigned during
dragging. This initializes the placer to hold the current net while
performing inline dragging. The placer is reset along with the dragger
in StopRouting(). This fixes the difference in snap between drag and
create new route.
( cherry-picked from 219695953
)
2018-09-15 20:22:34 -07: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
271363f822
router: support for board outline
2018-02-06 09:43:56 +01:00
Tomasz Włostowski
2faf1a1ed3
Initial support for keepout zones in the P&S router.
2018-02-06 09:43:56 +01:00
Tomasz Włostowski
44d4559f84
pcbnew: avoid segfault reported on certain OSX builds
...
Fixes: lp:1732274
* https://bugs.launchpad.net/kicad/+bug/1732274
2018-01-02 00:49:59 +01:00
Tomasz Włostowski
2d9ab80b4e
Few improvements to the GAL router:
...
- missing 'break track' functionality
- 'drag 45 degree' and 'drag free angle' context menu shorcuts, both in the router tool and in the default context menu
- bugfix: length tuner tool can now be used again
Fixes: lp:1708386
* https://bugs.launchpad.net/kicad/+bug/1708386
Fixes: lp:1708402
* https://bugs.launchpad.net/kicad/+bug/1708402
2017-08-07 14:28:46 +02:00
Tomasz Włostowski
3cba1007eb
Removed legacy connectivity/ratsnest algorithm, replaced with the new one. No legacy autorouting for the moment
2017-06-23 11:12:37 +02:00
Maciej Suminski
39317eac83
Display clearance for routed tracks (GAL)
2017-01-27 19:11:12 +01:00
Maciej Suminski
fc122834c2
Code formatting
2017-01-27 19:08:32 +01:00
jean-pierre charras
dec2d6e8cc
Fix a few Coverity warnings. A bit of clean code in export_vrml.cpp.
2016-12-30 12:40:05 +01:00
Tomasz Włostowski
3257f1a863
pns: fixed inline drag grid snapping & undo-related assertion failure
...
Fixes: lp:1628697
* https://bugs.launchpad.net/kicad/+bug/1628697
2016-09-30 09:29:49 +02:00
Maciej Suminski
5a1f52bf30
Modified tools to use BOARD_COMMIT.
2016-09-12 13:45:57 +02:00
decimad
2faca77adf
use unique_ptr to document ownership (PNS::ROUTER)
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
Tomasz Wlostowski
a53ea81794
P&S: factor out Kicad-dependend PNS_ROUTER::SnapToItem() to the PNS_TOOL_BASE class
2016-08-15 17:16:51 +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
Tomasz Wlostowski
9c8bdcc894
P&S refactor: removed most of Kicad-dependent code from PNS internal classes
2016-08-15 17:16:47 +02:00
Simon Richter
1b2fd6a382
Replace BOOST_FOREACH with C++11 range based for.
2016-06-29 16:07:55 -04:00
jean-pierre charras
11c369ee1b
Fix minor compil warnings (deprecated warnings and shadowed local vars warnings)
2016-06-07 17:33:12 +02:00
jean-pierre charras
4a838fb8c3
Pcbnew: Add rounded rect pad shape.
2016-04-06 20:15:49 +02:00
Tomasz Wlostowski
72b0593fdb
Pcbnew: push and shove router fixes.
...
* Fix segfault caused by invalidation of the end item by
PNS_LINE_PLACER::UpdateSizes().
* GAL zone drawing tool updates the ratsnest after zone drawing is complete.
* Fixed performance issue in zones processing using strict simplification
only for the final filled area.
2015-11-18 09:35:17 -05:00
jean-pierre charras
34f1c0ea2d
Fix a few Coverity warnings.
2015-11-11 19:47:51 +01:00
Thomasz Wlostowski
6e470ece1d
Pcbnew: fix push and shove router segfault bug.
2015-11-03 11:19:42 -05:00
Maciej Suminski
2607497b37
Code formatting.
2015-10-05 18:28:41 +02:00
jean-pierre charras
4fc230b773
Rework on Enum PAD_SHAPE_T, PAD_DRILL_SHAPE_T and PAD_ATTR_T (see rev 6008) : the new and better names are now used in Kicad code and existing python scripts.
...
PAD_SHAPE_T and PAD_ATTR_T still have a double definition (new names and old names) to be sure python scripts are nor broken by the change.
PAD_DRILL_SHAPE_T does not have a double definition, because it is unlikely oblong holes are used in python scripts.
Double definitions will be removed in the (next) future.
2015-08-23 21:40:33 +02:00
Tomasz Wlostowski
a33fc223ae
router: take net clearance when deskewing diff pairs.
...
Apply correction on DP corner radius to avoid DRC issues.
2015-08-21 16:37:44 +02:00
Tomasz Wlostowski
b4135e0a33
router: fixed snapping to target while placing diff pair
2015-08-21 16:35:34 +02:00
Tomasz Wlostowski
a96299d456
router: improvements to shove algorithm
2015-08-19 18:07:16 +02:00
Maciej Suminski
65ebfe12c1
Fixed oval pads highlighting in mark collisions mode (PNS).
2015-08-10 17:50:10 +02:00
Tomasz Wlostowski
b6f61ff676
PNS: correctly snap to offset pads
2015-08-04 12:15:47 +02:00
Tomasz Wlostowski
8752f46f07
PNS_ROUTER: correctly handle NPTH pad layer sets.
2015-07-22 13:49:53 +02:00
Maciej Suminski
ca27eeb5c7
Fixed "select copper connection".
2015-07-09 20:04:54 +02:00
Maciej Suminski
66778e1b00
PNS code formatting.
2015-07-07 18:36:38 +02:00
jean-pierre charras
351914da9d
Fix minor and very minor compil and Cppcheck warnings.
2015-07-06 19:56:05 +02:00
Maciej Suminski
766da1e494
Code formatting.
2015-07-02 16:11:15 +02:00
Mathias Grimmberger
7724c581fd
router: support for non-90 degree pad orientations
2015-07-02 16:09:43 +02:00
Tomasz Wlostowski
52e193eded
router: fixing assert
2015-07-02 16:09:32 +02:00
Chris Pavlina
5a4e528d6a
Correct PNS boundaries for offset pads.
2015-06-23 11:41:53 +02:00
Maciej Suminski
d433a06d11
Fixed initialization for custom track/via size values (PNS). More meaningful error messages.
2015-06-15 17:54:58 +02:00
jean-pierre charras
49fac351ab
Fix a few coverity warnings.
2015-06-15 16:01:43 +02:00
jean-pierre charras
4e210a2d05
ModEdit: fix a refresh issue after deleting a pad (depending on the position of the pad, the pad was sometimes not immediately undrawn).
...
Fix a few coverity wanings (not initialized members in ctors)
2015-04-20 16:59:25 +02:00
Tomasz Wlostowski
aeddbb51ff
router: respect NPTH holes too
2015-03-11 23:48:53 +01:00
Maciej Suminski
e6a10faab7
FIxed a few clang warnings.
2015-03-09 11:06:54 +01:00
Tomasz Włostowski
fe40567426
router: shove now respects diff pair gap
2015-03-02 17:21:04 +01:00
Tomasz Włostowski
3f015705ac
working on shove fix for DPs
2015-02-26 16:34:10 +01:00
Maciej Suminski
4fb9bce354
Code formatting.
2015-02-18 17:53:46 +01:00
Tomasz Włostowski
112adccbcb
router: differential pairs & length tuning support
2015-02-18 01:29:54 +01:00
Maciej Suminski
e6ff6af7b3
Fixed typo.
2014-11-27 11:51:16 +01:00
Maciej Suminski
0daa1fa67e
Missing fixes for the revision 5301.
2014-11-27 11:47:17 +01:00
Angus Gratton
6c4808bd49
pns: Non-copper pads are not treated as obstacles.
2014-11-26 15:46:47 +01:00
Maciej Suminski
9245b90392
Code formatting.
2014-11-14 20:19:00 +01:00
Tomasz Wlostowski
80adf9d85b
router: multiple changes
...
- re-worked PNS_LINE_PLACER and PNS_ROUTER classes a bit, removing duplicate class members
- cleaned up Andrew's blind/buried via fixes
- fixed 'custom via width' dialog bug updating the width even when closed/cancelled
- fixed incorrect radius of drawn microvias
2014-11-14 19:15:58 +01:00
Andrew Zonenberg
45a8e4da74
pns_router: Support for blind/buried vias.
2014-09-30 16:46:19 +02:00
Tomasz Włostowski
adbf343fef
bugfix: SIGABRT after starting a track with PNS and switching canvases a few times
2014-08-13 17:25:54 +02:00
Andrew Zonenberg
59be0f6ef7
1) Pad properties dialog can trigger divide-by-zero when "0" is entered as the pad size
...
2) PNS router incorrectly detects collisions with blind/buried vias that don't actually intersect the active layer
3) PNS router silently converts blind/buried vias to through-board vias when shoved
2014-07-28 11:32:15 +02:00
Andrew Zonenberg
e6fba84e13
Push-and-shove router now handles existing blind/buried vias properly. Can't yet create new ones.
2014-07-27 15:01:06 -04:00
Maciej Suminski
78853febbe
Zone fill/unfill actions in context menu (GAL).
2014-07-09 16:57:01 +02:00
Maciej Suminski
327f307a7f
FIx layer switching after via placement in PNS router.
2014-07-09 16:50:31 +02:00
Maciej Suminski
81ad03cf91
Code formatting.
2014-07-09 16:25:50 +02:00
Maciej Suminski
fb0045a898
Bugfix: Bottom layer not correctly handled in (PNS) Interactive router.
2014-07-07 10:48:47 +02:00
Dick Hollenbeck
ad750defb6
LAYER_ID work
2014-06-29 08:05:51 -05:00
Dick Hollenbeck
4578ea8b9e
1) Add 32 Cu Layers.
...
2) Change from legacy Cu stack to counting down from top=(F_Cu or 0).
The old Cu stack required knowing the count of Cu layers to make
sense of the layer number when converting to many exported file types.
The new Cu stack is more commonly used, although ours still gives
B_Cu a fixed number.
3) Introduce class LSET and enum LAYER_ID.
4) Change *.kicad_pcb file format version to 4 from 3.
5) Change fixed names Inner1_Cu-Inner14_Cu to In1_Cu-In30_Cu and their
meanings are typically flipped.
6) Moved the #define LAYER_N_* stuff into legacy_plugin.cpp where they
can die a quiet death, and switch to enum LAYER_ID symbols throughout.
7) Removed the LEGACY_PLUGIN::Save() and FootprintSave() functions.
You will need to convert to the format immediately, *.kicad_pcb and
*.kicad_mod (=pretty) since legacy format was never going to know
about 32 Cu layers and additional technical layers and the reversed Cu
stack.
2014-06-24 11:17:18 -05:00
Maciej Suminski
3480c41caa
PNS router handles net class settings (dependent on the selected start item).
2014-06-03 16:09:27 +02:00
Maciej Suminski
2619ceae03
PNS formatting code.
2014-05-31 16:04:25 +02:00
jean-pierre charras
771ac33c80
Pcbnew: fix a minor bug: in zones with no net, only the zone clerance was used to created clearence, regardless the pad or footprint local clerance.
...
Very minor other fixes.
2014-05-29 13:48:14 +02:00
Maciej Suminski
707f5cd6e6
bugfix 1324144: broken PNS dragging
2014-05-28 19:21:12 +02:00
Maciej Suminski
f31f92e45e
Fixes the bug that causes pcbnew crash, when there are multiple net classes and the plot dialog was opened.
...
Changed NETCLASS* to boost::shared_ptr<NETCLASS>.
2014-05-20 11:29:37 +02:00