diff --git a/klippy/extras/bed_mesh.py b/klippy/extras/bed_mesh.py index 4c006ea2..9752030f 100644 --- a/klippy/extras/bed_mesh.py +++ b/klippy/extras/bed_mesh.py @@ -136,10 +136,11 @@ class BedMeshCalibrate: points = self._generate_points(config) self._init_probe_params(config, points) self.probe_helper = probe.ProbePointsHelper(config, self, points) - self.z_offset_check = None + self.z_endstop_pos = None if config.has_section('stepper_z'): zconfig = config.getsection('stepper_z') - self.z_offset_check = zconfig.getfloat('position_endstop', None) + self.z_endstop_pos = zconfig.getfloat( + 'position_endstop', None) self.gcode = self.printer.lookup_object('gcode') self.gcode.register_command( 'BED_MESH_CALIBRATE', self.cmd_BED_MESH_CALIBRATE, @@ -230,13 +231,16 @@ class BedMeshCalibrate: else: print_func("bed_mesh: bed has not been probed") def finalize(self, z_offset, positions): - if self.z_offset_check is not None: - if self.z_offset_check != z_offset: + if self.probe_helper.get_last_xy_home_positon() is not None \ + and self.z_endstop_pos is not None: + # Using probe as a virtual endstop, warn user if the + # stepper_z position_endstop is different + if self.z_endstop_pos != z_offset: z_msg = "bed_mesh: WARN - probe z_offset is not" \ " equal to Z position_endstop\n" z_msg += "[probe] z_offset: %.4f\n" % z_offset z_msg += "[stepper_z] position_endstop: %.4f" \ - % self.z_offset_check + % self.z_endstop_pos logging.info(z_msg) self.gcode.respond_info(z_msg) x_cnt = self.probe_params['x_count'] diff --git a/klippy/extras/probe.py b/klippy/extras/probe.py index 3c27e73b..831ccf55 100644 --- a/klippy/extras/probe.py +++ b/klippy/extras/probe.py @@ -171,6 +171,11 @@ class ProbePointsHelper: self.gcode = self.toolhead = None def get_lift_speed(self): return self.lift_speed + def get_last_xy_home_positon(self): + if self.probe is not None: + return self.probe.last_home_position() + else: + return None def start_probe(self): # Begin probing self.toolhead = self.printer.lookup_object('toolhead')