Commit Graph

547 Commits

Author SHA1 Message Date
Seth Hillbrand c01e2dcfec Fix large memory leak in DRC
All elements get effective shapes, many of which get triangulated.  This
memory needs to be freed when destroying the tree

(cherry picked from commit c2707f3cc0)
2022-01-28 17:08:33 -08:00
Jeff Young 29841ba315 Bring ERC & DRC dialogs into parity.
Fixes https://gitlab.com/kicad/code/kicad/issues/9350
2022-01-22 22:27:41 +00:00
Jeff Young 14006495d5 Angle cleanup. 2022-01-20 22:35:41 +00:00
Jeff Young 038db715a3 Move zone hatch orientation to EDA_ANGLE. 2022-01-19 00:34:03 +00:00
Jeff Young f60c05fc67 Use epsilon compartor for doubles. 2022-01-18 18:40:55 +00:00
Jeff Young 8c246a761d Move EDA_ANGLE from int to double. 2022-01-17 20:57:54 +00:00
Jeff Young 0967cc82e2 Exclude rules which match no enabled layers.
Fixes https://gitlab.com/kicad/code/kicad/issues/10227
2022-01-15 01:30:03 +00:00
jean-pierre charras bc77a1e2dd drc_test_provider_library_parity: fix a crash due to a incorrect if()...else() logic.
The incorrect logic allowed execution of the else sequence when it should not be executed.
2022-01-14 18:17:27 +01:00
Jeff Young 07013d00e1 More EDA_ANGLE. 2022-01-14 16:08:19 +00:00
Jeff Young abd3f5bc2b Move footprints to EDA_ANGLE. 2022-01-14 16:08:18 +00:00
Jeff Young d485eb2514 Move pads to EDA_ANGLE. 2022-01-14 16:08:18 +00:00
jean-pierre charras cf11abda3d Fix test_drc_regressions.cpp: disable tests that need a footprint library
DRCE_LIB_FOOTPRINT_ISSUES and DRCE_LIB_FOOTPRINT_MISMATCH imply a library
but the test cases do not have a library.
2022-01-12 15:57:41 +01:00
jean-pierre charras ea3efac2b6 drc/drc_test_provider_library_parity.cpp: protect against null pointer use.
qa tests, test_solder_mask_bridging.cpp: filter not relevant DRC tests
2022-01-12 14:41:11 +01:00
Jeff Young 8c6c87eaf4 Separate footprint lib issues from footprint mismatch issues.
Fixes https://gitlab.com/kicad/code/kicad/issues/10132
2022-01-11 22:28:24 +00:00
Marek Roszko fcfe42d67c Continue the war on wxPoint 2022-01-10 19:52:26 -05:00
Jeff Young 21790fcab7 Fix a pair of dereference-freed-pointers in DRC.
Fixes https://gitlab.com/kicad/code/kicad/issues/10335
2022-01-10 21:06:03 +00:00
jean-pierre charras c24985e8cf drc_test_provider_sliver_checker.cpp: skip very small vertices when testing.
Very small vertices (length <= 2 or 3 iu) are frequent in filled areas, and
create false positive detections because one cannot calculate a meaningful
orientation of these vertices.
2022-01-10 11:50:29 +01:00
jean-pierre charras 2b20a58615 Zone fill: fix an issue that uses thermal spoke width as thermal gap.
Fixes #10300
https://gitlab.com/kicad/code/kicad/issues/10300
2022-01-08 14:24:14 +01:00
jean-pierre charras 33dbe92deb drc_test_provider_mechanical_clearance: add missing handling of SHAPE_T::RECT
test_ee_item.cpp: add missing call to ClearFieldsAutoplaced();
2022-01-08 10:49:47 +01:00
Jeff Young b70cf1473f Allow solder mask aperture objects to inherit nets during DRC.
The issue is that object A (the solder mask aperture object) can
bridge objects B and C which have different nets.  Since we only do
object-to-object compares we don't find this.  By allowing object A
to inherit the first net it collides with (either object B's or
object C's), we'll generate a violation with the second collision.

Fixes https://gitlab.com/kicad/code/kicad/issues/10189
2022-01-03 20:58:01 +00:00
Jeff Young 0365c6bf4b Coverity fixes. 2022-01-02 14:57:03 +00:00
Marek Roszko 7d671cff1e Scoop up some more wxPoints 2022-01-01 21:06:40 -05:00
Tomasz Wlostowski dafa8ec671 pcbnew: fix incorrect type cast in DRC_TEST_PROVIDER_TEXT_DIMS
FP_TEXT cannot be casted to PCB_TEXT for obvious reasons, but what I don't understand is why downcasting to EDA_TEXT also crashes due to incorrect vtable method pointer (Clang10/Linux here).

I leave this as a curiosity for whoever knows C++.
2022-01-01 22:42:16 +01:00
Marek Roszko c4c56de708 Neurotically update position wxPoint usages 2022-01-01 11:55:51 -05:00
Marek Roszko 347e03363a Convert wxPoint/wxSize starting from EDA_RECT usages 2022-01-01 11:30:33 -05:00
Ian McInerney 0e9cfd0af2 Add missing initialization values to variables
Flagged by Coverity.
2021-12-30 23:42:06 +00:00
Erwan Rouault dc98419d85 pcbnew: Add via height support in drc length
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10135

(cherry picked from commit 11c967b259)
2021-12-30 09:35:10 -05:00
Jeff Young ab583a32f9 Better layer handling for DRC markers.
Fixes https://gitlab.com/kicad/code/kicad/issues/10126
2021-12-26 15:06:12 +00:00
Jeff Young 03a5bd5319 Handle flipped footprints in library compare algorithm.
Also fixes a bug where line styles weren't taken into account.

Fixes https://gitlab.com/kicad/code/kicad/issues/10107
2021-12-25 13:41:59 +00:00
Jeff Young 09b7e0b72b ADDED Exclude Footprint from Courtyard Requirement.
Fixes https://gitlab.com/kicad/code/kicad/issues/9881
2021-12-24 21:10:28 +00:00
Jeff Young d649b288a6 Swap out autoplace rotation costs for private footprint layers.
Fixes https://gitlab.com/kicad/code/kicad/issues/2291

Fixes https://gitlab.com/kicad/code/kicad/issues/5391
2021-12-24 21:10:28 +00:00
Jeff Young fa908e1f98 Dimensions for footprints.
Fixes https://gitlab.com/kicad/code/kicad/issues/8441
2021-12-24 21:10:28 +00:00
Jeff Young ed79f6e511 Clean up some TODOs. 2021-12-24 21:10:28 +00:00
Jeff Young b4c5e64db2 Exclusions for Unconnected Items; Markers & exclusions for Parity checks
Fixes https://gitlab.com/kicad/code/kicad/issues/5589

Fixes https://gitlab.com/kicad/code/kicad/issues/5504
2021-12-24 21:10:28 +00:00
Jeff Young b7e196b710 ADDED assertion constraints for user-defined DRC checks. 2021-12-24 16:13:18 +00:00
Jeff Young 4ba3937f8a Cleanup. 2021-12-24 15:43:24 +00:00
Jeff Young 0332ec6016 ADDED exclude all violations of rule X.
Fixes https://gitlab.com/kicad/code/kicad/issues/5463
2021-12-24 15:42:22 +00:00
Jeff Young 5f37c2b247 Custom rule severities.
ADDED severity token to custom rule syntax.  Each rule can now define
its own severity.

Fixes https://gitlab.com/kicad/code/kicad/issues/6148
2021-12-24 15:42:22 +00:00
Jeff Young b2dff6fa55 Fix solder mask plotting issues.
1) Don't plot all footprint texts for each footprint graphic item.

2) Enforce min web thickness around board shapes and board text.

3) Enforce min web thickness around footprint shapes

4) Correctly handle multi-layer zones.

(1) and (4) will get cherry-picked back to 6.0, so after rebasing
won't actually appear in this changelist anymore....
2021-12-24 12:36:45 +00:00
Jeff Young ef10b36948 Add mask-to-copper clearance parameter and rename mask margin. 2021-12-24 12:36:41 +00:00
Jeff Young 3aa6d73770 Allow min/max/opt to come from different rules. 2021-12-24 12:36:37 +00:00
Jeff Young 4b6f2f0658 Add mechanical copper clearance testing for shapes.
Also includes going from distance-based neighbor exclusion to angle-
based.  (Distance doesn't work when very short segments are followed
by very long ones.)

Fixes https://gitlab.com/kicad/code/kicad/issues/2512
2021-12-24 11:40:10 +00:00
Jeff Young 1305c2177f Add a checker for copper-to-copper clearance within a single zone.
Fixes https://gitlab.com/kicad/code/kicad/issues/2512
2021-12-24 11:40:06 +00:00
Jeff Young 5433684d3c Try to make gcc happy. 2021-12-23 23:59:48 +00:00
Jeff Young 235e0a430d Less flashing of the progress bar. 2021-12-23 22:31:33 +00:00
Jeff Young 56c85bd354 Improve clearance and constraint resolution reporting.
1) Report on all applicable clearance types
2) Don't double-book constraints if they're used by more than one
test provider

Fixes https://gitlab.com/kicad/code/kicad/issues/8961
2021-12-23 22:31:26 +00:00
Jeff Young 3f64b69917 Mechanical clearance rules.
ADDED mechanical_clearance and mechanical_hole_clearance constraints.

Fixes https://gitlab.com/kicad/code/kicad/issues/2183
2021-12-23 22:31:21 +00:00
Jeff Young a48867ea01 Solder mask integrity testing.
ADDED DRC test for solder mask aperture bridging copper from different
nets.
ADDED visualization of minimum web width processing for solder masks.
ADDED allow_soldermask_bridges property for footprints.

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

Fixes https://gitlab.com/kicad/code/kicad/issues/1792
2021-12-23 22:31:14 +00:00
Jeff Young 533276e6b6 Copper sliver checking.
ADDED DRCE_COPPER_SLIVER DRC error.
ADDED ADVANCED_CFG DRCSliverWidthTolerance and DRCSliverAngleTolerance.

Fixes https://gitlab.com/kicad/code/kicad/issues/2183
2021-12-23 22:31:05 +00:00
Jeff Young a1e3f2b188 Starved thermals DRC checking.
ADDED min_resolved_spokes constraint.
ADDED "Thermal relief connection to zone incomplete" violation.

Fixes https://gitlab.com/kicad/code/kicad/issues/2183
2021-12-23 22:30:42 +00:00