bed_mesh: update z_offset check

Only check the probe's z_offset against the stepper_z endstop position if the probe is used as a virtual endstop.

Signed-off-by: Eric Callahan <arksine.code@gmail.com>
This commit is contained in:
Arksine 2018-08-17 12:08:37 -04:00 committed by KevinOConnor
parent 08aacec0b2
commit 52df40dfbb
2 changed files with 14 additions and 5 deletions

View File

@ -136,10 +136,11 @@ class BedMeshCalibrate:
points = self._generate_points(config) points = self._generate_points(config)
self._init_probe_params(config, points) self._init_probe_params(config, points)
self.probe_helper = probe.ProbePointsHelper(config, self, 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'): if config.has_section('stepper_z'):
zconfig = config.getsection('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 = self.printer.lookup_object('gcode')
self.gcode.register_command( self.gcode.register_command(
'BED_MESH_CALIBRATE', self.cmd_BED_MESH_CALIBRATE, 'BED_MESH_CALIBRATE', self.cmd_BED_MESH_CALIBRATE,
@ -230,13 +231,16 @@ class BedMeshCalibrate:
else: else:
print_func("bed_mesh: bed has not been probed") print_func("bed_mesh: bed has not been probed")
def finalize(self, z_offset, positions): def finalize(self, z_offset, positions):
if self.z_offset_check is not None: if self.probe_helper.get_last_xy_home_positon() is not None \
if self.z_offset_check != z_offset: 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" \ z_msg = "bed_mesh: WARN - probe z_offset is not" \
" equal to Z position_endstop\n" " equal to Z position_endstop\n"
z_msg += "[probe] z_offset: %.4f\n" % z_offset z_msg += "[probe] z_offset: %.4f\n" % z_offset
z_msg += "[stepper_z] position_endstop: %.4f" \ z_msg += "[stepper_z] position_endstop: %.4f" \
% self.z_offset_check % self.z_endstop_pos
logging.info(z_msg) logging.info(z_msg)
self.gcode.respond_info(z_msg) self.gcode.respond_info(z_msg)
x_cnt = self.probe_params['x_count'] x_cnt = self.probe_params['x_count']

View File

@ -171,6 +171,11 @@ class ProbePointsHelper:
self.gcode = self.toolhead = None self.gcode = self.toolhead = None
def get_lift_speed(self): def get_lift_speed(self):
return self.lift_speed 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): def start_probe(self):
# Begin probing # Begin probing
self.toolhead = self.printer.lookup_object('toolhead') self.toolhead = self.printer.lookup_object('toolhead')