|
|
@ -52,7 +52,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
extern float destination[XYZE], current_position[XYZE];
|
|
|
|
extern float destination[XYZE], current_position[XYZE];
|
|
|
|
|
|
|
|
|
|
|
|
#if ENABLED(NEWPANEL)
|
|
|
|
#if HAS_LCD_MENU
|
|
|
|
void lcd_return_to_status();
|
|
|
|
void lcd_return_to_status();
|
|
|
|
void _lcd_ubl_output_map_lcd();
|
|
|
|
void _lcd_ubl_output_map_lcd();
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
@ -432,7 +432,7 @@
|
|
|
|
#endif // HAS_BED_PROBE
|
|
|
|
#endif // HAS_BED_PROBE
|
|
|
|
|
|
|
|
|
|
|
|
case 2: {
|
|
|
|
case 2: {
|
|
|
|
#if ENABLED(NEWPANEL)
|
|
|
|
#if HAS_LCD_MENU
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// Manually Probe Mesh in areas that can't be reached by the probe
|
|
|
|
// Manually Probe Mesh in areas that can't be reached by the probe
|
|
|
|
//
|
|
|
|
//
|
|
|
@ -540,7 +540,7 @@
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
case 4: // Fine Tune (i.e., Edit) the Mesh
|
|
|
|
case 4: // Fine Tune (i.e., Edit) the Mesh
|
|
|
|
#if ENABLED(NEWPANEL)
|
|
|
|
#if HAS_LCD_MENU
|
|
|
|
fine_tune_mesh(g29_x_pos, g29_y_pos, parser.seen('T'));
|
|
|
|
fine_tune_mesh(g29_x_pos, g29_y_pos, parser.seen('T'));
|
|
|
|
#else
|
|
|
|
#else
|
|
|
|
SERIAL_PROTOCOLLNPGM("?P4 is only available when an LCD is present.");
|
|
|
|
SERIAL_PROTOCOLLNPGM("?P4 is only available when an LCD is present.");
|
|
|
@ -683,7 +683,7 @@
|
|
|
|
z_values[x][y] += g29_constant;
|
|
|
|
z_values[x][y] += g29_constant;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#if ENABLED(NEWPANEL)
|
|
|
|
#if HAS_LCD_MENU
|
|
|
|
|
|
|
|
|
|
|
|
typedef void (*clickFunc_t)();
|
|
|
|
typedef void (*clickFunc_t)();
|
|
|
|
|
|
|
|
|
|
|
@ -707,7 +707,7 @@
|
|
|
|
return false;
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#endif // NEWPANEL
|
|
|
|
#endif // HAS_LCD_MENU
|
|
|
|
|
|
|
|
|
|
|
|
#if HAS_BED_PROBE
|
|
|
|
#if HAS_BED_PROBE
|
|
|
|
/**
|
|
|
|
/**
|
|
|
@ -717,7 +717,7 @@
|
|
|
|
void unified_bed_leveling::probe_entire_mesh(const float &rx, const float &ry, const bool do_ubl_mesh_map, const bool stow_probe, const bool do_furthest) {
|
|
|
|
void unified_bed_leveling::probe_entire_mesh(const float &rx, const float &ry, const bool do_ubl_mesh_map, const bool stow_probe, const bool do_furthest) {
|
|
|
|
mesh_index_pair location;
|
|
|
|
mesh_index_pair location;
|
|
|
|
|
|
|
|
|
|
|
|
#if ENABLED(NEWPANEL)
|
|
|
|
#if HAS_LCD_MENU
|
|
|
|
lcd_external_control = true;
|
|
|
|
lcd_external_control = true;
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
@ -729,7 +729,7 @@
|
|
|
|
do {
|
|
|
|
do {
|
|
|
|
if (do_ubl_mesh_map) display_map(g29_map_type);
|
|
|
|
if (do_ubl_mesh_map) display_map(g29_map_type);
|
|
|
|
|
|
|
|
|
|
|
|
#if ENABLED(NEWPANEL)
|
|
|
|
#if HAS_LCD_MENU
|
|
|
|
if (is_lcd_clicked()) {
|
|
|
|
if (is_lcd_clicked()) {
|
|
|
|
SERIAL_PROTOCOLLNPGM("\nMesh only partially populated.\n");
|
|
|
|
SERIAL_PROTOCOLLNPGM("\nMesh only partially populated.\n");
|
|
|
|
lcd_quick_feedback(false);
|
|
|
|
lcd_quick_feedback(false);
|
|
|
@ -775,7 +775,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
#endif // HAS_BED_PROBE
|
|
|
|
#endif // HAS_BED_PROBE
|
|
|
|
|
|
|
|
|
|
|
|
#if ENABLED(NEWPANEL)
|
|
|
|
#if HAS_LCD_MENU
|
|
|
|
|
|
|
|
|
|
|
|
void unified_bed_leveling::move_z_with_encoder(const float &multiplier) {
|
|
|
|
void unified_bed_leveling::move_z_with_encoder(const float &multiplier) {
|
|
|
|
wait_for_release();
|
|
|
|
wait_for_release();
|
|
|
@ -908,12 +908,12 @@
|
|
|
|
KEEPALIVE_STATE(IN_HANDLER);
|
|
|
|
KEEPALIVE_STATE(IN_HANDLER);
|
|
|
|
do_blocking_move_to(rx, ry, Z_CLEARANCE_DEPLOY_PROBE);
|
|
|
|
do_blocking_move_to(rx, ry, Z_CLEARANCE_DEPLOY_PROBE);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endif // NEWPANEL
|
|
|
|
#endif // HAS_LCD_MENU
|
|
|
|
|
|
|
|
|
|
|
|
bool unified_bed_leveling::g29_parameter_parsing() {
|
|
|
|
bool unified_bed_leveling::g29_parameter_parsing() {
|
|
|
|
bool err_flag = false;
|
|
|
|
bool err_flag = false;
|
|
|
|
|
|
|
|
|
|
|
|
#if ENABLED(NEWPANEL)
|
|
|
|
#if HAS_LCD_MENU
|
|
|
|
LCD_MESSAGEPGM(MSG_UBL_DOING_G29);
|
|
|
|
LCD_MESSAGEPGM(MSG_UBL_DOING_G29);
|
|
|
|
lcd_quick_feedback(true);
|
|
|
|
lcd_quick_feedback(true);
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
@ -1036,7 +1036,7 @@
|
|
|
|
ubl_state_recursion_chk++;
|
|
|
|
ubl_state_recursion_chk++;
|
|
|
|
if (ubl_state_recursion_chk != 1) {
|
|
|
|
if (ubl_state_recursion_chk != 1) {
|
|
|
|
SERIAL_ECHOLNPGM("save_ubl_active_state_and_disabled() called multiple times in a row.");
|
|
|
|
SERIAL_ECHOLNPGM("save_ubl_active_state_and_disabled() called multiple times in a row.");
|
|
|
|
#if ENABLED(NEWPANEL)
|
|
|
|
#if HAS_LCD_MENU
|
|
|
|
LCD_MESSAGEPGM(MSG_UBL_SAVE_ERROR);
|
|
|
|
LCD_MESSAGEPGM(MSG_UBL_SAVE_ERROR);
|
|
|
|
lcd_quick_feedback(true);
|
|
|
|
lcd_quick_feedback(true);
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
@ -1051,7 +1051,7 @@
|
|
|
|
#if ENABLED(UBL_DEVEL_DEBUGGING)
|
|
|
|
#if ENABLED(UBL_DEVEL_DEBUGGING)
|
|
|
|
if (--ubl_state_recursion_chk) {
|
|
|
|
if (--ubl_state_recursion_chk) {
|
|
|
|
SERIAL_ECHOLNPGM("restore_ubl_active_state_and_leave() called too many times.");
|
|
|
|
SERIAL_ECHOLNPGM("restore_ubl_active_state_and_leave() called too many times.");
|
|
|
|
#if ENABLED(NEWPANEL)
|
|
|
|
#if HAS_LCD_MENU
|
|
|
|
LCD_MESSAGEPGM(MSG_UBL_RESTORE_ERROR);
|
|
|
|
LCD_MESSAGEPGM(MSG_UBL_RESTORE_ERROR);
|
|
|
|
lcd_quick_feedback(true);
|
|
|
|
lcd_quick_feedback(true);
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
@ -1339,7 +1339,7 @@
|
|
|
|
return out_mesh;
|
|
|
|
return out_mesh;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#if ENABLED(NEWPANEL)
|
|
|
|
#if HAS_LCD_MENU
|
|
|
|
|
|
|
|
|
|
|
|
void abort_fine_tune() {
|
|
|
|
void abort_fine_tune() {
|
|
|
|
lcd_return_to_status();
|
|
|
|
lcd_return_to_status();
|
|
|
@ -1450,7 +1450,7 @@
|
|
|
|
lcd_return_to_status();
|
|
|
|
lcd_return_to_status();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#endif // NEWPANEL
|
|
|
|
#endif // HAS_LCD_MENU
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 'Smart Fill': Scan from the outward edges of the mesh towards the center.
|
|
|
|
* 'Smart Fill': Scan from the outward edges of the mesh towards the center.
|
|
|
|