diff --git a/common/drc_rules.keywords b/common/drc_rules.keywords
index 8645cdfcfe..3172106092 100644
--- a/common/drc_rules.keywords
+++ b/common/drc_rules.keywords
@@ -34,6 +34,8 @@ opt
 outer
 pad
 pth
+physical_clearance
+physical_hole_clearance
 rule
 severity
 silk_clearance
diff --git a/pcbnew/CMakeLists.txt b/pcbnew/CMakeLists.txt
index 38f683a007..9e574e1d15 100644
--- a/pcbnew/CMakeLists.txt
+++ b/pcbnew/CMakeLists.txt
@@ -240,7 +240,7 @@ set( PCBNEW_DRC_SRCS
     drc/drc_test_provider_disallow.cpp
     drc/drc_test_provider_connectivity.cpp
     drc/drc_test_provider_copper_clearance.cpp
-    drc/drc_test_provider_mechanical_clearance.cpp
+    drc/drc_test_provider_physical_clearance.cpp
     drc/drc_test_provider_courtyard_clearance.cpp
     drc/drc_test_provider_edge_clearance.cpp
     drc/drc_test_provider_footprint_checks.cpp
diff --git a/pcbnew/dialogs/panel_setup_rules.cpp b/pcbnew/dialogs/panel_setup_rules.cpp
index 28f5f5ce38..2572a7d63b 100644
--- a/pcbnew/dialogs/panel_setup_rules.cpp
+++ b/pcbnew/dialogs/panel_setup_rules.cpp
@@ -378,9 +378,9 @@ void PANEL_SETUP_RULES::onScintillaCharAdded( wxStyledTextEvent &aEvent )
                           "hole_clearance|"
                           "hole_size|"
                           "hole_to_hole|"
-                          "mechanical_clearance|"
-                          "mechanical_hole_clearance|"
                           "min_resolved_spokes|"
+                          "physical_clearance|"
+                          "physical_hole_clearance|"
                           "silk_clearance|"
                           "skew|"
                           "text_height|"
diff --git a/pcbnew/dialogs/panel_setup_rules_help.md b/pcbnew/dialogs/panel_setup_rules_help.md
index 3196d3c9ef..f4724d3dd7 100644
--- a/pcbnew/dialogs/panel_setup_rules_help.md
+++ b/pcbnew/dialogs/panel_setup_rules_help.md
@@ -32,9 +32,9 @@
  * length
  * hole\_clearance
  * hole\_size
- * mechanical\_clearance
- * mechanical\_hole\_clearance
  * min\_resolved\_spokes
+ * physical\_clearance
+ * physical\_hole\_clearance
  * silk\_clearance
  * skew
  * text\_height
@@ -46,7 +46,7 @@
  * via\_diameter
  * zone\_connection
 
-Note: `clearance` and `hole_clearance` rules are not run against items of the same net; `mechanical_clearance` and `mechanical_hole_clearance` rules are.
+Note: `clearance` and `hole_clearance` rules are not run against items of the same net; `physical_clearance` and `physical_hole_clearance` rules are.
 <br>
 
 ### Item Types
@@ -258,7 +258,7 @@ For the latter use a `(layer "layer_name")` clause in the rule.
 
     # Prevent solder wicking from SMD pads
     (rule holes_in_pads
-        (constraint mechanical_hole_clearance (min 0.2mm))
+        (constraint physical_hole_clearance (min 0.2mm))
         (condition "B.Pad_Type == 'SMD'"))
 
     # Disallow solder mask margin overrides
diff --git a/pcbnew/drc/drc_engine.cpp b/pcbnew/drc/drc_engine.cpp
index acacc7720f..963f85bad1 100644
--- a/pcbnew/drc/drc_engine.cpp
+++ b/pcbnew/drc/drc_engine.cpp
@@ -40,9 +40,6 @@
 #include <pad.h>
 #include <pcb_track.h>
 #include <zone.h>
-#include <geometry/shape.h>
-#include <geometry/shape_segment.h>
-#include <geometry/shape_null.h>
 
 
 // wxListBox's performance degrades horrifically with very large datasets.  It's not clear
@@ -911,8 +908,8 @@ DRC_CONSTRAINT DRC_ENGINE::EvalRules( DRC_CONSTRAINT_T aConstraintType, const BO
                 case SILK_CLEARANCE_CONSTRAINT:
                 case HOLE_CLEARANCE_CONSTRAINT:
                 case EDGE_CLEARANCE_CONSTRAINT:
-                case MECHANICAL_CLEARANCE_CONSTRAINT:
-                case MECHANICAL_HOLE_CLEARANCE_CONSTRAINT:
+                case PHYSICAL_CLEARANCE_CONSTRAINT:
+                case PHYSICAL_HOLE_CLEARANCE_CONSTRAINT:
                     REPORT( wxString::Format( _( "Checking %s clearance: %s." ),
                                               EscapeHTML( c->constraint.GetName() ),
                                               REPORT_VALUE( c->constraint.m_Value.Min() ) ) )
diff --git a/pcbnew/drc/drc_rule.h b/pcbnew/drc/drc_rule.h
index 89feef7403..b9e4a45c58 100644
--- a/pcbnew/drc/drc_rule.h
+++ b/pcbnew/drc/drc_rule.h
@@ -1,7 +1,7 @@
 /*
  * This program source code file is part of KiCad, a free EDA CAD application.
  *
- * Copyright (C) 2020 KiCad Developers, see change_log.txt for contributors.
+ * Copyright (C) 2020-2022 KiCad Developers, see change_log.txt for contributors.
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -66,8 +66,8 @@ enum DRC_CONSTRAINT_T
     DIFF_PAIR_MAX_UNCOUPLED_CONSTRAINT,
     DIFF_PAIR_INTRA_SKEW_CONSTRAINT,
     VIA_COUNT_CONSTRAINT,
-    MECHANICAL_CLEARANCE_CONSTRAINT,
-    MECHANICAL_HOLE_CLEARANCE_CONSTRAINT,
+    PHYSICAL_CLEARANCE_CONSTRAINT,
+    PHYSICAL_HOLE_CLEARANCE_CONSTRAINT,
     ASSERTION_CONSTRAINT
 };
 
diff --git a/pcbnew/drc/drc_rule_parser.cpp b/pcbnew/drc/drc_rule_parser.cpp
index 7e98f5cbd6..39ff5f615a 100644
--- a/pcbnew/drc/drc_rule_parser.cpp
+++ b/pcbnew/drc/drc_rule_parser.cpp
@@ -72,6 +72,20 @@ void DRC_RULES_PARSER::reportError( const wxString& aMessage )
 }
 
 
+void DRC_RULES_PARSER::reportDeprecation( const wxString& oldToken, const wxString newToken )
+{
+    if( m_reporter )
+    {
+        wxString msg = wxString::Format( _( "The '%s' keyword has been deprecated.  "
+                                            "Please use '%s' instead." ),
+                                         oldToken,
+                                         newToken);
+
+        m_reporter->Report( msg, RPT_SEVERITY_WARNING );
+    }
+}
+
+
 void DRC_RULES_PARSER::parseUnknown()
 {
     int depth = 1;
@@ -258,11 +272,26 @@ void DRC_RULES_PARSER::parseConstraint( DRC_RULE* aRule )
 
     T token = NextTok();
 
-    if( (int) token == DSN_RIGHT || token == T_EOF )
+    if( token == T_mechanical_clearance )
+    {
+        reportDeprecation( wxT( "mechanical_clearance" ), wxT( "physical_clearance" ) );
+        token = T_physical_clearance;
+    }
+    else if( token == T_mechanical_hole_clearance )
+    {
+        reportDeprecation( wxT( "mechanical_hole_clearance" ), wxT( "physical_hole_clearance" ) );
+        token = T_physical_hole_clearance;
+    }
+    else if( token == T_hole )
+    {
+        reportDeprecation( wxT( "hole" ), wxT( "hole_size" ) );
+        token = T_hole_size;
+    }
+    else if( (int) token == DSN_RIGHT || token == T_EOF )
     {
         msg.Printf( _( "Missing constraint type.|  Expected %s." ),
                     wxT( "assertion, clearance, hole_clearance, edge_clearance, "
-                         "mechanical_clearance, mechanical_hole_clearance, courtyard_clearance, "
+                         "physical_clearance, physical_hole_clearance, courtyard_clearance, "
                          "silk_clearance, hole_size, hole_to_hole, track_width, annular_width, "
                          "via_diameter, disallow, zone_connection, thermal_relief_gap, "
                          "thermal_spoke_width, min_resolved_spokes, length, skew, via_count, "
@@ -277,7 +306,6 @@ void DRC_RULES_PARSER::parseConstraint( DRC_RULE* aRule )
     case T_clearance:                 c.m_Type = CLEARANCE_CONSTRAINT;                 break;
     case T_hole_clearance:            c.m_Type = HOLE_CLEARANCE_CONSTRAINT;            break;
     case T_edge_clearance:            c.m_Type = EDGE_CLEARANCE_CONSTRAINT;            break;
-    case T_hole:  // legacy token
     case T_hole_size:                 c.m_Type = HOLE_SIZE_CONSTRAINT;                 break;
     case T_hole_to_hole:              c.m_Type = HOLE_TO_HOLE_CONSTRAINT;              break;
     case T_courtyard_clearance:       c.m_Type = COURTYARD_CLEARANCE_CONSTRAINT;       break;
@@ -297,12 +325,16 @@ void DRC_RULES_PARSER::parseConstraint( DRC_RULE* aRule )
     case T_via_count:                 c.m_Type = VIA_COUNT_CONSTRAINT;                 break;
     case T_diff_pair_gap:             c.m_Type = DIFF_PAIR_GAP_CONSTRAINT;             break;
     case T_diff_pair_uncoupled:       c.m_Type = DIFF_PAIR_MAX_UNCOUPLED_CONSTRAINT;   break;
-    case T_mechanical_clearance:      c.m_Type = MECHANICAL_CLEARANCE_CONSTRAINT;      break;
-    case T_mechanical_hole_clearance: c.m_Type = MECHANICAL_HOLE_CLEARANCE_CONSTRAINT; break;
+    case T_physical_clearance:        c.m_Type = PHYSICAL_CLEARANCE_CONSTRAINT;        break;
+    case T_physical_hole_clearance:   c.m_Type = PHYSICAL_HOLE_CLEARANCE_CONSTRAINT;   break;
+    // legacy tokens:
+    case T_hole:                      c.m_Type = HOLE_SIZE_CONSTRAINT;                 break;
+    case T_mechanical_clearance:      c.m_Type = PHYSICAL_CLEARANCE_CONSTRAINT;        break;
+    case T_mechanical_hole_clearance: c.m_Type = PHYSICAL_HOLE_CLEARANCE_CONSTRAINT;   break;
     default:
         msg.Printf( _( "Unrecognized item '%s'.| Expected %s." ), FromUTF8(),
                     wxT( "assertion, clearance, hole_clearance, edge_clearance, "
-                         "mechanical_clearance, mechanical_hole_clearance, courtyard_clearance, "
+                         "physical_clearance, physical_hole_clearance, courtyard_clearance, "
                          "silk_clearance, hole_size, hole_to_hole, track_width, annular_width, "
                          "disallow, zone_connection, thermal_relief_gap, thermal_spoke_width, "
                          "min_resolved_spokes, length, skew, via_count, via_diameter, "
diff --git a/pcbnew/drc/drc_rule_parser.h b/pcbnew/drc/drc_rule_parser.h
index 10218d4040..a5a3e963c7 100644
--- a/pcbnew/drc/drc_rule_parser.h
+++ b/pcbnew/drc/drc_rule_parser.h
@@ -1,7 +1,7 @@
 /*
  * This program source code file is part of KiCad, a free EDA CAD application.
  *
- * Copyright (C) 2020 KiCad Developers, see change_log.txt for contributors.
+ * Copyright (C) 2020-2022 KiCad Developers, see change_log.txt for contributors.
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -55,6 +55,7 @@ private:
     void parseUnknown();
 
     void reportError( const wxString& aMessage );
+    void reportDeprecation( const wxString& oldToken, const wxString newToken );
 
 private:
     int       m_requiredVersion;
diff --git a/pcbnew/drc/drc_test_provider_mechanical_clearance.cpp b/pcbnew/drc/drc_test_provider_physical_clearance.cpp
similarity index 93%
rename from pcbnew/drc/drc_test_provider_mechanical_clearance.cpp
rename to pcbnew/drc/drc_test_provider_physical_clearance.cpp
index dcbe18098e..08afbe6f70 100644
--- a/pcbnew/drc/drc_test_provider_mechanical_clearance.cpp
+++ b/pcbnew/drc/drc_test_provider_physical_clearance.cpp
@@ -39,22 +39,22 @@
 #include <drc/drc_test_provider_clearance_base.h>
 
 /*
-    Mechanical clearance test.
+    Physical clearance tests.
 
     Errors generated:
-    - DRCE_MECHANICAL_CLEARANCE
-    - DRCE_MECHANICAL_HOLE_CLEARANCE
+    - DRCE_PHYSICAL_CLEARANCE
+    - DRCE_PHYSICAL_HOLE_CLEARANCE
 */
 
-class DRC_TEST_PROVIDER_MECHANICAL_CLEARANCE : public DRC_TEST_PROVIDER_CLEARANCE_BASE
+class DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE : public DRC_TEST_PROVIDER_CLEARANCE_BASE
 {
 public:
-    DRC_TEST_PROVIDER_MECHANICAL_CLEARANCE () :
+    DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE () :
             DRC_TEST_PROVIDER_CLEARANCE_BASE()
     {
     }
 
-    virtual ~DRC_TEST_PROVIDER_MECHANICAL_CLEARANCE()
+    virtual ~DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE()
     {
     }
 
@@ -62,7 +62,7 @@ public:
 
     virtual const wxString GetName() const override
     {
-        return wxT( "mechanical_clearance" );
+        return wxT( "physical_clearance" );
     };
 
     virtual const wxString GetDescription() const override
@@ -87,7 +87,7 @@ private:
 };
 
 
-bool DRC_TEST_PROVIDER_MECHANICAL_CLEARANCE::Run()
+bool DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::Run()
 {
     m_board = m_drcEngine->GetBoard();
     m_itemTree.clear();
@@ -97,10 +97,10 @@ bool DRC_TEST_PROVIDER_MECHANICAL_CLEARANCE::Run()
     int            errorMax = m_board->GetDesignSettings().m_MaxError;
     DRC_CONSTRAINT worstConstraint;
 
-    if( m_drcEngine->QueryWorstConstraint( MECHANICAL_CLEARANCE_CONSTRAINT, worstConstraint ) )
+    if( m_drcEngine->QueryWorstConstraint( PHYSICAL_CLEARANCE_CONSTRAINT, worstConstraint ) )
         m_largestClearance = worstConstraint.GetValue().Min();
 
-    if( m_drcEngine->QueryWorstConstraint( MECHANICAL_HOLE_CLEARANCE_CONSTRAINT, worstConstraint ) )
+    if( m_drcEngine->QueryWorstConstraint( PHYSICAL_HOLE_CLEARANCE_CONSTRAINT, worstConstraint ) )
         m_largestClearance = std::max( m_largestClearance, worstConstraint.GetValue().Min() );
 
     if( m_largestClearance <= 0 )
@@ -282,7 +282,7 @@ bool DRC_TEST_PROVIDER_MECHANICAL_CLEARANCE::Run()
                         if( !reportProgress( ii++, count, delta ) )
                             return false;
 
-                        DRC_CONSTRAINT c = m_drcEngine->EvalRules( MECHANICAL_CLEARANCE_CONSTRAINT,
+                        DRC_CONSTRAINT c = m_drcEngine->EvalRules( PHYSICAL_CLEARANCE_CONSTRAINT,
                                                                    item, nullptr, layer );
 
                         if( shape )
@@ -367,10 +367,10 @@ bool DRC_TEST_PROVIDER_MECHANICAL_CLEARANCE::Run()
 }
 
 
-void DRC_TEST_PROVIDER_MECHANICAL_CLEARANCE::testShapeLineChain( const SHAPE_LINE_CHAIN& aOutline,
-                                                                 int aLineWidth, PCB_LAYER_ID aLayer,
-                                                                 BOARD_ITEM* aParentItem,
-                                                                 DRC_CONSTRAINT& aConstraint )
+void DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::testShapeLineChain( const SHAPE_LINE_CHAIN& aOutline,
+                                                               int aLineWidth, PCB_LAYER_ID aLayer,
+                                                               BOARD_ITEM* aParentItem,
+                                                               DRC_CONSTRAINT& aConstraint )
 {
     // We don't want to collide with neighboring segments forming a curve until the concavity
     // approaches 180 degrees.
@@ -510,8 +510,8 @@ void DRC_TEST_PROVIDER_MECHANICAL_CLEARANCE::testShapeLineChain( const SHAPE_LIN
 }
 
 
-void DRC_TEST_PROVIDER_MECHANICAL_CLEARANCE::testZoneLayer( ZONE* aZone, PCB_LAYER_ID aLayer,
-                                                            DRC_CONSTRAINT& aConstraint )
+void DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::testZoneLayer( ZONE* aZone, PCB_LAYER_ID aLayer,
+                                                          DRC_CONSTRAINT& aConstraint )
 {
     int            epsilon = m_board->GetDesignSettings().GetDRCEpsilon();
     int            clearance = aConstraint.GetValue().Min();
@@ -573,10 +573,10 @@ void DRC_TEST_PROVIDER_MECHANICAL_CLEARANCE::testZoneLayer( ZONE* aZone, PCB_LAY
 }
 
 
-bool DRC_TEST_PROVIDER_MECHANICAL_CLEARANCE::testItemAgainstItem( BOARD_ITEM* item,
-                                                                  SHAPE* itemShape,
-                                                                  PCB_LAYER_ID layer,
-                                                                  BOARD_ITEM* other )
+bool DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::testItemAgainstItem( BOARD_ITEM* item,
+                                                                SHAPE* itemShape,
+                                                                PCB_LAYER_ID layer,
+                                                                BOARD_ITEM* other )
 {
     bool           testClearance = !m_drcEngine->IsErrorLimitExceeded( DRCE_CLEARANCE );
     bool           testHoles = !m_drcEngine->IsErrorLimitExceeded( DRCE_HOLE_CLEARANCE );
@@ -589,7 +589,7 @@ bool DRC_TEST_PROVIDER_MECHANICAL_CLEARANCE::testItemAgainstItem( BOARD_ITEM* it
 
     if( testClearance )
     {
-        constraint = m_drcEngine->EvalRules( MECHANICAL_CLEARANCE_CONSTRAINT, item, other, layer );
+        constraint = m_drcEngine->EvalRules( PHYSICAL_CLEARANCE_CONSTRAINT, item, other, layer );
         clearance = constraint.GetValue().Min();
     }
 
@@ -652,7 +652,7 @@ bool DRC_TEST_PROVIDER_MECHANICAL_CLEARANCE::testItemAgainstItem( BOARD_ITEM* it
 
         if( itemHoleShape || otherHoleShape )
         {
-            constraint = m_drcEngine->EvalRules( MECHANICAL_HOLE_CLEARANCE_CONSTRAINT, other, item,
+            constraint = m_drcEngine->EvalRules( PHYSICAL_HOLE_CLEARANCE_CONSTRAINT, other, item,
                                                  layer );
             clearance = constraint.GetValue().Min();
         }
@@ -697,8 +697,8 @@ bool DRC_TEST_PROVIDER_MECHANICAL_CLEARANCE::testItemAgainstItem( BOARD_ITEM* it
 }
 
 
-void DRC_TEST_PROVIDER_MECHANICAL_CLEARANCE::testItemAgainstZones( BOARD_ITEM* aItem,
-                                                                   PCB_LAYER_ID aLayer )
+void DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::testItemAgainstZones( BOARD_ITEM* aItem,
+                                                                 PCB_LAYER_ID aLayer )
 {
     for( ZONE* zone : m_zones )
     {
@@ -723,7 +723,7 @@ void DRC_TEST_PROVIDER_MECHANICAL_CLEARANCE::testItemAgainstZones( BOARD_ITEM* a
 
             if( testClearance )
             {
-                constraint = m_drcEngine->EvalRules( MECHANICAL_CLEARANCE_CONSTRAINT, aItem, zone,
+                constraint = m_drcEngine->EvalRules( PHYSICAL_CLEARANCE_CONSTRAINT, aItem, zone,
                                                      aLayer );
                 clearance = constraint.GetValue().Min();
             }
@@ -803,8 +803,8 @@ void DRC_TEST_PROVIDER_MECHANICAL_CLEARANCE::testItemAgainstZones( BOARD_ITEM* a
 
                 if( holeShape )
                 {
-                    constraint = m_drcEngine->EvalRules( MECHANICAL_HOLE_CLEARANCE_CONSTRAINT,
-                                                         aItem, zone, aLayer );
+                    constraint = m_drcEngine->EvalRules( PHYSICAL_HOLE_CLEARANCE_CONSTRAINT, aItem, 
+                                                         zone, aLayer );
                     clearance = constraint.GetValue().Min();
 
                     if( constraint.GetSeverity() != RPT_SEVERITY_IGNORE
@@ -837,5 +837,5 @@ void DRC_TEST_PROVIDER_MECHANICAL_CLEARANCE::testItemAgainstZones( BOARD_ITEM* a
 
 namespace detail
 {
-    static DRC_REGISTER_TEST_PROVIDER<DRC_TEST_PROVIDER_MECHANICAL_CLEARANCE> dummy;
+    static DRC_REGISTER_TEST_PROVIDER<DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE> dummy;
 }
diff --git a/pcbnew/tools/board_inspection_tool.cpp b/pcbnew/tools/board_inspection_tool.cpp
index 91a044a020..865fccc1cc 100644
--- a/pcbnew/tools/board_inspection_tool.cpp
+++ b/pcbnew/tools/board_inspection_tool.cpp
@@ -388,16 +388,16 @@ void BOARD_INSPECTION_TOOL::InspectDRCError( const std::shared_ptr<RC_ITEM>& aDR
         r->Report( "" );
         r->Report( "" );
         r->Report( "" );
-        reportHeader( _( "Mechanical hole clearance resolution for:" ), a, b, layer, r );
+        reportHeader( _( "Physical hole clearance resolution for:" ), a, b, layer, r );
 
-        constraint = drcEngine.EvalRules( MECHANICAL_HOLE_CLEARANCE_CONSTRAINT, a, b, layer, r );
+        constraint = drcEngine.EvalRules( PHYSICAL_HOLE_CLEARANCE_CONSTRAINT, a, b, layer, r );
         clearance = constraint.m_Value.Min();
         clearanceStr = StringFromValue( r->GetUnits(), clearance, true );
 
-        if( !drcEngine.HasRulesForConstraintType( MECHANICAL_HOLE_CLEARANCE_CONSTRAINT ) )
+        if( !drcEngine.HasRulesForConstraintType( PHYSICAL_HOLE_CLEARANCE_CONSTRAINT ) )
         {
             r->Report( "" );
-            r->Report( _( "No 'mechanical_hole_clearance' constraints defined." ) );
+            r->Report( _( "No 'physical_hole_clearance' constraints defined." ) );
         }
         else
         {
@@ -474,16 +474,16 @@ void BOARD_INSPECTION_TOOL::InspectDRCError( const std::shared_ptr<RC_ITEM>& aDR
         r->Report( "" );
         r->Report( "" );
         r->Report( "" );
-        reportHeader( _( "Mechanical clearance resolution for:" ), a, b, layer, r );
+        reportHeader( _( "Physical clearance resolution for:" ), a, b, layer, r );
 
-        constraint = drcEngine.EvalRules( MECHANICAL_CLEARANCE_CONSTRAINT, a, b, layer, r );
+        constraint = drcEngine.EvalRules( PHYSICAL_CLEARANCE_CONSTRAINT, a, b, layer, r );
         clearance = constraint.m_Value.Min();
         clearanceStr = StringFromValue( r->GetUnits(), clearance, true );
 
-        if( !drcEngine.HasRulesForConstraintType( MECHANICAL_CLEARANCE_CONSTRAINT ) )
+        if( !drcEngine.HasRulesForConstraintType( PHYSICAL_CLEARANCE_CONSTRAINT ) )
         {
             r->Report( "" );
-            r->Report( _( "No 'mechanical_clearance' constraints defined." ) );
+            r->Report( _( "No 'physical_clearance' constraints defined." ) );
         }
         else
         {
@@ -671,14 +671,14 @@ int BOARD_INSPECTION_TOOL::InspectClearance( const TOOL_EVENT& aEvent )
             r->Report( wxString::Format( _( "Zone clearance: %s." ),
                                          StringFromValue( units, clearance, true ) ) );
 
-            constraint = drcEngine.EvalRules( MECHANICAL_CLEARANCE_CONSTRAINT, pad, zone, layer, r );
+            constraint = drcEngine.EvalRules( PHYSICAL_CLEARANCE_CONSTRAINT, pad, zone, layer, r );
 
             if( constraint.m_Value.Min() > clearance )
             {
                 clearance = constraint.m_Value.Min();
 
                 r->Report( "" );
-                r->Report( wxString::Format( _( "Overridden by larger mechanical clearance from %s;"
+                r->Report( wxString::Format( _( "Overridden by larger physical clearance from %s;"
                                                 "clearance: %s." ),
                                              EscapeHTML( constraint.GetName() ),
                                              StringFromValue( units, clearance, true ) ) );
@@ -686,7 +686,7 @@ int BOARD_INSPECTION_TOOL::InspectClearance( const TOOL_EVENT& aEvent )
 
             if( !pad->FlashLayer( layer ) )
             {
-                constraint = drcEngine.EvalRules( MECHANICAL_HOLE_CLEARANCE_CONSTRAINT, pad, zone,
+                constraint = drcEngine.EvalRules( PHYSICAL_HOLE_CLEARANCE_CONSTRAINT, pad, zone,
                                                   layer, r );
 
                 if( constraint.m_Value.Min() > clearance )
@@ -694,7 +694,7 @@ int BOARD_INSPECTION_TOOL::InspectClearance( const TOOL_EVENT& aEvent )
                     clearance = constraint.m_Value.Min();
 
                     r->Report( "" );
-                    r->Report( wxString::Format( _( "Overridden by larger mechanical hole clearance from %s;"
+                    r->Report( wxString::Format( _( "Overridden by larger physical hole clearance from %s;"
                                                     "clearance: %s." ),
                                                  EscapeHTML( constraint.GetName() ),
                                                  StringFromValue( units, clearance, true ) ) );
@@ -914,7 +914,7 @@ int BOARD_INSPECTION_TOOL::InspectClearance( const TOOL_EVENT& aEvent )
         }
     }
 
-    r = m_inspectClearanceDialog->AddPage( _( "Mechanical" ) );
+    r = m_inspectClearanceDialog->AddPage( _( "Physical Clearances" ) );
 
     if( layerIntersection.any() )
     {
@@ -923,19 +923,19 @@ int BOARD_INSPECTION_TOOL::InspectClearance( const TOOL_EVENT& aEvent )
         if( !layerIntersection.test( layer ) )
             layer = layerIntersection.Seq().front();
 
-        reportHeader( _( "Mechanical clearance resolution for:" ), a, b, layer, r );
+        reportHeader( _( "Physical clearance resolution for:" ), a, b, layer, r );
 
-        constraint = drcEngine.EvalRules( MECHANICAL_CLEARANCE_CONSTRAINT, a, b, layer, r );
+        constraint = drcEngine.EvalRules( PHYSICAL_CLEARANCE_CONSTRAINT, a, b, layer, r );
         clearance = constraint.m_Value.Min();
 
         if( compileError )
         {
             reportCompileError( r );
         }
-        else if( !drcEngine.HasRulesForConstraintType( MECHANICAL_CLEARANCE_CONSTRAINT ) )
+        else if( !drcEngine.HasRulesForConstraintType( PHYSICAL_CLEARANCE_CONSTRAINT ) )
         {
             r->Report( "" );
-            r->Report( _( "No 'mechanical_clearance' constraints defined." ) );
+            r->Report( _( "No 'physical_clearance' constraints defined." ) );
         }
         else
         {
@@ -962,19 +962,19 @@ int BOARD_INSPECTION_TOOL::InspectClearance( const TOOL_EVENT& aEvent )
         else
             layer = a->GetLayer();
 
-        reportHeader( _( "Mechanical hole clearance resolution for:" ), a, b, layer, r );
+        reportHeader( _( "Physical hole clearance resolution for:" ), a, b, layer, r );
 
-        constraint = drcEngine.EvalRules( MECHANICAL_HOLE_CLEARANCE_CONSTRAINT, a, b, layer, r );
+        constraint = drcEngine.EvalRules( PHYSICAL_HOLE_CLEARANCE_CONSTRAINT, a, b, layer, r );
         clearance = constraint.m_Value.Min();
 
         if( compileError )
         {
             reportCompileError( r );
         }
-        else if( !drcEngine.HasRulesForConstraintType( MECHANICAL_HOLE_CLEARANCE_CONSTRAINT ) )
+        else if( !drcEngine.HasRulesForConstraintType( PHYSICAL_HOLE_CLEARANCE_CONSTRAINT ) )
         {
             r->Report( "" );
-            r->Report( _( "No 'mechanical_hole_clearance' constraints defined." ) );
+            r->Report( _( "No 'physical_hole_clearance' constraints defined." ) );
         }
         else
         {
diff --git a/pcbnew/zone_filler.cpp b/pcbnew/zone_filler.cpp
index 67b3323d45..cb93519f73 100644
--- a/pcbnew/zone_filler.cpp
+++ b/pcbnew/zone_filler.cpp
@@ -605,7 +605,7 @@ void ZONE_FILLER::knockoutThermalReliefs( const ZONE* aZone, PCB_LAYER_ID aLayer
                 break;
 
             case ZONE_CONNECTION::NONE:
-                constraint = bds.m_DRCEngine->EvalRules( MECHANICAL_CLEARANCE_CONSTRAINT, pad,
+                constraint = bds.m_DRCEngine->EvalRules( PHYSICAL_CLEARANCE_CONSTRAINT, pad,
                                                          aZone, aLayer );
 
                 if( constraint.GetValue().Min() > aZone->GetLocalClearance() )
@@ -613,7 +613,7 @@ void ZONE_FILLER::knockoutThermalReliefs( const ZONE* aZone, PCB_LAYER_ID aLayer
                 else
                     padClearance = aZone->GetLocalClearance();
 
-                constraint = bds.m_DRCEngine->EvalRules( MECHANICAL_HOLE_CLEARANCE_CONSTRAINT, pad,
+                constraint = bds.m_DRCEngine->EvalRules( PHYSICAL_HOLE_CLEARANCE_CONSTRAINT, pad,
                                                          aZone, aLayer );
 
                 if( constraint.GetValue().Min() > padClearance )
@@ -688,8 +688,7 @@ void ZONE_FILLER::buildCopperItemClearances( const ZONE* aZone, PCB_LAYER_ID aLa
     auto knockoutPadClearance =
             [&]( PAD* aPad )
             {
-                int  gap = evalRulesForItems( MECHANICAL_CLEARANCE_CONSTRAINT,
-                                              aZone, aPad, aLayer );
+                int  gap = evalRulesForItems( PHYSICAL_CLEARANCE_CONSTRAINT, aZone, aPad, aLayer );
                 bool hasHole = aPad->GetDrillSize().x > 0;
                 bool flashLayer = aPad->FlashLayer( aLayer );
                 bool platedHole = hasHole && aPad->GetAttribute() == PAD_ATTRIB::PTH;
@@ -705,7 +704,7 @@ void ZONE_FILLER::buildCopperItemClearances( const ZONE* aZone, PCB_LAYER_ID aLa
 
                 if( hasHole )
                 {
-                    gap = std::max( gap, evalRulesForItems( MECHANICAL_HOLE_CLEARANCE_CONSTRAINT,
+                    gap = std::max( gap, evalRulesForItems( PHYSICAL_HOLE_CLEARANCE_CONSTRAINT,
                                                             aZone, aPad, aLayer ) );
 
                     gap = std::max( gap, evalRulesForItems( HOLE_CLEARANCE_CONSTRAINT,
@@ -734,7 +733,7 @@ void ZONE_FILLER::buildCopperItemClearances( const ZONE* aZone, PCB_LAYER_ID aLa
                     bool sameNet = aTrack->GetNetCode() == aZone->GetNetCode()
                                         && aZone->GetNetCode() != 0;
 
-                    int  gap = evalRulesForItems( MECHANICAL_CLEARANCE_CONSTRAINT,
+                    int  gap = evalRulesForItems( PHYSICAL_CLEARANCE_CONSTRAINT,
                                                   aZone, aTrack, aLayer );
 
                     if( !sameNet )
@@ -754,7 +753,7 @@ void ZONE_FILLER::buildCopperItemClearances( const ZONE* aZone, PCB_LAYER_ID aLa
                                                                        m_maxError, ERROR_OUTSIDE );
                         }
 
-                        gap = std::max( gap, evalRulesForItems( MECHANICAL_HOLE_CLEARANCE_CONSTRAINT,
+                        gap = std::max( gap, evalRulesForItems( PHYSICAL_HOLE_CLEARANCE_CONSTRAINT,
                                                                 aZone, via, aLayer ) );
 
                         if( !sameNet )
@@ -810,7 +809,7 @@ void ZONE_FILLER::buildCopperItemClearances( const ZONE* aZone, PCB_LAYER_ID aLa
                     if( aItem->GetBoundingBox().Intersects( zone_boundingbox ) )
                     {
                         bool ignoreLineWidths = false;
-                        int  gap = evalRulesForItems( MECHANICAL_CLEARANCE_CONSTRAINT,
+                        int  gap = evalRulesForItems( PHYSICAL_CLEARANCE_CONSTRAINT,
                                                       aZone, aItem, aLayer );
 
                         if( aItem->IsOnLayer( aLayer ) )
@@ -894,7 +893,7 @@ void ZONE_FILLER::buildCopperItemClearances( const ZONE* aZone, PCB_LAYER_ID aLa
                     }
                     else
                     {
-                        int gap = evalRulesForItems( MECHANICAL_CLEARANCE_CONSTRAINT, aZone,
+                        int gap = evalRulesForItems( PHYSICAL_CLEARANCE_CONSTRAINT, aZone,
                                                      aKnockout, aLayer );
 
                         gap = std::max( gap, evalRulesForItems( CLEARANCE_CONSTRAINT, aZone,
@@ -1252,7 +1251,7 @@ bool ZONE_FILLER::fillNonCopperZone( const ZONE* aZone, PCB_LAYER_ID aLayer,
                 if( aItem->IsKnockout() && aItem->IsOnLayer( aLayer )
                         && aItem->GetBoundingBox().Intersects( zone_boundingbox ) )
                 {
-                    DRC_CONSTRAINT cc = bds.m_DRCEngine->EvalRules( MECHANICAL_CLEARANCE_CONSTRAINT,
+                    DRC_CONSTRAINT cc = bds.m_DRCEngine->EvalRules( PHYSICAL_CLEARANCE_CONSTRAINT,
                                                                     aZone, aItem, aLayer );
 
                     addKnockout( aItem, aLayer, cc.GetValue().Min(), false, clearanceHoles );