diff --git a/50_inst_per_sec.py b/50_inst_per_sec.py index 75b7ecb88a..cd298899d7 100644 --- a/50_inst_per_sec.py +++ b/50_inst_per_sec.py @@ -228,7 +228,7 @@ class Command: current_abs_feedrate = [abs(f) for f in current_feedrate] 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_Z) + feedrate_factor = min(feedrate_factor, buf.max_z_feedrate) feedrate_factor = min(feedrate_factor, MACHINE_MAX_FEEDRATE_E) #TODO: XY_FREQUENCY_LIMIT @@ -337,6 +337,11 @@ class Command: if cmd_num == 140: 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. if cmd_num == 204: value_dict = get_value_dict(parts[1:]) @@ -377,6 +382,7 @@ class CommandBuffer: self.max_xy_jerk = MACHINE_MAX_JERK_XY self.max_z_jerk = MACHINE_MAX_JERK_Z 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. lower_bound_buffer_depletion_time = self._buffer_size / self._buffer_filling_rate # type: float