diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 30e40fbffb..af6b815dd3 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -657,14 +657,30 @@ // Below are the macros that are used to define the borders for the mesh area, // made available here for specialized needs, ie dual extruder setup. #if ENABLED(MESH_BED_LEVELING) - #define MESH_MIN_X (X_MIN_POS + MESH_INSET) + #if X_MIN_POS < 0 + #define MESH_MIN_X (MESH_INSET) + #else + #define MESH_MIN_X (X_MIN_POS + (MESH_INSET)) + #endif #define MESH_MAX_X (X_MAX_POS - (MESH_INSET)) - #define MESH_MIN_Y (Y_MIN_POS + MESH_INSET) + #if Y_MIN_POS < 0 + #define MESH_MIN_Y (MESH_INSET) + #else + #define MESH_MIN_Y (Y_MIN_POS + (MESH_INSET)) + #endif #define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET)) #elif ENABLED(AUTO_BED_LEVELING_UBL) - #define UBL_MESH_MIN_X (X_MIN_POS + UBL_MESH_INSET) + #if X_MIN_POS < 0 + #define UBL_MESH_MIN_X (UBL_MESH_INSET) + #else + #define UBL_MESH_MIN_X (X_MIN_POS + (UBL_MESH_INSET)) + #endif #define UBL_MESH_MAX_X (X_MAX_POS - (UBL_MESH_INSET)) - #define UBL_MESH_MIN_Y (Y_MIN_POS + UBL_MESH_INSET) + #if Y_MIN_POS < 0 + #define UBL_MESH_MIN_Y (UBL_MESH_INSET) + #else + #define UBL_MESH_MIN_Y (Y_MIN_POS + (UBL_MESH_INSET)) + #endif #define UBL_MESH_MAX_Y (Y_MAX_POS - (UBL_MESH_INSET)) #endif