Merge pull request #3524 from thinkyhead/rc_fix_mbl_oopsie_1
Oops! Fix MBL move Z to MESH_HOME_SEARCH_Z between probes
This commit is contained in:
commit
04fdb4de7d
|
@ -2847,10 +2847,12 @@ inline void gcode_G28() {
|
||||||
saved_feedrate = feedrate;
|
saved_feedrate = feedrate;
|
||||||
feedrate = homing_feedrate[X_AXIS];
|
feedrate = homing_feedrate[X_AXIS];
|
||||||
|
|
||||||
#if MIN_Z_HEIGHT_FOR_HOMING > 0
|
current_position[Z_AXIS] = MESH_HOME_SEARCH_Z
|
||||||
current_position[Z_AXIS] = MESH_HOME_SEARCH_Z + MIN_Z_HEIGHT_FOR_HOMING;
|
#if MIN_Z_HEIGHT_FOR_HOMING > 0
|
||||||
line_to_current_position();
|
+ MIN_Z_HEIGHT_FOR_HOMING
|
||||||
#endif
|
#endif
|
||||||
|
;
|
||||||
|
line_to_current_position();
|
||||||
|
|
||||||
current_position[X_AXIS] = x + home_offset[X_AXIS];
|
current_position[X_AXIS] = x + home_offset[X_AXIS];
|
||||||
current_position[Y_AXIS] = y + home_offset[Y_AXIS];
|
current_position[Y_AXIS] = y + home_offset[Y_AXIS];
|
||||||
|
@ -4010,7 +4012,7 @@ inline void gcode_M42() {
|
||||||
if (Z_start_location < Z_RAISE_BEFORE_PROBING * 2.0)
|
if (Z_start_location < Z_RAISE_BEFORE_PROBING * 2.0)
|
||||||
do_blocking_move_to_z(Z_start_location);
|
do_blocking_move_to_z(Z_start_location);
|
||||||
|
|
||||||
do_blocking_move_to_xy(X_probe_location - X_PROBE_OFFSET_FROM_EXTRUDER, Y_probe_location - Y_PROBE_OFFSET_FROM_EXTRUDER);
|
do_blocking_move_to_xy(X_probe_location - (X_PROBE_OFFSET_FROM_EXTRUDER), Y_probe_location - (Y_PROBE_OFFSET_FROM_EXTRUDER));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* OK, do the initial probe to get us close to the bed.
|
* OK, do the initial probe to get us close to the bed.
|
||||||
|
@ -4070,8 +4072,8 @@ inline void gcode_M42() {
|
||||||
while (angle < 0.0) // outside of this range. It looks like they behave correctly with
|
while (angle < 0.0) // outside of this range. It looks like they behave correctly with
|
||||||
angle += 360.0; // numbers outside of the range, but just to be safe we clamp them.
|
angle += 360.0; // numbers outside of the range, but just to be safe we clamp them.
|
||||||
|
|
||||||
X_current = X_probe_location - X_PROBE_OFFSET_FROM_EXTRUDER + cos(RADIANS(angle)) * radius;
|
X_current = X_probe_location - (X_PROBE_OFFSET_FROM_EXTRUDER) + cos(RADIANS(angle)) * radius;
|
||||||
Y_current = Y_probe_location - Y_PROBE_OFFSET_FROM_EXTRUDER + sin(RADIANS(angle)) * radius;
|
Y_current = Y_probe_location - (Y_PROBE_OFFSET_FROM_EXTRUDER) + sin(RADIANS(angle)) * radius;
|
||||||
|
|
||||||
#if DISABLED(DELTA)
|
#if DISABLED(DELTA)
|
||||||
X_current = constrain(X_current, X_MIN_POS, X_MAX_POS);
|
X_current = constrain(X_current, X_MIN_POS, X_MAX_POS);
|
||||||
|
@ -4109,7 +4111,7 @@ inline void gcode_M42() {
|
||||||
* height. This gets us back to the probe location at the same height that
|
* height. This gets us back to the probe location at the same height that
|
||||||
* we have been running around the circle at.
|
* we have been running around the circle at.
|
||||||
*/
|
*/
|
||||||
do_blocking_move_to_xy(X_probe_location - X_PROBE_OFFSET_FROM_EXTRUDER, Y_probe_location - Y_PROBE_OFFSET_FROM_EXTRUDER);
|
do_blocking_move_to_xy(X_probe_location - (X_PROBE_OFFSET_FROM_EXTRUDER), Y_probe_location - (Y_PROBE_OFFSET_FROM_EXTRUDER));
|
||||||
if (deploy_probe_for_each_reading)
|
if (deploy_probe_for_each_reading)
|
||||||
sample_set[n] = probe_pt(X_probe_location, Y_probe_location, Z_RAISE_BEFORE_PROBING, ProbeDeployAndStow, verbose_level);
|
sample_set[n] = probe_pt(X_probe_location, Y_probe_location, Z_RAISE_BEFORE_PROBING, ProbeDeployAndStow, verbose_level);
|
||||||
else {
|
else {
|
||||||
|
|
|
@ -512,9 +512,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
|
||||||
|
|
||||||
#if ENABLED(MESH_BED_LEVELING)
|
#if ENABLED(MESH_BED_LEVELING)
|
||||||
#define MESH_MIN_X 10
|
#define MESH_MIN_X 10
|
||||||
#define MESH_MAX_X (X_MAX_POS - MESH_MIN_X)
|
#define MESH_MAX_X (X_MAX_POS - (MESH_MIN_X))
|
||||||
#define MESH_MIN_Y 10
|
#define MESH_MIN_Y 10
|
||||||
#define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y)
|
#define MESH_MAX_Y (Y_MAX_POS - (MESH_MIN_Y))
|
||||||
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
||||||
#define MESH_NUM_Y_POINTS 3
|
#define MESH_NUM_Y_POINTS 3
|
||||||
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
|
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
|
||||||
|
@ -557,9 +557,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
|
||||||
#if ENABLED(AUTO_BED_LEVELING_GRID)
|
#if ENABLED(AUTO_BED_LEVELING_GRID)
|
||||||
|
|
||||||
#define LEFT_PROBE_BED_POSITION X_MIN_POS + X_PROBE_OFFSET_FROM_EXTRUDER
|
#define LEFT_PROBE_BED_POSITION X_MIN_POS + X_PROBE_OFFSET_FROM_EXTRUDER
|
||||||
#define RIGHT_PROBE_BED_POSITION X_MAX_POS - X_PROBE_OFFSET_FROM_EXTRUDER
|
#define RIGHT_PROBE_BED_POSITION X_MAX_POS - (X_PROBE_OFFSET_FROM_EXTRUDER)
|
||||||
#define FRONT_PROBE_BED_POSITION Y_MIN_POS + Y_PROBE_OFFSET_FROM_EXTRUDER
|
#define FRONT_PROBE_BED_POSITION Y_MIN_POS + Y_PROBE_OFFSET_FROM_EXTRUDER
|
||||||
#define BACK_PROBE_BED_POSITION Y_MAX_POS - Y_PROBE_OFFSET_FROM_EXTRUDER
|
#define BACK_PROBE_BED_POSITION Y_MAX_POS - (Y_PROBE_OFFSET_FROM_EXTRUDER)
|
||||||
|
|
||||||
#define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
|
#define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
|
||||||
|
|
||||||
|
@ -573,10 +573,10 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
|
||||||
// A simple cross-product is used to estimate the plane of the bed.
|
// A simple cross-product is used to estimate the plane of the bed.
|
||||||
#define ABL_PROBE_PT_1_X X_MIN_POS + X_PROBE_OFFSET_FROM_EXTRUDER
|
#define ABL_PROBE_PT_1_X X_MIN_POS + X_PROBE_OFFSET_FROM_EXTRUDER
|
||||||
#define ABL_PROBE_PT_1_Y Y_MIN_POS + Y_PROBE_OFFSET_FROM_EXTRUDER
|
#define ABL_PROBE_PT_1_Y Y_MIN_POS + Y_PROBE_OFFSET_FROM_EXTRUDER
|
||||||
#define ABL_PROBE_PT_2_X X_MAX_POS - X_PROBE_OFFSET_FROM_EXTRUDER
|
#define ABL_PROBE_PT_2_X X_MAX_POS - (X_PROBE_OFFSET_FROM_EXTRUDER)
|
||||||
#define ABL_PROBE_PT_2_Y Y_MIN_POS + Y_PROBE_OFFSET_FROM_EXTRUDER
|
#define ABL_PROBE_PT_2_Y Y_MIN_POS + Y_PROBE_OFFSET_FROM_EXTRUDER
|
||||||
#define ABL_PROBE_PT_3_X ((X_MIN_POS + X_MAX_POS) / 2)
|
#define ABL_PROBE_PT_3_X ((X_MIN_POS + X_MAX_POS) / 2)
|
||||||
#define ABL_PROBE_PT_3_Y Y_MAX_POS - Y_PROBE_OFFSET_FROM_EXTRUDER
|
#define ABL_PROBE_PT_3_Y Y_MAX_POS - (Y_PROBE_OFFSET_FROM_EXTRUDER)
|
||||||
|
|
||||||
#endif // AUTO_BED_LEVELING_GRID
|
#endif // AUTO_BED_LEVELING_GRID
|
||||||
|
|
||||||
|
|
|
@ -893,10 +893,12 @@ void lcd_cooldown() {
|
||||||
// Z position will be restored with the final action, a G28
|
// Z position will be restored with the final action, a G28
|
||||||
inline void _mbl_goto_xy(float x, float y) {
|
inline void _mbl_goto_xy(float x, float y) {
|
||||||
mbl_wait_for_move = true;
|
mbl_wait_for_move = true;
|
||||||
#if MIN_Z_HEIGHT_FOR_HOMING > 0
|
current_position[Z_AXIS] = MESH_HOME_SEARCH_Z
|
||||||
current_position[Z_AXIS] += MIN_Z_HEIGHT_FOR_HOMING;
|
#if MIN_Z_HEIGHT_FOR_HOMING > 0
|
||||||
line_to_current(Z_AXIS);
|
+ MIN_Z_HEIGHT_FOR_HOMING
|
||||||
#endif
|
#endif
|
||||||
|
;
|
||||||
|
line_to_current(Z_AXIS);
|
||||||
current_position[X_AXIS] = x + home_offset[X_AXIS];
|
current_position[X_AXIS] = x + home_offset[X_AXIS];
|
||||||
current_position[Y_AXIS] = y + home_offset[Y_AXIS];
|
current_position[Y_AXIS] = y + home_offset[Y_AXIS];
|
||||||
line_to_current(manual_feedrate[X_AXIS] <= manual_feedrate[Y_AXIS] ? X_AXIS : Y_AXIS);
|
line_to_current(manual_feedrate[X_AXIS] <= manual_feedrate[Y_AXIS] ? X_AXIS : Y_AXIS);
|
||||||
|
|
Loading…
Reference in a new issue