mirror of
https://github.com/MarlinFirmware/Marlin.git
synced 2024-11-30 07:17:59 +00:00
🩹 Safe Bed Leveling updates
This commit is contained in:
parent
23e2cb0c53
commit
7e79fc5b8e
@ -318,9 +318,7 @@ void unified_bed_leveling::G29() {
|
|||||||
TERN_(HAS_MULTI_HOTEND, if (active_extruder != 0) tool_change(0, true));
|
TERN_(HAS_MULTI_HOTEND, if (active_extruder != 0) tool_change(0, true));
|
||||||
|
|
||||||
// Position bed horizontally and Z probe vertically.
|
// Position bed horizontally and Z probe vertically.
|
||||||
#if defined(SAFE_BED_LEVELING_START_X) || defined(SAFE_BED_LEVELING_START_Y) || defined(SAFE_BED_LEVELING_START_Z) \
|
#if HAS_SAFE_BED_LEVELING
|
||||||
|| defined(SAFE_BED_LEVELING_START_I) || defined(SAFE_BED_LEVELING_START_J) || defined(SAFE_BED_LEVELING_START_K) \
|
|
||||||
|| defined(SAFE_BED_LEVELING_START_U) || defined(SAFE_BED_LEVELING_START_V) || defined(SAFE_BED_LEVELING_START_W)
|
|
||||||
xyze_pos_t safe_position = current_position;
|
xyze_pos_t safe_position = current_position;
|
||||||
#ifdef SAFE_BED_LEVELING_START_X
|
#ifdef SAFE_BED_LEVELING_START_X
|
||||||
safe_position.x = SAFE_BED_LEVELING_START_X;
|
safe_position.x = SAFE_BED_LEVELING_START_X;
|
||||||
@ -351,7 +349,7 @@ void unified_bed_leveling::G29() {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
do_blocking_move_to(safe_position);
|
do_blocking_move_to(safe_position);
|
||||||
#endif
|
#endif // HAS_SAFE_BED_LEVELING
|
||||||
}
|
}
|
||||||
|
|
||||||
// Invalidate one or more nearby mesh points, possibly all.
|
// Invalidate one or more nearby mesh points, possibly all.
|
||||||
@ -887,8 +885,32 @@ void set_message_with_feedback(FSTR_P const fstr) {
|
|||||||
ui.capture();
|
ui.capture();
|
||||||
save_ubl_active_state_and_disable(); // Disable bed level correction for probing
|
save_ubl_active_state_and_disable(); // Disable bed level correction for probing
|
||||||
|
|
||||||
do_blocking_move_to(0.5f * (MESH_MAX_X - (MESH_MIN_X)), 0.5f * (MESH_MAX_Y - (MESH_MIN_Y)), MANUAL_PROBE_START_Z);
|
do_blocking_move_to(
|
||||||
//, _MIN(planner.settings.max_feedrate_mm_s[X_AXIS], planner.settings.max_feedrate_mm_s[Y_AXIS]) * 0.5f);
|
NUM_AXIS_LIST(
|
||||||
|
0.5f * ((MESH_MAX_X) - (MESH_MIN_X)),
|
||||||
|
0.5f * ((MESH_MAX_Y) - (MESH_MIN_Y)),
|
||||||
|
MANUAL_PROBE_START_Z
|
||||||
|
#ifdef SAFE_BED_LEVELING_START_I
|
||||||
|
, SAFE_BED_LEVELING_START_I
|
||||||
|
#endif
|
||||||
|
#ifdef SAFE_BED_LEVELING_START_J
|
||||||
|
, SAFE_BED_LEVELING_START_J
|
||||||
|
#endif
|
||||||
|
#ifdef SAFE_BED_LEVELING_START_K
|
||||||
|
, SAFE_BED_LEVELING_START_K
|
||||||
|
#endif
|
||||||
|
#ifdef SAFE_BED_LEVELING_START_U
|
||||||
|
, SAFE_BED_LEVELING_START_U
|
||||||
|
#endif
|
||||||
|
#ifdef SAFE_BED_LEVELING_START_V
|
||||||
|
, SAFE_BED_LEVELING_START_V
|
||||||
|
#endif
|
||||||
|
#ifdef SAFE_BED_LEVELING_START_W
|
||||||
|
, SAFE_BED_LEVELING_START_W
|
||||||
|
#endif
|
||||||
|
)
|
||||||
|
//, _MIN(planner.settings.max_feedrate_mm_s[X_AXIS], planner.settings.max_feedrate_mm_s[Y_AXIS]) * 0.5f
|
||||||
|
);
|
||||||
planner.synchronize();
|
planner.synchronize();
|
||||||
|
|
||||||
SERIAL_ECHOPGM("Place shim under nozzle");
|
SERIAL_ECHOPGM("Place shim under nozzle");
|
||||||
|
@ -453,9 +453,7 @@ G29_TYPE GcodeSuite::G29() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Position bed horizontally and Z probe vertically.
|
// Position bed horizontally and Z probe vertically.
|
||||||
#if defined(SAFE_BED_LEVELING_START_X) || defined(SAFE_BED_LEVELING_START_Y) || defined(SAFE_BED_LEVELING_START_Z) \
|
#if HAS_SAFE_BED_LEVELING
|
||||||
|| defined(SAFE_BED_LEVELING_START_I) || defined(SAFE_BED_LEVELING_START_J) || defined(SAFE_BED_LEVELING_START_K) \
|
|
||||||
|| defined(SAFE_BED_LEVELING_START_U) || defined(SAFE_BED_LEVELING_START_V) || defined(SAFE_BED_LEVELING_START_W)
|
|
||||||
xyze_pos_t safe_position = current_position;
|
xyze_pos_t safe_position = current_position;
|
||||||
#ifdef SAFE_BED_LEVELING_START_X
|
#ifdef SAFE_BED_LEVELING_START_X
|
||||||
safe_position.x = SAFE_BED_LEVELING_START_X;
|
safe_position.x = SAFE_BED_LEVELING_START_X;
|
||||||
@ -486,7 +484,7 @@ G29_TYPE GcodeSuite::G29() {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
do_blocking_move_to(safe_position);
|
do_blocking_move_to(safe_position);
|
||||||
#endif
|
#endif // HAS_SAFE_BED_LEVELING
|
||||||
|
|
||||||
// Disable auto bed leveling during G29.
|
// Disable auto bed leveling during G29.
|
||||||
// Be formal so G29 can be done successively without G28.
|
// Be formal so G29 can be done successively without G28.
|
||||||
|
@ -108,9 +108,7 @@ void GcodeSuite::G29() {
|
|||||||
TERN_(DWIN_LCD_PROUI, DWIN_LevelingStart());
|
TERN_(DWIN_LCD_PROUI, DWIN_LevelingStart());
|
||||||
|
|
||||||
// Position bed horizontally and Z probe vertically.
|
// Position bed horizontally and Z probe vertically.
|
||||||
#if defined(SAFE_BED_LEVELING_START_X) || defined(SAFE_BED_LEVELING_START_Y) || defined(SAFE_BED_LEVELING_START_Z) \
|
#if HAS_SAFE_BED_LEVELING
|
||||||
|| defined(SAFE_BED_LEVELING_START_I) || defined(SAFE_BED_LEVELING_START_J) || defined(SAFE_BED_LEVELING_START_K) \
|
|
||||||
|| defined(SAFE_BED_LEVELING_START_U) || defined(SAFE_BED_LEVELING_START_V) || defined(SAFE_BED_LEVELING_START_W)
|
|
||||||
xyze_pos_t safe_position = current_position;
|
xyze_pos_t safe_position = current_position;
|
||||||
#ifdef SAFE_BED_LEVELING_START_X
|
#ifdef SAFE_BED_LEVELING_START_X
|
||||||
safe_position.x = SAFE_BED_LEVELING_START_X;
|
safe_position.x = SAFE_BED_LEVELING_START_X;
|
||||||
@ -141,7 +139,7 @@ void GcodeSuite::G29() {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
do_blocking_move_to(safe_position);
|
do_blocking_move_to(safe_position);
|
||||||
#endif
|
#endif // HAS_SAFE_BED_LEVELING
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1038,6 +1038,12 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(SAFE_BED_LEVELING_START_X) || defined(SAFE_BED_LEVELING_START_Y) || defined(SAFE_BED_LEVELING_START_Z) \
|
||||||
|
|| defined(SAFE_BED_LEVELING_START_I) || defined(SAFE_BED_LEVELING_START_J) || defined(SAFE_BED_LEVELING_START_K) \
|
||||||
|
|| defined(SAFE_BED_LEVELING_START_U) || defined(SAFE_BED_LEVELING_START_V) || defined(SAFE_BED_LEVELING_START_W)
|
||||||
|
#define HAS_SAFE_BED_LEVELING 1
|
||||||
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// SD Card connection methods
|
// SD Card connection methods
|
||||||
// Defined here so pins and sanity checks can use them
|
// Defined here so pins and sanity checks can use them
|
||||||
|
@ -2197,6 +2197,27 @@ static_assert(X_MAX_LENGTH >= X_BED_SIZE, "Movement bounds (X_MIN_POS, X_MAX_POS
|
|||||||
static_assert(WITHIN(Z_SAFE_HOMING_Y_POINT, Y_MIN_POS, Y_MAX_POS), "Z_SAFE_HOMING_Y_POINT can't be reached by the nozzle.");
|
static_assert(WITHIN(Z_SAFE_HOMING_Y_POINT, Y_MIN_POS, Y_MAX_POS), "Z_SAFE_HOMING_Y_POINT can't be reached by the nozzle.");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Check Safe Bed Leveling settings
|
||||||
|
#if HAS_SAFE_BED_LEVELING
|
||||||
|
#if defined(SAFE_BED_LEVELING_START_Y) && !defined(SAFE_BED_LEVELING_START_X)
|
||||||
|
#error "If SAFE_BED_LEVELING_START_Y is defined, SAFE_BED_LEVELING_START_X must also be defined."
|
||||||
|
#elif defined(SAFE_BED_LEVELING_START_Z) && !defined(SAFE_BED_LEVELING_START_Y)
|
||||||
|
#error "If SAFE_BED_LEVELING_START_Z is defined, SAFE_BED_LEVELING_START_Y must also be defined."
|
||||||
|
#elif defined(SAFE_BED_LEVELING_START_I) && !defined(SAFE_BED_LEVELING_START_Z)
|
||||||
|
#error "If SAFE_BED_LEVELING_START_I is defined, SAFE_BED_LEVELING_START_Z must also be defined."
|
||||||
|
#elif defined(SAFE_BED_LEVELING_START_J) && !defined(SAFE_BED_LEVELING_START_I)
|
||||||
|
#error "If SAFE_BED_LEVELING_START_J is defined, SAFE_BED_LEVELING_START_I must also be defined."
|
||||||
|
#elif defined(SAFE_BED_LEVELING_START_K) && !defined(SAFE_BED_LEVELING_START_J)
|
||||||
|
#error "If SAFE_BED_LEVELING_START_K is defined, SAFE_BED_LEVELING_START_J must also be defined."
|
||||||
|
#elif defined(SAFE_BED_LEVELING_START_U) && !defined(SAFE_BED_LEVELING_START_K)
|
||||||
|
#error "If SAFE_BED_LEVELING_START_U is defined, SAFE_BED_LEVELING_START_K must also be defined."
|
||||||
|
#elif defined(SAFE_BED_LEVELING_START_V) && !defined(SAFE_BED_LEVELING_START_U)
|
||||||
|
#error "If SAFE_BED_LEVELING_START_V is defined, SAFE_BED_LEVELING_START_U must also be defined."
|
||||||
|
#elif defined(SAFE_BED_LEVELING_START_W) && !defined(SAFE_BED_LEVELING_START_V)
|
||||||
|
#error "If SAFE_BED_LEVELING_START_W is defined, SAFE_BED_LEVELING_START_V must also be defined."
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Make sure DISABLE_[XYZ] compatible with selected homing options
|
* Make sure DISABLE_[XYZ] compatible with selected homing options
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user