safe_z_home: Hop only if necessary and add option to move xy back

Once a hop is performed, it will only be re-issued if the z-axis has been
moved in the meantime. Usually it is only moved by a z-homing so doing so
will cause safe_z_home to do the hop on the next homing action.

When z-axis is homed, x and y positions are known. When setting this
boolean option, these are set back to their last positions.

Whenever a hop is specified it is re-issued after the Z axis has been
homed. This is especially necessary when a pressure-based probe is used.
Also, the module decides if a hop is necessary, based on either a known
Z position or a flag that is set whenever the motors are disabled.

Signed-off-by: Nils Friedchen <Nils.Friedchen@googlemail.com>
This commit is contained in:
Master92 2019-09-18 15:37:33 +02:00 committed by KevinOConnor
parent 80775faa09
commit 3a37d4a208
3 changed files with 47 additions and 16 deletions

View file

@ -313,10 +313,17 @@
#z_hop: 0.0
# Lift the Z axis prior to homing. This is applied to any homing command,
# even if it doesn't home the Z axis. If the Z axis is already homed and
# the zhop would exceed the printer limits, the zhop is ignored.
# the zhop would exceed the printer limits, the zhop is ignored. If a lift
# has already been performed or the Z axis is known to be equally or higher
# than this distance, the zhop is ignored. After homing Z completed, the
# printhead is lifted to zhop, respecting the probe's z_offset.
# The default is 0.0mm.
#z_hop_speed: 20.0
# Speed at which the Z axis is lifted prior to homing. The default is 20mm/s.
#move_to_previous: True
# When set to True, xy are reset to their previous positions after z homing.
# The default is True.
# Homing override. One may use this mechanism to run a series of
# g-code commands in place of a G28 found in the normal g-code input.