Browse Source

MBL fiddle

pull/1/head
Scott Lahteine 8 years ago
parent
commit
6cac0f43eb
  1. 18
      Marlin/Marlin_main.cpp

18
Marlin/Marlin_main.cpp

@ -3784,7 +3784,7 @@ inline void gcode_G28() {
*/ */
inline void gcode_G29() { inline void gcode_G29() {
static int probe_index = -1; static int mbl_probe_index = -1;
#if HAS_SOFTWARE_ENDSTOPS #if HAS_SOFTWARE_ENDSTOPS
static bool enable_soft_endstops; static bool enable_soft_endstops;
#endif #endif
@ -3809,17 +3809,17 @@ inline void gcode_G28() {
case MeshStart: case MeshStart:
mbl.reset(); mbl.reset();
probe_index = 0; mbl_probe_index = 0;
enqueue_and_echo_commands_P(PSTR("G28\nG29 S2")); enqueue_and_echo_commands_P(PSTR("G28\nG29 S2"));
break; break;
case MeshNext: case MeshNext:
if (probe_index < 0) { if (mbl_probe_index < 0) {
SERIAL_PROTOCOLLNPGM("Start mesh probing with \"G29 S1\" first."); SERIAL_PROTOCOLLNPGM("Start mesh probing with \"G29 S1\" first.");
return; return;
} }
// For each G29 S2... // For each G29 S2...
if (probe_index == 0) { if (mbl_probe_index == 0) {
#if HAS_SOFTWARE_ENDSTOPS #if HAS_SOFTWARE_ENDSTOPS
// For the initial G29 S2 save software endstop state // For the initial G29 S2 save software endstop state
enable_soft_endstops = soft_endstops_enabled; enable_soft_endstops = soft_endstops_enabled;
@ -3827,14 +3827,14 @@ inline void gcode_G28() {
} }
else { else {
// For G29 S2 after adjusting Z. // For G29 S2 after adjusting Z.
mbl.set_zigzag_z(probe_index - 1, current_position[Z_AXIS]); mbl.set_zigzag_z(mbl_probe_index - 1, current_position[Z_AXIS]);
#if HAS_SOFTWARE_ENDSTOPS #if HAS_SOFTWARE_ENDSTOPS
soft_endstops_enabled = enable_soft_endstops; soft_endstops_enabled = enable_soft_endstops;
#endif #endif
} }
// If there's another point to sample, move there with optional lift. // If there's another point to sample, move there with optional lift.
if (probe_index < (MESH_NUM_X_POINTS) * (MESH_NUM_Y_POINTS)) { if (mbl_probe_index < (MESH_NUM_X_POINTS) * (MESH_NUM_Y_POINTS)) {
mbl.zigzag(probe_index, px, py); mbl.zigzag(mbl_probe_index, px, py);
_mbl_goto_xy(mbl.index_to_xpos[px], mbl.index_to_ypos[py]); _mbl_goto_xy(mbl.index_to_xpos[px], mbl.index_to_ypos[py]);
#if HAS_SOFTWARE_ENDSTOPS #if HAS_SOFTWARE_ENDSTOPS
@ -3843,7 +3843,7 @@ inline void gcode_G28() {
soft_endstops_enabled = false; soft_endstops_enabled = false;
#endif #endif
probe_index++; mbl_probe_index++;
} }
else { else {
// One last "return to the bed" (as originally coded) at completion // One last "return to the bed" (as originally coded) at completion
@ -3853,7 +3853,7 @@ inline void gcode_G28() {
// After recording the last point, activate the mbl and home // After recording the last point, activate the mbl and home
SERIAL_PROTOCOLLNPGM("Mesh probing done."); SERIAL_PROTOCOLLNPGM("Mesh probing done.");
probe_index = -1; mbl_probe_index = -1;
mbl.set_has_mesh(true); mbl.set_has_mesh(true);
mbl.set_reactivate(true); mbl.set_reactivate(true);
enqueue_and_echo_commands_P(PSTR("G28")); enqueue_and_echo_commands_P(PSTR("G28"));

Loading…
Cancel
Save