diff options
author | Rui Caridade <rmcbc@users.noreply.github.com> | 2019-03-08 16:47:17 +0000 |
---|---|---|
committer | KevinOConnor <kevin@koconnor.net> | 2019-03-08 11:47:17 -0500 |
commit | 5c0a2479be961816d02ffbf261cf3e51ac5f5751 (patch) | |
tree | e72c6d8c7b4247e84368f002e0ea14672e07d232 /klippy/extras/probe.py | |
parent | fcaa75f01480c4de0de2f0656ee2947cce29ce03 (diff) | |
download | kutter-5c0a2479be961816d02ffbf261cf3e51ac5f5751.tar.gz kutter-5c0a2479be961816d02ffbf261cf3e51ac5f5751.tar.xz kutter-5c0a2479be961816d02ffbf261cf3e51ac5f5751.zip |
screws_tilt_adjust: Add new screws_tilt_adjust tool (#1367)
Signed-off-by: Rui Caridade <rui.mcbc@gmail.com>
Diffstat (limited to 'klippy/extras/probe.py')
-rw-r--r-- | klippy/extras/probe.py | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/klippy/extras/probe.py b/klippy/extras/probe.py index aa5f1d05..83871d15 100644 --- a/klippy/extras/probe.py +++ b/klippy/extras/probe.py @@ -240,6 +240,9 @@ class ProbePointsHelper: self.samples = config.getint('samples', 1, minval=1) self.sample_retract_dist = config.getfloat( 'sample_retract_dist', 2., above=0.) + self.samples_result = config.getchoice('samples_result', + {'median': 0, 'average': 1}, + default='average') # Internal probing state self.results = [] self.busy = self.manual_probe = False @@ -295,9 +298,26 @@ class ProbePointsHelper: if i < self.samples - 1: # retract self._lift_z(self.sample_retract_dist, add=True) - avg_pos = [sum([pos[i] for pos in positions]) / self.samples - for i in range(3)] - self.results.append(avg_pos) + if self.samples_result == 1: + # Calculate Average + calculated_value = [sum([pos[i] for pos in positions]) / + self.samples for i in range(3)] + else: + # Calculate Median + sorted_z_positions = sorted([position[2] + for position in positions]) + middle = self.samples // 2 + if (self.samples & 1) == 1: + # odd number of samples + median = sorted_z_positions[middle] + else: + # even number of samples + median = (sorted_z_positions[middle] + + sorted_z_positions[middle - 1]) / 2 + calculated_value = [positions[0][0], + positions[0][1], + median] + self.results.append(calculated_value) def start_probe(self, params): # Lookup objects self.toolhead = self.printer.lookup_object('toolhead') |