Commit Graph

437 Commits

Author SHA1 Message Date
Marek Roszko 10e60acf34 Clean up including of board_design_settings.h 2021-06-06 15:03:42 -04:00
Marek Roszko b610b905fc Cleanup track.h includes 2021-06-06 09:06:55 -04:00
Ian McInerney 4f05262705 Cleanup includes in board.h and footprint.h 2021-06-03 20:19:52 +01:00
Seth Hillbrand f40f696c37 Don't extract dp segment info from minimal-length
segments with 1IU of length are approximately parallel to everything and
the distance projections break down into rounding errors

Fixes https://gitlab.com/kicad/code/kicad/issues/8541
2021-06-03 08:44:17 -07:00
Seth Hillbrand 7f56ff4d42 Minor performance improvement
Don't keep searching the DRC RTree for collisions after we detect a true
(not clearance-based) collision
2021-06-02 08:15:37 -07:00
Jeff Young 00ed75b891 Fix DRC performance with multi-layer keepout zones.
The main issue was a parameter mismatch which caused On^2 behaviour
for zone layers.

But there are several other performance optimizations here, along
with status bar updating for zones while running the dissallow test.

Fixes https://gitlab.com/kicad/code/kicad/issues/8521
2021-06-02 14:11:43 +01:00
Jon Evans 6381ffd10a Fix diff pair coupling test when gap constraint is in a different rule
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8519
2021-05-31 10:13:05 -04:00
Marek Roszko 382dca4e6f Fix uninitialized member warnings
Based on PVS Studio report
2021-05-30 20:01:01 -04:00
Jeff Young 5f22025611 Don't drop text on Edge.Cuts when plotting.
While -our- user model is that Edge.Cuts is just for edges, it's best
not to dictate a particular model to users.

ADDED a DRC error when text (or a dimension) appears on the Edge.Cuts
layer.

Fixes https://gitlab.com/kicad/code/kicad/issues/8470
2021-05-24 19:54:52 +01:00
Jeff Young e93e9fa3e5 Add rudimentary type checking to rule eval with reporter.
Also cleaned up existing error reporting to not expend CPU cycles
when there was no reporter.

Fixes https://gitlab.com/kicad/code/kicad/issues/8438
2021-05-20 23:06:24 +01:00
Jeff Young 4c3d78dec0 Break out separate holes-co-located violation.
Fixes https://gitlab.com/kicad/code/kicad/issues/8456
2021-05-20 10:36:56 +01:00
jean-pierre charras 56058314be Fix minor Coverity warnings and minor compil warnings.
(uninitialized or shadowed vars)
2021-05-05 08:58:55 +02:00
Marek Roszko 03cf2b517f Enum class PAD_ATTR_T
Renamed such that python stays the same
2021-05-01 10:51:54 -04:00
Marek Roszko 21fde9b629 enum class PCB_SHAPE_TYPE_T 2021-04-30 22:36:12 -04:00
Jeff Young 7df9fa0631 Diffpair gap should only override clearance within a coupled diffpair.
Fixes https://gitlab.com/kicad/code/kicad/issues/7975
2021-04-30 18:39:21 +01:00
Jeff Young c149ed8905 Allow diffpair gap to override normal netclass clearance.
Fixes https://gitlab.com/kicad/code/kicad/issues/7975
2021-04-29 10:23:49 +01:00
Jeff Young b65b1f8e9c Revert NPTH commit, and add some comments. 2021-04-26 17:33:49 +01:00
Jeff Young e3eacafbcb Run hole clearance tests on NPTH pads, but not copper clearance.
Fixes https://gitlab.com/kicad/code/kicad/issues/8295
2021-04-25 17:55:43 +01:00
Jeff Young b7279c0bab Don't allow rounding errors to flag DRC violations in hole2hole.
Fixes https://gitlab.com/kicad/code/kicad/issues/8295
2021-04-25 17:55:43 +01:00
Jeff Young e5d029af6b Margin layer missing from some edge clearance tests.
Fixes bug reported on KiCad Forums.
2021-04-21 21:58:47 +01:00
Jeff Young 23a1f8b17a Enforce board minimum clearance over local clearance overrides.
Fixes https://gitlab.com/kicad/code/kicad/issues/8199
2021-04-15 21:44:04 +01:00
Jon Evans 4920692bcd DIFF_PAIR_GAP_CONSTRAINT does not need to be restricted to two items
We just need one item to see what netclass we're in; the constraint
itself is specific to diff pairs so the condition doesn't need to be.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8205
2021-04-14 23:43:43 -04:00
Jeff Young d79057b83a Fix merge wreckage in building netclasses. 2021-04-13 17:56:50 +01:00
Jeff Young 2cde76a191 Don't do any hole clearance testing within a single footprint.
Fixes https://gitlab.com/kicad/code/kicad/issues/8141
2021-04-11 16:03:16 +01:00
Jeff Young 3450610977 Add ability to allow thermal vias to be implemented as pads.
This is mostly just for CADSTAR.  Since we don't (yet) have general
purpose footprint attributes, this reuses the "net tie" hack.

Fixes https://gitlab.com/kicad/code/kicad/issues/8141
2021-04-09 14:02:13 +01:00
Carsten Schoenert cb17c9f3dd Typo fix: Correct various misspelled words
agressive -> aggressive
decription -> description
miscellanous-> miscellaneous
rectange -> rectangle
Unkown -> Unknown
2021-04-03 13:39:50 +00:00
Jeff Young b6f2941a06 Another try a allowing touching courtyards.
Fixes https://gitlab.com/kicad/code/kicad/issues/8076
2021-03-31 22:54:30 +01:00
Jeff Young 737262ffa8 Allow touching courtyards.
Fixes https://gitlab.com/kicad/code/kicad/issues/8076
2021-03-31 10:44:59 +01:00
Jeff Young 3279e295ac Don't start filling zones with possibly stale caches.
Fixes https://gitlab.com/kicad/code/kicad/issues/8014
2021-03-25 17:20:08 +00:00
Jeff Young a2ffb45698 Update diff pair rule syntax to be clearer.
Fixes https://gitlab.com/kicad/code/kicad/issues/8010
2021-03-25 10:29:38 +00:00
Jeff Young a94ce75c02 Fix multiple filter calls that were producing false cache positives.
When processing a compound shape we'd decide the first of them didn't
collide and then put false into the cache.  The cache value would then
be used for all the other shapes in the compound shape, which very well
might actually collide.

Fixes https://gitlab.com/kicad/code/kicad/issues/8003
2021-03-23 21:06:16 +00:00
Jeff Young fe196771d8 Implement isCoupledDiffPair() DRC rule function.
Fixes https://gitlab.com/kicad/code/kicad/issues/7975
2021-03-20 23:07:36 +00:00
Jeff Young 44e2151ade Allow diffpair gap to override netclass clearance value.
Fixes https://gitlab.com/kicad/code/kicad/issues/7975
2021-03-20 21:53:30 +00:00
Dominik Wernberger e2aa7be4b3 Added a lot of consts and refactored a few lines 2021-03-08 12:49:48 -08:00
Jeff Young 47145d349b Don't run insideArea on ruleAreas.
Fixes https://gitlab.com/kicad/code/kicad/issues/7826
2021-03-07 17:55:30 +00:00
Jon Evans 65531accf6 DRC: allow testing against particular diff pair membership 2021-02-27 19:54:55 -05:00
Jeff Young 6d6765cdaf Improve DRC status reporting.
1) Don't report on tests not run.
2) Don't cancel subsequent tests because the current test didn't
have any constraints
3) Exit a little bit quicker when cancelled

Fixes https://gitlab.com/kicad/code/kicad/issues/7724
2021-02-27 13:44:45 +00:00
Jeff Young 4ede4e061e More DRC performance work.
Push DRC zone RTrees into BOARD so that they can also be used by
insideArea.

All these caches are a bit of an encapsulation leak, but they make a
significant impact on performance.

Fixes https://gitlab.com/kicad/code/kicad/issues/7720
2021-02-27 11:45:04 +00:00
Jeff Young f226373324 Add cache for insideArea() and insideCourtyard().
Fixes https://gitlab.com/kicad/code/kicad/issues/7720
2021-02-26 19:22:25 +00:00
Jeff Young d523129929 Minor performance improvements.
Fixes https://gitlab.com/kicad/code/kicad/issues/7720
2021-02-26 17:58:08 +00:00
Jeff Young a3b9e8ddb4 Round 2 of Worksheet -> Drawing Sheet. 2021-02-23 11:57:44 +00:00
Jeff Young cad5198ab7 Worksheet -> (industry standard) Drawing Sheet. 2021-02-22 17:35:46 +00:00
Marek Roszko 907e282347 Silence some msvc warnings
- exception variables that were unused
- RAYSEG2D improperly foward declared with class instead of struct
- unused vars
2021-02-20 11:58:55 -05:00
Jeff Young e89f9db438 Footprint disallow layer checking needs to be based on courtyards.
Fixes https://gitlab.com/kicad/code/kicad/issues/7620
2021-02-20 14:13:36 +00:00
Jeff Young 6f9ebcfdb5 Make sure a pad has a hole before running hole test on it.
Fixes https://gitlab.com/kicad/code/kicad/issues/7567
2021-02-17 14:08:53 +00:00
Jeff Young 015c4d5779 Don't force disallow tests to a particular layer.
Fixes https://gitlab.com/kicad/code/kicad/issues/7552
2021-02-16 16:24:37 +00:00
Jeff Young 6272b48481 Make sure layer gets passed in to rules evaluation. 2021-02-08 14:53:49 +00:00
Jeff Young 78ba87be8f More explicit error message for unconnected items. 2021-02-04 22:47:37 +00:00
Jeff Young da8d0472f5 Layer must be between 0 and PCB_LAYER_ID_COUNT. 2021-02-04 01:00:20 +00:00
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