Commit Graph

86 Commits

Author SHA1 Message Date
Jeff Young 8571687f51 Upgrade place via tool to new DRC.
Fixes https://gitlab.com/kicad/code/kicad/issues/7358
2021-02-01 23:00:13 +00:00
Marek Roszko 9d0b16e814 bool/int type safety 2021-01-31 19:54:32 -05:00
Jeff Young 56ea55ae9c Make sure that NPTH pads still get handled in copper clearance checker.
... because that's where we do hole-to-copper clearance testing.

Also augments the Clearance Resolution reporter to report on said
hole clearances.

And changes the interpretation of HOLE_CLEARANCE_CONSTRAINT to include
local pad clearance overrides.

Fixes https://gitlab.com/kicad/code/kicad/issues/7325
2021-01-31 00:33:35 +00:00
Jeff Young 2d8cac658e Allow negative clearances to signal supression of DRC test. 2021-01-23 00:10:01 +00:00
Jeff Young 3fd128a75b Performance enhancements. 2021-01-08 00:46:55 +00:00
Jeff Young a48f0d21f7 More consistency in clearance resolution messages. 2021-01-05 16:54:52 +00:00
Jeff Young b5e7611696 Don't cross-pollute CONSTRAINTs.
If you want the HOLE_CLEARANCE, then ask for it.
2021-01-02 16:33:51 +00:00
Jeff Young 018c17399d SNR. 2021-01-01 23:17:49 +00:00
Wayne Stambaugh f311831c27 Coverity fixes.
280252, 314742, 314745, 314747, 314755, 314756, 314757, 314758,
314935, 314936
2020-12-20 13:24:47 -05:00
Jeff Young bc484784fc Make sure zones are triangulated for DRC.
Normally this happens as a side-effect of rendering them but if done
from a script (or test case) this won't happen.

Fixes https://gitlab.com/kicad/code/kicad/issues/6635
2020-12-12 15:27:46 +00:00
Jeff Young b1f0bf7334 More consistent naming. 2020-12-08 13:05:39 +00:00
Jeff Young 09bfb76545 Make sure dissallow constraints get added to rule.
Also improves some error reporting.

Fixes https://gitlab.com/kicad/code/kicad/issues/6566
2020-12-03 23:08:51 +00:00
Jeff Young 3a9a6e22bc Fix issues in reporting netclasses.
1) make sure we get the default netclass when we want it
2) escape for HTML (particularly important for "<invalid>", but also
for reporting user rule names, netclass names, etc.)
2020-11-30 14:38:06 +00:00
Jeff Young e09271ca0e Fixes for hole clearance and hole-to-hole tests.
1) Separate out CONSTRAINT types
2) Filter both source and dest pads/vias for drilled holes when doing
   hole-to-hole checks.  We were checking the items being put into the
   DRC RTree, but not the items we were scanning.
3) Add hole clearance to Board Setup Constraints panel.

Fixes https://gitlab.com/kicad/code/kicad/issues/6546

Fixes https://gitlab.com/kicad/code/kicad/issues/4683
2020-11-29 23:35:23 +00:00
Jeff Young 0d850f98cd Cleanup. 2020-11-19 22:48:18 +00:00
Jeff Young 6e0c58adec Include local clearances even if no implicit rule was found.
The real test should be to apply it any time an explicit rule is
*not* found.

Fixes https://gitlab.com/kicad/code/kicad/issues/6426
2020-11-19 22:48:18 +00:00
Jeff Young 795e45836d Fix assert in DRC. 2020-11-17 17:41:57 +00:00
Jeff Young 1ce1e493d6 A rule zone is not really a BOARD_CONNECTED_ITEM.
Or at least it shouldn't always be treated as one.

Fixes https://gitlab.com/kicad/code/kicad/issues/6382
2020-11-15 20:23:15 +00:00
Jeff Young bdbb68f813 MODULE -> FOOTPRINT. 2020-11-13 16:04:03 +00:00
Jeff Young 3451ac3088 PCB_MODULE_T -> PCB_FOOTPRINT_T 2020-11-13 15:16:24 +00:00
Jeff Young 63a54d003e More module -> footprint. 2020-11-13 15:16:24 +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
Ian McInerney d88eaaf477 Fix various compiler and Coverity warnings 2020-11-11 00:41:02 +00:00
Jeff Young 81ea71fb80 More safety when fetching via sizes. 2020-11-07 18:50:30 +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 115fd1d7f3 Move track-to-zone testing to RTrees.
Also implemente pad-to-zone testing and removes the control in the
GUI (now that it's fast).
2020-10-31 15:45:41 +00:00
Jeff Young 2ee61f52ca Implement correct layer handling for keepout constraints. 2020-10-25 22:47:47 +00:00
Jeff Young 8c93fc76ae Don't require keepout zones to be named.
insideArea() now takes A, B, a UUID or a zone name.  (Only the UUID
is new.)
2020-10-25 21:08:09 +00:00
Jeff Young 386cefbe84 Do footprint keepouts by courtyard.
Fixes https://gitlab.com/kicad/code/kicad/issues/6162
2020-10-25 18:17:58 +00:00
Jeff Young 7674d2ba91 Free allocated DRC structures when re-initializing.
Fixes https://gitlab.com/kicad/code/kicad/issues/6147
2020-10-24 22:39:53 +01:00
David Shah 66bcfb3ffc drc_engine: Fix via type names
There was a mismatch between the via type names used in the DRC engine
and the via type names defined in the class_track.cpp ENUM_MAP for
VIATYPE.

This fixes the discrepancy; which was breaking microvias altogether as
the route tool also uses the DRC code to determine the correct
diameter/drill (without this patch it was incorrectly using regular
dimensions for microvias.)
2020-10-24 15:46:47 +00:00
Jeff Young 41fd8293e8 Don't apply clearance to keepout zones.
Also improves the clearance and keepout reporting.

Fixes https://gitlab.com/kicad/code/kicad/issues/6118
2020-10-22 21:29:04 +01:00
Jeff Young 9ff49277e1 Add implicit rule generation for keepout areas.
Also implements collision detection for SHAPE_POLY_SET.

Fixes https://gitlab.com/kicad/code/kicad/issues/6105
2020-10-22 10:41:21 +01:00
Jeff Young c5d45f8a78 Move DRC dialog to same DRC rule reporting mechanism as inspectors. 2020-10-17 20:40:05 +01:00
Jeff Young 1b2168af1e Don't throw implicit rules out after failing to compile user rules. 2020-10-16 12:44:20 +01:00
Jeff Young eea7957e16 Inform user of bad DRC rules when filling zones.
ADDED: facility for hypertext links in infobar.

Also made use of this for via constraint errors when routing.

Fixes https://gitlab.com/kicad/code/kicad/issues/5800
2020-10-16 12:44:20 +01:00
Jeff Young 6b7749658e Report all implicit rules for resolution reports. 2020-10-15 20:53:27 +01:00
Jeff Young 8c4197db2a Netclass track widths and via sizes are opts, not mins. 2020-10-13 00:34:10 +01:00
Jeff Young af90642440 Hook board edge clearance constraints up to zone filling.
Also hooks them up to the clearance resolution reporter, and makes
some general improvements to reporting.

Fixes https://gitlab.com/kicad/code/kicad/issues/5947
2020-10-12 18:31:00 +01:00
Jeff Young 32dffd27ab Add silk clearance to board setup constraints. 2020-10-12 18:31:00 +01:00
Jeff Young 8e70381be3 Don't try and infer optimum widths for board minimums.
It doesn't work well with sorting the implicit rules by clearance.

Fixes https://gitlab.com/kicad/code/kicad/issues/5951
2020-10-11 17:17:21 +01:00
Jeff Young af28ef9d56 Add silk clearance checking to Resolve Clearances...
Also fixes a bug in order of RTrees in silk collision checker.
2020-10-11 14:18:11 +01:00
Jeff Young 42eecdfd3a Collapse silk constraints down to one.
Also updates the rule syntax help and code-completion with a bunch
of diff-pair and other stuff that hadn't been updated yet.
2020-10-11 13:19:23 +01:00
Jeff Young bcebb19665 Add implied diffpair netclass rules. 2020-10-11 13:19:23 +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 fdeb340d21 Defensive code against missing nets.
Also adds net re-parenting code to Repair Board.

Fixes https://gitlab.com/kicad/code/kicad/issues/5935
2020-10-10 16:54:19 +01:00
Jeff Young 0c7630f8b4 Get rid of wxWidgets assert. 2020-10-09 00:31:29 +01:00