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
Maciej Sumiński
46020e20de
Merged the new Interactive Push and Shove router.
...
Do not pay attention to add/remove files - it seems there may be a bug in git-bzr-ng plugin. I have checked them, they stayed exactly the same as before.
2014-05-18 17:16:59 +02:00
Maciej Suminski
ad1b138f28
Reformatted PNS code to conform the coding policy.
2014-05-16 13:37:31 +02:00
Maciej Suminski
0d9373ca6c
Undo/report support for track dragging (PNS).
2014-05-14 18:45:59 +02:00
Tomasz Włostowski
061660e9e4
Long-awaited new version of the P&S router
2014-05-14 15:53:54 +02:00
Maciej Suminski
d9eb15c9fa
Moved NETCLASSES to BOARD_DESIGN_SETTINGS.
...
Most of the changes are just adding GetDesignSettings() before every occurence of m_NetClasses.
More complex changes:
class_netclass.cpp - NETCLASS does not store the pointer to the parent BOARD anymore. Added function SetParams( BOARD_DESIGN_SETTINGS& ).
class_netclass.h - Removed GetTrackMinWidth(), GetViaMinDiameter(), GetViaMinDrill(), GetuViaMinDiameter(), GetuViaMinDrill() as they were refering to BOARD_DESIGN_SETTINGS anyway (they are not net class specific).
kicad_plugin.cpp - filters out empty nets (that are anyway not saved) when storing net class information. Previously it was done in NETCLASS::Format() function.
2014-05-13 11:22:51 +02:00
Maciej Suminski
fa5a6e5dd2
Clearing m_hiddentItems to avoid PNS crashes.
2014-05-04 20:20:49 +02:00
Maciej Suminski
c3b448b633
Upstream merge.
2014-05-01 15:55:50 +02:00
Lorenzo Marcantonio
3f2c0e1a8d
TRACK/SEGVIA cleanup
...
- SEGVIA becomes VIA
- Drill size moved from TRACK to VIA
- Removed shape from TRACK, becomes ViaType in VIA
- GetTrace becomes GetTrack, for uniformity
- Some minor constification and typo fixes
2014-04-25 08:00:04 +02:00
Maciej Suminski
b6e3b3a3f9
Merged selection_tool branch.
2014-03-06 10:43:40 +01:00
Maciej Suminski
b8e3ff8ca3
Fixed undo while PNS is active.
2014-03-05 16:44:08 +01:00
Maciej Suminski
505b38416d
Removed a few memory leaks.
2014-03-03 17:15:41 +01:00
Maciej Suminski
f7d00a393b
Renamed BOARD_CONNECTED_ITEM::GetNet() -> GetNetCode()
...
Renamed BOARD_CONNECTED_ITEM::SetNet() -> SetNetCode()
Added BOARD_CONNECTED_ITEM::GetNet() for accessing NETINFO_ITEM* of a given item.
Fixed module editor crash when launched to edit a module from a PCB.
Replaced some BOARD::FindNet( item->GetNet() ) calls with BOARD_CONNECTED_ITEM::GetNet().
2014-02-25 11:47:27 +01:00
Maciej Suminski
75026d8754
Renamed BOARD_CONNECTED_ITEM::GetNet() -> GetNetCode()
...
Renamed BOARD_CONNECTED_ITEM::SetNet() -> SetNetCode()
Added BOARD_CONNECTED_ITEM::GetNet() for accessing NETINFO_ITEM* of a given item.
Fixed module editor crash when launched to edit a module from a PCB.
Replaced some BOARD::FindNet( item->GetNet() ) calls with BOARD_CONNECTED_ITEM::GetNet().
2014-02-25 11:40:34 +01:00
Maciej Suminski
8a8e5d8d14
Quick fix for unsupported pad types in PNS router.
2014-02-21 09:53:10 +01:00
Maciej Suminski
6e52e19367
Small leak fix.
2014-02-17 14:36:51 +01:00
Maciej Suminski
347649e855
Protection against non consecutive net codes.
2014-02-04 13:40:39 +01:00
Maciej Suminski
3f5c3d4349
Minor changes (fix cvpcb build issue, wx2.8 compatibility, some other stuff).
2014-02-03 16:02:54 +01:00
Maciej Suminski
bbb3972fb7
Undo buffer for the PNS router. Still, it has a bug - it crashes when an undo/redo operation is performed while routing a track.
2014-01-30 11:32:08 +01:00
Maciej Suminski
57bfaca131
PNS_ITEM::m_parent: BOARD_ITEM->BOARD_CONNECTED_ITEM
2014-01-29 15:35:25 +01:00
Maciej Suminski
83f7c7e35e
Added RN_DATA::Add()/Remove() methods.
...
RN_DATA::Update()/AddSimple() take BOARD_ITEM* as the parameter (instead of being split to versions with BOARD_CONNECTED_ITEM* and MODULE*), to make the code look clearer.
2014-01-28 16:30:58 +01:00
Maciej Suminski
6ad9d013e2
Safer way for syncing pads in Push and Shover router.
2014-01-07 14:23:46 +01:00
Maciej Suminski
75db0cebb7
Fixed Push and Shove and ratsnest cooperation (tracks added by PNS are taken into account while calculating ratsnest).
2014-01-07 14:22:37 +01:00
Maciej Suminski
c79962635e
Ratsnest is updated, when there are tracks added using the P&S router.
2013-12-20 15:18:41 +01:00
Povilas Kanapickas
7f12513c7e
Remove some uses of using namespace std.
2013-12-13 10:27:30 -06:00
Maciej Suminski
bc305859b2
Mainly case changes.
2013-10-14 20:40:36 +02:00
Maciej Suminski
0ac3e1fbf2
Namespace KiGfx->KIGFX.
...
template<> -> template <>
Some more reformatting according to uncrustify results.
2013-10-14 16:13:35 +02:00
Maciej Suminski
22045b61ea
Converted tabs to spaces. Removed trailing whitespaces.
2013-10-14 13:43:57 +02:00
Maciej Sumiński
5598acb617
Uncrustifying push&shove router
2013-09-26 23:53:54 +02:00
tomasz.wlostowski@cern.ch
db62d672d2
Initial version of the P&S router. Buggy and crappy.
2013-09-18 19:55:16 +02:00