Implement M203, setting maximum Z feedrate

It's important.

Contributes to issue CURA-5561.
This commit is contained in:
Ghostkeeper 2018-09-04 16:36:35 +02:00
parent 5d292e1a79
commit 1037b09188
No known key found for this signature in database
GPG key ID: 5252B696FB5E7C7A

View file

@ -228,7 +228,7 @@ class Command:
current_abs_feedrate = [abs(f) for f in current_feedrate] current_abs_feedrate = [abs(f) for f in current_feedrate]
feedrate_factor = min(1.0, MACHINE_MAX_FEEDRATE_X) feedrate_factor = min(1.0, MACHINE_MAX_FEEDRATE_X)
feedrate_factor = min(feedrate_factor, MACHINE_MAX_FEEDRATE_Y) feedrate_factor = min(feedrate_factor, MACHINE_MAX_FEEDRATE_Y)
feedrate_factor = min(feedrate_factor, MACHINE_MAX_FEEDRATE_Z) feedrate_factor = min(feedrate_factor, buf.max_z_feedrate)
feedrate_factor = min(feedrate_factor, MACHINE_MAX_FEEDRATE_E) feedrate_factor = min(feedrate_factor, MACHINE_MAX_FEEDRATE_E)
#TODO: XY_FREQUENCY_LIMIT #TODO: XY_FREQUENCY_LIMIT
@ -337,6 +337,11 @@ class Command:
if cmd_num == 140: if cmd_num == 140:
estimated_exec_time_in_ms = 0.0 estimated_exec_time_in_ms = 0.0
# M203: Set maximum feedrate. Only Z is supported. Assume 0 execution time.
if cmd_num == 203:
value_dict = get_value_dict(parts[1:])
buf.max_z_feedrate = value_dict.get("Z", buf.max_z_feedrate)
# M204: Set default acceleration. Assume 0 execution time. # M204: Set default acceleration. Assume 0 execution time.
if cmd_num == 204: if cmd_num == 204:
value_dict = get_value_dict(parts[1:]) value_dict = get_value_dict(parts[1:])
@ -377,6 +382,7 @@ class CommandBuffer:
self.max_xy_jerk = MACHINE_MAX_JERK_XY self.max_xy_jerk = MACHINE_MAX_JERK_XY
self.max_z_jerk = MACHINE_MAX_JERK_Z self.max_z_jerk = MACHINE_MAX_JERK_Z
self.max_e_jerk = MACHINE_MAX_JERK_E self.max_e_jerk = MACHINE_MAX_JERK_E
self.max_z_feedrate = MACHINE_MAX_FEEDRATE_Z
# If the buffer can depletes less than this amount time, it can be filled up in time. # If the buffer can depletes less than this amount time, it can be filled up in time.
lower_bound_buffer_depletion_time = self._buffer_size / self._buffer_filling_rate # type: float lower_bound_buffer_depletion_time = self._buffer_size / self._buffer_filling_rate # type: float