kicad/pcbnew/drc
Jeff Young 8054f1a948 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

(cherry picked from commit f7cdc7af75)
2022-04-03 18:23:41 +01:00
..
drc_engine.cpp Apply a more sophisticated test for ignoring isInCoupledDiffPair. 2022-04-03 18:23:41 +01:00
drc_engine.h Enforce hole clearance on NPTHs in zones. 2021-08-06 18:16:38 +01:00
drc_item.cpp Pull some fixes back from master. 2022-03-18 12:49:54 -07:00
drc_item.h Fp editor: add DRC test for through hole pads without hole. 2021-10-19 14:47:29 +02:00
drc_length_report.h Unwrap some std::library typedefs. 2021-07-28 22:16:38 +01:00
drc_results_provider.cpp Clean up including of board_design_settings.h 2021-06-06 15:03:42 -04:00
drc_results_provider.h Clean up including of board_design_settings.h 2021-06-06 15:03:42 -04:00
drc_rtree.h Performance fixes for the board from hell.... 2022-03-16 15:14:51 +00:00
drc_rule.cpp Add a compile error for ill-defined rules, and more performance. 2021-08-16 12:14:17 +01:00
drc_rule.h Pull some fixes back from 7.0. 2021-08-21 16:43:11 +01:00
drc_rule_condition.cpp Apply a more sophisticated test for ignoring isInCoupledDiffPair. 2022-04-03 18:23:41 +01:00
drc_rule_condition.h Apply a more sophisticated test for ignoring isInCoupledDiffPair. 2022-04-03 18:23:41 +01:00
drc_rule_parser.cpp Pull some fixes back from master. 2022-03-18 12:49:54 -07:00
drc_rule_parser.h Rename layer ids file. 2021-07-29 16:03:25 +01:00
drc_test_provider.cpp Pull some fixes back from master. 2022-03-18 12:49:54 -07:00
drc_test_provider.h Pass wxPoint objects by reference instead of on the stack. 2021-07-26 15:35:33 -04:00
drc_test_provider_annular_width.cpp Pull some fixes back from master. 2022-03-18 12:49:54 -07: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 Pull some fixes back from master. 2022-03-18 12:49:54 -07:00
drc_test_provider_copper_clearance.cpp Pull some fixes back from master. 2022-03-18 12:49:54 -07:00
drc_test_provider_courtyard_clearance.cpp Pull some fixes back from master. 2022-03-18 12:49:54 -07:00
drc_test_provider_diff_pair_coupling.cpp Pull some fixes back from master. 2022-03-18 12:49:54 -07:00
drc_test_provider_disallow.cpp Pull some fixes back from master. 2022-03-18 12:49:54 -07:00
drc_test_provider_edge_clearance.cpp Pull some fixes back from master. 2022-03-18 12:49:54 -07:00
drc_test_provider_hole_size.cpp Pull some fixes back from master. 2022-03-18 12:49:54 -07:00
drc_test_provider_hole_to_hole.cpp Pull some fixes back from master. 2022-03-18 12:49:54 -07:00
drc_test_provider_lvs.cpp Pull some fixes back from master. 2022-03-18 12:49:54 -07:00
drc_test_provider_matched_length.cpp Apply a more sophisticated test for ignoring isInCoupledDiffPair. 2022-04-03 18:23:41 +01:00
drc_test_provider_misc.cpp Pull some fixes back from master. 2022-03-18 12:49:54 -07:00
drc_test_provider_silk_clearance.cpp Pull some fixes back from master. 2022-03-18 12:49:54 -07:00
drc_test_provider_silk_to_mask.cpp Pull some fixes back from master. 2022-03-18 12:49:54 -07:00
drc_test_provider_track_width.cpp Pull some fixes back from master. 2022-03-18 12:49:54 -07:00
drc_test_provider_via_diameter.cpp Pull some fixes back from master. 2022-03-18 12:49:54 -07:00