delta: max z-accel and speed ratio calculation for deltas (#4689)
Adding a possibility to use a lower z- acceleration. Signed-off-by: Martin Malmqvist <volcomosq@gmx.com>
This commit is contained in:
parent
2b7d0bba42
commit
54acca37ba
|
@ -250,6 +250,11 @@ max_z_velocity:
|
||||||
# maximum speed of up/down moves (which require a higher step rate
|
# maximum speed of up/down moves (which require a higher step rate
|
||||||
# than other moves on a delta printer). The default is to use
|
# than other moves on a delta printer). The default is to use
|
||||||
# max_velocity for max_z_velocity.
|
# max_velocity for max_z_velocity.
|
||||||
|
#max_z_accel:
|
||||||
|
# This sets the maximum acceleration (in mm/s^2) of movement along
|
||||||
|
# the z axis. Setting this may be useful if the printer can reach higher
|
||||||
|
# acceleration on XY moves than Z moves (eg, when using input shaper).
|
||||||
|
# The default is to use max_accel for max_z_accel.
|
||||||
#minimum_z_position: 0
|
#minimum_z_position: 0
|
||||||
# The minimum Z position that the user may command the head to move
|
# The minimum Z position that the user may command the head to move
|
||||||
# to. The default is 0.
|
# to. The default is 0.
|
||||||
|
|
|
@ -30,6 +30,8 @@ class DeltaKinematics:
|
||||||
self.max_z_velocity = config.getfloat(
|
self.max_z_velocity = config.getfloat(
|
||||||
'max_z_velocity', self.max_velocity,
|
'max_z_velocity', self.max_velocity,
|
||||||
above=0., maxval=self.max_velocity)
|
above=0., maxval=self.max_velocity)
|
||||||
|
self.max_z_accel = config.getfloat('max_z_accel', self.max_accel,
|
||||||
|
above=0., maxval=self.max_accel)
|
||||||
# Read radius and arm lengths
|
# Read radius and arm lengths
|
||||||
self.radius = radius = config.getfloat('delta_radius', above=0.)
|
self.radius = radius = config.getfloat('delta_radius', above=0.)
|
||||||
print_radius = config.getfloat('print_radius', radius, above=0.)
|
print_radius = config.getfloat('print_radius', radius, above=0.)
|
||||||
|
@ -130,7 +132,8 @@ class DeltaKinematics:
|
||||||
limit_xy2 = -1.
|
limit_xy2 = -1.
|
||||||
if move.axes_d[2]:
|
if move.axes_d[2]:
|
||||||
z_ratio = move.move_d / abs(move.axes_d[2])
|
z_ratio = move.move_d / abs(move.axes_d[2])
|
||||||
move.limit_speed(self.max_z_velocity * z_ratio, move.accel)
|
move.limit_speed(self.max_z_velocity * z_ratio,
|
||||||
|
self.max_z_accel * z_ratio)
|
||||||
limit_xy2 = -1.
|
limit_xy2 = -1.
|
||||||
# Limit the speed/accel of this move if is is at the extreme
|
# Limit the speed/accel of this move if is is at the extreme
|
||||||
# end of the build envelope
|
# end of the build envelope
|
||||||
|
|
Loading…
Reference in New Issue