From 362b4d894fad76c0671ef5ca25ded1e89cd3472a Mon Sep 17 00:00:00 2001 From: GregValiant <64202104+GregValiant@users.noreply.github.com> Date: Sat, 12 Aug 2023 08:58:34 -0400 Subject: [PATCH] Update DisplayInfoOnLCD.py Added TimeToPause to DisplayProgress --- .../scripts/DisplayInfoOnLCD.py | 55 ++++++++++++++++++- 1 file changed, 54 insertions(+), 1 deletion(-) diff --git a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py index 341685be1d..8a5533d45a 100644 --- a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py +++ b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py @@ -123,6 +123,14 @@ class DisplayInfoOnLCD(Script): "unit": "%", "default_value": 100, "enabled": "display_option == 'display_progress'" + }, + "countdown_to_pause": + { + "label": "Countdown to Pauses", + "description": "Instead of layer number and remaining print time the LCD will show 'layers remaining before pause' and 'Est Time to Pause' (ETP).", + "type": "bool", + "default_value": false, + "enabled": "display_option == 'display_progress'" } } }""" @@ -269,5 +277,50 @@ class DisplayInfoOnLCD(Script): break # overwrite the layer with the modified layer data[layer_index] = "\n".join(lines) - + + # If enabled then change the ET to TP for 'Time To Pause' + if bool(self.getSettingValueByKey("countdown_to_pause")): + time_list = [] + time_list.append("0") + time_list.append("0") + this_time = 0 + pause_index = 1 + + # Get the layer times + for num in range(2,len(data) - 1): + layer = data[num] + lines = layer.split("\n") + for line in lines: + if line.startswith(";TIME_ELAPSED:"): + this_time = (float(line.split(":")[1]))*speed_factor + time_list.append(str(this_time)) + if "PauseAtHeight.py" in layer: + for qnum in range(num - 1, pause_index, -1): + time_list[qnum] = str(float(this_time) - float(time_list[qnum])) + "P" + pause_index = num-1 + + # Make the adjustments to the M117 (and M118) lines that are prior to a pause + for num in range (2, len(data) - 1,1): + layer = data[num] + lines = layer.split("\n") + for line in lines: + if line.startswith("M117") and "|" in line and "P" in time_list[num]: + M117_line = line.split("|")[0] + "| TP " + alt_time = time_list[num][:-1] + hhh = int(float(alt_time) / 3600) + if hhh > 0: + hhr = str(hhh) + "h" + else: + hhr = "" + mmm = ((float(alt_time) / 3600) - (int(float(alt_time) / 3600))) * 60 + sss = int((mmm - int(mmm)) * 60) + mmm = str(round(mmm)) + "m" + time_to_go = str(hhr) + str(mmm) + if hhr == "": time_to_go = time_to_go + str(sss) + "s" + M117_line = M117_line + time_to_go + layer = layer.replace(line, M117_line) + if line.startswith("M118") and "|" in line and "P" in time_list[num]: + M118_line = line.split("|")[0] + "| TP " + time_to_go + layer = layer.replace(line, M118_line) + data[num] = layer return data