Patch G33 misuse of PROBE_MANUALLY

This commit is contained in:
Scott Lahteine 2017-11-07 19:34:34 -06:00
parent 064e6fe60e
commit 82f45c3e6a
8 changed files with 65 additions and 65 deletions

View file

@ -153,7 +153,7 @@ static float probe_G33_points(float z_at_pt[NPP + 1], const int8_t probe_points,
_7p_6_centre = probe_points >= 5 && probe_points <= 7, _7p_6_centre = probe_points >= 5 && probe_points <= 7,
_7p_9_centre = probe_points >= 8; _7p_9_centre = probe_points >= 8;
#if DISABLED(PROBE_MANUALLY) #if HAS_BED_PROBE
const float dx = (X_PROBE_OFFSET_FROM_EXTRUDER), const float dx = (X_PROBE_OFFSET_FROM_EXTRUDER),
dy = (Y_PROBE_OFFSET_FROM_EXTRUDER); dy = (Y_PROBE_OFFSET_FROM_EXTRUDER);
#endif #endif
@ -164,10 +164,10 @@ static float probe_G33_points(float z_at_pt[NPP + 1], const int8_t probe_points,
if (!_7p_no_intermediates && !_7p_4_intermediates && !_7p_11_intermediates) { // probe the center if (!_7p_no_intermediates && !_7p_4_intermediates && !_7p_11_intermediates) { // probe the center
z_at_pt[CEN] += z_at_pt[CEN] +=
#if ENABLED(PROBE_MANUALLY) #if HAS_BED_PROBE
lcd_probe_pt(0, 0)
#else
probe_pt(dx, dy, stow_after_each, 1, false) probe_pt(dx, dy, stow_after_each, 1, false)
#else
lcd_probe_pt(0, 0)
#endif #endif
; ;
} }
@ -179,10 +179,10 @@ static float probe_G33_points(float z_at_pt[NPP + 1], const int8_t probe_points,
const float a = RADIANS(210 + (360 / NPP) * (axis - 1)), const float a = RADIANS(210 + (360 / NPP) * (axis - 1)),
r = delta_calibration_radius * 0.1; r = delta_calibration_radius * 0.1;
z_at_pt[CEN] += z_at_pt[CEN] +=
#if ENABLED(PROBE_MANUALLY) #if HAS_BED_PROBE
lcd_probe_pt(cos(a) * r, sin(a) * r)
#else
probe_pt(cos(a) * r + dx, sin(a) * r + dy, stow_after_each, 1) probe_pt(cos(a) * r + dx, sin(a) * r + dy, stow_after_each, 1)
#else
lcd_probe_pt(cos(a) * r, sin(a) * r)
#endif #endif
; ;
} }
@ -208,10 +208,10 @@ static float probe_G33_points(float z_at_pt[NPP + 1], const int8_t probe_points,
r = delta_calibration_radius * (1 + 0.1 * (zig_zag ? circle : - circle)), r = delta_calibration_radius * (1 + 0.1 * (zig_zag ? circle : - circle)),
interpol = FMOD(axis, 1); interpol = FMOD(axis, 1);
const float z_temp = const float z_temp =
#if ENABLED(PROBE_MANUALLY) #if HAS_BED_PROBE
lcd_probe_pt(cos(a) * r, sin(a) * r)
#else
probe_pt(cos(a) * r + dx, sin(a) * r + dy, stow_after_each, 1) probe_pt(cos(a) * r + dx, sin(a) * r + dy, stow_after_each, 1)
#else
lcd_probe_pt(cos(a) * r, sin(a) * r)
#endif #endif
; ;
// split probe point to neighbouring calibration points // split probe point to neighbouring calibration points
@ -242,7 +242,7 @@ static float probe_G33_points(float z_at_pt[NPP + 1], const int8_t probe_points,
return 0.00001; return 0.00001;
} }
#if DISABLED(PROBE_MANUALLY) #if HAS_BED_PROBE
static void G33_auto_tune() { static void G33_auto_tune() {
float z_at_pt[NPP + 1] = { 0.0 }, float z_at_pt[NPP + 1] = { 0.0 },
@ -366,7 +366,7 @@ static float probe_G33_points(float z_at_pt[NPP + 1], const int8_t probe_points,
SERIAL_EOL(); SERIAL_EOL();
} }
#endif // !PROBE_MANUALLY #endif // HAS_BED_PROBE
/** /**
* G33 - Delta '1-4-7-point' Auto-Calibration * G33 - Delta '1-4-7-point' Auto-Calibration
@ -488,10 +488,10 @@ void GcodeSuite::G33() {
} }
if (auto_tune) { if (auto_tune) {
#if ENABLED(PROBE_MANUALLY) #if HAS_BED_PROBE
SERIAL_PROTOCOLLNPGM("A probe is needed for auto-tune");
#else
G33_auto_tune(); G33_auto_tune();
#else
SERIAL_PROTOCOLLNPGM("A probe is needed for auto-tune");
#endif #endif
G33_CLEANUP(); G33_CLEANUP();
return; return;
@ -556,7 +556,7 @@ void GcodeSuite::G33() {
#define Z2(I) ZP(2, I) #define Z2(I) ZP(2, I)
#define Z1(I) ZP(1, I) #define Z1(I) ZP(1, I)
#if ENABLED(PROBE_MANUALLY) #if !HAS_BED_PROBE
test_precision = 0.00; // forced end test_precision = 0.00; // forced end
#endif #endif
@ -638,7 +638,7 @@ void GcodeSuite::G33() {
if ((zero_std_dev >= test_precision && iterations > force_iterations) || zero_std_dev <= calibration_precision) { // end iterations if ((zero_std_dev >= test_precision && iterations > force_iterations) || zero_std_dev <= calibration_precision) { // end iterations
SERIAL_PROTOCOLPGM("Calibration OK"); SERIAL_PROTOCOLPGM("Calibration OK");
SERIAL_PROTOCOL_SP(32); SERIAL_PROTOCOL_SP(32);
#if DISABLED(PROBE_MANUALLY) #if HAS_BED_PROBE
if (zero_std_dev >= test_precision && !_1p_calibration) if (zero_std_dev >= test_precision && !_1p_calibration)
SERIAL_PROTOCOLPGM("rolling back."); SERIAL_PROTOCOLPGM("rolling back.");
else else

View file

@ -379,7 +379,7 @@ private:
#endif #endif
#endif #endif
#if PROBE_SELECTED && ENABLED(DELTA_AUTO_CALIBRATION) #if ENABLED(DELTA_AUTO_CALIBRATION)
static void G33(); static void G33();
#endif #endif

View file

@ -468,13 +468,6 @@
*/ */
#define HAS_Z_SERVO_ENDSTOP (defined(Z_ENDSTOP_SERVO_NR) && Z_ENDSTOP_SERVO_NR >= 0) #define HAS_Z_SERVO_ENDSTOP (defined(Z_ENDSTOP_SERVO_NR) && Z_ENDSTOP_SERVO_NR >= 0)
/**
* UBL has its own manual probing, so this just causes trouble.
*/
#if ENABLED(AUTO_BED_LEVELING_UBL)
#undef PROBE_MANUALLY
#endif
/** /**
* Set a flag for any enabled probe * Set a flag for any enabled probe
*/ */

View file

@ -22,7 +22,7 @@
/** /**
* Conditionals_adv.h * Conditionals_adv.h
* Defines that depend on advanced onfiguration. * Defines that depend on advanced configuration.
*/ */
#ifndef CONDITIONALS_ADV_H #ifndef CONDITIONALS_ADV_H

View file

@ -1114,11 +1114,6 @@
// Add commands that need sub-codes to this list // Add commands that need sub-codes to this list
#define USE_GCODE_SUBCODES ENABLED(G38_PROBE_TARGET) || ENABLED(CNC_COORDINATE_SYSTEMS) #define USE_GCODE_SUBCODES ENABLED(G38_PROBE_TARGET) || ENABLED(CNC_COORDINATE_SYSTEMS)
// MESH_BED_LEVELING overrides PROBE_MANUALLY
#if ENABLED(MESH_BED_LEVELING)
#undef PROBE_MANUALLY
#endif
// Parking Extruder // Parking Extruder
#if ENABLED(PARKING_EXTRUDER) #if ENABLED(PARKING_EXTRUDER)
#ifndef PARKING_EXTRUDER_GRAB_DISTANCE #ifndef PARKING_EXTRUDER_GRAB_DISTANCE

View file

@ -586,10 +586,8 @@ static_assert(1 >= 0
#error "You probably want to use Max Endstops for DELTA!" #error "You probably want to use Max Endstops for DELTA!"
#elif ENABLED(ENABLE_LEVELING_FADE_HEIGHT) && DISABLED(AUTO_BED_LEVELING_BILINEAR) && !UBL_DELTA #elif ENABLED(ENABLE_LEVELING_FADE_HEIGHT) && DISABLED(AUTO_BED_LEVELING_BILINEAR) && !UBL_DELTA
#error "ENABLE_LEVELING_FADE_HEIGHT on DELTA requires AUTO_BED_LEVELING_BILINEAR or AUTO_BED_LEVELING_UBL." #error "ENABLE_LEVELING_FADE_HEIGHT on DELTA requires AUTO_BED_LEVELING_BILINEAR or AUTO_BED_LEVELING_UBL."
#elif ENABLED(DELTA_AUTO_CALIBRATION) && !PROBE_SELECTED #elif ENABLED(DELTA_AUTO_CALIBRATION) && !(HAS_BED_PROBE || ENABLED(ULTIPANEL))
#error "DELTA_AUTO_CALIBRATION requires a probe: PROBE_MANUALLY, FIX_MOUNTED_PROBE, BLTOUCH, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, Z Servo." #error "DELTA_AUTO_CALIBRATION requires a probe or LCD Controller."
#elif ENABLED(DELTA_AUTO_CALIBRATION) && ENABLED(PROBE_MANUALLY) && DISABLED(ULTIPANEL)
#error "DELTA_AUTO_CALIBRATION requires an LCD controller with PROBE_MANUALLY."
#elif ABL_GRID #elif ABL_GRID
#if (GRID_MAX_POINTS_X & 1) == 0 || (GRID_MAX_POINTS_Y & 1) == 0 #if (GRID_MAX_POINTS_X & 1) == 0 || (GRID_MAX_POINTS_Y & 1) == 0
#error "DELTA requires GRID_MAX_POINTS_X and GRID_MAX_POINTS_Y to be odd numbers." #error "DELTA requires GRID_MAX_POINTS_X and GRID_MAX_POINTS_Y to be odd numbers."
@ -631,7 +629,7 @@ static_assert(1 >= 0
, "Please enable only one probe option: PROBE_MANUALLY, FIX_MOUNTED_PROBE, BLTOUCH, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or Z Servo." , "Please enable only one probe option: PROBE_MANUALLY, FIX_MOUNTED_PROBE, BLTOUCH, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or Z Servo."
); );
#if PROBE_SELECTED #if HAS_BED_PROBE
/** /**
* Z_PROBE_SLED is incompatible with DELTA * Z_PROBE_SLED is incompatible with DELTA
@ -679,7 +677,7 @@ static_assert(1 >= 0
#if !HAS_Z_MIN_PROBE_PIN #if !HAS_Z_MIN_PROBE_PIN
#error "Z_MIN_PROBE_ENDSTOP requires the Z_MIN_PROBE_PIN to be defined." #error "Z_MIN_PROBE_ENDSTOP requires the Z_MIN_PROBE_PIN to be defined."
#endif #endif
#elif DISABLED(PROBE_MANUALLY) #else
#error "You must enable either Z_MIN_PROBE_ENDSTOP or Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN to use a probe." #error "You must enable either Z_MIN_PROBE_ENDSTOP or Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN to use a probe."
#endif #endif
@ -701,14 +699,14 @@ static_assert(1 >= 0
/** /**
* Require some kind of probe for bed leveling and probe testing * Require some kind of probe for bed leveling and probe testing
*/ */
#if OLDSCHOOL_ABL #if OLDSCHOOL_ABL && !PROBE_SELECTED
#error "Auto Bed Leveling requires one of these: PROBE_MANUALLY, FIX_MOUNTED_PROBE, BLTOUCH, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or a Z Servo." #error "Auto Bed Leveling requires one of these: PROBE_MANUALLY, FIX_MOUNTED_PROBE, BLTOUCH, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or a Z Servo."
#endif #endif
#if ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST)
#error "Z_MIN_PROBE_REPEATABILITY_TEST requires a probe: FIX_MOUNTED_PROBE, BLTOUCH, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or Z Servo."
#endif #endif
#if ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST) && !HAS_BED_PROBE
#error "Z_MIN_PROBE_REPEATABILITY_TEST requires a probe: FIX_MOUNTED_PROBE, BLTOUCH, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or Z Servo."
#endif #endif
/** /**
@ -743,6 +741,9 @@ static_assert(1 >= 0
* Unified Bed Leveling * Unified Bed Leveling
*/ */
// Hide PROBE_MANUALLY from the rest of the code
#undef PROBE_MANUALLY
#if IS_SCARA #if IS_SCARA
#error "AUTO_BED_LEVELING_UBL does not yet support SCARA printers." #error "AUTO_BED_LEVELING_UBL does not yet support SCARA printers."
#elif DISABLED(EEPROM_SETTINGS) #elif DISABLED(EEPROM_SETTINGS)
@ -760,7 +761,8 @@ static_assert(1 >= 0
#if ENABLED(ENABLE_MESH_EDIT_GFX_OVERLAY) && !ENABLED(DOGLCD) #if ENABLED(ENABLE_MESH_EDIT_GFX_OVERLAY) && !ENABLED(DOGLCD)
#error "ENABLE_MESH_EDIT_GFX_OVERLAY requires a DOGLCD." #error "ENABLE_MESH_EDIT_GFX_OVERLAY requires a DOGLCD."
#endif #endif
#elif HAS_ABL
#elif OLDSCHOOL_ABL
/** /**
* Auto Bed Leveling * Auto Bed Leveling
@ -809,6 +811,9 @@ static_assert(1 >= 0
#elif ENABLED(MESH_BED_LEVELING) #elif ENABLED(MESH_BED_LEVELING)
// Hide PROBE_MANUALLY from the rest of the code
#undef PROBE_MANUALLY
/** /**
* Mesh Bed Leveling * Mesh Bed Leveling
*/ */
@ -827,8 +832,8 @@ static_assert(1 >= 0
#if ENABLED(LCD_BED_LEVELING) #if ENABLED(LCD_BED_LEVELING)
#if DISABLED(ULTIPANEL) #if DISABLED(ULTIPANEL)
#error "LCD_BED_LEVELING requires an LCD controller." #error "LCD_BED_LEVELING requires an LCD controller."
#elif DISABLED(MESH_BED_LEVELING) && !(HAS_ABL && ENABLED(PROBE_MANUALLY)) #elif !(ENABLED(MESH_BED_LEVELING) || (OLDSCHOOL_ABL && ENABLED(PROBE_MANUALLY)))
#error "LCD_BED_LEVELING requires MESH_BED_LEVELING or PROBE_MANUALLY with auto bed leveling enabled." #error "LCD_BED_LEVELING requires MESH_BED_LEVELING or ABL with PROBE_MANUALLY."
#endif #endif
#endif #endif

View file

@ -155,6 +155,8 @@ uint16_t max_display_update_time = 0;
extern bool powersupply_on; extern bool powersupply_on;
#endif #endif
float move_menu_scale;
//////////////////////////////////////////// ////////////////////////////////////////////
///////////////// Menu Tree //////////////// ///////////////// Menu Tree ////////////////
//////////////////////////////////////////// ////////////////////////////////////////////
@ -2679,28 +2681,9 @@ void kill_screen(const char* lcd_msg) {
END_MENU(); END_MENU();
} }
float move_menu_scale; #if ENABLED(DELTA_CALIBRATION_MENU) || (ENABLED(DELTA_AUTO_CALIBRATION) && !HAS_BED_PROBE)
#if ENABLED(DELTA_CALIBRATION_MENU)
void lcd_move_z(); void lcd_move_z();
void lcd_delta_calibrate_menu();
void _lcd_calibrate_homing() {
if (lcdDrawUpdate) lcd_implementation_drawmenu_static(LCD_HEIGHT >= 4 ? 1 : 0, PSTR(MSG_LEVEL_BED_HOMING));
lcdDrawUpdate = LCDVIEW_CALL_REDRAW_NEXT;
if (axis_homed[X_AXIS] && axis_homed[Y_AXIS] && axis_homed[Z_AXIS])
lcd_goto_previous_menu();
}
void _lcd_delta_calibrate_home() {
#if HAS_LEVELING
reset_bed_level(); // After calibration bed-level data is no longer valid
#endif
enqueue_and_echo_commands_P(PSTR("G28"));
lcd_goto_screen(_lcd_calibrate_homing);
}
void _man_probe_pt(const float &rx, const float &ry) { void _man_probe_pt(const float &rx, const float &ry) {
#if HAS_LEVELING #if HAS_LEVELING
@ -2720,6 +2703,10 @@ void kill_screen(const char* lcd_msg) {
lcd_goto_screen(lcd_move_z); lcd_goto_screen(lcd_move_z);
} }
#endif // DELTA_CALIBRATION_MENU || (DELTA_AUTO_CALIBRATION && !HAS_BED_PROBE)
#if ENABLED(DELTA_AUTO_CALIBRATION) && !HAS_BED_PROBE
float lcd_probe_pt(const float &rx, const float &ry) { float lcd_probe_pt(const float &rx, const float &ry) {
_man_probe_pt(rx, ry); _man_probe_pt(rx, ry);
KEEPALIVE_STATE(PAUSED_FOR_USER); KEEPALIVE_STATE(PAUSED_FOR_USER);
@ -2731,6 +2718,26 @@ void kill_screen(const char* lcd_msg) {
return current_position[Z_AXIS]; return current_position[Z_AXIS];
} }
#endif // DELTA_AUTO_CALIBRATION && !HAS_BED_PROBE
#if ENABLED(DELTA_CALIBRATION_MENU)
void _lcd_calibrate_homing() {
if (lcdDrawUpdate) lcd_implementation_drawmenu_static(LCD_HEIGHT >= 4 ? 1 : 0, PSTR(MSG_LEVEL_BED_HOMING));
lcdDrawUpdate = LCDVIEW_CALL_REDRAW_NEXT;
if (axis_homed[X_AXIS] && axis_homed[Y_AXIS] && axis_homed[Z_AXIS])
lcd_goto_previous_menu();
}
void _lcd_delta_calibrate_home() {
#if HAS_LEVELING
reset_bed_level(); // After calibration bed-level data is no longer valid
#endif
enqueue_and_echo_commands_P(PSTR("G28"));
lcd_goto_screen(_lcd_calibrate_homing);
}
void _goto_tower_x() { _man_probe_pt(cos(RADIANS(210)) * delta_calibration_radius, sin(RADIANS(210)) * delta_calibration_radius); } void _goto_tower_x() { _man_probe_pt(cos(RADIANS(210)) * delta_calibration_radius, sin(RADIANS(210)) * delta_calibration_radius); }
void _goto_tower_y() { _man_probe_pt(cos(RADIANS(330)) * delta_calibration_radius, sin(RADIANS(330)) * delta_calibration_radius); } void _goto_tower_y() { _man_probe_pt(cos(RADIANS(330)) * delta_calibration_radius, sin(RADIANS(330)) * delta_calibration_radius); }
void _goto_tower_z() { _man_probe_pt(cos(RADIANS( 90)) * delta_calibration_radius, sin(RADIANS( 90)) * delta_calibration_radius); } void _goto_tower_z() { _man_probe_pt(cos(RADIANS( 90)) * delta_calibration_radius, sin(RADIANS( 90)) * delta_calibration_radius); }

View file

@ -118,7 +118,7 @@
float lcd_z_offset_edit(); float lcd_z_offset_edit();
#endif #endif
#if ENABLED(DELTA_CALIBRATION_MENU) #if ENABLED(DELTA_AUTO_CALIBRATION) && !HAS_BED_PROBE
float lcd_probe_pt(const float &rx, const float &ry); float lcd_probe_pt(const float &rx, const float &ry);
#endif #endif