186 Commits

Author SHA1 Message Date
Jeff Young
88d42724e6 Remove diff-pair-gap handling from single-line-router.
We can't really support it until we do min/max/opt shoving and
dragging.

Fixes https://gitlab.com/kicad/code/kicad/issues/6932
2021-01-05 16:54:52 +00:00
Jeff Young
f7b20611c1 Enforce hole-to-hole min when placing diffpair vias.
Fixes https://gitlab.com/kicad/code/kicad/issues/6931
2021-01-05 00:26:49 +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
068af7d328 When routing don't give NPTH holes a copper clearance.
Fixes https://gitlab.com/kicad/code/kicad/issues/6903
2021-01-02 16:33:51 +00:00
Jeff Young
8a049cf290 Make sure bounding boxes get cached on rule areas.
Fixes https://gitlab.com/kicad/code/kicad/issues/6898
2021-01-01 23:17:49 +00:00
Jeff Young
018c17399d SNR. 2021-01-01 23:17:49 +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
81d4e06f00 PNS: Consider pad orientation when routing
PNS: Skip smart pads when posture was manually forced

This allows a more-correct pad breakout to be chosen when
smart pads is off.
2020-12-29 01:06:46 -05:00
Jon Evans
70c397a9b4 Implement free vias fully
CHANGED: manually-placed (stitching) vias won't have their nets automatically updated
(unless the via is placed directly on a track segment)

CHANGED: stitching vias can be placed on footprint pads and pick up their nets

Fixes https://gitlab.com/kicad/code/kicad/-/issues/5484
2020-12-20 16:29:50 -05:00
Jeff Young
cd162a8f58 Honour m_placingVia when avoiding collisions.
Fixes https://gitlab.com/kicad/code/kicad/issues/3773
2020-12-20 20:36:19 +00:00
Ian McInerney
be4b6ec06a Cleanup compiler warnings 2020-12-09 23:13:33 +00:00
Jeff Young
b1f0bf7334 More consistent naming. 2020-12-08 13:05:39 +00:00
Jeff Young
d06d35a74d Formatting. 2020-12-02 20:05:47 +00:00
Jeff Young
06b9439dbf Edge Cuts shapes have zero width.
Fixes https://gitlab.com/kicad/code/kicad/issues/6517
2020-11-26 17:42:46 +00:00
Jeff Young
9c7c05c161 Mostly formatting cleanup but a few type-casting cleanups too. 2020-11-24 22:16:41 +00:00
qu1ck
b32c2a6c90 Refactor EDA_TEXT::TransformToSegmentList() to return a vector of points
This allows reading text object as it is rendered through python API.
2020-11-23 07:50:54 +00:00
Jeff Young
ff3bd7e72a Fix a crash bug in DRC, and equate Margin to Edge.Cuts. 2020-11-20 21:22:27 +00:00
Dominik Wernberger
99da663e82 Remove unused variables plus some more fixes from CppCheck
Remove unused variables plus a few more fixes from CppCheck

Remove unused variables plus a few more fixes from CppCheck
2020-11-19 02:28:47 +00:00
Jeff Young
795e45836d Fix assert in DRC. 2020-11-17 17:41:57 +00:00
Jeff Young
ec020dd19f First-class support for filled shapes. 2020-11-14 01:40:32 +00:00
Jeff Young
bdbb68f813 MODULE -> FOOTPRINT. 2020-11-13 16:04:03 +00:00
Jeff Young
52a46341db More module -> footprint. 2020-11-13 15:16:24 +00:00
Jeff Young
f5443de7f9 D_PAD -> PAD. 2020-11-13 15:16:24 +00:00
Jeff Young
84dd5108ba Remove some "class_" prefixes from files. 2020-11-13 15:16:23 +00:00
Jeff Young
f7333ad64a Update some classnames including archaic zone names. 2020-11-12 10:31:25 +00:00
Jeff Young
da5cfb5df1 Improve commenting. 2020-11-11 17:52:15 +00:00
Jeff Young
5e569e81e7 Performance enhancements for PNS. 2020-11-11 15:32:30 +00:00
Ian McInerney
d88eaaf477 Fix various compiler and Coverity warnings 2020-11-11 00:41:02 +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
ae9afdd169 SNR. (Mostly for progammers, but a little for user messages.) 2020-11-02 16:20:00 +00:00
Jeff Young
fab87fb97b Handle proxy items for the second PNS_ITEM as well.
Fixes https://gitlab.com/kicad/code/kicad/issues/6193
2020-10-31 23:23:54 +00:00
Jeff Young
ba4d711356 I should have known better than to use a global....
When the board is closed and reopened the dummy items belong to a
freed board.
2020-10-31 15:50:06 +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
Ian McInerney
31e626f279 Cleanup creation of all our smart pointers 2020-10-26 23:52:44 +00:00
Jeff Young
3045dbd6e8 Minor code clean-up. 2020-10-20 13:38:09 +01:00
Jeff Young
d7ea70ba02 Don't assume a valid constraint.
Fixes https://gitlab.com/kicad/code/kicad/issues/6059
2020-10-18 20:58:53 +01:00
Jeff Young
02cbcb99df Fix broken logic in ImportSizes().
Fixes https://gitlab.com/kicad/code/kicad/issues/6049
2020-10-18 12:08:16 +01:00
Jeff Young
827699bed2 Just because we have a startItem doesn't mean it can find a width.
For instance, a pad with no other tracks attached will return 0.

Fixes https://gitlab.com/kicad/code/kicad/issues/6019
2020-10-17 13:57:07 +01:00
Jeff Young
23d9e2e74a New rules engine needs non-connected items as well. 2020-10-17 13:52:18 +01:00
Jon Evans
fd4b9f0efa PNS: ratlines need to not be debug graphics
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5995
2020-10-13 20:04:47 -04:00
Tomasz Wlostowski
ac8b072284 router: fix assertion failure when starting a route on an empty board 2020-10-13 19:36:36 +02:00
Jeff Young
44dbe3577b Create proxy items for PNS when needing to query clearances.
Fixes https://gitlab.com/kicad/code/kicad/issues/5929
2020-10-12 20:59:19 +01:00
Jeff Young
bcebb19665 Add implied diffpair netclass rules. 2020-10-11 13:19:23 +01:00
Jeff Young
79f91481f3 Fix missing break stmt. 2020-10-11 01:11:55 +01:00
Jeff Young
f680ff17d6 Need an item to pick a netclass value. 2020-10-11 00:14:42 +01:00
Jeff Young
22cde88ba9 Allow chamfering/filleting of zone/board edge intersections.
Fixes https://gitlab.com/kicad/code/kicad/issues/5947
2020-10-10 23:09:43 +01:00
Jeff Young
04c4012ee6 Make track/via sizes UI more predictable and compatible with DRC.
Two main changes: netclass values need to go through the DRC engine
so they can interact with other rules.  They're also now dependent
on the layer being routed as well as the start object.

Also make the controls adjust to each other better.  For instance,
copy-track-width needs to turn off when you select a particular
track width, and a particular track width needs to zero out when
you choose copy-track-width.

Fixes https://gitlab.com/kicad/code/kicad/issues/5951
2020-10-10 19:32:30 +01:00
Jeff Young
2ca819a627 Don't assume a DRC_CONSTRAINT has a parent rule.
It will still have a name, though.
2020-10-09 14:26:09 +01:00
Jon Evans
966730710e Partial fix for routing with no start item 2020-10-08 20:38:08 -04:00
Tomasz Wlostowski
38cef95da9 router: initial support for V6 Design Rules (width/clearance/diff pair width/diff pair gap). Still a lot of work to do! 2020-10-09 00:01:26 +02:00