|
|
@ -984,6 +984,20 @@
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#endif // SKEW_CORRECTION
|
|
|
|
#endif // SKEW_CORRECTION
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* Set granular options based on the specific type of leveling
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
#define UBL_SEGMENTED (ENABLED(AUTO_BED_LEVELING_UBL) && (ENABLED(DELTA)))
|
|
|
|
|
|
|
|
#define ABL_PLANAR (ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_3POINT))
|
|
|
|
|
|
|
|
#define ABL_GRID (ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR))
|
|
|
|
|
|
|
|
#define OLDSCHOOL_ABL (ABL_PLANAR || ABL_GRID)
|
|
|
|
|
|
|
|
#define HAS_ABL (OLDSCHOOL_ABL || ENABLED(AUTO_BED_LEVELING_UBL))
|
|
|
|
|
|
|
|
#define HAS_LEVELING (HAS_ABL || ENABLED(MESH_BED_LEVELING))
|
|
|
|
|
|
|
|
#define HAS_AUTOLEVEL (HAS_ABL && DISABLED(PROBE_MANUALLY))
|
|
|
|
|
|
|
|
#define HAS_MESH (ENABLED(AUTO_BED_LEVELING_BILINEAR) || ENABLED(AUTO_BED_LEVELING_UBL) || ENABLED(MESH_BED_LEVELING))
|
|
|
|
|
|
|
|
#define PLANNER_LEVELING (OLDSCHOOL_ABL || ENABLED(MESH_BED_LEVELING) || UBL_SEGMENTED || ENABLED(SKEW_CORRECTION))
|
|
|
|
|
|
|
|
#define HAS_PROBING_PROCEDURE (HAS_ABL || ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST))
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Heater & Fan Pausing
|
|
|
|
* Heater & Fan Pausing
|
|
|
|
*/
|
|
|
|
*/
|
|
|
@ -1004,11 +1018,25 @@
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Delta radius/rod trimmers/angle trimmers
|
|
|
|
* Bed Probing rectangular bounds
|
|
|
|
|
|
|
|
* These can be further constrained in code for Delta and SCARA
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef MIN_PROBE_EDGE
|
|
|
|
|
|
|
|
#define MIN_PROBE_EDGE 0
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#if ENABLED(DELTA)
|
|
|
|
#if ENABLED(DELTA)
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* Delta radius/rod trimmers/angle trimmers
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
#define _PROBE_RADIUS (DELTA_PRINTABLE_RADIUS - (MIN_PROBE_EDGE))
|
|
|
|
#ifndef DELTA_CALIBRATION_RADIUS
|
|
|
|
#ifndef DELTA_CALIBRATION_RADIUS
|
|
|
|
#define DELTA_CALIBRATION_RADIUS DELTA_PRINTABLE_RADIUS - 10
|
|
|
|
#ifdef X_PROBE_OFFSET_FROM_EXTRUDER
|
|
|
|
|
|
|
|
#define DELTA_CALIBRATION_RADIUS (DELTA_PRINTABLE_RADIUS - MAX3(abs(X_PROBE_OFFSET_FROM_EXTRUDER), abs(Y_PROBE_OFFSET_FROM_EXTRUDER), abs(MIN_PROBE_EDGE)))
|
|
|
|
|
|
|
|
#else
|
|
|
|
|
|
|
|
#define DELTA_CALIBRATION_RADIUS _PROBE_RADIUS
|
|
|
|
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#ifndef DELTA_ENDSTOP_ADJ
|
|
|
|
#ifndef DELTA_ENDSTOP_ADJ
|
|
|
|
#define DELTA_ENDSTOP_ADJ { 0, 0, 0 }
|
|
|
|
#define DELTA_ENDSTOP_ADJ { 0, 0, 0 }
|
|
|
@ -1022,59 +1050,36 @@
|
|
|
|
#ifndef DELTA_DIAGONAL_ROD_TRIM_TOWER
|
|
|
|
#ifndef DELTA_DIAGONAL_ROD_TRIM_TOWER
|
|
|
|
#define DELTA_DIAGONAL_ROD_TRIM_TOWER {0, 0, 0}
|
|
|
|
#define DELTA_DIAGONAL_ROD_TRIM_TOWER {0, 0, 0}
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* Set granular options based on the specific type of leveling
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
#define UBL_SEGMENTED (ENABLED(AUTO_BED_LEVELING_UBL) && (ENABLED(DELTA)))
|
|
|
|
|
|
|
|
#define ABL_PLANAR (ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_3POINT))
|
|
|
|
|
|
|
|
#define ABL_GRID (ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR))
|
|
|
|
|
|
|
|
#define OLDSCHOOL_ABL (ABL_PLANAR || ABL_GRID)
|
|
|
|
|
|
|
|
#define HAS_ABL (OLDSCHOOL_ABL || ENABLED(AUTO_BED_LEVELING_UBL))
|
|
|
|
|
|
|
|
#define HAS_LEVELING (HAS_ABL || ENABLED(MESH_BED_LEVELING))
|
|
|
|
|
|
|
|
#define HAS_AUTOLEVEL (HAS_ABL && DISABLED(PROBE_MANUALLY))
|
|
|
|
|
|
|
|
#define HAS_MESH (ENABLED(AUTO_BED_LEVELING_BILINEAR) || ENABLED(AUTO_BED_LEVELING_UBL) || ENABLED(MESH_BED_LEVELING))
|
|
|
|
|
|
|
|
#define PLANNER_LEVELING (OLDSCHOOL_ABL || ENABLED(MESH_BED_LEVELING) || UBL_SEGMENTED || ENABLED(SKEW_CORRECTION))
|
|
|
|
|
|
|
|
#define HAS_PROBING_PROCEDURE (HAS_ABL || ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST))
|
|
|
|
|
|
|
|
#if HAS_PROBING_PROCEDURE
|
|
|
|
|
|
|
|
#define PROBE_BED_WIDTH abs(RIGHT_PROBE_BED_POSITION - (LEFT_PROBE_BED_POSITION))
|
|
|
|
|
|
|
|
#define PROBE_BED_HEIGHT abs(BACK_PROBE_BED_POSITION - (FRONT_PROBE_BED_POSITION))
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if ENABLED(SEGMENT_LEVELED_MOVES) && !defined(LEVELED_SEGMENT_LENGTH)
|
|
|
|
|
|
|
|
#define LEVELED_SEGMENT_LENGTH 5
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* Bed Probing rectangular bounds
|
|
|
|
|
|
|
|
* These can be further constrained in code for Delta and SCARA
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef MIN_PROBE_EDGE
|
|
|
|
|
|
|
|
#define MIN_PROBE_EDGE 0
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if ENABLED(DELTA)
|
|
|
|
|
|
|
|
// Probing points may be verified at compile time within the radius
|
|
|
|
// Probing points may be verified at compile time within the radius
|
|
|
|
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
|
|
|
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
|
|
|
// so that may be added to SanityCheck.h in the future.
|
|
|
|
// so that may be added to SanityCheck.h in the future.
|
|
|
|
#define _MIN_PROBE_X (X_CENTER - (DELTA_PRINTABLE_RADIUS) + MIN_PROBE_EDGE)
|
|
|
|
#define _MIN_PROBE_X (X_CENTER - (_PROBE_RADIUS))
|
|
|
|
#define _MIN_PROBE_Y (Y_CENTER - (DELTA_PRINTABLE_RADIUS) + MIN_PROBE_EDGE)
|
|
|
|
#define _MIN_PROBE_Y (Y_CENTER - (_PROBE_RADIUS))
|
|
|
|
#define _MAX_PROBE_X (X_CENTER + DELTA_PRINTABLE_RADIUS - (MIN_PROBE_EDGE))
|
|
|
|
#define _MAX_PROBE_X (X_CENTER + _PROBE_RADIUS)
|
|
|
|
#define _MAX_PROBE_Y (Y_CENTER + DELTA_PRINTABLE_RADIUS - (MIN_PROBE_EDGE))
|
|
|
|
#define _MAX_PROBE_Y (Y_CENTER + _PROBE_RADIUS)
|
|
|
|
|
|
|
|
|
|
|
|
#elif IS_SCARA
|
|
|
|
#elif IS_SCARA
|
|
|
|
|
|
|
|
|
|
|
|
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
|
|
|
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
|
|
|
|
|
|
|
#define _PROBE_RADIUS (SCARA_PRINTABLE_RADIUS - (MIN_PROBE_EDGE))
|
|
|
|
#define _MIN_PROBE_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + MIN_PROBE_EDGE)
|
|
|
|
#define _MIN_PROBE_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + MIN_PROBE_EDGE)
|
|
|
|
#define _MIN_PROBE_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + MIN_PROBE_EDGE)
|
|
|
|
#define _MIN_PROBE_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + MIN_PROBE_EDGE)
|
|
|
|
#define _MAX_PROBE_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (MIN_PROBE_EDGE))
|
|
|
|
#define _MAX_PROBE_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (MIN_PROBE_EDGE))
|
|
|
|
#define _MAX_PROBE_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (MIN_PROBE_EDGE))
|
|
|
|
#define _MAX_PROBE_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (MIN_PROBE_EDGE))
|
|
|
|
|
|
|
|
|
|
|
|
#else
|
|
|
|
#else
|
|
|
|
|
|
|
|
|
|
|
|
// Boundaries for Cartesian probing based on bed limits
|
|
|
|
// Boundaries for Cartesian probing based on bed limits
|
|
|
|
#define _MIN_PROBE_X (max(X_MIN_BED + MIN_PROBE_EDGE, X_MIN_POS + X_PROBE_OFFSET_FROM_EXTRUDER))
|
|
|
|
#define _MIN_PROBE_X (max(X_MIN_BED + MIN_PROBE_EDGE, X_MIN_POS + X_PROBE_OFFSET_FROM_EXTRUDER))
|
|
|
|
#define _MIN_PROBE_Y (max(Y_MIN_BED + MIN_PROBE_EDGE, Y_MIN_POS + Y_PROBE_OFFSET_FROM_EXTRUDER))
|
|
|
|
#define _MIN_PROBE_Y (max(Y_MIN_BED + MIN_PROBE_EDGE, Y_MIN_POS + Y_PROBE_OFFSET_FROM_EXTRUDER))
|
|
|
|
#define _MAX_PROBE_X (min(X_MAX_BED - (MIN_PROBE_EDGE), X_MAX_POS + X_PROBE_OFFSET_FROM_EXTRUDER))
|
|
|
|
#define _MAX_PROBE_X (min(X_MAX_BED - (MIN_PROBE_EDGE), X_MAX_POS + X_PROBE_OFFSET_FROM_EXTRUDER))
|
|
|
|
#define _MAX_PROBE_Y (min(Y_MAX_BED - (MIN_PROBE_EDGE), Y_MAX_POS + Y_PROBE_OFFSET_FROM_EXTRUDER))
|
|
|
|
#define _MAX_PROBE_Y (min(Y_MAX_BED - (MIN_PROBE_EDGE), Y_MAX_POS + Y_PROBE_OFFSET_FROM_EXTRUDER))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if ENABLED(SEGMENT_LEVELED_MOVES) && !defined(LEVELED_SEGMENT_LENGTH)
|
|
|
|
|
|
|
|
#define LEVELED_SEGMENT_LENGTH 5
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
// These may be overridden in Configuration.h if a smaller area is desired
|
|
|
|
// These may be overridden in Configuration.h if a smaller area is desired
|
|
|
@ -1116,10 +1121,8 @@
|
|
|
|
#define _MESH_MAX_X (min(X_MAX_BED - (MESH_INSET), X_MAX_POS + X_PROBE_OFFSET_FROM_EXTRUDER))
|
|
|
|
#define _MESH_MAX_X (min(X_MAX_BED - (MESH_INSET), X_MAX_POS + X_PROBE_OFFSET_FROM_EXTRUDER))
|
|
|
|
#define _MESH_MAX_Y (min(Y_MAX_BED - (MESH_INSET), Y_MAX_POS + Y_PROBE_OFFSET_FROM_EXTRUDER))
|
|
|
|
#define _MESH_MAX_Y (min(Y_MAX_BED - (MESH_INSET), Y_MAX_POS + Y_PROBE_OFFSET_FROM_EXTRUDER))
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// These may be overridden in Configuration.h if a smaller area is desired
|
|
|
|
// These may be overridden in Configuration.h if a smaller area is desired
|
|
|
|
#ifndef MESH_MIN_X
|
|
|
|
#ifndef MESH_MIN_X
|
|
|
|
#define MESH_MIN_X _MESH_MIN_X
|
|
|
|
#define MESH_MIN_X _MESH_MIN_X
|
|
|
|