kicad/pcbnew/drc
Jeff Young f7cdc7af75 Apply a more sophisticated test for ignoring isInCoupledDiffPair.
The basic problem is that the DRC engine does length testing and skew
testing by collecting all the diff pair constituent parts and pairing them
itself.  Since each part is collected on its own, we need to ignore the
'B' unit when evaluating any conditional expressions.  However, doing this
in general means that when evaluating "OwnClearance()" we also ignore the
'B' unit and return the diff pair CLEARANCE_CONSTRAINT when we shouldn't.

This implements a more discerning test which know what the current requested
constraint is when evaluating expressions.

See also https://forum.kicad.info/t/solved-custom-differencing-rule-not-working-drc/34034/6

Fixes https://gitlab.com/kicad/code/kicad/issues/11314
2022-04-02 15:12:42 +01:00
..
drc_engine.cpp Apply a more sophisticated test for ignoring isInCoupledDiffPair. 2022-04-02 15:12:42 +01:00
drc_engine.h Parallelize DRC triangulation, keepout processing, and sliver checking. 2022-03-11 20:52:11 +00:00
drc_item.cpp Add overlapping pad test and share some tests between board & fp editor DRC. 2022-03-18 19:58:42 +00:00
drc_item.h Add overlapping pad test and share some tests between board & fp editor DRC. 2022-03-18 19:58:42 +00:00
drc_length_report.h Unwrap some std::library typedefs. 2021-07-28 22:16:38 +01:00
drc_rtree.h Separate board-edge silk clearance from mask-edge silk clearance. 2022-03-14 20:19:09 +00:00
drc_rule.cpp Custom rule severities. 2021-12-24 15:42:22 +00:00
drc_rule.h ADDED assertion constraints for user-defined DRC checks. 2021-12-24 16:13:18 +00:00
drc_rule_condition.cpp Apply a more sophisticated test for ignoring isInCoupledDiffPair. 2022-04-02 15:12:42 +01:00
drc_rule_condition.h Apply a more sophisticated test for ignoring isInCoupledDiffPair. 2022-04-02 15:12:42 +01:00
drc_rule_parser.cpp A bit of wxT(). 2022-03-13 16:09:06 +00:00
drc_rule_parser.h Fix a pair of dereference-freed-pointers in DRC. 2022-01-10 21:06:03 +00:00
drc_test_provider.cpp A bit of wxT(). 2022-03-13 16:09:06 +00:00
drc_test_provider.h More performance enhancements for DRC. 2022-03-12 14:17:52 +00:00
drc_test_provider_annular_width.cpp wxT() and some cleanup in DRC. 2022-03-11 23:19:16 +00:00
drc_test_provider_clearance_base.h Support optional location reporting in SHAPE collisions. 2020-09-28 23:28:33 +01:00
drc_test_provider_connectivity.cpp wxT() and some cleanup in DRC. 2022-03-11 23:19:16 +00:00
drc_test_provider_copper_clearance.cpp wxT() and some cleanup in DRC. 2022-03-11 23:19:16 +00:00
drc_test_provider_courtyard_clearance.cpp wxT() and some cleanup in DRC. 2022-03-11 23:19:16 +00:00
drc_test_provider_diff_pair_coupling.cpp wxT() and some cleanup in DRC. 2022-03-11 23:19:16 +00:00
drc_test_provider_disallow.cpp Try Coverity fixes that don't break unit tests. 2022-03-25 16:49:29 -04:00
drc_test_provider_edge_clearance.cpp Allow track board edge clearance violations inside the holes of castellated pads. 2022-03-15 00:05:23 +00:00
drc_test_provider_hole_size.cpp Add overlapping pad test and share some tests between board & fp editor DRC. 2022-03-18 19:58:42 +00:00
drc_test_provider_hole_to_hole.cpp More performance enhancements for DRC. 2022-03-12 14:17:52 +00:00
drc_test_provider_library_parity.cpp Careful of calculated fields when comparing board FPs with library. 2022-03-17 13:19:25 +00:00
drc_test_provider_matched_length.cpp Apply a more sophisticated test for ignoring isInCoupledDiffPair. 2022-04-02 15:12:42 +01:00
drc_test_provider_mechanical_clearance.cpp Allow mechanical-clearance checks between edge_cuts and other layers. 2022-03-16 14:56:32 +00:00
drc_test_provider_misc.cpp Fix some Coverity issues. 2022-03-25 15:51:05 -04:00
drc_test_provider_schematic_parity.cpp wxT() and some cleanup in DRC. 2022-03-11 23:19:16 +00:00
drc_test_provider_silk_clearance.cpp wxT() and some cleanup in DRC. 2022-03-11 23:19:16 +00:00
drc_test_provider_sliver_checker.cpp Rotate fp zones before comparing with library versions. 2022-03-14 15:53:24 +00:00
drc_test_provider_solder_mask.cpp Clear DRC caches before running soldermask tests again. 2022-03-12 19:44:34 +00:00
drc_test_provider_text_dims.cpp Rotate fp zones before comparing with library versions. 2022-03-14 15:53:24 +00:00
drc_test_provider_track_width.cpp wxT() and some cleanup in DRC. 2022-03-11 23:19:16 +00:00
drc_test_provider_via_diameter.cpp wxT() and some cleanup in DRC. 2022-03-11 23:19:16 +00:00
drc_test_provider_zone_connections.cpp wxT() and some cleanup in DRC. 2022-03-11 23:19:16 +00:00