From da0fe19c962c5e9b22c1b53949ca1d05b3addae5 Mon Sep 17 00:00:00 2001 From: GregValiant <64202104+GregValiant@users.noreply.github.com> Date: Sun, 31 Mar 2024 07:55:36 -0400 Subject: [PATCH 001/200] Update DisplayInfoOnLCD.py Bug fix for "remaining_time". Affected M118 and M73_time Update DisplayInfoOnLCD.py Add options for Time-to-pause to include Filament Change. Update DisplayInfoOnLCD.py Make M117 optional. Combine M73 R and M73 P lines into a single line. Add A and P parameters for M118 lines. Update DisplayInfoOnLCD A TouchUp. Update DisplayInfoOnLCD.py TouchUp Update DisplayInfoOnLCD.py TuneUp --- .../scripts/DisplayInfoOnLCD.py | 265 +++++++++++++----- .../scripts/DisplayInfoOnLCD.zip | Bin 0 -> 7911 bytes 2 files changed, 195 insertions(+), 70 deletions(-) create mode 100644 plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.zip diff --git a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py index 63c1c8c788..870a64834d 100644 --- a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py +++ b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py @@ -7,7 +7,8 @@ # Cura Post-Process plugin # Combines 'Display Filename and Layer on the LCD' with 'Display Progress' # Combined and with additions by: GregValiant (Greg Foresi) -# Date: September 8, 2023 +# Date: September 8, 2023 +# Date: March 31, 2024 - Bug fix for problem with adding M118 lines if 'Remaining Time' was not checked. # NOTE: This combined post processor will make 'Display Filename and Layer on the LCD' and 'Display Progress' obsolete # Description: Display Filename and Layer options: # Status messages sent to the printer... @@ -34,9 +35,19 @@ import time import datetime import math from UM.Message import Message +import re class DisplayInfoOnLCD(Script): + def initialize(self) -> None: + super().initialize() + try: + if Application.getInstance().getGlobalContainerStack().getProperty("print_sequence", "value") == "all_at_once": + enable_countdown = True + self._instance.setProperty("enable_countdown", "value", enable_countdown) + except: + pass + def getSettingDataString(self): return """{ "name": "Display Info on LCD", @@ -77,7 +88,7 @@ class DisplayInfoOnLCD(Script): "label": "Initial layer number:", "description": "Choose which number you prefer for the initial layer, 0 or 1", "type": "int", - "default_value": 0, + "default_value": 1, "minimum_value": 0, "maximum_value": 1, "enabled": "display_option == 'filename_layer'" @@ -114,17 +125,40 @@ class DisplayInfoOnLCD(Script): "default_value": true, "enabled": "display_option == 'display_progress'" }, + "add_m117_line": + { + "label": "Add M117 Line", + "description": "M117 sends a message to the LCD screen. Some screen firmware will not accept or display messages.", + "type": "bool", + "default_value": true + }, "add_m118_line": { "label": "Add M118 Line", "description": "Adds M118 in addition to the M117. It will bounce the message back through the USB port to a computer print server (if a printer server like Octoprint or Pronterface is in use).", "type": "bool", - "default_value": false + "default_value": true + }, + "add_m118_a1": + { + "label": " Add A1 to M118 Line", + "description": "Adds A1 parameter. A1 adds a double foreslash '//' to the response. Octoprint may require this.", + "type": "bool", + "default_value": false, + "enabled": "add_m118_line" + }, + "add_m118_p0": + { + "label": " Add P0 to M118 Line", + "description": "Adds P0 parameter. P0 has the printer send the response out through all it's ports. Octoprint may require this.", + "type": "bool", + "default_value": false, + "enabled": "add_m118_line" }, "add_m73_line": { "label": "Add M73 Line(s)", - "description": "Adds M73 in addition to the M117. For some firmware this will set the printers time and or percentage.", + "description": "Adds M73 in addition to the M117. For some firmware this will set the printers time and or percentage. M75 is added to the beginning of the file and M77 is added to the end of the file. M73 will be added if one or both of the following options is chosen.", "type": "bool", "default_value": false, "enabled": "display_option == 'display_progress'" @@ -132,7 +166,7 @@ class DisplayInfoOnLCD(Script): "add_m73_percent": { "label": " Add M73 Percentage", - "description": "Adds M73 with the P parameter. For some firmware this will set the printers 'percentage' of layers completed and it will count upward.", + "description": "Adds M73 with the P parameter to the start of each layer. For some firmware this will set the printers 'percentage' of layers completed and it will count upward.", "type": "bool", "default_value": false, "enabled": "add_m73_line and display_option == 'display_progress'" @@ -140,10 +174,10 @@ class DisplayInfoOnLCD(Script): "add_m73_time": { "label": " Add M73 Time", - "description": "Adds M73 with the R parameter. For some firmware this will set the printers 'print time' and it will count downward.", + "description": "Adds M73 with the R parameter to the start of each layer. For some firmware this will set the printers 'print time' and it will count downward.", "type": "bool", "default_value": false, - "enabled": "add_m73_line and display_option == 'display_progress'" + "enabled": "add_m73_line and display_option == 'display_progress' and display_remaining_time" }, "speed_factor": { @@ -154,13 +188,29 @@ class DisplayInfoOnLCD(Script): "default_value": 100, "enabled": "enable_end_message or display_option == 'display_progress'" }, + "enable_countdown": + { + "label": "Enable Countdown to Pauses", + "description": "If print sequence is 'one_at_a_time' this is false. This setting is always hidden.", + "type": "bool", + "value": false, + "enabled": false + }, "countdown_to_pause": { "label": "Countdown to Pauses", - "description": "Instead of the remaining print time the LCD will show the estimated time to pause (TP).", + "description": "This must run AFTER any script that adds a pause. Instead of the remaining print time the LCD will show the estimated time to the next layer that has a pause (TP).", "type": "bool", "default_value": false, - "enabled": "display_option == 'display_progress'" + "enabled": "display_option == 'display_progress' and enable_countdown and display_remaining_time" + }, + "pause_cmd": + { + "label": " What pause command(s) are used?", + "description": "This might be M0, or M25 or M600 if Filament Change is used. If you have mixed commands then delimit them with a comma ',' (Ex: M0,M600). Spaces are not allowed.", + "type": "str", + "default_value": "M0", + "enabled": "countdown_to_pause and enable_countdown and display_remaining_time" }, "enable_end_message": { @@ -173,40 +223,57 @@ class DisplayInfoOnLCD(Script): "print_start_time": { "label": "Print Start Time (Ex 16:45)", - "description": "Use 'Military' time. 16:45 would be 4:45PM. 09:30 would be 9:30AM. If you leave this blank it will be assumed that the print will start Now. If you enter a guesstimate of your printer start time and that time is before 'Now' the guesstimate will consider that the print will start tomorrow at the entered time. ", + "description": "Use 'Military' time. 16:45 would be 4:45PM. 09:30 would be 9:30AM. If you leave this blank it will be assumed that the print will start Now. If you enter a guesstimate of your printer start time and that time is before 'Now' then the guesstimate will consider that the print will start tomorrow at the entered time. ", "type": "str", "default_value": "", "unit": "hrs ", "enabled": "enable_end_message" } - } }""" def execute(self, data): display_option = self.getSettingValueByKey("display_option") + add_m117_line = self.getSettingValueByKey("add_m117_line") add_m118_line = self.getSettingValueByKey("add_m118_line") + add_m118_a1 = self.getSettingValueByKey("add_m118_a1") + add_m118_p0 = self.getSettingValueByKey("add_m118_p0") + m118_text = "M118 " + m118_str = "M118 " + if add_m118_line: + if add_m118_a1 and not add_m118_p0: + m118_str = "M118 A1 " + if add_m118_p0 and not add_m118_a1: + m118_str = "M118 P0 " + if add_m118_p0 and add_m118_a1: + m118_str = "M118 A1 P0 " add_m73_line = self.getSettingValueByKey("add_m73_line") add_m73_time = self.getSettingValueByKey("add_m73_time") add_m73_percent = self.getSettingValueByKey("add_m73_percent") + m73_str = "" # This is Display Filename and Layer on LCD--------------------------------------------------------- if display_option == "filename_layer": max_layer = 0 lcd_text = "M117 " + octo_text = "M118 " if self.getSettingValueByKey("file_name") != "": file_name = self.getSettingValueByKey("file_name") else: file_name = Application.getInstance().getPrintInformation().jobName if self.getSettingValueByKey("addPrefixPrinting"): lcd_text += "Printing " + octo_text += "Printing " if not self.getSettingValueByKey("scroll"): lcd_text += "Layer " + octo_text += "Layer " else: lcd_text += file_name + " - Layer " + octo_text += file_name + " - Layer " i = self.getSettingValueByKey("startNum") for layer in data: display_text = lcd_text + str(i) + m118_text = octo_text + str(i) layer_index = data.index(layer) lines = layer.split("\n") for line in lines: @@ -217,18 +284,29 @@ class DisplayInfoOnLCD(Script): max_layer = str(int(max_layer) - 1) if line.startswith(";LAYER:"): if self.getSettingValueByKey("maxlayer"): - display_text = display_text + " of " + max_layer + display_text += " of " + max_layer + m118_text += " of " + max_layer if not self.getSettingValueByKey("scroll"): - display_text = display_text + " " + file_name + display_text += " " + file_name + m118_text += " " + file_name else: if not self.getSettingValueByKey("scroll"): - display_text = display_text + " " + file_name + "!" + display_text += " " + file_name + "!" + m118_text += " " + file_name + "!" else: - display_text = display_text + "!" + display_text += "!" + m118_text += "!" line_index = lines.index(line) - lines.insert(line_index + 1, display_text) + if add_m117_line: + lines.insert(line_index + 1, display_text) if add_m118_line: - lines.insert(line_index + 2, str(display_text.replace("M117", "M118", 1))) + if add_m118_a1 and not add_m118_p0: + m118_str = m118_text.replace("M118 ","M118 A1 ") + if add_m118_p0 and not add_m118_a1: + m118_str = m118_text.replace("M118 ","M118 P0 ") + if add_m118_p0 and add_m118_a1: + m118_str = m118_text.replace("M118 ","M118 A1 P0 ") + lines.insert(line_index + 2, m118_str) i += 1 final_lines = "\n".join(lines) data[layer_index] = final_lines @@ -239,7 +317,13 @@ class DisplayInfoOnLCD(Script): # Display Progress (from 'Show Progress' and 'Display Progress on LCD')--------------------------------------- elif display_option == "display_progress": - # get settings + print_sequence = Application.getInstance().getGlobalContainerStack().getProperty("print_sequence", "value") + ## Add the Initial Layer Height just below Layer Height in data[0] + init_layer_hgt_line = ";Initial Layer Height: " + str(Application.getInstance().getGlobalContainerStack().getProperty("layer_height_0", "value")) + nozzle_size_line = ";Nozzle Size T0: " + str(Application.getInstance().getGlobalContainerStack().extruderList[0].getProperty("machine_nozzle_size", "value")) + match = re.search(";Layer height: (\d\.\d*)", data[0])[0] + data[0] = re.sub(match, match + "\n" + init_layer_hgt_line + "\n" + nozzle_size_line, data[0]) + ## Get settings display_total_layers = self.getSettingValueByKey("display_total_layers") display_remaining_time = self.getSettingValueByKey("display_remaining_time") speed_factor = self.getSettingValueByKey("speed_factor") / 100 @@ -249,12 +333,16 @@ class DisplayInfoOnLCD(Script): m73_time = True if add_m73_line and add_m73_percent: m73_percent = True - # initialize global variables + if add_m73_line: + data[1] = "M75\n" + data[1] + data[len(data)-1] += "M77\n" + ## Initialize some variables first_layer_index = 0 - time_total = 0 + time_total = int(data[0].split(";TIME:")[1].split("\n")[0]) number_of_layers = 0 time_elapsed = 0 - # if at least one of the settings is disabled, there is enough room on the display to display "layer" + + ## If at least one of the settings is disabled, there is enough room on the display to display "layer" first_section = data[0] lines = first_section.split("\n") for line in lines: @@ -268,28 +356,40 @@ class DisplayInfoOnLCD(Script): orig_hhh = cura_time/3600 orig_hr = round(orig_hhh // 1) orig_mmm = math.floor((orig_hhh % 1) * 60) - orig_sec = round((((orig_hhh % 1) * 60) % 1) * 60) - if add_m118_line: lines.insert(tindex + 3,"M118 Adjusted Print Time " + str(hr) + "hr " + str(mmm) + "min") - lines.insert(tindex + 3,"M117 ET " + str(hr) + "hr " + str(mmm) + "min") - # add M73 line at beginning + if add_m118_line: lines.insert(tindex + 5, m118_str + "Adjusted Print Time " + str(hr) + "hr " + str(mmm) + "min") + if add_m117_line: lines.insert(tindex + 5,"M117 ET " + str(hr) + "hr " + str(mmm) + "min") + ## Add M73 line at beginning mins = int(60 * hr + mmm) - if m73_time: - lines.insert(tindex + 3, "M73 R{}".format(mins)) - if m73_percent: - lines.insert(tindex + 3, "M73 P0") - # If Countdonw to pause is enabled then count the pauses + if add_m73_line and (add_m73_time or add_m73_percent): + if m73_time: + m73_str += " R{}".format(mins) + if m73_percent: + m73_str += " P0" + lines.insert(tindex + 4, "M73" + m73_str) + # If Countdown to pause is enabled then count the pauses pause_str = "" if bool(self.getSettingValueByKey("countdown_to_pause")): pause_count = 0 - for num in range(2,len(data) - 1, 1): - if "PauseAtHeight.py" in data[num]: - pause_count += 1 - pause_str = f" with {pause_count} pause(s)" - # This line goes in to convert seconds to hours and minutes - lines.insert(tindex + 3, f";Cura Time Estimate: {cura_time}sec = {orig_hr}hr {orig_mmm}min {orig_sec}sec {pause_str}") + pause_setting = self.getSettingValueByKey("pause_cmd").upper() + pause_cmd = [] + if "," in pause_setting: + pause_cmd = pause_setting.split(",") + else: + pause_cmd.append(pause_setting) + for q in range(0, len(pause_cmd)): + pause_cmd[q] = "\n" + pause_cmd[q] + for num in range(2,len(data) - 2, 1): + for q in range(0,len(pause_cmd)): + if pause_cmd[q] in data[num]: + pause_count += data[num].count(pause_cmd[q], 0, len(data[num])) + pause_str = f" with {pause_count} pause(s)" + ## This line goes in to convert seconds to hours and minutes + lines.insert(tindex + 5, f";Cura Time Estimate: {orig_hr}hr {orig_mmm}min {pause_str}") data[0] = "\n".join(lines) - data[len(data)-1] += "M117 Orig Cura Est " + str(orig_hr) + "hr " + str(orig_mmm) + "min\n" - if add_m118_line: data[len(data)-1] += "M118 Est w/FudgeFactor " + str(speed_factor * 100) + "% was " + str(hr) + "hr " + str(mmm) + "min\n" + if add_m117_line: + data[len(data)-1] += "M117 Orig Cura Est " + str(orig_hr) + "hr " + str(orig_mmm) + "min\n" + if add_m118_line: + data[len(data)-1] += m118_str + " Est w/FudgeFactor " + str(speed_factor * 100) + "% was " + str(hr) + "hr " + str(mmm) + "min\n" if not display_total_layers or not display_remaining_time: base_display_text = "layer " else: @@ -308,6 +408,11 @@ class DisplayInfoOnLCD(Script): for line in data_section.split("\n"): if line.startswith(";LAYER_COUNT:"): number_of_layers = int(line.split(":")[1]) + if print_sequence == "one_at_a_time": + number_of_layers = 1 + for lay in range(2,len(data)-1,1): + if ";LAYER:" in data[lay]: + number_of_layers += 1 elif line.startswith(";TIME:"): time_total = int(line.split(":")[1]) # for all layers... @@ -352,15 +457,26 @@ class DisplayInfoOnLCD(Script): # insert the text AFTER the first line of the layer (in case other scripts use ";LAYER:") for l_index, line in enumerate(lines): if line.startswith(";LAYER:"): - lines[l_index] += "\nM117 " + display_text - # add M73 line - mins = int(60 * h + m) - if m73_time: - lines[l_index] += "\nM73 R{}".format(mins) - if m73_percent: - lines[l_index] += "\nM73 P" + str(round(int(current_layer) / int(number_of_layers) * 100)) + if add_m117_line: + lines[l_index] += "\nM117 " + display_text if add_m118_line: - lines[l_index] += "\nM118 " + display_text + a1_str = "" + p0_str = "" + if add_m118_a1: + a1_str = "A1 " + if add_m118_p0: + p0_str = "P0 " + lines[l_index] += "\nM118 " + a1_str + p0_str + display_text + # add M73 line + if display_remaining_time: + mins = int(60 * h + m) + if add_m73_line and (add_m73_time or add_m73_percent): + m73_str = "" + if m73_time and display_remaining_time: + m73_str += " R{}".format(mins) + if m73_percent: + m73_str += " P" + str(round(int(current_layer) / int(number_of_layers) * 100)) + lines[l_index] += "\nM73" + m73_str break # overwrite the layer with the modified layer data[layer_index] = "\n".join(lines) @@ -381,34 +497,29 @@ class DisplayInfoOnLCD(Script): 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 + for p_cmd in pause_cmd: + if p_cmd 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 + break # 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) + try: + if line.startswith("M117") and "|" in line and "P" in time_list[num]: + time_to_go = self.get_time_to_go(time_list[num]) + M117_line = line.split("|")[0] + "| TP " + time_to_go + layer = layer.replace(line, M117_line) + if line.startswith("M118") and "|" in line and "P" in time_list[num]: + time_to_go = self.get_time_to_go(time_list[num]) + M118_line = line.split("|")[0] + "| TP " + time_to_go + layer = layer.replace(line, M118_line) + except: + continue data[num] = layer setting_data = "" if bool(self.getSettingValueByKey("enable_end_message")): @@ -476,8 +587,22 @@ class DisplayInfoOnLCD(Script): if print_start_time != "": print_start_str = "Print Start Time................." + str(print_start_time) + "hrs" else: - print_start_str = "Print Start Time.................Now." + print_start_str = "Print Start Time.................Now" estimate_str = "Cura Time Estimate.........." + str(print_time) adjusted_str = "Adjusted Time Estimate..." + str(time_change) finish_str = week_day + " " + str(mo_str) + " " + str(new_time.strftime("%d")) + ", " + str(new_time.strftime("%Y")) + " at " + str(show_hr) + str(new_time.strftime("%M")) + str(show_ampm) - return finish_str, estimate_str, adjusted_str, print_start_str \ No newline at end of file + return finish_str, estimate_str, adjusted_str, print_start_str + + def get_time_to_go(self, time_str: str): + alt_time = time_str[:-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" + return time_to_go \ No newline at end of file diff --git a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.zip b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.zip new file mode 100644 index 0000000000000000000000000000000000000000..fd9e5d90ae894ed7d61fce36a2fb771d58f0c026 GIT binary patch literal 7911 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 literal 0 HcmV?d00001 From 9fe36482f7978e87288d0994711412dc1be0473a Mon Sep 17 00:00:00 2001 From: GregValiant <64202104+GregValiant@users.noreply.github.com> Date: Sun, 7 Apr 2024 09:03:46 -0400 Subject: [PATCH 002/200] Delete DisplayInfoOnLCD.zip Should not have been included. --- .../scripts/DisplayInfoOnLCD.zip | Bin 7911 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.zip diff --git a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.zip b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.zip deleted file mode 100644 index fd9e5d90ae894ed7d61fce36a2fb771d58f0c026..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7911 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 From d3d63bfae9109698e35e9fb47d07d899c159f717 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Fri, 30 Aug 2024 14:50:26 -0400 Subject: [PATCH 003/200] Fix cool_min_speed --- resources/definitions/voron2_base.def.json | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index dc6cd255bb..702f7ae773 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -39,6 +39,7 @@ "cool_fan_speed_min": { "value": "cool_fan_speed" }, "cool_min_layer_time": { "default_value": 15 }, "cool_min_layer_time_fan_speed_max": { "default_value": 20 }, + "cool_min_speed": { "value": "round(speed_wall_0 * 3 / 4) if cool_lift_head else round(speed_wall_0 / 5)" }, "fill_outline_gaps": { "default_value": true }, "gantry_height": { "value": 30 }, "infill_before_walls": { "default_value": false }, From dbc031f4f1373663c2942f40cd7f4be455bf9cd6 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Fri, 30 Aug 2024 15:28:07 -0400 Subject: [PATCH 004/200] Experimental: simplified speed definitions to take advantage of defaults --- resources/definitions/voron2_base.def.json | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 702f7ae773..7c706e47dc 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -104,19 +104,14 @@ }, "roofing_layer_count": { "value": 1 }, "skirt_brim_minimal_length": { "default_value": 550 }, - "speed_layer_0": { "value": "math.ceil(speed_print * 0.25)" }, - "speed_roofing": { "value": "math.ceil(speed_print * 0.33)" }, + "speed_infill": { "value": "math.ceil(speed_print * 1.5)" }, "speed_slowdown_layers": { "default_value": 4 }, - "speed_topbottom": { "value": "math.ceil(speed_print * 0.33)" }, "speed_travel": { + "default_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2) / 2", "maximum_value_warning": 501, "value": 300 }, - "speed_travel_layer_0": { "value": "math.ceil(speed_travel * 0.4)" }, - "speed_wall": { "value": "math.ceil(speed_print * 0.33)" }, - "speed_wall_0": { "value": "math.ceil(speed_print * 0.33)" }, - "speed_wall_x": { "value": "math.ceil(speed_print * 0.66)" }, "travel_avoid_other_parts": { "default_value": false }, "wall_line_width": { "value": "machine_nozzle_size" }, "wall_overhang_angle": { "default_value": 75 }, From 78fa756a6a4e15716d685d2b653c5a94bf58365e Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Tue, 3 Sep 2024 08:30:12 -0400 Subject: [PATCH 005/200] Enforce lower limit on cool_min_speed --- resources/definitions/voron2_base.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 7c706e47dc..4366fbbd5b 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -39,7 +39,7 @@ "cool_fan_speed_min": { "value": "cool_fan_speed" }, "cool_min_layer_time": { "default_value": 15 }, "cool_min_layer_time_fan_speed_max": { "default_value": 20 }, - "cool_min_speed": { "value": "round(speed_wall_0 * 3 / 4) if cool_lift_head else round(speed_wall_0 / 5)" }, + "cool_min_speed": { "value": "min(speed_print_layer_0, round(speed_wall_0 * 3 / 4) if cool_lift_head else round(speed_wall_0 / 5))" }, "fill_outline_gaps": { "default_value": true }, "gantry_height": { "value": 30 }, "infill_before_walls": { "default_value": false }, From 1f51edeb010c9437bd94830e7f3ea033c293cee7 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Tue, 3 Sep 2024 08:39:56 -0400 Subject: [PATCH 006/200] Update max_feedrate and max_accel based on latest default voron-2 printer.cfg --- resources/definitions/voron2_base.def.json | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 4366fbbd5b..d5eac3461e 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -68,14 +68,13 @@ }, "machine_heated_bed": { "default_value": true }, "machine_height": { "default_value": 250 }, - "machine_max_acceleration_x": { "default_value": 1500 }, - "machine_max_acceleration_y": { "default_value": 1500 }, - "machine_max_acceleration_z": { "default_value": 250 }, + "machine_max_acceleration_x": { "default_value": 3000 }, + "machine_max_acceleration_y": { "default_value": 3000 }, + "machine_max_acceleration_z": { "default_value": 350 }, "machine_max_feedrate_e": { "default_value": 120 }, + "machine_max_feedrate_x": { "value": 300 }, + "machine_max_feedrate_y": { "value": 300 }, "machine_max_feedrate_z": { "default_value": 40 }, - "machine_max_jerk_e": { "default_value": 60 }, - "machine_max_jerk_xy": { "default_value": 20 }, - "machine_max_jerk_z": { "default_value": 1 }, "machine_name": { "default_value": "VORON2" }, "machine_start_gcode": { "default_value": ";Nozzle diameter = {machine_nozzle_size}\n;Filament type = {material_type}\n;Filament name = {material_name}\n;Filament weight = {filament_weight}\n; M190 S{material_bed_temperature_layer_0}\n; M109 S{material_print_temperature_layer_0}\nprint_start EXTRUDER={material_print_temperature_layer_0} BED={material_bed_temperature_layer_0} CHAMBER={build_volume_temperature}" }, "machine_steps_per_mm_x": { "default_value": 80 }, From b64c0b60533851b593705b902fb6814301e0d39f Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Tue, 3 Sep 2024 08:42:19 -0400 Subject: [PATCH 007/200] Remove old jerk settings because jerk is disabled --- resources/definitions/voron2_base.def.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index d5eac3461e..3a0219eb45 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -45,8 +45,6 @@ "infill_before_walls": { "default_value": false }, "infill_enable_travel_optimization": { "default_value": true }, "jerk_enabled": { "default_value": false }, - "jerk_roofing": { "value": 10 }, - "jerk_wall_0": { "value": 10 }, "layer_height_0": { "resolve": "max(0.2, min(extruderValues('layer_height')))" }, "line_width": { "value": "machine_nozzle_size * 1.125" }, "machine_acceleration": { "default_value": 1500 }, From 469cb006fe3f889bd3435b8323b4d7f375f1f634 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Tue, 3 Sep 2024 08:45:23 -0400 Subject: [PATCH 008/200] Update speed_travel to automatically adjust for changes to max_feedrate --- resources/definitions/voron2_base.def.json | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 3a0219eb45..0d486b8e0f 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -105,9 +105,8 @@ "speed_slowdown_layers": { "default_value": 4 }, "speed_travel": { - "default_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2) / 2", - "maximum_value_warning": 501, - "value": 300 + "maximum_value_warning": "math.ceil((machine_max_feedrate_x + machine_max_feedrate_y) / 200) * 100 + 1", + "value": "speed_print if magic_spiralize else round((machine_max_feedrate_x + machine_max_feedrate_y) / 200) * 100" }, "travel_avoid_other_parts": { "default_value": false }, "wall_line_width": { "value": "machine_nozzle_size" }, From d0d7f619afa4b97717d8d15cd2a3682d89418a60 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Tue, 3 Sep 2024 09:10:41 -0400 Subject: [PATCH 009/200] Remove old acceleration control values --- resources/definitions/voron2_base.def.json | 5 ----- 1 file changed, 5 deletions(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 0d486b8e0f..46bff05341 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -22,11 +22,6 @@ "overrides": { "acceleration_enabled": { "default_value": false }, - "acceleration_layer_0": { "value": 1800 }, - "acceleration_print": { "default_value": 2200 }, - "acceleration_roofing": { "value": 1800 }, - "acceleration_travel_layer_0": { "value": 1800 }, - "acceleration_wall_0": { "value": 1800 }, "adhesion_type": { "default_value": "skirt" }, "alternate_extra_perimeter": { "default_value": true }, "bridge_fan_speed": { "default_value": 100 }, From 387566b7430a914ffc0aa865ae43e83c58ce5dfe Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Tue, 3 Sep 2024 09:21:44 -0400 Subject: [PATCH 010/200] Update layer_height_0 to dynamically adjust to nozzle size --- resources/definitions/voron2_base.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 46bff05341..d0cb600f69 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -40,7 +40,7 @@ "infill_before_walls": { "default_value": false }, "infill_enable_travel_optimization": { "default_value": true }, "jerk_enabled": { "default_value": false }, - "layer_height_0": { "resolve": "max(0.2, min(extruderValues('layer_height')))" }, + "layer_height_0": { "resolve": "max(machine_nozzle_size / 2, min(extruderValues('layer_height')))" }, "line_width": { "value": "machine_nozzle_size * 1.125" }, "machine_acceleration": { "default_value": 1500 }, "machine_depth": { "default_value": 250 }, From e3b00b85e0083e0423b7bb30c487d92b2f308954 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Tue, 3 Sep 2024 09:24:47 -0400 Subject: [PATCH 011/200] Update machine_acceleration to match machine_max_acceleration --- resources/definitions/voron2_base.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index d0cb600f69..4541c9ace8 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -42,7 +42,7 @@ "jerk_enabled": { "default_value": false }, "layer_height_0": { "resolve": "max(machine_nozzle_size / 2, min(extruderValues('layer_height')))" }, "line_width": { "value": "machine_nozzle_size * 1.125" }, - "machine_acceleration": { "default_value": 1500 }, + "machine_acceleration": { "default_value": 3000 }, "machine_depth": { "default_value": 250 }, "machine_end_gcode": { "default_value": "print_end" }, "machine_endstop_positive_direction_x": { "default_value": true }, From fe4ae91b0e6d161322a8513ee60b87f40a4959f9 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Tue, 3 Sep 2024 09:39:37 -0400 Subject: [PATCH 012/200] Fix cool_min_speed lower limit --- resources/definitions/voron2_base.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 4541c9ace8..ac5e60e96a 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -34,7 +34,7 @@ "cool_fan_speed_min": { "value": "cool_fan_speed" }, "cool_min_layer_time": { "default_value": 15 }, "cool_min_layer_time_fan_speed_max": { "default_value": 20 }, - "cool_min_speed": { "value": "min(speed_print_layer_0, round(speed_wall_0 * 3 / 4) if cool_lift_head else round(speed_wall_0 / 5))" }, + "cool_min_speed": { "value": "max(speed_print_layer_0, round(speed_wall_0 * 3 / 4) if cool_lift_head else round(speed_wall_0 / 2))" }, "fill_outline_gaps": { "default_value": true }, "gantry_height": { "value": 30 }, "infill_before_walls": { "default_value": false }, From 181d378cfe00ca867917b685c44fc66e413b919c Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Tue, 3 Sep 2024 11:00:07 -0400 Subject: [PATCH 013/200] Revert "Experimental: simplified speed definitions to take advantage of defaults" This reverts commit dbc031f4f1373663c2942f40cd7f4be455bf9cd6. --- resources/definitions/voron2_base.def.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index ac5e60e96a..2b25935b23 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -96,13 +96,19 @@ }, "roofing_layer_count": { "value": 1 }, "skirt_brim_minimal_length": { "default_value": 550 }, - "speed_infill": { "value": "math.ceil(speed_print * 1.5)" }, + "speed_layer_0": { "value": "math.ceil(speed_print * 0.25)" }, + "speed_roofing": { "value": "math.ceil(speed_print * 0.33)" }, "speed_slowdown_layers": { "default_value": 4 }, + "speed_topbottom": { "value": "math.ceil(speed_print * 0.33)" }, "speed_travel": { "maximum_value_warning": "math.ceil((machine_max_feedrate_x + machine_max_feedrate_y) / 200) * 100 + 1", "value": "speed_print if magic_spiralize else round((machine_max_feedrate_x + machine_max_feedrate_y) / 200) * 100" }, + "speed_travel_layer_0": { "value": "math.ceil(speed_travel * 0.4)" }, + "speed_wall": { "value": "math.ceil(speed_print * 0.33)" }, + "speed_wall_0": { "value": "math.ceil(speed_print * 0.33)" }, + "speed_wall_x": { "value": "math.ceil(speed_print * 0.66)" }, "travel_avoid_other_parts": { "default_value": false }, "wall_line_width": { "value": "machine_nozzle_size" }, "wall_overhang_angle": { "default_value": 75 }, From a21c88f82c6fa3a81ae61cf879045583432ff814 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Tue, 3 Sep 2024 11:04:18 -0400 Subject: [PATCH 014/200] Set z-hop speed to max feedrate --- resources/definitions/voron2_base.def.json | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 2b25935b23..90f5998eb2 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -109,6 +109,7 @@ "speed_wall": { "value": "math.ceil(speed_print * 0.33)" }, "speed_wall_0": { "value": "math.ceil(speed_print * 0.33)" }, "speed_wall_x": { "value": "math.ceil(speed_print * 0.66)" }, + "speed_z_hop": { "value": "machine_max_feedrate_z" }, "travel_avoid_other_parts": { "default_value": false }, "wall_line_width": { "value": "machine_nozzle_size" }, "wall_overhang_angle": { "default_value": 75 }, From c11d42ec7a4ef7c7cdddb666a0140c46cfaadb16 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Tue, 3 Sep 2024 13:42:16 -0400 Subject: [PATCH 015/200] Simplified speeds in voron base definition to use values inherited from fdmprinter.def.json --- resources/definitions/voron2_base.def.json | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 90f5998eb2..212a1068b8 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -96,19 +96,13 @@ }, "roofing_layer_count": { "value": 1 }, "skirt_brim_minimal_length": { "default_value": 550 }, - "speed_layer_0": { "value": "math.ceil(speed_print * 0.25)" }, - "speed_roofing": { "value": "math.ceil(speed_print * 0.33)" }, + "speed_infill": { "value": "speed_print * 1.5" }, "speed_slowdown_layers": { "default_value": 4 }, - "speed_topbottom": { "value": "math.ceil(speed_print * 0.33)" }, "speed_travel": { "maximum_value_warning": "math.ceil((machine_max_feedrate_x + machine_max_feedrate_y) / 200) * 100 + 1", "value": "speed_print if magic_spiralize else round((machine_max_feedrate_x + machine_max_feedrate_y) / 200) * 100" }, - "speed_travel_layer_0": { "value": "math.ceil(speed_travel * 0.4)" }, - "speed_wall": { "value": "math.ceil(speed_print * 0.33)" }, - "speed_wall_0": { "value": "math.ceil(speed_print * 0.33)" }, - "speed_wall_x": { "value": "math.ceil(speed_print * 0.66)" }, "speed_z_hop": { "value": "machine_max_feedrate_z" }, "travel_avoid_other_parts": { "default_value": false }, "wall_line_width": { "value": "machine_nozzle_size" }, From b1595cd6c6e7a03fc242c5fe9d261a77a195c823 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Tue, 3 Sep 2024 13:43:01 -0400 Subject: [PATCH 016/200] Update global quality profiles to calculate speed using volumetric flow --- .../quality/voron2/voron2_global_extrafast_quality.inst.cfg | 1 + .../quality/voron2/voron2_global_extrafine_quality.inst.cfg | 1 + resources/quality/voron2/voron2_global_fast_quality.inst.cfg | 1 + resources/quality/voron2/voron2_global_fine_quality.inst.cfg | 1 + resources/quality/voron2/voron2_global_normal_quality.inst.cfg | 1 + resources/quality/voron2/voron2_global_sprint_quality.inst.cfg | 1 + .../quality/voron2/voron2_global_supersprint_quality.inst.cfg | 1 + .../quality/voron2/voron2_global_ultrasprint_quality.inst.cfg | 1 + 8 files changed, 8 insertions(+) diff --git a/resources/quality/voron2/voron2_global_extrafast_quality.inst.cfg b/resources/quality/voron2/voron2_global_extrafast_quality.inst.cfg index d1c3338e9e..4c23b51278 100644 --- a/resources/quality/voron2/voron2_global_extrafast_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_extrafast_quality.inst.cfg @@ -11,4 +11,5 @@ type = quality [values] layer_height = 0.3 +speed_print = round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_global_extrafine_quality.inst.cfg b/resources/quality/voron2/voron2_global_extrafine_quality.inst.cfg index eaa1ab94a9..5f66456612 100644 --- a/resources/quality/voron2/voron2_global_extrafine_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_extrafine_quality.inst.cfg @@ -11,4 +11,5 @@ type = quality [values] layer_height = 0.06 +speed_print = round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_global_fast_quality.inst.cfg b/resources/quality/voron2/voron2_global_fast_quality.inst.cfg index 68d875074a..a20c07c682 100644 --- a/resources/quality/voron2/voron2_global_fast_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_fast_quality.inst.cfg @@ -11,4 +11,5 @@ type = quality [values] layer_height = 0.2 +speed_print = round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_global_fine_quality.inst.cfg b/resources/quality/voron2/voron2_global_fine_quality.inst.cfg index 28f798ac3c..d4d2269362 100644 --- a/resources/quality/voron2/voron2_global_fine_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_fine_quality.inst.cfg @@ -11,4 +11,5 @@ type = quality [values] layer_height = 0.1 +speed_print = round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_global_normal_quality.inst.cfg b/resources/quality/voron2/voron2_global_normal_quality.inst.cfg index 4da5a189bc..bfb8b20025 100644 --- a/resources/quality/voron2/voron2_global_normal_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_normal_quality.inst.cfg @@ -11,4 +11,5 @@ type = quality [values] layer_height = 0.15 +speed_print = round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_global_sprint_quality.inst.cfg b/resources/quality/voron2/voron2_global_sprint_quality.inst.cfg index 601f2e7938..45ab8ba9ad 100644 --- a/resources/quality/voron2/voron2_global_sprint_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_sprint_quality.inst.cfg @@ -11,4 +11,5 @@ type = quality [values] layer_height = 0.4 +speed_print = round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_global_supersprint_quality.inst.cfg b/resources/quality/voron2/voron2_global_supersprint_quality.inst.cfg index 73c001a0c0..29188e3a24 100644 --- a/resources/quality/voron2/voron2_global_supersprint_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_supersprint_quality.inst.cfg @@ -11,4 +11,5 @@ type = quality [values] layer_height = 0.5 +speed_print = round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_global_ultrasprint_quality.inst.cfg b/resources/quality/voron2/voron2_global_ultrasprint_quality.inst.cfg index f0e8f84207..6e32437c15 100644 --- a/resources/quality/voron2/voron2_global_ultrasprint_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_ultrasprint_quality.inst.cfg @@ -11,4 +11,5 @@ type = quality [values] layer_height = 0.6 +speed_print = round(6.4 / layer_height / machine_nozzle_size, -1) From 0a3a156eb28dc6abbef8caa69e540ef894b93bfe Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Tue, 3 Sep 2024 13:43:24 -0400 Subject: [PATCH 017/200] Simplify travel speed calculation --- resources/definitions/voron2_base.def.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 212a1068b8..f9b66c6ceb 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -97,11 +97,12 @@ "roofing_layer_count": { "value": 1 }, "skirt_brim_minimal_length": { "default_value": 550 }, "speed_infill": { "value": "speed_print * 1.5" }, + "speed_layer_0": { "value": "speed_print * 3 / 8" }, "speed_slowdown_layers": { "default_value": 4 }, "speed_travel": { - "maximum_value_warning": "math.ceil((machine_max_feedrate_x + machine_max_feedrate_y) / 200) * 100 + 1", - "value": "speed_print if magic_spiralize else round((machine_max_feedrate_x + machine_max_feedrate_y) / 200) * 100" + "maximum_value_warning": "round((machine_max_feedrate_x + machine_max_feedrate_y) / 2, -2) + 1", + "value": "speed_print if magic_spiralize else round((machine_max_feedrate_x + machine_max_feedrate_y) / 2, -2)" }, "speed_z_hop": { "value": "machine_max_feedrate_z" }, "travel_avoid_other_parts": { "default_value": false }, From cd4f7c453cb36f38ce7196f85b49446df376ac8f Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Tue, 3 Sep 2024 13:45:37 -0400 Subject: [PATCH 018/200] Update v6 quality profiles to use speeds inherited from the global profiles --- resources/quality/voron2/voron2_v6_0.25_ABS_extrafine.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.25_ABS_fast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.25_ABS_fine.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.25_ABS_normal.inst.cfg | 2 -- .../quality/voron2/voron2_v6_0.25_Nylon_extrafine.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.25_Nylon_fast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.25_Nylon_fine.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.25_Nylon_normal.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.25_PC_extrafine.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.25_PC_fast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.25_PC_fine.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.25_PC_normal.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.25_PETG_extrafine.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.25_PETG_fast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.25_PETG_fine.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.25_PETG_normal.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.25_PLA_extrafine.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.25_PLA_fast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.25_PLA_fine.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.25_PLA_normal.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.30_ABS_extrafine.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.30_ABS_fast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.30_ABS_fine.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.30_ABS_normal.inst.cfg | 2 -- .../quality/voron2/voron2_v6_0.30_Nylon_extrafine.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.30_Nylon_fast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.30_Nylon_fine.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.30_Nylon_normal.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.30_PC_extrafine.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.30_PC_fast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.30_PC_fine.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.30_PC_normal.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.30_PETG_extrafine.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.30_PETG_fast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.30_PETG_fine.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.30_PETG_normal.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.30_PLA_extrafine.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.30_PLA_fast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.30_PLA_fine.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.30_PLA_normal.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.35_ABS_fast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.35_ABS_fine.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.35_ABS_normal.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.35_Nylon_fast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.35_Nylon_fine.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.35_Nylon_normal.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.35_PC_fast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.35_PC_fine.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.35_PC_normal.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.35_PETG_fast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.35_PETG_fine.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.35_PETG_normal.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.35_PLA_fast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.35_PLA_fine.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.35_PLA_normal.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.40_ABS_extrafast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.40_ABS_fast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.40_ABS_fine.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.40_ABS_normal.inst.cfg | 2 -- .../quality/voron2/voron2_v6_0.40_Nylon_extrafast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.40_Nylon_fast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.40_Nylon_fine.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.40_Nylon_normal.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.40_PC_extrafast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.40_PC_fast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.40_PC_fine.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.40_PC_normal.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.40_PETG_extrafast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.40_PETG_fast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.40_PETG_fine.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.40_PETG_normal.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.40_PLA_extrafast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.40_PLA_fast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.40_PLA_fine.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.40_PLA_normal.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.50_ABS_extrafast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.50_ABS_fast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.50_ABS_normal.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.50_ABS_sprint.inst.cfg | 2 -- .../quality/voron2/voron2_v6_0.50_Nylon_extrafast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.50_Nylon_fast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.50_Nylon_normal.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.50_Nylon_sprint.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.50_PC_extrafast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.50_PC_fast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.50_PC_normal.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.50_PC_sprint.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.50_PETG_extrafast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.50_PETG_fast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.50_PETG_normal.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.50_PETG_sprint.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.50_PLA_extrafast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.50_PLA_fast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.50_PLA_normal.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.50_PLA_sprint.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.60_ABS_extrafast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.60_ABS_fast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.60_ABS_sprint.inst.cfg | 2 -- .../quality/voron2/voron2_v6_0.60_Nylon_extrafast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.60_Nylon_fast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.60_Nylon_sprint.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.60_PC_extrafast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.60_PC_fast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.60_PC_sprint.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.60_PETG_extrafast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.60_PETG_fast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.60_PETG_sprint.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.60_PLA_extrafast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.60_PLA_fast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.60_PLA_sprint.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.80_ABS_extrafast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.80_ABS_sprint.inst.cfg | 2 -- .../quality/voron2/voron2_v6_0.80_ABS_supersprint.inst.cfg | 2 -- .../quality/voron2/voron2_v6_0.80_Nylon_extrafast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.80_Nylon_sprint.inst.cfg | 2 -- .../quality/voron2/voron2_v6_0.80_Nylon_supersprint.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.80_PC_extrafast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.80_PC_sprint.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.80_PC_supersprint.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.80_PETG_extrafast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.80_PETG_sprint.inst.cfg | 2 -- .../quality/voron2/voron2_v6_0.80_PETG_supersprint.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.80_PLA_extrafast.inst.cfg | 2 -- resources/quality/voron2/voron2_v6_0.80_PLA_sprint.inst.cfg | 2 -- .../quality/voron2/voron2_v6_0.80_PLA_supersprint.inst.cfg | 2 -- 125 files changed, 250 deletions(-) diff --git a/resources/quality/voron2/voron2_v6_0.25_ABS_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_ABS_extrafine.inst.cfg index 807fe41ed8..cda16502ec 100644 --- a/resources/quality/voron2/voron2_v6_0.25_ABS_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_ABS_extrafine.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.25mm [values] -speed_print = 300 - diff --git a/resources/quality/voron2/voron2_v6_0.25_ABS_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_ABS_fast.inst.cfg index cb536784b9..2618a1962d 100644 --- a/resources/quality/voron2/voron2_v6_0.25_ABS_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_ABS_fast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.25mm [values] -speed_print = 180 - diff --git a/resources/quality/voron2/voron2_v6_0.25_ABS_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_ABS_fine.inst.cfg index 34b45927ef..3824df4e90 100644 --- a/resources/quality/voron2/voron2_v6_0.25_ABS_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_ABS_fine.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.25mm [values] -speed_print = 300 - diff --git a/resources/quality/voron2/voron2_v6_0.25_ABS_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_ABS_normal.inst.cfg index ff77c263f5..91ed394514 100644 --- a/resources/quality/voron2/voron2_v6_0.25_ABS_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_ABS_normal.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.25mm [values] -speed_print = 240 - diff --git a/resources/quality/voron2/voron2_v6_0.25_Nylon_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_Nylon_extrafine.inst.cfg index d239904200..bc7ef28ea6 100644 --- a/resources/quality/voron2/voron2_v6_0.25_Nylon_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_Nylon_extrafine.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.25mm [values] -speed_print = 300 - diff --git a/resources/quality/voron2/voron2_v6_0.25_Nylon_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_Nylon_fast.inst.cfg index f12c40aff3..d7ff9e8f66 100644 --- a/resources/quality/voron2/voron2_v6_0.25_Nylon_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_Nylon_fast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.25mm [values] -speed_print = 180 - diff --git a/resources/quality/voron2/voron2_v6_0.25_Nylon_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_Nylon_fine.inst.cfg index 6bc2d68be4..96816b8276 100644 --- a/resources/quality/voron2/voron2_v6_0.25_Nylon_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_Nylon_fine.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.25mm [values] -speed_print = 300 - diff --git a/resources/quality/voron2/voron2_v6_0.25_Nylon_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_Nylon_normal.inst.cfg index 6a0a63e7c8..92db58120c 100644 --- a/resources/quality/voron2/voron2_v6_0.25_Nylon_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_Nylon_normal.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.25mm [values] -speed_print = 240 - diff --git a/resources/quality/voron2/voron2_v6_0.25_PC_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_PC_extrafine.inst.cfg index 8518310a7e..85a94a49f1 100644 --- a/resources/quality/voron2/voron2_v6_0.25_PC_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_PC_extrafine.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.25mm [values] -speed_print = 300 - diff --git a/resources/quality/voron2/voron2_v6_0.25_PC_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_PC_fast.inst.cfg index 640856b1a3..4748484e9d 100644 --- a/resources/quality/voron2/voron2_v6_0.25_PC_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_PC_fast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.25mm [values] -speed_print = 180 - diff --git a/resources/quality/voron2/voron2_v6_0.25_PC_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_PC_fine.inst.cfg index 705d06eae4..77ae68132d 100644 --- a/resources/quality/voron2/voron2_v6_0.25_PC_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_PC_fine.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.25mm [values] -speed_print = 300 - diff --git a/resources/quality/voron2/voron2_v6_0.25_PC_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_PC_normal.inst.cfg index de7bdeb500..e12b46d2c2 100644 --- a/resources/quality/voron2/voron2_v6_0.25_PC_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_PC_normal.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.25mm [values] -speed_print = 240 - diff --git a/resources/quality/voron2/voron2_v6_0.25_PETG_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_PETG_extrafine.inst.cfg index a11e4262d0..d29f063a1e 100644 --- a/resources/quality/voron2/voron2_v6_0.25_PETG_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_PETG_extrafine.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.25mm [values] -speed_print = 300 - diff --git a/resources/quality/voron2/voron2_v6_0.25_PETG_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_PETG_fast.inst.cfg index 491d0834c9..f5ed74d773 100644 --- a/resources/quality/voron2/voron2_v6_0.25_PETG_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_PETG_fast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.25mm [values] -speed_print = 180 - diff --git a/resources/quality/voron2/voron2_v6_0.25_PETG_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_PETG_fine.inst.cfg index 9bdf9f755b..f02b1ac6e2 100644 --- a/resources/quality/voron2/voron2_v6_0.25_PETG_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_PETG_fine.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.25mm [values] -speed_print = 300 - diff --git a/resources/quality/voron2/voron2_v6_0.25_PETG_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_PETG_normal.inst.cfg index ad3591ebad..d095a26af4 100644 --- a/resources/quality/voron2/voron2_v6_0.25_PETG_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_PETG_normal.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.25mm [values] -speed_print = 240 - diff --git a/resources/quality/voron2/voron2_v6_0.25_PLA_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_PLA_extrafine.inst.cfg index 4f10836289..acf97053ce 100644 --- a/resources/quality/voron2/voron2_v6_0.25_PLA_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_PLA_extrafine.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.25mm [values] -speed_print = 300 - diff --git a/resources/quality/voron2/voron2_v6_0.25_PLA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_PLA_fast.inst.cfg index 8f13a10f46..ea5445dc8b 100644 --- a/resources/quality/voron2/voron2_v6_0.25_PLA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_PLA_fast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.25mm [values] -speed_print = 180 - diff --git a/resources/quality/voron2/voron2_v6_0.25_PLA_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_PLA_fine.inst.cfg index f7f934ebae..68fbd8dcfb 100644 --- a/resources/quality/voron2/voron2_v6_0.25_PLA_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_PLA_fine.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.25mm [values] -speed_print = 300 - diff --git a/resources/quality/voron2/voron2_v6_0.25_PLA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_PLA_normal.inst.cfg index 7611969448..1f9e6aef75 100644 --- a/resources/quality/voron2/voron2_v6_0.25_PLA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_PLA_normal.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.25mm [values] -speed_print = 240 - diff --git a/resources/quality/voron2/voron2_v6_0.30_ABS_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_ABS_extrafine.inst.cfg index 77cfd3a2cb..7522f9af45 100644 --- a/resources/quality/voron2/voron2_v6_0.30_ABS_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_ABS_extrafine.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.30mm [values] -speed_print = 300 - diff --git a/resources/quality/voron2/voron2_v6_0.30_ABS_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_ABS_fast.inst.cfg index 14147f9d2a..70a00d9bf0 100644 --- a/resources/quality/voron2/voron2_v6_0.30_ABS_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_ABS_fast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.30mm [values] -speed_print = 160 - diff --git a/resources/quality/voron2/voron2_v6_0.30_ABS_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_ABS_fine.inst.cfg index 08db73af24..fa1f96b914 100644 --- a/resources/quality/voron2/voron2_v6_0.30_ABS_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_ABS_fine.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.30mm [values] -speed_print = 300 - diff --git a/resources/quality/voron2/voron2_v6_0.30_ABS_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_ABS_normal.inst.cfg index a23bf4a3b7..90b10ac785 100644 --- a/resources/quality/voron2/voron2_v6_0.30_ABS_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_ABS_normal.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.30mm [values] -speed_print = 200 - diff --git a/resources/quality/voron2/voron2_v6_0.30_Nylon_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_Nylon_extrafine.inst.cfg index 38fb11d419..4b0f67d4f8 100644 --- a/resources/quality/voron2/voron2_v6_0.30_Nylon_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_Nylon_extrafine.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.30mm [values] -speed_print = 300 - diff --git a/resources/quality/voron2/voron2_v6_0.30_Nylon_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_Nylon_fast.inst.cfg index 33fd3dac2f..12590a2a0c 100644 --- a/resources/quality/voron2/voron2_v6_0.30_Nylon_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_Nylon_fast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.30mm [values] -speed_print = 160 - diff --git a/resources/quality/voron2/voron2_v6_0.30_Nylon_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_Nylon_fine.inst.cfg index 24c351401d..d000d52cad 100644 --- a/resources/quality/voron2/voron2_v6_0.30_Nylon_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_Nylon_fine.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.30mm [values] -speed_print = 300 - diff --git a/resources/quality/voron2/voron2_v6_0.30_Nylon_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_Nylon_normal.inst.cfg index 406ce90e29..70844d3a13 100644 --- a/resources/quality/voron2/voron2_v6_0.30_Nylon_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_Nylon_normal.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.30mm [values] -speed_print = 200 - diff --git a/resources/quality/voron2/voron2_v6_0.30_PC_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_PC_extrafine.inst.cfg index 61e1ec3a7e..b99f9eb061 100644 --- a/resources/quality/voron2/voron2_v6_0.30_PC_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_PC_extrafine.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.30mm [values] -speed_print = 300 - diff --git a/resources/quality/voron2/voron2_v6_0.30_PC_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_PC_fast.inst.cfg index 030fabf15f..774b610fda 100644 --- a/resources/quality/voron2/voron2_v6_0.30_PC_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_PC_fast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.30mm [values] -speed_print = 160 - diff --git a/resources/quality/voron2/voron2_v6_0.30_PC_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_PC_fine.inst.cfg index 2224d795bf..b208c1d33d 100644 --- a/resources/quality/voron2/voron2_v6_0.30_PC_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_PC_fine.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.30mm [values] -speed_print = 300 - diff --git a/resources/quality/voron2/voron2_v6_0.30_PC_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_PC_normal.inst.cfg index 3d9349daa0..a2435ca262 100644 --- a/resources/quality/voron2/voron2_v6_0.30_PC_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_PC_normal.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.30mm [values] -speed_print = 200 - diff --git a/resources/quality/voron2/voron2_v6_0.30_PETG_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_PETG_extrafine.inst.cfg index 8e2a03761c..92dab746a2 100644 --- a/resources/quality/voron2/voron2_v6_0.30_PETG_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_PETG_extrafine.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.30mm [values] -speed_print = 300 - diff --git a/resources/quality/voron2/voron2_v6_0.30_PETG_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_PETG_fast.inst.cfg index 9dd178f0f3..58e42be49e 100644 --- a/resources/quality/voron2/voron2_v6_0.30_PETG_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_PETG_fast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.30mm [values] -speed_print = 160 - diff --git a/resources/quality/voron2/voron2_v6_0.30_PETG_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_PETG_fine.inst.cfg index fcf74f3a4c..36908de396 100644 --- a/resources/quality/voron2/voron2_v6_0.30_PETG_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_PETG_fine.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.30mm [values] -speed_print = 300 - diff --git a/resources/quality/voron2/voron2_v6_0.30_PETG_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_PETG_normal.inst.cfg index 20ff970fc6..11d5a385c6 100644 --- a/resources/quality/voron2/voron2_v6_0.30_PETG_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_PETG_normal.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.30mm [values] -speed_print = 200 - diff --git a/resources/quality/voron2/voron2_v6_0.30_PLA_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_PLA_extrafine.inst.cfg index b3795a3ef5..ba2024ca05 100644 --- a/resources/quality/voron2/voron2_v6_0.30_PLA_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_PLA_extrafine.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.30mm [values] -speed_print = 300 - diff --git a/resources/quality/voron2/voron2_v6_0.30_PLA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_PLA_fast.inst.cfg index 965d900bbb..e39044b983 100644 --- a/resources/quality/voron2/voron2_v6_0.30_PLA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_PLA_fast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.30mm [values] -speed_print = 160 - diff --git a/resources/quality/voron2/voron2_v6_0.30_PLA_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_PLA_fine.inst.cfg index 65aa7f0343..cb02a35a09 100644 --- a/resources/quality/voron2/voron2_v6_0.30_PLA_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_PLA_fine.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.30mm [values] -speed_print = 300 - diff --git a/resources/quality/voron2/voron2_v6_0.30_PLA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_PLA_normal.inst.cfg index 2a57475a78..a08c743735 100644 --- a/resources/quality/voron2/voron2_v6_0.30_PLA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_PLA_normal.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.30mm [values] -speed_print = 200 - diff --git a/resources/quality/voron2/voron2_v6_0.35_ABS_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_ABS_fast.inst.cfg index 7846447eb7..2a605cc74a 100644 --- a/resources/quality/voron2/voron2_v6_0.35_ABS_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_ABS_fast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.35mm [values] -speed_print = 135 - diff --git a/resources/quality/voron2/voron2_v6_0.35_ABS_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_ABS_fine.inst.cfg index 015a9c9aae..e32b7afca7 100644 --- a/resources/quality/voron2/voron2_v6_0.35_ABS_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_ABS_fine.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.35mm [values] -speed_print = 270 - diff --git a/resources/quality/voron2/voron2_v6_0.35_ABS_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_ABS_normal.inst.cfg index 87389e8e22..5ca9f00dca 100644 --- a/resources/quality/voron2/voron2_v6_0.35_ABS_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_ABS_normal.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.35mm [values] -speed_print = 180 - diff --git a/resources/quality/voron2/voron2_v6_0.35_Nylon_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_Nylon_fast.inst.cfg index 2516c35941..023d20436a 100644 --- a/resources/quality/voron2/voron2_v6_0.35_Nylon_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_Nylon_fast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.35mm [values] -speed_print = 135 - diff --git a/resources/quality/voron2/voron2_v6_0.35_Nylon_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_Nylon_fine.inst.cfg index 03c36126e3..c2877c648d 100644 --- a/resources/quality/voron2/voron2_v6_0.35_Nylon_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_Nylon_fine.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.35mm [values] -speed_print = 270 - diff --git a/resources/quality/voron2/voron2_v6_0.35_Nylon_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_Nylon_normal.inst.cfg index 755376e626..7eaf9af36f 100644 --- a/resources/quality/voron2/voron2_v6_0.35_Nylon_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_Nylon_normal.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.35mm [values] -speed_print = 180 - diff --git a/resources/quality/voron2/voron2_v6_0.35_PC_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_PC_fast.inst.cfg index 0852b1bf54..a8536a9d98 100644 --- a/resources/quality/voron2/voron2_v6_0.35_PC_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_PC_fast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.35mm [values] -speed_print = 135 - diff --git a/resources/quality/voron2/voron2_v6_0.35_PC_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_PC_fine.inst.cfg index 268ba62a65..31c821ad47 100644 --- a/resources/quality/voron2/voron2_v6_0.35_PC_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_PC_fine.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.35mm [values] -speed_print = 270 - diff --git a/resources/quality/voron2/voron2_v6_0.35_PC_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_PC_normal.inst.cfg index 51b4afc60a..9c9a332ff5 100644 --- a/resources/quality/voron2/voron2_v6_0.35_PC_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_PC_normal.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.35mm [values] -speed_print = 180 - diff --git a/resources/quality/voron2/voron2_v6_0.35_PETG_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_PETG_fast.inst.cfg index 1f08c7bc50..15ac466616 100644 --- a/resources/quality/voron2/voron2_v6_0.35_PETG_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_PETG_fast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.35mm [values] -speed_print = 135 - diff --git a/resources/quality/voron2/voron2_v6_0.35_PETG_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_PETG_fine.inst.cfg index facfc8056c..41ecf1f93d 100644 --- a/resources/quality/voron2/voron2_v6_0.35_PETG_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_PETG_fine.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.35mm [values] -speed_print = 270 - diff --git a/resources/quality/voron2/voron2_v6_0.35_PETG_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_PETG_normal.inst.cfg index 6661209790..5c021814ce 100644 --- a/resources/quality/voron2/voron2_v6_0.35_PETG_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_PETG_normal.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.35mm [values] -speed_print = 180 - diff --git a/resources/quality/voron2/voron2_v6_0.35_PLA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_PLA_fast.inst.cfg index c60ceef721..8947b21fbf 100644 --- a/resources/quality/voron2/voron2_v6_0.35_PLA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_PLA_fast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.35mm [values] -speed_print = 135 - diff --git a/resources/quality/voron2/voron2_v6_0.35_PLA_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_PLA_fine.inst.cfg index 0881d6ab96..d4580012f2 100644 --- a/resources/quality/voron2/voron2_v6_0.35_PLA_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_PLA_fine.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.35mm [values] -speed_print = 270 - diff --git a/resources/quality/voron2/voron2_v6_0.35_PLA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_PLA_normal.inst.cfg index 6bf236e0f9..393a1b6fb0 100644 --- a/resources/quality/voron2/voron2_v6_0.35_PLA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_PLA_normal.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.35mm [values] -speed_print = 180 - diff --git a/resources/quality/voron2/voron2_v6_0.40_ABS_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_ABS_extrafast.inst.cfg index 2db034efeb..8fbf52ce8d 100644 --- a/resources/quality/voron2/voron2_v6_0.40_ABS_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_ABS_extrafast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.40mm [values] -speed_print = 80 - diff --git a/resources/quality/voron2/voron2_v6_0.40_ABS_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_ABS_fast.inst.cfg index 109f47e2ed..01a90e2d1b 100644 --- a/resources/quality/voron2/voron2_v6_0.40_ABS_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_ABS_fast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.40mm [values] -speed_print = 120 - diff --git a/resources/quality/voron2/voron2_v6_0.40_ABS_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_ABS_fine.inst.cfg index d2c90a076d..5c2635410b 100644 --- a/resources/quality/voron2/voron2_v6_0.40_ABS_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_ABS_fine.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.40mm [values] -speed_print = 240 - diff --git a/resources/quality/voron2/voron2_v6_0.40_ABS_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_ABS_normal.inst.cfg index 190acad43c..1a84513545 100644 --- a/resources/quality/voron2/voron2_v6_0.40_ABS_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_ABS_normal.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.40mm [values] -speed_print = 160 - diff --git a/resources/quality/voron2/voron2_v6_0.40_Nylon_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_Nylon_extrafast.inst.cfg index d5aa229407..9632a02df1 100644 --- a/resources/quality/voron2/voron2_v6_0.40_Nylon_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_Nylon_extrafast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.40mm [values] -speed_print = 80 - diff --git a/resources/quality/voron2/voron2_v6_0.40_Nylon_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_Nylon_fast.inst.cfg index 5b36de7fbf..240491a90e 100644 --- a/resources/quality/voron2/voron2_v6_0.40_Nylon_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_Nylon_fast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.40mm [values] -speed_print = 120 - diff --git a/resources/quality/voron2/voron2_v6_0.40_Nylon_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_Nylon_fine.inst.cfg index 191c3b638a..253cbfa936 100644 --- a/resources/quality/voron2/voron2_v6_0.40_Nylon_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_Nylon_fine.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.40mm [values] -speed_print = 240 - diff --git a/resources/quality/voron2/voron2_v6_0.40_Nylon_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_Nylon_normal.inst.cfg index 29c8875cea..833921c18a 100644 --- a/resources/quality/voron2/voron2_v6_0.40_Nylon_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_Nylon_normal.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.40mm [values] -speed_print = 160 - diff --git a/resources/quality/voron2/voron2_v6_0.40_PC_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_PC_extrafast.inst.cfg index 62f9aa7c61..030f2b39fa 100644 --- a/resources/quality/voron2/voron2_v6_0.40_PC_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_PC_extrafast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.40mm [values] -speed_print = 80 - diff --git a/resources/quality/voron2/voron2_v6_0.40_PC_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_PC_fast.inst.cfg index 8527ebc5e0..e050bcd57b 100644 --- a/resources/quality/voron2/voron2_v6_0.40_PC_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_PC_fast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.40mm [values] -speed_print = 120 - diff --git a/resources/quality/voron2/voron2_v6_0.40_PC_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_PC_fine.inst.cfg index de2688f502..c0f8ba55eb 100644 --- a/resources/quality/voron2/voron2_v6_0.40_PC_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_PC_fine.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.40mm [values] -speed_print = 240 - diff --git a/resources/quality/voron2/voron2_v6_0.40_PC_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_PC_normal.inst.cfg index 2c310f8cdf..5e5f5028f8 100644 --- a/resources/quality/voron2/voron2_v6_0.40_PC_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_PC_normal.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.40mm [values] -speed_print = 160 - diff --git a/resources/quality/voron2/voron2_v6_0.40_PETG_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_PETG_extrafast.inst.cfg index 7823e91054..e7bd4a96bd 100644 --- a/resources/quality/voron2/voron2_v6_0.40_PETG_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_PETG_extrafast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.40mm [values] -speed_print = 80 - diff --git a/resources/quality/voron2/voron2_v6_0.40_PETG_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_PETG_fast.inst.cfg index 72395f4992..db7556c684 100644 --- a/resources/quality/voron2/voron2_v6_0.40_PETG_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_PETG_fast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.40mm [values] -speed_print = 120 - diff --git a/resources/quality/voron2/voron2_v6_0.40_PETG_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_PETG_fine.inst.cfg index f89dd4482d..5e0425557e 100644 --- a/resources/quality/voron2/voron2_v6_0.40_PETG_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_PETG_fine.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.40mm [values] -speed_print = 240 - diff --git a/resources/quality/voron2/voron2_v6_0.40_PETG_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_PETG_normal.inst.cfg index e39dc24194..4291dd189b 100644 --- a/resources/quality/voron2/voron2_v6_0.40_PETG_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_PETG_normal.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.40mm [values] -speed_print = 160 - diff --git a/resources/quality/voron2/voron2_v6_0.40_PLA_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_PLA_extrafast.inst.cfg index bc279381b5..573dbdf2fe 100644 --- a/resources/quality/voron2/voron2_v6_0.40_PLA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_PLA_extrafast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.40mm [values] -speed_print = 80 - diff --git a/resources/quality/voron2/voron2_v6_0.40_PLA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_PLA_fast.inst.cfg index d2bda88545..e2e2000a81 100644 --- a/resources/quality/voron2/voron2_v6_0.40_PLA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_PLA_fast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.40mm [values] -speed_print = 120 - diff --git a/resources/quality/voron2/voron2_v6_0.40_PLA_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_PLA_fine.inst.cfg index 812bb23383..3da2634700 100644 --- a/resources/quality/voron2/voron2_v6_0.40_PLA_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_PLA_fine.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.40mm [values] -speed_print = 240 - diff --git a/resources/quality/voron2/voron2_v6_0.40_PLA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_PLA_normal.inst.cfg index a0225cdf3c..586bf40f9c 100644 --- a/resources/quality/voron2/voron2_v6_0.40_PLA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_PLA_normal.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.40mm [values] -speed_print = 160 - diff --git a/resources/quality/voron2/voron2_v6_0.50_ABS_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_ABS_extrafast.inst.cfg index 32dcd984dc..109e7fe7ea 100644 --- a/resources/quality/voron2/voron2_v6_0.50_ABS_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_ABS_extrafast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.50mm [values] -speed_print = 60 - diff --git a/resources/quality/voron2/voron2_v6_0.50_ABS_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_ABS_fast.inst.cfg index 6c6030bfb3..18bcea8b6a 100644 --- a/resources/quality/voron2/voron2_v6_0.50_ABS_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_ABS_fast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.50mm [values] -speed_print = 90 - diff --git a/resources/quality/voron2/voron2_v6_0.50_ABS_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_ABS_normal.inst.cfg index 360ce976f6..087d5385cb 100644 --- a/resources/quality/voron2/voron2_v6_0.50_ABS_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_ABS_normal.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.50mm [values] -speed_print = 120 - diff --git a/resources/quality/voron2/voron2_v6_0.50_ABS_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_ABS_sprint.inst.cfg index 27d1008e36..5f33ff3cc7 100644 --- a/resources/quality/voron2/voron2_v6_0.50_ABS_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_ABS_sprint.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.50mm [values] -speed_print = 45 - diff --git a/resources/quality/voron2/voron2_v6_0.50_Nylon_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_Nylon_extrafast.inst.cfg index 4c6105e2fc..c1a0a34f26 100644 --- a/resources/quality/voron2/voron2_v6_0.50_Nylon_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_Nylon_extrafast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.50mm [values] -speed_print = 60 - diff --git a/resources/quality/voron2/voron2_v6_0.50_Nylon_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_Nylon_fast.inst.cfg index 78fb176a6e..e442afa2f4 100644 --- a/resources/quality/voron2/voron2_v6_0.50_Nylon_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_Nylon_fast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.50mm [values] -speed_print = 90 - diff --git a/resources/quality/voron2/voron2_v6_0.50_Nylon_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_Nylon_normal.inst.cfg index c6d8677655..661e08ee0a 100644 --- a/resources/quality/voron2/voron2_v6_0.50_Nylon_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_Nylon_normal.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.50mm [values] -speed_print = 120 - diff --git a/resources/quality/voron2/voron2_v6_0.50_Nylon_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_Nylon_sprint.inst.cfg index 13dfcbabd3..b45883fc35 100644 --- a/resources/quality/voron2/voron2_v6_0.50_Nylon_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_Nylon_sprint.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.50mm [values] -speed_print = 45 - diff --git a/resources/quality/voron2/voron2_v6_0.50_PC_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_PC_extrafast.inst.cfg index 1427d8af11..d6739b7822 100644 --- a/resources/quality/voron2/voron2_v6_0.50_PC_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_PC_extrafast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.50mm [values] -speed_print = 60 - diff --git a/resources/quality/voron2/voron2_v6_0.50_PC_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_PC_fast.inst.cfg index 7dd17ae462..d19809cc09 100644 --- a/resources/quality/voron2/voron2_v6_0.50_PC_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_PC_fast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.50mm [values] -speed_print = 90 - diff --git a/resources/quality/voron2/voron2_v6_0.50_PC_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_PC_normal.inst.cfg index 5aaee843ca..4e75db4261 100644 --- a/resources/quality/voron2/voron2_v6_0.50_PC_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_PC_normal.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.50mm [values] -speed_print = 120 - diff --git a/resources/quality/voron2/voron2_v6_0.50_PC_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_PC_sprint.inst.cfg index 3d0aa8c716..d25356fa55 100644 --- a/resources/quality/voron2/voron2_v6_0.50_PC_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_PC_sprint.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.50mm [values] -speed_print = 45 - diff --git a/resources/quality/voron2/voron2_v6_0.50_PETG_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_PETG_extrafast.inst.cfg index 848aaa56f8..b588db34a9 100644 --- a/resources/quality/voron2/voron2_v6_0.50_PETG_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_PETG_extrafast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.50mm [values] -speed_print = 60 - diff --git a/resources/quality/voron2/voron2_v6_0.50_PETG_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_PETG_fast.inst.cfg index 8146bf1668..7f5e55f797 100644 --- a/resources/quality/voron2/voron2_v6_0.50_PETG_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_PETG_fast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.50mm [values] -speed_print = 90 - diff --git a/resources/quality/voron2/voron2_v6_0.50_PETG_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_PETG_normal.inst.cfg index 946e15b3c7..dee49e6adf 100644 --- a/resources/quality/voron2/voron2_v6_0.50_PETG_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_PETG_normal.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.50mm [values] -speed_print = 120 - diff --git a/resources/quality/voron2/voron2_v6_0.50_PETG_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_PETG_sprint.inst.cfg index 6f05dbb9aa..fe483c037d 100644 --- a/resources/quality/voron2/voron2_v6_0.50_PETG_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_PETG_sprint.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.50mm [values] -speed_print = 45 - diff --git a/resources/quality/voron2/voron2_v6_0.50_PLA_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_PLA_extrafast.inst.cfg index 9596c888d5..4b62ee3b9e 100644 --- a/resources/quality/voron2/voron2_v6_0.50_PLA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_PLA_extrafast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.50mm [values] -speed_print = 60 - diff --git a/resources/quality/voron2/voron2_v6_0.50_PLA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_PLA_fast.inst.cfg index 578b7f4f12..d48117773b 100644 --- a/resources/quality/voron2/voron2_v6_0.50_PLA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_PLA_fast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.50mm [values] -speed_print = 90 - diff --git a/resources/quality/voron2/voron2_v6_0.50_PLA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_PLA_normal.inst.cfg index 0f9fdcdf29..b5680e23b0 100644 --- a/resources/quality/voron2/voron2_v6_0.50_PLA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_PLA_normal.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.50mm [values] -speed_print = 120 - diff --git a/resources/quality/voron2/voron2_v6_0.50_PLA_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_PLA_sprint.inst.cfg index 09b6be0fb0..c18adfaf99 100644 --- a/resources/quality/voron2/voron2_v6_0.50_PLA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_PLA_sprint.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.50mm [values] -speed_print = 45 - diff --git a/resources/quality/voron2/voron2_v6_0.60_ABS_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_ABS_extrafast.inst.cfg index d091e8eb3e..48f2611f2f 100644 --- a/resources/quality/voron2/voron2_v6_0.60_ABS_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_ABS_extrafast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.60mm [values] -speed_print = 50 - diff --git a/resources/quality/voron2/voron2_v6_0.60_ABS_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_ABS_fast.inst.cfg index ff5838849a..941e43eae5 100644 --- a/resources/quality/voron2/voron2_v6_0.60_ABS_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_ABS_fast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.60mm [values] -speed_print = 80 - diff --git a/resources/quality/voron2/voron2_v6_0.60_ABS_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_ABS_sprint.inst.cfg index d7c7a7da08..d7f9b72238 100644 --- a/resources/quality/voron2/voron2_v6_0.60_ABS_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_ABS_sprint.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.60mm [values] -speed_print = 40 - diff --git a/resources/quality/voron2/voron2_v6_0.60_Nylon_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_Nylon_extrafast.inst.cfg index bc86295891..7eabcffa7b 100644 --- a/resources/quality/voron2/voron2_v6_0.60_Nylon_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_Nylon_extrafast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.60mm [values] -speed_print = 50 - diff --git a/resources/quality/voron2/voron2_v6_0.60_Nylon_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_Nylon_fast.inst.cfg index 7c7beb32fa..7f8e3f45ab 100644 --- a/resources/quality/voron2/voron2_v6_0.60_Nylon_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_Nylon_fast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.60mm [values] -speed_print = 80 - diff --git a/resources/quality/voron2/voron2_v6_0.60_Nylon_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_Nylon_sprint.inst.cfg index 627f90a972..4d0161ac57 100644 --- a/resources/quality/voron2/voron2_v6_0.60_Nylon_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_Nylon_sprint.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.60mm [values] -speed_print = 40 - diff --git a/resources/quality/voron2/voron2_v6_0.60_PC_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_PC_extrafast.inst.cfg index 5343ff9dba..3021e7f93c 100644 --- a/resources/quality/voron2/voron2_v6_0.60_PC_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_PC_extrafast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.60mm [values] -speed_print = 50 - diff --git a/resources/quality/voron2/voron2_v6_0.60_PC_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_PC_fast.inst.cfg index 10644c60d9..af338cb0c0 100644 --- a/resources/quality/voron2/voron2_v6_0.60_PC_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_PC_fast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.60mm [values] -speed_print = 80 - diff --git a/resources/quality/voron2/voron2_v6_0.60_PC_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_PC_sprint.inst.cfg index 8cc8f02d7b..57f1a4e471 100644 --- a/resources/quality/voron2/voron2_v6_0.60_PC_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_PC_sprint.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.60mm [values] -speed_print = 40 - diff --git a/resources/quality/voron2/voron2_v6_0.60_PETG_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_PETG_extrafast.inst.cfg index 1e212ae713..8120f5c3eb 100644 --- a/resources/quality/voron2/voron2_v6_0.60_PETG_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_PETG_extrafast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.60mm [values] -speed_print = 50 - diff --git a/resources/quality/voron2/voron2_v6_0.60_PETG_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_PETG_fast.inst.cfg index 998805303c..df75d1f2b3 100644 --- a/resources/quality/voron2/voron2_v6_0.60_PETG_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_PETG_fast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.60mm [values] -speed_print = 80 - diff --git a/resources/quality/voron2/voron2_v6_0.60_PETG_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_PETG_sprint.inst.cfg index f07e9a9313..1c0ce10d06 100644 --- a/resources/quality/voron2/voron2_v6_0.60_PETG_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_PETG_sprint.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.60mm [values] -speed_print = 40 - diff --git a/resources/quality/voron2/voron2_v6_0.60_PLA_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_PLA_extrafast.inst.cfg index ad505c9243..3ad9a4cf1b 100644 --- a/resources/quality/voron2/voron2_v6_0.60_PLA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_PLA_extrafast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.60mm [values] -speed_print = 50 - diff --git a/resources/quality/voron2/voron2_v6_0.60_PLA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_PLA_fast.inst.cfg index 66c5fa28bb..83fa21f563 100644 --- a/resources/quality/voron2/voron2_v6_0.60_PLA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_PLA_fast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.60mm [values] -speed_print = 80 - diff --git a/resources/quality/voron2/voron2_v6_0.60_PLA_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_PLA_sprint.inst.cfg index 63721b8a69..6793f951c2 100644 --- a/resources/quality/voron2/voron2_v6_0.60_PLA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_PLA_sprint.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.60mm [values] -speed_print = 40 - diff --git a/resources/quality/voron2/voron2_v6_0.80_ABS_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_ABS_extrafast.inst.cfg index 75c1416018..f29a42579f 100644 --- a/resources/quality/voron2/voron2_v6_0.80_ABS_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_ABS_extrafast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.80mm [values] -speed_print = 40 - diff --git a/resources/quality/voron2/voron2_v6_0.80_ABS_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_ABS_sprint.inst.cfg index d1c87bb9b4..20a5fd710a 100644 --- a/resources/quality/voron2/voron2_v6_0.80_ABS_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_ABS_sprint.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.80mm [values] -speed_print = 30 - diff --git a/resources/quality/voron2/voron2_v6_0.80_ABS_supersprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_ABS_supersprint.inst.cfg index fbc56b53e0..bc6d22e7a0 100644 --- a/resources/quality/voron2/voron2_v6_0.80_ABS_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_ABS_supersprint.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.80mm [values] -speed_print = 24 - diff --git a/resources/quality/voron2/voron2_v6_0.80_Nylon_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_Nylon_extrafast.inst.cfg index 742d00a38c..382ac2f773 100644 --- a/resources/quality/voron2/voron2_v6_0.80_Nylon_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_Nylon_extrafast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.80mm [values] -speed_print = 40 - diff --git a/resources/quality/voron2/voron2_v6_0.80_Nylon_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_Nylon_sprint.inst.cfg index 842d4baa79..02a7e76bcf 100644 --- a/resources/quality/voron2/voron2_v6_0.80_Nylon_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_Nylon_sprint.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.80mm [values] -speed_print = 30 - diff --git a/resources/quality/voron2/voron2_v6_0.80_Nylon_supersprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_Nylon_supersprint.inst.cfg index 503edd35ff..13373edd93 100644 --- a/resources/quality/voron2/voron2_v6_0.80_Nylon_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_Nylon_supersprint.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.80mm [values] -speed_print = 24 - diff --git a/resources/quality/voron2/voron2_v6_0.80_PC_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_PC_extrafast.inst.cfg index 6e6d9d17cc..cb238563d8 100644 --- a/resources/quality/voron2/voron2_v6_0.80_PC_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_PC_extrafast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.80mm [values] -speed_print = 40 - diff --git a/resources/quality/voron2/voron2_v6_0.80_PC_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_PC_sprint.inst.cfg index 52984fb095..0d6e2bb7d3 100644 --- a/resources/quality/voron2/voron2_v6_0.80_PC_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_PC_sprint.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.80mm [values] -speed_print = 30 - diff --git a/resources/quality/voron2/voron2_v6_0.80_PC_supersprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_PC_supersprint.inst.cfg index 9d2e267a30..2d472d2061 100644 --- a/resources/quality/voron2/voron2_v6_0.80_PC_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_PC_supersprint.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.80mm [values] -speed_print = 24 - diff --git a/resources/quality/voron2/voron2_v6_0.80_PETG_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_PETG_extrafast.inst.cfg index 896f8af639..34a111825e 100644 --- a/resources/quality/voron2/voron2_v6_0.80_PETG_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_PETG_extrafast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.80mm [values] -speed_print = 40 - diff --git a/resources/quality/voron2/voron2_v6_0.80_PETG_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_PETG_sprint.inst.cfg index 27ffdc10ca..26149e3088 100644 --- a/resources/quality/voron2/voron2_v6_0.80_PETG_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_PETG_sprint.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.80mm [values] -speed_print = 30 - diff --git a/resources/quality/voron2/voron2_v6_0.80_PETG_supersprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_PETG_supersprint.inst.cfg index 103912cd5c..49631eabc7 100644 --- a/resources/quality/voron2/voron2_v6_0.80_PETG_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_PETG_supersprint.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.80mm [values] -speed_print = 24 - diff --git a/resources/quality/voron2/voron2_v6_0.80_PLA_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_PLA_extrafast.inst.cfg index 0dff83cd4b..d98e372ea1 100644 --- a/resources/quality/voron2/voron2_v6_0.80_PLA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_PLA_extrafast.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.80mm [values] -speed_print = 40 - diff --git a/resources/quality/voron2/voron2_v6_0.80_PLA_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_PLA_sprint.inst.cfg index 936f9c75c7..2cede8f3da 100644 --- a/resources/quality/voron2/voron2_v6_0.80_PLA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_PLA_sprint.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.80mm [values] -speed_print = 30 - diff --git a/resources/quality/voron2/voron2_v6_0.80_PLA_supersprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_PLA_supersprint.inst.cfg index 24800eb333..303fbc9b19 100644 --- a/resources/quality/voron2/voron2_v6_0.80_PLA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_PLA_supersprint.inst.cfg @@ -11,5 +11,3 @@ type = quality variant = V6 0.80mm [values] -speed_print = 24 - From eaf5491e7603dccd2d8d6d87334af4dd6124e311 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Tue, 3 Sep 2024 13:47:17 -0400 Subject: [PATCH 019/200] Update volcano profiles to using volumetric flow calculation --- .../quality/voron2/voron2_volcano_0.40_ABS_extrafast.inst.cfg | 3 +-- resources/quality/voron2/voron2_volcano_0.40_ABS_fast.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_0.40_ABS_normal.inst.cfg | 3 +-- .../voron2/voron2_volcano_0.40_Nylon_extrafast.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_0.40_Nylon_fast.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_0.40_Nylon_normal.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_0.40_PC_extrafast.inst.cfg | 3 +-- resources/quality/voron2/voron2_volcano_0.40_PC_fast.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_0.40_PC_normal.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_0.40_PETG_extrafast.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_0.40_PETG_fast.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_0.40_PETG_normal.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_0.40_PLA_extrafast.inst.cfg | 3 +-- resources/quality/voron2/voron2_volcano_0.40_PLA_fast.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_0.40_PLA_normal.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_0.60_ABS_extrafast.inst.cfg | 3 +-- resources/quality/voron2/voron2_volcano_0.60_ABS_fast.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_0.60_ABS_sprint.inst.cfg | 3 +-- .../voron2/voron2_volcano_0.60_Nylon_extrafast.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_0.60_Nylon_fast.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_0.60_Nylon_sprint.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_0.60_PC_extrafast.inst.cfg | 3 +-- resources/quality/voron2/voron2_volcano_0.60_PC_fast.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_0.60_PC_sprint.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_0.60_PETG_extrafast.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_0.60_PETG_fast.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_0.60_PETG_sprint.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_0.60_PLA_extrafast.inst.cfg | 3 +-- resources/quality/voron2/voron2_volcano_0.60_PLA_fast.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_0.60_PLA_sprint.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_0.80_ABS_extrafast.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_0.80_ABS_sprint.inst.cfg | 3 +-- .../voron2/voron2_volcano_0.80_ABS_supersprint.inst.cfg | 3 +-- .../voron2/voron2_volcano_0.80_Nylon_extrafast.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_0.80_Nylon_sprint.inst.cfg | 3 +-- .../voron2/voron2_volcano_0.80_Nylon_supersprint.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_0.80_PC_extrafast.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_0.80_PC_sprint.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_0.80_PC_supersprint.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_0.80_PETG_extrafast.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_0.80_PETG_sprint.inst.cfg | 3 +-- .../voron2/voron2_volcano_0.80_PETG_supersprint.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_0.80_PLA_extrafast.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_0.80_PLA_sprint.inst.cfg | 3 +-- .../voron2/voron2_volcano_0.80_PLA_supersprint.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_1.00_ABS_sprint.inst.cfg | 3 +-- .../voron2/voron2_volcano_1.00_ABS_supersprint.inst.cfg | 3 +-- .../voron2/voron2_volcano_1.00_ABS_ultrasprint.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_1.00_Nylon_sprint.inst.cfg | 3 +-- .../voron2/voron2_volcano_1.00_Nylon_supersprint.inst.cfg | 3 +-- .../voron2/voron2_volcano_1.00_Nylon_ultrasprint.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_1.00_PC_sprint.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_1.00_PC_supersprint.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_1.00_PC_ultrasprint.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_1.00_PETG_sprint.inst.cfg | 3 +-- .../voron2/voron2_volcano_1.00_PETG_supersprint.inst.cfg | 3 +-- .../voron2/voron2_volcano_1.00_PETG_ultrasprint.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_1.00_PLA_sprint.inst.cfg | 3 +-- .../voron2/voron2_volcano_1.00_PLA_supersprint.inst.cfg | 3 +-- .../voron2/voron2_volcano_1.00_PLA_ultrasprint.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_1.20_ABS_sprint.inst.cfg | 3 +-- .../voron2/voron2_volcano_1.20_ABS_supersprint.inst.cfg | 3 +-- .../voron2/voron2_volcano_1.20_ABS_ultrasprint.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_1.20_Nylon_sprint.inst.cfg | 3 +-- .../voron2/voron2_volcano_1.20_Nylon_supersprint.inst.cfg | 3 +-- .../voron2/voron2_volcano_1.20_Nylon_ultrasprint.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_1.20_PC_sprint.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_1.20_PC_supersprint.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_1.20_PC_ultrasprint.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_1.20_PETG_sprint.inst.cfg | 3 +-- .../voron2/voron2_volcano_1.20_PETG_supersprint.inst.cfg | 3 +-- .../voron2/voron2_volcano_1.20_PETG_ultrasprint.inst.cfg | 3 +-- .../quality/voron2/voron2_volcano_1.20_PLA_sprint.inst.cfg | 3 +-- .../voron2/voron2_volcano_1.20_PLA_supersprint.inst.cfg | 3 +-- .../voron2/voron2_volcano_1.20_PLA_ultrasprint.inst.cfg | 3 +-- 75 files changed, 75 insertions(+), 150 deletions(-) diff --git a/resources/quality/voron2/voron2_volcano_0.40_ABS_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_ABS_extrafast.inst.cfg index 97c0b3263c..2152dc1ca9 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_ABS_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_ABS_extrafast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = 250 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_ABS_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_ABS_fast.inst.cfg index 74119f1824..8864f7f430 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_ABS_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_ABS_fast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = 300 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_ABS_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_ABS_normal.inst.cfg index 5f7eedb9d7..54a90be9c0 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_ABS_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_ABS_normal.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = 300 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_Nylon_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_Nylon_extrafast.inst.cfg index d29432fa70..d17e3edc4b 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_Nylon_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_Nylon_extrafast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = 250 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_Nylon_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_Nylon_fast.inst.cfg index 9b8d157d5e..2097d66a67 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_Nylon_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_Nylon_fast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = 300 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_Nylon_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_Nylon_normal.inst.cfg index a96a6d6c3f..b2f74993fa 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_Nylon_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_Nylon_normal.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = 300 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PC_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PC_extrafast.inst.cfg index 4bec6f3a53..cce872a6c3 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PC_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PC_extrafast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = 250 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PC_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PC_fast.inst.cfg index a918a9e517..ced3fd11e6 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PC_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PC_fast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = 300 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PC_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PC_normal.inst.cfg index 9f61ac52cc..1eb6dec7ed 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PC_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PC_normal.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = 300 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PETG_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PETG_extrafast.inst.cfg index e1428ab8d5..aecf1c8e14 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PETG_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PETG_extrafast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = 250 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PETG_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PETG_fast.inst.cfg index eb69a3af6c..d925e99c82 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PETG_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PETG_fast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = 300 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PETG_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PETG_normal.inst.cfg index 33f27cd0da..4935a02005 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PETG_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PETG_normal.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = 300 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PLA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PLA_extrafast.inst.cfg index b2e08fe899..2c2f50c3ce 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PLA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PLA_extrafast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = 250 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PLA_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PLA_fast.inst.cfg index 5b1991be04..132b113f9f 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PLA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PLA_fast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = 300 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PLA_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PLA_normal.inst.cfg index 9c9d57f0f7..ff65464571 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PLA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PLA_normal.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = 300 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_ABS_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_ABS_extrafast.inst.cfg index 270869fced..7bf9191c8f 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_ABS_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_ABS_extrafast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = 165 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_ABS_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_ABS_fast.inst.cfg index ba14bb25fc..fd3a5df813 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_ABS_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_ABS_fast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = 250 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_ABS_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_ABS_sprint.inst.cfg index d06264cb28..3760367c3e 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_ABS_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_ABS_sprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = 125 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_Nylon_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_Nylon_extrafast.inst.cfg index 589c88ffd8..7a3bf27d51 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_Nylon_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_Nylon_extrafast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = 165 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_Nylon_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_Nylon_fast.inst.cfg index f38c2900c1..24e01be8ba 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_Nylon_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_Nylon_fast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = 250 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_Nylon_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_Nylon_sprint.inst.cfg index c72942f9b1..f09933e6c6 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_Nylon_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_Nylon_sprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = 125 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PC_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PC_extrafast.inst.cfg index ded1dea38a..0ce2f72b51 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PC_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PC_extrafast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = 165 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PC_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PC_fast.inst.cfg index 7cb82763e2..69f3b0c708 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PC_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PC_fast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = 250 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PC_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PC_sprint.inst.cfg index a90951179c..a29d7d3087 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PC_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PC_sprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = 125 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PETG_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PETG_extrafast.inst.cfg index abf3f6ae2b..8eb63f3390 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PETG_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PETG_extrafast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = 165 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PETG_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PETG_fast.inst.cfg index 5d08831931..034c3549bb 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PETG_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PETG_fast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = 250 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PETG_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PETG_sprint.inst.cfg index 2e5f186d3d..4cfefc73ef 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PETG_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PETG_sprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = 125 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PLA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PLA_extrafast.inst.cfg index 12768f239e..cc18e8a301 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PLA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PLA_extrafast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = 165 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PLA_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PLA_fast.inst.cfg index 4d32ef9a48..7419f53425 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PLA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PLA_fast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = 250 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PLA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PLA_sprint.inst.cfg index ce434aba61..70c21d287d 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PLA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PLA_sprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = 125 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_ABS_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_ABS_extrafast.inst.cfg index 0bdb6f9bf1..28b09aa879 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_ABS_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_ABS_extrafast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = 125 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_ABS_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_ABS_sprint.inst.cfg index 59dc9ea4df..f15c3e885d 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_ABS_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_ABS_sprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = 90 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_ABS_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_ABS_supersprint.inst.cfg index f63011cd56..ad7693e554 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_ABS_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_ABS_supersprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = 70 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_Nylon_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_Nylon_extrafast.inst.cfg index 815c69c8b4..8d31852267 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_Nylon_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_Nylon_extrafast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = 125 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_Nylon_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_Nylon_sprint.inst.cfg index 6bdc89730c..4fee274b0d 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_Nylon_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_Nylon_sprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = 90 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_Nylon_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_Nylon_supersprint.inst.cfg index 4d7bff8c56..0ff444435e 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_Nylon_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_Nylon_supersprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = 70 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PC_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PC_extrafast.inst.cfg index 4c4d326974..8c50c6f66f 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PC_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PC_extrafast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = 125 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PC_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PC_sprint.inst.cfg index 7eb9b2989e..c07a1a7e3f 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PC_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PC_sprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = 90 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PC_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PC_supersprint.inst.cfg index 97c00b70ca..7c53f11cd4 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PC_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PC_supersprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = 70 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PETG_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PETG_extrafast.inst.cfg index 78b15e3173..7656121cb6 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PETG_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PETG_extrafast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = 125 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PETG_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PETG_sprint.inst.cfg index fa489ea005..7713fb3c49 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PETG_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PETG_sprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = 90 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PETG_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PETG_supersprint.inst.cfg index c4cb559bce..0b3c2835ad 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PETG_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PETG_supersprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = 70 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PLA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PLA_extrafast.inst.cfg index 2279251ee4..4259c678a9 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PLA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PLA_extrafast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = 125 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PLA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PLA_sprint.inst.cfg index 7df50dba1e..b1186df8be 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PLA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PLA_sprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = 90 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PLA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PLA_supersprint.inst.cfg index 6252c23a19..81a3d71bd3 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PLA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PLA_supersprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = 70 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_ABS_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_ABS_sprint.inst.cfg index 98f1612255..26c2f65688 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_ABS_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_ABS_sprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = 75 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_ABS_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_ABS_supersprint.inst.cfg index 97a24a3640..68462c3102 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_ABS_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_ABS_supersprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = 60 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_ABS_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_ABS_ultrasprint.inst.cfg index 42cc3edab9..3bcc573acd 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_ABS_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_ABS_ultrasprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = 50 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_Nylon_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_Nylon_sprint.inst.cfg index a810800993..54219aba03 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_Nylon_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_Nylon_sprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = 75 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_Nylon_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_Nylon_supersprint.inst.cfg index 9b50336562..76f56be1f7 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_Nylon_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_Nylon_supersprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = 60 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_Nylon_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_Nylon_ultrasprint.inst.cfg index 244ffb5bb2..219d009fdb 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_Nylon_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_Nylon_ultrasprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = 50 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PC_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PC_sprint.inst.cfg index c0a352add0..c96f54ea26 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PC_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PC_sprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = 75 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PC_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PC_supersprint.inst.cfg index bb04609e98..021b450b28 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PC_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PC_supersprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = 60 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PC_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PC_ultrasprint.inst.cfg index e35937e03d..b44867dcdb 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PC_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PC_ultrasprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = 50 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PETG_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PETG_sprint.inst.cfg index 958fe470a3..76b501b168 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PETG_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PETG_sprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = 75 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PETG_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PETG_supersprint.inst.cfg index 2ed2fae3e0..e318ae4f02 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PETG_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PETG_supersprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = 60 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PETG_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PETG_ultrasprint.inst.cfg index ee39521367..6aa43550af 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PETG_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PETG_ultrasprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = 50 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PLA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PLA_sprint.inst.cfg index cf846204df..7f56e0fc03 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PLA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PLA_sprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = 75 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PLA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PLA_supersprint.inst.cfg index 04d8828300..b06b834bc1 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PLA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PLA_supersprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = 60 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PLA_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PLA_ultrasprint.inst.cfg index 2dfb7ca04f..48ee5f097a 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PLA_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PLA_ultrasprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = 50 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_ABS_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_ABS_sprint.inst.cfg index f1314e9c86..53faba67bf 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_ABS_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_ABS_sprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = 60 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_ABS_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_ABS_supersprint.inst.cfg index df746eb506..8e4524be36 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_ABS_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_ABS_supersprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = 50 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_ABS_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_ABS_ultrasprint.inst.cfg index 1cd7aab2a6..f8523e4247 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_ABS_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_ABS_ultrasprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = 40 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_Nylon_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_Nylon_sprint.inst.cfg index 257500c2f6..512b1ed901 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_Nylon_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_Nylon_sprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = 60 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_Nylon_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_Nylon_supersprint.inst.cfg index 24839241ba..7d14779dee 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_Nylon_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_Nylon_supersprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = 50 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_Nylon_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_Nylon_ultrasprint.inst.cfg index 71985a2626..65386eff00 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_Nylon_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_Nylon_ultrasprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = 40 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PC_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PC_sprint.inst.cfg index 9dd007e614..a34620e57b 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PC_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PC_sprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = 60 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PC_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PC_supersprint.inst.cfg index de1061db4d..6814646611 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PC_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PC_supersprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = 50 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PC_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PC_ultrasprint.inst.cfg index 5a71bd3907..5b0d985bca 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PC_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PC_ultrasprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = 40 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PETG_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PETG_sprint.inst.cfg index d622a799d8..f9efd98bed 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PETG_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PETG_sprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = 60 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PETG_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PETG_supersprint.inst.cfg index 81f97d6cf5..b6befe7c9f 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PETG_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PETG_supersprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = 50 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PETG_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PETG_ultrasprint.inst.cfg index a0bc875d44..322f9eb9db 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PETG_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PETG_ultrasprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = 40 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PLA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PLA_sprint.inst.cfg index 78f3195510..870cec7719 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PLA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PLA_sprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = 60 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PLA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PLA_supersprint.inst.cfg index 9f13d92c4f..6737e43771 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PLA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PLA_supersprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = 50 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PLA_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PLA_ultrasprint.inst.cfg index 2363a6959c..b229acd19e 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PLA_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PLA_ultrasprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = 40 - +speed_print = round(20 / layer_height / machine_nozzle_size, -1) From f1c6ed83e9cacbfe1be1b03178ebb5a17b4bff64 Mon Sep 17 00:00:00 2001 From: WCEngineer Date: Tue, 3 Sep 2024 17:48:08 +0000 Subject: [PATCH 020/200] Applied printer-linter format --- resources/quality/voron2/voron2_v6_0.25_ABS_extrafine.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.25_ABS_fast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.25_ABS_fine.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.25_ABS_normal.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.25_Nylon_extrafine.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.25_Nylon_fast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.25_Nylon_fine.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.25_Nylon_normal.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.25_PC_extrafine.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.25_PC_fast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.25_PC_fine.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.25_PC_normal.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.25_PETG_extrafine.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.25_PETG_fast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.25_PETG_fine.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.25_PETG_normal.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.25_PLA_extrafine.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.25_PLA_fast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.25_PLA_fine.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.25_PLA_normal.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.30_ABS_extrafine.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.30_ABS_fast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.30_ABS_fine.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.30_ABS_normal.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.30_Nylon_extrafine.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.30_Nylon_fast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.30_Nylon_fine.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.30_Nylon_normal.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.30_PC_extrafine.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.30_PC_fast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.30_PC_fine.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.30_PC_normal.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.30_PETG_extrafine.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.30_PETG_fast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.30_PETG_fine.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.30_PETG_normal.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.30_PLA_extrafine.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.30_PLA_fast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.30_PLA_fine.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.30_PLA_normal.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.35_ABS_fast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.35_ABS_fine.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.35_ABS_normal.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.35_Nylon_fast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.35_Nylon_fine.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.35_Nylon_normal.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.35_PC_fast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.35_PC_fine.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.35_PC_normal.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.35_PETG_fast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.35_PETG_fine.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.35_PETG_normal.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.35_PLA_fast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.35_PLA_fine.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.35_PLA_normal.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.40_ABS_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.40_ABS_fast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.40_ABS_fine.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.40_ABS_normal.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.40_Nylon_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.40_Nylon_fast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.40_Nylon_fine.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.40_Nylon_normal.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.40_PC_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.40_PC_fast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.40_PC_fine.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.40_PC_normal.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.40_PETG_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.40_PETG_fast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.40_PETG_fine.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.40_PETG_normal.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.40_PLA_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.40_PLA_fast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.40_PLA_fine.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.40_PLA_normal.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.50_ABS_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.50_ABS_fast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.50_ABS_normal.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.50_ABS_sprint.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.50_Nylon_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.50_Nylon_fast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.50_Nylon_normal.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.50_Nylon_sprint.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.50_PC_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.50_PC_fast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.50_PC_normal.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.50_PC_sprint.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.50_PETG_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.50_PETG_fast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.50_PETG_normal.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.50_PETG_sprint.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.50_PLA_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.50_PLA_fast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.50_PLA_normal.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.50_PLA_sprint.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.60_ABS_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.60_ABS_fast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.60_ABS_sprint.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.60_Nylon_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.60_Nylon_fast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.60_Nylon_sprint.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.60_PC_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.60_PC_fast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.60_PC_sprint.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.60_PETG_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.60_PETG_fast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.60_PETG_sprint.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.60_PLA_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.60_PLA_fast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.60_PLA_sprint.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.80_ABS_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.80_ABS_sprint.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.80_ABS_supersprint.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.80_Nylon_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.80_Nylon_sprint.inst.cfg | 1 + .../quality/voron2/voron2_v6_0.80_Nylon_supersprint.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.80_PC_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.80_PC_sprint.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.80_PC_supersprint.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.80_PETG_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.80_PETG_sprint.inst.cfg | 1 + .../quality/voron2/voron2_v6_0.80_PETG_supersprint.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.80_PLA_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.80_PLA_sprint.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.80_PLA_supersprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_0.40_ABS_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_volcano_0.40_ABS_fast.inst.cfg | 1 + resources/quality/voron2/voron2_volcano_0.40_ABS_normal.inst.cfg | 1 + .../quality/voron2/voron2_volcano_0.40_Nylon_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_volcano_0.40_Nylon_fast.inst.cfg | 1 + .../quality/voron2/voron2_volcano_0.40_Nylon_normal.inst.cfg | 1 + .../quality/voron2/voron2_volcano_0.40_PC_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_volcano_0.40_PC_fast.inst.cfg | 1 + resources/quality/voron2/voron2_volcano_0.40_PC_normal.inst.cfg | 1 + .../quality/voron2/voron2_volcano_0.40_PETG_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_volcano_0.40_PETG_fast.inst.cfg | 1 + .../quality/voron2/voron2_volcano_0.40_PETG_normal.inst.cfg | 1 + .../quality/voron2/voron2_volcano_0.40_PLA_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_volcano_0.40_PLA_fast.inst.cfg | 1 + resources/quality/voron2/voron2_volcano_0.40_PLA_normal.inst.cfg | 1 + .../quality/voron2/voron2_volcano_0.60_ABS_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_volcano_0.60_ABS_fast.inst.cfg | 1 + resources/quality/voron2/voron2_volcano_0.60_ABS_sprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_0.60_Nylon_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_volcano_0.60_Nylon_fast.inst.cfg | 1 + .../quality/voron2/voron2_volcano_0.60_Nylon_sprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_0.60_PC_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_volcano_0.60_PC_fast.inst.cfg | 1 + resources/quality/voron2/voron2_volcano_0.60_PC_sprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_0.60_PETG_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_volcano_0.60_PETG_fast.inst.cfg | 1 + .../quality/voron2/voron2_volcano_0.60_PETG_sprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_0.60_PLA_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_volcano_0.60_PLA_fast.inst.cfg | 1 + resources/quality/voron2/voron2_volcano_0.60_PLA_sprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_0.80_ABS_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_volcano_0.80_ABS_sprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_0.80_ABS_supersprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_0.80_Nylon_extrafast.inst.cfg | 1 + .../quality/voron2/voron2_volcano_0.80_Nylon_sprint.inst.cfg | 1 + .../voron2/voron2_volcano_0.80_Nylon_supersprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_0.80_PC_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_volcano_0.80_PC_sprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_0.80_PC_supersprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_0.80_PETG_extrafast.inst.cfg | 1 + .../quality/voron2/voron2_volcano_0.80_PETG_sprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_0.80_PETG_supersprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_0.80_PLA_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_volcano_0.80_PLA_sprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_0.80_PLA_supersprint.inst.cfg | 1 + resources/quality/voron2/voron2_volcano_1.00_ABS_sprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_1.00_ABS_supersprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_1.00_ABS_ultrasprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_1.00_Nylon_sprint.inst.cfg | 1 + .../voron2/voron2_volcano_1.00_Nylon_supersprint.inst.cfg | 1 + .../voron2/voron2_volcano_1.00_Nylon_ultrasprint.inst.cfg | 1 + resources/quality/voron2/voron2_volcano_1.00_PC_sprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_1.00_PC_supersprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_1.00_PC_ultrasprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_1.00_PETG_sprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_1.00_PETG_supersprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_1.00_PETG_ultrasprint.inst.cfg | 1 + resources/quality/voron2/voron2_volcano_1.00_PLA_sprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_1.00_PLA_supersprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_1.00_PLA_ultrasprint.inst.cfg | 1 + resources/quality/voron2/voron2_volcano_1.20_ABS_sprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_1.20_ABS_supersprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_1.20_ABS_ultrasprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_1.20_Nylon_sprint.inst.cfg | 1 + .../voron2/voron2_volcano_1.20_Nylon_supersprint.inst.cfg | 1 + .../voron2/voron2_volcano_1.20_Nylon_ultrasprint.inst.cfg | 1 + resources/quality/voron2/voron2_volcano_1.20_PC_sprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_1.20_PC_supersprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_1.20_PC_ultrasprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_1.20_PETG_sprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_1.20_PETG_supersprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_1.20_PETG_ultrasprint.inst.cfg | 1 + resources/quality/voron2/voron2_volcano_1.20_PLA_sprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_1.20_PLA_supersprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_1.20_PLA_ultrasprint.inst.cfg | 1 + 200 files changed, 200 insertions(+) diff --git a/resources/quality/voron2/voron2_v6_0.25_ABS_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_ABS_extrafine.inst.cfg index cda16502ec..0fce2639c5 100644 --- a/resources/quality/voron2/voron2_v6_0.25_ABS_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_ABS_extrafine.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.25mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.25_ABS_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_ABS_fast.inst.cfg index 2618a1962d..0ac3f36c24 100644 --- a/resources/quality/voron2/voron2_v6_0.25_ABS_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_ABS_fast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.25mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.25_ABS_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_ABS_fine.inst.cfg index 3824df4e90..c8b30aebee 100644 --- a/resources/quality/voron2/voron2_v6_0.25_ABS_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_ABS_fine.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.25mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.25_ABS_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_ABS_normal.inst.cfg index 91ed394514..14248ce07e 100644 --- a/resources/quality/voron2/voron2_v6_0.25_ABS_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_ABS_normal.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.25mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.25_Nylon_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_Nylon_extrafine.inst.cfg index bc7ef28ea6..30133d4080 100644 --- a/resources/quality/voron2/voron2_v6_0.25_Nylon_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_Nylon_extrafine.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.25mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.25_Nylon_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_Nylon_fast.inst.cfg index d7ff9e8f66..fba5e890f7 100644 --- a/resources/quality/voron2/voron2_v6_0.25_Nylon_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_Nylon_fast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.25mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.25_Nylon_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_Nylon_fine.inst.cfg index 96816b8276..88f5ac9e3c 100644 --- a/resources/quality/voron2/voron2_v6_0.25_Nylon_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_Nylon_fine.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.25mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.25_Nylon_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_Nylon_normal.inst.cfg index 92db58120c..28c7bfa448 100644 --- a/resources/quality/voron2/voron2_v6_0.25_Nylon_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_Nylon_normal.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.25mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.25_PC_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_PC_extrafine.inst.cfg index 85a94a49f1..f6cb8dcf8e 100644 --- a/resources/quality/voron2/voron2_v6_0.25_PC_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_PC_extrafine.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.25mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.25_PC_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_PC_fast.inst.cfg index 4748484e9d..a3b6e651cd 100644 --- a/resources/quality/voron2/voron2_v6_0.25_PC_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_PC_fast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.25mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.25_PC_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_PC_fine.inst.cfg index 77ae68132d..9b7cffb179 100644 --- a/resources/quality/voron2/voron2_v6_0.25_PC_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_PC_fine.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.25mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.25_PC_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_PC_normal.inst.cfg index e12b46d2c2..97c6bca589 100644 --- a/resources/quality/voron2/voron2_v6_0.25_PC_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_PC_normal.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.25mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.25_PETG_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_PETG_extrafine.inst.cfg index d29f063a1e..4711d18108 100644 --- a/resources/quality/voron2/voron2_v6_0.25_PETG_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_PETG_extrafine.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.25mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.25_PETG_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_PETG_fast.inst.cfg index f5ed74d773..0a5e22d0c3 100644 --- a/resources/quality/voron2/voron2_v6_0.25_PETG_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_PETG_fast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.25mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.25_PETG_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_PETG_fine.inst.cfg index f02b1ac6e2..7e9cb4f29c 100644 --- a/resources/quality/voron2/voron2_v6_0.25_PETG_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_PETG_fine.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.25mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.25_PETG_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_PETG_normal.inst.cfg index d095a26af4..22a07e0df6 100644 --- a/resources/quality/voron2/voron2_v6_0.25_PETG_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_PETG_normal.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.25mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.25_PLA_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_PLA_extrafine.inst.cfg index acf97053ce..a640775230 100644 --- a/resources/quality/voron2/voron2_v6_0.25_PLA_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_PLA_extrafine.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.25mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.25_PLA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_PLA_fast.inst.cfg index ea5445dc8b..42046df99e 100644 --- a/resources/quality/voron2/voron2_v6_0.25_PLA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_PLA_fast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.25mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.25_PLA_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_PLA_fine.inst.cfg index 68fbd8dcfb..74b59f3787 100644 --- a/resources/quality/voron2/voron2_v6_0.25_PLA_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_PLA_fine.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.25mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.25_PLA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_PLA_normal.inst.cfg index 1f9e6aef75..ad90ea458a 100644 --- a/resources/quality/voron2/voron2_v6_0.25_PLA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_PLA_normal.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.25mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.30_ABS_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_ABS_extrafine.inst.cfg index 7522f9af45..996f0b3545 100644 --- a/resources/quality/voron2/voron2_v6_0.30_ABS_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_ABS_extrafine.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.30mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.30_ABS_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_ABS_fast.inst.cfg index 70a00d9bf0..22e211b44c 100644 --- a/resources/quality/voron2/voron2_v6_0.30_ABS_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_ABS_fast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.30mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.30_ABS_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_ABS_fine.inst.cfg index fa1f96b914..8094dd601d 100644 --- a/resources/quality/voron2/voron2_v6_0.30_ABS_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_ABS_fine.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.30mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.30_ABS_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_ABS_normal.inst.cfg index 90b10ac785..dce64207a4 100644 --- a/resources/quality/voron2/voron2_v6_0.30_ABS_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_ABS_normal.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.30mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.30_Nylon_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_Nylon_extrafine.inst.cfg index 4b0f67d4f8..575fd0fa8e 100644 --- a/resources/quality/voron2/voron2_v6_0.30_Nylon_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_Nylon_extrafine.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.30mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.30_Nylon_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_Nylon_fast.inst.cfg index 12590a2a0c..78d84dd89f 100644 --- a/resources/quality/voron2/voron2_v6_0.30_Nylon_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_Nylon_fast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.30mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.30_Nylon_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_Nylon_fine.inst.cfg index d000d52cad..7eb19b5fbf 100644 --- a/resources/quality/voron2/voron2_v6_0.30_Nylon_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_Nylon_fine.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.30mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.30_Nylon_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_Nylon_normal.inst.cfg index 70844d3a13..7cc3fd048a 100644 --- a/resources/quality/voron2/voron2_v6_0.30_Nylon_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_Nylon_normal.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.30mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.30_PC_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_PC_extrafine.inst.cfg index b99f9eb061..1c3cdcb2dd 100644 --- a/resources/quality/voron2/voron2_v6_0.30_PC_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_PC_extrafine.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.30mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.30_PC_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_PC_fast.inst.cfg index 774b610fda..33b0d9a7ec 100644 --- a/resources/quality/voron2/voron2_v6_0.30_PC_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_PC_fast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.30mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.30_PC_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_PC_fine.inst.cfg index b208c1d33d..f198c46918 100644 --- a/resources/quality/voron2/voron2_v6_0.30_PC_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_PC_fine.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.30mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.30_PC_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_PC_normal.inst.cfg index a2435ca262..13709f309b 100644 --- a/resources/quality/voron2/voron2_v6_0.30_PC_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_PC_normal.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.30mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.30_PETG_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_PETG_extrafine.inst.cfg index 92dab746a2..6f0d035c04 100644 --- a/resources/quality/voron2/voron2_v6_0.30_PETG_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_PETG_extrafine.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.30mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.30_PETG_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_PETG_fast.inst.cfg index 58e42be49e..b05aed064c 100644 --- a/resources/quality/voron2/voron2_v6_0.30_PETG_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_PETG_fast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.30mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.30_PETG_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_PETG_fine.inst.cfg index 36908de396..b3abb65c8b 100644 --- a/resources/quality/voron2/voron2_v6_0.30_PETG_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_PETG_fine.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.30mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.30_PETG_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_PETG_normal.inst.cfg index 11d5a385c6..0b5d7a9adb 100644 --- a/resources/quality/voron2/voron2_v6_0.30_PETG_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_PETG_normal.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.30mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.30_PLA_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_PLA_extrafine.inst.cfg index ba2024ca05..64c2580d30 100644 --- a/resources/quality/voron2/voron2_v6_0.30_PLA_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_PLA_extrafine.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.30mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.30_PLA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_PLA_fast.inst.cfg index e39044b983..a964b54f6f 100644 --- a/resources/quality/voron2/voron2_v6_0.30_PLA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_PLA_fast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.30mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.30_PLA_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_PLA_fine.inst.cfg index cb02a35a09..abac774e34 100644 --- a/resources/quality/voron2/voron2_v6_0.30_PLA_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_PLA_fine.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.30mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.30_PLA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_PLA_normal.inst.cfg index a08c743735..34a7aa1a7d 100644 --- a/resources/quality/voron2/voron2_v6_0.30_PLA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_PLA_normal.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.30mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.35_ABS_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_ABS_fast.inst.cfg index 2a605cc74a..cc78c7de5f 100644 --- a/resources/quality/voron2/voron2_v6_0.35_ABS_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_ABS_fast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.35mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.35_ABS_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_ABS_fine.inst.cfg index e32b7afca7..87a10efbfb 100644 --- a/resources/quality/voron2/voron2_v6_0.35_ABS_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_ABS_fine.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.35mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.35_ABS_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_ABS_normal.inst.cfg index 5ca9f00dca..a1e35eca6c 100644 --- a/resources/quality/voron2/voron2_v6_0.35_ABS_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_ABS_normal.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.35mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.35_Nylon_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_Nylon_fast.inst.cfg index 023d20436a..fc6d1b67dd 100644 --- a/resources/quality/voron2/voron2_v6_0.35_Nylon_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_Nylon_fast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.35mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.35_Nylon_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_Nylon_fine.inst.cfg index c2877c648d..16c6f26f3f 100644 --- a/resources/quality/voron2/voron2_v6_0.35_Nylon_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_Nylon_fine.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.35mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.35_Nylon_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_Nylon_normal.inst.cfg index 7eaf9af36f..59d51d08e6 100644 --- a/resources/quality/voron2/voron2_v6_0.35_Nylon_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_Nylon_normal.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.35mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.35_PC_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_PC_fast.inst.cfg index a8536a9d98..b0175e6824 100644 --- a/resources/quality/voron2/voron2_v6_0.35_PC_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_PC_fast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.35mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.35_PC_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_PC_fine.inst.cfg index 31c821ad47..0dc8d65b76 100644 --- a/resources/quality/voron2/voron2_v6_0.35_PC_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_PC_fine.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.35mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.35_PC_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_PC_normal.inst.cfg index 9c9a332ff5..805ff2b4f3 100644 --- a/resources/quality/voron2/voron2_v6_0.35_PC_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_PC_normal.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.35mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.35_PETG_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_PETG_fast.inst.cfg index 15ac466616..d201abd833 100644 --- a/resources/quality/voron2/voron2_v6_0.35_PETG_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_PETG_fast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.35mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.35_PETG_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_PETG_fine.inst.cfg index 41ecf1f93d..7ded857539 100644 --- a/resources/quality/voron2/voron2_v6_0.35_PETG_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_PETG_fine.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.35mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.35_PETG_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_PETG_normal.inst.cfg index 5c021814ce..083f643826 100644 --- a/resources/quality/voron2/voron2_v6_0.35_PETG_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_PETG_normal.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.35mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.35_PLA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_PLA_fast.inst.cfg index 8947b21fbf..f73b054041 100644 --- a/resources/quality/voron2/voron2_v6_0.35_PLA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_PLA_fast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.35mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.35_PLA_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_PLA_fine.inst.cfg index d4580012f2..070ca633b9 100644 --- a/resources/quality/voron2/voron2_v6_0.35_PLA_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_PLA_fine.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.35mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.35_PLA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_PLA_normal.inst.cfg index 393a1b6fb0..0c08b56e31 100644 --- a/resources/quality/voron2/voron2_v6_0.35_PLA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_PLA_normal.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.35mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.40_ABS_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_ABS_extrafast.inst.cfg index 8fbf52ce8d..718dfd0947 100644 --- a/resources/quality/voron2/voron2_v6_0.40_ABS_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_ABS_extrafast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.40mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.40_ABS_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_ABS_fast.inst.cfg index 01a90e2d1b..42f70f6b50 100644 --- a/resources/quality/voron2/voron2_v6_0.40_ABS_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_ABS_fast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.40mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.40_ABS_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_ABS_fine.inst.cfg index 5c2635410b..20b3c1e6b9 100644 --- a/resources/quality/voron2/voron2_v6_0.40_ABS_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_ABS_fine.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.40mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.40_ABS_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_ABS_normal.inst.cfg index 1a84513545..36e57f9020 100644 --- a/resources/quality/voron2/voron2_v6_0.40_ABS_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_ABS_normal.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.40mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.40_Nylon_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_Nylon_extrafast.inst.cfg index 9632a02df1..b8babe2f0b 100644 --- a/resources/quality/voron2/voron2_v6_0.40_Nylon_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_Nylon_extrafast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.40mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.40_Nylon_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_Nylon_fast.inst.cfg index 240491a90e..7ab76ce918 100644 --- a/resources/quality/voron2/voron2_v6_0.40_Nylon_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_Nylon_fast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.40mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.40_Nylon_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_Nylon_fine.inst.cfg index 253cbfa936..b34636b418 100644 --- a/resources/quality/voron2/voron2_v6_0.40_Nylon_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_Nylon_fine.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.40mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.40_Nylon_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_Nylon_normal.inst.cfg index 833921c18a..f2c574efec 100644 --- a/resources/quality/voron2/voron2_v6_0.40_Nylon_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_Nylon_normal.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.40mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.40_PC_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_PC_extrafast.inst.cfg index 030f2b39fa..72f38ad1f9 100644 --- a/resources/quality/voron2/voron2_v6_0.40_PC_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_PC_extrafast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.40mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.40_PC_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_PC_fast.inst.cfg index e050bcd57b..f231d944f7 100644 --- a/resources/quality/voron2/voron2_v6_0.40_PC_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_PC_fast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.40mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.40_PC_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_PC_fine.inst.cfg index c0f8ba55eb..5edc1e8989 100644 --- a/resources/quality/voron2/voron2_v6_0.40_PC_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_PC_fine.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.40mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.40_PC_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_PC_normal.inst.cfg index 5e5f5028f8..7ddbe08caf 100644 --- a/resources/quality/voron2/voron2_v6_0.40_PC_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_PC_normal.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.40mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.40_PETG_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_PETG_extrafast.inst.cfg index e7bd4a96bd..e4e4405644 100644 --- a/resources/quality/voron2/voron2_v6_0.40_PETG_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_PETG_extrafast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.40mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.40_PETG_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_PETG_fast.inst.cfg index db7556c684..bd0ca25a94 100644 --- a/resources/quality/voron2/voron2_v6_0.40_PETG_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_PETG_fast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.40mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.40_PETG_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_PETG_fine.inst.cfg index 5e0425557e..22f1c5492f 100644 --- a/resources/quality/voron2/voron2_v6_0.40_PETG_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_PETG_fine.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.40mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.40_PETG_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_PETG_normal.inst.cfg index 4291dd189b..841ab288fa 100644 --- a/resources/quality/voron2/voron2_v6_0.40_PETG_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_PETG_normal.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.40mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.40_PLA_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_PLA_extrafast.inst.cfg index 573dbdf2fe..703fdb84eb 100644 --- a/resources/quality/voron2/voron2_v6_0.40_PLA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_PLA_extrafast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.40mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.40_PLA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_PLA_fast.inst.cfg index e2e2000a81..14c3a2a6f5 100644 --- a/resources/quality/voron2/voron2_v6_0.40_PLA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_PLA_fast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.40mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.40_PLA_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_PLA_fine.inst.cfg index 3da2634700..564969352c 100644 --- a/resources/quality/voron2/voron2_v6_0.40_PLA_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_PLA_fine.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.40mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.40_PLA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_PLA_normal.inst.cfg index 586bf40f9c..51f9e6fd5f 100644 --- a/resources/quality/voron2/voron2_v6_0.40_PLA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_PLA_normal.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.40mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.50_ABS_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_ABS_extrafast.inst.cfg index 109e7fe7ea..d40ccb9235 100644 --- a/resources/quality/voron2/voron2_v6_0.50_ABS_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_ABS_extrafast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.50mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.50_ABS_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_ABS_fast.inst.cfg index 18bcea8b6a..b494b81be2 100644 --- a/resources/quality/voron2/voron2_v6_0.50_ABS_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_ABS_fast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.50mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.50_ABS_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_ABS_normal.inst.cfg index 087d5385cb..da649b4ca9 100644 --- a/resources/quality/voron2/voron2_v6_0.50_ABS_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_ABS_normal.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.50mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.50_ABS_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_ABS_sprint.inst.cfg index 5f33ff3cc7..1f2caf5289 100644 --- a/resources/quality/voron2/voron2_v6_0.50_ABS_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_ABS_sprint.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.50mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.50_Nylon_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_Nylon_extrafast.inst.cfg index c1a0a34f26..17c9956c37 100644 --- a/resources/quality/voron2/voron2_v6_0.50_Nylon_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_Nylon_extrafast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.50mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.50_Nylon_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_Nylon_fast.inst.cfg index e442afa2f4..ac11d72c12 100644 --- a/resources/quality/voron2/voron2_v6_0.50_Nylon_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_Nylon_fast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.50mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.50_Nylon_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_Nylon_normal.inst.cfg index 661e08ee0a..ed47290ad9 100644 --- a/resources/quality/voron2/voron2_v6_0.50_Nylon_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_Nylon_normal.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.50mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.50_Nylon_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_Nylon_sprint.inst.cfg index b45883fc35..25a516e979 100644 --- a/resources/quality/voron2/voron2_v6_0.50_Nylon_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_Nylon_sprint.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.50mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.50_PC_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_PC_extrafast.inst.cfg index d6739b7822..c51355aa0d 100644 --- a/resources/quality/voron2/voron2_v6_0.50_PC_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_PC_extrafast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.50mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.50_PC_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_PC_fast.inst.cfg index d19809cc09..7eceff6999 100644 --- a/resources/quality/voron2/voron2_v6_0.50_PC_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_PC_fast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.50mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.50_PC_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_PC_normal.inst.cfg index 4e75db4261..41349517f1 100644 --- a/resources/quality/voron2/voron2_v6_0.50_PC_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_PC_normal.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.50mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.50_PC_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_PC_sprint.inst.cfg index d25356fa55..7693f2206e 100644 --- a/resources/quality/voron2/voron2_v6_0.50_PC_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_PC_sprint.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.50mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.50_PETG_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_PETG_extrafast.inst.cfg index b588db34a9..8125a20a19 100644 --- a/resources/quality/voron2/voron2_v6_0.50_PETG_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_PETG_extrafast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.50mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.50_PETG_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_PETG_fast.inst.cfg index 7f5e55f797..2adda05769 100644 --- a/resources/quality/voron2/voron2_v6_0.50_PETG_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_PETG_fast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.50mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.50_PETG_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_PETG_normal.inst.cfg index dee49e6adf..e75c4a201a 100644 --- a/resources/quality/voron2/voron2_v6_0.50_PETG_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_PETG_normal.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.50mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.50_PETG_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_PETG_sprint.inst.cfg index fe483c037d..fe11fe1100 100644 --- a/resources/quality/voron2/voron2_v6_0.50_PETG_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_PETG_sprint.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.50mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.50_PLA_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_PLA_extrafast.inst.cfg index 4b62ee3b9e..fe84b9f686 100644 --- a/resources/quality/voron2/voron2_v6_0.50_PLA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_PLA_extrafast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.50mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.50_PLA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_PLA_fast.inst.cfg index d48117773b..9de886f0f3 100644 --- a/resources/quality/voron2/voron2_v6_0.50_PLA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_PLA_fast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.50mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.50_PLA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_PLA_normal.inst.cfg index b5680e23b0..8e7339f62e 100644 --- a/resources/quality/voron2/voron2_v6_0.50_PLA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_PLA_normal.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.50mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.50_PLA_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_PLA_sprint.inst.cfg index c18adfaf99..3c2e6d1ae1 100644 --- a/resources/quality/voron2/voron2_v6_0.50_PLA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_PLA_sprint.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.50mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.60_ABS_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_ABS_extrafast.inst.cfg index 48f2611f2f..4f74dda493 100644 --- a/resources/quality/voron2/voron2_v6_0.60_ABS_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_ABS_extrafast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.60mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.60_ABS_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_ABS_fast.inst.cfg index 941e43eae5..1899b4fbb7 100644 --- a/resources/quality/voron2/voron2_v6_0.60_ABS_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_ABS_fast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.60mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.60_ABS_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_ABS_sprint.inst.cfg index d7f9b72238..6172d1336c 100644 --- a/resources/quality/voron2/voron2_v6_0.60_ABS_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_ABS_sprint.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.60mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.60_Nylon_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_Nylon_extrafast.inst.cfg index 7eabcffa7b..e33c20e7e2 100644 --- a/resources/quality/voron2/voron2_v6_0.60_Nylon_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_Nylon_extrafast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.60mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.60_Nylon_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_Nylon_fast.inst.cfg index 7f8e3f45ab..4bd3422deb 100644 --- a/resources/quality/voron2/voron2_v6_0.60_Nylon_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_Nylon_fast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.60mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.60_Nylon_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_Nylon_sprint.inst.cfg index 4d0161ac57..710f0d5280 100644 --- a/resources/quality/voron2/voron2_v6_0.60_Nylon_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_Nylon_sprint.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.60mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.60_PC_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_PC_extrafast.inst.cfg index 3021e7f93c..956e48c6c1 100644 --- a/resources/quality/voron2/voron2_v6_0.60_PC_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_PC_extrafast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.60mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.60_PC_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_PC_fast.inst.cfg index af338cb0c0..49776d49f2 100644 --- a/resources/quality/voron2/voron2_v6_0.60_PC_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_PC_fast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.60mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.60_PC_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_PC_sprint.inst.cfg index 57f1a4e471..a2017dee3d 100644 --- a/resources/quality/voron2/voron2_v6_0.60_PC_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_PC_sprint.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.60mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.60_PETG_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_PETG_extrafast.inst.cfg index 8120f5c3eb..bdcbd8e8b0 100644 --- a/resources/quality/voron2/voron2_v6_0.60_PETG_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_PETG_extrafast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.60mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.60_PETG_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_PETG_fast.inst.cfg index df75d1f2b3..ddbda9126c 100644 --- a/resources/quality/voron2/voron2_v6_0.60_PETG_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_PETG_fast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.60mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.60_PETG_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_PETG_sprint.inst.cfg index 1c0ce10d06..d418a056d0 100644 --- a/resources/quality/voron2/voron2_v6_0.60_PETG_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_PETG_sprint.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.60mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.60_PLA_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_PLA_extrafast.inst.cfg index 3ad9a4cf1b..9cbf471f3d 100644 --- a/resources/quality/voron2/voron2_v6_0.60_PLA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_PLA_extrafast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.60mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.60_PLA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_PLA_fast.inst.cfg index 83fa21f563..a68209de49 100644 --- a/resources/quality/voron2/voron2_v6_0.60_PLA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_PLA_fast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.60mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.60_PLA_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_PLA_sprint.inst.cfg index 6793f951c2..855fb18485 100644 --- a/resources/quality/voron2/voron2_v6_0.60_PLA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_PLA_sprint.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.60mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.80_ABS_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_ABS_extrafast.inst.cfg index f29a42579f..ac948d9917 100644 --- a/resources/quality/voron2/voron2_v6_0.80_ABS_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_ABS_extrafast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.80mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.80_ABS_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_ABS_sprint.inst.cfg index 20a5fd710a..f7f5e33c2e 100644 --- a/resources/quality/voron2/voron2_v6_0.80_ABS_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_ABS_sprint.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.80mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.80_ABS_supersprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_ABS_supersprint.inst.cfg index bc6d22e7a0..0c2e1dd4fb 100644 --- a/resources/quality/voron2/voron2_v6_0.80_ABS_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_ABS_supersprint.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.80mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.80_Nylon_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_Nylon_extrafast.inst.cfg index 382ac2f773..c9fd2b0134 100644 --- a/resources/quality/voron2/voron2_v6_0.80_Nylon_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_Nylon_extrafast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.80mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.80_Nylon_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_Nylon_sprint.inst.cfg index 02a7e76bcf..2002081cef 100644 --- a/resources/quality/voron2/voron2_v6_0.80_Nylon_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_Nylon_sprint.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.80mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.80_Nylon_supersprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_Nylon_supersprint.inst.cfg index 13373edd93..ba63783c3d 100644 --- a/resources/quality/voron2/voron2_v6_0.80_Nylon_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_Nylon_supersprint.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.80mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.80_PC_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_PC_extrafast.inst.cfg index cb238563d8..3a0068da35 100644 --- a/resources/quality/voron2/voron2_v6_0.80_PC_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_PC_extrafast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.80mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.80_PC_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_PC_sprint.inst.cfg index 0d6e2bb7d3..a5e27727b2 100644 --- a/resources/quality/voron2/voron2_v6_0.80_PC_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_PC_sprint.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.80mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.80_PC_supersprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_PC_supersprint.inst.cfg index 2d472d2061..119c23657b 100644 --- a/resources/quality/voron2/voron2_v6_0.80_PC_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_PC_supersprint.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.80mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.80_PETG_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_PETG_extrafast.inst.cfg index 34a111825e..ebcf41632f 100644 --- a/resources/quality/voron2/voron2_v6_0.80_PETG_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_PETG_extrafast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.80mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.80_PETG_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_PETG_sprint.inst.cfg index 26149e3088..3392d619e5 100644 --- a/resources/quality/voron2/voron2_v6_0.80_PETG_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_PETG_sprint.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.80mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.80_PETG_supersprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_PETG_supersprint.inst.cfg index 49631eabc7..33312dce3e 100644 --- a/resources/quality/voron2/voron2_v6_0.80_PETG_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_PETG_supersprint.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.80mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.80_PLA_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_PLA_extrafast.inst.cfg index d98e372ea1..6c3c14f4b7 100644 --- a/resources/quality/voron2/voron2_v6_0.80_PLA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_PLA_extrafast.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.80mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.80_PLA_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_PLA_sprint.inst.cfg index 2cede8f3da..37ef8c7d9c 100644 --- a/resources/quality/voron2/voron2_v6_0.80_PLA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_PLA_sprint.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.80mm [values] + diff --git a/resources/quality/voron2/voron2_v6_0.80_PLA_supersprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_PLA_supersprint.inst.cfg index 303fbc9b19..071530b026 100644 --- a/resources/quality/voron2/voron2_v6_0.80_PLA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_PLA_supersprint.inst.cfg @@ -11,3 +11,4 @@ type = quality variant = V6 0.80mm [values] + diff --git a/resources/quality/voron2/voron2_volcano_0.40_ABS_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_ABS_extrafast.inst.cfg index 2152dc1ca9..a1e69bc0d1 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_ABS_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_ABS_extrafast.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.40mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.40_ABS_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_ABS_fast.inst.cfg index 8864f7f430..8249858452 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_ABS_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_ABS_fast.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.40mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.40_ABS_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_ABS_normal.inst.cfg index 54a90be9c0..9b79f1f28e 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_ABS_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_ABS_normal.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.40mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.40_Nylon_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_Nylon_extrafast.inst.cfg index d17e3edc4b..4ee5ec71ea 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_Nylon_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_Nylon_extrafast.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.40mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.40_Nylon_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_Nylon_fast.inst.cfg index 2097d66a67..2d9d2257d4 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_Nylon_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_Nylon_fast.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.40mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.40_Nylon_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_Nylon_normal.inst.cfg index b2f74993fa..4c3e664234 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_Nylon_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_Nylon_normal.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.40mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.40_PC_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PC_extrafast.inst.cfg index cce872a6c3..6e4da7bba3 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PC_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PC_extrafast.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.40mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.40_PC_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PC_fast.inst.cfg index ced3fd11e6..5c91de2ce4 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PC_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PC_fast.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.40mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.40_PC_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PC_normal.inst.cfg index 1eb6dec7ed..33dd11fe23 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PC_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PC_normal.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.40mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.40_PETG_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PETG_extrafast.inst.cfg index aecf1c8e14..489f23483e 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PETG_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PETG_extrafast.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.40mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.40_PETG_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PETG_fast.inst.cfg index d925e99c82..725d9a698d 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PETG_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PETG_fast.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.40mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.40_PETG_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PETG_normal.inst.cfg index 4935a02005..ab860069f8 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PETG_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PETG_normal.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.40mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.40_PLA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PLA_extrafast.inst.cfg index 2c2f50c3ce..af6d2ac576 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PLA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PLA_extrafast.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.40mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.40_PLA_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PLA_fast.inst.cfg index 132b113f9f..034b2f8882 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PLA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PLA_fast.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.40mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.40_PLA_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PLA_normal.inst.cfg index ff65464571..c39c6bf266 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PLA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PLA_normal.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.40mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.60_ABS_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_ABS_extrafast.inst.cfg index 7bf9191c8f..ae01058492 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_ABS_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_ABS_extrafast.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.60mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.60_ABS_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_ABS_fast.inst.cfg index fd3a5df813..6938abda38 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_ABS_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_ABS_fast.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.60mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.60_ABS_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_ABS_sprint.inst.cfg index 3760367c3e..03c7a0720c 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_ABS_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_ABS_sprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.60mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.60_Nylon_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_Nylon_extrafast.inst.cfg index 7a3bf27d51..eb6c4ceec8 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_Nylon_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_Nylon_extrafast.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.60mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.60_Nylon_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_Nylon_fast.inst.cfg index 24e01be8ba..e7cddf8f32 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_Nylon_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_Nylon_fast.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.60mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.60_Nylon_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_Nylon_sprint.inst.cfg index f09933e6c6..4724cd7b0c 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_Nylon_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_Nylon_sprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.60mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.60_PC_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PC_extrafast.inst.cfg index 0ce2f72b51..783970ed6d 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PC_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PC_extrafast.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.60mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.60_PC_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PC_fast.inst.cfg index 69f3b0c708..6525687803 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PC_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PC_fast.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.60mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.60_PC_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PC_sprint.inst.cfg index a29d7d3087..7ca5e11b47 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PC_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PC_sprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.60mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.60_PETG_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PETG_extrafast.inst.cfg index 8eb63f3390..4706fbc799 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PETG_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PETG_extrafast.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.60mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.60_PETG_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PETG_fast.inst.cfg index 034c3549bb..dbcd82eab8 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PETG_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PETG_fast.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.60mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.60_PETG_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PETG_sprint.inst.cfg index 4cfefc73ef..7a7e67fb55 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PETG_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PETG_sprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.60mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.60_PLA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PLA_extrafast.inst.cfg index cc18e8a301..ddc2b244e2 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PLA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PLA_extrafast.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.60mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.60_PLA_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PLA_fast.inst.cfg index 7419f53425..22355563bb 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PLA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PLA_fast.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.60mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.60_PLA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PLA_sprint.inst.cfg index 70c21d287d..fc300af2a8 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PLA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PLA_sprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.60mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.80_ABS_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_ABS_extrafast.inst.cfg index 28b09aa879..31d52f04a7 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_ABS_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_ABS_extrafast.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.80mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.80_ABS_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_ABS_sprint.inst.cfg index f15c3e885d..e0d8e14d49 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_ABS_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_ABS_sprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.80mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.80_ABS_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_ABS_supersprint.inst.cfg index ad7693e554..59802b05df 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_ABS_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_ABS_supersprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.80mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.80_Nylon_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_Nylon_extrafast.inst.cfg index 8d31852267..e0dd5e235d 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_Nylon_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_Nylon_extrafast.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.80mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.80_Nylon_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_Nylon_sprint.inst.cfg index 4fee274b0d..7e0a08876b 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_Nylon_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_Nylon_sprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.80mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.80_Nylon_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_Nylon_supersprint.inst.cfg index 0ff444435e..5c32e99925 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_Nylon_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_Nylon_supersprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.80mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.80_PC_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PC_extrafast.inst.cfg index 8c50c6f66f..e1c1a015c8 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PC_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PC_extrafast.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.80mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.80_PC_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PC_sprint.inst.cfg index c07a1a7e3f..093a28b201 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PC_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PC_sprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.80mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.80_PC_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PC_supersprint.inst.cfg index 7c53f11cd4..17c2a260e8 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PC_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PC_supersprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.80mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.80_PETG_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PETG_extrafast.inst.cfg index 7656121cb6..4155ad2b1b 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PETG_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PETG_extrafast.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.80mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.80_PETG_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PETG_sprint.inst.cfg index 7713fb3c49..3231caa70e 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PETG_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PETG_sprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.80mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.80_PETG_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PETG_supersprint.inst.cfg index 0b3c2835ad..a903b92124 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PETG_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PETG_supersprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.80mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.80_PLA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PLA_extrafast.inst.cfg index 4259c678a9..5a6ac2a6f2 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PLA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PLA_extrafast.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.80mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.80_PLA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PLA_sprint.inst.cfg index b1186df8be..444f1c83eb 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PLA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PLA_sprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.80mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.80_PLA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PLA_supersprint.inst.cfg index 81a3d71bd3..875dec64e7 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PLA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PLA_supersprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 0.80mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_1.00_ABS_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_ABS_sprint.inst.cfg index 26c2f65688..7d7a5a0a72 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_ABS_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_ABS_sprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 1.00mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_1.00_ABS_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_ABS_supersprint.inst.cfg index 68462c3102..9dca95ae6e 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_ABS_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_ABS_supersprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 1.00mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_1.00_ABS_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_ABS_ultrasprint.inst.cfg index 3bcc573acd..0be6c42f4d 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_ABS_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_ABS_ultrasprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 1.00mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_1.00_Nylon_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_Nylon_sprint.inst.cfg index 54219aba03..64b73ab917 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_Nylon_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_Nylon_sprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 1.00mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_1.00_Nylon_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_Nylon_supersprint.inst.cfg index 76f56be1f7..f1c9e2a2c0 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_Nylon_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_Nylon_supersprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 1.00mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_1.00_Nylon_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_Nylon_ultrasprint.inst.cfg index 219d009fdb..ac6db74862 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_Nylon_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_Nylon_ultrasprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 1.00mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_1.00_PC_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PC_sprint.inst.cfg index c96f54ea26..7649a43f5d 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PC_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PC_sprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 1.00mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_1.00_PC_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PC_supersprint.inst.cfg index 021b450b28..e162589f57 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PC_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PC_supersprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 1.00mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_1.00_PC_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PC_ultrasprint.inst.cfg index b44867dcdb..6fa2faa341 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PC_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PC_ultrasprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 1.00mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_1.00_PETG_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PETG_sprint.inst.cfg index 76b501b168..2c31d59610 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PETG_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PETG_sprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 1.00mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_1.00_PETG_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PETG_supersprint.inst.cfg index e318ae4f02..958f6cd98e 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PETG_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PETG_supersprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 1.00mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_1.00_PETG_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PETG_ultrasprint.inst.cfg index 6aa43550af..7c900aa186 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PETG_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PETG_ultrasprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 1.00mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_1.00_PLA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PLA_sprint.inst.cfg index 7f56e0fc03..de6a936869 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PLA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PLA_sprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 1.00mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_1.00_PLA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PLA_supersprint.inst.cfg index b06b834bc1..16c7119d8d 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PLA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PLA_supersprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 1.00mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_1.00_PLA_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PLA_ultrasprint.inst.cfg index 48ee5f097a..39df0d1a7f 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PLA_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PLA_ultrasprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 1.00mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_1.20_ABS_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_ABS_sprint.inst.cfg index 53faba67bf..1a2ca1d3b1 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_ABS_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_ABS_sprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 1.20mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_1.20_ABS_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_ABS_supersprint.inst.cfg index 8e4524be36..76ce17e0fc 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_ABS_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_ABS_supersprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 1.20mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_1.20_ABS_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_ABS_ultrasprint.inst.cfg index f8523e4247..47dc5dc1b0 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_ABS_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_ABS_ultrasprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 1.20mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_1.20_Nylon_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_Nylon_sprint.inst.cfg index 512b1ed901..679f4228ce 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_Nylon_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_Nylon_sprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 1.20mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_1.20_Nylon_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_Nylon_supersprint.inst.cfg index 7d14779dee..4eb0b4941b 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_Nylon_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_Nylon_supersprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 1.20mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_1.20_Nylon_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_Nylon_ultrasprint.inst.cfg index 65386eff00..cc39020199 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_Nylon_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_Nylon_ultrasprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 1.20mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_1.20_PC_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PC_sprint.inst.cfg index a34620e57b..1dceb794b0 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PC_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PC_sprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 1.20mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_1.20_PC_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PC_supersprint.inst.cfg index 6814646611..d14c63341e 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PC_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PC_supersprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 1.20mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_1.20_PC_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PC_ultrasprint.inst.cfg index 5b0d985bca..04ba4e0051 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PC_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PC_ultrasprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 1.20mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_1.20_PETG_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PETG_sprint.inst.cfg index f9efd98bed..87dca651db 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PETG_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PETG_sprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 1.20mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_1.20_PETG_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PETG_supersprint.inst.cfg index b6befe7c9f..ed14769f41 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PETG_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PETG_supersprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 1.20mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_1.20_PETG_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PETG_ultrasprint.inst.cfg index 322f9eb9db..9f6cb2e145 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PETG_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PETG_ultrasprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 1.20mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_1.20_PLA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PLA_sprint.inst.cfg index 870cec7719..551c86b209 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PLA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PLA_sprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 1.20mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_1.20_PLA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PLA_supersprint.inst.cfg index 6737e43771..1c1ed9f51c 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PLA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PLA_supersprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 1.20mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_1.20_PLA_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PLA_ultrasprint.inst.cfg index b229acd19e..8eb27ec00c 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PLA_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PLA_ultrasprint.inst.cfg @@ -12,3 +12,4 @@ variant = Volcano 1.20mm [values] speed_print = round(20 / layer_height / machine_nozzle_size, -1) + From 17cc53dde41db6cef1eebfc1d7c17b174f17c580 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Tue, 3 Sep 2024 14:02:41 -0400 Subject: [PATCH 021/200] Update ASA, PVA, and TPU profiles --- .../quality/voron2/voron2_v6_0.25_ASA_extrafine.inst.cfg | 1 - resources/quality/voron2/voron2_v6_0.25_ASA_fast.inst.cfg | 1 - resources/quality/voron2/voron2_v6_0.25_ASA_fine.inst.cfg | 1 - .../quality/voron2/voron2_v6_0.25_ASA_normal.inst.cfg | 1 - .../quality/voron2/voron2_v6_0.25_PVA_extrafine.inst.cfg | 1 - resources/quality/voron2/voron2_v6_0.25_PVA_fast.inst.cfg | 1 - resources/quality/voron2/voron2_v6_0.25_PVA_fine.inst.cfg | 1 - .../quality/voron2/voron2_v6_0.25_PVA_normal.inst.cfg | 1 - .../quality/voron2/voron2_v6_0.25_TPU_extrafine.inst.cfg | 7 ------- resources/quality/voron2/voron2_v6_0.25_TPU_fast.inst.cfg | 7 ------- resources/quality/voron2/voron2_v6_0.25_TPU_fine.inst.cfg | 7 ------- .../quality/voron2/voron2_v6_0.25_TPU_normal.inst.cfg | 7 ------- .../quality/voron2/voron2_v6_0.30_ASA_extrafine.inst.cfg | 1 - resources/quality/voron2/voron2_v6_0.30_ASA_fast.inst.cfg | 1 - resources/quality/voron2/voron2_v6_0.30_ASA_fine.inst.cfg | 1 - .../quality/voron2/voron2_v6_0.30_ASA_normal.inst.cfg | 1 - .../quality/voron2/voron2_v6_0.30_PVA_extrafine.inst.cfg | 1 - resources/quality/voron2/voron2_v6_0.30_PVA_fast.inst.cfg | 1 - resources/quality/voron2/voron2_v6_0.30_PVA_fine.inst.cfg | 1 - .../quality/voron2/voron2_v6_0.30_PVA_normal.inst.cfg | 1 - .../quality/voron2/voron2_v6_0.30_TPU_extrafine.inst.cfg | 7 ------- resources/quality/voron2/voron2_v6_0.30_TPU_fast.inst.cfg | 7 ------- resources/quality/voron2/voron2_v6_0.30_TPU_fine.inst.cfg | 7 ------- .../quality/voron2/voron2_v6_0.30_TPU_normal.inst.cfg | 7 ------- resources/quality/voron2/voron2_v6_0.35_ASA_fast.inst.cfg | 1 - resources/quality/voron2/voron2_v6_0.35_ASA_fine.inst.cfg | 1 - .../quality/voron2/voron2_v6_0.35_ASA_normal.inst.cfg | 1 - resources/quality/voron2/voron2_v6_0.35_PVA_fast.inst.cfg | 1 - resources/quality/voron2/voron2_v6_0.35_PVA_fine.inst.cfg | 1 - .../quality/voron2/voron2_v6_0.35_PVA_normal.inst.cfg | 1 - resources/quality/voron2/voron2_v6_0.35_TPU_fast.inst.cfg | 7 ------- resources/quality/voron2/voron2_v6_0.35_TPU_fine.inst.cfg | 7 ------- .../quality/voron2/voron2_v6_0.35_TPU_normal.inst.cfg | 7 ------- .../quality/voron2/voron2_v6_0.40_ASA_extrafast.inst.cfg | 1 - resources/quality/voron2/voron2_v6_0.40_ASA_fast.inst.cfg | 1 - resources/quality/voron2/voron2_v6_0.40_ASA_fine.inst.cfg | 1 - .../quality/voron2/voron2_v6_0.40_ASA_normal.inst.cfg | 1 - .../quality/voron2/voron2_v6_0.40_PVA_extrafast.inst.cfg | 1 - resources/quality/voron2/voron2_v6_0.40_PVA_fast.inst.cfg | 1 - resources/quality/voron2/voron2_v6_0.40_PVA_fine.inst.cfg | 1 - .../quality/voron2/voron2_v6_0.40_PVA_normal.inst.cfg | 1 - .../quality/voron2/voron2_v6_0.40_TPU_extrafast.inst.cfg | 7 ------- resources/quality/voron2/voron2_v6_0.40_TPU_fast.inst.cfg | 7 ------- resources/quality/voron2/voron2_v6_0.40_TPU_fine.inst.cfg | 7 ------- .../quality/voron2/voron2_v6_0.40_TPU_normal.inst.cfg | 7 ------- .../quality/voron2/voron2_v6_0.50_ASA_extrafast.inst.cfg | 1 - resources/quality/voron2/voron2_v6_0.50_ASA_fast.inst.cfg | 1 - .../quality/voron2/voron2_v6_0.50_ASA_normal.inst.cfg | 1 - .../quality/voron2/voron2_v6_0.50_ASA_sprint.inst.cfg | 1 - .../quality/voron2/voron2_v6_0.50_PVA_extrafast.inst.cfg | 1 - resources/quality/voron2/voron2_v6_0.50_PVA_fast.inst.cfg | 1 - .../quality/voron2/voron2_v6_0.50_PVA_normal.inst.cfg | 1 - .../quality/voron2/voron2_v6_0.50_PVA_sprint.inst.cfg | 1 - .../quality/voron2/voron2_v6_0.50_TPU_extrafast.inst.cfg | 7 ------- resources/quality/voron2/voron2_v6_0.50_TPU_fast.inst.cfg | 7 ------- .../quality/voron2/voron2_v6_0.50_TPU_normal.inst.cfg | 7 ------- .../quality/voron2/voron2_v6_0.50_TPU_sprint.inst.cfg | 7 ------- .../quality/voron2/voron2_v6_0.60_ASA_extrafast.inst.cfg | 1 - resources/quality/voron2/voron2_v6_0.60_ASA_fast.inst.cfg | 1 - .../quality/voron2/voron2_v6_0.60_ASA_sprint.inst.cfg | 1 - .../quality/voron2/voron2_v6_0.60_PVA_extrafast.inst.cfg | 1 - resources/quality/voron2/voron2_v6_0.60_PVA_fast.inst.cfg | 1 - .../quality/voron2/voron2_v6_0.60_PVA_sprint.inst.cfg | 1 - .../quality/voron2/voron2_v6_0.60_TPU_extrafast.inst.cfg | 7 ------- resources/quality/voron2/voron2_v6_0.60_TPU_fast.inst.cfg | 7 ------- .../quality/voron2/voron2_v6_0.60_TPU_sprint.inst.cfg | 7 ------- .../quality/voron2/voron2_v6_0.80_ASA_extrafast.inst.cfg | 1 - .../quality/voron2/voron2_v6_0.80_ASA_sprint.inst.cfg | 1 - .../voron2/voron2_v6_0.80_ASA_supersprint.inst.cfg | 1 - .../quality/voron2/voron2_v6_0.80_PVA_extrafast.inst.cfg | 1 - .../quality/voron2/voron2_v6_0.80_PVA_sprint.inst.cfg | 1 - .../voron2/voron2_v6_0.80_PVA_supersprint.inst.cfg | 1 - .../quality/voron2/voron2_v6_0.80_TPU_extrafast.inst.cfg | 7 ------- .../quality/voron2/voron2_v6_0.80_TPU_sprint.inst.cfg | 7 ------- .../voron2/voron2_v6_0.80_TPU_supersprint.inst.cfg | 7 ------- .../voron2/voron2_volcano_0.40_ASA_extrafast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_ASA_fast.inst.cfg | 2 +- .../voron2/voron2_volcano_0.40_ASA_normal.inst.cfg | 2 +- .../voron2/voron2_volcano_0.40_PVA_extrafast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_PVA_fast.inst.cfg | 2 +- .../voron2/voron2_volcano_0.40_PVA_normal.inst.cfg | 2 +- .../voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg | 8 +------- .../quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg | 8 +------- .../voron2/voron2_volcano_0.40_TPU_normal.inst.cfg | 8 +------- .../voron2/voron2_volcano_0.60_ASA_extrafast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_ASA_fast.inst.cfg | 2 +- .../voron2/voron2_volcano_0.60_ASA_sprint.inst.cfg | 2 +- .../voron2/voron2_volcano_0.60_PVA_extrafast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_PVA_fast.inst.cfg | 2 +- .../voron2/voron2_volcano_0.60_PVA_sprint.inst.cfg | 2 +- .../voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg | 8 +------- .../quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg | 8 +------- .../voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg | 8 +------- .../voron2/voron2_volcano_0.80_ASA_extrafast.inst.cfg | 2 +- .../voron2/voron2_volcano_0.80_ASA_sprint.inst.cfg | 2 +- .../voron2/voron2_volcano_0.80_ASA_supersprint.inst.cfg | 2 +- .../voron2/voron2_volcano_0.80_PVA_extrafast.inst.cfg | 2 +- .../voron2/voron2_volcano_0.80_PVA_sprint.inst.cfg | 2 +- .../voron2/voron2_volcano_0.80_PVA_supersprint.inst.cfg | 2 +- .../voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg | 8 +------- .../voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg | 8 +------- .../voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg | 8 +------- .../voron2/voron2_volcano_1.00_ASA_sprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.00_ASA_supersprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.00_ASA_ultrasprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.00_PVA_sprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.00_PVA_supersprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.00_PVA_ultrasprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg | 8 +------- .../voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg | 8 +------- .../voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg | 8 +------- .../voron2/voron2_volcano_1.20_ASA_sprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.20_ASA_supersprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.20_ASA_ultrasprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.20_PVA_sprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.20_PVA_supersprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.20_PVA_ultrasprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg | 8 +------- .../voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg | 8 +------- .../voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg | 8 +------- 120 files changed, 45 insertions(+), 360 deletions(-) diff --git a/resources/quality/voron2/voron2_v6_0.25_ASA_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_ASA_extrafine.inst.cfg index d89894647c..df4be20d28 100644 --- a/resources/quality/voron2/voron2_v6_0.25_ASA_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_ASA_extrafine.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.25mm [values] -speed_print = 300 diff --git a/resources/quality/voron2/voron2_v6_0.25_ASA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_ASA_fast.inst.cfg index e3d0252d49..1772f67643 100644 --- a/resources/quality/voron2/voron2_v6_0.25_ASA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_ASA_fast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.25mm [values] -speed_print = 180 diff --git a/resources/quality/voron2/voron2_v6_0.25_ASA_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_ASA_fine.inst.cfg index ab3e3e17ea..9df9b621af 100644 --- a/resources/quality/voron2/voron2_v6_0.25_ASA_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_ASA_fine.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.25mm [values] -speed_print = 300 diff --git a/resources/quality/voron2/voron2_v6_0.25_ASA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_ASA_normal.inst.cfg index b9e9565c3c..abef007dd9 100644 --- a/resources/quality/voron2/voron2_v6_0.25_ASA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_ASA_normal.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.25mm [values] -speed_print = 240 diff --git a/resources/quality/voron2/voron2_v6_0.25_PVA_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_PVA_extrafine.inst.cfg index 991ac5d101..eef91c1e3d 100644 --- a/resources/quality/voron2/voron2_v6_0.25_PVA_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_PVA_extrafine.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.25mm [values] -speed_print = 300 diff --git a/resources/quality/voron2/voron2_v6_0.25_PVA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_PVA_fast.inst.cfg index e148d1c4b6..ee7051be0b 100644 --- a/resources/quality/voron2/voron2_v6_0.25_PVA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_PVA_fast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.25mm [values] -speed_print = 180 diff --git a/resources/quality/voron2/voron2_v6_0.25_PVA_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_PVA_fine.inst.cfg index 9b9a0ffee9..5a4327f0db 100644 --- a/resources/quality/voron2/voron2_v6_0.25_PVA_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_PVA_fine.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.25mm [values] -speed_print = 300 diff --git a/resources/quality/voron2/voron2_v6_0.25_PVA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_PVA_normal.inst.cfg index d134c72fdb..6b6117ef13 100644 --- a/resources/quality/voron2/voron2_v6_0.25_PVA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_PVA_normal.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.25mm [values] -speed_print = 240 diff --git a/resources/quality/voron2/voron2_v6_0.25_TPU_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_TPU_extrafine.inst.cfg index e7b6b714fb..798a560548 100644 --- a/resources/quality/voron2/voron2_v6_0.25_TPU_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_TPU_extrafine.inst.cfg @@ -12,11 +12,4 @@ variant = V6 0.25mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 300 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.25_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_TPU_fast.inst.cfg index a93e0bd832..0461693fe9 100644 --- a/resources/quality/voron2/voron2_v6_0.25_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_TPU_fast.inst.cfg @@ -12,11 +12,4 @@ variant = V6 0.25mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 180 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.25_TPU_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_TPU_fine.inst.cfg index ee2404bc08..41abf8e4ed 100644 --- a/resources/quality/voron2/voron2_v6_0.25_TPU_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_TPU_fine.inst.cfg @@ -12,11 +12,4 @@ variant = V6 0.25mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 300 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.25_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_TPU_normal.inst.cfg index 6931141a6f..5d5d9ea903 100644 --- a/resources/quality/voron2/voron2_v6_0.25_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_TPU_normal.inst.cfg @@ -12,11 +12,4 @@ variant = V6 0.25mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 240 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.30_ASA_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_ASA_extrafine.inst.cfg index 895ff9daf4..57e37a51c2 100644 --- a/resources/quality/voron2/voron2_v6_0.30_ASA_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_ASA_extrafine.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.30mm [values] -speed_print = 300 diff --git a/resources/quality/voron2/voron2_v6_0.30_ASA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_ASA_fast.inst.cfg index f10be46a98..ebab764127 100644 --- a/resources/quality/voron2/voron2_v6_0.30_ASA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_ASA_fast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.30mm [values] -speed_print = 160 diff --git a/resources/quality/voron2/voron2_v6_0.30_ASA_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_ASA_fine.inst.cfg index 2b7356f1a5..c66e3973c4 100644 --- a/resources/quality/voron2/voron2_v6_0.30_ASA_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_ASA_fine.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.30mm [values] -speed_print = 300 diff --git a/resources/quality/voron2/voron2_v6_0.30_ASA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_ASA_normal.inst.cfg index 542b8d2986..c460150bfd 100644 --- a/resources/quality/voron2/voron2_v6_0.30_ASA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_ASA_normal.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.30mm [values] -speed_print = 200 diff --git a/resources/quality/voron2/voron2_v6_0.30_PVA_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_PVA_extrafine.inst.cfg index 2ce1651a4c..b6e1939472 100644 --- a/resources/quality/voron2/voron2_v6_0.30_PVA_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_PVA_extrafine.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.30mm [values] -speed_print = 300 diff --git a/resources/quality/voron2/voron2_v6_0.30_PVA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_PVA_fast.inst.cfg index cac8e008e9..0023bebe32 100644 --- a/resources/quality/voron2/voron2_v6_0.30_PVA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_PVA_fast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.30mm [values] -speed_print = 160 diff --git a/resources/quality/voron2/voron2_v6_0.30_PVA_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_PVA_fine.inst.cfg index 616a9537c8..bbc965584f 100644 --- a/resources/quality/voron2/voron2_v6_0.30_PVA_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_PVA_fine.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.30mm [values] -speed_print = 300 diff --git a/resources/quality/voron2/voron2_v6_0.30_PVA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_PVA_normal.inst.cfg index 75ed433d4c..929b087280 100644 --- a/resources/quality/voron2/voron2_v6_0.30_PVA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_PVA_normal.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.30mm [values] -speed_print = 200 diff --git a/resources/quality/voron2/voron2_v6_0.30_TPU_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_TPU_extrafine.inst.cfg index 217caf5659..2427503796 100644 --- a/resources/quality/voron2/voron2_v6_0.30_TPU_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_TPU_extrafine.inst.cfg @@ -12,11 +12,4 @@ variant = V6 0.30mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 300 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.30_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_TPU_fast.inst.cfg index bd067c1827..b6516b5d87 100644 --- a/resources/quality/voron2/voron2_v6_0.30_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_TPU_fast.inst.cfg @@ -12,11 +12,4 @@ variant = V6 0.30mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 160 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.30_TPU_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_TPU_fine.inst.cfg index 05000e8e19..9cc5dad406 100644 --- a/resources/quality/voron2/voron2_v6_0.30_TPU_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_TPU_fine.inst.cfg @@ -12,11 +12,4 @@ variant = V6 0.30mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 300 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.30_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_TPU_normal.inst.cfg index a934707451..5cf9060140 100644 --- a/resources/quality/voron2/voron2_v6_0.30_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_TPU_normal.inst.cfg @@ -12,11 +12,4 @@ variant = V6 0.30mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 200 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.35_ASA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_ASA_fast.inst.cfg index 49bdf430a3..2b3c58b684 100644 --- a/resources/quality/voron2/voron2_v6_0.35_ASA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_ASA_fast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.35mm [values] -speed_print = 135 diff --git a/resources/quality/voron2/voron2_v6_0.35_ASA_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_ASA_fine.inst.cfg index 531dcb8b39..b0b6fe0225 100644 --- a/resources/quality/voron2/voron2_v6_0.35_ASA_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_ASA_fine.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.35mm [values] -speed_print = 270 diff --git a/resources/quality/voron2/voron2_v6_0.35_ASA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_ASA_normal.inst.cfg index 656d982e01..9db12fbde2 100644 --- a/resources/quality/voron2/voron2_v6_0.35_ASA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_ASA_normal.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.35mm [values] -speed_print = 180 diff --git a/resources/quality/voron2/voron2_v6_0.35_PVA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_PVA_fast.inst.cfg index 3b0eb953ba..e2a749707a 100644 --- a/resources/quality/voron2/voron2_v6_0.35_PVA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_PVA_fast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.35mm [values] -speed_print = 135 diff --git a/resources/quality/voron2/voron2_v6_0.35_PVA_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_PVA_fine.inst.cfg index 51128170f4..b103d228ae 100644 --- a/resources/quality/voron2/voron2_v6_0.35_PVA_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_PVA_fine.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.35mm [values] -speed_print = 270 diff --git a/resources/quality/voron2/voron2_v6_0.35_PVA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_PVA_normal.inst.cfg index 00ba1c8267..4a43aa9d41 100644 --- a/resources/quality/voron2/voron2_v6_0.35_PVA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_PVA_normal.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.35mm [values] -speed_print = 180 diff --git a/resources/quality/voron2/voron2_v6_0.35_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_TPU_fast.inst.cfg index 57751118f9..3af63aad73 100644 --- a/resources/quality/voron2/voron2_v6_0.35_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_TPU_fast.inst.cfg @@ -12,11 +12,4 @@ variant = V6 0.35mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 135 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.35_TPU_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_TPU_fine.inst.cfg index 4016f5584e..cbc1f5b9e7 100644 --- a/resources/quality/voron2/voron2_v6_0.35_TPU_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_TPU_fine.inst.cfg @@ -12,11 +12,4 @@ variant = V6 0.35mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 270 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.35_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_TPU_normal.inst.cfg index b7474b0cbd..89c39e4fbc 100644 --- a/resources/quality/voron2/voron2_v6_0.35_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_TPU_normal.inst.cfg @@ -12,11 +12,4 @@ variant = V6 0.35mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 180 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.40_ASA_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_ASA_extrafast.inst.cfg index de76119db3..d571ee2d22 100644 --- a/resources/quality/voron2/voron2_v6_0.40_ASA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_ASA_extrafast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.40mm [values] -speed_print = 80 diff --git a/resources/quality/voron2/voron2_v6_0.40_ASA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_ASA_fast.inst.cfg index 4819149590..754dd7e04d 100644 --- a/resources/quality/voron2/voron2_v6_0.40_ASA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_ASA_fast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.40mm [values] -speed_print = 120 diff --git a/resources/quality/voron2/voron2_v6_0.40_ASA_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_ASA_fine.inst.cfg index 777d39748c..4363cbacdb 100644 --- a/resources/quality/voron2/voron2_v6_0.40_ASA_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_ASA_fine.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.40mm [values] -speed_print = 240 diff --git a/resources/quality/voron2/voron2_v6_0.40_ASA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_ASA_normal.inst.cfg index 294d9c66b8..5b53869da8 100644 --- a/resources/quality/voron2/voron2_v6_0.40_ASA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_ASA_normal.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.40mm [values] -speed_print = 160 diff --git a/resources/quality/voron2/voron2_v6_0.40_PVA_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_PVA_extrafast.inst.cfg index 53497d7923..f5abc4f123 100644 --- a/resources/quality/voron2/voron2_v6_0.40_PVA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_PVA_extrafast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.40mm [values] -speed_print = 80 diff --git a/resources/quality/voron2/voron2_v6_0.40_PVA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_PVA_fast.inst.cfg index 43a0ffa1ad..8fa81bfee1 100644 --- a/resources/quality/voron2/voron2_v6_0.40_PVA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_PVA_fast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.40mm [values] -speed_print = 120 diff --git a/resources/quality/voron2/voron2_v6_0.40_PVA_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_PVA_fine.inst.cfg index 8c737fbf04..72ecb30091 100644 --- a/resources/quality/voron2/voron2_v6_0.40_PVA_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_PVA_fine.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.40mm [values] -speed_print = 240 diff --git a/resources/quality/voron2/voron2_v6_0.40_PVA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_PVA_normal.inst.cfg index 2d4595f38e..9ce35ae3d2 100644 --- a/resources/quality/voron2/voron2_v6_0.40_PVA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_PVA_normal.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.40mm [values] -speed_print = 160 diff --git a/resources/quality/voron2/voron2_v6_0.40_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_TPU_extrafast.inst.cfg index 7b8ecd4957..659025517f 100644 --- a/resources/quality/voron2/voron2_v6_0.40_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_TPU_extrafast.inst.cfg @@ -12,11 +12,4 @@ variant = V6 0.40mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 80 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.40_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_TPU_fast.inst.cfg index cc323328b3..39c04933b8 100644 --- a/resources/quality/voron2/voron2_v6_0.40_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_TPU_fast.inst.cfg @@ -12,11 +12,4 @@ variant = V6 0.40mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 120 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.40_TPU_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_TPU_fine.inst.cfg index fcdc58c5d0..60a287bfd7 100644 --- a/resources/quality/voron2/voron2_v6_0.40_TPU_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_TPU_fine.inst.cfg @@ -12,11 +12,4 @@ variant = V6 0.40mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 240 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.40_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_TPU_normal.inst.cfg index 63d675bb68..a9cfa7418a 100644 --- a/resources/quality/voron2/voron2_v6_0.40_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_TPU_normal.inst.cfg @@ -12,11 +12,4 @@ variant = V6 0.40mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 160 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.50_ASA_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_ASA_extrafast.inst.cfg index e948b334da..aa4cbabbf1 100644 --- a/resources/quality/voron2/voron2_v6_0.50_ASA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_ASA_extrafast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.50mm [values] -speed_print = 60 diff --git a/resources/quality/voron2/voron2_v6_0.50_ASA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_ASA_fast.inst.cfg index 5b11b8a69a..0dc1b4ba66 100644 --- a/resources/quality/voron2/voron2_v6_0.50_ASA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_ASA_fast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.50mm [values] -speed_print = 90 diff --git a/resources/quality/voron2/voron2_v6_0.50_ASA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_ASA_normal.inst.cfg index ebb14aab78..aee604e986 100644 --- a/resources/quality/voron2/voron2_v6_0.50_ASA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_ASA_normal.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.50mm [values] -speed_print = 120 diff --git a/resources/quality/voron2/voron2_v6_0.50_ASA_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_ASA_sprint.inst.cfg index 0fc5fbe8d5..a9cc124c9c 100644 --- a/resources/quality/voron2/voron2_v6_0.50_ASA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_ASA_sprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.50mm [values] -speed_print = 45 diff --git a/resources/quality/voron2/voron2_v6_0.50_PVA_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_PVA_extrafast.inst.cfg index efcf6f0246..2f157307aa 100644 --- a/resources/quality/voron2/voron2_v6_0.50_PVA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_PVA_extrafast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.50mm [values] -speed_print = 60 diff --git a/resources/quality/voron2/voron2_v6_0.50_PVA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_PVA_fast.inst.cfg index 670e236a79..cead13de8f 100644 --- a/resources/quality/voron2/voron2_v6_0.50_PVA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_PVA_fast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.50mm [values] -speed_print = 90 diff --git a/resources/quality/voron2/voron2_v6_0.50_PVA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_PVA_normal.inst.cfg index 878507ce99..1a06c77a85 100644 --- a/resources/quality/voron2/voron2_v6_0.50_PVA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_PVA_normal.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.50mm [values] -speed_print = 120 diff --git a/resources/quality/voron2/voron2_v6_0.50_PVA_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_PVA_sprint.inst.cfg index f4f6b4dfff..dc7204f6ac 100644 --- a/resources/quality/voron2/voron2_v6_0.50_PVA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_PVA_sprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.50mm [values] -speed_print = 45 diff --git a/resources/quality/voron2/voron2_v6_0.50_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_TPU_extrafast.inst.cfg index 7fa652d855..7cf341f5ac 100644 --- a/resources/quality/voron2/voron2_v6_0.50_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_TPU_extrafast.inst.cfg @@ -12,11 +12,4 @@ variant = V6 0.50mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 60 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.50_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_TPU_fast.inst.cfg index 898a271b49..1022c05639 100644 --- a/resources/quality/voron2/voron2_v6_0.50_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_TPU_fast.inst.cfg @@ -12,11 +12,4 @@ variant = V6 0.50mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 90 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.50_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_TPU_normal.inst.cfg index b7aaa1f7a2..d90f7ef50a 100644 --- a/resources/quality/voron2/voron2_v6_0.50_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_TPU_normal.inst.cfg @@ -12,11 +12,4 @@ variant = V6 0.50mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 120 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.50_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_TPU_sprint.inst.cfg index f05f652783..a63a1f8007 100644 --- a/resources/quality/voron2/voron2_v6_0.50_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_TPU_sprint.inst.cfg @@ -12,11 +12,4 @@ variant = V6 0.50mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 45 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.60_ASA_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_ASA_extrafast.inst.cfg index 4bb9372a9b..30518b613b 100644 --- a/resources/quality/voron2/voron2_v6_0.60_ASA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_ASA_extrafast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.60mm [values] -speed_print = 50 diff --git a/resources/quality/voron2/voron2_v6_0.60_ASA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_ASA_fast.inst.cfg index fbb74fb9ca..676763a7c6 100644 --- a/resources/quality/voron2/voron2_v6_0.60_ASA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_ASA_fast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.60mm [values] -speed_print = 80 diff --git a/resources/quality/voron2/voron2_v6_0.60_ASA_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_ASA_sprint.inst.cfg index 3e8e8195bc..00f1ec0916 100644 --- a/resources/quality/voron2/voron2_v6_0.60_ASA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_ASA_sprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.60mm [values] -speed_print = 40 diff --git a/resources/quality/voron2/voron2_v6_0.60_PVA_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_PVA_extrafast.inst.cfg index 66b0fd971c..77596c9813 100644 --- a/resources/quality/voron2/voron2_v6_0.60_PVA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_PVA_extrafast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.60mm [values] -speed_print = 50 diff --git a/resources/quality/voron2/voron2_v6_0.60_PVA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_PVA_fast.inst.cfg index 26bdebd1b2..e60fcd371c 100644 --- a/resources/quality/voron2/voron2_v6_0.60_PVA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_PVA_fast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.60mm [values] -speed_print = 80 diff --git a/resources/quality/voron2/voron2_v6_0.60_PVA_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_PVA_sprint.inst.cfg index 4e5662790b..e782cb5dee 100644 --- a/resources/quality/voron2/voron2_v6_0.60_PVA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_PVA_sprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.60mm [values] -speed_print = 40 diff --git a/resources/quality/voron2/voron2_v6_0.60_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_TPU_extrafast.inst.cfg index 5e053d8bc4..92916b92cf 100644 --- a/resources/quality/voron2/voron2_v6_0.60_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_TPU_extrafast.inst.cfg @@ -12,11 +12,4 @@ variant = V6 0.60mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 50 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.60_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_TPU_fast.inst.cfg index d2b06a4d31..afa07e7666 100644 --- a/resources/quality/voron2/voron2_v6_0.60_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_TPU_fast.inst.cfg @@ -12,11 +12,4 @@ variant = V6 0.60mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 80 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.60_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_TPU_sprint.inst.cfg index b6a752f140..5cebc2317b 100644 --- a/resources/quality/voron2/voron2_v6_0.60_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_TPU_sprint.inst.cfg @@ -12,11 +12,4 @@ variant = V6 0.60mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 40 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.80_ASA_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_ASA_extrafast.inst.cfg index 51da4e343b..00ce64c140 100644 --- a/resources/quality/voron2/voron2_v6_0.80_ASA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_ASA_extrafast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.80mm [values] -speed_print = 40 diff --git a/resources/quality/voron2/voron2_v6_0.80_ASA_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_ASA_sprint.inst.cfg index 77aebb66d9..98335187d7 100644 --- a/resources/quality/voron2/voron2_v6_0.80_ASA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_ASA_sprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.80mm [values] -speed_print = 30 diff --git a/resources/quality/voron2/voron2_v6_0.80_ASA_supersprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_ASA_supersprint.inst.cfg index 9b99c0eef3..8012f3ca45 100644 --- a/resources/quality/voron2/voron2_v6_0.80_ASA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_ASA_supersprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.80mm [values] -speed_print = 24 diff --git a/resources/quality/voron2/voron2_v6_0.80_PVA_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_PVA_extrafast.inst.cfg index a6b11d0f45..267976bcf6 100644 --- a/resources/quality/voron2/voron2_v6_0.80_PVA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_PVA_extrafast.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.80mm [values] -speed_print = 40 diff --git a/resources/quality/voron2/voron2_v6_0.80_PVA_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_PVA_sprint.inst.cfg index 6b74da6994..5a1892f0a9 100644 --- a/resources/quality/voron2/voron2_v6_0.80_PVA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_PVA_sprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.80mm [values] -speed_print = 30 diff --git a/resources/quality/voron2/voron2_v6_0.80_PVA_supersprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_PVA_supersprint.inst.cfg index 431ecc57e9..5787d6d022 100644 --- a/resources/quality/voron2/voron2_v6_0.80_PVA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_PVA_supersprint.inst.cfg @@ -11,5 +11,4 @@ type = quality variant = V6 0.80mm [values] -speed_print = 24 diff --git a/resources/quality/voron2/voron2_v6_0.80_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_TPU_extrafast.inst.cfg index 94fa58ec41..f5e178f2ba 100644 --- a/resources/quality/voron2/voron2_v6_0.80_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_TPU_extrafast.inst.cfg @@ -12,11 +12,4 @@ variant = V6 0.80mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 40 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.80_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_TPU_sprint.inst.cfg index ed6e3bbd96..ef761c18d7 100644 --- a/resources/quality/voron2/voron2_v6_0.80_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_TPU_sprint.inst.cfg @@ -12,11 +12,4 @@ variant = V6 0.80mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 30 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.80_TPU_supersprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_TPU_supersprint.inst.cfg index 49e348299b..84fa1c3ac1 100644 --- a/resources/quality/voron2/voron2_v6_0.80_TPU_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_TPU_supersprint.inst.cfg @@ -12,11 +12,4 @@ variant = V6 0.80mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 24 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_volcano_0.40_ASA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_ASA_extrafast.inst.cfg index 2d1e463704..7b710f56be 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_ASA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_ASA_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = 250 +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_ASA_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_ASA_fast.inst.cfg index 4a61f16bb9..f0512eed5c 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_ASA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_ASA_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = 300 +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_ASA_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_ASA_normal.inst.cfg index 3906f5a5a3..6b9642b034 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_ASA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_ASA_normal.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = 300 +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PVA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PVA_extrafast.inst.cfg index 6316562eec..921979c35c 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PVA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PVA_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = 250 +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PVA_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PVA_fast.inst.cfg index 51f85f9d60..36de08490b 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PVA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PVA_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = 300 +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PVA_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PVA_normal.inst.cfg index def6946bf1..3c1300a3b0 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PVA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PVA_normal.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = 300 +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg index 13df7a17fe..2111df0677 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg @@ -12,11 +12,5 @@ variant = Volcano 0.40mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 250 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg index f7f4de0b25..8df6ff3069 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg @@ -12,11 +12,5 @@ variant = Volcano 0.40mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 300 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg index 0f7fdf0238..89b5e9c9ee 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg @@ -12,11 +12,5 @@ variant = Volcano 0.40mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 300 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_ASA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_ASA_extrafast.inst.cfg index d41c155234..fb68e3a552 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_ASA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_ASA_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = 165 +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_ASA_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_ASA_fast.inst.cfg index 9c69b07258..cc9e76cdc4 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_ASA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_ASA_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = 250 +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_ASA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_ASA_sprint.inst.cfg index 5b35eec0b7..4a192db94e 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_ASA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_ASA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = 125 +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PVA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PVA_extrafast.inst.cfg index 470729ca7c..504ea3a868 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PVA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PVA_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = 165 +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PVA_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PVA_fast.inst.cfg index e2b949208e..dd6fd5e1b7 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PVA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PVA_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = 250 +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PVA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PVA_sprint.inst.cfg index e630937656..57096e0376 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PVA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PVA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = 125 +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg index a026d13755..f629dea305 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg @@ -12,11 +12,5 @@ variant = Volcano 0.60mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 165 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg index 2551c5085d..e87f63d7a2 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg @@ -12,11 +12,5 @@ variant = Volcano 0.60mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 250 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg index 03d7a5de60..510f5eba6b 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg @@ -12,11 +12,5 @@ variant = Volcano 0.60mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 125 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_ASA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_ASA_extrafast.inst.cfg index bc372dae4b..9fd4efa2e2 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_ASA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_ASA_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = 125 +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_ASA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_ASA_sprint.inst.cfg index 41af7ad552..6d4a1eded7 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_ASA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_ASA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = 90 +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_ASA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_ASA_supersprint.inst.cfg index 990bb0d518..6dee82f910 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_ASA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_ASA_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = 70 +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PVA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PVA_extrafast.inst.cfg index 8a739087b3..b88152ec71 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PVA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PVA_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = 125 +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PVA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PVA_sprint.inst.cfg index 7fae42c017..00cc0b12fc 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PVA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PVA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = 90 +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PVA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PVA_supersprint.inst.cfg index 81f7a4affd..a982135206 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PVA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PVA_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = 70 +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg index f8382a17f7..b8adeb7ded 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg @@ -12,11 +12,5 @@ variant = Volcano 0.80mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 125 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg index a9c02df5d2..59497be1aa 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg @@ -12,11 +12,5 @@ variant = Volcano 0.80mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 90 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg index f3920f61e8..62de61eb0d 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg @@ -12,11 +12,5 @@ variant = Volcano 0.80mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 70 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_ASA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_ASA_sprint.inst.cfg index 3be4231e8b..57651cca54 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_ASA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_ASA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = 75 +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_ASA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_ASA_supersprint.inst.cfg index 7ac9945261..05aed00f10 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_ASA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_ASA_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = 60 +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_ASA_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_ASA_ultrasprint.inst.cfg index 79e3d1d86a..5a2e436f46 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_ASA_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_ASA_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = 50 +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PVA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PVA_sprint.inst.cfg index b48aadb0e4..77ac16b3b9 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PVA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PVA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = 75 +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PVA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PVA_supersprint.inst.cfg index cabb3d9020..c55f055963 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PVA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PVA_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = 60 +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PVA_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PVA_ultrasprint.inst.cfg index 30d016cf2c..577c2da0f6 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PVA_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PVA_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = 50 +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg index 57ddcf68f4..b5a51d4380 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg @@ -12,11 +12,5 @@ variant = Volcano 1.00mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 75 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg index 5de4dff512..81c5a84662 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg @@ -12,11 +12,5 @@ variant = Volcano 1.00mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 60 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg index 0fdf7be51c..9184f8c931 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg @@ -12,11 +12,5 @@ variant = Volcano 1.00mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 50 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_ASA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_ASA_sprint.inst.cfg index 374535d12f..ec560a760c 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_ASA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_ASA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = 60 +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_ASA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_ASA_supersprint.inst.cfg index 9790b61217..c84b7f8cae 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_ASA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_ASA_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = 50 +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_ASA_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_ASA_ultrasprint.inst.cfg index a395749b1d..4c397ed5bf 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_ASA_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_ASA_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = 40 +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PVA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PVA_sprint.inst.cfg index d5ca080c10..7d29d9b7c3 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PVA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PVA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = 60 +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PVA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PVA_supersprint.inst.cfg index 212b8b9ba5..6ef7d91472 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PVA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PVA_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = 50 +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PVA_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PVA_ultrasprint.inst.cfg index 441cbb9d4f..08864041e6 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PVA_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PVA_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = 40 +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg index d431a471c7..9017f63ac7 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg @@ -12,11 +12,5 @@ variant = Volcano 1.20mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 60 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg index e611c83dd9..422b341676 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg @@ -12,11 +12,5 @@ variant = Volcano 1.20mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 50 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg index 041a037ed0..64a69f3799 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg @@ -12,11 +12,5 @@ variant = Volcano 1.20mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) -speed_print = 40 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print +speed_print = round(20 / layer_height / machine_nozzle_size, -1) From db96d502ac5eb78aa9328ddbcf1251d99a5c3618 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Tue, 3 Sep 2024 14:10:24 -0400 Subject: [PATCH 022/200] Prevent rounding travel speed to zero --- resources/definitions/voron2_base.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index f9b66c6ceb..289bd72030 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -101,8 +101,8 @@ "speed_slowdown_layers": { "default_value": 4 }, "speed_travel": { - "maximum_value_warning": "round((machine_max_feedrate_x + machine_max_feedrate_y) / 2, -2) + 1", - "value": "speed_print if magic_spiralize else round((machine_max_feedrate_x + machine_max_feedrate_y) / 2, -2)" + "maximum_value_warning": "max(100, round((machine_max_feedrate_x + machine_max_feedrate_y) / 2, -2)) + 1", + "value": "speed_print if magic_spiralize else max(100, round((machine_max_feedrate_x + machine_max_feedrate_y) / 2, -2))" }, "speed_z_hop": { "value": "machine_max_feedrate_z" }, "travel_avoid_other_parts": { "default_value": false }, From acb63af6bc1c73315f016806be60d3c4a1358d10 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Tue, 3 Sep 2024 14:37:20 -0400 Subject: [PATCH 023/200] Fix rounding (missing "=" after "speed_print =") --- .../quality/voron2/voron2_global_extrafast_quality.inst.cfg | 2 +- .../quality/voron2/voron2_global_extrafine_quality.inst.cfg | 2 +- resources/quality/voron2/voron2_global_fast_quality.inst.cfg | 2 +- resources/quality/voron2/voron2_global_fine_quality.inst.cfg | 2 +- resources/quality/voron2/voron2_global_normal_quality.inst.cfg | 2 +- resources/quality/voron2/voron2_global_sprint_quality.inst.cfg | 2 +- .../quality/voron2/voron2_global_supersprint_quality.inst.cfg | 2 +- .../quality/voron2/voron2_global_ultrasprint_quality.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_ABS_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.40_ABS_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_ABS_normal.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_ASA_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.40_ASA_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_ASA_normal.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_Nylon_extrafast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_Nylon_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_Nylon_normal.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_PC_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.40_PC_fast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.40_PC_normal.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_PETG_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.40_PETG_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_PETG_normal.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_PLA_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.40_PLA_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_PLA_normal.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_PVA_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.40_PVA_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_PVA_normal.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_ABS_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.60_ABS_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_ABS_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_ASA_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.60_ASA_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_ASA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_Nylon_extrafast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_Nylon_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_Nylon_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_PC_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.60_PC_fast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.60_PC_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_PETG_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.60_PETG_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_PETG_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_PLA_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.60_PLA_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_PLA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_PVA_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.60_PVA_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_PVA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_ABS_extrafast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_ABS_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_ABS_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_ASA_extrafast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_ASA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_ASA_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_Nylon_extrafast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_Nylon_sprint.inst.cfg | 2 +- .../voron2/voron2_volcano_0.80_Nylon_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_PC_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.80_PC_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_PC_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_PETG_extrafast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_PETG_sprint.inst.cfg | 2 +- .../voron2/voron2_volcano_0.80_PETG_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_PLA_extrafast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_PLA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_PLA_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_PVA_extrafast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_PVA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_PVA_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_ABS_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_ABS_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_ABS_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_ASA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_ASA_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_ASA_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_Nylon_sprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.00_Nylon_supersprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.00_Nylon_ultrasprint.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_1.00_PC_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_PC_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_PC_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_PETG_sprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.00_PETG_supersprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.00_PETG_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_PLA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_PLA_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_PLA_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_PVA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_PVA_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_PVA_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_ABS_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_ABS_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_ABS_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_ASA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_ASA_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_ASA_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_Nylon_sprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.20_Nylon_supersprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.20_Nylon_ultrasprint.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_1.20_PC_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_PC_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_PC_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_PETG_sprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.20_PETG_supersprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.20_PETG_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_PLA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_PLA_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_PLA_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_PVA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_PVA_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_PVA_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg | 2 +- 128 files changed, 128 insertions(+), 128 deletions(-) diff --git a/resources/quality/voron2/voron2_global_extrafast_quality.inst.cfg b/resources/quality/voron2/voron2_global_extrafast_quality.inst.cfg index 8d564a775e..88ac7ade39 100644 --- a/resources/quality/voron2/voron2_global_extrafast_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_extrafast_quality.inst.cfg @@ -11,5 +11,5 @@ type = quality [values] layer_height = 0.3 -speed_print = round(6.4 / layer_height / machine_nozzle_size, -1) +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_global_extrafine_quality.inst.cfg b/resources/quality/voron2/voron2_global_extrafine_quality.inst.cfg index 65e3058a85..04b3a56987 100644 --- a/resources/quality/voron2/voron2_global_extrafine_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_extrafine_quality.inst.cfg @@ -11,5 +11,5 @@ type = quality [values] layer_height = 0.06 -speed_print = round(6.4 / layer_height / machine_nozzle_size, -1) +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_global_fast_quality.inst.cfg b/resources/quality/voron2/voron2_global_fast_quality.inst.cfg index a852de50a9..cd6c192f55 100644 --- a/resources/quality/voron2/voron2_global_fast_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_fast_quality.inst.cfg @@ -11,5 +11,5 @@ type = quality [values] layer_height = 0.2 -speed_print = round(6.4 / layer_height / machine_nozzle_size, -1) +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_global_fine_quality.inst.cfg b/resources/quality/voron2/voron2_global_fine_quality.inst.cfg index 186849a257..6b29009d79 100644 --- a/resources/quality/voron2/voron2_global_fine_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_fine_quality.inst.cfg @@ -11,5 +11,5 @@ type = quality [values] layer_height = 0.1 -speed_print = round(6.4 / layer_height / machine_nozzle_size, -1) +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_global_normal_quality.inst.cfg b/resources/quality/voron2/voron2_global_normal_quality.inst.cfg index b2a0084299..cdf8130887 100644 --- a/resources/quality/voron2/voron2_global_normal_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_normal_quality.inst.cfg @@ -11,5 +11,5 @@ type = quality [values] layer_height = 0.15 -speed_print = round(6.4 / layer_height / machine_nozzle_size, -1) +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_global_sprint_quality.inst.cfg b/resources/quality/voron2/voron2_global_sprint_quality.inst.cfg index 9316433a2e..8a02631df7 100644 --- a/resources/quality/voron2/voron2_global_sprint_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_sprint_quality.inst.cfg @@ -11,5 +11,5 @@ type = quality [values] layer_height = 0.4 -speed_print = round(6.4 / layer_height / machine_nozzle_size, -1) +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_global_supersprint_quality.inst.cfg b/resources/quality/voron2/voron2_global_supersprint_quality.inst.cfg index e985e10292..f730d1b8fd 100644 --- a/resources/quality/voron2/voron2_global_supersprint_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_supersprint_quality.inst.cfg @@ -11,5 +11,5 @@ type = quality [values] layer_height = 0.5 -speed_print = round(6.4 / layer_height / machine_nozzle_size, -1) +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_global_ultrasprint_quality.inst.cfg b/resources/quality/voron2/voron2_global_ultrasprint_quality.inst.cfg index b75c9d94ac..c8bbc67f61 100644 --- a/resources/quality/voron2/voron2_global_ultrasprint_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_ultrasprint_quality.inst.cfg @@ -11,5 +11,5 @@ type = quality [values] layer_height = 0.6 -speed_print = round(6.4 / layer_height / machine_nozzle_size, -1) +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_ABS_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_ABS_extrafast.inst.cfg index 53e8b28103..a69dc869ca 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_ABS_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_ABS_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_ABS_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_ABS_fast.inst.cfg index 9656d9c035..d6ae565311 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_ABS_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_ABS_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_ABS_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_ABS_normal.inst.cfg index 631b643e50..e48db248a8 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_ABS_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_ABS_normal.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_ASA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_ASA_extrafast.inst.cfg index 7b710f56be..5997dc83a7 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_ASA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_ASA_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_ASA_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_ASA_fast.inst.cfg index f0512eed5c..5d8b110918 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_ASA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_ASA_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_ASA_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_ASA_normal.inst.cfg index 6b9642b034..f9b95df275 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_ASA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_ASA_normal.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_Nylon_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_Nylon_extrafast.inst.cfg index 39b66d45a4..f5401be196 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_Nylon_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_Nylon_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_Nylon_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_Nylon_fast.inst.cfg index 19c5115bf8..3355caa887 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_Nylon_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_Nylon_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_Nylon_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_Nylon_normal.inst.cfg index 5df1c4bd0e..a506e5f68d 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_Nylon_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_Nylon_normal.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PC_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PC_extrafast.inst.cfg index a83c9579ce..68bf998ce6 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PC_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PC_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PC_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PC_fast.inst.cfg index 708e7221d3..128bbcd387 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PC_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PC_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PC_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PC_normal.inst.cfg index 3995be6ae0..1aea8a1662 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PC_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PC_normal.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PETG_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PETG_extrafast.inst.cfg index ef6e95e4c5..a3254ee874 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PETG_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PETG_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PETG_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PETG_fast.inst.cfg index c95ae8d6e6..255c137b3f 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PETG_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PETG_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PETG_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PETG_normal.inst.cfg index 907d844276..06aba6f9ce 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PETG_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PETG_normal.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PLA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PLA_extrafast.inst.cfg index 8fbaa48183..35d5eeab62 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PLA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PLA_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PLA_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PLA_fast.inst.cfg index 93655d9555..4a31eabc28 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PLA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PLA_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PLA_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PLA_normal.inst.cfg index c41fbceef4..9d5f7c272e 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PLA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PLA_normal.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PVA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PVA_extrafast.inst.cfg index 921979c35c..116676d97a 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PVA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PVA_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PVA_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PVA_fast.inst.cfg index 36de08490b..7e7f2c0b42 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PVA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PVA_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PVA_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PVA_normal.inst.cfg index 3c1300a3b0..e2509e2f2d 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PVA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PVA_normal.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg index 2111df0677..b0b331adf9 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 0.40mm [values] speed_infill = =speed_print -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg index 8df6ff3069..6706ec31c3 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 0.40mm [values] speed_infill = =speed_print -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg index 89b5e9c9ee..63abc439ba 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 0.40mm [values] speed_infill = =speed_print -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_ABS_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_ABS_extrafast.inst.cfg index e4cc0620e0..69127e7904 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_ABS_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_ABS_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_ABS_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_ABS_fast.inst.cfg index 6e88013da2..096bc51ecb 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_ABS_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_ABS_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_ABS_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_ABS_sprint.inst.cfg index d4d55edccd..aa38161995 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_ABS_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_ABS_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_ASA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_ASA_extrafast.inst.cfg index fb68e3a552..de93e0b9c8 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_ASA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_ASA_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_ASA_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_ASA_fast.inst.cfg index cc9e76cdc4..06ca64490c 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_ASA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_ASA_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_ASA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_ASA_sprint.inst.cfg index 4a192db94e..0888c6438b 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_ASA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_ASA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_Nylon_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_Nylon_extrafast.inst.cfg index adaf96391f..d4bb140f4d 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_Nylon_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_Nylon_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_Nylon_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_Nylon_fast.inst.cfg index 77319c0f7d..05e67a61ab 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_Nylon_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_Nylon_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_Nylon_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_Nylon_sprint.inst.cfg index 51d5d75709..d1cca989b0 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_Nylon_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_Nylon_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PC_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PC_extrafast.inst.cfg index 5b1a261867..ad270156c4 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PC_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PC_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PC_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PC_fast.inst.cfg index 704d7608e1..c4d8ff6d53 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PC_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PC_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PC_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PC_sprint.inst.cfg index 15b8d564af..19847a4b92 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PC_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PC_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PETG_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PETG_extrafast.inst.cfg index bf6edb1e52..73d38be2fc 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PETG_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PETG_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PETG_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PETG_fast.inst.cfg index 1e0fbf667c..dccf2fa82f 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PETG_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PETG_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PETG_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PETG_sprint.inst.cfg index 632a80a849..b199a9d2e0 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PETG_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PETG_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PLA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PLA_extrafast.inst.cfg index 03e889cc67..53dda3986a 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PLA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PLA_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PLA_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PLA_fast.inst.cfg index b17ce109ae..a20e04a272 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PLA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PLA_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PLA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PLA_sprint.inst.cfg index 9ec128704d..7314fd1ccf 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PLA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PLA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PVA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PVA_extrafast.inst.cfg index 504ea3a868..5510b23f76 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PVA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PVA_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PVA_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PVA_fast.inst.cfg index dd6fd5e1b7..7f21ecd274 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PVA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PVA_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PVA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PVA_sprint.inst.cfg index 57096e0376..d73e61aeab 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PVA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PVA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg index f629dea305..936c748f34 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 0.60mm [values] speed_infill = =speed_print -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg index e87f63d7a2..7f347bba87 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 0.60mm [values] speed_infill = =speed_print -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg index 510f5eba6b..0a68e49de6 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 0.60mm [values] speed_infill = =speed_print -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_ABS_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_ABS_extrafast.inst.cfg index 69a8b3c8f1..f22f286ba2 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_ABS_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_ABS_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_ABS_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_ABS_sprint.inst.cfg index e842880865..8e7e7ff737 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_ABS_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_ABS_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_ABS_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_ABS_supersprint.inst.cfg index d654143d2e..6f9dfbdb95 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_ABS_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_ABS_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_ASA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_ASA_extrafast.inst.cfg index 9fd4efa2e2..f930448d2d 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_ASA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_ASA_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_ASA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_ASA_sprint.inst.cfg index 6d4a1eded7..6ac21d1731 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_ASA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_ASA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_ASA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_ASA_supersprint.inst.cfg index 6dee82f910..5e9cf90271 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_ASA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_ASA_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_Nylon_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_Nylon_extrafast.inst.cfg index 919fa0a785..00aefc7add 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_Nylon_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_Nylon_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_Nylon_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_Nylon_sprint.inst.cfg index d9b0386f9f..01d739e534 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_Nylon_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_Nylon_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_Nylon_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_Nylon_supersprint.inst.cfg index 7e3eed413e..35afe53b11 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_Nylon_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_Nylon_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PC_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PC_extrafast.inst.cfg index 554c8adab2..be761a53d0 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PC_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PC_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PC_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PC_sprint.inst.cfg index bcd47d3c90..370d786882 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PC_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PC_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PC_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PC_supersprint.inst.cfg index 166c36dab7..b85d1c3be8 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PC_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PC_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PETG_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PETG_extrafast.inst.cfg index c2633b92a6..1f9abb1518 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PETG_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PETG_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PETG_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PETG_sprint.inst.cfg index d306808b68..ace7d1ddff 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PETG_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PETG_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PETG_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PETG_supersprint.inst.cfg index 055e8d4d62..6a767fd7c7 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PETG_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PETG_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PLA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PLA_extrafast.inst.cfg index 76a95dd365..e1c83bb9fe 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PLA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PLA_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PLA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PLA_sprint.inst.cfg index 2ea0757e6b..863194f0c5 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PLA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PLA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PLA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PLA_supersprint.inst.cfg index dd65361ddc..f3907541ea 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PLA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PLA_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PVA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PVA_extrafast.inst.cfg index b88152ec71..17cbeb802f 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PVA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PVA_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PVA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PVA_sprint.inst.cfg index 00cc0b12fc..8b08ad2f80 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PVA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PVA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PVA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PVA_supersprint.inst.cfg index a982135206..cffd9bc401 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PVA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PVA_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg index b8adeb7ded..7efda63dad 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 0.80mm [values] speed_infill = =speed_print -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg index 59497be1aa..0696e17472 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 0.80mm [values] speed_infill = =speed_print -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg index 62de61eb0d..e25ee39095 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 0.80mm [values] speed_infill = =speed_print -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_ABS_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_ABS_sprint.inst.cfg index a6cb9e2c36..32e2e65d1a 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_ABS_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_ABS_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_ABS_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_ABS_supersprint.inst.cfg index ccfdb210ce..995efa00c6 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_ABS_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_ABS_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_ABS_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_ABS_ultrasprint.inst.cfg index fe76ef386c..492b807eb2 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_ABS_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_ABS_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_ASA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_ASA_sprint.inst.cfg index 57651cca54..a3424e2cf9 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_ASA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_ASA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_ASA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_ASA_supersprint.inst.cfg index 05aed00f10..a4585b08ce 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_ASA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_ASA_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_ASA_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_ASA_ultrasprint.inst.cfg index 5a2e436f46..1ee262a21a 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_ASA_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_ASA_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_Nylon_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_Nylon_sprint.inst.cfg index a2e5ebae04..12664a169b 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_Nylon_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_Nylon_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_Nylon_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_Nylon_supersprint.inst.cfg index 06edb77663..0c9a41a875 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_Nylon_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_Nylon_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_Nylon_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_Nylon_ultrasprint.inst.cfg index f864f057ea..c5819caab6 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_Nylon_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_Nylon_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PC_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PC_sprint.inst.cfg index 65fa941bfd..271ef98612 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PC_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PC_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PC_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PC_supersprint.inst.cfg index c09e837cdf..bc400c0ea4 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PC_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PC_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PC_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PC_ultrasprint.inst.cfg index 2d75905eef..d1a874ebc9 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PC_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PC_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PETG_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PETG_sprint.inst.cfg index 8fc130d0f5..a1cfc07a6e 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PETG_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PETG_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PETG_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PETG_supersprint.inst.cfg index 270b3ea041..82af1c6c39 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PETG_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PETG_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PETG_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PETG_ultrasprint.inst.cfg index d2c4292a8c..c31664bb1b 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PETG_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PETG_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PLA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PLA_sprint.inst.cfg index 88437ac6c4..83a8a3bda3 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PLA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PLA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PLA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PLA_supersprint.inst.cfg index 87b2e6d36d..6881897e97 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PLA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PLA_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PLA_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PLA_ultrasprint.inst.cfg index 2be5fd0724..8ed1175579 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PLA_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PLA_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PVA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PVA_sprint.inst.cfg index 77ac16b3b9..59f8c64281 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PVA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PVA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PVA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PVA_supersprint.inst.cfg index c55f055963..cd366a726d 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PVA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PVA_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PVA_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PVA_ultrasprint.inst.cfg index 577c2da0f6..4ca1c7718d 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PVA_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PVA_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg index b5a51d4380..018f9d7c17 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 1.00mm [values] speed_infill = =speed_print -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg index 81c5a84662..c836b25ea4 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 1.00mm [values] speed_infill = =speed_print -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg index 9184f8c931..9592b24798 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 1.00mm [values] speed_infill = =speed_print -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_ABS_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_ABS_sprint.inst.cfg index 6d2b4ad559..2dcbde9d26 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_ABS_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_ABS_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_ABS_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_ABS_supersprint.inst.cfg index ff4f690d54..ab245ef159 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_ABS_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_ABS_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_ABS_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_ABS_ultrasprint.inst.cfg index 7369d86cf4..aae49395f2 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_ABS_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_ABS_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_ASA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_ASA_sprint.inst.cfg index ec560a760c..54e8467676 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_ASA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_ASA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_ASA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_ASA_supersprint.inst.cfg index c84b7f8cae..6766eba477 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_ASA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_ASA_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_ASA_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_ASA_ultrasprint.inst.cfg index 4c397ed5bf..a6cbaedf46 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_ASA_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_ASA_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_Nylon_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_Nylon_sprint.inst.cfg index 03be6c9ae1..c4b1c436bc 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_Nylon_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_Nylon_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_Nylon_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_Nylon_supersprint.inst.cfg index 04dc6715c7..4e79ed46b9 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_Nylon_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_Nylon_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_Nylon_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_Nylon_ultrasprint.inst.cfg index dd7ae91188..3ba1aa6191 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_Nylon_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_Nylon_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PC_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PC_sprint.inst.cfg index 936f869d5a..1c69c40798 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PC_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PC_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PC_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PC_supersprint.inst.cfg index ce942504d7..c016aef7d5 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PC_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PC_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PC_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PC_ultrasprint.inst.cfg index 962dac16bf..7880c47462 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PC_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PC_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PETG_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PETG_sprint.inst.cfg index d456b159ca..116d5a3562 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PETG_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PETG_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PETG_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PETG_supersprint.inst.cfg index ee0e780731..60fad99ab1 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PETG_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PETG_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PETG_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PETG_ultrasprint.inst.cfg index 236249e985..c4ff716d90 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PETG_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PETG_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PLA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PLA_sprint.inst.cfg index 7204f7112a..d1cb7ae2e0 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PLA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PLA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PLA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PLA_supersprint.inst.cfg index fd076fbd05..4df9e6e851 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PLA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PLA_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PLA_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PLA_ultrasprint.inst.cfg index 45301f8106..f4b69ff8f3 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PLA_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PLA_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PVA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PVA_sprint.inst.cfg index 7d29d9b7c3..71b856e629 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PVA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PVA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PVA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PVA_supersprint.inst.cfg index 6ef7d91472..9fc152f9f8 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PVA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PVA_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PVA_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PVA_ultrasprint.inst.cfg index 08864041e6..6ef442afa3 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PVA_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PVA_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg index 9017f63ac7..bd5dd0cbe8 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 1.20mm [values] speed_infill = =speed_print -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg index 422b341676..6983df8652 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 1.20mm [values] speed_infill = =speed_print -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg index 64a69f3799..07201e401b 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 1.20mm [values] speed_infill = =speed_print -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) From 3d1c29150242e3091814f837e41db40b349d0bf7 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Tue, 3 Sep 2024 15:14:53 -0400 Subject: [PATCH 024/200] Revert "Fix rounding (missing "=" after "speed_print =")" This reverts commit acb63af6bc1c73315f016806be60d3c4a1358d10. --- .../quality/voron2/voron2_global_extrafast_quality.inst.cfg | 2 +- .../quality/voron2/voron2_global_extrafine_quality.inst.cfg | 2 +- resources/quality/voron2/voron2_global_fast_quality.inst.cfg | 2 +- resources/quality/voron2/voron2_global_fine_quality.inst.cfg | 2 +- resources/quality/voron2/voron2_global_normal_quality.inst.cfg | 2 +- resources/quality/voron2/voron2_global_sprint_quality.inst.cfg | 2 +- .../quality/voron2/voron2_global_supersprint_quality.inst.cfg | 2 +- .../quality/voron2/voron2_global_ultrasprint_quality.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_ABS_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.40_ABS_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_ABS_normal.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_ASA_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.40_ASA_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_ASA_normal.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_Nylon_extrafast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_Nylon_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_Nylon_normal.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_PC_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.40_PC_fast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.40_PC_normal.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_PETG_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.40_PETG_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_PETG_normal.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_PLA_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.40_PLA_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_PLA_normal.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_PVA_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.40_PVA_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_PVA_normal.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_ABS_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.60_ABS_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_ABS_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_ASA_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.60_ASA_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_ASA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_Nylon_extrafast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_Nylon_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_Nylon_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_PC_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.60_PC_fast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.60_PC_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_PETG_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.60_PETG_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_PETG_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_PLA_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.60_PLA_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_PLA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_PVA_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.60_PVA_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_PVA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_ABS_extrafast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_ABS_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_ABS_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_ASA_extrafast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_ASA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_ASA_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_Nylon_extrafast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_Nylon_sprint.inst.cfg | 2 +- .../voron2/voron2_volcano_0.80_Nylon_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_PC_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.80_PC_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_PC_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_PETG_extrafast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_PETG_sprint.inst.cfg | 2 +- .../voron2/voron2_volcano_0.80_PETG_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_PLA_extrafast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_PLA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_PLA_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_PVA_extrafast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_PVA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_PVA_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_ABS_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_ABS_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_ABS_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_ASA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_ASA_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_ASA_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_Nylon_sprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.00_Nylon_supersprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.00_Nylon_ultrasprint.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_1.00_PC_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_PC_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_PC_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_PETG_sprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.00_PETG_supersprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.00_PETG_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_PLA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_PLA_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_PLA_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_PVA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_PVA_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_PVA_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_ABS_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_ABS_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_ABS_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_ASA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_ASA_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_ASA_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_Nylon_sprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.20_Nylon_supersprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.20_Nylon_ultrasprint.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_1.20_PC_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_PC_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_PC_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_PETG_sprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.20_PETG_supersprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.20_PETG_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_PLA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_PLA_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_PLA_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_PVA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_PVA_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_PVA_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg | 2 +- 128 files changed, 128 insertions(+), 128 deletions(-) diff --git a/resources/quality/voron2/voron2_global_extrafast_quality.inst.cfg b/resources/quality/voron2/voron2_global_extrafast_quality.inst.cfg index 88ac7ade39..8d564a775e 100644 --- a/resources/quality/voron2/voron2_global_extrafast_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_extrafast_quality.inst.cfg @@ -11,5 +11,5 @@ type = quality [values] layer_height = 0.3 -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) +speed_print = round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_global_extrafine_quality.inst.cfg b/resources/quality/voron2/voron2_global_extrafine_quality.inst.cfg index 04b3a56987..65e3058a85 100644 --- a/resources/quality/voron2/voron2_global_extrafine_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_extrafine_quality.inst.cfg @@ -11,5 +11,5 @@ type = quality [values] layer_height = 0.06 -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) +speed_print = round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_global_fast_quality.inst.cfg b/resources/quality/voron2/voron2_global_fast_quality.inst.cfg index cd6c192f55..a852de50a9 100644 --- a/resources/quality/voron2/voron2_global_fast_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_fast_quality.inst.cfg @@ -11,5 +11,5 @@ type = quality [values] layer_height = 0.2 -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) +speed_print = round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_global_fine_quality.inst.cfg b/resources/quality/voron2/voron2_global_fine_quality.inst.cfg index 6b29009d79..186849a257 100644 --- a/resources/quality/voron2/voron2_global_fine_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_fine_quality.inst.cfg @@ -11,5 +11,5 @@ type = quality [values] layer_height = 0.1 -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) +speed_print = round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_global_normal_quality.inst.cfg b/resources/quality/voron2/voron2_global_normal_quality.inst.cfg index cdf8130887..b2a0084299 100644 --- a/resources/quality/voron2/voron2_global_normal_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_normal_quality.inst.cfg @@ -11,5 +11,5 @@ type = quality [values] layer_height = 0.15 -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) +speed_print = round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_global_sprint_quality.inst.cfg b/resources/quality/voron2/voron2_global_sprint_quality.inst.cfg index 8a02631df7..9316433a2e 100644 --- a/resources/quality/voron2/voron2_global_sprint_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_sprint_quality.inst.cfg @@ -11,5 +11,5 @@ type = quality [values] layer_height = 0.4 -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) +speed_print = round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_global_supersprint_quality.inst.cfg b/resources/quality/voron2/voron2_global_supersprint_quality.inst.cfg index f730d1b8fd..e985e10292 100644 --- a/resources/quality/voron2/voron2_global_supersprint_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_supersprint_quality.inst.cfg @@ -11,5 +11,5 @@ type = quality [values] layer_height = 0.5 -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) +speed_print = round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_global_ultrasprint_quality.inst.cfg b/resources/quality/voron2/voron2_global_ultrasprint_quality.inst.cfg index c8bbc67f61..b75c9d94ac 100644 --- a/resources/quality/voron2/voron2_global_ultrasprint_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_ultrasprint_quality.inst.cfg @@ -11,5 +11,5 @@ type = quality [values] layer_height = 0.6 -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) +speed_print = round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_ABS_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_ABS_extrafast.inst.cfg index a69dc869ca..53e8b28103 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_ABS_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_ABS_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_ABS_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_ABS_fast.inst.cfg index d6ae565311..9656d9c035 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_ABS_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_ABS_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_ABS_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_ABS_normal.inst.cfg index e48db248a8..631b643e50 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_ABS_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_ABS_normal.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_ASA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_ASA_extrafast.inst.cfg index 5997dc83a7..7b710f56be 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_ASA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_ASA_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_ASA_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_ASA_fast.inst.cfg index 5d8b110918..f0512eed5c 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_ASA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_ASA_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_ASA_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_ASA_normal.inst.cfg index f9b95df275..6b9642b034 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_ASA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_ASA_normal.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_Nylon_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_Nylon_extrafast.inst.cfg index f5401be196..39b66d45a4 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_Nylon_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_Nylon_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_Nylon_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_Nylon_fast.inst.cfg index 3355caa887..19c5115bf8 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_Nylon_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_Nylon_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_Nylon_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_Nylon_normal.inst.cfg index a506e5f68d..5df1c4bd0e 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_Nylon_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_Nylon_normal.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PC_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PC_extrafast.inst.cfg index 68bf998ce6..a83c9579ce 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PC_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PC_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PC_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PC_fast.inst.cfg index 128bbcd387..708e7221d3 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PC_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PC_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PC_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PC_normal.inst.cfg index 1aea8a1662..3995be6ae0 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PC_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PC_normal.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PETG_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PETG_extrafast.inst.cfg index a3254ee874..ef6e95e4c5 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PETG_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PETG_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PETG_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PETG_fast.inst.cfg index 255c137b3f..c95ae8d6e6 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PETG_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PETG_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PETG_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PETG_normal.inst.cfg index 06aba6f9ce..907d844276 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PETG_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PETG_normal.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PLA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PLA_extrafast.inst.cfg index 35d5eeab62..8fbaa48183 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PLA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PLA_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PLA_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PLA_fast.inst.cfg index 4a31eabc28..93655d9555 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PLA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PLA_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PLA_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PLA_normal.inst.cfg index 9d5f7c272e..c41fbceef4 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PLA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PLA_normal.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PVA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PVA_extrafast.inst.cfg index 116676d97a..921979c35c 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PVA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PVA_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PVA_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PVA_fast.inst.cfg index 7e7f2c0b42..36de08490b 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PVA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PVA_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PVA_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PVA_normal.inst.cfg index e2509e2f2d..3c1300a3b0 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PVA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PVA_normal.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg index b0b331adf9..2111df0677 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 0.40mm [values] speed_infill = =speed_print -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg index 6706ec31c3..8df6ff3069 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 0.40mm [values] speed_infill = =speed_print -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg index 63abc439ba..89b5e9c9ee 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 0.40mm [values] speed_infill = =speed_print -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_ABS_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_ABS_extrafast.inst.cfg index 69127e7904..e4cc0620e0 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_ABS_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_ABS_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_ABS_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_ABS_fast.inst.cfg index 096bc51ecb..6e88013da2 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_ABS_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_ABS_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_ABS_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_ABS_sprint.inst.cfg index aa38161995..d4d55edccd 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_ABS_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_ABS_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_ASA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_ASA_extrafast.inst.cfg index de93e0b9c8..fb68e3a552 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_ASA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_ASA_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_ASA_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_ASA_fast.inst.cfg index 06ca64490c..cc9e76cdc4 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_ASA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_ASA_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_ASA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_ASA_sprint.inst.cfg index 0888c6438b..4a192db94e 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_ASA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_ASA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_Nylon_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_Nylon_extrafast.inst.cfg index d4bb140f4d..adaf96391f 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_Nylon_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_Nylon_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_Nylon_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_Nylon_fast.inst.cfg index 05e67a61ab..77319c0f7d 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_Nylon_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_Nylon_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_Nylon_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_Nylon_sprint.inst.cfg index d1cca989b0..51d5d75709 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_Nylon_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_Nylon_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PC_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PC_extrafast.inst.cfg index ad270156c4..5b1a261867 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PC_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PC_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PC_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PC_fast.inst.cfg index c4d8ff6d53..704d7608e1 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PC_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PC_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PC_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PC_sprint.inst.cfg index 19847a4b92..15b8d564af 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PC_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PC_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PETG_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PETG_extrafast.inst.cfg index 73d38be2fc..bf6edb1e52 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PETG_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PETG_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PETG_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PETG_fast.inst.cfg index dccf2fa82f..1e0fbf667c 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PETG_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PETG_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PETG_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PETG_sprint.inst.cfg index b199a9d2e0..632a80a849 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PETG_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PETG_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PLA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PLA_extrafast.inst.cfg index 53dda3986a..03e889cc67 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PLA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PLA_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PLA_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PLA_fast.inst.cfg index a20e04a272..b17ce109ae 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PLA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PLA_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PLA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PLA_sprint.inst.cfg index 7314fd1ccf..9ec128704d 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PLA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PLA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PVA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PVA_extrafast.inst.cfg index 5510b23f76..504ea3a868 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PVA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PVA_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PVA_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PVA_fast.inst.cfg index 7f21ecd274..dd6fd5e1b7 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PVA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PVA_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PVA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PVA_sprint.inst.cfg index d73e61aeab..57096e0376 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PVA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PVA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg index 936c748f34..f629dea305 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 0.60mm [values] speed_infill = =speed_print -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg index 7f347bba87..e87f63d7a2 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 0.60mm [values] speed_infill = =speed_print -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg index 0a68e49de6..510f5eba6b 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 0.60mm [values] speed_infill = =speed_print -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_ABS_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_ABS_extrafast.inst.cfg index f22f286ba2..69a8b3c8f1 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_ABS_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_ABS_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_ABS_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_ABS_sprint.inst.cfg index 8e7e7ff737..e842880865 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_ABS_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_ABS_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_ABS_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_ABS_supersprint.inst.cfg index 6f9dfbdb95..d654143d2e 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_ABS_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_ABS_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_ASA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_ASA_extrafast.inst.cfg index f930448d2d..9fd4efa2e2 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_ASA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_ASA_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_ASA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_ASA_sprint.inst.cfg index 6ac21d1731..6d4a1eded7 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_ASA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_ASA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_ASA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_ASA_supersprint.inst.cfg index 5e9cf90271..6dee82f910 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_ASA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_ASA_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_Nylon_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_Nylon_extrafast.inst.cfg index 00aefc7add..919fa0a785 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_Nylon_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_Nylon_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_Nylon_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_Nylon_sprint.inst.cfg index 01d739e534..d9b0386f9f 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_Nylon_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_Nylon_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_Nylon_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_Nylon_supersprint.inst.cfg index 35afe53b11..7e3eed413e 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_Nylon_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_Nylon_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PC_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PC_extrafast.inst.cfg index be761a53d0..554c8adab2 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PC_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PC_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PC_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PC_sprint.inst.cfg index 370d786882..bcd47d3c90 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PC_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PC_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PC_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PC_supersprint.inst.cfg index b85d1c3be8..166c36dab7 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PC_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PC_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PETG_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PETG_extrafast.inst.cfg index 1f9abb1518..c2633b92a6 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PETG_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PETG_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PETG_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PETG_sprint.inst.cfg index ace7d1ddff..d306808b68 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PETG_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PETG_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PETG_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PETG_supersprint.inst.cfg index 6a767fd7c7..055e8d4d62 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PETG_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PETG_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PLA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PLA_extrafast.inst.cfg index e1c83bb9fe..76a95dd365 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PLA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PLA_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PLA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PLA_sprint.inst.cfg index 863194f0c5..2ea0757e6b 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PLA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PLA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PLA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PLA_supersprint.inst.cfg index f3907541ea..dd65361ddc 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PLA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PLA_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PVA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PVA_extrafast.inst.cfg index 17cbeb802f..b88152ec71 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PVA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PVA_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PVA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PVA_sprint.inst.cfg index 8b08ad2f80..00cc0b12fc 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PVA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PVA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PVA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PVA_supersprint.inst.cfg index cffd9bc401..a982135206 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PVA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PVA_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg index 7efda63dad..b8adeb7ded 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 0.80mm [values] speed_infill = =speed_print -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg index 0696e17472..59497be1aa 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 0.80mm [values] speed_infill = =speed_print -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg index e25ee39095..62de61eb0d 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 0.80mm [values] speed_infill = =speed_print -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_ABS_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_ABS_sprint.inst.cfg index 32e2e65d1a..a6cb9e2c36 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_ABS_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_ABS_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_ABS_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_ABS_supersprint.inst.cfg index 995efa00c6..ccfdb210ce 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_ABS_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_ABS_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_ABS_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_ABS_ultrasprint.inst.cfg index 492b807eb2..fe76ef386c 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_ABS_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_ABS_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_ASA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_ASA_sprint.inst.cfg index a3424e2cf9..57651cca54 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_ASA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_ASA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_ASA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_ASA_supersprint.inst.cfg index a4585b08ce..05aed00f10 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_ASA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_ASA_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_ASA_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_ASA_ultrasprint.inst.cfg index 1ee262a21a..5a2e436f46 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_ASA_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_ASA_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_Nylon_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_Nylon_sprint.inst.cfg index 12664a169b..a2e5ebae04 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_Nylon_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_Nylon_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_Nylon_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_Nylon_supersprint.inst.cfg index 0c9a41a875..06edb77663 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_Nylon_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_Nylon_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_Nylon_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_Nylon_ultrasprint.inst.cfg index c5819caab6..f864f057ea 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_Nylon_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_Nylon_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PC_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PC_sprint.inst.cfg index 271ef98612..65fa941bfd 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PC_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PC_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PC_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PC_supersprint.inst.cfg index bc400c0ea4..c09e837cdf 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PC_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PC_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PC_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PC_ultrasprint.inst.cfg index d1a874ebc9..2d75905eef 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PC_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PC_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PETG_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PETG_sprint.inst.cfg index a1cfc07a6e..8fc130d0f5 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PETG_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PETG_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PETG_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PETG_supersprint.inst.cfg index 82af1c6c39..270b3ea041 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PETG_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PETG_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PETG_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PETG_ultrasprint.inst.cfg index c31664bb1b..d2c4292a8c 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PETG_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PETG_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PLA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PLA_sprint.inst.cfg index 83a8a3bda3..88437ac6c4 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PLA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PLA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PLA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PLA_supersprint.inst.cfg index 6881897e97..87b2e6d36d 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PLA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PLA_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PLA_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PLA_ultrasprint.inst.cfg index 8ed1175579..2be5fd0724 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PLA_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PLA_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PVA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PVA_sprint.inst.cfg index 59f8c64281..77ac16b3b9 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PVA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PVA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PVA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PVA_supersprint.inst.cfg index cd366a726d..c55f055963 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PVA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PVA_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PVA_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PVA_ultrasprint.inst.cfg index 4ca1c7718d..577c2da0f6 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PVA_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PVA_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg index 018f9d7c17..b5a51d4380 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 1.00mm [values] speed_infill = =speed_print -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg index c836b25ea4..81c5a84662 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 1.00mm [values] speed_infill = =speed_print -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg index 9592b24798..9184f8c931 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 1.00mm [values] speed_infill = =speed_print -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_ABS_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_ABS_sprint.inst.cfg index 2dcbde9d26..6d2b4ad559 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_ABS_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_ABS_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_ABS_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_ABS_supersprint.inst.cfg index ab245ef159..ff4f690d54 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_ABS_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_ABS_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_ABS_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_ABS_ultrasprint.inst.cfg index aae49395f2..7369d86cf4 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_ABS_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_ABS_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_ASA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_ASA_sprint.inst.cfg index 54e8467676..ec560a760c 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_ASA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_ASA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_ASA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_ASA_supersprint.inst.cfg index 6766eba477..c84b7f8cae 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_ASA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_ASA_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_ASA_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_ASA_ultrasprint.inst.cfg index a6cbaedf46..4c397ed5bf 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_ASA_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_ASA_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_Nylon_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_Nylon_sprint.inst.cfg index c4b1c436bc..03be6c9ae1 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_Nylon_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_Nylon_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_Nylon_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_Nylon_supersprint.inst.cfg index 4e79ed46b9..04dc6715c7 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_Nylon_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_Nylon_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_Nylon_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_Nylon_ultrasprint.inst.cfg index 3ba1aa6191..dd7ae91188 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_Nylon_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_Nylon_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PC_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PC_sprint.inst.cfg index 1c69c40798..936f869d5a 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PC_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PC_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PC_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PC_supersprint.inst.cfg index c016aef7d5..ce942504d7 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PC_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PC_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PC_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PC_ultrasprint.inst.cfg index 7880c47462..962dac16bf 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PC_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PC_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PETG_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PETG_sprint.inst.cfg index 116d5a3562..d456b159ca 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PETG_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PETG_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PETG_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PETG_supersprint.inst.cfg index 60fad99ab1..ee0e780731 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PETG_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PETG_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PETG_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PETG_ultrasprint.inst.cfg index c4ff716d90..236249e985 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PETG_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PETG_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PLA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PLA_sprint.inst.cfg index d1cb7ae2e0..7204f7112a 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PLA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PLA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PLA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PLA_supersprint.inst.cfg index 4df9e6e851..fd076fbd05 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PLA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PLA_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PLA_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PLA_ultrasprint.inst.cfg index f4b69ff8f3..45301f8106 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PLA_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PLA_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PVA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PVA_sprint.inst.cfg index 71b856e629..7d29d9b7c3 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PVA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PVA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PVA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PVA_supersprint.inst.cfg index 9fc152f9f8..6ef7d91472 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PVA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PVA_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PVA_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PVA_ultrasprint.inst.cfg index 6ef442afa3..08864041e6 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PVA_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PVA_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg index bd5dd0cbe8..9017f63ac7 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 1.20mm [values] speed_infill = =speed_print -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg index 6983df8652..422b341676 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 1.20mm [values] speed_infill = =speed_print -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg index 07201e401b..64a69f3799 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 1.20mm [values] speed_infill = =speed_print -speed_print = =round(20 / layer_height / machine_nozzle_size, -1) +speed_print = round(20 / layer_height / machine_nozzle_size, -1) From a940a87622b392753ad0d571070048c7a9e2f24e Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Tue, 3 Sep 2024 15:16:24 -0400 Subject: [PATCH 025/200] Fix rounding, rerun printer-linter --- .../quality/voron2/voron2_global_extrafast_quality.inst.cfg | 2 +- .../quality/voron2/voron2_global_extrafine_quality.inst.cfg | 2 +- resources/quality/voron2/voron2_global_fast_quality.inst.cfg | 2 +- resources/quality/voron2/voron2_global_fine_quality.inst.cfg | 2 +- resources/quality/voron2/voron2_global_normal_quality.inst.cfg | 2 +- resources/quality/voron2/voron2_global_sprint_quality.inst.cfg | 2 +- .../quality/voron2/voron2_global_supersprint_quality.inst.cfg | 2 +- .../quality/voron2/voron2_global_ultrasprint_quality.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_ABS_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.40_ABS_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_ABS_normal.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_ASA_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.40_ASA_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_ASA_normal.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_Nylon_extrafast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_Nylon_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_Nylon_normal.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_PC_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.40_PC_fast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.40_PC_normal.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_PETG_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.40_PETG_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_PETG_normal.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_PLA_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.40_PLA_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_PLA_normal.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_PVA_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.40_PVA_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_PVA_normal.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_ABS_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.60_ABS_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_ABS_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_ASA_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.60_ASA_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_ASA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_Nylon_extrafast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_Nylon_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_Nylon_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_PC_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.60_PC_fast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.60_PC_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_PETG_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.60_PETG_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_PETG_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_PLA_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.60_PLA_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_PLA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_PVA_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.60_PVA_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_PVA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_ABS_extrafast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_ABS_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_ABS_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_ASA_extrafast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_ASA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_ASA_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_Nylon_extrafast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_Nylon_sprint.inst.cfg | 2 +- .../voron2/voron2_volcano_0.80_Nylon_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_PC_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_0.80_PC_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_PC_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_PETG_extrafast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_PETG_sprint.inst.cfg | 2 +- .../voron2/voron2_volcano_0.80_PETG_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_PLA_extrafast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_PLA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_PLA_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_PVA_extrafast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_PVA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_PVA_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_ABS_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_ABS_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_ABS_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_ASA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_ASA_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_ASA_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_Nylon_sprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.00_Nylon_supersprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.00_Nylon_ultrasprint.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_1.00_PC_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_PC_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_PC_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_PETG_sprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.00_PETG_supersprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.00_PETG_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_PLA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_PLA_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_PLA_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_PVA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_PVA_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_PVA_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_ABS_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_ABS_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_ABS_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_ASA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_ASA_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_ASA_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_Nylon_sprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.20_Nylon_supersprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.20_Nylon_ultrasprint.inst.cfg | 2 +- resources/quality/voron2/voron2_volcano_1.20_PC_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_PC_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_PC_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_PETG_sprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.20_PETG_supersprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.20_PETG_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_PLA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_PLA_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_PLA_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_PVA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_PVA_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_PVA_ultrasprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg | 2 +- 128 files changed, 128 insertions(+), 128 deletions(-) diff --git a/resources/quality/voron2/voron2_global_extrafast_quality.inst.cfg b/resources/quality/voron2/voron2_global_extrafast_quality.inst.cfg index 8d564a775e..88ac7ade39 100644 --- a/resources/quality/voron2/voron2_global_extrafast_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_extrafast_quality.inst.cfg @@ -11,5 +11,5 @@ type = quality [values] layer_height = 0.3 -speed_print = round(6.4 / layer_height / machine_nozzle_size, -1) +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_global_extrafine_quality.inst.cfg b/resources/quality/voron2/voron2_global_extrafine_quality.inst.cfg index 65e3058a85..04b3a56987 100644 --- a/resources/quality/voron2/voron2_global_extrafine_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_extrafine_quality.inst.cfg @@ -11,5 +11,5 @@ type = quality [values] layer_height = 0.06 -speed_print = round(6.4 / layer_height / machine_nozzle_size, -1) +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_global_fast_quality.inst.cfg b/resources/quality/voron2/voron2_global_fast_quality.inst.cfg index a852de50a9..cd6c192f55 100644 --- a/resources/quality/voron2/voron2_global_fast_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_fast_quality.inst.cfg @@ -11,5 +11,5 @@ type = quality [values] layer_height = 0.2 -speed_print = round(6.4 / layer_height / machine_nozzle_size, -1) +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_global_fine_quality.inst.cfg b/resources/quality/voron2/voron2_global_fine_quality.inst.cfg index 186849a257..6b29009d79 100644 --- a/resources/quality/voron2/voron2_global_fine_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_fine_quality.inst.cfg @@ -11,5 +11,5 @@ type = quality [values] layer_height = 0.1 -speed_print = round(6.4 / layer_height / machine_nozzle_size, -1) +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_global_normal_quality.inst.cfg b/resources/quality/voron2/voron2_global_normal_quality.inst.cfg index b2a0084299..cdf8130887 100644 --- a/resources/quality/voron2/voron2_global_normal_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_normal_quality.inst.cfg @@ -11,5 +11,5 @@ type = quality [values] layer_height = 0.15 -speed_print = round(6.4 / layer_height / machine_nozzle_size, -1) +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_global_sprint_quality.inst.cfg b/resources/quality/voron2/voron2_global_sprint_quality.inst.cfg index 9316433a2e..8a02631df7 100644 --- a/resources/quality/voron2/voron2_global_sprint_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_sprint_quality.inst.cfg @@ -11,5 +11,5 @@ type = quality [values] layer_height = 0.4 -speed_print = round(6.4 / layer_height / machine_nozzle_size, -1) +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_global_supersprint_quality.inst.cfg b/resources/quality/voron2/voron2_global_supersprint_quality.inst.cfg index e985e10292..f730d1b8fd 100644 --- a/resources/quality/voron2/voron2_global_supersprint_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_supersprint_quality.inst.cfg @@ -11,5 +11,5 @@ type = quality [values] layer_height = 0.5 -speed_print = round(6.4 / layer_height / machine_nozzle_size, -1) +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_global_ultrasprint_quality.inst.cfg b/resources/quality/voron2/voron2_global_ultrasprint_quality.inst.cfg index b75c9d94ac..c8bbc67f61 100644 --- a/resources/quality/voron2/voron2_global_ultrasprint_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_ultrasprint_quality.inst.cfg @@ -11,5 +11,5 @@ type = quality [values] layer_height = 0.6 -speed_print = round(6.4 / layer_height / machine_nozzle_size, -1) +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_ABS_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_ABS_extrafast.inst.cfg index 53e8b28103..a69dc869ca 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_ABS_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_ABS_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_ABS_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_ABS_fast.inst.cfg index 9656d9c035..d6ae565311 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_ABS_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_ABS_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_ABS_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_ABS_normal.inst.cfg index 631b643e50..e48db248a8 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_ABS_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_ABS_normal.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_ASA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_ASA_extrafast.inst.cfg index 7b710f56be..5997dc83a7 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_ASA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_ASA_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_ASA_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_ASA_fast.inst.cfg index f0512eed5c..5d8b110918 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_ASA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_ASA_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_ASA_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_ASA_normal.inst.cfg index 6b9642b034..f9b95df275 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_ASA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_ASA_normal.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_Nylon_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_Nylon_extrafast.inst.cfg index 39b66d45a4..f5401be196 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_Nylon_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_Nylon_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_Nylon_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_Nylon_fast.inst.cfg index 19c5115bf8..3355caa887 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_Nylon_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_Nylon_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_Nylon_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_Nylon_normal.inst.cfg index 5df1c4bd0e..a506e5f68d 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_Nylon_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_Nylon_normal.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PC_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PC_extrafast.inst.cfg index a83c9579ce..68bf998ce6 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PC_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PC_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PC_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PC_fast.inst.cfg index 708e7221d3..128bbcd387 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PC_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PC_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PC_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PC_normal.inst.cfg index 3995be6ae0..1aea8a1662 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PC_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PC_normal.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PETG_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PETG_extrafast.inst.cfg index ef6e95e4c5..a3254ee874 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PETG_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PETG_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PETG_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PETG_fast.inst.cfg index c95ae8d6e6..255c137b3f 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PETG_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PETG_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PETG_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PETG_normal.inst.cfg index 907d844276..06aba6f9ce 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PETG_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PETG_normal.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PLA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PLA_extrafast.inst.cfg index 8fbaa48183..35d5eeab62 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PLA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PLA_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PLA_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PLA_fast.inst.cfg index 93655d9555..4a31eabc28 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PLA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PLA_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PLA_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PLA_normal.inst.cfg index c41fbceef4..9d5f7c272e 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PLA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PLA_normal.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PVA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PVA_extrafast.inst.cfg index 921979c35c..116676d97a 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PVA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PVA_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PVA_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PVA_fast.inst.cfg index 36de08490b..7e7f2c0b42 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PVA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PVA_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_PVA_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PVA_normal.inst.cfg index 3c1300a3b0..e2509e2f2d 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PVA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PVA_normal.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg index 2111df0677..b0b331adf9 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 0.40mm [values] speed_infill = =speed_print -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg index 8df6ff3069..6706ec31c3 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 0.40mm [values] speed_infill = =speed_print -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg index 89b5e9c9ee..63abc439ba 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 0.40mm [values] speed_infill = =speed_print -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_ABS_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_ABS_extrafast.inst.cfg index e4cc0620e0..69127e7904 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_ABS_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_ABS_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_ABS_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_ABS_fast.inst.cfg index 6e88013da2..096bc51ecb 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_ABS_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_ABS_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_ABS_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_ABS_sprint.inst.cfg index d4d55edccd..aa38161995 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_ABS_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_ABS_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_ASA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_ASA_extrafast.inst.cfg index fb68e3a552..de93e0b9c8 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_ASA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_ASA_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_ASA_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_ASA_fast.inst.cfg index cc9e76cdc4..06ca64490c 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_ASA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_ASA_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_ASA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_ASA_sprint.inst.cfg index 4a192db94e..0888c6438b 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_ASA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_ASA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_Nylon_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_Nylon_extrafast.inst.cfg index adaf96391f..d4bb140f4d 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_Nylon_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_Nylon_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_Nylon_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_Nylon_fast.inst.cfg index 77319c0f7d..05e67a61ab 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_Nylon_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_Nylon_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_Nylon_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_Nylon_sprint.inst.cfg index 51d5d75709..d1cca989b0 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_Nylon_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_Nylon_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PC_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PC_extrafast.inst.cfg index 5b1a261867..ad270156c4 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PC_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PC_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PC_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PC_fast.inst.cfg index 704d7608e1..c4d8ff6d53 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PC_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PC_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PC_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PC_sprint.inst.cfg index 15b8d564af..19847a4b92 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PC_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PC_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PETG_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PETG_extrafast.inst.cfg index bf6edb1e52..73d38be2fc 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PETG_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PETG_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PETG_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PETG_fast.inst.cfg index 1e0fbf667c..dccf2fa82f 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PETG_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PETG_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PETG_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PETG_sprint.inst.cfg index 632a80a849..b199a9d2e0 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PETG_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PETG_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PLA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PLA_extrafast.inst.cfg index 03e889cc67..53dda3986a 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PLA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PLA_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PLA_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PLA_fast.inst.cfg index b17ce109ae..a20e04a272 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PLA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PLA_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PLA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PLA_sprint.inst.cfg index 9ec128704d..7314fd1ccf 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PLA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PLA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PVA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PVA_extrafast.inst.cfg index 504ea3a868..5510b23f76 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PVA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PVA_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PVA_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PVA_fast.inst.cfg index dd6fd5e1b7..7f21ecd274 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PVA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PVA_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_PVA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PVA_sprint.inst.cfg index 57096e0376..d73e61aeab 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PVA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PVA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg index f629dea305..936c748f34 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 0.60mm [values] speed_infill = =speed_print -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg index e87f63d7a2..7f347bba87 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 0.60mm [values] speed_infill = =speed_print -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg index 510f5eba6b..0a68e49de6 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 0.60mm [values] speed_infill = =speed_print -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_ABS_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_ABS_extrafast.inst.cfg index 69a8b3c8f1..f22f286ba2 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_ABS_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_ABS_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_ABS_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_ABS_sprint.inst.cfg index e842880865..8e7e7ff737 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_ABS_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_ABS_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_ABS_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_ABS_supersprint.inst.cfg index d654143d2e..6f9dfbdb95 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_ABS_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_ABS_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_ASA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_ASA_extrafast.inst.cfg index 9fd4efa2e2..f930448d2d 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_ASA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_ASA_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_ASA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_ASA_sprint.inst.cfg index 6d4a1eded7..6ac21d1731 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_ASA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_ASA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_ASA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_ASA_supersprint.inst.cfg index 6dee82f910..5e9cf90271 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_ASA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_ASA_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_Nylon_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_Nylon_extrafast.inst.cfg index 919fa0a785..00aefc7add 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_Nylon_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_Nylon_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_Nylon_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_Nylon_sprint.inst.cfg index d9b0386f9f..01d739e534 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_Nylon_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_Nylon_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_Nylon_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_Nylon_supersprint.inst.cfg index 7e3eed413e..35afe53b11 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_Nylon_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_Nylon_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PC_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PC_extrafast.inst.cfg index 554c8adab2..be761a53d0 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PC_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PC_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PC_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PC_sprint.inst.cfg index bcd47d3c90..370d786882 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PC_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PC_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PC_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PC_supersprint.inst.cfg index 166c36dab7..b85d1c3be8 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PC_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PC_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PETG_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PETG_extrafast.inst.cfg index c2633b92a6..1f9abb1518 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PETG_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PETG_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PETG_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PETG_sprint.inst.cfg index d306808b68..ace7d1ddff 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PETG_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PETG_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PETG_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PETG_supersprint.inst.cfg index 055e8d4d62..6a767fd7c7 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PETG_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PETG_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PLA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PLA_extrafast.inst.cfg index 76a95dd365..e1c83bb9fe 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PLA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PLA_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PLA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PLA_sprint.inst.cfg index 2ea0757e6b..863194f0c5 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PLA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PLA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PLA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PLA_supersprint.inst.cfg index dd65361ddc..f3907541ea 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PLA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PLA_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PVA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PVA_extrafast.inst.cfg index b88152ec71..17cbeb802f 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PVA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PVA_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PVA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PVA_sprint.inst.cfg index 00cc0b12fc..8b08ad2f80 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PVA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PVA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_PVA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PVA_supersprint.inst.cfg index a982135206..cffd9bc401 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PVA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PVA_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg index b8adeb7ded..7efda63dad 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 0.80mm [values] speed_infill = =speed_print -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg index 59497be1aa..0696e17472 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 0.80mm [values] speed_infill = =speed_print -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg index 62de61eb0d..e25ee39095 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 0.80mm [values] speed_infill = =speed_print -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_ABS_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_ABS_sprint.inst.cfg index a6cb9e2c36..32e2e65d1a 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_ABS_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_ABS_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_ABS_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_ABS_supersprint.inst.cfg index ccfdb210ce..995efa00c6 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_ABS_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_ABS_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_ABS_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_ABS_ultrasprint.inst.cfg index fe76ef386c..492b807eb2 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_ABS_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_ABS_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_ASA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_ASA_sprint.inst.cfg index 57651cca54..a3424e2cf9 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_ASA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_ASA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_ASA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_ASA_supersprint.inst.cfg index 05aed00f10..a4585b08ce 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_ASA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_ASA_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_ASA_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_ASA_ultrasprint.inst.cfg index 5a2e436f46..1ee262a21a 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_ASA_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_ASA_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_Nylon_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_Nylon_sprint.inst.cfg index a2e5ebae04..12664a169b 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_Nylon_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_Nylon_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_Nylon_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_Nylon_supersprint.inst.cfg index 06edb77663..0c9a41a875 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_Nylon_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_Nylon_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_Nylon_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_Nylon_ultrasprint.inst.cfg index f864f057ea..c5819caab6 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_Nylon_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_Nylon_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PC_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PC_sprint.inst.cfg index 65fa941bfd..271ef98612 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PC_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PC_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PC_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PC_supersprint.inst.cfg index c09e837cdf..bc400c0ea4 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PC_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PC_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PC_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PC_ultrasprint.inst.cfg index 2d75905eef..d1a874ebc9 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PC_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PC_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PETG_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PETG_sprint.inst.cfg index 8fc130d0f5..a1cfc07a6e 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PETG_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PETG_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PETG_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PETG_supersprint.inst.cfg index 270b3ea041..82af1c6c39 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PETG_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PETG_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PETG_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PETG_ultrasprint.inst.cfg index d2c4292a8c..c31664bb1b 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PETG_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PETG_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PLA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PLA_sprint.inst.cfg index 88437ac6c4..83a8a3bda3 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PLA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PLA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PLA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PLA_supersprint.inst.cfg index 87b2e6d36d..6881897e97 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PLA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PLA_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PLA_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PLA_ultrasprint.inst.cfg index 2be5fd0724..8ed1175579 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PLA_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PLA_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PVA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PVA_sprint.inst.cfg index 77ac16b3b9..59f8c64281 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PVA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PVA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PVA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PVA_supersprint.inst.cfg index c55f055963..cd366a726d 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PVA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PVA_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_PVA_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PVA_ultrasprint.inst.cfg index 577c2da0f6..4ca1c7718d 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PVA_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PVA_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg index b5a51d4380..018f9d7c17 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 1.00mm [values] speed_infill = =speed_print -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg index 81c5a84662..c836b25ea4 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 1.00mm [values] speed_infill = =speed_print -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg index 9184f8c931..9592b24798 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 1.00mm [values] speed_infill = =speed_print -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_ABS_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_ABS_sprint.inst.cfg index 6d2b4ad559..2dcbde9d26 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_ABS_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_ABS_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_ABS_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_ABS_supersprint.inst.cfg index ff4f690d54..ab245ef159 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_ABS_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_ABS_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_ABS_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_ABS_ultrasprint.inst.cfg index 7369d86cf4..aae49395f2 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_ABS_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_ABS_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_ASA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_ASA_sprint.inst.cfg index ec560a760c..54e8467676 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_ASA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_ASA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_ASA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_ASA_supersprint.inst.cfg index c84b7f8cae..6766eba477 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_ASA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_ASA_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_ASA_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_ASA_ultrasprint.inst.cfg index 4c397ed5bf..a6cbaedf46 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_ASA_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_ASA_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_Nylon_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_Nylon_sprint.inst.cfg index 03be6c9ae1..c4b1c436bc 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_Nylon_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_Nylon_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_Nylon_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_Nylon_supersprint.inst.cfg index 04dc6715c7..4e79ed46b9 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_Nylon_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_Nylon_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_Nylon_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_Nylon_ultrasprint.inst.cfg index dd7ae91188..3ba1aa6191 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_Nylon_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_Nylon_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PC_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PC_sprint.inst.cfg index 936f869d5a..1c69c40798 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PC_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PC_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PC_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PC_supersprint.inst.cfg index ce942504d7..c016aef7d5 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PC_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PC_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PC_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PC_ultrasprint.inst.cfg index 962dac16bf..7880c47462 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PC_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PC_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PETG_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PETG_sprint.inst.cfg index d456b159ca..116d5a3562 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PETG_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PETG_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PETG_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PETG_supersprint.inst.cfg index ee0e780731..60fad99ab1 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PETG_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PETG_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PETG_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PETG_ultrasprint.inst.cfg index 236249e985..c4ff716d90 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PETG_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PETG_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PLA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PLA_sprint.inst.cfg index 7204f7112a..d1cb7ae2e0 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PLA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PLA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PLA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PLA_supersprint.inst.cfg index fd076fbd05..4df9e6e851 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PLA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PLA_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PLA_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PLA_ultrasprint.inst.cfg index 45301f8106..f4b69ff8f3 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PLA_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PLA_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PVA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PVA_sprint.inst.cfg index 7d29d9b7c3..71b856e629 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PVA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PVA_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PVA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PVA_supersprint.inst.cfg index 6ef7d91472..9fc152f9f8 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PVA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PVA_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_PVA_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PVA_ultrasprint.inst.cfg index 08864041e6..6ef442afa3 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PVA_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PVA_ultrasprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg index 9017f63ac7..bd5dd0cbe8 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 1.20mm [values] speed_infill = =speed_print -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg index 422b341676..6983df8652 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 1.20mm [values] speed_infill = =speed_print -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg index 64a69f3799..07201e401b 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg @@ -12,5 +12,5 @@ variant = Volcano 1.20mm [values] speed_infill = =speed_print -speed_print = round(20 / layer_height / machine_nozzle_size, -1) +speed_print = =round(20 / layer_height / machine_nozzle_size, -1) From 0d439adf5b81d6aeaaef9bc20af413aa42a6b33d Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Fri, 6 Sep 2024 07:09:18 -0400 Subject: [PATCH 026/200] Update travel speed lower limit to follow speed_print --- resources/definitions/voron2_base.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 289bd72030..f1477b19fa 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -101,8 +101,8 @@ "speed_slowdown_layers": { "default_value": 4 }, "speed_travel": { - "maximum_value_warning": "max(100, round((machine_max_feedrate_x + machine_max_feedrate_y) / 2, -2)) + 1", - "value": "speed_print if magic_spiralize else max(100, round((machine_max_feedrate_x + machine_max_feedrate_y) / 2, -2))" + "maximum_value_warning": "max(500, round((machine_max_feedrate_x + machine_max_feedrate_y) / 2, -2)) + 1", + "value": "speed_print if magic_spiralize else max(speed_print, round((machine_max_feedrate_x + machine_max_feedrate_y) / 2, -2))" }, "speed_z_hop": { "value": "machine_max_feedrate_z" }, "travel_avoid_other_parts": { "default_value": false }, From 23262cc738d0271e43cf68bbdac5dda9cb2a8bf7 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Fri, 6 Sep 2024 13:33:04 -0400 Subject: [PATCH 027/200] Move default speed_print from global quality profiles to printer definition --- resources/definitions/voron2_base.def.json | 1 + .../quality/voron2/voron2_global_extrafast_quality.inst.cfg | 1 - .../quality/voron2/voron2_global_extrafine_quality.inst.cfg | 1 - resources/quality/voron2/voron2_global_fast_quality.inst.cfg | 1 - resources/quality/voron2/voron2_global_fine_quality.inst.cfg | 1 - resources/quality/voron2/voron2_global_normal_quality.inst.cfg | 1 - resources/quality/voron2/voron2_global_sprint_quality.inst.cfg | 1 - .../quality/voron2/voron2_global_supersprint_quality.inst.cfg | 1 - .../quality/voron2/voron2_global_ultrasprint_quality.inst.cfg | 1 - 9 files changed, 1 insertion(+), 8 deletions(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index f1477b19fa..88b3b7a46b 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -98,6 +98,7 @@ "skirt_brim_minimal_length": { "default_value": 550 }, "speed_infill": { "value": "speed_print * 1.5" }, "speed_layer_0": { "value": "speed_print * 3 / 8" }, + "speed_print": { "value": "round(6.4 / layer_height / machine_nozzle_size, -1)" }, "speed_slowdown_layers": { "default_value": 4 }, "speed_travel": { diff --git a/resources/quality/voron2/voron2_global_extrafast_quality.inst.cfg b/resources/quality/voron2/voron2_global_extrafast_quality.inst.cfg index 88ac7ade39..ca793bd4cd 100644 --- a/resources/quality/voron2/voron2_global_extrafast_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_extrafast_quality.inst.cfg @@ -11,5 +11,4 @@ type = quality [values] layer_height = 0.3 -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_global_extrafine_quality.inst.cfg b/resources/quality/voron2/voron2_global_extrafine_quality.inst.cfg index 04b3a56987..ce40e62445 100644 --- a/resources/quality/voron2/voron2_global_extrafine_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_extrafine_quality.inst.cfg @@ -11,5 +11,4 @@ type = quality [values] layer_height = 0.06 -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_global_fast_quality.inst.cfg b/resources/quality/voron2/voron2_global_fast_quality.inst.cfg index cd6c192f55..0449c493fa 100644 --- a/resources/quality/voron2/voron2_global_fast_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_fast_quality.inst.cfg @@ -11,5 +11,4 @@ type = quality [values] layer_height = 0.2 -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_global_fine_quality.inst.cfg b/resources/quality/voron2/voron2_global_fine_quality.inst.cfg index 6b29009d79..6f29ec5055 100644 --- a/resources/quality/voron2/voron2_global_fine_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_fine_quality.inst.cfg @@ -11,5 +11,4 @@ type = quality [values] layer_height = 0.1 -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_global_normal_quality.inst.cfg b/resources/quality/voron2/voron2_global_normal_quality.inst.cfg index cdf8130887..e3d8fbbd5a 100644 --- a/resources/quality/voron2/voron2_global_normal_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_normal_quality.inst.cfg @@ -11,5 +11,4 @@ type = quality [values] layer_height = 0.15 -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_global_sprint_quality.inst.cfg b/resources/quality/voron2/voron2_global_sprint_quality.inst.cfg index 8a02631df7..1ace1241f1 100644 --- a/resources/quality/voron2/voron2_global_sprint_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_sprint_quality.inst.cfg @@ -11,5 +11,4 @@ type = quality [values] layer_height = 0.4 -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_global_supersprint_quality.inst.cfg b/resources/quality/voron2/voron2_global_supersprint_quality.inst.cfg index f730d1b8fd..f294ceb8bb 100644 --- a/resources/quality/voron2/voron2_global_supersprint_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_supersprint_quality.inst.cfg @@ -11,5 +11,4 @@ type = quality [values] layer_height = 0.5 -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_global_ultrasprint_quality.inst.cfg b/resources/quality/voron2/voron2_global_ultrasprint_quality.inst.cfg index c8bbc67f61..999e2cf9db 100644 --- a/resources/quality/voron2/voron2_global_ultrasprint_quality.inst.cfg +++ b/resources/quality/voron2/voron2_global_ultrasprint_quality.inst.cfg @@ -11,5 +11,4 @@ type = quality [values] layer_height = 0.6 -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) From ed870009c14f79e0435bc8232b46bb95c0e0e193 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Fri, 6 Sep 2024 13:56:23 -0400 Subject: [PATCH 028/200] Fix incorrect speed variable in cool_min_speed calculation --- resources/definitions/voron2_base.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 88b3b7a46b..527746d531 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -34,7 +34,7 @@ "cool_fan_speed_min": { "value": "cool_fan_speed" }, "cool_min_layer_time": { "default_value": 15 }, "cool_min_layer_time_fan_speed_max": { "default_value": 20 }, - "cool_min_speed": { "value": "max(speed_print_layer_0, round(speed_wall_0 * 3 / 4) if cool_lift_head else round(speed_wall_0 / 2))" }, + "cool_min_speed": { "value": "max(round(speed_layer_0 / 2), round(speed_wall_0 * 3 / 4) if cool_lift_head else round(speed_wall_0 / 2))" }, "fill_outline_gaps": { "default_value": true }, "gantry_height": { "value": 30 }, "infill_before_walls": { "default_value": false }, From d0c9ade520734fb5c411361af02422499c8e6298 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Thu, 3 Oct 2024 07:50:38 -0400 Subject: [PATCH 029/200] Update wall thickness to dynamically adjust to nozzle size --- resources/definitions/voron2_base.def.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 527746d531..53566cb466 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -106,10 +106,12 @@ "value": "speed_print if magic_spiralize else max(speed_print, round((machine_max_feedrate_x + machine_max_feedrate_y) / 2, -2))" }, "speed_z_hop": { "value": "machine_max_feedrate_z" }, + "top_bottom_thickness": { "value": "wall_thickness" }, "travel_avoid_other_parts": { "default_value": false }, "wall_line_width": { "value": "machine_nozzle_size" }, "wall_overhang_angle": { "default_value": 75 }, "wall_overhang_speed_factor": { "default_value": 50 }, + "wall_thickness": { "value": "wall_line_width_0 + wall_line_width_x" }, "zig_zaggify_infill": { "value": true } } } \ No newline at end of file From 5739b9c564da9a8e2d1726a87d610026cc5aafac Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Sat, 30 Nov 2024 19:15:24 -0500 Subject: [PATCH 030/200] Update profile versions in Voron files A branch with updated material profiles was recently merged before the version numbers where updated for 5.9, leading to errors during the unit tests. This is my attempt to fix that quickly --- .../quality/voron2/voron2_v6_0.25_ASA_extrafine.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.25_ASA_fast.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.25_ASA_fine.inst.cfg | 2 +- .../quality/voron2/voron2_v6_0.25_ASA_normal.inst.cfg | 2 +- .../quality/voron2/voron2_v6_0.25_PVA_extrafine.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.25_PVA_fast.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.25_PVA_fine.inst.cfg | 2 +- .../quality/voron2/voron2_v6_0.25_PVA_normal.inst.cfg | 2 +- .../quality/voron2/voron2_v6_0.25_TPU_extrafine.inst.cfg | 8 +------- resources/quality/voron2/voron2_v6_0.25_TPU_fast.inst.cfg | 8 +------- resources/quality/voron2/voron2_v6_0.25_TPU_fine.inst.cfg | 8 +------- .../quality/voron2/voron2_v6_0.25_TPU_normal.inst.cfg | 8 +------- .../quality/voron2/voron2_v6_0.30_ASA_extrafine.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.30_ASA_fast.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.30_ASA_fine.inst.cfg | 2 +- .../quality/voron2/voron2_v6_0.30_ASA_normal.inst.cfg | 2 +- .../quality/voron2/voron2_v6_0.30_PVA_extrafine.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.30_PVA_fast.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.30_PVA_fine.inst.cfg | 2 +- .../quality/voron2/voron2_v6_0.30_PVA_normal.inst.cfg | 2 +- .../quality/voron2/voron2_v6_0.30_TPU_extrafine.inst.cfg | 8 +------- resources/quality/voron2/voron2_v6_0.30_TPU_fast.inst.cfg | 8 +------- resources/quality/voron2/voron2_v6_0.30_TPU_fine.inst.cfg | 8 +------- .../quality/voron2/voron2_v6_0.30_TPU_normal.inst.cfg | 8 +------- resources/quality/voron2/voron2_v6_0.35_ASA_fast.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.35_ASA_fine.inst.cfg | 2 +- .../quality/voron2/voron2_v6_0.35_ASA_normal.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.35_PVA_fast.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.35_PVA_fine.inst.cfg | 2 +- .../quality/voron2/voron2_v6_0.35_PVA_normal.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.35_TPU_fast.inst.cfg | 8 +------- resources/quality/voron2/voron2_v6_0.35_TPU_fine.inst.cfg | 8 +------- .../quality/voron2/voron2_v6_0.35_TPU_normal.inst.cfg | 8 +------- .../quality/voron2/voron2_v6_0.40_ASA_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.40_ASA_fast.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.40_ASA_fine.inst.cfg | 2 +- .../quality/voron2/voron2_v6_0.40_ASA_normal.inst.cfg | 2 +- .../quality/voron2/voron2_v6_0.40_PVA_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.40_PVA_fast.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.40_PVA_fine.inst.cfg | 2 +- .../quality/voron2/voron2_v6_0.40_PVA_normal.inst.cfg | 2 +- .../quality/voron2/voron2_v6_0.40_TPU_extrafast.inst.cfg | 8 +------- resources/quality/voron2/voron2_v6_0.40_TPU_fast.inst.cfg | 8 +------- resources/quality/voron2/voron2_v6_0.40_TPU_fine.inst.cfg | 8 +------- .../quality/voron2/voron2_v6_0.40_TPU_normal.inst.cfg | 8 +------- .../quality/voron2/voron2_v6_0.50_ASA_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.50_ASA_fast.inst.cfg | 2 +- .../quality/voron2/voron2_v6_0.50_ASA_normal.inst.cfg | 2 +- .../quality/voron2/voron2_v6_0.50_ASA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_v6_0.50_PVA_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.50_PVA_fast.inst.cfg | 2 +- .../quality/voron2/voron2_v6_0.50_PVA_normal.inst.cfg | 2 +- .../quality/voron2/voron2_v6_0.50_PVA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_v6_0.50_TPU_extrafast.inst.cfg | 8 +------- resources/quality/voron2/voron2_v6_0.50_TPU_fast.inst.cfg | 8 +------- .../quality/voron2/voron2_v6_0.50_TPU_normal.inst.cfg | 8 +------- .../quality/voron2/voron2_v6_0.50_TPU_sprint.inst.cfg | 8 +------- .../quality/voron2/voron2_v6_0.60_ASA_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.60_ASA_fast.inst.cfg | 2 +- .../quality/voron2/voron2_v6_0.60_ASA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_v6_0.60_PVA_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.60_PVA_fast.inst.cfg | 2 +- .../quality/voron2/voron2_v6_0.60_PVA_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_v6_0.60_TPU_extrafast.inst.cfg | 8 +------- resources/quality/voron2/voron2_v6_0.60_TPU_fast.inst.cfg | 8 +------- .../quality/voron2/voron2_v6_0.60_TPU_sprint.inst.cfg | 8 +------- .../quality/voron2/voron2_v6_0.80_ASA_extrafast.inst.cfg | 2 +- .../quality/voron2/voron2_v6_0.80_ASA_sprint.inst.cfg | 2 +- .../voron2/voron2_v6_0.80_ASA_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_v6_0.80_PVA_extrafast.inst.cfg | 2 +- .../quality/voron2/voron2_v6_0.80_PVA_sprint.inst.cfg | 2 +- .../voron2/voron2_v6_0.80_PVA_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_v6_0.80_TPU_extrafast.inst.cfg | 8 +------- .../quality/voron2/voron2_v6_0.80_TPU_sprint.inst.cfg | 8 +------- .../voron2/voron2_v6_0.80_TPU_supersprint.inst.cfg | 8 +------- .../voron2/voron2_volcano_0.40_ASA_extrafast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_ASA_fast.inst.cfg | 2 +- .../voron2/voron2_volcano_0.40_ASA_normal.inst.cfg | 2 +- .../voron2/voron2_volcano_0.40_PVA_extrafast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_PVA_fast.inst.cfg | 2 +- .../voron2/voron2_volcano_0.40_PVA_normal.inst.cfg | 2 +- .../voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg | 8 +------- .../quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg | 8 +------- .../voron2/voron2_volcano_0.40_TPU_normal.inst.cfg | 8 +------- .../voron2/voron2_volcano_0.60_ASA_extrafast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_ASA_fast.inst.cfg | 2 +- .../voron2/voron2_volcano_0.60_ASA_sprint.inst.cfg | 2 +- .../voron2/voron2_volcano_0.60_PVA_extrafast.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.60_PVA_fast.inst.cfg | 2 +- .../voron2/voron2_volcano_0.60_PVA_sprint.inst.cfg | 2 +- .../voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg | 8 +------- .../quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg | 8 +------- .../voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg | 8 +------- .../voron2/voron2_volcano_0.80_ASA_extrafast.inst.cfg | 2 +- .../voron2/voron2_volcano_0.80_ASA_sprint.inst.cfg | 2 +- .../voron2/voron2_volcano_0.80_ASA_supersprint.inst.cfg | 2 +- .../voron2/voron2_volcano_0.80_PVA_extrafast.inst.cfg | 2 +- .../voron2/voron2_volcano_0.80_PVA_sprint.inst.cfg | 2 +- .../voron2/voron2_volcano_0.80_PVA_supersprint.inst.cfg | 2 +- .../voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg | 8 +------- .../voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg | 8 +------- .../voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg | 8 +------- .../voron2/voron2_volcano_1.00_ASA_sprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.00_ASA_supersprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.00_ASA_ultrasprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.00_PVA_sprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.00_PVA_supersprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.00_PVA_ultrasprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg | 8 +------- .../voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg | 8 +------- .../voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg | 8 +------- .../voron2/voron2_volcano_1.20_ASA_sprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.20_ASA_supersprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.20_ASA_ultrasprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.20_PVA_sprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.20_PVA_supersprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.20_PVA_ultrasprint.inst.cfg | 2 +- .../voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg | 8 +------- .../voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg | 8 +------- .../voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg | 8 +------- 120 files changed, 120 insertions(+), 360 deletions(-) diff --git a/resources/quality/voron2/voron2_v6_0.25_ASA_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_ASA_extrafine.inst.cfg index d89894647c..9819984b71 100644 --- a/resources/quality/voron2/voron2_v6_0.25_ASA_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_ASA_extrafine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = extrafine -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.25mm diff --git a/resources/quality/voron2/voron2_v6_0.25_ASA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_ASA_fast.inst.cfg index e3d0252d49..05d0a504e9 100644 --- a/resources/quality/voron2/voron2_v6_0.25_ASA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_ASA_fast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = fast -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.25mm diff --git a/resources/quality/voron2/voron2_v6_0.25_ASA_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_ASA_fine.inst.cfg index ab3e3e17ea..e1111c1026 100644 --- a/resources/quality/voron2/voron2_v6_0.25_ASA_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_ASA_fine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = fine -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.25mm diff --git a/resources/quality/voron2/voron2_v6_0.25_ASA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_ASA_normal.inst.cfg index b9e9565c3c..b4e2f49779 100644 --- a/resources/quality/voron2/voron2_v6_0.25_ASA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_ASA_normal.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = normal -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.25mm diff --git a/resources/quality/voron2/voron2_v6_0.25_PVA_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_PVA_extrafine.inst.cfg index 991ac5d101..10f80e4785 100644 --- a/resources/quality/voron2/voron2_v6_0.25_PVA_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_PVA_extrafine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = extrafine -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.25mm diff --git a/resources/quality/voron2/voron2_v6_0.25_PVA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_PVA_fast.inst.cfg index e148d1c4b6..c84b36660b 100644 --- a/resources/quality/voron2/voron2_v6_0.25_PVA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_PVA_fast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = fast -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.25mm diff --git a/resources/quality/voron2/voron2_v6_0.25_PVA_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_PVA_fine.inst.cfg index 9b9a0ffee9..c6eb62e1b6 100644 --- a/resources/quality/voron2/voron2_v6_0.25_PVA_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_PVA_fine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = fine -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.25mm diff --git a/resources/quality/voron2/voron2_v6_0.25_PVA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_PVA_normal.inst.cfg index d134c72fdb..f2e5706e31 100644 --- a/resources/quality/voron2/voron2_v6_0.25_PVA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_PVA_normal.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = normal -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.25mm diff --git a/resources/quality/voron2/voron2_v6_0.25_TPU_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_TPU_extrafine.inst.cfg index e7b6b714fb..bafa6b80a1 100644 --- a/resources/quality/voron2/voron2_v6_0.25_TPU_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_TPU_extrafine.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = extrafine -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.25mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 300 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.25_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_TPU_fast.inst.cfg index a93e0bd832..14c900acab 100644 --- a/resources/quality/voron2/voron2_v6_0.25_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_TPU_fast.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = fast -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.25mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 180 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.25_TPU_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_TPU_fine.inst.cfg index ee2404bc08..63bbb58cff 100644 --- a/resources/quality/voron2/voron2_v6_0.25_TPU_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_TPU_fine.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = fine -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.25mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 300 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.25_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_TPU_normal.inst.cfg index 6931141a6f..4c2fd87205 100644 --- a/resources/quality/voron2/voron2_v6_0.25_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_TPU_normal.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = normal -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.25mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 240 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.30_ASA_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_ASA_extrafine.inst.cfg index 895ff9daf4..dcf9a6fe45 100644 --- a/resources/quality/voron2/voron2_v6_0.30_ASA_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_ASA_extrafine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = extrafine -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.30mm diff --git a/resources/quality/voron2/voron2_v6_0.30_ASA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_ASA_fast.inst.cfg index f10be46a98..b79bb0e096 100644 --- a/resources/quality/voron2/voron2_v6_0.30_ASA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_ASA_fast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = fast -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.30mm diff --git a/resources/quality/voron2/voron2_v6_0.30_ASA_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_ASA_fine.inst.cfg index 2b7356f1a5..0d85a07e9c 100644 --- a/resources/quality/voron2/voron2_v6_0.30_ASA_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_ASA_fine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = fine -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.30mm diff --git a/resources/quality/voron2/voron2_v6_0.30_ASA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_ASA_normal.inst.cfg index 542b8d2986..734e32367c 100644 --- a/resources/quality/voron2/voron2_v6_0.30_ASA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_ASA_normal.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = normal -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.30mm diff --git a/resources/quality/voron2/voron2_v6_0.30_PVA_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_PVA_extrafine.inst.cfg index 2ce1651a4c..97c131f56b 100644 --- a/resources/quality/voron2/voron2_v6_0.30_PVA_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_PVA_extrafine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = extrafine -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.30mm diff --git a/resources/quality/voron2/voron2_v6_0.30_PVA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_PVA_fast.inst.cfg index cac8e008e9..3da38499ee 100644 --- a/resources/quality/voron2/voron2_v6_0.30_PVA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_PVA_fast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = fast -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.30mm diff --git a/resources/quality/voron2/voron2_v6_0.30_PVA_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_PVA_fine.inst.cfg index 616a9537c8..aaa65f6439 100644 --- a/resources/quality/voron2/voron2_v6_0.30_PVA_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_PVA_fine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = fine -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.30mm diff --git a/resources/quality/voron2/voron2_v6_0.30_PVA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_PVA_normal.inst.cfg index 75ed433d4c..cd98f31944 100644 --- a/resources/quality/voron2/voron2_v6_0.30_PVA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_PVA_normal.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = normal -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.30mm diff --git a/resources/quality/voron2/voron2_v6_0.30_TPU_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_TPU_extrafine.inst.cfg index 217caf5659..224f141198 100644 --- a/resources/quality/voron2/voron2_v6_0.30_TPU_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_TPU_extrafine.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = extrafine -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.30mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 300 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.30_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_TPU_fast.inst.cfg index bd067c1827..963f40ab24 100644 --- a/resources/quality/voron2/voron2_v6_0.30_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_TPU_fast.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = fast -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.30mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 160 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.30_TPU_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_TPU_fine.inst.cfg index 05000e8e19..14a20abe03 100644 --- a/resources/quality/voron2/voron2_v6_0.30_TPU_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_TPU_fine.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = fine -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.30mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 300 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.30_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_TPU_normal.inst.cfg index a934707451..4bb5ccfe57 100644 --- a/resources/quality/voron2/voron2_v6_0.30_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_TPU_normal.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = normal -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.30mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 200 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.35_ASA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_ASA_fast.inst.cfg index 49bdf430a3..dbac6990bf 100644 --- a/resources/quality/voron2/voron2_v6_0.35_ASA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_ASA_fast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = fast -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.35mm diff --git a/resources/quality/voron2/voron2_v6_0.35_ASA_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_ASA_fine.inst.cfg index 531dcb8b39..990496f4d9 100644 --- a/resources/quality/voron2/voron2_v6_0.35_ASA_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_ASA_fine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = fine -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.35mm diff --git a/resources/quality/voron2/voron2_v6_0.35_ASA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_ASA_normal.inst.cfg index 656d982e01..3a58e94bc1 100644 --- a/resources/quality/voron2/voron2_v6_0.35_ASA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_ASA_normal.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = normal -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.35mm diff --git a/resources/quality/voron2/voron2_v6_0.35_PVA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_PVA_fast.inst.cfg index 3b0eb953ba..13b1d6c2f0 100644 --- a/resources/quality/voron2/voron2_v6_0.35_PVA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_PVA_fast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = fast -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.35mm diff --git a/resources/quality/voron2/voron2_v6_0.35_PVA_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_PVA_fine.inst.cfg index 51128170f4..21843a75c9 100644 --- a/resources/quality/voron2/voron2_v6_0.35_PVA_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_PVA_fine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = fine -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.35mm diff --git a/resources/quality/voron2/voron2_v6_0.35_PVA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_PVA_normal.inst.cfg index 00ba1c8267..9b982421ed 100644 --- a/resources/quality/voron2/voron2_v6_0.35_PVA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_PVA_normal.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = normal -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.35mm diff --git a/resources/quality/voron2/voron2_v6_0.35_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_TPU_fast.inst.cfg index 57751118f9..1bd617765d 100644 --- a/resources/quality/voron2/voron2_v6_0.35_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_TPU_fast.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = fast -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.35mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 135 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.35_TPU_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_TPU_fine.inst.cfg index 4016f5584e..22668590ec 100644 --- a/resources/quality/voron2/voron2_v6_0.35_TPU_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_TPU_fine.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = fine -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.35mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 270 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.35_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_TPU_normal.inst.cfg index b7474b0cbd..736ab468e6 100644 --- a/resources/quality/voron2/voron2_v6_0.35_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_TPU_normal.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = normal -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.35mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 180 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.40_ASA_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_ASA_extrafast.inst.cfg index de76119db3..8820ff968c 100644 --- a/resources/quality/voron2/voron2_v6_0.40_ASA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_ASA_extrafast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = extrafast -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.40mm diff --git a/resources/quality/voron2/voron2_v6_0.40_ASA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_ASA_fast.inst.cfg index 4819149590..917e90cf7f 100644 --- a/resources/quality/voron2/voron2_v6_0.40_ASA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_ASA_fast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = fast -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.40mm diff --git a/resources/quality/voron2/voron2_v6_0.40_ASA_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_ASA_fine.inst.cfg index 777d39748c..1cb5221228 100644 --- a/resources/quality/voron2/voron2_v6_0.40_ASA_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_ASA_fine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = fine -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.40mm diff --git a/resources/quality/voron2/voron2_v6_0.40_ASA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_ASA_normal.inst.cfg index 294d9c66b8..3a18c9f8c1 100644 --- a/resources/quality/voron2/voron2_v6_0.40_ASA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_ASA_normal.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = normal -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.40mm diff --git a/resources/quality/voron2/voron2_v6_0.40_PVA_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_PVA_extrafast.inst.cfg index 53497d7923..b8865a8af8 100644 --- a/resources/quality/voron2/voron2_v6_0.40_PVA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_PVA_extrafast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = extrafast -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.40mm diff --git a/resources/quality/voron2/voron2_v6_0.40_PVA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_PVA_fast.inst.cfg index 43a0ffa1ad..983addb707 100644 --- a/resources/quality/voron2/voron2_v6_0.40_PVA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_PVA_fast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = fast -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.40mm diff --git a/resources/quality/voron2/voron2_v6_0.40_PVA_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_PVA_fine.inst.cfg index 8c737fbf04..80328cf24f 100644 --- a/resources/quality/voron2/voron2_v6_0.40_PVA_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_PVA_fine.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = fine -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.40mm diff --git a/resources/quality/voron2/voron2_v6_0.40_PVA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_PVA_normal.inst.cfg index 2d4595f38e..a0e8fa9446 100644 --- a/resources/quality/voron2/voron2_v6_0.40_PVA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_PVA_normal.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = normal -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.40mm diff --git a/resources/quality/voron2/voron2_v6_0.40_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_TPU_extrafast.inst.cfg index 7b8ecd4957..9bd71195bd 100644 --- a/resources/quality/voron2/voron2_v6_0.40_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_TPU_extrafast.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = extrafast -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.40mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 80 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.40_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_TPU_fast.inst.cfg index cc323328b3..de4d12108e 100644 --- a/resources/quality/voron2/voron2_v6_0.40_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_TPU_fast.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = fast -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.40mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 120 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.40_TPU_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_TPU_fine.inst.cfg index fcdc58c5d0..0df5c0cccc 100644 --- a/resources/quality/voron2/voron2_v6_0.40_TPU_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_TPU_fine.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = fine -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.40mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 240 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.40_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_TPU_normal.inst.cfg index 63d675bb68..7816bfacdf 100644 --- a/resources/quality/voron2/voron2_v6_0.40_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_TPU_normal.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = normal -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.40mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 160 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.50_ASA_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_ASA_extrafast.inst.cfg index e948b334da..90e70de319 100644 --- a/resources/quality/voron2/voron2_v6_0.50_ASA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_ASA_extrafast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = extrafast -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.50mm diff --git a/resources/quality/voron2/voron2_v6_0.50_ASA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_ASA_fast.inst.cfg index 5b11b8a69a..b4a86e68d8 100644 --- a/resources/quality/voron2/voron2_v6_0.50_ASA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_ASA_fast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = fast -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.50mm diff --git a/resources/quality/voron2/voron2_v6_0.50_ASA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_ASA_normal.inst.cfg index ebb14aab78..4e97f5035e 100644 --- a/resources/quality/voron2/voron2_v6_0.50_ASA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_ASA_normal.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = normal -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.50mm diff --git a/resources/quality/voron2/voron2_v6_0.50_ASA_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_ASA_sprint.inst.cfg index 0fc5fbe8d5..465abff92e 100644 --- a/resources/quality/voron2/voron2_v6_0.50_ASA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_ASA_sprint.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = sprint -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.50mm diff --git a/resources/quality/voron2/voron2_v6_0.50_PVA_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_PVA_extrafast.inst.cfg index efcf6f0246..872f7a3313 100644 --- a/resources/quality/voron2/voron2_v6_0.50_PVA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_PVA_extrafast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = extrafast -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.50mm diff --git a/resources/quality/voron2/voron2_v6_0.50_PVA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_PVA_fast.inst.cfg index 670e236a79..0e252d6c8d 100644 --- a/resources/quality/voron2/voron2_v6_0.50_PVA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_PVA_fast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = fast -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.50mm diff --git a/resources/quality/voron2/voron2_v6_0.50_PVA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_PVA_normal.inst.cfg index 878507ce99..29a9a6dcfc 100644 --- a/resources/quality/voron2/voron2_v6_0.50_PVA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_PVA_normal.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = normal -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.50mm diff --git a/resources/quality/voron2/voron2_v6_0.50_PVA_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_PVA_sprint.inst.cfg index f4f6b4dfff..9f25c84c7c 100644 --- a/resources/quality/voron2/voron2_v6_0.50_PVA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_PVA_sprint.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = sprint -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.50mm diff --git a/resources/quality/voron2/voron2_v6_0.50_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_TPU_extrafast.inst.cfg index 7fa652d855..83b477dfd1 100644 --- a/resources/quality/voron2/voron2_v6_0.50_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_TPU_extrafast.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = extrafast -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.50mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 60 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.50_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_TPU_fast.inst.cfg index 898a271b49..103d4ffa44 100644 --- a/resources/quality/voron2/voron2_v6_0.50_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_TPU_fast.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = fast -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.50mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 90 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.50_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_TPU_normal.inst.cfg index b7aaa1f7a2..5706e58683 100644 --- a/resources/quality/voron2/voron2_v6_0.50_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_TPU_normal.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = normal -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.50mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 120 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.50_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_TPU_sprint.inst.cfg index f05f652783..c0f0623d3b 100644 --- a/resources/quality/voron2/voron2_v6_0.50_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_TPU_sprint.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = sprint -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.50mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 45 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.60_ASA_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_ASA_extrafast.inst.cfg index 4bb9372a9b..67368a8f18 100644 --- a/resources/quality/voron2/voron2_v6_0.60_ASA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_ASA_extrafast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = extrafast -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.60mm diff --git a/resources/quality/voron2/voron2_v6_0.60_ASA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_ASA_fast.inst.cfg index fbb74fb9ca..d62d2bf669 100644 --- a/resources/quality/voron2/voron2_v6_0.60_ASA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_ASA_fast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = fast -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.60mm diff --git a/resources/quality/voron2/voron2_v6_0.60_ASA_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_ASA_sprint.inst.cfg index 3e8e8195bc..573dd89ea5 100644 --- a/resources/quality/voron2/voron2_v6_0.60_ASA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_ASA_sprint.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = sprint -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.60mm diff --git a/resources/quality/voron2/voron2_v6_0.60_PVA_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_PVA_extrafast.inst.cfg index 66b0fd971c..ac210cfdc1 100644 --- a/resources/quality/voron2/voron2_v6_0.60_PVA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_PVA_extrafast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = extrafast -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.60mm diff --git a/resources/quality/voron2/voron2_v6_0.60_PVA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_PVA_fast.inst.cfg index 26bdebd1b2..1a0a40ba8a 100644 --- a/resources/quality/voron2/voron2_v6_0.60_PVA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_PVA_fast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = fast -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.60mm diff --git a/resources/quality/voron2/voron2_v6_0.60_PVA_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_PVA_sprint.inst.cfg index 4e5662790b..aab8ba5499 100644 --- a/resources/quality/voron2/voron2_v6_0.60_PVA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_PVA_sprint.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = sprint -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.60mm diff --git a/resources/quality/voron2/voron2_v6_0.60_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_TPU_extrafast.inst.cfg index 5e053d8bc4..0c925e430e 100644 --- a/resources/quality/voron2/voron2_v6_0.60_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_TPU_extrafast.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = extrafast -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.60mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 50 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.60_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_TPU_fast.inst.cfg index d2b06a4d31..63a28414b1 100644 --- a/resources/quality/voron2/voron2_v6_0.60_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_TPU_fast.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = fast -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.60mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 80 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.60_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_TPU_sprint.inst.cfg index b6a752f140..e63558addc 100644 --- a/resources/quality/voron2/voron2_v6_0.60_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_TPU_sprint.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = sprint -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.60mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 40 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.80_ASA_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_ASA_extrafast.inst.cfg index 51da4e343b..186d2ad149 100644 --- a/resources/quality/voron2/voron2_v6_0.80_ASA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_ASA_extrafast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = extrafast -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.80mm diff --git a/resources/quality/voron2/voron2_v6_0.80_ASA_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_ASA_sprint.inst.cfg index 77aebb66d9..81d541a38b 100644 --- a/resources/quality/voron2/voron2_v6_0.80_ASA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_ASA_sprint.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = sprint -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.80mm diff --git a/resources/quality/voron2/voron2_v6_0.80_ASA_supersprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_ASA_supersprint.inst.cfg index 9b99c0eef3..78628ebbc4 100644 --- a/resources/quality/voron2/voron2_v6_0.80_ASA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_ASA_supersprint.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = supersprint -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.80mm diff --git a/resources/quality/voron2/voron2_v6_0.80_PVA_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_PVA_extrafast.inst.cfg index a6b11d0f45..af96ecd40d 100644 --- a/resources/quality/voron2/voron2_v6_0.80_PVA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_PVA_extrafast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = extrafast -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.80mm diff --git a/resources/quality/voron2/voron2_v6_0.80_PVA_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_PVA_sprint.inst.cfg index 6b74da6994..1bb40fb822 100644 --- a/resources/quality/voron2/voron2_v6_0.80_PVA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_PVA_sprint.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = sprint -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.80mm diff --git a/resources/quality/voron2/voron2_v6_0.80_PVA_supersprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_PVA_supersprint.inst.cfg index 431ecc57e9..34c27750dc 100644 --- a/resources/quality/voron2/voron2_v6_0.80_PVA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_PVA_supersprint.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = supersprint -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.80mm diff --git a/resources/quality/voron2/voron2_v6_0.80_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_TPU_extrafast.inst.cfg index 94fa58ec41..f2b4e11e38 100644 --- a/resources/quality/voron2/voron2_v6_0.80_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_TPU_extrafast.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = extrafast -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.80mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 40 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.80_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_TPU_sprint.inst.cfg index ed6e3bbd96..192c97184a 100644 --- a/resources/quality/voron2/voron2_v6_0.80_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_TPU_sprint.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = sprint -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.80mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 30 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.80_TPU_supersprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_TPU_supersprint.inst.cfg index 49e348299b..62d6641ce4 100644 --- a/resources/quality/voron2/voron2_v6_0.80_TPU_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_TPU_supersprint.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = supersprint -setting_version = 23 +setting_version = 24 type = quality variant = V6 0.80mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 24 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_volcano_0.40_ASA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_ASA_extrafast.inst.cfg index 2d1e463704..8593ee439e 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_ASA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_ASA_extrafast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = extrafast -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 0.40mm diff --git a/resources/quality/voron2/voron2_volcano_0.40_ASA_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_ASA_fast.inst.cfg index 4a61f16bb9..b5220d0a37 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_ASA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_ASA_fast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = fast -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 0.40mm diff --git a/resources/quality/voron2/voron2_volcano_0.40_ASA_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_ASA_normal.inst.cfg index 3906f5a5a3..7fd15f3ffb 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_ASA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_ASA_normal.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = normal -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 0.40mm diff --git a/resources/quality/voron2/voron2_volcano_0.40_PVA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PVA_extrafast.inst.cfg index 6316562eec..f1446254a2 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PVA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PVA_extrafast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = extrafast -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 0.40mm diff --git a/resources/quality/voron2/voron2_volcano_0.40_PVA_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PVA_fast.inst.cfg index 51f85f9d60..dd518500b3 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PVA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PVA_fast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = fast -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 0.40mm diff --git a/resources/quality/voron2/voron2_volcano_0.40_PVA_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PVA_normal.inst.cfg index def6946bf1..94def9aa8f 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_PVA_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_PVA_normal.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = normal -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 0.40mm diff --git a/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg index 13df7a17fe..e94d05cbde 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = extrafast -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 0.40mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 250 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg index f7f4de0b25..4ebb2b4009 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = fast -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 0.40mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 300 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg index 0f7fdf0238..bcea2a49da 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = normal -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 0.40mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 300 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_volcano_0.60_ASA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_ASA_extrafast.inst.cfg index d41c155234..62e5ac1d1e 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_ASA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_ASA_extrafast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = extrafast -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 0.60mm diff --git a/resources/quality/voron2/voron2_volcano_0.60_ASA_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_ASA_fast.inst.cfg index 9c69b07258..f74b615074 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_ASA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_ASA_fast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = fast -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 0.60mm diff --git a/resources/quality/voron2/voron2_volcano_0.60_ASA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_ASA_sprint.inst.cfg index 5b35eec0b7..ac5377a9fa 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_ASA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_ASA_sprint.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = sprint -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 0.60mm diff --git a/resources/quality/voron2/voron2_volcano_0.60_PVA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PVA_extrafast.inst.cfg index 470729ca7c..78c4f59752 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PVA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PVA_extrafast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = extrafast -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 0.60mm diff --git a/resources/quality/voron2/voron2_volcano_0.60_PVA_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PVA_fast.inst.cfg index e2b949208e..97cc5bd288 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PVA_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PVA_fast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = fast -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 0.60mm diff --git a/resources/quality/voron2/voron2_volcano_0.60_PVA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PVA_sprint.inst.cfg index e630937656..98f7f15cb3 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_PVA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_PVA_sprint.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = sprint -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 0.60mm diff --git a/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg index a026d13755..a972024294 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = extrafast -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 0.60mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 165 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg index 2551c5085d..8e81de39a9 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = fast -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 0.60mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 250 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg index 03d7a5de60..099e178a67 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = sprint -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 0.60mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 125 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_volcano_0.80_ASA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_ASA_extrafast.inst.cfg index bc372dae4b..2ffba84452 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_ASA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_ASA_extrafast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = extrafast -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 0.80mm diff --git a/resources/quality/voron2/voron2_volcano_0.80_ASA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_ASA_sprint.inst.cfg index 41af7ad552..500999a45f 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_ASA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_ASA_sprint.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = sprint -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 0.80mm diff --git a/resources/quality/voron2/voron2_volcano_0.80_ASA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_ASA_supersprint.inst.cfg index 990bb0d518..9bd3bc46a3 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_ASA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_ASA_supersprint.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = supersprint -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 0.80mm diff --git a/resources/quality/voron2/voron2_volcano_0.80_PVA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PVA_extrafast.inst.cfg index 8a739087b3..cad3c1ae88 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PVA_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PVA_extrafast.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = extrafast -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 0.80mm diff --git a/resources/quality/voron2/voron2_volcano_0.80_PVA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PVA_sprint.inst.cfg index 7fae42c017..ee3accfaba 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PVA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PVA_sprint.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = sprint -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 0.80mm diff --git a/resources/quality/voron2/voron2_volcano_0.80_PVA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PVA_supersprint.inst.cfg index 81f7a4affd..a326841ab0 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_PVA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_PVA_supersprint.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = supersprint -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 0.80mm diff --git a/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg index f8382a17f7..24e98d83a4 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = extrafast -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 0.80mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 125 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg index a9c02df5d2..45b369e9ad 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = sprint -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 0.80mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 90 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg index f3920f61e8..f1c865648c 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = supersprint -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 0.80mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 70 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_volcano_1.00_ASA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_ASA_sprint.inst.cfg index 3be4231e8b..daeb14d863 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_ASA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_ASA_sprint.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = sprint -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 1.00mm diff --git a/resources/quality/voron2/voron2_volcano_1.00_ASA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_ASA_supersprint.inst.cfg index 7ac9945261..214ebfcaa1 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_ASA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_ASA_supersprint.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = supersprint -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 1.00mm diff --git a/resources/quality/voron2/voron2_volcano_1.00_ASA_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_ASA_ultrasprint.inst.cfg index 79e3d1d86a..e4fb8078cb 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_ASA_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_ASA_ultrasprint.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = ultrasprint -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 1.00mm diff --git a/resources/quality/voron2/voron2_volcano_1.00_PVA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PVA_sprint.inst.cfg index b48aadb0e4..421af6a4b1 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PVA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PVA_sprint.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = sprint -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 1.00mm diff --git a/resources/quality/voron2/voron2_volcano_1.00_PVA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PVA_supersprint.inst.cfg index cabb3d9020..7b7d35e6b7 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PVA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PVA_supersprint.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = supersprint -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 1.00mm diff --git a/resources/quality/voron2/voron2_volcano_1.00_PVA_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PVA_ultrasprint.inst.cfg index 30d016cf2c..455b0031c4 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_PVA_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_PVA_ultrasprint.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = ultrasprint -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 1.00mm diff --git a/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg index 57ddcf68f4..7de5a36c4d 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = sprint -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 1.00mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 75 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg index 5de4dff512..abff2cf8c2 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = supersprint -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 1.00mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 60 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg index 0fdf7be51c..c56f0fd956 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = ultrasprint -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 1.00mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 50 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_volcano_1.20_ASA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_ASA_sprint.inst.cfg index 374535d12f..1b364cc93c 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_ASA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_ASA_sprint.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = sprint -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 1.20mm diff --git a/resources/quality/voron2/voron2_volcano_1.20_ASA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_ASA_supersprint.inst.cfg index 9790b61217..0ccc19d779 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_ASA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_ASA_supersprint.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = supersprint -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 1.20mm diff --git a/resources/quality/voron2/voron2_volcano_1.20_ASA_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_ASA_ultrasprint.inst.cfg index a395749b1d..ec266f9e8a 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_ASA_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_ASA_ultrasprint.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_asa quality_type = ultrasprint -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 1.20mm diff --git a/resources/quality/voron2/voron2_volcano_1.20_PVA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PVA_sprint.inst.cfg index d5ca080c10..34cfd8d758 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PVA_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PVA_sprint.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = sprint -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 1.20mm diff --git a/resources/quality/voron2/voron2_volcano_1.20_PVA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PVA_supersprint.inst.cfg index 212b8b9ba5..8503117126 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PVA_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PVA_supersprint.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = supersprint -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 1.20mm diff --git a/resources/quality/voron2/voron2_volcano_1.20_PVA_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PVA_ultrasprint.inst.cfg index 441cbb9d4f..800f262b7c 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_PVA_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_PVA_ultrasprint.inst.cfg @@ -6,7 +6,7 @@ version = 4 [metadata] material = generic_pva quality_type = ultrasprint -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 1.20mm diff --git a/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg index d431a471c7..2ed49dc47a 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = sprint -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 1.20mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 60 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg index e611c83dd9..11468c7476 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = supersprint -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 1.20mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 50 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg index 041a037ed0..0bcd5a420b 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg @@ -6,17 +6,11 @@ version = 4 [metadata] material = generic_tpu quality_type = ultrasprint -setting_version = 23 +setting_version = 24 type = quality variant = Volcano 1.20mm [values] speed_infill = =speed_print -speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 40 -speed_roofing = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 0.50) -speed_wall = =math.ceil(speed_print * 0.50) -speed_wall_0 = =speed_wall -speed_wall_x = =speed_print From f34ee9af209726d5cc4a8b2a600b4c6f043245dc Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Sat, 30 Nov 2024 20:19:32 -0500 Subject: [PATCH 031/200] Overriding acceleration_enabled with the same value (default_value: False) as defined in parent definition: fdmprinter --- resources/definitions/voron2_base.def.json | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 53566cb466..c548719ea3 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -21,7 +21,6 @@ }, "overrides": { - "acceleration_enabled": { "default_value": false }, "adhesion_type": { "default_value": "skirt" }, "alternate_extra_perimeter": { "default_value": true }, "bridge_fan_speed": { "default_value": 100 }, From e132ecf10a9a765e125229dbf4c365a8380dba20 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Sat, 30 Nov 2024 20:20:41 -0500 Subject: [PATCH 032/200] Overriding cool_fan_speed_min with the same value (value: cool_fan_speed) as defined in parent definition: fdmprinter --- resources/definitions/voron2_base.def.json | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index c548719ea3..0e142fa1ae 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -30,7 +30,6 @@ "bridge_wall_coast": { "default_value": 10 }, "cool_fan_full_at_height": { "value": "resolveOrValue('layer_height_0') + resolveOrValue('layer_height') * max(1, cool_fan_full_layer - 1)" }, "cool_fan_full_layer": { "value": 4 }, - "cool_fan_speed_min": { "value": "cool_fan_speed" }, "cool_min_layer_time": { "default_value": 15 }, "cool_min_layer_time_fan_speed_max": { "default_value": 20 }, "cool_min_speed": { "value": "max(round(speed_layer_0 / 2), round(speed_wall_0 * 3 / 4) if cool_lift_head else round(speed_wall_0 / 2))" }, From 8f195ad14326e23225e15a518af12f46d394e021 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Sat, 30 Nov 2024 20:21:12 -0500 Subject: [PATCH 033/200] Update resources/definitions/voron2_base.def.json Overriding fill_outline_gaps with the same value (default_value: True) as defined in parent definition: fdmprinter Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- resources/definitions/voron2_base.def.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 53566cb466..c1fc3f8299 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -35,8 +35,7 @@ "cool_min_layer_time": { "default_value": 15 }, "cool_min_layer_time_fan_speed_max": { "default_value": 20 }, "cool_min_speed": { "value": "max(round(speed_layer_0 / 2), round(speed_wall_0 * 3 / 4) if cool_lift_head else round(speed_wall_0 / 2))" }, - "fill_outline_gaps": { "default_value": true }, - "gantry_height": { "value": 30 }, + "gantry_height": { "value": 30 }, "infill_before_walls": { "default_value": false }, "infill_enable_travel_optimization": { "default_value": true }, "jerk_enabled": { "default_value": false }, From 5b832ae3aa010279ddaa2ed2f8b42d2ee46a8411 Mon Sep 17 00:00:00 2001 From: NerdyGriffin Date: Sun, 1 Dec 2024 01:22:32 +0000 Subject: [PATCH 034/200] Applied printer-linter format --- resources/definitions/voron2_base.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 8dc9a70529..86ba3ca221 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -33,7 +33,7 @@ "cool_min_layer_time": { "default_value": 15 }, "cool_min_layer_time_fan_speed_max": { "default_value": 20 }, "cool_min_speed": { "value": "max(round(speed_layer_0 / 2), round(speed_wall_0 * 3 / 4) if cool_lift_head else round(speed_wall_0 / 2))" }, - "gantry_height": { "value": 30 }, + "gantry_height": { "value": 30 }, "infill_before_walls": { "default_value": false }, "infill_enable_travel_optimization": { "default_value": true }, "jerk_enabled": { "default_value": false }, From 4baedceb2c4cda7c8f0181a84be3325d4621a09e Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Sat, 30 Nov 2024 20:30:24 -0500 Subject: [PATCH 035/200] Overriding jerk_enabled with the same value (default_value: False) as defined in parent definition: fdmprinter --- resources/definitions/voron2_base.def.json | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 86ba3ca221..b210a2e402 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -36,7 +36,6 @@ "gantry_height": { "value": 30 }, "infill_before_walls": { "default_value": false }, "infill_enable_travel_optimization": { "default_value": true }, - "jerk_enabled": { "default_value": false }, "layer_height_0": { "resolve": "max(machine_nozzle_size / 2, min(extruderValues('layer_height')))" }, "line_width": { "value": "machine_nozzle_size * 1.125" }, "machine_acceleration": { "default_value": 3000 }, From cb3695e1aab1bdaba88c5b79151b561527333ea1 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Sat, 30 Nov 2024 20:38:14 -0500 Subject: [PATCH 036/200] Remove experimental settings from default profile --- resources/definitions/voron2_base.def.json | 5 ----- 1 file changed, 5 deletions(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index b210a2e402..67548ac518 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -23,11 +23,9 @@ { "adhesion_type": { "default_value": "skirt" }, "alternate_extra_perimeter": { "default_value": true }, - "bridge_fan_speed": { "default_value": 100 }, "bridge_fan_speed_2": { "resolve": "max(cool_fan_speed, 50)" }, "bridge_fan_speed_3": { "resolve": "max(cool_fan_speed, 20)" }, "bridge_settings_enabled": { "default_value": true }, - "bridge_wall_coast": { "default_value": 10 }, "cool_fan_full_at_height": { "value": "resolveOrValue('layer_height_0') + resolveOrValue('layer_height') * max(1, cool_fan_full_layer - 1)" }, "cool_fan_full_layer": { "value": 4 }, "cool_min_layer_time": { "default_value": 15 }, @@ -35,7 +33,6 @@ "cool_min_speed": { "value": "max(round(speed_layer_0 / 2), round(speed_wall_0 * 3 / 4) if cool_lift_head else round(speed_wall_0 / 2))" }, "gantry_height": { "value": 30 }, "infill_before_walls": { "default_value": false }, - "infill_enable_travel_optimization": { "default_value": true }, "layer_height_0": { "resolve": "max(machine_nozzle_size / 2, min(extruderValues('layer_height')))" }, "line_width": { "value": "machine_nozzle_size * 1.125" }, "machine_acceleration": { "default_value": 3000 }, @@ -105,8 +102,6 @@ "top_bottom_thickness": { "value": "wall_thickness" }, "travel_avoid_other_parts": { "default_value": false }, "wall_line_width": { "value": "machine_nozzle_size" }, - "wall_overhang_angle": { "default_value": 75 }, - "wall_overhang_speed_factor": { "default_value": 50 }, "wall_thickness": { "value": "wall_line_width_0 + wall_line_width_x" }, "zig_zaggify_infill": { "value": true } } From 24185bead95ec8b52742376864619231edde40bd Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Sat, 30 Nov 2024 20:47:33 -0500 Subject: [PATCH 037/200] Revert "Remove experimental settings from default profile" This reverts commit cb3695e1aab1bdaba88c5b79151b561527333ea1. --- resources/definitions/voron2_base.def.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 67548ac518..b210a2e402 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -23,9 +23,11 @@ { "adhesion_type": { "default_value": "skirt" }, "alternate_extra_perimeter": { "default_value": true }, + "bridge_fan_speed": { "default_value": 100 }, "bridge_fan_speed_2": { "resolve": "max(cool_fan_speed, 50)" }, "bridge_fan_speed_3": { "resolve": "max(cool_fan_speed, 20)" }, "bridge_settings_enabled": { "default_value": true }, + "bridge_wall_coast": { "default_value": 10 }, "cool_fan_full_at_height": { "value": "resolveOrValue('layer_height_0') + resolveOrValue('layer_height') * max(1, cool_fan_full_layer - 1)" }, "cool_fan_full_layer": { "value": 4 }, "cool_min_layer_time": { "default_value": 15 }, @@ -33,6 +35,7 @@ "cool_min_speed": { "value": "max(round(speed_layer_0 / 2), round(speed_wall_0 * 3 / 4) if cool_lift_head else round(speed_wall_0 / 2))" }, "gantry_height": { "value": 30 }, "infill_before_walls": { "default_value": false }, + "infill_enable_travel_optimization": { "default_value": true }, "layer_height_0": { "resolve": "max(machine_nozzle_size / 2, min(extruderValues('layer_height')))" }, "line_width": { "value": "machine_nozzle_size * 1.125" }, "machine_acceleration": { "default_value": 3000 }, @@ -102,6 +105,8 @@ "top_bottom_thickness": { "value": "wall_thickness" }, "travel_avoid_other_parts": { "default_value": false }, "wall_line_width": { "value": "machine_nozzle_size" }, + "wall_overhang_angle": { "default_value": 75 }, + "wall_overhang_speed_factor": { "default_value": 50 }, "wall_thickness": { "value": "wall_line_width_0 + wall_line_width_x" }, "zig_zaggify_infill": { "value": true } } From ca0cb3d35ecb504bb5c8bded427a463abd0a4ed1 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Mon, 2 Dec 2024 15:13:21 -0500 Subject: [PATCH 040/200] Revert contents of TPU profiles to correct version --- .../quality/voron2/voron2_v6_0.25_TPU_extrafine.inst.cfg | 6 ++++++ resources/quality/voron2/voron2_v6_0.25_TPU_fast.inst.cfg | 6 ++++++ resources/quality/voron2/voron2_v6_0.25_TPU_fine.inst.cfg | 6 ++++++ resources/quality/voron2/voron2_v6_0.25_TPU_normal.inst.cfg | 6 ++++++ .../quality/voron2/voron2_v6_0.30_TPU_extrafine.inst.cfg | 6 ++++++ resources/quality/voron2/voron2_v6_0.30_TPU_fast.inst.cfg | 6 ++++++ resources/quality/voron2/voron2_v6_0.30_TPU_fine.inst.cfg | 6 ++++++ resources/quality/voron2/voron2_v6_0.30_TPU_normal.inst.cfg | 6 ++++++ resources/quality/voron2/voron2_v6_0.35_TPU_fast.inst.cfg | 6 ++++++ resources/quality/voron2/voron2_v6_0.35_TPU_fine.inst.cfg | 6 ++++++ resources/quality/voron2/voron2_v6_0.35_TPU_normal.inst.cfg | 6 ++++++ .../quality/voron2/voron2_v6_0.40_TPU_extrafast.inst.cfg | 6 ++++++ resources/quality/voron2/voron2_v6_0.40_TPU_fast.inst.cfg | 6 ++++++ resources/quality/voron2/voron2_v6_0.40_TPU_fine.inst.cfg | 6 ++++++ resources/quality/voron2/voron2_v6_0.40_TPU_normal.inst.cfg | 6 ++++++ .../quality/voron2/voron2_v6_0.50_TPU_extrafast.inst.cfg | 6 ++++++ resources/quality/voron2/voron2_v6_0.50_TPU_fast.inst.cfg | 6 ++++++ resources/quality/voron2/voron2_v6_0.50_TPU_normal.inst.cfg | 6 ++++++ resources/quality/voron2/voron2_v6_0.50_TPU_sprint.inst.cfg | 6 ++++++ .../quality/voron2/voron2_v6_0.60_TPU_extrafast.inst.cfg | 6 ++++++ resources/quality/voron2/voron2_v6_0.60_TPU_fast.inst.cfg | 6 ++++++ resources/quality/voron2/voron2_v6_0.60_TPU_sprint.inst.cfg | 6 ++++++ .../quality/voron2/voron2_v6_0.80_TPU_extrafast.inst.cfg | 6 ++++++ resources/quality/voron2/voron2_v6_0.80_TPU_sprint.inst.cfg | 6 ++++++ .../quality/voron2/voron2_v6_0.80_TPU_supersprint.inst.cfg | 6 ++++++ .../voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg | 6 ++++++ .../quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg | 6 ++++++ .../quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg | 6 ++++++ .../voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg | 6 ++++++ .../quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg | 6 ++++++ .../quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg | 6 ++++++ .../voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg | 6 ++++++ .../quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg | 6 ++++++ .../voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg | 6 ++++++ .../quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg | 6 ++++++ .../voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg | 6 ++++++ .../voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg | 6 ++++++ .../quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg | 6 ++++++ .../voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg | 6 ++++++ .../voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg | 6 ++++++ 40 files changed, 240 insertions(+) diff --git a/resources/quality/voron2/voron2_v6_0.25_TPU_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_TPU_extrafine.inst.cfg index bafa6b80a1..9324b9ba0e 100644 --- a/resources/quality/voron2/voron2_v6_0.25_TPU_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_TPU_extrafine.inst.cfg @@ -12,5 +12,11 @@ variant = V6 0.25mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 300 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.25_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_TPU_fast.inst.cfg index 14c900acab..862586934e 100644 --- a/resources/quality/voron2/voron2_v6_0.25_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_TPU_fast.inst.cfg @@ -12,5 +12,11 @@ variant = V6 0.25mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 180 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.25_TPU_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_TPU_fine.inst.cfg index 63bbb58cff..ee753c59cf 100644 --- a/resources/quality/voron2/voron2_v6_0.25_TPU_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_TPU_fine.inst.cfg @@ -12,5 +12,11 @@ variant = V6 0.25mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 300 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.25_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_TPU_normal.inst.cfg index 4c2fd87205..3505479774 100644 --- a/resources/quality/voron2/voron2_v6_0.25_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_TPU_normal.inst.cfg @@ -12,5 +12,11 @@ variant = V6 0.25mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 240 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.30_TPU_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_TPU_extrafine.inst.cfg index 224f141198..c8bfbf11a3 100644 --- a/resources/quality/voron2/voron2_v6_0.30_TPU_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_TPU_extrafine.inst.cfg @@ -12,5 +12,11 @@ variant = V6 0.30mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 300 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.30_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_TPU_fast.inst.cfg index 963f40ab24..e14363b52d 100644 --- a/resources/quality/voron2/voron2_v6_0.30_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_TPU_fast.inst.cfg @@ -12,5 +12,11 @@ variant = V6 0.30mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 160 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.30_TPU_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_TPU_fine.inst.cfg index 14a20abe03..c476909acf 100644 --- a/resources/quality/voron2/voron2_v6_0.30_TPU_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_TPU_fine.inst.cfg @@ -12,5 +12,11 @@ variant = V6 0.30mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 300 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.30_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_TPU_normal.inst.cfg index 4bb5ccfe57..376ddc9f11 100644 --- a/resources/quality/voron2/voron2_v6_0.30_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_TPU_normal.inst.cfg @@ -12,5 +12,11 @@ variant = V6 0.30mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 200 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.35_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_TPU_fast.inst.cfg index 1bd617765d..633abd8caa 100644 --- a/resources/quality/voron2/voron2_v6_0.35_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_TPU_fast.inst.cfg @@ -12,5 +12,11 @@ variant = V6 0.35mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 135 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.35_TPU_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_TPU_fine.inst.cfg index 22668590ec..fe16e614b0 100644 --- a/resources/quality/voron2/voron2_v6_0.35_TPU_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_TPU_fine.inst.cfg @@ -12,5 +12,11 @@ variant = V6 0.35mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 270 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.35_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_TPU_normal.inst.cfg index 736ab468e6..bb5a5abf6c 100644 --- a/resources/quality/voron2/voron2_v6_0.35_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_TPU_normal.inst.cfg @@ -12,5 +12,11 @@ variant = V6 0.35mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 180 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.40_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_TPU_extrafast.inst.cfg index 9bd71195bd..27dccc84ed 100644 --- a/resources/quality/voron2/voron2_v6_0.40_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_TPU_extrafast.inst.cfg @@ -12,5 +12,11 @@ variant = V6 0.40mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 80 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.40_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_TPU_fast.inst.cfg index de4d12108e..6b6e07d252 100644 --- a/resources/quality/voron2/voron2_v6_0.40_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_TPU_fast.inst.cfg @@ -12,5 +12,11 @@ variant = V6 0.40mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 120 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.40_TPU_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_TPU_fine.inst.cfg index 0df5c0cccc..1a9e191377 100644 --- a/resources/quality/voron2/voron2_v6_0.40_TPU_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_TPU_fine.inst.cfg @@ -12,5 +12,11 @@ variant = V6 0.40mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 240 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.40_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_TPU_normal.inst.cfg index 7816bfacdf..e467bdc3d3 100644 --- a/resources/quality/voron2/voron2_v6_0.40_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_TPU_normal.inst.cfg @@ -12,5 +12,11 @@ variant = V6 0.40mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 160 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.50_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_TPU_extrafast.inst.cfg index 83b477dfd1..a331f526c6 100644 --- a/resources/quality/voron2/voron2_v6_0.50_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_TPU_extrafast.inst.cfg @@ -12,5 +12,11 @@ variant = V6 0.50mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 60 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.50_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_TPU_fast.inst.cfg index 103d4ffa44..a6a095226f 100644 --- a/resources/quality/voron2/voron2_v6_0.50_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_TPU_fast.inst.cfg @@ -12,5 +12,11 @@ variant = V6 0.50mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 90 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.50_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_TPU_normal.inst.cfg index 5706e58683..a5e7c74186 100644 --- a/resources/quality/voron2/voron2_v6_0.50_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_TPU_normal.inst.cfg @@ -12,5 +12,11 @@ variant = V6 0.50mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 120 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.50_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_TPU_sprint.inst.cfg index c0f0623d3b..08fee402c5 100644 --- a/resources/quality/voron2/voron2_v6_0.50_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_TPU_sprint.inst.cfg @@ -12,5 +12,11 @@ variant = V6 0.50mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 45 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.60_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_TPU_extrafast.inst.cfg index 0c925e430e..7438b747db 100644 --- a/resources/quality/voron2/voron2_v6_0.60_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_TPU_extrafast.inst.cfg @@ -12,5 +12,11 @@ variant = V6 0.60mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 50 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.60_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_TPU_fast.inst.cfg index 63a28414b1..9da50270b2 100644 --- a/resources/quality/voron2/voron2_v6_0.60_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_TPU_fast.inst.cfg @@ -12,5 +12,11 @@ variant = V6 0.60mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 80 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.60_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_TPU_sprint.inst.cfg index e63558addc..7dec53da68 100644 --- a/resources/quality/voron2/voron2_v6_0.60_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_TPU_sprint.inst.cfg @@ -12,5 +12,11 @@ variant = V6 0.60mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 40 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.80_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_TPU_extrafast.inst.cfg index f2b4e11e38..74e38683e2 100644 --- a/resources/quality/voron2/voron2_v6_0.80_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_TPU_extrafast.inst.cfg @@ -12,5 +12,11 @@ variant = V6 0.80mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 40 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.80_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_TPU_sprint.inst.cfg index 192c97184a..8da78abc98 100644 --- a/resources/quality/voron2/voron2_v6_0.80_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_TPU_sprint.inst.cfg @@ -12,5 +12,11 @@ variant = V6 0.80mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 30 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.80_TPU_supersprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_TPU_supersprint.inst.cfg index 62d6641ce4..3620d1c44c 100644 --- a/resources/quality/voron2/voron2_v6_0.80_TPU_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_TPU_supersprint.inst.cfg @@ -12,5 +12,11 @@ variant = V6 0.80mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 24 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg index e94d05cbde..4ba5c656f2 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg @@ -12,5 +12,11 @@ variant = Volcano 0.40mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 250 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg index 4ebb2b4009..ed1a9d44e8 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg @@ -12,5 +12,11 @@ variant = Volcano 0.40mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 300 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg index bcea2a49da..c24f054304 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg @@ -12,5 +12,11 @@ variant = Volcano 0.40mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 300 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg index a972024294..bbc2b959f0 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg @@ -12,5 +12,11 @@ variant = Volcano 0.60mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 165 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg index 8e81de39a9..211c9317fe 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg @@ -12,5 +12,11 @@ variant = Volcano 0.60mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 250 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg index 099e178a67..776d93e857 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg @@ -12,5 +12,11 @@ variant = Volcano 0.60mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 125 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg index 24e98d83a4..7e9fd11c83 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg @@ -12,5 +12,11 @@ variant = Volcano 0.80mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 125 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg index 45b369e9ad..29df645cce 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg @@ -12,5 +12,11 @@ variant = Volcano 0.80mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 90 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg index f1c865648c..a064df9b4b 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg @@ -12,5 +12,11 @@ variant = Volcano 0.80mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 70 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg index 7de5a36c4d..5422b31737 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg @@ -12,5 +12,11 @@ variant = Volcano 1.00mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 75 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg index abff2cf8c2..c74b5ec7f9 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg @@ -12,5 +12,11 @@ variant = Volcano 1.00mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 60 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg index c56f0fd956..b37f33ef17 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg @@ -12,5 +12,11 @@ variant = Volcano 1.00mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 50 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg index 2ed49dc47a..fc11f58931 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg @@ -12,5 +12,11 @@ variant = Volcano 1.20mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 60 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg index 11468c7476..9fc17ac4d6 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg @@ -12,5 +12,11 @@ variant = Volcano 1.20mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 50 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print diff --git a/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg index 0bcd5a420b..b8b4cb618d 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg @@ -12,5 +12,11 @@ variant = Volcano 1.20mm [values] speed_infill = =speed_print +speed_layer_0 = =math.ceil(speed_print * 0.375) speed_print = 40 +speed_roofing = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 0.50) +speed_wall = =math.ceil(speed_print * 0.50) +speed_wall_0 = =speed_wall +speed_wall_x = =speed_print From 7b6e941924209c01f1eb5178b2d5b06e103babdc Mon Sep 17 00:00:00 2001 From: NerdyGriffin Date: Tue, 3 Dec 2024 19:16:01 +0000 Subject: [PATCH 041/200] Applied printer-linter format --- resources/quality/voron2/voron2_v6_0.25_TPU_extrafine.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.25_TPU_fast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.25_TPU_fine.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.25_TPU_normal.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.30_TPU_extrafine.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.30_TPU_fast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.30_TPU_fine.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.30_TPU_normal.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.35_TPU_fast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.35_TPU_fine.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.35_TPU_normal.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.40_TPU_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.40_TPU_fast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.40_TPU_fine.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.40_TPU_normal.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.50_TPU_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.50_TPU_fast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.50_TPU_normal.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.50_TPU_sprint.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.60_TPU_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.60_TPU_fast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.60_TPU_sprint.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.80_TPU_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.80_TPU_sprint.inst.cfg | 1 + resources/quality/voron2/voron2_v6_0.80_TPU_supersprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg | 1 + resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg | 1 + .../quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg | 1 + resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg | 1 + resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg | 1 + resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg | 1 + 40 files changed, 40 insertions(+) diff --git a/resources/quality/voron2/voron2_v6_0.25_TPU_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_TPU_extrafine.inst.cfg index 885076bbb9..52f17ca952 100644 --- a/resources/quality/voron2/voron2_v6_0.25_TPU_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_TPU_extrafine.inst.cfg @@ -12,3 +12,4 @@ variant = V6 0.25mm [values] speed_infill = =speed_print + diff --git a/resources/quality/voron2/voron2_v6_0.25_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_TPU_fast.inst.cfg index 78ec07e2ef..3303a95da1 100644 --- a/resources/quality/voron2/voron2_v6_0.25_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_TPU_fast.inst.cfg @@ -12,3 +12,4 @@ variant = V6 0.25mm [values] speed_infill = =speed_print + diff --git a/resources/quality/voron2/voron2_v6_0.25_TPU_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_TPU_fine.inst.cfg index 7d9bbb776c..8be7ed270f 100644 --- a/resources/quality/voron2/voron2_v6_0.25_TPU_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_TPU_fine.inst.cfg @@ -12,3 +12,4 @@ variant = V6 0.25mm [values] speed_infill = =speed_print + diff --git a/resources/quality/voron2/voron2_v6_0.25_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_TPU_normal.inst.cfg index 58d9b412c6..68edfcdbd2 100644 --- a/resources/quality/voron2/voron2_v6_0.25_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_TPU_normal.inst.cfg @@ -12,3 +12,4 @@ variant = V6 0.25mm [values] speed_infill = =speed_print + diff --git a/resources/quality/voron2/voron2_v6_0.30_TPU_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_TPU_extrafine.inst.cfg index 1649b00ac9..b64fbc0bd5 100644 --- a/resources/quality/voron2/voron2_v6_0.30_TPU_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_TPU_extrafine.inst.cfg @@ -12,3 +12,4 @@ variant = V6 0.30mm [values] speed_infill = =speed_print + diff --git a/resources/quality/voron2/voron2_v6_0.30_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_TPU_fast.inst.cfg index 6904080bd6..288fbd74b1 100644 --- a/resources/quality/voron2/voron2_v6_0.30_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_TPU_fast.inst.cfg @@ -12,3 +12,4 @@ variant = V6 0.30mm [values] speed_infill = =speed_print + diff --git a/resources/quality/voron2/voron2_v6_0.30_TPU_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_TPU_fine.inst.cfg index bcb318f160..8e0fd0270a 100644 --- a/resources/quality/voron2/voron2_v6_0.30_TPU_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_TPU_fine.inst.cfg @@ -12,3 +12,4 @@ variant = V6 0.30mm [values] speed_infill = =speed_print + diff --git a/resources/quality/voron2/voron2_v6_0.30_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_TPU_normal.inst.cfg index f223fdff61..99c53543b3 100644 --- a/resources/quality/voron2/voron2_v6_0.30_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_TPU_normal.inst.cfg @@ -12,3 +12,4 @@ variant = V6 0.30mm [values] speed_infill = =speed_print + diff --git a/resources/quality/voron2/voron2_v6_0.35_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_TPU_fast.inst.cfg index 1f466b3597..01e365baca 100644 --- a/resources/quality/voron2/voron2_v6_0.35_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_TPU_fast.inst.cfg @@ -12,3 +12,4 @@ variant = V6 0.35mm [values] speed_infill = =speed_print + diff --git a/resources/quality/voron2/voron2_v6_0.35_TPU_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_TPU_fine.inst.cfg index 149a2244d6..211ff62090 100644 --- a/resources/quality/voron2/voron2_v6_0.35_TPU_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_TPU_fine.inst.cfg @@ -12,3 +12,4 @@ variant = V6 0.35mm [values] speed_infill = =speed_print + diff --git a/resources/quality/voron2/voron2_v6_0.35_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_TPU_normal.inst.cfg index 0122b7a1cb..80e820d460 100644 --- a/resources/quality/voron2/voron2_v6_0.35_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_TPU_normal.inst.cfg @@ -12,3 +12,4 @@ variant = V6 0.35mm [values] speed_infill = =speed_print + diff --git a/resources/quality/voron2/voron2_v6_0.40_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_TPU_extrafast.inst.cfg index dbe426af37..e083dc0cc4 100644 --- a/resources/quality/voron2/voron2_v6_0.40_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_TPU_extrafast.inst.cfg @@ -12,3 +12,4 @@ variant = V6 0.40mm [values] speed_infill = =speed_print + diff --git a/resources/quality/voron2/voron2_v6_0.40_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_TPU_fast.inst.cfg index 0efb14424b..5097432468 100644 --- a/resources/quality/voron2/voron2_v6_0.40_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_TPU_fast.inst.cfg @@ -12,3 +12,4 @@ variant = V6 0.40mm [values] speed_infill = =speed_print + diff --git a/resources/quality/voron2/voron2_v6_0.40_TPU_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_TPU_fine.inst.cfg index c0e4eaa9d6..cd4c8c6455 100644 --- a/resources/quality/voron2/voron2_v6_0.40_TPU_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_TPU_fine.inst.cfg @@ -12,3 +12,4 @@ variant = V6 0.40mm [values] speed_infill = =speed_print + diff --git a/resources/quality/voron2/voron2_v6_0.40_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_TPU_normal.inst.cfg index 3c5e58bf7e..c30446dbc2 100644 --- a/resources/quality/voron2/voron2_v6_0.40_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_TPU_normal.inst.cfg @@ -12,3 +12,4 @@ variant = V6 0.40mm [values] speed_infill = =speed_print + diff --git a/resources/quality/voron2/voron2_v6_0.50_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_TPU_extrafast.inst.cfg index 2532c7dc38..f4ed1a414c 100644 --- a/resources/quality/voron2/voron2_v6_0.50_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_TPU_extrafast.inst.cfg @@ -12,3 +12,4 @@ variant = V6 0.50mm [values] speed_infill = =speed_print + diff --git a/resources/quality/voron2/voron2_v6_0.50_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_TPU_fast.inst.cfg index e32a74a9f0..ea594031de 100644 --- a/resources/quality/voron2/voron2_v6_0.50_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_TPU_fast.inst.cfg @@ -12,3 +12,4 @@ variant = V6 0.50mm [values] speed_infill = =speed_print + diff --git a/resources/quality/voron2/voron2_v6_0.50_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_TPU_normal.inst.cfg index 6b50d9a861..802841f756 100644 --- a/resources/quality/voron2/voron2_v6_0.50_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_TPU_normal.inst.cfg @@ -12,3 +12,4 @@ variant = V6 0.50mm [values] speed_infill = =speed_print + diff --git a/resources/quality/voron2/voron2_v6_0.50_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_TPU_sprint.inst.cfg index 26e54a79d5..b672bb34ec 100644 --- a/resources/quality/voron2/voron2_v6_0.50_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_TPU_sprint.inst.cfg @@ -12,3 +12,4 @@ variant = V6 0.50mm [values] speed_infill = =speed_print + diff --git a/resources/quality/voron2/voron2_v6_0.60_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_TPU_extrafast.inst.cfg index 8e1275b2ce..fd2b53dbac 100644 --- a/resources/quality/voron2/voron2_v6_0.60_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_TPU_extrafast.inst.cfg @@ -12,3 +12,4 @@ variant = V6 0.60mm [values] speed_infill = =speed_print + diff --git a/resources/quality/voron2/voron2_v6_0.60_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_TPU_fast.inst.cfg index e4307fee2c..f64b302b18 100644 --- a/resources/quality/voron2/voron2_v6_0.60_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_TPU_fast.inst.cfg @@ -12,3 +12,4 @@ variant = V6 0.60mm [values] speed_infill = =speed_print + diff --git a/resources/quality/voron2/voron2_v6_0.60_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_TPU_sprint.inst.cfg index b39560ddba..16a8912aad 100644 --- a/resources/quality/voron2/voron2_v6_0.60_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_TPU_sprint.inst.cfg @@ -12,3 +12,4 @@ variant = V6 0.60mm [values] speed_infill = =speed_print + diff --git a/resources/quality/voron2/voron2_v6_0.80_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_TPU_extrafast.inst.cfg index 9e42a9e619..2272252200 100644 --- a/resources/quality/voron2/voron2_v6_0.80_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_TPU_extrafast.inst.cfg @@ -12,3 +12,4 @@ variant = V6 0.80mm [values] speed_infill = =speed_print + diff --git a/resources/quality/voron2/voron2_v6_0.80_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_TPU_sprint.inst.cfg index 0c9c363622..0a02f88acf 100644 --- a/resources/quality/voron2/voron2_v6_0.80_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_TPU_sprint.inst.cfg @@ -12,3 +12,4 @@ variant = V6 0.80mm [values] speed_infill = =speed_print + diff --git a/resources/quality/voron2/voron2_v6_0.80_TPU_supersprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_TPU_supersprint.inst.cfg index c4a2c81510..caeaa36e3d 100644 --- a/resources/quality/voron2/voron2_v6_0.80_TPU_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_TPU_supersprint.inst.cfg @@ -12,3 +12,4 @@ variant = V6 0.80mm [values] speed_infill = =speed_print + diff --git a/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg index e6e656d5a8..c5444e3368 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg @@ -13,3 +13,4 @@ variant = Volcano 0.40mm [values] speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg index bcab45ac60..17e9d9e1a0 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg @@ -13,3 +13,4 @@ variant = Volcano 0.40mm [values] speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg index 6707740a50..dd9bbfe322 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg @@ -13,3 +13,4 @@ variant = Volcano 0.40mm [values] speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg index dffa47225d..046fd2e430 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg @@ -13,3 +13,4 @@ variant = Volcano 0.60mm [values] speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg index 9389342b65..0447e440ae 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg @@ -13,3 +13,4 @@ variant = Volcano 0.60mm [values] speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg index eebbd4abe2..8e499120e5 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg @@ -13,3 +13,4 @@ variant = Volcano 0.60mm [values] speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg index d6182c012d..1bd7d02b49 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg @@ -13,3 +13,4 @@ variant = Volcano 0.80mm [values] speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg index eb1da736f5..adee8d58b9 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg @@ -13,3 +13,4 @@ variant = Volcano 0.80mm [values] speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg index 83651904c1..9a83d40a85 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg @@ -13,3 +13,4 @@ variant = Volcano 0.80mm [values] speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg index 595e9c21f2..a731fc36b5 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg @@ -13,3 +13,4 @@ variant = Volcano 1.00mm [values] speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg index 88d2c2b0c7..533f4e1760 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg @@ -13,3 +13,4 @@ variant = Volcano 1.00mm [values] speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg index 50bdf4f353..fc3d0c3c30 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg @@ -13,3 +13,4 @@ variant = Volcano 1.00mm [values] speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg index c3b967cdea..33ef40c2d4 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg @@ -13,3 +13,4 @@ variant = Volcano 1.20mm [values] speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg index fca1d1850c..256c9d5d86 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg @@ -13,3 +13,4 @@ variant = Volcano 1.20mm [values] speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) + diff --git a/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg index 8a9ab91e16..672d26158c 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg @@ -13,3 +13,4 @@ variant = Volcano 1.20mm [values] speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) + From e558ad81b49e5b0873e209f250eb2da0f86739e5 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Wed, 4 Dec 2024 08:39:38 -0500 Subject: [PATCH 042/200] Fix relatationship between default line width and its child values --- resources/definitions/voron2_base.def.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index b210a2e402..dc04961f67 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -36,8 +36,10 @@ "gantry_height": { "value": 30 }, "infill_before_walls": { "default_value": false }, "infill_enable_travel_optimization": { "default_value": true }, + "infill_line_width": { "value": "machine_nozzle_size * 1.125" }, + "initial_layer_line_width_factor": { "default_value": 125.0 }, "layer_height_0": { "resolve": "max(machine_nozzle_size / 2, min(extruderValues('layer_height')))" }, - "line_width": { "value": "machine_nozzle_size * 1.125" }, + "line_width": { "value": "machine_nozzle_size" }, "machine_acceleration": { "default_value": 3000 }, "machine_depth": { "default_value": 250 }, "machine_end_gcode": { "default_value": "print_end" }, @@ -104,7 +106,6 @@ "speed_z_hop": { "value": "machine_max_feedrate_z" }, "top_bottom_thickness": { "value": "wall_thickness" }, "travel_avoid_other_parts": { "default_value": false }, - "wall_line_width": { "value": "machine_nozzle_size" }, "wall_overhang_angle": { "default_value": 75 }, "wall_overhang_speed_factor": { "default_value": 50 }, "wall_thickness": { "value": "wall_line_width_0 + wall_line_width_x" }, From 586b49a6d3c90a41f3c250e3171a36da1c6b2226 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Wed, 4 Dec 2024 08:52:42 -0500 Subject: [PATCH 043/200] Remove redundant line_width Overriding line_width with the same value (value: machine_nozzle_size) as defined in parent definition: fdmprinter Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- resources/definitions/voron2_base.def.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index dc04961f67..bb63bc66d6 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -39,8 +39,7 @@ "infill_line_width": { "value": "machine_nozzle_size * 1.125" }, "initial_layer_line_width_factor": { "default_value": 125.0 }, "layer_height_0": { "resolve": "max(machine_nozzle_size / 2, min(extruderValues('layer_height')))" }, - "line_width": { "value": "machine_nozzle_size" }, - "machine_acceleration": { "default_value": 3000 }, + "machine_acceleration": { "default_value": 3000 }, "machine_depth": { "default_value": 250 }, "machine_end_gcode": { "default_value": "print_end" }, "machine_endstop_positive_direction_x": { "default_value": true }, From a872413de7eebd4f7516b1e1bd46c4e4818b3d3d Mon Sep 17 00:00:00 2001 From: NerdyGriffin Date: Wed, 4 Dec 2024 13:53:31 +0000 Subject: [PATCH 044/200] Applied printer-linter format --- resources/definitions/voron2_base.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index bb63bc66d6..d2318f9dc5 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -39,7 +39,7 @@ "infill_line_width": { "value": "machine_nozzle_size * 1.125" }, "initial_layer_line_width_factor": { "default_value": 125.0 }, "layer_height_0": { "resolve": "max(machine_nozzle_size / 2, min(extruderValues('layer_height')))" }, - "machine_acceleration": { "default_value": 3000 }, + "machine_acceleration": { "default_value": 3000 }, "machine_depth": { "default_value": 250 }, "machine_end_gcode": { "default_value": "print_end" }, "machine_endstop_positive_direction_x": { "default_value": true }, From 12274e1ba8cd5880755d7d85c98d9f469b274649 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Thu, 5 Dec 2024 10:57:29 -0500 Subject: [PATCH 045/200] Revert infill and first layer speed to values inherited from fdmprinter --- resources/definitions/voron2_base.def.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index d2318f9dc5..8f59d5ccb5 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -93,8 +93,6 @@ }, "roofing_layer_count": { "value": 1 }, "skirt_brim_minimal_length": { "default_value": 550 }, - "speed_infill": { "value": "speed_print * 1.5" }, - "speed_layer_0": { "value": "speed_print * 3 / 8" }, "speed_print": { "value": "round(6.4 / layer_height / machine_nozzle_size, -1)" }, "speed_slowdown_layers": { "default_value": 4 }, "speed_travel": From 0ffc1f25f39a3c3356ffadbbba2e3c34097a17c2 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Thu, 5 Dec 2024 10:59:37 -0500 Subject: [PATCH 046/200] Increase default volumetric flow based of community feedback --- resources/definitions/voron2_base.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 8f59d5ccb5..cee6c1f845 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -93,7 +93,7 @@ }, "roofing_layer_count": { "value": 1 }, "skirt_brim_minimal_length": { "default_value": 550 }, - "speed_print": { "value": "round(6.4 / layer_height / machine_nozzle_size, -1)" }, + "speed_print": { "value": "round(12 / layer_height / machine_nozzle_size, -1)" }, "speed_slowdown_layers": { "default_value": 4 }, "speed_travel": { From e0c1b8ca2dbba11739a618cbad43f0015081c10d Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Thu, 5 Dec 2024 11:05:27 -0500 Subject: [PATCH 047/200] Increase default speeds and acceleration --- resources/definitions/voron2_base.def.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index cee6c1f845..530503196c 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -58,12 +58,12 @@ }, "machine_heated_bed": { "default_value": true }, "machine_height": { "default_value": 250 }, - "machine_max_acceleration_x": { "default_value": 3000 }, - "machine_max_acceleration_y": { "default_value": 3000 }, - "machine_max_acceleration_z": { "default_value": 350 }, + "machine_max_acceleration_x": { "default_value": 20000 }, + "machine_max_acceleration_y": { "default_value": 20000 }, + "machine_max_acceleration_z": { "default_value": 500 }, "machine_max_feedrate_e": { "default_value": 120 }, - "machine_max_feedrate_x": { "value": 300 }, - "machine_max_feedrate_y": { "value": 300 }, + "machine_max_feedrate_x": { "value": 500 }, + "machine_max_feedrate_y": { "value": 500 }, "machine_max_feedrate_z": { "default_value": 40 }, "machine_name": { "default_value": "VORON2" }, "machine_start_gcode": { "default_value": ";Nozzle diameter = {machine_nozzle_size}\n;Filament type = {material_type}\n;Filament name = {material_name}\n;Filament weight = {filament_weight}\n; M190 S{material_bed_temperature_layer_0}\n; M109 S{material_print_temperature_layer_0}\nprint_start EXTRUDER={material_print_temperature_layer_0} BED={material_bed_temperature_layer_0} CHAMBER={build_volume_temperature}" }, From feb95f307599851d5d0865db32bb4c2839cb083d Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Thu, 5 Dec 2024 11:23:55 -0500 Subject: [PATCH 048/200] Decrease speed_layer_0 back to a more reasonable value --- resources/definitions/voron2_base.def.json | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 530503196c..11bd654785 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -93,6 +93,7 @@ }, "roofing_layer_count": { "value": 1 }, "skirt_brim_minimal_length": { "default_value": 550 }, + "speed_layer_0": { "value": "speed_print / 4" }, "speed_print": { "value": "round(12 / layer_height / machine_nozzle_size, -1)" }, "speed_slowdown_layers": { "default_value": 4 }, "speed_travel": From dce075beb30f44516b72b06c22520933dd722074 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Thu, 5 Dec 2024 11:25:18 -0500 Subject: [PATCH 049/200] Round volumetric flow to a multiple of 0.2 for better results --- resources/definitions/voron2_base.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 11bd654785..d534db55ad 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -94,7 +94,7 @@ "roofing_layer_count": { "value": 1 }, "skirt_brim_minimal_length": { "default_value": 550 }, "speed_layer_0": { "value": "speed_print / 4" }, - "speed_print": { "value": "round(12 / layer_height / machine_nozzle_size, -1)" }, + "speed_print": { "value": "round(12.8 / layer_height / machine_nozzle_size, -1)" }, "speed_slowdown_layers": { "default_value": 4 }, "speed_travel": { From a5a9955dbb0718d931c4ae924c5d40ed01b19592 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Thu, 5 Dec 2024 11:47:06 -0500 Subject: [PATCH 050/200] Update TPU profiles to account for the new default speed_print --- resources/quality/voron2/voron2_v6_0.25_TPU_extrafine.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.25_TPU_fast.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.25_TPU_fine.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.25_TPU_normal.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.30_TPU_extrafine.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.30_TPU_fast.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.30_TPU_fine.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.30_TPU_normal.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.35_TPU_fast.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.35_TPU_fine.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.35_TPU_normal.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.40_TPU_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.40_TPU_fast.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.40_TPU_fine.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.40_TPU_normal.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.50_TPU_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.50_TPU_fast.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.50_TPU_normal.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.50_TPU_sprint.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.60_TPU_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.60_TPU_fast.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.60_TPU_sprint.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.80_TPU_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.80_TPU_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_v6_0.80_TPU_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg | 1 - resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg | 1 - .../quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg | 1 - .../quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg | 1 - resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg | 1 - .../quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg | 1 - .../quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg | 1 - .../quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg | 1 - .../quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg | 1 - .../quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg | 1 - .../quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg | 1 - .../quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg | 1 - .../quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg | 1 - .../quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg | 1 - .../quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg | 1 - 40 files changed, 25 insertions(+), 40 deletions(-) diff --git a/resources/quality/voron2/voron2_v6_0.25_TPU_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_TPU_extrafine.inst.cfg index 52f17ca952..bc80fb20d9 100644 --- a/resources/quality/voron2/voron2_v6_0.25_TPU_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_TPU_extrafine.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.25mm [values] -speed_infill = =speed_print +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_v6_0.25_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_TPU_fast.inst.cfg index 3303a95da1..9b477f9997 100644 --- a/resources/quality/voron2/voron2_v6_0.25_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_TPU_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.25mm [values] -speed_infill = =speed_print +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_v6_0.25_TPU_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_TPU_fine.inst.cfg index 8be7ed270f..dcf270482e 100644 --- a/resources/quality/voron2/voron2_v6_0.25_TPU_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_TPU_fine.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.25mm [values] -speed_infill = =speed_print +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_v6_0.25_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_TPU_normal.inst.cfg index 68edfcdbd2..bc8700fafa 100644 --- a/resources/quality/voron2/voron2_v6_0.25_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_TPU_normal.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.25mm [values] -speed_infill = =speed_print +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_v6_0.30_TPU_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_TPU_extrafine.inst.cfg index b64fbc0bd5..06ce3b0755 100644 --- a/resources/quality/voron2/voron2_v6_0.30_TPU_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_TPU_extrafine.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.30mm [values] -speed_infill = =speed_print +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_v6_0.30_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_TPU_fast.inst.cfg index 288fbd74b1..6ce191a0e0 100644 --- a/resources/quality/voron2/voron2_v6_0.30_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_TPU_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.30mm [values] -speed_infill = =speed_print +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_v6_0.30_TPU_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_TPU_fine.inst.cfg index 8e0fd0270a..aa7670927c 100644 --- a/resources/quality/voron2/voron2_v6_0.30_TPU_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_TPU_fine.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.30mm [values] -speed_infill = =speed_print +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_v6_0.30_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_TPU_normal.inst.cfg index 99c53543b3..40451234f7 100644 --- a/resources/quality/voron2/voron2_v6_0.30_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_TPU_normal.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.30mm [values] -speed_infill = =speed_print +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_v6_0.35_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_TPU_fast.inst.cfg index 01e365baca..bc06c67ff8 100644 --- a/resources/quality/voron2/voron2_v6_0.35_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_TPU_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.35mm [values] -speed_infill = =speed_print +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_v6_0.35_TPU_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_TPU_fine.inst.cfg index 211ff62090..b3ba6a5c3e 100644 --- a/resources/quality/voron2/voron2_v6_0.35_TPU_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_TPU_fine.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.35mm [values] -speed_infill = =speed_print +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_v6_0.35_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_TPU_normal.inst.cfg index 80e820d460..84b7fd8a31 100644 --- a/resources/quality/voron2/voron2_v6_0.35_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_TPU_normal.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.35mm [values] -speed_infill = =speed_print +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_v6_0.40_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_TPU_extrafast.inst.cfg index e083dc0cc4..9ace0f455c 100644 --- a/resources/quality/voron2/voron2_v6_0.40_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_TPU_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.40mm [values] -speed_infill = =speed_print +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_v6_0.40_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_TPU_fast.inst.cfg index 5097432468..4051fefd65 100644 --- a/resources/quality/voron2/voron2_v6_0.40_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_TPU_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.40mm [values] -speed_infill = =speed_print +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_v6_0.40_TPU_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_TPU_fine.inst.cfg index cd4c8c6455..417b4608d5 100644 --- a/resources/quality/voron2/voron2_v6_0.40_TPU_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_TPU_fine.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.40mm [values] -speed_infill = =speed_print +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_v6_0.40_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_TPU_normal.inst.cfg index c30446dbc2..60c2c68542 100644 --- a/resources/quality/voron2/voron2_v6_0.40_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_TPU_normal.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.40mm [values] -speed_infill = =speed_print +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_v6_0.50_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_TPU_extrafast.inst.cfg index f4ed1a414c..5e232d3b3c 100644 --- a/resources/quality/voron2/voron2_v6_0.50_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_TPU_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.50mm [values] -speed_infill = =speed_print +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_v6_0.50_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_TPU_fast.inst.cfg index ea594031de..6bde45f5b5 100644 --- a/resources/quality/voron2/voron2_v6_0.50_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_TPU_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.50mm [values] -speed_infill = =speed_print +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_v6_0.50_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_TPU_normal.inst.cfg index 802841f756..1ca3677ea0 100644 --- a/resources/quality/voron2/voron2_v6_0.50_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_TPU_normal.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.50mm [values] -speed_infill = =speed_print +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_v6_0.50_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_TPU_sprint.inst.cfg index b672bb34ec..addb192a0d 100644 --- a/resources/quality/voron2/voron2_v6_0.50_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_TPU_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.50mm [values] -speed_infill = =speed_print +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_v6_0.60_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_TPU_extrafast.inst.cfg index fd2b53dbac..5c47536e8f 100644 --- a/resources/quality/voron2/voron2_v6_0.60_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_TPU_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.60mm [values] -speed_infill = =speed_print +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_v6_0.60_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_TPU_fast.inst.cfg index f64b302b18..fcd8e1e299 100644 --- a/resources/quality/voron2/voron2_v6_0.60_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_TPU_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.60mm [values] -speed_infill = =speed_print +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_v6_0.60_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_TPU_sprint.inst.cfg index 16a8912aad..7ac8da9921 100644 --- a/resources/quality/voron2/voron2_v6_0.60_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_TPU_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.60mm [values] -speed_infill = =speed_print +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_v6_0.80_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_TPU_extrafast.inst.cfg index 2272252200..22c643d36f 100644 --- a/resources/quality/voron2/voron2_v6_0.80_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_TPU_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.80mm [values] -speed_infill = =speed_print +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_v6_0.80_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_TPU_sprint.inst.cfg index 0a02f88acf..14b04d8b09 100644 --- a/resources/quality/voron2/voron2_v6_0.80_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_TPU_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.80mm [values] -speed_infill = =speed_print +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_v6_0.80_TPU_supersprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_TPU_supersprint.inst.cfg index caeaa36e3d..af1f701b80 100644 --- a/resources/quality/voron2/voron2_v6_0.80_TPU_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_TPU_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.80mm [values] -speed_infill = =speed_print +speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg index c5444e3368..7dc126548f 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg @@ -11,6 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg index 17e9d9e1a0..25c32d7ef6 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg @@ -11,6 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg index dd9bbfe322..b87fd49feb 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg @@ -11,6 +11,5 @@ type = quality variant = Volcano 0.40mm [values] -speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg index 046fd2e430..ad35924c76 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg @@ -11,6 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg index 0447e440ae..5262a7dbfa 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg @@ -11,6 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg index 8e499120e5..8e7869aa80 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg @@ -11,6 +11,5 @@ type = quality variant = Volcano 0.60mm [values] -speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg index 1bd7d02b49..72ecf499c6 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg @@ -11,6 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg index adee8d58b9..c6e85a303c 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg @@ -11,6 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg index 9a83d40a85..c4bf8cec03 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg @@ -11,6 +11,5 @@ type = quality variant = Volcano 0.80mm [values] -speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg index a731fc36b5..0ff78076e2 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg @@ -11,6 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg index 533f4e1760..489ec39fda 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg @@ -11,6 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg index fc3d0c3c30..3270994be8 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg @@ -11,6 +11,5 @@ type = quality variant = Volcano 1.00mm [values] -speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg index 33ef40c2d4..f2a88cdf9a 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg @@ -11,6 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg index 256c9d5d86..dea27e34ba 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg @@ -11,6 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg index 672d26158c..98d99e9139 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg @@ -11,6 +11,5 @@ type = quality variant = Volcano 1.20mm [values] -speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) From 27f01495162512958e7eaafb8334b98b3dbcd505 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Thu, 5 Dec 2024 11:56:58 -0500 Subject: [PATCH 051/200] Decrease z hop speed --- resources/definitions/voron2_base.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index d534db55ad..0fc1b34cce 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -101,7 +101,7 @@ "maximum_value_warning": "max(500, round((machine_max_feedrate_x + machine_max_feedrate_y) / 2, -2)) + 1", "value": "speed_print if magic_spiralize else max(speed_print, round((machine_max_feedrate_x + machine_max_feedrate_y) / 2, -2))" }, - "speed_z_hop": { "value": "machine_max_feedrate_z" }, + "speed_z_hop": { "value": "max(10, machine_max_feedrate_z / 2)" }, "top_bottom_thickness": { "value": "wall_thickness" }, "travel_avoid_other_parts": { "default_value": false }, "wall_overhang_angle": { "default_value": 75 }, From 94ab1fef7cb0ae885246150662fa934886b475a9 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Thu, 5 Dec 2024 11:59:48 -0500 Subject: [PATCH 052/200] Remove more redundant overrides --- resources/definitions/voron2_base.def.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 0fc1b34cce..c5ffddcd69 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -23,7 +23,6 @@ { "adhesion_type": { "default_value": "skirt" }, "alternate_extra_perimeter": { "default_value": true }, - "bridge_fan_speed": { "default_value": 100 }, "bridge_fan_speed_2": { "resolve": "max(cool_fan_speed, 50)" }, "bridge_fan_speed_3": { "resolve": "max(cool_fan_speed, 20)" }, "bridge_settings_enabled": { "default_value": true }, @@ -74,7 +73,6 @@ "meshfix_maximum_resolution": { "default_value": 0.01 }, "min_infill_area": { "default_value": 5.0 }, "minimum_polygon_circumference": { "default_value": 0.2 }, - "optimize_wall_printing_order": { "default_value": true }, "retraction_amount": { "default_value": 0.75 }, "retraction_combing": { "value": "'noskin'" }, "retraction_combing_max_distance": { "default_value": 10 }, From c2a66bfd7e45a8585d681320a2e9fb860a3eb9e0 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Thu, 5 Dec 2024 13:19:30 -0500 Subject: [PATCH 053/200] Parametric cool_min_layer_time_fan_speed_max --- resources/definitions/voron2_base.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index c5ffddcd69..fbd9ce711f 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -30,7 +30,7 @@ "cool_fan_full_at_height": { "value": "resolveOrValue('layer_height_0') + resolveOrValue('layer_height') * max(1, cool_fan_full_layer - 1)" }, "cool_fan_full_layer": { "value": 4 }, "cool_min_layer_time": { "default_value": 15 }, - "cool_min_layer_time_fan_speed_max": { "default_value": 20 }, + "cool_min_layer_time_fan_speed_max": { "value": "cool_min_layer_time + 5" }, "cool_min_speed": { "value": "max(round(speed_layer_0 / 2), round(speed_wall_0 * 3 / 4) if cool_lift_head else round(speed_wall_0 / 2))" }, "gantry_height": { "value": 30 }, "infill_before_walls": { "default_value": false }, From 8a6d84c2563be814aaaf042ea3cc630ae2f2cf22 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Thu, 5 Dec 2024 14:53:51 -0500 Subject: [PATCH 054/200] Decrease default print speed --- resources/definitions/voron2_base.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index fbd9ce711f..787a8a903b 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -92,7 +92,7 @@ "roofing_layer_count": { "value": 1 }, "skirt_brim_minimal_length": { "default_value": 550 }, "speed_layer_0": { "value": "speed_print / 4" }, - "speed_print": { "value": "round(12.8 / layer_height / machine_nozzle_size, -1)" }, + "speed_print": { "value": "round(9.6 / layer_height / machine_nozzle_size, -1)" }, "speed_slowdown_layers": { "default_value": 4 }, "speed_travel": { From 8e73e9186e53e63ceffd786438b1c4dc5b7dc347 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Thu, 5 Dec 2024 15:14:13 -0500 Subject: [PATCH 055/200] Update retraction (Voron) --- resources/definitions/voron2_base.def.json | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 787a8a903b..e49b3b7492 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -76,18 +76,19 @@ "retraction_amount": { "default_value": 0.75 }, "retraction_combing": { "value": "'noskin'" }, "retraction_combing_max_distance": { "default_value": 10 }, - "retraction_hop": { "default_value": 0.2 }, + "retraction_hop": { "default_value": "machine_nozzle_size / 2" }, "retraction_hop_enabled": { "default_value": true }, + "retraction_hop_only_when_collides": { "default_value": true }, "retraction_prime_speed": { - "maximum_value_warning": 130, + "maximum_value_warning": "machine_max_feedrate_e - 10", "value": "math.ceil(retraction_speed * 0.4)" }, - "retraction_retract_speed": { "maximum_value_warning": 130 }, + "retraction_retract_speed": { "maximum_value_warning": "machine_max_feedrate_e - 10" }, "retraction_speed": { "default_value": 30, - "maximum_value_warning": 130 + "maximum_value_warning": "machine_max_feedrate_e - 10" }, "roofing_layer_count": { "value": 1 }, "skirt_brim_minimal_length": { "default_value": 550 }, From 97c86350b55ff2eed0b5ce4734eb8670dead0172 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Thu, 5 Dec 2024 15:19:58 -0500 Subject: [PATCH 056/200] Restore travel_avoid_other_parts to default --- resources/definitions/voron2_base.def.json | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index e49b3b7492..a4e8d827d3 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -102,7 +102,6 @@ }, "speed_z_hop": { "value": "max(10, machine_max_feedrate_z / 2)" }, "top_bottom_thickness": { "value": "wall_thickness" }, - "travel_avoid_other_parts": { "default_value": false }, "wall_overhang_angle": { "default_value": 75 }, "wall_overhang_speed_factor": { "default_value": 50 }, "wall_thickness": { "value": "wall_line_width_0 + wall_line_width_x" }, From a72ade32d30c77039042853e338dd9d49fa0bce2 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Thu, 5 Dec 2024 15:26:39 -0500 Subject: [PATCH 057/200] Zig-zaggify Supports by default --- resources/definitions/voron2_base.def.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index a4e8d827d3..e07034be58 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -105,6 +105,7 @@ "wall_overhang_angle": { "default_value": 75 }, "wall_overhang_speed_factor": { "default_value": 50 }, "wall_thickness": { "value": "wall_line_width_0 + wall_line_width_x" }, - "zig_zaggify_infill": { "value": true } + "zig_zaggify_infill": { "value": true }, + "zig_zaggify_support": { "value": true } } } \ No newline at end of file From f3bd534a34df519d145572aed940c87b32614184 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Fri, 6 Dec 2024 06:56:33 -0500 Subject: [PATCH 058/200] Fix error: parametric in "default_value" instead of "value" --- resources/definitions/voron2_base.def.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index e07034be58..ac46e2202c 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -76,7 +76,11 @@ "retraction_amount": { "default_value": 0.75 }, "retraction_combing": { "value": "'noskin'" }, "retraction_combing_max_distance": { "default_value": 10 }, - "retraction_hop": { "default_value": "machine_nozzle_size / 2" }, + "retraction_hop": + { + "default_value": 0.2, + "value": "machine_nozzle_size / 2" + }, "retraction_hop_enabled": { "default_value": true }, "retraction_hop_only_when_collides": { "default_value": true }, "retraction_prime_speed": From 5b2e35d05af80ef41b7d85ebeb986da8893b9add Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Mon, 9 Dec 2024 06:42:43 -0500 Subject: [PATCH 059/200] Restore default print speed Volumetric speed 6.4 mm/s^2 --- resources/definitions/voron2_base.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index ac46e2202c..2470540c73 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -97,7 +97,7 @@ "roofing_layer_count": { "value": 1 }, "skirt_brim_minimal_length": { "default_value": 550 }, "speed_layer_0": { "value": "speed_print / 4" }, - "speed_print": { "value": "round(9.6 / layer_height / machine_nozzle_size, -1)" }, + "speed_print": { "value": "round(6.4 / layer_height / machine_nozzle_size, -1)" }, "speed_slowdown_layers": { "default_value": 4 }, "speed_travel": { From 5c3cfaaec04ad726f9da0eb5e20b35559aafabf7 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Mon, 9 Dec 2024 12:56:39 -0500 Subject: [PATCH 060/200] Revert "Revert infill and first layer speed to values inherited from fdmprinter" This reverts commit 12274e1ba8cd5880755d7d85c98d9f469b274649. --- resources/definitions/voron2_base.def.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 2470540c73..38af134f47 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -96,7 +96,8 @@ }, "roofing_layer_count": { "value": 1 }, "skirt_brim_minimal_length": { "default_value": 550 }, - "speed_layer_0": { "value": "speed_print / 4" }, + "speed_infill": { "value": "speed_print * 1.5" }, + "speed_layer_0": { "value": "speed_print * 3 / 8" }, "speed_print": { "value": "round(6.4 / layer_height / machine_nozzle_size, -1)" }, "speed_slowdown_layers": { "default_value": 4 }, "speed_travel": From 5addbc586943b3ae17730b6a6744ea2415c6ad50 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Mon, 9 Dec 2024 12:59:18 -0500 Subject: [PATCH 061/200] Revert "Update TPU profiles to account for the new default speed_print" This reverts commit a5a9955dbb0718d931c4ae924c5d40ed01b19592. --- resources/quality/voron2/voron2_v6_0.25_TPU_extrafine.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.25_TPU_fast.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.25_TPU_fine.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.25_TPU_normal.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.30_TPU_extrafine.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.30_TPU_fast.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.30_TPU_fine.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.30_TPU_normal.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.35_TPU_fast.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.35_TPU_fine.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.35_TPU_normal.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.40_TPU_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.40_TPU_fast.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.40_TPU_fine.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.40_TPU_normal.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.50_TPU_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.50_TPU_fast.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.50_TPU_normal.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.50_TPU_sprint.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.60_TPU_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.60_TPU_fast.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.60_TPU_sprint.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.80_TPU_extrafast.inst.cfg | 2 +- resources/quality/voron2/voron2_v6_0.80_TPU_sprint.inst.cfg | 2 +- .../quality/voron2/voron2_v6_0.80_TPU_supersprint.inst.cfg | 2 +- .../quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg | 1 + .../quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg | 1 + .../quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg | 1 + resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg | 1 + .../quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg | 1 + .../quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg | 1 + .../quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg | 1 + 40 files changed, 40 insertions(+), 25 deletions(-) diff --git a/resources/quality/voron2/voron2_v6_0.25_TPU_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_TPU_extrafine.inst.cfg index bc80fb20d9..52f17ca952 100644 --- a/resources/quality/voron2/voron2_v6_0.25_TPU_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_TPU_extrafine.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.25mm [values] -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) +speed_infill = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.25_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_TPU_fast.inst.cfg index 9b477f9997..3303a95da1 100644 --- a/resources/quality/voron2/voron2_v6_0.25_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_TPU_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.25mm [values] -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) +speed_infill = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.25_TPU_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_TPU_fine.inst.cfg index dcf270482e..8be7ed270f 100644 --- a/resources/quality/voron2/voron2_v6_0.25_TPU_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_TPU_fine.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.25mm [values] -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) +speed_infill = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.25_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_TPU_normal.inst.cfg index bc8700fafa..68edfcdbd2 100644 --- a/resources/quality/voron2/voron2_v6_0.25_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.25_TPU_normal.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.25mm [values] -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) +speed_infill = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.30_TPU_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_TPU_extrafine.inst.cfg index 06ce3b0755..b64fbc0bd5 100644 --- a/resources/quality/voron2/voron2_v6_0.30_TPU_extrafine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_TPU_extrafine.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.30mm [values] -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) +speed_infill = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.30_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_TPU_fast.inst.cfg index 6ce191a0e0..288fbd74b1 100644 --- a/resources/quality/voron2/voron2_v6_0.30_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_TPU_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.30mm [values] -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) +speed_infill = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.30_TPU_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_TPU_fine.inst.cfg index aa7670927c..8e0fd0270a 100644 --- a/resources/quality/voron2/voron2_v6_0.30_TPU_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_TPU_fine.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.30mm [values] -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) +speed_infill = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.30_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_TPU_normal.inst.cfg index 40451234f7..99c53543b3 100644 --- a/resources/quality/voron2/voron2_v6_0.30_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.30_TPU_normal.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.30mm [values] -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) +speed_infill = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.35_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_TPU_fast.inst.cfg index bc06c67ff8..01e365baca 100644 --- a/resources/quality/voron2/voron2_v6_0.35_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_TPU_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.35mm [values] -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) +speed_infill = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.35_TPU_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_TPU_fine.inst.cfg index b3ba6a5c3e..211ff62090 100644 --- a/resources/quality/voron2/voron2_v6_0.35_TPU_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_TPU_fine.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.35mm [values] -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) +speed_infill = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.35_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_TPU_normal.inst.cfg index 84b7fd8a31..80e820d460 100644 --- a/resources/quality/voron2/voron2_v6_0.35_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.35_TPU_normal.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.35mm [values] -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) +speed_infill = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.40_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_TPU_extrafast.inst.cfg index 9ace0f455c..e083dc0cc4 100644 --- a/resources/quality/voron2/voron2_v6_0.40_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_TPU_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.40mm [values] -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) +speed_infill = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.40_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_TPU_fast.inst.cfg index 4051fefd65..5097432468 100644 --- a/resources/quality/voron2/voron2_v6_0.40_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_TPU_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.40mm [values] -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) +speed_infill = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.40_TPU_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_TPU_fine.inst.cfg index 417b4608d5..cd4c8c6455 100644 --- a/resources/quality/voron2/voron2_v6_0.40_TPU_fine.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_TPU_fine.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.40mm [values] -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) +speed_infill = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.40_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_TPU_normal.inst.cfg index 60c2c68542..c30446dbc2 100644 --- a/resources/quality/voron2/voron2_v6_0.40_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.40_TPU_normal.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.40mm [values] -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) +speed_infill = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.50_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_TPU_extrafast.inst.cfg index 5e232d3b3c..f4ed1a414c 100644 --- a/resources/quality/voron2/voron2_v6_0.50_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_TPU_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.50mm [values] -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) +speed_infill = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.50_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_TPU_fast.inst.cfg index 6bde45f5b5..ea594031de 100644 --- a/resources/quality/voron2/voron2_v6_0.50_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_TPU_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.50mm [values] -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) +speed_infill = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.50_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_TPU_normal.inst.cfg index 1ca3677ea0..802841f756 100644 --- a/resources/quality/voron2/voron2_v6_0.50_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_TPU_normal.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.50mm [values] -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) +speed_infill = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.50_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_TPU_sprint.inst.cfg index addb192a0d..b672bb34ec 100644 --- a/resources/quality/voron2/voron2_v6_0.50_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.50_TPU_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.50mm [values] -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) +speed_infill = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.60_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_TPU_extrafast.inst.cfg index 5c47536e8f..fd2b53dbac 100644 --- a/resources/quality/voron2/voron2_v6_0.60_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_TPU_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.60mm [values] -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) +speed_infill = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.60_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_TPU_fast.inst.cfg index fcd8e1e299..f64b302b18 100644 --- a/resources/quality/voron2/voron2_v6_0.60_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_TPU_fast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.60mm [values] -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) +speed_infill = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.60_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_TPU_sprint.inst.cfg index 7ac8da9921..16a8912aad 100644 --- a/resources/quality/voron2/voron2_v6_0.60_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.60_TPU_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.60mm [values] -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) +speed_infill = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.80_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_TPU_extrafast.inst.cfg index 22c643d36f..2272252200 100644 --- a/resources/quality/voron2/voron2_v6_0.80_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_TPU_extrafast.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.80mm [values] -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) +speed_infill = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.80_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_TPU_sprint.inst.cfg index 14b04d8b09..0a02f88acf 100644 --- a/resources/quality/voron2/voron2_v6_0.80_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_TPU_sprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.80mm [values] -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) +speed_infill = =speed_print diff --git a/resources/quality/voron2/voron2_v6_0.80_TPU_supersprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_TPU_supersprint.inst.cfg index af1f701b80..caeaa36e3d 100644 --- a/resources/quality/voron2/voron2_v6_0.80_TPU_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_v6_0.80_TPU_supersprint.inst.cfg @@ -11,5 +11,5 @@ type = quality variant = V6 0.80mm [values] -speed_print = =round(6.4 / layer_height / machine_nozzle_size, -1) +speed_infill = =speed_print diff --git a/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg index 7dc126548f..c5444e3368 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg @@ -11,5 +11,6 @@ type = quality variant = Volcano 0.40mm [values] +speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg index 25c32d7ef6..17e9d9e1a0 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg @@ -11,5 +11,6 @@ type = quality variant = Volcano 0.40mm [values] +speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg index b87fd49feb..dd9bbfe322 100644 --- a/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg @@ -11,5 +11,6 @@ type = quality variant = Volcano 0.40mm [values] +speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg index ad35924c76..046fd2e430 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg @@ -11,5 +11,6 @@ type = quality variant = Volcano 0.60mm [values] +speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg index 5262a7dbfa..0447e440ae 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg @@ -11,5 +11,6 @@ type = quality variant = Volcano 0.60mm [values] +speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg index 8e7869aa80..8e499120e5 100644 --- a/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg @@ -11,5 +11,6 @@ type = quality variant = Volcano 0.60mm [values] +speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg index 72ecf499c6..1bd7d02b49 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg @@ -11,5 +11,6 @@ type = quality variant = Volcano 0.80mm [values] +speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg index c6e85a303c..adee8d58b9 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg @@ -11,5 +11,6 @@ type = quality variant = Volcano 0.80mm [values] +speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg index c4bf8cec03..9a83d40a85 100644 --- a/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg @@ -11,5 +11,6 @@ type = quality variant = Volcano 0.80mm [values] +speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg index 0ff78076e2..a731fc36b5 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg @@ -11,5 +11,6 @@ type = quality variant = Volcano 1.00mm [values] +speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg index 489ec39fda..533f4e1760 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg @@ -11,5 +11,6 @@ type = quality variant = Volcano 1.00mm [values] +speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg index 3270994be8..fc3d0c3c30 100644 --- a/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg @@ -11,5 +11,6 @@ type = quality variant = Volcano 1.00mm [values] +speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg index f2a88cdf9a..33ef40c2d4 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg @@ -11,5 +11,6 @@ type = quality variant = Volcano 1.20mm [values] +speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg index dea27e34ba..256c9d5d86 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg @@ -11,5 +11,6 @@ type = quality variant = Volcano 1.20mm [values] +speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) diff --git a/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg index 98d99e9139..672d26158c 100644 --- a/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg +++ b/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg @@ -11,5 +11,6 @@ type = quality variant = Volcano 1.20mm [values] +speed_infill = =speed_print speed_print = =round(20 / layer_height / machine_nozzle_size, -1) From 209cec7c6cc43c3cc7bd1cfa1bcdeb1ca4f78e14 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Fri, 13 Dec 2024 15:12:34 -0500 Subject: [PATCH 063/200] Default to smart hiding seam --- resources/definitions/voron2_base.def.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 38af134f47..281250fa9d 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -110,6 +110,8 @@ "wall_overhang_angle": { "default_value": 75 }, "wall_overhang_speed_factor": { "default_value": 50 }, "wall_thickness": { "value": "wall_line_width_0 + wall_line_width_x" }, + "z_seam_corner": { "value": "'z_seam_corner_weighted'" }, + "z_seam_relative": { "value": "True" }, "zig_zaggify_infill": { "value": true }, "zig_zaggify_support": { "value": true } } From f8c40085df1f5fc96415fbd9c747681093cda73d Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Thu, 19 Dec 2024 15:17:05 -0500 Subject: [PATCH 064/200] Test acceleration control --- resources/definitions/voron2_base.def.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 281250fa9d..a0257680be 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -21,6 +21,11 @@ }, "overrides": { + "acceleration_enabled": { "default_value": true }, + "acceleration_layer_0": { "value": 500 }, + "acceleration_print": { "default_value": 5000 }, + "acceleration_travel": { "value": 7000 }, + "acceleration_wall_0": { "value": 3000 }, "adhesion_type": { "default_value": "skirt" }, "alternate_extra_perimeter": { "default_value": true }, "bridge_fan_speed_2": { "resolve": "max(cool_fan_speed, 50)" }, From 36fc19cc5cdb6832172da439f826c4b6b4fd9ce9 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Thu, 19 Dec 2024 15:30:55 -0500 Subject: [PATCH 065/200] Increase default machine_acceleration --- resources/definitions/voron2_base.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index a0257680be..1f706a1134 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -43,7 +43,7 @@ "infill_line_width": { "value": "machine_nozzle_size * 1.125" }, "initial_layer_line_width_factor": { "default_value": 125.0 }, "layer_height_0": { "resolve": "max(machine_nozzle_size / 2, min(extruderValues('layer_height')))" }, - "machine_acceleration": { "default_value": 3000 }, + "machine_acceleration": { "default_value": 5000 }, "machine_depth": { "default_value": 250 }, "machine_end_gcode": { "default_value": "print_end" }, "machine_endstop_positive_direction_x": { "default_value": true }, From 1166634e7183d7132afacb523c95dbcbb6eadfc3 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Thu, 19 Dec 2024 15:31:07 -0500 Subject: [PATCH 066/200] Test jerk control --- resources/definitions/voron2_base.def.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 1f706a1134..e6c5c1256c 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -42,6 +42,11 @@ "infill_enable_travel_optimization": { "default_value": true }, "infill_line_width": { "value": "machine_nozzle_size * 1.125" }, "initial_layer_line_width_factor": { "default_value": 125.0 }, + "jerk_enabled": { "default_value": true }, + "jerk_infill": { "value": 12 }, + "jerk_print": { "value": 9 }, + "jerk_travel": { "value": 12 }, + "jerk_wall": { "value": 7 }, "layer_height_0": { "resolve": "max(machine_nozzle_size / 2, min(extruderValues('layer_height')))" }, "machine_acceleration": { "default_value": 5000 }, "machine_depth": { "default_value": 250 }, From 74f3c7bb30c35e7bc736ffb94165e1c716e74d99 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Fri, 20 Dec 2024 08:51:24 -0500 Subject: [PATCH 067/200] Revert "Test jerk control" This reverts commit 1166634e7183d7132afacb523c95dbcbb6eadfc3. --- resources/definitions/voron2_base.def.json | 5 ----- 1 file changed, 5 deletions(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index e6c5c1256c..1f706a1134 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -42,11 +42,6 @@ "infill_enable_travel_optimization": { "default_value": true }, "infill_line_width": { "value": "machine_nozzle_size * 1.125" }, "initial_layer_line_width_factor": { "default_value": 125.0 }, - "jerk_enabled": { "default_value": true }, - "jerk_infill": { "value": 12 }, - "jerk_print": { "value": 9 }, - "jerk_travel": { "value": 12 }, - "jerk_wall": { "value": 7 }, "layer_height_0": { "resolve": "max(machine_nozzle_size / 2, min(extruderValues('layer_height')))" }, "machine_acceleration": { "default_value": 5000 }, "machine_depth": { "default_value": 250 }, From 072c52408900e400f158c9053e7d61bc2d806b94 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Fri, 20 Dec 2024 08:51:51 -0500 Subject: [PATCH 068/200] Revert "Test acceleration control" This reverts commit f8c40085df1f5fc96415fbd9c747681093cda73d. --- resources/definitions/voron2_base.def.json | 5 ----- 1 file changed, 5 deletions(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 1f706a1134..255676e4ec 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -21,11 +21,6 @@ }, "overrides": { - "acceleration_enabled": { "default_value": true }, - "acceleration_layer_0": { "value": 500 }, - "acceleration_print": { "default_value": 5000 }, - "acceleration_travel": { "value": 7000 }, - "acceleration_wall_0": { "value": 3000 }, "adhesion_type": { "default_value": "skirt" }, "alternate_extra_perimeter": { "default_value": true }, "bridge_fan_speed_2": { "resolve": "max(cool_fan_speed, 50)" }, From 367cf9ebd106e326caaa5b4be05daacf0d4e1d56 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Fri, 20 Dec 2024 11:27:51 -0500 Subject: [PATCH 069/200] Revert default machine_max_acceleration for new users --- resources/definitions/voron2_base.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 255676e4ec..5ee7a692dc 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -57,8 +57,8 @@ }, "machine_heated_bed": { "default_value": true }, "machine_height": { "default_value": 250 }, - "machine_max_acceleration_x": { "default_value": 20000 }, - "machine_max_acceleration_y": { "default_value": 20000 }, + "machine_max_acceleration_x": { "default_value": 3000 }, + "machine_max_acceleration_y": { "default_value": 3000 }, "machine_max_acceleration_z": { "default_value": 500 }, "machine_max_feedrate_e": { "default_value": 120 }, "machine_max_feedrate_x": { "value": 500 }, From bfe581e8fc0f6359f7287682337aa712cd94c7fc Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Fri, 20 Dec 2024 11:36:53 -0500 Subject: [PATCH 070/200] Test parametric adhesion type Accounts for draft_shield_enabled --- resources/definitions/voron2_base.def.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 5ee7a692dc..81e2c48783 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -21,7 +21,11 @@ }, "overrides": { - "adhesion_type": { "default_value": "skirt" }, + "adhesion_type": + { + "default_value": "skirt", + "value": "brim if draft_shield_enabled else skirt" + }, "alternate_extra_perimeter": { "default_value": true }, "bridge_fan_speed_2": { "resolve": "max(cool_fan_speed, 50)" }, "bridge_fan_speed_3": { "resolve": "max(cool_fan_speed, 20)" }, From e7a1bf89ec94397c5952377de4e47272991a96e0 Mon Sep 17 00:00:00 2001 From: GregValiant <64202104+GregValiant@users.noreply.github.com> Date: Mon, 30 Dec 2024 16:35:02 -0500 Subject: [PATCH 071/200] Update DisplayInfoOnLCD.py Revised the M118 lines and insertion point in the gcode. Revised M117 same. Added nozzle size and filament type to data[0] --- .../scripts/DisplayInfoOnLCD.py | 55 ++++++++++--------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py index 870a64834d..ed226c08f3 100644 --- a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py +++ b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py @@ -47,7 +47,7 @@ class DisplayInfoOnLCD(Script): self._instance.setProperty("enable_countdown", "value", enable_countdown) except: pass - + def getSettingDataString(self): return """{ "name": "Display Info on LCD", @@ -238,15 +238,6 @@ class DisplayInfoOnLCD(Script): add_m118_line = self.getSettingValueByKey("add_m118_line") add_m118_a1 = self.getSettingValueByKey("add_m118_a1") add_m118_p0 = self.getSettingValueByKey("add_m118_p0") - m118_text = "M118 " - m118_str = "M118 " - if add_m118_line: - if add_m118_a1 and not add_m118_p0: - m118_str = "M118 A1 " - if add_m118_p0 and not add_m118_a1: - m118_str = "M118 P0 " - if add_m118_p0 and add_m118_a1: - m118_str = "M118 A1 P0 " add_m73_line = self.getSettingValueByKey("add_m73_line") add_m73_time = self.getSettingValueByKey("add_m73_time") add_m73_percent = self.getSettingValueByKey("add_m73_percent") @@ -318,12 +309,22 @@ class DisplayInfoOnLCD(Script): # Display Progress (from 'Show Progress' and 'Display Progress on LCD')--------------------------------------- elif display_option == "display_progress": print_sequence = Application.getInstance().getGlobalContainerStack().getProperty("print_sequence", "value") - ## Add the Initial Layer Height just below Layer Height in data[0] + # Add the Initial Layer Height just below Layer Height in data[0] + extruder_count = Application.getInstance().getGlobalContainerStack().getProperty("machine_extruder_count", "value") init_layer_hgt_line = ";Initial Layer Height: " + str(Application.getInstance().getGlobalContainerStack().getProperty("layer_height_0", "value")) - nozzle_size_line = ";Nozzle Size T0: " + str(Application.getInstance().getGlobalContainerStack().extruderList[0].getProperty("machine_nozzle_size", "value")) - match = re.search(";Layer height: (\d\.\d*)", data[0])[0] - data[0] = re.sub(match, match + "\n" + init_layer_hgt_line + "\n" + nozzle_size_line, data[0]) - ## Get settings + nozzle_size_line = ";Nozzle Size T0: " + str(Application.getInstance().getGlobalContainerStack().extruderList[0].getProperty("machine_nozzle_size", "value")) + filament_type = "\n;Filament type for T0: " + str(Application.getInstance().getGlobalContainerStack().extruderList[0].getProperty("material_type", "value")) + if extruder_count > 1: + nozzle_size_line += "\n;Nozzle Size T1: " + str(Application.getInstance().getGlobalContainerStack().extruderList[1].getProperty("machine_nozzle_size", "value")) + filament_type += "\n;Filament type for T1: " + str(Application.getInstance().getGlobalContainerStack().extruderList[1].getProperty("material_type", "value")) + lines = data[0].split("\n") + for index, line in enumerate(lines): + if line.startswith(";Layer height:"): + lines[index] += "\n" + init_layer_hgt_line + "\n" + nozzle_size_line + if line.startswith(";Filament used"): + lines[index] += filament_type + data[0] = "\n".join(lines) + # Get settings display_total_layers = self.getSettingValueByKey("display_total_layers") display_remaining_time = self.getSettingValueByKey("display_remaining_time") speed_factor = self.getSettingValueByKey("speed_factor") / 100 @@ -336,13 +337,13 @@ class DisplayInfoOnLCD(Script): if add_m73_line: data[1] = "M75\n" + data[1] data[len(data)-1] += "M77\n" - ## Initialize some variables + # Initialize some variables first_layer_index = 0 time_total = int(data[0].split(";TIME:")[1].split("\n")[0]) number_of_layers = 0 time_elapsed = 0 - ## If at least one of the settings is disabled, there is enough room on the display to display "layer" + # If at least one of the settings is disabled, there is enough room on the display to display "layer" first_section = data[0] lines = first_section.split("\n") for line in lines: @@ -356,10 +357,10 @@ class DisplayInfoOnLCD(Script): orig_hhh = cura_time/3600 orig_hr = round(orig_hhh // 1) orig_mmm = math.floor((orig_hhh % 1) * 60) - if add_m118_line: lines.insert(tindex + 5, m118_str + "Adjusted Print Time " + str(hr) + "hr " + str(mmm) + "min") - if add_m117_line: lines.insert(tindex + 5,"M117 ET " + str(hr) + "hr " + str(mmm) + "min") - ## Add M73 line at beginning - mins = int(60 * hr + mmm) + if add_m118_line: lines.insert(tindex + 6,"M118 Adjusted Print Time " + str(hr) + "hr " + str(mmm) + "min") + if add_m117_line: lines.insert(tindex + 6,"M117 ET " + str(hr) + "hr " + str(mmm) + "min") + # Add M73 line at beginning + mins = int(60 * hr + mmm) if add_m73_line and (add_m73_time or add_m73_percent): if m73_time: m73_str += " R{}".format(mins) @@ -383,13 +384,13 @@ class DisplayInfoOnLCD(Script): if pause_cmd[q] in data[num]: pause_count += data[num].count(pause_cmd[q], 0, len(data[num])) pause_str = f" with {pause_count} pause(s)" - ## This line goes in to convert seconds to hours and minutes - lines.insert(tindex + 5, f";Cura Time Estimate: {orig_hr}hr {orig_mmm}min {pause_str}") + # This line goes in to convert seconds to hours and minutes + lines.insert(tindex + 1, f";Cura Time Estimate: {orig_hr}hr {orig_mmm}min {pause_str}") data[0] = "\n".join(lines) if add_m117_line: data[len(data)-1] += "M117 Orig Cura Est " + str(orig_hr) + "hr " + str(orig_mmm) + "min\n" if add_m118_line: - data[len(data)-1] += m118_str + " Est w/FudgeFactor " + str(speed_factor * 100) + "% was " + str(hr) + "hr " + str(mmm) + "min\n" + data[len(data)-1] += "M118 Est w/FudgeFactor " + str(speed_factor * 100) + "% was " + str(hr) + "hr " + str(mmm) + "min\n" if not display_total_layers or not display_remaining_time: base_display_text = "layer " else: @@ -463,7 +464,7 @@ class DisplayInfoOnLCD(Script): a1_str = "" p0_str = "" if add_m118_a1: - a1_str = "A1 " + a1_str = "A1 " if add_m118_p0: p0_str = "P0 " lines[l_index] += "\nM118 " + a1_str + p0_str + display_text @@ -592,8 +593,8 @@ class DisplayInfoOnLCD(Script): adjusted_str = "Adjusted Time Estimate..." + str(time_change) finish_str = week_day + " " + str(mo_str) + " " + str(new_time.strftime("%d")) + ", " + str(new_time.strftime("%Y")) + " at " + str(show_hr) + str(new_time.strftime("%M")) + str(show_ampm) return finish_str, estimate_str, adjusted_str, print_start_str - - def get_time_to_go(self, time_str: str): + + def get_time_to_go(self, time_str: str): alt_time = time_str[:-1] hhh = int(float(alt_time) / 3600) if hhh > 0: From da0b99cb8273b5e50a6bd3c994af73800f7d3f72 Mon Sep 17 00:00:00 2001 From: GregValiant <64202104+GregValiant@users.noreply.github.com> Date: Wed, 8 Jan 2025 07:46:42 -0500 Subject: [PATCH 072/200] Update DisplayInfoOnLCD.py Added "global_stack" variable. --- .../scripts/DisplayInfoOnLCD.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py index ed226c08f3..c4f7ecf55c 100644 --- a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py +++ b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py @@ -308,15 +308,16 @@ class DisplayInfoOnLCD(Script): # Display Progress (from 'Show Progress' and 'Display Progress on LCD')--------------------------------------- elif display_option == "display_progress": - print_sequence = Application.getInstance().getGlobalContainerStack().getProperty("print_sequence", "value") + global_stack = Application.getInstance().getGlobalContainerStack() + print_sequence = global_stack.getProperty("print_sequence", "value") # Add the Initial Layer Height just below Layer Height in data[0] - extruder_count = Application.getInstance().getGlobalContainerStack().getProperty("machine_extruder_count", "value") - init_layer_hgt_line = ";Initial Layer Height: " + str(Application.getInstance().getGlobalContainerStack().getProperty("layer_height_0", "value")) - nozzle_size_line = ";Nozzle Size T0: " + str(Application.getInstance().getGlobalContainerStack().extruderList[0].getProperty("machine_nozzle_size", "value")) - filament_type = "\n;Filament type for T0: " + str(Application.getInstance().getGlobalContainerStack().extruderList[0].getProperty("material_type", "value")) + extruder_count = global_stack.getProperty("machine_extruder_count", "value") + init_layer_hgt_line = ";Initial Layer Height: " + str(global_stack.getProperty("layer_height_0", "value")) + nozzle_size_line = ";Nozzle Size T0: " + str(global_stack.extruderList[0].getProperty("machine_nozzle_size", "value")) + filament_type = "\n;Filament type for T0: " + str(global_stack.extruderList[0].getProperty("material_type", "value")) if extruder_count > 1: - nozzle_size_line += "\n;Nozzle Size T1: " + str(Application.getInstance().getGlobalContainerStack().extruderList[1].getProperty("machine_nozzle_size", "value")) - filament_type += "\n;Filament type for T1: " + str(Application.getInstance().getGlobalContainerStack().extruderList[1].getProperty("material_type", "value")) + nozzle_size_line += "\n;Nozzle Size T1: " + str(global_stack.extruderList[1].getProperty("machine_nozzle_size", "value")) + filament_type += "\n;Filament type for T1: " + str(global_stack.extruderList[1].getProperty("material_type", "value")) lines = data[0].split("\n") for index, line in enumerate(lines): if line.startswith(";Layer height:"): From 984c19decc764ca51a3ea68a78df3808517bbc92 Mon Sep 17 00:00:00 2001 From: GregValiant <64202104+GregValiant@users.noreply.github.com> Date: Wed, 8 Jan 2025 23:01:19 -0500 Subject: [PATCH 073/200] Update DisplayInfoOnLCD.py Bug fix. --- .../scripts/DisplayInfoOnLCD.py | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py index c4f7ecf55c..fc3b22a7a6 100644 --- a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py +++ b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py @@ -238,12 +238,14 @@ class DisplayInfoOnLCD(Script): add_m118_line = self.getSettingValueByKey("add_m118_line") add_m118_a1 = self.getSettingValueByKey("add_m118_a1") add_m118_p0 = self.getSettingValueByKey("add_m118_p0") + m118_str = "M118 " + m118_text = "M118 " add_m73_line = self.getSettingValueByKey("add_m73_line") add_m73_time = self.getSettingValueByKey("add_m73_time") add_m73_percent = self.getSettingValueByKey("add_m73_percent") m73_str = "" - # This is Display Filename and Layer on LCD--------------------------------------------------------- + # This is from the original Display Filename and Layer on LCD if display_option == "filename_layer": max_layer = 0 lcd_text = "M117 " @@ -256,7 +258,7 @@ class DisplayInfoOnLCD(Script): lcd_text += "Printing " octo_text += "Printing " if not self.getSettingValueByKey("scroll"): - lcd_text += "Layer " + lcd_text += "Lay " octo_text += "Layer " else: lcd_text += file_name + " - Layer " @@ -275,15 +277,15 @@ class DisplayInfoOnLCD(Script): max_layer = str(int(max_layer) - 1) if line.startswith(";LAYER:"): if self.getSettingValueByKey("maxlayer"): - display_text += " of " + max_layer - m118_text += " of " + max_layer + display_text += "/" + max_layer + m118_text += "/" + max_layer if not self.getSettingValueByKey("scroll"): - display_text += " " + file_name - m118_text += " " + file_name + display_text += "|" + file_name + m118_text += " | " + file_name else: if not self.getSettingValueByKey("scroll"): - display_text += " " + file_name + "!" - m118_text += " " + file_name + "!" + display_text += "|" + file_name + "!" + m118_text += " | " + file_name + "!" else: display_text += "!" m118_text += "!" @@ -291,6 +293,8 @@ class DisplayInfoOnLCD(Script): if add_m117_line: lines.insert(line_index + 1, display_text) if add_m118_line: + if not (add_m118_p0 and add_m118_a1): + m118_str = m118_text if add_m118_a1 and not add_m118_p0: m118_str = m118_text.replace("M118 ","M118 A1 ") if add_m118_p0 and not add_m118_a1: @@ -306,7 +310,7 @@ class DisplayInfoOnLCD(Script): Message(title = "Display Info on LCD - Estimated Finish Time", text = message_str[0] + "\n\n" + message_str[1] + "\n" + message_str[2] + "\n" + message_str[3]).show() return data - # Display Progress (from 'Show Progress' and 'Display Progress on LCD')--------------------------------------- + # This is from 'Show Progress on LCD' elif display_option == "display_progress": global_stack = Application.getInstance().getGlobalContainerStack() print_sequence = global_stack.getProperty("print_sequence", "value") From 043afdb6ed7fbaa672c383ca2337c19564254177 Mon Sep 17 00:00:00 2001 From: GregValiant <64202104+GregValiant@users.noreply.github.com> Date: Fri, 10 Jan 2025 09:01:44 -0500 Subject: [PATCH 074/200] Update DisplayInfoOnLCD.py Update. Remove vestigial line of code at line 530. --- .../scripts/DisplayInfoOnLCD.py | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py index fc3b22a7a6..38649ed6ce 100644 --- a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py +++ b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py @@ -377,18 +377,21 @@ class DisplayInfoOnLCD(Script): if bool(self.getSettingValueByKey("countdown_to_pause")): pause_count = 0 pause_setting = self.getSettingValueByKey("pause_cmd").upper() - pause_cmd = [] - if "," in pause_setting: - pause_cmd = pause_setting.split(",") + if pause_setting != "": + pause_cmd = [] + if "," in pause_setting: + pause_cmd = pause_setting.split(",") + else: + pause_cmd.append(pause_setting) + for q in range(0, len(pause_cmd)): + pause_cmd[q] = "\n" + pause_cmd[q] + for num in range(2,len(data) - 2, 1): + for q in range(0,len(pause_cmd)): + if pause_cmd[q] in data[num]: + pause_count += data[num].count(pause_cmd[q], 0, len(data[num])) + pause_str = f"with {pause_count} pause(s)" else: - pause_cmd.append(pause_setting) - for q in range(0, len(pause_cmd)): - pause_cmd[q] = "\n" + pause_cmd[q] - for num in range(2,len(data) - 2, 1): - for q in range(0,len(pause_cmd)): - if pause_cmd[q] in data[num]: - pause_count += data[num].count(pause_cmd[q], 0, len(data[num])) - pause_str = f" with {pause_count} pause(s)" + pause_str = "" # This line goes in to convert seconds to hours and minutes lines.insert(tindex + 1, f";Cura Time Estimate: {orig_hr}hr {orig_mmm}min {pause_str}") data[0] = "\n".join(lines) @@ -527,7 +530,6 @@ class DisplayInfoOnLCD(Script): except: continue data[num] = layer - setting_data = "" if bool(self.getSettingValueByKey("enable_end_message")): message_str = self.message_to_user(speed_factor) Message(title = "[Display Info on LCD] - Estimated Finish Time", text = message_str[0] + "\n\n" + message_str[1] + "\n" + message_str[2] + "\n" + message_str[3]).show() From a8849f7081ca8c84a85469f225ed3c0cf464fb79 Mon Sep 17 00:00:00 2001 From: GregValiant <64202104+GregValiant@users.noreply.github.com> Date: Fri, 10 Jan 2025 17:26:43 -0500 Subject: [PATCH 075/200] Update DisplayInfoOnLCD.py Added a condition so the pause_cmd setting box is hidden unless the 'display_option' == "display_progress". --- plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py index 38649ed6ce..399578fef5 100644 --- a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py +++ b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py @@ -210,7 +210,7 @@ class DisplayInfoOnLCD(Script): "description": "This might be M0, or M25 or M600 if Filament Change is used. If you have mixed commands then delimit them with a comma ',' (Ex: M0,M600). Spaces are not allowed.", "type": "str", "default_value": "M0", - "enabled": "countdown_to_pause and enable_countdown and display_remaining_time" + "enabled": "display_option == 'display_progress' and countdown_to_pause and enable_countdown and display_remaining_time" }, "enable_end_message": { From 02847714302bd026de3ddd7a50e8c47b1bb90ec5 Mon Sep 17 00:00:00 2001 From: GregValiant <64202104+GregValiant@users.noreply.github.com> Date: Sat, 11 Jan 2025 10:12:42 -0500 Subject: [PATCH 076/200] Update DisplayInfoOnLCD.py Split functions from Execute. Added function "Add Settings" so it also works with the "filename_layer" option. --- .../scripts/DisplayInfoOnLCD.py | 688 +++++++++--------- 1 file changed, 358 insertions(+), 330 deletions(-) diff --git a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py index 399578fef5..2177f91f3b 100644 --- a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py +++ b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py @@ -1,32 +1,35 @@ -# Display Filename and Layer on the LCD by Amanda de Castilho on August 28, 2018 -# Modified: Joshua Pope-Lewis on November 16, 2018 -# Display Progress on LCD by Mathias Lyngklip Kjeldgaard, Alexander Gee, Kimmo Toivanen, Inigo Martinez on July 31, 2019 -# Show Progress was adapted from Display Progress by Louis Wooters on January 6, 2020. His changes are included here. -#--------------------------------------------------------------- -# DisplayNameOrProgressOnLCD.py -# Cura Post-Process plugin -# Combines 'Display Filename and Layer on the LCD' with 'Display Progress' -# Combined and with additions by: GregValiant (Greg Foresi) -# Date: September 8, 2023 -# Date: March 31, 2024 - Bug fix for problem with adding M118 lines if 'Remaining Time' was not checked. -# NOTE: This combined post processor will make 'Display Filename and Layer on the LCD' and 'Display Progress' obsolete -# Description: Display Filename and Layer options: -# Status messages sent to the printer... -# - Scrolling (SCROLL_LONG_FILENAMES) if enabled in Marlin and you aren't printing a small item select this option. -# - Name: By default it will use the name generated by Cura (EG: TT_Test_Cube) - You may enter a custom name here -# - Start Num: Choose which number you prefer for the initial layer, 0 or 1 -# - Max Layer: Enabling this will show how many layers are in the entire print (EG: Layer 1 of 265!) -# - Add prefix 'Printing': Enabling this will add the prefix 'Printing' -# - Example Line on LCD: Printing Layer 0 of 395 3DBenchy -# Display Progress options: -# - Display Total Layer Count -# - Disply Time Remaining for the print -# - Time Fudge Factor % - Divide the Actual Print Time by the Cura Estimate. Enter as a percentage and the displayed time will be adjusted. This allows you to bring the displayed time closer to reality (Ex: Entering 87.5 would indicate an adjustment to 87.5% of the Cura estimate). -# - Example line on LCD: 1/479 | ET 2h13m -# - Time to Pauses changes the M117/M118 lines to countdown to the next pause as 1/479 | TP 2h36m -# - 'Add M118 Line' is available with either option. M118 will bounce the message back to a remote print server through the USB connection. -# - 'Add M73 Line' is used by 'Display Progress' only. There are options to incluse M73 P(percent) and M73 R(time remaining) -# - Enable 'Finish-Time' Message - when enabled, takes the Print Time and calculates when the print will end. It takes into account the Time Fudge Factor. The user may enter a print start time. This is also available for Display Filename. +""" +Display Filename and Layer on the LCD by Amanda de Castilho on August 28, 2018 + Modified: Joshua Pope-Lewis on November 16, 2018 + Display Progress on LCD by Mathias Lyngklip Kjeldgaard, Alexander Gee, Kimmo Toivanen, Inigo Martinez on July 31, 2019 + Show Progress was adapted from Display Progress by Louis Wooters on January 6, 2020. His changes are included here. +--------------------------------------------------------------- + DisplayNameOrProgressOnLCD.py + Cura Post-Process plugin + Combines 'Display Filename and Layer on the LCD' with 'Display Progress' + Combined and with additions by: GregValiant (Greg Foresi) + Date: September 8, 2023 + Date: March 31, 2024 - Bug fix for problem with adding M118 lines if 'Remaining Time' was not checked. + NOTE: This combined post processor will make 'Display Filename and Layer on the LCD' and 'Display Progress' obsolete + Description: Display Filename and Layer options: + Status messages sent to the printer... + - Scrolling (SCROLL_LONG_FILENAMES) if enabled in Marlin and you aren't printing a small item select this option. + - Name: By default it will use the name generated by Cura (EG: TT_Test_Cube) - You may enter a custom name here + - Start Num: Choose which number you prefer for the initial layer, 0 or 1 + - Max Layer: Enabling this will show how many layers are in the entire print (EG: Layer 1 of 265!) + - Add prefix 'Printing': Enabling this will add the prefix 'Printing' + - Example Line on LCD: Printing Layer 0 of 395 3DBenchy + Display Progress options: + - Display Total Layer Count + - Disply Time Remaining for the print + - Time Fudge Factor % - Divide the Actual Print Time by the Cura Estimate. Enter as a percentage and the displayed time will be adjusted. + This allows you to bring the displayed time closer to reality (Ex: Entering 87.5 would indicate an adjustment to 87.5% of the Cura estimate). + - Example line on LCD: 1/479 | ET 2h13m + - Time to Pauses changes the M117/M118 lines to countdown to the next pause as 1/479 | TP 2h36m + - 'Add M118 Line' is available with either option. M118 will bounce the message back to a remote print server through the USB connection. + - 'Add M73 Line' is used by 'Display Progress' only. There are options to incluse M73 P(percent) and M73 R(time remaining) + - Enable 'Finish-Time' Message - when enabled, takes the Print Time and calculates when the print will end. It uses the Time Fudge Factor. The user may enter a print start time. +""" from ..Script import Script from UM.Application import Application @@ -47,7 +50,7 @@ class DisplayInfoOnLCD(Script): self._instance.setProperty("enable_countdown", "value", enable_countdown) except: pass - + def getSettingDataString(self): return """{ "name": "Display Info on LCD", @@ -234,308 +237,301 @@ class DisplayInfoOnLCD(Script): def execute(self, data): display_option = self.getSettingValueByKey("display_option") - add_m117_line = self.getSettingValueByKey("add_m117_line") - add_m118_line = self.getSettingValueByKey("add_m118_line") - add_m118_a1 = self.getSettingValueByKey("add_m118_a1") - add_m118_p0 = self.getSettingValueByKey("add_m118_p0") - m118_str = "M118 " - m118_text = "M118 " - add_m73_line = self.getSettingValueByKey("add_m73_line") - add_m73_time = self.getSettingValueByKey("add_m73_time") - add_m73_percent = self.getSettingValueByKey("add_m73_percent") - m73_str = "" - - # This is from the original Display Filename and Layer on LCD + self.add_m117_line = self.getSettingValueByKey("add_m117_line") + self.add_m118_line = self.getSettingValueByKey("add_m118_line") + self.add_m118_a1 = self.getSettingValueByKey("add_m118_a1") + self.add_m118_p0 = self.getSettingValueByKey("add_m118_p0") + self.m118_str = "M118 " + self.m118_text = "M118 " + self.add_m73_line = self.getSettingValueByKey("add_m73_line") + self.add_m73_time = self.getSettingValueByKey("add_m73_time") + self.add_m73_percent = self.getSettingValueByKey("add_m73_percent") + self.m73_str = "" if display_option == "filename_layer": - max_layer = 0 - lcd_text = "M117 " - octo_text = "M118 " - if self.getSettingValueByKey("file_name") != "": - file_name = self.getSettingValueByKey("file_name") - else: - file_name = Application.getInstance().getPrintInformation().jobName - if self.getSettingValueByKey("addPrefixPrinting"): - lcd_text += "Printing " - octo_text += "Printing " - if not self.getSettingValueByKey("scroll"): - lcd_text += "Lay " - octo_text += "Layer " - else: - lcd_text += file_name + " - Layer " - octo_text += file_name + " - Layer " - i = self.getSettingValueByKey("startNum") - for layer in data: - display_text = lcd_text + str(i) - m118_text = octo_text + str(i) - layer_index = data.index(layer) - lines = layer.split("\n") - for line in lines: - if line.startswith(";LAYER_COUNT:"): - max_layer = line - max_layer = max_layer.split(":")[1] - if self.getSettingValueByKey("startNum") == 0: - max_layer = str(int(max_layer) - 1) - if line.startswith(";LAYER:"): - if self.getSettingValueByKey("maxlayer"): - display_text += "/" + max_layer - m118_text += "/" + max_layer - if not self.getSettingValueByKey("scroll"): - display_text += "|" + file_name - m118_text += " | " + file_name - else: - if not self.getSettingValueByKey("scroll"): - display_text += "|" + file_name + "!" - m118_text += " | " + file_name + "!" - else: - display_text += "!" - m118_text += "!" - line_index = lines.index(line) - if add_m117_line: - lines.insert(line_index + 1, display_text) - if add_m118_line: - if not (add_m118_p0 and add_m118_a1): - m118_str = m118_text - if add_m118_a1 and not add_m118_p0: - m118_str = m118_text.replace("M118 ","M118 A1 ") - if add_m118_p0 and not add_m118_a1: - m118_str = m118_text.replace("M118 ","M118 P0 ") - if add_m118_p0 and add_m118_a1: - m118_str = m118_text.replace("M118 ","M118 A1 P0 ") - lines.insert(line_index + 2, m118_str) - i += 1 - final_lines = "\n".join(lines) - data[layer_index] = final_lines - if bool(self.getSettingValueByKey("enable_end_message")): - message_str = self.message_to_user(self.getSettingValueByKey("speed_factor") / 100) - Message(title = "Display Info on LCD - Estimated Finish Time", text = message_str[0] + "\n\n" + message_str[1] + "\n" + message_str[2] + "\n" + message_str[3]).show() - return data - - # This is from 'Show Progress on LCD' - elif display_option == "display_progress": - global_stack = Application.getInstance().getGlobalContainerStack() - print_sequence = global_stack.getProperty("print_sequence", "value") - # Add the Initial Layer Height just below Layer Height in data[0] - extruder_count = global_stack.getProperty("machine_extruder_count", "value") - init_layer_hgt_line = ";Initial Layer Height: " + str(global_stack.getProperty("layer_height_0", "value")) - nozzle_size_line = ";Nozzle Size T0: " + str(global_stack.extruderList[0].getProperty("machine_nozzle_size", "value")) - filament_type = "\n;Filament type for T0: " + str(global_stack.extruderList[0].getProperty("material_type", "value")) - if extruder_count > 1: - nozzle_size_line += "\n;Nozzle Size T1: " + str(global_stack.extruderList[1].getProperty("machine_nozzle_size", "value")) - filament_type += "\n;Filament type for T1: " + str(global_stack.extruderList[1].getProperty("material_type", "value")) - lines = data[0].split("\n") - for index, line in enumerate(lines): - if line.startswith(";Layer height:"): - lines[index] += "\n" + init_layer_hgt_line + "\n" + nozzle_size_line - if line.startswith(";Filament used"): - lines[index] += filament_type - data[0] = "\n".join(lines) - # Get settings - display_total_layers = self.getSettingValueByKey("display_total_layers") - display_remaining_time = self.getSettingValueByKey("display_remaining_time") - speed_factor = self.getSettingValueByKey("speed_factor") / 100 - m73_time = False - m73_percent = False - if add_m73_line and add_m73_time: - m73_time = True - if add_m73_line and add_m73_percent: - m73_percent = True - if add_m73_line: - data[1] = "M75\n" + data[1] - data[len(data)-1] += "M77\n" - # Initialize some variables - first_layer_index = 0 - time_total = int(data[0].split(";TIME:")[1].split("\n")[0]) - number_of_layers = 0 - time_elapsed = 0 - - # If at least one of the settings is disabled, there is enough room on the display to display "layer" - first_section = data[0] - lines = first_section.split("\n") + data = self._display_filename_layer(data) + else: + data = self._display_progress(data) + return data + # This is from the original 'Display Filename and Layer on LCD' + def _display_filename_layer(self, data: str) -> str: + data[0] = self._add_stats(data) + max_layer = 0 + lcd_text = "M117 " + octo_text = "M118 " + if self.getSettingValueByKey("file_name") != "": + file_name = self.getSettingValueByKey("file_name") + else: + file_name = Application.getInstance().getPrintInformation().jobName + if self.getSettingValueByKey("addPrefixPrinting"): + lcd_text += "Printing " + octo_text += "Printing " + if not self.getSettingValueByKey("scroll"): + lcd_text += "Lay " + octo_text += "Layer " + else: + lcd_text += file_name + " - Layer " + octo_text += file_name + " - Layer " + i = self.getSettingValueByKey("startNum") + for layer in data: + display_text = lcd_text + str(i) + self.m118_text = octo_text + str(i) + layer_index = data.index(layer) + lines = layer.split("\n") for line in lines: - if line.startswith(";TIME:"): - tindex = lines.index(line) - cura_time = int(line.split(":")[1]) - print_time = cura_time * speed_factor - hhh = print_time/3600 - hr = round(hhh // 1) - mmm = round((hhh % 1) * 60) - orig_hhh = cura_time/3600 - orig_hr = round(orig_hhh // 1) - orig_mmm = math.floor((orig_hhh % 1) * 60) - if add_m118_line: lines.insert(tindex + 6,"M118 Adjusted Print Time " + str(hr) + "hr " + str(mmm) + "min") - if add_m117_line: lines.insert(tindex + 6,"M117 ET " + str(hr) + "hr " + str(mmm) + "min") - # Add M73 line at beginning - mins = int(60 * hr + mmm) - if add_m73_line and (add_m73_time or add_m73_percent): - if m73_time: - m73_str += " R{}".format(mins) - if m73_percent: - m73_str += " P0" - lines.insert(tindex + 4, "M73" + m73_str) - # If Countdown to pause is enabled then count the pauses - pause_str = "" - if bool(self.getSettingValueByKey("countdown_to_pause")): - pause_count = 0 - pause_setting = self.getSettingValueByKey("pause_cmd").upper() - if pause_setting != "": - pause_cmd = [] - if "," in pause_setting: - pause_cmd = pause_setting.split(",") - else: - pause_cmd.append(pause_setting) - for q in range(0, len(pause_cmd)): - pause_cmd[q] = "\n" + pause_cmd[q] - for num in range(2,len(data) - 2, 1): - for q in range(0,len(pause_cmd)): - if pause_cmd[q] in data[num]: - pause_count += data[num].count(pause_cmd[q], 0, len(data[num])) - pause_str = f"with {pause_count} pause(s)" - else: - pause_str = "" - # This line goes in to convert seconds to hours and minutes - lines.insert(tindex + 1, f";Cura Time Estimate: {orig_hr}hr {orig_mmm}min {pause_str}") - data[0] = "\n".join(lines) - if add_m117_line: - data[len(data)-1] += "M117 Orig Cura Est " + str(orig_hr) + "hr " + str(orig_mmm) + "min\n" - if add_m118_line: - data[len(data)-1] += "M118 Est w/FudgeFactor " + str(speed_factor * 100) + "% was " + str(hr) + "hr " + str(mmm) + "min\n" - if not display_total_layers or not display_remaining_time: - base_display_text = "layer " - else: - base_display_text = "" - layer = data[len(data)-1] - data[len(data)-1] = layer.replace(";End of Gcode" + "\n", "") - data[len(data)-1] += ";End of Gcode" + "\n" - # Search for the number of layers and the total time from the start code - for index in range(len(data)): - data_section = data[index] - # We have everything we need, save the index of the first layer and exit the loop - if ";LAYER:" in data_section: - first_layer_index = index - break - else: - for line in data_section.split("\n"): - if line.startswith(";LAYER_COUNT:"): - number_of_layers = int(line.split(":")[1]) - if print_sequence == "one_at_a_time": - number_of_layers = 1 - for lay in range(2,len(data)-1,1): - if ";LAYER:" in data[lay]: - number_of_layers += 1 - elif line.startswith(";TIME:"): - time_total = int(line.split(":")[1]) - # for all layers... - current_layer = 0 - for layer_counter in range(len(data)-2): - current_layer += 1 - layer_index = first_layer_index + layer_counter - display_text = base_display_text - display_text += str(current_layer) - # create a list where each element is a single line of code within the layer - lines = data[layer_index].split("\n") - if not ";LAYER:" in data[layer_index]: - current_layer -= 1 - continue - # add the total number of layers if this option is checked - if display_total_layers: - display_text += "/" + str(number_of_layers) - # if display_remaining_time is checked, it is calculated in this loop - if display_remaining_time: - time_remaining_display = " | ET " # initialize the time display - m = (time_total - time_elapsed) // 60 # estimated time in minutes - m *= speed_factor # correct for printing time - m = int(m) - h, m = divmod(m, 60) # convert to hours and minutes - # add the time remaining to the display_text - if h > 0: # if it's more than 1 hour left, display format = xhxxm - time_remaining_display += str(h) + "h" - if m < 10: # add trailing zero if necessary - time_remaining_display += "0" - time_remaining_display += str(m) + "m" + if line.startswith(";LAYER_COUNT:"): + max_layer = line + max_layer = max_layer.split(":")[1] + if self.getSettingValueByKey("startNum") == 0: + max_layer = str(int(max_layer) - 1) + if line.startswith(";LAYER:"): + if self.getSettingValueByKey("maxlayer"): + display_text += "/" + max_layer + self.m118_text += "/" + max_layer + if not self.getSettingValueByKey("scroll"): + display_text += "|" + file_name + self.m118_text += " | " + file_name else: - time_remaining_display += str(m) + "m" - display_text += time_remaining_display - # find time_elapsed at the end of the layer (used to calculate the remaining time of the next layer) - if not current_layer == number_of_layers: - for line_index in range(len(lines) - 1, -1, -1): - line = lines[line_index] - if line.startswith(";TIME_ELAPSED:"): - # update time_elapsed for the NEXT layer and exit the loop - time_elapsed = int(float(line.split(":")[1])) - break - # insert the text AFTER the first line of the layer (in case other scripts use ";LAYER:") - for l_index, line in enumerate(lines): - if line.startswith(";LAYER:"): - if add_m117_line: - lines[l_index] += "\nM117 " + display_text - if add_m118_line: - a1_str = "" - p0_str = "" - if add_m118_a1: - a1_str = "A1 " - if add_m118_p0: - p0_str = "P0 " - lines[l_index] += "\nM118 " + a1_str + p0_str + display_text - # add M73 line - if display_remaining_time: - mins = int(60 * h + m) - if add_m73_line and (add_m73_time or add_m73_percent): - m73_str = "" - if m73_time and display_remaining_time: - m73_str += " R{}".format(mins) - if m73_percent: - m73_str += " P" + str(round(int(current_layer) / int(number_of_layers) * 100)) - lines[l_index] += "\nM73" + m73_str - 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)) - for p_cmd in pause_cmd: - if p_cmd 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 - break - - # 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: - try: - if line.startswith("M117") and "|" in line and "P" in time_list[num]: - time_to_go = self.get_time_to_go(time_list[num]) - M117_line = line.split("|")[0] + "| TP " + time_to_go - layer = layer.replace(line, M117_line) - if line.startswith("M118") and "|" in line and "P" in time_list[num]: - time_to_go = self.get_time_to_go(time_list[num]) - M118_line = line.split("|")[0] + "| TP " + time_to_go - layer = layer.replace(line, M118_line) - except: - continue - data[num] = layer - if bool(self.getSettingValueByKey("enable_end_message")): - message_str = self.message_to_user(speed_factor) - Message(title = "[Display Info on LCD] - Estimated Finish Time", text = message_str[0] + "\n\n" + message_str[1] + "\n" + message_str[2] + "\n" + message_str[3]).show() + if not self.getSettingValueByKey("scroll"): + display_text += "|" + file_name + "!" + self.m118_text += " | " + file_name + "!" + else: + display_text += "!" + self.m118_text += "!" + line_index = lines.index(line) + if self.add_m117_line: + lines.insert(line_index + 1, display_text) + if self.add_m118_line: + if not (self.add_m118_p0 and self.add_m118_a1): + self.m118_str = self.m118_text + if self.add_m118_a1 and not self.add_m118_p0: + self.m118_str = self.m118_text.replace("M118 ","M118 A1 ") + if self.add_m118_p0 and not self.add_m118_a1: + self.m118_str = self.m118_text.replace("M118 ","M118 P0 ") + if self.add_m118_p0 and self.add_m118_a1: + self.m118_str = self.m118_text.replace("M118 ","M118 A1 P0 ") + lines.insert(line_index + 2, self.m118_str) + i += 1 + final_lines = "\n".join(lines) + data[layer_index] = final_lines + if bool(self.getSettingValueByKey("enable_end_message")): + message_str = self._message_to_user(self.getSettingValueByKey("speed_factor") / 100) + Message(title = "Display Info on LCD - Estimated Finish Time", text = message_str[0] + "\n\n" + message_str[1] + "\n" + message_str[2] + "\n" + message_str[3]).show() return data - def message_to_user(self, speed_factor: float): + # This is from 'Show Progress on LCD' + def _display_progress(self, data: str) -> str: + # Add some print settings to the start of the gcode + data[0] = self._add_stats(data) + # Get settings + print_sequence = Application.getInstance().getGlobalContainerStack().getProperty("print_sequence", "value") + display_total_layers = self.getSettingValueByKey("display_total_layers") + display_remaining_time = self.getSettingValueByKey("display_remaining_time") + speed_factor = self.getSettingValueByKey("speed_factor") / 100 + m73_time = False + m73_percent = False + if self.add_m73_line and self.add_m73_time: + m73_time = True + if self.add_m73_line and self.add_m73_percent: + m73_percent = True + if self.add_m73_line: + data[1] = "M75\n" + data[1] + data[len(data)-1] += "M77\n" + # Initialize some variables + first_layer_index = 0 + time_total = int(data[0].split(";TIME:")[1].split("\n")[0]) + number_of_layers = 0 + time_elapsed = 0 + + # If at least one of the settings is disabled, there is enough room on the display to display "layer" + first_section = data[0] + lines = first_section.split("\n") + for line in lines: + if line.startswith(";TIME:"): + tindex = lines.index(line) + cura_time = int(line.split(":")[1]) + print_time = cura_time * speed_factor + hhh = print_time/3600 + hr = round(hhh // 1) + mmm = round((hhh % 1) * 60) + orig_hhh = cura_time/3600 + orig_hr = round(orig_hhh // 1) + orig_mmm = math.floor((orig_hhh % 1) * 60) + if self.add_m118_line: + lines.insert(len(lines) - 2, f"M118 Adjusted Print Time: {hr} hr {mmm} min") + if self.add_m117_line: + lines.insert(len(lines) - 2, f"M117 ET {hr} hr {mmm} min") + # Add M73 line at beginning + mins = int(60 * hr + mmm) + if self.add_m73_line and (self.add_m73_time or self.add_m73_percent): + if m73_time: + self.m73_str += " R{}".format(mins) + if m73_percent: + self.m73_str += " P0" + lines.insert(tindex + 4, "M73" + self.m73_str) + # If Countdown to pause is enabled then count the pauses + pause_str = "" + if bool(self.getSettingValueByKey("countdown_to_pause")): + pause_count = 0 + pause_setting = self.getSettingValueByKey("pause_cmd").upper() + if pause_setting != "": + pause_cmd = [] + if "," in pause_setting: + pause_cmd = pause_setting.split(",") + else: + pause_cmd.append(pause_setting) + for q in range(0, len(pause_cmd)): + pause_cmd[q] = "\n" + pause_cmd[q] + for num in range(2,len(data) - 2, 1): + for q in range(0,len(pause_cmd)): + if pause_cmd[q] in data[num]: + pause_count += data[num].count(pause_cmd[q], 0, len(data[num])) + pause_str = f"with {pause_count} pause(s)" + else: + pause_str = "" + # This line goes in to convert seconds to hours and minutes + lines.insert(tindex + 1, f";Cura Time Estimate: {orig_hr}hr {orig_mmm}min {pause_str}") + data[0] = "\n".join(lines) + if self.add_m117_line: + data[len(data)-1] += "M117 Orig Cura Est " + str(orig_hr) + "hr " + str(orig_mmm) + "min\n" + if self.add_m118_line: + data[len(data)-1] += "M118 Est w/FudgeFactor " + str(speed_factor * 100) + "% was " + str(hr) + "hr " + str(mmm) + "min\n" + if not display_total_layers or not display_remaining_time: + base_display_text = "layer " + else: + base_display_text = "" + layer = data[len(data)-1] + data[len(data)-1] = layer.replace(";End of Gcode" + "\n", "") + data[len(data)-1] += ";End of Gcode" + "\n" + # Search for the number of layers and the total time from the start code + for index in range(len(data)): + data_section = data[index] + # We have everything we need, save the index of the first layer and exit the loop + if ";LAYER:" in data_section: + first_layer_index = index + break + else: + for line in data_section.split("\n"): + if line.startswith(";LAYER_COUNT:"): + number_of_layers = int(line.split(":")[1]) + if print_sequence == "one_at_a_time": + number_of_layers = 1 + for lay in range(2,len(data)-1,1): + if ";LAYER:" in data[lay]: + number_of_layers += 1 + elif line.startswith(";TIME:"): + time_total = int(line.split(":")[1]) + # for all layers... + current_layer = 0 + for layer_counter in range(len(data)-2): + current_layer += 1 + layer_index = first_layer_index + layer_counter + display_text = base_display_text + display_text += str(current_layer) + # create a list where each element is a single line of code within the layer + lines = data[layer_index].split("\n") + if not ";LAYER:" in data[layer_index]: + current_layer -= 1 + continue + # add the total number of layers if this option is checked + if display_total_layers: + display_text += "/" + str(number_of_layers) + # if display_remaining_time is checked, it is calculated in this loop + if display_remaining_time: + time_remaining_display = " | ET " # initialize the time display + m = (time_total - time_elapsed) // 60 # estimated time in minutes + m *= speed_factor # correct for printing time + m = int(m) + h, m = divmod(m, 60) # convert to hours and minutes + # add the time remaining to the display_text + if h > 0: # if it's more than 1 hour left, display format = xhxxm + time_remaining_display += str(h) + "h" + if m < 10: # add trailing zero if necessary + time_remaining_display += "0" + time_remaining_display += str(m) + "m" + else: + time_remaining_display += str(m) + "m" + display_text += time_remaining_display + # find time_elapsed at the end of the layer (used to calculate the remaining time of the next layer) + if not current_layer == number_of_layers: + for line_index in range(len(lines) - 1, -1, -1): + line = lines[line_index] + if line.startswith(";TIME_ELAPSED:"): + # update time_elapsed for the NEXT layer and exit the loop + time_elapsed = int(float(line.split(":")[1])) + break + # insert the text AFTER the first line of the layer (in case other scripts use ";LAYER:") + for l_index, line in enumerate(lines): + if line.startswith(";LAYER:"): + if self.add_m117_line: + lines[l_index] += "\nM117 " + display_text + if self.add_m118_line: + a1_str = "" + p0_str = "" + if self.add_m118_a1: + a1_str = "A1 " + if self.add_m118_p0: + p0_str = "P0 " + lines[l_index] += "\nM118 " + a1_str + p0_str + display_text + # add M73 line + if display_remaining_time: + mins = int(60 * h + m) + if self.add_m73_line and (self.add_m73_time or self.add_m73_percent): + self.m73_str = "" + if m73_time and display_remaining_time: + self.m73_str += " R{}".format(mins) + if m73_percent: + self.m73_str += " P" + str(round(int(current_layer) / int(number_of_layers) * 100)) + lines[l_index] += "\nM73" + self.m73_str + 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)) + for p_cmd in pause_cmd: + if p_cmd 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 + break + + # 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: + try: + if line.startswith("M117") and "|" in line and "P" in time_list[num]: + time_to_go = self._get_time_to_go(time_list[num]) + M117_line = line.split("|")[0] + "| TP " + time_to_go + layer = layer.replace(line, M117_line) + if line.startswith("M118") and "|" in line and "P" in time_list[num]: + time_to_go = self._get_time_to_go(time_list[num]) + M118_line = line.split("|")[0] + "| TP " + time_to_go + layer = layer.replace(line, M118_line) + except: + continue + data[num] = layer + if bool(self.getSettingValueByKey("enable_end_message")): + message_str = self._message_to_user(speed_factor) + Message(title = "[Display Info on LCD] - Estimated Finish Time", text = message_str[0] + "\n\n" + message_str[1] + "\n" + message_str[2] + "\n" + message_str[3]).show() + return data + + def _message_to_user(self, speed_factor: float): # Message the user of the projected finish time of the print print_time = Application.getInstance().getPrintInformation().currentPrintTime.getDisplayString(DurationFormat.Format.ISO8601) print_start_time = self.getSettingValueByKey("print_start_time") @@ -600,8 +596,8 @@ class DisplayInfoOnLCD(Script): adjusted_str = "Adjusted Time Estimate..." + str(time_change) finish_str = week_day + " " + str(mo_str) + " " + str(new_time.strftime("%d")) + ", " + str(new_time.strftime("%Y")) + " at " + str(show_hr) + str(new_time.strftime("%M")) + str(show_ampm) return finish_str, estimate_str, adjusted_str, print_start_str - - def get_time_to_go(self, time_str: str): + + def _get_time_to_go(self, time_str: str): alt_time = time_str[:-1] hhh = int(float(alt_time) / 3600) if hhh > 0: @@ -613,4 +609,36 @@ class DisplayInfoOnLCD(Script): mmm = str(round(mmm)) + "m" time_to_go = str(hhr) + str(mmm) if hhr == "": time_to_go = time_to_go + str(sss) + "s" - return time_to_go \ No newline at end of file + return time_to_go + + def _add_stats(self, data: str) -> str: + global_stack = Application.getInstance().getGlobalContainerStack() + # Create a list of the models in the file + model_list = [] + for mdex, layer in enumerate(data): + layer = data[mdex].split("\n") + for line in layer: + if line.startswith(";MESH:") and "NONMESH" not in line: + model_name = line.split(":")[1] + if not model_name in model_list: + model_list.append(model_name) + # Add the Initial Layer Height just below Layer Height in data[0]model_list = [] + extruder_count = global_stack.getProperty("machine_extruder_count", "value") + init_layer_hgt_line = ";Initial Layer Height: " + str(global_stack.getProperty("layer_height_0", "value")) + nozzle_size_line = ";Nozzle Size (T0): " + str(global_stack.extruderList[0].getProperty("machine_nozzle_size", "value")) + filament_type = "\n;Filament Type (T0): " + str(global_stack.extruderList[0].getProperty("material_type", "value")) + print_temperature_line = ";Print Temperature (T0): " + str(global_stack.extruderList[0].getProperty("material_print_temperature", "value")) + if extruder_count > 1: + nozzle_size_line += "\n;Nozzle Size (T1): " + str(global_stack.extruderList[1].getProperty("machine_nozzle_size", "value")) + filament_type += "\n;Filament type (T1): " + str(global_stack.extruderList[1].getProperty("material_type", "value")) + print_temperature_line += "\n;Print Temperature (T1): " + str(global_stack.extruderList[1].getProperty("material_print_temperature", "value")) + lines = data[0].split("\n") + for index, line in enumerate(lines): + if line.startswith(";Layer height:"): + lines[index] += "\n" + init_layer_hgt_line + "\n" + nozzle_size_line + "\n" + print_temperature_line + if line.startswith(";Filament used"): + lines[index] += filament_type + if "MINX" in line or "MIN.X" in line: + # Add the model list + lines[index - 1] += f"\n;Model List: {str(model_list)}" + return "\n".join(lines) \ No newline at end of file From 16a28fe383b9dd9e0e48f3b3623c336f62532bd6 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Tue, 14 Jan 2025 10:11:22 -0500 Subject: [PATCH 077/200] Revert retraction_prime_speed to inherited parametric value --- resources/definitions/voron2_base.def.json | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 81e2c48783..74dfe20cec 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -87,11 +87,7 @@ }, "retraction_hop_enabled": { "default_value": true }, "retraction_hop_only_when_collides": { "default_value": true }, - "retraction_prime_speed": - { - "maximum_value_warning": "machine_max_feedrate_e - 10", - "value": "math.ceil(retraction_speed * 0.4)" - }, + "retraction_prime_speed": { "maximum_value_warning": "machine_max_feedrate_e - 10" }, "retraction_retract_speed": { "maximum_value_warning": "machine_max_feedrate_e - 10" }, "retraction_speed": { From 75956976e74b135b6eb92dbbf4c1ce4aee51e34e Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Mon, 20 Jan 2025 10:26:22 -0500 Subject: [PATCH 078/200] Increase infill line width --- resources/definitions/voron2_base.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 74dfe20cec..400c28642e 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -39,7 +39,7 @@ "gantry_height": { "value": 30 }, "infill_before_walls": { "default_value": false }, "infill_enable_travel_optimization": { "default_value": true }, - "infill_line_width": { "value": "machine_nozzle_size * 1.125" }, + "infill_line_width": { "value": "machine_nozzle_size * 1.5" }, "initial_layer_line_width_factor": { "default_value": 125.0 }, "layer_height_0": { "resolve": "max(machine_nozzle_size / 2, min(extruderValues('layer_height')))" }, "machine_acceleration": { "default_value": 5000 }, From 0ab10ddf38ab8116fc0b6b518147381ab0782213 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Mon, 20 Jan 2025 11:28:45 -0500 Subject: [PATCH 079/200] Set default infill for voron --- resources/definitions/voron2_base.def.json | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 400c28642e..49dfcc98ca 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -40,6 +40,7 @@ "infill_before_walls": { "default_value": false }, "infill_enable_travel_optimization": { "default_value": true }, "infill_line_width": { "value": "machine_nozzle_size * 1.5" }, + "infill_pattern": { "value": "'zigzag' if infill_sparse_density > 80 else 'gyroid'" }, "initial_layer_line_width_factor": { "default_value": 125.0 }, "layer_height_0": { "resolve": "max(machine_nozzle_size / 2, min(extruderValues('layer_height')))" }, "machine_acceleration": { "default_value": 5000 }, From f6478ccd745ef61639bf63f93d6086f32012cfe6 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Mon, 20 Jan 2025 11:33:10 -0500 Subject: [PATCH 080/200] Reapply "Test acceleration control" This reverts commit 072c52408900e400f158c9053e7d61bc2d806b94. --- resources/definitions/voron2_base.def.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 49dfcc98ca..11f654a6a2 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -21,6 +21,11 @@ }, "overrides": { + "acceleration_enabled": { "default_value": true }, + "acceleration_layer_0": { "value": 500 }, + "acceleration_print": { "default_value": 5000 }, + "acceleration_travel": { "value": 7000 }, + "acceleration_wall_0": { "value": 3000 }, "adhesion_type": { "default_value": "skirt", From a70807ab73a0314f146b1de8d69137a2a10d4f84 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Mon, 20 Jan 2025 11:39:33 -0500 Subject: [PATCH 081/200] Merge parametric accelerations for voron --- resources/definitions/voron2_base.def.json | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 11f654a6a2..af244466e5 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -22,10 +22,12 @@ "overrides": { "acceleration_enabled": { "default_value": true }, - "acceleration_layer_0": { "value": 500 }, + "acceleration_layer_0": { "value": "math.ceil(acceleration_print / 10)" }, "acceleration_print": { "default_value": 5000 }, - "acceleration_travel": { "value": 7000 }, - "acceleration_wall_0": { "value": 3000 }, + "acceleration_roofing": { "value": "math.ceil(acceleration_topbottom * 3000 / 5000) " }, + "acceleration_support": { "value": "math.ceil(acceleration_print / 2)" }, + "acceleration_travel": { "value": "acceleration_print if magic_spiralize else min(math.ceil(acceleration_print * 7000 / 5000), round((machine_max_acceleration_x + machine_max_acceleration_y) / 2, -2))" }, + "acceleration_wall_0": { "value": "math.ceil(acceleration_wall * 3000 / 5000)" }, "adhesion_type": { "default_value": "skirt", From 5cffb9691816d0f472963eebb763a4f8cdc8e0c2 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Mon, 20 Jan 2025 11:40:06 -0500 Subject: [PATCH 082/200] Revert "Revert default machine_max_acceleration for new users" This reverts commit 367cf9ebd106e326caaa5b4be05daacf0d4e1d56. --- resources/definitions/voron2_base.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index af244466e5..7854ddc673 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -69,8 +69,8 @@ }, "machine_heated_bed": { "default_value": true }, "machine_height": { "default_value": 250 }, - "machine_max_acceleration_x": { "default_value": 3000 }, - "machine_max_acceleration_y": { "default_value": 3000 }, + "machine_max_acceleration_x": { "default_value": 20000 }, + "machine_max_acceleration_y": { "default_value": 20000 }, "machine_max_acceleration_z": { "default_value": 500 }, "machine_max_feedrate_e": { "default_value": 120 }, "machine_max_feedrate_x": { "value": 500 }, From 8826be3362677b95d787768b6d4be74f5161d0c9 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Mon, 20 Jan 2025 12:03:16 -0500 Subject: [PATCH 083/200] Remove "alternate_extra_perimeter" --- resources/definitions/voron2_base.def.json | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 7854ddc673..4914eb1b66 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -33,7 +33,6 @@ "default_value": "skirt", "value": "brim if draft_shield_enabled else skirt" }, - "alternate_extra_perimeter": { "default_value": true }, "bridge_fan_speed_2": { "resolve": "max(cool_fan_speed, 50)" }, "bridge_fan_speed_3": { "resolve": "max(cool_fan_speed, 20)" }, "bridge_settings_enabled": { "default_value": true }, From b35752a076ce9286e51be3431689e5076f71b9c7 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Mon, 20 Jan 2025 14:34:03 -0500 Subject: [PATCH 084/200] Enable elephant's foot compensation --- resources/definitions/voron2_base.def.json | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 4914eb1b66..d104a2f287 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -117,6 +117,7 @@ "wall_overhang_angle": { "default_value": 75 }, "wall_overhang_speed_factor": { "default_value": 50 }, "wall_thickness": { "value": "wall_line_width_0 + wall_line_width_x" }, + "xy_offset_layer_0": { "value": "xy_offset - 0.1" }, "z_seam_corner": { "value": "'z_seam_corner_weighted'" }, "z_seam_relative": { "value": "True" }, "zig_zaggify_infill": { "value": true }, From 62a3b6bebbf690851694942a6acac867a050cbc4 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Wed, 22 Jan 2025 15:14:49 -0500 Subject: [PATCH 085/200] Fix capitalization for PRINT_START and PRINT_END macros --- resources/definitions/voron2_base.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index d104a2f287..5f8461b6f9 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -51,7 +51,7 @@ "layer_height_0": { "resolve": "max(machine_nozzle_size / 2, min(extruderValues('layer_height')))" }, "machine_acceleration": { "default_value": 5000 }, "machine_depth": { "default_value": 250 }, - "machine_end_gcode": { "default_value": "print_end" }, + "machine_end_gcode": { "default_value": "PRINT_END" }, "machine_endstop_positive_direction_x": { "default_value": true }, "machine_endstop_positive_direction_y": { "default_value": true }, "machine_endstop_positive_direction_z": { "default_value": false }, @@ -76,7 +76,7 @@ "machine_max_feedrate_y": { "value": 500 }, "machine_max_feedrate_z": { "default_value": 40 }, "machine_name": { "default_value": "VORON2" }, - "machine_start_gcode": { "default_value": ";Nozzle diameter = {machine_nozzle_size}\n;Filament type = {material_type}\n;Filament name = {material_name}\n;Filament weight = {filament_weight}\n; M190 S{material_bed_temperature_layer_0}\n; M109 S{material_print_temperature_layer_0}\nprint_start EXTRUDER={material_print_temperature_layer_0} BED={material_bed_temperature_layer_0} CHAMBER={build_volume_temperature}" }, + "machine_start_gcode": { "default_value": ";Nozzle diameter = {machine_nozzle_size}\n;Filament type = {material_type}\n;Filament name = {material_name}\n;Filament weight = {filament_weight}\n; M190 S{material_bed_temperature_layer_0}\n; M109 S{material_print_temperature_layer_0}\nPRINT_START EXTRUDER={material_print_temperature_layer_0} BED={material_bed_temperature_layer_0} CHAMBER={build_volume_temperature}" }, "machine_steps_per_mm_x": { "default_value": 80 }, "machine_steps_per_mm_y": { "default_value": 80 }, "machine_steps_per_mm_z": { "default_value": 400 }, From 017a05fff7067a4f8740c482dc2dd6da1cc0ddc1 Mon Sep 17 00:00:00 2001 From: GregValiant <64202104+GregValiant@users.noreply.github.com> Date: Sun, 2 Feb 2025 08:02:59 -0500 Subject: [PATCH 086/200] Update DisplayInfoOnLCD.py Changed the fialment type 'get' from: 'getProperty' to 'material.getMetaDataEntry' --- .../PostProcessingPlugin/scripts/DisplayInfoOnLCD.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py index 2177f91f3b..b19f222f2a 100644 --- a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py +++ b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py @@ -202,7 +202,7 @@ class DisplayInfoOnLCD(Script): "countdown_to_pause": { "label": "Countdown to Pauses", - "description": "This must run AFTER any script that adds a pause. Instead of the remaining print time the LCD will show the estimated time to the next layer that has a pause (TP).", + "description": "This must run AFTER any script that adds a pause. Instead of the remaining print time the LCD will show the estimated time to the next layer that has a pause (TP). Countdown to Pause is not available when in One-at-a-Time' mode.", "type": "bool", "default_value": false, "enabled": "display_option == 'display_progress' and enable_countdown and display_remaining_time" @@ -252,7 +252,8 @@ class DisplayInfoOnLCD(Script): else: data = self._display_progress(data) return data - # This is from the original 'Display Filename and Layer on LCD' + + # This is from the original 'Display Filename and Layer on LCD' def _display_filename_layer(self, data: str) -> str: data[0] = self._add_stats(data) max_layer = 0 @@ -385,7 +386,7 @@ class DisplayInfoOnLCD(Script): for q in range(0,len(pause_cmd)): if pause_cmd[q] in data[num]: pause_count += data[num].count(pause_cmd[q], 0, len(data[num])) - pause_str = f"with {pause_count} pause(s)" + pause_str = f"with {pause_count} pause" + ("s" if pause_count > 1 else "") else: pause_str = "" # This line goes in to convert seconds to hours and minutes @@ -626,11 +627,11 @@ class DisplayInfoOnLCD(Script): extruder_count = global_stack.getProperty("machine_extruder_count", "value") init_layer_hgt_line = ";Initial Layer Height: " + str(global_stack.getProperty("layer_height_0", "value")) nozzle_size_line = ";Nozzle Size (T0): " + str(global_stack.extruderList[0].getProperty("machine_nozzle_size", "value")) - filament_type = "\n;Filament Type (T0): " + str(global_stack.extruderList[0].getProperty("material_type", "value")) + filament_type = "\n;Filament Type (T0): " + str(global_stack.extruderList[0].material.getMetaDataEntry("material", "")) print_temperature_line = ";Print Temperature (T0): " + str(global_stack.extruderList[0].getProperty("material_print_temperature", "value")) if extruder_count > 1: nozzle_size_line += "\n;Nozzle Size (T1): " + str(global_stack.extruderList[1].getProperty("machine_nozzle_size", "value")) - filament_type += "\n;Filament type (T1): " + str(global_stack.extruderList[1].getProperty("material_type", "value")) + filament_type += "\n;Filament type (T1): " + str(global_stack.extruderList[1].material.getMetaDataEntry("material", "")) print_temperature_line += "\n;Print Temperature (T1): " + str(global_stack.extruderList[1].getProperty("material_print_temperature", "value")) lines = data[0].split("\n") for index, line in enumerate(lines): From aa3dc59fd68e61973beb92f43c3304da9be0c1a6 Mon Sep 17 00:00:00 2001 From: Christian Kunis Date: Tue, 18 Feb 2025 07:11:05 -0500 Subject: [PATCH 087/200] Fix string syntax for adhesion_type --- resources/definitions/voron2_base.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json index 5f8461b6f9..0c2ba09095 100644 --- a/resources/definitions/voron2_base.def.json +++ b/resources/definitions/voron2_base.def.json @@ -31,7 +31,7 @@ "adhesion_type": { "default_value": "skirt", - "value": "brim if draft_shield_enabled else skirt" + "value": "'brim' if draft_shield_enabled else 'skirt'" }, "bridge_fan_speed_2": { "resolve": "max(cool_fan_speed, 50)" }, "bridge_fan_speed_3": { "resolve": "max(cool_fan_speed, 20)" }, From 416b159a7ea3c82516aaf88cf6cd145fb1d2e921 Mon Sep 17 00:00:00 2001 From: GregValiant <64202104+GregValiant@users.noreply.github.com> Date: Sat, 22 Mar 2025 11:18:30 -0400 Subject: [PATCH 088/200] Update DisplayInfoOnLCD.py Added the "time to pause" to the user message. Update DisplayInfoOnLCD.py update --- .../scripts/DisplayInfoOnLCD.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py index b19f222f2a..49222882bc 100644 --- a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py +++ b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py @@ -488,8 +488,8 @@ class DisplayInfoOnLCD(Script): data[layer_index] = "\n".join(lines) # If enabled then change the ET to TP for 'Time To Pause' + time_list = [] if bool(self.getSettingValueByKey("countdown_to_pause")): - time_list = [] time_list.append("0") time_list.append("0") this_time = 0 @@ -528,11 +528,11 @@ class DisplayInfoOnLCD(Script): continue data[num] = layer if bool(self.getSettingValueByKey("enable_end_message")): - message_str = self._message_to_user(speed_factor) + message_str = self._message_to_user(data, speed_factor, pause_cmd) Message(title = "[Display Info on LCD] - Estimated Finish Time", text = message_str[0] + "\n\n" + message_str[1] + "\n" + message_str[2] + "\n" + message_str[3]).show() return data - def _message_to_user(self, speed_factor: float): + def _message_to_user(self, data: str, speed_factor: float, pause_cmd: str) -> str: # Message the user of the projected finish time of the print print_time = Application.getInstance().getPrintInformation().currentPrintTime.getDisplayString(DurationFormat.Format.ISO8601) print_start_time = self.getSettingValueByKey("print_start_time") @@ -596,6 +596,15 @@ class DisplayInfoOnLCD(Script): estimate_str = "Cura Time Estimate.........." + str(print_time) adjusted_str = "Adjusted Time Estimate..." + str(time_change) finish_str = week_day + " " + str(mo_str) + " " + str(new_time.strftime("%d")) + ", " + str(new_time.strftime("%Y")) + " at " + str(show_hr) + str(new_time.strftime("%M")) + str(show_ampm) + + # If there are pauses and if countdown is enabled, then add the time-to-pause to the message. + if bool(self.getSettingValueByKey("countdown_to_pause")): + num = 1 + for layer in data: + for p_cmd in pause_cmd: + if p_cmd in layer or "Do the actual pause" in layer: + adjusted_str += "\n" + self._get_time_to_go(layer.split("TIME_ELAPSED:")[1].split("\n")[0]) + " ET from start to pause #" + str(num) + num += 1 return finish_str, estimate_str, adjusted_str, print_start_str def _get_time_to_go(self, time_str: str): @@ -623,7 +632,7 @@ class DisplayInfoOnLCD(Script): model_name = line.split(":")[1] if not model_name in model_list: model_list.append(model_name) - # Add the Initial Layer Height just below Layer Height in data[0]model_list = [] + # Add some settings to data[0] extruder_count = global_stack.getProperty("machine_extruder_count", "value") init_layer_hgt_line = ";Initial Layer Height: " + str(global_stack.getProperty("layer_height_0", "value")) nozzle_size_line = ";Nozzle Size (T0): " + str(global_stack.extruderList[0].getProperty("machine_nozzle_size", "value")) From ee5c37bd808d4e15dea6306b5deaf0038f9885df Mon Sep 17 00:00:00 2001 From: GregValiant <64202104+GregValiant@users.noreply.github.com> Date: Sun, 23 Mar 2025 07:09:04 -0400 Subject: [PATCH 089/200] Update DisplayInfoOnLCD.py Fixed the m118_str/m118_text confusion. --- .../scripts/DisplayInfoOnLCD.py | 24 +++++++------------ 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py index 49222882bc..6315e28af1 100644 --- a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py +++ b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py @@ -241,7 +241,6 @@ class DisplayInfoOnLCD(Script): self.add_m118_line = self.getSettingValueByKey("add_m118_line") self.add_m118_a1 = self.getSettingValueByKey("add_m118_a1") self.add_m118_p0 = self.getSettingValueByKey("add_m118_p0") - self.m118_str = "M118 " self.m118_text = "M118 " self.add_m73_line = self.getSettingValueByKey("add_m73_line") self.add_m73_time = self.getSettingValueByKey("add_m73_time") @@ -302,15 +301,11 @@ class DisplayInfoOnLCD(Script): if self.add_m117_line: lines.insert(line_index + 1, display_text) if self.add_m118_line: - if not (self.add_m118_p0 and self.add_m118_a1): - self.m118_str = self.m118_text - if self.add_m118_a1 and not self.add_m118_p0: - self.m118_str = self.m118_text.replace("M118 ","M118 A1 ") - if self.add_m118_p0 and not self.add_m118_a1: - self.m118_str = self.m118_text.replace("M118 ","M118 P0 ") - if self.add_m118_p0 and self.add_m118_a1: - self.m118_str = self.m118_text.replace("M118 ","M118 A1 P0 ") - lines.insert(line_index + 2, self.m118_str) + if self.add_m118_a1: + self.m118_text = self.m118_text.replace("M118 ","M118 A1 ") + if self.add_m118_p0: + self.m118_text = self.m118_text.replace("M118 ","M118 P0 ") + lines.insert(line_index + 2, self.m118_text) i += 1 final_lines = "\n".join(lines) data[layer_index] = final_lines @@ -466,13 +461,12 @@ class DisplayInfoOnLCD(Script): if self.add_m117_line: lines[l_index] += "\nM117 " + display_text if self.add_m118_line: - a1_str = "" - p0_str = "" + m118_str = "\nM118 " if self.add_m118_a1: - a1_str = "A1 " + m118_str += "A1 " if self.add_m118_p0: - p0_str = "P0 " - lines[l_index] += "\nM118 " + a1_str + p0_str + display_text + m118_str += "P0 " + lines[l_index] += m118_str + display_text # add M73 line if display_remaining_time: mins = int(60 * h + m) From f0d198507a6acd7d1852eb06cecc8813eab96f43 Mon Sep 17 00:00:00 2001 From: GregValiant <64202104+GregValiant@users.noreply.github.com> Date: Sun, 23 Mar 2025 07:30:23 -0400 Subject: [PATCH 090/200] Update DisplayInfoOnLCD.py Requested changes --- .../scripts/DisplayInfoOnLCD.py | 40 +++++++++++-------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py index 6315e28af1..85b9744856 100644 --- a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py +++ b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py @@ -38,7 +38,6 @@ import time import datetime import math from UM.Message import Message -import re class DisplayInfoOnLCD(Script): @@ -48,7 +47,11 @@ class DisplayInfoOnLCD(Script): if Application.getInstance().getGlobalContainerStack().getProperty("print_sequence", "value") == "all_at_once": enable_countdown = True self._instance.setProperty("enable_countdown", "value", enable_countdown) - except: + except AttributeError: + # Handle cases where the global container stack or its properties are not accessible + pass + except KeyError: + # Handle cases where the "print_sequence" property is missing pass def getSettingDataString(self): @@ -461,12 +464,12 @@ class DisplayInfoOnLCD(Script): if self.add_m117_line: lines[l_index] += "\nM117 " + display_text if self.add_m118_line: - m118_str = "\nM118 " + m118_text = "\nM118 " if self.add_m118_a1: - m118_str += "A1 " + m118_text += "A1 " if self.add_m118_p0: - m118_str += "P0 " - lines[l_index] += m118_str + display_text + m118_text += "P0 " + lines[l_index] += m118_text + display_text # add M73 line if display_remaining_time: mins = int(60 * h + m) @@ -589,7 +592,7 @@ class DisplayInfoOnLCD(Script): print_start_str = "Print Start Time.................Now" estimate_str = "Cura Time Estimate.........." + str(print_time) adjusted_str = "Adjusted Time Estimate..." + str(time_change) - finish_str = week_day + " " + str(mo_str) + " " + str(new_time.strftime("%d")) + ", " + str(new_time.strftime("%Y")) + " at " + str(show_hr) + str(new_time.strftime("%M")) + str(show_ampm) + finish_str = f"{week_day} {mo_str} {new_time.strftime('%d')}, {new_time.strftime('%Y')} at {show_hr}{new_time.strftime('%M')}{show_ampm}" # If there are pauses and if countdown is enabled, then add the time-to-pause to the message. if bool(self.getSettingValueByKey("countdown_to_pause")): @@ -602,17 +605,20 @@ class DisplayInfoOnLCD(Script): return finish_str, estimate_str, adjusted_str, print_start_str def _get_time_to_go(self, time_str: str): + """ + Converts a time string in seconds to a human-readable format (e.g., "2h30m"). + :param time_str: The time string in seconds. + :return: A formatted string representing the time. + """ alt_time = time_str[:-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" + total_seconds = float(alt_time) + hours = int(total_seconds // 3600) + minutes = int((total_seconds % 3600) // 60) + seconds = int(total_seconds % 60) + time_to_go = f"{hours}h" if hours > 0 else "" + time_to_go += f"{minutes}m" + if hours == 0: + time_to_go += f"{seconds}s" return time_to_go def _add_stats(self, data: str) -> str: From f6469032c66e7797d585b01ae594e577b57b754c Mon Sep 17 00:00:00 2001 From: GregValiant <64202104+GregValiant@users.noreply.github.com> Date: Sun, 6 Apr 2025 11:06:47 -0400 Subject: [PATCH 091/200] Create ZHopOnTravel.py New script to customize Z-hops in a gcode file. --- .../scripts/ZHopOnTravel.py | 544 ++++++++++++++++++ 1 file changed, 544 insertions(+) create mode 100644 plugins/PostProcessingPlugin/scripts/ZHopOnTravel.py diff --git a/plugins/PostProcessingPlugin/scripts/ZHopOnTravel.py b/plugins/PostProcessingPlugin/scripts/ZHopOnTravel.py new file mode 100644 index 0000000000..82a60239be --- /dev/null +++ b/plugins/PostProcessingPlugin/scripts/ZHopOnTravel.py @@ -0,0 +1,544 @@ +""" + By GregValiant (Greg Foresi) July of 2024 + Insert Z-hops for travel moves regardless of retraction. The 'Layer Range' (or comma delimited 'Layer List'), 'Minimum Travel Distance' and the 'Hop-Height' are user defined. + This script is compatible with Z-hops enabled in Cura. If Z-hops are enabled: There will occasionally be a hop on top of a hop, but the 'resume Z height' will be correct. + It is not necessary to have "retractions" enabled. If retractions are disabled in Cura you may elect to have this script add retractions. The Cura retraction distance and speeds are used. + + Compatibility: + Multi-Extruder printers: NOTE - The retraction settings for a multi-extruder printer are always taken from Extruder 1 (T0). + There is support for: + Absolute and Relative Extrusion + Firmware Retraction + Extra Prime Amount > 0 + Adaptive Layers + G2/G3 arc moves are supported but are treated as straight line moves. + + Incompatibility: + "One at a Time" mode is not supported + + Please Note: + This is a slow running post processor as it must check the cumulative distances of all travel moves (G0 moves) in the range of layers. +""" + +from UM.Application import Application +from ..Script import Script +import re +from UM.Message import Message +import math +from UM.Logger import Logger + +class ZHopOnTravel(Script): + + def getSettingDataString(self): + return """{ + "name": "Z-Hop on Travel", + "key": "ZHopOnTravel", + "metadata": {}, + "version": 2, + "settings": { + "zhop_travel_enabled": { + "label": "Enable script", + "description": "Enables the script so it will run. 'One-at-a-Time' is not supported. This script is slow running because it must check the length of all travel moves in your layer range. ", + "type": "bool", + "default_value": true, + "enabled": true + }, + "list_or_range": + { + "label": "Layer List or Range", + "description": "Using a list allows you to call out one or more individual layers delimited by commas (Ex: 23,29,35). A layer range has a start layer and an end layer.", + "type": "enum", + "options": { + "range_of_layers": "Range of Layers", + "list_of_layers": "Layer List" }, + "default_value": "range_of_layers", + "enabled": "zhop_travel_enabled" + }, + "layers_of_interest": + { + "label": "List of Layers", + "description": "Use the Cura preview layer numbers. Enter 'individual layer' numbers delimited by commas. Spaces are not allowed.", + "type": "str", + "default_value": "10,28,31,54", + "enabled": "zhop_travel_enabled and list_or_range == 'list_of_layers'" + }, + "start_layer": { + "label": "Start Layer", + "description": "Layer number to start the changes at. Use the Cura preview layer numbers. The changes will start at the start of the layer.", + "unit": "Lay# ", + "type": "int", + "default_value": 1, + "minimum_value": "1", + "enabled": "zhop_travel_enabled and list_or_range == 'range_of_layers'" + }, + "end_layer": { + "label": "End Layer", + "description": "Enter '-1' to indicate the top layer, or enter a specific Layer number from the Cura preview. The changes will end at the end of this layer.", + "unit": "Lay# ", + "type": "int", + "default_value": -1, + "minimum_value": "-1", + "enabled": "zhop_travel_enabled and list_or_range == 'range_of_layers'" + }, + "hop_height": { + "label": "Z-Hop Height", + "description": "I refuse to provide a description for this.", + "unit": "mm ", + "type": "float", + "default_value": 0.5, + "minimum_value": "0", + "maximum_value_warning": 5, + "enabled": "zhop_travel_enabled" + }, + "min_travel_dist": { + "label": "Minimum Travel Distance", + "description": "Travel distances longer than this will cause a Z-Hop to occur.", + "unit": "mm ", + "type": "int", + "default_value": 10, + "minimum_value": "1", + "maximum_value": "200", + "enabled": "zhop_travel_enabled" + }, + "add_retract": { + "label": "Add retraction when necessary", + "description": "Depending on your travel settings there may not be a retraction prior to a travel move. When enabled, if there is no retraction prior to an added z-hop, this setting will add a retraction before the Z-hop, and a prime after returning to the working layer height. If retractions are disabled in Cura this setting is still available and will add retractions based on the Cura settings for Retraction Amount and Retract and Prime Speeds. All retraction settings are from the settings for 'Extruder 1' regardless of the number of extruders.", + "type": "bool", + "default_value": false, + "enabled": "zhop_travel_enabled" + }, + "infill_only": { + "label": "Add Z-hops to Infill Only", + "description": "Only add Z-hops to 'Infill' within the layer range.", + "type": "bool", + "default_value": false, + "enabled": "zhop_travel_enabled" + } + } + }""" + + def execute(self, data): + """ + The script will parse the gcode and check the cumulative length of travel moves. When they exceed the "min_travel_dist" then hop-ups are added before the travel and at the end of the travel. The user may select to add retractions/primes if there were none. + params: + layer_list: The list of 'layers-of-interest' for both 'Layer Range' and a 'Layer List'. + index_list: A list of the indexes within the data[] for the layers-of-interest. + self._cur_z: The variable used to track the working Z-height through the gcode + self._add_retract: User setting of whether to insure a retraction at inserted Z-hops + self._is_retracted: Whether a retraction has occurred prior to the added Z-hop + min_travel_dist: The user setting for the minimum distance of travel for Z-hops to be inserted + start_index: The index (in data[]) of the first layer-of-interest. The Z-hops start at the beginning of this layer. + end_index: The index (in data[]) of the last layer-of-interest. The Z-hops end at the end of this layer. + hop_up_lines: The string to insert for 'Hop up' + hop_down_lines: The string to insert for 'Hop down' + hop_start: The index within a layer where a 'Hop up' is inserted + hop_end: The index within a layer where a 'Hop down' is inserted + extra_prime_dist: Is calculated from the Cura extra_prime_volume and if > 0 is used to reset the E location prior to unretracting. + """ + + # Exit if the script is not enabled + if not self.getSettingValueByKey("zhop_travel_enabled"): + data[0] += "; [Z-Hop on Travel] Not enabled\n" + Logger.log("i", "[Z-Hop on Travel] Not enabled") + return data + + # Exit if the gcode has already been post-processed + if ";POSTPROCESSED" in data[0]: + return data + + # Define the global_stack to access the Cura settings + global_stack = Application.getInstance().getGlobalContainerStack() + + # Exit if the Print Sequence is One-at-a-Time + if global_stack.getProperty("print_sequence", "value") == "one_at_a_time": + Message(title = "[ZHop On Travel]", text = "Is not compatible with 'One at a Time' print sequence.").show() + data[0] += "; [ZHop On Travel] did not run because One at a Time is enabled" + return data + + # Define some variables + extruder = global_stack.extruderList + speed_zhop = extruder[0].getProperty("speed_z_hop", "value") * 60 + speed_travel = extruder[0].getProperty("speed_travel", "value") * 60 + retraction_enabled = extruder[0].getProperty("retraction_enable", "value") + retraction_amount = extruder[0].getProperty("retraction_amount", "value") + retract_speed = int(extruder[0].getProperty("retraction_retract_speed", "value")) * 60 + prime_speed = int(extruder[0].getProperty("retraction_prime_speed", "value")) * 60 + firmware_retract = global_stack.getProperty("machine_firmware_retract", "value") + relative_extrusion = global_stack.getProperty("relative_extrusion", "value") + self._cur_z = float(global_stack.getProperty("layer_height_0", "value")) + filament_dia = extruder[0].getProperty("material_diameter", "value") + extra_prime_vol = extruder[0].getProperty("retraction_extra_prime_amount", "value") + extra_prime_dist = extra_prime_vol / (math.pi * (filament_dia / 2)**2) + self._add_retract = self.getSettingValueByKey("add_retract") + min_travel_dist = self.getSettingValueByKey("min_travel_dist") + hop_height = round(self.getSettingValueByKey("hop_height"),2) + list_or_range = self.getSettingValueByKey("list_or_range") + infill_only = self.getSettingValueByKey("infill_only") + layer_list = [] + index_list = [] + + # Get either the 'range_of_layers' or the 'list_of_layers' and convert them to 'layer_list' and then 'index_list' + if list_or_range == "list_of_layers": + layer_string = self.getSettingValueByKey("layers_of_interest") + layer_list = layer_string.split(",") + layer_list.sort() + for layer in layer_list: + for num in range(2, len(data) - 1): + if ";LAYER:" + str(int(layer) - 1) + "\n" in data[num]: + index_list.append(num) + start_index = index_list[0] + end_index = index_list[len(index_list) - 1] + + elif list_or_range == "range_of_layers": + start_layer = self.getSettingValueByKey("start_layer") + end_layer = self.getSettingValueByKey("end_layer") + + # Get the indexes for the start and end layers + start_index = 2 + for num in range(1, len(data) - 1): + if ";LAYER:" + str(start_layer - 1) + "\n" in data[num]: + start_index = num + break + if end_layer == -1: + if retraction_enabled: + end_index = len(data) - 3 + else: + end_index = len(data) - 2 + elif end_layer != -1: + for num in range(1, len(data) - 1): + if ";LAYER:" + str(end_layer) + "\n" in data[num]: + end_layer = data[num].splitlines()[0].split(":")[1] + end_index = num + break + for num in range(start_index, end_index): + index_list.append(num) + + # Track the Z up to the starting layer + for num in range(1, start_index): + lines = data[num].splitlines() + for line in lines: + if " Z" in line and self.getValue(line, "Z"): + self._cur_z = self.getValue(line, "Z") + + # Use 'start_here' to avoid a zhop on the first move of the initial layer because a double-retraction may occur. + if start_index == 2: + start_here = False + else: + start_here = True + + # Initialize variables + self._is_retracted = False + hop_up_lines = "" + hop_down_lines = "" + hop_start = 0 + hop_end = 0 + self._cur_x = 0.0 + self._cur_y = 0.0 + self._prev_x = 0.0 + self._prev_y = 0.0 + self._cur_e = 0.0 + self._prev_e = 0.0 + cmd_list = ["G0 ", "G1 ", "G2 ", "G3 "] + self.reset_type = 0 + + # Keep track of the axes locations if the start layer > layer:0 + if start_index > 2: + self._track_all_axes(data, cmd_list, start_index, relative_extrusion) + + # Make the insertions + in_the_infill = False + for num in index_list: + lines = data[num].splitlines() + for index, line in enumerate(lines): + if num == 2: + if line.startswith(";TYPE"): + start_here = True + if line.startswith(";") and in_the_infill == True: + in_the_infill = False + if line.startswith(";TYPE:FILL"): + in_the_infill = True + if line.startswith("G92") and " E" in line: + self._cur_e = self.getValue(line, "E") + self._prev_e = self._cur_e + continue + # Get the XYZ values from movement commands + if line[0:3] in cmd_list: + if " X" in line and self.getValue(line, "X"): + self._prev_x = self._cur_x + self._cur_x = self.getValue(line, "X") + if " Y" in line and self.getValue(line, "Y"): + self._prev_y = self._cur_y + self._cur_y = self.getValue(line, "Y") + if " Z" in line and self.getValue(line, "Z"): + self._cur_z = self.getValue(line, "Z") + + # Check whether retractions have occured + if line[0:3] in ["G1 ", "G2 ", "G3 "] and "X" in line and "Y" in line and "E" in line: + self._is_retracted = False + self._cur_e = self.getValue(line, "E") + elif (line.startswith("G1") and "F" in line and "E" in line and not "X" in line or not "Y" in line) or "G10" in line: + if self.getValue(line, "E"): + self._cur_e = self.getValue(line, "E") + if not relative_extrusion: + if self._cur_e < self._prev_e or "G10" in line: + self._is_retracted = True + elif relative_extrusion: + if self._cur_e < 0 or "G10" in line: + self._is_retracted = True + if line.startswith(";TYPE"): + start_here = True + if not start_here: + continue + + # All travels are checked for their cumulative length + if line.startswith("G0 ") and hop_start == 0: + hop_indexes = self._total_travel_length(index, lines) + hop_start = int(hop_indexes[0]) + hop_end = int(hop_indexes[1]) + if infill_only and not in_the_infill: + hop_start = 0 + hop_end = 0 + if hop_start > 0: + # For any lines that are XYZ moves right before layer change + if " Z" in line: + lines[index] = lines[index].replace("Z" + str(self._cur_z), "Z" + str(self._cur_z + hop_height)) + # If there is no 'F' in the next line then add one at the Travel Speed so the z-hop speed doesn't carry over + if not " F" in lines[index] and lines[index].startswith("G0"): + lines[index] = lines[index].replace("G0", f"G0 F{speed_travel}") + if "X" in lines[index - 1] and "Y" in lines[index - 1] and "E" in lines[index - 1]: + self._is_retracted = False + hop_up_lines = self.get_hop_up_lines(retraction_amount, speed_zhop, retract_speed, prime_speed, extra_prime_dist, firmware_retract, relative_extrusion, hop_height) + lines[index] = hop_up_lines + lines[index] + + # Make the 'Zhop down' insertion at the correct index location (or as soon as practicable after it) + if hop_end > 0 and index >= hop_end: + # If there is no 'F' in the next line then add one to reinstate the Travel Speed (so the z-hop speed doesn't carry over through the travel moves) + if not " F" in lines[index] and lines[index].startswith("G0"): + lines[index] = lines[index].replace("G0", f"G0 F{speed_travel}") + hop_down_lines = self.get_hop_down_lines(retraction_amount, speed_zhop, retract_speed, prime_speed, extra_prime_dist, firmware_retract, relative_extrusion, hop_height, lines[index]) + lines[index] = hop_down_lines + lines[index] + self._is_retracted = False + hop_end = 0 + hop_start = 0 + hop_down = "" + if line.startswith(";"): + continue + self._prev_e = self._cur_e + data[num] = "\n".join(lines) + "\n" + + # Message to the user informing them of the number of Z-hops and retractions added + hop_cnt = 0 + retract_cnt = 0 + try: + for index_nr in index_list: + hop_cnt += data[index_nr].count("; Hop Up") + retract_cnt += data[index_nr].count("; Retract") + msg_txt = str(hop_cnt) + " Z-Hops were added to the file\n" + if self._add_retract: + msg_txt += str(retract_cnt) + " Retracts and unretracts were added to the file" + Message(title = "[Z-hop On Travel]", text = msg_txt).show() + except: + pass + return data + + def _total_travel_length(self, l_index: int, lines: str) -> float: + """ + This function gets the cummulative total travel distance of each individual travel move. + :parameters: + g_num: is the line index as passed from the calling function and when returned indicates the end of travel + travel_total: is the cummulative travel distance + """ + g_num = l_index + travel_total = 0.0 + # Total the lengths of each move and compare them to the Minimum Distance for a Z-hop to occur + while lines[g_num].startswith("G0 "): + travel_total += self._get_distance() + self._prev_x = self._cur_x + if self.getValue(lines[g_num], "X"): + self._cur_x = self.getValue(lines[g_num], "X") + self._prev_y = self._cur_y + if self.getValue(lines[g_num], "Y"): + self._cur_y = self.getValue(lines[g_num], "Y") + g_num += 1 + if g_num == len(lines): + break + if travel_total > self.getSettingValueByKey("min_travel_dist"): + return l_index, g_num + else: + return 0, 0 + + def _get_distance(self) -> float: + """ + This function gets the distance from the previous location to the current location. + """ + try: + dist = math.sqrt((self._prev_x - self._cur_x)**2 + (self._prev_y - self._cur_y)**2) + except ValueError: + return 0 + return dist + + def get_hop_up_lines(self, retraction_amount: float, speed_zhop: str, retract_speed: str, prime_speed: str, extra_prime_dist: float, firmware_retract: bool, relative_extrusion: bool, hop_height: str) -> str: + """ + Determine if the hop will require a retraction + :parameters: + reset_type: An indicator to handle differences when Firmware Retraction, and Relative Extrusion, and Extra Prime are enabled + up_lines: The inserted line(s) for the Z-hop Up + front_text and back_text: Are the line splits to account for existing gcode lines that have comments in them + """ + hop_retraction = not self._is_retracted + if not self._add_retract: + hop_retraction = False + reset_type = 0 # no other options + if hop_retraction: + reset_type += 1 + if firmware_retract and hop_retraction: + reset_type += 2 + if relative_extrusion and hop_retraction: + reset_type += 4 + if extra_prime_dist > 0 and hop_retraction: + reset_type += 8 + up_lines = f"G0 F{speed_zhop} Z{round(self._cur_z + hop_height,2)} ; Hop Up" + if reset_type in [1, 9] and hop_retraction: # add retract only when necessary + up_lines = f"G1 F{retract_speed} E{round(self._cur_e - retraction_amount, 5)} ; Retract\n" + up_lines + self._cur_e = round(self._cur_e - retraction_amount, 5) + if reset_type in [3, 7] and hop_retraction: # add retract and firmware retract + up_lines = "G10 ; Retract\n" + up_lines + if reset_type in [5, 13] and hop_retraction: # add retract and relative extrusion + up_lines = f"G1 F{retract_speed} E-{retraction_amount} ; Retract\n" + up_lines + self._cur_e = 0 + if reset_type in [11, 15] and hop_retraction: # add retract, firmware retraction, extra prime + up_lines = "G10 ; Retract\n" + up_lines + + # Format the added lines for readability + if "\n" in up_lines: # for lines that include a retraction + lines = up_lines.split("\n") + for index, line in enumerate(lines): + front_txt = lines[index].split(";")[0] + back_txt = lines[index].split(";")[1] + lines[index] = front_txt + str(" " * (40 - len(front_txt))) +";" + back_txt + up_lines = "\n".join(lines) + "\n" + else: # for lines without a retraction + front_txt = up_lines.split(";")[0] + back_txt = up_lines.split(";")[1] + up_lines = front_txt + str(" " * (40 - len(front_txt))) +";" + back_txt + "\n" + return up_lines + + # The Zhop down may require different kinds of primes depending on the Cura settings. + def get_hop_down_lines(self, retraction_amount: float, speed_zhop: str, retract_speed: str, prime_speed: str, extra_prime_dist: str, firmware_retract: bool, relative_extrusion: bool, hop_height: str, next_line: str) -> str: + + """ + Determine if the hop will require a prime + :parameters: + reset_type: An indicator to handle differences when Firmware Retraction, and Relative Extrusion, and Extra Prime are enabled + dn_lines: The inserted line(s) for the Z-hop Down + front_text and back_text: Are the line splits to account for existing gcode lines that have comments in them + """ + hop_retraction = not self._is_retracted + if not self._add_retract: + hop_retraction = False + # Base the prime on the combination of Cura settings + reset_type = 0 + if hop_retraction: + reset_type += 1 + if firmware_retract and hop_retraction: + reset_type += 2 + if relative_extrusion and hop_retraction: + reset_type += 4 + if extra_prime_dist > 0.0 and hop_retraction: + reset_type += 8 + dn_lines = f"G0 F{speed_zhop} Z{self._cur_z} ; Hop Down" + # Format the line and return if the retraction option is unchecked + if "G11" in next_line or re.search("G1 F(\d+\.\d+|\d+) E(-?\d+\.\d+|-?\d+)", next_line) and reset_type == 0: + front_txt = dn_lines.split(";")[0] + back_txt = dn_lines.split(";")[1] + dn_lines = front_txt + str(" " * (40 - len(front_txt))) +";" + back_txt + "\n" + self._is_retracted = False + return dn_lines + # If the retraction option is checked then determine the required unretract code for the particular combination of Cura settings. + # Add retract 1 + if reset_type == 1 and hop_retraction: + dn_lines += f"\nG1 F{prime_speed} E{round(self._prev_e + retraction_amount, 5)} ; Unretract" + # Add retract 1 + firmware retract 2 + if reset_type == 3 and hop_retraction: + dn_lines += "\nG11 ; UnRetract" + # Add retract 1 + relative extrusion 4 + if reset_type == 5 and hop_retraction: + dn_lines += f"\nG1 F{prime_speed} E{retraction_amount} ; UnRetract" + # Add retract 1 + firmware retraction 2 + relative extrusion 4 + if reset_type == 7 and hop_retraction: + dn_lines += f"\nG11 ; Unretract" + # Add retract 1 + extra prime 8 + if reset_type == 9 and hop_retraction: + dn_lines += f"\nG92 E{round(self._prev_e - extra_prime_dist,5)} ; Extra prime adjustment" + dn_lines += f"\nG1 F{prime_speed} E{round(self._prev_e + retraction_amount, 5)} ; UnRetract" + self._cur_e = round(self._prev_e + retraction_amount, 5) + # Add retract 1 + firmware retraction 2 + extra prime 8 + if reset_type == 11 and hop_retraction: + dn_lines += "\nG11 ; UnRetract" + dn_lines += "\nM83 ; Relative extrusion" + dn_lines += f"\nG1 F{prime_speed} E{round(extra_prime_dist, 5)} ; Extra prime" + if not relative_extrusion: + dn_lines += "\nM82 ; Absolute extrusion" + # Add retract 1 + relative extrusion 4 + extra prime 8 + if reset_type == 13 and hop_retraction: + dn_lines += f"\nG1 F{prime_speed} E{round(retraction_amount + extra_prime_dist, 5)} ; Unretract with extra prime" + # Add retract 1 + firmware retraction 2 + relative extrusion 4 + extra prime 8 + if reset_type == 15 and hop_retraction: + dn_lines += "\nG11 ; UnRetract" + dn_lines += f"\nG1 F{prime_speed} E{round(extra_prime_dist, 5)} ; Extra prime" + + # Format the added lines for readability + if "\n" in dn_lines: # for lines with primes + lines = dn_lines.split("\n") + for index, line in enumerate(lines): + front_txt = lines[index].split(";")[0] + back_txt = lines[index].split(";")[1] + lines[index] = front_txt + str(" " * (40 - len(front_txt))) +";" + back_txt + dn_lines = "\n".join(lines) + "\n" + else: # for lines with no prime + front_txt = dn_lines.split(";")[0] + back_txt = dn_lines.split(";")[1] + dn_lines = front_txt + str(" " * (40 - len(front_txt))) +";" + back_txt + "\n" + self._is_retracted = False + return dn_lines + + def _track_all_axes(self, data: str, cmd_list: int, start_index: int, relative_extrusion: bool) -> str: + """ + This function tracks the XYZE locations prior to the beginning of the first 'layer-of-interest' + + """ + for num in range(2, start_index - 1): + lines = data[num].split("\n") + for line in lines: + # Get the XYZ values from movement commands + if line[0:3] in cmd_list: + if " X" in line and self.getValue(line, "X"): + self._prev_x = self._cur_x + self._cur_x = self.getValue(line, "X") + if " Y" in line and self.getValue(line, "Y"): + self._prev_y = self._cur_y + self._cur_y = self.getValue(line, "Y") + if " Z" in line and self.getValue(line, "Z"): + self._cur_z = self.getValue(line, "Z") + + # Check whether retractions have occured and track the E location + if not relative_extrusion: + if line.startswith("G1 ") and " X" in line and " Y" in line and " E" in line: + self._is_retracted = False + self._cur_e = self.getValue(line, "E") + elif line.startswith("G1 ") and " F" in line and " E" in line and not " X" in line and not " Y" in line: + if self.getValue(line, "E"): + self._cur_e = self.getValue(line, "E") + elif line.startswith("G10"): + self._is_retracted = True + elif line.startswith("G11"): + self._is_retracted = False + elif relative_extrusion: + if self._cur_e < 0 or "G10" in line: + self._is_retracted = True + self._cur_e = 0 + if line.startswith("G11"): + self._is_retracted = False + self._cur_e = 0 + self._prev_e = self._cur_e + return From e1246beb67966b035492bd217a93af532a4e0509 Mon Sep 17 00:00:00 2001 From: GregValiant <64202104+GregValiant@users.noreply.github.com> Date: Sat, 12 Apr 2025 14:11:09 -0400 Subject: [PATCH 092/200] Update DisplayInfoOnLCD.py Minor changes to the statistics added to the beginning of the gcode. --- .../scripts/DisplayInfoOnLCD.py | 42 +++++++++++++------ 1 file changed, 30 insertions(+), 12 deletions(-) diff --git a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py index 85b9744856..abff57c804 100644 --- a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py +++ b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py @@ -319,7 +319,7 @@ class DisplayInfoOnLCD(Script): # This is from 'Show Progress on LCD' def _display_progress(self, data: str) -> str: - # Add some print settings to the start of the gcode + # Add some common print settings to the start of the gcode data[0] = self._add_stats(data) # Get settings print_sequence = Application.getInstance().getGlobalContainerStack().getProperty("print_sequence", "value") @@ -344,6 +344,7 @@ class DisplayInfoOnLCD(Script): # If at least one of the settings is disabled, there is enough room on the display to display "layer" first_section = data[0] lines = first_section.split("\n") + pause_cmd = [] for line in lines: if line.startswith(";TIME:"): tindex = lines.index(line) @@ -530,7 +531,9 @@ class DisplayInfoOnLCD(Script): return data def _message_to_user(self, data: str, speed_factor: float, pause_cmd: str) -> str: - # Message the user of the projected finish time of the print + """ + Message the user of the projected finish time of the print and when any pauses might occur + """ print_time = Application.getInstance().getPrintInformation().currentPrintTime.getDisplayString(DurationFormat.Format.ISO8601) print_start_time = self.getSettingValueByKey("print_start_time") # If the user entered a print start time make sure it is in the correct format or ignore it. @@ -623,7 +626,10 @@ class DisplayInfoOnLCD(Script): def _add_stats(self, data: str) -> str: global_stack = Application.getInstance().getGlobalContainerStack() - # Create a list of the models in the file + """ + Make a list of the models in the file. + Add some of the filament stats to the first section of the gcode. + """ model_list = [] for mdex, layer in enumerate(data): layer = data[mdex].split("\n") @@ -632,22 +638,34 @@ class DisplayInfoOnLCD(Script): model_name = line.split(":")[1] if not model_name in model_list: model_list.append(model_name) - # Add some settings to data[0] + # Filament stats extruder_count = global_stack.getProperty("machine_extruder_count", "value") init_layer_hgt_line = ";Initial Layer Height: " + str(global_stack.getProperty("layer_height_0", "value")) - nozzle_size_line = ";Nozzle Size (T0): " + str(global_stack.extruderList[0].getProperty("machine_nozzle_size", "value")) - filament_type = "\n;Filament Type (T0): " + str(global_stack.extruderList[0].material.getMetaDataEntry("material", "")) - print_temperature_line = ";Print Temperature (T0): " + str(global_stack.extruderList[0].getProperty("material_print_temperature", "value")) + filament_line_t0 = ";Extruder 1 (T0)\n" + filament_amount = Application.getInstance().getPrintInformation().materialLengths + filament_line_t0 += f"; Filament used: {filament_amount[0]}m\n" + filament_line_t0 += f"; Filament Type: {global_stack.extruderList[0].material.getMetaDataEntry("material", "")}\n" + filament_line_t0 += f"; Filament Dia.: {global_stack.extruderList[0].getProperty("material_diameter", "value")}mm\n" + filament_line_t0 += f"; Nozzle Size : {global_stack.extruderList[0].getProperty("machine_nozzle_size", "value")}mm\n" + filament_line_t0 += f"; Print Temp. : {global_stack.extruderList[0].getProperty("material_print_temperature", "value")}°" + + # if there is more than one extruder then get the stats for the second one. + filament_line_t1 = "" if extruder_count > 1: - nozzle_size_line += "\n;Nozzle Size (T1): " + str(global_stack.extruderList[1].getProperty("machine_nozzle_size", "value")) - filament_type += "\n;Filament type (T1): " + str(global_stack.extruderList[1].material.getMetaDataEntry("material", "")) - print_temperature_line += "\n;Print Temperature (T1): " + str(global_stack.extruderList[1].getProperty("material_print_temperature", "value")) + filament_line_t1 = "\n;Extruder 2 (T1)\n" + filament_line_t1 += f"; Filament used: {filament_amount[1]}m\n" + filament_line_t1 += f"; Filament Type: {global_stack.extruderList[1].material.getMetaDataEntry("material", "")}\n" + filament_line_t1 += f"; Filament Dia.: {global_stack.extruderList[1].getProperty("material_diameter", "value")}mm\n" + filament_line_t1 += f"; Nozzle Size : {global_stack.extruderList[1].getProperty("machine_nozzle_size", "value")}mm\n" + filament_line_t1 += f"; Print Temp. : {global_stack.extruderList[1].getProperty("material_print_temperature", "value")}°" + + # Add the stats to the gcode file lines = data[0].split("\n") for index, line in enumerate(lines): if line.startswith(";Layer height:"): - lines[index] += "\n" + init_layer_hgt_line + "\n" + nozzle_size_line + "\n" + print_temperature_line + lines[index] += "\n" + init_layer_hgt_line if line.startswith(";Filament used"): - lines[index] += filament_type + lines[index] = filament_line_t0 + filament_line_t1 if "MINX" in line or "MIN.X" in line: # Add the model list lines[index - 1] += f"\n;Model List: {str(model_list)}" From 1b518b8c926096d1835f50e64147d17b1cf6198b Mon Sep 17 00:00:00 2001 From: GregValiant <64202104+GregValiant@users.noreply.github.com> Date: Sat, 12 Apr 2025 14:13:53 -0400 Subject: [PATCH 093/200] Update DisplayInfoOnLCD.py Changes to the print statistics entered into the gcode. --- .../scripts/DisplayInfoOnLCD.py | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py index abff57c804..e68b4c92c8 100644 --- a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py +++ b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py @@ -1,5 +1,6 @@ """ Display Filename and Layer on the LCD by Amanda de Castilho on August 28, 2018 +<<<<<<< Updated upstream Modified: Joshua Pope-Lewis on November 16, 2018 Display Progress on LCD by Mathias Lyngklip Kjeldgaard, Alexander Gee, Kimmo Toivanen, Inigo Martinez on July 31, 2019 Show Progress was adapted from Display Progress by Louis Wooters on January 6, 2020. His changes are included here. @@ -29,6 +30,35 @@ Display Filename and Layer on the LCD by Amanda de Castilho on August 28, 2018 - 'Add M118 Line' is available with either option. M118 will bounce the message back to a remote print server through the USB connection. - 'Add M73 Line' is used by 'Display Progress' only. There are options to incluse M73 P(percent) and M73 R(time remaining) - Enable 'Finish-Time' Message - when enabled, takes the Print Time and calculates when the print will end. It uses the Time Fudge Factor. The user may enter a print start time. +======= +Modified: Joshua Pope-Lewis on November 16, 2018 +Display Progress on LCD by Mathias Lyngklip Kjeldgaard, Alexander Gee, Kimmo Toivanen, Inigo Martinez on July 31, 2019 +Show Progress was adapted from Display Progress by Louis Wooters on January 6, 2020. His changes are included here. +--------------------------------------------------------------- +DisplayNameOrProgressOnLCD.py +Cura Post-Process plugin +Combines 'Display Filename and Layer on the LCD' with 'Display Progress' +Combined and with additions by: GregValiant (Greg Foresi) +Date: September 8, 2023 +NOTE: This combined post processor will make 'Display Filename and Layer on the LCD' and 'Display Progress' obsolete +Description: Display Filename and Layer options: + Status messages sent to the printer... + - Scrolling (SCROLL_LONG_FILENAMES) if enabled in Marlin and you aren't printing a small item select this option. + - Name: By default it will use the name generated by Cura (EG: TT_Test_Cube) - You may enter a custom name here + - Start Num: Choose which number you prefer for the initial layer, 0 or 1 + - Max Layer: Enabling this will show how many layers are in the entire print (EG: Layer 1 of 265!) + - Add prefix 'Printing': Enabling this will add the prefix 'Printing' + - Example Line on LCD: Printing Layer 0 of 395 3DBenchy + Display Progress options: + - Display Total Layer Count + - Disply Time Remaining for the print + - Time Fudge Factor % - Divide the Actual Print Time by the Cura Estimate. Enter as a percentage and the displayed time will be adjusted. This allows you to bring the displayed time closer to reality (Ex: Entering 87.5 would indicate an adjustment to 87.5% of the Cura estimate). + - Example line on LCD: 1/479 | ET 2h13m + - Time to Pauses changes the M117/M118 lines to countdown to the next pause as 1/479 | TP 2h36m + - 'Add M118 Line' is available with either option. M118 will bounce the message back to a remote print server through the USB connection. + - 'Add M73 Line' is used by 'Display Progress' only. There are options to incluse M73 P(percent) and M73 R(time remaining) + - Enable 'Finish-Time' Message - when enabled, takes the Print Time and calculates when the print will end. It takes into account the Time Fudge Factor. The user may enter a print start time. This is also available for Display Filename. +>>>>>>> Stashed changes """ from ..Script import Script @@ -240,6 +270,7 @@ class DisplayInfoOnLCD(Script): def execute(self, data): display_option = self.getSettingValueByKey("display_option") +<<<<<<< Updated upstream self.add_m117_line = self.getSettingValueByKey("add_m117_line") self.add_m118_line = self.getSettingValueByKey("add_m118_line") self.add_m118_a1 = self.getSettingValueByKey("add_m118_a1") @@ -249,12 +280,21 @@ class DisplayInfoOnLCD(Script): self.add_m73_time = self.getSettingValueByKey("add_m73_time") self.add_m73_percent = self.getSettingValueByKey("add_m73_percent") self.m73_str = "" +======= + add_m118_line = self.getSettingValueByKey("add_m118_line") + add_m73_line = self.getSettingValueByKey("add_m73_line") + add_m73_time = self.getSettingValueByKey("add_m73_time") + add_m73_percent = self.getSettingValueByKey("add_m73_percent") + + # This is Display Filename and Layer on LCD +>>>>>>> Stashed changes if display_option == "filename_layer": data = self._display_filename_layer(data) else: data = self._display_progress(data) return data +<<<<<<< Updated upstream # This is from the original 'Display Filename and Layer on LCD' def _display_filename_layer(self, data: str) -> str: data[0] = self._add_stats(data) @@ -280,6 +320,28 @@ class DisplayInfoOnLCD(Script): self.m118_text = octo_text + str(i) layer_index = data.index(layer) lines = layer.split("\n") +======= + # Display Progress (from 'Show Progress' and 'Display Progress on LCD') + elif display_option == "display_progress": + # get settings + display_total_layers = self.getSettingValueByKey("display_total_layers") + display_remaining_time = self.getSettingValueByKey("display_remaining_time") + speed_factor = self.getSettingValueByKey("speed_factor") / 100 + m73_time = False + m73_percent = False + if add_m73_line and add_m73_time: + m73_time = True + if add_m73_line and add_m73_percent: + m73_percent = True + # initialize global variables + first_layer_index = 0 + time_total = 0 + number_of_layers = 0 + time_elapsed = 0 + # if at least one of the settings is disabled, there is enough room on the display to display "layer" + first_section = data[0] + lines = first_section.split("\n") +>>>>>>> Stashed changes for line in lines: if line.startswith(";LAYER_COUNT:"): max_layer = line From bf8d31aa515e1be3a19525b689dec84fee7f7be9 Mon Sep 17 00:00:00 2001 From: GregValiant <64202104+GregValiant@users.noreply.github.com> Date: Mon, 14 Apr 2025 09:04:34 -0400 Subject: [PATCH 094/200] Update DisplayInfoOnLCD.py Add the 'Quality Name' to the gcode with the other settings. Update DisplayInfoOnLCD.py Touchups. Update DisplayInfoOnLCD.py Minor change --- .../scripts/DisplayInfoOnLCD.py | 72 ++----------------- 1 file changed, 6 insertions(+), 66 deletions(-) diff --git a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py index e68b4c92c8..e016bbd3d6 100644 --- a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py +++ b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py @@ -1,6 +1,5 @@ """ Display Filename and Layer on the LCD by Amanda de Castilho on August 28, 2018 -<<<<<<< Updated upstream Modified: Joshua Pope-Lewis on November 16, 2018 Display Progress on LCD by Mathias Lyngklip Kjeldgaard, Alexander Gee, Kimmo Toivanen, Inigo Martinez on July 31, 2019 Show Progress was adapted from Display Progress by Louis Wooters on January 6, 2020. His changes are included here. @@ -30,35 +29,6 @@ Display Filename and Layer on the LCD by Amanda de Castilho on August 28, 2018 - 'Add M118 Line' is available with either option. M118 will bounce the message back to a remote print server through the USB connection. - 'Add M73 Line' is used by 'Display Progress' only. There are options to incluse M73 P(percent) and M73 R(time remaining) - Enable 'Finish-Time' Message - when enabled, takes the Print Time and calculates when the print will end. It uses the Time Fudge Factor. The user may enter a print start time. -======= -Modified: Joshua Pope-Lewis on November 16, 2018 -Display Progress on LCD by Mathias Lyngklip Kjeldgaard, Alexander Gee, Kimmo Toivanen, Inigo Martinez on July 31, 2019 -Show Progress was adapted from Display Progress by Louis Wooters on January 6, 2020. His changes are included here. ---------------------------------------------------------------- -DisplayNameOrProgressOnLCD.py -Cura Post-Process plugin -Combines 'Display Filename and Layer on the LCD' with 'Display Progress' -Combined and with additions by: GregValiant (Greg Foresi) -Date: September 8, 2023 -NOTE: This combined post processor will make 'Display Filename and Layer on the LCD' and 'Display Progress' obsolete -Description: Display Filename and Layer options: - Status messages sent to the printer... - - Scrolling (SCROLL_LONG_FILENAMES) if enabled in Marlin and you aren't printing a small item select this option. - - Name: By default it will use the name generated by Cura (EG: TT_Test_Cube) - You may enter a custom name here - - Start Num: Choose which number you prefer for the initial layer, 0 or 1 - - Max Layer: Enabling this will show how many layers are in the entire print (EG: Layer 1 of 265!) - - Add prefix 'Printing': Enabling this will add the prefix 'Printing' - - Example Line on LCD: Printing Layer 0 of 395 3DBenchy - Display Progress options: - - Display Total Layer Count - - Disply Time Remaining for the print - - Time Fudge Factor % - Divide the Actual Print Time by the Cura Estimate. Enter as a percentage and the displayed time will be adjusted. This allows you to bring the displayed time closer to reality (Ex: Entering 87.5 would indicate an adjustment to 87.5% of the Cura estimate). - - Example line on LCD: 1/479 | ET 2h13m - - Time to Pauses changes the M117/M118 lines to countdown to the next pause as 1/479 | TP 2h36m - - 'Add M118 Line' is available with either option. M118 will bounce the message back to a remote print server through the USB connection. - - 'Add M73 Line' is used by 'Display Progress' only. There are options to incluse M73 P(percent) and M73 R(time remaining) - - Enable 'Finish-Time' Message - when enabled, takes the Print Time and calculates when the print will end. It takes into account the Time Fudge Factor. The user may enter a print start time. This is also available for Display Filename. ->>>>>>> Stashed changes """ from ..Script import Script @@ -270,7 +240,6 @@ class DisplayInfoOnLCD(Script): def execute(self, data): display_option = self.getSettingValueByKey("display_option") -<<<<<<< Updated upstream self.add_m117_line = self.getSettingValueByKey("add_m117_line") self.add_m118_line = self.getSettingValueByKey("add_m118_line") self.add_m118_a1 = self.getSettingValueByKey("add_m118_a1") @@ -280,21 +249,12 @@ class DisplayInfoOnLCD(Script): self.add_m73_time = self.getSettingValueByKey("add_m73_time") self.add_m73_percent = self.getSettingValueByKey("add_m73_percent") self.m73_str = "" -======= - add_m118_line = self.getSettingValueByKey("add_m118_line") - add_m73_line = self.getSettingValueByKey("add_m73_line") - add_m73_time = self.getSettingValueByKey("add_m73_time") - add_m73_percent = self.getSettingValueByKey("add_m73_percent") - - # This is Display Filename and Layer on LCD ->>>>>>> Stashed changes if display_option == "filename_layer": data = self._display_filename_layer(data) else: data = self._display_progress(data) return data -<<<<<<< Updated upstream # This is from the original 'Display Filename and Layer on LCD' def _display_filename_layer(self, data: str) -> str: data[0] = self._add_stats(data) @@ -320,28 +280,6 @@ class DisplayInfoOnLCD(Script): self.m118_text = octo_text + str(i) layer_index = data.index(layer) lines = layer.split("\n") -======= - # Display Progress (from 'Show Progress' and 'Display Progress on LCD') - elif display_option == "display_progress": - # get settings - display_total_layers = self.getSettingValueByKey("display_total_layers") - display_remaining_time = self.getSettingValueByKey("display_remaining_time") - speed_factor = self.getSettingValueByKey("speed_factor") / 100 - m73_time = False - m73_percent = False - if add_m73_line and add_m73_time: - m73_time = True - if add_m73_line and add_m73_percent: - m73_percent = True - # initialize global variables - first_layer_index = 0 - time_total = 0 - number_of_layers = 0 - time_elapsed = 0 - # if at least one of the settings is disabled, there is enough room on the display to display "layer" - first_section = data[0] - lines = first_section.split("\n") ->>>>>>> Stashed changes for line in lines: if line.startswith(";LAYER_COUNT:"): max_layer = line @@ -710,7 +648,7 @@ class DisplayInfoOnLCD(Script): filament_line_t0 += f"; Filament Dia.: {global_stack.extruderList[0].getProperty("material_diameter", "value")}mm\n" filament_line_t0 += f"; Nozzle Size : {global_stack.extruderList[0].getProperty("machine_nozzle_size", "value")}mm\n" filament_line_t0 += f"; Print Temp. : {global_stack.extruderList[0].getProperty("material_print_temperature", "value")}°" - + # if there is more than one extruder then get the stats for the second one. filament_line_t1 = "" if extruder_count > 1: @@ -720,15 +658,17 @@ class DisplayInfoOnLCD(Script): filament_line_t1 += f"; Filament Dia.: {global_stack.extruderList[1].getProperty("material_diameter", "value")}mm\n" filament_line_t1 += f"; Nozzle Size : {global_stack.extruderList[1].getProperty("machine_nozzle_size", "value")}mm\n" filament_line_t1 += f"; Print Temp. : {global_stack.extruderList[1].getProperty("material_print_temperature", "value")}°" - + # Add the stats to the gcode file lines = data[0].split("\n") for index, line in enumerate(lines): if line.startswith(";Layer height:"): - lines[index] += "\n" + init_layer_hgt_line + lines[index] += f"\n{init_layer_hgt_line}" + lines[index] += f"\n;Base Quality Name : '{global_stack.quality.getMetaDataEntry("name", "")}'" + lines[index] += f"\n;Custom Quality Name: '{global_stack.qualityChanges.getMetaDataEntry("name")}'" if line.startswith(";Filament used"): lines[index] = filament_line_t0 + filament_line_t1 if "MINX" in line or "MIN.X" in line: - # Add the model list + # Add the Object List lines[index - 1] += f"\n;Model List: {str(model_list)}" return "\n".join(lines) \ No newline at end of file From 65ecca94f26563482df40dbb0c0992bd20ca5e09 Mon Sep 17 00:00:00 2001 From: GregValiant <64202104+GregValiant@users.noreply.github.com> Date: Thu, 24 Apr 2025 08:48:20 -0400 Subject: [PATCH 095/200] Update ZHopOnTravel.py Update per RBurema requested changes. --- .../scripts/ZHopOnTravel.py | 33 ++++++++----------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/plugins/PostProcessingPlugin/scripts/ZHopOnTravel.py b/plugins/PostProcessingPlugin/scripts/ZHopOnTravel.py index 82a60239be..588e642d4d 100644 --- a/plugins/PostProcessingPlugin/scripts/ZHopOnTravel.py +++ b/plugins/PostProcessingPlugin/scripts/ZHopOnTravel.py @@ -28,7 +28,9 @@ import math from UM.Logger import Logger class ZHopOnTravel(Script): - + def __init__(self): + super().__init__() + def getSettingDataString(self): return """{ "name": "Z-Hop on Travel", @@ -170,7 +172,6 @@ class ZHopOnTravel(Script): extra_prime_vol = extruder[0].getProperty("retraction_extra_prime_amount", "value") extra_prime_dist = extra_prime_vol / (math.pi * (filament_dia / 2)**2) self._add_retract = self.getSettingValueByKey("add_retract") - min_travel_dist = self.getSettingValueByKey("min_travel_dist") hop_height = round(self.getSettingValueByKey("hop_height"),2) list_or_range = self.getSettingValueByKey("list_or_range") infill_only = self.getSettingValueByKey("infill_only") @@ -187,7 +188,6 @@ class ZHopOnTravel(Script): if ";LAYER:" + str(int(layer) - 1) + "\n" in data[num]: index_list.append(num) start_index = index_list[0] - end_index = index_list[len(index_list) - 1] elif list_or_range == "range_of_layers": start_layer = self.getSettingValueByKey("start_layer") @@ -307,7 +307,7 @@ class ZHopOnTravel(Script): lines[index] = lines[index].replace("G0", f"G0 F{speed_travel}") if "X" in lines[index - 1] and "Y" in lines[index - 1] and "E" in lines[index - 1]: self._is_retracted = False - hop_up_lines = self.get_hop_up_lines(retraction_amount, speed_zhop, retract_speed, prime_speed, extra_prime_dist, firmware_retract, relative_extrusion, hop_height) + hop_up_lines = self.get_hop_up_lines(retraction_amount, speed_zhop, retract_speed, extra_prime_dist, firmware_retract, relative_extrusion, hop_height) lines[index] = hop_up_lines + lines[index] # Make the 'Zhop down' insertion at the correct index location (or as soon as practicable after it) @@ -320,7 +320,7 @@ class ZHopOnTravel(Script): self._is_retracted = False hop_end = 0 hop_start = 0 - hop_down = "" + hop_down_lines = "" if line.startswith(";"): continue self._prev_e = self._cur_e @@ -341,7 +341,7 @@ class ZHopOnTravel(Script): pass return data - def _total_travel_length(self, l_index: int, lines: str) -> float: + def _total_travel_length(self, l_index: int, lines: str) -> int: """ This function gets the cummulative total travel distance of each individual travel move. :parameters: @@ -363,9 +363,9 @@ class ZHopOnTravel(Script): if g_num == len(lines): break if travel_total > self.getSettingValueByKey("min_travel_dist"): - return l_index, g_num + return [l_index, g_num] else: - return 0, 0 + return [0, 0] def _get_distance(self) -> float: """ @@ -377,7 +377,7 @@ class ZHopOnTravel(Script): return 0 return dist - def get_hop_up_lines(self, retraction_amount: float, speed_zhop: str, retract_speed: str, prime_speed: str, extra_prime_dist: float, firmware_retract: bool, relative_extrusion: bool, hop_height: str) -> str: + def get_hop_up_lines(self, retraction_amount: float, speed_zhop: str, retract_speed: str, extra_prime_dist: float, firmware_retract: bool, relative_extrusion: bool, hop_height: str) -> str: """ Determine if the hop will require a retraction :parameters: @@ -401,13 +401,11 @@ class ZHopOnTravel(Script): if reset_type in [1, 9] and hop_retraction: # add retract only when necessary up_lines = f"G1 F{retract_speed} E{round(self._cur_e - retraction_amount, 5)} ; Retract\n" + up_lines self._cur_e = round(self._cur_e - retraction_amount, 5) - if reset_type in [3, 7] and hop_retraction: # add retract and firmware retract + if reset_type in [3, 7, 11, 15] and hop_retraction: # add retract and firmware retract up_lines = "G10 ; Retract\n" + up_lines if reset_type in [5, 13] and hop_retraction: # add retract and relative extrusion up_lines = f"G1 F{retract_speed} E-{retraction_amount} ; Retract\n" + up_lines self._cur_e = 0 - if reset_type in [11, 15] and hop_retraction: # add retract, firmware retraction, extra prime - up_lines = "G10 ; Retract\n" + up_lines # Format the added lines for readability if "\n" in up_lines: # for lines that include a retraction @@ -458,15 +456,12 @@ class ZHopOnTravel(Script): # Add retract 1 if reset_type == 1 and hop_retraction: dn_lines += f"\nG1 F{prime_speed} E{round(self._prev_e + retraction_amount, 5)} ; Unretract" - # Add retract 1 + firmware retract 2 - if reset_type == 3 and hop_retraction: + # Add retract 1 + firmware retract 2 and Add retract 1 + firmware retraction 2 + relative extrusion 4 + if reset_type in [3, 7] and hop_retraction: dn_lines += "\nG11 ; UnRetract" # Add retract 1 + relative extrusion 4 if reset_type == 5 and hop_retraction: dn_lines += f"\nG1 F{prime_speed} E{retraction_amount} ; UnRetract" - # Add retract 1 + firmware retraction 2 + relative extrusion 4 - if reset_type == 7 and hop_retraction: - dn_lines += f"\nG11 ; Unretract" # Add retract 1 + extra prime 8 if reset_type == 9 and hop_retraction: dn_lines += f"\nG92 E{round(self._prev_e - extra_prime_dist,5)} ; Extra prime adjustment" @@ -502,7 +497,7 @@ class ZHopOnTravel(Script): self._is_retracted = False return dn_lines - def _track_all_axes(self, data: str, cmd_list: int, start_index: int, relative_extrusion: bool) -> str: + def _track_all_axes(self, data: str, cmd_list: str, start_index: int, relative_extrusion: bool) -> str: """ This function tracks the XYZE locations prior to the beginning of the first 'layer-of-interest' @@ -541,4 +536,4 @@ class ZHopOnTravel(Script): self._is_retracted = False self._cur_e = 0 self._prev_e = self._cur_e - return + return None From 1eaed0fb3c3e6ac799e863b7571d47a28f5b72a3 Mon Sep 17 00:00:00 2001 From: RedBlackAka <140876408+RedBlackAka@users.noreply.github.com> Date: Sun, 4 May 2025 01:29:54 +0200 Subject: [PATCH 096/200] Remove NSIS uninstall shortcut removal Remove NSIS uninstall shortcut removal that I accidentally left behind. This is no longer needed. --- packaging/NSIS/Ultimaker-Cura.nsi.jinja | 2 -- 1 file changed, 2 deletions(-) diff --git a/packaging/NSIS/Ultimaker-Cura.nsi.jinja b/packaging/NSIS/Ultimaker-Cura.nsi.jinja index 9f61e6950c..f3bb2572be 100644 --- a/packaging/NSIS/Ultimaker-Cura.nsi.jinja +++ b/packaging/NSIS/Ultimaker-Cura.nsi.jinja @@ -158,12 +158,10 @@ RmDir /r /REBOOTOK "$INSTDIR" !ifdef REG_START_MENU Delete "$SMPROGRAMS\${APP_NAME}.lnk" -Delete "$SMPROGRAMS\Uninstall ${APP_NAME}.lnk" !endif !ifndef REG_START_MENU Delete "$SMPROGRAMS\${APP_NAME}.lnk" -Delete "$SMPROGRAMS\Uninstall ${APP_NAME}.lnk" !endif !insertmacro APP_UNASSOCIATE "stl" "Cura.model" From 264a63103f81d3b43de3f32b37113a67d61477e4 Mon Sep 17 00:00:00 2001 From: GregValiant <64202104+GregValiant@users.noreply.github.com> Date: Mon, 12 May 2025 23:33:50 -0400 Subject: [PATCH 097/200] Update script Changed the inserted "G0 F Z" lines to "G1 F Z" so they match the existing Cura syntax. --- plugins/PostProcessingPlugin/scripts/ZHopOnTravel.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/PostProcessingPlugin/scripts/ZHopOnTravel.py b/plugins/PostProcessingPlugin/scripts/ZHopOnTravel.py index 588e642d4d..f6191f6cc9 100644 --- a/plugins/PostProcessingPlugin/scripts/ZHopOnTravel.py +++ b/plugins/PostProcessingPlugin/scripts/ZHopOnTravel.py @@ -397,7 +397,7 @@ class ZHopOnTravel(Script): reset_type += 4 if extra_prime_dist > 0 and hop_retraction: reset_type += 8 - up_lines = f"G0 F{speed_zhop} Z{round(self._cur_z + hop_height,2)} ; Hop Up" + up_lines = f"G1 F{speed_zhop} Z{round(self._cur_z + hop_height,2)} ; Hop Up" if reset_type in [1, 9] and hop_retraction: # add retract only when necessary up_lines = f"G1 F{retract_speed} E{round(self._cur_e - retraction_amount, 5)} ; Retract\n" + up_lines self._cur_e = round(self._cur_e - retraction_amount, 5) @@ -444,7 +444,7 @@ class ZHopOnTravel(Script): reset_type += 4 if extra_prime_dist > 0.0 and hop_retraction: reset_type += 8 - dn_lines = f"G0 F{speed_zhop} Z{self._cur_z} ; Hop Down" + dn_lines = f"G1 F{speed_zhop} Z{self._cur_z} ; Hop Down" # Format the line and return if the retraction option is unchecked if "G11" in next_line or re.search("G1 F(\d+\.\d+|\d+) E(-?\d+\.\d+|-?\d+)", next_line) and reset_type == 0: front_txt = dn_lines.split(";")[0] From bdc19d39e5a82fda5f73d036e4727600250eac73 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Mon, 19 May 2025 09:48:42 +0200 Subject: [PATCH 098/200] Add settings to setup multi-material painting CURA-12449 --- resources/definitions/fdmprinter.def.json | 29 +++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 6710d0f0bf..c5c25b1247 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -7915,6 +7915,35 @@ "resolve": "max(extruderValues('interlocking_boundary_avoidance'))", "settable_per_mesh": false, "settable_per_extruder": false + }, + "multi_material_paint_resolution": + { + "label": "Multi-material Precision", + "description": "The precision of the details when generating multi-material shapes based on painting data. A lower precision will provide more details, but increase the slicing time and memory.", + "unit": "mm", + "type": "float", + "enabled": "extruders_enabled_count > 1", + "default_value": "0.2", + "value": "line_width / 2", + "minimum_value": "0.1", + "maximum_value": "5", + "maximum_value_warning": "line_width * 2", + "settable_per_mesh": false, + "settable_per_extruder": false + }, + "multi_material_paint_deepness": + { + "label": "Multi-material Deepness", + "description": "The deepness of the painted details inside the model. A higher deepness will provide a better interlocking, but increase slicing time and memory. Set a very high value to go as deep as possible. The actually calculated deepness may vary.", + "unit": "mm", + "type": "float", + "enabled": "extruders_enabled_count > 1", + "default_value": "4", + "value": "line_width * 10", + "minimum_value": "line_width", + "minimum_value_warning": "line_width * 2", + "settable_per_mesh": false, + "settable_per_extruder": false } } }, From bdb771682dae54626cc217463e609c002a9a96ca Mon Sep 17 00:00:00 2001 From: GregValiant <64202104+GregValiant@users.noreply.github.com> Date: Wed, 21 May 2025 08:41:58 -0400 Subject: [PATCH 099/200] Update ZHopOnTravel.py Bug fix in line 505 that resulted in the first hop being the wrong Z. --- plugins/PostProcessingPlugin/scripts/ZHopOnTravel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/PostProcessingPlugin/scripts/ZHopOnTravel.py b/plugins/PostProcessingPlugin/scripts/ZHopOnTravel.py index f6191f6cc9..5d58c2d35e 100644 --- a/plugins/PostProcessingPlugin/scripts/ZHopOnTravel.py +++ b/plugins/PostProcessingPlugin/scripts/ZHopOnTravel.py @@ -502,7 +502,7 @@ class ZHopOnTravel(Script): This function tracks the XYZE locations prior to the beginning of the first 'layer-of-interest' """ - for num in range(2, start_index - 1): + for num in range(2, start_index): lines = data[num].split("\n") for line in lines: # Get the XYZ values from movement commands From 61523062178e53c99651a8f6787302dc9c7cf468 Mon Sep 17 00:00:00 2001 From: GregValiant <64202104+GregValiant@users.noreply.github.com> Date: Thu, 22 May 2025 12:12:42 -0400 Subject: [PATCH 100/200] Update DisplayInfoOnLCD.py Made some changes to the print stats that are added to the gcode. Update DisplayInfoOnLCD.py --- plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py index e016bbd3d6..0e3b52c81f 100644 --- a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py +++ b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py @@ -647,7 +647,8 @@ class DisplayInfoOnLCD(Script): filament_line_t0 += f"; Filament Type: {global_stack.extruderList[0].material.getMetaDataEntry("material", "")}\n" filament_line_t0 += f"; Filament Dia.: {global_stack.extruderList[0].getProperty("material_diameter", "value")}mm\n" filament_line_t0 += f"; Nozzle Size : {global_stack.extruderList[0].getProperty("machine_nozzle_size", "value")}mm\n" - filament_line_t0 += f"; Print Temp. : {global_stack.extruderList[0].getProperty("material_print_temperature", "value")}°" + filament_line_t0 += f"; Print Temp. : {global_stack.extruderList[0].getProperty("material_print_temperature", "value")}°\n" + filament_line_t0 += f"; Bed Temp. : {global_stack.extruderList[0].getProperty("material_bed_temperature", "value")}°" # if there is more than one extruder then get the stats for the second one. filament_line_t1 = "" @@ -668,6 +669,11 @@ class DisplayInfoOnLCD(Script): lines[index] += f"\n;Custom Quality Name: '{global_stack.qualityChanges.getMetaDataEntry("name")}'" if line.startswith(";Filament used"): lines[index] = filament_line_t0 + filament_line_t1 + # The target machine "machine_name" is actually the printer model. This adds the user defined printer name to the "TARGET_MACHINE" line. + if line.startswith(";TARGET_MACHINE"): + machine_model = str(global_stack.getProperty("machine_name", "value")) + machine_name = str(global_stack.getName()) + lines[index] += f" / {machine_name}" if "MINX" in line or "MIN.X" in line: # Add the Object List lines[index - 1] += f"\n;Model List: {str(model_list)}" From 3f16cc917af43905db5114f3437e6c1a7a7806e2 Mon Sep 17 00:00:00 2001 From: GregValiant <64202104+GregValiant@users.noreply.github.com> Date: Thu, 5 Jun 2025 07:19:07 -0400 Subject: [PATCH 101/200] Update ZHopOnTravel.py Bug fix for End_Layer when the entered layer > total layer count. Update ZHopOnTravel.py I'm not sure why git desktop did this. Update ZHopOnTravel.py I'm not sure why git desktop did this. Bug fix Bug fix for End_Layer when the entered layer > total layer count. Bug fix for 'index_list' when using a layer list. It now tracks the Z through the file rather than just the layers of interest. --- .../scripts/ZHopOnTravel.py | 98 ++++++++++++++++++- 1 file changed, 97 insertions(+), 1 deletion(-) diff --git a/plugins/PostProcessingPlugin/scripts/ZHopOnTravel.py b/plugins/PostProcessingPlugin/scripts/ZHopOnTravel.py index 5d58c2d35e..dd3d0296d7 100644 --- a/plugins/PostProcessingPlugin/scripts/ZHopOnTravel.py +++ b/plugins/PostProcessingPlugin/scripts/ZHopOnTravel.py @@ -192,7 +192,7 @@ class ZHopOnTravel(Script): elif list_or_range == "range_of_layers": start_layer = self.getSettingValueByKey("start_layer") end_layer = self.getSettingValueByKey("end_layer") - + end_index = None # Get the indexes for the start and end layers start_index = 2 for num in range(1, len(data) - 1): @@ -210,6 +210,8 @@ class ZHopOnTravel(Script): end_layer = data[num].splitlines()[0].split(":")[1] end_index = num break + if end_index == None: + end_index = len(data)-1 for num in range(start_index, end_index): index_list.append(num) @@ -247,6 +249,96 @@ class ZHopOnTravel(Script): # Make the insertions in_the_infill = False +<<<<<<< Updated upstream +<<<<<<< Updated upstream + for num in range(start_index, len(data)-1): + if num not in index_list: + lines = data[num].splitlines() + for line in lines: + if " Z" in line and self.getValue(line, "Z"): + self._cur_z = self.getValue(line, "Z") + continue + elif num in index_list: + lines = data[num].splitlines() + for index, line in enumerate(lines): + if num == 2: + if line.startswith(";TYPE"): + start_here = True + if line.startswith(";") and in_the_infill == True: + in_the_infill = False + if line.startswith(";TYPE:FILL"): + in_the_infill = True + if line.startswith("G92") and " E" in line: + self._cur_e = self.getValue(line, "E") + self._prev_e = self._cur_e + continue + # Get the XYZ values from movement commands + if line[0:3] in cmd_list: + if " X" in line and self.getValue(line, "X"): + self._prev_x = self._cur_x + self._cur_x = self.getValue(line, "X") + if " Y" in line and self.getValue(line, "Y"): + self._prev_y = self._cur_y + self._cur_y = self.getValue(line, "Y") + if " Z" in line and self.getValue(line, "Z"): + self._cur_z = self.getValue(line, "Z") + + # Check whether retractions have occured + if line[0:3] in ["G1 ", "G2 ", "G3 "] and "X" in line and "Y" in line and "E" in line: + self._is_retracted = False + self._cur_e = self.getValue(line, "E") + elif (line.startswith("G1") and "F" in line and "E" in line and not "X" in line or not "Y" in line) or "G10" in line: + if self.getValue(line, "E"): + self._cur_e = self.getValue(line, "E") + if not relative_extrusion: + if self._cur_e < self._prev_e or "G10" in line: + self._is_retracted = True + elif relative_extrusion: + if self._cur_e < 0 or "G10" in line: + self._is_retracted = True + if line.startswith(";TYPE"): + start_here = True + if not start_here: + continue + + # All travels are checked for their cumulative length + if line.startswith("G0 ") and hop_start == 0: + hop_indexes = self._total_travel_length(index, lines) + hop_start = int(hop_indexes[0]) + hop_end = int(hop_indexes[1]) + if infill_only and not in_the_infill: + hop_start = 0 + hop_end = 0 + if hop_start > 0: + # For any lines that are XYZ moves right before layer change + if " Z" in line: + lines[index] = lines[index].replace("Z" + str(self._cur_z), "Z" + str(self._cur_z + hop_height)) + # If there is no 'F' in the next line then add one at the Travel Speed so the z-hop speed doesn't carry over + if not " F" in lines[index] and lines[index].startswith("G0"): + lines[index] = lines[index].replace("G0", f"G0 F{speed_travel}") + if "X" in lines[index - 1] and "Y" in lines[index - 1] and "E" in lines[index - 1]: + self._is_retracted = False + hop_up_lines = self.get_hop_up_lines(retraction_amount, speed_zhop, retract_speed, extra_prime_dist, firmware_retract, relative_extrusion, hop_height) + lines[index] = hop_up_lines + lines[index] + + # Make the 'Zhop down' insertion at the correct index location (or as soon as practicable after it) + if hop_end > 0 and index >= hop_end: + # If there is no 'F' in the next line then add one to reinstate the Travel Speed (so the z-hop speed doesn't carry over through the travel moves) + if not " F" in lines[index] and lines[index].startswith("G0"): + lines[index] = lines[index].replace("G0", f"G0 F{speed_travel}") + hop_down_lines = self.get_hop_down_lines(retraction_amount, speed_zhop, retract_speed, prime_speed, extra_prime_dist, firmware_retract, relative_extrusion, hop_height, lines[index]) + lines[index] = hop_down_lines + lines[index] + self._is_retracted = False + hop_end = 0 + hop_start = 0 + hop_down_lines = "" + if line.startswith(";"): + continue + self._prev_e = self._cur_e + data[num] = "\n".join(lines) + "\n" +======= +======= +>>>>>>> Stashed changes for num in index_list: lines = data[num].splitlines() for index, line in enumerate(lines): @@ -325,6 +417,10 @@ class ZHopOnTravel(Script): continue self._prev_e = self._cur_e data[num] = "\n".join(lines) + "\n" +<<<<<<< Updated upstream +>>>>>>> Stashed changes +======= +>>>>>>> Stashed changes # Message to the user informing them of the number of Z-hops and retractions added hop_cnt = 0 From 81dc20ce1842e6ef20f5d483bbac36b75a17c842 Mon Sep 17 00:00:00 2001 From: GregValiant <64202104+GregValiant@users.noreply.github.com> Date: Sat, 7 Jun 2025 07:59:44 -0400 Subject: [PATCH 102/200] Update ZHopOnTravel.py Removed the Stashed Changes beginning and ends. Update ZHopOnTravel.py Add comments. --- .../scripts/ZHopOnTravel.py | 92 +------------------ 1 file changed, 5 insertions(+), 87 deletions(-) diff --git a/plugins/PostProcessingPlugin/scripts/ZHopOnTravel.py b/plugins/PostProcessingPlugin/scripts/ZHopOnTravel.py index dd3d0296d7..7ac57a308e 100644 --- a/plugins/PostProcessingPlugin/scripts/ZHopOnTravel.py +++ b/plugins/PostProcessingPlugin/scripts/ZHopOnTravel.py @@ -249,15 +249,18 @@ class ZHopOnTravel(Script): # Make the insertions in_the_infill = False -<<<<<<< Updated upstream -<<<<<<< Updated upstream for num in range(start_index, len(data)-1): + # Leave if the num > highest index number to speed up the script. + if num > index_list[len(index_list)-1]: + break + # If the num is not an "index of interest" then just track the Z through the layer if num not in index_list: lines = data[num].splitlines() for line in lines: if " Z" in line and self.getValue(line, "Z"): self._cur_z = self.getValue(line, "Z") continue + # If the num is in the index_list then make changes elif num in index_list: lines = data[num].splitlines() for index, line in enumerate(lines): @@ -336,91 +339,6 @@ class ZHopOnTravel(Script): continue self._prev_e = self._cur_e data[num] = "\n".join(lines) + "\n" -======= -======= ->>>>>>> Stashed changes - for num in index_list: - lines = data[num].splitlines() - for index, line in enumerate(lines): - if num == 2: - if line.startswith(";TYPE"): - start_here = True - if line.startswith(";") and in_the_infill == True: - in_the_infill = False - if line.startswith(";TYPE:FILL"): - in_the_infill = True - if line.startswith("G92") and " E" in line: - self._cur_e = self.getValue(line, "E") - self._prev_e = self._cur_e - continue - # Get the XYZ values from movement commands - if line[0:3] in cmd_list: - if " X" in line and self.getValue(line, "X"): - self._prev_x = self._cur_x - self._cur_x = self.getValue(line, "X") - if " Y" in line and self.getValue(line, "Y"): - self._prev_y = self._cur_y - self._cur_y = self.getValue(line, "Y") - if " Z" in line and self.getValue(line, "Z"): - self._cur_z = self.getValue(line, "Z") - - # Check whether retractions have occured - if line[0:3] in ["G1 ", "G2 ", "G3 "] and "X" in line and "Y" in line and "E" in line: - self._is_retracted = False - self._cur_e = self.getValue(line, "E") - elif (line.startswith("G1") and "F" in line and "E" in line and not "X" in line or not "Y" in line) or "G10" in line: - if self.getValue(line, "E"): - self._cur_e = self.getValue(line, "E") - if not relative_extrusion: - if self._cur_e < self._prev_e or "G10" in line: - self._is_retracted = True - elif relative_extrusion: - if self._cur_e < 0 or "G10" in line: - self._is_retracted = True - if line.startswith(";TYPE"): - start_here = True - if not start_here: - continue - - # All travels are checked for their cumulative length - if line.startswith("G0 ") and hop_start == 0: - hop_indexes = self._total_travel_length(index, lines) - hop_start = int(hop_indexes[0]) - hop_end = int(hop_indexes[1]) - if infill_only and not in_the_infill: - hop_start = 0 - hop_end = 0 - if hop_start > 0: - # For any lines that are XYZ moves right before layer change - if " Z" in line: - lines[index] = lines[index].replace("Z" + str(self._cur_z), "Z" + str(self._cur_z + hop_height)) - # If there is no 'F' in the next line then add one at the Travel Speed so the z-hop speed doesn't carry over - if not " F" in lines[index] and lines[index].startswith("G0"): - lines[index] = lines[index].replace("G0", f"G0 F{speed_travel}") - if "X" in lines[index - 1] and "Y" in lines[index - 1] and "E" in lines[index - 1]: - self._is_retracted = False - hop_up_lines = self.get_hop_up_lines(retraction_amount, speed_zhop, retract_speed, extra_prime_dist, firmware_retract, relative_extrusion, hop_height) - lines[index] = hop_up_lines + lines[index] - - # Make the 'Zhop down' insertion at the correct index location (or as soon as practicable after it) - if hop_end > 0 and index >= hop_end: - # If there is no 'F' in the next line then add one to reinstate the Travel Speed (so the z-hop speed doesn't carry over through the travel moves) - if not " F" in lines[index] and lines[index].startswith("G0"): - lines[index] = lines[index].replace("G0", f"G0 F{speed_travel}") - hop_down_lines = self.get_hop_down_lines(retraction_amount, speed_zhop, retract_speed, prime_speed, extra_prime_dist, firmware_retract, relative_extrusion, hop_height, lines[index]) - lines[index] = hop_down_lines + lines[index] - self._is_retracted = False - hop_end = 0 - hop_start = 0 - hop_down_lines = "" - if line.startswith(";"): - continue - self._prev_e = self._cur_e - data[num] = "\n".join(lines) + "\n" -<<<<<<< Updated upstream ->>>>>>> Stashed changes -======= ->>>>>>> Stashed changes # Message to the user informing them of the number of Z-hops and retractions added hop_cnt = 0 From e63243bca81e88655d09e3c20277f42315114216 Mon Sep 17 00:00:00 2001 From: GregValiant <64202104+GregValiant@users.noreply.github.com> Date: Sat, 7 Jun 2025 09:09:59 -0400 Subject: [PATCH 103/200] Update DisplayInfoOnLCD.py It turns out that some firmware doesn't like colons within M118 commands. --- plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py index 0e3b52c81f..89c76769c9 100644 --- a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py +++ b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py @@ -357,7 +357,7 @@ class DisplayInfoOnLCD(Script): orig_hr = round(orig_hhh // 1) orig_mmm = math.floor((orig_hhh % 1) * 60) if self.add_m118_line: - lines.insert(len(lines) - 2, f"M118 Adjusted Print Time: {hr} hr {mmm} min") + lines.insert(len(lines) - 2, f"M118 Adjusted Print Time is {hr} hr {mmm} min") if self.add_m117_line: lines.insert(len(lines) - 2, f"M117 ET {hr} hr {mmm} min") # Add M73 line at beginning From 187237519d758600461a94ad7709300d90c08af9 Mon Sep 17 00:00:00 2001 From: Frederic Meeuwissen <13856291+Frederic98@users.noreply.github.com> Date: Thu, 26 Jun 2025 16:21:03 +0200 Subject: [PATCH 104/200] [PP-574] Add BVOH profiles --- .../um_f4_bb0.4_bvoh_0.15mm.inst.cfg | 43 ++++++++++++++++++ .../um_f4_bb0.4_bvoh_0.1mm.inst.cfg | 43 ++++++++++++++++++ .../um_f4_bb0.4_bvoh_0.2mm.inst.cfg | 43 ++++++++++++++++++ .../um_f4_bb0.4_bvoh_0.3mm.inst.cfg | 44 +++++++++++++++++++ .../um_f4_bb0.8_bvoh_0.2mm.inst.cfg | 43 ++++++++++++++++++ .../um_f4_bb0.8_bvoh_0.3mm.inst.cfg | 43 ++++++++++++++++++ .../um_f4_bb0.8_bvoh_0.4mm.inst.cfg | 43 ++++++++++++++++++ .../um_s3_bb0.4_bvoh_0.15mm.inst.cfg | 35 +++++++++++++++ .../um_s3_bb0.4_bvoh_0.1mm.inst.cfg | 36 +++++++++++++++ .../um_s3_bb0.4_bvoh_0.2mm.inst.cfg | 35 +++++++++++++++ .../um_s3_bb0.4_bvoh_0.3mm.inst.cfg | 37 ++++++++++++++++ .../um_s3_bb0.8_bvoh_0.2mm.inst.cfg | 34 ++++++++++++++ .../um_s3_bb0.8_bvoh_0.3mm.inst.cfg | 36 +++++++++++++++ .../um_s3_bb0.8_bvoh_0.4mm.inst.cfg | 35 +++++++++++++++ .../um_s5_bb0.4_bvoh_0.15mm.inst.cfg | 35 +++++++++++++++ .../um_s5_bb0.4_bvoh_0.1mm.inst.cfg | 36 +++++++++++++++ .../um_s5_bb0.4_bvoh_0.2mm.inst.cfg | 35 +++++++++++++++ .../um_s5_bb0.4_bvoh_0.3mm.inst.cfg | 37 ++++++++++++++++ .../um_s5_bb0.8_bvoh_0.2mm.inst.cfg | 34 ++++++++++++++ .../um_s5_bb0.8_bvoh_0.3mm.inst.cfg | 36 +++++++++++++++ .../um_s5_bb0.8_bvoh_0.4mm.inst.cfg | 35 +++++++++++++++ .../um_s8_bb0.4_bvoh_0.15mm.inst.cfg | 35 +++++++++++++++ .../um_s8_bb0.4_bvoh_0.1mm.inst.cfg | 36 +++++++++++++++ .../um_s8_bb0.4_bvoh_0.2mm.inst.cfg | 35 +++++++++++++++ .../um_s8_bb0.4_bvoh_0.3mm.inst.cfg | 37 ++++++++++++++++ .../um_s8_bb0.8_bvoh_0.2mm.inst.cfg | 34 ++++++++++++++ .../um_s8_bb0.8_bvoh_0.3mm.inst.cfg | 36 +++++++++++++++ .../um_s8_bb0.8_bvoh_0.4mm.inst.cfg | 35 +++++++++++++++ 28 files changed, 1046 insertions(+) create mode 100644 resources/quality/ultimaker_factor4/um_f4_bb0.4_bvoh_0.15mm.inst.cfg create mode 100644 resources/quality/ultimaker_factor4/um_f4_bb0.4_bvoh_0.1mm.inst.cfg create mode 100644 resources/quality/ultimaker_factor4/um_f4_bb0.4_bvoh_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_factor4/um_f4_bb0.4_bvoh_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_factor4/um_f4_bb0.8_bvoh_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_factor4/um_f4_bb0.8_bvoh_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_factor4/um_f4_bb0.8_bvoh_0.4mm.inst.cfg create mode 100644 resources/quality/ultimaker_s3/um_s3_bb0.4_bvoh_0.15mm.inst.cfg create mode 100644 resources/quality/ultimaker_s3/um_s3_bb0.4_bvoh_0.1mm.inst.cfg create mode 100644 resources/quality/ultimaker_s3/um_s3_bb0.4_bvoh_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s3/um_s3_bb0.4_bvoh_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_s3/um_s3_bb0.8_bvoh_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s3/um_s3_bb0.8_bvoh_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_s3/um_s3_bb0.8_bvoh_0.4mm.inst.cfg create mode 100644 resources/quality/ultimaker_s5/um_s5_bb0.4_bvoh_0.15mm.inst.cfg create mode 100644 resources/quality/ultimaker_s5/um_s5_bb0.4_bvoh_0.1mm.inst.cfg create mode 100644 resources/quality/ultimaker_s5/um_s5_bb0.4_bvoh_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s5/um_s5_bb0.4_bvoh_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_s5/um_s5_bb0.8_bvoh_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s5/um_s5_bb0.8_bvoh_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_s5/um_s5_bb0.8_bvoh_0.4mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_bb0.4_bvoh_0.15mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_bb0.4_bvoh_0.1mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_bb0.4_bvoh_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_bb0.4_bvoh_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_bb0.8_bvoh_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_bb0.8_bvoh_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_bb0.8_bvoh_0.4mm.inst.cfg diff --git a/resources/quality/ultimaker_factor4/um_f4_bb0.4_bvoh_0.15mm.inst.cfg b/resources/quality/ultimaker_factor4/um_f4_bb0.4_bvoh_0.15mm.inst.cfg new file mode 100644 index 0000000000..c6548f0173 --- /dev/null +++ b/resources/quality/ultimaker_factor4/um_f4_bb0.4_bvoh_0.15mm.inst.cfg @@ -0,0 +1,43 @@ +[general] +definition = ultimaker_factor4 +name = Normal +version = 4 + +[metadata] +material = generic_bvoh +quality_type = fast +setting_version = 25 +type = quality +variant = BB 0.4 +weight = -1 + +[values] +acceleration_print = 1000.0 +acceleration_support_bottom = 100 +acceleration_support_interface = 1000 +brim_replaces_support = False +build_volume_temperature = =40 if extruders_enabled_count > 1 else 35 +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +gradual_flow_discretisation_step_size = 0.1 +gradual_flow_enabled = True +gradual_support_infill_steps = 0 +initial_layer_line_width_factor = 125 +jerk_print = 10 +material_flow_layer_0 = 90 +max_flow_acceleration = 1 +minimum_support_area = 4 +prime_tower_flow = 90 +prime_tower_min_volume = 15 +retraction_min_travel = 5.0 +retraction_prime_speed = 10.0 +skin_material_flow = =material_flow * 0.93 +speed_print = 30 +support_angle = 45 +support_infill_rate = 20 +support_infill_sparse_thickness = =min(layer_height * 2, machine_nozzle_size * 3 / 4) if layer_height <= 0.15 / 0.4 * machine_nozzle_size else layer_height +support_interface_offset = 1 +support_offset = 3 +support_xy_distance = 2 +support_z_distance = 0 +switch_extruder_prime_speed = 10.0 + diff --git a/resources/quality/ultimaker_factor4/um_f4_bb0.4_bvoh_0.1mm.inst.cfg b/resources/quality/ultimaker_factor4/um_f4_bb0.4_bvoh_0.1mm.inst.cfg new file mode 100644 index 0000000000..6f1b986c4e --- /dev/null +++ b/resources/quality/ultimaker_factor4/um_f4_bb0.4_bvoh_0.1mm.inst.cfg @@ -0,0 +1,43 @@ +[general] +definition = ultimaker_factor4 +name = Fine +version = 4 + +[metadata] +material = generic_bvoh +quality_type = normal +setting_version = 25 +type = quality +variant = BB 0.4 +weight = 0 + +[values] +acceleration_print = 1000.0 +acceleration_support_bottom = 100 +acceleration_support_interface = 1000 +brim_replaces_support = False +build_volume_temperature = =40 if extruders_enabled_count > 1 else 35 +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +gradual_flow_discretisation_step_size = 0.1 +gradual_flow_enabled = True +gradual_support_infill_steps = 0 +initial_layer_line_width_factor = 125 +jerk_print = 10 +material_flow_layer_0 = 90 +max_flow_acceleration = 1 +minimum_support_area = 4 +prime_tower_flow = 90 +prime_tower_min_volume = 15 +retraction_min_travel = 5.0 +retraction_prime_speed = 10.0 +skin_material_flow = =material_flow * 0.93 +speed_print = 30 +support_angle = 45 +support_infill_rate = 20 +support_infill_sparse_thickness = =min(layer_height * 2, machine_nozzle_size * 3 / 4) if layer_height <= 0.15 / 0.4 * machine_nozzle_size else layer_height +support_interface_offset = 1 +support_offset = 3 +support_xy_distance = 2 +support_z_distance = 0 +switch_extruder_prime_speed = 10.0 + diff --git a/resources/quality/ultimaker_factor4/um_f4_bb0.4_bvoh_0.2mm.inst.cfg b/resources/quality/ultimaker_factor4/um_f4_bb0.4_bvoh_0.2mm.inst.cfg new file mode 100644 index 0000000000..ff49315c1e --- /dev/null +++ b/resources/quality/ultimaker_factor4/um_f4_bb0.4_bvoh_0.2mm.inst.cfg @@ -0,0 +1,43 @@ +[general] +definition = ultimaker_factor4 +name = Fast +version = 4 + +[metadata] +material = generic_bvoh +quality_type = draft +setting_version = 25 +type = quality +variant = BB 0.4 +weight = -2 + +[values] +acceleration_print = 1000.0 +acceleration_support_bottom = 100 +acceleration_support_interface = 1000 +brim_replaces_support = False +build_volume_temperature = =40 if extruders_enabled_count > 1 else 35 +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +gradual_flow_discretisation_step_size = 0.1 +gradual_flow_enabled = True +gradual_support_infill_steps = 0 +initial_layer_line_width_factor = 125 +jerk_print = 10 +material_flow_layer_0 = 90 +max_flow_acceleration = 1 +minimum_support_area = 4 +prime_tower_flow = 90 +prime_tower_min_volume = 15 +retraction_min_travel = 5.0 +retraction_prime_speed = 10.0 +skin_material_flow = =material_flow * 0.93 +speed_print = 30 +support_angle = 45 +support_infill_rate = 20 +support_infill_sparse_thickness = =min(layer_height * 2, machine_nozzle_size * 3 / 4) if layer_height <= 0.15 / 0.4 * machine_nozzle_size else layer_height +support_interface_offset = 1 +support_offset = 3 +support_xy_distance = 2 +support_z_distance = 0 +switch_extruder_prime_speed = 10.0 + diff --git a/resources/quality/ultimaker_factor4/um_f4_bb0.4_bvoh_0.3mm.inst.cfg b/resources/quality/ultimaker_factor4/um_f4_bb0.4_bvoh_0.3mm.inst.cfg new file mode 100644 index 0000000000..209b16b697 --- /dev/null +++ b/resources/quality/ultimaker_factor4/um_f4_bb0.4_bvoh_0.3mm.inst.cfg @@ -0,0 +1,44 @@ +[general] +definition = ultimaker_factor4 +name = Extra Fast - Experimental +version = 4 + +[metadata] +is_experimental = True +material = generic_bvoh +quality_type = verydraft +setting_version = 25 +type = quality +variant = BB 0.4 +weight = -3 + +[values] +acceleration_print = 1000.0 +acceleration_support_bottom = 100 +acceleration_support_interface = 1000 +brim_replaces_support = False +build_volume_temperature = =40 if extruders_enabled_count > 1 else 35 +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +gradual_flow_discretisation_step_size = 0.1 +gradual_flow_enabled = True +gradual_support_infill_steps = 0 +initial_layer_line_width_factor = 125 +jerk_print = 10 +material_flow_layer_0 = 90 +max_flow_acceleration = 1 +minimum_support_area = 4 +prime_tower_flow = 90 +prime_tower_min_volume = 15 +retraction_min_travel = 5.0 +retraction_prime_speed = 10.0 +skin_material_flow = =material_flow * 0.93 +speed_print = 30 +support_angle = 45 +support_infill_rate = 20 +support_infill_sparse_thickness = =min(layer_height * 2, machine_nozzle_size * 3 / 4) if layer_height <= 0.15 / 0.4 * machine_nozzle_size else layer_height +support_interface_offset = 1 +support_offset = 3 +support_xy_distance = 2 +support_z_distance = 0 +switch_extruder_prime_speed = 10.0 + diff --git a/resources/quality/ultimaker_factor4/um_f4_bb0.8_bvoh_0.2mm.inst.cfg b/resources/quality/ultimaker_factor4/um_f4_bb0.8_bvoh_0.2mm.inst.cfg new file mode 100644 index 0000000000..d10b0c939e --- /dev/null +++ b/resources/quality/ultimaker_factor4/um_f4_bb0.8_bvoh_0.2mm.inst.cfg @@ -0,0 +1,43 @@ +[general] +definition = ultimaker_factor4 +name = Fast +version = 4 + +[metadata] +material = generic_bvoh +quality_type = draft +setting_version = 25 +type = quality +variant = BB 0.8 +weight = -2 + +[values] +acceleration_print = 1000.0 +acceleration_support_bottom = 100 +acceleration_support_interface = 1000 +brim_replaces_support = False +build_volume_temperature = =40 if extruders_enabled_count > 1 else 35 +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +gradual_flow_discretisation_step_size = 0.1 +gradual_flow_enabled = True +gradual_support_infill_steps = 0 +initial_layer_line_width_factor = 125 +jerk_print = 10 +material_flow_layer_0 = 90 +max_flow_acceleration = 1 +minimum_support_area = 4 +prime_tower_flow = 90 +prime_tower_min_volume = 15 +retraction_min_travel = 5.0 +retraction_prime_speed = 10.0 +skin_material_flow = =material_flow * 0.93 +speed_print = 30 +support_angle = 45 +support_infill_rate = 20 +support_infill_sparse_thickness = =min(layer_height * 2, machine_nozzle_size * 3 / 4) if layer_height <= 0.15 / 0.4 * machine_nozzle_size else layer_height +support_interface_offset = 1 +support_offset = 3 +support_xy_distance = 2 +support_z_distance = 0 +switch_extruder_prime_speed = 10.0 + diff --git a/resources/quality/ultimaker_factor4/um_f4_bb0.8_bvoh_0.3mm.inst.cfg b/resources/quality/ultimaker_factor4/um_f4_bb0.8_bvoh_0.3mm.inst.cfg new file mode 100644 index 0000000000..dd2e2da565 --- /dev/null +++ b/resources/quality/ultimaker_factor4/um_f4_bb0.8_bvoh_0.3mm.inst.cfg @@ -0,0 +1,43 @@ +[general] +definition = ultimaker_factor4 +name = Extra Fast +version = 4 + +[metadata] +material = generic_bvoh +quality_type = verydraft +setting_version = 25 +type = quality +variant = BB 0.8 +weight = -3 + +[values] +acceleration_print = 1000.0 +acceleration_support_bottom = 100 +acceleration_support_interface = 1000 +brim_replaces_support = False +build_volume_temperature = =40 if extruders_enabled_count > 1 else 35 +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +gradual_flow_discretisation_step_size = 0.1 +gradual_flow_enabled = True +gradual_support_infill_steps = 0 +initial_layer_line_width_factor = 125 +jerk_print = 10 +material_flow_layer_0 = 90 +max_flow_acceleration = 1 +minimum_support_area = 4 +prime_tower_flow = 90 +prime_tower_min_volume = 15 +retraction_min_travel = 5.0 +retraction_prime_speed = 10.0 +skin_material_flow = =material_flow * 0.93 +speed_print = 30 +support_angle = 45 +support_infill_rate = 20 +support_infill_sparse_thickness = =min(layer_height * 2, machine_nozzle_size * 3 / 4) if layer_height <= 0.15 / 0.4 * machine_nozzle_size else layer_height +support_interface_offset = 1 +support_offset = 3 +support_xy_distance = 2 +support_z_distance = 0 +switch_extruder_prime_speed = 10.0 + diff --git a/resources/quality/ultimaker_factor4/um_f4_bb0.8_bvoh_0.4mm.inst.cfg b/resources/quality/ultimaker_factor4/um_f4_bb0.8_bvoh_0.4mm.inst.cfg new file mode 100644 index 0000000000..fa230a1f5f --- /dev/null +++ b/resources/quality/ultimaker_factor4/um_f4_bb0.8_bvoh_0.4mm.inst.cfg @@ -0,0 +1,43 @@ +[general] +definition = ultimaker_factor4 +name = Sprint +version = 4 + +[metadata] +material = generic_bvoh +quality_type = superdraft +setting_version = 25 +type = quality +variant = BB 0.8 +weight = -4 + +[values] +acceleration_print = 1000.0 +acceleration_support_bottom = 100 +acceleration_support_interface = 1000 +brim_replaces_support = False +build_volume_temperature = =40 if extruders_enabled_count > 1 else 35 +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +gradual_flow_discretisation_step_size = 0.1 +gradual_flow_enabled = True +gradual_support_infill_steps = 0 +initial_layer_line_width_factor = 125 +jerk_print = 10 +material_flow_layer_0 = 90 +max_flow_acceleration = 1 +minimum_support_area = 4 +prime_tower_flow = 90 +prime_tower_min_volume = 15 +retraction_min_travel = 5.0 +retraction_prime_speed = 10.0 +skin_material_flow = =material_flow * 0.93 +speed_print = 30 +support_angle = 45 +support_infill_rate = 20 +support_infill_sparse_thickness = =min(layer_height * 2, machine_nozzle_size * 3 / 4) if layer_height <= 0.15 / 0.4 * machine_nozzle_size else layer_height +support_interface_offset = 1 +support_offset = 3 +support_xy_distance = 2 +support_z_distance = 0 +switch_extruder_prime_speed = 10.0 + diff --git a/resources/quality/ultimaker_s3/um_s3_bb0.4_bvoh_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_bb0.4_bvoh_0.15mm.inst.cfg new file mode 100644 index 0000000000..93c1d4947d --- /dev/null +++ b/resources/quality/ultimaker_s3/um_s3_bb0.4_bvoh_0.15mm.inst.cfg @@ -0,0 +1,35 @@ +[general] +definition = ultimaker_s3 +name = Normal +version = 4 + +[metadata] +material = generic_bvoh +quality_type = fast +setting_version = 25 +type = quality +variant = BB 0.4 +weight = -1 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 20 +jerk_support = 20 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_infill_sparse_thickness = =2 * layer_height +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s3/um_s3_bb0.4_bvoh_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_bb0.4_bvoh_0.1mm.inst.cfg new file mode 100644 index 0000000000..f06f8deb6f --- /dev/null +++ b/resources/quality/ultimaker_s3/um_s3_bb0.4_bvoh_0.1mm.inst.cfg @@ -0,0 +1,36 @@ +[general] +definition = ultimaker_s3 +name = Fine +version = 4 + +[metadata] +material = generic_bvoh +quality_type = normal +setting_version = 25 +type = quality +variant = BB 0.4 +weight = 0 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 20 +jerk_support = 20 +material_print_temperature = =default_material_print_temperature - 5 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_infill_sparse_thickness = =2 * layer_height +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s3/um_s3_bb0.4_bvoh_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_bb0.4_bvoh_0.2mm.inst.cfg new file mode 100644 index 0000000000..61059651ef --- /dev/null +++ b/resources/quality/ultimaker_s3/um_s3_bb0.4_bvoh_0.2mm.inst.cfg @@ -0,0 +1,35 @@ +[general] +definition = ultimaker_s3 +name = Fast +version = 4 + +[metadata] +material = generic_bvoh +quality_type = draft +setting_version = 25 +type = quality +variant = BB 0.4 +weight = -2 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 20 +jerk_support = 20 +material_print_temperature = =default_material_print_temperature + 5 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s3/um_s3_bb0.4_bvoh_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_bb0.4_bvoh_0.3mm.inst.cfg new file mode 100644 index 0000000000..8f06dd0562 --- /dev/null +++ b/resources/quality/ultimaker_s3/um_s3_bb0.4_bvoh_0.3mm.inst.cfg @@ -0,0 +1,37 @@ +[general] +definition = ultimaker_s3 +name = Extra Fast - Experimental +version = 4 + +[metadata] +is_experimental = True +material = generic_bvoh +quality_type = verydraft +setting_version = 25 +type = quality +variant = BB 0.4 +weight = -3 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 20 +jerk_support = 20 +material_print_temperature = =default_material_print_temperature - 5 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_infill_sparse_thickness = 0.3 +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s3/um_s3_bb0.8_bvoh_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_bb0.8_bvoh_0.2mm.inst.cfg new file mode 100644 index 0000000000..a9d67b0552 --- /dev/null +++ b/resources/quality/ultimaker_s3/um_s3_bb0.8_bvoh_0.2mm.inst.cfg @@ -0,0 +1,34 @@ +[general] +definition = ultimaker_s3 +name = Fast +version = 4 + +[metadata] +material = generic_bvoh +quality_type = draft +setting_version = 25 +type = quality +variant = BB 0.8 +weight = -2 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 20 +jerk_support = 20 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s3/um_s3_bb0.8_bvoh_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_bb0.8_bvoh_0.3mm.inst.cfg new file mode 100644 index 0000000000..016887c23c --- /dev/null +++ b/resources/quality/ultimaker_s3/um_s3_bb0.8_bvoh_0.3mm.inst.cfg @@ -0,0 +1,36 @@ +[general] +definition = ultimaker_s3 +name = Extra Fast +version = 4 + +[metadata] +material = generic_bvoh +quality_type = verydraft +setting_version = 25 +type = quality +variant = BB 0.8 +weight = -3 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 20 +jerk_support = 20 +material_print_temperature = =default_material_print_temperature + 5 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_infill_sparse_thickness = 0.3 +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s3/um_s3_bb0.8_bvoh_0.4mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_bb0.8_bvoh_0.4mm.inst.cfg new file mode 100644 index 0000000000..4d4bffbab9 --- /dev/null +++ b/resources/quality/ultimaker_s3/um_s3_bb0.8_bvoh_0.4mm.inst.cfg @@ -0,0 +1,35 @@ +[general] +definition = ultimaker_s3 +name = Sprint +version = 4 + +[metadata] +material = generic_bvoh +quality_type = superdraft +setting_version = 25 +type = quality +variant = BB 0.8 +weight = -4 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 20 +jerk_support = 20 +material_print_temperature = =default_material_print_temperature + 5 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.4_bvoh_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.4_bvoh_0.15mm.inst.cfg new file mode 100644 index 0000000000..e5dc8e7295 --- /dev/null +++ b/resources/quality/ultimaker_s5/um_s5_bb0.4_bvoh_0.15mm.inst.cfg @@ -0,0 +1,35 @@ +[general] +definition = ultimaker_s5 +name = Normal +version = 4 + +[metadata] +material = generic_bvoh +quality_type = fast +setting_version = 25 +type = quality +variant = BB 0.4 +weight = -1 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 20 +jerk_support = 20 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_infill_sparse_thickness = =2 * layer_height +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.4_bvoh_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.4_bvoh_0.1mm.inst.cfg new file mode 100644 index 0000000000..ed7638a4e0 --- /dev/null +++ b/resources/quality/ultimaker_s5/um_s5_bb0.4_bvoh_0.1mm.inst.cfg @@ -0,0 +1,36 @@ +[general] +definition = ultimaker_s5 +name = Fine +version = 4 + +[metadata] +material = generic_bvoh +quality_type = normal +setting_version = 25 +type = quality +variant = BB 0.4 +weight = 0 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 20 +jerk_support = 20 +material_print_temperature = =default_material_print_temperature - 5 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_infill_sparse_thickness = =2 * layer_height +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.4_bvoh_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.4_bvoh_0.2mm.inst.cfg new file mode 100644 index 0000000000..1d02c886bc --- /dev/null +++ b/resources/quality/ultimaker_s5/um_s5_bb0.4_bvoh_0.2mm.inst.cfg @@ -0,0 +1,35 @@ +[general] +definition = ultimaker_s5 +name = Fast +version = 4 + +[metadata] +material = generic_bvoh +quality_type = draft +setting_version = 25 +type = quality +variant = BB 0.4 +weight = -2 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 20 +jerk_support = 20 +material_print_temperature = =default_material_print_temperature + 5 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.4_bvoh_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.4_bvoh_0.3mm.inst.cfg new file mode 100644 index 0000000000..b759ae0bb3 --- /dev/null +++ b/resources/quality/ultimaker_s5/um_s5_bb0.4_bvoh_0.3mm.inst.cfg @@ -0,0 +1,37 @@ +[general] +definition = ultimaker_s5 +name = Extra Fast - Experimental +version = 4 + +[metadata] +is_experimental = True +material = generic_bvoh +quality_type = verydraft +setting_version = 25 +type = quality +variant = BB 0.4 +weight = -3 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 20 +jerk_support = 20 +material_print_temperature = =default_material_print_temperature - 5 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_infill_sparse_thickness = 0.3 +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.8_bvoh_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.8_bvoh_0.2mm.inst.cfg new file mode 100644 index 0000000000..58875826ad --- /dev/null +++ b/resources/quality/ultimaker_s5/um_s5_bb0.8_bvoh_0.2mm.inst.cfg @@ -0,0 +1,34 @@ +[general] +definition = ultimaker_s5 +name = Fast +version = 4 + +[metadata] +material = generic_bvoh +quality_type = draft +setting_version = 25 +type = quality +variant = BB 0.8 +weight = -2 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 20 +jerk_support = 20 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.8_bvoh_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.8_bvoh_0.3mm.inst.cfg new file mode 100644 index 0000000000..74b33f5366 --- /dev/null +++ b/resources/quality/ultimaker_s5/um_s5_bb0.8_bvoh_0.3mm.inst.cfg @@ -0,0 +1,36 @@ +[general] +definition = ultimaker_s5 +name = Extra Fast +version = 4 + +[metadata] +material = generic_bvoh +quality_type = verydraft +setting_version = 25 +type = quality +variant = BB 0.8 +weight = -3 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 20 +jerk_support = 20 +material_print_temperature = =default_material_print_temperature + 5 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_infill_sparse_thickness = 0.3 +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.8_bvoh_0.4mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.8_bvoh_0.4mm.inst.cfg new file mode 100644 index 0000000000..cd501dcf0e --- /dev/null +++ b/resources/quality/ultimaker_s5/um_s5_bb0.8_bvoh_0.4mm.inst.cfg @@ -0,0 +1,35 @@ +[general] +definition = ultimaker_s5 +name = Sprint +version = 4 + +[metadata] +material = generic_bvoh +quality_type = superdraft +setting_version = 25 +type = quality +variant = BB 0.8 +weight = -4 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 20 +jerk_support = 20 +material_print_temperature = =default_material_print_temperature + 5 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s8/um_s8_bb0.4_bvoh_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_bb0.4_bvoh_0.15mm.inst.cfg new file mode 100644 index 0000000000..e10db6b743 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_bb0.4_bvoh_0.15mm.inst.cfg @@ -0,0 +1,35 @@ +[general] +definition = ultimaker_s8 +name = Normal +version = 4 + +[metadata] +material = generic_bvoh +quality_type = fast +setting_version = 25 +type = quality +variant = BB 0.4 +weight = -1 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 4000 +jerk_support = 4000 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_infill_sparse_thickness = =2 * layer_height +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s8/um_s8_bb0.4_bvoh_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_bb0.4_bvoh_0.1mm.inst.cfg new file mode 100644 index 0000000000..9c5d0e9bd8 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_bb0.4_bvoh_0.1mm.inst.cfg @@ -0,0 +1,36 @@ +[general] +definition = ultimaker_s8 +name = Fine +version = 4 + +[metadata] +material = generic_bvoh +quality_type = normal +setting_version = 25 +type = quality +variant = BB 0.4 +weight = 0 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 4000 +jerk_support = 4000 +material_print_temperature = =default_material_print_temperature - 5 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_infill_sparse_thickness = =2 * layer_height +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s8/um_s8_bb0.4_bvoh_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_bb0.4_bvoh_0.2mm.inst.cfg new file mode 100644 index 0000000000..8f4c52d7b5 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_bb0.4_bvoh_0.2mm.inst.cfg @@ -0,0 +1,35 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = generic_bvoh +quality_type = draft +setting_version = 25 +type = quality +variant = BB 0.4 +weight = -2 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 4000 +jerk_support = 4000 +material_print_temperature = =default_material_print_temperature + 5 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s8/um_s8_bb0.4_bvoh_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_bb0.4_bvoh_0.3mm.inst.cfg new file mode 100644 index 0000000000..e37500de1a --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_bb0.4_bvoh_0.3mm.inst.cfg @@ -0,0 +1,37 @@ +[general] +definition = ultimaker_s8 +name = Extra Fast - Experimental +version = 4 + +[metadata] +is_experimental = True +material = generic_bvoh +quality_type = verydraft +setting_version = 25 +type = quality +variant = BB 0.4 +weight = -3 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 4000 +jerk_support = 4000 +material_print_temperature = =default_material_print_temperature - 5 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_infill_sparse_thickness = 0.3 +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s8/um_s8_bb0.8_bvoh_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_bb0.8_bvoh_0.2mm.inst.cfg new file mode 100644 index 0000000000..9a8e2a51c4 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_bb0.8_bvoh_0.2mm.inst.cfg @@ -0,0 +1,34 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = generic_bvoh +quality_type = draft +setting_version = 25 +type = quality +variant = BB 0.8 +weight = -2 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 4000 +jerk_support = 4000 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s8/um_s8_bb0.8_bvoh_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_bb0.8_bvoh_0.3mm.inst.cfg new file mode 100644 index 0000000000..f325937cb9 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_bb0.8_bvoh_0.3mm.inst.cfg @@ -0,0 +1,36 @@ +[general] +definition = ultimaker_s8 +name = Extra Fast +version = 4 + +[metadata] +material = generic_bvoh +quality_type = verydraft +setting_version = 25 +type = quality +variant = BB 0.8 +weight = -3 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 4000 +jerk_support = 4000 +material_print_temperature = =default_material_print_temperature + 5 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_infill_sparse_thickness = 0.3 +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s8/um_s8_bb0.8_bvoh_0.4mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_bb0.8_bvoh_0.4mm.inst.cfg new file mode 100644 index 0000000000..e26028fdc1 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_bb0.8_bvoh_0.4mm.inst.cfg @@ -0,0 +1,35 @@ +[general] +definition = ultimaker_s8 +name = Sprint +version = 4 + +[metadata] +material = generic_bvoh +quality_type = superdraft +setting_version = 25 +type = quality +variant = BB 0.8 +weight = -4 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 4000 +jerk_support = 4000 +material_print_temperature = =default_material_print_temperature + 5 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_interface_enable = True +support_z_distance = 0 + From 3ad2c1b5788466412e17f23840deb9197ba9e19e Mon Sep 17 00:00:00 2001 From: GregValiant <64202104+GregValiant@users.noreply.github.com> Date: Mon, 30 Jun 2025 21:39:03 -0400 Subject: [PATCH 105/200] Update DisplayInfoOnLCD.py Add "Electricity Cost" to the statistics added to the gcode. Update DisplayInfoOnLCD.py Formatting changes for layer heights --- .../scripts/DisplayInfoOnLCD.py | 45 ++++++++++++++++--- 1 file changed, 38 insertions(+), 7 deletions(-) diff --git a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py index 89c76769c9..ddf292fb85 100644 --- a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py +++ b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py @@ -29,6 +29,7 @@ Display Filename and Layer on the LCD by Amanda de Castilho on August 28, 2018 - 'Add M118 Line' is available with either option. M118 will bounce the message back to a remote print server through the USB connection. - 'Add M73 Line' is used by 'Display Progress' only. There are options to incluse M73 P(percent) and M73 R(time remaining) - Enable 'Finish-Time' Message - when enabled, takes the Print Time and calculates when the print will end. It uses the Time Fudge Factor. The user may enter a print start time. +Date: June 30, 2025 Cost of electricity added to the other print statistics in '_add_stats'. """ from ..Script import Script @@ -37,6 +38,7 @@ from UM.Qt.Duration import DurationFormat import time import datetime import math +from UM.Preferences import Preferences from UM.Message import Message class DisplayInfoOnLCD(Script): @@ -234,7 +236,26 @@ class DisplayInfoOnLCD(Script): "default_value": "", "unit": "hrs ", "enabled": "enable_end_message" + }, + "electricity_cost": + { + "label": "Electricity Cost per kWh", + "description": "Cost of electricity per kilowatt-hour. This should be on your electric utility bill.", + "type": "float", + "default_value": 0.151, + "minimum_value": 0, + "unit": "€/kWh " + }, + "printer_power_usage": + { + "label": "Printer Power Usage", + "description": "Average power usage of the 3D printer in Watts. The actual wattage has many variables. 50% of the power supply rating would be a ballpark figure.", + "type": "float", + "default_value": 175, + "minimum_value": 0, + "unit": "Watts " } + } }""" @@ -249,6 +270,11 @@ class DisplayInfoOnLCD(Script): self.add_m73_time = self.getSettingValueByKey("add_m73_time") self.add_m73_percent = self.getSettingValueByKey("add_m73_percent") self.m73_str = "" + para_1 = data[0].split("\n") + for line in para_1: + if line.startswith(";TIME:"): + self.time_total = int(line.split(":")[1]) + break if display_option == "filename_layer": data = self._display_filename_layer(data) else: @@ -337,7 +363,6 @@ class DisplayInfoOnLCD(Script): data[len(data)-1] += "M77\n" # Initialize some variables first_layer_index = 0 - time_total = int(data[0].split(";TIME:")[1].split("\n")[0]) number_of_layers = 0 time_elapsed = 0 @@ -418,8 +443,6 @@ class DisplayInfoOnLCD(Script): for lay in range(2,len(data)-1,1): if ";LAYER:" in data[lay]: number_of_layers += 1 - elif line.startswith(";TIME:"): - time_total = int(line.split(":")[1]) # for all layers... current_layer = 0 for layer_counter in range(len(data)-2): @@ -438,7 +461,7 @@ class DisplayInfoOnLCD(Script): # if display_remaining_time is checked, it is calculated in this loop if display_remaining_time: time_remaining_display = " | ET " # initialize the time display - m = (time_total - time_elapsed) // 60 # estimated time in minutes + m = (self.time_total - time_elapsed) // 60 # estimated time in minutes m *= speed_factor # correct for printing time m = int(m) h, m = divmod(m, 60) # convert to hours and minutes @@ -640,7 +663,8 @@ class DisplayInfoOnLCD(Script): model_list.append(model_name) # Filament stats extruder_count = global_stack.getProperty("machine_extruder_count", "value") - init_layer_hgt_line = ";Initial Layer Height: " + str(global_stack.getProperty("layer_height_0", "value")) + layheight_0 = global_stack.getProperty("layer_height_0", "value") + init_layer_hgt_line = ";Initial Layer Height: " + f"{layheight_0:.2f}".format(layheight_0) filament_line_t0 = ";Extruder 1 (T0)\n" filament_amount = Application.getInstance().getPrintInformation().materialLengths filament_line_t0 += f"; Filament used: {filament_amount[0]}m\n" @@ -659,16 +683,23 @@ class DisplayInfoOnLCD(Script): filament_line_t1 += f"; Filament Dia.: {global_stack.extruderList[1].getProperty("material_diameter", "value")}mm\n" filament_line_t1 += f"; Nozzle Size : {global_stack.extruderList[1].getProperty("machine_nozzle_size", "value")}mm\n" filament_line_t1 += f"; Print Temp. : {global_stack.extruderList[1].getProperty("material_print_temperature", "value")}°" - + + # Calculate the cost of electricity for the print + electricity_cost = self.getSettingValueByKey("electricity_cost") + printer_power_usage = self.getSettingValueByKey("printer_power_usage") + currency_unit = Application.getInstance().getPreferences().getValue("cura/currency") + total_cost_electricity = (printer_power_usage / 1000) * (self.time_total / 3600) * electricity_cost + # Add the stats to the gcode file lines = data[0].split("\n") for index, line in enumerate(lines): if line.startswith(";Layer height:"): + lines[index] = ";Layer height: " + f"{float(line.split(":")[1]):.2f}".format(float(line.split(":")[1])) lines[index] += f"\n{init_layer_hgt_line}" lines[index] += f"\n;Base Quality Name : '{global_stack.quality.getMetaDataEntry("name", "")}'" lines[index] += f"\n;Custom Quality Name: '{global_stack.qualityChanges.getMetaDataEntry("name")}'" if line.startswith(";Filament used"): - lines[index] = filament_line_t0 + filament_line_t1 + lines[index] = filament_line_t0 + filament_line_t1 + f"\n;Electric Cost: {currency_unit}{total_cost_electricity:.2f}".format(total_cost_electricity) # The target machine "machine_name" is actually the printer model. This adds the user defined printer name to the "TARGET_MACHINE" line. if line.startswith(";TARGET_MACHINE"): machine_model = str(global_stack.getProperty("machine_name", "value")) From 8163d497be3f4e219357686b93e9793db2125b6f Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Fri, 4 Jul 2025 17:18:46 +0200 Subject: [PATCH 106/200] Add basic mode to paint on material CURA-12449 --- plugins/PaintTool/PaintTool.qml | 8 ++++++++ plugins/PaintTool/PaintView.py | 1 + 2 files changed, 9 insertions(+) diff --git a/plugins/PaintTool/PaintTool.qml b/plugins/PaintTool/PaintTool.qml index 4cbe9d4ade..51eb61aea1 100644 --- a/plugins/PaintTool/PaintTool.qml +++ b/plugins/PaintTool/PaintTool.qml @@ -58,6 +58,14 @@ Item tooltipText: catalog.i18nc("@tooltip", "Refine support placement by defining preferred/avoidance areas") mode: "support" } + + PaintModeButton + { + text: catalog.i18nc("@action:button", "Material") + icon: "Extruder" + tooltipText: catalog.i18nc("@tooltip", "Paint on model to select the material to be used") + mode: "extruder" + } } //Line between the sections. diff --git a/plugins/PaintTool/PaintView.py b/plugins/PaintTool/PaintView.py index 22eb8c55f6..e4e5a5d599 100644 --- a/plugins/PaintTool/PaintView.py +++ b/plugins/PaintTool/PaintView.py @@ -54,6 +54,7 @@ class PaintView(View): self._paint_modes = { "seam": usual_types, "support": usual_types, + "extruder": usual_types, } def _checkSetup(self): From cef22c5ca743a3d82ea22c8f95719e72cb27f22c Mon Sep 17 00:00:00 2001 From: THeijmans Date: Wed, 16 Jul 2025 13:33:02 +0200 Subject: [PATCH 107/200] PP-658 Fix BVT temperature limits based on thermal model F4 --- resources/definitions/ultimaker_factor4.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/ultimaker_factor4.def.json b/resources/definitions/ultimaker_factor4.def.json index 710ee29a40..07ff2b7cf8 100644 --- a/resources/definitions/ultimaker_factor4.def.json +++ b/resources/definitions/ultimaker_factor4.def.json @@ -74,8 +74,8 @@ { "maximum_value": "max(35, min((material_bed_temperature + 20) / 2, 70))", "maximum_value_warning": "max(30, min((material_bed_temperature + 10) / 2, 70))", - "minimum_value": "max((material_bed_temperature - 30) / 2, 30)", - "minimum_value_warning": "max((material_bed_temperature - 20) / 2, 30)" + "minimum_value": "max((material_bed_temperature - 40) / 1.5, 30)", + "minimum_value_warning": "max((material_bed_temperature - 35) / 1.5, 30)" }, "cool_min_layer_time": { "value": 3 }, "cool_min_layer_time_fan_speed_max": { "value": "cool_min_layer_time + 12" }, From f6486bdffcf06984ea613fce22c3fac31be3bc79 Mon Sep 17 00:00:00 2001 From: GregValiant <64202104+GregValiant@users.noreply.github.com> Date: Fri, 1 Aug 2025 14:28:38 -0400 Subject: [PATCH 108/200] Update DisplayInfoOnLCD.py If the printer was a UM then the statistics and model list weren't being added. This is the fix. --- plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py index ddf292fb85..a7578e3565 100644 --- a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py +++ b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py @@ -40,6 +40,7 @@ import datetime import math from UM.Preferences import Preferences from UM.Message import Message +from UM.Logger import Logger class DisplayInfoOnLCD(Script): @@ -272,7 +273,7 @@ class DisplayInfoOnLCD(Script): self.m73_str = "" para_1 = data[0].split("\n") for line in para_1: - if line.startswith(";TIME:"): + if line.startswith(";TIME:") or line.startswith(";PRINT.TIME:"): self.time_total = int(line.split(":")[1]) break if display_option == "filename_layer": @@ -693,8 +694,8 @@ class DisplayInfoOnLCD(Script): # Add the stats to the gcode file lines = data[0].split("\n") for index, line in enumerate(lines): - if line.startswith(";Layer height:"): - lines[index] = ";Layer height: " + f"{float(line.split(":")[1]):.2f}".format(float(line.split(":")[1])) + if line.startswith(";Layer height:") or line.startswith(";TARGET_MACHINE.NAME:"): + lines[index] = ";Layer height: " + f"{global_stack.getProperty("layer_height", "value")}" lines[index] += f"\n{init_layer_hgt_line}" lines[index] += f"\n;Base Quality Name : '{global_stack.quality.getMetaDataEntry("name", "")}'" lines[index] += f"\n;Custom Quality Name: '{global_stack.qualityChanges.getMetaDataEntry("name")}'" From 8c3c36b241819a662f4fc97346f62990cd3ed047 Mon Sep 17 00:00:00 2001 From: GregValiant <64202104+GregValiant@users.noreply.github.com> Date: Sat, 2 Aug 2025 14:04:29 -0400 Subject: [PATCH 109/200] Update DisplayInfoOnLCD.py Changes per Reviewer request. --- plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py index a7578e3565..edfa9d8632 100644 --- a/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py +++ b/plugins/PostProcessingPlugin/scripts/DisplayInfoOnLCD.py @@ -38,9 +38,7 @@ from UM.Qt.Duration import DurationFormat import time import datetime import math -from UM.Preferences import Preferences from UM.Message import Message -from UM.Logger import Logger class DisplayInfoOnLCD(Script): @@ -286,6 +284,7 @@ class DisplayInfoOnLCD(Script): def _display_filename_layer(self, data: str) -> str: data[0] = self._add_stats(data) max_layer = 0 + format_option = self.getSettingValueByKey("format_option") lcd_text = "M117 " octo_text = "M118 " if self.getSettingValueByKey("file_name") != "": @@ -295,7 +294,7 @@ class DisplayInfoOnLCD(Script): if self.getSettingValueByKey("addPrefixPrinting"): lcd_text += "Printing " octo_text += "Printing " - if not self.getSettingValueByKey("scroll"): + if not format_option: lcd_text += "Lay " octo_text += "Layer " else: @@ -317,11 +316,11 @@ class DisplayInfoOnLCD(Script): if self.getSettingValueByKey("maxlayer"): display_text += "/" + max_layer self.m118_text += "/" + max_layer - if not self.getSettingValueByKey("scroll"): + if not format_option: display_text += "|" + file_name self.m118_text += " | " + file_name else: - if not self.getSettingValueByKey("scroll"): + if not format_option: display_text += "|" + file_name + "!" self.m118_text += " | " + file_name + "!" else: From 8353d55ce2b2d5e090ebf6a5922af5dffd2875dc Mon Sep 17 00:00:00 2001 From: GregValiant <64202104+GregValiant@users.noreply.github.com> Date: Sat, 2 Aug 2025 14:32:00 -0400 Subject: [PATCH 110/200] Create AnnealingOrDrying.py A new script. The user can hold the build plate and chamber temepratures to "anneal" a print. Optionally the heated be can be used to attempt to dry filament rolls. --- .../scripts/AnnealingOrDrying.py | 513 ++++++++++++++++++ 1 file changed, 513 insertions(+) create mode 100644 plugins/PostProcessingPlugin/scripts/AnnealingOrDrying.py diff --git a/plugins/PostProcessingPlugin/scripts/AnnealingOrDrying.py b/plugins/PostProcessingPlugin/scripts/AnnealingOrDrying.py new file mode 100644 index 0000000000..6d6775c6ea --- /dev/null +++ b/plugins/PostProcessingPlugin/scripts/AnnealingOrDrying.py @@ -0,0 +1,513 @@ +""" +Copyright (c) 2025 GregValiant (Greg Foresi) + + When Annealing: + The user may elect to hold the build plate at a temperature for a period of time. When the hold expires, the 'Timed Cooldown' will begin. + If there is no 'Hold Time' then the 'Annealing' cooldown will begin when the print ends. In 'Annealing' cooldown the bed temperature drops in 3° increments across the time span. + G4 commands are used for the cooldown steps. + If there is a 'Heated Chamber' then the chamber will start to cool when the bed temperature reaches the chamber temperature. + + When drying filament: + The bed must be empty because the printer will auto-home before raising the Z to 'machine_height minus 20mm' and then park the head in the XY. + The bed will heat up to the set point. + G4 commands are used to keep the machine from turning the bed off until the Drying Time has expired. + If you happen to have an enclosure with a fan, the fan can be set up to run during the drying or annealing. + + NOTE: This script uses the G4 Dwell command as a timer. It cannot be canceled from the LCD. If you wish to ;excape' from G4 you might have to cancel the print from the LCD or cycle the printer on and off to reset. +""" + +from UM.Application import Application +from ..Script import Script +from UM.Message import Message + +class AnnealingOrDrying(Script): + + def initialize(self) -> None: + super().initialize() + # Get the Bed Temperature from Cura + bed_temp = str(Application.getInstance().getGlobalContainerStack().getProperty("material_bed_temperature", "value")) + self._instance.setProperty("startout_temp", "value", bed_temp) + # Get the Build Volume temperature if there is one + heated_build_volume = bool(Application.getInstance().getGlobalContainerStack().getProperty("machine_heated_build_volume", "value")) + curaApp = Application.getInstance().getGlobalContainerStack() + chamber_fan_nr = curaApp.getProperty("build_volume_fan_nr", "value") + extruder_count = curaApp.getProperty("machine_extruder_count", "value") + if heated_build_volume: + chamber_temp = curaApp.getProperty("build_volume_temperature", "value") + self._instance.setProperty("has_build_volume_heater", "value", heated_build_volume) + self._instance.setProperty("build_volume_temp", "value", chamber_temp) + try: + if chamber_fan_nr > 0: + self._instance.setProperty("enable_chamber_fan_setting", "value", True) + except: + pass + + def getSettingDataString(self): + return """{ + "name": "Annealing CoolDown or Filament Drying", + "key": "AnnealingOrDrying", + "metadata": {}, + "version": 2, + "settings": + { + "enable_annealing": + { + "label": "Enable the Script", + "description": "If it isn't enabled it doesn't run.", + "type": "bool", + "default_value": true, + "enabled": true + }, + "cycle_type": + { + "label": "Anneal Print or Dry Filament", + "description": "Whether to Anneal the Print (by keeping the bed hot for a period of time), or to use the bed as a Filament Dryer. If drying; you will still need to slice a model, but it will not print. The gcode will consist only of a short script to heat the bed, wait for a while, then turn the bed off. The 'Z' will move to the max height and XY park position so the filament can be covered. The 'Hold Time', 'Bed Start Temp' and (if applicable) the 'Chamber Temp' come from these settings rather than from the Cura settings. When annealing; the Timed Cooldown will commence when the print ends.", + "type": "enum", + "options": + { + + "anneal_cycle": "Anneal Print", + "dry_cycle": "Dry Filament"}, + "default_value": "anneal_cycle", + "enabled": true, + "enabled": "enable_annealing" + }, + "bed_and_chamber": + { + "label": "Hold the Temp for the:", + "description": "Select the 'Bed' for just the bed, or 'Bed and Chamber' if you want to include your 'Heated Build Volume'.", + "type": "enum", + "options": + { + "bed_only": "Bed", + "bed_chamber": "Bed and Chamber"}, + "default_value": "bed_only", + "enabled": "enable_annealing" + }, + "wait_time": + { + "label": "Hold Time at Temp(s)", + "description": "Hold the bed temp at the 'Bed Start Out Temperature' for this amount of time (in decimal hours). When this time expires then the Annealing cool down will start. This is also the 'Drying Time' used when 'Drying Filament'.", + "type": "float", + "default_value": 0.0, + "unit": "Decimal Hrs ", + "enabled": "enable_annealing and cycle_type == 'anneal_cycle'" + }, + "dry_time": + { + "label": "Drying Time", + "description": "Hold the bed temp at the 'Bed Start Out Temperature' for this amount of time (in decimal hours). When this time expires the bed will shut off.", + "type": "float", + "default_value": 4.0, + "unit": "Decimal Hrs ", + "enabled": "enable_annealing and cycle_type == 'dry_cycle'" + }, + "pause_cmd": + { + "label": "Pause Cmd for Auto-Home", + "description": "Not required when you are paying attention and the bed is empty; ELSE; Enter the pause command to use prior to the Auto-Home command. The pause insures that the user IS paying attention and clears the build plate for Auto-Home. If you leave the box empty then there won't be a pause.", + "type": "str", + "default_value": "", + "enabled": "enable_annealing and cycle_type == 'dry_cycle'" + }, + "startout_temp": + { + "label": "Bed Start Out Temperature:", + "description": "Enter the temperature to start at. This is typically the bed temperature during the print but can be changed here. This is also the temperature used when drying filament.", + "type": "int", + "value": 30, + "unit": "Degrees ", + "minimum_value": 30, + "maximum_value": 110, + "maximum_value_warning": 100, + "enabled": "enable_annealing" + }, + "lowest_temp": + { + "label": "Shut-Off Temp:", + "description": "Enter the lowest temperature to control the cool down. This is the shut-off temperature for the build plate and (when applicable) the Heated Chamber. The minimum value is 30", + "type": "int", + "default_value": 30, + "unit": "Degrees ", + "minimum_value": 30, + "enabled": "enable_annealing and cycle_type == 'anneal_cycle'" + }, + "build_volume_temp": + { + "label": "Build Volume Temperature:", + "description": "Enter the temperature for the Build Volume (Heated Chamber). This is typically the temperature during the print but can be changed here.", + "type": "int", + "value": 24, + "unit": "Degrees ", + "minimum_value": 0, + "maximum_value": 90, + "maximum_value_warning": 75, + "enabled": "enable_annealing and has_build_volume_heater and bed_and_chamber == 'bed_chamber'" + }, + "enable_chamber_fan_setting": + { + "label": "Hidden Setting", + "description": "Enables chamber fan and speed.", + "type": "bool", + "default_value": false, + "enabled": false + }, + "chamber_fan_speed": + { + "label": "Chamber Fan Speed", + "description": "Set to % fan speed. Set to 0 to turn it off.", + "type": "int", + "default_value": 0, + "minimum_value": 0, + "maximum_value": 100, + "enabled": "enable_annealing and enable_chamber_fan_setting" + }, + "time_span": + { + "label": "Cool Down Time Span:", + "description": "The total amount of time (in decimal hours) to control the cool down. The build plate temperature will be dropped in 3° increments across this time span. 'Cool Down Time' starts at the end of the 'Hold Time' if you entered one.", + "type": "float", + "default_value": 1.0, + "unit": "Decimal Hrs ", + "minimum_value_warning": 0.25, + "enabled": "enable_annealing and cycle_type == 'anneal_cycle'" + }, + "park_head": + { + "label": "Park at MaxX and MaxY", + "description": "When unchecked, the park position is X0 Y0. Enable this setting to move the nozzle to the Max X and Max Y to allow access to the print.", + "type": "bool", + "default_value": false, + "enabled": "enable_annealing and cycle_type == 'anneal_cycle'" + }, + "park_max_z": + { + "label": "Move to MaxZ", + "description": "Enable this setting to move the nozzle to 'Machine_Height - 20' to allow the print to be covered.", + "type": "bool", + "default_value": false, + "enabled": "enable_annealing and cycle_type == 'anneal_cycle'" + }, + "beep_when_done": + { + "label": "Beep when done", + "description": "Add an annoying noise when the Cool Down completes.", + "type": "bool", + "default_value": true, + "enabled": "enable_annealing" + }, + "beep_duration": + { + "label": "Beep Duration", + "description": "The length of the buzzer sound. Units are in milliseconds so 1000ms = 1 second.", + "type": "int", + "unit": "milliseconds ", + "default_value": 1000, + "enabled": "beep_when_done and enable_annealing" + }, + "add_messages": + { + "label": "Include M117 and M118 messages", + "description": "Add messages to the LCD and any print server.", + "type": "bool", + "default_value": false, + "enabled": "enable_annealing" + }, + "has_build_volume_heater": + { + "label": "Hidden setting", + "description": "Hidden. This setting enables the build volume settings.", + "type": "bool", + "default_value": false, + "enabled": false + } + } + }""" + + def execute(self, data): + # Exit if there is no heated bed. + if not bool(Application.getInstance().getGlobalContainerStack().getProperty("machine_heated_bed", "value")): + Message(title = "[Anneal or Dry Filament]", text = "The script did not run because Heated Bed is disabled in Machine Settings.").show() + return data + # Enter a message in the gcode if the script is not enabled. + if not bool(self.getSettingValueByKey("enable_annealing")): + data[0] += "; [Anneal or Dry Filament] was not enabled\n" + return data + lowest_temp = int(self.getSettingValueByKey("lowest_temp")) + + # If the shutoff temp is under 30° then exit as a safety precaution so the bed doesn't stay on. + if lowest_temp < 30: + data[0] += "; Anneal or Dry Filament did not run. Shutoff Temp < 30\n" + Message(title = "[Anneal or Dry Filament]", text = "The script did not run because the Shutoff Temp is less than 30°.").show() + return data + self.global_stack = Application.getInstance().getGlobalContainerStack() + extruder = self.global_stack.extruderList + bed_temperature = int(self.getSettingValueByKey("startout_temp")) + heated_chamber = bool(Application.getInstance().getGlobalContainerStack().getProperty("machine_heated_build_volume", "value")) + anneal_type = self.getSettingValueByKey("bed_and_chamber") + + # Get the heated chamber temperature or set to 0 if no chamber + if heated_chamber: + chamber_temp = str(self.getSettingValueByKey("build_volume_temp")) + else: + anneal_type = "bed_only" + chamber_temp = "0" + + # For compatibility with earlier Cura versions + if self.global_stack.getProperty("build_volume_fan_nr", "value") is not None: + has_bv_fan = bool(self.global_stack.getProperty("build_volume_fan_nr", "value")) + bv_fan_nr = int(self.global_stack.getProperty("build_volume_fan_nr", "value")) + if bv_fan_nr > 0: + speed_bv_fan = int(self.getSettingValueByKey("chamber_fan_speed")) + else: + speed_bv_fan = 0 + + if bool(extruder[0].getProperty("machine_scale_fan_speed_zero_to_one", "value")) and has_bv_fan: + speed_bv_fan = round(speed_bv_fan * .01) + else: + speed_bv_fan = round(speed_bv_fan * 2.55) + + if has_bv_fan and speed_bv_fan > 0: + self.bv_fan_on_str = f"M106 S{speed_bv_fan} P{bv_fan_nr} ; Build Chamber Fan On\n" + self.bv_fan_off_str = f"M106 S0 P{bv_fan_nr} ; Build Chamber Fan Off\n" + else: + self.bv_fan_on_str = "" + self.bv_fan_off_str = "" + else: + has_bv_fan = False + bv_fan_nr = 0 + speed_bv_fan = 0 + self.bv_fan_on_str = "" + self.bv_fan_off_str = "" + + # Park Head + max_y = str(self.global_stack.getProperty("machine_depth", "value")) + max_x = str(self.global_stack.getProperty("machine_width", "value")) + # Max_z is limited to 'machine_height - 20' just so the print head doesn't smack into anything. + max_z = str(int(self.global_stack.getProperty("machine_height", "value")) - 20) + speed_travel = str(round(extruder[0].getProperty("speed_travel", "value")*60)) + park_xy = bool(self.getSettingValueByKey("park_head")) + park_z = bool(self.getSettingValueByKey("park_max_z")) + cycle_type = self.getSettingValueByKey("cycle_type") + add_messages = bool(self.getSettingValueByKey("add_messages")) + + if cycle_type == "anneal_cycle": + data = self._anneal_print(data, park_xy, park_z, bed_temperature, lowest_temp, heated_chamber, chamber_temp, max_y, max_x, max_z, speed_travel, add_messages, anneal_type) + elif cycle_type == "dry_cycle": + data = self._dry_filament_only(data, anneal_type, heated_chamber, chamber_temp, bed_temperature, max_z, max_y, speed_travel) + return data + + def _anneal_print(self, anneal_data: str, park_xy: bool, park_z: bool, bed_temperature:int, lowest_temp: int, heated_chamber: bool, chamber_temp: str, max_x: str, max_y: str, max_z: str, speed_travel: str, add_messages: bool, anneal_type: str): + """ + The procedure disables the M140 (and M141) lines at the end of the print, and adds additional bed (and chamber) temperature commands to the end of the G-Code file. The bed is allowed to cool down over a period of time. + """ + # Put the head parking string together + time_minutes = 1 + time_span = int(float(self.getSettingValueByKey("time_span")) * 3600) + park_string = "" + if park_xy and not park_z: + park_string = f"G0 F{speed_travel} X{max_x} Y{max_y} ; Park XY\nM84 X Y E ; Disable steppers except Z\n" + elif park_xy and park_z: + park_string = f"G0 F{speed_travel} X{max_x} Y{max_y} ; Park XY\nG0 Z{max_z} ; Raise Z to 'ZMax - 20'\nM84 X Y E ; Disable steppers except Z\n" + elif not park_xy and park_z: + park_string = f"G0 F{speed_travel} Z{max_z} ; Raise Z to 'ZMax - 20'\nM84 X Y E ; Disable steppers except Z\n" + elif not park_xy and not park_z: + park_string = f"G91 ; Relative movement\nG0 F{speed_travel} Z5 ; Raise Z\nG90 ; Absolute movement\nG0 X0 Y0 ; Park\nM84 X Y E ; Disable steppers except Z\n" + + # Calculate the temperature differential + hysteresis = bed_temperature - lowest_temp + + # if the bed temp is below the shutoff temp then exit + if hysteresis <= 0: + anneal_data[0] += "; Anneal or Dry Filament did not run. Bed Temp < Shutoff Temp\n" + Message(title = "Anneal or Dry Filament", text = "Did not run because the Bed Temp < Shutoff Temp.").show() + return anneal_data + + # Drop the bed temperature in 3° increments. + num_steps = int(hysteresis / 3) + step_index = 2 + deg_per_step = int(hysteresis / num_steps) + time_per_step = int(time_span / num_steps) + step_down = bed_temperature + wait_time = int(float(self.getSettingValueByKey("wait_time")) * 3600) + + # Put the first lines of the anneal string together + anneal_string = ";\n;TYPE:CUSTOM ---------------- Anneal Print\n" + if add_messages: + anneal_string += "M117 Cool Down for " + str(round((wait_time + time_span)/3600,2)) + "hr\n" + anneal_string += "M118 Cool Down for " + str(round((wait_time + time_span)/3600,2)) + "hr\n" + anneal_string += self.bv_fan_on_str + if wait_time > 0: + # Move the head before the M190 + anneal_string += park_string + if anneal_type == "bed_only": + anneal_string += f"M190 S{bed_temperature} ; Set the bed temp\n" + if anneal_type == "bed_chamber": + anneal_string += f"M190 S{bed_temperature} ; Set the bed temp\nM141 S{chamber_temp} ; Set the chamber temp\n" + anneal_string += f"G4 S{wait_time} ; Hold for {round(wait_time / 3600,2)} hrs\n" + else: + # Move the head after the M140 + anneal_string += f"M140 S{step_down} ; Set bed temp\n" + anneal_string += park_string + anneal_string += f"G4 S{time_per_step} ; wait time in seconds\n" + step_down -= deg_per_step + + time_remaining = round(time_span/3600,2) + # Step the bed/chamber temps down and add each step to the anneal string. The chamber remains at it's temperature until the bed gets down to that temperature. + for num in range(bed_temperature, lowest_temp, -3): + anneal_string += f"M140 S{step_down} ; Step down bed\n" + if anneal_type == "bed_chamber" and int(step_down) < int(chamber_temp): + anneal_string += f"M141 S{step_down} ; Step down chamber\n" + anneal_string += f"G4 S{time_per_step} ; Wait\n" + #time_remaining = round((time_span-(step_index*time_per_step))/3600,2) + if time_remaining >= 1.00: + if add_messages: + anneal_string += f"M117 CoolDown - {round(time_remaining,1)}hr\n" + anneal_string += f"M118 CoolDown - {round(time_remaining,1)}hr\n" + elif time_minutes > 0: + time_minutes = round(time_remaining * 60,1) + if add_messages: + anneal_string += f"M117 CoolDown - {time_minutes}min\n" + anneal_string += f"M118 CoolDown - {time_minutes}min\n" + time_remaining = round((time_span-(step_index*time_per_step))/3600,2) + step_down -= deg_per_step + step_index += 1 + if step_down <= lowest_temp: + break + + # Beep line + if bool(self.getSettingValueByKey("beep_when_done")): + beep_string = "M300 S440 P" + str(self.getSettingValueByKey("beep_duration")) + " ; Beep\n" + else: + beep_string = "" + + # Close out the anneal string + anneal_string += "M140 S0 ; Shut off the bed heater" + "\n" + if anneal_type == "bed_chamber": + anneal_string += "M141 S0 ; Shut off the chamber heater\n" + anneal_string += self.bv_fan_off_str + anneal_string += beep_string + if add_messages: + anneal_string += "M117 CoolDown Complete\n" + anneal_string += "M118 CoolDown Complete\n" + anneal_string += ";TYPE:CUSTOM ---------------- End of Anneal\n;" + + # Format + anneal_lines = anneal_string.split("\n") + for index, line in enumerate(anneal_lines): + if not line.startswith(";") and ";" in line: + front_txt = anneal_lines[index].split(";")[0] + back_txt = anneal_lines[index].split(";")[1] + anneal_lines[index] = front_txt + str(" " * (30 - len(front_txt))) +";" + back_txt + anneal_string = "\n".join(anneal_lines) + "\n" + + layer = anneal_data[len(anneal_data)-1] + lines = layer.split("\n") + + # Comment out the M140 S0 line in the ending gcode. + for num in range(len(lines)-1,-1,-1): + if lines[num].startswith("M140 S0"): + lines[num] = ";M140 S0 ; Shutoff Overide - Anneal or Dry Filament" + anneal_data[len(anneal_data)-1] = "\n".join(lines) + + # If there is a Heated Chamber and it's included then comment out the M141 S0 line + if anneal_type == "bed_chamber" and heated_chamber: + for num in range(0,len(lines)-1,1): + if lines[num].startswith("M141 S0"): + lines[num] = ";M141 S0 ; Shutoff Overide - Anneal or Dry Filament" + anneal_data[len(anneal_data)-1] = "\n".join(lines) + + # If park head is enabled then dont let the steppers disable until the head is parked + disable_string = "" + for num in range(0,len(lines)-1,1): + if lines[num][:3] in ("M84", "M18"): + disable_string = lines[num] + "\n" + stepper_timeout = int(wait_time + time_span) + if stepper_timeout > 14400: stepper_timeout = 14400 + lines[num] = ";" + lines[num] + " ; Overide - Anneal or Dry Filament" + lines.insert(num, "M84 S" + str(stepper_timeout) + " ; Increase stepper timeout - Anneal or Dry Filament") + anneal_data[len(anneal_data)-1] = "\n".join(lines) + break + + # The Anneal string is the new end of the gcode so move the 'End of Gcode' comment line in case there are other scripts running + anneal_data[len(anneal_data)-1] = anneal_data[len(anneal_data)-1].replace(";End of Gcode", anneal_string + disable_string + ";End of Gcode") + return anneal_data + + def _dry_filament_only(self, drydata: str, anneal_type: str, heated_chamber: bool, chamber_temp: int, bed_temperature: int, max_z:str, max_y:str, speed_travel: str) -> str: + """ + This procedure turns the bed on, homes the printer, parks the head. After the time period the bed is turned off. There is no actual print in the generated gcode, just a couple of moves to get the nozzle out of the way, and the bed heat (and possibly chamber heat) control. It allows a user to use the bed to warm up and hopefully dry a filament roll. + """ + for num in range(2, len(drydata)): + drydata[num] = "" + drydata[0] = drydata[0].split("\n")[0] + "\n" + add_messages = bool(self.getSettingValueByKey("add_messages")) + pause_cmd = self.getSettingValueByKey("pause_cmd").upper() + if pause_cmd != "": + pause_cmd = "M300 ; Beep\n" + pause_cmd + dry_time = self.getSettingValueByKey("dry_time") * 3600 + lines = drydata[1].split("\n") + drying_string = lines[0] + "\n" + ";............TYPE:CUSTOM: Dry Filament\n" + if add_messages: + drying_string += f"M117 Cool Down for {round(dry_time/3600,2)} hr ; Message\n" + drying_string += f"M118 Cool Down for {round(dry_time/3600,2)} hr ; Message\n" + # M113 sends messages to a print server as a 'Keep Alive' and can generate a lot of traffic over the USB + drying_string += "M113 S0 ; No echo\n" + drying_string += f"M84 S{round(dry_time)} ; Set stepper timeout\n" + drying_string += f"M140 S{bed_temperature} ; Heat bed\n" + drying_string += self.bv_fan_on_str + if heated_chamber and anneal_type == "bed_chamber": + drying_string += f"M141 S{chamber_temp} ; Chamber temp\n" + if pause_cmd == "M0": + pause_cmd = "M0 Clear bed and click...; Pause" + if pause_cmd != "": + drying_string += pause_cmd + " ; Pause\n" + drying_string += "G28 ; Auto-Home\n" + drying_string += f"G0 F{speed_travel} Z{max_z} ; Raise Z to 'ZMax - 20'\n" + drying_string += f"G0 F{speed_travel} X0 Y{max_y} ; Park print head\n" + if dry_time <= 3600: + if add_messages: + drying_string += f"M117 {dry_time/3600} hr remaining ; Message\n" + drying_string += f"M118 {dry_time/3600} hr remaining ; Message\n" + drying_string += f"G4 S{dry_time} ; Dry time\n" + elif dry_time > 3600: + temp_time = dry_time + while temp_time > 3600: + if add_messages: + drying_string += f"M117 {temp_time/3600} hr remaining ; Message\n" + drying_string += f"M118 {temp_time/3600} hr remaining ; Message\n" + drying_string += f"G4 S3600 ; Dry time split\n" + if temp_time > 3600: + temp_time -= 3600 + if temp_time > 0: + if add_messages: + drying_string += f"M117 {temp_time/3600} hr remaining ; Message\n" + drying_string += f"M118 {temp_time/3600} hr remaining ; Message\n" + drying_string += f"G4 S{temp_time} ; Dry time\n" + if heated_chamber and anneal_type == "bed_chamber": + drying_string += f"M141 S0 ; Shut off chamber\n" + drying_string += "M140 S0 ; Shut off bed\n" + drying_string += self.bv_fan_off_str + if self.getSettingValueByKey("beep_when_done"): + beep_duration = self.getSettingValueByKey("beep_duration") + drying_string += f"M300 P{beep_duration} ; Beep\n" + if add_messages: + drying_string += "M117 End of drying cycle ; Message\n" + drying_string += "M118 End of drying cycle ; Message\n" + drying_string += "M84 X Y E ; Disable steppers except Z\n" + drying_string += ";End of Gcode" + + # Format + lines = drying_string.split("\n") + for index, line in enumerate(lines): + if not line.startswith(";") and ";" in line: + front_txt = lines[index].split(";")[0] + back_txt = lines[index].split(";")[1] + lines[index] = front_txt + str(" " * (30 - len(front_txt))) +";" + back_txt + drydata[1] = "\n".join(lines) + "\n" + dry_txt = "; Drying time ...................... " + str(self.getSettingValueByKey("dry_time")) + " hrs\n" + dry_txt += "; Drying temperature ........ " + str(bed_temperature) + "°\n" + if heated_chamber and anneal_type == "bed_chamber": + dry_txt += "; Chamber temperature ... " + str(chamber_temp) + "°\n" + Message(title = "[Dry Filament]", text = dry_txt).show() + drydata[0] = "; <<< This is a filament drying file only. There is no actual print. >>>\n;\n" + dry_txt + ";\n" + return drydata \ No newline at end of file From 47ad02bcf1baf4278e15a8879408641f23055fba Mon Sep 17 00:00:00 2001 From: GregValiant <64202104+GregValiant@users.noreply.github.com> Date: Sat, 2 Aug 2025 23:05:32 -0400 Subject: [PATCH 111/200] Update AnnealingOrDrying.py Changed some verbiage. Update AnnealingOrDrying.py Changes per the review, bug fixes, cleanup my code. Add more beeps. Update AnnealingOrDrying.py Fixed a typo --- .../scripts/AnnealingOrDrying.py | 170 +++++++++--------- 1 file changed, 88 insertions(+), 82 deletions(-) diff --git a/plugins/PostProcessingPlugin/scripts/AnnealingOrDrying.py b/plugins/PostProcessingPlugin/scripts/AnnealingOrDrying.py index 6d6775c6ea..496fc1cb42 100644 --- a/plugins/PostProcessingPlugin/scripts/AnnealingOrDrying.py +++ b/plugins/PostProcessingPlugin/scripts/AnnealingOrDrying.py @@ -3,7 +3,7 @@ Copyright (c) 2025 GregValiant (Greg Foresi) When Annealing: The user may elect to hold the build plate at a temperature for a period of time. When the hold expires, the 'Timed Cooldown' will begin. - If there is no 'Hold Time' then the 'Annealing' cooldown will begin when the print ends. In 'Annealing' cooldown the bed temperature drops in 3° increments across the time span. + If there is no 'Hold Time' then the 'Annealing' cooldown will begin when the print ends. In 'Annealing' the bed temperature drops in 3° increments across the time span. G4 commands are used for the cooldown steps. If there is a 'Heated Chamber' then the chamber will start to cool when the bed temperature reaches the chamber temperature. @@ -12,8 +12,8 @@ Copyright (c) 2025 GregValiant (Greg Foresi) The bed will heat up to the set point. G4 commands are used to keep the machine from turning the bed off until the Drying Time has expired. If you happen to have an enclosure with a fan, the fan can be set up to run during the drying or annealing. - - NOTE: This script uses the G4 Dwell command as a timer. It cannot be canceled from the LCD. If you wish to ;excape' from G4 you might have to cancel the print from the LCD or cycle the printer on and off to reset. + + NOTE: This script uses the G4 Dwell command as a timer. It cannot be canceled from the LCD. If you wish to 'escape' from G4 you might have to cancel the print from the LCD or cycle the printer on and off to reset. """ from UM.Application import Application @@ -25,15 +25,15 @@ class AnnealingOrDrying(Script): def initialize(self) -> None: super().initialize() # Get the Bed Temperature from Cura - bed_temp = str(Application.getInstance().getGlobalContainerStack().getProperty("material_bed_temperature", "value")) - self._instance.setProperty("startout_temp", "value", bed_temp) + self.global_stack = Application.getInstance().getGlobalContainerStack() + bed_temp_during_print = str(self.global_stack.getProperty("material_bed_temperature", "value")) + self._instance.setProperty("startout_temp", "value", bed_temp_during_print) # Get the Build Volume temperature if there is one - heated_build_volume = bool(Application.getInstance().getGlobalContainerStack().getProperty("machine_heated_build_volume", "value")) - curaApp = Application.getInstance().getGlobalContainerStack() - chamber_fan_nr = curaApp.getProperty("build_volume_fan_nr", "value") - extruder_count = curaApp.getProperty("machine_extruder_count", "value") + heated_build_volume = bool(self.global_stack.getProperty("machine_heated_build_volume", "value")) + chamber_fan_nr = self.global_stack.getProperty("build_volume_fan_nr", "value") + extruder_count = self.global_stack.getProperty("machine_extruder_count", "value") if heated_build_volume: - chamber_temp = curaApp.getProperty("build_volume_temperature", "value") + chamber_temp = self.global_stack.getProperty("build_volume_temperature", "value") self._instance.setProperty("has_build_volume_heater", "value", heated_build_volume) self._instance.setProperty("build_volume_temp", "value", chamber_temp) try: @@ -50,7 +50,7 @@ class AnnealingOrDrying(Script): "version": 2, "settings": { - "enable_annealing": + "enable_script": { "label": "Enable the Script", "description": "If it isn't enabled it doesn't run.", @@ -65,14 +65,14 @@ class AnnealingOrDrying(Script): "type": "enum", "options": { - "anneal_cycle": "Anneal Print", - "dry_cycle": "Dry Filament"}, + "dry_cycle": "Dry Filament" + }, "default_value": "anneal_cycle", "enabled": true, - "enabled": "enable_annealing" + "enabled": "enable_script" }, - "bed_and_chamber": + "heating_zone_selection": { "label": "Hold the Temp for the:", "description": "Select the 'Bed' for just the bed, or 'Bed and Chamber' if you want to include your 'Heated Build Volume'.", @@ -82,7 +82,7 @@ class AnnealingOrDrying(Script): "bed_only": "Bed", "bed_chamber": "Bed and Chamber"}, "default_value": "bed_only", - "enabled": "enable_annealing" + "enabled": "enable_script" }, "wait_time": { @@ -91,7 +91,7 @@ class AnnealingOrDrying(Script): "type": "float", "default_value": 0.0, "unit": "Decimal Hrs ", - "enabled": "enable_annealing and cycle_type == 'anneal_cycle'" + "enabled": "enable_script and cycle_type == 'anneal_cycle'" }, "dry_time": { @@ -100,7 +100,7 @@ class AnnealingOrDrying(Script): "type": "float", "default_value": 4.0, "unit": "Decimal Hrs ", - "enabled": "enable_annealing and cycle_type == 'dry_cycle'" + "enabled": "enable_script and cycle_type == 'dry_cycle'" }, "pause_cmd": { @@ -108,7 +108,7 @@ class AnnealingOrDrying(Script): "description": "Not required when you are paying attention and the bed is empty; ELSE; Enter the pause command to use prior to the Auto-Home command. The pause insures that the user IS paying attention and clears the build plate for Auto-Home. If you leave the box empty then there won't be a pause.", "type": "str", "default_value": "", - "enabled": "enable_annealing and cycle_type == 'dry_cycle'" + "enabled": "enable_script and cycle_type == 'dry_cycle'" }, "startout_temp": { @@ -120,7 +120,7 @@ class AnnealingOrDrying(Script): "minimum_value": 30, "maximum_value": 110, "maximum_value_warning": 100, - "enabled": "enable_annealing" + "enabled": "enable_script" }, "lowest_temp": { @@ -130,7 +130,7 @@ class AnnealingOrDrying(Script): "default_value": 30, "unit": "Degrees ", "minimum_value": 30, - "enabled": "enable_annealing and cycle_type == 'anneal_cycle'" + "enabled": "enable_script and cycle_type == 'anneal_cycle'" }, "build_volume_temp": { @@ -142,7 +142,7 @@ class AnnealingOrDrying(Script): "minimum_value": 0, "maximum_value": 90, "maximum_value_warning": 75, - "enabled": "enable_annealing and has_build_volume_heater and bed_and_chamber == 'bed_chamber'" + "enabled": "enable_script and has_build_volume_heater and heating_zone_selection == 'bed_chamber'" }, "enable_chamber_fan_setting": { @@ -160,7 +160,8 @@ class AnnealingOrDrying(Script): "default_value": 0, "minimum_value": 0, "maximum_value": 100, - "enabled": "enable_annealing and enable_chamber_fan_setting" + "unit": "% ", + "enabled": "enable_script and enable_chamber_fan_setting" }, "time_span": { @@ -170,7 +171,7 @@ class AnnealingOrDrying(Script): "default_value": 1.0, "unit": "Decimal Hrs ", "minimum_value_warning": 0.25, - "enabled": "enable_annealing and cycle_type == 'anneal_cycle'" + "enabled": "enable_script and cycle_type == 'anneal_cycle'" }, "park_head": { @@ -178,7 +179,7 @@ class AnnealingOrDrying(Script): "description": "When unchecked, the park position is X0 Y0. Enable this setting to move the nozzle to the Max X and Max Y to allow access to the print.", "type": "bool", "default_value": false, - "enabled": "enable_annealing and cycle_type == 'anneal_cycle'" + "enabled": "enable_script and cycle_type == 'anneal_cycle'" }, "park_max_z": { @@ -186,7 +187,7 @@ class AnnealingOrDrying(Script): "description": "Enable this setting to move the nozzle to 'Machine_Height - 20' to allow the print to be covered.", "type": "bool", "default_value": false, - "enabled": "enable_annealing and cycle_type == 'anneal_cycle'" + "enabled": "enable_script and cycle_type == 'anneal_cycle'" }, "beep_when_done": { @@ -194,7 +195,7 @@ class AnnealingOrDrying(Script): "description": "Add an annoying noise when the Cool Down completes.", "type": "bool", "default_value": true, - "enabled": "enable_annealing" + "enabled": "enable_script" }, "beep_duration": { @@ -203,7 +204,7 @@ class AnnealingOrDrying(Script): "type": "int", "unit": "milliseconds ", "default_value": 1000, - "enabled": "beep_when_done and enable_annealing" + "enabled": "beep_when_done and enable_script" }, "add_messages": { @@ -211,7 +212,7 @@ class AnnealingOrDrying(Script): "description": "Add messages to the LCD and any print server.", "type": "bool", "default_value": false, - "enabled": "enable_annealing" + "enabled": "enable_script" }, "has_build_volume_heater": { @@ -226,11 +227,11 @@ class AnnealingOrDrying(Script): def execute(self, data): # Exit if there is no heated bed. - if not bool(Application.getInstance().getGlobalContainerStack().getProperty("machine_heated_bed", "value")): + if not bool(self.global_stack.getProperty("machine_heated_bed", "value")): Message(title = "[Anneal or Dry Filament]", text = "The script did not run because Heated Bed is disabled in Machine Settings.").show() return data # Enter a message in the gcode if the script is not enabled. - if not bool(self.getSettingValueByKey("enable_annealing")): + if not bool(self.getSettingValueByKey("enable_script")): data[0] += "; [Anneal or Dry Filament] was not enabled\n" return data lowest_temp = int(self.getSettingValueByKey("lowest_temp")) @@ -240,11 +241,10 @@ class AnnealingOrDrying(Script): data[0] += "; Anneal or Dry Filament did not run. Shutoff Temp < 30\n" Message(title = "[Anneal or Dry Filament]", text = "The script did not run because the Shutoff Temp is less than 30°.").show() return data - self.global_stack = Application.getInstance().getGlobalContainerStack() - extruder = self.global_stack.extruderList + extruders = self.global_stack.extruderList bed_temperature = int(self.getSettingValueByKey("startout_temp")) - heated_chamber = bool(Application.getInstance().getGlobalContainerStack().getProperty("machine_heated_build_volume", "value")) - anneal_type = self.getSettingValueByKey("bed_and_chamber") + heated_chamber = bool(self.global_stack.getProperty("machine_heated_build_volume", "value")) + anneal_type = self.getSettingValueByKey("heating_zone_selection") # Get the heated chamber temperature or set to 0 if no chamber if heated_chamber: @@ -253,6 +253,13 @@ class AnnealingOrDrying(Script): anneal_type = "bed_only" chamber_temp = "0" + # Beep line + if bool(self.getSettingValueByKey("beep_when_done")): + beep_duration = self.getSettingValueByKey("beep_duration") + self.beep_string = f"M300 S440 P{beep_duration} ; Beep\n" + else: + self.beep_string = "" + # For compatibility with earlier Cura versions if self.global_stack.getProperty("build_volume_fan_nr", "value") is not None: has_bv_fan = bool(self.global_stack.getProperty("build_volume_fan_nr", "value")) @@ -262,7 +269,7 @@ class AnnealingOrDrying(Script): else: speed_bv_fan = 0 - if bool(extruder[0].getProperty("machine_scale_fan_speed_zero_to_one", "value")) and has_bv_fan: + if bool(extruders[0].getProperty("machine_scale_fan_speed_zero_to_one", "value")) and has_bv_fan: speed_bv_fan = round(speed_bv_fan * .01) else: speed_bv_fan = round(speed_bv_fan * 2.55) @@ -283,9 +290,10 @@ class AnnealingOrDrying(Script): # Park Head max_y = str(self.global_stack.getProperty("machine_depth", "value")) max_x = str(self.global_stack.getProperty("machine_width", "value")) + # Max_z is limited to 'machine_height - 20' just so the print head doesn't smack into anything. max_z = str(int(self.global_stack.getProperty("machine_height", "value")) - 20) - speed_travel = str(round(extruder[0].getProperty("speed_travel", "value")*60)) + speed_travel = str(round(extruders[0].getProperty("speed_travel", "value")*60)) park_xy = bool(self.getSettingValueByKey("park_head")) park_z = bool(self.getSettingValueByKey("park_max_z")) cycle_type = self.getSettingValueByKey("cycle_type") @@ -295,6 +303,7 @@ class AnnealingOrDrying(Script): data = self._anneal_print(data, park_xy, park_z, bed_temperature, lowest_temp, heated_chamber, chamber_temp, max_y, max_x, max_z, speed_travel, add_messages, anneal_type) elif cycle_type == "dry_cycle": data = self._dry_filament_only(data, anneal_type, heated_chamber, chamber_temp, bed_temperature, max_z, max_y, speed_travel) + return data def _anneal_print(self, anneal_data: str, park_xy: bool, park_z: bool, bed_temperature:int, lowest_temp: int, heated_chamber: bool, chamber_temp: str, max_x: str, max_y: str, max_z: str, speed_travel: str, add_messages: bool, anneal_type: str): @@ -302,17 +311,17 @@ class AnnealingOrDrying(Script): The procedure disables the M140 (and M141) lines at the end of the print, and adds additional bed (and chamber) temperature commands to the end of the G-Code file. The bed is allowed to cool down over a period of time. """ # Put the head parking string together + bed_temp_during_print = int(self.global_stack.getProperty("material_bed_temperature", "value")) time_minutes = 1 time_span = int(float(self.getSettingValueByKey("time_span")) * 3600) park_string = "" - if park_xy and not park_z: - park_string = f"G0 F{speed_travel} X{max_x} Y{max_y} ; Park XY\nM84 X Y E ; Disable steppers except Z\n" - elif park_xy and park_z: - park_string = f"G0 F{speed_travel} X{max_x} Y{max_y} ; Park XY\nG0 Z{max_z} ; Raise Z to 'ZMax - 20'\nM84 X Y E ; Disable steppers except Z\n" - elif not park_xy and park_z: - park_string = f"G0 F{speed_travel} Z{max_z} ; Raise Z to 'ZMax - 20'\nM84 X Y E ; Disable steppers except Z\n" - elif not park_xy and not park_z: - park_string = f"G91 ; Relative movement\nG0 F{speed_travel} Z5 ; Raise Z\nG90 ; Absolute movement\nG0 X0 Y0 ; Park\nM84 X Y E ; Disable steppers except Z\n" + if park_xy: + park_string += f"G0 F{speed_travel} X{max_x} Y{max_y} ; Park XY\n" + if park_z: + park_string += f"G0 Z{max_z} ; Raise Z to 'ZMax - 20'\n" + if not park_xy and not park_z: + park_string += f"G91 ; Relative movement\nG0 F{speed_travel} Z5 ; Raise Z\nG90 ; Absolute movement\nG0 X0 Y0 ; Park\n" + park_string += "M84 X Y E ; Disable steppers except Z\n" # Calculate the temperature differential hysteresis = bed_temperature - lowest_temp @@ -333,33 +342,35 @@ class AnnealingOrDrying(Script): # Put the first lines of the anneal string together anneal_string = ";\n;TYPE:CUSTOM ---------------- Anneal Print\n" + if bed_temperature == bed_temp_during_print: + anneal_string += self.beep_string if add_messages: anneal_string += "M117 Cool Down for " + str(round((wait_time + time_span)/3600,2)) + "hr\n" anneal_string += "M118 Cool Down for " + str(round((wait_time + time_span)/3600,2)) + "hr\n" anneal_string += self.bv_fan_on_str if wait_time > 0: - # Move the head before the M190 + # Add the parking string BEFORE the M190 anneal_string += park_string if anneal_type == "bed_only": - anneal_string += f"M190 S{bed_temperature} ; Set the bed temp\n" + anneal_string += f"M190 S{bed_temperature} ; Set the bed temp\n{self.beep_string}" if anneal_type == "bed_chamber": - anneal_string += f"M190 S{bed_temperature} ; Set the bed temp\nM141 S{chamber_temp} ; Set the chamber temp\n" + anneal_string += f"M190 S{bed_temperature} ; Set the bed temp\nM141 S{chamber_temp} ; Set the chamber temp\n{self.beep_string}" anneal_string += f"G4 S{wait_time} ; Hold for {round(wait_time / 3600,2)} hrs\n" else: - # Move the head after the M140 + # Add the parking string AFTER the M140 anneal_string += f"M140 S{step_down} ; Set bed temp\n" anneal_string += park_string anneal_string += f"G4 S{time_per_step} ; wait time in seconds\n" - step_down -= deg_per_step + step_down -= deg_per_step time_remaining = round(time_span/3600,2) + # Step the bed/chamber temps down and add each step to the anneal string. The chamber remains at it's temperature until the bed gets down to that temperature. for num in range(bed_temperature, lowest_temp, -3): anneal_string += f"M140 S{step_down} ; Step down bed\n" if anneal_type == "bed_chamber" and int(step_down) < int(chamber_temp): anneal_string += f"M141 S{step_down} ; Step down chamber\n" anneal_string += f"G4 S{time_per_step} ; Wait\n" - #time_remaining = round((time_span-(step_index*time_per_step))/3600,2) if time_remaining >= 1.00: if add_messages: anneal_string += f"M117 CoolDown - {round(time_remaining,1)}hr\n" @@ -375,24 +386,18 @@ class AnnealingOrDrying(Script): if step_down <= lowest_temp: break - # Beep line - if bool(self.getSettingValueByKey("beep_when_done")): - beep_string = "M300 S440 P" + str(self.getSettingValueByKey("beep_duration")) + " ; Beep\n" - else: - beep_string = "" - # Close out the anneal string anneal_string += "M140 S0 ; Shut off the bed heater" + "\n" if anneal_type == "bed_chamber": anneal_string += "M141 S0 ; Shut off the chamber heater\n" anneal_string += self.bv_fan_off_str - anneal_string += beep_string + anneal_string += self.beep_string if add_messages: anneal_string += "M117 CoolDown Complete\n" anneal_string += "M118 CoolDown Complete\n" anneal_string += ";TYPE:CUSTOM ---------------- End of Anneal\n;" - # Format + # Format the inserted lines. anneal_lines = anneal_string.split("\n") for index, line in enumerate(anneal_lines): if not line.startswith(";") and ";" in line: @@ -401,36 +406,36 @@ class AnnealingOrDrying(Script): anneal_lines[index] = front_txt + str(" " * (30 - len(front_txt))) +";" + back_txt anneal_string = "\n".join(anneal_lines) + "\n" - layer = anneal_data[len(anneal_data)-1] - lines = layer.split("\n") + end_gcode = anneal_data[-1] + end_lines = end_gcode.split("\n") - # Comment out the M140 S0 line in the ending gcode. - for num in range(len(lines)-1,-1,-1): - if lines[num].startswith("M140 S0"): - lines[num] = ";M140 S0 ; Shutoff Overide - Anneal or Dry Filament" - anneal_data[len(anneal_data)-1] = "\n".join(lines) + # Comment out the existing M140 S0 lines in the ending gcode. + for num in range(len(end_lines)-1,-1,-1): + if end_lines[num].startswith("M140 S0"): + end_lines[num] = ";M140 S0 ; Shutoff Overide - Anneal or Dry Filament" + anneal_data[-1] = "\n".join(end_lines) # If there is a Heated Chamber and it's included then comment out the M141 S0 line if anneal_type == "bed_chamber" and heated_chamber: - for num in range(0,len(lines)-1,1): - if lines[num].startswith("M141 S0"): - lines[num] = ";M141 S0 ; Shutoff Overide - Anneal or Dry Filament" - anneal_data[len(anneal_data)-1] = "\n".join(lines) + for num in range(0,len(end_lines)-1): + if end_lines[num].startswith("M141 S0"): + end_lines[num] = ";M141 S0 ; Shutoff Overide - Anneal or Dry Filament" + anneal_data[-1] = "\n".join(end_lines) # If park head is enabled then dont let the steppers disable until the head is parked disable_string = "" - for num in range(0,len(lines)-1,1): - if lines[num][:3] in ("M84", "M18"): - disable_string = lines[num] + "\n" + for num in range(0,len(end_lines)-1): + if end_lines[num][:3] in ("M84", "M18"): + disable_string = end_lines[num] + "\n" stepper_timeout = int(wait_time + time_span) if stepper_timeout > 14400: stepper_timeout = 14400 - lines[num] = ";" + lines[num] + " ; Overide - Anneal or Dry Filament" - lines.insert(num, "M84 S" + str(stepper_timeout) + " ; Increase stepper timeout - Anneal or Dry Filament") - anneal_data[len(anneal_data)-1] = "\n".join(lines) + end_lines[num] = ";" + end_lines[num] + " ; Overide - Anneal or Dry Filament" + end_lines.insert(num, "M84 S" + str(stepper_timeout) + " ; Increase stepper timeout - Anneal or Dry Filament") + anneal_data[-1] = "\n".join(end_lines) break # The Anneal string is the new end of the gcode so move the 'End of Gcode' comment line in case there are other scripts running - anneal_data[len(anneal_data)-1] = anneal_data[len(anneal_data)-1].replace(";End of Gcode", anneal_string + disable_string + ";End of Gcode") + anneal_data[-1] = anneal_data[-1].replace(";End of Gcode", anneal_string + disable_string + ";End of Gcode") return anneal_data def _dry_filament_only(self, drydata: str, anneal_type: str, heated_chamber: bool, chamber_temp: int, bed_temperature: int, max_z:str, max_y:str, speed_travel: str) -> str: @@ -441,15 +446,16 @@ class AnnealingOrDrying(Script): drydata[num] = "" drydata[0] = drydata[0].split("\n")[0] + "\n" add_messages = bool(self.getSettingValueByKey("add_messages")) - pause_cmd = self.getSettingValueByKey("pause_cmd").upper() + pause_cmd = self.getSettingValueByKey("pause_cmd") if pause_cmd != "": - pause_cmd = "M300 ; Beep\n" + pause_cmd + pause_cmd = self.beep_string + pause_cmd dry_time = self.getSettingValueByKey("dry_time") * 3600 lines = drydata[1].split("\n") - drying_string = lines[0] + "\n" + ";............TYPE:CUSTOM: Dry Filament\n" + drying_string = lines[0] + f"\n;............TYPE:CUSTOM: Dry Filament\n{self.beep_string}" if add_messages: drying_string += f"M117 Cool Down for {round(dry_time/3600,2)} hr ; Message\n" drying_string += f"M118 Cool Down for {round(dry_time/3600,2)} hr ; Message\n" + # M113 sends messages to a print server as a 'Keep Alive' and can generate a lot of traffic over the USB drying_string += "M113 S0 ; No echo\n" drying_string += f"M84 S{round(dry_time)} ; Set stepper timeout\n" @@ -489,14 +495,14 @@ class AnnealingOrDrying(Script): drying_string += self.bv_fan_off_str if self.getSettingValueByKey("beep_when_done"): beep_duration = self.getSettingValueByKey("beep_duration") - drying_string += f"M300 P{beep_duration} ; Beep\n" + drying_string += self.beep_string if add_messages: drying_string += "M117 End of drying cycle ; Message\n" drying_string += "M118 End of drying cycle ; Message\n" drying_string += "M84 X Y E ; Disable steppers except Z\n" drying_string += ";End of Gcode" - # Format + # Format the lines lines = drying_string.split("\n") for index, line in enumerate(lines): if not line.startswith(";") and ";" in line: From 4006272fee2f6b90af4ac78cbf7e071aa39f7746 Mon Sep 17 00:00:00 2001 From: HellAholic Date: Tue, 5 Aug 2025 00:45:48 +0200 Subject: [PATCH 112/200] Some housekeeping - anneal_type -> heating_zone: lines up the variable name with intent. - Sort the variable inputs of the functions (annealing / drying) - Add description for parameters in both functions (annealing / drying) --- .../scripts/AnnealingOrDrying.py | 94 ++++++++++++++----- 1 file changed, 73 insertions(+), 21 deletions(-) diff --git a/plugins/PostProcessingPlugin/scripts/AnnealingOrDrying.py b/plugins/PostProcessingPlugin/scripts/AnnealingOrDrying.py index 496fc1cb42..1841a8b62b 100644 --- a/plugins/PostProcessingPlugin/scripts/AnnealingOrDrying.py +++ b/plugins/PostProcessingPlugin/scripts/AnnealingOrDrying.py @@ -67,7 +67,7 @@ class AnnealingOrDrying(Script): { "anneal_cycle": "Anneal Print", "dry_cycle": "Dry Filament" - }, + }, "default_value": "anneal_cycle", "enabled": true, "enabled": "enable_script" @@ -80,7 +80,8 @@ class AnnealingOrDrying(Script): "options": { "bed_only": "Bed", - "bed_chamber": "Bed and Chamber"}, + "bed_chamber": "Bed and Chamber" + }, "default_value": "bed_only", "enabled": "enable_script" }, @@ -244,13 +245,13 @@ class AnnealingOrDrying(Script): extruders = self.global_stack.extruderList bed_temperature = int(self.getSettingValueByKey("startout_temp")) heated_chamber = bool(self.global_stack.getProperty("machine_heated_build_volume", "value")) - anneal_type = self.getSettingValueByKey("heating_zone_selection") + heating_zone = self.getSettingValueByKey("heating_zone_selection") # Get the heated chamber temperature or set to 0 if no chamber if heated_chamber: chamber_temp = str(self.getSettingValueByKey("build_volume_temp")) else: - anneal_type = "bed_only" + heating_zone = "bed_only" chamber_temp = "0" # Beep line @@ -270,7 +271,7 @@ class AnnealingOrDrying(Script): speed_bv_fan = 0 if bool(extruders[0].getProperty("machine_scale_fan_speed_zero_to_one", "value")) and has_bv_fan: - speed_bv_fan = round(speed_bv_fan * .01) + speed_bv_fan = round(speed_bv_fan * 0.01) else: speed_bv_fan = round(speed_bv_fan * 2.55) @@ -300,15 +301,45 @@ class AnnealingOrDrying(Script): add_messages = bool(self.getSettingValueByKey("add_messages")) if cycle_type == "anneal_cycle": - data = self._anneal_print(data, park_xy, park_z, bed_temperature, lowest_temp, heated_chamber, chamber_temp, max_y, max_x, max_z, speed_travel, add_messages, anneal_type) + data = self._anneal_print(add_messages, data, bed_temperature, chamber_temp, heated_chamber, heating_zone, lowest_temp, max_x, max_y, max_z, park_xy, park_z, speed_travel) elif cycle_type == "dry_cycle": - data = self._dry_filament_only(data, anneal_type, heated_chamber, chamber_temp, bed_temperature, max_z, max_y, speed_travel) + data = self._dry_filament_only(data, bed_temperature, chamber_temp, heated_chamber, heating_zone, max_y, max_z, speed_travel) return data - def _anneal_print(self, anneal_data: str, park_xy: bool, park_z: bool, bed_temperature:int, lowest_temp: int, heated_chamber: bool, chamber_temp: str, max_x: str, max_y: str, max_z: str, speed_travel: str, add_messages: bool, anneal_type: str): + def _anneal_print( + self, + add_messages: bool, + anneal_data: str, + bed_temperature: int, + chamber_temp: str, + heated_chamber: bool, + heating_zone: str, + lowest_temp: int, + max_x: str, + max_y: str, + max_z: str, + park_xy: bool, + park_z: bool, + speed_travel: str) -> str: """ - The procedure disables the M140 (and M141) lines at the end of the print, and adds additional bed (and chamber) temperature commands to the end of the G-Code file. The bed is allowed to cool down over a period of time. + The procedure disables the M140 (and M141) lines at the end of the print, and adds additional bed (and chamber) temperature commands to the end of the G-Code file. + The bed is allowed to cool down over a period of time. + + :param add_messages: Whether to include M117 and M118 messages for LCD and print server + :param anneal_data: The G-code data to be modified with annealing commands + :param bed_temperature: Starting bed temperature in degrees Celsius + :param chamber_temp: Chamber/build volume temperature in degrees Celsius as string + :param heated_chamber: Whether the printer has a heated build volume/chamber + :param heating_zone: Zone selection - "bed_only" or "bed_chamber" + :param lowest_temp: Final shutdown temperature in degrees Celsius + :param max_x: Maximum X axis position for parking as string + :param max_y: Maximum Y axis position for parking as string + :param max_z: Maximum Z axis position (machine height - 20mm) as string + :param park_xy: Whether to park the print head at max X and Y positions + :param park_z: Whether to raise Z to maximum safe height + :param speed_travel: Travel speed for positioning moves in mm/min as string + :return: Modified G-code data with annealing cooldown sequence """ # Put the head parking string together bed_temp_during_print = int(self.global_stack.getProperty("material_bed_temperature", "value")) @@ -326,7 +357,7 @@ class AnnealingOrDrying(Script): # Calculate the temperature differential hysteresis = bed_temperature - lowest_temp - # if the bed temp is below the shutoff temp then exit + # Exit if the bed temp is below the shutoff temp if hysteresis <= 0: anneal_data[0] += "; Anneal or Dry Filament did not run. Bed Temp < Shutoff Temp\n" Message(title = "Anneal or Dry Filament", text = "Did not run because the Bed Temp < Shutoff Temp.").show() @@ -351,9 +382,9 @@ class AnnealingOrDrying(Script): if wait_time > 0: # Add the parking string BEFORE the M190 anneal_string += park_string - if anneal_type == "bed_only": + if heating_zone == "bed_only": anneal_string += f"M190 S{bed_temperature} ; Set the bed temp\n{self.beep_string}" - if anneal_type == "bed_chamber": + if heating_zone == "bed_chamber": anneal_string += f"M190 S{bed_temperature} ; Set the bed temp\nM141 S{chamber_temp} ; Set the chamber temp\n{self.beep_string}" anneal_string += f"G4 S{wait_time} ; Hold for {round(wait_time / 3600,2)} hrs\n" else: @@ -368,7 +399,7 @@ class AnnealingOrDrying(Script): # Step the bed/chamber temps down and add each step to the anneal string. The chamber remains at it's temperature until the bed gets down to that temperature. for num in range(bed_temperature, lowest_temp, -3): anneal_string += f"M140 S{step_down} ; Step down bed\n" - if anneal_type == "bed_chamber" and int(step_down) < int(chamber_temp): + if heating_zone == "bed_chamber" and int(step_down) < int(chamber_temp): anneal_string += f"M141 S{step_down} ; Step down chamber\n" anneal_string += f"G4 S{time_per_step} ; Wait\n" if time_remaining >= 1.00: @@ -388,7 +419,7 @@ class AnnealingOrDrying(Script): # Close out the anneal string anneal_string += "M140 S0 ; Shut off the bed heater" + "\n" - if anneal_type == "bed_chamber": + if heating_zone == "bed_chamber": anneal_string += "M141 S0 ; Shut off the chamber heater\n" anneal_string += self.bv_fan_off_str anneal_string += self.beep_string @@ -416,7 +447,7 @@ class AnnealingOrDrying(Script): anneal_data[-1] = "\n".join(end_lines) # If there is a Heated Chamber and it's included then comment out the M141 S0 line - if anneal_type == "bed_chamber" and heated_chamber: + if heating_zone == "bed_chamber" and heated_chamber: for num in range(0,len(end_lines)-1): if end_lines[num].startswith("M141 S0"): end_lines[num] = ";M141 S0 ; Shutoff Overide - Anneal or Dry Filament" @@ -438,9 +469,30 @@ class AnnealingOrDrying(Script): anneal_data[-1] = anneal_data[-1].replace(";End of Gcode", anneal_string + disable_string + ";End of Gcode") return anneal_data - def _dry_filament_only(self, drydata: str, anneal_type: str, heated_chamber: bool, chamber_temp: int, bed_temperature: int, max_z:str, max_y:str, speed_travel: str) -> str: + def _dry_filament_only( + self, + bed_temperature: int, + chamber_temp: int, + drydata: str, + heated_chamber: bool, + heating_zone: str, + max_y: str, + max_z: str, + speed_travel: str) -> str: """ - This procedure turns the bed on, homes the printer, parks the head. After the time period the bed is turned off. There is no actual print in the generated gcode, just a couple of moves to get the nozzle out of the way, and the bed heat (and possibly chamber heat) control. It allows a user to use the bed to warm up and hopefully dry a filament roll. + This procedure turns the bed on, homes the printer, parks the head. After the time period the bed is turned off. + There is no actual print in the generated gcode, just a couple of moves to get the nozzle out of the way, and the bed heat (and possibly chamber heat) control. + It allows a user to use the bed to warm up and hopefully dry a filament roll. + + :param bed_temperature: Bed temperature for drying in degrees Celsius + :param chamber_temp: Chamber/build volume temperature for drying in degrees Celsius + :param drydata: The G-code data to be replaced with filament drying commands + :param heated_chamber: Whether the printer has a heated build volume/chamber + :param heating_zone: Zone selection - "bed_only" or "bed_chamber" + :param max_y: Maximum Y axis position for parking as string + :param max_z: Maximum Z axis position (machine height - 20mm) as string + :param speed_travel: Travel speed for positioning moves in mm/min as string + :return: Modified G-code data containing only filament drying sequence """ for num in range(2, len(drydata)): drydata[num] = "" @@ -461,7 +513,7 @@ class AnnealingOrDrying(Script): drying_string += f"M84 S{round(dry_time)} ; Set stepper timeout\n" drying_string += f"M140 S{bed_temperature} ; Heat bed\n" drying_string += self.bv_fan_on_str - if heated_chamber and anneal_type == "bed_chamber": + if heated_chamber and heating_zone == "bed_chamber": drying_string += f"M141 S{chamber_temp} ; Chamber temp\n" if pause_cmd == "M0": pause_cmd = "M0 Clear bed and click...; Pause" @@ -489,7 +541,7 @@ class AnnealingOrDrying(Script): drying_string += f"M117 {temp_time/3600} hr remaining ; Message\n" drying_string += f"M118 {temp_time/3600} hr remaining ; Message\n" drying_string += f"G4 S{temp_time} ; Dry time\n" - if heated_chamber and anneal_type == "bed_chamber": + if heated_chamber and heating_zone == "bed_chamber": drying_string += f"M141 S0 ; Shut off chamber\n" drying_string += "M140 S0 ; Shut off bed\n" drying_string += self.bv_fan_off_str @@ -512,8 +564,8 @@ class AnnealingOrDrying(Script): drydata[1] = "\n".join(lines) + "\n" dry_txt = "; Drying time ...................... " + str(self.getSettingValueByKey("dry_time")) + " hrs\n" dry_txt += "; Drying temperature ........ " + str(bed_temperature) + "°\n" - if heated_chamber and anneal_type == "bed_chamber": + if heated_chamber and heating_zone == "bed_chamber": dry_txt += "; Chamber temperature ... " + str(chamber_temp) + "°\n" Message(title = "[Dry Filament]", text = dry_txt).show() drydata[0] = "; <<< This is a filament drying file only. There is no actual print. >>>\n;\n" + dry_txt + ";\n" - return drydata \ No newline at end of file + return drydata From fa00082777367ad26361a96090ebf83f18162147 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Tue, 5 Aug 2025 12:54:44 +0200 Subject: [PATCH 113/200] Set higher default multi-material resolution CURA-12587 --- resources/definitions/fdmprinter.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 4b81d50c0c..d7403badce 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -7923,8 +7923,8 @@ "unit": "mm", "type": "float", "enabled": "extruders_enabled_count > 1", - "default_value": "0.2", - "value": "line_width / 2", + "default_value": "0.4", + "value": "line_width", "minimum_value": "0.1", "maximum_value": "5", "maximum_value_warning": "line_width * 2", From c75c66860491adb75413ad221378890cabdd3fed Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Tue, 5 Aug 2025 15:34:57 +0200 Subject: [PATCH 114/200] Allow user to display and select material color painting CURA-12584 --- plugins/PaintTool/PaintTool.py | 14 +++++++++-- plugins/PaintTool/PaintTool.qml | 26 ++++++++++++++++++++ plugins/PaintTool/PaintView.py | 42 +++++++++++++++++++++++++++++++-- 3 files changed, 78 insertions(+), 4 deletions(-) diff --git a/plugins/PaintTool/PaintTool.py b/plugins/PaintTool/PaintTool.py index eaeb2dc69b..7b77b02a9d 100644 --- a/plugins/PaintTool/PaintTool.py +++ b/plugins/PaintTool/PaintTool.py @@ -47,6 +47,7 @@ class PaintTool(Tool): self._brush_size: int = 200 self._brush_color: str = "preferred" + self._brush_extruder: int = 0 self._brush_shape: PaintTool.Brush.Shape = PaintTool.Brush.Shape.CIRCLE self._brush_pen: QPen = self._createBrushPen() @@ -56,7 +57,7 @@ class PaintTool(Tool): self._last_mouse_coords: Optional[Tuple[int, int]] = None self._last_face_id: Optional[int] = None - self.setExposedProperties("PaintType", "BrushSize", "BrushColor", "BrushShape") + self.setExposedProperties("PaintType", "BrushSize", "BrushColor", "BrushShape", "BrushExtruder") Selection.selectionChanged.connect(self._updateIgnoreUnselectedObjects) @@ -131,6 +132,14 @@ class PaintTool(Tool): self._brush_color = brush_color self.propertyChanged.emit() + def getBrushExtruder(self) -> int: + return self._brush_extruder + + def setBrushExtruder(self, brush_extruder: int) -> None: + if brush_extruder != self._brush_extruder: + self._brush_extruder = brush_extruder + self.propertyChanged.emit() + def getBrushShape(self) -> int: return self._brush_shape @@ -379,6 +388,7 @@ class PaintTool(Tool): (self._last_mouse_coords, (self._last_face_id, self._last_text_coords)), ((mouse_evt.x, mouse_evt.y), (face_id, texcoords))) + brush_color = self._brush_color if self.getPaintType() != "extruder" else str(self._brush_extruder) w, h = paintview.getUvTexDimensions() for start_coords, end_coords in substrokes: sub_image, (start_x, start_y) = self._createStrokeImage( @@ -387,7 +397,7 @@ class PaintTool(Tool): end_coords[0] * w, end_coords[1] * h ) - paintview.addStroke(sub_image, start_x, start_y, self._brush_color) + paintview.addStroke(sub_image, start_x, start_y, brush_color) self._last_text_coords = texcoords self._last_mouse_coords = (mouse_evt.x, mouse_evt.y) diff --git a/plugins/PaintTool/PaintTool.qml b/plugins/PaintTool/PaintTool.qml index eac5948f26..79d1c54004 100644 --- a/plugins/PaintTool/PaintTool.qml +++ b/plugins/PaintTool/PaintTool.qml @@ -11,6 +11,7 @@ import Cura 1.0 as Cura Item { id: base + width: childrenRect.width height: childrenRect.height UM.I18nCatalog { id: catalog; name: "cura"} @@ -76,6 +77,7 @@ Item RowLayout { id: rowBrushColor + visible: !rowExtruder.visible UM.Label { @@ -122,6 +124,30 @@ Item } } + RowLayout + { + id: rowExtruder + visible: UM.Controller.properties.getValue("PaintType") === "extruder" + + UM.Label + { + text: catalog.i18nc("@label", "Mark as") + } + + Repeater + { + id: repeaterExtruders + model: CuraApplication.getExtrudersModel() + delegate: Cura.ExtruderButton + { + extruder: model + + checked: UM.Controller.properties.getValue("BrushExtruder") === model.index + onClicked: UM.Controller.setProperty("BrushExtruder", model.index) + } + } + } + RowLayout { id: rowBrushShape diff --git a/plugins/PaintTool/PaintView.py b/plugins/PaintTool/PaintView.py index 1f185ee809..d9dc877361 100644 --- a/plugins/PaintTool/PaintView.py +++ b/plugins/PaintTool/PaintView.py @@ -9,6 +9,7 @@ from PyQt6.QtGui import QImage, QColor, QPainter from cura.CuraApplication import CuraApplication from cura.BuildVolume import BuildVolume +from Machines.Models.ExtrudersModel import ExtrudersModel from UM.PluginRegistry import PluginRegistry from UM.View.View import View from UM.View.GL.ShaderProgram import ShaderProgram @@ -52,19 +53,56 @@ class PaintView(View): self._solid_view = None + self._extruders_model: Optional[ExtrudersModel] = None + def _makePaintModes(self): - theme = CuraApplication.getInstance().getTheme() + application = CuraApplication.getInstance() + + self._extruders_model = application.getExtrudersModel() + self._extruders_model.modelChanged.connect(self._onExtrudersChanged) + + theme = application.getTheme() usual_types = {"none": self.PaintType(Color(*theme.getColor("paint_normal_area").getRgb()), 0), "preferred": self.PaintType(Color(*theme.getColor("paint_preferred_area").getRgb()), 1), "avoid": self.PaintType(Color(*theme.getColor("paint_avoid_area").getRgb()), 2)} self._paint_modes = { "seam": usual_types, "support": usual_types, - "extruder": usual_types, + "extruder": self._makeExtrudersColors(), } self._current_paint_type = "seam" + def _makeExtrudersColors(self) -> Dict[str, "PaintView.PaintType"]: + extruders_colors: Dict[str, "PaintView.PaintType"] = {} + + for extruder_item in self._extruders_model.items: + if "color" in extruder_item: + material_color = extruder_item["color"] + else: + material_color = self._extruders_model.defaultColors[0] + + index = extruder_item["index"] + extruders_colors[str(index)] = self.PaintType(Color(*QColor(material_color).getRgb()), index) + + return extruders_colors + + def _onExtrudersChanged(self) -> None: + if self._paint_modes is None: + return + + self._paint_modes["extruder"] = self._makeExtrudersColors() + + controller = CuraApplication.getInstance().getController() + if controller.getActiveView() != self: + return + + selected_objects = Selection.getAllSelectedObjects() + if len(selected_objects) != 1: + return + + controller.getScene().sceneChanged.emit(selected_objects[0]) + def _checkSetup(self): if not self._paint_shader: shader_filename = os.path.join(PluginRegistry.getInstance().getPluginPath("PaintTool"), "paint.shader") From 2e8cc4da8204b30abbc23a157596b435b07c28ec Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Tue, 5 Aug 2025 16:10:57 +0200 Subject: [PATCH 115/200] Fix display not updating when changing tool CURA-12660 Previous fix caused issues when moving to preview --- plugins/PaintTool/PaintView.py | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/PaintTool/PaintView.py b/plugins/PaintTool/PaintView.py index d9dc877361..e7d5125ebb 100644 --- a/plugins/PaintTool/PaintView.py +++ b/plugins/PaintTool/PaintView.py @@ -189,6 +189,7 @@ class PaintView(View): def setPaintType(self, paint_type: str) -> None: self._current_paint_type = paint_type + self._prepareDataMapping() def _prepareDataMapping(self): node = Selection.getAllSelectedObjects()[0] From 88ab3c1732fd585d44511a9b4a5632b22596d90c Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Thu, 7 Aug 2025 11:19:14 +0200 Subject: [PATCH 116/200] Fix crash when trying to clear material painting CURA-12585 --- plugins/PaintTool/PaintTool.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/PaintTool/PaintTool.py b/plugins/PaintTool/PaintTool.py index 5386f6172e..743566fb79 100644 --- a/plugins/PaintTool/PaintTool.py +++ b/plugins/PaintTool/PaintTool.py @@ -185,7 +185,7 @@ class PaintTool(Tool): width, height = self._view.getUvTexDimensions() clear_image = QImage(width, height, QImage.Format.Format_RGB32) clear_image.fill(Qt.GlobalColor.white) - self._view.addStroke(clear_image, 0, 0, "none", False) + self._view.addStroke(clear_image, 0, 0, "none" if self.getPaintType() != "extruder" else "0", False) self._updateScene() From 175a72e12bf68f1225aae1a63cf2f380c5ebe810 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Fri, 8 Aug 2025 08:32:09 +0200 Subject: [PATCH 117/200] Fix direct import CURA-12584 --- plugins/PaintTool/PaintView.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/PaintTool/PaintView.py b/plugins/PaintTool/PaintView.py index a574baeb7e..cf29ca71b6 100644 --- a/plugins/PaintTool/PaintView.py +++ b/plugins/PaintTool/PaintView.py @@ -10,7 +10,7 @@ from PyQt6.QtGui import QImage, QUndoStack, QColor from cura.CuraApplication import CuraApplication from cura.BuildVolume import BuildVolume from cura.CuraView import CuraView -from Machines.Models.ExtrudersModel import ExtrudersModel +from cura.Machines.Models.ExtrudersModel import ExtrudersModel from UM.PluginRegistry import PluginRegistry from UM.View.GL.ShaderProgram import ShaderProgram from UM.View.GL.Texture import Texture From d5cee015402ebb725db84d699e4dcfb6682c13ee Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Fri, 8 Aug 2025 10:09:15 +0200 Subject: [PATCH 118/200] Set higher default multi-material precision CURA-12584 0.4 is a bit too high, and since the processing has been improved a lot, we can now afford a 0.2 --- resources/definitions/fdmprinter.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index d7403badce..4b81d50c0c 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -7923,8 +7923,8 @@ "unit": "mm", "type": "float", "enabled": "extruders_enabled_count > 1", - "default_value": "0.4", - "value": "line_width", + "default_value": "0.2", + "value": "line_width / 2", "minimum_value": "0.1", "maximum_value": "5", "maximum_value_warning": "line_width * 2", From f348a31a23cfe9834d49bc5b3b1cd4edcd231379 Mon Sep 17 00:00:00 2001 From: HellAholic Date: Mon, 11 Aug 2025 07:48:36 +0200 Subject: [PATCH 119/200] Update um_sketch_sprint_0.4mm_um-pla-175_0.2mm.inst.cfg To address: - Under-extrusion issue after bridging - Overhang quality & Warping --- .../um_sketch_sprint_0.4mm_um-pla-175_0.2mm.inst.cfg | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/resources/quality/ultimaker_sketch_sprint/um_sketch_sprint_0.4mm_um-pla-175_0.2mm.inst.cfg b/resources/quality/ultimaker_sketch_sprint/um_sketch_sprint_0.4mm_um-pla-175_0.2mm.inst.cfg index 7fe5437a80..e3d9ecd894 100644 --- a/resources/quality/ultimaker_sketch_sprint/um_sketch_sprint_0.4mm_um-pla-175_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_sketch_sprint/um_sketch_sprint_0.4mm_um-pla-175_0.2mm.inst.cfg @@ -12,4 +12,8 @@ variant = 0.4mm weight = -2 [values] - +bridge_wall_speed = 40 +cool_min_layer_time_overhang = 12 +cool_min_speed = 40 +wall_overhang_angle = 30 +wall_overhang_speed_factors = [60] \ No newline at end of file From 07c7e78b3fb37fa509600e4548ca0b42accb171b Mon Sep 17 00:00:00 2001 From: HellAholic Date: Mon, 11 Aug 2025 07:52:56 +0200 Subject: [PATCH 120/200] Add build chamber fan commands to start gcode - Ensure the Fans are active - Set the servo to bring air from outside rather than internal circulation --- resources/definitions/ultimaker_sketch_sprint.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/ultimaker_sketch_sprint.def.json b/resources/definitions/ultimaker_sketch_sprint.def.json index 529abc0940..a9883d268f 100644 --- a/resources/definitions/ultimaker_sketch_sprint.def.json +++ b/resources/definitions/ultimaker_sketch_sprint.def.json @@ -158,7 +158,7 @@ "machine_max_feedrate_z": { "default_value": 40 }, "machine_min_cool_heat_time_window": { "value": "15" }, "machine_name": { "default_value": "MakerBot Sketch Sprint" }, - "machine_start_gcode": { "default_value": "G28\nM132 X Y Z A B\nG1 Z50.000 F420\nG161 X Y F3300\nM7 T0\nM6 T0\nM651 S255\nG1 Z0.25 F6000\nG1 E-1.5 F800\nG1 E2 F800\nG1 X111 Y111 Z0.25 F4800\nG1 X111 Y-111 E25 F1200" }, + "machine_start_gcode": { "default_value": "G28\nM132 X Y Z A B\nG1 Z50.000 F420\nG161 X Y F3300\nM7 T0\nM6 T0\nM651 S255\nSET_SERVO SERVO=my_servo ANGLE=180\nSET_FAN_SPEED FAN=external_fan SPEED=1\nSET_FAN_SPEED FAN=internal_fan SPEED=1\nG1 Z0.25 F6000\nG1 E-1.5 F800\nG1 E2 F800\nG1 X111 Y111 Z0.25 F4800\nG1 X111 Y-111 E25 F1200" }, "machine_width": { "default_value": 221.5 }, "material_bed_temp_wait": { "value": "False" }, "material_bed_temperature": From 6f85d9f1f49941f8b9e80de42d676eeab622d6e0 Mon Sep 17 00:00:00 2001 From: HellAholic <28710690+HellAholic@users.noreply.github.com> Date: Mon, 11 Aug 2025 05:54:25 +0000 Subject: [PATCH 121/200] Apply printer-linter format --- .../um_sketch_sprint_0.4mm_um-pla-175_0.2mm.inst.cfg | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/quality/ultimaker_sketch_sprint/um_sketch_sprint_0.4mm_um-pla-175_0.2mm.inst.cfg b/resources/quality/ultimaker_sketch_sprint/um_sketch_sprint_0.4mm_um-pla-175_0.2mm.inst.cfg index e3d9ecd894..a7e18af32d 100644 --- a/resources/quality/ultimaker_sketch_sprint/um_sketch_sprint_0.4mm_um-pla-175_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_sketch_sprint/um_sketch_sprint_0.4mm_um-pla-175_0.2mm.inst.cfg @@ -16,4 +16,5 @@ bridge_wall_speed = 40 cool_min_layer_time_overhang = 12 cool_min_speed = 40 wall_overhang_angle = 30 -wall_overhang_speed_factors = [60] \ No newline at end of file +wall_overhang_speed_factors = [60] + From 32f06fe2df41be7a5b455c4a037edadd1a8c2f64 Mon Sep 17 00:00:00 2001 From: HellAholic Date: Mon, 11 Aug 2025 11:06:48 +0200 Subject: [PATCH 122/200] Remove the link to campaign - Incorrect redirect --- resources/qml/WelcomePages/AddUltimakerPrinter.qml | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/qml/WelcomePages/AddUltimakerPrinter.qml b/resources/qml/WelcomePages/AddUltimakerPrinter.qml index 0c9b7d4f7f..7b1a9ced20 100644 --- a/resources/qml/WelcomePages/AddUltimakerPrinter.qml +++ b/resources/qml/WelcomePages/AddUltimakerPrinter.qml @@ -129,7 +129,6 @@ Control text: catalog.i18nc("@button", "Sign in to Digital Factory") onClicked: function() { - Qt.openUrlExternally("https://digitalfactory.ultimaker.com/app/printers?add_printer=true&utm_source=cura&utm_medium=software&utm_campaign=onboarding-add-printer") text = catalog.i18nc("@button", "Waiting for new printers") busy = true; enabled = false; From b1e4080a204e7bb061f8c0afe9a3a6922a254269 Mon Sep 17 00:00:00 2001 From: HellAholic Date: Mon, 11 Aug 2025 12:02:27 +0200 Subject: [PATCH 123/200] Update the sign in button when login is in progress --- resources/qml/WelcomePages/CloudContent.qml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/resources/qml/WelcomePages/CloudContent.qml b/resources/qml/WelcomePages/CloudContent.qml index 54e95462e0..106582d1a1 100644 --- a/resources/qml/WelcomePages/CloudContent.qml +++ b/resources/qml/WelcomePages/CloudContent.qml @@ -210,7 +210,13 @@ Item anchors.bottom: parent.bottom text: catalog.i18nc("@button", "Sign in") - onClicked: Cura.API.account.login() + onClicked: function() + { + text = catalog.i18nc("@button", "Waiting for new printers") + busy = true; + enabled = false; + Cura.API.account.isLoggedIn? Cura.API.account.sync():Cura.API.account.login(); + } // Content Item is used in order to align the text inside the button. Without it, when resizing the // button, the text will be aligned on the left contentItem: Text { From 845713b03a0dbcca06391d3cebbe185d5657d1e7 Mon Sep 17 00:00:00 2001 From: HellAholic Date: Mon, 11 Aug 2025 13:38:37 +0200 Subject: [PATCH 124/200] Update zyyx_plus.def.json --- resources/definitions/zyyx_plus.def.json | 97 ++++++++++++++++-------- 1 file changed, 65 insertions(+), 32 deletions(-) diff --git a/resources/definitions/zyyx_plus.def.json b/resources/definitions/zyyx_plus.def.json index 4df6e50a85..89ba8e08b0 100644 --- a/resources/definitions/zyyx_plus.def.json +++ b/resources/definitions/zyyx_plus.def.json @@ -2,8 +2,7 @@ "version": 2, "name": "ZYYX+", "inherits": "fdmprinter", - "metadata": - { + "metadata": { "visible": true, "author": "Theodor Hansson", "manufacturer": "ZYYX Labs AB", @@ -75,10 +74,6 @@ "Extrudr_GreenTECPro_Silver_175", "Extrudr_GreenTECPro_White_175", "verbatim_bvoh_175", - "Vertex_Delta_ABS", - "Vertex_Delta_PET", - "Vertex_Delta_PLA", - "Vertex_Delta_TPU", "chromatik_pla", "dsm_arnitel2045_175", "dsm_novamid1070_175", @@ -183,37 +178,75 @@ "zyyx_pronylon" ], "has_machine_quality": true, - "machine_extruder_trains": { "0": "zyyx_plus_extruder_0" }, + "machine_extruder_trains": { + "0": "zyyx_plus_extruder_0" + }, "machine_x3g_variant": "z", "preferred_material": "generic_pla", - "preferred_quality_type": "normal", - "quality_definition": "zyyx_plus", - "setting_version": 3 + "preferred_quality_type": "normal" }, - "overrides": - { - "gantry_height": { "value": "10" }, - "infill_overlap": { "value": "12 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0" }, - "machine_center_is_zero": { "default_value": true }, - "machine_depth": { "default_value": 210 }, - "machine_end_gcode": { "default_value": "; ZYYX 3D Printer end gcode\nM73 P100 ; end build progress\nG0 Z195 F1000 ; send Z axis to bottom of machine\nM104 S0 T0 ; cool down extruder\nM127 ; stop blower fan\nG162 X Y F3000 ; home XY maximum\nM18 ; disable stepper\nM70 P5 (ZYYX Print Finished!)\nM72 P1 ; play Ta-Da song\n" }, - "machine_gcode_flavor": { "default_value": "Makerbot" }, - "machine_head_with_fans_polygon": - { + "overrides": { + "gantry_height": { + "value": "10" + }, + "infill_overlap": { + "value": "12 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0" + }, + "machine_center_is_zero": { + "default_value": true + }, + "machine_depth": { + "default_value": 210 + }, + "machine_end_gcode": { + "default_value": "; ZYYX 3D Printer end gcode\nM73 P100 ; end build progress\nG0 Z195 F1000 ; send Z axis to bottom of machine\nM104 S0 T0 ; cool down extruder\nM127 ; stop blower fan\nG162 X Y F3000 ; home XY maximum\nM18 ; disable stepper\nM70 P5 (ZYYX Print Finished!)\nM72 P1 ; play Ta-Da song\n" + }, + "machine_gcode_flavor": { + "default_value": "Makerbot" + }, + "machine_head_with_fans_polygon": { "default_value": [ - [-37, 50], - [25, 50], - [25, -40], - [-37, -40] + [ + -37, + 50 + ], + [ + 25, + 50 + ], + [ + 25, + -40 + ], + [ + -37, + -40 + ] ] }, - "machine_height": { "default_value": 195 }, - "machine_name": { "default_value": "ZYYX+" }, - "machine_start_gcode": { "default_value": "; ZYYX+ start gcode\n; Author Theodor Hansson 2024\nM73 P0; enable build progress\nM104 S{material_print_temperature_layer_0} T0; set nozzle temperature\nM126 S0; Turn off fan\nG21; set units to mm\nG90; set positioning to absolute\nG130 X80 Y80 A127 B127 ; Set Stepper Vref to default value\n\n; Home xy-axis\nG162 X Y F2500; home XY axes maximum\nG92 X0 Y0\nG1 X-5 Y-5 F2500\nG162 X Y F200; home XY axes maximum slowly\nG92 X132.5 Y120\n\n; Home z-axis\nG161 Z F1100; home Z axis minimum\nG92 Z0\nG1 Z2 F1100\nG161 Z F100; home Z axis minimum slowly\nG92 Z0\nM132 Z; Recall home offsets for Z\n\n; Calibrate point 1 (we're already at point 1)\nM131 A; store surface calibration point 1\nG1 Z2 F1100; back up from buildplate\n\n; Calibrate point 2\nG1 X-44.5 Y120 F7000; move to 2nd probing point\nG161 Z F100\nM131 B; store surface calibration point 1\nG1 Z2 F1100; back up from buildplate\n\n; Calibrate point 3\nG1 X132.5 Y-110 F7000; move to 2nd probing point\nG161 Z F100\nM131 AB; store surface calibration point 3\nG1 Z2 F1100; back up from buildplate\nM132 AB; Activate auto-leveling\nG1 Z1 F1000\n\n; Lay prime strip\nM133 T0; stabilize extruder temperature\nM126 S{cool_fan_speed_0}; Activate fan\nG4 P1000; Wait a little bit longer\nG1 X80 Y-110 Z0.2 F1000\nG1 X20 E9 F1000\nG1 X-20 E12.5 F1000\nG92 E0 ; Set E to 0\n\n; End of start gcode" }, - "machine_steps_per_mm_e": { "default_value": 96.27520187033366 }, - "machine_steps_per_mm_x": { "default_value": 88.888889 }, - "machine_steps_per_mm_y": { "default_value": 88.888889 }, - "machine_steps_per_mm_z": { "default_value": 400 }, - "machine_width": { "default_value": 265 } + "machine_height": { + "default_value": 195 + }, + "machine_name": { + "default_value": "ZYYX+" + }, + "machine_start_gcode": { + "default_value": "; ZYYX+ start gcode\n; Author Theodor Hansson 2024\nM73 P0; enable build progress\nM104 S{material_print_temperature_layer_0} T0; set nozzle temperature\nM126 S0; Turn off fan\nG21; set units to mm\nG90; set positioning to absolute\nG130 X80 Y80 A127 B127 ; Set Stepper Vref to default value\n\n; Home xy-axis\nG162 X Y F2500; home XY axes maximum\nG92 X0 Y0\nG1 X-5 Y-5 F2500\nG162 X Y F200; home XY axes maximum slowly\nG92 X132.5 Y120\n\n; Home z-axis\nG161 Z F1100; home Z axis minimum\nG92 Z0\nG1 Z2 F1100\nG161 Z F100; home Z axis minimum slowly\nG92 Z0\nM132 Z; Recall home offsets for Z\n\n; Calibrate point 1 (we're already at point 1)\nM131 A; store surface calibration point 1\nG1 Z2 F1100; back up from buildplate\n\n; Calibrate point 2\nG1 X-44.5 Y120 F7000; move to 2nd probing point\nG161 Z F100\nM131 B; store surface calibration point 1\nG1 Z2 F1100; back up from buildplate\n\n; Calibrate point 3\nG1 X132.5 Y-110 F7000; move to 2nd probing point\nG161 Z F100\nM131 AB; store surface calibration point 3\nG1 Z2 F1100; back up from buildplate\nM132 AB; Activate auto-leveling\nG1 Z1 F1000\n\n; Lay prime strip\nM133 T0; stabilize extruder temperature\nM126 S{cool_fan_speed_0}; Activate fan\nG4 P1000; Wait a little bit longer\nG1 X80 Y-110 Z0.2 F1000\nG1 X20 E9 F1000\nG1 X-20 E12.5 F1000\nG92 E0 ; Set E to 0\n\n; End of start gcode" + }, + "machine_steps_per_mm_e": { + "default_value": 96.27520187033366 + }, + "machine_steps_per_mm_x": { + "default_value": 88.888889 + }, + "machine_steps_per_mm_y": { + "default_value": 88.888889 + }, + "machine_steps_per_mm_z": { + "default_value": 400 + }, + "machine_width": { + "default_value": 265 + } } } \ No newline at end of file From d0365db17664dbfd2f2cdcae97973550e8e8a06f Mon Sep 17 00:00:00 2001 From: HellAholic Date: Mon, 11 Aug 2025 13:38:40 +0200 Subject: [PATCH 125/200] Update zyyx_pro.def.json --- resources/definitions/zyyx_pro.def.json | 186 +++++++++++++++++------- 1 file changed, 135 insertions(+), 51 deletions(-) diff --git a/resources/definitions/zyyx_pro.def.json b/resources/definitions/zyyx_pro.def.json index 3fdfbe27d7..c96d87d0b9 100644 --- a/resources/definitions/zyyx_pro.def.json +++ b/resources/definitions/zyyx_pro.def.json @@ -2,8 +2,7 @@ "version": 2, "name": "ZYYX Pro", "inherits": "fdmprinter", - "metadata": - { + "metadata": { "visible": true, "author": "Theodor Hansson", "manufacturer": "ZYYX Labs AB", @@ -73,10 +72,6 @@ "Extrudr_GreenTECPro_Silver_175", "Extrudr_GreenTECPro_White_175", "verbatim_bvoh_175", - "Vertex_Delta_ABS", - "Vertex_Delta_PET", - "Vertex_Delta_PLA", - "Vertex_Delta_TPU", "chromatik_pla", "dsm_arnitel2045_175", "dsm_novamid1070_175", @@ -181,69 +176,158 @@ "has_materials": true, "has_variants": true, "machine": "zyyx_pro", - "machine_extruder_trains": { "0": "zyyx_pro_extruder" }, + "machine_extruder_trains": { + "0": "zyyx_pro_extruder" + }, "machine_x3g_variant": "z", "preferred_material": "generic_pla", "preferred_variant_name": "Carbon0.6", - "quality_definition": "zyyx_pro", - "setting_version": 3, "variants_name": "SwiftTool" }, - "overrides": - { - "gantry_height": { "value": "10" }, - "infill_overlap": { "value": "12 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0" }, - "machine_center_is_zero": { "default_value": true }, - "machine_depth": { "default_value": 228 }, - "machine_disallowed_areas": - { + "overrides": { + "gantry_height": { + "value": "10" + }, + "infill_overlap": { + "value": "12 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0" + }, + "machine_center_is_zero": { + "default_value": true + }, + "machine_depth": { + "default_value": 228 + }, + "machine_disallowed_areas": { "default_value": [ [ - [-58, 117.5], - [-58, 108], - [-50, 108], - [-50, 117.5] + [ + -58, + 117.5 + ], + [ + -58, + 108 + ], + [ + -50, + 108 + ], + [ + -50, + 117.5 + ] ], [ - [119, 117.5], - [119, 108], - [140, 108], - [140, 117.5] + [ + 119, + 117.5 + ], + [ + 119, + 108 + ], + [ + 140, + 108 + ], + [ + 140, + 117.5 + ] ], [ - [-58, -117.5], - [-58, -108], - [-50, -108], - [-50, -117.5] + [ + -58, + -117.5 + ], + [ + -58, + -108 + ], + [ + -50, + -108 + ], + [ + -50, + -117.5 + ] ], [ - [119, -117.5], - [119, -108], - [140, -108], - [140, -117.5] + [ + 119, + -117.5 + ], + [ + 119, + -108 + ], + [ + 140, + -108 + ], + [ + 140, + -117.5 + ] ] ] }, - "machine_end_gcode": { "default_value": "; ZYYX 3D Printer end gcode\nM73 P100 ; end build progress\nG0 Z195 F1000 ; send Z axis to bottom of machine\nM104 S0 T0 ; cool down extruder\nM127 ; stop blower fan\nG162 X Y F3000 ; home XY maximum\nM18 ; disable stepper\nM70 P5 (ZYYX Print Finished!)\nM72 P1 ; play Ta-Da song\n" }, - "machine_gcode_flavor": { "default_value": "Makerbot" }, - "machine_head_with_fans_polygon": - { + "machine_end_gcode": { + "default_value": "; ZYYX 3D Printer end gcode\nM73 P100 ; end build progress\nG0 Z195 F1000 ; send Z axis to bottom of machine\nM104 S0 T0 ; cool down extruder\nM127 ; stop blower fan\nG162 X Y F3000 ; home XY maximum\nM18 ; disable stepper\nM70 P5 (ZYYX Print Finished!)\nM72 P1 ; play Ta-Da song\n" + }, + "machine_gcode_flavor": { + "default_value": "Makerbot" + }, + "machine_head_with_fans_polygon": { "default_value": [ - [-37, 50], - [25, 50], - [25, -40], - [-37, -40] + [ + -37, + 50 + ], + [ + 25, + 50 + ], + [ + 25, + -40 + ], + [ + -37, + -40 + ] ] }, - "machine_heated_bed": { "default_value": true }, - "machine_height": { "default_value": 195 }, - "machine_name": { "default_value": "ZYYX Pro" }, - "machine_start_gcode": { "default_value": "; ZYYX Pro start gcode\n; Author Theodor Hansson 2024\nM73 P0; enable build progress\nM420 P20; set back fan speed 10 off 11-20 10-100%\nM140 S10 T0; set 100% heater power\nM140 S99 T0; set chamber heater negative hysteresis 19 degrees\nM140 S102 T0; set chamber heater positive hysteresis 2 degrees\nM140 S{material_bed_temperature_layer_0} T0; set chamber temperature\nM104 S{material_print_temperature_layer_0} T0; set nozzle temperature\nG21; set units to mm\nG90; set positioning to absolute\nG130 X80 Y90 A127 B127 ; Set Stepper Vref to default value\n\n; Home xy-axis\nG162 X Y F2500; home XY axes maximum\nG92 X0 Y0\nG1 X-5 Y-5 F2500\nG162 X Y F200; home XY axes maximum slowly\nG92 X135 Y114\n\n; Home z-axis\nG161 Z F1100; home Z axis minimum\nG92 Z0\nG1 Z2 F1100\nG161 Z F100; home Z axis minimum slowly\nG92 Z0\nM132 Z; Recall home offsets for Z\n\n; Calibrate point 1 (we're already at point 1)\nM131 A; store surface calibration point 1\nG1 Z2 F1100; back up from buildplate\n\n; Calibrate point 2\nG1 X-47 F7000; move to 2nd probing point\nG161 Z F100\nM131 B; store surface calibration point 1\nG1 Z2 F1100; back up from buildplate\n\n; Calibrate point 3\nG1 X135 Y-114 F7000; move to 2nd probing point\nG161 Z F100\nM131 AB; store surface calibration point 3\nG1 Z2 F1100; back up from buildplate\nM132 AB; Activate auto-leveling\n\n; Extrude material over hole\nM133 T0; stabilize extruder temperature\nM126 S{cool_fan_speed_0}; Activate fan\nG4 P1000; Wait a little bit longer\nG1 Z0.10 E500 F50\nG1 X115 Y-95 F1000\nG92 E0 ; Set E to 0\n; End of start gcode" }, - "machine_steps_per_mm_e": { "default_value": 96.27520187033366 }, - "machine_steps_per_mm_x": { "default_value": 88.888889 }, - "machine_steps_per_mm_y": { "default_value": 88.888889 }, - "machine_steps_per_mm_z": { "default_value": 400 }, - "machine_width": { "default_value": 265 }, - "material_diameter": { "default_value": 1.75 } + "machine_heated_bed": { + "default_value": true + }, + "machine_height": { + "default_value": 195 + }, + "machine_name": { + "default_value": "ZYYX Pro" + }, + "machine_start_gcode": { + "default_value": "; ZYYX Pro start gcode\n; Author Theodor Hansson 2024\nM73 P0; enable build progress\nM420 P20; set back fan speed 10 off 11-20 10-100%\nM140 S10 T0; set 100% heater power\nM140 S99 T0; set chamber heater negative hysteresis 19 degrees\nM140 S102 T0; set chamber heater positive hysteresis 2 degrees\nM140 S{material_bed_temperature_layer_0} T0; set chamber temperature\nM104 S{material_print_temperature_layer_0} T0; set nozzle temperature\nG21; set units to mm\nG90; set positioning to absolute\nG130 X80 Y90 A127 B127 ; Set Stepper Vref to default value\n\n; Home xy-axis\nG162 X Y F2500; home XY axes maximum\nG92 X0 Y0\nG1 X-5 Y-5 F2500\nG162 X Y F200; home XY axes maximum slowly\nG92 X135 Y114\n\n; Home z-axis\nG161 Z F1100; home Z axis minimum\nG92 Z0\nG1 Z2 F1100\nG161 Z F100; home Z axis minimum slowly\nG92 Z0\nM132 Z; Recall home offsets for Z\n\n; Calibrate point 1 (we're already at point 1)\nM131 A; store surface calibration point 1\nG1 Z2 F1100; back up from buildplate\n\n; Calibrate point 2\nG1 X-47 F7000; move to 2nd probing point\nG161 Z F100\nM131 B; store surface calibration point 1\nG1 Z2 F1100; back up from buildplate\n\n; Calibrate point 3\nG1 X135 Y-114 F7000; move to 2nd probing point\nG161 Z F100\nM131 AB; store surface calibration point 3\nG1 Z2 F1100; back up from buildplate\nM132 AB; Activate auto-leveling\n\n; Extrude material over hole\nM133 T0; stabilize extruder temperature\nM126 S{cool_fan_speed_0}; Activate fan\nG4 P1000; Wait a little bit longer\nG1 Z0.10 E500 F50\nG1 X115 Y-95 F1000\nG92 E0 ; Set E to 0\n; End of start gcode" + }, + "machine_steps_per_mm_e": { + "default_value": 96.27520187033366 + }, + "machine_steps_per_mm_x": { + "default_value": 88.888889 + }, + "machine_steps_per_mm_y": { + "default_value": 88.888889 + }, + "machine_steps_per_mm_z": { + "default_value": 400 + }, + "machine_width": { + "default_value": 265 + }, + "material_diameter": { + "default_value": 1.75 + } } } \ No newline at end of file From b2e7877bc6318fa88c2ee9c9cabe39e312563ebb Mon Sep 17 00:00:00 2001 From: HellAholic <28710690+HellAholic@users.noreply.github.com> Date: Mon, 11 Aug 2025 11:40:17 +0000 Subject: [PATCH 126/200] Apply printer-linter format --- resources/definitions/zyyx_plus.def.json | 89 ++++------- resources/definitions/zyyx_pro.def.json | 180 ++++++----------------- 2 files changed, 70 insertions(+), 199 deletions(-) diff --git a/resources/definitions/zyyx_plus.def.json b/resources/definitions/zyyx_plus.def.json index 89ba8e08b0..73b08ec6ef 100644 --- a/resources/definitions/zyyx_plus.def.json +++ b/resources/definitions/zyyx_plus.def.json @@ -2,7 +2,8 @@ "version": 2, "name": "ZYYX+", "inherits": "fdmprinter", - "metadata": { + "metadata": + { "visible": true, "author": "Theodor Hansson", "manufacturer": "ZYYX Labs AB", @@ -178,75 +179,35 @@ "zyyx_pronylon" ], "has_machine_quality": true, - "machine_extruder_trains": { - "0": "zyyx_plus_extruder_0" - }, + "machine_extruder_trains": { "0": "zyyx_plus_extruder_0" }, "machine_x3g_variant": "z", "preferred_material": "generic_pla", "preferred_quality_type": "normal" }, - "overrides": { - "gantry_height": { - "value": "10" - }, - "infill_overlap": { - "value": "12 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0" - }, - "machine_center_is_zero": { - "default_value": true - }, - "machine_depth": { - "default_value": 210 - }, - "machine_end_gcode": { - "default_value": "; ZYYX 3D Printer end gcode\nM73 P100 ; end build progress\nG0 Z195 F1000 ; send Z axis to bottom of machine\nM104 S0 T0 ; cool down extruder\nM127 ; stop blower fan\nG162 X Y F3000 ; home XY maximum\nM18 ; disable stepper\nM70 P5 (ZYYX Print Finished!)\nM72 P1 ; play Ta-Da song\n" - }, - "machine_gcode_flavor": { - "default_value": "Makerbot" - }, - "machine_head_with_fans_polygon": { + "overrides": + { + "gantry_height": { "value": "10" }, + "infill_overlap": { "value": "12 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0" }, + "machine_center_is_zero": { "default_value": true }, + "machine_depth": { "default_value": 210 }, + "machine_end_gcode": { "default_value": "; ZYYX 3D Printer end gcode\nM73 P100 ; end build progress\nG0 Z195 F1000 ; send Z axis to bottom of machine\nM104 S0 T0 ; cool down extruder\nM127 ; stop blower fan\nG162 X Y F3000 ; home XY maximum\nM18 ; disable stepper\nM70 P5 (ZYYX Print Finished!)\nM72 P1 ; play Ta-Da song\n" }, + "machine_gcode_flavor": { "default_value": "Makerbot" }, + "machine_head_with_fans_polygon": + { "default_value": [ - [ - -37, - 50 - ], - [ - 25, - 50 - ], - [ - 25, - -40 - ], - [ - -37, - -40 - ] + [-37, 50], + [25, 50], + [25, -40], + [-37, -40] ] }, - "machine_height": { - "default_value": 195 - }, - "machine_name": { - "default_value": "ZYYX+" - }, - "machine_start_gcode": { - "default_value": "; ZYYX+ start gcode\n; Author Theodor Hansson 2024\nM73 P0; enable build progress\nM104 S{material_print_temperature_layer_0} T0; set nozzle temperature\nM126 S0; Turn off fan\nG21; set units to mm\nG90; set positioning to absolute\nG130 X80 Y80 A127 B127 ; Set Stepper Vref to default value\n\n; Home xy-axis\nG162 X Y F2500; home XY axes maximum\nG92 X0 Y0\nG1 X-5 Y-5 F2500\nG162 X Y F200; home XY axes maximum slowly\nG92 X132.5 Y120\n\n; Home z-axis\nG161 Z F1100; home Z axis minimum\nG92 Z0\nG1 Z2 F1100\nG161 Z F100; home Z axis minimum slowly\nG92 Z0\nM132 Z; Recall home offsets for Z\n\n; Calibrate point 1 (we're already at point 1)\nM131 A; store surface calibration point 1\nG1 Z2 F1100; back up from buildplate\n\n; Calibrate point 2\nG1 X-44.5 Y120 F7000; move to 2nd probing point\nG161 Z F100\nM131 B; store surface calibration point 1\nG1 Z2 F1100; back up from buildplate\n\n; Calibrate point 3\nG1 X132.5 Y-110 F7000; move to 2nd probing point\nG161 Z F100\nM131 AB; store surface calibration point 3\nG1 Z2 F1100; back up from buildplate\nM132 AB; Activate auto-leveling\nG1 Z1 F1000\n\n; Lay prime strip\nM133 T0; stabilize extruder temperature\nM126 S{cool_fan_speed_0}; Activate fan\nG4 P1000; Wait a little bit longer\nG1 X80 Y-110 Z0.2 F1000\nG1 X20 E9 F1000\nG1 X-20 E12.5 F1000\nG92 E0 ; Set E to 0\n\n; End of start gcode" - }, - "machine_steps_per_mm_e": { - "default_value": 96.27520187033366 - }, - "machine_steps_per_mm_x": { - "default_value": 88.888889 - }, - "machine_steps_per_mm_y": { - "default_value": 88.888889 - }, - "machine_steps_per_mm_z": { - "default_value": 400 - }, - "machine_width": { - "default_value": 265 - } + "machine_height": { "default_value": 195 }, + "machine_name": { "default_value": "ZYYX+" }, + "machine_start_gcode": { "default_value": "; ZYYX+ start gcode\n; Author Theodor Hansson 2024\nM73 P0; enable build progress\nM104 S{material_print_temperature_layer_0} T0; set nozzle temperature\nM126 S0; Turn off fan\nG21; set units to mm\nG90; set positioning to absolute\nG130 X80 Y80 A127 B127 ; Set Stepper Vref to default value\n\n; Home xy-axis\nG162 X Y F2500; home XY axes maximum\nG92 X0 Y0\nG1 X-5 Y-5 F2500\nG162 X Y F200; home XY axes maximum slowly\nG92 X132.5 Y120\n\n; Home z-axis\nG161 Z F1100; home Z axis minimum\nG92 Z0\nG1 Z2 F1100\nG161 Z F100; home Z axis minimum slowly\nG92 Z0\nM132 Z; Recall home offsets for Z\n\n; Calibrate point 1 (we're already at point 1)\nM131 A; store surface calibration point 1\nG1 Z2 F1100; back up from buildplate\n\n; Calibrate point 2\nG1 X-44.5 Y120 F7000; move to 2nd probing point\nG161 Z F100\nM131 B; store surface calibration point 1\nG1 Z2 F1100; back up from buildplate\n\n; Calibrate point 3\nG1 X132.5 Y-110 F7000; move to 2nd probing point\nG161 Z F100\nM131 AB; store surface calibration point 3\nG1 Z2 F1100; back up from buildplate\nM132 AB; Activate auto-leveling\nG1 Z1 F1000\n\n; Lay prime strip\nM133 T0; stabilize extruder temperature\nM126 S{cool_fan_speed_0}; Activate fan\nG4 P1000; Wait a little bit longer\nG1 X80 Y-110 Z0.2 F1000\nG1 X20 E9 F1000\nG1 X-20 E12.5 F1000\nG92 E0 ; Set E to 0\n\n; End of start gcode" }, + "machine_steps_per_mm_e": { "default_value": 96.27520187033366 }, + "machine_steps_per_mm_x": { "default_value": 88.888889 }, + "machine_steps_per_mm_y": { "default_value": 88.888889 }, + "machine_steps_per_mm_z": { "default_value": 400 }, + "machine_width": { "default_value": 265 } } } \ No newline at end of file diff --git a/resources/definitions/zyyx_pro.def.json b/resources/definitions/zyyx_pro.def.json index c96d87d0b9..385cf9b0ff 100644 --- a/resources/definitions/zyyx_pro.def.json +++ b/resources/definitions/zyyx_pro.def.json @@ -2,7 +2,8 @@ "version": 2, "name": "ZYYX Pro", "inherits": "fdmprinter", - "metadata": { + "metadata": + { "visible": true, "author": "Theodor Hansson", "manufacturer": "ZYYX Labs AB", @@ -176,158 +177,67 @@ "has_materials": true, "has_variants": true, "machine": "zyyx_pro", - "machine_extruder_trains": { - "0": "zyyx_pro_extruder" - }, + "machine_extruder_trains": { "0": "zyyx_pro_extruder" }, "machine_x3g_variant": "z", "preferred_material": "generic_pla", "preferred_variant_name": "Carbon0.6", "variants_name": "SwiftTool" }, - "overrides": { - "gantry_height": { - "value": "10" - }, - "infill_overlap": { - "value": "12 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0" - }, - "machine_center_is_zero": { - "default_value": true - }, - "machine_depth": { - "default_value": 228 - }, - "machine_disallowed_areas": { + "overrides": + { + "gantry_height": { "value": "10" }, + "infill_overlap": { "value": "12 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0" }, + "machine_center_is_zero": { "default_value": true }, + "machine_depth": { "default_value": 228 }, + "machine_disallowed_areas": + { "default_value": [ [ - [ - -58, - 117.5 - ], - [ - -58, - 108 - ], - [ - -50, - 108 - ], - [ - -50, - 117.5 - ] + [-58, 117.5], + [-58, 108], + [-50, 108], + [-50, 117.5] ], [ - [ - 119, - 117.5 - ], - [ - 119, - 108 - ], - [ - 140, - 108 - ], - [ - 140, - 117.5 - ] + [119, 117.5], + [119, 108], + [140, 108], + [140, 117.5] ], [ - [ - -58, - -117.5 - ], - [ - -58, - -108 - ], - [ - -50, - -108 - ], - [ - -50, - -117.5 - ] + [-58, -117.5], + [-58, -108], + [-50, -108], + [-50, -117.5] ], [ - [ - 119, - -117.5 - ], - [ - 119, - -108 - ], - [ - 140, - -108 - ], - [ - 140, - -117.5 - ] + [119, -117.5], + [119, -108], + [140, -108], + [140, -117.5] ] ] }, - "machine_end_gcode": { - "default_value": "; ZYYX 3D Printer end gcode\nM73 P100 ; end build progress\nG0 Z195 F1000 ; send Z axis to bottom of machine\nM104 S0 T0 ; cool down extruder\nM127 ; stop blower fan\nG162 X Y F3000 ; home XY maximum\nM18 ; disable stepper\nM70 P5 (ZYYX Print Finished!)\nM72 P1 ; play Ta-Da song\n" - }, - "machine_gcode_flavor": { - "default_value": "Makerbot" - }, - "machine_head_with_fans_polygon": { + "machine_end_gcode": { "default_value": "; ZYYX 3D Printer end gcode\nM73 P100 ; end build progress\nG0 Z195 F1000 ; send Z axis to bottom of machine\nM104 S0 T0 ; cool down extruder\nM127 ; stop blower fan\nG162 X Y F3000 ; home XY maximum\nM18 ; disable stepper\nM70 P5 (ZYYX Print Finished!)\nM72 P1 ; play Ta-Da song\n" }, + "machine_gcode_flavor": { "default_value": "Makerbot" }, + "machine_head_with_fans_polygon": + { "default_value": [ - [ - -37, - 50 - ], - [ - 25, - 50 - ], - [ - 25, - -40 - ], - [ - -37, - -40 - ] + [-37, 50], + [25, 50], + [25, -40], + [-37, -40] ] }, - "machine_heated_bed": { - "default_value": true - }, - "machine_height": { - "default_value": 195 - }, - "machine_name": { - "default_value": "ZYYX Pro" - }, - "machine_start_gcode": { - "default_value": "; ZYYX Pro start gcode\n; Author Theodor Hansson 2024\nM73 P0; enable build progress\nM420 P20; set back fan speed 10 off 11-20 10-100%\nM140 S10 T0; set 100% heater power\nM140 S99 T0; set chamber heater negative hysteresis 19 degrees\nM140 S102 T0; set chamber heater positive hysteresis 2 degrees\nM140 S{material_bed_temperature_layer_0} T0; set chamber temperature\nM104 S{material_print_temperature_layer_0} T0; set nozzle temperature\nG21; set units to mm\nG90; set positioning to absolute\nG130 X80 Y90 A127 B127 ; Set Stepper Vref to default value\n\n; Home xy-axis\nG162 X Y F2500; home XY axes maximum\nG92 X0 Y0\nG1 X-5 Y-5 F2500\nG162 X Y F200; home XY axes maximum slowly\nG92 X135 Y114\n\n; Home z-axis\nG161 Z F1100; home Z axis minimum\nG92 Z0\nG1 Z2 F1100\nG161 Z F100; home Z axis minimum slowly\nG92 Z0\nM132 Z; Recall home offsets for Z\n\n; Calibrate point 1 (we're already at point 1)\nM131 A; store surface calibration point 1\nG1 Z2 F1100; back up from buildplate\n\n; Calibrate point 2\nG1 X-47 F7000; move to 2nd probing point\nG161 Z F100\nM131 B; store surface calibration point 1\nG1 Z2 F1100; back up from buildplate\n\n; Calibrate point 3\nG1 X135 Y-114 F7000; move to 2nd probing point\nG161 Z F100\nM131 AB; store surface calibration point 3\nG1 Z2 F1100; back up from buildplate\nM132 AB; Activate auto-leveling\n\n; Extrude material over hole\nM133 T0; stabilize extruder temperature\nM126 S{cool_fan_speed_0}; Activate fan\nG4 P1000; Wait a little bit longer\nG1 Z0.10 E500 F50\nG1 X115 Y-95 F1000\nG92 E0 ; Set E to 0\n; End of start gcode" - }, - "machine_steps_per_mm_e": { - "default_value": 96.27520187033366 - }, - "machine_steps_per_mm_x": { - "default_value": 88.888889 - }, - "machine_steps_per_mm_y": { - "default_value": 88.888889 - }, - "machine_steps_per_mm_z": { - "default_value": 400 - }, - "machine_width": { - "default_value": 265 - }, - "material_diameter": { - "default_value": 1.75 - } + "machine_heated_bed": { "default_value": true }, + "machine_height": { "default_value": 195 }, + "machine_name": { "default_value": "ZYYX Pro" }, + "machine_start_gcode": { "default_value": "; ZYYX Pro start gcode\n; Author Theodor Hansson 2024\nM73 P0; enable build progress\nM420 P20; set back fan speed 10 off 11-20 10-100%\nM140 S10 T0; set 100% heater power\nM140 S99 T0; set chamber heater negative hysteresis 19 degrees\nM140 S102 T0; set chamber heater positive hysteresis 2 degrees\nM140 S{material_bed_temperature_layer_0} T0; set chamber temperature\nM104 S{material_print_temperature_layer_0} T0; set nozzle temperature\nG21; set units to mm\nG90; set positioning to absolute\nG130 X80 Y90 A127 B127 ; Set Stepper Vref to default value\n\n; Home xy-axis\nG162 X Y F2500; home XY axes maximum\nG92 X0 Y0\nG1 X-5 Y-5 F2500\nG162 X Y F200; home XY axes maximum slowly\nG92 X135 Y114\n\n; Home z-axis\nG161 Z F1100; home Z axis minimum\nG92 Z0\nG1 Z2 F1100\nG161 Z F100; home Z axis minimum slowly\nG92 Z0\nM132 Z; Recall home offsets for Z\n\n; Calibrate point 1 (we're already at point 1)\nM131 A; store surface calibration point 1\nG1 Z2 F1100; back up from buildplate\n\n; Calibrate point 2\nG1 X-47 F7000; move to 2nd probing point\nG161 Z F100\nM131 B; store surface calibration point 1\nG1 Z2 F1100; back up from buildplate\n\n; Calibrate point 3\nG1 X135 Y-114 F7000; move to 2nd probing point\nG161 Z F100\nM131 AB; store surface calibration point 3\nG1 Z2 F1100; back up from buildplate\nM132 AB; Activate auto-leveling\n\n; Extrude material over hole\nM133 T0; stabilize extruder temperature\nM126 S{cool_fan_speed_0}; Activate fan\nG4 P1000; Wait a little bit longer\nG1 Z0.10 E500 F50\nG1 X115 Y-95 F1000\nG92 E0 ; Set E to 0\n; End of start gcode" }, + "machine_steps_per_mm_e": { "default_value": 96.27520187033366 }, + "machine_steps_per_mm_x": { "default_value": 88.888889 }, + "machine_steps_per_mm_y": { "default_value": 88.888889 }, + "machine_steps_per_mm_z": { "default_value": 400 }, + "machine_width": { "default_value": 265 }, + "material_diameter": { "default_value": 1.75 } } } \ No newline at end of file From a746a60afb3057e7456c4c8dbce45155e386e406 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Tue, 12 Aug 2025 19:29:43 +0200 Subject: [PATCH 127/200] Intersection each polygon with the stroke; paint that instead of dumping it to UV directly. This prevents 'paint splatter', that is, previously, we had just a begin and an end point (actually we had a temp stopgap that iterated per triangle, but similar problems persisted), which we then mapped directly to UV and drew the stroke in that space. This causes the stroke to overlap parts of the UV-map that it didn't touch in 3D at all. Now, we instead gather each triangle, map that to the estimated stroke plane, intersect the result with the stroke-shape, then map the resulting polygon back to UV-space. At the moment this code isn't fully working yet -- but I solved all of the obvious things that can be wrong, and it could partially be that I based this branch off of a moment in time the other branch wasn't functionally properly. part of CURA-12262 --- plugins/PaintTool/PaintTool.py | 257 ++++++++++++++++++++++----------- 1 file changed, 172 insertions(+), 85 deletions(-) diff --git a/plugins/PaintTool/PaintTool.py b/plugins/PaintTool/PaintTool.py index eaeb2dc69b..4e57bda6e9 100644 --- a/plugins/PaintTool/PaintTool.py +++ b/plugins/PaintTool/PaintTool.py @@ -3,16 +3,14 @@ from enum import IntEnum import numpy -from PyQt6.QtCore import Qt, QObject, pyqtEnum -from PyQt6.QtGui import QImage, QPainter, QColor, QPen -from PyQt6 import QtWidgets -from typing import cast, Dict, List, Optional, Tuple - -from numpy import ndarray +from PyQt6.QtCore import Qt, QObject, pyqtEnum, QPoint +from PyQt6.QtGui import QImage, QPainter, QPen, QPolygon +from typing import cast, Optional, Tuple, List from UM.Application import Application -from UM.Event import Event, MouseEvent, KeyEvent +from UM.Event import Event, MouseEvent from UM.Logger import Logger +from UM.Math.Polygon import Polygon from UM.Scene.SceneNode import SceneNode from UM.Scene.Selection import Selection from UM.Tool import Tool @@ -52,7 +50,7 @@ class PaintTool(Tool): self._mouse_held: bool = False - self._last_text_coords: Optional[numpy.ndarray] = None + self._last_world_coords: Optional[numpy.ndarray] = None self._last_mouse_coords: Optional[Tuple[int, int]] = None self._last_face_id: Optional[int] = None @@ -70,39 +68,40 @@ class PaintTool(Tool): pen.setCapStyle(Qt.PenCapStyle.SquareCap) case PaintTool.Brush.Shape.CIRCLE: pen.setCapStyle(Qt.PenCapStyle.RoundCap) + case _: + Logger.error(f"Unknown brush shape '{self._brush_shape}', painting may not work.") return pen - def _createStrokeImage(self, x0: float, y0: float, x1: float, y1: float) -> Tuple[QImage, Tuple[int, int]]: - xdiff = int(x1 - x0) - ydiff = int(y1 - y0) + def _createStrokeImage(self, polys: List[Polygon]) -> Tuple[QImage, Tuple[int, int]]: + min_pt = numpy.array([numpy.inf, numpy.inf]) + max_pt = numpy.array([-numpy.inf, -numpy.inf]) + for poly in polys: + for pt in poly: + min_pt = numpy.minimum(min_pt, pt) + max_pt = numpy.maximum(max_pt, pt) - half_brush_size = self._brush_size // 2 - start_x = int(min(x0, x1) - half_brush_size) - start_y = int(min(y0, y1) - half_brush_size) - - stroke_image = QImage(abs(xdiff) + self._brush_size, abs(ydiff) + self._brush_size, QImage.Format.Format_RGB32) + stroke_image = QImage(int(max_pt[0] - min_pt[0]), int(max_pt[1] - min_pt[1]), QImage.Format.Format_RGB32) stroke_image.fill(0) painter = QPainter(stroke_image) painter.setRenderHint(QPainter.RenderHint.Antialiasing, False) - painter.setPen(self._brush_pen) - if xdiff == 0 and ydiff == 0: - painter.drawPoint(int(x0 - start_x), int(y0 - start_y)) - else: - painter.drawLine(int(x0 - start_x), int(y0 - start_y), int(x1 - start_x), int(y1 - start_y)) + painter.setPen(self._brush_pen) # <-- TODO!: Wrong in the current context. + for poly in polys: + qpoly = QPolygon([QPoint(int(pt[0] - min_pt[0]), int(pt[1] - min_pt[1])) for pt in poly]) + painter.drawPolygon(qpoly) painter.end() - return stroke_image, (start_x, start_y) + return stroke_image, (int(min_pt[0]), int(min_pt[1])) def getPaintType(self) -> str: - paint_view = self._get_paint_view() + paint_view = self._getPaintView() if paint_view is None: return "" return paint_view.getPaintType() def setPaintType(self, paint_type: str) -> None: - paint_view = self._get_paint_view() + paint_view = self._getPaintView() if paint_view is None: return @@ -141,7 +140,7 @@ class PaintTool(Tool): self.propertyChanged.emit() def undoStackAction(self, redo_instead: bool) -> bool: - paint_view = self._get_paint_view() + paint_view = self._getPaintView() if paint_view is None: return False @@ -154,7 +153,7 @@ class PaintTool(Tool): return True def clear(self) -> None: - paintview = self._get_paint_view() + paintview = self._getPaintView() if paintview is None: return @@ -166,18 +165,32 @@ class PaintTool(Tool): self._updateScene() @staticmethod - def _get_paint_view() -> Optional[PaintView]: + def _getPaintView() -> Optional[PaintView]: paint_view = Application.getInstance().getController().getActiveView() if paint_view is None or paint_view.getPluginId() != "PaintTool": return None return cast(PaintView, paint_view) @staticmethod - def _get_intersect_ratio_via_pt(a: numpy.ndarray, pt: numpy.ndarray, b: numpy.ndarray, c: numpy.ndarray) -> float: + def _getIntersectRatioViaPt(a: numpy.ndarray, pt: numpy.ndarray, b: numpy.ndarray, c: numpy.ndarray) -> float: + """ Gets a single Barycentric coordinate of a point on a line segment. + + :param a: The start point of the line segment (one of the points of the triangle). + :param pt: The point to find the Barycentric coordinate of (the one for point c, w.r.t. the ab line segment). + :param b: The end point of the line segment (one of the points of the triangle). + :param c: The third point of the triangle. + :return: The Barycentric coordinate of pt, w.r.t. point c in the abc triangle, or 1.0 if outside that triangle. + """ + # compute the intersection of (param) A - pt with (param) B - (param) C - if all(a == pt) or all(b == c) or all(a == c) or all(a == b): + if (a == pt).all() or (b == c).all() or (a == c).all() or (a == b).all(): return 1.0 + # force points to be 3d + def force3d(pt_: numpy.ndarray) -> numpy.ndarray: + return pt_ if pt_.size == 3 else numpy.array([pt_[0], pt_[1], 1.0]) + a, pt, b, c = force3d(a), force3d(pt), force3d(b), force3d(c) + # compute unit vectors of directions of lines A and B udir_a = a - pt udir_a /= numpy.linalg.norm(udir_a) @@ -209,10 +222,22 @@ class PaintTool(Tool): def _nodeTransformChanged(self, *args) -> None: self._cache_dirty = True - def _getTexCoordsFromClick(self, node: SceneNode, x: float, y: float) -> Tuple[int, Optional[numpy.ndarray]]: + def _getCoordsFromClick(self, node: SceneNode, x: float, y: float) -> Tuple[int, Optional[numpy.ndarray], Optional[numpy.ndarray]]: + """ Retrieves coordinates based on a user's click on a 3D scene node. + + This function calculates and returns the face identifier, texture coordinates, and real-world coordinates + derived from a click on the scene associated with the provided node. + + :param node: The node in the 3D scene from which the clicks' interaction information is derived. + :param x: The horizontal position of the click. + :param y: The vertical position of the click. + :return: A tuple containing; face-id, texture (UV) coordinates, and real-world (3D) coordinates. + """ + face_id = self._faces_selection_pass.getFaceIdAtPosition(x, y) + if face_id < 0 or face_id >= node.getMeshData().getFaceCount(): - return face_id, None + return face_id, None, None pt = self._picking_pass.getPickedPosition(x, y).getData() @@ -220,50 +245,124 @@ class PaintTool(Tool): face_uv_coordinates = node.getMeshData().getFaceUvCoords(face_id) if face_uv_coordinates is None: - return face_id, None + return face_id, None, None ta, tb, tc = face_uv_coordinates # 'Weight' of each vertex that would produce point pt, so we can generate the texture coordinates from the uv ones of the vertices. # See (also) https://mathworld.wolfram.com/BarycentricCoordinates.html - wa = PaintTool._get_intersect_ratio_via_pt(va, pt, vb, vc) - wb = PaintTool._get_intersect_ratio_via_pt(vb, pt, vc, va) - wc = PaintTool._get_intersect_ratio_via_pt(vc, pt, va, vb) + wa = PaintTool._getIntersectRatioViaPt(va, pt, vb, vc) + wb = PaintTool._getIntersectRatioViaPt(vb, pt, vc, va) + wc = PaintTool._getIntersectRatioViaPt(vc, pt, va, vb) wt = wa + wb + wc if wt == 0: - return face_id, None + return face_id, None, None wa /= wt wb /= wt wc /= wt texcoords = wa * ta + wb * tb + wc * tc - return face_id, texcoords + realcoords = wa * va + wb * vb + wc * vc + return face_id, texcoords, realcoords - def _iteratateSplitSubstroke(self, node, substrokes, - info_a: Tuple[Tuple[float, float], Tuple[int, Optional[numpy.ndarray]]], - info_b: Tuple[Tuple[float, float], Tuple[int, Optional[numpy.ndarray]]]) -> None: - click_a, (face_a, texcoords_a) = info_a - click_b, (face_b, texcoords_b) = info_b + @staticmethod + def _remapBarycentric(triangle_a: Polygon, pt: numpy.ndarray, triangle_b: Polygon) -> numpy.ndarray: + wa = PaintTool._getIntersectRatioViaPt(triangle_a[0], pt, triangle_a[1], triangle_a[2]) + wb = PaintTool._getIntersectRatioViaPt(triangle_a[1], pt, triangle_a[2], triangle_a[0]) + wc = PaintTool._getIntersectRatioViaPt(triangle_a[2], pt, triangle_a[0], triangle_a[1]) + wt = wa + wb + wc + if wt == 0: + return triangle_b[0] # Shouldn't happen! + return wa/wt * triangle_b[0] + wb/wt * triangle_b[1] + wc/wt * triangle_b[2] - if (abs(click_a[0] - click_b[0]) < 0.0001 and abs(click_a[1] - click_b[1]) < 0.0001) or (face_a < 0 and face_b < 0): - return - if face_b < 0 or face_a == face_b: - substrokes.append((self._last_text_coords, texcoords_a)) - return - if face_a < 0: - substrokes.append((self._last_text_coords, texcoords_b)) - return + def _getStrokePolygon(self, mouse_a, mouse_b) -> Polygon: + a_x, a_y = mouse_a + b_x, b_y = mouse_b + shape = None + match self._brush_shape: + case PaintTool.Brush.Shape.SQUARE: + shape = Polygon.approximatedCircle(self._brush_size, 4) + case PaintTool.Brush.Shape.CIRCLE: + shape = Polygon.approximatedCircle(self._brush_size, 16) + case _: + Logger.error(f"Unknown brush shape '{self._brush_shape}'.") + if shape is None: + return Polygon() + return shape.translate(a_x, a_y).intersectionConvexHulls(shape.translate(b_x, b_y)) - mouse_mid = (click_a[0] + click_b[0]) / 2.0, (click_a[1] + click_b[1]) / 2.0 - face_mid, texcoords_mid = self._getTexCoordsFromClick(node, mouse_mid[0], mouse_mid[1]) - mid_struct = (mouse_mid, (face_mid, texcoords_mid)) - if face_mid == face_a: - substrokes.append((texcoords_a, texcoords_mid)) - self._iteratateSplitSubstroke(node, substrokes, mid_struct, info_b) - elif face_mid == face_b: - substrokes.append((texcoords_mid, texcoords_b)) - self._iteratateSplitSubstroke(node, substrokes, info_a, mid_struct) + # NOTE: Currently, this probably won't work 100% for non-convex brush-shapes. + def _getUvAreasForStroke(self, node: SceneNode, mouse_a, mouse_b, face_id_a, face_id_b, world_coords_a, world_coords_b) -> List[Polygon]: + """ Fetches all texture-coordinate areas within the provided stroke on the mesh (of the given node). + + Calculates intersections of the stroke with the surface of the geometry and maps them to UV-space polygons. + + :param node: The 3D scene node containing mesh data to evaluate. + :param mouse_a: The starting point of the stroke in screen-space. + :param mouse_b: The ending point of the stroke in screen-space. + :param face_id_a: ID of the face where the stroke starts. + :param face_id_b: ID of the face where the stroke ends. + :param world_coords_a: 3D ('world') coordinates corresponding to the starting stroke point. + :param world_coords_b: 3D ('world') coordinates corresponding to the ending stroke point. + :return: A list of UV-mapped polygons representing areas intersected by the stroke on the node's mesh surface. + """ + + if face_id_a == face_id_b: + mid, norm = self._mesh_transformed_cache.getFacePlane(face_id_a) + norm /= numpy.linalg.norm(norm) + perp = mid.cross(world_coords_a - mid) + perp /= numpy.linalg.norm(perp) else: - self._iteratateSplitSubstroke(node, substrokes, mid_struct, info_b) - self._iteratateSplitSubstroke(node, substrokes, info_a, mid_struct) + vec_ab = world_coords_b - world_coords_a + _, norm_a = self._mesh_transformed_cache.getFacePlane(face_id_a) + _, norm_b = self._mesh_transformed_cache.getFacePlane(face_id_b) + norm = (norm_a + norm_b) * 0.5 + norm /= numpy.linalg.norm(norm) + perp = numpy.cross(norm, vec_ab) + + def get_projected_on_plane(pt: numpy.ndarray) -> numpy.ndarray: + proj_pt = (pt - numpy.dot(norm, pt - world_coords_a) * norm) - world_coords_a + x_coord = numpy.dot(vec_ab, proj_pt) + y_coord = numpy.dot(perp, proj_pt) + return numpy.array([x_coord, y_coord]) + + def get_tri_in_stroke(a: numpy.ndarray, b: numpy.ndarray, c: numpy.ndarray) -> Polygon: + return Polygon([ + get_projected_on_plane(a), + get_projected_on_plane(b), + get_projected_on_plane(c)]) + + def remap_polygon_to_uv(original_tri: Polygon, poly: Polygon, face_id: int) -> Polygon: + face_uv_coordinates = node.getMeshData().getFaceUvCoords(face_id) + if face_uv_coordinates is None: + return Polygon() + ta, tb, tc = face_uv_coordinates + original_uv_poly = Polygon([ta, tb, tc]) + return poly.map(lambda pt: PaintTool._remapBarycentric(original_tri, pt, original_uv_poly)) + + stroke_poly = self._getStrokePolygon(mouse_a, mouse_b) + + def get_stroke_intersect_with_tri(face_id: int) -> Polygon: + va, vb, vc = self._mesh_transformed_cache.getFaceNodes(face_id) + stroke_tri = get_tri_in_stroke(va, vb, vc) + return remap_polygon_to_uv(stroke_tri, stroke_poly.intersection(stroke_tri), face_id) + + candidates = set() + def add_candidates_for(face_id: int) -> None: + [candidates.add(x) for x in self._mesh_transformed_cache.getFaceNeighbourIDs(face_id)] + add_candidates_for(face_id_a) + add_candidates_for(face_id_b) + + res = [] + seen = set() + while candidates: + candidate = candidates.pop() + if candidate in seen or candidate < 0: + continue + uv_area = get_stroke_intersect_with_tri(candidate) + if not uv_area.isValid(): + continue + res.append(uv_area) + add_candidates_for(candidate) + seen.add(candidate) + return res def _setupNodeForPainting(self, node: SceneNode) -> bool: mesh = node.getMeshData() @@ -312,7 +411,7 @@ class PaintTool(Tool): if MouseEvent.LeftButton not in cast(MouseEvent, event).buttons: return False self._mouse_held = False - self._last_text_coords = None + self._last_world_coords = None self._last_mouse_coords = None self._last_face_id = None return True @@ -330,7 +429,7 @@ class PaintTool(Tool): else: self._mouse_held = True - paintview = self._get_paint_view() + paintview = self._getPaintView() if paintview is None: return False @@ -363,33 +462,21 @@ class PaintTool(Tool): if not self._setupNodeForPainting(node): return False - face_id, texcoords = self._getTexCoordsFromClick(node, mouse_evt.x, mouse_evt.y) - if texcoords is None: + face_id, _, world_coords = self._getCoordsFromClick(node, mouse_evt.x, mouse_evt.y) + if face_id < 0: return False - if self._last_text_coords is None: - self._last_text_coords = texcoords + if self._last_world_coords is None: + self._last_world_coords = world_coords self._last_mouse_coords = (mouse_evt.x, mouse_evt.y) self._last_face_id = face_id - substrokes = [] - if face_id == self._last_face_id: - substrokes.append((self._last_text_coords, texcoords)) - else: - self._iteratateSplitSubstroke(node, substrokes, - (self._last_mouse_coords, (self._last_face_id, self._last_text_coords)), - ((mouse_evt.x, mouse_evt.y), (face_id, texcoords))) + uv_areas = self._getUvAreasForStroke(node, self._last_mouse_coords, (mouse_evt.x, mouse_evt.y), self._last_face_id, face_id, self._last_world_coords, world_coords) + if len(uv_areas) == 0: + return False + stroke_img, (start_x, start_y) = self._createStrokeImage(uv_areas) + paintview.addStroke(stroke_img, start_x, start_y, self._brush_color) - w, h = paintview.getUvTexDimensions() - for start_coords, end_coords in substrokes: - sub_image, (start_x, start_y) = self._createStrokeImage( - start_coords[0] * w, - start_coords[1] * h, - end_coords[0] * w, - end_coords[1] * h - ) - paintview.addStroke(sub_image, start_x, start_y, self._brush_color) - - self._last_text_coords = texcoords + self._last_world_coords = world_coords self._last_mouse_coords = (mouse_evt.x, mouse_evt.y) self._last_face_id = face_id self._updateScene(node) From 392e6148871b2e84c1d74a220c67e1a9d05679ec Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Wed, 13 Aug 2025 11:09:57 +0200 Subject: [PATCH 128/200] Get PaintTool in a working state again after rewrite of projection. Various fixes applied; method of drawing changed a bit (use qpath, otherwise we can't fill, right-size the brush in various ways (w/h of UV-canvas taken into account, fix that 'stroke-coords' are _yet another_ coord system instead of the same as one of the existing) also, with the stroke; fix that it should have been a convex hull of the union, not a convex hull of the intersection -- also take the scale of the model into account (which we need to) (but this has a side-effect in that the brush is now always the same size, regardless of which size the object is -- makes sense, but not 100pct sure if wanted) -- various other things cleaned up etc. part of CURA-12662 --- plugins/PaintTool/PaintTool.py | 71 ++++++++++++++++++++-------------- 1 file changed, 41 insertions(+), 30 deletions(-) diff --git a/plugins/PaintTool/PaintTool.py b/plugins/PaintTool/PaintTool.py index 2285683b49..ae97416cf3 100644 --- a/plugins/PaintTool/PaintTool.py +++ b/plugins/PaintTool/PaintTool.py @@ -3,8 +3,8 @@ from enum import IntEnum import numpy -from PyQt6.QtCore import Qt, QObject, pyqtEnum, QPoint -from PyQt6.QtGui import QImage, QPainter, QPen, QPolygon +from PyQt6.QtCore import Qt, QObject, pyqtEnum +from PyQt6.QtGui import QImage, QPainter, QPen, QPainterPath from typing import cast, Optional, Tuple, List from UM.Application import Application @@ -15,7 +15,6 @@ from UM.Math.Polygon import Polygon from UM.Scene.SceneNode import SceneNode from UM.Scene.Selection import Selection from UM.Tool import Tool -from UM.View.GL.OpenGL import OpenGL from cura.CuraApplication import CuraApplication from cura.PickingPass import PickingPass @@ -60,7 +59,6 @@ class PaintTool(Tool): self._mouse_held: bool = False self._last_world_coords: Optional[numpy.ndarray] = None - self._last_mouse_coords: Optional[Tuple[int, int]] = None self._last_face_id: Optional[int] = None self._state: PaintTool.Paint.State = PaintTool.Paint.State.MULTIPLE_SELECTION @@ -86,22 +84,28 @@ class PaintTool(Tool): return pen def _createStrokeImage(self, polys: List[Polygon]) -> Tuple[QImage, Tuple[int, int]]: + w, h = self._getPaintView().getUvTexDimensions() + if w == 0 or h == 0 or len(polys) == 0: + return QImage(w, h, QImage.Format.Format_RGB32), (0, 0) + min_pt = numpy.array([numpy.inf, numpy.inf]) max_pt = numpy.array([-numpy.inf, -numpy.inf]) for poly in polys: for pt in poly: - min_pt = numpy.minimum(min_pt, pt) - max_pt = numpy.maximum(max_pt, pt) + min_pt = numpy.minimum(min_pt, w * pt) + max_pt = numpy.maximum(max_pt, h * pt) stroke_image = QImage(int(max_pt[0] - min_pt[0]), int(max_pt[1] - min_pt[1]), QImage.Format.Format_RGB32) stroke_image.fill(0) painter = QPainter(stroke_image) painter.setRenderHint(QPainter.RenderHint.Antialiasing, False) - painter.setPen(self._brush_pen) # <-- TODO!: Wrong in the current context. + path = QPainterPath() for poly in polys: - qpoly = QPolygon([QPoint(int(pt[0] - min_pt[0]), int(pt[1] - min_pt[1])) for pt in poly]) - painter.drawPolygon(qpoly) + path.moveTo(int(w * poly[0][0] - min_pt[0]), int(h * poly[0][1] - min_pt[1])) + for pt in poly[1:]: + path.lineTo(int(w * pt[0] - min_pt[0]), int(h * pt[1] - min_pt[1])) + painter.fillPath(path, self._brush_pen.color()) painter.end() return stroke_image, (int(min_pt[0]), int(min_pt[1])) @@ -289,30 +293,26 @@ class PaintTool(Tool): return triangle_b[0] # Shouldn't happen! return wa/wt * triangle_b[0] + wb/wt * triangle_b[1] + wc/wt * triangle_b[2] - def _getStrokePolygon(self, mouse_a, mouse_b) -> Polygon: - a_x, a_y = mouse_a - b_x, b_y = mouse_b + def _getStrokePolygon(self, size_adjust: float, stroke_a: numpy.ndarray, stroke_b: numpy.ndarray) -> Polygon: shape = None match self._brush_shape: case PaintTool.Brush.Shape.SQUARE: - shape = Polygon.approximatedCircle(self._brush_size, 4) + shape = Polygon.approximatedCircle(self._brush_size * size_adjust, 4) case PaintTool.Brush.Shape.CIRCLE: - shape = Polygon.approximatedCircle(self._brush_size, 16) + shape = Polygon.approximatedCircle(self._brush_size * size_adjust, 16) case _: Logger.error(f"Unknown brush shape '{self._brush_shape}'.") if shape is None: return Polygon() - return shape.translate(a_x, a_y).intersectionConvexHulls(shape.translate(b_x, b_y)) + return shape.translate(stroke_a[0], stroke_a[1]).unionConvexHulls(shape.translate(stroke_b[0], stroke_b[1])) - # NOTE: Currently, this probably won't work 100% for non-convex brush-shapes. - def _getUvAreasForStroke(self, node: SceneNode, mouse_a, mouse_b, face_id_a, face_id_b, world_coords_a, world_coords_b) -> List[Polygon]: + # NOTE: Currently, it's unclear how well this would work for non-convex brush-shapes. + def _getUvAreasForStroke(self, node: SceneNode, face_id_a: int, face_id_b: int, world_coords_a: numpy.ndarray, world_coords_b: numpy.ndarray) -> List[Polygon]: """ Fetches all texture-coordinate areas within the provided stroke on the mesh (of the given node). Calculates intersections of the stroke with the surface of the geometry and maps them to UV-space polygons. :param node: The 3D scene node containing mesh data to evaluate. - :param mouse_a: The starting point of the stroke in screen-space. - :param mouse_b: The ending point of the stroke in screen-space. :param face_id_a: ID of the face where the stroke starts. :param face_id_b: ID of the face where the stroke ends. :param world_coords_a: 3D ('world') coordinates corresponding to the starting stroke point. @@ -320,11 +320,14 @@ class PaintTool(Tool): :return: A list of UV-mapped polygons representing areas intersected by the stroke on the node's mesh surface. """ - if face_id_a == face_id_b: + if (face_id_a == face_id_b) and (world_coords_a == world_coords_b).all(): + # TODO: this doesn't work yet... mid, norm = self._mesh_transformed_cache.getFacePlane(face_id_a) norm /= numpy.linalg.norm(norm) perp = mid.cross(world_coords_a - mid) perp /= numpy.linalg.norm(perp) + vec_ab = norm.cross(perp) + vec_ab /= numpy.linalg.norm(vec_ab) else: vec_ab = world_coords_b - world_coords_a _, norm_a = self._mesh_transformed_cache.getFacePlane(face_id_a) @@ -353,7 +356,17 @@ class PaintTool(Tool): original_uv_poly = Polygon([ta, tb, tc]) return poly.map(lambda pt: PaintTool._remapBarycentric(original_tri, pt, original_uv_poly)) - stroke_poly = self._getStrokePolygon(mouse_a, mouse_b) + stroke_len = numpy.linalg.norm(vec_ab) + + uv_a0, uv_a1, _ = node.getMeshData().getFaceUvCoords(face_id_a) + w_a0, w_a1, _ = node.getMeshData().getFaceNodes(face_id_a) + w_scale = node.getScale().getData() + world_to_uv_size_factor = numpy.linalg.norm(uv_a1 - uv_a0) / numpy.linalg.norm(w_a1 * w_scale - w_a0 * w_scale) + + stroke_poly = self._getStrokePolygon( + stroke_len * world_to_uv_size_factor, + get_projected_on_plane(world_coords_a), + get_projected_on_plane(world_coords_b)) def get_stroke_intersect_with_tri(face_id: int) -> Polygon: va, vb, vc = self._mesh_transformed_cache.getFaceNodes(face_id) @@ -361,10 +374,11 @@ class PaintTool(Tool): return remap_polygon_to_uv(stroke_tri, stroke_poly.intersection(stroke_tri), face_id) candidates = set() - def add_candidates_for(face_id: int) -> None: + candidates.add(face_id_a) + candidates.add(face_id_b) + + def add_adjacent_candidates(face_id: int) -> None: [candidates.add(x) for x in self._mesh_transformed_cache.getFaceNeighbourIDs(face_id)] - add_candidates_for(face_id_a) - add_candidates_for(face_id_b) res = [] seen = set() @@ -376,7 +390,7 @@ class PaintTool(Tool): if not uv_area.isValid(): continue res.append(uv_area) - add_candidates_for(candidate) + add_adjacent_candidates(candidate) seen.add(candidate) return res @@ -409,7 +423,6 @@ class PaintTool(Tool): return False self._mouse_held = False self._last_world_coords = None - self._last_mouse_coords = None self._last_face_id = None return True @@ -461,17 +474,15 @@ class PaintTool(Tool): return False if self._last_world_coords is None: self._last_world_coords = world_coords - self._last_mouse_coords = (mouse_evt.x, mouse_evt.y) self._last_face_id = face_id - uv_areas = self._getUvAreasForStroke(node, self._last_mouse_coords, (mouse_evt.x, mouse_evt.y), self._last_face_id, face_id, self._last_world_coords, world_coords) + uv_areas = self._getUvAreasForStroke(node, self._last_face_id, face_id, self._last_world_coords, world_coords) if len(uv_areas) == 0: return False stroke_img, (start_x, start_y) = self._createStrokeImage(uv_areas) paintview.addStroke(stroke_img, start_x, start_y, self._brush_color) self._last_world_coords = world_coords - self._last_mouse_coords = (mouse_evt.x, mouse_evt.y) self._last_face_id = face_id self._updateScene(node) return True @@ -520,4 +531,4 @@ class PaintTool(Tool): def _updateIgnoreUnselectedObjects(self): ignore_unselected_objects = self._controller.getActiveView().name == "PaintTool" CuraApplication.getInstance().getRenderer().getRenderPass("selection").setIgnoreUnselectedObjects(ignore_unselected_objects) - CuraApplication.getInstance().getRenderer().getRenderPass("selection_faces").setIgnoreUnselectedObjects(ignore_unselected_objects) \ No newline at end of file + CuraApplication.getInstance().getRenderer().getRenderPass("selection_faces").setIgnoreUnselectedObjects(ignore_unselected_objects) From b091cc23a1ce2b1be7c110bd1b1fb343cef7cf98 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Thu, 14 Aug 2025 14:30:12 +0200 Subject: [PATCH 129/200] Have the projection of the paint-stroke involve the camera after all. This fixes the issue that it wouldn't flood over the 'rim' whenever the endpoints of a stroke was wholly within one plane, but the stroke itself would overlapp another. Plus also handle click on single point and use transformed mesh consistantly. part of CURA-12662 --- plugins/PaintTool/PaintTool.py | 71 +++++++++++++++++----------------- 1 file changed, 36 insertions(+), 35 deletions(-) diff --git a/plugins/PaintTool/PaintTool.py b/plugins/PaintTool/PaintTool.py index ae97416cf3..1eacc1cdab 100644 --- a/plugins/PaintTool/PaintTool.py +++ b/plugins/PaintTool/PaintTool.py @@ -12,6 +12,7 @@ from UM.Event import Event, MouseEvent from UM.Job import Job from UM.Logger import Logger from UM.Math.Polygon import Polygon +from UM.Mesh.MeshData import MeshData from UM.Scene.SceneNode import SceneNode from UM.Scene.Selection import Selection from UM.Tool import Tool @@ -242,7 +243,7 @@ class PaintTool(Tool): def _nodeTransformChanged(self, *args) -> None: self._cache_dirty = True - def _getCoordsFromClick(self, node: SceneNode, x: float, y: float) -> Tuple[int, Optional[numpy.ndarray], Optional[numpy.ndarray]]: + def _getCoordsFromClick(self, mesh: MeshData, x: float, y: float) -> Tuple[int, Optional[numpy.ndarray], Optional[numpy.ndarray]]: """ Retrieves coordinates based on a user's click on a 3D scene node. This function calculates and returns the face identifier, texture coordinates, and real-world coordinates @@ -256,14 +257,14 @@ class PaintTool(Tool): face_id = self._faces_selection_pass.getFaceIdAtPosition(x, y) - if face_id < 0 or face_id >= node.getMeshData().getFaceCount(): + if face_id < 0 or face_id >= mesh.getFaceCount(): return face_id, None, None pt = self._picking_pass.getPickedPosition(x, y).getData() va, vb, vc = self._mesh_transformed_cache.getFaceNodes(face_id) - face_uv_coordinates = node.getMeshData().getFaceUvCoords(face_id) + face_uv_coordinates = mesh.getFaceUvCoords(face_id) if face_uv_coordinates is None: return face_id, None, None ta, tb, tc = face_uv_coordinates @@ -307,12 +308,12 @@ class PaintTool(Tool): return shape.translate(stroke_a[0], stroke_a[1]).unionConvexHulls(shape.translate(stroke_b[0], stroke_b[1])) # NOTE: Currently, it's unclear how well this would work for non-convex brush-shapes. - def _getUvAreasForStroke(self, node: SceneNode, face_id_a: int, face_id_b: int, world_coords_a: numpy.ndarray, world_coords_b: numpy.ndarray) -> List[Polygon]: - """ Fetches all texture-coordinate areas within the provided stroke on the mesh (of the given node). + def _getUvAreasForStroke(self, mesh: MeshData, face_id_a: int, face_id_b: int, world_coords_a: numpy.ndarray, world_coords_b: numpy.ndarray) -> List[Polygon]: + """ Fetches all texture-coordinate areas within the provided stroke on the mesh. Calculates intersections of the stroke with the surface of the geometry and maps them to UV-space polygons. - :param node: The 3D scene node containing mesh data to evaluate. + :param mesh: The 3D mesh data, pre-transformed. :param face_id_a: ID of the face where the stroke starts. :param face_id_b: ID of the face where the stroke ends. :param world_coords_a: 3D ('world') coordinates corresponding to the starting stroke point. @@ -320,26 +321,25 @@ class PaintTool(Tool): :return: A list of UV-mapped polygons representing areas intersected by the stroke on the node's mesh surface. """ - if (face_id_a == face_id_b) and (world_coords_a == world_coords_b).all(): - # TODO: this doesn't work yet... - mid, norm = self._mesh_transformed_cache.getFacePlane(face_id_a) - norm /= numpy.linalg.norm(norm) - perp = mid.cross(world_coords_a - mid) - perp /= numpy.linalg.norm(perp) - vec_ab = norm.cross(perp) - vec_ab /= numpy.linalg.norm(vec_ab) - else: - vec_ab = world_coords_b - world_coords_a - _, norm_a = self._mesh_transformed_cache.getFacePlane(face_id_a) - _, norm_b = self._mesh_transformed_cache.getFacePlane(face_id_b) - norm = (norm_a + norm_b) * 0.5 - norm /= numpy.linalg.norm(norm) - perp = numpy.cross(norm, vec_ab) + camera = Application.getInstance().getController().getScene().getActiveCamera() + cam_ray = camera.getRay(0, 0) + cam_norm = cam_ray.direction.getData() + cam_norm /= numpy.linalg.norm(cam_norm) + + if (world_coords_a == world_coords_b).all(): + world_coords_b = world_coords_a + numpy.array([0.01, -0.01, 0.01]) + + vec_ab = world_coords_b - world_coords_a + stroke_dir = vec_ab / numpy.linalg.norm(vec_ab) + norm = -cam_norm + norm /= numpy.linalg.norm(norm) + perp = numpy.cross(norm, stroke_dir) + perp /= numpy.linalg.norm(perp) def get_projected_on_plane(pt: numpy.ndarray) -> numpy.ndarray: proj_pt = (pt - numpy.dot(norm, pt - world_coords_a) * norm) - world_coords_a - x_coord = numpy.dot(vec_ab, proj_pt) - y_coord = numpy.dot(perp, proj_pt) + y_coord = numpy.dot(stroke_dir, proj_pt) + x_coord = numpy.dot(perp, proj_pt) return numpy.array([x_coord, y_coord]) def get_tri_in_stroke(a: numpy.ndarray, b: numpy.ndarray, c: numpy.ndarray) -> Polygon: @@ -349,27 +349,24 @@ class PaintTool(Tool): get_projected_on_plane(c)]) def remap_polygon_to_uv(original_tri: Polygon, poly: Polygon, face_id: int) -> Polygon: - face_uv_coordinates = node.getMeshData().getFaceUvCoords(face_id) + face_uv_coordinates = mesh.getFaceUvCoords(face_id) if face_uv_coordinates is None: return Polygon() ta, tb, tc = face_uv_coordinates original_uv_poly = Polygon([ta, tb, tc]) return poly.map(lambda pt: PaintTool._remapBarycentric(original_tri, pt, original_uv_poly)) - stroke_len = numpy.linalg.norm(vec_ab) - - uv_a0, uv_a1, _ = node.getMeshData().getFaceUvCoords(face_id_a) - w_a0, w_a1, _ = node.getMeshData().getFaceNodes(face_id_a) - w_scale = node.getScale().getData() - world_to_uv_size_factor = numpy.linalg.norm(uv_a1 - uv_a0) / numpy.linalg.norm(w_a1 * w_scale - w_a0 * w_scale) + uv_a0, uv_a1, _ = mesh.getFaceUvCoords(face_id_a) + w_a0, w_a1, _ = mesh.getFaceNodes(face_id_a) + world_to_uv_size_factor = numpy.linalg.norm(uv_a1 - uv_a0) / numpy.linalg.norm(w_a1 - w_a0) stroke_poly = self._getStrokePolygon( - stroke_len * world_to_uv_size_factor, + world_to_uv_size_factor, get_projected_on_plane(world_coords_a), get_projected_on_plane(world_coords_b)) def get_stroke_intersect_with_tri(face_id: int) -> Polygon: - va, vb, vc = self._mesh_transformed_cache.getFaceNodes(face_id) + va, vb, vc = mesh.getFaceNodes(face_id) stroke_tri = get_tri_in_stroke(va, vb, vc) return remap_polygon_to_uv(stroke_tri, stroke_poly.intersection(stroke_tri), face_id) @@ -380,11 +377,15 @@ class PaintTool(Tool): def add_adjacent_candidates(face_id: int) -> None: [candidates.add(x) for x in self._mesh_transformed_cache.getFaceNeighbourIDs(face_id)] + def wrong_face_normal(face_id: int) -> bool: + _, fnorm = mesh.getFacePlane(face_id) + return numpy.dot(fnorm, norm) < 0 + res = [] seen = set() while candidates: candidate = candidates.pop() - if candidate in seen or candidate < 0: + if candidate in seen or candidate < 0 or wrong_face_normal(candidate): continue uv_area = get_stroke_intersect_with_tri(candidate) if not uv_area.isValid(): @@ -469,14 +470,14 @@ class PaintTool(Tool): if not self._mesh_transformed_cache: return False - face_id, _, world_coords = self._getCoordsFromClick(node, mouse_evt.x, mouse_evt.y) + face_id, _, world_coords = self._getCoordsFromClick(self._mesh_transformed_cache, mouse_evt.x, mouse_evt.y) if face_id < 0: return False if self._last_world_coords is None: self._last_world_coords = world_coords self._last_face_id = face_id - uv_areas = self._getUvAreasForStroke(node, self._last_face_id, face_id, self._last_world_coords, world_coords) + uv_areas = self._getUvAreasForStroke(self._mesh_transformed_cache, self._last_face_id, face_id, self._last_world_coords, world_coords) if len(uv_areas) == 0: return False stroke_img, (start_x, start_y) = self._createStrokeImage(uv_areas) From 0c408cb43cc2a9626597f033af9110c598d14f03 Mon Sep 17 00:00:00 2001 From: Frederic Meeuwissen <13856291+Frederic98@users.noreply.github.com> Date: Thu, 26 Jun 2025 16:21:03 +0200 Subject: [PATCH 130/200] [PP-574] Add BVOH profiles --- .../um_f4_bb0.4_bvoh_0.15mm.inst.cfg | 43 ++++++++++++++++++ .../um_f4_bb0.4_bvoh_0.1mm.inst.cfg | 43 ++++++++++++++++++ .../um_f4_bb0.4_bvoh_0.2mm.inst.cfg | 43 ++++++++++++++++++ .../um_f4_bb0.4_bvoh_0.3mm.inst.cfg | 44 +++++++++++++++++++ .../um_f4_bb0.8_bvoh_0.2mm.inst.cfg | 43 ++++++++++++++++++ .../um_f4_bb0.8_bvoh_0.3mm.inst.cfg | 43 ++++++++++++++++++ .../um_f4_bb0.8_bvoh_0.4mm.inst.cfg | 43 ++++++++++++++++++ .../um_s3_bb0.4_bvoh_0.15mm.inst.cfg | 35 +++++++++++++++ .../um_s3_bb0.4_bvoh_0.1mm.inst.cfg | 36 +++++++++++++++ .../um_s3_bb0.4_bvoh_0.2mm.inst.cfg | 35 +++++++++++++++ .../um_s3_bb0.4_bvoh_0.3mm.inst.cfg | 37 ++++++++++++++++ .../um_s3_bb0.8_bvoh_0.2mm.inst.cfg | 34 ++++++++++++++ .../um_s3_bb0.8_bvoh_0.3mm.inst.cfg | 36 +++++++++++++++ .../um_s3_bb0.8_bvoh_0.4mm.inst.cfg | 35 +++++++++++++++ .../um_s5_bb0.4_bvoh_0.15mm.inst.cfg | 35 +++++++++++++++ .../um_s5_bb0.4_bvoh_0.1mm.inst.cfg | 36 +++++++++++++++ .../um_s5_bb0.4_bvoh_0.2mm.inst.cfg | 35 +++++++++++++++ .../um_s5_bb0.4_bvoh_0.3mm.inst.cfg | 37 ++++++++++++++++ .../um_s5_bb0.8_bvoh_0.2mm.inst.cfg | 34 ++++++++++++++ .../um_s5_bb0.8_bvoh_0.3mm.inst.cfg | 36 +++++++++++++++ .../um_s5_bb0.8_bvoh_0.4mm.inst.cfg | 35 +++++++++++++++ .../um_s8_bb0.4_bvoh_0.15mm.inst.cfg | 35 +++++++++++++++ .../um_s8_bb0.4_bvoh_0.1mm.inst.cfg | 36 +++++++++++++++ .../um_s8_bb0.4_bvoh_0.2mm.inst.cfg | 35 +++++++++++++++ .../um_s8_bb0.4_bvoh_0.3mm.inst.cfg | 37 ++++++++++++++++ .../um_s8_bb0.8_bvoh_0.2mm.inst.cfg | 34 ++++++++++++++ .../um_s8_bb0.8_bvoh_0.3mm.inst.cfg | 36 +++++++++++++++ .../um_s8_bb0.8_bvoh_0.4mm.inst.cfg | 35 +++++++++++++++ 28 files changed, 1046 insertions(+) create mode 100644 resources/quality/ultimaker_factor4/um_f4_bb0.4_bvoh_0.15mm.inst.cfg create mode 100644 resources/quality/ultimaker_factor4/um_f4_bb0.4_bvoh_0.1mm.inst.cfg create mode 100644 resources/quality/ultimaker_factor4/um_f4_bb0.4_bvoh_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_factor4/um_f4_bb0.4_bvoh_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_factor4/um_f4_bb0.8_bvoh_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_factor4/um_f4_bb0.8_bvoh_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_factor4/um_f4_bb0.8_bvoh_0.4mm.inst.cfg create mode 100644 resources/quality/ultimaker_s3/um_s3_bb0.4_bvoh_0.15mm.inst.cfg create mode 100644 resources/quality/ultimaker_s3/um_s3_bb0.4_bvoh_0.1mm.inst.cfg create mode 100644 resources/quality/ultimaker_s3/um_s3_bb0.4_bvoh_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s3/um_s3_bb0.4_bvoh_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_s3/um_s3_bb0.8_bvoh_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s3/um_s3_bb0.8_bvoh_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_s3/um_s3_bb0.8_bvoh_0.4mm.inst.cfg create mode 100644 resources/quality/ultimaker_s5/um_s5_bb0.4_bvoh_0.15mm.inst.cfg create mode 100644 resources/quality/ultimaker_s5/um_s5_bb0.4_bvoh_0.1mm.inst.cfg create mode 100644 resources/quality/ultimaker_s5/um_s5_bb0.4_bvoh_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s5/um_s5_bb0.4_bvoh_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_s5/um_s5_bb0.8_bvoh_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s5/um_s5_bb0.8_bvoh_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_s5/um_s5_bb0.8_bvoh_0.4mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_bb0.4_bvoh_0.15mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_bb0.4_bvoh_0.1mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_bb0.4_bvoh_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_bb0.4_bvoh_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_bb0.8_bvoh_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_bb0.8_bvoh_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_bb0.8_bvoh_0.4mm.inst.cfg diff --git a/resources/quality/ultimaker_factor4/um_f4_bb0.4_bvoh_0.15mm.inst.cfg b/resources/quality/ultimaker_factor4/um_f4_bb0.4_bvoh_0.15mm.inst.cfg new file mode 100644 index 0000000000..c6548f0173 --- /dev/null +++ b/resources/quality/ultimaker_factor4/um_f4_bb0.4_bvoh_0.15mm.inst.cfg @@ -0,0 +1,43 @@ +[general] +definition = ultimaker_factor4 +name = Normal +version = 4 + +[metadata] +material = generic_bvoh +quality_type = fast +setting_version = 25 +type = quality +variant = BB 0.4 +weight = -1 + +[values] +acceleration_print = 1000.0 +acceleration_support_bottom = 100 +acceleration_support_interface = 1000 +brim_replaces_support = False +build_volume_temperature = =40 if extruders_enabled_count > 1 else 35 +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +gradual_flow_discretisation_step_size = 0.1 +gradual_flow_enabled = True +gradual_support_infill_steps = 0 +initial_layer_line_width_factor = 125 +jerk_print = 10 +material_flow_layer_0 = 90 +max_flow_acceleration = 1 +minimum_support_area = 4 +prime_tower_flow = 90 +prime_tower_min_volume = 15 +retraction_min_travel = 5.0 +retraction_prime_speed = 10.0 +skin_material_flow = =material_flow * 0.93 +speed_print = 30 +support_angle = 45 +support_infill_rate = 20 +support_infill_sparse_thickness = =min(layer_height * 2, machine_nozzle_size * 3 / 4) if layer_height <= 0.15 / 0.4 * machine_nozzle_size else layer_height +support_interface_offset = 1 +support_offset = 3 +support_xy_distance = 2 +support_z_distance = 0 +switch_extruder_prime_speed = 10.0 + diff --git a/resources/quality/ultimaker_factor4/um_f4_bb0.4_bvoh_0.1mm.inst.cfg b/resources/quality/ultimaker_factor4/um_f4_bb0.4_bvoh_0.1mm.inst.cfg new file mode 100644 index 0000000000..6f1b986c4e --- /dev/null +++ b/resources/quality/ultimaker_factor4/um_f4_bb0.4_bvoh_0.1mm.inst.cfg @@ -0,0 +1,43 @@ +[general] +definition = ultimaker_factor4 +name = Fine +version = 4 + +[metadata] +material = generic_bvoh +quality_type = normal +setting_version = 25 +type = quality +variant = BB 0.4 +weight = 0 + +[values] +acceleration_print = 1000.0 +acceleration_support_bottom = 100 +acceleration_support_interface = 1000 +brim_replaces_support = False +build_volume_temperature = =40 if extruders_enabled_count > 1 else 35 +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +gradual_flow_discretisation_step_size = 0.1 +gradual_flow_enabled = True +gradual_support_infill_steps = 0 +initial_layer_line_width_factor = 125 +jerk_print = 10 +material_flow_layer_0 = 90 +max_flow_acceleration = 1 +minimum_support_area = 4 +prime_tower_flow = 90 +prime_tower_min_volume = 15 +retraction_min_travel = 5.0 +retraction_prime_speed = 10.0 +skin_material_flow = =material_flow * 0.93 +speed_print = 30 +support_angle = 45 +support_infill_rate = 20 +support_infill_sparse_thickness = =min(layer_height * 2, machine_nozzle_size * 3 / 4) if layer_height <= 0.15 / 0.4 * machine_nozzle_size else layer_height +support_interface_offset = 1 +support_offset = 3 +support_xy_distance = 2 +support_z_distance = 0 +switch_extruder_prime_speed = 10.0 + diff --git a/resources/quality/ultimaker_factor4/um_f4_bb0.4_bvoh_0.2mm.inst.cfg b/resources/quality/ultimaker_factor4/um_f4_bb0.4_bvoh_0.2mm.inst.cfg new file mode 100644 index 0000000000..ff49315c1e --- /dev/null +++ b/resources/quality/ultimaker_factor4/um_f4_bb0.4_bvoh_0.2mm.inst.cfg @@ -0,0 +1,43 @@ +[general] +definition = ultimaker_factor4 +name = Fast +version = 4 + +[metadata] +material = generic_bvoh +quality_type = draft +setting_version = 25 +type = quality +variant = BB 0.4 +weight = -2 + +[values] +acceleration_print = 1000.0 +acceleration_support_bottom = 100 +acceleration_support_interface = 1000 +brim_replaces_support = False +build_volume_temperature = =40 if extruders_enabled_count > 1 else 35 +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +gradual_flow_discretisation_step_size = 0.1 +gradual_flow_enabled = True +gradual_support_infill_steps = 0 +initial_layer_line_width_factor = 125 +jerk_print = 10 +material_flow_layer_0 = 90 +max_flow_acceleration = 1 +minimum_support_area = 4 +prime_tower_flow = 90 +prime_tower_min_volume = 15 +retraction_min_travel = 5.0 +retraction_prime_speed = 10.0 +skin_material_flow = =material_flow * 0.93 +speed_print = 30 +support_angle = 45 +support_infill_rate = 20 +support_infill_sparse_thickness = =min(layer_height * 2, machine_nozzle_size * 3 / 4) if layer_height <= 0.15 / 0.4 * machine_nozzle_size else layer_height +support_interface_offset = 1 +support_offset = 3 +support_xy_distance = 2 +support_z_distance = 0 +switch_extruder_prime_speed = 10.0 + diff --git a/resources/quality/ultimaker_factor4/um_f4_bb0.4_bvoh_0.3mm.inst.cfg b/resources/quality/ultimaker_factor4/um_f4_bb0.4_bvoh_0.3mm.inst.cfg new file mode 100644 index 0000000000..209b16b697 --- /dev/null +++ b/resources/quality/ultimaker_factor4/um_f4_bb0.4_bvoh_0.3mm.inst.cfg @@ -0,0 +1,44 @@ +[general] +definition = ultimaker_factor4 +name = Extra Fast - Experimental +version = 4 + +[metadata] +is_experimental = True +material = generic_bvoh +quality_type = verydraft +setting_version = 25 +type = quality +variant = BB 0.4 +weight = -3 + +[values] +acceleration_print = 1000.0 +acceleration_support_bottom = 100 +acceleration_support_interface = 1000 +brim_replaces_support = False +build_volume_temperature = =40 if extruders_enabled_count > 1 else 35 +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +gradual_flow_discretisation_step_size = 0.1 +gradual_flow_enabled = True +gradual_support_infill_steps = 0 +initial_layer_line_width_factor = 125 +jerk_print = 10 +material_flow_layer_0 = 90 +max_flow_acceleration = 1 +minimum_support_area = 4 +prime_tower_flow = 90 +prime_tower_min_volume = 15 +retraction_min_travel = 5.0 +retraction_prime_speed = 10.0 +skin_material_flow = =material_flow * 0.93 +speed_print = 30 +support_angle = 45 +support_infill_rate = 20 +support_infill_sparse_thickness = =min(layer_height * 2, machine_nozzle_size * 3 / 4) if layer_height <= 0.15 / 0.4 * machine_nozzle_size else layer_height +support_interface_offset = 1 +support_offset = 3 +support_xy_distance = 2 +support_z_distance = 0 +switch_extruder_prime_speed = 10.0 + diff --git a/resources/quality/ultimaker_factor4/um_f4_bb0.8_bvoh_0.2mm.inst.cfg b/resources/quality/ultimaker_factor4/um_f4_bb0.8_bvoh_0.2mm.inst.cfg new file mode 100644 index 0000000000..d10b0c939e --- /dev/null +++ b/resources/quality/ultimaker_factor4/um_f4_bb0.8_bvoh_0.2mm.inst.cfg @@ -0,0 +1,43 @@ +[general] +definition = ultimaker_factor4 +name = Fast +version = 4 + +[metadata] +material = generic_bvoh +quality_type = draft +setting_version = 25 +type = quality +variant = BB 0.8 +weight = -2 + +[values] +acceleration_print = 1000.0 +acceleration_support_bottom = 100 +acceleration_support_interface = 1000 +brim_replaces_support = False +build_volume_temperature = =40 if extruders_enabled_count > 1 else 35 +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +gradual_flow_discretisation_step_size = 0.1 +gradual_flow_enabled = True +gradual_support_infill_steps = 0 +initial_layer_line_width_factor = 125 +jerk_print = 10 +material_flow_layer_0 = 90 +max_flow_acceleration = 1 +minimum_support_area = 4 +prime_tower_flow = 90 +prime_tower_min_volume = 15 +retraction_min_travel = 5.0 +retraction_prime_speed = 10.0 +skin_material_flow = =material_flow * 0.93 +speed_print = 30 +support_angle = 45 +support_infill_rate = 20 +support_infill_sparse_thickness = =min(layer_height * 2, machine_nozzle_size * 3 / 4) if layer_height <= 0.15 / 0.4 * machine_nozzle_size else layer_height +support_interface_offset = 1 +support_offset = 3 +support_xy_distance = 2 +support_z_distance = 0 +switch_extruder_prime_speed = 10.0 + diff --git a/resources/quality/ultimaker_factor4/um_f4_bb0.8_bvoh_0.3mm.inst.cfg b/resources/quality/ultimaker_factor4/um_f4_bb0.8_bvoh_0.3mm.inst.cfg new file mode 100644 index 0000000000..dd2e2da565 --- /dev/null +++ b/resources/quality/ultimaker_factor4/um_f4_bb0.8_bvoh_0.3mm.inst.cfg @@ -0,0 +1,43 @@ +[general] +definition = ultimaker_factor4 +name = Extra Fast +version = 4 + +[metadata] +material = generic_bvoh +quality_type = verydraft +setting_version = 25 +type = quality +variant = BB 0.8 +weight = -3 + +[values] +acceleration_print = 1000.0 +acceleration_support_bottom = 100 +acceleration_support_interface = 1000 +brim_replaces_support = False +build_volume_temperature = =40 if extruders_enabled_count > 1 else 35 +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +gradual_flow_discretisation_step_size = 0.1 +gradual_flow_enabled = True +gradual_support_infill_steps = 0 +initial_layer_line_width_factor = 125 +jerk_print = 10 +material_flow_layer_0 = 90 +max_flow_acceleration = 1 +minimum_support_area = 4 +prime_tower_flow = 90 +prime_tower_min_volume = 15 +retraction_min_travel = 5.0 +retraction_prime_speed = 10.0 +skin_material_flow = =material_flow * 0.93 +speed_print = 30 +support_angle = 45 +support_infill_rate = 20 +support_infill_sparse_thickness = =min(layer_height * 2, machine_nozzle_size * 3 / 4) if layer_height <= 0.15 / 0.4 * machine_nozzle_size else layer_height +support_interface_offset = 1 +support_offset = 3 +support_xy_distance = 2 +support_z_distance = 0 +switch_extruder_prime_speed = 10.0 + diff --git a/resources/quality/ultimaker_factor4/um_f4_bb0.8_bvoh_0.4mm.inst.cfg b/resources/quality/ultimaker_factor4/um_f4_bb0.8_bvoh_0.4mm.inst.cfg new file mode 100644 index 0000000000..fa230a1f5f --- /dev/null +++ b/resources/quality/ultimaker_factor4/um_f4_bb0.8_bvoh_0.4mm.inst.cfg @@ -0,0 +1,43 @@ +[general] +definition = ultimaker_factor4 +name = Sprint +version = 4 + +[metadata] +material = generic_bvoh +quality_type = superdraft +setting_version = 25 +type = quality +variant = BB 0.8 +weight = -4 + +[values] +acceleration_print = 1000.0 +acceleration_support_bottom = 100 +acceleration_support_interface = 1000 +brim_replaces_support = False +build_volume_temperature = =40 if extruders_enabled_count > 1 else 35 +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +gradual_flow_discretisation_step_size = 0.1 +gradual_flow_enabled = True +gradual_support_infill_steps = 0 +initial_layer_line_width_factor = 125 +jerk_print = 10 +material_flow_layer_0 = 90 +max_flow_acceleration = 1 +minimum_support_area = 4 +prime_tower_flow = 90 +prime_tower_min_volume = 15 +retraction_min_travel = 5.0 +retraction_prime_speed = 10.0 +skin_material_flow = =material_flow * 0.93 +speed_print = 30 +support_angle = 45 +support_infill_rate = 20 +support_infill_sparse_thickness = =min(layer_height * 2, machine_nozzle_size * 3 / 4) if layer_height <= 0.15 / 0.4 * machine_nozzle_size else layer_height +support_interface_offset = 1 +support_offset = 3 +support_xy_distance = 2 +support_z_distance = 0 +switch_extruder_prime_speed = 10.0 + diff --git a/resources/quality/ultimaker_s3/um_s3_bb0.4_bvoh_0.15mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_bb0.4_bvoh_0.15mm.inst.cfg new file mode 100644 index 0000000000..93c1d4947d --- /dev/null +++ b/resources/quality/ultimaker_s3/um_s3_bb0.4_bvoh_0.15mm.inst.cfg @@ -0,0 +1,35 @@ +[general] +definition = ultimaker_s3 +name = Normal +version = 4 + +[metadata] +material = generic_bvoh +quality_type = fast +setting_version = 25 +type = quality +variant = BB 0.4 +weight = -1 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 20 +jerk_support = 20 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_infill_sparse_thickness = =2 * layer_height +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s3/um_s3_bb0.4_bvoh_0.1mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_bb0.4_bvoh_0.1mm.inst.cfg new file mode 100644 index 0000000000..f06f8deb6f --- /dev/null +++ b/resources/quality/ultimaker_s3/um_s3_bb0.4_bvoh_0.1mm.inst.cfg @@ -0,0 +1,36 @@ +[general] +definition = ultimaker_s3 +name = Fine +version = 4 + +[metadata] +material = generic_bvoh +quality_type = normal +setting_version = 25 +type = quality +variant = BB 0.4 +weight = 0 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 20 +jerk_support = 20 +material_print_temperature = =default_material_print_temperature - 5 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_infill_sparse_thickness = =2 * layer_height +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s3/um_s3_bb0.4_bvoh_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_bb0.4_bvoh_0.2mm.inst.cfg new file mode 100644 index 0000000000..61059651ef --- /dev/null +++ b/resources/quality/ultimaker_s3/um_s3_bb0.4_bvoh_0.2mm.inst.cfg @@ -0,0 +1,35 @@ +[general] +definition = ultimaker_s3 +name = Fast +version = 4 + +[metadata] +material = generic_bvoh +quality_type = draft +setting_version = 25 +type = quality +variant = BB 0.4 +weight = -2 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 20 +jerk_support = 20 +material_print_temperature = =default_material_print_temperature + 5 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s3/um_s3_bb0.4_bvoh_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_bb0.4_bvoh_0.3mm.inst.cfg new file mode 100644 index 0000000000..8f06dd0562 --- /dev/null +++ b/resources/quality/ultimaker_s3/um_s3_bb0.4_bvoh_0.3mm.inst.cfg @@ -0,0 +1,37 @@ +[general] +definition = ultimaker_s3 +name = Extra Fast - Experimental +version = 4 + +[metadata] +is_experimental = True +material = generic_bvoh +quality_type = verydraft +setting_version = 25 +type = quality +variant = BB 0.4 +weight = -3 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 20 +jerk_support = 20 +material_print_temperature = =default_material_print_temperature - 5 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_infill_sparse_thickness = 0.3 +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s3/um_s3_bb0.8_bvoh_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_bb0.8_bvoh_0.2mm.inst.cfg new file mode 100644 index 0000000000..a9d67b0552 --- /dev/null +++ b/resources/quality/ultimaker_s3/um_s3_bb0.8_bvoh_0.2mm.inst.cfg @@ -0,0 +1,34 @@ +[general] +definition = ultimaker_s3 +name = Fast +version = 4 + +[metadata] +material = generic_bvoh +quality_type = draft +setting_version = 25 +type = quality +variant = BB 0.8 +weight = -2 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 20 +jerk_support = 20 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s3/um_s3_bb0.8_bvoh_0.3mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_bb0.8_bvoh_0.3mm.inst.cfg new file mode 100644 index 0000000000..016887c23c --- /dev/null +++ b/resources/quality/ultimaker_s3/um_s3_bb0.8_bvoh_0.3mm.inst.cfg @@ -0,0 +1,36 @@ +[general] +definition = ultimaker_s3 +name = Extra Fast +version = 4 + +[metadata] +material = generic_bvoh +quality_type = verydraft +setting_version = 25 +type = quality +variant = BB 0.8 +weight = -3 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 20 +jerk_support = 20 +material_print_temperature = =default_material_print_temperature + 5 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_infill_sparse_thickness = 0.3 +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s3/um_s3_bb0.8_bvoh_0.4mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_bb0.8_bvoh_0.4mm.inst.cfg new file mode 100644 index 0000000000..4d4bffbab9 --- /dev/null +++ b/resources/quality/ultimaker_s3/um_s3_bb0.8_bvoh_0.4mm.inst.cfg @@ -0,0 +1,35 @@ +[general] +definition = ultimaker_s3 +name = Sprint +version = 4 + +[metadata] +material = generic_bvoh +quality_type = superdraft +setting_version = 25 +type = quality +variant = BB 0.8 +weight = -4 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 20 +jerk_support = 20 +material_print_temperature = =default_material_print_temperature + 5 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.4_bvoh_0.15mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.4_bvoh_0.15mm.inst.cfg new file mode 100644 index 0000000000..e5dc8e7295 --- /dev/null +++ b/resources/quality/ultimaker_s5/um_s5_bb0.4_bvoh_0.15mm.inst.cfg @@ -0,0 +1,35 @@ +[general] +definition = ultimaker_s5 +name = Normal +version = 4 + +[metadata] +material = generic_bvoh +quality_type = fast +setting_version = 25 +type = quality +variant = BB 0.4 +weight = -1 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 20 +jerk_support = 20 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_infill_sparse_thickness = =2 * layer_height +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.4_bvoh_0.1mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.4_bvoh_0.1mm.inst.cfg new file mode 100644 index 0000000000..ed7638a4e0 --- /dev/null +++ b/resources/quality/ultimaker_s5/um_s5_bb0.4_bvoh_0.1mm.inst.cfg @@ -0,0 +1,36 @@ +[general] +definition = ultimaker_s5 +name = Fine +version = 4 + +[metadata] +material = generic_bvoh +quality_type = normal +setting_version = 25 +type = quality +variant = BB 0.4 +weight = 0 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 20 +jerk_support = 20 +material_print_temperature = =default_material_print_temperature - 5 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_infill_sparse_thickness = =2 * layer_height +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.4_bvoh_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.4_bvoh_0.2mm.inst.cfg new file mode 100644 index 0000000000..1d02c886bc --- /dev/null +++ b/resources/quality/ultimaker_s5/um_s5_bb0.4_bvoh_0.2mm.inst.cfg @@ -0,0 +1,35 @@ +[general] +definition = ultimaker_s5 +name = Fast +version = 4 + +[metadata] +material = generic_bvoh +quality_type = draft +setting_version = 25 +type = quality +variant = BB 0.4 +weight = -2 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 20 +jerk_support = 20 +material_print_temperature = =default_material_print_temperature + 5 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.4_bvoh_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.4_bvoh_0.3mm.inst.cfg new file mode 100644 index 0000000000..b759ae0bb3 --- /dev/null +++ b/resources/quality/ultimaker_s5/um_s5_bb0.4_bvoh_0.3mm.inst.cfg @@ -0,0 +1,37 @@ +[general] +definition = ultimaker_s5 +name = Extra Fast - Experimental +version = 4 + +[metadata] +is_experimental = True +material = generic_bvoh +quality_type = verydraft +setting_version = 25 +type = quality +variant = BB 0.4 +weight = -3 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 20 +jerk_support = 20 +material_print_temperature = =default_material_print_temperature - 5 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_infill_sparse_thickness = 0.3 +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.8_bvoh_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.8_bvoh_0.2mm.inst.cfg new file mode 100644 index 0000000000..58875826ad --- /dev/null +++ b/resources/quality/ultimaker_s5/um_s5_bb0.8_bvoh_0.2mm.inst.cfg @@ -0,0 +1,34 @@ +[general] +definition = ultimaker_s5 +name = Fast +version = 4 + +[metadata] +material = generic_bvoh +quality_type = draft +setting_version = 25 +type = quality +variant = BB 0.8 +weight = -2 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 20 +jerk_support = 20 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.8_bvoh_0.3mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.8_bvoh_0.3mm.inst.cfg new file mode 100644 index 0000000000..74b33f5366 --- /dev/null +++ b/resources/quality/ultimaker_s5/um_s5_bb0.8_bvoh_0.3mm.inst.cfg @@ -0,0 +1,36 @@ +[general] +definition = ultimaker_s5 +name = Extra Fast +version = 4 + +[metadata] +material = generic_bvoh +quality_type = verydraft +setting_version = 25 +type = quality +variant = BB 0.8 +weight = -3 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 20 +jerk_support = 20 +material_print_temperature = =default_material_print_temperature + 5 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_infill_sparse_thickness = 0.3 +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.8_bvoh_0.4mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.8_bvoh_0.4mm.inst.cfg new file mode 100644 index 0000000000..cd501dcf0e --- /dev/null +++ b/resources/quality/ultimaker_s5/um_s5_bb0.8_bvoh_0.4mm.inst.cfg @@ -0,0 +1,35 @@ +[general] +definition = ultimaker_s5 +name = Sprint +version = 4 + +[metadata] +material = generic_bvoh +quality_type = superdraft +setting_version = 25 +type = quality +variant = BB 0.8 +weight = -4 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 20 +jerk_support = 20 +material_print_temperature = =default_material_print_temperature + 5 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s8/um_s8_bb0.4_bvoh_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_bb0.4_bvoh_0.15mm.inst.cfg new file mode 100644 index 0000000000..e10db6b743 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_bb0.4_bvoh_0.15mm.inst.cfg @@ -0,0 +1,35 @@ +[general] +definition = ultimaker_s8 +name = Normal +version = 4 + +[metadata] +material = generic_bvoh +quality_type = fast +setting_version = 25 +type = quality +variant = BB 0.4 +weight = -1 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 4000 +jerk_support = 4000 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_infill_sparse_thickness = =2 * layer_height +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s8/um_s8_bb0.4_bvoh_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_bb0.4_bvoh_0.1mm.inst.cfg new file mode 100644 index 0000000000..9c5d0e9bd8 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_bb0.4_bvoh_0.1mm.inst.cfg @@ -0,0 +1,36 @@ +[general] +definition = ultimaker_s8 +name = Fine +version = 4 + +[metadata] +material = generic_bvoh +quality_type = normal +setting_version = 25 +type = quality +variant = BB 0.4 +weight = 0 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 4000 +jerk_support = 4000 +material_print_temperature = =default_material_print_temperature - 5 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_infill_sparse_thickness = =2 * layer_height +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s8/um_s8_bb0.4_bvoh_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_bb0.4_bvoh_0.2mm.inst.cfg new file mode 100644 index 0000000000..8f4c52d7b5 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_bb0.4_bvoh_0.2mm.inst.cfg @@ -0,0 +1,35 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = generic_bvoh +quality_type = draft +setting_version = 25 +type = quality +variant = BB 0.4 +weight = -2 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 4000 +jerk_support = 4000 +material_print_temperature = =default_material_print_temperature + 5 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s8/um_s8_bb0.4_bvoh_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_bb0.4_bvoh_0.3mm.inst.cfg new file mode 100644 index 0000000000..e37500de1a --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_bb0.4_bvoh_0.3mm.inst.cfg @@ -0,0 +1,37 @@ +[general] +definition = ultimaker_s8 +name = Extra Fast - Experimental +version = 4 + +[metadata] +is_experimental = True +material = generic_bvoh +quality_type = verydraft +setting_version = 25 +type = quality +variant = BB 0.4 +weight = -3 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 4000 +jerk_support = 4000 +material_print_temperature = =default_material_print_temperature - 5 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_infill_sparse_thickness = 0.3 +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s8/um_s8_bb0.8_bvoh_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_bb0.8_bvoh_0.2mm.inst.cfg new file mode 100644 index 0000000000..9a8e2a51c4 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_bb0.8_bvoh_0.2mm.inst.cfg @@ -0,0 +1,34 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = generic_bvoh +quality_type = draft +setting_version = 25 +type = quality +variant = BB 0.8 +weight = -2 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 4000 +jerk_support = 4000 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s8/um_s8_bb0.8_bvoh_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_bb0.8_bvoh_0.3mm.inst.cfg new file mode 100644 index 0000000000..f325937cb9 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_bb0.8_bvoh_0.3mm.inst.cfg @@ -0,0 +1,36 @@ +[general] +definition = ultimaker_s8 +name = Extra Fast +version = 4 + +[metadata] +material = generic_bvoh +quality_type = verydraft +setting_version = 25 +type = quality +variant = BB 0.8 +weight = -3 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 4000 +jerk_support = 4000 +material_print_temperature = =default_material_print_temperature + 5 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_infill_sparse_thickness = 0.3 +support_interface_enable = True +support_z_distance = 0 + diff --git a/resources/quality/ultimaker_s8/um_s8_bb0.8_bvoh_0.4mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_bb0.8_bvoh_0.4mm.inst.cfg new file mode 100644 index 0000000000..e26028fdc1 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_bb0.8_bvoh_0.4mm.inst.cfg @@ -0,0 +1,35 @@ +[general] +definition = ultimaker_s8 +name = Sprint +version = 4 + +[metadata] +material = generic_bvoh +quality_type = superdraft +setting_version = 25 +type = quality +variant = BB 0.8 +weight = -4 + +[values] +acceleration_prime_tower = 1500 +acceleration_support = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 +initial_layer_line_width_factor = 150 +jerk_prime_tower = 4000 +jerk_support = 4000 +material_print_temperature = =default_material_print_temperature + 5 +minimum_support_area = 4 +retraction_amount = 6.5 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 50 +speed_support = 50 +speed_support_interface = 50 +support_bottom_density = 70 +support_interface_enable = True +support_z_distance = 0 + From f5c91b942cee9dd49f5d4706a92759c8d09ceeee Mon Sep 17 00:00:00 2001 From: HellAholic Date: Fri, 15 Aug 2025 11:03:04 +0200 Subject: [PATCH 131/200] Update um_sketch_sprint_0.4mm_um-pla-175_0.27mm.inst.cfg --- .../um_sketch_sprint_0.4mm_um-pla-175_0.27mm.inst.cfg | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/resources/quality/ultimaker_sketch_sprint/um_sketch_sprint_0.4mm_um-pla-175_0.27mm.inst.cfg b/resources/quality/ultimaker_sketch_sprint/um_sketch_sprint_0.4mm_um-pla-175_0.27mm.inst.cfg index e88b8d8308..577faaca43 100644 --- a/resources/quality/ultimaker_sketch_sprint/um_sketch_sprint_0.4mm_um-pla-175_0.27mm.inst.cfg +++ b/resources/quality/ultimaker_sketch_sprint/um_sketch_sprint_0.4mm_um-pla-175_0.27mm.inst.cfg @@ -13,4 +13,9 @@ variant = 0.4mm weight = -3 [values] +bridge_wall_speed = 40 +cool_min_layer_time_overhang = 12 +cool_min_speed = 40 +wall_overhang_angle = 30 +wall_overhang_speed_factors = [60] From 6da4ca66a89c2e01b92f38a42b633dc89628ee49 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Mon, 18 Aug 2025 21:05:09 +0200 Subject: [PATCH 132/200] Painting: Have a sensible coordinate system. Using the camera is more standard, and while it has some downsides ('smearing'/large skews on surfaces angled away from the camera) it seems to have the least quirks (or at least ones that users are used to already). -- Also the what was here previously was just wrong, I'm just saying it could in theory have been solved the way I originally wanted to, but that'd take a long time to get completely right and efficient. part of CURA-12662 --- plugins/PaintTool/PaintTool.py | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/plugins/PaintTool/PaintTool.py b/plugins/PaintTool/PaintTool.py index 1eacc1cdab..207a66ad79 100644 --- a/plugins/PaintTool/PaintTool.py +++ b/plugins/PaintTool/PaintTool.py @@ -321,25 +321,22 @@ class PaintTool(Tool): :return: A list of UV-mapped polygons representing areas intersected by the stroke on the node's mesh surface. """ + # TODO: Cache this until the camera moves again. camera = Application.getInstance().getController().getScene().getActiveCamera() + cam_pos = camera.getPosition().getData() cam_ray = camera.getRay(0, 0) - cam_norm = cam_ray.direction.getData() - cam_norm /= numpy.linalg.norm(cam_norm) - - if (world_coords_a == world_coords_b).all(): - world_coords_b = world_coords_a + numpy.array([0.01, -0.01, 0.01]) - - vec_ab = world_coords_b - world_coords_a - stroke_dir = vec_ab / numpy.linalg.norm(vec_ab) - norm = -cam_norm - norm /= numpy.linalg.norm(norm) - perp = numpy.cross(norm, stroke_dir) - perp /= numpy.linalg.norm(perp) + norm = cam_ray.direction.getData() + norm /= -numpy.linalg.norm(norm) + axis_up = numpy.array([0.0, -1.0, 0.0]) if abs(norm[1]) < abs(norm[2]) else numpy.array([0.0, 0.0, 1.0]) + axis_q = numpy.cross(norm, axis_up) + axis_q /= numpy.linalg.norm(axis_q) + axis_r = numpy.cross(axis_q, norm) + axis_r /= numpy.linalg.norm(axis_r) def get_projected_on_plane(pt: numpy.ndarray) -> numpy.ndarray: - proj_pt = (pt - numpy.dot(norm, pt - world_coords_a) * norm) - world_coords_a - y_coord = numpy.dot(stroke_dir, proj_pt) - x_coord = numpy.dot(perp, proj_pt) + proj_pt = (pt - numpy.dot(norm, pt - cam_pos) * norm) - cam_pos + y_coord = numpy.dot(axis_r, proj_pt) + x_coord = numpy.dot(axis_q, proj_pt) return numpy.array([x_coord, y_coord]) def get_tri_in_stroke(a: numpy.ndarray, b: numpy.ndarray, c: numpy.ndarray) -> Polygon: From d339e092e780019246b0b59b9b1b1b6396ca93bd Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Mon, 18 Aug 2025 22:35:18 +0200 Subject: [PATCH 133/200] Painting: Make fill-polygon miss less gaps. ... but one of the problems is that it doesn't give an outline. part of CURA-12662 --- plugins/PaintTool/PaintTool.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/PaintTool/PaintTool.py b/plugins/PaintTool/PaintTool.py index 207a66ad79..103670980d 100644 --- a/plugins/PaintTool/PaintTool.py +++ b/plugins/PaintTool/PaintTool.py @@ -96,20 +96,20 @@ class PaintTool(Tool): min_pt = numpy.minimum(min_pt, w * pt) max_pt = numpy.maximum(max_pt, h * pt) - stroke_image = QImage(int(max_pt[0] - min_pt[0]), int(max_pt[1] - min_pt[1]), QImage.Format.Format_RGB32) + stroke_image = QImage(int(max_pt[0] - min_pt[0]) + 1, int(max_pt[1] - min_pt[1]) + 1, QImage.Format.Format_RGB32) stroke_image.fill(0) painter = QPainter(stroke_image) painter.setRenderHint(QPainter.RenderHint.Antialiasing, False) path = QPainterPath() for poly in polys: - path.moveTo(int(w * poly[0][0] - min_pt[0]), int(h * poly[0][1] - min_pt[1])) + path.moveTo(int(0.5 + w * poly[0][0] - min_pt[0]), int(0.5 + h * poly[0][1] - min_pt[1])) for pt in poly[1:]: - path.lineTo(int(w * pt[0] - min_pt[0]), int(h * pt[1] - min_pt[1])) + path.lineTo(int(0.5 + w * pt[0] - min_pt[0]), int(0.5 + h * pt[1] - min_pt[1])) painter.fillPath(path, self._brush_pen.color()) painter.end() - return stroke_image, (int(min_pt[0]), int(min_pt[1])) + return stroke_image, (int(min_pt[0] + 0.5), int(min_pt[1] + 0.5)) def getPaintType(self) -> str: paint_view = self._getPaintView() From 28dc0cd32ad51395291eb814256130970afa5286 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Tue, 19 Aug 2025 08:55:55 +0200 Subject: [PATCH 134/200] PaintTool: Optimization refactors. Don't have so many function-calls in performant code and cache camera-related variables until the camera moves again. part of CURA-12662 --- plugins/PaintTool/PaintTool.py | 91 +++++++++++++++++----------------- 1 file changed, 45 insertions(+), 46 deletions(-) diff --git a/plugins/PaintTool/PaintTool.py b/plugins/PaintTool/PaintTool.py index 103670980d..4e1efd57f0 100644 --- a/plugins/PaintTool/PaintTool.py +++ b/plugins/PaintTool/PaintTool.py @@ -13,6 +13,7 @@ from UM.Job import Job from UM.Logger import Logger from UM.Math.Polygon import Polygon from UM.Mesh.MeshData import MeshData +from UM.Scene.Camera import Camera from UM.Scene.SceneNode import SceneNode from UM.Scene.Selection import Selection from UM.Tool import Tool @@ -70,6 +71,26 @@ class PaintTool(Tool): self._controller.activeViewChanged.connect(self._updateIgnoreUnselectedObjects) self._controller.activeToolChanged.connect(self._updateState) + self._camera: Optional[Camera] = None + self._cam_pos: numpy.ndarray = numpy.array([0.0, 0.0, 0.0]) + self._cam_norm: numpy.ndarray = numpy.array([0.0, 0.0, 1.0]) + self._cam_axis_q: numpy.ndarray = numpy.array([1.0, 0.0, 0.0]) + self._cam_axis_r: numpy.ndarray = numpy.array([0.0, -1.0, 0.0]) + + def _updateCamera(self) -> None: + if self._camera is None: + self._camera = Application.getInstance().getController().getScene().getActiveCamera() + self._camera.transformationChanged.connect(self._updateCamera) + self._cam_pos = self._camera.getPosition().getData() + cam_ray = self._camera.getRay(0, 0) + self._cam_norm = cam_ray.direction.getData() + self._cam_norm /= -numpy.linalg.norm(self._cam_norm) + axis_up = numpy.array([0.0, -1.0, 0.0]) if abs(self._cam_norm[1]) < abs(self._cam_norm[2]) else numpy.array([0.0, 0.0, 1.0]) + self._cam_axis_q = numpy.cross(self._cam_norm, axis_up) + self._cam_axis_q /= numpy.linalg.norm(self._cam_axis_q) + self._cam_axis_r = numpy.cross(self._cam_axis_q, self._cam_norm) + self._cam_axis_r /= numpy.linalg.norm(self._cam_axis_r) + def _createBrushPen(self) -> QPen: pen = QPen() pen.setWidth(self._brush_size) @@ -321,38 +342,12 @@ class PaintTool(Tool): :return: A list of UV-mapped polygons representing areas intersected by the stroke on the node's mesh surface. """ - # TODO: Cache this until the camera moves again. - camera = Application.getInstance().getController().getScene().getActiveCamera() - cam_pos = camera.getPosition().getData() - cam_ray = camera.getRay(0, 0) - norm = cam_ray.direction.getData() - norm /= -numpy.linalg.norm(norm) - axis_up = numpy.array([0.0, -1.0, 0.0]) if abs(norm[1]) < abs(norm[2]) else numpy.array([0.0, 0.0, 1.0]) - axis_q = numpy.cross(norm, axis_up) - axis_q /= numpy.linalg.norm(axis_q) - axis_r = numpy.cross(axis_q, norm) - axis_r /= numpy.linalg.norm(axis_r) - def get_projected_on_plane(pt: numpy.ndarray) -> numpy.ndarray: - proj_pt = (pt - numpy.dot(norm, pt - cam_pos) * norm) - cam_pos - y_coord = numpy.dot(axis_r, proj_pt) - x_coord = numpy.dot(axis_q, proj_pt) + proj_pt = (pt - numpy.dot(self._cam_norm, pt - self._cam_pos) * self._cam_norm) - self._cam_pos + y_coord = numpy.dot(self._cam_axis_r, proj_pt) + x_coord = numpy.dot(self._cam_axis_q, proj_pt) return numpy.array([x_coord, y_coord]) - def get_tri_in_stroke(a: numpy.ndarray, b: numpy.ndarray, c: numpy.ndarray) -> Polygon: - return Polygon([ - get_projected_on_plane(a), - get_projected_on_plane(b), - get_projected_on_plane(c)]) - - def remap_polygon_to_uv(original_tri: Polygon, poly: Polygon, face_id: int) -> Polygon: - face_uv_coordinates = mesh.getFaceUvCoords(face_id) - if face_uv_coordinates is None: - return Polygon() - ta, tb, tc = face_uv_coordinates - original_uv_poly = Polygon([ta, tb, tc]) - return poly.map(lambda pt: PaintTool._remapBarycentric(original_tri, pt, original_uv_poly)) - uv_a0, uv_a1, _ = mesh.getFaceUvCoords(face_id_a) w_a0, w_a1, _ = mesh.getFaceNodes(face_id_a) world_to_uv_size_factor = numpy.linalg.norm(uv_a1 - uv_a0) / numpy.linalg.norm(w_a1 - w_a0) @@ -362,33 +357,36 @@ class PaintTool(Tool): get_projected_on_plane(world_coords_a), get_projected_on_plane(world_coords_b)) - def get_stroke_intersect_with_tri(face_id: int) -> Polygon: - va, vb, vc = mesh.getFaceNodes(face_id) - stroke_tri = get_tri_in_stroke(va, vb, vc) - return remap_polygon_to_uv(stroke_tri, stroke_poly.intersection(stroke_tri), face_id) - candidates = set() candidates.add(face_id_a) candidates.add(face_id_b) - def add_adjacent_candidates(face_id: int) -> None: - [candidates.add(x) for x in self._mesh_transformed_cache.getFaceNeighbourIDs(face_id)] - - def wrong_face_normal(face_id: int) -> bool: - _, fnorm = mesh.getFacePlane(face_id) - return numpy.dot(fnorm, norm) < 0 - res = [] seen = set() while candidates: candidate = candidates.pop() - if candidate in seen or candidate < 0 or wrong_face_normal(candidate): + if candidate in seen or candidate < 0: continue - uv_area = get_stroke_intersect_with_tri(candidate) + _, fnorm = mesh.getFacePlane(candidate) + if numpy.dot(fnorm, self._cam_norm) < 0: # <- facing away from the viewer + continue + + va, vb, vc = mesh.getFaceNodes(candidate) + stroke_tri = Polygon([ + get_projected_on_plane(va), + get_projected_on_plane(vb), + get_projected_on_plane(vc)]) + face_uv_coordinates = mesh.getFaceUvCoords(candidate) + if face_uv_coordinates is None: + continue + ta, tb, tc = face_uv_coordinates + original_uv_poly = Polygon([ta, tb, tc]) + uv_area = stroke_poly.intersection(stroke_tri).map(lambda pt: PaintTool._remapBarycentric(stroke_tri, pt, original_uv_poly)) + if not uv_area.isValid(): continue res.append(uv_area) - add_adjacent_candidates(candidate) + [candidates.add(x) for x in self._mesh_transformed_cache.getFaceNeighbourIDs(candidate)] seen.add(candidate) return res @@ -451,8 +449,9 @@ class PaintTool(Tool): if not self._picking_pass: return False - camera = self._controller.getScene().getActiveCamera() - if not camera: + if self._camera is None: + self._updateCamera() + if self._camera is None: return False if node != self._node_cache: From 9bc1294ce176e8a1f395f81c0c49983dd09728e8 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Tue, 19 Aug 2025 09:08:09 +0200 Subject: [PATCH 135/200] Remove useless parameters (use already cached values instead). part of CURA-12662 --- plugins/PaintTool/PaintTool.py | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/plugins/PaintTool/PaintTool.py b/plugins/PaintTool/PaintTool.py index 4e1efd57f0..3b6ba9a811 100644 --- a/plugins/PaintTool/PaintTool.py +++ b/plugins/PaintTool/PaintTool.py @@ -77,7 +77,7 @@ class PaintTool(Tool): self._cam_axis_q: numpy.ndarray = numpy.array([1.0, 0.0, 0.0]) self._cam_axis_r: numpy.ndarray = numpy.array([0.0, -1.0, 0.0]) - def _updateCamera(self) -> None: + def _updateCamera(self, *args) -> None: if self._camera is None: self._camera = Application.getInstance().getController().getScene().getActiveCamera() self._camera.transformationChanged.connect(self._updateCamera) @@ -264,7 +264,7 @@ class PaintTool(Tool): def _nodeTransformChanged(self, *args) -> None: self._cache_dirty = True - def _getCoordsFromClick(self, mesh: MeshData, x: float, y: float) -> Tuple[int, Optional[numpy.ndarray], Optional[numpy.ndarray]]: + def _getCoordsFromClick(self, x: float, y: float) -> Tuple[int, Optional[numpy.ndarray], Optional[numpy.ndarray]]: """ Retrieves coordinates based on a user's click on a 3D scene node. This function calculates and returns the face identifier, texture coordinates, and real-world coordinates @@ -278,14 +278,14 @@ class PaintTool(Tool): face_id = self._faces_selection_pass.getFaceIdAtPosition(x, y) - if face_id < 0 or face_id >= mesh.getFaceCount(): + if face_id < 0 or face_id >= self._mesh_transformed_cache.getFaceCount(): return face_id, None, None pt = self._picking_pass.getPickedPosition(x, y).getData() va, vb, vc = self._mesh_transformed_cache.getFaceNodes(face_id) - face_uv_coordinates = mesh.getFaceUvCoords(face_id) + face_uv_coordinates = self._node_cache.getMeshData().getFaceUvCoords(face_id) if face_uv_coordinates is None: return face_id, None, None ta, tb, tc = face_uv_coordinates @@ -329,12 +329,11 @@ class PaintTool(Tool): return shape.translate(stroke_a[0], stroke_a[1]).unionConvexHulls(shape.translate(stroke_b[0], stroke_b[1])) # NOTE: Currently, it's unclear how well this would work for non-convex brush-shapes. - def _getUvAreasForStroke(self, mesh: MeshData, face_id_a: int, face_id_b: int, world_coords_a: numpy.ndarray, world_coords_b: numpy.ndarray) -> List[Polygon]: + def _getUvAreasForStroke(self, face_id_a: int, face_id_b: int, world_coords_a: numpy.ndarray, world_coords_b: numpy.ndarray) -> List[Polygon]: """ Fetches all texture-coordinate areas within the provided stroke on the mesh. Calculates intersections of the stroke with the surface of the geometry and maps them to UV-space polygons. - :param mesh: The 3D mesh data, pre-transformed. :param face_id_a: ID of the face where the stroke starts. :param face_id_b: ID of the face where the stroke ends. :param world_coords_a: 3D ('world') coordinates corresponding to the starting stroke point. @@ -348,8 +347,8 @@ class PaintTool(Tool): x_coord = numpy.dot(self._cam_axis_q, proj_pt) return numpy.array([x_coord, y_coord]) - uv_a0, uv_a1, _ = mesh.getFaceUvCoords(face_id_a) - w_a0, w_a1, _ = mesh.getFaceNodes(face_id_a) + uv_a0, uv_a1, _ = self._node_cache.getMeshData().getFaceUvCoords(face_id_a) + w_a0, w_a1, _ = self._mesh_transformed_cache.getFaceNodes(face_id_a) world_to_uv_size_factor = numpy.linalg.norm(uv_a1 - uv_a0) / numpy.linalg.norm(w_a1 - w_a0) stroke_poly = self._getStrokePolygon( @@ -367,16 +366,16 @@ class PaintTool(Tool): candidate = candidates.pop() if candidate in seen or candidate < 0: continue - _, fnorm = mesh.getFacePlane(candidate) + _, fnorm = self._mesh_transformed_cache.getFacePlane(candidate) if numpy.dot(fnorm, self._cam_norm) < 0: # <- facing away from the viewer continue - va, vb, vc = mesh.getFaceNodes(candidate) + va, vb, vc = self._mesh_transformed_cache.getFaceNodes(candidate) stroke_tri = Polygon([ get_projected_on_plane(va), get_projected_on_plane(vb), get_projected_on_plane(vc)]) - face_uv_coordinates = mesh.getFaceUvCoords(candidate) + face_uv_coordinates = self._node_cache.getMeshData().getFaceUvCoords(candidate) if face_uv_coordinates is None: continue ta, tb, tc = face_uv_coordinates @@ -466,14 +465,14 @@ class PaintTool(Tool): if not self._mesh_transformed_cache: return False - face_id, _, world_coords = self._getCoordsFromClick(self._mesh_transformed_cache, mouse_evt.x, mouse_evt.y) + face_id, _, world_coords = self._getCoordsFromClick(mouse_evt.x, mouse_evt.y) if face_id < 0: return False if self._last_world_coords is None: self._last_world_coords = world_coords self._last_face_id = face_id - uv_areas = self._getUvAreasForStroke(self._mesh_transformed_cache, self._last_face_id, face_id, self._last_world_coords, world_coords) + uv_areas = self._getUvAreasForStroke(self._last_face_id, face_id, self._last_world_coords, world_coords) if len(uv_areas) == 0: return False stroke_img, (start_x, start_y) = self._createStrokeImage(uv_areas) From 8d42bb1f71b3b26a91dc55d0bd26751f9204a0a8 Mon Sep 17 00:00:00 2001 From: Remco Burema <41987080+rburema@users.noreply.github.com> Date: Tue, 19 Aug 2025 12:26:23 +0200 Subject: [PATCH 136/200] Apply suggestions from code review Co-authored-by: Casper Lamboo --- resources/definitions/fdmprinter.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 4b81d50c0c..21dd3209de 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -7923,7 +7923,7 @@ "unit": "mm", "type": "float", "enabled": "extruders_enabled_count > 1", - "default_value": "0.2", + "default_value": 0.2, "value": "line_width / 2", "minimum_value": "0.1", "maximum_value": "5", @@ -7938,7 +7938,7 @@ "unit": "mm", "type": "float", "enabled": "extruders_enabled_count > 1", - "default_value": "4", + "default_value": 4, "value": "line_width * 10", "minimum_value": "line_width", "minimum_value_warning": "line_width * 2", From 1f60829959228f81bf46ba00e6ced883202b6776 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Wed, 20 Aug 2025 09:21:04 +0200 Subject: [PATCH 137/200] Cleaning, small optimizations. part of CURA-12662 --- plugins/PaintTool/PaintTool.py | 54 +++++----------------------------- 1 file changed, 8 insertions(+), 46 deletions(-) diff --git a/plugins/PaintTool/PaintTool.py b/plugins/PaintTool/PaintTool.py index 3b6ba9a811..ec6c5168c7 100644 --- a/plugins/PaintTool/PaintTool.py +++ b/plugins/PaintTool/PaintTool.py @@ -228,9 +228,9 @@ class PaintTool(Tool): if (a == pt).all() or (b == c).all() or (a == c).all() or (a == b).all(): return 1.0 - # force points to be 3d + # force points to be 3d (and double-precision) def force3d(pt_: numpy.ndarray) -> numpy.ndarray: - return pt_ if pt_.size == 3 else numpy.array([pt_[0], pt_[1], 1.0]) + return pt_.astype(dtype=numpy.float64) if pt_.size >= 3 else numpy.array([pt_[0], pt_[1], 0.0], dtype=numpy.float64) a, pt, b, c = force3d(a), force3d(pt), force3d(b), force3d(c) # compute unit vectors of directions of lines A and B @@ -264,47 +264,6 @@ class PaintTool(Tool): def _nodeTransformChanged(self, *args) -> None: self._cache_dirty = True - def _getCoordsFromClick(self, x: float, y: float) -> Tuple[int, Optional[numpy.ndarray], Optional[numpy.ndarray]]: - """ Retrieves coordinates based on a user's click on a 3D scene node. - - This function calculates and returns the face identifier, texture coordinates, and real-world coordinates - derived from a click on the scene associated with the provided node. - - :param node: The node in the 3D scene from which the clicks' interaction information is derived. - :param x: The horizontal position of the click. - :param y: The vertical position of the click. - :return: A tuple containing; face-id, texture (UV) coordinates, and real-world (3D) coordinates. - """ - - face_id = self._faces_selection_pass.getFaceIdAtPosition(x, y) - - if face_id < 0 or face_id >= self._mesh_transformed_cache.getFaceCount(): - return face_id, None, None - - pt = self._picking_pass.getPickedPosition(x, y).getData() - - va, vb, vc = self._mesh_transformed_cache.getFaceNodes(face_id) - - face_uv_coordinates = self._node_cache.getMeshData().getFaceUvCoords(face_id) - if face_uv_coordinates is None: - return face_id, None, None - ta, tb, tc = face_uv_coordinates - - # 'Weight' of each vertex that would produce point pt, so we can generate the texture coordinates from the uv ones of the vertices. - # See (also) https://mathworld.wolfram.com/BarycentricCoordinates.html - wa = PaintTool._getIntersectRatioViaPt(va, pt, vb, vc) - wb = PaintTool._getIntersectRatioViaPt(vb, pt, vc, va) - wc = PaintTool._getIntersectRatioViaPt(vc, pt, va, vb) - wt = wa + wb + wc - if wt == 0: - return face_id, None, None - wa /= wt - wb /= wt - wc /= wt - texcoords = wa * ta + wb * tb + wc * tc - realcoords = wa * va + wb * vb + wc * vc - return face_id, texcoords, realcoords - @staticmethod def _remapBarycentric(triangle_a: Polygon, pt: numpy.ndarray, triangle_b: Polygon) -> numpy.ndarray: wa = PaintTool._getIntersectRatioViaPt(triangle_a[0], pt, triangle_a[1], triangle_a[2]) @@ -366,6 +325,8 @@ class PaintTool(Tool): candidate = candidates.pop() if candidate in seen or candidate < 0: continue + seen.add(candidate) + _, fnorm = self._mesh_transformed_cache.getFacePlane(candidate) if numpy.dot(fnorm, self._cam_norm) < 0: # <- facing away from the viewer continue @@ -386,7 +347,6 @@ class PaintTool(Tool): continue res.append(uv_area) [candidates.add(x) for x in self._mesh_transformed_cache.getFaceNeighbourIDs(candidate)] - seen.add(candidate) return res def event(self, event: Event) -> bool: @@ -465,9 +425,11 @@ class PaintTool(Tool): if not self._mesh_transformed_cache: return False - face_id, _, world_coords = self._getCoordsFromClick(mouse_evt.x, mouse_evt.y) - if face_id < 0: + face_id = self._faces_selection_pass.getFaceIdAtPosition(mouse_evt.x, mouse_evt.y) + if face_id < 0 or face_id >= self._mesh_transformed_cache.getFaceCount(): return False + world_coords = self._picking_pass.getPickedPosition(mouse_evt.x, mouse_evt.y).getData() + if self._last_world_coords is None: self._last_world_coords = world_coords self._last_face_id = face_id From da90d270151418300bde1ebbef6fd98f565ccd19 Mon Sep 17 00:00:00 2001 From: HellAholic Date: Mon, 18 Aug 2025 16:08:32 +0200 Subject: [PATCH 138/200] Set default_value and minimum_value for Inside Travel avoid distance Minimum value is set to half the nozzle width as any lower could potentially cause collision with the printed outer wall Default value is set to 0.6 --- resources/definitions/fdmprinter.def.json | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 68852d805f..fdb4bc5ebb 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4712,10 +4712,9 @@ "description": "The distance between the nozzle and already printed outer walls when travelling inside a model.", "unit": "mm", "type": "float", - "default_value": 0, + "default_value": 0.6, "value": "machine_nozzle_size * 1.5", - "minimum_value": "0", - "minimum_value_warning": "machine_nozzle_size * 0.5", + "minimum_value": "machine_nozzle_size * 0.5", "maximum_value_warning": "machine_nozzle_size * 10", "enabled": "resolveOrValue('retraction_combing') != 'off'", "settable_per_mesh": false, From 8bab847594e078461d02b6cab22b791d94148b5e Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Wed, 20 Aug 2025 15:13:03 +0200 Subject: [PATCH 139/200] Remap-barycentric was slowing things down; optimize. It was using the old (well, relatively speaking ... from the start of development of the current paint-epic) getIntersectRatioViaPt (three times no less), which was massive overkill for what we're trying to accomplish here. done as part of CURA-12662 --- plugins/PaintTool/PaintTool.py | 79 +++++++++++----------------------- 1 file changed, 24 insertions(+), 55 deletions(-) diff --git a/plugins/PaintTool/PaintTool.py b/plugins/PaintTool/PaintTool.py index ec6c5168c7..e73a85f93c 100644 --- a/plugins/PaintTool/PaintTool.py +++ b/plugins/PaintTool/PaintTool.py @@ -213,66 +213,35 @@ class PaintTool(Tool): return None return cast(PaintView, paint_view) - @staticmethod - def _getIntersectRatioViaPt(a: numpy.ndarray, pt: numpy.ndarray, b: numpy.ndarray, c: numpy.ndarray) -> float: - """ Gets a single Barycentric coordinate of a point on a line segment. - - :param a: The start point of the line segment (one of the points of the triangle). - :param pt: The point to find the Barycentric coordinate of (the one for point c, w.r.t. the ab line segment). - :param b: The end point of the line segment (one of the points of the triangle). - :param c: The third point of the triangle. - :return: The Barycentric coordinate of pt, w.r.t. point c in the abc triangle, or 1.0 if outside that triangle. - """ - - # compute the intersection of (param) A - pt with (param) B - (param) C - if (a == pt).all() or (b == c).all() or (a == c).all() or (a == b).all(): - return 1.0 - - # force points to be 3d (and double-precision) - def force3d(pt_: numpy.ndarray) -> numpy.ndarray: - return pt_.astype(dtype=numpy.float64) if pt_.size >= 3 else numpy.array([pt_[0], pt_[1], 0.0], dtype=numpy.float64) - a, pt, b, c = force3d(a), force3d(pt), force3d(b), force3d(c) - - # compute unit vectors of directions of lines A and B - udir_a = a - pt - udir_a /= numpy.linalg.norm(udir_a) - udir_b = b - c - udir_b /= numpy.linalg.norm(udir_b) - - # find unit direction vector for line C, which is perpendicular to lines A and B - udir_res = numpy.cross(udir_b, udir_a) - udir_res_len = numpy.linalg.norm(udir_res) - if udir_res_len == 0: - return 1.0 - udir_res /= udir_res_len - - # solve system of equations - rhs = b - a - lhs = numpy.array([udir_a, -udir_b, udir_res]).T - try: - solved = numpy.linalg.solve(lhs, rhs) - except numpy.linalg.LinAlgError: - return 1.0 - - # get the ratio - intersect = ((a + solved[0] * udir_a) + (b + solved[1] * udir_b)) * 0.5 - a_intersect_dist = numpy.linalg.norm(a - intersect) - if a_intersect_dist == 0: - return 1.0 - return numpy.linalg.norm(pt - intersect) / a_intersect_dist - def _nodeTransformChanged(self, *args) -> None: self._cache_dirty = True @staticmethod def _remapBarycentric(triangle_a: Polygon, pt: numpy.ndarray, triangle_b: Polygon) -> numpy.ndarray: - wa = PaintTool._getIntersectRatioViaPt(triangle_a[0], pt, triangle_a[1], triangle_a[2]) - wb = PaintTool._getIntersectRatioViaPt(triangle_a[1], pt, triangle_a[2], triangle_a[0]) - wc = PaintTool._getIntersectRatioViaPt(triangle_a[2], pt, triangle_a[0], triangle_a[1]) - wt = wa + wb + wc - if wt == 0: - return triangle_b[0] # Shouldn't happen! - return wa/wt * triangle_b[0] + wb/wt * triangle_b[1] + wc/wt * triangle_b[2] + a1, b1, c1 = triangle_a + a2, b2, c2 = triangle_b + + area_full = 0.5 * numpy.linalg.norm(numpy.cross(b1 - a1, c1 - a1)) + + if area_full < 1e-6: # Degenerate triangle + return a2 + + # Area of sub-triangle opposite to vertex [a,b,c]1 + area_a = 0.5 * numpy.linalg.norm(numpy.cross(b1 - pt, c1 - pt)) + area_b = 0.5 * numpy.linalg.norm(numpy.cross(pt - a1, c1 - a1)) + area_c = 0.5 * numpy.linalg.norm(numpy.cross(b1 - a1, pt - a1)) + + u = area_a / area_full + v = area_b / area_full + w = area_c / area_full + + total = u + v + w + if abs(total - 1.0) > 1e-6: + u /= total + v /= total + w /= total + + return u * a2 + v * b2 + w * c2 def _getStrokePolygon(self, size_adjust: float, stroke_a: numpy.ndarray, stroke_b: numpy.ndarray) -> Polygon: shape = None From fec24bfb19d3659022d4648b205d14febf0b8d29 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Wed, 20 Aug 2025 16:38:02 +0200 Subject: [PATCH 140/200] Make sure the paint-strokes are as solid as before. For fixing the paint-splatter issue Iswitched to a new way of drawing the polygon, which could result in missed strokes of pixels at the edge of (UV) polygons. This change should catch most of the remaining X% where that happened. done as part of CURA-12662 --- plugins/PaintTool/PaintTool.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/plugins/PaintTool/PaintTool.py b/plugins/PaintTool/PaintTool.py index e73a85f93c..d6937e4845 100644 --- a/plugins/PaintTool/PaintTool.py +++ b/plugins/PaintTool/PaintTool.py @@ -4,7 +4,7 @@ from enum import IntEnum import numpy from PyQt6.QtCore import Qt, QObject, pyqtEnum -from PyQt6.QtGui import QImage, QPainter, QPen, QPainterPath +from PyQt6.QtGui import QImage, QPainter, QPen, QPainterPath, QPainterPathStroker from typing import cast, Optional, Tuple, List from UM.Application import Application @@ -12,7 +12,6 @@ from UM.Event import Event, MouseEvent from UM.Job import Job from UM.Logger import Logger from UM.Math.Polygon import Polygon -from UM.Mesh.MeshData import MeshData from UM.Scene.Camera import Camera from UM.Scene.SceneNode import SceneNode from UM.Scene.Selection import Selection @@ -127,7 +126,10 @@ class PaintTool(Tool): path.moveTo(int(0.5 + w * poly[0][0] - min_pt[0]), int(0.5 + h * poly[0][1] - min_pt[1])) for pt in poly[1:]: path.lineTo(int(0.5 + w * pt[0] - min_pt[0]), int(0.5 + h * pt[1] - min_pt[1])) - painter.fillPath(path, self._brush_pen.color()) + path.lineTo(int(0.5 + w * poly[0][0] - min_pt[0]), int(0.5 + h * poly[0][1] - min_pt[1])) + stroker = QPainterPathStroker() + stroker.setWidth(2) + painter.fillPath(stroker.createStroke(path).united(path), self._brush_pen.color()) painter.end() return stroke_image, (int(min_pt[0] + 0.5), int(min_pt[1] + 0.5)) From 10897e2b71cee1f45aa7b646b013002c38027ae5 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Sat, 23 Aug 2025 22:42:47 +0200 Subject: [PATCH 141/200] Painting: Show brush-preview when moving the mouse over. CURA-12663 --- plugins/PaintTool/PaintTool.py | 33 ++++++++++++++++++++------------- plugins/PaintTool/PaintView.py | 17 ++++++++++++++++- plugins/PaintTool/paint.shader | 28 ++++++++++++++++++++++++++-- 3 files changed, 62 insertions(+), 16 deletions(-) diff --git a/plugins/PaintTool/PaintTool.py b/plugins/PaintTool/PaintTool.py index d6937e4845..22104a7cb3 100644 --- a/plugins/PaintTool/PaintTool.py +++ b/plugins/PaintTool/PaintTool.py @@ -329,7 +329,6 @@ class PaintTool(Tool): """ super().event(event) - controller = Application.getInstance().getController() node = Selection.getSelectedObject(0) if node is None: return False @@ -355,30 +354,36 @@ class PaintTool(Tool): is_moved = event.type == Event.MouseMoveEvent is_pressed = event.type == Event.MousePressEvent if (is_moved or is_pressed) and self._controller.getToolsEnabled(): - if is_moved and not self._mouse_held: + mouse_evt = cast(MouseEvent, event) + + paintview = self._getPaintView() + if paintview is None: return False - mouse_evt = cast(MouseEvent, event) + if not self._picking_pass: + self._picking_pass = CuraApplication.getInstance().getRenderer().getRenderPass("picking_selected") + if not self._picking_pass: + return False + + world_coords_vec = None + if is_moved: + world_coords_vec = self._picking_pass.getPickedPosition(mouse_evt.x, mouse_evt.y) + paintview.setCursor(world_coords_vec, self._brush_size / 128.0, self._brush_color) + if not self._mouse_held: + self._updateScene(node) + return False + if is_pressed: if MouseEvent.LeftButton not in mouse_evt.buttons: return False else: self._mouse_held = True - paintview = self._getPaintView() - if paintview is None: - return False - if not self._faces_selection_pass: self._faces_selection_pass = CuraApplication.getInstance().getRenderer().getRenderPass("selection_faces") if not self._faces_selection_pass: return False - if not self._picking_pass: - self._picking_pass = CuraApplication.getInstance().getRenderer().getRenderPass("picking_selected") - if not self._picking_pass: - return False - if self._camera is None: self._updateCamera() if self._camera is None: @@ -399,8 +404,10 @@ class PaintTool(Tool): face_id = self._faces_selection_pass.getFaceIdAtPosition(mouse_evt.x, mouse_evt.y) if face_id < 0 or face_id >= self._mesh_transformed_cache.getFaceCount(): return False - world_coords = self._picking_pass.getPickedPosition(mouse_evt.x, mouse_evt.y).getData() + if world_coords_vec is None: + world_coords_vec = self._picking_pass.getPickedPosition(mouse_evt.x, mouse_evt.y) + world_coords = world_coords_vec.getData() if self._last_world_coords is None: self._last_world_coords = world_coords self._last_face_id = face_id diff --git a/plugins/PaintTool/PaintView.py b/plugins/PaintTool/PaintView.py index 22629e340c..de57c073ff 100644 --- a/plugins/PaintTool/PaintView.py +++ b/plugins/PaintTool/PaintView.py @@ -2,11 +2,13 @@ # Cura is released under the terms of the LGPLv3 or higher. import os + from PyQt6.QtCore import QRect -from typing import Optional, List, Tuple, Dict, cast +from typing import Optional, List, Tuple, Dict from PyQt6.QtGui import QImage, QColor, QPainter +from UM.Math.Vector import Vector from cura.CuraApplication import CuraApplication from cura.BuildVolume import BuildVolume from cura.CuraView import CuraView @@ -46,6 +48,10 @@ class PaintView(CuraView): self._force_opaque_mask = QImage(2, 2, QImage.Format.Format_Mono) self._force_opaque_mask.fill(1) + self._cursor_position: Vector = Vector(0.0, 0.0, 0.0) + self._cursor_size: float = 0.0 + self._cursor_color: List[float] = [0.0, 0.0, 0.0, 1.0] + application = CuraApplication.getInstance() application.engineCreatedSignal.connect(self._makePaintModes) self._scene = application.getController().getScene() @@ -78,6 +84,11 @@ class PaintView(CuraView): res.setAlphaChannel(self._force_opaque_mask.scaled(image.width(), image.height())) return res + def setCursor(self, position: Optional[Vector] = None, size: float = -1, color: Optional[str] = None) -> None: + self._cursor_position = position if position is not None else self._cursor_position + self._cursor_size = size if size >= 0 else self._cursor_size + self._cursor_color = self._paint_modes[self._current_paint_type][color].display_color if color is not None else self._cursor_color + def addStroke(self, stroke_mask: QImage, start_x: int, start_y: int, brush_color: str) -> None: if self._current_paint_texture is None or self._current_paint_texture.getImage() is None: return @@ -195,6 +206,10 @@ class PaintView(CuraView): self._paint_shader.setUniformValue("u_bitsRangesStart", self._current_bits_ranges[0]) self._paint_shader.setUniformValue("u_bitsRangesEnd", self._current_bits_ranges[1]) + self._paint_shader.setUniformValue("u_cursorPos", self._cursor_position) + self._paint_shader.setUniformValue("u_cursorSize", self._cursor_size) + self._paint_shader.setUniformValue("u_cursorColor", self._cursor_color) + colors = [paint_type_obj.display_color for paint_type_obj in self._paint_modes[self._current_paint_type].values()] colors_values = [[int(color_part * 255) for color_part in [color.r, color.g, color.b]] for color in colors] self._paint_shader.setUniformValueArray("u_renderColors", colors_values) diff --git a/plugins/PaintTool/paint.shader b/plugins/PaintTool/paint.shader index 1982724910..1bfec2b9fe 100644 --- a/plugins/PaintTool/paint.shader +++ b/plugins/PaintTool/paint.shader @@ -33,6 +33,9 @@ fragment = uniform mediump int u_bitsRangesStart; uniform mediump int u_bitsRangesEnd; uniform mediump vec3 u_renderColors[16]; + uniform highp vec3 u_cursorPos; + uniform highp float u_cursorSize; + uniform lowp vec4 u_cursorColor; varying highp vec3 v_vertex; varying highp vec3 v_normal; @@ -57,8 +60,16 @@ fragment = highp float n_dot_l = mix(0.3, 0.7, dot(normal, light_dir)); final_color += (n_dot_l * diffuse_color); - final_color.a = 1.0; + /* Cursor */ + vec3 diff = v_vertex - u_cursorPos; + float squared_dist = dot(diff, diff); + if (squared_dist <= (u_cursorSize * u_cursorSize)) + { + final_color.rgb = mix(final_color.rgb / 2.0, u_cursorColor.rgb, u_cursorColor.a); + } + /* Output */ + final_color.a = 1.0; frag_color = final_color; } @@ -98,6 +109,9 @@ fragment41core = uniform mediump int u_bitsRangesStart; uniform mediump int u_bitsRangesEnd; uniform mediump vec3 u_renderColors[16]; + uniform highp vec3 u_cursorPos; + uniform highp float u_cursorSize; + uniform lowp vec4 u_cursorColor; in highp vec3 v_vertex; in highp vec3 v_normal; @@ -123,14 +137,24 @@ fragment41core = highp float n_dot_l = mix(0.3, 0.7, dot(normal, light_dir)); final_color += (n_dot_l * diffuse_color); - final_color.a = 1.0; + /* Cursor */ + vec3 diff = v_vertex - u_cursorPos; + float squared_dist = dot(diff, diff); + if (squared_dist <= (u_cursorSize * u_cursorSize)) + { + final_color.rgb = mix(final_color.rgb / 2.0, u_cursorColor.rgb, u_cursorColor.a); + } + /* Output */ + final_color.a = 1.0; frag_color = final_color; } [defaults] u_ambientColor = [0.3, 0.3, 0.3, 1.0] u_texture = 0 +u_cursorSize = 0.0 +u_cursorColor = [0.0, 0.0, 0.0, 0.0] [bindings] u_modelMatrix = model_matrix From 02dbc7e6e1e7efca4ffff6e8cdcd5f86084b39e8 Mon Sep 17 00:00:00 2001 From: HellAholic Date: Wed, 27 Aug 2025 15:02:22 +0200 Subject: [PATCH 142/200] add temp shortcuts --- plugins/PaintTool/PaintTool.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/PaintTool/PaintTool.qml b/plugins/PaintTool/PaintTool.qml index 7b04f9e58d..977018210e 100644 --- a/plugins/PaintTool/PaintTool.qml +++ b/plugins/PaintTool/PaintTool.qml @@ -192,7 +192,7 @@ Item { id: undoButton - text: catalog.i18nc("@action:button", "Undo Stroke") + text: catalog.i18nc("@action:button", "Undo Stroke (Ctrl+L)") toolItem: UM.ColorImage { source: UM.Theme.getIcon("ArrowReset") @@ -206,7 +206,7 @@ Item { id: redoButton - text: catalog.i18nc("@action:button", "Redo Stroke") + text: catalog.i18nc("@action:button", "Redo Stroke (Ctrl+Shift+L)") toolItem: UM.ColorImage { source: UM.Theme.getIcon("ArrowReset") From cc6083f4fa9567d7d6491f172762b5b57fe91df0 Mon Sep 17 00:00:00 2001 From: HellAholic Date: Fri, 29 Aug 2025 19:23:07 +0200 Subject: [PATCH 143/200] Add theme colors --- resources/themes/cura-light/theme.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 436aaceb3c..d561f7e6dc 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -463,6 +463,8 @@ "layerview_support_infill": [0, 230, 230, 127], "layerview_move_combing": [0, 0, 255, 255], "layerview_move_retraction": [128, 127, 255, 255], + "layerview_move_while_retracting": [127, 255, 255, 255], + "layerview_move_while_unretracting": [255, 127, 255, 255], "layerview_support_interface": [63, 127, 255, 127], "layerview_prime_tower": [0, 255, 255, 255], "layerview_nozzle": [224, 192, 16, 64], From 91efe68ebf05eee29a75df9e61121b9cb2da13e4 Mon Sep 17 00:00:00 2001 From: Frederic Meeuwissen <13856291+Frederic98@users.noreply.github.com> Date: Mon, 1 Sep 2025 17:02:18 +0200 Subject: [PATCH 144/200] Add S8 legacy core profiles --- .../um_s8_aa0.4_abs_0.06mm_visual.inst.cfg | 18 ++ ...m_s8_aa0.4_abs_0.15mm_engineering.inst.cfg | 24 +++ .../um_s8_aa0.4_abs_0.15mm_visual.inst.cfg | 18 ++ ...um_s8_aa0.4_abs_0.1mm_engineering.inst.cfg | 24 +++ .../um_s8_aa0.4_abs_0.1mm_visual.inst.cfg | 18 ++ .../um_s8_aa0.4_abs_0.2mm_quick.inst.cfg | 23 ++ ...aa0.4_cpe-plus_0.15mm_engineering.inst.cfg | 24 +++ ..._aa0.4_cpe-plus_0.1mm_engineering.inst.cfg | 24 +++ ...m_s8_aa0.4_cpe_0.15mm_engineering.inst.cfg | 24 +++ ...um_s8_aa0.4_cpe_0.1mm_engineering.inst.cfg | 24 +++ ...s8_aa0.4_nylon_0.15mm_engineering.inst.cfg | 24 +++ ..._s8_aa0.4_nylon_0.1mm_engineering.inst.cfg | 24 +++ ...um_s8_aa0.4_pc_0.15mm_engineering.inst.cfg | 24 +++ .../um_s8_aa0.4_pc_0.1mm_engineering.inst.cfg | 24 +++ ..._s8_aa0.4_petg_0.15mm_engineering.inst.cfg | 24 +++ ...m_s8_aa0.4_petg_0.1mm_engineering.inst.cfg | 24 +++ .../um_s8_aa0.4_pla_0.06mm_visual.inst.cfg | 18 ++ ...m_s8_aa0.4_pla_0.15mm_engineering.inst.cfg | 24 +++ .../um_s8_aa0.4_pla_0.15mm_visual.inst.cfg | 18 ++ ...um_s8_aa0.4_pla_0.1mm_engineering.inst.cfg | 24 +++ .../um_s8_aa0.4_pla_0.1mm_visual.inst.cfg | 18 ++ .../um_s8_aa0.4_pla_0.2mm_quick.inst.cfg | 23 ++ .../um_s8_aa0.4_pla_0.3mm_quick.inst.cfg | 28 +++ ..._s8_aa0.4_tough-pla_0.06mm_visual.inst.cfg | 18 ++ ...a0.4_tough-pla_0.15mm_engineering.inst.cfg | 24 +++ ..._s8_aa0.4_tough-pla_0.15mm_visual.inst.cfg | 18 ++ ...aa0.4_tough-pla_0.1mm_engineering.inst.cfg | 24 +++ ...m_s8_aa0.4_tough-pla_0.1mm_visual.inst.cfg | 18 ++ ...um_s8_aa0.4_tough-pla_0.2mm_quick.inst.cfg | 23 ++ ...um_s8_aa0.4_tough-pla_0.3mm_quick.inst.cfg | 28 +++ .../um_s8_aa0.4_um-abs_0.06mm_visual.inst.cfg | 26 +++ ...8_aa0.4_um-abs_0.15mm_engineering.inst.cfg | 28 +++ .../um_s8_aa0.4_um-abs_0.15mm_visual.inst.cfg | 26 +++ ...s8_aa0.4_um-abs_0.1mm_engineering.inst.cfg | 28 +++ .../um_s8_aa0.4_um-abs_0.1mm_visual.inst.cfg | 26 +++ ...s8_aa0.4_um-abs_0.2mm_engineering.inst.cfg | 28 +++ .../um_s8_aa0.4_um-abs_0.2mm_quick.inst.cfg | 27 +++ .../um_s8_aa0.4_um-abs_0.2mm_visual.inst.cfg | 26 +++ .../um_s8_aa0.4_um-abs_0.3mm_quick.inst.cfg | 27 +++ ...um_s8_aa0.4_um-petg_0.06mm_visual.inst.cfg | 26 +++ ..._aa0.4_um-petg_0.15mm_engineering.inst.cfg | 28 +++ ...um_s8_aa0.4_um-petg_0.15mm_visual.inst.cfg | 26 +++ ...8_aa0.4_um-petg_0.1mm_engineering.inst.cfg | 28 +++ .../um_s8_aa0.4_um-petg_0.1mm_visual.inst.cfg | 26 +++ ...8_aa0.4_um-petg_0.2mm_engineering.inst.cfg | 28 +++ .../um_s8_aa0.4_um-petg_0.2mm_quick.inst.cfg | 27 +++ .../um_s8_aa0.4_um-petg_0.2mm_visual.inst.cfg | 26 +++ .../um_s8_aa0.4_um-petg_0.3mm_quick.inst.cfg | 27 +++ .../um_s8_aa0.4_um-pla_0.06mm_visual.inst.cfg | 26 +++ ...8_aa0.4_um-pla_0.15mm_engineering.inst.cfg | 28 +++ .../um_s8_aa0.4_um-pla_0.15mm_visual.inst.cfg | 26 +++ ...s8_aa0.4_um-pla_0.1mm_engineering.inst.cfg | 28 +++ .../um_s8_aa0.4_um-pla_0.1mm_visual.inst.cfg | 26 +++ ...s8_aa0.4_um-pla_0.2mm_engineering.inst.cfg | 28 +++ .../um_s8_aa0.4_um-pla_0.2mm_quick.inst.cfg | 27 +++ .../um_s8_aa0.4_um-pla_0.2mm_visual.inst.cfg | 26 +++ .../um_s8_aa0.4_um-pla_0.3mm_quick.inst.cfg | 27 +++ ..._aa0.4_um-tough-pla_0.06mm_visual.inst.cfg | 26 +++ ...4_um-tough-pla_0.15mm_engineering.inst.cfg | 28 +++ ..._aa0.4_um-tough-pla_0.15mm_visual.inst.cfg | 26 +++ ....4_um-tough-pla_0.1mm_engineering.inst.cfg | 28 +++ ...8_aa0.4_um-tough-pla_0.1mm_visual.inst.cfg | 26 +++ ....4_um-tough-pla_0.2mm_engineering.inst.cfg | 28 +++ ...s8_aa0.4_um-tough-pla_0.2mm_quick.inst.cfg | 27 +++ ...8_aa0.4_um-tough-pla_0.2mm_visual.inst.cfg | 26 +++ ...s8_aa0.4_um-tough-pla_0.3mm_quick.inst.cfg | 27 +++ ...s8_aa0.8_um-abs_0.2mm_engineering.inst.cfg | 28 +++ .../um_s8_aa0.8_um-abs_0.2mm_quick.inst.cfg | 26 +++ .../um_s8_aa0.8_um-abs_0.2mm_visual.inst.cfg | 26 +++ .../um_s8_aa0.8_um-abs_0.3mm_quick.inst.cfg | 26 +++ .../um_s8_aa0.8_um-abs_0.4mm_quick.inst.cfg | 26 +++ ...8_aa0.8_um-petg_0.2mm_engineering.inst.cfg | 28 +++ .../um_s8_aa0.8_um-petg_0.2mm_quick.inst.cfg | 26 +++ .../um_s8_aa0.8_um-petg_0.2mm_visual.inst.cfg | 26 +++ .../um_s8_aa0.8_um-petg_0.3mm_quick.inst.cfg | 26 +++ .../um_s8_aa0.8_um-petg_0.4mm_quick.inst.cfg | 26 +++ ...s8_aa0.8_um-pla_0.2mm_engineering.inst.cfg | 28 +++ .../um_s8_aa0.8_um-pla_0.2mm_quick.inst.cfg | 26 +++ .../um_s8_aa0.8_um-pla_0.2mm_visual.inst.cfg | 26 +++ .../um_s8_aa0.8_um-pla_0.3mm_quick.inst.cfg | 26 +++ .../um_s8_aa0.8_um-pla_0.4mm_quick.inst.cfg | 26 +++ ....8_um-tough-pla_0.2mm_engineering.inst.cfg | 28 +++ ...s8_aa0.8_um-tough-pla_0.2mm_quick.inst.cfg | 26 +++ ...8_aa0.8_um-tough-pla_0.2mm_visual.inst.cfg | 26 +++ ...s8_aa0.8_um-tough-pla_0.3mm_quick.inst.cfg | 26 +++ ...s8_aa0.8_um-tough-pla_0.4mm_quick.inst.cfg | 26 +++ ..._nylon-cf-slide_0.2mm_engineering.inst.cfg | 25 +++ ...m_s8_cc0.4_petcf_0.15mm_annealing.inst.cfg | 29 +++ ...s8_cc0.4_petcf_0.15mm_engineering.inst.cfg | 24 +++ ...um_s8_cc0.4_petcf_0.2mm_annealing.inst.cfg | 29 +++ ..._s8_cc0.4_petcf_0.2mm_engineering.inst.cfg | 24 +++ ..._nylon-cf-slide_0.2mm_engineering.inst.cfg | 24 +++ ...m_s8_cc0.6_petcf_0.15mm_annealing.inst.cfg | 29 +++ ...s8_cc0.6_petcf_0.15mm_engineering.inst.cfg | 24 +++ ...um_s8_cc0.6_petcf_0.2mm_annealing.inst.cfg | 29 +++ ..._s8_cc0.6_petcf_0.2mm_engineering.inst.cfg | 24 +++ .../um_s8_aa0.25_abs_0.1mm.inst.cfg | 22 ++ .../um_s8_aa0.25_cpe_0.1mm.inst.cfg | 23 ++ .../um_s8_aa0.25_nylon_0.1mm.inst.cfg | 30 +++ .../um_s8_aa0.25_pc_0.1mm.inst.cfg | 41 ++++ .../um_s8_aa0.25_petg_0.1mm.inst.cfg | 23 ++ .../um_s8_aa0.25_pla_0.1mm.inst.cfg | 32 +++ .../um_s8_aa0.25_pp_0.1mm.inst.cfg | 46 ++++ .../um_s8_aa0.25_tough-pla_0.1mm.inst.cfg | 31 +++ .../um_s8_aa0.25_um-abs_0.1mm.inst.cfg | 72 +++++++ .../um_s8_aa0.25_um-petg_0.1mm.inst.cfg | 70 +++++++ .../um_s8_aa0.25_um-pla_0.1mm.inst.cfg | 70 +++++++ .../um_s8_aa0.25_um-tough-pla_0.1mm.inst.cfg | 71 +++++++ .../um_s8_aa0.4_abs_0.06mm.inst.cfg | 29 +++ .../um_s8_aa0.4_abs_0.15mm.inst.cfg | 29 +++ .../um_s8_aa0.4_abs_0.1mm.inst.cfg | 29 +++ .../um_s8_aa0.4_abs_0.2mm.inst.cfg | 30 +++ .../um_s8_aa0.4_abs_0.3mm.inst.cfg | 25 +++ .../um_s8_aa0.4_bam_0.15mm.inst.cfg | 32 +++ .../um_s8_aa0.4_bam_0.1mm.inst.cfg | 28 +++ .../um_s8_aa0.4_bam_0.2mm.inst.cfg | 31 +++ .../um_s8_aa0.4_bam_0.3mm.inst.cfg | 32 +++ .../um_s8_aa0.4_cpe-plus_0.06mm.inst.cfg | 36 ++++ .../um_s8_aa0.4_cpe-plus_0.15mm.inst.cfg | 33 +++ .../um_s8_aa0.4_cpe-plus_0.1mm.inst.cfg | 36 ++++ .../um_s8_aa0.4_cpe-plus_0.2mm.inst.cfg | 33 +++ .../um_s8_aa0.4_cpe_0.06mm.inst.cfg | 28 +++ .../um_s8_aa0.4_cpe_0.15mm.inst.cfg | 26 +++ .../um_s8_aa0.4_cpe_0.1mm.inst.cfg | 28 +++ .../um_s8_aa0.4_cpe_0.2mm.inst.cfg | 27 +++ .../um_s8_aa0.4_nylon_0.06mm.inst.cfg | 25 +++ .../um_s8_aa0.4_nylon_0.15mm.inst.cfg | 24 +++ .../um_s8_aa0.4_nylon_0.1mm.inst.cfg | 25 +++ .../um_s8_aa0.4_nylon_0.2mm.inst.cfg | 25 +++ .../um_s8_aa0.4_pc_0.06mm.inst.cfg | 42 ++++ .../um_s8_aa0.4_pc_0.15mm.inst.cfg | 41 ++++ .../um_s8_aa0.4_pc_0.1mm.inst.cfg | 42 ++++ .../um_s8_aa0.4_pc_0.2mm.inst.cfg | 41 ++++ .../um_s8_aa0.4_petg_0.06mm.inst.cfg | 27 +++ .../um_s8_aa0.4_petg_0.15mm.inst.cfg | 25 +++ .../um_s8_aa0.4_petg_0.1mm.inst.cfg | 27 +++ .../um_s8_aa0.4_petg_0.2mm.inst.cfg | 26 +++ .../um_s8_aa0.4_petg_0.3mm.inst.cfg | 22 ++ .../um_s8_aa0.4_pla_0.06mm.inst.cfg | 28 +++ .../um_s8_aa0.4_pla_0.15mm.inst.cfg | 28 +++ .../um_s8_aa0.4_pla_0.1mm.inst.cfg | 24 +++ .../um_s8_aa0.4_pla_0.2mm.inst.cfg | 31 +++ .../um_s8_aa0.4_pla_0.3mm.inst.cfg | 35 ++++ .../um_s8_aa0.4_pp_0.15mm.inst.cfg | 45 ++++ .../um_s8_aa0.4_pp_0.1mm.inst.cfg | 46 ++++ .../um_s8_aa0.4_pp_0.2mm.inst.cfg | 45 ++++ .../um_s8_aa0.4_tough-pla_0.06mm.inst.cfg | 29 +++ .../um_s8_aa0.4_tough-pla_0.15mm.inst.cfg | 28 +++ .../um_s8_aa0.4_tough-pla_0.1mm.inst.cfg | 29 +++ .../um_s8_aa0.4_tough-pla_0.2mm.inst.cfg | 29 +++ .../um_s8_aa0.4_tough-pla_0.3mm.inst.cfg | 36 ++++ .../um_s8_aa0.4_tpu_0.15mm.inst.cfg | 52 +++++ .../um_s8_aa0.4_tpu_0.1mm.inst.cfg | 53 +++++ .../um_s8_aa0.4_tpu_0.2mm.inst.cfg | 52 +++++ .../um_s8_aa0.4_um-abs_0.06mm.inst.cfg | 72 +++++++ .../um_s8_aa0.4_um-abs_0.15mm.inst.cfg | 73 +++++++ .../um_s8_aa0.4_um-abs_0.1mm.inst.cfg | 72 +++++++ .../um_s8_aa0.4_um-abs_0.2mm.inst.cfg | 78 +++++++ .../um_s8_aa0.4_um-abs_0.3mm.inst.cfg | 75 +++++++ .../um_s8_aa0.4_um-petg_0.06mm.inst.cfg | 71 +++++++ .../um_s8_aa0.4_um-petg_0.15mm.inst.cfg | 72 +++++++ .../um_s8_aa0.4_um-petg_0.1mm.inst.cfg | 71 +++++++ .../um_s8_aa0.4_um-petg_0.2mm.inst.cfg | 77 +++++++ .../um_s8_aa0.4_um-petg_0.3mm.inst.cfg | 74 +++++++ .../um_s8_aa0.4_um-pla_0.06mm.inst.cfg | 71 +++++++ .../um_s8_aa0.4_um-pla_0.15mm.inst.cfg | 72 +++++++ .../um_s8_aa0.4_um-pla_0.1mm.inst.cfg | 71 +++++++ .../um_s8_aa0.4_um-pla_0.2mm.inst.cfg | 77 +++++++ .../um_s8_aa0.4_um-pla_0.3mm.inst.cfg | 74 +++++++ .../um_s8_aa0.4_um-tough-pla_0.06mm.inst.cfg | 72 +++++++ .../um_s8_aa0.4_um-tough-pla_0.15mm.inst.cfg | 73 +++++++ .../um_s8_aa0.4_um-tough-pla_0.1mm.inst.cfg | 72 +++++++ .../um_s8_aa0.4_um-tough-pla_0.2mm.inst.cfg | 77 +++++++ .../um_s8_aa0.4_um-tough-pla_0.3mm.inst.cfg | 75 +++++++ .../um_s8_aa0.8_abs_0.2mm.inst.cfg | 20 ++ .../um_s8_aa0.8_abs_0.3mm.inst.cfg | 20 ++ .../um_s8_aa0.8_abs_0.4mm.inst.cfg | 21 ++ .../um_s8_aa0.8_cpe-plus_0.2mm.inst.cfg | 29 +++ .../um_s8_aa0.8_cpe-plus_0.3mm.inst.cfg | 29 +++ .../um_s8_aa0.8_cpe-plus_0.4mm.inst.cfg | 30 +++ .../um_s8_aa0.8_cpe_0.2mm.inst.cfg | 21 ++ .../um_s8_aa0.8_cpe_0.3mm.inst.cfg | 21 ++ .../um_s8_aa0.8_cpe_0.4mm.inst.cfg | 23 ++ .../um_s8_aa0.8_nylon_0.2mm.inst.cfg | 26 +++ .../um_s8_aa0.8_nylon_0.3mm.inst.cfg | 26 +++ .../um_s8_aa0.8_nylon_0.4mm.inst.cfg | 26 +++ .../um_s8_aa0.8_pc_0.2mm.inst.cfg | 23 ++ .../um_s8_aa0.8_pc_0.3mm.inst.cfg | 23 ++ .../um_s8_aa0.8_pc_0.4mm.inst.cfg | 24 +++ .../um_s8_aa0.8_petg_0.2mm.inst.cfg | 22 ++ .../um_s8_aa0.8_petg_0.3mm.inst.cfg | 22 ++ .../um_s8_aa0.8_petg_0.4mm.inst.cfg | 24 +++ .../um_s8_aa0.8_pla_0.2mm.inst.cfg | 26 +++ .../um_s8_aa0.8_pla_0.3mm.inst.cfg | 26 +++ .../um_s8_aa0.8_pla_0.4mm.inst.cfg | 27 +++ .../um_s8_aa0.8_pp_0.2mm.inst.cfg | 35 ++++ .../um_s8_aa0.8_pp_0.3mm.inst.cfg | 35 ++++ .../um_s8_aa0.8_pp_0.4mm.inst.cfg | 36 ++++ .../um_s8_aa0.8_tough-pla_0.2mm.inst.cfg | 27 +++ .../um_s8_aa0.8_tough-pla_0.3mm.inst.cfg | 28 +++ .../um_s8_aa0.8_tough-pla_0.4mm.inst.cfg | 28 +++ .../um_s8_aa0.8_tpu_0.2mm.inst.cfg | 48 +++++ .../um_s8_aa0.8_tpu_0.3mm.inst.cfg | 49 +++++ .../um_s8_aa0.8_tpu_0.4mm.inst.cfg | 48 +++++ .../um_s8_aa0.8_um-abs_0.2mm.inst.cfg | 75 +++++++ .../um_s8_aa0.8_um-abs_0.3mm.inst.cfg | 73 +++++++ .../um_s8_aa0.8_um-abs_0.4mm.inst.cfg | 73 +++++++ .../um_s8_aa0.8_um-petg_0.2mm.inst.cfg | 74 +++++++ .../um_s8_aa0.8_um-petg_0.3mm.inst.cfg | 74 +++++++ .../um_s8_aa0.8_um-petg_0.4mm.inst.cfg | 74 +++++++ .../um_s8_aa0.8_um-pla_0.2mm.inst.cfg | 74 +++++++ .../um_s8_aa0.8_um-pla_0.3mm.inst.cfg | 72 +++++++ .../um_s8_aa0.8_um-pla_0.4mm.inst.cfg | 72 +++++++ .../um_s8_aa0.8_um-tough-pla_0.2mm.inst.cfg | 75 +++++++ .../um_s8_aa0.8_um-tough-pla_0.3mm.inst.cfg | 73 +++++++ .../um_s8_aa0.8_um-tough-pla_0.4mm.inst.cfg | 73 +++++++ .../um_s8_bb0.4_pva_0.06mm.inst.cfg | 29 +++ .../um_s8_bb0.8_pva_0.2mm.inst.cfg | 27 +++ .../um_s8_bb0.8_pva_0.3mm.inst.cfg | 29 +++ .../um_s8_bb0.8_pva_0.4mm.inst.cfg | 28 +++ .../um_s8_cc0.4_cffcpe_0.15mm.inst.cfg | 18 ++ .../um_s8_cc0.4_cffcpe_0.2mm.inst.cfg | 18 ++ .../um_s8_cc0.4_cffpa_0.15mm.inst.cfg | 18 ++ .../um_s8_cc0.4_cffpa_0.2mm.inst.cfg | 18 ++ .../um_s8_cc0.4_gffcpe_0.15mm.inst.cfg | 18 ++ .../um_s8_cc0.4_gffcpe_0.2mm.inst.cfg | 18 ++ .../um_s8_cc0.4_gffpa_0.15mm.inst.cfg | 18 ++ .../um_s8_cc0.4_gffpa_0.2mm.inst.cfg | 18 ++ .../um_s8_cc0.4_nylon-cf-slide_0.2mm.inst.cfg | 19 ++ .../um_s8_cc0.4_petcf_0.15mm.inst.cfg | 30 +++ .../um_s8_cc0.4_petcf_0.2mm.inst.cfg | 30 +++ .../um_s8_cc0.4_pla_0.15mm.inst.cfg | 28 +++ .../um_s8_cc0.4_pla_0.2mm.inst.cfg | 28 +++ .../um_s8_cc0.4_um-pla_0.15mm.inst.cfg | 28 +++ .../um_s8_cc0.4_um-pla_0.2mm.inst.cfg | 28 +++ .../um_s8_cc0.6_cffcpe_0.2mm.inst.cfg | 18 ++ .../um_s8_cc0.6_cffpa_0.2mm.inst.cfg | 18 ++ .../um_s8_cc0.6_gffcpe_0.2mm.inst.cfg | 18 ++ .../um_s8_cc0.6_gffpa_0.2mm.inst.cfg | 18 ++ .../um_s8_cc0.6_nylon-cf-slide_0.2mm.inst.cfg | 18 ++ .../um_s8_cc0.6_petcf_0.15mm.inst.cfg | 30 +++ .../um_s8_cc0.6_petcf_0.2mm.inst.cfg | 30 +++ .../um_s8_cc0.6_petcf_0.3mm.inst.cfg | 30 +++ .../um_s8_cc0.6_pla_0.15mm.inst.cfg | 28 +++ .../um_s8_cc0.6_pla_0.2mm.inst.cfg | 28 +++ .../um_s8_cc0.6_um-pla_0.15mm.inst.cfg | 28 +++ .../um_s8_cc0.6_um-pla_0.2mm.inst.cfg | 28 +++ .../variants/ultimaker_s6_aa025.inst.cfg | 188 +++++++++++++++++ resources/variants/ultimaker_s6_aa04.inst.cfg | 185 ++++++++++++++++ resources/variants/ultimaker_s6_aa08.inst.cfg | 197 ++++++++++++++++++ resources/variants/ultimaker_s6_cc04.inst.cfg | 184 ++++++++++++++++ resources/variants/ultimaker_s6_cc06.inst.cfg | 184 ++++++++++++++++ .../variants/ultimaker_s8_aa025.inst.cfg | 188 +++++++++++++++++ resources/variants/ultimaker_s8_aa04.inst.cfg | 185 ++++++++++++++++ resources/variants/ultimaker_s8_aa08.inst.cfg | 197 ++++++++++++++++++ resources/variants/ultimaker_s8_cc04.inst.cfg | 184 ++++++++++++++++ resources/variants/ultimaker_s8_cc06.inst.cfg | 184 ++++++++++++++++ 257 files changed, 10263 insertions(+) create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.06mm_visual.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.15mm_engineering.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.15mm_visual.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.1mm_engineering.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.1mm_visual.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.2mm_quick.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.15mm_engineering.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.1mm_engineering.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_cpe_0.15mm_engineering.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_cpe_0.1mm_engineering.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_nylon_0.15mm_engineering.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_nylon_0.1mm_engineering.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_pc_0.15mm_engineering.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_pc_0.1mm_engineering.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_petg_0.15mm_engineering.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_petg_0.1mm_engineering.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.06mm_visual.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.15mm_engineering.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.15mm_visual.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.1mm_engineering.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.1mm_visual.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.2mm_quick.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.3mm_quick.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.06mm_visual.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.15mm_engineering.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.15mm_visual.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.1mm_engineering.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.1mm_visual.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.2mm_quick.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.3mm_quick.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.06mm_visual.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.15mm_engineering.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.15mm_visual.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.1mm_engineering.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.1mm_visual.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.2mm_engineering.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.2mm_quick.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.2mm_visual.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.3mm_quick.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.06mm_visual.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.15mm_engineering.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.15mm_visual.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.1mm_engineering.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.1mm_visual.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.2mm_engineering.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.2mm_quick.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.2mm_visual.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.3mm_quick.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.06mm_visual.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.15mm_engineering.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.15mm_visual.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.1mm_engineering.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.1mm_visual.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.2mm_engineering.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.2mm_quick.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.2mm_visual.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.3mm_quick.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.06mm_visual.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.15mm_engineering.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.15mm_visual.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.1mm_engineering.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.1mm_visual.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.2mm_engineering.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.2mm_quick.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.2mm_visual.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.3mm_quick.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.2mm_engineering.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.2mm_quick.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.2mm_visual.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.3mm_quick.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.4mm_quick.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.2mm_engineering.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.2mm_quick.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.2mm_visual.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.3mm_quick.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.4mm_quick.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.2mm_engineering.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.2mm_quick.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.2mm_visual.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.3mm_quick.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.4mm_quick.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.2mm_engineering.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.2mm_quick.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.2mm_visual.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.3mm_quick.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.4mm_quick.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_cc0.4_nylon-cf-slide_0.2mm_engineering.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_cc0.4_petcf_0.15mm_annealing.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_cc0.4_petcf_0.15mm_engineering.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_cc0.4_petcf_0.2mm_annealing.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_cc0.4_petcf_0.2mm_engineering.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_cc0.6_nylon-cf-slide_0.2mm_engineering.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_cc0.6_petcf_0.15mm_annealing.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_cc0.6_petcf_0.15mm_engineering.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_cc0.6_petcf_0.2mm_annealing.inst.cfg create mode 100644 resources/intent/ultimaker_s8/um_s8_cc0.6_petcf_0.2mm_engineering.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.25_abs_0.1mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.25_cpe_0.1mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.25_nylon_0.1mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.25_pc_0.1mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.25_petg_0.1mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.25_pla_0.1mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.25_pp_0.1mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.25_tough-pla_0.1mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.25_um-abs_0.1mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.25_um-petg_0.1mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.25_um-pla_0.1mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.25_um-tough-pla_0.1mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.06mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.15mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.1mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_bam_0.15mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_bam_0.1mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_bam_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_bam_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.06mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.15mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.1mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_cpe_0.06mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_cpe_0.15mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_cpe_0.1mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_cpe_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_nylon_0.06mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_nylon_0.15mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_nylon_0.1mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_nylon_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_pc_0.06mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_pc_0.15mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_pc_0.1mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_pc_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.06mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.15mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.1mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.06mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.15mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.1mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_pp_0.15mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_pp_0.1mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_pp_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.06mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.15mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.1mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_tpu_0.15mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_tpu_0.1mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_tpu_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.06mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.15mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.1mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.06mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.15mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.1mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.06mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.15mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.1mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.06mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.15mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.1mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_abs_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_abs_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_abs_0.4mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_cpe-plus_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_cpe-plus_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_cpe-plus_0.4mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_cpe_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_cpe_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_cpe_0.4mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_nylon_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_nylon_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_nylon_0.4mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_pc_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_pc_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_pc_0.4mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_petg_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_petg_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_petg_0.4mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_pla_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_pla_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_pla_0.4mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_pp_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_pp_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_pp_0.4mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_tough-pla_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_tough-pla_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_tough-pla_0.4mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_tpu_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_tpu_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_tpu_0.4mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_um-abs_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_um-abs_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_um-abs_0.4mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_um-petg_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_um-petg_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_um-petg_0.4mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_um-pla_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_um-pla_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_um-pla_0.4mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.4mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_bb0.4_pva_0.06mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_bb0.8_pva_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_bb0.8_pva_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_bb0.8_pva_0.4mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_cc0.4_cffcpe_0.15mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_cc0.4_cffcpe_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_cc0.4_cffpa_0.15mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_cc0.4_cffpa_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_cc0.4_gffcpe_0.15mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_cc0.4_gffcpe_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_cc0.4_gffpa_0.15mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_cc0.4_gffpa_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_cc0.4_nylon-cf-slide_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_cc0.4_petcf_0.15mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_cc0.4_petcf_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_cc0.4_pla_0.15mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_cc0.4_pla_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_cc0.4_um-pla_0.15mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_cc0.4_um-pla_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_cc0.6_cffcpe_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_cc0.6_cffpa_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_cc0.6_gffcpe_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_cc0.6_gffpa_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_cc0.6_nylon-cf-slide_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_cc0.6_petcf_0.15mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_cc0.6_petcf_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_cc0.6_petcf_0.3mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_cc0.6_pla_0.15mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_cc0.6_pla_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_cc0.6_um-pla_0.15mm.inst.cfg create mode 100644 resources/quality/ultimaker_s8/um_s8_cc0.6_um-pla_0.2mm.inst.cfg create mode 100644 resources/variants/ultimaker_s6_aa025.inst.cfg create mode 100644 resources/variants/ultimaker_s6_aa04.inst.cfg create mode 100644 resources/variants/ultimaker_s6_aa08.inst.cfg create mode 100644 resources/variants/ultimaker_s6_cc04.inst.cfg create mode 100644 resources/variants/ultimaker_s6_cc06.inst.cfg create mode 100644 resources/variants/ultimaker_s8_aa025.inst.cfg create mode 100644 resources/variants/ultimaker_s8_aa04.inst.cfg create mode 100644 resources/variants/ultimaker_s8_aa08.inst.cfg create mode 100644 resources/variants/ultimaker_s8_cc04.inst.cfg create mode 100644 resources/variants/ultimaker_s8_cc06.inst.cfg diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.06mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.06mm_visual.inst.cfg new file mode 100644 index 0000000000..b356738b66 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.06mm_visual.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = ultimaker_s8 +name = Visual +version = 4 + +[metadata] +intent_category = visual +material = generic_abs +quality_type = high +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +speed_infill = 50 +top_bottom_thickness = 1.05 +z_seam_type = back + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.15mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.15mm_engineering.inst.cfg new file mode 100644 index 0000000000..627dea9332 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.15mm_engineering.inst.cfg @@ -0,0 +1,24 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +material = generic_abs +quality_type = fast +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +jerk_print = 6000 +speed_infill = =speed_print +speed_print = 30 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.15mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.15mm_visual.inst.cfg new file mode 100644 index 0000000000..d9e0c25bd3 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.15mm_visual.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = ultimaker_s8 +name = Visual +version = 4 + +[metadata] +intent_category = visual +material = generic_abs +quality_type = fast +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +speed_infill = 50 +top_bottom_thickness = 1.05 +z_seam_type = back + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.1mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.1mm_engineering.inst.cfg new file mode 100644 index 0000000000..a4e71ef413 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.1mm_engineering.inst.cfg @@ -0,0 +1,24 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +material = generic_abs +quality_type = normal +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +jerk_print = 6000 +speed_infill = =speed_print +speed_print = 30 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.1mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.1mm_visual.inst.cfg new file mode 100644 index 0000000000..2b683b2857 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.1mm_visual.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = ultimaker_s8 +name = Visual +version = 4 + +[metadata] +intent_category = visual +material = generic_abs +quality_type = normal +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +speed_infill = 50 +top_bottom_thickness = 1.05 +z_seam_type = back + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.2mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.2mm_quick.inst.cfg new file mode 100644 index 0000000000..496de761a1 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.2mm_quick.inst.cfg @@ -0,0 +1,23 @@ +[general] +definition = ultimaker_s8 +name = Quick +version = 4 + +[metadata] +intent_category = quick +material = generic_abs +quality_type = draft +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +infill_sparse_density = 15 +jerk_print = 6000 +speed_infill = =speed_print +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = 0.8 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.15mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.15mm_engineering.inst.cfg new file mode 100644 index 0000000000..e8b5a54aa6 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.15mm_engineering.inst.cfg @@ -0,0 +1,24 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +material = generic_cpe_plus +quality_type = fast +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +jerk_print = 6000 +speed_infill = =speed_print +speed_print = 30 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.1mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.1mm_engineering.inst.cfg new file mode 100644 index 0000000000..2294037548 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.1mm_engineering.inst.cfg @@ -0,0 +1,24 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +material = generic_cpe_plus +quality_type = normal +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +jerk_print = 6000 +speed_infill = =speed_print +speed_print = 30 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_cpe_0.15mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_cpe_0.15mm_engineering.inst.cfg new file mode 100644 index 0000000000..cebc44bfb4 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_cpe_0.15mm_engineering.inst.cfg @@ -0,0 +1,24 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +material = generic_cpe +quality_type = fast +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +jerk_print = 6000 +speed_infill = =speed_print +speed_print = 30 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_cpe_0.1mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_cpe_0.1mm_engineering.inst.cfg new file mode 100644 index 0000000000..f00fb55b7c --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_cpe_0.1mm_engineering.inst.cfg @@ -0,0 +1,24 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +material = generic_cpe +quality_type = normal +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +jerk_print = 6000 +speed_infill = =speed_print +speed_print = 30 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_nylon_0.15mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_nylon_0.15mm_engineering.inst.cfg new file mode 100644 index 0000000000..ad294a2926 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_nylon_0.15mm_engineering.inst.cfg @@ -0,0 +1,24 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +material = generic_nylon +quality_type = fast +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +jerk_print = 6000 +speed_infill = =speed_print +speed_print = 30 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_nylon_0.1mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_nylon_0.1mm_engineering.inst.cfg new file mode 100644 index 0000000000..7d4efabfd7 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_nylon_0.1mm_engineering.inst.cfg @@ -0,0 +1,24 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +material = generic_nylon +quality_type = normal +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +jerk_print = 6000 +speed_infill = =speed_print +speed_print = 30 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_pc_0.15mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_pc_0.15mm_engineering.inst.cfg new file mode 100644 index 0000000000..43cfd41245 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_pc_0.15mm_engineering.inst.cfg @@ -0,0 +1,24 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +material = generic_pc +quality_type = fast +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +jerk_print = 6000 +speed_infill = =speed_print +speed_print = 30 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_pc_0.1mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_pc_0.1mm_engineering.inst.cfg new file mode 100644 index 0000000000..cf136a6edb --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_pc_0.1mm_engineering.inst.cfg @@ -0,0 +1,24 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +material = generic_pc +quality_type = normal +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +jerk_print = 6000 +speed_infill = =speed_print +speed_print = 30 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_petg_0.15mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_petg_0.15mm_engineering.inst.cfg new file mode 100644 index 0000000000..5b642ed935 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_petg_0.15mm_engineering.inst.cfg @@ -0,0 +1,24 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +material = generic_petg +quality_type = fast +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +jerk_print = 6000 +speed_infill = =speed_print +speed_print = 30 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_petg_0.1mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_petg_0.1mm_engineering.inst.cfg new file mode 100644 index 0000000000..9f73af1597 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_petg_0.1mm_engineering.inst.cfg @@ -0,0 +1,24 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +material = generic_petg +quality_type = normal +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +jerk_print = 6000 +speed_infill = =speed_print +speed_print = 30 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.06mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.06mm_visual.inst.cfg new file mode 100644 index 0000000000..8cdcbab9c7 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.06mm_visual.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = ultimaker_s8 +name = Visual +version = 4 + +[metadata] +intent_category = visual +material = generic_pla +quality_type = high +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +speed_infill = 50 +top_bottom_thickness = 1.05 +z_seam_type = back + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.15mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.15mm_engineering.inst.cfg new file mode 100644 index 0000000000..a1612d1103 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.15mm_engineering.inst.cfg @@ -0,0 +1,24 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +material = generic_pla +quality_type = fast +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +jerk_print = 6000 +speed_infill = =speed_print +speed_print = 30 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.15mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.15mm_visual.inst.cfg new file mode 100644 index 0000000000..34a9b06ffd --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.15mm_visual.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = ultimaker_s8 +name = Visual +version = 4 + +[metadata] +intent_category = visual +material = generic_pla +quality_type = fast +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +speed_infill = 50 +top_bottom_thickness = 1.05 +z_seam_type = back + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.1mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.1mm_engineering.inst.cfg new file mode 100644 index 0000000000..1d5c2d882b --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.1mm_engineering.inst.cfg @@ -0,0 +1,24 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +material = generic_pla +quality_type = normal +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +jerk_print = 6000 +speed_infill = =speed_print +speed_print = 30 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.1mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.1mm_visual.inst.cfg new file mode 100644 index 0000000000..5cbc26af3e --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.1mm_visual.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = ultimaker_s8 +name = Visual +version = 4 + +[metadata] +intent_category = visual +material = generic_pla +quality_type = normal +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +speed_infill = 50 +top_bottom_thickness = 1.05 +z_seam_type = back + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.2mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.2mm_quick.inst.cfg new file mode 100644 index 0000000000..f1839e5489 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.2mm_quick.inst.cfg @@ -0,0 +1,23 @@ +[general] +definition = ultimaker_s8 +name = Quick +version = 4 + +[metadata] +intent_category = quick +material = generic_pla +quality_type = draft +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +infill_sparse_density = 15 +jerk_print = 6000 +speed_infill = =speed_print +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = 0.8 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.3mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.3mm_quick.inst.cfg new file mode 100644 index 0000000000..4d610a1898 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.3mm_quick.inst.cfg @@ -0,0 +1,28 @@ +[general] +definition = ultimaker_s8 +name = Quick +version = 4 + +[metadata] +intent_category = quick +is_experimental = True +material = generic_pla +quality_type = verydraft +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +acceleration_print = 4000 +acceleration_wall = 2000 +acceleration_wall_0 = 2000 +infill_sparse_density = 10 +jerk_print = 6000 +speed_infill = =speed_print +speed_print = 50 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = 0.8 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.06mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.06mm_visual.inst.cfg new file mode 100644 index 0000000000..0c249c48a6 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.06mm_visual.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = ultimaker_s8 +name = Visual +version = 4 + +[metadata] +intent_category = visual +material = generic_tough_pla +quality_type = high +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +speed_infill = 50 +top_bottom_thickness = 1.05 +z_seam_type = back + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.15mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.15mm_engineering.inst.cfg new file mode 100644 index 0000000000..f8b56ab423 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.15mm_engineering.inst.cfg @@ -0,0 +1,24 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +material = generic_tough_pla +quality_type = fast +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +jerk_print = 6000 +speed_infill = =speed_print +speed_print = 30 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.15mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.15mm_visual.inst.cfg new file mode 100644 index 0000000000..fd5cd368cd --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.15mm_visual.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = ultimaker_s8 +name = Visual +version = 4 + +[metadata] +intent_category = visual +material = generic_tough_pla +quality_type = fast +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +speed_infill = 50 +top_bottom_thickness = 1.05 +z_seam_type = back + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.1mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.1mm_engineering.inst.cfg new file mode 100644 index 0000000000..c726414943 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.1mm_engineering.inst.cfg @@ -0,0 +1,24 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +material = generic_tough_pla +quality_type = normal +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +jerk_print = 6000 +speed_infill = =speed_print +speed_print = 30 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.1mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.1mm_visual.inst.cfg new file mode 100644 index 0000000000..3e111fa8d6 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.1mm_visual.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = ultimaker_s8 +name = Visual +version = 4 + +[metadata] +intent_category = visual +material = generic_tough_pla +quality_type = normal +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +speed_infill = 50 +top_bottom_thickness = 1.05 +z_seam_type = back + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.2mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.2mm_quick.inst.cfg new file mode 100644 index 0000000000..e62e4a57d2 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.2mm_quick.inst.cfg @@ -0,0 +1,23 @@ +[general] +definition = ultimaker_s8 +name = Quick +version = 4 + +[metadata] +intent_category = quick +material = generic_tough_pla +quality_type = draft +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +infill_sparse_density = 15 +jerk_print = 6000 +speed_infill = =speed_print +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = 0.8 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.3mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.3mm_quick.inst.cfg new file mode 100644 index 0000000000..475c0f762f --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.3mm_quick.inst.cfg @@ -0,0 +1,28 @@ +[general] +definition = ultimaker_s8 +name = Quick +version = 4 + +[metadata] +intent_category = quick +is_experimental = True +material = generic_tough_pla +quality_type = verydraft +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +acceleration_print = 4000 +acceleration_wall = 2000 +acceleration_wall_0 = 2000 +infill_sparse_density = 10 +jerk_print = 6000 +speed_infill = =speed_print +speed_print = 50 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = 0.8 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.06mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.06mm_visual.inst.cfg new file mode 100644 index 0000000000..4be90e8f67 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.06mm_visual.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Visual +version = 4 + +[metadata] +intent_category = visual +material = ultimaker_abs +quality_type = high +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +acceleration_print = 2500 +acceleration_wall_0 = 1000 +inset_direction = inside_out +jerk_wall_0 = 4000 +max_flow_acceleration = 0.5 +speed_print = 50 +speed_roofing = =math.ceil(speed_wall*(35/50)) +speed_wall_0 = =math.ceil(speed_wall*(20/50)) +speed_wall_x = =math.ceil(speed_wall*(35/50)) +top_bottom_thickness = =max(1.2 , layer_height * 6) +z_seam_type = back + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.15mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.15mm_engineering.inst.cfg new file mode 100644 index 0000000000..9797fe41d3 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.15mm_engineering.inst.cfg @@ -0,0 +1,28 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +material = ultimaker_abs +quality_type = fast +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_sparse_density = 20 +jerk_print = 6000 +max_flow_acceleration = 1 +speed_infill = =speed_print +speed_print = 35 +speed_roofing = =speed_topbottom +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.15mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.15mm_visual.inst.cfg new file mode 100644 index 0000000000..ecb56ba36f --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.15mm_visual.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Visual +version = 4 + +[metadata] +intent_category = visual +material = ultimaker_abs +quality_type = fast +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +acceleration_print = 2500 +acceleration_wall_0 = 1000 +inset_direction = inside_out +jerk_wall_0 = 4000 +max_flow_acceleration = 0.5 +speed_print = 50 +speed_roofing = =math.ceil(speed_wall*(35/50)) +speed_wall_0 = =math.ceil(speed_wall*(20/50)) +speed_wall_x = =math.ceil(speed_wall*(35/50)) +top_bottom_thickness = =max(1.2 , layer_height * 6) +z_seam_type = back + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.1mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.1mm_engineering.inst.cfg new file mode 100644 index 0000000000..52a9310869 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.1mm_engineering.inst.cfg @@ -0,0 +1,28 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +material = ultimaker_abs +quality_type = normal +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_sparse_density = 20 +jerk_print = 6000 +max_flow_acceleration = 1 +speed_infill = =speed_print +speed_print = 35 +speed_roofing = =speed_topbottom +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.1mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.1mm_visual.inst.cfg new file mode 100644 index 0000000000..2f89d6bd82 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.1mm_visual.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Visual +version = 4 + +[metadata] +intent_category = visual +material = ultimaker_abs +quality_type = normal +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +acceleration_print = 2500 +acceleration_wall_0 = 1000 +inset_direction = inside_out +jerk_wall_0 = 4000 +max_flow_acceleration = 0.5 +speed_print = 50 +speed_roofing = =math.ceil(speed_wall*(35/50)) +speed_wall_0 = =math.ceil(speed_wall*(20/50)) +speed_wall_x = =math.ceil(speed_wall*(35/50)) +top_bottom_thickness = =max(1.2 , layer_height * 6) +z_seam_type = back + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.2mm_engineering.inst.cfg new file mode 100644 index 0000000000..475a6b5a23 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.2mm_engineering.inst.cfg @@ -0,0 +1,28 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +material = ultimaker_abs +quality_type = draft +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_sparse_density = 20 +jerk_print = 6000 +max_flow_acceleration = 1 +speed_infill = =speed_print +speed_print = 35 +speed_roofing = =speed_topbottom +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.2mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.2mm_quick.inst.cfg new file mode 100644 index 0000000000..e73e7a2799 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.2mm_quick.inst.cfg @@ -0,0 +1,27 @@ +[general] +definition = ultimaker_s8 +name = Quick +version = 4 + +[metadata] +intent_category = quick +material = ultimaker_abs +quality_type = draft +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +acceleration_wall_0 = 2000 +gradual_flow_enabled = False +gradual_infill_step_height = =4 * layer_height +gradual_infill_steps = 3 +infill_sparse_density = 40 +jerk_print = 6000 +jerk_wall_0 = 6000 +speed_print = 150 +speed_wall = =speed_print +speed_wall_0 = 40 +top_bottom_thickness = =4 * layer_height +wall_thickness = =2 * line_width + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.2mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.2mm_visual.inst.cfg new file mode 100644 index 0000000000..8026df23e3 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.2mm_visual.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Visual +version = 4 + +[metadata] +intent_category = visual +material = ultimaker_abs +quality_type = draft +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +acceleration_print = 2500 +acceleration_wall_0 = 1000 +inset_direction = inside_out +jerk_wall_0 = 4000 +max_flow_acceleration = 0.5 +speed_print = 50 +speed_roofing = =math.ceil(speed_wall*(35/50)) +speed_wall_0 = =math.ceil(speed_wall*(20/50)) +speed_wall_x = =math.ceil(speed_wall*(35/50)) +top_bottom_thickness = =max(1.2 , layer_height * 6) +z_seam_type = back + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.3mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.3mm_quick.inst.cfg new file mode 100644 index 0000000000..4c43808e35 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.3mm_quick.inst.cfg @@ -0,0 +1,27 @@ +[general] +definition = ultimaker_s8 +name = Quick +version = 4 + +[metadata] +intent_category = quick +material = ultimaker_abs +quality_type = verydraft +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +acceleration_wall_0 = 2000 +gradual_flow_enabled = False +gradual_infill_step_height = =4 * layer_height +gradual_infill_steps = 3 +infill_sparse_density = 40 +jerk_print = 6000 +jerk_wall_0 = 6000 +speed_print = 150 +speed_wall = =speed_print +speed_wall_0 = 40 +top_bottom_thickness = =4 * layer_height +wall_thickness = =2 * line_width + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.06mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.06mm_visual.inst.cfg new file mode 100644 index 0000000000..e98ca06a81 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.06mm_visual.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Visual +version = 4 + +[metadata] +intent_category = visual +material = ultimaker_petg +quality_type = high +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +acceleration_print = 2500 +acceleration_wall_0 = 1000 +inset_direction = inside_out +jerk_wall_0 = 4000 +max_flow_acceleration = 0.5 +speed_print = 50 +speed_roofing = =math.ceil(speed_wall*(35/50)) +speed_wall_0 = =math.ceil(speed_wall*(20/50)) +speed_wall_x = =math.ceil(speed_wall*(35/50)) +top_bottom_thickness = =max(1.2 , layer_height * 6) +z_seam_type = back + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.15mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.15mm_engineering.inst.cfg new file mode 100644 index 0000000000..8bf04f0207 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.15mm_engineering.inst.cfg @@ -0,0 +1,28 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +material = ultimaker_petg +quality_type = fast +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_sparse_density = 20 +jerk_print = 6000 +max_flow_acceleration = 1 +speed_infill = =speed_print +speed_print = 35 +speed_roofing = =speed_topbottom +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.15mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.15mm_visual.inst.cfg new file mode 100644 index 0000000000..45379ba328 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.15mm_visual.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Visual +version = 4 + +[metadata] +intent_category = visual +material = ultimaker_petg +quality_type = fast +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +acceleration_print = 2500 +acceleration_wall_0 = 1000 +inset_direction = inside_out +jerk_wall_0 = 4000 +max_flow_acceleration = 0.5 +speed_print = 50 +speed_roofing = =math.ceil(speed_wall*(35/50)) +speed_wall_0 = =math.ceil(speed_wall*(20/50)) +speed_wall_x = =math.ceil(speed_wall*(35/50)) +top_bottom_thickness = =max(1.2 , layer_height * 6) +z_seam_type = back + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.1mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.1mm_engineering.inst.cfg new file mode 100644 index 0000000000..56fe586532 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.1mm_engineering.inst.cfg @@ -0,0 +1,28 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +material = ultimaker_petg +quality_type = normal +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_sparse_density = 20 +jerk_print = 6000 +max_flow_acceleration = 1 +speed_infill = =speed_print +speed_print = 35 +speed_roofing = =speed_topbottom +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.1mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.1mm_visual.inst.cfg new file mode 100644 index 0000000000..3bf27bcda8 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.1mm_visual.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Visual +version = 4 + +[metadata] +intent_category = visual +material = ultimaker_petg +quality_type = normal +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +acceleration_print = 2500 +acceleration_wall_0 = 1000 +inset_direction = inside_out +jerk_wall_0 = 4000 +max_flow_acceleration = 0.5 +speed_print = 50 +speed_roofing = =math.ceil(speed_wall*(35/50)) +speed_wall_0 = =math.ceil(speed_wall*(20/50)) +speed_wall_x = =math.ceil(speed_wall*(35/50)) +top_bottom_thickness = =max(1.2 , layer_height * 6) +z_seam_type = back + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.2mm_engineering.inst.cfg new file mode 100644 index 0000000000..612a2c0c57 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.2mm_engineering.inst.cfg @@ -0,0 +1,28 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +material = ultimaker_petg +quality_type = draft +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_sparse_density = 20 +jerk_print = 6000 +max_flow_acceleration = 1 +speed_infill = =speed_print +speed_print = 35 +speed_roofing = =speed_topbottom +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.2mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.2mm_quick.inst.cfg new file mode 100644 index 0000000000..a2ad4e7dc0 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.2mm_quick.inst.cfg @@ -0,0 +1,27 @@ +[general] +definition = ultimaker_s8 +name = Quick +version = 4 + +[metadata] +intent_category = quick +material = ultimaker_petg +quality_type = draft +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +acceleration_wall_0 = 2000 +gradual_flow_enabled = False +gradual_infill_step_height = =4 * layer_height +gradual_infill_steps = 3 +infill_sparse_density = 40 +jerk_print = 6000 +jerk_wall_0 = 6000 +speed_print = 150 +speed_wall = =speed_print +speed_wall_0 = 40 +top_bottom_thickness = =4 * layer_height +wall_thickness = =2 * line_width + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.2mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.2mm_visual.inst.cfg new file mode 100644 index 0000000000..5b9e30ddd9 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.2mm_visual.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Visual +version = 4 + +[metadata] +intent_category = visual +material = ultimaker_petg +quality_type = draft +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +acceleration_print = 2500 +acceleration_wall_0 = 1000 +inset_direction = inside_out +jerk_wall_0 = 4000 +max_flow_acceleration = 0.5 +speed_print = 50 +speed_roofing = =math.ceil(speed_wall*(35/50)) +speed_wall_0 = =math.ceil(speed_wall*(20/50)) +speed_wall_x = =math.ceil(speed_wall*(35/50)) +top_bottom_thickness = =max(1.2 , layer_height * 6) +z_seam_type = back + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.3mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.3mm_quick.inst.cfg new file mode 100644 index 0000000000..b9bfb488e3 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.3mm_quick.inst.cfg @@ -0,0 +1,27 @@ +[general] +definition = ultimaker_s8 +name = Quick +version = 4 + +[metadata] +intent_category = quick +material = ultimaker_petg +quality_type = verydraft +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +acceleration_wall_0 = 2000 +gradual_flow_enabled = False +gradual_infill_step_height = =4 * layer_height +gradual_infill_steps = 3 +infill_sparse_density = 40 +jerk_print = 6000 +jerk_wall_0 = 6000 +speed_print = 150 +speed_wall = =speed_print +speed_wall_0 = 40 +top_bottom_thickness = =4 * layer_height +wall_thickness = =2 * line_width + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.06mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.06mm_visual.inst.cfg new file mode 100644 index 0000000000..f2df2c2aaf --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.06mm_visual.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Visual +version = 4 + +[metadata] +intent_category = visual +material = ultimaker_pla +quality_type = high +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +acceleration_print = 2500 +acceleration_wall_0 = 1000 +inset_direction = inside_out +jerk_wall_0 = 4000 +max_flow_acceleration = 0.5 +speed_print = 50 +speed_roofing = =math.ceil(speed_wall*(35/50)) +speed_wall_0 = =math.ceil(speed_wall*(20/50)) +speed_wall_x = =math.ceil(speed_wall*(35/50)) +top_bottom_thickness = =max(1.2 , layer_height * 6) +z_seam_type = back + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.15mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.15mm_engineering.inst.cfg new file mode 100644 index 0000000000..185eaa327e --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.15mm_engineering.inst.cfg @@ -0,0 +1,28 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +material = ultimaker_pla +quality_type = fast +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_sparse_density = 20 +jerk_print = 6000 +max_flow_acceleration = 1 +speed_infill = =speed_print +speed_print = 35 +speed_roofing = =speed_topbottom +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.15mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.15mm_visual.inst.cfg new file mode 100644 index 0000000000..909c68507a --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.15mm_visual.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Visual +version = 4 + +[metadata] +intent_category = visual +material = ultimaker_pla +quality_type = fast +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +acceleration_print = 2500 +acceleration_wall_0 = 1000 +inset_direction = inside_out +jerk_wall_0 = 4000 +max_flow_acceleration = 0.5 +speed_print = 50 +speed_roofing = =math.ceil(speed_wall*(35/50)) +speed_wall_0 = =math.ceil(speed_wall*(20/50)) +speed_wall_x = =math.ceil(speed_wall*(35/50)) +top_bottom_thickness = =max(1.2 , layer_height * 6) +z_seam_type = back + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.1mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.1mm_engineering.inst.cfg new file mode 100644 index 0000000000..7784dce4d2 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.1mm_engineering.inst.cfg @@ -0,0 +1,28 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +material = ultimaker_pla +quality_type = normal +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_sparse_density = 20 +jerk_print = 6000 +max_flow_acceleration = 1 +speed_infill = =speed_print +speed_print = 35 +speed_roofing = =speed_topbottom +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.1mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.1mm_visual.inst.cfg new file mode 100644 index 0000000000..583b1f232d --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.1mm_visual.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Visual +version = 4 + +[metadata] +intent_category = visual +material = ultimaker_pla +quality_type = normal +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +acceleration_print = 2500 +acceleration_wall_0 = 1000 +inset_direction = inside_out +jerk_wall_0 = 4000 +max_flow_acceleration = 0.5 +speed_print = 50 +speed_roofing = =math.ceil(speed_wall*(35/50)) +speed_wall_0 = =math.ceil(speed_wall*(20/50)) +speed_wall_x = =math.ceil(speed_wall*(35/50)) +top_bottom_thickness = =max(1.2 , layer_height * 6) +z_seam_type = back + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.2mm_engineering.inst.cfg new file mode 100644 index 0000000000..a75357f6c0 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.2mm_engineering.inst.cfg @@ -0,0 +1,28 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +material = ultimaker_pla +quality_type = draft +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_sparse_density = 20 +jerk_print = 6000 +max_flow_acceleration = 1 +speed_infill = =speed_print +speed_print = 35 +speed_roofing = =speed_topbottom +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.2mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.2mm_quick.inst.cfg new file mode 100644 index 0000000000..8b31cd621b --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.2mm_quick.inst.cfg @@ -0,0 +1,27 @@ +[general] +definition = ultimaker_s8 +name = Quick +version = 4 + +[metadata] +intent_category = quick +material = ultimaker_pla +quality_type = draft +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +acceleration_wall_0 = 2000 +gradual_flow_enabled = False +gradual_infill_step_height = =4 * layer_height +gradual_infill_steps = 3 +infill_sparse_density = 40 +jerk_print = 6000 +jerk_wall_0 = 6000 +speed_print = 150 +speed_wall = =speed_print +speed_wall_0 = 40 +top_bottom_thickness = =4 * layer_height +wall_thickness = =2 * line_width + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.2mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.2mm_visual.inst.cfg new file mode 100644 index 0000000000..4f74741250 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.2mm_visual.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Visual +version = 4 + +[metadata] +intent_category = visual +material = ultimaker_pla +quality_type = draft +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +acceleration_print = 2500 +acceleration_wall_0 = 1000 +inset_direction = inside_out +jerk_wall_0 = 4000 +max_flow_acceleration = 0.5 +speed_print = 50 +speed_roofing = =math.ceil(speed_wall*(35/50)) +speed_wall_0 = =math.ceil(speed_wall*(20/50)) +speed_wall_x = =math.ceil(speed_wall*(35/50)) +top_bottom_thickness = =max(1.2 , layer_height * 6) +z_seam_type = back + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.3mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.3mm_quick.inst.cfg new file mode 100644 index 0000000000..f5aa30497e --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.3mm_quick.inst.cfg @@ -0,0 +1,27 @@ +[general] +definition = ultimaker_s8 +name = Quick +version = 4 + +[metadata] +intent_category = quick +material = ultimaker_pla +quality_type = verydraft +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +acceleration_wall_0 = 2000 +gradual_flow_enabled = False +gradual_infill_step_height = =4 * layer_height +gradual_infill_steps = 3 +infill_sparse_density = 40 +jerk_print = 6000 +jerk_wall_0 = 6000 +speed_print = 150 +speed_wall = =speed_print +speed_wall_0 = 40 +top_bottom_thickness = =4 * layer_height +wall_thickness = =2 * line_width + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.06mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.06mm_visual.inst.cfg new file mode 100644 index 0000000000..0976120afb --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.06mm_visual.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Visual +version = 4 + +[metadata] +intent_category = visual +material = ultimaker_tough_pla +quality_type = high +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +acceleration_print = 2500 +acceleration_wall_0 = 1000 +inset_direction = inside_out +jerk_wall_0 = 4000 +max_flow_acceleration = 0.5 +speed_print = 50 +speed_roofing = =math.ceil(speed_wall*(35/50)) +speed_wall_0 = =math.ceil(speed_wall*(20/50)) +speed_wall_x = =math.ceil(speed_wall*(35/50)) +top_bottom_thickness = =max(1.2 , layer_height * 6) +z_seam_type = back + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.15mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.15mm_engineering.inst.cfg new file mode 100644 index 0000000000..f4473f02e2 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.15mm_engineering.inst.cfg @@ -0,0 +1,28 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +material = ultimaker_tough_pla +quality_type = fast +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_sparse_density = 20 +jerk_print = 6000 +max_flow_acceleration = 1 +speed_infill = =speed_print +speed_print = 35 +speed_roofing = =speed_topbottom +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.15mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.15mm_visual.inst.cfg new file mode 100644 index 0000000000..ebe93b0146 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.15mm_visual.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Visual +version = 4 + +[metadata] +intent_category = visual +material = ultimaker_tough_pla +quality_type = fast +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +acceleration_print = 2500 +acceleration_wall_0 = 1000 +inset_direction = inside_out +jerk_wall_0 = 4000 +max_flow_acceleration = 0.5 +speed_print = 50 +speed_roofing = =math.ceil(speed_wall*(35/50)) +speed_wall_0 = =math.ceil(speed_wall*(20/50)) +speed_wall_x = =math.ceil(speed_wall*(35/50)) +top_bottom_thickness = =max(1.2 , layer_height * 6) +z_seam_type = back + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.1mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.1mm_engineering.inst.cfg new file mode 100644 index 0000000000..cf45040685 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.1mm_engineering.inst.cfg @@ -0,0 +1,28 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +material = ultimaker_tough_pla +quality_type = normal +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_sparse_density = 20 +jerk_print = 6000 +max_flow_acceleration = 1 +speed_infill = =speed_print +speed_print = 35 +speed_roofing = =speed_topbottom +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.1mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.1mm_visual.inst.cfg new file mode 100644 index 0000000000..bb4c50b3b4 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.1mm_visual.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Visual +version = 4 + +[metadata] +intent_category = visual +material = ultimaker_tough_pla +quality_type = normal +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +acceleration_print = 2500 +acceleration_wall_0 = 1000 +inset_direction = inside_out +jerk_wall_0 = 4000 +max_flow_acceleration = 0.5 +speed_print = 50 +speed_roofing = =math.ceil(speed_wall*(35/50)) +speed_wall_0 = =math.ceil(speed_wall*(20/50)) +speed_wall_x = =math.ceil(speed_wall*(35/50)) +top_bottom_thickness = =max(1.2 , layer_height * 6) +z_seam_type = back + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.2mm_engineering.inst.cfg new file mode 100644 index 0000000000..da99137acb --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.2mm_engineering.inst.cfg @@ -0,0 +1,28 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +material = ultimaker_tough_pla +quality_type = draft +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_sparse_density = 20 +jerk_print = 6000 +max_flow_acceleration = 1 +speed_infill = =speed_print +speed_print = 35 +speed_roofing = =speed_topbottom +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.2mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.2mm_quick.inst.cfg new file mode 100644 index 0000000000..45597eaef1 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.2mm_quick.inst.cfg @@ -0,0 +1,27 @@ +[general] +definition = ultimaker_s8 +name = Quick +version = 4 + +[metadata] +intent_category = quick +material = ultimaker_tough_pla +quality_type = draft +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +acceleration_wall_0 = 2000 +gradual_flow_enabled = False +gradual_infill_step_height = =4 * layer_height +gradual_infill_steps = 3 +infill_sparse_density = 40 +jerk_print = 6000 +jerk_wall_0 = 6000 +speed_print = 150 +speed_wall = =speed_print +speed_wall_0 = 40 +top_bottom_thickness = =4 * layer_height +wall_thickness = =2 * line_width + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.2mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.2mm_visual.inst.cfg new file mode 100644 index 0000000000..f5fb35aa99 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.2mm_visual.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Visual +version = 4 + +[metadata] +intent_category = visual +material = ultimaker_tough_pla +quality_type = draft +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +acceleration_print = 2500 +acceleration_wall_0 = 1000 +inset_direction = inside_out +jerk_wall_0 = 4000 +max_flow_acceleration = 0.5 +speed_print = 50 +speed_roofing = =math.ceil(speed_wall*(35/50)) +speed_wall_0 = =math.ceil(speed_wall*(20/50)) +speed_wall_x = =math.ceil(speed_wall*(35/50)) +top_bottom_thickness = =max(1.2 , layer_height * 6) +z_seam_type = back + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.3mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.3mm_quick.inst.cfg new file mode 100644 index 0000000000..72e94a6cae --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.3mm_quick.inst.cfg @@ -0,0 +1,27 @@ +[general] +definition = ultimaker_s8 +name = Quick +version = 4 + +[metadata] +intent_category = quick +material = ultimaker_tough_pla +quality_type = verydraft +setting_version = 25 +type = intent +variant = AA 0.4 + +[values] +acceleration_wall_0 = 2000 +gradual_flow_enabled = False +gradual_infill_step_height = =4 * layer_height +gradual_infill_steps = 3 +infill_sparse_density = 40 +jerk_print = 6000 +jerk_wall_0 = 6000 +speed_print = 150 +speed_wall = =speed_print +speed_wall_0 = 40 +top_bottom_thickness = =4 * layer_height +wall_thickness = =2 * line_width + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.2mm_engineering.inst.cfg new file mode 100644 index 0000000000..3ef6e28604 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.2mm_engineering.inst.cfg @@ -0,0 +1,28 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +material = ultimaker_abs +quality_type = draft +setting_version = 25 +type = intent +variant = AA 0.8 + +[values] +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_sparse_density = 20 +jerk_print = 6000 +max_flow_acceleration = 1 +speed_infill = =speed_print +speed_print = 35 +speed_roofing = =speed_topbottom +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.2mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.2mm_quick.inst.cfg new file mode 100644 index 0000000000..11743417f6 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.2mm_quick.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Quick +version = 4 + +[metadata] +intent_category = quick +material = ultimaker_abs +quality_type = draft +setting_version = 25 +type = intent +variant = AA 0.8 + +[values] +acceleration_wall_0 = 2000 +gradual_flow_enabled = False +gradual_infill_step_height = =4 * layer_height +gradual_infill_steps = 3 +infill_sparse_density = 40 +jerk_print = 6000 +jerk_wall_0 = 6000 +speed_wall = =speed_print +speed_wall_0 = 40 +top_bottom_thickness = =4 * layer_height +wall_thickness = =wall_line_width_0 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.2mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.2mm_visual.inst.cfg new file mode 100644 index 0000000000..62ab9dda69 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.2mm_visual.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Visual +version = 4 + +[metadata] +intent_category = visual +material = ultimaker_abs +quality_type = draft +setting_version = 25 +type = intent +variant = AA 0.8 + +[values] +acceleration_print = 2500 +acceleration_wall_0 = 1000 +inset_direction = inside_out +jerk_wall_0 = 4000 +max_flow_acceleration = 0.5 +speed_print = 50 +speed_roofing = =math.ceil(speed_wall*(35/50)) +speed_wall_0 = =math.ceil(speed_wall*(20/50)) +speed_wall_x = =math.ceil(speed_wall*(35/50)) +top_bottom_thickness = =max(1.2 , layer_height * 6) +z_seam_type = back + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.3mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.3mm_quick.inst.cfg new file mode 100644 index 0000000000..87c2f3b6c7 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.3mm_quick.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Quick +version = 4 + +[metadata] +intent_category = quick +material = ultimaker_abs +quality_type = verydraft +setting_version = 25 +type = intent +variant = AA 0.8 + +[values] +acceleration_wall_0 = 2000 +gradual_flow_enabled = False +gradual_infill_step_height = =4 * layer_height +gradual_infill_steps = 3 +infill_sparse_density = 40 +jerk_print = 6000 +jerk_wall_0 = 6000 +speed_wall = =speed_print +speed_wall_0 = 40 +top_bottom_thickness = =4 * layer_height +wall_thickness = =wall_line_width_0 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.4mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.4mm_quick.inst.cfg new file mode 100644 index 0000000000..a71c7a3c89 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.4mm_quick.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Quick +version = 4 + +[metadata] +intent_category = quick +material = ultimaker_abs +quality_type = superdraft +setting_version = 25 +type = intent +variant = AA 0.8 + +[values] +acceleration_wall_0 = 2000 +gradual_flow_enabled = False +gradual_infill_step_height = =4 * layer_height +gradual_infill_steps = 3 +infill_sparse_density = 40 +jerk_print = 6000 +jerk_wall_0 = 6000 +speed_wall = =speed_print +speed_wall_0 = 40 +top_bottom_thickness = =4 * layer_height +wall_thickness = =wall_line_width_0 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.2mm_engineering.inst.cfg new file mode 100644 index 0000000000..73c88f1d13 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.2mm_engineering.inst.cfg @@ -0,0 +1,28 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +material = ultimaker_petg +quality_type = draft +setting_version = 25 +type = intent +variant = AA 0.8 + +[values] +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_sparse_density = 20 +jerk_print = 6000 +max_flow_acceleration = 1 +speed_infill = =speed_print +speed_print = 35 +speed_roofing = =speed_topbottom +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.2mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.2mm_quick.inst.cfg new file mode 100644 index 0000000000..5477607a3e --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.2mm_quick.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Quick +version = 4 + +[metadata] +intent_category = quick +material = ultimaker_petg +quality_type = draft +setting_version = 25 +type = intent +variant = AA 0.8 + +[values] +acceleration_wall_0 = 2000 +gradual_flow_enabled = False +gradual_infill_step_height = =4 * layer_height +gradual_infill_steps = 3 +infill_sparse_density = 40 +jerk_print = 6000 +jerk_wall_0 = 6000 +speed_wall = =speed_print +speed_wall_0 = 40 +top_bottom_thickness = =4 * layer_height +wall_thickness = =wall_line_width_0 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.2mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.2mm_visual.inst.cfg new file mode 100644 index 0000000000..1d277b1f7c --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.2mm_visual.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Visual +version = 4 + +[metadata] +intent_category = visual +material = ultimaker_petg +quality_type = draft +setting_version = 25 +type = intent +variant = AA 0.8 + +[values] +acceleration_print = 2500 +acceleration_wall_0 = 1000 +inset_direction = inside_out +jerk_wall_0 = 4000 +max_flow_acceleration = 0.5 +speed_print = 50 +speed_roofing = =math.ceil(speed_wall*(35/50)) +speed_wall_0 = =math.ceil(speed_wall*(20/50)) +speed_wall_x = =math.ceil(speed_wall*(35/50)) +top_bottom_thickness = =max(1.2 , layer_height * 6) +z_seam_type = back + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.3mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.3mm_quick.inst.cfg new file mode 100644 index 0000000000..06c257bb6c --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.3mm_quick.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Quick +version = 4 + +[metadata] +intent_category = quick +material = ultimaker_petg +quality_type = verydraft +setting_version = 25 +type = intent +variant = AA 0.8 + +[values] +acceleration_wall_0 = 2000 +gradual_flow_enabled = False +gradual_infill_step_height = =4 * layer_height +gradual_infill_steps = 3 +infill_sparse_density = 40 +jerk_print = 6000 +jerk_wall_0 = 6000 +speed_wall = =speed_print +speed_wall_0 = 40 +top_bottom_thickness = =4 * layer_height +wall_thickness = =wall_line_width_0 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.4mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.4mm_quick.inst.cfg new file mode 100644 index 0000000000..7c01bb687e --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.4mm_quick.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Quick +version = 4 + +[metadata] +intent_category = quick +material = ultimaker_petg +quality_type = superdraft +setting_version = 25 +type = intent +variant = AA 0.8 + +[values] +acceleration_wall_0 = 2000 +gradual_flow_enabled = False +gradual_infill_step_height = =4 * layer_height +gradual_infill_steps = 3 +infill_sparse_density = 40 +jerk_print = 6000 +jerk_wall_0 = 6000 +speed_wall = =speed_print +speed_wall_0 = 40 +top_bottom_thickness = =4 * layer_height +wall_thickness = =wall_line_width_0 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.2mm_engineering.inst.cfg new file mode 100644 index 0000000000..4c6f2b24fb --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.2mm_engineering.inst.cfg @@ -0,0 +1,28 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +material = ultimaker_pla +quality_type = draft +setting_version = 25 +type = intent +variant = AA 0.8 + +[values] +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_sparse_density = 20 +jerk_print = 6000 +max_flow_acceleration = 1 +speed_infill = =speed_print +speed_print = 35 +speed_roofing = =speed_topbottom +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.2mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.2mm_quick.inst.cfg new file mode 100644 index 0000000000..04d6457eec --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.2mm_quick.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Quick +version = 4 + +[metadata] +intent_category = quick +material = ultimaker_pla +quality_type = draft +setting_version = 25 +type = intent +variant = AA 0.8 + +[values] +acceleration_wall_0 = 2000 +gradual_flow_enabled = False +gradual_infill_step_height = =4 * layer_height +gradual_infill_steps = 3 +infill_sparse_density = 40 +jerk_print = 6000 +jerk_wall_0 = 6000 +speed_wall = =speed_print +speed_wall_0 = 40 +top_bottom_thickness = =4 * layer_height +wall_thickness = =wall_line_width_0 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.2mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.2mm_visual.inst.cfg new file mode 100644 index 0000000000..128e79b7e0 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.2mm_visual.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Visual +version = 4 + +[metadata] +intent_category = visual +material = ultimaker_pla +quality_type = draft +setting_version = 25 +type = intent +variant = AA 0.8 + +[values] +acceleration_print = 2500 +acceleration_wall_0 = 1000 +inset_direction = inside_out +jerk_wall_0 = 4000 +max_flow_acceleration = 0.5 +speed_print = 50 +speed_roofing = =math.ceil(speed_wall*(35/50)) +speed_wall_0 = =math.ceil(speed_wall*(20/50)) +speed_wall_x = =math.ceil(speed_wall*(35/50)) +top_bottom_thickness = =max(1.2 , layer_height * 6) +z_seam_type = back + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.3mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.3mm_quick.inst.cfg new file mode 100644 index 0000000000..7314a059f5 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.3mm_quick.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Quick +version = 4 + +[metadata] +intent_category = quick +material = ultimaker_pla +quality_type = verydraft +setting_version = 25 +type = intent +variant = AA 0.8 + +[values] +acceleration_wall_0 = 2000 +gradual_flow_enabled = False +gradual_infill_step_height = =4 * layer_height +gradual_infill_steps = 3 +infill_sparse_density = 40 +jerk_print = 6000 +jerk_wall_0 = 6000 +speed_wall = =speed_print +speed_wall_0 = 40 +top_bottom_thickness = =4 * layer_height +wall_thickness = =wall_line_width_0 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.4mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.4mm_quick.inst.cfg new file mode 100644 index 0000000000..053edd9770 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.4mm_quick.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Quick +version = 4 + +[metadata] +intent_category = quick +material = ultimaker_pla +quality_type = superdraft +setting_version = 25 +type = intent +variant = AA 0.8 + +[values] +acceleration_wall_0 = 2000 +gradual_flow_enabled = False +gradual_infill_step_height = =4 * layer_height +gradual_infill_steps = 3 +infill_sparse_density = 40 +jerk_print = 6000 +jerk_wall_0 = 6000 +speed_wall = =speed_print +speed_wall_0 = 40 +top_bottom_thickness = =4 * layer_height +wall_thickness = =wall_line_width_0 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.2mm_engineering.inst.cfg new file mode 100644 index 0000000000..fd78e3681b --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.2mm_engineering.inst.cfg @@ -0,0 +1,28 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +material = ultimaker_tough_pla +quality_type = draft +setting_version = 25 +type = intent +variant = AA 0.8 + +[values] +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_sparse_density = 20 +jerk_print = 6000 +max_flow_acceleration = 1 +speed_infill = =speed_print +speed_print = 35 +speed_roofing = =speed_topbottom +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.2mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.2mm_quick.inst.cfg new file mode 100644 index 0000000000..9079d94e43 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.2mm_quick.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Quick +version = 4 + +[metadata] +intent_category = quick +material = ultimaker_tough_pla +quality_type = draft +setting_version = 25 +type = intent +variant = AA 0.8 + +[values] +acceleration_wall_0 = 2000 +gradual_flow_enabled = False +gradual_infill_step_height = =4 * layer_height +gradual_infill_steps = 3 +infill_sparse_density = 40 +jerk_print = 6000 +jerk_wall_0 = 6000 +speed_wall = =speed_print +speed_wall_0 = 40 +top_bottom_thickness = =4 * layer_height +wall_thickness = =wall_line_width_0 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.2mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.2mm_visual.inst.cfg new file mode 100644 index 0000000000..19a216bc11 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.2mm_visual.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Visual +version = 4 + +[metadata] +intent_category = visual +material = ultimaker_tough_pla +quality_type = draft +setting_version = 25 +type = intent +variant = AA 0.8 + +[values] +acceleration_print = 2500 +acceleration_wall_0 = 1000 +inset_direction = inside_out +jerk_wall_0 = 4000 +max_flow_acceleration = 0.5 +speed_print = 50 +speed_roofing = =math.ceil(speed_wall*(35/50)) +speed_wall_0 = =math.ceil(speed_wall*(20/50)) +speed_wall_x = =math.ceil(speed_wall*(35/50)) +top_bottom_thickness = =max(1.2 , layer_height * 6) +z_seam_type = back + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.3mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.3mm_quick.inst.cfg new file mode 100644 index 0000000000..8580049ba3 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.3mm_quick.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Quick +version = 4 + +[metadata] +intent_category = quick +material = ultimaker_tough_pla +quality_type = verydraft +setting_version = 25 +type = intent +variant = AA 0.8 + +[values] +acceleration_wall_0 = 2000 +gradual_flow_enabled = False +gradual_infill_step_height = =4 * layer_height +gradual_infill_steps = 3 +infill_sparse_density = 40 +jerk_print = 6000 +jerk_wall_0 = 6000 +speed_wall = =speed_print +speed_wall_0 = 40 +top_bottom_thickness = =4 * layer_height +wall_thickness = =wall_line_width_0 + diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.4mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.4mm_quick.inst.cfg new file mode 100644 index 0000000000..54ae19e81b --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.4mm_quick.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Quick +version = 4 + +[metadata] +intent_category = quick +material = ultimaker_tough_pla +quality_type = superdraft +setting_version = 25 +type = intent +variant = AA 0.8 + +[values] +acceleration_wall_0 = 2000 +gradual_flow_enabled = False +gradual_infill_step_height = =4 * layer_height +gradual_infill_steps = 3 +infill_sparse_density = 40 +jerk_print = 6000 +jerk_wall_0 = 6000 +speed_wall = =speed_print +speed_wall_0 = 40 +top_bottom_thickness = =4 * layer_height +wall_thickness = =wall_line_width_0 + diff --git a/resources/intent/ultimaker_s8/um_s8_cc0.4_nylon-cf-slide_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_cc0.4_nylon-cf-slide_0.2mm_engineering.inst.cfg new file mode 100644 index 0000000000..cbd6179e03 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_cc0.4_nylon-cf-slide_0.2mm_engineering.inst.cfg @@ -0,0 +1,25 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +is_experimental = True +material = generic_nylon-cf-slide +quality_type = draft +setting_version = 25 +type = intent +variant = CC 0.4 + +[values] +jerk_print = 6000 +speed_infill = =speed_print +speed_print = 30 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_cc0.4_petcf_0.15mm_annealing.inst.cfg b/resources/intent/ultimaker_s8/um_s8_cc0.4_petcf_0.15mm_annealing.inst.cfg new file mode 100644 index 0000000000..25c6d228ef --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_cc0.4_petcf_0.15mm_annealing.inst.cfg @@ -0,0 +1,29 @@ +[general] +definition = ultimaker_s8 +name = Annealing +version = 4 + +[metadata] +intent_category = annealing +material = generic_petcf +quality_type = fast +setting_version = 25 +type = intent +variant = CC 0.4 + +[values] +infill_sparse_density = 100 +jerk_print = 6000 +material_shrinkage_percentage_xy = 100.3 +material_shrinkage_percentage_z = 100.9 +speed_infill = =speed_print +speed_layer_0 = 20 +speed_print = 25 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +support_enable = True +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_cc0.4_petcf_0.15mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_cc0.4_petcf_0.15mm_engineering.inst.cfg new file mode 100644 index 0000000000..447b840f13 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_cc0.4_petcf_0.15mm_engineering.inst.cfg @@ -0,0 +1,24 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +material = generic_petcf +quality_type = fast +setting_version = 25 +type = intent +variant = CC 0.4 + +[values] +jerk_print = 6000 +speed_infill = =speed_print +speed_print = 25 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_cc0.4_petcf_0.2mm_annealing.inst.cfg b/resources/intent/ultimaker_s8/um_s8_cc0.4_petcf_0.2mm_annealing.inst.cfg new file mode 100644 index 0000000000..b7955ffb09 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_cc0.4_petcf_0.2mm_annealing.inst.cfg @@ -0,0 +1,29 @@ +[general] +definition = ultimaker_s8 +name = Annealing +version = 4 + +[metadata] +intent_category = annealing +material = generic_petcf +quality_type = draft +setting_version = 25 +type = intent +variant = CC 0.4 + +[values] +infill_sparse_density = 100 +jerk_print = 6000 +material_shrinkage_percentage_xy = 100.3 +material_shrinkage_percentage_z = 100.9 +speed_infill = =speed_print +speed_layer_0 = 20 +speed_print = 20 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +support_enable = True +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_cc0.4_petcf_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_cc0.4_petcf_0.2mm_engineering.inst.cfg new file mode 100644 index 0000000000..a15ad98591 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_cc0.4_petcf_0.2mm_engineering.inst.cfg @@ -0,0 +1,24 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +material = generic_petcf +quality_type = draft +setting_version = 25 +type = intent +variant = CC 0.4 + +[values] +jerk_print = 6000 +speed_infill = =speed_print +speed_print = 20 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_cc0.6_nylon-cf-slide_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_cc0.6_nylon-cf-slide_0.2mm_engineering.inst.cfg new file mode 100644 index 0000000000..5980618e92 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_cc0.6_nylon-cf-slide_0.2mm_engineering.inst.cfg @@ -0,0 +1,24 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +material = generic_nylon-cf-slide +quality_type = draft +setting_version = 25 +type = intent +variant = CC 0.6 + +[values] +jerk_print = 6000 +speed_infill = =speed_print +speed_print = 30 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_cc0.6_petcf_0.15mm_annealing.inst.cfg b/resources/intent/ultimaker_s8/um_s8_cc0.6_petcf_0.15mm_annealing.inst.cfg new file mode 100644 index 0000000000..31d26798df --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_cc0.6_petcf_0.15mm_annealing.inst.cfg @@ -0,0 +1,29 @@ +[general] +definition = ultimaker_s8 +name = Annealing +version = 4 + +[metadata] +intent_category = annealing +material = generic_petcf +quality_type = fast +setting_version = 25 +type = intent +variant = CC 0.6 + +[values] +infill_sparse_density = 100 +jerk_print = 6000 +material_shrinkage_percentage_xy = 100.3 +material_shrinkage_percentage_z = 100.9 +speed_infill = =speed_print +speed_layer_0 = 20 +speed_print = 25 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +support_enable = True +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_cc0.6_petcf_0.15mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_cc0.6_petcf_0.15mm_engineering.inst.cfg new file mode 100644 index 0000000000..cd645dc5fc --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_cc0.6_petcf_0.15mm_engineering.inst.cfg @@ -0,0 +1,24 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +material = generic_petcf +quality_type = fast +setting_version = 25 +type = intent +variant = CC 0.6 + +[values] +jerk_print = 6000 +speed_infill = =speed_print +speed_print = 25 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_cc0.6_petcf_0.2mm_annealing.inst.cfg b/resources/intent/ultimaker_s8/um_s8_cc0.6_petcf_0.2mm_annealing.inst.cfg new file mode 100644 index 0000000000..285e012e20 --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_cc0.6_petcf_0.2mm_annealing.inst.cfg @@ -0,0 +1,29 @@ +[general] +definition = ultimaker_s8 +name = Annealing +version = 4 + +[metadata] +intent_category = annealing +material = generic_petcf +quality_type = draft +setting_version = 25 +type = intent +variant = CC 0.6 + +[values] +infill_sparse_density = 100 +jerk_print = 6000 +material_shrinkage_percentage_xy = 100.3 +material_shrinkage_percentage_z = 100.9 +speed_infill = =speed_print +speed_layer_0 = 20 +speed_print = 25 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +support_enable = True +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/intent/ultimaker_s8/um_s8_cc0.6_petcf_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_cc0.6_petcf_0.2mm_engineering.inst.cfg new file mode 100644 index 0000000000..e5d63f5a4e --- /dev/null +++ b/resources/intent/ultimaker_s8/um_s8_cc0.6_petcf_0.2mm_engineering.inst.cfg @@ -0,0 +1,24 @@ +[general] +definition = ultimaker_s8 +name = Accurate +version = 4 + +[metadata] +intent_category = engineering +material = generic_petcf +quality_type = draft +setting_version = 25 +type = intent +variant = CC 0.6 + +[values] +jerk_print = 6000 +speed_infill = =speed_print +speed_print = 25 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 3 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.25_abs_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.25_abs_0.1mm.inst.cfg new file mode 100644 index 0000000000..8c1f9d4996 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.25_abs_0.1mm.inst.cfg @@ -0,0 +1,22 @@ +[general] +definition = ultimaker_s8 +name = Fine +version = 4 + +[metadata] +material = generic_abs +quality_type = normal +setting_version = 25 +type = quality +variant = AA 0.25 +weight = 0 + +[values] +cool_fan_speed_0 = 0 +material_print_temperature = =default_material_print_temperature - 20 +speed_topbottom = =math.ceil(speed_print * 30 / 55) +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.25_cpe_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.25_cpe_0.1mm.inst.cfg new file mode 100644 index 0000000000..787a96a1e0 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.25_cpe_0.1mm.inst.cfg @@ -0,0 +1,23 @@ +[general] +definition = ultimaker_s8 +name = Fine +version = 4 + +[metadata] +material = generic_cpe +quality_type = normal +setting_version = 25 +type = quality +variant = AA 0.25 +weight = 0 + +[values] +material_print_temperature = =default_material_print_temperature - 15 +speed_infill = =math.ceil(speed_print * 40 / 55) +speed_topbottom = =math.ceil(speed_print * 30 / 55) +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height +top_bottom_thickness = 0.8 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.25_nylon_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.25_nylon_0.1mm.inst.cfg new file mode 100644 index 0000000000..0174c2daa0 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.25_nylon_0.1mm.inst.cfg @@ -0,0 +1,30 @@ +[general] +definition = ultimaker_s8 +name = Fine +version = 4 + +[metadata] +material = generic_nylon +quality_type = normal +setting_version = 25 +type = quality +variant = AA 0.25 +weight = 0 + +[values] +machine_nozzle_cool_down_speed = 0.9 +machine_nozzle_heat_up_speed = 1.4 +material_print_temperature = =default_material_print_temperature - 20 +ooze_shield_angle = 40 +raft_airgap = 0.4 +speed_print = 70 +speed_topbottom = =math.ceil(speed_print * 30 / 70) +speed_wall = =math.ceil(speed_print * 30 / 70) +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height +switch_extruder_prime_speed = 30 +switch_extruder_retraction_amount = 30 +switch_extruder_retraction_speeds = 40 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.25_pc_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.25_pc_0.1mm.inst.cfg new file mode 100644 index 0000000000..e9482a60cc --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.25_pc_0.1mm.inst.cfg @@ -0,0 +1,41 @@ +[general] +definition = ultimaker_s8 +name = Fine - Experimental +version = 4 + +[metadata] +is_experimental = True +material = generic_pc +quality_type = normal +setting_version = 25 +type = quality +variant = AA 0.25 +weight = 0 + +[values] +brim_width = 20 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_wipe_dist = 0.1 +machine_min_cool_heat_time_window = 15 +material_print_temperature = =default_material_print_temperature - 10 +multiple_mesh_overlap = 0 +ooze_shield_angle = 40 +prime_tower_enable = True +prime_tower_wipe_enabled = True +raft_airgap = 0.25 +retraction_hop = 2 +retraction_hop_only_when_collides = True +speed_print = 50 +speed_topbottom = =math.ceil(speed_print * 25 / 50) +speed_wall = =math.ceil(speed_print * 40 / 50) +speed_wall_0 = =math.ceil(speed_wall * 25 / 40) +support_bottom_distance = =support_z_distance +support_interface_density = 87.5 +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 35 +wall_0_inset = 0 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.25_petg_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.25_petg_0.1mm.inst.cfg new file mode 100644 index 0000000000..f08fea0ed9 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.25_petg_0.1mm.inst.cfg @@ -0,0 +1,23 @@ +[general] +definition = ultimaker_s8 +name = Fine +version = 4 + +[metadata] +material = generic_petg +quality_type = normal +setting_version = 25 +type = quality +variant = AA 0.25 +weight = 0 + +[values] +material_print_temperature = =default_material_print_temperature - 15 +speed_infill = =math.ceil(speed_print * 40 / 55) +speed_topbottom = =math.ceil(speed_print * 30 / 55) +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height +top_bottom_thickness = 0.8 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.25_pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.25_pla_0.1mm.inst.cfg new file mode 100644 index 0000000000..65c9eda80c --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.25_pla_0.1mm.inst.cfg @@ -0,0 +1,32 @@ +[general] +definition = ultimaker_s8 +name = Fine +version = 4 + +[metadata] +material = generic_pla +quality_type = normal +setting_version = 25 +type = quality +variant = AA 0.25 +weight = 0 + +[values] +brim_width = 8 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +machine_nozzle_cool_down_speed = 0.9 +machine_nozzle_heat_up_speed = 1.4 +material_print_temperature = =default_material_print_temperature - 10 +retraction_hop = 0.2 +speed_print = 30 +speed_wall = =math.ceil(speed_print * 25 / 30) +speed_wall_0 = =math.ceil(speed_print * 20 / 30) +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height +top_bottom_thickness = 0.72 +travel_avoid_distance = 0.4 +wall_0_inset = 0.015 +wall_0_wipe_dist = 0.25 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.25_pp_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.25_pp_0.1mm.inst.cfg new file mode 100644 index 0000000000..72d14662b7 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.25_pp_0.1mm.inst.cfg @@ -0,0 +1,46 @@ +[general] +definition = ultimaker_s8 +name = Fine - Experimental +version = 4 + +[metadata] +is_experimental = True +material = generic_pp +quality_type = normal +setting_version = 25 +type = quality +variant = AA 0.25 +weight = 0 + +[values] +brim_width = 10 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral' +infill_wipe_dist = 0.1 +machine_min_cool_heat_time_window = 15 +material_final_print_temperature = =material_print_temperature - 10 +material_initial_print_temperature = =material_print_temperature - 10 +material_print_temperature = =default_material_print_temperature - 2 +multiple_mesh_overlap = 0 +prime_tower_enable = False +prime_tower_size = 16 +prime_tower_wipe_enabled = True +retraction_count_max = 15 +retraction_extra_prime_amount = 0.2 +retraction_hop = 2 +retraction_hop_only_when_collides = True +retraction_prime_speed = 15 +speed_print = 25 +speed_wall = =math.ceil(speed_print * 25 / 25) +speed_wall_0 = =math.ceil(speed_wall * 25 / 25) +support_angle = 50 +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 35 +top_bottom_thickness = 1 +travel_avoid_distance = 3 +wall_0_inset = 0 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.25_tough-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.25_tough-pla_0.1mm.inst.cfg new file mode 100644 index 0000000000..9ef20faf9f --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.25_tough-pla_0.1mm.inst.cfg @@ -0,0 +1,31 @@ +[general] +definition = ultimaker_s8 +name = Fine +version = 4 + +[metadata] +material = generic_tough_pla +quality_type = normal +setting_version = 25 +type = quality +variant = AA 0.25 +weight = 0 + +[values] +brim_width = 8 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +machine_nozzle_cool_down_speed = 0.9 +machine_nozzle_heat_up_speed = 1.4 +material_print_temperature = =default_material_print_temperature - 5 +speed_print = 30 +speed_topbottom = =math.ceil(speed_print * 20 / 30) +speed_wall = =math.ceil(speed_print * 25 / 30) +speed_wall_0 = =math.ceil(speed_print * 20 / 30) +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height +top_bottom_thickness = 0.72 +wall_0_inset = 0.015 +wall_0_wipe_dist = 0.25 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.25_um-abs_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.25_um-abs_0.1mm.inst.cfg new file mode 100644 index 0000000000..56b89939e9 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.25_um-abs_0.1mm.inst.cfg @@ -0,0 +1,72 @@ +[general] +definition = ultimaker_s8 +name = Fine +version = 4 + +[metadata] +material = ultimaker_abs +quality_type = normal +setting_version = 25 +type = quality +variant = AA 0.25 +weight = 0 + +[values] +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_fan_speed_0 = 0 +cool_min_layer_time = 4 +gradual_flow_discretisation_step_size = 0.2 +gradual_flow_enabled = True +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) * 200 +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) * 200 +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.8 +max_flow_acceleration = 1 +optimize_wall_printing_order = False +prime_tower_enable = False +raft_airgap = 0.15 +retraction_amount = 6.5 +retraction_prime_speed = 15 +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(20/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_structure = tree +support_top_distance = =support_z_distance +support_z_distance = 0.3 +top_bottom_thickness = =max(1.2 , layer_height * 6) +wall_0_wipe_dist = 0.8 +zig_zaggify_infill = True + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.25_um-petg_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.25_um-petg_0.1mm.inst.cfg new file mode 100644 index 0000000000..57417789e5 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.25_um-petg_0.1mm.inst.cfg @@ -0,0 +1,70 @@ +[general] +definition = ultimaker_s8 +name = Fine +version = 4 + +[metadata] +material = ultimaker_petg +quality_type = normal +setting_version = 25 +type = quality +variant = AA 0.25 +weight = 0 + +[values] +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 4 +gradual_flow_discretisation_step_size = 0.2 +gradual_flow_enabled = True +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) * 200 +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) * 200 +machine_nozzle_cool_down_speed = 1.4 +machine_nozzle_heat_up_speed = 1.7 +material_extrusion_cool_down_speed = 0.7 +max_flow_acceleration = 1 +optimize_wall_printing_order = False +prime_tower_enable = False +retraction_amount = 8 +retraction_prime_speed = 15 +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(20/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_structure = tree +support_top_distance = =support_z_distance +support_z_distance = 0.3 +top_bottom_thickness = =max(1.2 , layer_height * 6) +wall_0_wipe_dist = 0.8 +zig_zaggify_infill = True + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.25_um-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.25_um-pla_0.1mm.inst.cfg new file mode 100644 index 0000000000..fe6ad06ded --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.25_um-pla_0.1mm.inst.cfg @@ -0,0 +1,70 @@ +[general] +definition = ultimaker_s8 +name = Fine +version = 4 + +[metadata] +material = ultimaker_pla +quality_type = normal +setting_version = 25 +type = quality +variant = AA 0.25 +weight = 0 + +[values] +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 6 +gradual_flow_discretisation_step_size = 0.2 +gradual_flow_enabled = True +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) * 200 +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) * 200 +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.7 +max_flow_acceleration = 2 +optimize_wall_printing_order = False +raft_airgap = 0.25 +retraction_amount = 6.5 +retraction_prime_speed = =retraction_speed +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(20/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_structure = tree +support_top_distance = =support_z_distance +support_z_distance = 0.3 +top_bottom_thickness = =max(1 , layer_height * 5) +wall_0_wipe_dist = 0.8 +zig_zaggify_infill = True + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.25_um-tough-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.25_um-tough-pla_0.1mm.inst.cfg new file mode 100644 index 0000000000..8e4335011b --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.25_um-tough-pla_0.1mm.inst.cfg @@ -0,0 +1,71 @@ +[general] +definition = ultimaker_s8 +name = Fine +version = 4 + +[metadata] +material = ultimaker_tough_pla +quality_type = normal +setting_version = 25 +type = quality +variant = AA 0.25 +weight = 0 + +[values] +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 6 +gradual_flow_discretisation_step_size = 0.2 +gradual_flow_enabled = True +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) * 200 +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) * 200 +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.7 +max_flow_acceleration = 2 +optimize_wall_printing_order = False +prime_tower_enable = False +raft_airgap = 0.25 +retraction_amount = 6.5 +retraction_prime_speed = =retraction_speed +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 26 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(20/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_structure = tree +support_top_distance = =support_z_distance +support_z_distance = 0.3 +top_bottom_thickness = =max(1 , layer_height * 5) +wall_0_wipe_dist = 0.8 +zig_zaggify_infill = True + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.06mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.06mm.inst.cfg new file mode 100644 index 0000000000..0b2b4f9038 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.06mm.inst.cfg @@ -0,0 +1,29 @@ +[general] +definition = ultimaker_s8 +name = Extra Fine +version = 4 + +[metadata] +material = generic_abs +quality_type = high +setting_version = 25 +type = quality +variant = AA 0.4 +weight = 1 + +[values] +machine_nozzle_cool_down_speed = 0.8 +machine_nozzle_heat_up_speed = 1.5 +material_final_print_temperature = =material_print_temperature - 20 +material_print_temperature = =default_material_print_temperature - 10 +prime_tower_enable = False +raft_airgap = 0.15 +speed_infill = =math.ceil(speed_print * 40 / 50) +speed_print = 50 +speed_topbottom = =math.ceil(speed_print * 30 / 50) +speed_wall = =math.ceil(speed_print * 30 / 50) +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.15mm.inst.cfg new file mode 100644 index 0000000000..ea1225e92a --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.15mm.inst.cfg @@ -0,0 +1,29 @@ +[general] +definition = ultimaker_s8 +name = Normal +version = 4 + +[metadata] +material = generic_abs +quality_type = fast +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -1 + +[values] +machine_nozzle_cool_down_speed = 0.85 +machine_nozzle_heat_up_speed = 1.5 +material_final_print_temperature = =material_print_temperature - 20 +prime_tower_enable = False +raft_airgap = 0.15 +speed_infill = =math.ceil(speed_print * 45 / 60) +speed_print = 60 +speed_topbottom = =math.ceil(speed_print * 30 / 60) +speed_wall = =math.ceil(speed_print * 40 / 60) +speed_wall_0 = =math.ceil(speed_wall * 30 / 40) +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.1mm.inst.cfg new file mode 100644 index 0000000000..ff61f96f80 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.1mm.inst.cfg @@ -0,0 +1,29 @@ +[general] +definition = ultimaker_s8 +name = Fine +version = 4 + +[metadata] +material = generic_abs +quality_type = normal +setting_version = 25 +type = quality +variant = AA 0.4 +weight = 0 + +[values] +machine_nozzle_cool_down_speed = 0.85 +machine_nozzle_heat_up_speed = 1.5 +material_final_print_temperature = =material_print_temperature - 20 +material_print_temperature = =default_material_print_temperature - 5 +prime_tower_enable = False +raft_airgap = 0.15 +speed_infill = =math.ceil(speed_print * 40 / 55) +speed_print = 55 +speed_topbottom = =math.ceil(speed_print * 30 / 55) +speed_wall = =math.ceil(speed_print * 30 / 55) +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.2mm.inst.cfg new file mode 100644 index 0000000000..200909b459 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.2mm.inst.cfg @@ -0,0 +1,30 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = generic_abs +quality_type = draft +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -2 + +[values] +machine_nozzle_cool_down_speed = 0.85 +machine_nozzle_heat_up_speed = 1.5 +material_final_print_temperature = =material_print_temperature - 20 +material_print_temperature = =default_material_print_temperature + 5 +prime_tower_enable = False +raft_airgap = 0.15 +speed_infill = =math.ceil(speed_print * 50 / 60) +speed_print = 60 +speed_topbottom = =math.ceil(speed_print * 35 / 60) +speed_wall = =math.ceil(speed_print * 45 / 60) +speed_wall_0 = =math.ceil(speed_wall * 35 / 45) +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.3mm.inst.cfg new file mode 100644 index 0000000000..fe9949f23c --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.3mm.inst.cfg @@ -0,0 +1,25 @@ +[general] +definition = ultimaker_s8 +name = Extra Fast - Experimental +version = 4 + +[metadata] +is_experimental = True +material = generic_abs +quality_type = verydraft +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -3 + +[values] +machine_nozzle_heat_up_speed = 1.5 +material_final_print_temperature = =material_print_temperature - 20 +material_print_temperature = =default_material_print_temperature + 7 +prime_tower_enable = False +raft_airgap = 0.15 +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_bam_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_bam_0.15mm.inst.cfg new file mode 100644 index 0000000000..b90e50d979 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_bam_0.15mm.inst.cfg @@ -0,0 +1,32 @@ +[general] +definition = ultimaker_s8 +name = Normal +version = 4 + +[metadata] +material = generic_bam +quality_type = fast +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -1 + +[values] +brim_replaces_support = False +build_volume_temperature = =50 if extruders_enabled_count > 1 and (not support_enable or extruder_nr != support_extruder_nr) else 24 +default_material_bed_temperature = =0 if extruders_enabled_count > 1 and (not support_enable or extruder_nr != support_extruder_nr) else 60 +machine_nozzle_cool_down_speed = 0.75 +machine_nozzle_heat_up_speed = 1.6 +prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100 +speed_print = 80 +speed_topbottom = =math.ceil(speed_print * 30 / 80) +speed_wall = =math.ceil(speed_print * 40 / 80) +speed_wall_0 = =math.ceil(speed_wall * 30 / 40) +support_angle = 45 +support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height +support_infill_sparse_thickness = =2 * layer_height +support_interface_density = =min(extruderValues('material_surface_energy')) +support_interface_enable = True +support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 1) * layer_height +top_bottom_thickness = 1 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_bam_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_bam_0.1mm.inst.cfg new file mode 100644 index 0000000000..6603b665e6 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_bam_0.1mm.inst.cfg @@ -0,0 +1,28 @@ +[general] +definition = ultimaker_s8 +name = Fine +version = 4 + +[metadata] +material = generic_bam +quality_type = normal +setting_version = 25 +type = quality +variant = AA 0.4 +weight = 0 + +[values] +brim_replaces_support = False +build_volume_temperature = =50 if extruders_enabled_count > 1 and (not support_enable or extruder_nr != support_extruder_nr) else 24 +default_material_bed_temperature = =0 if extruders_enabled_count > 1 and (not support_enable or extruder_nr != support_extruder_nr) else 60 +machine_nozzle_cool_down_speed = 0.75 +machine_nozzle_heat_up_speed = 1.6 +prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100 +support_angle = 45 +support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height +support_infill_sparse_thickness = =2 * layer_height +support_interface_density = =min(extruderValues('material_surface_energy')) +support_interface_enable = True +support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 1) * layer_height +top_bottom_thickness = 1 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_bam_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_bam_0.2mm.inst.cfg new file mode 100644 index 0000000000..12c53e74c6 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_bam_0.2mm.inst.cfg @@ -0,0 +1,31 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = generic_bam +quality_type = draft +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -2 + +[values] +brim_replaces_support = False +build_volume_temperature = =50 if extruders_enabled_count > 1 and (not support_enable or extruder_nr != support_extruder_nr) else 24 +default_material_bed_temperature = =0 if extruders_enabled_count > 1 and (not support_enable or extruder_nr != support_extruder_nr) else 60 +machine_nozzle_cool_down_speed = 0.75 +machine_nozzle_heat_up_speed = 1.6 +material_print_temperature = =default_material_print_temperature + 5 +prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100 +speed_topbottom = =math.ceil(speed_print * 35 / 70) +speed_wall = =math.ceil(speed_print * 50 / 70) +speed_wall_0 = =math.ceil(speed_wall * 35 / 50) +support_angle = 45 +support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height +support_interface_density = =min(extruderValues('material_surface_energy')) +support_interface_enable = True +support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height +top_bottom_thickness = 1 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_bam_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_bam_0.3mm.inst.cfg new file mode 100644 index 0000000000..d1a117ef9c --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_bam_0.3mm.inst.cfg @@ -0,0 +1,32 @@ +[general] +definition = ultimaker_s8 +name = Extra Fast - Experimental +version = 4 + +[metadata] +is_experimental = True +material = generic_bam +quality_type = verydraft +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -3 + +[values] +brim_replaces_support = False +build_volume_temperature = =50 if extruders_enabled_count > 1 and (not support_enable or extruder_nr != support_extruder_nr) else 24 +default_material_bed_temperature = =0 if extruders_enabled_count > 1 and (not support_enable or extruder_nr != support_extruder_nr) else 60 +machine_nozzle_cool_down_speed = 0.75 +machine_nozzle_heat_up_speed = 1.6 +material_print_temperature = =default_material_print_temperature + 5 +prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100 +speed_topbottom = =math.ceil(speed_print * 35 / 70) +speed_wall = =math.ceil(speed_print * 50 / 70) +speed_wall_0 = =math.ceil(speed_wall * 35 / 50) +support_angle = 45 +support_bottom_distance = 0.3 +support_interface_density = =min(extruderValues('material_surface_energy')) +support_interface_enable = True +support_top_distance = 0.3 +top_bottom_thickness = 1 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.06mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.06mm.inst.cfg new file mode 100644 index 0000000000..382b65fb08 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.06mm.inst.cfg @@ -0,0 +1,36 @@ +[general] +definition = ultimaker_s8 +name = Extra Fine +version = 4 + +[metadata] +material = generic_cpe_plus +quality_type = high +setting_version = 25 +type = quality +variant = AA 0.4 +weight = 1 + +[values] +infill_wipe_dist = 0 +machine_min_cool_heat_time_window = 15 +machine_nozzle_cool_down_speed = 0.85 +machine_nozzle_heat_up_speed = 1.5 +material_print_temperature = =default_material_print_temperature - 8 +multiple_mesh_overlap = 0 +prime_tower_enable = True +prime_tower_wipe_enabled = True +retraction_hop = 0.2 +retraction_hop_enabled = False +retraction_hop_only_when_collides = True +retraction_prime_speed = =retraction_speed +speed_print = 40 +speed_topbottom = =math.ceil(speed_print * 30 / 35) +speed_wall = =math.ceil(speed_print * 35 / 40) +speed_wall_0 = =math.ceil(speed_wall * 30 / 35) +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.4/layer_height)*layer_height +wall_0_inset = 0 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.15mm.inst.cfg new file mode 100644 index 0000000000..cd36410d6f --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.15mm.inst.cfg @@ -0,0 +1,33 @@ +[general] +definition = ultimaker_s8 +name = Normal +version = 4 + +[metadata] +material = generic_cpe_plus +quality_type = fast +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -1 + +[values] +infill_wipe_dist = 0 +machine_min_cool_heat_time_window = 15 +multiple_mesh_overlap = 0 +prime_tower_enable = True +prime_tower_wipe_enabled = True +retraction_hop = 0.2 +retraction_hop_enabled = False +retraction_hop_only_when_collides = True +retraction_prime_speed = =retraction_speed +speed_print = 45 +speed_topbottom = =math.ceil(speed_print * 35 / 45) +speed_wall = =math.ceil(speed_print * 45 / 45) +speed_wall_0 = =math.ceil(speed_wall * 35 / 45) +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.4/layer_height)*layer_height +wall_0_inset = 0 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.1mm.inst.cfg new file mode 100644 index 0000000000..e3df57a7ef --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.1mm.inst.cfg @@ -0,0 +1,36 @@ +[general] +definition = ultimaker_s8 +name = Fine +version = 4 + +[metadata] +material = generic_cpe_plus +quality_type = normal +setting_version = 25 +type = quality +variant = AA 0.4 +weight = 0 + +[values] +infill_wipe_dist = 0 +machine_min_cool_heat_time_window = 15 +machine_nozzle_cool_down_speed = 0.85 +machine_nozzle_heat_up_speed = 1.5 +material_print_temperature = =default_material_print_temperature - 5 +multiple_mesh_overlap = 0 +prime_tower_enable = True +prime_tower_wipe_enabled = True +retraction_hop = 0.2 +retraction_hop_enabled = False +retraction_hop_only_when_collides = True +retraction_prime_speed = =retraction_speed +speed_print = 40 +speed_topbottom = =math.ceil(speed_print * 30 / 35) +speed_wall = =math.ceil(speed_print * 35 / 40) +speed_wall_0 = =math.ceil(speed_wall * 30 / 35) +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.4/layer_height)*layer_height +wall_0_inset = 0 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.2mm.inst.cfg new file mode 100644 index 0000000000..5c665edd6d --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.2mm.inst.cfg @@ -0,0 +1,33 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = generic_cpe_plus +quality_type = draft +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -2 + +[values] +infill_wipe_dist = 0 +machine_min_cool_heat_time_window = 15 +multiple_mesh_overlap = 0 +prime_tower_enable = True +prime_tower_wipe_enabled = True +retraction_hop = 0.2 +retraction_hop_enabled = False +retraction_hop_only_when_collides = True +retraction_prime_speed = =retraction_speed +speed_print = 50 +speed_topbottom = =math.ceil(speed_print * 40 / 50) +speed_wall = =math.ceil(speed_print * 50 / 50) +speed_wall_0 = =math.ceil(speed_wall * 40 / 50) +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.4/layer_height)*layer_height +wall_0_inset = 0 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe_0.06mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe_0.06mm.inst.cfg new file mode 100644 index 0000000000..c418c86f7b --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe_0.06mm.inst.cfg @@ -0,0 +1,28 @@ +[general] +definition = ultimaker_s8 +name = Extra Fine +version = 4 + +[metadata] +material = generic_cpe +quality_type = high +setting_version = 25 +type = quality +variant = AA 0.4 +weight = 1 + +[values] +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +machine_nozzle_cool_down_speed = 0.85 +machine_nozzle_heat_up_speed = 1.5 +material_print_temperature = =default_material_print_temperature - 10 +retraction_prime_speed = =retraction_speed +speed_infill = =math.ceil(speed_print * 40 / 50) +speed_print = 50 +speed_topbottom = =math.ceil(speed_print * 30 / 50) +speed_wall = =math.ceil(speed_print * 30 / 50) +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe_0.15mm.inst.cfg new file mode 100644 index 0000000000..9ecdd90717 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe_0.15mm.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Normal +version = 4 + +[metadata] +material = generic_cpe +quality_type = fast +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -1 + +[values] +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +retraction_prime_speed = =retraction_speed +speed_infill = =math.ceil(speed_print * 50 / 60) +speed_print = 60 +speed_topbottom = =math.ceil(speed_print * 30 / 60) +speed_wall = =math.ceil(speed_print * 40 / 60) +speed_wall_0 = =math.ceil(speed_wall * 30 / 40) +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe_0.1mm.inst.cfg new file mode 100644 index 0000000000..f1f7f57117 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe_0.1mm.inst.cfg @@ -0,0 +1,28 @@ +[general] +definition = ultimaker_s8 +name = Fine +version = 4 + +[metadata] +material = generic_cpe +quality_type = normal +setting_version = 25 +type = quality +variant = AA 0.4 +weight = 0 + +[values] +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +machine_nozzle_cool_down_speed = 0.85 +machine_nozzle_heat_up_speed = 1.5 +material_print_temperature = =default_material_print_temperature - 5 +retraction_prime_speed = =retraction_speed +speed_infill = =math.ceil(speed_print * 45 / 55) +speed_print = 55 +speed_topbottom = =math.ceil(speed_print * 30 / 55) +speed_wall = =math.ceil(speed_print * 30 / 55) +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe_0.2mm.inst.cfg new file mode 100644 index 0000000000..eb12cec82f --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe_0.2mm.inst.cfg @@ -0,0 +1,27 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = generic_cpe +quality_type = draft +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -2 + +[values] +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +material_print_temperature = =default_material_print_temperature + 5 +retraction_prime_speed = =retraction_speed +speed_infill = =math.ceil(speed_print * 50 / 60) +speed_print = 60 +speed_topbottom = =math.ceil(speed_print * 35 / 60) +speed_wall = =math.ceil(speed_print * 45 / 60) +speed_wall_0 = =math.ceil(speed_wall * 35 / 45) +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_nylon_0.06mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_nylon_0.06mm.inst.cfg new file mode 100644 index 0000000000..a13b77840c --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_nylon_0.06mm.inst.cfg @@ -0,0 +1,25 @@ +[general] +definition = ultimaker_s8 +name = Extra Fine +version = 4 + +[metadata] +material = generic_nylon +quality_type = high +setting_version = 25 +type = quality +variant = AA 0.4 +weight = 1 + +[values] +material_print_temperature = =default_material_print_temperature - 5 +ooze_shield_angle = 40 +raft_airgap = 0.4 +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height +switch_extruder_prime_speed = 30 +switch_extruder_retraction_amount = 30 +switch_extruder_retraction_speeds = 40 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_nylon_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_nylon_0.15mm.inst.cfg new file mode 100644 index 0000000000..8dd81a49f2 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_nylon_0.15mm.inst.cfg @@ -0,0 +1,24 @@ +[general] +definition = ultimaker_s8 +name = Normal +version = 4 + +[metadata] +material = generic_nylon +quality_type = fast +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -1 + +[values] +ooze_shield_angle = 40 +raft_airgap = 0.4 +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height +switch_extruder_prime_speed = 30 +switch_extruder_retraction_amount = 30 +switch_extruder_retraction_speeds = 40 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_nylon_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_nylon_0.1mm.inst.cfg new file mode 100644 index 0000000000..f7602f0759 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_nylon_0.1mm.inst.cfg @@ -0,0 +1,25 @@ +[general] +definition = ultimaker_s8 +name = Fine +version = 4 + +[metadata] +material = generic_nylon +quality_type = normal +setting_version = 25 +type = quality +variant = AA 0.4 +weight = 0 + +[values] +material_print_temperature = =default_material_print_temperature - 5 +ooze_shield_angle = 40 +raft_airgap = 0.4 +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height +switch_extruder_prime_speed = 30 +switch_extruder_retraction_amount = 30 +switch_extruder_retraction_speeds = 40 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_nylon_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_nylon_0.2mm.inst.cfg new file mode 100644 index 0000000000..37f87ce76b --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_nylon_0.2mm.inst.cfg @@ -0,0 +1,25 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = generic_nylon +quality_type = draft +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -2 + +[values] +material_print_temperature = =default_material_print_temperature + 5 +ooze_shield_angle = 40 +raft_airgap = 0.4 +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height +switch_extruder_prime_speed = 30 +switch_extruder_retraction_amount = 30 +switch_extruder_retraction_speeds = 40 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_pc_0.06mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_pc_0.06mm.inst.cfg new file mode 100644 index 0000000000..97449e1053 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_pc_0.06mm.inst.cfg @@ -0,0 +1,42 @@ +[general] +definition = ultimaker_s8 +name = Extra Fine +version = 4 + +[metadata] +material = generic_pc +quality_type = high +setting_version = 25 +type = quality +variant = AA 0.4 +weight = 1 + +[values] +brim_width = 20 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_wipe_dist = 0.1 +machine_min_cool_heat_time_window = 15 +machine_nozzle_cool_down_speed = 0.85 +machine_nozzle_heat_up_speed = 1.5 +material_print_temperature = =default_material_print_temperature - 20 +multiple_mesh_overlap = 0 +ooze_shield_angle = 40 +prime_tower_enable = True +prime_tower_wipe_enabled = True +raft_airgap = 0.25 +retraction_hop = 2 +retraction_hop_only_when_collides = True +speed_print = 50 +speed_topbottom = =math.ceil(speed_print * 25 / 50) +speed_wall = =math.ceil(speed_print * 40 / 50) +speed_wall_0 = =math.ceil(speed_wall * 25 / 40) +support_bottom_distance = =support_z_distance +support_interface_density = 87.5 +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 35 +wall_0_inset = 0 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_pc_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_pc_0.15mm.inst.cfg new file mode 100644 index 0000000000..2212b6aa96 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_pc_0.15mm.inst.cfg @@ -0,0 +1,41 @@ +[general] +definition = ultimaker_s8 +name = Normal +version = 4 + +[metadata] +material = generic_pc +quality_type = fast +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -1 + +[values] +brim_width = 20 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_wipe_dist = 0.1 +machine_min_cool_heat_time_window = 15 +machine_nozzle_cool_down_speed = 0.85 +machine_nozzle_heat_up_speed = 1.5 +multiple_mesh_overlap = 0 +ooze_shield_angle = 40 +prime_tower_enable = True +prime_tower_wipe_enabled = True +raft_airgap = 0.25 +retraction_hop = 2 +retraction_hop_only_when_collides = True +speed_print = 50 +speed_topbottom = =math.ceil(speed_print * 25 / 50) +speed_wall = =math.ceil(speed_print * 40 / 50) +speed_wall_0 = =math.ceil(speed_wall * 25 / 40) +support_bottom_distance = =support_z_distance +support_interface_density = 87.5 +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 35 +wall_0_inset = 0 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_pc_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_pc_0.1mm.inst.cfg new file mode 100644 index 0000000000..a2ca0b20ed --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_pc_0.1mm.inst.cfg @@ -0,0 +1,42 @@ +[general] +definition = ultimaker_s8 +name = Fine +version = 4 + +[metadata] +material = generic_pc +quality_type = normal +setting_version = 25 +type = quality +variant = AA 0.4 +weight = 0 + +[values] +brim_width = 20 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_wipe_dist = 0.1 +machine_min_cool_heat_time_window = 15 +machine_nozzle_cool_down_speed = 0.85 +machine_nozzle_heat_up_speed = 1.5 +material_print_temperature = =default_material_print_temperature - 10 +multiple_mesh_overlap = 0 +ooze_shield_angle = 40 +prime_tower_enable = True +prime_tower_wipe_enabled = True +raft_airgap = 0.25 +retraction_hop = 2 +retraction_hop_only_when_collides = True +speed_print = 50 +speed_topbottom = =math.ceil(speed_print * 25 / 50) +speed_wall = =math.ceil(speed_print * 40 / 50) +speed_wall_0 = =math.ceil(speed_wall * 25 / 40) +support_bottom_distance = =support_z_distance +support_interface_density = 87.5 +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 35 +wall_0_inset = 0 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_pc_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_pc_0.2mm.inst.cfg new file mode 100644 index 0000000000..d21b584ac8 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_pc_0.2mm.inst.cfg @@ -0,0 +1,41 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = generic_pc +quality_type = draft +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -2 + +[values] +brim_width = 20 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_wipe_dist = 0.1 +machine_min_cool_heat_time_window = 15 +machine_nozzle_cool_down_speed = 0.85 +machine_nozzle_heat_up_speed = 1.5 +multiple_mesh_overlap = 0 +ooze_shield_angle = 40 +prime_tower_enable = True +prime_tower_wipe_enabled = True +raft_airgap = 0.25 +retraction_hop = 2 +retraction_hop_only_when_collides = True +speed_print = 50 +speed_topbottom = =math.ceil(speed_print * 25 / 50) +speed_wall = =math.ceil(speed_print * 40 / 50) +speed_wall_0 = =math.ceil(speed_wall * 25 / 40) +support_bottom_distance = =support_z_distance +support_interface_density = 87.5 +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 35 +wall_0_inset = 0 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.06mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.06mm.inst.cfg new file mode 100644 index 0000000000..13cb78a6f1 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.06mm.inst.cfg @@ -0,0 +1,27 @@ +[general] +definition = ultimaker_s8 +name = Extra Fine +version = 4 + +[metadata] +material = generic_petg +quality_type = high +setting_version = 25 +type = quality +variant = AA 0.4 +weight = 1 + +[values] +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +machine_nozzle_cool_down_speed = 0.85 +machine_nozzle_heat_up_speed = 1.5 +material_print_temperature = =default_material_print_temperature - 10 +speed_infill = =math.ceil(speed_print * 40 / 50) +speed_print = 50 +speed_topbottom = =math.ceil(speed_print * 30 / 50) +speed_wall = =math.ceil(speed_print * 30 / 50) +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.15mm.inst.cfg new file mode 100644 index 0000000000..7aa5d7a740 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.15mm.inst.cfg @@ -0,0 +1,25 @@ +[general] +definition = ultimaker_s8 +name = Normal +version = 4 + +[metadata] +material = generic_petg +quality_type = fast +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -1 + +[values] +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +speed_infill = =math.ceil(speed_print * 50 / 60) +speed_print = 60 +speed_topbottom = =math.ceil(speed_print * 30 / 60) +speed_wall = =math.ceil(speed_print * 40 / 60) +speed_wall_0 = =math.ceil(speed_wall * 30 / 40) +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.1mm.inst.cfg new file mode 100644 index 0000000000..2a2f094a29 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.1mm.inst.cfg @@ -0,0 +1,27 @@ +[general] +definition = ultimaker_s8 +name = Fine +version = 4 + +[metadata] +material = generic_petg +quality_type = normal +setting_version = 25 +type = quality +variant = AA 0.4 +weight = 0 + +[values] +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +machine_nozzle_cool_down_speed = 0.85 +machine_nozzle_heat_up_speed = 1.5 +material_print_temperature = =default_material_print_temperature - 5 +speed_infill = =math.ceil(speed_print * 45 / 55) +speed_print = 55 +speed_topbottom = =math.ceil(speed_print * 30 / 55) +speed_wall = =math.ceil(speed_print * 30 / 55) +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.2mm.inst.cfg new file mode 100644 index 0000000000..560fe987c7 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.2mm.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = generic_petg +quality_type = draft +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -2 + +[values] +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +material_print_temperature = =default_material_print_temperature + 5 +speed_infill = =math.ceil(speed_print * 50 / 60) +speed_print = 60 +speed_topbottom = =math.ceil(speed_print * 35 / 60) +speed_wall = =math.ceil(speed_print * 45 / 60) +speed_wall_0 = =math.ceil(speed_wall * 35 / 45) +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.3mm.inst.cfg new file mode 100644 index 0000000000..1e21fbfa90 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.3mm.inst.cfg @@ -0,0 +1,22 @@ +[general] +definition = ultimaker_s8 +name = Extra Fast - Experimental +version = 4 + +[metadata] +is_experimental = True +material = generic_petg +quality_type = verydraft +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -3 + +[values] +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +material_print_temperature = =default_material_print_temperature + 5 +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.06mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.06mm.inst.cfg new file mode 100644 index 0000000000..826d15d989 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.06mm.inst.cfg @@ -0,0 +1,28 @@ +[general] +definition = ultimaker_s8 +name = Extra Fine +version = 4 + +[metadata] +material = generic_pla +quality_type = high +setting_version = 25 +type = quality +variant = AA 0.4 +weight = 1 + +[values] +machine_nozzle_cool_down_speed = 0.75 +machine_nozzle_heat_up_speed = 1.6 +material_print_temperature = =default_material_print_temperature - 5 +raft_airgap = 0.25 +retraction_prime_speed = =retraction_speed +speed_print = 50 +speed_topbottom = =math.ceil(speed_print * 35 / 50) +speed_wall = =math.ceil(speed_print * 35 / 50) +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height +top_bottom_thickness = 1 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.15mm.inst.cfg new file mode 100644 index 0000000000..8bda910465 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.15mm.inst.cfg @@ -0,0 +1,28 @@ +[general] +definition = ultimaker_s8 +name = Normal +version = 4 + +[metadata] +material = generic_pla +quality_type = fast +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -1 + +[values] +machine_nozzle_cool_down_speed = 0.75 +machine_nozzle_heat_up_speed = 1.6 +raft_airgap = 0.25 +retraction_prime_speed = =retraction_speed +speed_print = 70 +speed_topbottom = =math.ceil(speed_print * 35 / 70) +speed_wall = =math.ceil(speed_print * 45 / 70) +speed_wall_0 = =math.ceil(speed_wall * 35 / 70) +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height +top_bottom_thickness = 1 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.1mm.inst.cfg new file mode 100644 index 0000000000..cab37f9e8d --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.1mm.inst.cfg @@ -0,0 +1,24 @@ +[general] +definition = ultimaker_s8 +name = Fine +version = 4 + +[metadata] +material = generic_pla +quality_type = normal +setting_version = 25 +type = quality +variant = AA 0.4 +weight = 0 + +[values] +machine_nozzle_cool_down_speed = 0.75 +machine_nozzle_heat_up_speed = 1.6 +raft_airgap = 0.25 +retraction_prime_speed = =retraction_speed +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height +top_bottom_thickness = 1 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.2mm.inst.cfg new file mode 100644 index 0000000000..1fbd2b1ed2 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.2mm.inst.cfg @@ -0,0 +1,31 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = generic_pla +quality_type = draft +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -2 + +[values] +acceleration_wall = 2000 +acceleration_wall_0 = 2000 +infill_sparse_density = 15 +machine_nozzle_cool_down_speed = 0.75 +machine_nozzle_heat_up_speed = 1.6 +material_print_temperature = =default_material_print_temperature + 5 +raft_airgap = 0.25 +retraction_prime_speed = =retraction_speed +speed_topbottom = =math.ceil(speed_print * 40 / 70) +speed_wall = =math.ceil(speed_print * 55 / 70) +speed_wall_0 = =math.ceil(speed_wall * 45 / 50) +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height +top_bottom_thickness = 0.8 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.3mm.inst.cfg new file mode 100644 index 0000000000..f9cf405e19 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.3mm.inst.cfg @@ -0,0 +1,35 @@ +[general] +definition = ultimaker_s8 +name = Extra Fast - Experimental +version = 4 + +[metadata] +is_experimental = True +material = generic_pla +quality_type = verydraft +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -3 + +[values] +acceleration_print = 2000 +acceleration_topbottom = 1000 +acceleration_wall = 1500 +acceleration_wall_0 = 1000 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_sparse_density = 15 +machine_nozzle_cool_down_speed = 0.75 +machine_nozzle_heat_up_speed = 1.6 +material_print_temperature = =default_material_print_temperature + 10 +raft_airgap = 0.25 +retraction_prime_speed = =retraction_speed +speed_print = 50 +speed_wall = 50 +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height +top_bottom_thickness = 0.9 +wall_line_width_0 = =line_width * (1 + magic_spiralize * 0.25) + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_pp_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_pp_0.15mm.inst.cfg new file mode 100644 index 0000000000..d2e8a3b3ac --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_pp_0.15mm.inst.cfg @@ -0,0 +1,45 @@ +[general] +definition = ultimaker_s8 +name = Normal +version = 4 + +[metadata] +material = generic_pp +quality_type = fast +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -1 + +[values] +brim_width = 20 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral' +infill_wipe_dist = 0.1 +machine_min_cool_heat_time_window = 15 +machine_nozzle_cool_down_speed = 0.85 +machine_nozzle_heat_up_speed = 1.5 +material_final_print_temperature = =material_print_temperature - 10 +material_initial_print_temperature = =material_print_temperature - 10 +multiple_mesh_overlap = 0 +prime_tower_enable = False +prime_tower_size = 16 +prime_tower_wipe_enabled = True +retraction_count_max = 15 +retraction_extra_prime_amount = 0.8 +retraction_hop = 2 +retraction_hop_only_when_collides = True +speed_print = 25 +speed_topbottom = =math.ceil(speed_print * 25 / 25) +speed_wall = =math.ceil(speed_print * 25 / 25) +speed_wall_0 = =math.ceil(speed_wall * 25 / 25) +support_angle = 50 +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 35 +top_bottom_thickness = 1.1 +wall_0_inset = 0 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_pp_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_pp_0.1mm.inst.cfg new file mode 100644 index 0000000000..c0177217a3 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_pp_0.1mm.inst.cfg @@ -0,0 +1,46 @@ +[general] +definition = ultimaker_s8 +name = Fine +version = 4 + +[metadata] +material = generic_pp +quality_type = normal +setting_version = 25 +type = quality +variant = AA 0.4 +weight = 0 + +[values] +brim_width = 20 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral' +infill_wipe_dist = 0.1 +machine_min_cool_heat_time_window = 15 +machine_nozzle_cool_down_speed = 0.85 +machine_nozzle_heat_up_speed = 1.5 +material_final_print_temperature = =material_print_temperature - 10 +material_initial_print_temperature = =material_print_temperature - 10 +material_print_temperature = =default_material_print_temperature - 2 +multiple_mesh_overlap = 0 +prime_tower_enable = False +prime_tower_size = 16 +prime_tower_wipe_enabled = True +retraction_count_max = 15 +retraction_extra_prime_amount = 0.8 +retraction_hop = 2 +retraction_hop_only_when_collides = True +speed_print = 25 +speed_topbottom = =math.ceil(speed_print * 25 / 25) +speed_wall = =math.ceil(speed_print * 25 / 25) +speed_wall_0 = =math.ceil(speed_wall * 25 / 25) +support_angle = 50 +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 35 +top_bottom_thickness = 1 +wall_0_inset = 0 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_pp_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_pp_0.2mm.inst.cfg new file mode 100644 index 0000000000..8e91cff5ac --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_pp_0.2mm.inst.cfg @@ -0,0 +1,45 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = generic_pp +quality_type = draft +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -2 + +[values] +brim_width = 20 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral' +infill_wipe_dist = 0.1 +machine_min_cool_heat_time_window = 15 +machine_nozzle_cool_down_speed = 0.85 +machine_nozzle_heat_up_speed = 1.5 +material_final_print_temperature = =material_print_temperature - 10 +material_initial_print_temperature = =material_print_temperature - 10 +material_print_temperature = =default_material_print_temperature + 8 +multiple_mesh_overlap = 0 +prime_tower_enable = False +prime_tower_size = 16 +prime_tower_wipe_enabled = True +retraction_count_max = 15 +retraction_extra_prime_amount = 0.8 +retraction_hop = 2 +retraction_hop_only_when_collides = True +speed_print = 25 +speed_topbottom = =math.ceil(speed_print * 25 / 25) +speed_wall = =math.ceil(speed_print * 25 / 25) +speed_wall_0 = =math.ceil(speed_wall * 25 / 25) +support_angle = 50 +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 35 +wall_0_inset = 0 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.06mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.06mm.inst.cfg new file mode 100644 index 0000000000..b3a7c79e42 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.06mm.inst.cfg @@ -0,0 +1,29 @@ +[general] +definition = ultimaker_s8 +name = Extra Fine +version = 4 + +[metadata] +material = generic_tough_pla +quality_type = high +setting_version = 25 +type = quality +variant = AA 0.4 +weight = 1 + +[values] +machine_nozzle_cool_down_speed = 0.75 +machine_nozzle_heat_up_speed = 1.6 +material_print_temperature = =default_material_print_temperature - 5 +prime_tower_enable = False +retraction_prime_speed = =retraction_speed +speed_print = 45 +speed_topbottom = =math.ceil(speed_print * 35 / 45) +speed_wall = =math.ceil(speed_print * 40 / 45) +speed_wall_0 = =math.ceil(speed_wall * 35 / 45) +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height +top_bottom_thickness = 1.2 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.15mm.inst.cfg new file mode 100644 index 0000000000..76c42e2866 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.15mm.inst.cfg @@ -0,0 +1,28 @@ +[general] +definition = ultimaker_s8 +name = Normal +version = 4 + +[metadata] +material = generic_tough_pla +quality_type = fast +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -1 + +[values] +machine_nozzle_cool_down_speed = 0.75 +machine_nozzle_heat_up_speed = 1.6 +prime_tower_enable = False +retraction_prime_speed = =retraction_speed +speed_print = 45 +speed_topbottom = =math.ceil(speed_print * 35 / 45) +speed_wall = =math.ceil(speed_print * 40 / 45) +speed_wall_0 = =math.ceil(speed_wall * 35 / 45) +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height +top_bottom_thickness = 1.2 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.1mm.inst.cfg new file mode 100644 index 0000000000..221210977a --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.1mm.inst.cfg @@ -0,0 +1,29 @@ +[general] +definition = ultimaker_s8 +name = Fine +version = 4 + +[metadata] +material = generic_tough_pla +quality_type = normal +setting_version = 25 +type = quality +variant = AA 0.4 +weight = 0 + +[values] +machine_nozzle_cool_down_speed = 0.75 +machine_nozzle_heat_up_speed = 1.6 +material_print_temperature = =default_material_print_temperature - 5 +prime_tower_enable = False +retraction_prime_speed = =retraction_speed +speed_print = 45 +speed_topbottom = =math.ceil(speed_print * 35 / 45) +speed_wall = =math.ceil(speed_print * 40 / 45) +speed_wall_0 = =math.ceil(speed_wall * 35 / 45) +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height +top_bottom_thickness = 1.2 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.2mm.inst.cfg new file mode 100644 index 0000000000..cb3443e8ad --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.2mm.inst.cfg @@ -0,0 +1,29 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = generic_tough_pla +quality_type = draft +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -2 + +[values] +machine_nozzle_cool_down_speed = 0.75 +machine_nozzle_heat_up_speed = 1.6 +prime_tower_enable = False +retraction_prime_speed = =retraction_speed +speed_print = 50 +speed_roofing = =math.ceil(speed_wall * 20 / 24) +speed_topbottom = =math.ceil(speed_print * 25 / 50) +speed_wall = =math.ceil(speed_print * 36 / 50) +speed_wall_0 = =math.ceil(speed_print * 26 / 50) +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height +top_bottom_thickness = 1.2 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.3mm.inst.cfg new file mode 100644 index 0000000000..b08df18bff --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.3mm.inst.cfg @@ -0,0 +1,36 @@ +[general] +definition = ultimaker_s8 +name = Extra Fast - Experimental +version = 4 + +[metadata] +is_experimental = True +material = generic_tough_pla +quality_type = verydraft +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -3 + +[values] +acceleration_print = 2000 +acceleration_topbottom = 1000 +acceleration_wall = 1500 +acceleration_wall_0 = 1000 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_sparse_density = 15 +machine_nozzle_cool_down_speed = 0.75 +machine_nozzle_heat_up_speed = 1.6 +material_print_temperature = =default_material_print_temperature + 5 +prime_tower_enable = False +raft_airgap = 0.25 +retraction_prime_speed = =retraction_speed +speed_print = 50 +speed_wall = 50 +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height +top_bottom_thickness = 1.2 +wall_line_width_0 = =line_width * (1 + magic_spiralize * 0.25) + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_tpu_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_tpu_0.15mm.inst.cfg new file mode 100644 index 0000000000..abecbe5d52 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_tpu_0.15mm.inst.cfg @@ -0,0 +1,52 @@ +[general] +definition = ultimaker_s8 +name = Normal +version = 4 + +[metadata] +material = generic_tpu +quality_type = fast +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -1 + +[values] +bridge_skin_material_flow = 200 +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_material_flow = =bridge_skin_material_flow +bridge_wall_speed = 10 +brim_width = 8.75 +gradual_infill_step_height = =5 * layer_height +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cross_3d' +infill_sparse_density = 10 +infill_wipe_dist = 0.1 +machine_min_cool_heat_time_window = 15 +machine_nozzle_cool_down_speed = 0.5 +machine_nozzle_heat_up_speed = 2.5 +material_final_print_temperature = =material_print_temperature - 10 +material_flow = 106 +material_initial_print_temperature = =material_print_temperature - 10 +multiple_mesh_overlap = 0 +prime_tower_wipe_enabled = True +retraction_count_max = 15 +retraction_extra_prime_amount = 0.8 +retraction_hop_only_when_collides = True +skin_line_width = =round(line_width / 0.8, 2) +speed_print = 25 +speed_topbottom = =math.ceil(speed_print * 0.8) +speed_wall = =math.ceil(speed_print * 25 / 25) +speed_wall_0 = =math.ceil(speed_wall * 25 / 25) +support_angle = 50 +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 35 +top_bottom_thickness = =layer_height * 6 +travel_avoid_distance = 1.5 +wall_0_inset = 0 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_tpu_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_tpu_0.1mm.inst.cfg new file mode 100644 index 0000000000..da411e87e1 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_tpu_0.1mm.inst.cfg @@ -0,0 +1,53 @@ +[general] +definition = ultimaker_s8 +name = Fine +version = 4 + +[metadata] +material = generic_tpu +quality_type = normal +setting_version = 25 +type = quality +variant = AA 0.4 +weight = 0 + +[values] +bridge_skin_material_flow = 200 +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_material_flow = =bridge_skin_material_flow +bridge_wall_speed = 10 +brim_width = 8.75 +gradual_infill_step_height = =5 * layer_height +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cross_3d' +infill_sparse_density = 10 +infill_wipe_dist = 0.1 +machine_min_cool_heat_time_window = 15 +machine_nozzle_cool_down_speed = 0.5 +machine_nozzle_heat_up_speed = 2.5 +material_final_print_temperature = =material_print_temperature - 10 +material_flow = 106 +material_initial_print_temperature = =material_print_temperature - 10 +material_print_temperature = =default_material_print_temperature - 2 +multiple_mesh_overlap = 0 +prime_tower_wipe_enabled = True +retraction_count_max = 15 +retraction_extra_prime_amount = 0.8 +retraction_hop_only_when_collides = True +skin_line_width = =round(line_width / 0.8, 2) +speed_print = 25 +speed_topbottom = =math.ceil(speed_print * 0.8) +speed_wall = =math.ceil(speed_print * 25 / 25) +speed_wall_0 = =math.ceil(speed_wall * 25 / 25) +support_angle = 50 +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 35 +top_bottom_thickness = =layer_height * 6 +travel_avoid_distance = 1.5 +wall_0_inset = 0 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_tpu_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_tpu_0.2mm.inst.cfg new file mode 100644 index 0000000000..a2b4b3dfee --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_tpu_0.2mm.inst.cfg @@ -0,0 +1,52 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = generic_tpu +quality_type = draft +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -2 + +[values] +bridge_skin_material_flow = 200 +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_material_flow = =bridge_skin_material_flow +bridge_wall_speed = 10 +brim_width = 8.75 +gradual_infill_step_height = =5 * layer_height +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cross_3d' +infill_sparse_density = 10 +infill_wipe_dist = 0.1 +machine_min_cool_heat_time_window = 15 +machine_nozzle_cool_down_speed = 0.5 +machine_nozzle_heat_up_speed = 2.5 +material_final_print_temperature = =material_print_temperature - 10 +material_flow = 106 +material_initial_print_temperature = =material_print_temperature - 10 +multiple_mesh_overlap = 0 +prime_tower_wipe_enabled = True +retraction_count_max = 15 +retraction_extra_prime_amount = 0.8 +retraction_hop_only_when_collides = True +skin_line_width = =round(line_width / 0.8, 2) +speed_print = 25 +speed_topbottom = =math.ceil(speed_print * 0.8) +speed_wall = =math.ceil(speed_print * 25 / 25) +speed_wall_0 = =math.ceil(speed_wall * 25 / 25) +support_angle = 50 +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 35 +top_bottom_thickness = =layer_height * 6 +travel_avoid_distance = 1.5 +wall_0_inset = 0 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.06mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.06mm.inst.cfg new file mode 100644 index 0000000000..0221359ace --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.06mm.inst.cfg @@ -0,0 +1,72 @@ +[general] +definition = ultimaker_s8 +name = Extra Fine +version = 4 + +[metadata] +material = ultimaker_abs +quality_type = high +setting_version = 25 +type = quality +variant = AA 0.4 +weight = 1 + +[values] +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 4 +gradual_flow_discretisation_step_size = 0.2 +gradual_flow_enabled = True +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) * 200 +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) * 200 +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.8 +material_max_flowrate = 20 +max_flow_acceleration = 1 +optimize_wall_printing_order = False +prime_tower_enable = False +raft_airgap = 0.15 +retraction_amount = 6.5 +retraction_prime_speed = 15 +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(20/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_structure = tree +support_top_distance = =support_z_distance +support_z_distance = 0.3 +top_bottom_thickness = =max(1.2 , layer_height * 6) +wall_0_wipe_dist = 0.8 +zig_zaggify_infill = True + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.15mm.inst.cfg new file mode 100644 index 0000000000..d73ec3f1ee --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.15mm.inst.cfg @@ -0,0 +1,73 @@ +[general] +definition = ultimaker_s8 +name = Normal +version = 4 + +[metadata] +material = ultimaker_abs +quality_type = fast +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -1 + +[values] +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 4 +gradual_flow_discretisation_step_size = 0.2 +gradual_flow_enabled = True +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) * 200 +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) * 200 +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.8 +material_max_flowrate = 20 +max_flow_acceleration = 1 +meshfix_maximum_resolution = 0.7 +optimize_wall_printing_order = False +prime_tower_enable = False +raft_airgap = 0.15 +retraction_amount = 6.5 +retraction_prime_speed = 15 +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(30/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_structure = tree +support_top_distance = =support_z_distance +support_z_distance = 0.3 +top_bottom_thickness = =max(1.2 , layer_height * 6) +wall_0_wipe_dist = 0.8 +zig_zaggify_infill = True + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.1mm.inst.cfg new file mode 100644 index 0000000000..59ad6a25b9 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.1mm.inst.cfg @@ -0,0 +1,72 @@ +[general] +definition = ultimaker_s8 +name = Fine +version = 4 + +[metadata] +material = ultimaker_abs +quality_type = normal +setting_version = 25 +type = quality +variant = AA 0.4 +weight = 0 + +[values] +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 4 +gradual_flow_discretisation_step_size = 0.2 +gradual_flow_enabled = True +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) * 200 +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) * 200 +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.8 +material_max_flowrate = 20 +max_flow_acceleration = 1 +optimize_wall_printing_order = False +prime_tower_enable = False +raft_airgap = 0.15 +retraction_amount = 6.5 +retraction_prime_speed = 15 +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(20/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_structure = tree +support_top_distance = =support_z_distance +support_z_distance = 0.3 +top_bottom_thickness = =max(1.2 , layer_height * 6) +wall_0_wipe_dist = 0.8 +zig_zaggify_infill = True + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.2mm.inst.cfg new file mode 100644 index 0000000000..ffd5b07a45 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.2mm.inst.cfg @@ -0,0 +1,78 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = ultimaker_abs +quality_type = draft +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -2 + +[values] +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 4 +gradual_flow_discretisation_step_size = 0.2 +gradual_flow_enabled = True +infill_material_flow = =1.05 * material_flow +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) * 200 +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) * 200 +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.8 +material_max_flowrate = 20 +material_print_temperature = =default_material_print_temperature + 5 +max_flow_acceleration = 1 +meshfix_maximum_resolution = 0.7 +optimize_wall_printing_order = False +prime_tower_enable = False +raft_airgap = 0.15 +retraction_amount = 6.5 +retraction_prime_speed = 15 +retraction_speed = 45 +skin_material_flow = =material_flow +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(30/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_structure = tree +support_top_distance = =support_z_distance +support_z_distance = 0.3 +top_bottom_thickness = =max(1.2 , layer_height * 6) +wall_0_wipe_dist = 0.8 +wall_x_material_flow = =1.05 * wall_material_flow +wall_x_material_flow_roofing = =wall_material_flow +zig_zaggify_infill = True + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.3mm.inst.cfg new file mode 100644 index 0000000000..4bdf35424a --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.3mm.inst.cfg @@ -0,0 +1,75 @@ +[general] +definition = ultimaker_s8 +name = Extra Fast +version = 4 + +[metadata] +material = ultimaker_abs +quality_type = verydraft +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -3 + +[values] +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 4 +gradual_flow_discretisation_step_size = 0.2 +gradual_flow_enabled = True +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) * 200 +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) * 200 +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.8 +material_max_flowrate = 20 +material_print_temperature = =default_material_print_temperature + 7 +max_flow_acceleration = 1 +meshfix_maximum_resolution = 0.7 +optimize_wall_printing_order = False +prime_tower_enable = False +raft_airgap = 0.15 +retraction_amount = 6.5 +retraction_prime_speed = 15 +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(30/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_structure = tree +support_top_distance = =support_z_distance +support_z_distance = 0.4 +top_bottom_thickness = =max(1.2 , layer_height * 6) +wall_0_wipe_dist = 0.8 +wall_line_width_0 = =line_width * (1 + magic_spiralize * 0.25) +zig_zaggify_infill = True + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.06mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.06mm.inst.cfg new file mode 100644 index 0000000000..22f1973263 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.06mm.inst.cfg @@ -0,0 +1,71 @@ +[general] +definition = ultimaker_s8 +name = Extra Fine +version = 4 + +[metadata] +material = ultimaker_petg +quality_type = high +setting_version = 25 +type = quality +variant = AA 0.4 +weight = 1 + +[values] +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 4 +gradual_flow_discretisation_step_size = 0.2 +gradual_flow_enabled = True +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) * 200 +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) * 200 +machine_nozzle_cool_down_speed = 1.4 +machine_nozzle_heat_up_speed = 1.7 +material_extrusion_cool_down_speed = 0.7 +material_max_flowrate = 20 +max_flow_acceleration = 1 +optimize_wall_printing_order = False +prime_tower_enable = False +retraction_amount = 8 +retraction_prime_speed = 15 +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(20/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_structure = tree +support_top_distance = =support_z_distance +support_z_distance = 0.3 +top_bottom_thickness = =max(1.2 , layer_height * 6) +wall_0_wipe_dist = 0.8 +zig_zaggify_infill = True + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.15mm.inst.cfg new file mode 100644 index 0000000000..2da5194d23 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.15mm.inst.cfg @@ -0,0 +1,72 @@ +[general] +definition = ultimaker_s8 +name = Normal +version = 4 + +[metadata] +material = ultimaker_petg +quality_type = fast +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -1 + +[values] +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 4 +gradual_flow_discretisation_step_size = 0.2 +gradual_flow_enabled = True +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) * 200 +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) * 200 +machine_nozzle_cool_down_speed = 1.4 +machine_nozzle_heat_up_speed = 1.7 +material_extrusion_cool_down_speed = 0.7 +material_max_flowrate = 20 +max_flow_acceleration = 1 +meshfix_maximum_resolution = 0.7 +optimize_wall_printing_order = False +prime_tower_enable = False +retraction_amount = 8 +retraction_prime_speed = 15 +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(30/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_structure = tree +support_top_distance = =support_z_distance +support_z_distance = 0.3 +top_bottom_thickness = =max(1.2 , layer_height * 6) +wall_0_wipe_dist = 0.8 +zig_zaggify_infill = True + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.1mm.inst.cfg new file mode 100644 index 0000000000..4be0b95bc9 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.1mm.inst.cfg @@ -0,0 +1,71 @@ +[general] +definition = ultimaker_s8 +name = Fine +version = 4 + +[metadata] +material = ultimaker_petg +quality_type = normal +setting_version = 25 +type = quality +variant = AA 0.4 +weight = 0 + +[values] +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 4 +gradual_flow_discretisation_step_size = 0.2 +gradual_flow_enabled = True +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) * 200 +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) * 200 +machine_nozzle_cool_down_speed = 1.4 +machine_nozzle_heat_up_speed = 1.7 +material_extrusion_cool_down_speed = 0.7 +material_max_flowrate = 20 +max_flow_acceleration = 1 +optimize_wall_printing_order = False +prime_tower_enable = False +retraction_amount = 8 +retraction_prime_speed = 15 +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(20/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_structure = tree +support_top_distance = =support_z_distance +support_z_distance = 0.3 +top_bottom_thickness = =max(1.2 , layer_height * 6) +wall_0_wipe_dist = 0.8 +zig_zaggify_infill = True + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.2mm.inst.cfg new file mode 100644 index 0000000000..35d8486171 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.2mm.inst.cfg @@ -0,0 +1,77 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = ultimaker_petg +quality_type = draft +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -2 + +[values] +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 4 +gradual_flow_discretisation_step_size = 0.2 +gradual_flow_enabled = True +infill_material_flow = =1.1 * material_flow +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) * 200 +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) * 200 +machine_nozzle_cool_down_speed = 1.4 +machine_nozzle_heat_up_speed = 1.7 +material_extrusion_cool_down_speed = 0.7 +material_max_flowrate = 20 +material_print_temperature = =default_material_print_temperature + 5 +max_flow_acceleration = 1 +meshfix_maximum_resolution = 0.7 +optimize_wall_printing_order = False +prime_tower_enable = False +retraction_amount = 8 +retraction_prime_speed = 15 +retraction_speed = 45 +skin_material_flow = =1.05 * material_flow +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(30/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_structure = tree +support_top_distance = =support_z_distance +support_z_distance = 0.3 +top_bottom_thickness = =max(1.2 , layer_height * 6) +wall_0_wipe_dist = 0.8 +wall_x_material_flow = =1.1 * wall_material_flow +wall_x_material_flow_roofing = =wall_material_flow +zig_zaggify_infill = True + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.3mm.inst.cfg new file mode 100644 index 0000000000..0c0f14ddb5 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.3mm.inst.cfg @@ -0,0 +1,74 @@ +[general] +definition = ultimaker_s8 +name = Extra Fast +version = 4 + +[metadata] +material = ultimaker_petg +quality_type = verydraft +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -3 + +[values] +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 4 +gradual_flow_discretisation_step_size = 0.2 +gradual_flow_enabled = True +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) * 200 +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) * 200 +machine_nozzle_cool_down_speed = 1.4 +machine_nozzle_heat_up_speed = 1.7 +material_extrusion_cool_down_speed = 0.7 +material_max_flowrate = 20 +material_print_temperature = =default_material_print_temperature + 5 +max_flow_acceleration = 1 +meshfix_maximum_resolution = 0.7 +optimize_wall_printing_order = False +prime_tower_enable = False +retraction_amount = 8 +retraction_prime_speed = 15 +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(30/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_structure = tree +support_top_distance = =support_z_distance +support_z_distance = 0.4 +top_bottom_thickness = =max(1.2 , layer_height * 6) +wall_0_wipe_dist = 0.8 +wall_line_width_0 = =line_width * (1 + magic_spiralize * 0.25) +zig_zaggify_infill = True + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.06mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.06mm.inst.cfg new file mode 100644 index 0000000000..b406bb49bc --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.06mm.inst.cfg @@ -0,0 +1,71 @@ +[general] +definition = ultimaker_s8 +name = Extra Fine +version = 4 + +[metadata] +material = ultimaker_pla +quality_type = high +setting_version = 25 +type = quality +variant = AA 0.4 +weight = 1 + +[values] +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 6 +gradual_flow_discretisation_step_size = 0.2 +gradual_flow_enabled = True +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) * 200 +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) * 200 +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.7 +material_max_flowrate = 12 +max_flow_acceleration = 2 +optimize_wall_printing_order = False +raft_airgap = 0.25 +retraction_amount = 6.5 +retraction_prime_speed = =retraction_speed +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(20/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_structure = tree +support_top_distance = =support_z_distance +support_z_distance = 0.3 +top_bottom_thickness = =max(1 , layer_height * 5) +wall_0_wipe_dist = 0.8 +zig_zaggify_infill = True + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.15mm.inst.cfg new file mode 100644 index 0000000000..cb624ec4f5 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.15mm.inst.cfg @@ -0,0 +1,72 @@ +[general] +definition = ultimaker_s8 +name = Normal +version = 4 + +[metadata] +material = ultimaker_pla +quality_type = fast +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -1 + +[values] +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 6 +gradual_flow_discretisation_step_size = 0.2 +gradual_flow_enabled = True +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) * 200 +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) * 200 +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.7 +material_max_flowrate = 12 +max_flow_acceleration = 2 +meshfix_maximum_resolution = 0.7 +optimize_wall_printing_order = False +raft_airgap = 0.25 +retraction_amount = 6.5 +retraction_prime_speed = =retraction_speed +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(30/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_structure = tree +support_top_distance = =support_z_distance +support_z_distance = 0.3 +top_bottom_thickness = =max(1 , layer_height * 5) +wall_0_wipe_dist = 0.8 +zig_zaggify_infill = True + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.1mm.inst.cfg new file mode 100644 index 0000000000..406cc05c88 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.1mm.inst.cfg @@ -0,0 +1,71 @@ +[general] +definition = ultimaker_s8 +name = Fine +version = 4 + +[metadata] +material = ultimaker_pla +quality_type = normal +setting_version = 25 +type = quality +variant = AA 0.4 +weight = 0 + +[values] +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 6 +gradual_flow_discretisation_step_size = 0.2 +gradual_flow_enabled = True +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) * 200 +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) * 200 +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.7 +material_max_flowrate = 12 +max_flow_acceleration = 2 +optimize_wall_printing_order = False +raft_airgap = 0.25 +retraction_amount = 6.5 +retraction_prime_speed = =retraction_speed +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(20/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_structure = tree +support_top_distance = =support_z_distance +support_z_distance = 0.3 +top_bottom_thickness = =max(1 , layer_height * 5) +wall_0_wipe_dist = 0.8 +zig_zaggify_infill = True + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.2mm.inst.cfg new file mode 100644 index 0000000000..23d046a371 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.2mm.inst.cfg @@ -0,0 +1,77 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = ultimaker_pla +quality_type = draft +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -2 + +[values] +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 6 +gradual_flow_discretisation_step_size = 0.2 +gradual_flow_enabled = True +infill_material_flow = =1.1 * material_flow +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) * 200 +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) * 200 +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.7 +material_max_flowrate = 12 +material_print_temperature = =default_material_print_temperature + 5 +max_flow_acceleration = 2 +meshfix_maximum_resolution = 0.7 +optimize_wall_printing_order = False +raft_airgap = 0.25 +retraction_amount = 6.5 +retraction_prime_speed = =retraction_speed +retraction_speed = 45 +skin_material_flow = =1.05 * material_flow +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(30/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_structure = tree +support_top_distance = =support_z_distance +support_z_distance = 0.3 +top_bottom_thickness = =max(1 , layer_height * 5) +wall_0_wipe_dist = 0.8 +wall_x_material_flow = =1.1 * wall_material_flow +wall_x_material_flow_roofing = =wall_material_flow +zig_zaggify_infill = True + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.3mm.inst.cfg new file mode 100644 index 0000000000..4466ea0bd7 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.3mm.inst.cfg @@ -0,0 +1,74 @@ +[general] +definition = ultimaker_s8 +name = Extra Fast +version = 4 + +[metadata] +material = ultimaker_pla +quality_type = verydraft +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -3 + +[values] +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 6 +gradual_flow_discretisation_step_size = 0.2 +gradual_flow_enabled = True +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) * 200 +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) * 200 +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.7 +material_max_flowrate = 12 +material_print_temperature = =default_material_print_temperature + 10 +max_flow_acceleration = 2 +meshfix_maximum_resolution = 0.7 +optimize_wall_printing_order = False +raft_airgap = 0.25 +retraction_amount = 6.5 +retraction_prime_speed = =retraction_speed +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(30/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_structure = tree +support_top_distance = =support_z_distance +support_z_distance = 0.3 +top_bottom_thickness = =max(1 , layer_height * 5) +wall_0_wipe_dist = 0.8 +wall_line_width_0 = =line_width * (1 + magic_spiralize * 0.25) +zig_zaggify_infill = True + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.06mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.06mm.inst.cfg new file mode 100644 index 0000000000..5d5379e513 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.06mm.inst.cfg @@ -0,0 +1,72 @@ +[general] +definition = ultimaker_s8 +name = Extra Fine +version = 4 + +[metadata] +material = ultimaker_tough_pla +quality_type = high +setting_version = 25 +type = quality +variant = AA 0.4 +weight = 1 + +[values] +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 6 +gradual_flow_discretisation_step_size = 0.2 +gradual_flow_enabled = True +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) * 200 +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) * 200 +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.7 +material_max_flowrate = 14 +max_flow_acceleration = 2 +optimize_wall_printing_order = False +prime_tower_enable = False +raft_airgap = 0.25 +retraction_amount = 6.5 +retraction_prime_speed = =retraction_speed +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 26 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(20/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_structure = tree +support_top_distance = =support_z_distance +support_z_distance = 0.3 +top_bottom_thickness = =max(1 , layer_height * 5) +wall_0_wipe_dist = 0.8 +zig_zaggify_infill = True + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.15mm.inst.cfg new file mode 100644 index 0000000000..bfeaa246d0 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.15mm.inst.cfg @@ -0,0 +1,73 @@ +[general] +definition = ultimaker_s8 +name = Normal +version = 4 + +[metadata] +material = ultimaker_tough_pla +quality_type = fast +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -1 + +[values] +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 6 +gradual_flow_discretisation_step_size = 0.2 +gradual_flow_enabled = True +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) * 200 +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) * 200 +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.7 +material_max_flowrate = 14 +max_flow_acceleration = 2 +meshfix_maximum_resolution = 0.7 +optimize_wall_printing_order = False +prime_tower_enable = False +raft_airgap = 0.25 +retraction_amount = 6.5 +retraction_prime_speed = =retraction_speed +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 26 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(30/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_structure = tree +support_top_distance = =support_z_distance +support_z_distance = 0.35 +top_bottom_thickness = =max(1 , layer_height * 5) +wall_0_wipe_dist = 0.8 +zig_zaggify_infill = True + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.1mm.inst.cfg new file mode 100644 index 0000000000..b947b21a25 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.1mm.inst.cfg @@ -0,0 +1,72 @@ +[general] +definition = ultimaker_s8 +name = Fine +version = 4 + +[metadata] +material = ultimaker_tough_pla +quality_type = normal +setting_version = 25 +type = quality +variant = AA 0.4 +weight = 0 + +[values] +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 6 +gradual_flow_discretisation_step_size = 0.2 +gradual_flow_enabled = True +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) * 200 +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) * 200 +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.7 +material_max_flowrate = 14 +max_flow_acceleration = 2 +optimize_wall_printing_order = False +prime_tower_enable = False +raft_airgap = 0.25 +retraction_amount = 6.5 +retraction_prime_speed = =retraction_speed +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 26 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(20/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_structure = tree +support_top_distance = =support_z_distance +support_z_distance = 0.3 +top_bottom_thickness = =max(1 , layer_height * 5) +wall_0_wipe_dist = 0.8 +zig_zaggify_infill = True + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.2mm.inst.cfg new file mode 100644 index 0000000000..490194e158 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.2mm.inst.cfg @@ -0,0 +1,77 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = ultimaker_tough_pla +quality_type = draft +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -2 + +[values] +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 6 +gradual_flow_discretisation_step_size = 0.2 +gradual_flow_enabled = True +infill_material_flow = =1.1 * material_flow +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) * 200 +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) * 200 +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.7 +material_max_flowrate = 14 +max_flow_acceleration = 2 +meshfix_maximum_resolution = 0.7 +optimize_wall_printing_order = False +prime_tower_enable = False +raft_airgap = 0.25 +retraction_amount = 6.5 +retraction_prime_speed = =retraction_speed +retraction_speed = 45 +skin_material_flow = =1.05 * material_flow +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 26 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(30/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_structure = tree +support_top_distance = =support_z_distance +support_z_distance = 0.35 +top_bottom_thickness = =max(1 , layer_height * 5) +wall_0_wipe_dist = 0.8 +wall_x_material_flow = =1.1 * wall_material_flow +wall_x_material_flow_roofing = =wall_material_flow +zig_zaggify_infill = True + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.3mm.inst.cfg new file mode 100644 index 0000000000..8f6f3f0a57 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.3mm.inst.cfg @@ -0,0 +1,75 @@ +[general] +definition = ultimaker_s8 +name = Extra Fast +version = 4 + +[metadata] +material = ultimaker_tough_pla +quality_type = verydraft +setting_version = 25 +type = quality +variant = AA 0.4 +weight = -3 + +[values] +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 6 +gradual_flow_discretisation_step_size = 0.2 +gradual_flow_enabled = True +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) * 200 +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) * 200 +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.7 +material_max_flowrate = 14 +material_print_temperature = =default_material_print_temperature + 5 +max_flow_acceleration = 2 +meshfix_maximum_resolution = 0.7 +optimize_wall_printing_order = False +prime_tower_enable = False +raft_airgap = 0.25 +retraction_amount = 6.5 +retraction_prime_speed = =retraction_speed +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 26 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(30/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_structure = tree +support_top_distance = =support_z_distance +support_z_distance = 0.4 +top_bottom_thickness = =max(1 , layer_height * 5) +wall_0_wipe_dist = 0.8 +wall_line_width_0 = =line_width * (1 + magic_spiralize * 0.25) +zig_zaggify_infill = True + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_abs_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_abs_0.2mm.inst.cfg new file mode 100644 index 0000000000..15d89998e6 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_abs_0.2mm.inst.cfg @@ -0,0 +1,20 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = generic_abs +quality_type = draft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -2 + +[values] +material_print_temperature = =default_material_print_temperature + 5 +speed_print = 50 +speed_topbottom = =math.ceil(speed_print * 30 / 50) +speed_wall = =math.ceil(speed_print * 40 / 50) +speed_wall_0 = =math.ceil(speed_wall * 30 / 40) + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_abs_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_abs_0.3mm.inst.cfg new file mode 100644 index 0000000000..de3f4a3d4b --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_abs_0.3mm.inst.cfg @@ -0,0 +1,20 @@ +[general] +definition = ultimaker_s8 +name = Extra Fast +version = 4 + +[metadata] +material = generic_abs +quality_type = verydraft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -3 + +[values] +material_print_temperature = =default_material_print_temperature + 7 +speed_print = 50 +speed_topbottom = =math.ceil(speed_print * 30 / 50) +speed_wall = =math.ceil(speed_print * 40 / 50) +speed_wall_0 = =math.ceil(speed_wall * 30 / 40) + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_abs_0.4mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_abs_0.4mm.inst.cfg new file mode 100644 index 0000000000..322f9e4a0c --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_abs_0.4mm.inst.cfg @@ -0,0 +1,21 @@ +[general] +definition = ultimaker_s8 +name = Sprint +version = 4 + +[metadata] +material = generic_abs +quality_type = superdraft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -4 + +[values] +material_print_temperature = =default_material_print_temperature + 10 +speed_infill = =math.ceil(speed_print * 37 / 50) +speed_print = 50 +speed_topbottom = =math.ceil(speed_print * 30 / 50) +speed_wall = =math.ceil(speed_print * 37 / 50) +speed_wall_0 = =math.ceil(speed_wall * 30 / 40) + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_cpe-plus_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_cpe-plus_0.2mm.inst.cfg new file mode 100644 index 0000000000..5cc671bee1 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_cpe-plus_0.2mm.inst.cfg @@ -0,0 +1,29 @@ +[general] +definition = ultimaker_s8 +name = Fast - Experimental +version = 4 + +[metadata] +is_experimental = True +material = generic_cpe_plus +quality_type = draft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -2 + +[values] +brim_width = 14 +machine_nozzle_cool_down_speed = 0.9 +machine_nozzle_heat_up_speed = 1.4 +material_print_temperature = =default_material_print_temperature - 20 +prime_tower_enable = True +retraction_hop = 0.1 +retraction_hop_enabled = False +speed_print = 50 +speed_topbottom = =math.ceil(speed_print * 35 / 50) +speed_wall = =math.ceil(speed_print * 40 / 50) +speed_wall_0 = =math.ceil(speed_wall * 35 / 40) +support_z_distance = =layer_height +top_bottom_thickness = 1.2 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_cpe-plus_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_cpe-plus_0.3mm.inst.cfg new file mode 100644 index 0000000000..7d9410d7a1 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_cpe-plus_0.3mm.inst.cfg @@ -0,0 +1,29 @@ +[general] +definition = ultimaker_s8 +name = Extra Fast - Experimental +version = 4 + +[metadata] +is_experimental = True +material = generic_cpe_plus +quality_type = verydraft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -3 + +[values] +brim_width = 14 +machine_nozzle_cool_down_speed = 0.9 +machine_nozzle_heat_up_speed = 1.4 +material_print_temperature = =default_material_print_temperature - 17 +prime_tower_enable = True +retraction_hop = 0.1 +retraction_hop_enabled = False +speed_print = 50 +speed_topbottom = =math.ceil(speed_print * 35 / 50) +speed_wall = =math.ceil(speed_print * 40 / 50) +speed_wall_0 = =math.ceil(speed_wall * 35 / 40) +support_z_distance = =layer_height +top_bottom_thickness = 1.2 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_cpe-plus_0.4mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_cpe-plus_0.4mm.inst.cfg new file mode 100644 index 0000000000..2d4ec5adff --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_cpe-plus_0.4mm.inst.cfg @@ -0,0 +1,30 @@ +[general] +definition = ultimaker_s8 +name = Sprint - Experimental +version = 4 + +[metadata] +is_experimental = True +material = generic_cpe_plus +quality_type = superdraft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -4 + +[values] +brim_width = 14 +machine_nozzle_cool_down_speed = 0.9 +machine_nozzle_heat_up_speed = 1.4 +material_print_temperature = =default_material_print_temperature - 15 +prime_tower_enable = True +retraction_hop = 0.1 +retraction_hop_enabled = False +speed_infill = =math.ceil(speed_print * 40 / 50) +speed_print = 50 +speed_topbottom = =math.ceil(speed_print * 35 / 50) +speed_wall = =math.ceil(speed_print * 40 / 50) +speed_wall_0 = =math.ceil(speed_wall * 35 / 40) +support_z_distance = =layer_height +top_bottom_thickness = 1.2 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_cpe_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_cpe_0.2mm.inst.cfg new file mode 100644 index 0000000000..de7bd4c511 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_cpe_0.2mm.inst.cfg @@ -0,0 +1,21 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = generic_cpe +quality_type = draft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -2 + +[values] +brim_width = 15 +material_print_temperature = =default_material_print_temperature + 10 +prime_tower_enable = True +speed_print = 40 +speed_topbottom = =math.ceil(speed_print * 25 / 40) +speed_wall = =math.ceil(speed_print * 30 / 40) + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_cpe_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_cpe_0.3mm.inst.cfg new file mode 100644 index 0000000000..bee75628df --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_cpe_0.3mm.inst.cfg @@ -0,0 +1,21 @@ +[general] +definition = ultimaker_s8 +name = Extra Fast +version = 4 + +[metadata] +material = generic_cpe +quality_type = verydraft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -3 + +[values] +brim_width = 15 +material_print_temperature = =default_material_print_temperature + 12 +prime_tower_enable = True +speed_print = 40 +speed_topbottom = =math.ceil(speed_print * 25 / 40) +speed_wall = =math.ceil(speed_print * 30 / 40) + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_cpe_0.4mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_cpe_0.4mm.inst.cfg new file mode 100644 index 0000000000..13f7434614 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_cpe_0.4mm.inst.cfg @@ -0,0 +1,23 @@ +[general] +definition = ultimaker_s8 +name = Sprint +version = 4 + +[metadata] +material = generic_cpe +quality_type = superdraft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -4 + +[values] +brim_width = 15 +material_print_temperature = =default_material_print_temperature + 15 +prime_tower_enable = True +speed_infill = =math.ceil(speed_print * 33 / 45) +speed_print = 45 +speed_topbottom = =math.ceil(speed_print * 30 / 45) +speed_wall = =math.ceil(speed_print * 33 / 45) +speed_wall_0 = =math.ceil(speed_wall * 30 / 40) + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_nylon_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_nylon_0.2mm.inst.cfg new file mode 100644 index 0000000000..d9c71f70fe --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_nylon_0.2mm.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = generic_nylon +quality_type = draft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -2 + +[values] +brim_width = 5.6 +machine_nozzle_cool_down_speed = 0.9 +machine_nozzle_heat_up_speed = 1.4 +material_print_temperature = =default_material_print_temperature - 5 +ooze_shield_angle = 40 +prime_tower_enable = True +raft_airgap = 0.45 +support_angle = 70 +switch_extruder_prime_speed = 30 +switch_extruder_retraction_amount = 30 +switch_extruder_retraction_speeds = 40 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_nylon_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_nylon_0.3mm.inst.cfg new file mode 100644 index 0000000000..478b9cfc2a --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_nylon_0.3mm.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Extra Fast +version = 4 + +[metadata] +material = generic_nylon +quality_type = verydraft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -3 + +[values] +brim_width = 5.6 +machine_nozzle_cool_down_speed = 0.9 +machine_nozzle_heat_up_speed = 1.4 +material_print_temperature = =default_material_print_temperature - 5 +ooze_shield_angle = 40 +prime_tower_enable = True +raft_airgap = 0.45 +support_angle = 70 +switch_extruder_prime_speed = 30 +switch_extruder_retraction_amount = 30 +switch_extruder_retraction_speeds = 40 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_nylon_0.4mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_nylon_0.4mm.inst.cfg new file mode 100644 index 0000000000..09573cdec3 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_nylon_0.4mm.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Sprint +version = 4 + +[metadata] +material = generic_nylon +quality_type = superdraft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -4 + +[values] +brim_width = 5.6 +machine_nozzle_cool_down_speed = 0.9 +machine_nozzle_heat_up_speed = 1.4 +material_print_temperature = =default_material_print_temperature - 5 +ooze_shield_angle = 40 +prime_tower_enable = True +raft_airgap = 0.45 +support_angle = 70 +switch_extruder_prime_speed = 30 +switch_extruder_retraction_amount = 30 +switch_extruder_retraction_speeds = 40 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_pc_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_pc_0.2mm.inst.cfg new file mode 100644 index 0000000000..228bc2f503 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_pc_0.2mm.inst.cfg @@ -0,0 +1,23 @@ +[general] +definition = ultimaker_s8 +name = Fast - Experimental +version = 4 + +[metadata] +is_experimental = True +material = generic_pc +quality_type = draft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -2 + +[values] +brim_width = 14 +material_print_temperature = =default_material_print_temperature - 15 +raft_airgap = 0.5 +speed_print = 50 +speed_topbottom = =math.ceil(speed_print * 25 / 50) +speed_wall = =math.ceil(speed_print * 40 / 50) +speed_wall_0 = =math.ceil(speed_wall * 30 / 40) + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_pc_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_pc_0.3mm.inst.cfg new file mode 100644 index 0000000000..b01b92131f --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_pc_0.3mm.inst.cfg @@ -0,0 +1,23 @@ +[general] +definition = ultimaker_s8 +name = Extra Fast - Experimental +version = 4 + +[metadata] +is_experimental = True +material = generic_pc +quality_type = verydraft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -3 + +[values] +brim_width = 14 +material_print_temperature = =default_material_print_temperature - 12 +raft_airgap = 0.5 +speed_print = 50 +speed_topbottom = =math.ceil(speed_print * 25 / 50) +speed_wall = =math.ceil(speed_print * 40 / 50) +speed_wall_0 = =math.ceil(speed_wall * 30 / 40) + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_pc_0.4mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_pc_0.4mm.inst.cfg new file mode 100644 index 0000000000..e3ae0b0aa6 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_pc_0.4mm.inst.cfg @@ -0,0 +1,24 @@ +[general] +definition = ultimaker_s8 +name = Sprint - Experimental +version = 4 + +[metadata] +is_experimental = True +material = generic_pc +quality_type = superdraft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -4 + +[values] +brim_width = 14 +material_print_temperature = =default_material_print_temperature - 10 +raft_airgap = 0.5 +speed_infill = =math.ceil(speed_print * 37 / 50) +speed_print = 50 +speed_topbottom = =math.ceil(speed_print * 25 / 50) +speed_wall = =math.ceil(speed_print * 37 / 50) +speed_wall_0 = =math.ceil(speed_wall * 30 / 40) + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_petg_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_petg_0.2mm.inst.cfg new file mode 100644 index 0000000000..a8e7a988de --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_petg_0.2mm.inst.cfg @@ -0,0 +1,22 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = generic_petg +quality_type = draft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -2 + +[values] +brim_width = 7 +cool_fan_speed = 20 +material_print_temperature = =default_material_print_temperature - 5 +prime_tower_enable = True +speed_print = 40 +speed_topbottom = =math.ceil(speed_print * 25 / 40) +speed_wall = =math.ceil(speed_print * 30 / 40) + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_petg_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_petg_0.3mm.inst.cfg new file mode 100644 index 0000000000..ef0c3041cc --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_petg_0.3mm.inst.cfg @@ -0,0 +1,22 @@ +[general] +definition = ultimaker_s8 +name = Extra Fast +version = 4 + +[metadata] +material = generic_petg +quality_type = verydraft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -3 + +[values] +brim_width = 7 +cool_fan_speed = 20 +material_print_temperature = =default_material_print_temperature - 5 +prime_tower_enable = True +speed_print = 40 +speed_topbottom = =math.ceil(speed_print * 25 / 40) +speed_wall = =math.ceil(speed_print * 30 / 40) + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_petg_0.4mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_petg_0.4mm.inst.cfg new file mode 100644 index 0000000000..7720a38a5f --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_petg_0.4mm.inst.cfg @@ -0,0 +1,24 @@ +[general] +definition = ultimaker_s8 +name = Sprint +version = 4 + +[metadata] +material = generic_petg +quality_type = superdraft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -4 + +[values] +brim_width = 7 +cool_fan_speed = 20 +material_print_temperature = =default_material_print_temperature - 5 +prime_tower_enable = True +speed_infill = =math.ceil(speed_print * 33 / 45) +speed_print = 45 +speed_topbottom = =math.ceil(speed_print * 30 / 45) +speed_wall = =math.ceil(speed_print * 33 / 45) +speed_wall_0 = =math.ceil(speed_wall * 30 / 40) + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_pla_0.2mm.inst.cfg new file mode 100644 index 0000000000..db20d8b31b --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_pla_0.2mm.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = generic_pla +quality_type = draft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -2 + +[values] +gradual_infill_step_height = =3 * layer_height +machine_nozzle_cool_down_speed = 0.75 +machine_nozzle_heat_up_speed = 1.6 +material_print_temperature = =default_material_print_temperature + 10 +speed_print = 45 +speed_topbottom = =math.ceil(speed_print * 35 / 45) +speed_wall = =math.ceil(speed_print * 40 / 45) +speed_wall_0 = =math.ceil(speed_wall * 35 / 40) +speed_wall_x = =speed_wall +support_angle = 70 +top_bottom_thickness = =layer_height * 4 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_pla_0.3mm.inst.cfg new file mode 100644 index 0000000000..dd5eaffec4 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_pla_0.3mm.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_s8 +name = Extra Fast +version = 4 + +[metadata] +material = generic_pla +quality_type = verydraft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -3 + +[values] +gradual_infill_step_height = =3 * layer_height +machine_nozzle_cool_down_speed = 0.75 +machine_nozzle_heat_up_speed = 1.6 +material_print_temperature = =default_material_print_temperature + 10 +speed_print = 45 +speed_topbottom = =math.ceil(speed_print * 35 / 45) +speed_wall = =math.ceil(speed_print * 40 / 45) +speed_wall_0 = =math.ceil(speed_wall * 35 / 40) +speed_wall_x = =speed_wall +support_angle = 70 +top_bottom_thickness = =layer_height * 4 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_pla_0.4mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_pla_0.4mm.inst.cfg new file mode 100644 index 0000000000..053918931b --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_pla_0.4mm.inst.cfg @@ -0,0 +1,27 @@ +[general] +definition = ultimaker_s8 +name = Sprint +version = 4 + +[metadata] +material = generic_pla +quality_type = superdraft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -4 + +[values] +gradual_infill_step_height = =3 * layer_height +machine_nozzle_cool_down_speed = 0.75 +machine_nozzle_heat_up_speed = 1.6 +material_print_temperature = =default_material_print_temperature + 15 +speed_infill = =math.ceil(speed_print * 35 / 45) +speed_print = 45 +speed_topbottom = =math.ceil(speed_print * 35 / 45) +speed_wall = =math.ceil(speed_print * 35 / 45) +speed_wall_0 = =math.ceil(speed_wall * 35 / 40) +speed_wall_x = =speed_wall +support_angle = 70 +top_bottom_thickness = =layer_height * 4 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_pp_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_pp_0.2mm.inst.cfg new file mode 100644 index 0000000000..62792d9e5b --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_pp_0.2mm.inst.cfg @@ -0,0 +1,35 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = generic_pp +quality_type = draft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -2 + +[values] +brim_width = 25 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral' +material_final_print_temperature = =material_print_temperature - 10 +material_initial_print_temperature = =material_print_temperature - 10 +material_print_temperature = =default_material_print_temperature + 11 +multiple_mesh_overlap = 0.2 +prime_tower_enable = True +prime_tower_flow = 100 +prime_tower_min_volume = 10 +retraction_count_max = 15 +retraction_extra_prime_amount = 0.5 +retraction_hop = 0.5 +retraction_prime_speed = 15 +speed_wall_x = =math.ceil(speed_wall * 30 / 30) +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 45 +top_bottom_thickness = 1.6 +top_skin_expand_distance = =line_width * 2 +wall_0_wipe_dist = =line_width * 2 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_pp_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_pp_0.3mm.inst.cfg new file mode 100644 index 0000000000..3192253c57 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_pp_0.3mm.inst.cfg @@ -0,0 +1,35 @@ +[general] +definition = ultimaker_s8 +name = Extra Fast +version = 4 + +[metadata] +material = generic_pp +quality_type = verydraft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -3 + +[values] +brim_width = 25 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral' +material_final_print_temperature = =material_print_temperature - 10 +material_initial_print_temperature = =material_print_temperature - 10 +material_print_temperature = =default_material_print_temperature + 13 +multiple_mesh_overlap = 0.2 +prime_tower_enable = True +prime_tower_flow = 100 +prime_tower_min_volume = 15 +retraction_count_max = 15 +retraction_extra_prime_amount = 0.5 +retraction_hop = 0.5 +retraction_prime_speed = 15 +speed_wall_x = =math.ceil(speed_wall * 30 / 30) +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 45 +top_bottom_thickness = 1.6 +top_skin_expand_distance = =line_width * 2 +wall_0_wipe_dist = =line_width * 2 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_pp_0.4mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_pp_0.4mm.inst.cfg new file mode 100644 index 0000000000..ddb4749033 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_pp_0.4mm.inst.cfg @@ -0,0 +1,36 @@ +[general] +definition = ultimaker_s8 +name = Sprint +version = 4 + +[metadata] +material = generic_pp +quality_type = superdraft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -4 + +[values] +brim_width = 25 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral' +material_final_print_temperature = =material_print_temperature - 10 +material_initial_print_temperature = =material_print_temperature - 10 +material_print_temperature = =default_material_print_temperature + 15 +multiple_mesh_overlap = 0.2 +prime_tower_enable = True +prime_tower_flow = 100 +prime_tower_min_volume = 20 +retraction_count_max = 15 +retraction_extra_prime_amount = 0.5 +retraction_hop = 0.5 +retraction_prime_speed = 15 +speed_infill = =math.ceil(speed_wall * 30 / 30) +speed_wall_x = =math.ceil(speed_wall * 30 / 30) +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 45 +top_bottom_thickness = 1.6 +top_skin_expand_distance = =line_width * 2 +wall_0_wipe_dist = =line_width * 2 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_tough-pla_0.2mm.inst.cfg new file mode 100644 index 0000000000..1805e5c5df --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_tough-pla_0.2mm.inst.cfg @@ -0,0 +1,27 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = generic_tough_pla +quality_type = draft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -2 + +[values] +gradual_infill_step_height = =3 * layer_height +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cubic' +machine_nozzle_cool_down_speed = 0.75 +machine_nozzle_heat_up_speed = 1.6 +material_print_temperature = =default_material_print_temperature + 10 +prime_tower_enable = False +speed_print = 45 +speed_topbottom = =round(speed_print * 35 / 45) +speed_wall = =round(speed_print * 40 / 45) +speed_wall_0 = =round(speed_print * 35 / 45) +support_angle = 70 +top_bottom_thickness = =layer_height * 6 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_tough-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_tough-pla_0.3mm.inst.cfg new file mode 100644 index 0000000000..7db0022328 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_tough-pla_0.3mm.inst.cfg @@ -0,0 +1,28 @@ +[general] +definition = ultimaker_s8 +name = Extra Fast +version = 4 + +[metadata] +material = generic_tough_pla +quality_type = verydraft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -3 + +[values] +gradual_infill_step_height = =3 * layer_height +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cubic' +machine_nozzle_cool_down_speed = 0.75 +machine_nozzle_heat_up_speed = 1.6 +material_print_temperature = =default_material_print_temperature + 15 +prime_tower_enable = False +speed_infill = =math.ceil(speed_print * 30 / 35) +speed_print = 35 +speed_topbottom = =math.ceil(speed_print * 20 / 35) +speed_wall = =math.ceil(speed_print * 25 / 35) +speed_wall_0 = =math.ceil(speed_print * 20 / 35) +support_angle = 70 +top_bottom_thickness = =layer_height * 4 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_tough-pla_0.4mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_tough-pla_0.4mm.inst.cfg new file mode 100644 index 0000000000..c17dc24813 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_tough-pla_0.4mm.inst.cfg @@ -0,0 +1,28 @@ +[general] +definition = ultimaker_s8 +name = Sprint +version = 4 + +[metadata] +material = generic_tough_pla +quality_type = superdraft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -4 + +[values] +gradual_infill_step_height = =3 * layer_height +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cubic' +machine_nozzle_cool_down_speed = 0.75 +machine_nozzle_heat_up_speed = 1.6 +material_print_temperature = =default_material_print_temperature + 15 +prime_tower_enable = False +speed_infill = =math.ceil(speed_print * 30 / 30) +speed_print = 30 +speed_topbottom = =math.ceil(speed_print * 20 / 30) +speed_wall = =math.ceil(speed_print * 25 / 30) +speed_wall_0 = =math.ceil(speed_print * 20 / 30) +support_angle = 70 +top_bottom_thickness = =layer_height * 4 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_tpu_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_tpu_0.2mm.inst.cfg new file mode 100644 index 0000000000..9420627bdd --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_tpu_0.2mm.inst.cfg @@ -0,0 +1,48 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = generic_tpu +quality_type = draft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -2 + +[values] +bridge_skin_material_flow = 200 +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_material_flow = =bridge_skin_material_flow +bridge_wall_speed = 10 +brim_width = 8.75 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cross_3d' +machine_nozzle_cool_down_speed = 0.5 +machine_nozzle_heat_up_speed = 2.5 +material_final_print_temperature = =material_print_temperature - 10 +material_flow = 105 +material_initial_print_temperature = =material_print_temperature - 10 +material_print_temperature = =default_material_print_temperature - 4 +multiple_mesh_overlap = 0.2 +prime_tower_enable = True +prime_tower_flow = 100 +retraction_count_max = 15 +retraction_extra_prime_amount = 0.5 +retraction_hop = 1.5 +retraction_hop_only_when_collides = False +retraction_prime_speed = 15 +speed_print = 30 +speed_topbottom = =math.ceil(speed_print * 25 / 30) +speed_wall = =math.ceil(speed_print * 30 / 30) +speed_wall_x = =math.ceil(speed_wall * 30 / 30) +support_angle = 50 +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 45 +top_bottom_thickness = =layer_height * 6 +top_skin_expand_distance = =line_width * 2 +travel_avoid_distance = 1.5 +wall_0_wipe_dist = =line_width * 2 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_tpu_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_tpu_0.3mm.inst.cfg new file mode 100644 index 0000000000..b4208d8fe4 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_tpu_0.3mm.inst.cfg @@ -0,0 +1,49 @@ +[general] +definition = ultimaker_s8 +name = Extra Fast +version = 4 + +[metadata] +material = generic_tpu +quality_type = verydraft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -3 + +[values] +bridge_skin_material_flow = 200 +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_material_flow = =bridge_skin_material_flow +bridge_wall_speed = 10 +brim_width = 8.75 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cross_3d' +infill_sparse_density = 15 +machine_nozzle_cool_down_speed = 0.5 +machine_nozzle_heat_up_speed = 2.5 +material_final_print_temperature = =material_print_temperature - 10 +material_flow = 105 +material_initial_print_temperature = =material_print_temperature - 10 +material_print_temperature = =default_material_print_temperature - 2 +multiple_mesh_overlap = 0.2 +prime_tower_enable = True +prime_tower_flow = 100 +retraction_count_max = 15 +retraction_extra_prime_amount = 0.5 +retraction_hop = 1.5 +retraction_hop_only_when_collides = False +retraction_prime_speed = 15 +speed_print = 30 +speed_topbottom = =math.ceil(speed_print * 23 / 30) +speed_wall = =math.ceil(speed_print * 30 / 30) +speed_wall_x = =math.ceil(speed_wall * 30 / 30) +support_angle = 50 +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 45 +top_bottom_thickness = =layer_height * 6 +top_skin_expand_distance = =line_width * 2 +travel_avoid_distance = 1.5 +wall_0_wipe_dist = =line_width * 2 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_tpu_0.4mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_tpu_0.4mm.inst.cfg new file mode 100644 index 0000000000..4548482156 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_tpu_0.4mm.inst.cfg @@ -0,0 +1,48 @@ +[general] +definition = ultimaker_s8 +name = Sprint +version = 4 + +[metadata] +material = generic_tpu +quality_type = superdraft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -4 + +[values] +bridge_skin_material_flow = 200 +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_material_flow = =bridge_skin_material_flow +bridge_wall_speed = 10 +brim_width = 8.75 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cross_3d' +infill_sparse_density = 15 +machine_nozzle_cool_down_speed = 0.5 +machine_nozzle_heat_up_speed = 2.5 +material_final_print_temperature = =material_print_temperature - 10 +material_flow = 105 +material_initial_print_temperature = =material_print_temperature - 10 +multiple_mesh_overlap = 0.2 +prime_tower_enable = True +prime_tower_flow = 100 +retraction_count_max = 15 +retraction_extra_prime_amount = 0.5 +retraction_hop = 1.5 +retraction_hop_only_when_collides = False +speed_infill = =speed_print +speed_print = 30 +speed_topbottom = =math.ceil(speed_print * 20 / 30) +speed_wall = =speed_print +speed_wall_x = =speed_print +support_angle = 50 +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 45 +top_bottom_thickness = =layer_height * 6 +top_skin_expand_distance = =line_width * 2 +travel_avoid_distance = 1.5 +wall_0_wipe_dist = =line_width * 2 + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_um-abs_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-abs_0.2mm.inst.cfg new file mode 100644 index 0000000000..35c69af4dd --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-abs_0.2mm.inst.cfg @@ -0,0 +1,75 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = ultimaker_abs +quality_type = draft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -2 + +[values] +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_material_flow = 200 +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_material_flow = 200 +bridge_wall_speed = 30 +cool_min_layer_time = 4 +gradual_flow_discretisation_step_size = 0.2 +gradual_flow_enabled = True +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) * 200 +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) * 200 +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.8 +material_flow = 93 +material_max_flowrate = 22 +material_print_temperature = =default_material_print_temperature + 5 +max_flow_acceleration = 1 +meshfix_maximum_resolution = 0.7 +optimize_wall_printing_order = False +prime_tower_enable = True +raft_airgap = 0.15 +retraction_amount = 4 +retraction_prime_speed = 15 +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(30/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing +support_angle = 70 +support_interface_enable = False +support_structure = tree +top_bottom_thickness = =max(1.2 , layer_height * 6) +wall_0_wipe_dist = 0.8 +zig_zaggify_infill = True + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_um-abs_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-abs_0.3mm.inst.cfg new file mode 100644 index 0000000000..e95ec9024f --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-abs_0.3mm.inst.cfg @@ -0,0 +1,73 @@ +[general] +definition = ultimaker_s8 +name = Extra Fast +version = 4 + +[metadata] +material = ultimaker_abs +quality_type = verydraft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -3 + +[values] +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 4 +gradual_flow_discretisation_step_size = 0.2 +gradual_flow_enabled = True +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) * 200 +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) * 200 +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.8 +material_flow = 93 +material_max_flowrate = 22 +material_print_temperature = =default_material_print_temperature + 7 +max_flow_acceleration = 1 +optimize_wall_printing_order = False +prime_tower_enable = True +raft_airgap = 0.15 +retraction_amount = 4 +retraction_prime_speed = 15 +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 75 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(30/75)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing +support_angle = 70 +support_interface_enable = False +support_structure = tree +top_bottom_thickness = =max(1.2 , layer_height * 6) +wall_0_wipe_dist = 0.8 +wall_line_width_0 = =line_width * (1 + magic_spiralize * 0.25) +zig_zaggify_infill = True + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_um-abs_0.4mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-abs_0.4mm.inst.cfg new file mode 100644 index 0000000000..16bad1a40e --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-abs_0.4mm.inst.cfg @@ -0,0 +1,73 @@ +[general] +definition = ultimaker_s8 +name = Sprint +version = 4 + +[metadata] +material = ultimaker_abs +quality_type = superdraft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -4 + +[values] +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 4 +gradual_flow_discretisation_step_size = 0.2 +gradual_flow_enabled = True +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) * 200 +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) * 200 +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.8 +material_flow = 93 +material_max_flowrate = 22 +material_print_temperature = =default_material_print_temperature + 10 +max_flow_acceleration = 1 +optimize_wall_printing_order = False +prime_tower_enable = True +raft_airgap = 0.15 +retraction_amount = 4 +retraction_prime_speed = 15 +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 50 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(30/50)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing +support_angle = 70 +support_interface_enable = False +support_structure = tree +top_bottom_thickness = =max(1.2 , layer_height * 6) +wall_0_wipe_dist = 0.8 +wall_line_width_0 = =line_width * (1 + magic_spiralize * 0.25) +zig_zaggify_infill = True + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_um-petg_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-petg_0.2mm.inst.cfg new file mode 100644 index 0000000000..053c60e3cb --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-petg_0.2mm.inst.cfg @@ -0,0 +1,74 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = ultimaker_petg +quality_type = draft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -2 + +[values] +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_material_flow = 200 +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_material_flow = 200 +bridge_wall_speed = 20 +cool_min_layer_time = 4 +gradual_flow_discretisation_step_size = 0.2 +gradual_flow_enabled = True +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) * 200 +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) * 200 +machine_nozzle_cool_down_speed = 1.4 +machine_nozzle_heat_up_speed = 1.7 +material_extrusion_cool_down_speed = 0.7 +material_flow = 93 +material_max_flowrate = 23 +material_print_temperature = =default_material_print_temperature - 5 +max_flow_acceleration = 1 +meshfix_maximum_resolution = 0.7 +optimize_wall_printing_order = False +prime_tower_enable = True +retraction_amount = 3.5 +retraction_prime_speed = 15 +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(30/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing +support_angle = 70 +support_interface_enable = False +support_structure = tree +top_bottom_thickness = =max(1.2 , layer_height * 6) +wall_0_wipe_dist = 0.8 +zig_zaggify_infill = True + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_um-petg_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-petg_0.3mm.inst.cfg new file mode 100644 index 0000000000..637d2d13bd --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-petg_0.3mm.inst.cfg @@ -0,0 +1,74 @@ +[general] +definition = ultimaker_s8 +name = Extra Fast +version = 4 + +[metadata] +material = ultimaker_petg +quality_type = verydraft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -3 + +[values] +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_material_flow = 100 +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_material_flow = 100 +bridge_wall_speed = 20 +cool_min_layer_time = 4 +gradual_flow_discretisation_step_size = 0.2 +gradual_flow_enabled = True +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) * 200 +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) * 200 +machine_nozzle_cool_down_speed = 1.4 +machine_nozzle_heat_up_speed = 1.7 +material_extrusion_cool_down_speed = 0.7 +material_flow = 93 +material_max_flowrate = 23 +material_print_temperature = =default_material_print_temperature - 5 +max_flow_acceleration = 1 +optimize_wall_printing_order = False +prime_tower_enable = True +retraction_amount = 3.5 +retraction_prime_speed = 15 +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 75 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(30/75)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing +support_angle = 70 +support_interface_enable = False +support_structure = tree +top_bottom_thickness = =max(1.2 , layer_height * 6) +wall_0_wipe_dist = 0.8 +wall_line_width_0 = =line_width * (1 + magic_spiralize * 0.25) +zig_zaggify_infill = True + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_um-petg_0.4mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-petg_0.4mm.inst.cfg new file mode 100644 index 0000000000..a4c04a6495 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-petg_0.4mm.inst.cfg @@ -0,0 +1,74 @@ +[general] +definition = ultimaker_s8 +name = Sprint +version = 4 + +[metadata] +material = ultimaker_petg +quality_type = superdraft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -4 + +[values] +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_material_flow = 100 +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_material_flow = 100 +bridge_wall_speed = 20 +cool_min_layer_time = 4 +gradual_flow_discretisation_step_size = 0.2 +gradual_flow_enabled = True +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) * 200 +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) * 200 +machine_nozzle_cool_down_speed = 1.4 +machine_nozzle_heat_up_speed = 1.7 +material_extrusion_cool_down_speed = 0.7 +material_flow = 93 +material_max_flowrate = 23 +material_print_temperature = =default_material_print_temperature - 5 +max_flow_acceleration = 1 +optimize_wall_printing_order = False +prime_tower_enable = True +retraction_amount = 3.5 +retraction_prime_speed = 15 +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 50 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(30/50)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing +support_angle = 70 +support_interface_enable = False +support_structure = tree +top_bottom_thickness = =max(1.2 , layer_height * 6) +wall_0_wipe_dist = 0.8 +wall_line_width_0 = =line_width * (1 + magic_spiralize * 0.25) +zig_zaggify_infill = True + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_um-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-pla_0.2mm.inst.cfg new file mode 100644 index 0000000000..b9469064b4 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-pla_0.2mm.inst.cfg @@ -0,0 +1,74 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = ultimaker_pla +quality_type = draft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -2 + +[values] +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_material_flow = 200 +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_material_flow = 200 +bridge_wall_speed = 30 +cool_min_layer_time = 6 +gradual_flow_discretisation_step_size = 0.2 +gradual_flow_enabled = True +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) * 200 +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) * 200 +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.7 +material_flow = 93 +material_max_flowrate = 15 +material_print_temperature = =default_material_print_temperature + 10 +max_flow_acceleration = 2 +meshfix_maximum_resolution = 0.7 +optimize_wall_printing_order = False +raft_airgap = 0.25 +retraction_amount = 4 +retraction_prime_speed = 22 +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(30/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing +support_angle = 70 +support_interface_enable = False +support_structure = tree +top_bottom_thickness = =max(1 , layer_height * 5) +wall_0_wipe_dist = 0.8 +zig_zaggify_infill = True + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_um-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-pla_0.3mm.inst.cfg new file mode 100644 index 0000000000..fc9505505a --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-pla_0.3mm.inst.cfg @@ -0,0 +1,72 @@ +[general] +definition = ultimaker_s8 +name = Extra Fast +version = 4 + +[metadata] +material = ultimaker_pla +quality_type = verydraft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -3 + +[values] +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 6 +gradual_flow_discretisation_step_size = 0.2 +gradual_flow_enabled = True +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) * 200 +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) * 200 +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.7 +material_flow = 93 +material_max_flowrate = 15 +material_print_temperature = =default_material_print_temperature + 10 +max_flow_acceleration = 2 +optimize_wall_printing_order = False +raft_airgap = 0.25 +retraction_amount = 4 +retraction_prime_speed = 22 +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 65 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(30/65)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing +support_angle = 70 +support_interface_enable = False +support_structure = tree +top_bottom_thickness = =max(1 , layer_height * 5) +wall_0_wipe_dist = 0.8 +wall_line_width_0 = =line_width * (1 + magic_spiralize * 0.25) +zig_zaggify_infill = True + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_um-pla_0.4mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-pla_0.4mm.inst.cfg new file mode 100644 index 0000000000..1e5a6942ac --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-pla_0.4mm.inst.cfg @@ -0,0 +1,72 @@ +[general] +definition = ultimaker_s8 +name = Sprint +version = 4 + +[metadata] +material = ultimaker_pla +quality_type = superdraft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -4 + +[values] +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 6 +gradual_flow_discretisation_step_size = 0.2 +gradual_flow_enabled = True +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) * 200 +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) * 200 +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.7 +material_flow = 93 +material_max_flowrate = 15 +material_print_temperature = =default_material_print_temperature + 15 +max_flow_acceleration = 2 +optimize_wall_printing_order = False +raft_airgap = 0.25 +retraction_amount = 4 +retraction_prime_speed = 22 +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 30 +speed_prime_tower = =speed_wall_0 +speed_print = 45 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(30/45)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing +support_angle = 70 +support_interface_enable = False +support_structure = tree +top_bottom_thickness = =max(1 , layer_height * 5) +wall_0_wipe_dist = 0.8 +wall_line_width_0 = =line_width * (1 + magic_spiralize * 0.25) +zig_zaggify_infill = True + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.2mm.inst.cfg new file mode 100644 index 0000000000..6c5352167f --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.2mm.inst.cfg @@ -0,0 +1,75 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = ultimaker_tough_pla +quality_type = draft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -2 + +[values] +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_material_flow = 200 +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_material_flow = 200 +bridge_wall_speed = 30 +cool_min_layer_time = 6 +gradual_flow_discretisation_step_size = 0.2 +gradual_flow_enabled = True +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) * 200 +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) * 200 +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.7 +material_flow = 93 +material_max_flowrate = 17 +material_print_temperature = =default_material_print_temperature + 10 +max_flow_acceleration = 2 +meshfix_maximum_resolution = 0.7 +optimize_wall_printing_order = False +prime_tower_enable = True +raft_airgap = 0.25 +retraction_amount = 4 +retraction_prime_speed = 22 +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 26 +speed_prime_tower = =speed_wall_0 +speed_print = 100 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(30/100)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing +support_angle = 70 +support_interface_enable = False +support_structure = tree +top_bottom_thickness = =max(1 , layer_height * 5) +wall_0_wipe_dist = 0.8 +zig_zaggify_infill = True + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.3mm.inst.cfg new file mode 100644 index 0000000000..6b06d31a6a --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.3mm.inst.cfg @@ -0,0 +1,73 @@ +[general] +definition = ultimaker_s8 +name = Extra Fast +version = 4 + +[metadata] +material = ultimaker_tough_pla +quality_type = verydraft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -3 + +[values] +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 6 +gradual_flow_discretisation_step_size = 0.2 +gradual_flow_enabled = True +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) * 200 +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) * 200 +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.7 +material_flow = 93 +material_max_flowrate = 17 +material_print_temperature = =default_material_print_temperature + 15 +max_flow_acceleration = 2 +optimize_wall_printing_order = False +prime_tower_enable = True +raft_airgap = 0.25 +retraction_amount = 4 +retraction_prime_speed = 22 +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 26 +speed_prime_tower = =speed_wall_0 +speed_print = 65 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(30/65)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing +support_angle = 70 +support_interface_enable = False +support_structure = tree +top_bottom_thickness = =max(1 , layer_height * 5) +wall_0_wipe_dist = 0.8 +wall_line_width_0 = =line_width * (1 + magic_spiralize * 0.25) +zig_zaggify_infill = True + diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.4mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.4mm.inst.cfg new file mode 100644 index 0000000000..1b615801f9 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.4mm.inst.cfg @@ -0,0 +1,73 @@ +[general] +definition = ultimaker_s8 +name = Sprint +version = 4 + +[metadata] +material = ultimaker_tough_pla +quality_type = superdraft +setting_version = 25 +type = quality +variant = AA 0.8 +weight = -4 + +[values] +acceleration_infill = =acceleration_print +acceleration_ironing = 1000 +acceleration_layer_0 = =acceleration_wall_0 +acceleration_print = 3500 +acceleration_roofing = =acceleration_wall_0 +acceleration_topbottom = =acceleration_wall +acceleration_wall = =acceleration_infill +acceleration_wall_0 = 1500 +acceleration_wall_x = =acceleration_wall +bridge_skin_speed = =bridge_wall_speed +bridge_sparse_infill_max_density = 50 +bridge_wall_speed = 30 +cool_min_layer_time = 6 +gradual_flow_discretisation_step_size = 0.2 +gradual_flow_enabled = True +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' +infill_sparse_density = 15 +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_wall_0 +jerk_print = =max(30, speed_print/2) * 200 +jerk_roofing = =jerk_wall_0 +jerk_topbottom = =jerk_wall +jerk_wall = =jerk_infill +jerk_wall_0 = =max(30, speed_wall_0/2) * 200 +machine_nozzle_cool_down_speed = 1.3 +machine_nozzle_heat_up_speed = 1.9 +material_extrusion_cool_down_speed = 0.7 +material_flow = 93 +material_max_flowrate = 17 +material_print_temperature = =default_material_print_temperature + 15 +max_flow_acceleration = 2 +optimize_wall_printing_order = False +prime_tower_enable = True +raft_airgap = 0.25 +retraction_amount = 4 +retraction_prime_speed = 22 +retraction_speed = 45 +small_skin_on_surface = False +small_skin_width = 4 +speed_infill = =speed_print +speed_ironing = 20 +speed_layer_0 = 26 +speed_prime_tower = =speed_wall_0 +speed_print = 45 +speed_roofing = =math.ceil(speed_wall*(45/100)) +speed_support_interface = =speed_wall_0 +speed_topbottom = =speed_print +speed_wall = =speed_infill +speed_wall_0 = =math.ceil(speed_wall*(30/45)) +speed_wall_x = =speed_wall +speed_wall_x_roofing = =speed_roofing +support_angle = 70 +support_interface_enable = False +support_structure = tree +top_bottom_thickness = =max(1 , layer_height * 5) +wall_0_wipe_dist = 0.8 +wall_line_width_0 = =line_width * (1 + magic_spiralize * 0.25) +zig_zaggify_infill = True + diff --git a/resources/quality/ultimaker_s8/um_s8_bb0.4_pva_0.06mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_bb0.4_pva_0.06mm.inst.cfg new file mode 100644 index 0000000000..5623ed0f47 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_bb0.4_pva_0.06mm.inst.cfg @@ -0,0 +1,29 @@ +[general] +definition = ultimaker_s8 +name = Extra Fine +version = 4 + +[metadata] +material = generic_pva +quality_type = high +setting_version = 25 +type = quality +variant = BB 0.4 +weight = 1 + +[values] +acceleration_prime_tower = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 and (not support_enable or extruder_nr != support_extruder_nr) else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 and (not support_enable or extruder_nr != support_extruder_nr) else 60 +initial_layer_line_width_factor = 150 +material_print_temperature = =default_material_print_temperature - 5 +minimum_support_area = 4 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 25 +speed_support = 50 +support_infill_sparse_thickness = =3 * layer_height +support_interface_enable = True + diff --git a/resources/quality/ultimaker_s8/um_s8_bb0.8_pva_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_bb0.8_pva_0.2mm.inst.cfg new file mode 100644 index 0000000000..fa7814eb5d --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_bb0.8_pva_0.2mm.inst.cfg @@ -0,0 +1,27 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = generic_pva +quality_type = draft +setting_version = 25 +type = quality +variant = BB 0.8 +weight = -2 + +[values] +acceleration_prime_tower = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 and (not support_enable or extruder_nr != support_extruder_nr) else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 and (not support_enable or extruder_nr != support_extruder_nr) else 60 +initial_layer_line_width_factor = 150 +minimum_support_area = 4 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 25 +speed_support = 50 +support_interface_enable = True + diff --git a/resources/quality/ultimaker_s8/um_s8_bb0.8_pva_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_bb0.8_pva_0.3mm.inst.cfg new file mode 100644 index 0000000000..2eea235168 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_bb0.8_pva_0.3mm.inst.cfg @@ -0,0 +1,29 @@ +[general] +definition = ultimaker_s8 +name = Extra Fast +version = 4 + +[metadata] +material = generic_pva +quality_type = verydraft +setting_version = 25 +type = quality +variant = BB 0.8 +weight = -3 + +[values] +acceleration_prime_tower = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 and (not support_enable or extruder_nr != support_extruder_nr) else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 and (not support_enable or extruder_nr != support_extruder_nr) else 60 +initial_layer_line_width_factor = 150 +material_print_temperature = =default_material_print_temperature + 5 +minimum_support_area = 4 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 25 +speed_support = 50 +support_infill_sparse_thickness = 0.3 +support_interface_enable = True + diff --git a/resources/quality/ultimaker_s8/um_s8_bb0.8_pva_0.4mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_bb0.8_pva_0.4mm.inst.cfg new file mode 100644 index 0000000000..30f777fd56 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_bb0.8_pva_0.4mm.inst.cfg @@ -0,0 +1,28 @@ +[general] +definition = ultimaker_s8 +name = Sprint +version = 4 + +[metadata] +material = generic_pva +quality_type = superdraft +setting_version = 25 +type = quality +variant = BB 0.8 +weight = -4 + +[values] +acceleration_prime_tower = 1500 +brim_replaces_support = False +build_volume_temperature = =70 if extruders_enabled_count > 1 and (not support_enable or extruder_nr != support_extruder_nr) else 35 +cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) +default_material_bed_temperature = =0 if extruders_enabled_count > 1 and (not support_enable or extruder_nr != support_extruder_nr) else 60 +initial_layer_line_width_factor = 150 +material_print_temperature = =default_material_print_temperature + 5 +minimum_support_area = 4 +retraction_count_max = 5 +skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width)) +speed_prime_tower = 25 +speed_support = 50 +support_interface_enable = True + diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.4_cffcpe_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.4_cffcpe_0.15mm.inst.cfg new file mode 100644 index 0000000000..b53629e6f5 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_cc0.4_cffcpe_0.15mm.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = ultimaker_s8 +name = Normal +version = 4 + +[metadata] +material = generic_cffcpe +quality_type = fast +setting_version = 25 +type = quality +variant = CC 0.4 +weight = -1 + +[values] +support_bottom_distance = =support_z_distance / 2 +support_top_distance = =support_z_distance +support_z_distance = =layer_height * 2 + diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.4_cffcpe_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.4_cffcpe_0.2mm.inst.cfg new file mode 100644 index 0000000000..22f5c48300 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_cc0.4_cffcpe_0.2mm.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = generic_cffcpe +quality_type = draft +setting_version = 25 +type = quality +variant = CC 0.4 +weight = -2 + +[values] +support_bottom_distance = =support_z_distance / 2 +support_top_distance = =support_z_distance +support_z_distance = =layer_height * 2 + diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.4_cffpa_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.4_cffpa_0.15mm.inst.cfg new file mode 100644 index 0000000000..3a708cbe4a --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_cc0.4_cffpa_0.15mm.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = ultimaker_s8 +name = Normal +version = 4 + +[metadata] +material = generic_cffpa +quality_type = fast +setting_version = 25 +type = quality +variant = CC 0.4 +weight = -1 + +[values] +support_bottom_distance = =support_z_distance / 2 +support_top_distance = =support_z_distance +support_z_distance = =layer_height * 2 + diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.4_cffpa_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.4_cffpa_0.2mm.inst.cfg new file mode 100644 index 0000000000..e495ae41ae --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_cc0.4_cffpa_0.2mm.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = generic_cffpa +quality_type = draft +setting_version = 25 +type = quality +variant = CC 0.4 +weight = -2 + +[values] +support_bottom_distance = =support_z_distance / 2 +support_top_distance = =support_z_distance +support_z_distance = =layer_height * 2 + diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.4_gffcpe_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.4_gffcpe_0.15mm.inst.cfg new file mode 100644 index 0000000000..053817040e --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_cc0.4_gffcpe_0.15mm.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = ultimaker_s8 +name = Normal +version = 4 + +[metadata] +material = generic_gffcpe +quality_type = fast +setting_version = 25 +type = quality +variant = CC 0.4 +weight = -1 + +[values] +support_bottom_distance = =support_z_distance / 2 +support_top_distance = =support_z_distance +support_z_distance = =layer_height * 2 + diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.4_gffcpe_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.4_gffcpe_0.2mm.inst.cfg new file mode 100644 index 0000000000..22dce0b6c2 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_cc0.4_gffcpe_0.2mm.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = generic_gffcpe +quality_type = draft +setting_version = 25 +type = quality +variant = CC 0.4 +weight = -2 + +[values] +support_bottom_distance = =support_z_distance / 2 +support_top_distance = =support_z_distance +support_z_distance = =layer_height * 2 + diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.4_gffpa_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.4_gffpa_0.15mm.inst.cfg new file mode 100644 index 0000000000..d6b95bb453 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_cc0.4_gffpa_0.15mm.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = ultimaker_s8 +name = Normal +version = 4 + +[metadata] +material = generic_gffpa +quality_type = fast +setting_version = 25 +type = quality +variant = CC 0.4 +weight = -1 + +[values] +support_bottom_distance = =support_z_distance / 2 +support_top_distance = =support_z_distance +support_z_distance = =layer_height * 2 + diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.4_gffpa_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.4_gffpa_0.2mm.inst.cfg new file mode 100644 index 0000000000..7f04dac417 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_cc0.4_gffpa_0.2mm.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = generic_gffpa +quality_type = draft +setting_version = 25 +type = quality +variant = CC 0.4 +weight = -2 + +[values] +support_bottom_distance = =support_z_distance / 2 +support_top_distance = =support_z_distance +support_z_distance = =layer_height * 2 + diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.4_nylon-cf-slide_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.4_nylon-cf-slide_0.2mm.inst.cfg new file mode 100644 index 0000000000..e6f862155f --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_cc0.4_nylon-cf-slide_0.2mm.inst.cfg @@ -0,0 +1,19 @@ +[general] +definition = ultimaker_s8 +name = Fast - Experimental +version = 4 + +[metadata] +is_experimental = True +material = generic_nylon-cf-slide +quality_type = draft +setting_version = 25 +type = quality +variant = CC 0.4 +weight = -2 + +[values] +support_bottom_distance = =support_z_distance / 2 +support_top_distance = =support_z_distance +support_z_distance = =layer_height * 2 + diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.4_petcf_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.4_petcf_0.15mm.inst.cfg new file mode 100644 index 0000000000..24fc4c98f9 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_cc0.4_petcf_0.15mm.inst.cfg @@ -0,0 +1,30 @@ +[general] +definition = ultimaker_s8 +name = Normal +version = 4 + +[metadata] +material = generic_petcf +quality_type = fast +setting_version = 25 +type = quality +variant = CC 0.4 +weight = -1 + +[values] +cool_fan_speed_max = =cool_fan_speed +infill_overlap = =0 if infill_sparse_density > 80 else 10 +raft_airgap = =layer_height * 2 +skin_overlap = 20 +speed_infill = =speed_print +speed_print = 30 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height +top_bottom_thickness = 0.8 + diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.4_petcf_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.4_petcf_0.2mm.inst.cfg new file mode 100644 index 0000000000..334d7e7098 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_cc0.4_petcf_0.2mm.inst.cfg @@ -0,0 +1,30 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = generic_petcf +quality_type = draft +setting_version = 25 +type = quality +variant = CC 0.4 +weight = -2 + +[values] +cool_fan_speed_max = =cool_fan_speed +infill_overlap = =0 if infill_sparse_density > 80 else 10 +raft_airgap = =layer_height * 2 +skin_overlap = 20 +speed_infill = =speed_print +speed_print = 25 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height +top_bottom_thickness = 0.8 + diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.4_pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.4_pla_0.15mm.inst.cfg new file mode 100644 index 0000000000..d938e7f172 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_cc0.4_pla_0.15mm.inst.cfg @@ -0,0 +1,28 @@ +[general] +definition = ultimaker_s8 +name = Normal - Experimental +version = 4 + +[metadata] +is_experimental = True +material = generic_pla +quality_type = fast +setting_version = 25 +type = quality +variant = CC 0.4 +weight = -1 + +[values] +gradual_infill_step_height = =3 * layer_height +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +machine_nozzle_cool_down_speed = 0.75 +machine_nozzle_heat_up_speed = 1.6 +material_print_temperature = =default_material_print_temperature + 10 +speed_print = 45 +speed_topbottom = =math.ceil(speed_print * 35 / 45) +speed_wall = =math.ceil(speed_print * 40 / 45) +speed_wall_0 = =math.ceil(speed_wall * 35 / 40) +speed_wall_x = =speed_wall +support_angle = 70 +top_bottom_thickness = =layer_height * 4 + diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.4_pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.4_pla_0.2mm.inst.cfg new file mode 100644 index 0000000000..83fa334dc2 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_cc0.4_pla_0.2mm.inst.cfg @@ -0,0 +1,28 @@ +[general] +definition = ultimaker_s8 +name = Fast - Experimental +version = 4 + +[metadata] +is_experimental = True +material = generic_pla +quality_type = draft +setting_version = 25 +type = quality +variant = CC 0.4 +weight = -2 + +[values] +gradual_infill_step_height = =3 * layer_height +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +machine_nozzle_cool_down_speed = 0.75 +machine_nozzle_heat_up_speed = 1.6 +material_print_temperature = =default_material_print_temperature + 10 +speed_print = 45 +speed_topbottom = =math.ceil(speed_print * 35 / 45) +speed_wall = =math.ceil(speed_print * 40 / 45) +speed_wall_0 = =math.ceil(speed_wall * 35 / 40) +speed_wall_x = =speed_wall +support_angle = 70 +top_bottom_thickness = =layer_height * 4 + diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.4_um-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.4_um-pla_0.15mm.inst.cfg new file mode 100644 index 0000000000..787197e7c6 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_cc0.4_um-pla_0.15mm.inst.cfg @@ -0,0 +1,28 @@ +[general] +definition = ultimaker_s8 +name = Normal - Experimental +version = 4 + +[metadata] +is_experimental = True +material = ultimaker_pla +quality_type = fast +setting_version = 25 +type = quality +variant = CC 0.4 +weight = -1 + +[values] +gradual_infill_step_height = =3 * layer_height +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +machine_nozzle_cool_down_speed = 0.75 +machine_nozzle_heat_up_speed = 1.6 +material_print_temperature = =default_material_print_temperature + 10 +speed_print = 45 +speed_topbottom = =math.ceil(speed_print * 35 / 45) +speed_wall = =math.ceil(speed_print * 40 / 45) +speed_wall_0 = =math.ceil(speed_wall * 35 / 40) +speed_wall_x = =speed_wall +support_angle = 70 +top_bottom_thickness = =layer_height * 4 + diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.4_um-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.4_um-pla_0.2mm.inst.cfg new file mode 100644 index 0000000000..460ccb8d1f --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_cc0.4_um-pla_0.2mm.inst.cfg @@ -0,0 +1,28 @@ +[general] +definition = ultimaker_s8 +name = Fast - Experimental +version = 4 + +[metadata] +is_experimental = True +material = ultimaker_pla +quality_type = draft +setting_version = 25 +type = quality +variant = CC 0.4 +weight = -2 + +[values] +gradual_infill_step_height = =3 * layer_height +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +machine_nozzle_cool_down_speed = 0.75 +machine_nozzle_heat_up_speed = 1.6 +material_print_temperature = =default_material_print_temperature + 10 +speed_print = 45 +speed_topbottom = =math.ceil(speed_print * 35 / 45) +speed_wall = =math.ceil(speed_print * 40 / 45) +speed_wall_0 = =math.ceil(speed_wall * 35 / 40) +speed_wall_x = =speed_wall +support_angle = 70 +top_bottom_thickness = =layer_height * 4 + diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.6_cffcpe_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.6_cffcpe_0.2mm.inst.cfg new file mode 100644 index 0000000000..f7495f89a9 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_cc0.6_cffcpe_0.2mm.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = generic_cffcpe +quality_type = draft +setting_version = 25 +type = quality +variant = CC 0.6 +weight = -2 + +[values] +support_bottom_distance = =support_z_distance / 2 +support_top_distance = =support_z_distance +support_z_distance = =layer_height * 2 + diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.6_cffpa_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.6_cffpa_0.2mm.inst.cfg new file mode 100644 index 0000000000..be7480628e --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_cc0.6_cffpa_0.2mm.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = generic_cffpa +quality_type = draft +setting_version = 25 +type = quality +variant = CC 0.6 +weight = -2 + +[values] +support_bottom_distance = =support_z_distance / 2 +support_top_distance = =support_z_distance +support_z_distance = =layer_height * 2 + diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.6_gffcpe_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.6_gffcpe_0.2mm.inst.cfg new file mode 100644 index 0000000000..8da22d3145 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_cc0.6_gffcpe_0.2mm.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = generic_gffcpe +quality_type = draft +setting_version = 25 +type = quality +variant = CC 0.6 +weight = -2 + +[values] +support_bottom_distance = =support_z_distance / 2 +support_top_distance = =support_z_distance +support_z_distance = =layer_height * 2 + diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.6_gffpa_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.6_gffpa_0.2mm.inst.cfg new file mode 100644 index 0000000000..8e4e9be901 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_cc0.6_gffpa_0.2mm.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = generic_gffpa +quality_type = draft +setting_version = 25 +type = quality +variant = CC 0.6 +weight = -2 + +[values] +support_bottom_distance = =support_z_distance / 2 +support_top_distance = =support_z_distance +support_z_distance = =layer_height * 2 + diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.6_nylon-cf-slide_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.6_nylon-cf-slide_0.2mm.inst.cfg new file mode 100644 index 0000000000..5714509210 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_cc0.6_nylon-cf-slide_0.2mm.inst.cfg @@ -0,0 +1,18 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = generic_nylon-cf-slide +quality_type = draft +setting_version = 25 +type = quality +variant = CC 0.6 +weight = -2 + +[values] +support_bottom_distance = =support_z_distance / 2 +support_top_distance = =support_z_distance +support_z_distance = =layer_height * 2 + diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.6_petcf_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.6_petcf_0.15mm.inst.cfg new file mode 100644 index 0000000000..cd9a0e5446 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_cc0.6_petcf_0.15mm.inst.cfg @@ -0,0 +1,30 @@ +[general] +definition = ultimaker_s8 +name = Normal +version = 4 + +[metadata] +material = generic_petcf +quality_type = fast +setting_version = 25 +type = quality +variant = CC 0.6 +weight = -1 + +[values] +cool_fan_speed_max = =cool_fan_speed +infill_overlap = =0 if infill_sparse_density > 80 else 10 +raft_airgap = =layer_height * 2 +skin_overlap = 20 +speed_infill = =speed_print +speed_print = 30 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height +top_bottom_thickness = 1.2 + diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.6_petcf_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.6_petcf_0.2mm.inst.cfg new file mode 100644 index 0000000000..4b7933ac61 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_cc0.6_petcf_0.2mm.inst.cfg @@ -0,0 +1,30 @@ +[general] +definition = ultimaker_s8 +name = Fast +version = 4 + +[metadata] +material = generic_petcf +quality_type = draft +setting_version = 25 +type = quality +variant = CC 0.6 +weight = -2 + +[values] +cool_fan_speed_max = =cool_fan_speed +infill_overlap = =0 if infill_sparse_density > 80 else 10 +raft_airgap = =layer_height * 2 +skin_overlap = 20 +speed_infill = =speed_print +speed_print = 30 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height +top_bottom_thickness = 1.2 + diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.6_petcf_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.6_petcf_0.3mm.inst.cfg new file mode 100644 index 0000000000..c095e01c58 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_cc0.6_petcf_0.3mm.inst.cfg @@ -0,0 +1,30 @@ +[general] +definition = ultimaker_s8 +name = Extra Fast +version = 4 + +[metadata] +material = generic_petcf +quality_type = verydraft +setting_version = 25 +type = quality +variant = CC 0.6 +weight = -3 + +[values] +cool_fan_speed_max = =cool_fan_speed +infill_overlap = =0 if infill_sparse_density > 80 else 10 +raft_airgap = =layer_height * 2 +skin_overlap = 20 +speed_infill = =speed_print +speed_print = 30 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +support_bottom_distance = =support_z_distance +support_interface_enable = True +support_top_distance = =support_z_distance +support_z_distance = =math.ceil(0.3/layer_height)*layer_height +top_bottom_thickness = 1.2 + diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.6_pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.6_pla_0.15mm.inst.cfg new file mode 100644 index 0000000000..f53ead83cb --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_cc0.6_pla_0.15mm.inst.cfg @@ -0,0 +1,28 @@ +[general] +definition = ultimaker_s8 +name = Normal - Experimental +version = 4 + +[metadata] +is_experimental = True +material = generic_pla +quality_type = fast +setting_version = 25 +type = quality +variant = CC 0.6 +weight = -1 + +[values] +gradual_infill_step_height = =3 * layer_height +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +machine_nozzle_cool_down_speed = 0.75 +machine_nozzle_heat_up_speed = 1.6 +material_print_temperature = =default_material_print_temperature + 10 +speed_print = 45 +speed_topbottom = =math.ceil(speed_print * 35 / 45) +speed_wall = =math.ceil(speed_print * 40 / 45) +speed_wall_0 = =math.ceil(speed_wall * 35 / 40) +speed_wall_x = =speed_wall +support_angle = 70 +top_bottom_thickness = =layer_height * 4 + diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.6_pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.6_pla_0.2mm.inst.cfg new file mode 100644 index 0000000000..d9b570c843 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_cc0.6_pla_0.2mm.inst.cfg @@ -0,0 +1,28 @@ +[general] +definition = ultimaker_s8 +name = Fast - Experimental +version = 4 + +[metadata] +is_experimental = True +material = generic_pla +quality_type = draft +setting_version = 25 +type = quality +variant = CC 0.6 +weight = -2 + +[values] +gradual_infill_step_height = =3 * layer_height +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +machine_nozzle_cool_down_speed = 0.75 +machine_nozzle_heat_up_speed = 1.6 +material_print_temperature = =default_material_print_temperature + 10 +speed_print = 45 +speed_topbottom = =math.ceil(speed_print * 35 / 45) +speed_wall = =math.ceil(speed_print * 40 / 45) +speed_wall_0 = =math.ceil(speed_wall * 35 / 40) +speed_wall_x = =speed_wall +support_angle = 70 +top_bottom_thickness = =layer_height * 4 + diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.6_um-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.6_um-pla_0.15mm.inst.cfg new file mode 100644 index 0000000000..2406339630 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_cc0.6_um-pla_0.15mm.inst.cfg @@ -0,0 +1,28 @@ +[general] +definition = ultimaker_s8 +name = Normal - Experimental +version = 4 + +[metadata] +is_experimental = True +material = ultimaker_pla +quality_type = fast +setting_version = 25 +type = quality +variant = CC 0.6 +weight = -1 + +[values] +gradual_infill_step_height = =3 * layer_height +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +machine_nozzle_cool_down_speed = 0.75 +machine_nozzle_heat_up_speed = 1.6 +material_print_temperature = =default_material_print_temperature + 10 +speed_print = 45 +speed_topbottom = =math.ceil(speed_print * 35 / 45) +speed_wall = =math.ceil(speed_print * 40 / 45) +speed_wall_0 = =math.ceil(speed_wall * 35 / 40) +speed_wall_x = =speed_wall +support_angle = 70 +top_bottom_thickness = =layer_height * 4 + diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.6_um-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.6_um-pla_0.2mm.inst.cfg new file mode 100644 index 0000000000..7f5c035509 --- /dev/null +++ b/resources/quality/ultimaker_s8/um_s8_cc0.6_um-pla_0.2mm.inst.cfg @@ -0,0 +1,28 @@ +[general] +definition = ultimaker_s8 +name = Fast - Experimental +version = 4 + +[metadata] +is_experimental = True +material = ultimaker_pla +quality_type = draft +setting_version = 25 +type = quality +variant = CC 0.6 +weight = -2 + +[values] +gradual_infill_step_height = =3 * layer_height +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +machine_nozzle_cool_down_speed = 0.75 +machine_nozzle_heat_up_speed = 1.6 +material_print_temperature = =default_material_print_temperature + 10 +speed_print = 45 +speed_topbottom = =math.ceil(speed_print * 35 / 45) +speed_wall = =math.ceil(speed_print * 40 / 45) +speed_wall_0 = =math.ceil(speed_wall * 35 / 40) +speed_wall_x = =speed_wall +support_angle = 70 +top_bottom_thickness = =layer_height * 4 + diff --git a/resources/variants/ultimaker_s6_aa025.inst.cfg b/resources/variants/ultimaker_s6_aa025.inst.cfg new file mode 100644 index 0000000000..72c530b778 --- /dev/null +++ b/resources/variants/ultimaker_s6_aa025.inst.cfg @@ -0,0 +1,188 @@ +[general] +definition = ultimaker_s6 +name = AA 0.25 +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 25 +type = variant + +[values] +acceleration_flooring = =acceleration_topbottom +acceleration_infill = =acceleration_print +acceleration_layer_0 = =acceleration_topbottom +acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 3500) +acceleration_print = 3500 +acceleration_print_layer_0 = =acceleration_layer_0 +acceleration_roofing = =acceleration_topbottom +acceleration_skirt_brim = =acceleration_layer_0 +acceleration_support = =math.ceil(acceleration_print * 2000 / 3500) +acceleration_support_bottom = =extruderValue(support_bottom_extruder_nr, 'acceleration_support_interface') +acceleration_support_infill = =acceleration_support +acceleration_support_interface = =acceleration_topbottom +acceleration_support_roof = =extruderValue(support_roof_extruder_nr, 'acceleration_support_interface') +acceleration_topbottom = =math.ceil(acceleration_print * 1000 / 3500) +acceleration_travel = =acceleration_print if magic_spiralize else 5000 +acceleration_travel_enabled = False +acceleration_travel_layer_0 = =acceleration_layer_0 * acceleration_travel / acceleration_print +acceleration_wall = =math.ceil(acceleration_print * 1500 / 3500) +acceleration_wall_0 = =math.ceil(acceleration_wall * 1000 / 1000) +acceleration_wall_0_flooring = =acceleration_wall_0 +acceleration_wall_0_roofing = =acceleration_wall_0 +acceleration_wall_x = =acceleration_wall +acceleration_wall_x_flooring = =acceleration_wall_x +acceleration_wall_x_roofing = =acceleration_wall_x +adhesion_type = brim +bottom_thickness = =top_bottom_thickness +bridge_enable_more_layers = False +bridge_skin_density = 80 +bridge_skin_material_flow = =skin_material_flow +bridge_skin_material_flow_2 = =skin_material_flow +bridge_skin_speed = =speed_topbottom +bridge_skin_speed_2 = =speed_topbottom +bridge_sparse_infill_max_density = 0 +bridge_wall_material_flow = =wall_material_flow +bridge_wall_min_length = =line_width + support_xy_distance + 1.0 +bridge_wall_speed = =bridge_skin_speed +brim_width = 7 +cool_during_extruder_switch = unchanged +cool_min_layer_time = 0 +cool_min_layer_time_overhang = =cool_min_layer_time +cool_min_layer_time_overhang_min_segment_length = 5 +cool_min_speed = =round(speed_wall_0 * 3 / 4) if cool_lift_head else round(speed_wall_0 / 5) +cool_min_temperature = =max([material_final_print_temperature, material_initial_print_temperature, material_print_temperature - 15]) +extra_infill_lines_to_support_skins = none +flooring_layer_count = 0 +gradual_flow_enabled = False +hole_xy_offset = 0 +infill_material_flow = =(1.95-infill_sparse_density / 100 if infill_sparse_density > 95 else 1) * material_flow +infill_overlap = =0 if infill_sparse_density > 80 else 10 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_sparse_density = 20 +infill_wall_line_count = 0 +initial_bottom_layers = =bottom_layers +jerk_flooring = =jerk_topbottom +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_print +jerk_prime_tower = =jerk_print +jerk_print = 4000 +jerk_print_layer_0 = =max(4000, jerk_wall_0) +jerk_roofing = =jerk_topbottom +jerk_skirt_brim = =jerk_layer_0 +jerk_support = =jerk_print +jerk_support_bottom = =extruderValue(support_roof_extruder_nr, 'jerk_support_interface') +jerk_support_infill = =jerk_support +jerk_support_interface = =jerk_support +jerk_support_roof = =extruderValue(support_roof_extruder_nr, 'jerk_support_interface') +jerk_topbottom = =jerk_print +jerk_travel = =jerk_print +jerk_travel_layer_0 = =jerk_layer_0 * jerk_travel / jerk_print +jerk_wall = =jerk_print +jerk_wall_0 = =jerk_wall +jerk_wall_0_flooring = =jerk_wall_0 +jerk_wall_0_roofing = =jerk_wall_0 +jerk_wall_x = =jerk_wall +jerk_wall_x_flooring = =jerk_wall_x +jerk_wall_x_roofing = =jerk_wall_x +machine_nozzle_cool_down_speed = 0.85 +machine_nozzle_heat_up_speed = 1.5 +machine_nozzle_id = AA 0.25 +machine_nozzle_size = 0.25 +machine_nozzle_tip_outer_diameter = 0.65 +material_extrusion_cool_down_speed = 0.7 +material_final_print_temperature = =max(-273.15, material_print_temperature - 15) +material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) +material_pressure_advance_factor = 0.05 +max_flow_acceleration = 1 +max_skin_angle_for_expansion = 90 +meshfix_maximum_resolution = =max(speed_wall_0 / 75, 0.5) +min_infill_area = 0 +optimize_wall_printing_order = True +prime_tower_brim_enable = =resolveOrValue('adhesion_type') in ['raft', 'brim'] +prime_tower_min_volume = 6 +retraction_amount = 6.5 +retraction_combing_avoid_distance = =machine_nozzle_size * 1.5 +retraction_combing_max_distance = 15 +retraction_hop = 2 +retraction_hop_after_extruder_switch_height = =retraction_hop +retraction_hop_enabled = =extruders_enabled_count > 1 +retraction_min_travel = 5 +retraction_prime_speed = =retraction_speed +skin_edge_support_thickness = =4 * layer_height if infill_sparse_density < 30 else 0 +skin_material_flow = =0.95 * material_flow +skin_outline_count = =0 if top_bottom_pattern == 'concentric' and top_bottom_pattern_0 == 'concentric' and roofing_layer_count <= 0 else 1 +skin_overlap = 20 +skin_preshrink = =wall_line_width_0 + (wall_line_count - 1) * wall_line_width_x +skirt_brim_minimal_length = 250 +skirt_brim_speed = =speed_layer_0 +skirt_line_count = 1 +small_skin_on_surface = False +small_skin_width = =skin_line_width * 2 +speed_flooring = =speed_topbottom +speed_infill = =speed_print +speed_ironing = =speed_topbottom * 20 / 30 +speed_layer_0 = =min(30, layer_height / layer_height_0 * speed_wall_0) +speed_prime_tower = =speed_topbottom +speed_print = 55 +speed_print_layer_0 = =speed_layer_0 +speed_roofing = =speed_topbottom +speed_support = =speed_wall_0 +speed_support_bottom = =extruderValue(support_bottom_extruder_nr, 'speed_support_interface') +speed_support_infill = =speed_support +speed_support_interface = =speed_topbottom +speed_support_roof = =extruderValue(support_roof_extruder_nr, 'speed_support_interface') +speed_topbottom = 20 +speed_travel = 150 +speed_travel_layer_0 = =speed_travel +speed_wall = =math.ceil(speed_print * 30 / 55) +speed_wall_0 = =math.ceil(speed_wall * 20 / 30) +speed_wall_0_flooring = =speed_wall_0 +speed_wall_0_roofing = =speed_wall_0 +speed_wall_x = =speed_wall +speed_wall_x_flooring = =speed_wall_x +speed_wall_x_roofing = =speed_wall_x +support_angle = 60 +support_bottom_distance = =support_z_distance / 2 +support_bottom_offset = =extruderValue(support_bottom_extruder_nr, 'support_interface_offset') +support_brim_width = =(skirt_brim_line_width * initial_layer_line_width_factor / 100.0) * 3 +support_interface_enable = False +support_interface_offset = =support_offset +support_line_width = =line_width +support_offset = =support_line_width + 0.4 if support_structure == 'normal' else 0.0 +support_pattern = zigzag +support_structure = normal +support_top_distance = =support_z_distance +support_tree_angle = =max(min(support_angle, 85), 20) +support_tree_angle_slow = =support_tree_angle * 2 / 3 +support_tree_bp_diameter = 7.5 +support_tree_branch_diameter = 5 +support_tree_branch_diameter_angle = 7 +support_tree_max_diameter = 25 +support_tree_tip_diameter = =support_line_width * 2 +support_tree_top_rate = =30 if support_roof_enable else 10 +support_xy_distance = 0.7 +support_xy_distance_overhang = 0.2 +support_z_distance = =layer_height * 2 +switch_extruder_prime_speed = =switch_extruder_retraction_speeds +switch_extruder_retraction_amount = =machine_heat_zone_length +top_bottom_thickness = 1.2 +travel_avoid_other_parts = True +travel_avoid_supports = False +wall_0_acceleration = 20.0 +wall_0_deceleration = 20.0 +wall_0_end_speed_ratio = 100.0 +wall_0_inset = 0 +wall_0_speed_split_distance = 1.0 +wall_0_start_speed_ratio = 100.0 +wall_0_wipe_dist = =machine_nozzle_size / 2 +wall_material_flow = =material_flow +wall_overhang_angle = 90 +wall_thickness = =wall_line_width_0 + wall_line_width_x * 2 +wall_x_material_flow = =wall_material_flow +xy_offset = =-layer_height * 0.1 +xy_offset_layer_0 = =(-0.2 if adhesion_type == "skirt" or adhesion_type == "none" else 0) + xy_offset +z_seam_corner = z_seam_corner_weighted +z_seam_position = back +z_seam_type = sharpest_corner + diff --git a/resources/variants/ultimaker_s6_aa04.inst.cfg b/resources/variants/ultimaker_s6_aa04.inst.cfg new file mode 100644 index 0000000000..dc00a1716c --- /dev/null +++ b/resources/variants/ultimaker_s6_aa04.inst.cfg @@ -0,0 +1,185 @@ +[general] +definition = ultimaker_s6 +name = AA 0.4 +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 25 +type = variant + +[values] +acceleration_flooring = =acceleration_topbottom +acceleration_infill = =acceleration_print +acceleration_layer_0 = =acceleration_topbottom +acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 3500) +acceleration_print = 3500 +acceleration_print_layer_0 = =acceleration_layer_0 +acceleration_roofing = =acceleration_topbottom +acceleration_skirt_brim = =acceleration_layer_0 +acceleration_support = =math.ceil(acceleration_print * 2000 / 3500) +acceleration_support_bottom = =extruderValue(support_bottom_extruder_nr, 'acceleration_support_interface') +acceleration_support_infill = =acceleration_support +acceleration_support_interface = =acceleration_topbottom +acceleration_support_roof = =extruderValue(support_roof_extruder_nr, 'acceleration_support_interface') +acceleration_topbottom = =math.ceil(acceleration_print * 1000 / 3500) +acceleration_travel = =acceleration_print if magic_spiralize else 5000 +acceleration_travel_enabled = False +acceleration_travel_layer_0 = =acceleration_layer_0 * acceleration_travel / acceleration_print +acceleration_wall = =math.ceil(acceleration_print * 1500 / 3500) +acceleration_wall_0 = =math.ceil(acceleration_wall * 1000 / 1000) +acceleration_wall_0_flooring = =acceleration_wall_0 +acceleration_wall_0_roofing = =acceleration_wall_0 +acceleration_wall_x = =acceleration_wall +acceleration_wall_x_flooring = =acceleration_wall_x +acceleration_wall_x_roofing = =acceleration_wall_x +adhesion_type = brim +bottom_thickness = =top_bottom_thickness +bridge_enable_more_layers = False +bridge_skin_density = 80 +bridge_skin_material_flow = =skin_material_flow +bridge_skin_material_flow_2 = =skin_material_flow +bridge_skin_speed = =speed_topbottom +bridge_skin_speed_2 = =speed_topbottom +bridge_sparse_infill_max_density = 0 +bridge_wall_material_flow = =wall_material_flow +bridge_wall_min_length = =line_width + support_xy_distance + 1.0 +bridge_wall_speed = =bridge_skin_speed +brim_width = 7 +cool_during_extruder_switch = unchanged +cool_min_layer_time = 6 +cool_min_layer_time_overhang = =cool_min_layer_time +cool_min_layer_time_overhang_min_segment_length = 5 +cool_min_speed = =round(speed_wall_0 * 3 / 4) if cool_lift_head else round(speed_wall_0 / 5) +cool_min_temperature = =max([material_final_print_temperature, material_initial_print_temperature, material_print_temperature - 15]) +extra_infill_lines_to_support_skins = none +flooring_layer_count = 0 +gradual_flow_enabled = False +hole_xy_offset = 0 +infill_material_flow = =(1.95-infill_sparse_density / 100 if infill_sparse_density > 95 else 1) * material_flow +infill_overlap = =0 if infill_sparse_density > 80 else 10 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_sparse_density = 20 +infill_wall_line_count = 0 +initial_bottom_layers = =bottom_layers +jerk_flooring = =jerk_topbottom +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_print +jerk_prime_tower = =jerk_print +jerk_print = 4000 +jerk_print_layer_0 = =max(4000, jerk_wall_0) +jerk_roofing = =jerk_topbottom +jerk_skirt_brim = =jerk_layer_0 +jerk_support = =jerk_print +jerk_support_bottom = =extruderValue(support_roof_extruder_nr, 'jerk_support_interface') +jerk_support_infill = =jerk_support +jerk_support_interface = =jerk_support +jerk_support_roof = =extruderValue(support_roof_extruder_nr, 'jerk_support_interface') +jerk_topbottom = =jerk_print +jerk_travel = =jerk_print +jerk_travel_layer_0 = =jerk_layer_0 * jerk_travel / jerk_print +jerk_wall = =jerk_print +jerk_wall_0 = =jerk_wall +jerk_wall_0_flooring = =jerk_wall_0 +jerk_wall_0_roofing = =jerk_wall_0 +jerk_wall_x = =jerk_wall +jerk_wall_x_flooring = =jerk_wall_x +jerk_wall_x_roofing = =jerk_wall_x +machine_nozzle_cool_down_speed = 0.9 +machine_nozzle_id = AA 0.4 +machine_nozzle_size = 0.4 +machine_nozzle_tip_outer_diameter = 1.0 +material_extrusion_cool_down_speed = 0.7 +material_final_print_temperature = =max(-273.15, material_print_temperature - 15) +material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) +material_pressure_advance_factor = 0.05 +max_flow_acceleration = 1 +max_skin_angle_for_expansion = 90 +meshfix_maximum_resolution = =max(speed_wall_0 / 75, 0.5) +min_infill_area = 0 +optimize_wall_printing_order = True +prime_tower_brim_enable = =resolveOrValue('adhesion_type') in ['raft', 'brim'] +prime_tower_min_volume = 6 +retraction_amount = 6.5 +retraction_combing_avoid_distance = =machine_nozzle_size * 1.5 +retraction_combing_max_distance = 15 +retraction_hop = 2 +retraction_hop_after_extruder_switch_height = =retraction_hop +retraction_hop_enabled = =extruders_enabled_count > 1 +retraction_min_travel = 5 +retraction_prime_speed = 15 +skin_edge_support_thickness = =4 * layer_height if infill_sparse_density < 30 else 0 +skin_material_flow = =0.95 * material_flow +skin_outline_count = =0 if top_bottom_pattern == 'concentric' and top_bottom_pattern_0 == 'concentric' and roofing_layer_count <= 0 else 1 +skin_overlap = 20 +skin_preshrink = =wall_line_width_0 + (wall_line_count - 1) * wall_line_width_x +skirt_brim_minimal_length = 250 +skirt_brim_speed = =speed_layer_0 +skirt_line_count = 1 +small_skin_on_surface = False +small_skin_width = =skin_line_width * 2 +speed_flooring = =speed_topbottom +speed_infill = =speed_print +speed_ironing = =speed_topbottom * 20 / 30 +speed_layer_0 = =min(30, layer_height / layer_height_0 * speed_wall_0) +speed_prime_tower = =speed_topbottom +speed_print = 70 +speed_print_layer_0 = =speed_layer_0 +speed_roofing = =speed_topbottom +speed_support = =speed_wall_0 +speed_support_bottom = =extruderValue(support_bottom_extruder_nr, 'speed_support_interface') +speed_support_infill = =speed_support +speed_support_interface = =speed_topbottom +speed_support_roof = =extruderValue(support_roof_extruder_nr, 'speed_support_interface') +speed_topbottom = =math.ceil(speed_print * 30 / 70) +speed_travel = 150 +speed_travel_layer_0 = =speed_travel +speed_wall = =math.ceil(speed_print * 30 / 70) +speed_wall_0 = =math.ceil(speed_wall * 20 / 30) +speed_wall_0_flooring = =speed_wall_0 +speed_wall_0_roofing = =speed_wall_0 +speed_wall_x = =speed_wall +speed_wall_x_flooring = =speed_wall_x +speed_wall_x_roofing = =speed_wall_x +support_angle = 60 +support_bottom_distance = =support_z_distance / 2 +support_bottom_offset = =extruderValue(support_bottom_extruder_nr, 'support_interface_offset') +support_brim_width = =(skirt_brim_line_width * initial_layer_line_width_factor / 100.0) * 3 +support_interface_enable = False +support_interface_offset = =support_offset +support_line_width = =line_width +support_offset = =support_line_width + 0.4 if support_structure == 'normal' else 0.0 +support_pattern = zigzag +support_structure = normal +support_top_distance = =support_z_distance +support_tree_angle = =max(min(support_angle, 85), 20) +support_tree_angle_slow = =support_tree_angle * 2 / 3 +support_tree_bp_diameter = 7.5 +support_tree_branch_diameter = 5 +support_tree_branch_diameter_angle = 7 +support_tree_max_diameter = 25 +support_tree_tip_diameter = =support_line_width * 2 +support_tree_top_rate = =30 if support_roof_enable else 10 +support_xy_distance = 0.7 +support_xy_distance_overhang = 0.2 +support_z_distance = =layer_height * 2 +switch_extruder_prime_speed = =switch_extruder_retraction_speeds +switch_extruder_retraction_amount = =machine_heat_zone_length +top_bottom_thickness = 1.2 +travel_avoid_other_parts = True +travel_avoid_supports = False +wall_0_acceleration = 20.0 +wall_0_deceleration = 20.0 +wall_0_end_speed_ratio = 100.0 +wall_0_inset = 0 +wall_0_speed_split_distance = 1.0 +wall_0_start_speed_ratio = 100.0 +wall_0_wipe_dist = =machine_nozzle_size / 2 +wall_material_flow = =material_flow +wall_overhang_angle = 90 +wall_x_material_flow = =wall_material_flow +xy_offset = =-layer_height * 0.1 +z_seam_corner = z_seam_corner_weighted +z_seam_position = back +z_seam_type = sharpest_corner + diff --git a/resources/variants/ultimaker_s6_aa08.inst.cfg b/resources/variants/ultimaker_s6_aa08.inst.cfg new file mode 100644 index 0000000000..216ee6934e --- /dev/null +++ b/resources/variants/ultimaker_s6_aa08.inst.cfg @@ -0,0 +1,197 @@ +[general] +definition = ultimaker_s6 +name = AA 0.8 +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 25 +type = variant + +[values] +acceleration_flooring = =acceleration_topbottom +acceleration_infill = =acceleration_print +acceleration_layer_0 = =acceleration_topbottom +acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 3500) +acceleration_print = 3500 +acceleration_print_layer_0 = =acceleration_layer_0 +acceleration_roofing = =acceleration_topbottom +acceleration_skirt_brim = =acceleration_layer_0 +acceleration_support = =math.ceil(acceleration_print * 2000 / 3500) +acceleration_support_bottom = =extruderValue(support_bottom_extruder_nr, 'acceleration_support_interface') +acceleration_support_infill = =acceleration_support +acceleration_support_interface = =acceleration_topbottom +acceleration_support_roof = =extruderValue(support_roof_extruder_nr, 'acceleration_support_interface') +acceleration_topbottom = =math.ceil(acceleration_print * 1000 / 3500) +acceleration_travel = =acceleration_print if magic_spiralize else 5000 +acceleration_travel_enabled = False +acceleration_travel_layer_0 = =acceleration_layer_0 * acceleration_travel / acceleration_print +acceleration_wall = =math.ceil(acceleration_print * 1500 / 3500) +acceleration_wall_0 = =math.ceil(acceleration_wall * 1000 / 1000) +acceleration_wall_0_flooring = =acceleration_wall_0 +acceleration_wall_0_roofing = =acceleration_wall_0 +acceleration_wall_x = =acceleration_wall +acceleration_wall_x_flooring = =acceleration_wall_x +acceleration_wall_x_roofing = =acceleration_wall_x +adhesion_type = brim +bottom_thickness = =top_bottom_thickness +bridge_enable_more_layers = False +bridge_skin_density = 80 +bridge_skin_material_flow = =skin_material_flow +bridge_skin_material_flow_2 = =skin_material_flow +bridge_skin_speed = =speed_topbottom +bridge_skin_speed_2 = =speed_topbottom +bridge_sparse_infill_max_density = 0 +bridge_wall_material_flow = =wall_material_flow +bridge_wall_min_length = =line_width + support_xy_distance + 1.0 +bridge_wall_speed = =bridge_skin_speed +brim_width = 7 +cool_during_extruder_switch = unchanged +cool_fan_speed = 7 +cool_min_layer_time = 6 +cool_min_layer_time_overhang = =cool_min_layer_time +cool_min_layer_time_overhang_min_segment_length = 5 +cool_min_speed = =round(speed_wall_0 * 3 / 4) if cool_lift_head else round(speed_wall_0 / 5) +cool_min_temperature = =max([material_final_print_temperature, material_initial_print_temperature, material_print_temperature - 15]) +default_material_print_temperature = 200 +extra_infill_lines_to_support_skins = none +flooring_layer_count = 0 +gradual_flow_enabled = False +hole_xy_offset = 0 +infill_material_flow = =(1.95-infill_sparse_density / 100 if infill_sparse_density > 95 else 1) * material_flow +infill_overlap = =0 if infill_sparse_density > 80 else 10 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_sparse_density = 20 +infill_wall_line_count = 0 +infill_wipe_dist = 0 +initial_bottom_layers = =bottom_layers +jerk_flooring = =jerk_topbottom +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_print +jerk_prime_tower = =jerk_print +jerk_print = 5000 +jerk_print_layer_0 = =max(4000, jerk_wall_0) +jerk_roofing = =jerk_topbottom +jerk_skirt_brim = =jerk_layer_0 +jerk_support = =jerk_print +jerk_support_bottom = =extruderValue(support_roof_extruder_nr, 'jerk_support_interface') +jerk_support_infill = =jerk_support +jerk_support_interface = =jerk_support +jerk_support_roof = =extruderValue(support_roof_extruder_nr, 'jerk_support_interface') +jerk_topbottom = =jerk_print +jerk_travel = =jerk_print +jerk_travel_layer_0 = =jerk_layer_0 * jerk_travel / jerk_print +jerk_wall = =jerk_print +jerk_wall_0 = =jerk_wall +jerk_wall_0_flooring = =jerk_wall_0 +jerk_wall_0_roofing = =jerk_wall_0 +jerk_wall_x = =jerk_wall +jerk_wall_x_flooring = =jerk_wall_x +jerk_wall_x_roofing = =jerk_wall_x +layer_height = 0.2 +machine_min_cool_heat_time_window = 15 +machine_nozzle_cool_down_speed = 0.85 +machine_nozzle_heat_up_speed = 1.5 +machine_nozzle_id = AA 0.8 +machine_nozzle_size = 0.8 +machine_nozzle_tip_outer_diameter = 2.0 +material_extrusion_cool_down_speed = 0.7 +material_final_print_temperature = =max(-273.15, material_print_temperature - 15) +material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) +material_pressure_advance_factor = 0.05 +max_flow_acceleration = 1 +max_skin_angle_for_expansion = 90 +meshfix_maximum_resolution = =max(speed_wall_0 / 75, 0.5) +min_infill_area = 0 +multiple_mesh_overlap = 0 +optimize_wall_printing_order = True +prime_tower_brim_enable = =resolveOrValue('adhesion_type') in ['raft', 'brim'] +prime_tower_enable = False +prime_tower_min_volume = 6 +prime_tower_wipe_enabled = True +raft_surface_layers = 1 +retraction_amount = 6.5 +retraction_combing_avoid_distance = =machine_nozzle_size * 1.5 +retraction_combing_max_distance = 15 +retraction_hop = 2 +retraction_hop_after_extruder_switch_height = =retraction_hop +retraction_hop_enabled = =extruders_enabled_count > 1 +retraction_hop_only_when_collides = True +retraction_min_travel = 5 +retraction_prime_speed = 15 +retraction_speed = 25 +skin_edge_support_thickness = =4 * layer_height if infill_sparse_density < 30 else 0 +skin_material_flow = =0.95 * material_flow +skin_outline_count = =0 if top_bottom_pattern == 'concentric' and top_bottom_pattern_0 == 'concentric' and roofing_layer_count <= 0 else 1 +skin_overlap = 20 +skin_preshrink = =wall_line_width_0 + (wall_line_count - 1) * wall_line_width_x +skirt_brim_minimal_length = 250 +skirt_brim_speed = =speed_layer_0 +skirt_line_count = 1 +small_skin_on_surface = False +small_skin_width = =skin_line_width * 2 +speed_flooring = =speed_topbottom +speed_infill = =speed_print +speed_ironing = =speed_topbottom * 20 / 30 +speed_layer_0 = =min(30, layer_height / layer_height_0 * speed_wall_0) +speed_prime_tower = =speed_topbottom +speed_print = 35 +speed_print_layer_0 = =speed_layer_0 +speed_roofing = =speed_topbottom +speed_support = =speed_wall_0 +speed_support_bottom = =extruderValue(support_bottom_extruder_nr, 'speed_support_interface') +speed_support_infill = =speed_support +speed_support_interface = =speed_topbottom +speed_support_roof = =extruderValue(support_roof_extruder_nr, 'speed_support_interface') +speed_topbottom = =math.ceil(speed_print * 25 / 35) +speed_travel = 150 +speed_travel_layer_0 = =speed_travel +speed_wall = =math.ceil(speed_print * 30 / 35) +speed_wall_0 = =math.ceil(speed_wall * 25 / 30) +speed_wall_0_flooring = =speed_wall_0 +speed_wall_0_roofing = =speed_wall_0 +speed_wall_x = =speed_wall +speed_wall_x_flooring = =speed_wall_x +speed_wall_x_roofing = =speed_wall_x +support_angle = 60 +support_bottom_distance = =support_z_distance / 2 +support_bottom_offset = =extruderValue(support_bottom_extruder_nr, 'support_interface_offset') +support_brim_width = =(skirt_brim_line_width * initial_layer_line_width_factor / 100.0) * 3 +support_interface_enable = False +support_interface_offset = =support_offset +support_line_width = =line_width +support_offset = =support_line_width + 0.4 if support_structure == 'normal' else 0.0 +support_pattern = zigzag +support_structure = normal +support_top_distance = =support_z_distance +support_tree_angle = =max(min(support_angle, 85), 20) +support_tree_angle_slow = =support_tree_angle * 2 / 3 +support_tree_bp_diameter = 7.5 +support_tree_branch_diameter = 5 +support_tree_branch_diameter_angle = 7 +support_tree_max_diameter = 25 +support_tree_tip_diameter = =support_line_width * 2 +support_tree_top_rate = =30 if support_roof_enable else 10 +support_xy_distance = 0.7 +support_xy_distance_overhang = 0.2 +support_z_distance = =layer_height * 2 +switch_extruder_prime_speed = 20 +switch_extruder_retraction_amount = 16.5 +top_bottom_thickness = 1.4 +travel_avoid_other_parts = True +travel_avoid_supports = False +wall_0_acceleration = 20.0 +wall_0_deceleration = 20.0 +wall_0_end_speed_ratio = 100.0 +wall_0_inset = 0 +wall_0_speed_split_distance = 1.0 +wall_0_start_speed_ratio = 100.0 +wall_0_wipe_dist = =machine_nozzle_size / 2 +wall_material_flow = =material_flow +wall_overhang_angle = 90 +wall_x_material_flow = =wall_material_flow +xy_offset = =-layer_height * 0.1 +z_seam_corner = z_seam_corner_weighted +z_seam_position = back +z_seam_type = sharpest_corner + diff --git a/resources/variants/ultimaker_s6_cc04.inst.cfg b/resources/variants/ultimaker_s6_cc04.inst.cfg new file mode 100644 index 0000000000..e0794b02df --- /dev/null +++ b/resources/variants/ultimaker_s6_cc04.inst.cfg @@ -0,0 +1,184 @@ +[general] +definition = ultimaker_s6 +name = CC 0.4 +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 25 +type = variant + +[values] +acceleration_flooring = =acceleration_topbottom +acceleration_infill = =acceleration_print +acceleration_layer_0 = =acceleration_topbottom +acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 3500) +acceleration_print = 3500 +acceleration_print_layer_0 = =acceleration_layer_0 +acceleration_roofing = =acceleration_topbottom +acceleration_skirt_brim = =acceleration_layer_0 +acceleration_support = =math.ceil(acceleration_print * 2000 / 3500) +acceleration_support_bottom = =extruderValue(support_bottom_extruder_nr, 'acceleration_support_interface') +acceleration_support_infill = =acceleration_support +acceleration_support_interface = =acceleration_topbottom +acceleration_support_roof = =extruderValue(support_roof_extruder_nr, 'acceleration_support_interface') +acceleration_topbottom = =math.ceil(acceleration_print * 1000 / 3500) +acceleration_travel = =acceleration_print if magic_spiralize else 5000 +acceleration_travel_enabled = False +acceleration_travel_layer_0 = =acceleration_layer_0 * acceleration_travel / acceleration_print +acceleration_wall = =math.ceil(acceleration_print * 1500 / 3500) +acceleration_wall_0 = =math.ceil(acceleration_wall * 1000 / 1000) +acceleration_wall_0_flooring = =acceleration_wall_0 +acceleration_wall_0_roofing = =acceleration_wall_0 +acceleration_wall_x = =acceleration_wall +acceleration_wall_x_flooring = =acceleration_wall_x +acceleration_wall_x_roofing = =acceleration_wall_x +adhesion_type = brim +bottom_thickness = =top_bottom_thickness +bridge_enable_more_layers = False +bridge_skin_density = 80 +bridge_skin_material_flow = =skin_material_flow +bridge_skin_material_flow_2 = =skin_material_flow +bridge_skin_speed = =speed_topbottom +bridge_skin_speed_2 = =speed_topbottom +bridge_sparse_infill_max_density = 0 +bridge_wall_material_flow = =wall_material_flow +bridge_wall_min_length = =line_width + support_xy_distance + 1.0 +bridge_wall_speed = =bridge_skin_speed +brim_width = 7 +cool_during_extruder_switch = unchanged +cool_min_layer_time = 6 +cool_min_layer_time_overhang = =cool_min_layer_time +cool_min_layer_time_overhang_min_segment_length = 5 +cool_min_speed = =round(speed_wall_0 * 3 / 4) if cool_lift_head else round(speed_wall_0 / 5) +cool_min_temperature = =max([material_final_print_temperature, material_initial_print_temperature, material_print_temperature - 15]) +extra_infill_lines_to_support_skins = none +flooring_layer_count = 0 +gradual_flow_enabled = False +hole_xy_offset = 0 +infill_material_flow = =(1.95-infill_sparse_density / 100 if infill_sparse_density > 95 else 1) * material_flow +infill_overlap = =0 if infill_sparse_density > 80 else 10 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_sparse_density = 20 +infill_wall_line_count = 0 +initial_bottom_layers = =bottom_layers +jerk_flooring = =jerk_topbottom +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_print +jerk_prime_tower = =jerk_print +jerk_print = 4000 +jerk_print_layer_0 = =max(4000, jerk_wall_0) +jerk_roofing = =jerk_topbottom +jerk_skirt_brim = =jerk_layer_0 +jerk_support = =jerk_print +jerk_support_bottom = =extruderValue(support_roof_extruder_nr, 'jerk_support_interface') +jerk_support_infill = =jerk_support +jerk_support_interface = =jerk_support +jerk_support_roof = =extruderValue(support_roof_extruder_nr, 'jerk_support_interface') +jerk_topbottom = =jerk_print +jerk_travel = =jerk_print +jerk_travel_layer_0 = =jerk_layer_0 * jerk_travel / jerk_print +jerk_wall = =jerk_print +jerk_wall_0 = =jerk_wall +jerk_wall_0_flooring = =jerk_wall_0 +jerk_wall_0_roofing = =jerk_wall_0 +jerk_wall_x = =jerk_wall +jerk_wall_x_flooring = =jerk_wall_x +jerk_wall_x_roofing = =jerk_wall_x +machine_nozzle_cool_down_speed = 0.9 +machine_nozzle_id = CC 0.4 +machine_nozzle_size = 0.4 +material_extrusion_cool_down_speed = 0.7 +material_final_print_temperature = =max(-273.15, material_print_temperature - 15) +material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) +material_pressure_advance_factor = 0.05 +max_flow_acceleration = 1 +max_skin_angle_for_expansion = 90 +meshfix_maximum_resolution = =max(speed_wall_0 / 75, 0.5) +min_infill_area = 0 +optimize_wall_printing_order = True +prime_tower_brim_enable = =resolveOrValue('adhesion_type') in ['raft', 'brim'] +prime_tower_min_volume = 6 +retraction_amount = 6.5 +retraction_combing_avoid_distance = =machine_nozzle_size * 1.5 +retraction_combing_max_distance = 15 +retraction_hop = 2 +retraction_hop_after_extruder_switch_height = =retraction_hop +retraction_hop_enabled = =extruders_enabled_count > 1 +retraction_min_travel = 5 +retraction_prime_speed = =retraction_speed +skin_edge_support_thickness = =4 * layer_height if infill_sparse_density < 30 else 0 +skin_material_flow = =0.95 * material_flow +skin_outline_count = =0 if top_bottom_pattern == 'concentric' and top_bottom_pattern_0 == 'concentric' and roofing_layer_count <= 0 else 1 +skin_overlap = 20 +skin_preshrink = =wall_line_width_0 + (wall_line_count - 1) * wall_line_width_x +skirt_brim_minimal_length = 250 +skirt_brim_speed = =speed_layer_0 +skirt_line_count = 1 +small_skin_on_surface = False +small_skin_width = =skin_line_width * 2 +speed_flooring = =speed_topbottom +speed_infill = =speed_print +speed_ironing = =speed_topbottom * 20 / 30 +speed_layer_0 = =min(30, layer_height / layer_height_0 * speed_wall_0) +speed_prime_tower = =speed_topbottom +speed_print = 45 +speed_print_layer_0 = =speed_layer_0 +speed_roofing = =speed_topbottom +speed_support = =speed_topbottom +speed_support_bottom = =extruderValue(support_bottom_extruder_nr, 'speed_support_interface') +speed_support_infill = =speed_support +speed_support_interface = =speed_topbottom +speed_support_roof = =extruderValue(support_roof_extruder_nr, 'speed_support_interface') +speed_topbottom = =math.ceil(speed_print * 25 / 45) +speed_travel = 150 +speed_travel_layer_0 = =speed_travel +speed_wall = =math.ceil(speed_print * 30 / 45) +speed_wall_0 = =math.ceil(speed_wall * 25 / 30) +speed_wall_0_flooring = =speed_wall_0 +speed_wall_0_roofing = =speed_wall_0 +speed_wall_x = =speed_wall +speed_wall_x_flooring = =speed_wall_x +speed_wall_x_roofing = =speed_wall_x +support_angle = 60 +support_bottom_distance = =support_z_distance / 2 +support_bottom_offset = =extruderValue(support_bottom_extruder_nr, 'support_interface_offset') +support_brim_width = =(skirt_brim_line_width * initial_layer_line_width_factor / 100.0) * 3 +support_interface_enable = False +support_interface_offset = =support_offset +support_line_width = =line_width +support_offset = =support_line_width + 0.4 if support_structure == 'normal' else 0.0 +support_pattern = zigzag +support_structure = normal +support_top_distance = =support_z_distance +support_tree_angle = =max(min(support_angle, 85), 20) +support_tree_angle_slow = =support_tree_angle * 2 / 3 +support_tree_bp_diameter = 7.5 +support_tree_branch_diameter = 5 +support_tree_branch_diameter_angle = 7 +support_tree_max_diameter = 25 +support_tree_tip_diameter = =support_line_width * 2 +support_tree_top_rate = =30 if support_roof_enable else 10 +support_xy_distance = 0.7 +support_xy_distance_overhang = 0.2 +support_z_distance = =layer_height * 2 +switch_extruder_prime_speed = =switch_extruder_retraction_speeds +switch_extruder_retraction_amount = =machine_heat_zone_length +top_bottom_thickness = =layer_height * 6 +travel_avoid_other_parts = True +travel_avoid_supports = False +wall_0_acceleration = 20.0 +wall_0_deceleration = 20.0 +wall_0_end_speed_ratio = 100.0 +wall_0_inset = 0 +wall_0_speed_split_distance = 1.0 +wall_0_start_speed_ratio = 100.0 +wall_0_wipe_dist = =machine_nozzle_size / 2 +wall_material_flow = =material_flow +wall_overhang_angle = 90 +wall_x_material_flow = =wall_material_flow +xy_offset = =-layer_height * 0.1 +z_seam_corner = z_seam_corner_weighted +z_seam_position = back +z_seam_type = sharpest_corner + diff --git a/resources/variants/ultimaker_s6_cc06.inst.cfg b/resources/variants/ultimaker_s6_cc06.inst.cfg new file mode 100644 index 0000000000..cf06f78990 --- /dev/null +++ b/resources/variants/ultimaker_s6_cc06.inst.cfg @@ -0,0 +1,184 @@ +[general] +definition = ultimaker_s6 +name = CC 0.6 +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 25 +type = variant + +[values] +acceleration_flooring = =acceleration_topbottom +acceleration_infill = =acceleration_print +acceleration_layer_0 = =acceleration_topbottom +acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 3500) +acceleration_print = 3500 +acceleration_print_layer_0 = =acceleration_layer_0 +acceleration_roofing = =acceleration_topbottom +acceleration_skirt_brim = =acceleration_layer_0 +acceleration_support = =math.ceil(acceleration_print * 2000 / 3500) +acceleration_support_bottom = =extruderValue(support_bottom_extruder_nr, 'acceleration_support_interface') +acceleration_support_infill = =acceleration_support +acceleration_support_interface = =acceleration_topbottom +acceleration_support_roof = =extruderValue(support_roof_extruder_nr, 'acceleration_support_interface') +acceleration_topbottom = =math.ceil(acceleration_print * 1000 / 3500) +acceleration_travel = =acceleration_print if magic_spiralize else 5000 +acceleration_travel_enabled = False +acceleration_travel_layer_0 = =acceleration_layer_0 * acceleration_travel / acceleration_print +acceleration_wall = =math.ceil(acceleration_print * 1500 / 3500) +acceleration_wall_0 = =math.ceil(acceleration_wall * 1000 / 1000) +acceleration_wall_0_flooring = =acceleration_wall_0 +acceleration_wall_0_roofing = =acceleration_wall_0 +acceleration_wall_x = =acceleration_wall +acceleration_wall_x_flooring = =acceleration_wall_x +acceleration_wall_x_roofing = =acceleration_wall_x +adhesion_type = brim +bottom_thickness = =top_bottom_thickness +bridge_enable_more_layers = False +bridge_skin_density = 80 +bridge_skin_material_flow = =skin_material_flow +bridge_skin_material_flow_2 = =skin_material_flow +bridge_skin_speed = =speed_topbottom +bridge_skin_speed_2 = =speed_topbottom +bridge_sparse_infill_max_density = 0 +bridge_wall_material_flow = =wall_material_flow +bridge_wall_min_length = =line_width + support_xy_distance + 1.0 +bridge_wall_speed = =bridge_skin_speed +brim_width = 7 +cool_during_extruder_switch = unchanged +cool_min_layer_time = 6 +cool_min_layer_time_overhang = =cool_min_layer_time +cool_min_layer_time_overhang_min_segment_length = 5 +cool_min_speed = =round(speed_wall_0 * 3 / 4) if cool_lift_head else round(speed_wall_0 / 5) +cool_min_temperature = =max([material_final_print_temperature, material_initial_print_temperature, material_print_temperature - 15]) +extra_infill_lines_to_support_skins = none +flooring_layer_count = 0 +gradual_flow_enabled = False +hole_xy_offset = 0 +infill_material_flow = =(1.95-infill_sparse_density / 100 if infill_sparse_density > 95 else 1) * material_flow +infill_overlap = =0 if infill_sparse_density > 80 else 10 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_sparse_density = 20 +infill_wall_line_count = 0 +initial_bottom_layers = =bottom_layers +jerk_flooring = =jerk_topbottom +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_print +jerk_prime_tower = =jerk_print +jerk_print = 4000 +jerk_print_layer_0 = =max(4000, jerk_wall_0) +jerk_roofing = =jerk_topbottom +jerk_skirt_brim = =jerk_layer_0 +jerk_support = =jerk_print +jerk_support_bottom = =extruderValue(support_roof_extruder_nr, 'jerk_support_interface') +jerk_support_infill = =jerk_support +jerk_support_interface = =jerk_support +jerk_support_roof = =extruderValue(support_roof_extruder_nr, 'jerk_support_interface') +jerk_topbottom = =jerk_print +jerk_travel = =jerk_print +jerk_travel_layer_0 = =jerk_layer_0 * jerk_travel / jerk_print +jerk_wall = =jerk_print +jerk_wall_0 = =jerk_wall +jerk_wall_0_flooring = =jerk_wall_0 +jerk_wall_0_roofing = =jerk_wall_0 +jerk_wall_x = =jerk_wall +jerk_wall_x_flooring = =jerk_wall_x +jerk_wall_x_roofing = =jerk_wall_x +machine_nozzle_cool_down_speed = 0.9 +machine_nozzle_id = CC 0.6 +machine_nozzle_size = 0.6 +material_extrusion_cool_down_speed = 0.7 +material_final_print_temperature = =max(-273.15, material_print_temperature - 15) +material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) +material_pressure_advance_factor = 0.05 +max_flow_acceleration = 1 +max_skin_angle_for_expansion = 90 +meshfix_maximum_resolution = =max(speed_wall_0 / 75, 0.5) +min_infill_area = 0 +optimize_wall_printing_order = True +prime_tower_brim_enable = =resolveOrValue('adhesion_type') in ['raft', 'brim'] +prime_tower_min_volume = 6 +retraction_amount = 6.5 +retraction_combing_avoid_distance = =machine_nozzle_size * 1.5 +retraction_combing_max_distance = 15 +retraction_hop = 2 +retraction_hop_after_extruder_switch_height = =retraction_hop +retraction_hop_enabled = =extruders_enabled_count > 1 +retraction_min_travel = 5 +retraction_prime_speed = =retraction_speed +skin_edge_support_thickness = =4 * layer_height if infill_sparse_density < 30 else 0 +skin_material_flow = =0.95 * material_flow +skin_outline_count = =0 if top_bottom_pattern == 'concentric' and top_bottom_pattern_0 == 'concentric' and roofing_layer_count <= 0 else 1 +skin_overlap = 20 +skin_preshrink = =wall_line_width_0 + (wall_line_count - 1) * wall_line_width_x +skirt_brim_minimal_length = 250 +skirt_brim_speed = =speed_layer_0 +skirt_line_count = 1 +small_skin_on_surface = False +small_skin_width = =skin_line_width * 2 +speed_flooring = =speed_topbottom +speed_infill = =speed_print +speed_ironing = =speed_topbottom * 20 / 30 +speed_layer_0 = =min(30, layer_height / layer_height_0 * speed_wall_0) +speed_prime_tower = =speed_topbottom +speed_print = 45 +speed_print_layer_0 = =speed_layer_0 +speed_roofing = =speed_topbottom +speed_support = =speed_topbottom +speed_support_bottom = =extruderValue(support_bottom_extruder_nr, 'speed_support_interface') +speed_support_infill = =speed_support +speed_support_interface = =speed_topbottom +speed_support_roof = =extruderValue(support_roof_extruder_nr, 'speed_support_interface') +speed_topbottom = =math.ceil(speed_print * 25 / 45) +speed_travel = 150 +speed_travel_layer_0 = =speed_travel +speed_wall = =math.ceil(speed_print * 30 / 45) +speed_wall_0 = =math.ceil(speed_wall * 25 / 30) +speed_wall_0_flooring = =speed_wall_0 +speed_wall_0_roofing = =speed_wall_0 +speed_wall_x = =speed_wall +speed_wall_x_flooring = =speed_wall_x +speed_wall_x_roofing = =speed_wall_x +support_angle = 60 +support_bottom_distance = =support_z_distance / 2 +support_bottom_offset = =extruderValue(support_bottom_extruder_nr, 'support_interface_offset') +support_brim_width = =(skirt_brim_line_width * initial_layer_line_width_factor / 100.0) * 3 +support_interface_enable = False +support_interface_offset = =support_offset +support_line_width = =line_width +support_offset = =support_line_width + 0.4 if support_structure == 'normal' else 0.0 +support_pattern = zigzag +support_structure = normal +support_top_distance = =support_z_distance +support_tree_angle = =max(min(support_angle, 85), 20) +support_tree_angle_slow = =support_tree_angle * 2 / 3 +support_tree_bp_diameter = 7.5 +support_tree_branch_diameter = 5 +support_tree_branch_diameter_angle = 7 +support_tree_max_diameter = 25 +support_tree_tip_diameter = =support_line_width * 2 +support_tree_top_rate = =30 if support_roof_enable else 10 +support_xy_distance = 0.7 +support_xy_distance_overhang = 0.2 +support_z_distance = =layer_height * 2 +switch_extruder_prime_speed = =switch_extruder_retraction_speeds +switch_extruder_retraction_amount = =machine_heat_zone_length +top_bottom_thickness = =layer_height * 6 +travel_avoid_other_parts = True +travel_avoid_supports = False +wall_0_acceleration = 20.0 +wall_0_deceleration = 20.0 +wall_0_end_speed_ratio = 100.0 +wall_0_inset = 0 +wall_0_speed_split_distance = 1.0 +wall_0_start_speed_ratio = 100.0 +wall_0_wipe_dist = =machine_nozzle_size / 2 +wall_material_flow = =material_flow +wall_overhang_angle = 90 +wall_x_material_flow = =wall_material_flow +xy_offset = =-layer_height * 0.1 +z_seam_corner = z_seam_corner_weighted +z_seam_position = back +z_seam_type = sharpest_corner + diff --git a/resources/variants/ultimaker_s8_aa025.inst.cfg b/resources/variants/ultimaker_s8_aa025.inst.cfg new file mode 100644 index 0000000000..32df78b5e0 --- /dev/null +++ b/resources/variants/ultimaker_s8_aa025.inst.cfg @@ -0,0 +1,188 @@ +[general] +definition = ultimaker_s8 +name = AA 0.25 +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 25 +type = variant + +[values] +acceleration_flooring = =acceleration_topbottom +acceleration_infill = =acceleration_print +acceleration_layer_0 = =acceleration_topbottom +acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 3500) +acceleration_print = 3500 +acceleration_print_layer_0 = =acceleration_layer_0 +acceleration_roofing = =acceleration_topbottom +acceleration_skirt_brim = =acceleration_layer_0 +acceleration_support = =math.ceil(acceleration_print * 2000 / 3500) +acceleration_support_bottom = =extruderValue(support_bottom_extruder_nr, 'acceleration_support_interface') +acceleration_support_infill = =acceleration_support +acceleration_support_interface = =acceleration_topbottom +acceleration_support_roof = =extruderValue(support_roof_extruder_nr, 'acceleration_support_interface') +acceleration_topbottom = =math.ceil(acceleration_print * 1000 / 3500) +acceleration_travel = =acceleration_print if magic_spiralize else 5000 +acceleration_travel_enabled = False +acceleration_travel_layer_0 = =acceleration_layer_0 * acceleration_travel / acceleration_print +acceleration_wall = =math.ceil(acceleration_print * 1500 / 3500) +acceleration_wall_0 = =math.ceil(acceleration_wall * 1000 / 1000) +acceleration_wall_0_flooring = =acceleration_wall_0 +acceleration_wall_0_roofing = =acceleration_wall_0 +acceleration_wall_x = =acceleration_wall +acceleration_wall_x_flooring = =acceleration_wall_x +acceleration_wall_x_roofing = =acceleration_wall_x +adhesion_type = brim +bottom_thickness = =top_bottom_thickness +bridge_enable_more_layers = False +bridge_skin_density = 80 +bridge_skin_material_flow = =skin_material_flow +bridge_skin_material_flow_2 = =skin_material_flow +bridge_skin_speed = =speed_topbottom +bridge_skin_speed_2 = =speed_topbottom +bridge_sparse_infill_max_density = 0 +bridge_wall_material_flow = =wall_material_flow +bridge_wall_min_length = =line_width + support_xy_distance + 1.0 +bridge_wall_speed = =bridge_skin_speed +brim_width = 7 +cool_during_extruder_switch = unchanged +cool_min_layer_time = 0 +cool_min_layer_time_overhang = =cool_min_layer_time +cool_min_layer_time_overhang_min_segment_length = 5 +cool_min_speed = =round(speed_wall_0 * 3 / 4) if cool_lift_head else round(speed_wall_0 / 5) +cool_min_temperature = =max([material_final_print_temperature, material_initial_print_temperature, material_print_temperature - 15]) +extra_infill_lines_to_support_skins = none +flooring_layer_count = 0 +gradual_flow_enabled = False +hole_xy_offset = 0 +infill_material_flow = =(1.95-infill_sparse_density / 100 if infill_sparse_density > 95 else 1) * material_flow +infill_overlap = =0 if infill_sparse_density > 80 else 10 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_sparse_density = 20 +infill_wall_line_count = 0 +initial_bottom_layers = =bottom_layers +jerk_flooring = =jerk_topbottom +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_print +jerk_prime_tower = =jerk_print +jerk_print = 4000 +jerk_print_layer_0 = =max(4000, jerk_wall_0) +jerk_roofing = =jerk_topbottom +jerk_skirt_brim = =jerk_layer_0 +jerk_support = =jerk_print +jerk_support_bottom = =extruderValue(support_roof_extruder_nr, 'jerk_support_interface') +jerk_support_infill = =jerk_support +jerk_support_interface = =jerk_support +jerk_support_roof = =extruderValue(support_roof_extruder_nr, 'jerk_support_interface') +jerk_topbottom = =jerk_print +jerk_travel = =jerk_print +jerk_travel_layer_0 = =jerk_layer_0 * jerk_travel / jerk_print +jerk_wall = =jerk_print +jerk_wall_0 = =jerk_wall +jerk_wall_0_flooring = =jerk_wall_0 +jerk_wall_0_roofing = =jerk_wall_0 +jerk_wall_x = =jerk_wall +jerk_wall_x_flooring = =jerk_wall_x +jerk_wall_x_roofing = =jerk_wall_x +machine_nozzle_cool_down_speed = 0.85 +machine_nozzle_heat_up_speed = 1.5 +machine_nozzle_id = AA 0.25 +machine_nozzle_size = 0.25 +machine_nozzle_tip_outer_diameter = 0.65 +material_extrusion_cool_down_speed = 0.7 +material_final_print_temperature = =max(-273.15, material_print_temperature - 15) +material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) +material_pressure_advance_factor = 0.05 +max_flow_acceleration = 1 +max_skin_angle_for_expansion = 90 +meshfix_maximum_resolution = =max(speed_wall_0 / 75, 0.5) +min_infill_area = 0 +optimize_wall_printing_order = True +prime_tower_brim_enable = =resolveOrValue('adhesion_type') in ['raft', 'brim'] +prime_tower_min_volume = 6 +retraction_amount = 6.5 +retraction_combing_avoid_distance = =machine_nozzle_size * 1.5 +retraction_combing_max_distance = 15 +retraction_hop = 2 +retraction_hop_after_extruder_switch_height = =retraction_hop +retraction_hop_enabled = =extruders_enabled_count > 1 +retraction_min_travel = 5 +retraction_prime_speed = =retraction_speed +skin_edge_support_thickness = =4 * layer_height if infill_sparse_density < 30 else 0 +skin_material_flow = =0.95 * material_flow +skin_outline_count = =0 if top_bottom_pattern == 'concentric' and top_bottom_pattern_0 == 'concentric' and roofing_layer_count <= 0 else 1 +skin_overlap = 20 +skin_preshrink = =wall_line_width_0 + (wall_line_count - 1) * wall_line_width_x +skirt_brim_minimal_length = 250 +skirt_brim_speed = =speed_layer_0 +skirt_line_count = 1 +small_skin_on_surface = False +small_skin_width = =skin_line_width * 2 +speed_flooring = =speed_topbottom +speed_infill = =speed_print +speed_ironing = =speed_topbottom * 20 / 30 +speed_layer_0 = =min(30, layer_height / layer_height_0 * speed_wall_0) +speed_prime_tower = =speed_topbottom +speed_print = 55 +speed_print_layer_0 = =speed_layer_0 +speed_roofing = =speed_topbottom +speed_support = =speed_wall_0 +speed_support_bottom = =extruderValue(support_bottom_extruder_nr, 'speed_support_interface') +speed_support_infill = =speed_support +speed_support_interface = =speed_topbottom +speed_support_roof = =extruderValue(support_roof_extruder_nr, 'speed_support_interface') +speed_topbottom = 20 +speed_travel = 150 +speed_travel_layer_0 = =speed_travel +speed_wall = =math.ceil(speed_print * 30 / 55) +speed_wall_0 = =math.ceil(speed_wall * 20 / 30) +speed_wall_0_flooring = =speed_wall_0 +speed_wall_0_roofing = =speed_wall_0 +speed_wall_x = =speed_wall +speed_wall_x_flooring = =speed_wall_x +speed_wall_x_roofing = =speed_wall_x +support_angle = 60 +support_bottom_distance = =support_z_distance / 2 +support_bottom_offset = =extruderValue(support_bottom_extruder_nr, 'support_interface_offset') +support_brim_width = =(skirt_brim_line_width * initial_layer_line_width_factor / 100.0) * 3 +support_interface_enable = False +support_interface_offset = =support_offset +support_line_width = =line_width +support_offset = =support_line_width + 0.4 if support_structure == 'normal' else 0.0 +support_pattern = zigzag +support_structure = normal +support_top_distance = =support_z_distance +support_tree_angle = =max(min(support_angle, 85), 20) +support_tree_angle_slow = =support_tree_angle * 2 / 3 +support_tree_bp_diameter = 7.5 +support_tree_branch_diameter = 5 +support_tree_branch_diameter_angle = 7 +support_tree_max_diameter = 25 +support_tree_tip_diameter = =support_line_width * 2 +support_tree_top_rate = =30 if support_roof_enable else 10 +support_xy_distance = 0.7 +support_xy_distance_overhang = 0.2 +support_z_distance = =layer_height * 2 +switch_extruder_prime_speed = =switch_extruder_retraction_speeds +switch_extruder_retraction_amount = =machine_heat_zone_length +top_bottom_thickness = 1.2 +travel_avoid_other_parts = True +travel_avoid_supports = False +wall_0_acceleration = 20.0 +wall_0_deceleration = 20.0 +wall_0_end_speed_ratio = 100.0 +wall_0_inset = 0 +wall_0_speed_split_distance = 1.0 +wall_0_start_speed_ratio = 100.0 +wall_0_wipe_dist = =machine_nozzle_size / 2 +wall_material_flow = =material_flow +wall_overhang_angle = 90 +wall_thickness = =wall_line_width_0 + wall_line_width_x * 2 +wall_x_material_flow = =wall_material_flow +xy_offset = =-layer_height * 0.1 +xy_offset_layer_0 = =(-0.2 if adhesion_type == "skirt" or adhesion_type == "none" else 0) + xy_offset +z_seam_corner = z_seam_corner_weighted +z_seam_position = back +z_seam_type = sharpest_corner + diff --git a/resources/variants/ultimaker_s8_aa04.inst.cfg b/resources/variants/ultimaker_s8_aa04.inst.cfg new file mode 100644 index 0000000000..ca56d71750 --- /dev/null +++ b/resources/variants/ultimaker_s8_aa04.inst.cfg @@ -0,0 +1,185 @@ +[general] +definition = ultimaker_s8 +name = AA 0.4 +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 25 +type = variant + +[values] +acceleration_flooring = =acceleration_topbottom +acceleration_infill = =acceleration_print +acceleration_layer_0 = =acceleration_topbottom +acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 3500) +acceleration_print = 3500 +acceleration_print_layer_0 = =acceleration_layer_0 +acceleration_roofing = =acceleration_topbottom +acceleration_skirt_brim = =acceleration_layer_0 +acceleration_support = =math.ceil(acceleration_print * 2000 / 3500) +acceleration_support_bottom = =extruderValue(support_bottom_extruder_nr, 'acceleration_support_interface') +acceleration_support_infill = =acceleration_support +acceleration_support_interface = =acceleration_topbottom +acceleration_support_roof = =extruderValue(support_roof_extruder_nr, 'acceleration_support_interface') +acceleration_topbottom = =math.ceil(acceleration_print * 1000 / 3500) +acceleration_travel = =acceleration_print if magic_spiralize else 5000 +acceleration_travel_enabled = False +acceleration_travel_layer_0 = =acceleration_layer_0 * acceleration_travel / acceleration_print +acceleration_wall = =math.ceil(acceleration_print * 1500 / 3500) +acceleration_wall_0 = =math.ceil(acceleration_wall * 1000 / 1000) +acceleration_wall_0_flooring = =acceleration_wall_0 +acceleration_wall_0_roofing = =acceleration_wall_0 +acceleration_wall_x = =acceleration_wall +acceleration_wall_x_flooring = =acceleration_wall_x +acceleration_wall_x_roofing = =acceleration_wall_x +adhesion_type = brim +bottom_thickness = =top_bottom_thickness +bridge_enable_more_layers = False +bridge_skin_density = 80 +bridge_skin_material_flow = =skin_material_flow +bridge_skin_material_flow_2 = =skin_material_flow +bridge_skin_speed = =speed_topbottom +bridge_skin_speed_2 = =speed_topbottom +bridge_sparse_infill_max_density = 0 +bridge_wall_material_flow = =wall_material_flow +bridge_wall_min_length = =line_width + support_xy_distance + 1.0 +bridge_wall_speed = =bridge_skin_speed +brim_width = 7 +cool_during_extruder_switch = unchanged +cool_min_layer_time = 6 +cool_min_layer_time_overhang = =cool_min_layer_time +cool_min_layer_time_overhang_min_segment_length = 5 +cool_min_speed = =round(speed_wall_0 * 3 / 4) if cool_lift_head else round(speed_wall_0 / 5) +cool_min_temperature = =max([material_final_print_temperature, material_initial_print_temperature, material_print_temperature - 15]) +extra_infill_lines_to_support_skins = none +flooring_layer_count = 0 +gradual_flow_enabled = False +hole_xy_offset = 0 +infill_material_flow = =(1.95-infill_sparse_density / 100 if infill_sparse_density > 95 else 1) * material_flow +infill_overlap = =0 if infill_sparse_density > 80 else 10 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_sparse_density = 20 +infill_wall_line_count = 0 +initial_bottom_layers = =bottom_layers +jerk_flooring = =jerk_topbottom +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_print +jerk_prime_tower = =jerk_print +jerk_print = 4000 +jerk_print_layer_0 = =max(4000, jerk_wall_0) +jerk_roofing = =jerk_topbottom +jerk_skirt_brim = =jerk_layer_0 +jerk_support = =jerk_print +jerk_support_bottom = =extruderValue(support_roof_extruder_nr, 'jerk_support_interface') +jerk_support_infill = =jerk_support +jerk_support_interface = =jerk_support +jerk_support_roof = =extruderValue(support_roof_extruder_nr, 'jerk_support_interface') +jerk_topbottom = =jerk_print +jerk_travel = =jerk_print +jerk_travel_layer_0 = =jerk_layer_0 * jerk_travel / jerk_print +jerk_wall = =jerk_print +jerk_wall_0 = =jerk_wall +jerk_wall_0_flooring = =jerk_wall_0 +jerk_wall_0_roofing = =jerk_wall_0 +jerk_wall_x = =jerk_wall +jerk_wall_x_flooring = =jerk_wall_x +jerk_wall_x_roofing = =jerk_wall_x +machine_nozzle_cool_down_speed = 0.9 +machine_nozzle_id = AA 0.4 +machine_nozzle_size = 0.4 +machine_nozzle_tip_outer_diameter = 1.0 +material_extrusion_cool_down_speed = 0.7 +material_final_print_temperature = =max(-273.15, material_print_temperature - 15) +material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) +material_pressure_advance_factor = 0.05 +max_flow_acceleration = 1 +max_skin_angle_for_expansion = 90 +meshfix_maximum_resolution = =max(speed_wall_0 / 75, 0.5) +min_infill_area = 0 +optimize_wall_printing_order = True +prime_tower_brim_enable = =resolveOrValue('adhesion_type') in ['raft', 'brim'] +prime_tower_min_volume = 6 +retraction_amount = 6.5 +retraction_combing_avoid_distance = =machine_nozzle_size * 1.5 +retraction_combing_max_distance = 15 +retraction_hop = 2 +retraction_hop_after_extruder_switch_height = =retraction_hop +retraction_hop_enabled = =extruders_enabled_count > 1 +retraction_min_travel = 5 +retraction_prime_speed = 15 +skin_edge_support_thickness = =4 * layer_height if infill_sparse_density < 30 else 0 +skin_material_flow = =0.95 * material_flow +skin_outline_count = =0 if top_bottom_pattern == 'concentric' and top_bottom_pattern_0 == 'concentric' and roofing_layer_count <= 0 else 1 +skin_overlap = 20 +skin_preshrink = =wall_line_width_0 + (wall_line_count - 1) * wall_line_width_x +skirt_brim_minimal_length = 250 +skirt_brim_speed = =speed_layer_0 +skirt_line_count = 1 +small_skin_on_surface = False +small_skin_width = =skin_line_width * 2 +speed_flooring = =speed_topbottom +speed_infill = =speed_print +speed_ironing = =speed_topbottom * 20 / 30 +speed_layer_0 = =min(30, layer_height / layer_height_0 * speed_wall_0) +speed_prime_tower = =speed_topbottom +speed_print = 70 +speed_print_layer_0 = =speed_layer_0 +speed_roofing = =speed_topbottom +speed_support = =speed_wall_0 +speed_support_bottom = =extruderValue(support_bottom_extruder_nr, 'speed_support_interface') +speed_support_infill = =speed_support +speed_support_interface = =speed_topbottom +speed_support_roof = =extruderValue(support_roof_extruder_nr, 'speed_support_interface') +speed_topbottom = =math.ceil(speed_print * 30 / 70) +speed_travel = 150 +speed_travel_layer_0 = =speed_travel +speed_wall = =math.ceil(speed_print * 30 / 70) +speed_wall_0 = =math.ceil(speed_wall * 20 / 30) +speed_wall_0_flooring = =speed_wall_0 +speed_wall_0_roofing = =speed_wall_0 +speed_wall_x = =speed_wall +speed_wall_x_flooring = =speed_wall_x +speed_wall_x_roofing = =speed_wall_x +support_angle = 60 +support_bottom_distance = =support_z_distance / 2 +support_bottom_offset = =extruderValue(support_bottom_extruder_nr, 'support_interface_offset') +support_brim_width = =(skirt_brim_line_width * initial_layer_line_width_factor / 100.0) * 3 +support_interface_enable = False +support_interface_offset = =support_offset +support_line_width = =line_width +support_offset = =support_line_width + 0.4 if support_structure == 'normal' else 0.0 +support_pattern = zigzag +support_structure = normal +support_top_distance = =support_z_distance +support_tree_angle = =max(min(support_angle, 85), 20) +support_tree_angle_slow = =support_tree_angle * 2 / 3 +support_tree_bp_diameter = 7.5 +support_tree_branch_diameter = 5 +support_tree_branch_diameter_angle = 7 +support_tree_max_diameter = 25 +support_tree_tip_diameter = =support_line_width * 2 +support_tree_top_rate = =30 if support_roof_enable else 10 +support_xy_distance = 0.7 +support_xy_distance_overhang = 0.2 +support_z_distance = =layer_height * 2 +switch_extruder_prime_speed = =switch_extruder_retraction_speeds +switch_extruder_retraction_amount = =machine_heat_zone_length +top_bottom_thickness = 1.2 +travel_avoid_other_parts = True +travel_avoid_supports = False +wall_0_acceleration = 20.0 +wall_0_deceleration = 20.0 +wall_0_end_speed_ratio = 100.0 +wall_0_inset = 0 +wall_0_speed_split_distance = 1.0 +wall_0_start_speed_ratio = 100.0 +wall_0_wipe_dist = =machine_nozzle_size / 2 +wall_material_flow = =material_flow +wall_overhang_angle = 90 +wall_x_material_flow = =wall_material_flow +xy_offset = =-layer_height * 0.1 +z_seam_corner = z_seam_corner_weighted +z_seam_position = back +z_seam_type = sharpest_corner + diff --git a/resources/variants/ultimaker_s8_aa08.inst.cfg b/resources/variants/ultimaker_s8_aa08.inst.cfg new file mode 100644 index 0000000000..cf87ec6aec --- /dev/null +++ b/resources/variants/ultimaker_s8_aa08.inst.cfg @@ -0,0 +1,197 @@ +[general] +definition = ultimaker_s8 +name = AA 0.8 +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 25 +type = variant + +[values] +acceleration_flooring = =acceleration_topbottom +acceleration_infill = =acceleration_print +acceleration_layer_0 = =acceleration_topbottom +acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 3500) +acceleration_print = 3500 +acceleration_print_layer_0 = =acceleration_layer_0 +acceleration_roofing = =acceleration_topbottom +acceleration_skirt_brim = =acceleration_layer_0 +acceleration_support = =math.ceil(acceleration_print * 2000 / 3500) +acceleration_support_bottom = =extruderValue(support_bottom_extruder_nr, 'acceleration_support_interface') +acceleration_support_infill = =acceleration_support +acceleration_support_interface = =acceleration_topbottom +acceleration_support_roof = =extruderValue(support_roof_extruder_nr, 'acceleration_support_interface') +acceleration_topbottom = =math.ceil(acceleration_print * 1000 / 3500) +acceleration_travel = =acceleration_print if magic_spiralize else 5000 +acceleration_travel_enabled = False +acceleration_travel_layer_0 = =acceleration_layer_0 * acceleration_travel / acceleration_print +acceleration_wall = =math.ceil(acceleration_print * 1500 / 3500) +acceleration_wall_0 = =math.ceil(acceleration_wall * 1000 / 1000) +acceleration_wall_0_flooring = =acceleration_wall_0 +acceleration_wall_0_roofing = =acceleration_wall_0 +acceleration_wall_x = =acceleration_wall +acceleration_wall_x_flooring = =acceleration_wall_x +acceleration_wall_x_roofing = =acceleration_wall_x +adhesion_type = brim +bottom_thickness = =top_bottom_thickness +bridge_enable_more_layers = False +bridge_skin_density = 80 +bridge_skin_material_flow = =skin_material_flow +bridge_skin_material_flow_2 = =skin_material_flow +bridge_skin_speed = =speed_topbottom +bridge_skin_speed_2 = =speed_topbottom +bridge_sparse_infill_max_density = 0 +bridge_wall_material_flow = =wall_material_flow +bridge_wall_min_length = =line_width + support_xy_distance + 1.0 +bridge_wall_speed = =bridge_skin_speed +brim_width = 7 +cool_during_extruder_switch = unchanged +cool_fan_speed = 7 +cool_min_layer_time = 6 +cool_min_layer_time_overhang = =cool_min_layer_time +cool_min_layer_time_overhang_min_segment_length = 5 +cool_min_speed = =round(speed_wall_0 * 3 / 4) if cool_lift_head else round(speed_wall_0 / 5) +cool_min_temperature = =max([material_final_print_temperature, material_initial_print_temperature, material_print_temperature - 15]) +default_material_print_temperature = 200 +extra_infill_lines_to_support_skins = none +flooring_layer_count = 0 +gradual_flow_enabled = False +hole_xy_offset = 0 +infill_material_flow = =(1.95-infill_sparse_density / 100 if infill_sparse_density > 95 else 1) * material_flow +infill_overlap = =0 if infill_sparse_density > 80 else 10 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_sparse_density = 20 +infill_wall_line_count = 0 +infill_wipe_dist = 0 +initial_bottom_layers = =bottom_layers +jerk_flooring = =jerk_topbottom +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_print +jerk_prime_tower = =jerk_print +jerk_print = 5000 +jerk_print_layer_0 = =max(4000, jerk_wall_0) +jerk_roofing = =jerk_topbottom +jerk_skirt_brim = =jerk_layer_0 +jerk_support = =jerk_print +jerk_support_bottom = =extruderValue(support_roof_extruder_nr, 'jerk_support_interface') +jerk_support_infill = =jerk_support +jerk_support_interface = =jerk_support +jerk_support_roof = =extruderValue(support_roof_extruder_nr, 'jerk_support_interface') +jerk_topbottom = =jerk_print +jerk_travel = =jerk_print +jerk_travel_layer_0 = =jerk_layer_0 * jerk_travel / jerk_print +jerk_wall = =jerk_print +jerk_wall_0 = =jerk_wall +jerk_wall_0_flooring = =jerk_wall_0 +jerk_wall_0_roofing = =jerk_wall_0 +jerk_wall_x = =jerk_wall +jerk_wall_x_flooring = =jerk_wall_x +jerk_wall_x_roofing = =jerk_wall_x +layer_height = 0.2 +machine_min_cool_heat_time_window = 15 +machine_nozzle_cool_down_speed = 0.85 +machine_nozzle_heat_up_speed = 1.5 +machine_nozzle_id = AA 0.8 +machine_nozzle_size = 0.8 +machine_nozzle_tip_outer_diameter = 2.0 +material_extrusion_cool_down_speed = 0.7 +material_final_print_temperature = =max(-273.15, material_print_temperature - 15) +material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) +material_pressure_advance_factor = 0.05 +max_flow_acceleration = 1 +max_skin_angle_for_expansion = 90 +meshfix_maximum_resolution = =max(speed_wall_0 / 75, 0.5) +min_infill_area = 0 +multiple_mesh_overlap = 0 +optimize_wall_printing_order = True +prime_tower_brim_enable = =resolveOrValue('adhesion_type') in ['raft', 'brim'] +prime_tower_enable = False +prime_tower_min_volume = 6 +prime_tower_wipe_enabled = True +raft_surface_layers = 1 +retraction_amount = 6.5 +retraction_combing_avoid_distance = =machine_nozzle_size * 1.5 +retraction_combing_max_distance = 15 +retraction_hop = 2 +retraction_hop_after_extruder_switch_height = =retraction_hop +retraction_hop_enabled = =extruders_enabled_count > 1 +retraction_hop_only_when_collides = True +retraction_min_travel = 5 +retraction_prime_speed = 15 +retraction_speed = 25 +skin_edge_support_thickness = =4 * layer_height if infill_sparse_density < 30 else 0 +skin_material_flow = =0.95 * material_flow +skin_outline_count = =0 if top_bottom_pattern == 'concentric' and top_bottom_pattern_0 == 'concentric' and roofing_layer_count <= 0 else 1 +skin_overlap = 20 +skin_preshrink = =wall_line_width_0 + (wall_line_count - 1) * wall_line_width_x +skirt_brim_minimal_length = 250 +skirt_brim_speed = =speed_layer_0 +skirt_line_count = 1 +small_skin_on_surface = False +small_skin_width = =skin_line_width * 2 +speed_flooring = =speed_topbottom +speed_infill = =speed_print +speed_ironing = =speed_topbottom * 20 / 30 +speed_layer_0 = =min(30, layer_height / layer_height_0 * speed_wall_0) +speed_prime_tower = =speed_topbottom +speed_print = 35 +speed_print_layer_0 = =speed_layer_0 +speed_roofing = =speed_topbottom +speed_support = =speed_wall_0 +speed_support_bottom = =extruderValue(support_bottom_extruder_nr, 'speed_support_interface') +speed_support_infill = =speed_support +speed_support_interface = =speed_topbottom +speed_support_roof = =extruderValue(support_roof_extruder_nr, 'speed_support_interface') +speed_topbottom = =math.ceil(speed_print * 25 / 35) +speed_travel = 150 +speed_travel_layer_0 = =speed_travel +speed_wall = =math.ceil(speed_print * 30 / 35) +speed_wall_0 = =math.ceil(speed_wall * 25 / 30) +speed_wall_0_flooring = =speed_wall_0 +speed_wall_0_roofing = =speed_wall_0 +speed_wall_x = =speed_wall +speed_wall_x_flooring = =speed_wall_x +speed_wall_x_roofing = =speed_wall_x +support_angle = 60 +support_bottom_distance = =support_z_distance / 2 +support_bottom_offset = =extruderValue(support_bottom_extruder_nr, 'support_interface_offset') +support_brim_width = =(skirt_brim_line_width * initial_layer_line_width_factor / 100.0) * 3 +support_interface_enable = False +support_interface_offset = =support_offset +support_line_width = =line_width +support_offset = =support_line_width + 0.4 if support_structure == 'normal' else 0.0 +support_pattern = zigzag +support_structure = normal +support_top_distance = =support_z_distance +support_tree_angle = =max(min(support_angle, 85), 20) +support_tree_angle_slow = =support_tree_angle * 2 / 3 +support_tree_bp_diameter = 7.5 +support_tree_branch_diameter = 5 +support_tree_branch_diameter_angle = 7 +support_tree_max_diameter = 25 +support_tree_tip_diameter = =support_line_width * 2 +support_tree_top_rate = =30 if support_roof_enable else 10 +support_xy_distance = 0.7 +support_xy_distance_overhang = 0.2 +support_z_distance = =layer_height * 2 +switch_extruder_prime_speed = 20 +switch_extruder_retraction_amount = 16.5 +top_bottom_thickness = 1.4 +travel_avoid_other_parts = True +travel_avoid_supports = False +wall_0_acceleration = 20.0 +wall_0_deceleration = 20.0 +wall_0_end_speed_ratio = 100.0 +wall_0_inset = 0 +wall_0_speed_split_distance = 1.0 +wall_0_start_speed_ratio = 100.0 +wall_0_wipe_dist = =machine_nozzle_size / 2 +wall_material_flow = =material_flow +wall_overhang_angle = 90 +wall_x_material_flow = =wall_material_flow +xy_offset = =-layer_height * 0.1 +z_seam_corner = z_seam_corner_weighted +z_seam_position = back +z_seam_type = sharpest_corner + diff --git a/resources/variants/ultimaker_s8_cc04.inst.cfg b/resources/variants/ultimaker_s8_cc04.inst.cfg new file mode 100644 index 0000000000..db7d8945bb --- /dev/null +++ b/resources/variants/ultimaker_s8_cc04.inst.cfg @@ -0,0 +1,184 @@ +[general] +definition = ultimaker_s8 +name = CC 0.4 +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 25 +type = variant + +[values] +acceleration_flooring = =acceleration_topbottom +acceleration_infill = =acceleration_print +acceleration_layer_0 = =acceleration_topbottom +acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 3500) +acceleration_print = 3500 +acceleration_print_layer_0 = =acceleration_layer_0 +acceleration_roofing = =acceleration_topbottom +acceleration_skirt_brim = =acceleration_layer_0 +acceleration_support = =math.ceil(acceleration_print * 2000 / 3500) +acceleration_support_bottom = =extruderValue(support_bottom_extruder_nr, 'acceleration_support_interface') +acceleration_support_infill = =acceleration_support +acceleration_support_interface = =acceleration_topbottom +acceleration_support_roof = =extruderValue(support_roof_extruder_nr, 'acceleration_support_interface') +acceleration_topbottom = =math.ceil(acceleration_print * 1000 / 3500) +acceleration_travel = =acceleration_print if magic_spiralize else 5000 +acceleration_travel_enabled = False +acceleration_travel_layer_0 = =acceleration_layer_0 * acceleration_travel / acceleration_print +acceleration_wall = =math.ceil(acceleration_print * 1500 / 3500) +acceleration_wall_0 = =math.ceil(acceleration_wall * 1000 / 1000) +acceleration_wall_0_flooring = =acceleration_wall_0 +acceleration_wall_0_roofing = =acceleration_wall_0 +acceleration_wall_x = =acceleration_wall +acceleration_wall_x_flooring = =acceleration_wall_x +acceleration_wall_x_roofing = =acceleration_wall_x +adhesion_type = brim +bottom_thickness = =top_bottom_thickness +bridge_enable_more_layers = False +bridge_skin_density = 80 +bridge_skin_material_flow = =skin_material_flow +bridge_skin_material_flow_2 = =skin_material_flow +bridge_skin_speed = =speed_topbottom +bridge_skin_speed_2 = =speed_topbottom +bridge_sparse_infill_max_density = 0 +bridge_wall_material_flow = =wall_material_flow +bridge_wall_min_length = =line_width + support_xy_distance + 1.0 +bridge_wall_speed = =bridge_skin_speed +brim_width = 7 +cool_during_extruder_switch = unchanged +cool_min_layer_time = 6 +cool_min_layer_time_overhang = =cool_min_layer_time +cool_min_layer_time_overhang_min_segment_length = 5 +cool_min_speed = =round(speed_wall_0 * 3 / 4) if cool_lift_head else round(speed_wall_0 / 5) +cool_min_temperature = =max([material_final_print_temperature, material_initial_print_temperature, material_print_temperature - 15]) +extra_infill_lines_to_support_skins = none +flooring_layer_count = 0 +gradual_flow_enabled = False +hole_xy_offset = 0 +infill_material_flow = =(1.95-infill_sparse_density / 100 if infill_sparse_density > 95 else 1) * material_flow +infill_overlap = =0 if infill_sparse_density > 80 else 10 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_sparse_density = 20 +infill_wall_line_count = 0 +initial_bottom_layers = =bottom_layers +jerk_flooring = =jerk_topbottom +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_print +jerk_prime_tower = =jerk_print +jerk_print = 4000 +jerk_print_layer_0 = =max(4000, jerk_wall_0) +jerk_roofing = =jerk_topbottom +jerk_skirt_brim = =jerk_layer_0 +jerk_support = =jerk_print +jerk_support_bottom = =extruderValue(support_roof_extruder_nr, 'jerk_support_interface') +jerk_support_infill = =jerk_support +jerk_support_interface = =jerk_support +jerk_support_roof = =extruderValue(support_roof_extruder_nr, 'jerk_support_interface') +jerk_topbottom = =jerk_print +jerk_travel = =jerk_print +jerk_travel_layer_0 = =jerk_layer_0 * jerk_travel / jerk_print +jerk_wall = =jerk_print +jerk_wall_0 = =jerk_wall +jerk_wall_0_flooring = =jerk_wall_0 +jerk_wall_0_roofing = =jerk_wall_0 +jerk_wall_x = =jerk_wall +jerk_wall_x_flooring = =jerk_wall_x +jerk_wall_x_roofing = =jerk_wall_x +machine_nozzle_cool_down_speed = 0.9 +machine_nozzle_id = CC 0.4 +machine_nozzle_size = 0.4 +material_extrusion_cool_down_speed = 0.7 +material_final_print_temperature = =max(-273.15, material_print_temperature - 15) +material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) +material_pressure_advance_factor = 0.05 +max_flow_acceleration = 1 +max_skin_angle_for_expansion = 90 +meshfix_maximum_resolution = =max(speed_wall_0 / 75, 0.5) +min_infill_area = 0 +optimize_wall_printing_order = True +prime_tower_brim_enable = =resolveOrValue('adhesion_type') in ['raft', 'brim'] +prime_tower_min_volume = 6 +retraction_amount = 6.5 +retraction_combing_avoid_distance = =machine_nozzle_size * 1.5 +retraction_combing_max_distance = 15 +retraction_hop = 2 +retraction_hop_after_extruder_switch_height = =retraction_hop +retraction_hop_enabled = =extruders_enabled_count > 1 +retraction_min_travel = 5 +retraction_prime_speed = =retraction_speed +skin_edge_support_thickness = =4 * layer_height if infill_sparse_density < 30 else 0 +skin_material_flow = =0.95 * material_flow +skin_outline_count = =0 if top_bottom_pattern == 'concentric' and top_bottom_pattern_0 == 'concentric' and roofing_layer_count <= 0 else 1 +skin_overlap = 20 +skin_preshrink = =wall_line_width_0 + (wall_line_count - 1) * wall_line_width_x +skirt_brim_minimal_length = 250 +skirt_brim_speed = =speed_layer_0 +skirt_line_count = 1 +small_skin_on_surface = False +small_skin_width = =skin_line_width * 2 +speed_flooring = =speed_topbottom +speed_infill = =speed_print +speed_ironing = =speed_topbottom * 20 / 30 +speed_layer_0 = =min(30, layer_height / layer_height_0 * speed_wall_0) +speed_prime_tower = =speed_topbottom +speed_print = 45 +speed_print_layer_0 = =speed_layer_0 +speed_roofing = =speed_topbottom +speed_support = =speed_topbottom +speed_support_bottom = =extruderValue(support_bottom_extruder_nr, 'speed_support_interface') +speed_support_infill = =speed_support +speed_support_interface = =speed_topbottom +speed_support_roof = =extruderValue(support_roof_extruder_nr, 'speed_support_interface') +speed_topbottom = =math.ceil(speed_print * 25 / 45) +speed_travel = 150 +speed_travel_layer_0 = =speed_travel +speed_wall = =math.ceil(speed_print * 30 / 45) +speed_wall_0 = =math.ceil(speed_wall * 25 / 30) +speed_wall_0_flooring = =speed_wall_0 +speed_wall_0_roofing = =speed_wall_0 +speed_wall_x = =speed_wall +speed_wall_x_flooring = =speed_wall_x +speed_wall_x_roofing = =speed_wall_x +support_angle = 60 +support_bottom_distance = =support_z_distance / 2 +support_bottom_offset = =extruderValue(support_bottom_extruder_nr, 'support_interface_offset') +support_brim_width = =(skirt_brim_line_width * initial_layer_line_width_factor / 100.0) * 3 +support_interface_enable = False +support_interface_offset = =support_offset +support_line_width = =line_width +support_offset = =support_line_width + 0.4 if support_structure == 'normal' else 0.0 +support_pattern = zigzag +support_structure = normal +support_top_distance = =support_z_distance +support_tree_angle = =max(min(support_angle, 85), 20) +support_tree_angle_slow = =support_tree_angle * 2 / 3 +support_tree_bp_diameter = 7.5 +support_tree_branch_diameter = 5 +support_tree_branch_diameter_angle = 7 +support_tree_max_diameter = 25 +support_tree_tip_diameter = =support_line_width * 2 +support_tree_top_rate = =30 if support_roof_enable else 10 +support_xy_distance = 0.7 +support_xy_distance_overhang = 0.2 +support_z_distance = =layer_height * 2 +switch_extruder_prime_speed = =switch_extruder_retraction_speeds +switch_extruder_retraction_amount = =machine_heat_zone_length +top_bottom_thickness = =layer_height * 6 +travel_avoid_other_parts = True +travel_avoid_supports = False +wall_0_acceleration = 20.0 +wall_0_deceleration = 20.0 +wall_0_end_speed_ratio = 100.0 +wall_0_inset = 0 +wall_0_speed_split_distance = 1.0 +wall_0_start_speed_ratio = 100.0 +wall_0_wipe_dist = =machine_nozzle_size / 2 +wall_material_flow = =material_flow +wall_overhang_angle = 90 +wall_x_material_flow = =wall_material_flow +xy_offset = =-layer_height * 0.1 +z_seam_corner = z_seam_corner_weighted +z_seam_position = back +z_seam_type = sharpest_corner + diff --git a/resources/variants/ultimaker_s8_cc06.inst.cfg b/resources/variants/ultimaker_s8_cc06.inst.cfg new file mode 100644 index 0000000000..617d334a44 --- /dev/null +++ b/resources/variants/ultimaker_s8_cc06.inst.cfg @@ -0,0 +1,184 @@ +[general] +definition = ultimaker_s8 +name = CC 0.6 +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 25 +type = variant + +[values] +acceleration_flooring = =acceleration_topbottom +acceleration_infill = =acceleration_print +acceleration_layer_0 = =acceleration_topbottom +acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 3500) +acceleration_print = 3500 +acceleration_print_layer_0 = =acceleration_layer_0 +acceleration_roofing = =acceleration_topbottom +acceleration_skirt_brim = =acceleration_layer_0 +acceleration_support = =math.ceil(acceleration_print * 2000 / 3500) +acceleration_support_bottom = =extruderValue(support_bottom_extruder_nr, 'acceleration_support_interface') +acceleration_support_infill = =acceleration_support +acceleration_support_interface = =acceleration_topbottom +acceleration_support_roof = =extruderValue(support_roof_extruder_nr, 'acceleration_support_interface') +acceleration_topbottom = =math.ceil(acceleration_print * 1000 / 3500) +acceleration_travel = =acceleration_print if magic_spiralize else 5000 +acceleration_travel_enabled = False +acceleration_travel_layer_0 = =acceleration_layer_0 * acceleration_travel / acceleration_print +acceleration_wall = =math.ceil(acceleration_print * 1500 / 3500) +acceleration_wall_0 = =math.ceil(acceleration_wall * 1000 / 1000) +acceleration_wall_0_flooring = =acceleration_wall_0 +acceleration_wall_0_roofing = =acceleration_wall_0 +acceleration_wall_x = =acceleration_wall +acceleration_wall_x_flooring = =acceleration_wall_x +acceleration_wall_x_roofing = =acceleration_wall_x +adhesion_type = brim +bottom_thickness = =top_bottom_thickness +bridge_enable_more_layers = False +bridge_skin_density = 80 +bridge_skin_material_flow = =skin_material_flow +bridge_skin_material_flow_2 = =skin_material_flow +bridge_skin_speed = =speed_topbottom +bridge_skin_speed_2 = =speed_topbottom +bridge_sparse_infill_max_density = 0 +bridge_wall_material_flow = =wall_material_flow +bridge_wall_min_length = =line_width + support_xy_distance + 1.0 +bridge_wall_speed = =bridge_skin_speed +brim_width = 7 +cool_during_extruder_switch = unchanged +cool_min_layer_time = 6 +cool_min_layer_time_overhang = =cool_min_layer_time +cool_min_layer_time_overhang_min_segment_length = 5 +cool_min_speed = =round(speed_wall_0 * 3 / 4) if cool_lift_head else round(speed_wall_0 / 5) +cool_min_temperature = =max([material_final_print_temperature, material_initial_print_temperature, material_print_temperature - 15]) +extra_infill_lines_to_support_skins = none +flooring_layer_count = 0 +gradual_flow_enabled = False +hole_xy_offset = 0 +infill_material_flow = =(1.95-infill_sparse_density / 100 if infill_sparse_density > 95 else 1) * material_flow +infill_overlap = =0 if infill_sparse_density > 80 else 10 +infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' +infill_sparse_density = 20 +infill_wall_line_count = 0 +initial_bottom_layers = =bottom_layers +jerk_flooring = =jerk_topbottom +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_print +jerk_prime_tower = =jerk_print +jerk_print = 4000 +jerk_print_layer_0 = =max(4000, jerk_wall_0) +jerk_roofing = =jerk_topbottom +jerk_skirt_brim = =jerk_layer_0 +jerk_support = =jerk_print +jerk_support_bottom = =extruderValue(support_roof_extruder_nr, 'jerk_support_interface') +jerk_support_infill = =jerk_support +jerk_support_interface = =jerk_support +jerk_support_roof = =extruderValue(support_roof_extruder_nr, 'jerk_support_interface') +jerk_topbottom = =jerk_print +jerk_travel = =jerk_print +jerk_travel_layer_0 = =jerk_layer_0 * jerk_travel / jerk_print +jerk_wall = =jerk_print +jerk_wall_0 = =jerk_wall +jerk_wall_0_flooring = =jerk_wall_0 +jerk_wall_0_roofing = =jerk_wall_0 +jerk_wall_x = =jerk_wall +jerk_wall_x_flooring = =jerk_wall_x +jerk_wall_x_roofing = =jerk_wall_x +machine_nozzle_cool_down_speed = 0.9 +machine_nozzle_id = CC 0.6 +machine_nozzle_size = 0.6 +material_extrusion_cool_down_speed = 0.7 +material_final_print_temperature = =max(-273.15, material_print_temperature - 15) +material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) +material_pressure_advance_factor = 0.05 +max_flow_acceleration = 1 +max_skin_angle_for_expansion = 90 +meshfix_maximum_resolution = =max(speed_wall_0 / 75, 0.5) +min_infill_area = 0 +optimize_wall_printing_order = True +prime_tower_brim_enable = =resolveOrValue('adhesion_type') in ['raft', 'brim'] +prime_tower_min_volume = 6 +retraction_amount = 6.5 +retraction_combing_avoid_distance = =machine_nozzle_size * 1.5 +retraction_combing_max_distance = 15 +retraction_hop = 2 +retraction_hop_after_extruder_switch_height = =retraction_hop +retraction_hop_enabled = =extruders_enabled_count > 1 +retraction_min_travel = 5 +retraction_prime_speed = =retraction_speed +skin_edge_support_thickness = =4 * layer_height if infill_sparse_density < 30 else 0 +skin_material_flow = =0.95 * material_flow +skin_outline_count = =0 if top_bottom_pattern == 'concentric' and top_bottom_pattern_0 == 'concentric' and roofing_layer_count <= 0 else 1 +skin_overlap = 20 +skin_preshrink = =wall_line_width_0 + (wall_line_count - 1) * wall_line_width_x +skirt_brim_minimal_length = 250 +skirt_brim_speed = =speed_layer_0 +skirt_line_count = 1 +small_skin_on_surface = False +small_skin_width = =skin_line_width * 2 +speed_flooring = =speed_topbottom +speed_infill = =speed_print +speed_ironing = =speed_topbottom * 20 / 30 +speed_layer_0 = =min(30, layer_height / layer_height_0 * speed_wall_0) +speed_prime_tower = =speed_topbottom +speed_print = 45 +speed_print_layer_0 = =speed_layer_0 +speed_roofing = =speed_topbottom +speed_support = =speed_topbottom +speed_support_bottom = =extruderValue(support_bottom_extruder_nr, 'speed_support_interface') +speed_support_infill = =speed_support +speed_support_interface = =speed_topbottom +speed_support_roof = =extruderValue(support_roof_extruder_nr, 'speed_support_interface') +speed_topbottom = =math.ceil(speed_print * 25 / 45) +speed_travel = 150 +speed_travel_layer_0 = =speed_travel +speed_wall = =math.ceil(speed_print * 30 / 45) +speed_wall_0 = =math.ceil(speed_wall * 25 / 30) +speed_wall_0_flooring = =speed_wall_0 +speed_wall_0_roofing = =speed_wall_0 +speed_wall_x = =speed_wall +speed_wall_x_flooring = =speed_wall_x +speed_wall_x_roofing = =speed_wall_x +support_angle = 60 +support_bottom_distance = =support_z_distance / 2 +support_bottom_offset = =extruderValue(support_bottom_extruder_nr, 'support_interface_offset') +support_brim_width = =(skirt_brim_line_width * initial_layer_line_width_factor / 100.0) * 3 +support_interface_enable = False +support_interface_offset = =support_offset +support_line_width = =line_width +support_offset = =support_line_width + 0.4 if support_structure == 'normal' else 0.0 +support_pattern = zigzag +support_structure = normal +support_top_distance = =support_z_distance +support_tree_angle = =max(min(support_angle, 85), 20) +support_tree_angle_slow = =support_tree_angle * 2 / 3 +support_tree_bp_diameter = 7.5 +support_tree_branch_diameter = 5 +support_tree_branch_diameter_angle = 7 +support_tree_max_diameter = 25 +support_tree_tip_diameter = =support_line_width * 2 +support_tree_top_rate = =30 if support_roof_enable else 10 +support_xy_distance = 0.7 +support_xy_distance_overhang = 0.2 +support_z_distance = =layer_height * 2 +switch_extruder_prime_speed = =switch_extruder_retraction_speeds +switch_extruder_retraction_amount = =machine_heat_zone_length +top_bottom_thickness = =layer_height * 6 +travel_avoid_other_parts = True +travel_avoid_supports = False +wall_0_acceleration = 20.0 +wall_0_deceleration = 20.0 +wall_0_end_speed_ratio = 100.0 +wall_0_inset = 0 +wall_0_speed_split_distance = 1.0 +wall_0_start_speed_ratio = 100.0 +wall_0_wipe_dist = =machine_nozzle_size / 2 +wall_material_flow = =material_flow +wall_overhang_angle = 90 +wall_x_material_flow = =wall_material_flow +xy_offset = =-layer_height * 0.1 +z_seam_corner = z_seam_corner_weighted +z_seam_position = back +z_seam_type = sharpest_corner + From 43015f9543077de9bfa9c3b7bf5a804f839fea7a Mon Sep 17 00:00:00 2001 From: Frederic Meeuwissen <13856291+Frederic98@users.noreply.github.com> Date: Mon, 1 Sep 2025 17:02:41 +0200 Subject: [PATCH 145/200] Make `bridge_wall_min_length` settable per extruder --- resources/definitions/fdmprinter.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 68852d805f..3a2073b5b7 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -8808,7 +8808,7 @@ "value": "line_width + support_xy_distance + 1.0", "enabled": "bridge_settings_enabled", "settable_per_mesh": true, - "settable_per_extruder": false + "settable_per_extruder": true }, "bridge_skin_support_threshold": { From 6d857a7eb9109a90bdb8b91c85e950003c32abf6 Mon Sep 17 00:00:00 2001 From: Frederic Meeuwissen <13856291+Frederic98@users.noreply.github.com> Date: Tue, 2 Sep 2025 10:06:09 +0200 Subject: [PATCH 146/200] Decide better what settings (not) to put in legacy cores --- resources/variants/ultimaker_s6_aa025.inst.cfg | 3 +-- resources/variants/ultimaker_s6_aa04.inst.cfg | 4 ++-- resources/variants/ultimaker_s6_aa08.inst.cfg | 3 +-- resources/variants/ultimaker_s6_cc04.inst.cfg | 4 ++-- resources/variants/ultimaker_s6_cc06.inst.cfg | 4 ++-- resources/variants/ultimaker_s8_aa025.inst.cfg | 3 +-- resources/variants/ultimaker_s8_aa04.inst.cfg | 4 ++-- resources/variants/ultimaker_s8_aa08.inst.cfg | 3 +-- resources/variants/ultimaker_s8_cc04.inst.cfg | 4 ++-- resources/variants/ultimaker_s8_cc06.inst.cfg | 4 ++-- 10 files changed, 16 insertions(+), 20 deletions(-) diff --git a/resources/variants/ultimaker_s6_aa025.inst.cfg b/resources/variants/ultimaker_s6_aa025.inst.cfg index 72c530b778..efdee1d071 100644 --- a/resources/variants/ultimaker_s6_aa025.inst.cfg +++ b/resources/variants/ultimaker_s6_aa025.inst.cfg @@ -46,7 +46,6 @@ bridge_wall_material_flow = =wall_material_flow bridge_wall_min_length = =line_width + support_xy_distance + 1.0 bridge_wall_speed = =bridge_skin_speed brim_width = 7 -cool_during_extruder_switch = unchanged cool_min_layer_time = 0 cool_min_layer_time_overhang = =cool_min_layer_time cool_min_layer_time_overhang_min_segment_length = 5 @@ -77,6 +76,7 @@ jerk_support_interface = =jerk_support jerk_support_roof = =extruderValue(support_roof_extruder_nr, 'jerk_support_interface') jerk_topbottom = =jerk_print jerk_travel = =jerk_print +jerk_travel_enabled = False jerk_travel_layer_0 = =jerk_layer_0 * jerk_travel / jerk_print jerk_wall = =jerk_print jerk_wall_0 = =jerk_wall @@ -99,7 +99,6 @@ max_skin_angle_for_expansion = 90 meshfix_maximum_resolution = =max(speed_wall_0 / 75, 0.5) min_infill_area = 0 optimize_wall_printing_order = True -prime_tower_brim_enable = =resolveOrValue('adhesion_type') in ['raft', 'brim'] prime_tower_min_volume = 6 retraction_amount = 6.5 retraction_combing_avoid_distance = =machine_nozzle_size * 1.5 diff --git a/resources/variants/ultimaker_s6_aa04.inst.cfg b/resources/variants/ultimaker_s6_aa04.inst.cfg index dc00a1716c..0f2155e944 100644 --- a/resources/variants/ultimaker_s6_aa04.inst.cfg +++ b/resources/variants/ultimaker_s6_aa04.inst.cfg @@ -46,7 +46,6 @@ bridge_wall_material_flow = =wall_material_flow bridge_wall_min_length = =line_width + support_xy_distance + 1.0 bridge_wall_speed = =bridge_skin_speed brim_width = 7 -cool_during_extruder_switch = unchanged cool_min_layer_time = 6 cool_min_layer_time_overhang = =cool_min_layer_time cool_min_layer_time_overhang_min_segment_length = 5 @@ -77,6 +76,7 @@ jerk_support_interface = =jerk_support jerk_support_roof = =extruderValue(support_roof_extruder_nr, 'jerk_support_interface') jerk_topbottom = =jerk_print jerk_travel = =jerk_print +jerk_travel_enabled = False jerk_travel_layer_0 = =jerk_layer_0 * jerk_travel / jerk_print jerk_wall = =jerk_print jerk_wall_0 = =jerk_wall @@ -86,6 +86,7 @@ jerk_wall_x = =jerk_wall jerk_wall_x_flooring = =jerk_wall_x jerk_wall_x_roofing = =jerk_wall_x machine_nozzle_cool_down_speed = 0.9 +machine_nozzle_heat_up_speed = 1.4 machine_nozzle_id = AA 0.4 machine_nozzle_size = 0.4 machine_nozzle_tip_outer_diameter = 1.0 @@ -98,7 +99,6 @@ max_skin_angle_for_expansion = 90 meshfix_maximum_resolution = =max(speed_wall_0 / 75, 0.5) min_infill_area = 0 optimize_wall_printing_order = True -prime_tower_brim_enable = =resolveOrValue('adhesion_type') in ['raft', 'brim'] prime_tower_min_volume = 6 retraction_amount = 6.5 retraction_combing_avoid_distance = =machine_nozzle_size * 1.5 diff --git a/resources/variants/ultimaker_s6_aa08.inst.cfg b/resources/variants/ultimaker_s6_aa08.inst.cfg index 216ee6934e..a51a46173c 100644 --- a/resources/variants/ultimaker_s6_aa08.inst.cfg +++ b/resources/variants/ultimaker_s6_aa08.inst.cfg @@ -46,7 +46,6 @@ bridge_wall_material_flow = =wall_material_flow bridge_wall_min_length = =line_width + support_xy_distance + 1.0 bridge_wall_speed = =bridge_skin_speed brim_width = 7 -cool_during_extruder_switch = unchanged cool_fan_speed = 7 cool_min_layer_time = 6 cool_min_layer_time_overhang = =cool_min_layer_time @@ -80,6 +79,7 @@ jerk_support_interface = =jerk_support jerk_support_roof = =extruderValue(support_roof_extruder_nr, 'jerk_support_interface') jerk_topbottom = =jerk_print jerk_travel = =jerk_print +jerk_travel_enabled = False jerk_travel_layer_0 = =jerk_layer_0 * jerk_travel / jerk_print jerk_wall = =jerk_print jerk_wall_0 = =jerk_wall @@ -105,7 +105,6 @@ meshfix_maximum_resolution = =max(speed_wall_0 / 75, 0.5) min_infill_area = 0 multiple_mesh_overlap = 0 optimize_wall_printing_order = True -prime_tower_brim_enable = =resolveOrValue('adhesion_type') in ['raft', 'brim'] prime_tower_enable = False prime_tower_min_volume = 6 prime_tower_wipe_enabled = True diff --git a/resources/variants/ultimaker_s6_cc04.inst.cfg b/resources/variants/ultimaker_s6_cc04.inst.cfg index e0794b02df..8c55862d90 100644 --- a/resources/variants/ultimaker_s6_cc04.inst.cfg +++ b/resources/variants/ultimaker_s6_cc04.inst.cfg @@ -46,7 +46,6 @@ bridge_wall_material_flow = =wall_material_flow bridge_wall_min_length = =line_width + support_xy_distance + 1.0 bridge_wall_speed = =bridge_skin_speed brim_width = 7 -cool_during_extruder_switch = unchanged cool_min_layer_time = 6 cool_min_layer_time_overhang = =cool_min_layer_time cool_min_layer_time_overhang_min_segment_length = 5 @@ -77,6 +76,7 @@ jerk_support_interface = =jerk_support jerk_support_roof = =extruderValue(support_roof_extruder_nr, 'jerk_support_interface') jerk_topbottom = =jerk_print jerk_travel = =jerk_print +jerk_travel_enabled = False jerk_travel_layer_0 = =jerk_layer_0 * jerk_travel / jerk_print jerk_wall = =jerk_print jerk_wall_0 = =jerk_wall @@ -86,6 +86,7 @@ jerk_wall_x = =jerk_wall jerk_wall_x_flooring = =jerk_wall_x jerk_wall_x_roofing = =jerk_wall_x machine_nozzle_cool_down_speed = 0.9 +machine_nozzle_heat_up_speed = 1.4 machine_nozzle_id = CC 0.4 machine_nozzle_size = 0.4 material_extrusion_cool_down_speed = 0.7 @@ -97,7 +98,6 @@ max_skin_angle_for_expansion = 90 meshfix_maximum_resolution = =max(speed_wall_0 / 75, 0.5) min_infill_area = 0 optimize_wall_printing_order = True -prime_tower_brim_enable = =resolveOrValue('adhesion_type') in ['raft', 'brim'] prime_tower_min_volume = 6 retraction_amount = 6.5 retraction_combing_avoid_distance = =machine_nozzle_size * 1.5 diff --git a/resources/variants/ultimaker_s6_cc06.inst.cfg b/resources/variants/ultimaker_s6_cc06.inst.cfg index cf06f78990..9cb9afade5 100644 --- a/resources/variants/ultimaker_s6_cc06.inst.cfg +++ b/resources/variants/ultimaker_s6_cc06.inst.cfg @@ -46,7 +46,6 @@ bridge_wall_material_flow = =wall_material_flow bridge_wall_min_length = =line_width + support_xy_distance + 1.0 bridge_wall_speed = =bridge_skin_speed brim_width = 7 -cool_during_extruder_switch = unchanged cool_min_layer_time = 6 cool_min_layer_time_overhang = =cool_min_layer_time cool_min_layer_time_overhang_min_segment_length = 5 @@ -77,6 +76,7 @@ jerk_support_interface = =jerk_support jerk_support_roof = =extruderValue(support_roof_extruder_nr, 'jerk_support_interface') jerk_topbottom = =jerk_print jerk_travel = =jerk_print +jerk_travel_enabled = False jerk_travel_layer_0 = =jerk_layer_0 * jerk_travel / jerk_print jerk_wall = =jerk_print jerk_wall_0 = =jerk_wall @@ -86,6 +86,7 @@ jerk_wall_x = =jerk_wall jerk_wall_x_flooring = =jerk_wall_x jerk_wall_x_roofing = =jerk_wall_x machine_nozzle_cool_down_speed = 0.9 +machine_nozzle_heat_up_speed = 1.4 machine_nozzle_id = CC 0.6 machine_nozzle_size = 0.6 material_extrusion_cool_down_speed = 0.7 @@ -97,7 +98,6 @@ max_skin_angle_for_expansion = 90 meshfix_maximum_resolution = =max(speed_wall_0 / 75, 0.5) min_infill_area = 0 optimize_wall_printing_order = True -prime_tower_brim_enable = =resolveOrValue('adhesion_type') in ['raft', 'brim'] prime_tower_min_volume = 6 retraction_amount = 6.5 retraction_combing_avoid_distance = =machine_nozzle_size * 1.5 diff --git a/resources/variants/ultimaker_s8_aa025.inst.cfg b/resources/variants/ultimaker_s8_aa025.inst.cfg index 32df78b5e0..608a11249d 100644 --- a/resources/variants/ultimaker_s8_aa025.inst.cfg +++ b/resources/variants/ultimaker_s8_aa025.inst.cfg @@ -46,7 +46,6 @@ bridge_wall_material_flow = =wall_material_flow bridge_wall_min_length = =line_width + support_xy_distance + 1.0 bridge_wall_speed = =bridge_skin_speed brim_width = 7 -cool_during_extruder_switch = unchanged cool_min_layer_time = 0 cool_min_layer_time_overhang = =cool_min_layer_time cool_min_layer_time_overhang_min_segment_length = 5 @@ -77,6 +76,7 @@ jerk_support_interface = =jerk_support jerk_support_roof = =extruderValue(support_roof_extruder_nr, 'jerk_support_interface') jerk_topbottom = =jerk_print jerk_travel = =jerk_print +jerk_travel_enabled = False jerk_travel_layer_0 = =jerk_layer_0 * jerk_travel / jerk_print jerk_wall = =jerk_print jerk_wall_0 = =jerk_wall @@ -99,7 +99,6 @@ max_skin_angle_for_expansion = 90 meshfix_maximum_resolution = =max(speed_wall_0 / 75, 0.5) min_infill_area = 0 optimize_wall_printing_order = True -prime_tower_brim_enable = =resolveOrValue('adhesion_type') in ['raft', 'brim'] prime_tower_min_volume = 6 retraction_amount = 6.5 retraction_combing_avoid_distance = =machine_nozzle_size * 1.5 diff --git a/resources/variants/ultimaker_s8_aa04.inst.cfg b/resources/variants/ultimaker_s8_aa04.inst.cfg index ca56d71750..8260baa7a8 100644 --- a/resources/variants/ultimaker_s8_aa04.inst.cfg +++ b/resources/variants/ultimaker_s8_aa04.inst.cfg @@ -46,7 +46,6 @@ bridge_wall_material_flow = =wall_material_flow bridge_wall_min_length = =line_width + support_xy_distance + 1.0 bridge_wall_speed = =bridge_skin_speed brim_width = 7 -cool_during_extruder_switch = unchanged cool_min_layer_time = 6 cool_min_layer_time_overhang = =cool_min_layer_time cool_min_layer_time_overhang_min_segment_length = 5 @@ -77,6 +76,7 @@ jerk_support_interface = =jerk_support jerk_support_roof = =extruderValue(support_roof_extruder_nr, 'jerk_support_interface') jerk_topbottom = =jerk_print jerk_travel = =jerk_print +jerk_travel_enabled = False jerk_travel_layer_0 = =jerk_layer_0 * jerk_travel / jerk_print jerk_wall = =jerk_print jerk_wall_0 = =jerk_wall @@ -86,6 +86,7 @@ jerk_wall_x = =jerk_wall jerk_wall_x_flooring = =jerk_wall_x jerk_wall_x_roofing = =jerk_wall_x machine_nozzle_cool_down_speed = 0.9 +machine_nozzle_heat_up_speed = 1.4 machine_nozzle_id = AA 0.4 machine_nozzle_size = 0.4 machine_nozzle_tip_outer_diameter = 1.0 @@ -98,7 +99,6 @@ max_skin_angle_for_expansion = 90 meshfix_maximum_resolution = =max(speed_wall_0 / 75, 0.5) min_infill_area = 0 optimize_wall_printing_order = True -prime_tower_brim_enable = =resolveOrValue('adhesion_type') in ['raft', 'brim'] prime_tower_min_volume = 6 retraction_amount = 6.5 retraction_combing_avoid_distance = =machine_nozzle_size * 1.5 diff --git a/resources/variants/ultimaker_s8_aa08.inst.cfg b/resources/variants/ultimaker_s8_aa08.inst.cfg index cf87ec6aec..30cc256e21 100644 --- a/resources/variants/ultimaker_s8_aa08.inst.cfg +++ b/resources/variants/ultimaker_s8_aa08.inst.cfg @@ -46,7 +46,6 @@ bridge_wall_material_flow = =wall_material_flow bridge_wall_min_length = =line_width + support_xy_distance + 1.0 bridge_wall_speed = =bridge_skin_speed brim_width = 7 -cool_during_extruder_switch = unchanged cool_fan_speed = 7 cool_min_layer_time = 6 cool_min_layer_time_overhang = =cool_min_layer_time @@ -80,6 +79,7 @@ jerk_support_interface = =jerk_support jerk_support_roof = =extruderValue(support_roof_extruder_nr, 'jerk_support_interface') jerk_topbottom = =jerk_print jerk_travel = =jerk_print +jerk_travel_enabled = False jerk_travel_layer_0 = =jerk_layer_0 * jerk_travel / jerk_print jerk_wall = =jerk_print jerk_wall_0 = =jerk_wall @@ -105,7 +105,6 @@ meshfix_maximum_resolution = =max(speed_wall_0 / 75, 0.5) min_infill_area = 0 multiple_mesh_overlap = 0 optimize_wall_printing_order = True -prime_tower_brim_enable = =resolveOrValue('adhesion_type') in ['raft', 'brim'] prime_tower_enable = False prime_tower_min_volume = 6 prime_tower_wipe_enabled = True diff --git a/resources/variants/ultimaker_s8_cc04.inst.cfg b/resources/variants/ultimaker_s8_cc04.inst.cfg index db7d8945bb..ad55bf758b 100644 --- a/resources/variants/ultimaker_s8_cc04.inst.cfg +++ b/resources/variants/ultimaker_s8_cc04.inst.cfg @@ -46,7 +46,6 @@ bridge_wall_material_flow = =wall_material_flow bridge_wall_min_length = =line_width + support_xy_distance + 1.0 bridge_wall_speed = =bridge_skin_speed brim_width = 7 -cool_during_extruder_switch = unchanged cool_min_layer_time = 6 cool_min_layer_time_overhang = =cool_min_layer_time cool_min_layer_time_overhang_min_segment_length = 5 @@ -77,6 +76,7 @@ jerk_support_interface = =jerk_support jerk_support_roof = =extruderValue(support_roof_extruder_nr, 'jerk_support_interface') jerk_topbottom = =jerk_print jerk_travel = =jerk_print +jerk_travel_enabled = False jerk_travel_layer_0 = =jerk_layer_0 * jerk_travel / jerk_print jerk_wall = =jerk_print jerk_wall_0 = =jerk_wall @@ -86,6 +86,7 @@ jerk_wall_x = =jerk_wall jerk_wall_x_flooring = =jerk_wall_x jerk_wall_x_roofing = =jerk_wall_x machine_nozzle_cool_down_speed = 0.9 +machine_nozzle_heat_up_speed = 1.4 machine_nozzle_id = CC 0.4 machine_nozzle_size = 0.4 material_extrusion_cool_down_speed = 0.7 @@ -97,7 +98,6 @@ max_skin_angle_for_expansion = 90 meshfix_maximum_resolution = =max(speed_wall_0 / 75, 0.5) min_infill_area = 0 optimize_wall_printing_order = True -prime_tower_brim_enable = =resolveOrValue('adhesion_type') in ['raft', 'brim'] prime_tower_min_volume = 6 retraction_amount = 6.5 retraction_combing_avoid_distance = =machine_nozzle_size * 1.5 diff --git a/resources/variants/ultimaker_s8_cc06.inst.cfg b/resources/variants/ultimaker_s8_cc06.inst.cfg index 617d334a44..6e00f0e64e 100644 --- a/resources/variants/ultimaker_s8_cc06.inst.cfg +++ b/resources/variants/ultimaker_s8_cc06.inst.cfg @@ -46,7 +46,6 @@ bridge_wall_material_flow = =wall_material_flow bridge_wall_min_length = =line_width + support_xy_distance + 1.0 bridge_wall_speed = =bridge_skin_speed brim_width = 7 -cool_during_extruder_switch = unchanged cool_min_layer_time = 6 cool_min_layer_time_overhang = =cool_min_layer_time cool_min_layer_time_overhang_min_segment_length = 5 @@ -77,6 +76,7 @@ jerk_support_interface = =jerk_support jerk_support_roof = =extruderValue(support_roof_extruder_nr, 'jerk_support_interface') jerk_topbottom = =jerk_print jerk_travel = =jerk_print +jerk_travel_enabled = False jerk_travel_layer_0 = =jerk_layer_0 * jerk_travel / jerk_print jerk_wall = =jerk_print jerk_wall_0 = =jerk_wall @@ -86,6 +86,7 @@ jerk_wall_x = =jerk_wall jerk_wall_x_flooring = =jerk_wall_x jerk_wall_x_roofing = =jerk_wall_x machine_nozzle_cool_down_speed = 0.9 +machine_nozzle_heat_up_speed = 1.4 machine_nozzle_id = CC 0.6 machine_nozzle_size = 0.6 material_extrusion_cool_down_speed = 0.7 @@ -97,7 +98,6 @@ max_skin_angle_for_expansion = 90 meshfix_maximum_resolution = =max(speed_wall_0 / 75, 0.5) min_infill_area = 0 optimize_wall_printing_order = True -prime_tower_brim_enable = =resolveOrValue('adhesion_type') in ['raft', 'brim'] prime_tower_min_volume = 6 retraction_amount = 6.5 retraction_combing_avoid_distance = =machine_nozzle_size * 1.5 From 851544a3c23846149d60d505f2b15a5b5807ace1 Mon Sep 17 00:00:00 2001 From: Paul Kuiper <46715907+pkuiper-ultimaker@users.noreply.github.com> Date: Tue, 2 Sep 2025 12:40:48 +0200 Subject: [PATCH 147/200] Disable the retract during travel settings for the S6 and S8 for now (they first need firmware update to use this). PP-673 --- resources/definitions/ultimaker_s8.def.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/resources/definitions/ultimaker_s8.def.json b/resources/definitions/ultimaker_s8.def.json index cbd6e255f8..b0d11ec463 100644 --- a/resources/definitions/ultimaker_s8.def.json +++ b/resources/definitions/ultimaker_s8.def.json @@ -384,6 +384,7 @@ "unit": "m/s\u00b3", "value": "jerk_wall_0" }, + "keep_retracting_during_travel": { "enabled": false }, "machine_gcode_flavor": { "default_value": "Cheetah" }, "machine_max_acceleration_x": { "default_value": 50000 }, "machine_max_acceleration_y": { "default_value": 50000 }, @@ -433,12 +434,14 @@ "meshfix_maximum_resolution": { "value": 0.4 }, "min_infill_area": { "default_value": 10 }, "optimize_wall_printing_order": { "value": false }, + "prime_during_travel_ratio": { "enabled": false }, "prime_tower_brim_enable": { "value": true }, "prime_tower_min_volume": { "value": 10 }, "prime_tower_mode": { "resolve": "'normal'" }, "retraction_amount": { "value": 6.5 }, "retraction_combing_avoid_distance": { "value": 1.2 }, "retraction_combing_max_distance": { "value": 50 }, + "retraction_during_travel_ratio": { "enabled": false }, "retraction_hop": { "value": 1 }, "retraction_hop_after_extruder_switch_height": { "value": 2 }, "retraction_hop_enabled": { "value": true }, From 3fb236392572c27462153fb0a1718d08a21d6fcf Mon Sep 17 00:00:00 2001 From: Paul Kuiper <46715907+pkuiper-ultimaker@users.noreply.github.com> Date: Wed, 3 Sep 2025 13:00:53 +0200 Subject: [PATCH 148/200] Removed platform offset and added the required transforms to the platform obj file. PP-674 --- .../ultimaker_replicator_plus.def.json | 256 +- .../ultimaker_replicator_plus_platform.3MF | Bin 712098 -> 0 bytes .../ultimaker_replicator_plus_platform.obj | 6749 +++++++++++++++++ 3 files changed, 7002 insertions(+), 3 deletions(-) delete mode 100644 resources/meshes/ultimaker_replicator_plus_platform.3MF create mode 100644 resources/meshes/ultimaker_replicator_plus_platform.obj diff --git a/resources/definitions/ultimaker_replicator_plus.def.json b/resources/definitions/ultimaker_replicator_plus.def.json index edfab6d962..7b01c55c17 100644 --- a/resources/definitions/ultimaker_replicator_plus.def.json +++ b/resources/definitions/ultimaker_replicator_plus.def.json @@ -8,7 +8,7 @@ "author": "Ultimaker", "manufacturer": "Ultimaker B.V.", "file_formats": "application/x-makerbot-replicator_plus", - "platform": "ultimaker_replicator_plus_platform.3MF", + "platform": "ultimaker_replicator_plus_platform.obj", "exclude_materials": [ "dsm_", "Essentium_", @@ -77,7 +77,112 @@ "acceleration_enabled": { "enabled": false, - "value": false + "value": true + }, + "acceleration_infill": + { + "enabled": false, + "value": "acceleration_print" + }, + "acceleration_layer_0": + { + "enabled": false, + "value": "acceleration_print" + }, + "acceleration_prime_tower": + { + "enabled": false, + "value": "acceleration_print" + }, + "acceleration_print": + { + "enabled": false, + "value": 200 + }, + "acceleration_print_layer_0": + { + "enabled": false, + "value": "acceleration_print" + }, + "acceleration_roofing": + { + "enabled": false, + "value": "acceleration_print" + }, + "acceleration_skirt_brim": + { + "enabled": false, + "value": "acceleration_print" + }, + "acceleration_support": + { + "enabled": false, + "value": "acceleration_print" + }, + "acceleration_support_bottom": + { + "enabled": false, + "value": "acceleration_support_interface" + }, + "acceleration_support_infill": + { + "enabled": false, + "value": "acceleration_support" + }, + "acceleration_support_interface": + { + "enabled": false, + "value": "acceleration_support" + }, + "acceleration_support_roof": + { + "enabled": false, + "value": "acceleration_support_interface" + }, + "acceleration_topbottom": + { + "enabled": false, + "value": "acceleration_print" + }, + "acceleration_travel": + { + "enabled": false, + "value": 1000 + }, + "acceleration_travel_enabled": + { + "enabled": false, + "value": true + }, + "acceleration_travel_layer_0": + { + "enabled": false, + "value": "acceleration_travel" + }, + "acceleration_wall": + { + "enabled": false, + "value": "acceleration_print" + }, + "acceleration_wall_0": + { + "enabled": false, + "value": "acceleration_wall" + }, + "acceleration_wall_0_roofing": + { + "enabled": false, + "value": "acceleration_wall" + }, + "acceleration_wall_x": + { + "enabled": false, + "value": "acceleration_wall" + }, + "acceleration_wall_x_roofing": + { + "enabled": false, + "value": "acceleration_wall" }, "adhesion_type": { "value": "'raft'" }, "brim_width": { "value": "3" }, @@ -110,7 +215,112 @@ "jerk_enabled": { "enabled": false, - "value": false + "value": true + }, + "jerk_infill": + { + "enabled": false, + "value": "jerk_print" + }, + "jerk_layer_0": + { + "enabled": false, + "value": "jerk_print" + }, + "jerk_prime_tower": + { + "enabled": false, + "value": "jerk_print" + }, + "jerk_print": + { + "enabled": false, + "value": 7 + }, + "jerk_print_layer_0": + { + "enabled": false, + "value": "jerk_print" + }, + "jerk_roofing": + { + "enabled": false, + "value": "jerk_print" + }, + "jerk_skirt_brim": + { + "enabled": false, + "value": "jerk_print" + }, + "jerk_support": + { + "enabled": false, + "value": "jerk_print" + }, + "jerk_support_bottom": + { + "enabled": false, + "value": "jerk_support_interface" + }, + "jerk_support_infill": + { + "enabled": false, + "value": "jerk_support" + }, + "jerk_support_interface": + { + "enabled": false, + "value": "jerk_support" + }, + "jerk_support_roof": + { + "enabled": false, + "value": "jerk_support_interface" + }, + "jerk_topbottom": + { + "enabled": false, + "value": "jerk_print" + }, + "jerk_travel": + { + "enabled": false, + "value": "jerk_print" + }, + "jerk_travel_enabled": + { + "enabled": false, + "value": true + }, + "jerk_travel_layer_0": + { + "enabled": false, + "value": "jerk_travel" + }, + "jerk_wall": + { + "enabled": false, + "value": "jerk_print" + }, + "jerk_wall_0": + { + "enabled": false, + "value": "jerk_print" + }, + "jerk_wall_0_roofing": + { + "enabled": false, + "value": "jerk_print" + }, + "jerk_wall_x": + { + "enabled": false, + "value": "jerk_print" + }, + "jerk_wall_x_roofing": + { + "enabled": false, + "value": "jerk_print" }, "layer_height_0": { "value": "0.2 if resolveOrValue('adhesion_type') == 'raft' else 0.3" }, "layer_start_x": { "value": "sum(extruderValues('machine_extruder_start_pos_x')) / len(extruderValues('machine_extruder_start_pos_x'))" }, @@ -178,18 +388,58 @@ "value": "resolveOrValue('print_sequence') != 'one_at_a_time'" }, "print_sequence": { "enabled": false }, + "raft_acceleration": + { + "enabled": false, + "value": "acceleration_print" + }, "raft_airgap": { "value": 0.3 }, + "raft_base_acceleration": + { + "enabled": false, + "value": "acceleration_print" + }, "raft_base_flow": { "value": 120 }, "raft_base_infill_overlap": { "value": 25 }, + "raft_base_jerk": + { + "enabled": false, + "value": "jerk_print" + }, "raft_base_line_spacing": { "value": 2.5 }, "raft_base_line_width": { "value": 2 }, "raft_base_thickness": { "value": 0.4 }, + "raft_interface_acceleration": + { + "enabled": false, + "value": "acceleration_print" + }, "raft_interface_fan_speed": { "value": 0 }, "raft_interface_infill_overlap": { "value": 25 }, + "raft_interface_jerk": + { + "enabled": false, + "value": "jerk_print" + }, "raft_interface_wall_count": { "value": "raft_wall_count" }, + "raft_jerk": + { + "enabled": false, + "value": "jerk_print" + }, "raft_margin": { "value": 6.5 }, + "raft_surface_acceleration": + { + "enabled": false, + "value": "acceleration_print" + }, "raft_surface_fan_speed": { "value": 50.0 }, "raft_surface_infill_overlap": { "value": 35 }, + "raft_surface_jerk": + { + "enabled": false, + "value": "jerk_print" + }, "raft_surface_wall_count": { "value": "raft_wall_count" }, "raft_wall_count": { "value": 2 }, "retract_at_layer_change": { "value": true }, diff --git a/resources/meshes/ultimaker_replicator_plus_platform.3MF b/resources/meshes/ultimaker_replicator_plus_platform.3MF deleted file mode 100644 index 1d250b811393fdfd5467fd4425ec23f84779d64b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 712098 zcmZ^~byOTd_a+P^KyX4J_z*$}J_LusLU4DtV1tEVgIgFZxZB{a1Hpnb0fM`GfZ*zI-#T9ypenbQiYIBk8vt<&54(^9nG*W&3w(EhCNSs&@oG&928`SS{ z%aJGO!*;jyCCJ`V`&nXQyM27P62*bUTGrE@-^1;I+tba>m8kFI>4LGyjoZ}@;^_kM zVDI;MF`%5~cN6t^P%rv;x+B`=`*4@l_VgG{^R#wWDSChMxHlsD__z_x{`7e9(8G@K zrSZGH2w8qSITF3UzMw%o-7hS+J)I03Wg!TLw~h?2YafC{A8y+bCwm0OqEC-!1PGzW zVNu_^n>}NZhubrD#QpuA2^783%uL$v&`nVdB<$HbG>4tbX z-rGWW-_jub9#>f&O8s&~FLx^2gU&aFAD%@0L@6_4p6&*eMW60QM15b~J)F@PKc3u0 zXFX*jj*Dmz_oo|Ih=<1w8o#H*t*pn>67So`O25Zb`=`CLXycxz4ABF>`{lO#^O1d@ z=*9_x+uISugdbm_2kt}k)Ae4~4wv_X$GzsGa@Nyc^V97>(fJ>r{v03QvyBP2r~84T z`s2gyr@MPU(A7@!Q}konIpFkU+51W1?rK)<(trEj5%$Pb5EFKHzj==%l(4%%Zk)F~ z?-fp;e@k)Ic&jpUP4OW0YRe4Q#P-W7@aE5jwQ+XI8HHZxBMD$xAE%M=RlStDndo$< zZ40+{I<#_ZlK)~;&nL2Ic60sH77I7e*K>OyqT8o1NV9fW+v-Lc1K31(O~J;{^*if5 zDabfy!|B6Gkp+52<){-KS;MT#=nXcTp|2~;Jgfy%Z zy}(k|%(LW!kNTYcII%Hf7-_;HJ>E?a)LX34xEj}p41+WRMjyT%BnD|u(XW1POa^^y zZ5}tKsQQUV`Qotd*ilauSA9kV0~ASPI5FP`Ellkj{-YPncw;a zz88kND&z8nWd11&ue<4Cm^jvOR@lWf&RN!ZVCHsQ{*}Q_pK-ziyK-}D6v=o_p+sRc zgxw~kzV_Pi{D$YSbx&6yWZG(;y!dmbBT+=FXXT15w~LXQD@SX$d~ToS`UJ%gWg@ts zZpK}q&vN69LEeUF>a{xQzn*63`qj0bThZ`wVB_=OB#2SohSUd#s+>_)-Ry!FA5Iul zp_{X4Y(ZK6IJ99QH)w2KZA^KYQ3U(mp}wG_L63p9u5FE1x7dK4!RQ0PaAp8m)2=`R zN|A;xk(HsJ^L*0gVsItv&w{#3rxG9MG}eQvWc~fLzb3LjTL{@mfB%hB@S#;>r^1xC z>>J2iPwQD3C%-*?@vwP<$QNu;p#~NU%Y!Cx5_h0Y_4zDqDkSX1jq;#V9FiNTC&HYv zzqFixV=0|Ae^N8U`b6L9H*{#sc{fx3NT267v}w$FGsF5wAK*9i z$C&eKru>24%x`GgnDb(W^?_d8Z)n(<^K7R4o}SKcsN0zHWQO&g{+ZuUn=$86a`{~} z*;VpNLg-Y$9_jX86l&z=wv1Xe8c^Z7-`nqZwK2zj^8PJJjc;G6F~@H5ms^r}-@aU9 zj_u_A8xm*VKA17bX7ZOC5_R9cIAf0W}B`SwALIaWk}#l1Yx zw{+#p75yweVL}Zm@=K9Amd9yI-VeTLYp0R(-YWNBT@b^Jm2oXlxL{T9Jt z$#V7(`};bv<+`BuI&fo%rRt!2CMV;JQHLI#J=e zK;k-4=(>RWI+69d;N5j1)pY^!bt3L{!Sn0H`zwMUsjoMGz>Cly{O?^v?9~tZc%iWm znX3o*w=>Jg09=oFIK8Jq+$k&jaTh8tKUiizjrQ?Aj`Tha@f(|${ZWFCH)^uhXx8YX z16XUB`;oD35k?6|(|+|$>)^gVE)5P{Vr~e8$EiO~kC|2LqiZX{p{MmxfN*5Ct4+b6 z56JV2YuUO z4=3ePD>=7VK+T%pSO29!UJ>nINeX{^*OvBsPv!NP*JG=jiqxr1+X#EIx|TV}3`(OE?KK*q#33buDRtA zt?^CKXZQ3){Hd*sET)&7mgo0aMO3LvjEb8%Mq3~e<++46($f9Rvw}7uNsgI3nAFx@ z_D?J!=AuuDDAd-sn}610$hHu1*>nfLm(un{LFq+b<-+D-$ISr?b``T{lZxbyko^73 z*1Wc-ZHLSzChDjt;?z2~$txP_VRgQZjS?$f`M9k0WJ8ofhVqmTQew!;%Afx#JH@Wok*R+oWDhL*}7cnlmB#J zT47nd0pNZG>#Oa9#bTh{tS)ceZx~8*3lG>@rcCWuny21OHa4OKHuq^nCa?>U_L;m*Pun+k&})H# zIG^PB(iG@~z|DP+d1iHK`_z)ndEBJo!i%+)LBt19moypo^@1>c9f3t~d`SRP&-52g z64s6L<+R@duQv>`6u%T~TB#}cY*=w>Qh2dWq|ZPi=FBrAE+-Y&^v7^ER|V{5Ab(KL zvNH>-r_DtL3a3iBW$#MUx{HzMWuZ?c57TjY!g~@B2xomVr%zW8OrSUnWtE9zijX4#rOb+wLwQ50ja=M3!{TiWo=ll`?aEp=kgr_!lOSp&bZe#O?`trV?gMX95DbrT9!rE!9FJsZ#1zikE#xfJA_txhyisR$hk;Jt`7eDt60>h8CF6aD-*mYAcUt(20PIoRF8P$D4 z{QR?<68dOkAPw1=QV{z4p8aXsAn0UDfocsV$4zi7S=JZ=1#42lH^cB@8xFOgba9xA z!*Alv2I7tNk}0a>TyG&g#V-G}EIsPjkP^Xd_-JQk{io&DKiI9Oo-F6}WpMoEhn%&x zuRK>~8k-_C80!Ycs=5L_%l)gGEa&}uaC`zkkEz|`B?Q&XYGP%jp5jj0S(%nJ)tfdO z7sfSbxReC}HT?8TVnQ8AvpnWDTuWUWCxqmrX(}B{k_%Uz2bXC94#w>mIVhIYj*f`R zizPx!nIA~F(BnTp_8*p#d+yv#cTYU5$9nDn1wLNix@5O&n%r9h_mfroD0~Bebx0*T+2u`E(SR0eU!llalicC8r)1fVcs>&tB zLBa$K+sKkOB;qLS68aAcB}5|GBJ_XgOa5=hJC0q`p90l9fXLxjbJ41NHAAtbCsz5- zO~IBE7;5uW9u(11dg-4pc>_}Q@=^;NxlhA1Prn-`oaRo^HUQwYpW8VuFOlhHWO{ax z>LDVb6pnv#fqdeYo7=YTW4ke*qqSfJPEn69`KLHlv44&m#7Z-+y~rxXA3(l{y6~gM z>Pg}Fs+UL&o6YTLl~RgWydo{V25{8li((r%zCW@A{Ux&G8a}-nV=c|nb$0dr%iv1s z{4Swwv{rvPpgoe@R8yZi?qEy~XNgK6r zB`cdvI}B*8M|!-li#L3X`}uqXDbpFh;Mv5n3grO;F{H}!A2h7`4~_f}Dp&i5j`9xY zg@*ewwbG}pn&j_9b}NR~()V{YPyeLa+(Thp2P^BM&eNV=8Z#TJ)Ei1Y z?%7T(a68x8E7Nj*U&u9UYciSF!_+;gWjFjABI-r2cDwB;$62SD#&z;yiMht}eD?3Z znt)hS3$18?zVFoTcX^sTZSci*)f6&1C{TrBg}pi%TT8I9DHE|YZK7!XYvX;+kDfMP zI+B`#>RrkIjz;+Mx^yZ%)S*~T?@z~mm1Xl(ZBf*N-&c-+wPl+R^$#~aBTMOssn3U( zXZD$C4Zbz)LWd)4m%3aN+~9!5`jN6d+IMYJf2)c{6gNFXm%ljeZ=NMkH*@>d^i@TV z)VS`C+z!3(!52|ptm3-kOQZ6-5^`}?27LPUmD3GgZN2qX$n=G4e4}yV0qAP=rP+_P z!Hm)`la0@|lKjTZ4^=I~0oH#X(i96HUkV8rrgv_6Tecq ze_B8UNdpJVctif?@ORhy;Y3HIYTMz%#ZNNs$XPOY|CRLTH2i+R9a8#_&a%q=s;?BZ z2=ALuY;Jdk{_#Xr9D%E253h3$o zG3^?g7@FSaEp5~n&KqL$4+!{4U;YC||G=EB^lmQ_sHrA|rUT>Y+9f7nQD+DIuv#tY zT$6g_k|$1qX_beA!^=BA#|pJaJmq(uG~3CBOxyQLJ!&QYf54*usq?FvKDDp^T;6MN znlNAo;91s5z~wawb&SrBc|=Zqo$;|e-ZE*=azEs3XWQ9Ul`l(i_A8dMDeIJWI4>UD zrJH(>uyJX?!l#x^osxD^_L`5t=7$p+zGwe4|;`Y5c)UBfVZaTADfV&+hRQ(&E#B zdWQtk=i?QCYvSJypL{DSB6V9Aen*0=?|-{|@}rQ@&P69sI+{IR^R!GWq!4MsyHQz| z`vPfCo6AdMu~FGt(6IK_m-jB<@vJiI>6+ly*!c0l&*$-E&-kh3;poWs(b~ZM2FaHA zJq{EZBks>{l9Bs?%g)NIknSvf_otbs8@~r6D}(TUyrOwL8JKxmGxmL4J3`zaj~qQ- z{NsfDwnQH;kgUzk#gVb^-TlIhXy)UY+XBrNLbz?=Y6Kqj^8WUJqi|@}$eeGuD|kar z?TvkJE#IdV<9A(ql%H#Nk9cZmy>x*%omM!qrGH?qjp!)IaR-X6UCGHeHpVPjoeC4n zv=ZnWZmFhUhhFAo@7GmSwu5K-uwW7~h(8zfv%8?WcRR25HjvqQdxRPBwaNve6Ls~U z?{^oDr(OD}x3`77D{NS6{vkZ{?U>I6fjSWtM;$e`*9Ns>!sQ9354+7jss^pnb-gRJ z<~MwNUQRa;`;-Mfkhw?P>|!IZqbtm8$aiKpwsH|gZa$PheO;b`-jlLF?b`lm8+2lM z6Jv_oUD<{gT@i2ZdpGoYeuB zkTAul*=j3Sl>L};8FDJf7hy&>+PkG_@v}9KjdEJyc%HYn@T02n?Jj?buHka9^vt>F zY3~rwJqG&^CFebFxw8B2lC;3FX~sVbCh8%!m6PB~AZz`Q4?C-01%JH*fjD!D79vn8MdJ?Cw4p>7dE{j_Js zATlu>xEy?8@mddkuSH|vwgK-50b2Xz6YSsfMWzO6vQj)$G0cSXbtM3%ZBk}yy#8o4 zWhl&D*>T&3?;*IDwY`YXX`tTg#HY_S}++rhXN^7nheU zoZ)@yypf43jO@81+hwPCXD!=0?(yd1%d#{~kPFS{Vb*_U?140N5FSX6dlD_J+kpFi0NtIY{ zatQnK$c%Yd9e)^;-n!b-L=at}zJJ>5QWC@O>|S1X zy`s{$Ap#EXHeKL5zqWCXyDTIVIRKJcq4q9KDHJ%N7S@n+t7*vuaSr-YpXrBSXAOv5 zL#;Y<9BBaR)85J-F$rY~yu{@j@hH;fqJfNFTx{}a!st` zcoSX*eJ4{ z+AOkrG9QN$*)a%Dqa19GkrdF#wt{dbj9lwV2 zc%}nHT)#b2NL~J8tu_Lnp&VE1;@HlCZD6lmiv0S+sqO)pH_TUV(%q{F2wgPgG<4-# zJ!!nW`kA@2+4bvHS;MWIuD|$^q?LAl4DqbNJ2pHL=_2a!+bYt$0LS<@i6DA5T|2K9 z@^i3`QLe0#obId~{O`R?oo&$rCzVrNS~#n?HIF08yiOj7ntgQ5mSmJmuRBB5rgar> zY{w~9iA}2{_9ukXJ8pyA$e(U6=!JaFFM@h~K`w@w*h@TXc`=Z6e&oJJjuk{Z67E6s zXV{jMVzg2ErV$owMGQQd*ox>!xepekvGC2Y1{z*cjU7m=NSdOA^oO*t#B&$QX}qjWFO*xS zx1-W4qf|<%?Bw{0T!Jw>5s+QdZO2P~gS`By@XACz{9rn%BD(P;A0JNdUW~mJ#gQa= zQ*?YPFLZtx>m*OP>A+V@N{~jGn)A?)f~k6+*s1|{Isti@Bt@<-e2Z*u?;!KEc9^kZ zi51AmRcn7y8gN190EzJ&$g#I}F3?h3QYbh>_oVX5>95qZwRN!aRF5fzw0@jl z&6AqX-O$q7agS9hAD3w&CV&}oyxt+AQa{F9N#CdkHtJml$Zg@AJK&P?quAuQu#kq; z{KTBtkPys|v^TWvaug*0^v1(HI9vln2Uq3~9YaHaNOpRZ%{z5{y%T}|98JJJWwc9n z%3O~ne>bt?;1BrJF8FOn;#(z27|Ey6?Rnt1WkI!Pufn?>u({Dvi1bX=8qrnVfWTgt z3itHNzVj!3DBnBMwRJUXp#x3N?;Se%sd|PXK0a2j!rn|-x&5=ZhPp!0n+FSUaVmkd z$n_W~K@yy$D3@kwSU!;B5VkV5=1AFu6DQ)6?$o?C*6Yqztj-BXE*z^`eenKr`-PS00D3>Ah*Jb? zPvhLD8`e$us-%}U+~3lKbA*^*O-CJy0#CHHVeP#~8FLUQsWX3vyBO>i$xVBZp@0q_ zqMYur({Wo%-#%=*DAQi~$RO}#PfeInMl+nHEfv!6(cahlM~wU-XW++Epe}Ztl>EpK zF#=&TBe>VExit^FrNvQep~^^kI{ybf6t8I2Z>BEraWeGL?Hu)K+#Vxl&fxU@{f`;L zq}w@v-H!_rh*xdvY%*t<4S}O;Kcexwsh=^*90aZAjh&zg4`=EWD9MUGe@3_z(QM0& z@kYaQe{gmc#UW-d-G*EJTmxj3?*Yx%=smy6SLkDIeZChw(m;;}%W%ZH6={)2U-rib z7|Qg;V9Pt~61t5H1>o9)JF1jIaLx&_Io297G#u5Kz?tcC&Hplh{o6(rFRxr!3(w^8 z*3dm)pwFNJV{&_<$ZR__Z`ZpyScf)g3;T30$r5WP-f=e>WrwJI6b=x{eumIJDlE+& zyFqIWA2 zJB0DeDK=F*dE4u7EcqCle>25nlKB@;-#m>s+n64hc?mc^MmlOK;9)#}Swe0UM4vM3 zISUXHe-j;MeO-(ke_6zMmleNO*P3WazIHB5+;BkR(Ypk)lC{56f zTkOV9nLKd8kht1ZLtAb+wfOg94AFP%UXmnzj128BX#(kjy$4T~K?lH5FJb}Iee+bZ zYVW~@e7WXuNHGAnZ5>vg5!Viu5*X%U_hIR-)SbdLs(Uz> zw*7~h7<*K`+S`l}6#a;oiJva|d(&i-an5Hau+X+R+*8e@7u4>??B63DGFv3CFE~;? z#Jly>s-Q@f`O(&jd895kH!3}|g26{tDB%|jpOwsJLKE0V!%&Aam*!LX53oTLoU;vm zZ*mo^@aiH=*^U>E3sXo^xGE^2hY{cnip3zfF&@3V)e3B`=DEF1MhHu$1SWskRP7~g zl(zzkV1s9Dc;OQwwYK@AJttX5j=A8cPYQ}%gEq#wTvFlum?&WHriGDHQHDTj^Mc9G zhWw4n(O4rfc2dmm%M+;JF^Y`%pQ_SpFq2wmss%C99TusipSKPUer!^VHjY$Ek5T{V zmgUmp91FCZ&*GM28Pv>6-g0?kO90WW`IxF?W|K3kv|1rx|7S7UJ@NcnHf-^ zn)HHZo-e&>yu6vY)%+&STH4Kl*j4cs!8Vp=g7^3L#Oq*m*x=bEukg=;c=QP@*EbJy z3bnj0&ruHrq}9gT<(gaZ>=8|!59rEiWaoaCi^YnqnCuqhJFKUcGvkraZ0=+d%ll`w z`nwD8^C439!z=0sxn*!(~Lc0E{ zdX#Sr$7klM=|7UR!qTDHK9}@%_{b;6J~#Q+Roc7X9FIhSC^~@*SzI- z)!(DG^*F+6;q6t@>D5}J_|^MLoDQ^aKXPA_+0+s*#*C`&@7%Sg4+#>4v6n$Oazs9&PzoDvXE}E=(<=)U*8PlzwK|O7E zUDq1IS}{K4`3xYMEUv6$?fRJ)J%x+(O-Zo^*Qn}OHFvY$?>AoJ;?V1q*pjq@ zAdH`Flz#kqg?({e=Sq9LufnPHZQDCATC>_a(SOKj;_vjfQ>+N7y90gu%NVcPbO#-M zs7VBht}L^iXC(pu%!Dw$dVVe1-F)n4kuK?>G7}aDmg79Lz7^@32^Rh2F4<5K^r1nX zc{+oS5Wt?yiKO;3Apcj=l_o3ZLbEov#(EojbaXlH%%^68vP^P4dL;80wVSCogsr3X z{}(ZNHOF;E>zQLe^#2f5&R?uEvV^#3^lTYM2BoDkWwTcGku>u8ff;P(mJ7Z*pLPgqi5f6*x0{xmcm#tbKQ|5n8}!1SBk7;Bp~(j|}kCR=~# zqqa^yTysrr)hDI7qOq6sEw(5P3tN~<`2Y#Nc$fDc(eC=#W6k+3{XF}aJYBR&s1bz+ zf6$hw1bgIS5xuANI*@$~hwdnUxrt8yWDR1JO_`yMo3~-`!`V19$BmbvxPSvW*Bp3}lJpR9x{*Q|D7L~sK)>mt|Pr8wo z5dV@msKG$_cwBZ^i@qRzEBu>ahQ1@22T+ggaFvl+b=st#jlMTf77R7$ll=qe>k=eK zDGdE!x=BCD+G*p_^6OH9!PnIwkBcd|O`}SOe^vT-Ydnr7i^k9AX@;1x6TcY&eUc5H zZD<%j?q@@3eonSP1v8E&MBbCRSNyf$YBMRkso>MWV20@EuHlMi;(=C(HWIojrnKCf zl~@pZPkI7j%u0Q+VtHw5Eayr4^!AQtBwoFa;nM+`SF2+#FMjZhKpds|mhX-il77d3 zQ=+zsraI!vX!=Ka&}kfKTE$6gu|+f=FJ$se`F~B3TdS?FPFgw8=HvgE((M&JP4a62 zsX3Qy5?hEJlwwr_v-amh+J!Q(5`)t0aTbxxMnQ8Rx5nihB5Rz7ZN&jf+X^hJc92gK zh9_Xp*jhhPAUDi-x-zD#sY=6M2cR?N^as_`qi^ccI&9Zg5bAKD#%etbS1bU7whOgV z1(`&IkR!Dby;Ox8b!$TrYXQU+!BBiGbeqO&#Sqv64(x64noRm3JO17T}6EaP)pOu^K zd0WJa0k@i7km7R--(+Gb=&fj+O-`?ln_PI5=Z;Q$_Z5ww538pF9J3E;lV?d|IkfK+ z+NP+*7L@-$(BefZJgQ3kxD$PjSx< z+E^bB<0PtNjPmAPqU$p%>bD2$(#@bjY6c-SMK<>Btp^a$7`gSu4~DTsQ4s~e*9 zo27b-z!E%9|-jngsTmZVYF4DfVi1rf-M_-!5KEV7poU(AC7N7%vst71?;B96h@J zFxYE}VDk;?FiRkR`faPdZzqIbzwlX)fo7Np);@A(ZFN@$9<+_7ZlXLr9Zk4VfL2|Mk^&?4~89OKMECWfDHWxxjMYcp&D1 zGNke2-d@_IewB($+4Ow`>x=Nt_&+2LL({qMCt%3^%|wr91?Y?6(fqJJ zSSlZP9<7sIR>uqG3Q*cbX>%a*GK3YIbM4@GkKQcQ0-D}ng-*jl)E4t)C5EO476yKP zSXCK=U218^Qzm{r+;+rMs zXqhFL;4N25WeDXm7E@RWzG@6@l0DC>sgv^Z7a!Te^$#~ZnV4oA+j%_{cbp$^w@*7e z0oAj$De7d?OMDWU!YwN|BxvM1U>_A1bmF&=ZF|P0Rq*%*4BNC8)9biNGeT;Ou3PcWQf0AUc-uyK^>WqN))fXPb9_5kF$-2_ zF9r3_rVfeU&x(HXSs4BTN#CZh$TP(GMB58fteRNnQg~lDVW_uYKpSr98h>RoK1I|L zddyfh7c-R#g9sN`wetH?ZZfUevGypw?HZ`uz$Nf?!6(9NiPpUR?4-s5v*QL5=dO{! z;ycYw$5FELq*&De4X;C%R=sfm^Ixn!i^TLBt#jJy#!HtoUVrNW;7Q-xsF_BL)`^AS zKsG(8q+j-9?*AJ6a;v*6aG(z)uI{8I4|YwXB?gaQ_gLTR<#P{|zJIQ5g5ofooAmkN z=fuftVeWJ_oL{Q*3V*!d4u2MuW?msTjOF0kNrw*c__r-Qba_7h;2ae%(e{oRX{TBn zC3g|wYbR)+KJaeyrcdo>F3s$|9}qLP#wzt8)NbUz*jvTNp|Q1L%4|kc`v%c*m8Uh4~J#cPaH^S z=ezI;S%1STjPOiK8<1ovSr-w;ub>da?s-R|HZlc;n;l`pr;)re2e2c$*H_R`rhne%s{<5FOaPqH;?fHksbZ;Uq!DVGo!A-}Vq5BaCl$~}g zf;aDAxfpzQsl@EfMifP;27&oXP{wmpVV)hR$KqpwOu0>dj%BNH8nTbFV%<1?z-k84 zV{b`YG1JQ@IPg~z=!vwDQc^!oqmF)XQsmz5Xe|yJznJ*bXX#`e>&iA-`#gH0t?s>u z>n=gNP)53DS@l53d$D?3 zAye1Rds53LcdQvk{E8E@pH=lKQT0|LT(bC<-^An9Qj9}pc&G?U&hz6s@;gt7(hEMd0h=RcCOV4_*88q?N(u@xfH zI{A04*FEV1_8a^$p}4lhXfGhM40(I#FikG}*QmJ3UNXs=M*yzzhqyj3Kv3=>^>C7lKI&_lsKP5ze1{T zE%Ym?m0o_Io6x?s<|k-f>ht`60p3#zlz~zur=7=Q==F4N7dj2$f`%)wT$wb%5%AYW zMfDSH9kG;LEeWwL;2YL<{TW>m|NcbYm9Dvby+-*DSukp5Q3ls$8UKVSeXo7|tE!IS z{7xwfLe189T)5wz_z?t6n$~Ffr3(g$G=osbX1ecw65LZ7W+JGjXZ#MjqN%Ro9tf^H zFV{)$_<@Kh0+x(I3~~WkbB6%~g(IjQ;B)#FUcUPt=S?VsRD5T+Lu9({3kUhnyd|U% z9qjlAFDUK)VdM|5@G)5$rgp$SKo8WUV$~p6e< z4{k$`8X>g`5b%6M$D$tUE2vciv3}|8N^EHn_jt4gC@L|p9%Di-^oLA%JZZZPmW?DJ zx39%nEywOI1I93KtGfPD5L23=owKc{o<<{RI{!?vDQN<$gURx^ijAoatzJcy*_?s> zA-1(>L!z4dtZpUR^>cHeF6ucePO=qH7?VZFC3R4@W>-lU+QXB&`PrXA7d=`-t!_r#Y?_~|5^7uWh-|5=NQoQw1&CIC8r0d5($R!ZYO@p+p0d5nwvE{<_bS>nI?;r9*aoh!?)^P> zUg+)tgVK@SIcf(RzU6l~U%$5cLU{SPmtH9t-+NDG5-PHh0e*H`^nF+izlHYzx=l2w z6dJ=>osx3jhXNmsk@8&D2(HlJrTs$KAv0 zLbgAyc8&5@W#dYvXNbya3@`FEyYpuP^r5;cE`b)2GJ1Ja%sQXA8UOCP@5t;$aaG%J zveu;hI>s{eQT9b1e!*$sn9e0kVI89;i;y3?82aoSzZy=I>{ygq=gh|+v4xp=y7AKn z*5=mIwOE1zUd++$gZPuIn|JPD{cKwZ0!^-T8=O=vzcm)?(E3;@ImA;R}3(+TUT-Smltj}PBP5gD)te!!KM%$Mv6%- zp@f&FI3GK}DO8KL+~kRwH9$^p|8J?<@Uce5k?a*4`k`@6P>$5L5K~%%RCu}4$4@zw zZY#Y)0oWAje`v#_67(h$ybl*h_^;#+KWEc+?+?&dK2CmvJ=R?58S#) zqY+7X{SoFto*Yq!NjC(wUW5ToYw=)Q7&e$g6(1XkLFq7GH?v=>uLnDDabCWpQccmk z=!&3+jSSAWqrKtJM*l2u>Oui0$a~Hwh215UZlYY24IF&^`4H4iC+tzQv*@(qd#Xn= ziAqYiN|oV)QU>dA=PKz9IZ90`@N6D|$)`=>ViM541JXm2!Y>HXCLSe1aJZj#H7Fp8 zHt2yEk!r-XO)TqXn_Br4O1tpHdP(jV=(!uA1GO9Lg92~xeEs8Kfb6yADO5j~IL8Xp zgxp>_JfM6@49j%xLcAWy{KmJeJ?4x*XP=fsE4BU{3Ob=87JOc{j=H%Y;UMK?z47h> z`}slgG|X7fmP!Mz|9f&Nr*Y53aw*q#ggQN#ob!iO2)In*6wRP%fPbxkkLhLK8=l{4 z=O+pQ2a{8|MD||G8xq>v`dS&sNZgk2?;g*9#p-6BCbTze}`h zFbpV$bz=*_4OIS)Y}W~TS>egD8T2Jums%z?VJMtzKEajNAz3&;E*)-t9|G-#d}nE& zMO)a8jun*wYLldcV)03r$!bWL;Q&kZVjXxjx|3_Q@=tsS0QnWX?YkdNbJfzIflpmQ zS#4UPymON)B5Q6#Vl>O80H&<)gB#CW>hUHg0cJPTW!0t}IYy~Os;=3g-wdZ87SIFFW|;MHuzqAw(Jq-9uXM0&46|s za;6-s2ur9mF~_=sGOY;LmU?$e@UptzQBYg;l|FN)DXf%~e%sL&pxx?1cP{>kKNqAN z48v9anVnc_65BB%iiXScdoG0+TCH%m0Fm1++HmqF>|xXj0$8|>N$_6J21`GQ46Y61 zTVT&=kaXKkmgcyibuowHe-1If*zNzYB-HS0yOz<(61?Zg0n{Yej4yj(na9sKv9fLf zqO~({E|?IeO>aLu(~^8wxD@J2YBiivaq`@#D@g_Y;MHhdvLGWrKN@c6N*U<9V`{S_o5_q78PCNSovS zOT3E@DXt$Wqs5$uMUc!GX8~~N@V$>^cMnN5CL15AC~om`5RSS2FKl*0^VEq1u<$1L ziWAPJW)gLi;Dix)LpG4F)kfO_@43khNM~JsK#OqE35-90f@%>y6)!vZ6vCdg>bT_Na&khb#!oBfeCaRoq z57>I=zF3=%+RL9)Us9PYb{jUx{ge)YrwXM2RoUjNpGPmeNXbqidgmEmRdJy38ax&t zFVcnkHvL)C?hk90=Yit>0VCzcV=$$5&$Y2U8Q9Rh(G_~X!!|4I?zXYCLseko^^$>P?TnUJ7zcKjB8eF&DOYaUDvi6se z-bn)Lrk&8I6h(-@1DJ3agPS*b*J>Cf4D#@k$Vi_SrlW40=hP3xAsq-{DwEvI zO*%~13=-1#pq~2gbA^kSwxuhY+pr=>EI>uV^U9^u&M{T&ajFPy&!f)H>Yhm%wdVFa z;y8<|^}`eWWJY$An2T(1y+dRjXBL~+=&1`TKDeal;jjhTs+;bP#&mio(%tF-)Cv4B zi=vo_Z7)b2gTbdXaO=Ze9Za__G(pSc)6D&~4*X%nz04sz?RP~BiB_2UtC62)c^wg3 zZ{OycE57HEbR^z&IpiJUiMaKduRI@0ZbP2ib*e3YEwCSVdVP!UTVS81b^9LOHOD?# z`_}cuciBfs22-mSb6b^?Z848>?!(pH*CUUdBRR~zhc*`KwyQhf{prm?+kl|)&tUlo zn(QUysh`fyig^7h=rjnssKhbNRl(cX>`E&#f;(xmZUJwvHNYFt;P(Oy^p+Ba%G zCuW^&{^{|5E{Mug>E?L8JMxwtSIY(DeMI!}3w_Ixyf(lBJ~`;6+1_ zq&XC<51j+hhQA%SS8B@!_M7lL+-?;I2f0a`LC2K}O58e@UFYf8jut4m84iM=MaI}p z9rD$?Ra}u#8G%N$X~S4YHYc_&aZzIO=thA9=LRC}Rejv1O1MA6m`Wi{pKAESefX*} ztxQC~ZT05-Cto{jJ8nu0XAL+8NQO&hg9%2=+JngQSh3@V#*-5tnZH)NK%a8f%+fQ0 zhNu*`u2lx_-V8NbMBXDvfBhLQ0;BL zj?-_036i80Hg$CSPf|40`LmD*qDLZyam1%6g>wMWqbFwvH~?QpJh(u~d6118lHV9L zBbwnT;5mwF&3}mtvoJYT$rS{BcX~a{$G1JI%Gv;}8wh(Z8$uR5gF+r$im5u(MXigH zLP*(oULthaqPY-l^_}Gv9?&TOP&cr`q?fy~cTkH3bFKIMgXM6 z%XdumVBz_`^9`~uLm6HxD6@_&{F(b5d0jMSMr=~hNEqN|-joTC*Y!=Sept=oMFV-~ zkB-WYPVN0FBB5pKq^$5SxO5+WBv-lzo7ugftalME43BxuAWsluV$o8|yA9=DydB$d zRPXm!lI<^VIgf9J{TWG}DCy{A%XzQz*O?1&Mh20f$WK)wa7=jfOhBWdLz$s46R0DQ zgZ5e%@AMMKr5r3$K0eg*4X41<`fYsgIR22yyjdn)pKY&oX=!Y;Ho-3}c6Z@HQemvm zr~s@r_$LfKM)V|I6&7HGtz8lNa5CG=Y4Q9z27cie-GZyr>gxd_E_iMop}cP+?_PZw zarj0|UbK8fA(EY9UMkzGm;yAvDn|dDw4%rY5qQg{WT3TQOT13+&P8ImGlgjw1WcbB z=dO1C+Q}N_iP2LO5Yud>#uxMy`SViX|_{y&j@c6l2 z8PJ&@#k*wXnm(8muJJUD&p-w9AcP?6!lpveudOIYjX6dBULFE(dJ0M3>3$2b(K>mE zkICNDD-{291bSa?4KT%AORt%^Fs4?=FqZq}q@|!g)ng!mx8s=QRAfz0DX?6>N~GEl)sC!L|3s2{ZQo7NJvzJmyf^dPNN!?UbZ= za{^nz#n9(AlBB2=2VK}g=xy6gmhs}eu0e3n>XpfS>eQMzrhhqlLwj+X4M+OUOSW}F zG@0>jT$&xC!FtMP9Wn3vnrdl@b-rg=`9*5|mE=Bj)nn4G#5D}6&rNer4TvPqLH;3A zXY+l(C<1E>x02_qtf9LSOwp{AGFdvluXTx9%8xPpFndQ7eEizFC z$`X?-$6|m$=?k5C5peJ+e9}EI(3*;W>=8}4JEOB?PsMRDn6k*N9QCz9f~4*CU;sW{L37apbDPo+sj#LXTFoWHfzHY@4yklxY?Q!UY8+A50g}gjlmusFWJK zqgG#e6JqD-`;cErwRZ-undE4oNG&rwxn&-P_oNs(OrRXJ_ z-`41Hle|N&x-allS`OKGZl;Ec6J9Fl;n5jSc_fFo5IvWRzR)v&>eF>R-fiHBPih%o zlXh3=@y=QSJ%ebeU5$$Nxe(BIbR@wxC$HLVMH<1MH+K}Jd25KgcR z_;5LV>-HqpMe@0W=PPG37E5$F(cuC;USmofyDlKioK-D!f!@9rRI&0oOC_HEx^-uC zk@lDz;xpt<<&gA@u?2Vw+H?q~`c$Q9&-HZ;6(?eyYl2;pu(ixc%7KH`b8S4iM%A)m z9Dg9O;1QO#IoBpK-VtQlo#=Rt=I8jp$n~7zCsiD0JSI*@F(f+p6r|Bq_LAwEH$BGF zgri?sr+M6blMrAB=^f5%@8rBK)1((dl#I)w6uDB=SMiqMq1d(4=h|PQd(zF4c61Ff zOl!QKXo%W3qs&_+jU5NxFypvc2?Mzlk6l;kv*X+>eRti5hq>poml;ex7O})fu8?8w z-G+515SO3_KaMjV1n0MP;U*y`0mzTd_J=-a3ow1gjxr@c&Ty&KdH{=Pw7CLYi#BMM z3bh36I%AFPpuU2>(NLX&XjyCL1enR5ia3Z`E@0Y0gqQ>7+(_U}+71 zb-)BB72ZmsZgMbD@T$6uD^`UDPQ1}Civ8|CQ{g$9x+kcdsL8G zH)1vhee%TUszMGPHBt{n7rg@Sb{eh zo=W}}t?F0HaEee%ied2g1+`2Azwc0H?T82M{6qikk4gwP^lz42XZ;}(x`ja@HuquU6QFK)fN3RnB&)6L6|vN?~HHG=n}kevXkuD^#)ZMTFZv@ zq0{~vO{*+`6y|!_^5Ck~G68PG`&r*{;ITsBq-%v$7h$f0({S8Q*8ZJW?6d{W&z7F( zfV6RG#P7A;pXmKLxTh0WeUWv*Eg=k!O0HsQr9Y(rx7S^hH#hRU%%@4=yYQCY5n*#N zEzLbr3UxVpAKpSAwFICcQJOtUhERB1zdB$j^24yM!*d~i9Jhn8Vk?Flf6xtSSfo15 z=a$QGIn`B2BTakF4s~Z1myw19rqZ>`E=w?ft>zjSAFej|*3}u7Jx3QRz*wM~PF3Sq zFVLeX6J8o|HFvN8jLMN*0}F*hJxQ~orKOA_p$-zI9a)Na6TpgIFx^hHzd{dnb{6qG z=+ea_Z6p@&ifrZ&3Sbf-U=oca4I;?4-j+a zjRdA8xRCwoKpxSIVf4aC(9mf}(KBf!5r}9|NcVgXMIhaVbuW&~{iNgQ7m*j>@y=#x za7C0XLm75SUVYD%H&;t2hB;;|y3Wn0zcuKDG?er+XwQ{TT#<&4%TXL%q}^ttr!Q-cfhBl*UMG3{*`b1l6pUx_+Np$=%MM-@Vxgt0R~=mvj+2|AXZw|! zf_h=<@--y0T-pLW1X3>UL`#=l>cP0s%bs@+aD!w{r$1b>Mvp*n1(%)U8Uu3R>Wki+ zJEX(SSeLNyWUiWOw*-$DC0xgG2Midgk0HJ7bU4xR0zJ|V@YQ+FUxwGGqGj(94H@}N z`-?PR9Rn4K)Boki4wj?xHawO%2^HAb5z<3a&ss6_@vT#rH8e==!8g)$lTCd#(gk=U zjnr1-s-^Oj-(^~THu59%Lf`7MksqNK`c|Kf{0P0&xAJV{N9cvV)n_9=LND~KJ{$P~ zT6s3|GR+RO);<1ixKo_=7n~LETgRvAT*&gNXo9WUK9yfP13E$iZ?9Ru2~iV1+rp1M zgT1OI1Z{OQ3*4G?d=)};9g3Cnru7|8k6f#LZyNb&t$5Hlbb-1K<6Tkr2*~U(heoY& z-=)Wdx6}55Q-mk{>YV@=9OSpRW<1g3YeyB$V;U4cd2Srr6_dZ14p(Saiudw4&vb!$ zVO90rEx}vZXu8%Ov=h~IGry-{*b%qkQ98ebfCG1+TNd^8tg+0JgIi(F!PP~sdTZR7 zxebqTXVi&ZozCuK-0Jl~l7+Rn1S`d5$Zpw#L+a<6SH2#!ybH%Ou4T6@!JM+-Q^9dZ z@T%8r1)WqHvJP~5Oj&`jk;7{g?8DSOt-*J=Z$mKLw@JaeQ5O8^*mDu?N9pv4pyzQ3d(IG?Gz;vk(Oe+P0i9&#arRrhQt`gshDQ=DgxUy> z5nS6|o$!$((&cf@FRIGt%E(Apb3}$uB{*Ti5bY|+!l>n2FTuPG&>8Lq7i+FhaPSBF+*c~7EcRf#-n(x0d7K0Gd;_YMoCMR-Q4dMl#K zbVC|%*Q&Ip9ubTxWeuh`=Qcee(NNHcpCyEMa$0G+`^=!z6`Hjae8iS%EDX_9ErsuE zMlWN8vEv1hw7>AKC`h?P_*}Kf^SV$I6=toV!nkXa4+*m0Ru^U@J>;p!kDow^&CsnZ zD5mj8ds*e?1)V}fX;vMCtV%LcBbVTidxI(CqL@-1>3*b9p3Oy=vr;^oT>7Jtr6-5d ztRx7a6!l*3+fIiQ?Jv+;1UY16bE%+v(w&q z9#@K8#2Ir^nDN)LcBZQh#+@5PqO&SUS7E-vT@Z%*`XO5JMV)q6XjXA**~0`6I*W2) zB<;L*uWJb=5zduYL6{{O1CRVPofS)NCBx2474|j1Qld}z0!&9#>99oU@CRWQ4ENEX zvFi+pdM3^Je;!0(N|2xEtA0~-0p70g`HnPPa7w!cr--BG@!;Z{5K^E-!$oS)=>ol7 zJv@DDc;1I!Br_aHoc<4zFg6&tnQV6--ZEoqg?$}s!{DU3QXZED54wOWh4gYG!{j!+ zC9Ty4M{W%G(5C8>UWHw1sD{%44sYT$Z{-c7mdlBD7id1XYCz*7VBM@(_2>91s~NDj zPSu_F>o?kb-=;aHN-c5R4hl%^H^Q}utVUyTPm8X6T|Xl&^I*wHH6s7_;Z2F}IB=h_ zXroaKV*wsIWoxJmyWSyNLd~}3HQFSQu!@@Ahqt%e z1FUc-OL>neGXhno7+HL}jy^wEH7>r_kTMD+GPofFOMM`83Fad=xR&s9WvLgE95zyL zIad_B2Ahk2wQhX4UJoH~&`^LXIcFFjBnm;%XdUXnmfDQ>Ds>tPpXl@$H#oEzhKwHP zv_~j5ZwLfLnT97P*}ZP;k4K%|gRYn{?Tj*K_u;Lob;&qq1)kM*-HHO70(6nz`9+7g zUbS%vrg6uNzZ!DZXxv8SM3SV^6VI@`0bY_CEqdGOQ`b^#OD2x|*GB_npbRvz`+L|Sw`-bExAJyH(d$YxYeS5gN;;Lq! zZ%+v|P;#<^iZ6SjziMnkO>MrOiM10|Z{rfYm0jsLX9<*PuBfUXd<-{)!69zJd`lHK zcEb1teLo|9q0{jSJ+9J)ioZH0FgDdU!Uh~soN<+Agw3k)CBWWHP9E5q>@FkRv;ddR zilKyKgEAhaTK+<&6Vgx#R;T&mO3Yv_w#QA#T`HtzL?CEmRygbS52cc17c7)elN6+(n$g(M@%#t{bcN`Q>z*qx zox}+zoFq6HKG8_W)ag>M(KWPy2X=5E3cXcN?>X=oKRbEI=4n34 z@JII9aOK~Jw-catki!nHSCMjN6q~sZb5=d)O2N_PpzeFz>zSOoUVu3!>W&+g4_a33 z%EfiH6o-H3TU_-%?N|EdG_U)8$FS75Tj@K*mA->t>6^C5Lf<~D^zHIW-!9(oyT7wp zAf%Xo!-Mz-)^Dr_#PMfjvQ6K-8buD_xld-VWDq2Ll^qq{FL|C`RJPe z$=&(hL$vgJG~b1HPCnB~bd;&rv8%p)4yPw5hsY0ML#AUhy?9LHq=93{pvSnQypPVX zj6d>5$5LF)fZt2Y7lV@&n;mufeMC&9pnw@dC{^AYFjKa>amOOi8mn z*_-7$bG8iw^YXp5kHRNfZx*@SsVA^&CdY0;$m%>GfpOj;hR~3X*%HQ4Z#pC%+Y!v&K0~; zK{Qlcu;~~u^}5y$@8WgqO^o~SR`S`w5l}0Xe9l3wGYBQTENa3h3w;fkdf6 zmTZeI8ikXihxarH_K=^`iuLZ}0?nC4$%8MfmMX)_{F1Pdy+HlIuPzC~FiE`>_qNmZ zM2CxX^eN-OqkLX2*KR#8cN^BzMQX;!09(@^MOuJIxr2g%FMj!1#`}`j((FfyW&~H* z3C?>3I7Ongf?tbZC|Hn-_0)kzgNkF)q$(toM>)&u7<{|TNT^+aOTv=21Sf}iF4n~z zosJji@u@4s3TuuHKebj@c6eOtaf9xl1C$Hx(Rf#z6FgBtO5Hb62Gh}uB897v zOQ8@gol>X66`F;3!*s)%iqy?Q?^Yp4pF23`Yswf+&&JE~{4NeG(i8(&P1(2tNopO` zIAR*AQ{-k;Q@jt4>q;F}9Dc+^e(R#8mTt+RkgZMv3SKtN&U(9dfo4~b!(8_oi`*Zf zt51Y3!JKPCn*q)qQi$M=ua(lI)9|XQPLKGJM@>4yJ8LCY^$ik}P8aFmGYX`~`)B*- zqOEDH(FM4qo*=%;x2iyf7vuR8gO1l|p0fbTaA@-KO^!uZh8N(GZAkkAeb3eW`#OoU<-5xx(PLOu9^ zBGFkI5Rvam=-)baOtY_eD}pRIO+(_Yqe~zQU63Lr#%9LSvjgREljgMJir z88p8@VATN*70OAClze#F&L~#B20QQJ(h$Mm@1s9&oYy+-F3_9HE+Xup>(-5gL4yw0 zXjZ16W5($v$wBT34l1+C$kHgC2KS zD$aOuC&kdPa&v1A;0zU540zU^fjP?!O2PMHyvlta9v2ZwQCu<(4kNytznE zK{!Kgq?}dF&ZN^tI<$mmSN4#3-MZ$qTY`s@)3EMLNl*we#-hhl3qSM-%M9Ox<=33e z8!#G;63HqP)S_!J)|4y|Cb0v@BE1Iu9*i*I8B$Alt>NWw-*n zQb8jvyD9%*|e8hbuJ4&SR@M@FoXN288v_b9lVSaL`%iy62+0SeIaG%f7%WYZ;d4#Z_C{ zEz!IMA0s%whz2va1mhOteOM1S(K!VVI(4siy#!ajf1gjV95>IaF=b0MS1v{x?rzfe zvfetl4Q~#pgzGFM5W~qT!EzrSUGLQbpXmrooGlQ&>jk)^9^ono!4Z_oX2th(8cSRo zs)FY_J^%+ead&6GHf0Kp`s@q(RLqKK`J`)!(TacHhKEvF8&rkm@^*p_t*954*fo$m z?Kp=o%4{E&W%IA2jgdIM~WY_E%>g$M7$rEujW30Evg*v!Nhop#q~uDAwiF}Z@1m2>5cqOv4M6T;B- zUN%D89~up@V4dFlZUtcn;*1up(X~$JYcwg-8G?%$%lNX|W4M8C!^8He9Y0s;r{IZZ zpO1Wn4i5E9dkd>ins@*2(<3J{KuOx1p}11&UDb!VP-#kViJtUKY3b78sGqqD@Ng|V za4h6UUHG|3gIYk+r2PeYxJfIN`k~VUvj)_ZgEy0o*Juv4N1QXLAY8oldi;HO#0OpX zut7*5fr=FM+XOz+c?!!6)2|G8OO}I_gPc%B>cP?~bsA-gL36|jyxN&7+6&rcOQzh0 zcLx^Sz{n8>P8(e-y15Fw$38q@tm8{ZxK%7vrLl0nMzcK1DI=UJ7%x`tmiInE7$L_X zX_n$mjLR&*tH%aByb@R}G=~87sCuw02$hE01SU-fc2Q_3d)BS{ zGPmKeH96S_XovN1y>S`gKD;Ss@E|!SC(0w&&eXmS596h0C>2MvOgoOGYFM}E_Ko*U zH;6(+_4%u1xL2sGk$shw^Z8{})0uzTn!Z9=Cz}rE1KU?PKT5V_;ca->$ic;kG+YxR zQ`7M8-iEiN%+zt66>0k9Y&`^ZA0BJ8qIN~FJh@^pVn)^HjJD?f;QLe8>N8S{Fj=q; zMYt=Nvs~2zM?2k4w7W>3BN*8Q&}VzrQ_Pp(>iKDTfPDbBTeCbGI_VeiFIPp}LlkgBI$9v@Ry zKtW2qN`025%=*^EN@12-hWx3d*CX6$95-oe4QZn=lg9_FXj#BhXVr3?8FaovkL!O8 zY?oA<95@HHjc-k|3a(&q!C+V^#kf#*A0FfGAk9*(kOZrbdlc<=5TfJ9PcUoD@@ea| zzd(kzM_u+AAB?VAtiN@r1ue$6! zKO{TPvh8^UbrPx8H z^kTgiK>a|ZE3tb}elKTv-EPDDu~W(!X~=jERlWAU1aF?0h6+-2kkLu@wUq*O7v4M? z9lX+f(=)*5(%pp%@OB#wA38_@lFm}7MpcN~@gDW8N$@07lJ!Q<5?wi-17aaW@RGV_ zWgV};C53 zDj2R|gLW5a_6#_*k@-1r(1w#L3)x2Q3A*N2k!1X$cuN+h3My%AaL1_V-rcvIPDn#3 zK9i=iCxQ_WTawvVTsTpmalUWiZqsprPVZ%j&I@#WZ%cGtqTK==-un_AmT12~`=zz! zm)2T&%(=U>&KKyV4LaPNhYRI^Jto#zmkN4_348XCWLTS8M#QA+MY`nPPjosBT)!Dc z))Pc@36^!gdUa|#5&Lsm%+f_1YnC4U7@aZjI%`Zl(@>(J7xiJj(KUu&VvSNeB#}!`i1>mYyI(Rc_cY&rUE408tS;<{q zHtj_%=sJFMh6oD%HR&SeA8n;pJ~G7)8uKOi31@ZO!FAl38CA68thc{(I$xs;KRpP` zEOpE$Qp-~_Tm!f}M*$`YtMAdyay1ocD61N?b?x#t%w0ErP#NeXr9$TfRb34G+DG!m4laHE@BAd#&o+vHmz0lrQuWR zOuGwoekTPoz#YKo;qH7-$#_qY3t)AS3LcBe`l>xpumo=p0AqnT&V`ggLjBy^f^9V* z4T;M+s?S!Abyf==eBR>*Db~~8v@9SAi)eY=C$9#h_u51_atCGWNpCR<&#%CRUxtQX z?JC^ZX~lXgnmwbi&>Vd2oRU$C_CCBh{#?ahogn!*1uM>X8=jSN`CU+X5k zUtm8C++%vAnmo1)N0%DHpwAX>y0-7rqnuNRd{i>xpyn9;J?qRp6*43m!Z%%gadQdY z#tnDpL&s<0Xxw_OG}7WAuF9~?>vz>sQ#h7@T|+KY&ef>jz5LUHibdm)#H0mL{KJ+Y&7y3Vqx9ji2Z{uB8tn`1P0~f~EzV!mU1tJQBtcaFs zN-mZZz7KEuY)wcJZ$^u;Hej)y^P=UYsA*c z)ga7AG+c73RjVDp1aEb}TE~GqsEfD1>7;Dz6d+4Iw2q-4)d9sDn^P%4rZh0_>4)f9 zhI}Ug-mVWV$%N}3)Hk!n3dh=}G>7>9Q?_odEYX~u1(k9_^LT$f=&#JQOtu_M*(0hx zf3@|<0Oyb5oRuawwrkO_u!GBZ?3D^xZ`o-#=if})U7&f~u_hdMl~HgSw_a@^Wq*{B zIN&T_LULxpbxNmXR?aYzUH7Cu6EI45d3bRvVC_aOZmMT4--pMy-s7H6bnY_4(eVXG zeZp_UW6m=AkU}mMX1wVudl;pr*b*~XFU%1Iz4cpZT@n~}qNA0Ay-EJe#t>tSUg^~J40XSiz`5?p;GTJtRL zH*Cv^2DLIaqv*?hcz7i;7WF2ndrq%c{cb7tlSGQ}F1X(_D3smBrORQNMo6#st{9KX zwbrmcPzZ-5wI3iZTTeiRnxW_zDIfT%oLWa@2_6Pt!XgWSwj5+^t8eLTFn+EO;0-_> z-V9anhXmi@%`JZ9%$PD#h+u>GCKHNED3(*=Hp~fJJevT+!#@0GrY2K7S7w~0lpnNA z|KiFXhOd%uUBc^}BoyS?)yNPwbW&1(;97F(0uNk|> z7+r8y^~MF5rlUgf#^At1OVetZxm+e1=?a^xYz3J$OSR&YD@4nBfV3K{VuGhATX2}| zU9wgIYwNk=xHE=h&3j6&bQI!rm`VGb4l`q++=fR8+hL9A-~u@9_PWOBu29g~@cV69@9n>@5v04o+TH|8aZFsv5 z=NDt<3@L+4oM?EHu68X;V-ZfFxpIcZDkC9pT_Ftd z^s(USLVmZ>`q42$O+8;TT!_xu2!5n+D)2)myR=ljuU7CQV`if-8GT<~ErL6KHWo%D z8g?d~Tt>!0pygYUmRTAcd^aD+>EKZJxx)36)XWER?!uedlyHgXQ*5zlPNX4HBGe(| z*VLh^MN%u6u;o)vLY%!jV$Pz|>pL(E&t?&P3RW4BVD>>n+=gi}@K*IT&Wd605FYfH zh{Vrw=_L^F!^8a8AF+I*W0DSaI)W`>$Zr+G8jtW~7b%s-1$KTWu^|l3m^~3tn{hJd zV8#QOi~MAsp_7tM10OpSIIyE003UZLI;5iVn{+aauvd^cYqWe%61w(P-mz`^JAPxr zV}Kke`U3DQM2Kn;tKl+4PY%(tUQOO#?AH8^_u)i85gxxKGgVew_Q6WZtUR5tu^rU4 zAX`&+sB?-j6!RchR_kX&)mWnuANFBEA*C4|h1PsGeEN`nv<#HxRE*~?Pr4G8=H|>Ki;=E5}JsSRyS;yeHYs_PH zrfL^Y4-gU!6`6E@;pQ0#_^Xr5)8oormeo~IMNc)CMD`x34`IyGf^Sep1062UU9o;IIZ*_0ifl5S8+mUK1a%I1A| zJM|(YyAdr_Qof6AUfFDLaJh!>?pEu~l=!$Wc)+zwxO>(0HRu4hZHSf^?}@g~p3uu_ z(kfh>Y|Ts(PaW48X+#jY&z9Ykdcrw_H@673l**bj!UYs@I&jS}0N%w`Xm7l)wgM-v zYJuMx-T)*sK`UYPHfX%G!lfV_(8dGJBm%%#bQQy~QLQCAG-xzS`rlG2(Zdf6$ z5z;L9-5IIQ_HL9v>HJ(E3_PJ@d9RAA^iAgsey#*+VPIFP_Ol5NU@g*#D`Qm#tY1{+ zOUcrJ2*q%8DwhW@)9OXl575d*)yuScQS}3~a#8gIv~p4PGOb=z{Q#|8RQ&+0TvWYG zs~1&2K(DMd^`hzr*7+LEsg)2UbkWPmPYYhZEYxcX2nTp^l2e-uKNQ!!2gyQ8wiq~B z()yvl1ov7iM64X=J;`xf6_@$daw&~NZ%tIZA*~>&c{wZ+Q6zex8=j;di@ZS+_->H+ z+58@+vBbHMB7Cm^PDfe}`t?PETS6Faa@YO&nX_EToLaN3qJ#Eb_=s~%NmUP*X#QLz zPUW1DHZN1Sd{T>ZvqXwf)))#SaYX#;{pzZ=#QB*gpsQ5UND0)Goh5i&LHAYW!iH9* zwnB55t&8^yFz5eB&s}JxiE#(EJrM`nv#W%YWJ;ES|_scBjt^=2-D?rO? zZTz$Kr)pUIbcE%#GKP%{4RlOZ*O3k|@L)L5BD=OveM?u8Pew^W>NLb% zhng#v6eQXS*EZ2vD}BER(~piGrYtt8ruaQ;QTf)5P5@YD5kHr&+AC`Vh9Dusu>h^Y!s{!=&rrPw?03UJcWe^ympInz&)L9sy(TyO%fti1kFNm{KvnUJG&Gk2=wjS_NoA-YZ}JVSF;4L8QMMbrryQ6{o2*B} zua#_0fzUyARv(a(CfjZf7&^Hf3^h)$w(F+)qD|Jm{FM>3!)S7p-~s5fTS>epH@kPG z=T0leCoMb*dz8Y$V=7kwovoj)vwMfHBo2bl)d%>4MQ90X3yF%JtW#F#Y%>To@W=Pv zkjfDNlQlVZcJuB}ch}6YW_=RSQBUrqsbTQ5dohBz1{3?`2GVi|APg^V&QTdfZWTt> z6n`^s3i>u?(KT>~w`{}AxrUKUT<=3Cn-ASZ!HG)(!Y$nEw4r{TYS3Uop5{ylTN`hu z(+}tvS}Vb&Am0kI*XInJe4-(NaMeq}T23SAo1&udZD;~BZRM~>&LrF@8B##BP^dSy zTu3shob82_n~{%1glAXPd`GXDCwP67#+ipXga!I3C2cKe#1z@`UYOx4SPyn99j}E{ zyVYLgth#$e>jw`)xDdcW%8pjg2ADgvIT)^4L1Fd41N>8T;RClQW;#zUuuExJ6*^h}LYk*%(2%M5)l~GO3CTsYY(CPhGK`2f_rES2_o-A8oX2V~<6Y^SAW#-t$0G2pN9so%3GPz)ddWU~CFmI`Fhti2oQGALM2q&HfFchnA#9^^bSnP& zNOZMo{i3UtkkW{nJPQnAPzoC{Md3g=OPq%7i!C%6nN(=Q% zUt^^dEs5w$DRKrA!qxh*H3`H2(L5)F9VB)2+j-~iXU+=@RooSZkCl5QrHC4sV55`- ziFoz%GTwf5E*a*XsRB$vTWrnj8Str-?E@vsOi)gPQb`4NSt?d{k*6){h$r_oJX}H> z?L#iJsB8Rlczx>x(RN8=)a>yn&2QT%a0m0OhP@7e{ko5uQa|BqF$6M+#Os!>*HEO9 zy9q@S+V&|Z)WUp(S|E{IXtJukJTF15vnpykEEzSc+P55qdTTheJ((5F;VsulJgNyo zOoXOxEq0x-g#+#b!n1Pg{&AbU|%67d+^BkfJM%Q`ib0mO+*F)RAfZ8Oq9eVWS zYxV+TghuH$gG1pUQK;+lT7kw^GsA7Bqz@N25bTOt0L{bI*jqCFS`A7hC=C6EdsMoY zbyhfZ2I(p%-)S!}I>`jKa=5yMgOq??AiP8NJA{e%?w?CFD%wVV0<$sKrIpVUY|#v* zdqw57`8L{@+D~PmnJ|8-XxTM@#x>aQK0iAd$!VW>nSbw zHJWxyhDw>WjX6@f=c?pLuQ~`E})`{l~&$Wtr_JGK3>AXD) zhCotUj8HKAs zEfN(E?s{HOfe*8C$=lIOBnaGyAIv8G0W z{XzvI_BK#H^f1`>L-SLDc{71|HjfU6OEgXYT+2OIz^WkH10F8dex-072z%xb zrE3K-Tw{*x=Ss;lDl9mUJIn}2Mg=*X6=<-La?5Tyn~vQJ#BHf*2ELcu$zs766PbVA zX1{P$0a4qf1D&V6ka`V!Y(9l`pN-ML_LUn1`1QtKWuXO^j=ws!hHy}hPxdIdB}G>; z_K>7EwSTZ%*7!i62WXnqJ#qLIyh6MgtRdQ663V0{w@0(?lu{vXOA9~Q1<%<_3tsR~ zEru_c5cbYT@T*I*o0N;^Ie7)^3m^h0D2ut;9%UK^=D&NCe-lH0U;^<$KN_%$&ax}YQ0VfTUl6OH%muFoL0aTqXrBs753!a!V6CKq2ami zQQ1aS&%j@lxtbn)Y4+lGm{Ii%RW7cH0S**4QSBNYY)(*AJF3u@C-xXqceAYlBKyJJ zX6}WQhc0!LP{gs87HM_^@kN>@2ja=GQxgq%~=3jWA|#Voc_>k3uh(G zC9^I~Ie?K&nNUxaePwrwI!+wvYQYV5ioy+Hf8sP4(-2lftU1`p^;9WL1I~vAPbGjo zJE#AxD|(B{@JoP*kb&VesoFHn)I``0%Jhp`h#RHaP-mgtAkuZEh)#oJS5R_C_R^vj zj3F@^ZjcZT%ufl+^Qd9QS{395_g{O~06+NEB~65bjk1EL;9KVmMIT%B;>}*c>*eBt zdoy2bjrkg?i3SPwxN`o9| zku&TAAg4U2&ckzdFi8k)g&b{J>U+-TbcVK%=FHWVar8D*9%)cCn_CNf!2@hp3MYj9 z_nPu8^*eDLR-V<$+5Yp9q4v7M5N}4!UozR<1#dI1R^@7KMq;6?CWttRVW+e<0#PC5 zj*?yaZ5#6uG~8gEtN2yN&y_%9lfM+yXL|u_Mj*sVE1Y27ZgQ%7x@6yh^SjQ#8loN1 z;TjhG&vsxcExR!m`UJ=&Zg(jUwlnXSrP+Bu5^fcN!TdCRMU~H*cITP@qHP9sDb0I7 zmSb|D8-V*{`+(%)H(Q}DG)!DBByeCCuX3+$as8i#8`#ZSt5NYQ^#j1XTV|k(AO6%t zu!C3yZdSL~q`1J1-0m^;@*sgNzWJ##8c;JUI5p)ZwD-bj)elx+4akRy7hLdG-O?fJ zDov0$&c$Zsij>*C0FMPTBwr{@2nQ*2wGXiPakhDbdVqoyI?BJ1Z67*Kh#KbVi%6t} z6bpyo-+x0()2U^<&4d^TH!$V8^zt#mfr(5piyUN9Sgq2Wo=ph#Z{$X9pp zUs!#+=D8Og&Mi=&51-6)09`@#@e8IXOqiX7wOkkMSK!brs19(!dAC49$}M-WrpR3E zHC#s^OE-DTL3vS)8_pI57QeP0CZHQWT~Voh`LA{;Jw*e4_9z@&r0NLH0E3xSlP4p4 z2sMaIq1wTa)Z=;oszr9whc+L-kz^&mEp@3d?$o2 zZtW$gIIOMAKrW<|Aft<_*LP~c13YvB+aNtHWfT}_XN9W2i5Nm^hDI#AccJFy!48-A z!>Ubnh8d;}N}vlp;8z#7YT~iR#!NxlM_k%T*{02i7-1V+*$z~$^P8;el+#1iX z;8W1Z1=lQFzx^C%XKqi>V2Ir%?NJJFU^)}c9kQTVyWW90Wd?4Wj&0KyObGjqNyhAL zfvXk6N6$eMJXVTyvd*^N|La@`Z+s_i=TmaPE|uYz;q!?Kab(~N8l-rIA)K@HK$PZ614kw+*|n?dkMneCurw^V)+4lZ zj-qe%Swp&k`-1{km%znVdsLV^!l8tetgzN!q>Js(_CXqC(&c#{_2de~l=>U2(Mb<5_;Ienjl2x8w-pDIh&2Hs#VW(fZ3=_nf z=zkmYWc-q4LR@Hn;=lx@~@HY zLxTxPX|HnCd5JqTNVJu_eWq}lc%`HPp5RJBSd7N~!j&QuHAl0_`Sqn?Q9tm#7M<9P zT(4Fxj&)b#;5yO}XGgAK`B-Dqz$F8JY|U;TqZRnuQ^%iO(Ln14n4gk3CD^3gY;60a z8KmXb3emR;XM{Z)t0sS!in0PtI9%k$Y3rjo^FVl58K+eainx*%Yk~7Y-A3AtmV@-Y zDl;!|G^yE%w@OhKbsrUXDM7g|`FcS$ZSA>zql*o-mL2Xl`g#GM+Dpb4n|_>?9~Gkc zt!wphpBZ5&KU>_oKBp2eaFY_&&Ar;jcuD}o=_w3V6Ng`Zjg zO2EK*3v5%2v>Ju4=4ziodn0LRoQ3=F??R0(w_2{iHX&FG2Lw@LTACaL@iDj}9aw?n zd4>0S46?^V^NWMTLyZ%%UrT-@yn8tXnf{y#!?iGax8B?`hF{eok5S;sRoFfO+S)LX z6?*OPt-CEqr*vTQBfY~D(#;AvHOP(?I8R0xie}a17G_W-pw1heQ3+_?;ac#>xZs%+ z!cm|$^TZV=oBL5lv zC?9aPDm9dbqw4-zgc9g7(d^cPWP-2S6F+dbfi0t?C@iL`*%|0$tH6q+5Y&&7s}Kr# z3(dAdTA9T!JtAuc>8%>oWObKF2jD-VjPW#W30Q6k@mxYrIbr z(m|+%Y!!U4^MuH++T9K>YsDKrx_MYRzRc{=ui)bp77G6C3R>5oASakhC)g<&DMWfd%}x~LC`FJBGFz!R9^ zwNDg;&}RPiL;ljB1E^cV{aTGP3TLU~`G~502@OTFl(rAH(vh$0st@~3LngF*eZLZ) zdY4j0xHN!+zE9r4PKn`QyL!_r_!Q0{V^V0e#nj^4@&%?l4Cbrq<~**D{*H%>tIaX0 zS6vlnn@t`Kz82dG{Yv{DBh8n=CF7j!gWaRTKI%%u+l(__!%-7&wJTJ3_?SS|LgBr53Ji``t zV7aov#@gHpw0bLKvemQ&uGUdj!eTM3y^<2r))Anz`?;K>DVmU-cWF_SctA7Ku05o* z1i5T1+P?KI$~_v$(pr3i8q(mcNqf(hX`i2_F+_Q{n?IVcq)G=WK6%@iGJ z|LH1?*#<0Vx%dui)_p})p4SRWfOc=Q8a78EwD~Ld;Fr!w`^mLQ!`|h5-kspW0NgFHL_c6_><$!Unr^ze0Tt98}1WQwz7*)vEmaTzeG`)`cWG)j+!8o#H>(Rin5O z#z3Uf1NXTa)j(6#QoJAzH@Cjdsbb^js$}cb465Gyv0w-XU2sA;*rd))TA{R0@psBg zSS0oi218ZQtXaBp@B*x6C$LjQ#YQ?RvM*{*MH*Fz!9k__=kPgn>u|0Mp{w5cS`=KOWuL)4C@R-vqxI$VTU=Z&Nal@r{Kb1{(-$a2_wE`<5)fJE>fdy z2EtgVa=1}?{_zl*#2Op5VAAf{+Jsd+!paN+Lnvuwayttwno!DMh_e$q@_#qAz9J3L zpwn$&q2@x3gF83TFU_{A!N_hcy_fXze`5$#CrEpr>{dfsaKbH4P#aWWKaACRGv)OM z|3w*rb=Rlu7FXIAhDA)ax#t2yMO1Cu5%{2mhBzdl;j!PIOI4plW6x)%~r0h3+p!%Akg3_ta}YKMt|u=S^kP#6_WNhO1M zRvQ-Ex2L#9=>?-8t%;*`175<_tYB8gzD@e8gNT8e1|+QrZMze%=4HP9i76%g)zF-H zDe(RtWr7O*N{@I~GNoP~Fz)B*D@Imn^&Y1>s<>(1@pW>-&^Z#t-&@*F-cH5Kkc5fz}`m+MAe za0Xwl!UbW!l6RUIr!CJYVK`2Z$B@%+^4JgE8`43UOQuW>wi))TD#h(Yyz77?`uq&jm@D@L?eVx%D^Uq<%NwKn*`mn(xsJAl_?Uj_)`O(W~9?;!*5LEit*|Z2P+Qy;c7B8gJ-cN z+qOf84%+_7hi$mv*}fiHvOh}d%?*swErAqYuI`84qnV-2uh8Hnn;aGK5GfF26PxCq zgPh`bw$ysscq=4MC?R=y3}**C(0p2gF7Fz36BJ(8YUK@S0v);geNuR0g-uzn2|rq- z?ZE9a3H?P%H>3kES%)&08h!vFm0Y3%2U^9lAPskTadpj8!3Nt^qXv&=A>VdYG)ojm zE;f2fMApD2Q8c>=mW;p>Q%m)$hsdinL9nY>ujP}beOFVpKzOris)j_F{0lunL6VSG z=$|llw>zap^&+##3UHCi2Y_G&it_D+?l#j?X$)BQW0+2j4FZ2P5gN*~xkvNV*ldRv zg|TN;bSdP~Z0`*b#Jbgxr)UX*)vXiyi-ZOhpd>FHdBJ!xYlHZ5g#+)mhVM6^6Vffv z_huTPy405NDs-bcwYVok;ap7*XdvUb*1{z!bWC}yjqv&Cek1C4ur@-(9}W2~rB1iJ z|Dw}<=zODndxpkN!O#^-y{M`fy&k2&o2hgLI*?Livt^u=ahly+sak8kNqHp{#9%eUcE z)2xu(BrjD5WwCqL@TqA+_JzQ0A{?ZwXz(8_c&SiqvP8W^9R*vnS*;U6s{p$@n-(o^yA(ZD^s;v5v&7d;h!wZMe1@BEPOJyOJrY&5U(ji4AKY!<*I13w~^se5b-K% z8dxSlB0^0Nc~x@t@zhmArGL!e7(iFKo?bl_-#;g>Dd;SmgsibomStKSaa5T?%9?S1kc45OGAS zDG0Y4925}LbV;~{iO~5Sgr%$kDL6F2olrRX)mr1ke(N$vg3r~w1l1)gG}KeeYz$(d z8cY>V-*}Du_1fah3i3cS5@nX?1@YcxOV*)wR4mY_sh_^KP-NiV0>w= zY8ckvGeoyO3yUlh4*pg*|GgD&NdBAbZjJG&V@ltWMIY{8KORtOJ0HGS!lyB}8$nd~ zx}VpWtl21jlQe&aqU6glqp)^NMW5OD@@rp=Dva-W{j?(0`rx1>1()-)wdpfg{YW{& z2s*7$!63H_>CR(pHPlrRoJ1onf~9JqIJ68@QD_N?k1jQSCfQK`DgP3dVeJdvphIJ9 zv|%9P-#A_vV86kX0$EHf@qBLrqaY${s z=7v%CR-Y1&r#4`uq`2jL;Y43XXzbgM(q9}eqvhD}5H#ifAq4s_?POY{yLgx-bj{zz zhVpC@3~R>SdyxJ?;0RHRVA;Q^8yTWk`>3-0YEcgKC*^qt<^)X4s83Z=nP{rOFBeAO zVnjR)Tu(6Meu9B(O~!-6&!ptkyoIvA)kaWGz&;BzGr!B`q*cBhlBNn_7jHiGpL;PZ z(kj+rq8)pXgCgFrmmXmbW4DUM2sh{b8SQIu>E_{EBVE!U!9}z#Uer5D zEmho3^89dLH2O(4>E~6#^DXSk3KL-1LX4s6--xP^*h?JFg~2Nf8QeK`n&tVwM)GCz znQflL&S?(O${N2?heJnoarP>lWfQui7Vt5y0^RG+C%^G`HK(i8R4XDV(2O;TgF>ac zh=uQGh_&Rx8>Xu_Jp8J^ynmfr6=v>wTmJTX+{pQxCQYp?>TcY=p}2zLQ7USk)`M*N8`(^B8Op{?@M{Mq2p(#s zs>7cQQ{6YF6i_J>HJgZ!VmVUE?v%vlL`)7r+P;lpEg&;|ck*(7bW1asN)au(9F2(U z#~RPVM6%d)QTun0$tQzx>Cs=h!i@wge{r zrEk9q9|fa$yyV0sio|WMZVZv1D=9({YJ&_|YX$6SXH?E;vxd0eqNi60bS0tY;$)eMMLxo!??|s-P}&yeH$K#Ug4UW#}(hb#*yi4SYSCmCZGw- z1)XBJaW+$=p}9UFWAjC?-tNH1Ixt763_PmXrWUjC{jaV{g8pE5;`hz4MCEOWa5%_SfZPYXdmdYm9&SLD$0zn3Oc!K|dS2&^M$x(iWdz z;!{!nLQS+?Selo2o!%A7WQI24&$@;i-PQCI;@~daVK9$qC}>o8T=R~+#ZHR_0M#=5 zz-Td+ZK-JPJsaa}*FBDS<2-ZQRhqLNLOabBX+JWb_vRZ0dZ>ahh_y7(RJ8lMeFke2 zX~yM5T`{lrNS`uMizX$J3gEdcnaL*;weeMwZK1uj&Mod(`wz_0u z%NNwB_M|NlndU3N`-aiMh302T6TY??Y}-MCUPieJdkPGp3J(~~YsHGqQ2z?nTWI;5 z5V7P_m5*+px2RNc7^+BVZ92sCG9kHv4LhTiTaMyQ*7oP?mov2P-dpg1)^h-;(XMuK z%f=Uz*(?)T2r)R1y{;{K{+-IY9Y$NtO?^P-8P3p+X{=`48b{q`vOt8pyC^T5$WaIS@nMwn*sMhL+J@?)5-R z#2fEeq!66-S#nWHs4?faiH-k78|}n6ZHp}%r41)&k4v-jA0+SE)eyDU-7^evw1C~u4NYr;~^39GvMk@-&7RRq+l zbp888V)p-$XTaaO`uF}k-J&J15Fmgv9NhumE zx_Un`ZIrqxaEf*Ue2~%qCJ%SaKJp?m2+zTFa|bV6lHX;9?CQlB~_jW%eKcNZH|(tq5Nf*{?6)&k9l&;FL&@r3u=uE z6o`A6Wax1BTuDa|4FzLtAU_OyF6L+xl4=iFxAqq zYsPalVc~8`)c%-E#uF+fS>QhW)5&b{d9hcfVI%$~uVx!gL0?YKK4>NjYVrB!@CjST zF&(@gIWZSxzw$7)%Y3s_VCP@{qx$1b>jE*&x!8;Rr+{@`nGmqi-`B7)r6nk8)(@)x zfXkKfKt$J(l1&M3iC=L6Ni~8llio&>`Dh`+yvqU9oG97xZPaqMQgsv`iDP!GP?1+^ z|Dh@{(B^Xe9Ek1ek+p6nwizB)hb>Z?AfR7iJnncSk{UV~FliTyulRwHxMPad@S9qicY2ln$Y;4$_ zI&I3P86CKp&Uk$M5`_KqB<@11uUvjszXA(<#C#vMq!B4s$bO|(OGVMS_Q97FU>uHY z%NWa-EMqB4&lcot2Rzy*Ind4E+epe5z3x_`U6|S5a((0q;*&rxTDKur@zd;__`{1J zA(!X;1DEl|BGB2Aimi-Lm3;RAv}(q?T?v5n6eu6){q;p}T{Qw3kGD>{32rPj;WS!Y z33}M&1d#7abS-SYM-0H{dN#F?sJFAtY7JMBG7gpYuB`9FNAo2FL%*vzV;!(xQ~T?g zxGqkqntdkQF&RZ@mmGvK*BV-D(%g0MU5bF0yDu)AV>=anloK|8RF|tVx$dl>=pT7p zlN^XYPvQ|zL zB}morEWp)Me4vOy=!SWCsIIZ+YHi1Ld1ta@L-qZ|-6)3k2cOVo&US1%qUM4QAtU{y zPp*R2m|qo;zupdebn8*jtWQT6m*0?rv*G{UIr0;ePL`!n-`hVnl|IqTV7hfT($snUWq%_#f5Z{*B-33g6ueZnn%L8Q?uVWmS;4== zG96|VV=}8po9IK&V^5Un>PjDH4>6G2uv>wynX_ghja(^-BO^E|f3sqJ_9rlh2(y6; zVi!jlbGa6Z{MPT>3R@Rr*Ga(ys-C5=1im(nW_@I{(!Nt}N*%k3M1*=c;r)QL%s%Vu zQ=Hp&$ZYkv5$(nXRWrwa4hE7dz-(6m z3iPV7~ug+F46d+*kUX863viN?u9-qe?^LCF7N z%_M&zc`G~{f!l$Zt8bw!>{jL`6B-zJj1CTTNInov#~9QN>wI3O`dabt;8Li16n{Rc zqBgSAysFcnnzm;fVp|tT|Byz0#Y6pQf7ZM(F?{c|h2M@I9OTtHjtwF>D$LNhyT*JO z>VjTHQ&(~z_+-FqZEaGsAa&xFsQ~2kd}eVII9VuZZ$F3I8IHKnP-*ijIdI}OLnFxz z`*jlUc`y1reDUEo-r0-{c*7aG)vYiU-*S^CD{RPX8IN2Bcy!Sf z4bG2xh6)#D>>Z5r=!Mm9;X(*dn$#zf!TslG9^w(zn9u6lZSZ^CHAb1|l1P+c0iJ}w z5~5ZNH$J;uQ&F^YrJJ_f#8aD`eWs%b^K6!bn4zFhZ4#1P3K`t$1)0uu&8V;SW6&uor{ej8R5X9|+-l7H zNybH4s+{+s7eNHMGOI=Nj_)XbiSH&t?nww_YnL1kSt#M`>$kwF7091R9$(ci$t-Ku zsREZKJ0sOAe|B<)2XT6g%Hb(|Q^Ndr4A*ld#^)72TZgdQ z3OT%{$%gNO4lFr$(A=Kc@UUO>rv)$PKb%#ez^ax^tTK_mR6X)q9N~+h5)-7L6zQGm)UBY%tU^AT_k1J(6Tt1IM_c4hKc3f* z*aB{_Qr8lNbCv7mHtS4$9d~V>PZp|ascZ61`ET2R0i|MZRfC$kGJO2eaywfJY0S~2 zwBH1)l_+|Je3D)KxhSo)$&cY3jT*PWToY-#+{^#p z7sEf6jaeRs{~Z7OPtHOdDJQ19xulnaZU)h9uujl z^*>t)QSXHoelBG!>)7e+rG6hVY8#OEA@ z?@brQ!0#1^3v7GLwm*g|BX8!HHzgs#tfesbohA>orLJyNVuRRmf(zkuM%D{jnfcR@ z@pefB=eZpR5RcC%rYB0_eYh(bPU4W!7Y-(Cy`_$=xC8j40%JSP1vJW*gB^{&ht5X> z{{LaYZ!&)pmH_iu-z6;Zal-=iB+-&_vWGWiXs7%9ql!9^Qe!5<51}ps{(;(Sh zpi03ErKj4-Y#x8mKkka8(&eiXIvuWAZs+~{k9ICOcV@t9vLVX-qX^3zb!B!*tE;w0V=s9OkgI=)mRq>yc9=MDyjO_VtvwI0s?J?lB14=?5_dzT626*N#w} z^H$sqW1(97#UCKxNa=RAJqqjh>`0b;(ODnff!}iV{So#Qr1)<^k=OOPc;xIDYLYE8LCUT748o$+f|x-6!GJ3wDd^x_V=9gu@zi+!($ZRTD%d{pQ}@C zoLr24Oz9bxY>>8q(R1Iu4`G)gj#j;G%9>)?$+L3(bkM!s$hr0*m6R|1n=wVHFrxjL ziQ7uR&&NG2cC?!4@1VP3Bq${Bgu2RoeRIB+NkaFT6Wsih`dgFzIBzFt6&f$t12-g> zM}%c$h%JcAkXHY~_!x(aMbQNaMSYdrOIxATf%Gc^>LnJZPYtTYuXMM0Dm(qXF`foN zaKU$pv*HP?xjp;(Lfz;tq-^HXh!i(}bo2gOK{sAPNk&>t^n}>QAEwvTl%lU#oxGzz z#N998_&>?ataE}LC-kLst}eO)Jc-47=c9P7vzZ3#N(2MLRU;njl5X{Zd{MaY-uR4Q zcwdL}r_GqE4le)pt4+q$x)RlE>XxghI-V9gu0D!~y~I9->pI&HBwDgX_Z_5l0q#)* z`ZDy^#NyH||EY#(>uxR6!nO%qh$9>Pm`~+0=m^=&9e4@aG3gdPal?|KegR0tf_J!J zb>NJI%VLqwZW?mmPk$<-O5@sGG(}P8Ba;bI?79ZbLkmYMZmTYk&apAqNT{+x)5(HChSOL*|j`ebGA{@yL!~2i|vbp^cCRj8Vh|RAjZv zg3UW=V%}x>9qsPrvjf<+oak7NW~E{C0PbJo4jpvKfIcQLhi@ys6Uql!Yf)oaQ5m5> zjjQ4D2}hE5;u{}V-XZ;(aHd!i6r2qlzIcDf6J*6N6KC{n>|0*YGRWMf2jEhIamDh8 zBgBD9llRQhH?WFdRIM!?45LE6l51Cb+;(GcjWf)UGa~)OUF5ugX#t5 z?YcZQrfx;rg1jkjb+#18D)Rg1Z1^Q^3PNt$AZA` zS28)%6zv(<9;5#rc&nd7C5jP$jnj*)i_sA370LxIK??!)QXYvx4GB-7bY`Vt!rS&9 zLv}^gyd>4xx9>wSR)BS69Gq1w;hE7u&~Fau0FV+B9HcLQ%Oz$0FGqHaZ;4LwNAD~< z+&oq^u8me#DK7E~C}l=rM&c%Qdn3+Hlvu`wIs^zC?&ljppa&w7Vj;xS;aHA^p*J*8 zqCj?!9C>s7X3AZgo}HdC+MQcD;?I&PkVdRP1mq@*ViJ(io?cM0qQq)CdXni(GBdi>3H$vxkVvgC%D35zi_h-Np~) z3G)h{8TbH^@XMq*_S1X)9Y*Hvoa&DfkrLHn)SR4xnW_Pzm_7*Tmut>@zr$UL-7VT>B2P$z&wHFRU@t~g>>;ITLEM37`w}WYt;0WbyDizMP7L48L`vY%9E`W; zGejnmjbn;thE*Ba#M{T!d*2xa05yqXr|hWe-7$?XKF4W{m`UJB#JeS2bboXO86OsU zMinyIsrM1pD*u^1%a7rBX`*12V$&AxgYd}oD#IPOyr z)rePS!#TINi7ZKP0;kfs{&Ua+7q=IS4ioqJ;Q-$O)$n`gv#J@cbbpWHJpGzZUtK}yy!x||+SPbboK zTY>eL5CfI5oKq3%FF5U?)Z$vJWTb+K;Zz7_EBW6zICP6!v0C!mHYeCHAu(yb+d}1abQB&c4R!*RDYpvxqqY^a}Egd(c-yxn!(+ zoV*L|WDOZ=*8~?s)wB1#@hk9=citTd369Z0~vLiaf2`L4?+z+G9k&m{3i}h-TiX3auGwO`41nZQckG?BCk zQbMJjpS^p^?)kj1TQh4bHd=2P@g|E6@zUW0&$Tc|S60ph%cCK~5n{Mch5wzNuTJTeE z^aE0-B6%J#LHDT5XYDq!sa`#2mCJGQe#>wPDVfh6hs}@ntwhtvpbnUPp@ZYps(mUP z=(_^3w9YmKN?M@L-d3BKL2Bi_VAMlMMbwyL;Z&aP-BbYaM(ihtKV@-K)k04%s)*q> zFOAE-R&a+d6#Auc;ybPPLzJ!>-Xuv0ZxtqNxG)BJ8YGp?B#!SL{WixGV_X{va=;wO)-h5mw6n5Did3E zB|BG#GJ#=XaYMica`mfByj&SeDXjebY0gA) z9Dq9bT<;*ElN8{y!oW9)Qw*lRRwGtI<73pG6N0HNsJ?+ip=B;`hUH72AAvd3yB27A z`|p11f>S{|=~6fomUN|AR(lwC6a%%UEu^0y^BL1Q)J5w|LaCv0Y#>j@KN+?qNYW8LGLWy z^^F**1o}E$I{NI-oa2xHpvrF^+k4JCfv^}Tr`l}X-J6sjSvQ_gYX!&&j`)VoIt{DC z8l=eH3hB5u0Y$rcqzR6(7(Ml8o~sgxBHrl*nKMpwg~k>lbYWuv5mio4Xc_0X`4g>g z;gS*YW0(_sFhSj-t$8vZK5D+)RXTq=550?YKCLgHj=&a&n_f>eXXO)*1xe)#9N&$- zLn2D1?cbz{WJIyaiR^#ZYsIBIu$E$9ersCr&9L$P*1z9V9wBjVh&jGQ>qD_)^;>~t zX1!E2-Ek@1I8by52Oxgct)MG?xx?HNj!B{aOu01P1Sj~XK8=E1CgGpnr)h_kCWWiD zv)6D69~_zZ8+pyfi+&_4Tk<=n(-3y}E4Cne=Qp(RV%Kw}q3qT!D=R6ltHmb6VOr3B?`mA42+N1Lin z=-bhL*H@rAN6Mf#DGj0E{(hug6ijkrrY5k37r%4y2=`i;;d`DS1gpA%K%Pn}o+R!g z3g#sz*u+z2LEa9RM!tTj^MV#w8-+_j^=`Mouo4;TUyX~^E0FjE&WNLAhGpyIyJ`Te zq0^yOlhj!EosT9icAW7w-BTP6b^LW{g3Ry_28h=gf3m~#tUr{VV7_u^#+O>Nq9JOQ zZ3MhuJ?fx_Diaa25Y|T?@R242MC~MO)o%4isyY!c*qt8=RxBr@t@GGU?LP2;l~_SZ zWpI*bQ;?$ZGkVLyAI(agVdj7CC~q(pF=T_4ete_(`oa$CxXgK@P1@@w7#I7lSn{e> z>w#pP94W#dx-Gk7!)&%J`A-|vr2HKjbBa|?CE}>VJEC(P92uX$l*hn0n|;MpNqU8J zD2AMB0+u;d;W{XB$&CqL+0)faGnvK}x51a-3^5kD6BM&z7XQpwzx8?LRP-zaJL?ua z406PtuWvCg-pZumd4r)pgG%5mw>DNzbu@FI)1e^we7g0!D}|od198tsh#W# z$j|3d7*gg&xpm?H{lvCcsMm2!ZusKe!66qq%nZ<+VS%^Ir9n94fuNiQYsXybO&*^N z(Ab#K_Nu4SG}l47n$^Do(l56f*)Tp*F85$#y>gZBvo`s|wU*udB)hYkQ2V5}VjC!} zd9ghW9IDS#*caCSGW~S~C?a8=0|_tC*u(4yQ`SjLcjBWJ&{n_h}WBDOBqes>gD*pWFz z!`imaTc9DfTY@j-$P19PzdcP)^2}g?fZY0Y*{k_O;5LQw9#TQDHlL5?4`qMxx}HpH zZwC9HTrMoh&2WPpgxTu`J2Z|hbY{ zKj_Dkh#bww6;`v))tHK81swq{!>ap&sJg@cKh&uo9BCHF4}ll)bTt-Kd?RrDL@Rpq z6QYDCZQPSyb}1EA15~F9zTbwk;vaM|nt?gMVwo>I6XwF>WBQ^9wJTNZRwWv@;PGq2 z+|Pc6OJ|k@XW7JezY)d%_c9oN%V-o$;Db6{4>NoM(99PrSIL%Uu8gyL0EtHA=W-+_lqgLU)a@u2k*!O{=lThfoS-9Q&uV`=2@=pFTndl>B4`+?jHxH&vts=7ewm4o zQ)j%a-mq4>VqPe){d4^0w5&_gJ#l7~ygou{l<}5Cob!p+gw=XZa$=f~`+5ewa<>)W zaaZ~I18!rNUhq5dbAq;rR3ZFGXQl;1sD2P*4EfIpWe5LgXt%yfJ!9=DNaUMs_OF=o z3r5Reysme|04Og+)4?tak5iH{O`~24Km9rNPsK~XFb$Q&4hFKtO~o%s8#ubMaMUxh z@W_vLBLH=^!&o4szydUV%*D5%vs;a3y?ugb14k#VCWkg}wql=CBHah&K00 z9Li+X4ZYjs6Ysr`012c4Hu`>ZBOrVJC$#Ns^Bs(Iwa~n~dfW7Sf?)ZtboaSG+FQ$X z0CLyQt8kgT+-}E>X>;KUFQD%;|LL7U5a?JK!XcNbVn}*ZDtsHbQwr1-(VueDE;Em^ zd}GZyJ!vE8nu*ej(iRyQBzq=fyx!y;o>f7aO@mx7LJb{q0T=Ilb{VXpJNlpiEK`#lQ<-IYK^e13bMUpEMBW#36-cZ z>=?)M)G(h1&V>L!?!kmTdFvgfZ=|HKzmESaF?9dI1q0M~x-zQH`T)K-OR$ZX60wOb z2z@F0-d+>^BqwhI$$77NH4#UfdXyNhyJboT)Ag2u=9(PReOJwumFl@N@+MOD&al5z zt-v{Awg)uRZ_|rsEO`;&(&|EW)N`XeguCQ*ZYhBi7JHkSa*XbSVt%78Yp zWDI|a{`(;|cmenxq}nOf6-F$) z^X0XO<;+*0lLxRw4tW0T3P7n$rXLOYI4LsQU^;AGqmFt4J8!l<3*$CbDn|WzHz`|# zv)*>{duIOF5YRS|VNR|>>&s`*E{ur#oTa(#JUa`db?C2xrMO3x$KRIMXB7z0jKw>m zO}*Fe9v#;@SHdMaGZF>qEv0QcJtqDo@7#Es@Kcanp-U%SF7JptXU+#DqEG;TlLt~Q zyev-n3hCfSZa=T=%)lYNp0Qpyh*4X<*cjR!x+u;5OYVesbMqrCKq8|VPf?w8j-?p~ z^C3njq$~S%V-p9Ruad(GQ*U?pzwC4ih9;~w-P1a#md4#XJVi+_o@@* zvO@coS$hLc&@bv!alJ7QX=(hiQIMB7_|j+kLNQUZrSMBFw)v3Aqy2^OGa7#`XN(zD zgKBB$8YZN#I5h}rxUsB_z^nN$`b&5pqzF2P8t3%M4S?`3*yvxIxBkM<3w;X$ax#E1 zW$%){xHr57-G%Y52483!i0i9~{r#K7Ygl3I1INJ`&6Tc~;9gYzQQX?TJKM%HU4!Jd zUXK1F`j*d6pRCzSgRH-S3aD^bAgN(;Wv$;n+Ld$Z$D}oAZr!%kLif%NI%W1HpUR;wlot!9){?W}u+_N*BLC$2`&>C)k^ne1^NWn$_PU|JPS`OIIH>CD z3hrJ>*}3^4in>K$)0cN4S#AP7*IIMJ{K{82tnJc^r$g>e*Bx`@NWVxz&$c9iqoELy zJ7M2-$L+=K1;}XjHzwKyjH4-|&>wlD2m#OD?*j$9N)gV3$G?#%Guc|@l9&Yr6Y0&7 zw(k4=IXGzI|0U-i%Bu=Q=Nyhzc>@%tVC~Crz z>B9HS0rg`su0cvsA3az?l!zQmIJ5reknPpSnLnIOicse)ubat~zR`MBhtG5=ww{lC z=HrHsTm7-fV^6JH#9ReCaayFML*14~#uG?|6g2%v=ouhKT>Ac+LhOkJEGPZmP@s7| zDrfxun;H5T!iEB_L#cS4l=rp&PQ;`>V>>=z50le-#ZRZYuB>fAOdXjLh31Gl#V#O3 zrW>i2!angafo@uxB9s~H@AtCOSLuf$;11N~6zK19t9WrDUf`oD0bOom|+(S#^^>jt_OfKXXi$Pph0%RG8)K z4^v&{1?O(DkOkmsItbyC3WAk}cmFzfuFG?jRo2AxFK!O2%(^1?1&8X5lW?@7DAUCw zMi(okd5%pg3~No?Np?6Q9oEPGQ4h2_^I*2`fZC-6Rx5@T8s;lm(MDzaxWN40gh6e! zE%fhLbSMg-9^u^t0{AW)x~?4$Q?@txwHGln{L4lulwQbvqWgTO(dQR=`abI@d~D(= zmDL|UHlF+66dq!owT*kjZ;?~&`oO|b2lEeKpAHV0E3t;l(2w*iKVjC?ekJB=d45EG?z3A;Oc7c3E0~+(tiI zohXIDvj(FxbOR(4WI>TPwma_CqeOpZMJ_&9 zF<;DY*m48k$jUHnMP5MZ-FR$kx((GCLEEpYM-6RvS9kT16frt4zIYFMN0E#>`|^m{ zz9J6W+?b-oN~!u@^ICvgkvrz&e^RfPQ*cL#h`&_os3+hz5HY?T3JAu@HIJbe6=!bX zl)hNRu$zlVI27hht9rg=AC-4vv5NmR-e-EK2y)wvRYbcSb=bou z?-=ozKY;~^VbR-UfmQv;o95HNUU*NbrjBM&pJh`tlkczs@k`U9=3a;R zWk|Y+Z6?Om)#K!o8OCg8FtXPxpufoJrpzgLVbvG4cx`$!4Ro}B41Txcoe-35pLt;; zT%Sq$1@j>JHqq}`;*PZ~qH1nJ6{HQ*n@K2GXN*U9M5^<@_23(kfl;0STuG zWWr}Wt+PAOFUVxHENC%(SntI2K4VGJ?}VXUou{LaG1r4fSyF{W@SK8W43Mqm{`QZU z-#Ly`D=LZ}-(t=5=rUtayEd@$)ql;CDlQ?BLDQQ#1>5XYe2l0N5@^#A1o~);e#51G z`4t@APmKvN(Rt()`T>F{x1DJQgs>k$<(#`yTI#!;^YdV zLd)D~5`z8JNfK({z#Q`Pdz_92iaD7&v~YasJzE5dPi6>>EfDyks(@S`zS7pXc1AV= z?9KAaU(N2Wpw-f`w_$2h1o}0w@vliGP7MR)-krv+3n}z@HUPDxoc&`{g(Y@xRs<05 zwH~je;)<-nYMMxKY?r4)%f)crWM>AiyMopl4mhf9 z#@5!de?#?a-~&Kx>K)bkWZrtN z+Z@PPwyKr56@4w9Jy~4mVvCMX*-2gqtOn5r_{eL}!A_n$^f93;MR06G9Yt`w+ z%utA8JYq5~7QIJnc+z=-A_X{bPd@^)Xnz00&>aw1>*B~Zu<7QHo_aM|7ZDZz z^;J#={-@~8Qk}@iD{*XW0sX1<&+q^;>Ni7a>2IgH8CZpS_Qa=bQSE z_c9!VNA8h2xgr=ZHz(=QjpBX`I4A8-q5ppn+^Qx8+%i?1NNjlQJH}k6f*>8$K)FK9 zyw5jw)%$1@uqE9p1uIY9E>z-<@RG7qxQ#h8%Uz#^92c$rkai zlg6(+40s3fr`j!tcA z;k4WDdS2mVN}t{oKn{3sJXA@!-qh63_8&-{PkCIMAm1aUUn~CRWZYYO00cpOJUt@H zrB$!%VmUw|7&9PZEuPOT7TGIDzU-h?eO;7a)N5Y3tB%-=r5V%Zh+4OVW-+vmXAPIn zgI+roz78i?81~&}m`1srM=%m}K-6&^ID}8Kx|k4`j{)ep|D{WClmzYMhRr&_n_8Op z9db{8$7kEu-yKYjTy-ercGIDw*a;Gs%2Q8gIu?4re-!{2n0nhrtI@w+P18Q_ObxCQ zQ(@ExarY&zpHUMKkf&MXF6G=4yyW^Qpj6j-3G0=`E1Sp+74XneRnt2gr*v+`mT&zz zl8I%n2t{u=JF5CzXChuI@DRgPc5E0_ht{7A!40a1-OLw?)#{sD#Jy*#6p|W=N)@|^ z_u9{TYNEESM8-vY0!!b?{SuoFA||NBIkzl%%zrQ=a#(qIUdb7DN$lYd z+v9Ke549Z)ogur2vCix5(01WK@B@i>AYD2I(+ccNt_5B^wXzRTAMZB+h>>*KD8*)jF1@}xxC**Es6D#q^+OM?#K8s`&l;(BI1p&w zIc8v!K||>~HKVg0Pn%@k<)!@R*f8|cLSalw!}x2fz{WtA$-}jK3C5>;KrrWD1(g-T zECNyg>94$B)R%1A^?nLOREs^35Ihv~E%l_g^GE3abfMgG4#aY2_?4yt__GPV5Gbe3 z>_5YlEkfC8#f%bNib%vwufDXZqW(%l_|NW;>9?P8@!kT?j|QtURFN`>!8#es`fS|D zL7_u@3db2m^mrYg=w=-FB$Xf{x!XSnYG&+*)rfmc4cJ_fn9+Xu!(ulzj?hzdj_vcy zl-iXmhM8UO=I)vl5h6D4yIN)nJm$@_F?KI#{k4PNTG)UMj6cz<&apGD`WT zx1=UdQ;EY}=q@uMP*xtPdGqHHNCjIeS0+&x{7F-`zq2))EmL0WQNX^OzZt&Lz&yNr zr}cu?r69ri-0YZb^+0rUD)bs~)0;(^W3CcJKeE1u{?(cM6UW#sD?Jf*HpJNuaEqd8KnmN)_Sj*u*16H-K`PnTWnDg_+3?GUj zmf%C`h%?7x2s57)%tGYH_`E+3VCh@tM31=LO=&a80TMQ>zbhN%yeYcEkLsTFfT~zT zC=Y!xt{NCC4=v$sIrsU^I0-+q$C0#vI9P5sT==_k zP`~=;W-xZ%_R)}^ai!&~575lez-O|IpAFET+Jn&P^qn2#DL>)b5*$>FBDBBteMeBi z^@m@oe+$B))2|tJf>)|$F!@;%n!|D(no#k%()8ZB>!y(--BDtBp(ylqsu&fl0d`pX zRx=;478l<-Ot`R^S}(COE=Kt@Dt5773-etB+`Qw^_f2R%q3#G0Fdz+!&@vCamMY^~ zi@%5p86n;wJ3^Ks1Udqg=pt0MqgA(N^gkDfrc z>rNz6z!QecD#aImX-Bw^_dq0WLYO&*KGJ`Fssdc4dE7h3kVxn>nJKF}VsxxY+jqgI znzS>18CRIvziZoF<`b~xqfs37{!!XPE$96mjvl=@qaq{OoL*r?y}rwe^V1tcbE=er z>D+<@#Mk=iGC|P0@Alu_Pf5g`T4`Q{g^i?+492tpKH*N$(GxoU{wP6pgvSo#)X{0s zD54qN`+ghQyoP_Due?Z|dmzu$0ZB9dCH>bR1X{0=Je3EkY9T6H8*?OYyDY2Tvb?@G z+UaK$`7jfX{7c*t3@rs*?=QhtMll2a7%Hd4uK>OlRAo*G=fbyeFAQ_iur^=n6Ws0E zyZhpvMBDRpmaoujoUhfuzEa5R4*=(+0>X5AyX7N3ob@z7cBP0!O0zY3x0-QG>Hl24 zQLj_rJJA`&^LH$-d{)KwqrukVRtM>Ih(KkG`#(SalhU?Cg~?F!_LJAn%N2^2r$M&j za|M}xq^+cI^N|K7J zR1pTYTBW0;9G>DeiA-FK_RRD)PJBc?tb6@{xnL*PqS^{od6u_7q`RfddnL%O@wOB`v`YDCQVe4cob2HuJ9{C|mEHAPWBLYP|2YzJ zoAn`|OXECAaomu&> z;Lqxo1S9W)hu%EC^zgmzFZ{}$ej20pz~*@&1BBpriNH@>En2KL>y#&3EmoTbC7+nh zkSND#XRbp6)pAo+ z?G24j1L(ENth#yPo#{1++1bb{2W}~u2$T=jw#*WLTe>e&CsXRj#@N{?O|b40P%|3Y z9nRYoRPEi4%P!Qqb~|Dnz+d6RPyS)rnXma!1%0j}peCn%>Oi+l4(GsW=Dv-%n3%M6 ztT7K~h;-F@~0b5S048TzKAnBv&spA@u&i&jD{nIaKMXQE8QjQyQs-rtrI`ulzQL z-5yP=^>pjZb!3RyudQRmyM59Wp?D! z2Jt;ajaQl5;rzgZt^^ zg}&Z+(>Wl1RcPiMTRkbz4h*^dbXVa3VSa_F+t_AoQrA9lI9BYhzsqjW>7~5e8hfo1 z>I#pbb=SV`hAb)8FA5Cn|2UqV>sejLseLdh*zJOluL`%n=kU))#e>x@&3JnD6E!9O3Uus*RhWkd^S`n^-?Ai)GXWL_Cb!)#$b;N1HuMS*(1? z#Xs+00BW?&S8L<1A^&!d2_0f0Of&v}Oucnjn@`X+48^^8ad(H{?hY+ZutIUC1b6pB zaSaZ|DN@|s2~t`l5Zv9ZAHV0j-sgS)O=c&1?VWq~%=n;^kJSyxe!8y~6l_^#H&JXT3xRYRoMqHcuc#!cnqwRvg!eIo6zGcE}F>!HzRfw3{K-IaueSO`UO%Vrj zv;2-8vuD-y_iWu+#a3Ghb&oJ2^TJqvUG_;kV51xzSCjRNeFG751jc9yxm>Fa|6@{V z1;1a~uZ=Gbc1BeeUWIX4Eu%ux5N`-OE5h2}Y~={gs=eB(rUmDNs?Oo1v0CWJYY?0f zQdd5E>-Ox{v*3j0eb zMC9k~WxacJvbwR)uP#)_tn2RzCaj=8^Up1!fM1=SOj}3Noo28J>-;%`bY-SkK6lbZ&6A@e+H&x{a@s0b|x~O{c%l{VN4%hwV4R^Pn zuhKR5B)MwDwPbIERng`mqO<(oY49V8R~vx@7l zNHW`>k*9xWoxW+)Jdn0WU3qTs{DRG~v+J|PKMQwGkLA)C0oklp%*4eNFOi7Dul|I~ z3xxT!0AY$aXNp`|Uj?e}Z81!qn!kE-1nwu)SCr_Q|Jj^|!gl<187rLIUc zb?eT6O}f?>OP;>v6}kRo#nL9m@>GO-KI`EbM@Bkyil5z;7<+c zfaSeRW1145m*nLglK-?{f9FKK8wc;%MFo|w$=B@c@@(I zvVTOD(utIPdj;IdBo|95HJ_ZDq1DbNY$${YmYa@rs@dP1a59uWb~lu}zI)S)G=(YI z*q5cP7PSpfOgmG0F7mVe-eyF1c5n>x{5EK)&eTX{bYglN+_XJ}V(KdU0TYh{32fY^ zd{w_>_~o51qP&z?CgU+5m7YGndSspqf)<*+djMP||Al7M6;*qvV484}V*WrSe~ehR zx{hj9u@ORr0r=6Z{$DK9P;4&w4&D`a6UM)v`3&Ndbv?WBp|i-bDUqX_%SHA%cLUn@PDtyt@=S+GWt zi>bN4Hz)Es5}w|wjIFNP4>=rTBbTUgyOXSFru!frb@rW?k|D4sOdYBJdV@Sj$15q; z?`l|3pxtncuYTnU(v1m38pauO&

Oke{>Q17a59tLGUfiRGt>i0!VsZD^PJ}XZF6;d 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�qfj^mfueArbq<@TVc&xZoeyg>s^Z+Huqa)y93#X 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%0Dd3f8JNl5|RImIGwU_>*RVD&}QLT{iS^3 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 YDD!alRSBH3 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 z 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

*_+&HK^*YObvcOJ;M8#!`t!9W3D5Y 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 z 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 W3%Rb)htnhg diff --git a/resources/meshes/ultimaker_replicator_plus_platform.obj b/resources/meshes/ultimaker_replicator_plus_platform.obj new file mode 100644 index 0000000000..f5b73f48b1 --- /dev/null +++ b/resources/meshes/ultimaker_replicator_plus_platform.obj @@ -0,0 +1,6749 @@ +# Blender 4.4.3 +# www.blender.org +mtllib ultimaker_replicator_plus_platform.mtl +o MR_ultimaker_replicator_plus_platform +v 183.406708 -102.404900 -7.578969 +v 185.567154 -100.064423 -6.939313 +v 187.500046 -97.970467 -11.478985 +v 185.567154 -100.064423 -6.939313 +v 185.703247 -99.916985 -6.898839 +v 187.500046 -97.970467 -11.478985 +v 187.500046 -97.970467 -11.478985 +v 185.703247 -99.916985 -6.898839 +v 187.500046 -97.970467 -6.362233 +v 176.923264 -109.428635 -9.472987 +v 179.084702 -107.087090 -8.845135 +v 187.500046 -97.970467 -11.478985 +v 179.084702 -107.087090 -8.845135 +v 181.245865 -104.745819 -8.213993 +v 187.500046 -97.970467 -11.478985 +v 187.500046 -97.970467 -11.478985 +v 181.245865 -104.745819 -8.213993 +v 183.406708 -102.404900 -7.578969 +v 152.905457 -135.447922 -20.784538 +v 152.905457 -135.447922 -16.681448 +v 154.000031 -134.262115 -20.784538 +v 152.905457 -135.447922 -16.681448 +v 153.252487 -135.071976 -16.224936 +v 154.000031 -134.262115 -20.784538 +v 154.000031 -134.262115 -20.784538 +v 153.252487 -135.071976 -16.224936 +v 161.747787 -125.868729 -13.819588 +v 161.747787 -125.868729 -13.819588 +v 166.091217 -121.163330 -12.583727 +v 154.000031 -134.262115 -20.784538 +v 166.091217 -121.163330 -12.583727 +v 170.243759 -116.664764 -11.396920 +v 154.000031 -134.262115 -20.784538 +v 154.000031 -134.262115 -20.784538 +v 170.243759 -116.664764 -11.396920 +v 187.500046 -97.970467 -11.478985 +v 170.243759 -116.664764 -11.396920 +v 174.863373 -111.660179 -10.068674 +v 187.500046 -97.970467 -11.478985 +v 187.500046 -97.970467 -11.478985 +v 174.863373 -111.660179 -10.068674 +v 176.923264 -109.428635 -9.472987 +v 161.500061 120.052078 -3.284557 +v 162.099899 120.052078 -3.284557 +v 161.500046 -99.651413 -3.284541 +v 162.099899 120.052078 -3.284557 +v 162.099884 -99.046654 -3.284541 +v 161.500046 -99.651413 -3.284541 +v -187.499954 -97.970436 -6.362200 +v -185.703140 -99.916954 -6.898806 +v -187.499954 -97.970436 -11.478952 +v -185.703140 -99.916954 -6.898806 +v -185.567062 -100.064392 -6.939280 +v -187.499954 -97.970436 -11.478952 +v -187.499954 -97.970436 -11.478952 +v -185.567062 -100.064392 -6.939280 +v -183.406631 -102.404869 -7.578935 +v -183.406631 -102.404869 -7.578935 +v -181.245773 -104.745789 -8.213961 +v -187.499954 -97.970436 -11.478952 +v -181.245773 -104.745789 -8.213961 +v -179.084610 -107.087059 -8.845102 +v -187.499954 -97.970436 -11.478952 +v -187.499954 -97.970436 -11.478952 +v -179.084610 -107.087059 -8.845102 +v -176.923187 -109.428604 -9.472957 +v -166.091156 -121.163300 -12.583697 +v -153.999969 -134.262085 -20.784512 +v -170.243683 -116.664734 -11.396892 +v -153.999969 -134.262085 -20.784512 +v -187.499954 -97.970436 -11.478952 +v -170.243683 -116.664734 -11.396892 +v -170.243683 -116.664734 -11.396892 +v -187.499954 -97.970436 -11.478952 +v -174.863312 -111.660149 -10.068644 +v -187.499954 -97.970436 -11.478952 +v -176.923187 -109.428604 -9.472957 +v -174.863312 -111.660149 -10.068644 +v -152.905396 -135.447891 -16.681421 +v -152.905396 -135.447891 -20.784512 +v -153.252411 -135.071945 -16.224909 +v -152.905396 -135.447891 -20.784512 +v -153.999969 -134.262085 -20.784512 +v -153.252411 -135.071945 -16.224909 +v -153.252411 -135.071945 -16.224909 +v -153.999969 -134.262085 -20.784512 +v -161.747711 -125.868698 -13.819559 +v -153.999969 -134.262085 -20.784512 +v -166.091156 -121.163300 -12.583697 +v -161.747711 -125.868698 -13.819559 +v -187.374954 -98.947891 0.340490 +v -186.999954 -98.947891 1.215490 +v -186.999939 120.052109 1.215474 +v -186.999939 120.052109 1.215474 +v -189.999939 120.052109 -5.784526 +v -189.999954 -98.947891 -5.784510 +v -189.999954 -98.947891 -5.784510 +v -189.624954 -98.947891 -4.909510 +v -186.999939 120.052109 1.215474 +v -189.624954 -98.947891 -4.909510 +v -189.249954 -98.947891 -4.034510 +v -186.999939 120.052109 1.215474 +v -186.999939 120.052109 1.215474 +v -189.249954 -98.947891 -4.034510 +v -188.874954 -98.947891 -3.159510 +v -188.874954 -98.947891 -3.159510 +v -188.499954 -98.947891 -2.284510 +v -186.999939 120.052109 1.215474 +v -188.499954 -98.947891 -2.284510 +v -187.749954 -98.947891 -0.534510 +v -186.999939 120.052109 1.215474 +v -186.999939 120.052109 1.215474 +v -187.749954 -98.947891 -0.534510 +v -187.374954 -98.947891 0.340490 +v 164.250046 -107.197922 0.215460 +v 158.000046 -102.947922 -0.784539 +v 156.000046 -104.947922 -0.784539 +v 154.000031 -115.447922 0.215461 +v 154.000031 -123.947922 1.215462 +v 162.250031 -117.697922 1.215461 +v 162.000046 -98.947922 -0.784541 +v 160.000046 -100.947922 -0.784541 +v 178.750046 -105.197922 1.215459 +v 178.750046 -105.197922 1.215459 +v 180.812546 -103.635422 1.215459 +v 162.000046 -98.947922 -0.784541 +v 180.812546 -103.635422 1.215459 +v 182.875046 -102.072922 1.215458 +v 162.000046 -98.947922 -0.784541 +v 162.000046 -98.947922 -0.784541 +v 182.875046 -102.072922 1.215458 +v 183.906296 -101.291672 1.215457 +v 183.906296 -101.291672 1.215457 +v 184.937546 -100.510422 1.215457 +v 162.000046 -98.947922 -0.784541 +v 184.937546 -100.510422 1.215457 +v 185.968796 -99.729172 1.215457 +v 162.000046 -98.947922 -0.784541 +v 162.000046 -98.947922 -0.784541 +v 185.968796 -99.729172 1.215457 +v 187.000046 -98.947922 1.215457 +v 164.250046 -107.197922 0.215460 +v 156.000046 -104.947922 -0.784539 +v 159.125031 -111.322922 0.215461 +v 156.000046 -104.947922 -0.784539 +v 154.000046 -106.947922 -0.784539 +v 159.125031 -111.322922 0.215461 +v 159.125031 -111.322922 0.215461 +v 154.000046 -106.947922 -0.784539 +v 154.000031 -115.447922 0.215461 +v 154.000031 -115.447922 0.215461 +v 162.250031 -117.697922 1.215461 +v 159.125031 -111.322922 0.215461 +v 162.250031 -117.697922 1.215461 +v 166.375031 -114.572922 1.215460 +v 159.125031 -111.322922 0.215461 +v 159.125031 -111.322922 0.215461 +v 166.375031 -114.572922 1.215460 +v 164.250046 -107.197922 0.215460 +v 166.375031 -114.572922 1.215460 +v 170.500031 -111.447922 1.215460 +v 164.250046 -107.197922 0.215460 +v 164.250046 -107.197922 0.215460 +v 170.500031 -111.447922 1.215460 +v 174.625031 -108.322922 1.215459 +v 160.000046 -100.947922 -0.784541 +v 158.000046 -102.947922 -0.784539 +v 178.750046 -105.197922 1.215459 +v 158.000046 -102.947922 -0.784539 +v 164.250046 -107.197922 0.215460 +v 178.750046 -105.197922 1.215459 +v 178.750046 -105.197922 1.215459 +v 164.250046 -107.197922 0.215460 +v 176.687546 -106.760422 1.215459 +v 164.250046 -107.197922 0.215460 +v 174.625031 -108.322922 1.215459 +v 176.687546 -106.760422 1.215459 +v -155.035477 -106.447891 -3.255711 +v -154.783401 -106.447891 -3.284512 +v -158.650452 -110.969971 -2.393444 +v -154.783401 -106.447891 -3.284512 +v -154.148178 -107.094444 -3.284512 +v -158.650452 -110.969971 -2.393444 +v -158.650452 -110.969971 -2.393444 +v -154.148178 -107.094444 -3.284512 +v -154.122742 -112.603630 -2.636372 +v -158.241531 -103.241867 -3.256069 +v -163.553604 -106.947090 -2.395816 +v -161.499954 -99.983421 -3.257260 +v -163.553604 -106.947090 -2.395816 +v -169.582657 -99.065201 -2.685879 +v -161.499954 -99.983421 -3.257260 +v -161.499954 -99.983421 -3.257260 +v -169.582657 -99.065201 -2.685879 +v -161.499954 -99.651382 -3.284512 +v -169.582657 -99.065201 -2.685879 +v -162.099808 -99.046623 -3.284512 +v -161.499954 -99.651382 -3.284512 +v -183.762741 -99.222572 -1.536342 +v -183.941238 -99.077583 -1.537196 +v -180.995377 -99.075989 -1.772868 +v -177.501694 -104.225273 -1.514582 +v -178.798965 -103.199432 -1.518039 +v -174.699203 -99.071297 -2.276561 +v -178.798965 -103.199432 -1.518039 +v -179.572159 -102.585800 -1.520319 +v -174.699203 -99.071297 -2.276561 +v -174.699203 -99.071297 -2.276561 +v -179.572159 -102.585800 -1.520319 +v -180.995377 -99.075989 -1.772868 +v -179.572159 -102.585800 -1.520319 +v -181.658646 -100.920105 -1.527430 +v -180.995377 -99.075989 -1.772868 +v -180.995377 -99.075989 -1.772868 +v -181.658646 -100.920105 -1.527430 +v -183.762741 -99.222572 -1.536342 +v -169.582657 -99.065201 -2.685879 +v -173.391022 -107.451050 -1.506114 +v -174.699203 -99.071297 -2.276561 +v -173.391022 -107.451050 -1.506114 +v -175.440811 -105.846649 -1.509921 +v -174.699203 -99.071297 -2.276561 +v -174.699203 -99.071297 -2.276561 +v -175.440811 -105.846649 -1.509921 +v -177.501694 -104.225273 -1.514582 +v -165.245087 -113.771347 -1.496631 +v -169.315826 -110.621979 -1.500438 +v -163.553604 -106.947090 -2.395816 +v -169.315826 -110.621979 -1.500438 +v -169.652954 -110.360443 -1.500827 +v -163.553604 -106.947090 -2.395816 +v -163.553604 -106.947090 -2.395816 +v -169.652954 -110.360443 -1.500827 +v -169.582657 -99.065201 -2.685879 +v -169.652954 -110.360443 -1.500827 +v -171.129089 -109.213722 -1.502696 +v -169.582657 -99.065201 -2.685879 +v -169.582657 -99.065201 -2.685879 +v -171.129089 -109.213722 -1.502696 +v -173.391022 -107.451050 -1.506114 +v -161.198303 -116.889557 -1.494174 +v -165.245087 -113.771347 -1.496631 +v -158.650452 -110.969971 -2.393444 +v -165.245087 -113.771347 -1.496631 +v -163.553604 -106.947090 -2.395816 +v -158.650452 -110.969971 -2.393444 +v -158.650452 -110.969971 -2.393444 +v -163.553604 -106.947090 -2.395816 +v -155.035477 -106.447891 -3.255711 +v -163.553604 -106.947090 -2.395816 +v -158.241531 -103.241867 -3.256069 +v -155.035477 -106.447891 -3.255711 +v -161.198303 -116.889557 -1.494174 +v -158.650452 -110.969971 -2.393444 +v -160.458160 -117.458786 -1.493846 +v -158.650452 -110.969971 -2.393444 +v -154.122742 -112.603630 -2.636372 +v -160.458160 -117.458786 -1.493846 +v -160.458160 -117.458786 -1.493846 +v -154.122742 -112.603630 -2.636372 +v -154.111511 -122.329681 -1.492130 +v -153.999969 -137.947891 -15.784510 +v 154.000031 -137.947922 -15.784536 +v -153.999969 -134.447891 -11.534511 +v 154.000031 -137.947922 -15.784536 +v 154.000031 -134.447922 -11.534537 +v -153.999969 -134.447891 -11.534511 +v -153.999969 -134.447891 -11.534511 +v 154.000031 -134.447922 -11.534537 +v -153.999969 -130.947891 -7.284511 +v 154.000031 -134.447922 -11.534537 +v 154.000031 -130.947922 -7.284537 +v -153.999969 -130.947891 -7.284511 +v -153.999969 -130.947891 -7.284511 +v 154.000031 -130.947922 -7.284537 +v -153.999969 -127.447891 -3.034511 +v 154.000031 -130.947922 -7.284537 +v 154.000031 -127.447922 -3.034538 +v -153.999969 -127.447891 -3.034511 +v -153.999969 -127.447891 -3.034511 +v 154.000031 -127.447922 -3.034538 +v -153.999969 -123.947891 1.215489 +v 154.000031 -127.447922 -3.034538 +v 154.000031 -123.947922 1.215462 +v -153.999969 -123.947891 1.215489 +v 154.000046 -106.947922 -0.784539 +v -153.999954 -106.947891 -0.784512 +v 154.000031 -115.447922 0.215461 +v -153.999954 -106.947891 -0.784512 +v -153.999969 -115.447891 0.215488 +v 154.000031 -115.447922 0.215461 +v 154.000031 -115.447922 0.215461 +v -153.999969 -115.447891 0.215488 +v 154.000031 -123.947922 1.215462 +v -153.999969 -115.447891 0.215488 +v -153.999969 -123.947891 1.215489 +v 154.000031 -123.947922 1.215462 +v 171.625031 -116.697922 -7.784541 +v 172.000031 -118.447922 -10.784540 +v 176.500031 -113.572922 -9.534540 +v 187.398483 -101.276047 -5.456418 +v 187.046921 -101.166672 -4.503293 +v 184.843796 -103.385422 -4.972043 +v 183.203171 -102.291672 0.184207 +v 182.875046 -102.072922 1.215458 +v 180.812546 -103.635422 1.215459 +v 186.332077 -99.783859 0.301395 +v 185.968796 -99.729172 1.215457 +v 184.937546 -100.510422 1.215457 +v 175.328156 -110.291672 -2.815791 +v 175.562531 -110.947922 -4.159541 +v 177.718781 -108.947922 -3.847041 +v 167.500031 -123.322922 -12.034538 +v 172.000031 -118.447922 -10.784540 +v 167.218781 -121.135422 -8.722039 +v 172.000031 -118.447922 -10.784540 +v 171.625031 -116.697922 -7.784541 +v 167.218781 -121.135422 -8.722039 +v 167.218781 -121.135422 -8.722039 +v 171.625031 -116.697922 -7.784541 +v 166.937531 -118.947914 -5.409539 +v 163.000031 -128.197922 -13.284538 +v 167.500031 -123.322922 -12.034538 +v 162.812531 -125.572922 -9.659538 +v 167.500031 -123.322922 -12.034538 +v 167.218781 -121.135422 -8.722039 +v 162.812531 -125.572922 -9.659538 +v 162.812531 -125.572922 -9.659538 +v 167.218781 -121.135422 -8.722039 +v 162.625031 -122.947922 -6.034539 +v 167.218781 -121.135422 -8.722039 +v 166.937531 -118.947914 -5.409539 +v 162.625031 -122.947922 -6.034539 +v 162.625031 -122.947922 -6.034539 +v 166.937531 -118.947914 -5.409539 +v 162.437531 -120.322922 -2.409539 +v 166.937531 -118.947914 -5.409539 +v 166.656281 -116.760422 -2.097039 +v 162.437531 -120.322922 -2.409539 +v 187.421921 -99.947922 -2.440793 +v 185.992233 -100.838547 -1.643918 +v 186.343796 -100.947922 -2.597043 +v 185.992233 -100.838547 -1.643918 +v 183.859421 -102.729172 -1.878291 +v 186.343796 -100.947922 -2.597043 +v 188.500046 -98.947922 -2.284543 +v 187.750046 -98.947922 -0.534543 +v 187.421921 -99.947922 -2.440793 +v 187.750046 -98.947922 -0.534543 +v 186.695358 -99.838547 -0.612668 +v 187.421921 -99.947922 -2.440793 +v 187.421921 -99.947922 -2.440793 +v 186.695358 -99.838547 -0.612668 +v 185.992233 -100.838547 -1.643918 +v 186.695358 -99.838547 -0.612668 +v 185.640671 -100.729172 -0.690793 +v 185.992233 -100.838547 -1.643918 +v 185.992233 -100.838547 -1.643918 +v 185.640671 -100.729172 -0.690793 +v 183.859421 -102.729172 -1.878291 +v 187.000046 -98.947922 1.215457 +v 185.968796 -99.729172 1.215457 +v 187.375046 -98.947922 0.340457 +v 185.968796 -99.729172 1.215457 +v 186.332077 -99.783859 0.301395 +v 187.375046 -98.947922 0.340457 +v 187.375046 -98.947922 0.340457 +v 186.332077 -99.783859 0.301395 +v 187.750046 -98.947922 -0.534543 +v 185.289108 -100.619797 0.262332 +v 184.246140 -101.455734 0.223270 +v 184.585983 -101.619797 -0.768918 +v 184.585983 -101.619797 -0.768918 +v 184.246140 -101.455734 0.223270 +v 183.531296 -102.510422 -0.847041 +v 184.246140 -101.455734 0.223270 +v 183.203171 -102.291672 0.184207 +v 183.531296 -102.510422 -0.847041 +v 183.531296 -102.510422 -0.847041 +v 183.203171 -102.291672 0.184207 +v 181.117233 -103.963547 0.106084 +v 183.203171 -102.291672 0.184207 +v 180.812546 -103.635422 1.215459 +v 181.117233 -103.963547 0.106084 +v 181.117233 -103.963547 0.106084 +v 180.812546 -103.635422 1.215459 +v 178.750046 -105.197922 1.215459 +v 182.875046 -102.072922 1.215458 +v 183.203171 -102.291672 0.184207 +v 183.906296 -101.291672 1.215457 +v 183.203171 -102.291672 0.184207 +v 184.246140 -101.455734 0.223270 +v 183.906296 -101.291672 1.215457 +v 183.906296 -101.291672 1.215457 +v 184.246140 -101.455734 0.223270 +v 184.937546 -100.510422 1.215457 +v 184.246140 -101.455734 0.223270 +v 185.289108 -100.619797 0.262332 +v 184.937546 -100.510422 1.215457 +v 184.937546 -100.510422 1.215457 +v 185.289108 -100.619797 0.262332 +v 186.332077 -99.783859 0.301395 +v 187.750046 -98.947922 -0.534543 +v 186.332077 -99.783859 0.301395 +v 186.695358 -99.838547 -0.612668 +v 186.332077 -99.783859 0.301395 +v 185.289108 -100.619797 0.262332 +v 186.695358 -99.838547 -0.612668 +v 186.695358 -99.838547 -0.612668 +v 185.289108 -100.619797 0.262332 +v 185.640671 -100.729172 -0.690793 +v 185.289108 -100.619797 0.262332 +v 184.585983 -101.619797 -0.768918 +v 185.640671 -100.729172 -0.690793 +v 185.640671 -100.729172 -0.690793 +v 184.585983 -101.619797 -0.768918 +v 183.859421 -102.729172 -1.878291 +v 184.585983 -101.619797 -0.768918 +v 183.531296 -102.510422 -0.847041 +v 183.859421 -102.729172 -1.878291 +v 183.859421 -102.729172 -1.878291 +v 183.531296 -102.510422 -0.847041 +v 181.421921 -104.291672 -1.003291 +v 183.531296 -102.510422 -0.847041 +v 181.117233 -103.963547 0.106084 +v 181.421921 -104.291672 -1.003291 +v 181.421921 -104.291672 -1.003291 +v 181.117233 -103.963547 0.106084 +v 179.312546 -106.072922 -1.159541 +v 181.117233 -103.963547 0.106084 +v 178.750046 -105.197922 1.215459 +v 179.312546 -106.072922 -1.159541 +v 179.312546 -106.072922 -1.159541 +v 178.750046 -105.197922 1.215459 +v 177.203156 -107.854172 -1.315791 +v 175.093781 -109.635422 -1.472041 +v 170.875031 -113.197922 -1.784541 +v 175.328156 -110.291672 -2.815791 +v 170.875031 -113.197922 -1.784541 +v 171.062531 -114.072922 -3.284541 +v 175.328156 -110.291672 -2.815791 +v 175.328156 -110.291672 -2.815791 +v 171.062531 -114.072922 -3.284541 +v 175.562531 -110.947922 -4.159541 +v 190.000046 -98.947922 -5.784543 +v 189.625046 -98.947922 -4.909543 +v 187.398483 -101.276047 -5.456418 +v 187.398483 -101.276047 -5.456418 +v 189.625046 -98.947922 -4.909543 +v 187.046921 -101.166672 -4.503293 +v 189.625046 -98.947922 -4.909543 +v 189.250046 -98.947922 -4.034543 +v 187.046921 -101.166672 -4.503293 +v 187.046921 -101.166672 -4.503293 +v 189.250046 -98.947922 -4.034543 +v 188.875046 -98.947922 -3.159543 +v 175.093781 -109.635422 -1.472041 +v 175.328156 -110.291672 -2.815791 +v 177.203156 -107.854172 -1.315791 +v 175.328156 -110.291672 -2.815791 +v 177.718781 -108.947922 -3.847041 +v 177.203156 -107.854172 -1.315791 +v 177.203156 -107.854172 -1.315791 +v 177.718781 -108.947922 -3.847041 +v 179.312546 -106.072922 -1.159541 +v 177.718781 -108.947922 -3.847041 +v 179.875046 -106.947922 -3.534541 +v 179.312546 -106.072922 -1.159541 +v 179.312546 -106.072922 -1.159541 +v 179.875046 -106.947922 -3.534541 +v 181.421921 -104.291672 -1.003291 +v 179.875046 -106.947922 -3.534541 +v 182.031296 -104.947922 -3.222041 +v 181.421921 -104.291672 -1.003291 +v 181.421921 -104.291672 -1.003291 +v 182.031296 -104.947922 -3.222041 +v 183.859421 -102.729172 -1.878291 +v 182.031296 -104.947922 -3.222041 +v 184.187546 -102.947922 -2.909542 +v 183.859421 -102.729172 -1.878291 +v 183.859421 -102.729172 -1.878291 +v 184.187546 -102.947922 -2.909542 +v 186.343796 -100.947922 -2.597043 +v 184.187546 -102.947922 -2.909542 +v 186.695358 -101.057297 -3.550168 +v 186.343796 -100.947922 -2.597043 +v 186.343796 -100.947922 -2.597043 +v 186.695358 -101.057297 -3.550168 +v 187.421921 -99.947922 -2.440793 +v 186.695358 -101.057297 -3.550168 +v 187.785202 -100.002609 -3.354855 +v 187.421921 -99.947922 -2.440793 +v 187.421921 -99.947922 -2.440793 +v 187.785202 -100.002609 -3.354855 +v 188.500046 -98.947922 -2.284543 +v 171.062531 -114.072922 -3.284541 +v 171.250031 -114.947922 -4.784539 +v 175.562531 -110.947922 -4.159541 +v 171.250031 -114.947922 -4.784539 +v 176.031281 -112.260422 -6.847041 +v 175.562531 -110.947922 -4.159541 +v 175.562531 -110.947922 -4.159541 +v 176.031281 -112.260422 -6.847041 +v 177.718781 -108.947922 -3.847041 +v 176.031281 -112.260422 -6.847041 +v 178.234406 -110.041672 -6.378291 +v 177.718781 -108.947922 -3.847041 +v 177.718781 -108.947922 -3.847041 +v 178.234406 -110.041672 -6.378291 +v 179.875046 -106.947922 -3.534541 +v 178.234406 -110.041672 -6.378291 +v 180.437531 -107.822922 -5.909541 +v 179.875046 -106.947922 -3.534541 +v 179.875046 -106.947922 -3.534541 +v 180.437531 -107.822922 -5.909541 +v 182.031296 -104.947922 -3.222041 +v 180.437531 -107.822922 -5.909541 +v 182.640671 -105.604172 -5.440793 +v 182.031296 -104.947922 -3.222041 +v 182.031296 -104.947922 -3.222041 +v 182.640671 -105.604172 -5.440793 +v 184.187546 -102.947922 -2.909542 +v 182.640671 -105.604172 -5.440793 +v 184.843796 -103.385422 -4.972043 +v 184.187546 -102.947922 -2.909542 +v 184.187546 -102.947922 -2.909542 +v 184.843796 -103.385422 -4.972043 +v 186.695358 -101.057297 -3.550168 +v 184.843796 -103.385422 -4.972043 +v 187.046921 -101.166672 -4.503293 +v 186.695358 -101.057297 -3.550168 +v 186.695358 -101.057297 -3.550168 +v 187.046921 -101.166672 -4.503293 +v 187.785202 -100.002609 -3.354855 +v 187.046921 -101.166672 -4.503293 +v 188.875046 -98.947922 -3.159543 +v 187.785202 -100.002609 -3.354855 +v 187.785202 -100.002609 -3.354855 +v 188.875046 -98.947922 -3.159543 +v 188.500046 -98.947922 -2.284543 +v 162.437531 -120.322922 -2.409539 +v 154.000031 -127.447922 -3.034538 +v 162.625031 -122.947922 -6.034539 +v 154.000031 -127.447922 -3.034538 +v 154.000031 -130.947922 -7.284537 +v 162.625031 -122.947922 -6.034539 +v 162.625031 -122.947922 -6.034539 +v 154.000031 -130.947922 -7.284537 +v 162.812531 -125.572922 -9.659538 +v 154.000031 -130.947922 -7.284537 +v 154.000031 -134.447922 -11.534537 +v 162.812531 -125.572922 -9.659538 +v 162.812531 -125.572922 -9.659538 +v 154.000031 -134.447922 -11.534537 +v 163.000031 -128.197922 -13.284538 +v 154.000031 -134.447922 -11.534537 +v 154.000031 -137.947922 -15.784536 +v 163.000031 -128.197922 -13.284538 +v 176.687546 -106.760422 1.215459 +v 174.625031 -108.322922 1.215459 +v 174.859406 -108.979172 -0.128291 +v 174.625031 -108.322922 1.215459 +v 170.500031 -111.447922 1.215460 +v 174.859406 -108.979172 -0.128291 +v 174.859406 -108.979172 -0.128291 +v 170.500031 -111.447922 1.215460 +v 170.687531 -112.322922 -0.284541 +v 170.500031 -111.447922 1.215460 +v 166.375031 -114.572922 1.215460 +v 170.687531 -112.322922 -0.284541 +v 170.687531 -112.322922 -0.284541 +v 166.375031 -114.572922 1.215460 +v 166.656281 -116.760422 -2.097039 +v 166.375031 -114.572922 1.215460 +v 162.250031 -117.697922 1.215461 +v 166.656281 -116.760422 -2.097039 +v 166.656281 -116.760422 -2.097039 +v 162.250031 -117.697922 1.215461 +v 162.437531 -120.322922 -2.409539 +v 162.250031 -117.697922 1.215461 +v 154.000031 -123.947922 1.215462 +v 162.437531 -120.322922 -2.409539 +v 162.437531 -120.322922 -2.409539 +v 154.000031 -123.947922 1.215462 +v 154.000031 -127.447922 -3.034538 +v 178.750046 -105.197922 1.215459 +v 176.687546 -106.760422 1.215459 +v 177.203156 -107.854172 -1.315791 +v 176.687546 -106.760422 1.215459 +v 174.859406 -108.979172 -0.128291 +v 177.203156 -107.854172 -1.315791 +v 177.203156 -107.854172 -1.315791 +v 174.859406 -108.979172 -0.128291 +v 175.093781 -109.635422 -1.472041 +v 174.859406 -108.979172 -0.128291 +v 170.687531 -112.322922 -0.284541 +v 175.093781 -109.635422 -1.472041 +v 175.093781 -109.635422 -1.472041 +v 170.687531 -112.322922 -0.284541 +v 170.875031 -113.197922 -1.784541 +v 170.687531 -112.322922 -0.284541 +v 166.656281 -116.760422 -2.097039 +v 170.875031 -113.197922 -1.784541 +v 170.875031 -113.197922 -1.784541 +v 166.656281 -116.760422 -2.097039 +v 171.062531 -114.072922 -3.284541 +v 166.656281 -116.760422 -2.097039 +v 166.937531 -118.947914 -5.409539 +v 171.062531 -114.072922 -3.284541 +v 171.062531 -114.072922 -3.284541 +v 166.937531 -118.947914 -5.409539 +v 171.250031 -114.947922 -4.784539 +v 166.937531 -118.947914 -5.409539 +v 171.625031 -116.697922 -7.784541 +v 171.250031 -114.947922 -4.784539 +v 171.250031 -114.947922 -4.784539 +v 171.625031 -116.697922 -7.784541 +v 176.031281 -112.260422 -6.847041 +v 171.625031 -116.697922 -7.784541 +v 176.500031 -113.572922 -9.534540 +v 176.031281 -112.260422 -6.847041 +v 176.031281 -112.260422 -6.847041 +v 176.500031 -113.572922 -9.534540 +v 178.234406 -110.041672 -6.378291 +v 176.500031 -113.572922 -9.534540 +v 178.750031 -111.135422 -8.909541 +v 178.234406 -110.041672 -6.378291 +v 178.234406 -110.041672 -6.378291 +v 178.750031 -111.135422 -8.909541 +v 180.437531 -107.822922 -5.909541 +v 178.750031 -111.135422 -8.909541 +v 181.000031 -108.697922 -8.284542 +v 180.437531 -107.822922 -5.909541 +v 180.437531 -107.822922 -5.909541 +v 181.000031 -108.697922 -8.284542 +v 182.640671 -105.604172 -5.440793 +v 181.000031 -108.697922 -8.284542 +v 183.250046 -106.260422 -7.659543 +v 182.640671 -105.604172 -5.440793 +v 182.640671 -105.604172 -5.440793 +v 183.250046 -106.260422 -7.659543 +v 184.843796 -103.385422 -4.972043 +v 183.250046 -106.260422 -7.659543 +v 185.500046 -103.822922 -7.034543 +v 184.843796 -103.385422 -4.972043 +v 184.843796 -103.385422 -4.972043 +v 185.500046 -103.822922 -7.034543 +v 187.398483 -101.276047 -5.456418 +v 185.500046 -103.822922 -7.034543 +v 187.750046 -101.385422 -6.409543 +v 187.398483 -101.276047 -5.456418 +v 187.398483 -101.276047 -5.456418 +v 187.750046 -101.385422 -6.409543 +v 190.000046 -98.947922 -5.784543 +v 162.000061 120.052078 -0.784557 +v -157.999954 -102.947891 -0.784512 +v -155.999954 -104.947891 -0.784512 +v -161.999939 120.052109 -0.784528 +v -161.999954 -98.947891 -0.784512 +v 162.000061 120.052078 -0.784557 +v -161.999954 -98.947891 -0.784512 +v -159.999954 -100.947891 -0.784512 +v 162.000061 120.052078 -0.784557 +v 162.000061 120.052078 -0.784557 +v -159.999954 -100.947891 -0.784512 +v -157.999954 -102.947891 -0.784512 +v -155.999954 -104.947891 -0.784512 +v -153.999954 -106.947891 -0.784512 +v 154.000046 -106.947922 -0.784539 +v 154.000046 -106.947922 -0.784539 +v 156.000046 -104.947922 -0.784539 +v -155.999954 -104.947891 -0.784512 +v 156.000046 -104.947922 -0.784539 +v 158.000046 -102.947922 -0.784539 +v -155.999954 -104.947891 -0.784512 +v -155.999954 -104.947891 -0.784512 +v 158.000046 -102.947922 -0.784539 +v 162.000061 120.052078 -0.784557 +v 158.000046 -102.947922 -0.784539 +v 160.000046 -100.947922 -0.784541 +v 162.000061 120.052078 -0.784557 +v 162.000061 120.052078 -0.784557 +v 160.000046 -100.947922 -0.784541 +v 162.000046 -98.947922 -0.784541 +v 185.409515 -97.830597 -1.419774 +v 183.941330 -99.077614 -1.537228 +v 185.409531 120.052078 -1.419790 +v 183.941330 -99.077614 -1.537228 +v 180.995468 -99.076019 -1.772900 +v 185.409531 120.052078 -1.419790 +v 162.099884 -99.046654 -3.284541 +v 162.099899 120.052078 -3.284557 +v 169.582748 -99.065231 -2.685908 +v 162.099899 120.052078 -3.284557 +v 185.409531 120.052078 -1.419790 +v 169.582748 -99.065231 -2.685908 +v 169.582748 -99.065231 -2.685908 +v 185.409531 120.052078 -1.419790 +v 174.699295 -99.071327 -2.276592 +v 185.409531 120.052078 -1.419790 +v 180.995468 -99.076019 -1.772900 +v 174.699295 -99.071327 -2.276592 +v -176.031219 -112.260391 -6.847010 +v -176.499969 -113.572891 -9.534510 +v -171.999969 -118.447891 -10.784510 +v -187.398392 -101.276016 -5.456384 +v -187.749954 -101.385391 -6.409509 +v -185.499954 -103.822891 -7.034509 +v -181.117142 -103.963516 0.106115 +v -180.812454 -103.635391 1.215490 +v -182.874954 -102.072891 1.215490 +v -175.328094 -110.291641 -2.815760 +v -175.093719 -109.635391 -1.472010 +v -177.203094 -107.854141 -1.315760 +v -187.374954 -98.947891 0.340490 +v -187.749954 -98.947891 -0.534510 +v -186.695267 -99.838516 -0.612635 +v -187.749954 -98.947891 -0.534510 +v -188.499954 -98.947891 -2.284510 +v -186.695267 -99.838516 -0.612635 +v -167.499969 -123.322891 -12.034510 +v -167.218719 -121.135391 -8.722011 +v -171.624969 -116.697891 -7.784509 +v -166.656219 -116.760391 -2.097010 +v -166.374969 -114.572891 1.215490 +v -170.687469 -112.322891 -0.284510 +v -166.374969 -114.572891 1.215490 +v -170.499969 -111.447891 1.215489 +v -170.687469 -112.322891 -0.284510 +v -170.687469 -112.322891 -0.284510 +v -170.499969 -111.447891 1.215489 +v -174.624969 -108.322891 1.215490 +v -162.249969 -117.697891 1.215490 +v -166.374969 -114.572891 1.215490 +v -162.437469 -120.322891 -2.409510 +v -166.374969 -114.572891 1.215490 +v -166.656219 -116.760391 -2.097010 +v -162.437469 -120.322891 -2.409510 +v -162.437469 -120.322891 -2.409510 +v -166.656219 -116.760391 -2.097010 +v -162.624969 -122.947891 -6.034510 +v -166.656219 -116.760391 -2.097010 +v -166.937469 -118.947884 -5.409511 +v -162.624969 -122.947891 -6.034510 +v -162.624969 -122.947891 -6.034510 +v -166.937469 -118.947884 -5.409511 +v -162.812469 -125.572891 -9.659510 +v -166.937469 -118.947884 -5.409511 +v -167.218719 -121.135391 -8.722011 +v -162.812469 -125.572891 -9.659510 +v -162.812469 -125.572891 -9.659510 +v -167.218719 -121.135391 -8.722011 +v -162.999969 -128.197891 -13.284510 +v -167.218719 -121.135391 -8.722011 +v -167.499969 -123.322891 -12.034510 +v -162.999969 -128.197891 -13.284510 +v -175.562469 -110.947891 -4.159510 +v -175.328094 -110.291641 -2.815760 +v -177.718719 -108.947891 -3.847010 +v -175.328094 -110.291641 -2.815760 +v -177.203094 -107.854141 -1.315760 +v -177.718719 -108.947891 -3.847010 +v -177.718719 -108.947891 -3.847010 +v -177.203094 -107.854141 -1.315760 +v -179.874954 -106.947891 -3.534510 +v -177.203094 -107.854141 -1.315760 +v -179.312454 -106.072891 -1.159510 +v -179.874954 -106.947891 -3.534510 +v -179.874954 -106.947891 -3.534510 +v -179.312454 -106.072891 -1.159510 +v -182.031204 -104.947891 -3.222010 +v -186.999954 -98.947891 1.215490 +v -187.374954 -98.947891 0.340490 +v -186.331985 -99.783829 0.301427 +v -187.374954 -98.947891 0.340490 +v -186.695267 -99.838516 -0.612635 +v -186.331985 -99.783829 0.301427 +v -186.331985 -99.783829 0.301427 +v -186.695267 -99.838516 -0.612635 +v -185.640579 -100.729141 -0.690760 +v -186.695267 -99.838516 -0.612635 +v -185.992142 -100.838516 -1.643885 +v -185.640579 -100.729141 -0.690760 +v -185.640579 -100.729141 -0.690760 +v -185.992142 -100.838516 -1.643885 +v -184.585892 -101.619766 -0.768885 +v -185.992142 -100.838516 -1.643885 +v -183.859329 -102.729141 -1.878260 +v -184.585892 -101.619766 -0.768885 +v -184.585892 -101.619766 -0.768885 +v -183.859329 -102.729141 -1.878260 +v -183.531204 -102.510391 -0.847010 +v -183.859329 -102.729141 -1.878260 +v -181.421829 -104.291641 -1.003260 +v -183.531204 -102.510391 -0.847010 +v -181.421829 -104.291641 -1.003260 +v -183.203079 -102.291641 0.184240 +v -183.531204 -102.510391 -0.847010 +v -183.531204 -102.510391 -0.847010 +v -183.203079 -102.291641 0.184240 +v -184.585892 -101.619766 -0.768885 +v -183.203079 -102.291641 0.184240 +v -184.246048 -101.455704 0.223302 +v -184.585892 -101.619766 -0.768885 +v -184.585892 -101.619766 -0.768885 +v -184.246048 -101.455704 0.223302 +v -185.640579 -100.729141 -0.690760 +v -184.246048 -101.455704 0.223302 +v -185.289017 -100.619766 0.262365 +v -185.640579 -100.729141 -0.690760 +v -185.640579 -100.729141 -0.690760 +v -185.289017 -100.619766 0.262365 +v -186.331985 -99.783829 0.301427 +v -185.289017 -100.619766 0.262365 +v -185.968704 -99.729141 1.215490 +v -186.331985 -99.783829 0.301427 +v -186.331985 -99.783829 0.301427 +v -185.968704 -99.729141 1.215490 +v -186.999954 -98.947891 1.215490 +v -181.421829 -104.291641 -1.003260 +v -181.117142 -103.963516 0.106115 +v -183.203079 -102.291641 0.184240 +v -181.117142 -103.963516 0.106115 +v -182.874954 -102.072891 1.215490 +v -183.203079 -102.291641 0.184240 +v -183.203079 -102.291641 0.184240 +v -182.874954 -102.072891 1.215490 +v -184.246048 -101.455704 0.223302 +v -182.874954 -102.072891 1.215490 +v -183.906204 -101.291641 1.215490 +v -184.246048 -101.455704 0.223302 +v -184.246048 -101.455704 0.223302 +v -183.906204 -101.291641 1.215490 +v -185.289017 -100.619766 0.262365 +v -183.906204 -101.291641 1.215490 +v -184.937454 -100.510391 1.215490 +v -185.289017 -100.619766 0.262365 +v -185.289017 -100.619766 0.262365 +v -184.937454 -100.510391 1.215490 +v -185.968704 -99.729141 1.215490 +v -178.749954 -105.197891 1.215490 +v -179.312454 -106.072891 -1.159510 +v -176.687454 -106.760391 1.215490 +v -179.312454 -106.072891 -1.159510 +v -177.203094 -107.854141 -1.315760 +v -176.687454 -106.760391 1.215490 +v -176.687454 -106.760391 1.215490 +v -177.203094 -107.854141 -1.315760 +v -174.859344 -108.979141 -0.128260 +v -177.203094 -107.854141 -1.315760 +v -175.093719 -109.635391 -1.472010 +v -174.859344 -108.979141 -0.128260 +v -174.859344 -108.979141 -0.128260 +v -175.093719 -109.635391 -1.472010 +v -170.874969 -113.197891 -1.784510 +v -188.499954 -98.947891 -2.284510 +v -187.421829 -99.947891 -2.440760 +v -186.695267 -99.838516 -0.612635 +v -187.421829 -99.947891 -2.440760 +v -186.343704 -100.947891 -2.597010 +v -186.695267 -99.838516 -0.612635 +v -186.695267 -99.838516 -0.612635 +v -186.343704 -100.947891 -2.597010 +v -185.992142 -100.838516 -1.643885 +v -186.343704 -100.947891 -2.597010 +v -184.187454 -102.947891 -2.909509 +v -185.992142 -100.838516 -1.643885 +v -185.992142 -100.838516 -1.643885 +v -184.187454 -102.947891 -2.909509 +v -183.859329 -102.729141 -1.878260 +v -184.187454 -102.947891 -2.909509 +v -182.031204 -104.947891 -3.222010 +v -183.859329 -102.729141 -1.878260 +v -183.859329 -102.729141 -1.878260 +v -182.031204 -104.947891 -3.222010 +v -181.421829 -104.291641 -1.003260 +v -182.031204 -104.947891 -3.222010 +v -179.312454 -106.072891 -1.159510 +v -181.421829 -104.291641 -1.003260 +v -181.421829 -104.291641 -1.003260 +v -179.312454 -106.072891 -1.159510 +v -181.117142 -103.963516 0.106115 +v -179.312454 -106.072891 -1.159510 +v -178.749954 -105.197891 1.215490 +v -181.117142 -103.963516 0.106115 +v -181.117142 -103.963516 0.106115 +v -178.749954 -105.197891 1.215490 +v -180.812454 -103.635391 1.215490 +v -170.874969 -113.197891 -1.784510 +v -175.093719 -109.635391 -1.472010 +v -171.062469 -114.072891 -3.284510 +v -175.093719 -109.635391 -1.472010 +v -175.328094 -110.291641 -2.815760 +v -171.062469 -114.072891 -3.284510 +v -171.062469 -114.072891 -3.284510 +v -175.328094 -110.291641 -2.815760 +v -171.249969 -114.947891 -4.784511 +v -175.328094 -110.291641 -2.815760 +v -175.562469 -110.947891 -4.159510 +v -171.249969 -114.947891 -4.784511 +v -171.249969 -114.947891 -4.784511 +v -175.562469 -110.947891 -4.159510 +v -171.624969 -116.697891 -7.784509 +v -189.999954 -98.947891 -5.784510 +v -187.749954 -101.385391 -6.409509 +v -189.624954 -98.947891 -4.909510 +v -187.749954 -101.385391 -6.409509 +v -187.398392 -101.276016 -5.456384 +v -189.624954 -98.947891 -4.909510 +v -189.624954 -98.947891 -4.909510 +v -187.398392 -101.276016 -5.456384 +v -189.249954 -98.947891 -4.034510 +v -184.843704 -103.385391 -4.972009 +v -186.695267 -101.057266 -3.550135 +v -187.046829 -101.166641 -4.503259 +v -186.695267 -101.057266 -3.550135 +v -187.785110 -100.002579 -3.354823 +v -187.046829 -101.166641 -4.503259 +v -176.499969 -113.572891 -9.534510 +v -176.031219 -112.260391 -6.847010 +v -178.749969 -111.135391 -8.909509 +v -176.031219 -112.260391 -6.847010 +v -178.234344 -110.041641 -6.378260 +v -178.749969 -111.135391 -8.909509 +v -178.749969 -111.135391 -8.909509 +v -178.234344 -110.041641 -6.378260 +v -180.999969 -108.697891 -8.284510 +v -178.234344 -110.041641 -6.378260 +v -180.437469 -107.822891 -5.909510 +v -180.999969 -108.697891 -8.284510 +v -180.999969 -108.697891 -8.284510 +v -180.437469 -107.822891 -5.909510 +v -183.249954 -106.260391 -7.659509 +v -180.437469 -107.822891 -5.909510 +v -182.640579 -105.604141 -5.440759 +v -183.249954 -106.260391 -7.659509 +v -183.249954 -106.260391 -7.659509 +v -182.640579 -105.604141 -5.440759 +v -185.499954 -103.822891 -7.034509 +v -182.640579 -105.604141 -5.440759 +v -184.843704 -103.385391 -4.972009 +v -185.499954 -103.822891 -7.034509 +v -185.499954 -103.822891 -7.034509 +v -184.843704 -103.385391 -4.972009 +v -187.398392 -101.276016 -5.456384 +v -184.843704 -103.385391 -4.972009 +v -187.046829 -101.166641 -4.503259 +v -187.398392 -101.276016 -5.456384 +v -187.398392 -101.276016 -5.456384 +v -187.046829 -101.166641 -4.503259 +v -189.249954 -98.947891 -4.034510 +v -187.046829 -101.166641 -4.503259 +v -187.785110 -100.002579 -3.354823 +v -189.249954 -98.947891 -4.034510 +v -189.249954 -98.947891 -4.034510 +v -187.785110 -100.002579 -3.354823 +v -188.874954 -98.947891 -3.159510 +v -153.999969 -123.947891 1.215489 +v -162.249969 -117.697891 1.215490 +v -153.999969 -127.447891 -3.034511 +v -162.249969 -117.697891 1.215490 +v -162.437469 -120.322891 -2.409510 +v -153.999969 -127.447891 -3.034511 +v -153.999969 -127.447891 -3.034511 +v -162.437469 -120.322891 -2.409510 +v -153.999969 -130.947891 -7.284511 +v -162.437469 -120.322891 -2.409510 +v -162.624969 -122.947891 -6.034510 +v -153.999969 -130.947891 -7.284511 +v -153.999969 -130.947891 -7.284511 +v -162.624969 -122.947891 -6.034510 +v -153.999969 -134.447891 -11.534511 +v -162.624969 -122.947891 -6.034510 +v -162.812469 -125.572891 -9.659510 +v -153.999969 -134.447891 -11.534511 +v -153.999969 -134.447891 -11.534511 +v -162.812469 -125.572891 -9.659510 +v -153.999969 -137.947891 -15.784510 +v -162.812469 -125.572891 -9.659510 +v -162.999969 -128.197891 -13.284510 +v -153.999969 -137.947891 -15.784510 +v -171.624969 -116.697891 -7.784509 +v -167.218719 -121.135391 -8.722011 +v -171.249969 -114.947891 -4.784511 +v -167.218719 -121.135391 -8.722011 +v -166.937469 -118.947884 -5.409511 +v -171.249969 -114.947891 -4.784511 +v -171.249969 -114.947891 -4.784511 +v -166.937469 -118.947884 -5.409511 +v -171.062469 -114.072891 -3.284510 +v -166.937469 -118.947884 -5.409511 +v -166.656219 -116.760391 -2.097010 +v -171.062469 -114.072891 -3.284510 +v -171.062469 -114.072891 -3.284510 +v -166.656219 -116.760391 -2.097010 +v -170.874969 -113.197891 -1.784510 +v -166.656219 -116.760391 -2.097010 +v -170.687469 -112.322891 -0.284510 +v -170.874969 -113.197891 -1.784510 +v -170.874969 -113.197891 -1.784510 +v -170.687469 -112.322891 -0.284510 +v -174.859344 -108.979141 -0.128260 +v -170.687469 -112.322891 -0.284510 +v -174.624969 -108.322891 1.215490 +v -174.859344 -108.979141 -0.128260 +v -174.859344 -108.979141 -0.128260 +v -174.624969 -108.322891 1.215490 +v -176.687454 -106.760391 1.215490 +v -188.499954 -98.947891 -2.284510 +v -188.874954 -98.947891 -3.159510 +v -187.421829 -99.947891 -2.440760 +v -188.874954 -98.947891 -3.159510 +v -187.785110 -100.002579 -3.354823 +v -187.421829 -99.947891 -2.440760 +v -187.421829 -99.947891 -2.440760 +v -187.785110 -100.002579 -3.354823 +v -186.343704 -100.947891 -2.597010 +v -187.785110 -100.002579 -3.354823 +v -186.695267 -101.057266 -3.550135 +v -186.343704 -100.947891 -2.597010 +v -186.343704 -100.947891 -2.597010 +v -186.695267 -101.057266 -3.550135 +v -184.187454 -102.947891 -2.909509 +v -186.695267 -101.057266 -3.550135 +v -184.843704 -103.385391 -4.972009 +v -184.187454 -102.947891 -2.909509 +v -184.187454 -102.947891 -2.909509 +v -184.843704 -103.385391 -4.972009 +v -182.031204 -104.947891 -3.222010 +v -184.843704 -103.385391 -4.972009 +v -182.640579 -105.604141 -5.440759 +v -182.031204 -104.947891 -3.222010 +v -182.031204 -104.947891 -3.222010 +v -182.640579 -105.604141 -5.440759 +v -179.874954 -106.947891 -3.534510 +v -182.640579 -105.604141 -5.440759 +v -180.437469 -107.822891 -5.909510 +v -179.874954 -106.947891 -3.534510 +v -179.874954 -106.947891 -3.534510 +v -180.437469 -107.822891 -5.909510 +v -177.718719 -108.947891 -3.847010 +v -180.437469 -107.822891 -5.909510 +v -178.234344 -110.041641 -6.378260 +v -177.718719 -108.947891 -3.847010 +v -177.718719 -108.947891 -3.847010 +v -178.234344 -110.041641 -6.378260 +v -175.562469 -110.947891 -4.159510 +v -178.234344 -110.041641 -6.378260 +v -176.031219 -112.260391 -6.847010 +v -175.562469 -110.947891 -4.159510 +v -175.562469 -110.947891 -4.159510 +v -176.031219 -112.260391 -6.847010 +v -171.624969 -116.697891 -7.784509 +v -176.031219 -112.260391 -6.847010 +v -171.999969 -118.447891 -10.784510 +v -171.624969 -116.697891 -7.784509 +v -171.624969 -116.697891 -7.784509 +v -171.999969 -118.447891 -10.784510 +v -167.499969 -123.322891 -12.034510 +v -161.999939 120.052109 -0.784528 +v -186.999939 120.052109 1.215474 +v -161.999954 -98.947891 -0.784512 +v -186.999939 120.052109 1.215474 +v -186.999954 -98.947891 1.215490 +v -161.999954 -98.947891 -0.784512 +v 163.000031 -128.197922 -13.284538 +v 154.000031 -137.947922 -15.784536 +v 154.000031 -137.947922 -20.784538 +v 185.500046 -103.822922 -7.034543 +v 190.000046 -98.947922 -10.784542 +v 187.750046 -101.385422 -6.409543 +v 190.000046 -98.947922 -10.784542 +v 190.000046 -98.947922 -5.784543 +v 187.750046 -101.385422 -6.409543 +v 185.500046 -103.822922 -7.034543 +v 183.250046 -106.260422 -7.659543 +v 190.000046 -98.947922 -10.784542 +v 183.250046 -106.260422 -7.659543 +v 181.000031 -108.697922 -8.284542 +v 190.000046 -98.947922 -10.784542 +v 190.000046 -98.947922 -10.784542 +v 181.000031 -108.697922 -8.284542 +v 178.750031 -111.135422 -8.909541 +v 178.750031 -111.135422 -8.909541 +v 176.500031 -113.572922 -9.534540 +v 190.000046 -98.947922 -10.784542 +v 176.500031 -113.572922 -9.534540 +v 172.000031 -118.447922 -10.784540 +v 190.000046 -98.947922 -10.784542 +v 190.000046 -98.947922 -10.784542 +v 172.000031 -118.447922 -10.784540 +v 154.000031 -137.947922 -20.784538 +v 172.000031 -118.447922 -10.784540 +v 167.500031 -123.322922 -12.034538 +v 154.000031 -137.947922 -20.784538 +v 154.000031 -137.947922 -20.784538 +v 167.500031 -123.322922 -12.034538 +v 163.000031 -128.197922 -13.284538 +v 154.000031 -137.947922 -20.784538 +v 154.000031 -137.947922 -15.784536 +v -153.999969 -137.947891 -20.784512 +v 154.000031 -137.947922 -15.784536 +v -153.999969 -137.947891 -15.784510 +v -153.999969 -137.947891 -20.784512 +v 103.357063 -106.447914 -3.284535 +v 154.783508 -106.447922 -3.284539 +v 154.148270 -107.094475 -3.284539 +v -154.148178 -107.094444 -3.284512 +v -154.783401 -106.447891 -3.284512 +v -103.356987 -106.447899 -3.284516 +v -103.356987 -106.447899 -3.284516 +v -51.678474 -106.447899 -3.284521 +v -154.148178 -107.094444 -3.284512 +v -51.678474 -106.447899 -3.284521 +v 0.000038 -106.447906 -3.284526 +v -154.148178 -107.094444 -3.284512 +v -154.148178 -107.094444 -3.284512 +v 0.000038 -106.447906 -3.284526 +v 154.148270 -107.094475 -3.284539 +v 0.000038 -106.447906 -3.284526 +v 51.678551 -106.447914 -3.284530 +v 154.148270 -107.094475 -3.284539 +v 154.148270 -107.094475 -3.284539 +v 51.678551 -106.447914 -3.284530 +v 103.357063 -106.447914 -3.284535 +v 190.000061 120.052078 -5.784559 +v 190.000046 -98.947922 -5.784543 +v 190.000061 120.052078 -10.784559 +v 190.000046 -98.947922 -5.784543 +v 190.000046 -98.947922 -10.784542 +v 190.000061 120.052078 -10.784559 +v 184.728592 -99.681305 -4.451085 +v 185.019821 -99.815674 -5.318852 +v 182.900436 -101.982193 -5.844326 +v 187.500046 -97.970467 -6.362233 +v 185.703247 -99.916985 -6.898839 +v 187.500046 -97.942841 -6.297688 +v 185.703247 -99.916985 -6.898839 +v 185.019821 -99.815674 -5.318852 +v 187.500046 -97.942841 -6.297688 +v 187.500046 -97.942841 -6.297688 +v 185.019821 -99.815674 -5.318852 +v 187.069260 -97.923393 -5.292500 +v 187.069260 -97.923393 -5.292500 +v 185.019821 -99.815674 -5.318852 +v 186.878067 -97.914223 -4.846409 +v 185.019821 -99.815674 -5.318852 +v 184.728592 -99.681305 -4.451085 +v 186.878067 -97.914223 -4.846409 +v 186.878067 -97.914223 -4.846409 +v 184.728592 -99.681305 -4.451085 +v 186.533676 -97.896820 -4.042836 +v 183.863708 -99.272209 -1.845417 +v 183.941330 -99.077614 -1.537228 +v 184.883530 -98.375237 -1.707150 +v 183.941330 -99.077614 -1.537228 +v 185.409515 -97.830597 -1.419774 +v 184.883530 -98.375237 -1.707150 +v 179.779572 -102.858269 -2.360446 +v 181.658722 -100.920135 -1.527462 +v 181.822647 -101.065712 -2.109654 +v 181.658722 -100.920135 -1.527462 +v 183.762833 -99.222603 -1.536374 +v 181.822647 -101.065712 -2.109654 +v 177.501785 -104.225304 -1.514613 +v 178.799072 -103.199463 -1.518070 +v 179.779572 -102.858269 -2.360446 +v 178.799072 -103.199463 -1.518070 +v 179.572266 -102.585831 -1.520352 +v 179.779572 -102.858269 -2.360446 +v 179.779572 -102.858269 -2.360446 +v 179.572266 -102.585831 -1.520352 +v 181.658722 -100.920135 -1.527462 +v 173.639450 -108.228867 -3.056727 +v 175.440918 -105.846680 -1.509951 +v 175.687851 -106.439857 -2.832133 +v 175.440918 -105.846680 -1.509951 +v 177.501785 -104.225304 -1.514613 +v 175.687851 -106.439857 -2.832133 +v 175.687851 -106.439857 -2.832133 +v 177.501785 -104.225304 -1.514613 +v 177.734619 -104.649673 -2.600573 +v 177.501785 -104.225304 -1.514613 +v 179.779572 -102.858269 -2.360446 +v 177.734619 -104.649673 -2.600573 +v 169.538467 -111.803581 -3.489771 +v 171.129150 -109.213753 -1.502726 +v 173.639450 -108.228867 -3.056727 +v 171.129150 -109.213753 -1.502726 +v 173.391068 -107.451080 -1.506144 +v 173.639450 -108.228867 -3.056727 +v 173.639450 -108.228867 -3.056727 +v 173.391068 -107.451080 -1.506144 +v 175.440918 -105.846680 -1.509951 +v 161.323425 -118.942223 -4.312348 +v 165.245132 -113.771378 -1.496660 +v 165.432800 -115.374489 -3.906801 +v 165.245132 -113.771378 -1.496660 +v 169.315887 -110.622009 -1.500467 +v 165.432800 -115.374489 -3.906801 +v 165.432800 -115.374489 -3.906801 +v 169.315887 -110.622009 -1.500467 +v 169.538467 -111.803581 -3.489771 +v 169.315887 -110.622009 -1.500467 +v 169.653015 -110.360474 -1.500857 +v 169.538467 -111.803581 -3.489771 +v 169.538467 -111.803581 -3.489771 +v 169.653015 -110.360474 -1.500857 +v 171.129150 -109.213753 -1.502726 +v 154.111572 -122.329712 -1.492157 +v 160.458237 -117.458817 -1.493874 +v 161.323425 -118.942223 -4.312348 +v 160.458237 -117.458817 -1.493874 +v 161.198364 -116.889587 -1.494202 +v 161.323425 -118.942223 -4.312348 +v 161.323425 -118.942223 -4.312348 +v 161.198364 -116.889587 -1.494202 +v 165.245132 -113.771378 -1.496660 +v 161.464783 -121.283974 -7.525170 +v 153.282928 -128.977997 -8.825110 +v 153.299515 -125.894913 -5.081375 +v 185.703247 -99.916985 -6.898839 +v 185.567154 -100.064423 -6.939313 +v 185.019821 -99.815674 -5.318852 +v 185.567154 -100.064423 -6.939313 +v 183.406708 -102.404900 -7.578969 +v 185.019821 -99.815674 -5.318852 +v 185.019821 -99.815674 -5.318852 +v 183.406708 -102.404900 -7.578969 +v 182.900436 -101.982193 -5.844326 +v 183.406708 -102.404900 -7.578969 +v 181.245865 -104.745819 -8.213993 +v 182.900436 -101.982193 -5.844326 +v 182.900436 -101.982193 -5.844326 +v 181.245865 -104.745819 -8.213993 +v 180.778763 -104.148651 -6.359241 +v 181.245865 -104.745819 -8.213993 +v 179.084702 -107.087090 -8.845135 +v 180.778763 -104.148651 -6.359241 +v 180.778763 -104.148651 -6.359241 +v 179.084702 -107.087090 -8.845135 +v 178.654938 -106.314781 -6.865558 +v 179.084702 -107.087090 -8.845135 +v 176.923264 -109.428635 -9.472987 +v 178.654938 -106.314781 -6.865558 +v 178.654938 -106.314781 -6.865558 +v 176.923264 -109.428635 -9.472987 +v 176.529160 -108.480431 -7.364817 +v 176.923264 -109.428635 -9.472987 +v 174.863373 -111.660179 -10.068674 +v 176.529160 -108.480431 -7.364817 +v 176.529160 -108.480431 -7.364817 +v 174.863373 -111.660179 -10.068674 +v 174.401611 -110.645554 -7.858225 +v 174.863373 -111.660179 -10.068674 +v 170.243759 -116.664764 -11.396920 +v 174.401611 -110.645554 -7.858225 +v 153.252487 -135.071976 -16.224936 +v 153.267151 -132.061386 -12.569236 +v 161.747787 -125.868729 -13.819588 +v 153.267151 -132.061386 -12.569236 +v 161.608215 -123.625000 -10.738396 +v 161.747787 -125.868729 -13.819588 +v 161.747787 -125.868729 -13.819588 +v 161.608215 -123.625000 -10.738396 +v 166.091217 -121.163330 -12.583727 +v 161.608215 -123.625000 -10.738396 +v 165.877136 -119.300522 -9.789964 +v 166.091217 -121.163330 -12.583727 +v 166.091217 -121.163330 -12.583727 +v 165.877136 -119.300522 -9.789964 +v 170.141937 -114.974113 -8.831147 +v 165.877136 -119.300522 -9.789964 +v 169.838745 -113.389473 -6.160280 +v 170.141937 -114.974113 -8.831147 +v 170.141937 -114.974113 -8.831147 +v 169.838745 -113.389473 -6.160280 +v 174.018784 -109.438065 -5.457362 +v 153.316559 -122.885269 -1.426796 +v 154.111572 -122.329712 -1.492157 +v 153.299515 -125.894913 -5.081375 +v 154.111572 -122.329712 -1.492157 +v 161.323425 -118.942223 -4.312348 +v 153.299515 -125.894913 -5.081375 +v 153.299515 -125.894913 -5.081375 +v 161.323425 -118.942223 -4.312348 +v 161.464783 -121.283974 -7.525170 +v 161.323425 -118.942223 -4.312348 +v 165.432800 -115.374489 -3.906801 +v 161.464783 -121.283974 -7.525170 +v 161.464783 -121.283974 -7.525170 +v 165.432800 -115.374489 -3.906801 +v 165.653732 -117.337975 -6.848184 +v 165.432800 -115.374489 -3.906801 +v 169.538467 -111.803581 -3.489771 +v 165.653732 -117.337975 -6.848184 +v 184.438721 -99.545975 -3.582959 +v 184.150391 -99.409630 -2.714413 +v 185.477844 -98.556107 -3.380337 +v 184.150391 -99.409630 -2.714413 +v 185.179779 -98.466270 -2.544049 +v 185.477844 -98.556107 -3.380337 +v 184.438721 -99.545975 -3.582959 +v 182.358841 -101.525650 -3.977444 +v 184.150391 -99.409630 -2.714413 +v 182.358841 -101.525650 -3.977444 +v 183.863708 -99.272209 -1.845417 +v 184.150391 -99.409630 -2.714413 +v 184.150391 -99.409630 -2.714413 +v 183.863708 -99.272209 -1.845417 +v 185.179779 -98.466270 -2.544049 +v 183.863708 -99.272209 -1.845417 +v 184.883530 -98.375237 -1.707150 +v 185.179779 -98.466270 -2.544049 +v 153.267151 -132.061386 -12.569236 +v 153.282928 -128.977997 -8.825110 +v 161.608215 -123.625000 -10.738396 +v 153.282928 -128.977997 -8.825110 +v 161.464783 -121.283974 -7.525170 +v 161.608215 -123.625000 -10.738396 +v 161.608215 -123.625000 -10.738396 +v 161.464783 -121.283974 -7.525170 +v 165.877136 -119.300522 -9.789964 +v 161.464783 -121.283974 -7.525170 +v 165.653732 -117.337975 -6.848184 +v 165.877136 -119.300522 -9.789964 +v 165.877136 -119.300522 -9.789964 +v 165.653732 -117.337975 -6.848184 +v 169.838745 -113.389473 -6.160280 +v 165.653732 -117.337975 -6.848184 +v 169.538467 -111.803581 -3.489771 +v 169.838745 -113.389473 -6.160280 +v 169.838745 -113.389473 -6.160280 +v 169.538467 -111.803581 -3.489771 +v 174.018784 -109.438065 -5.457362 +v 169.538467 -111.803581 -3.489771 +v 173.639450 -108.228867 -3.056727 +v 174.018784 -109.438065 -5.457362 +v 174.018784 -109.438065 -5.457362 +v 173.639450 -108.228867 -3.056727 +v 176.106552 -107.461143 -5.098422 +v 173.639450 -108.228867 -3.056727 +v 175.687851 -106.439857 -2.832133 +v 176.106552 -107.461143 -5.098422 +v 176.106552 -107.461143 -5.098422 +v 175.687851 -106.439857 -2.832133 +v 178.192627 -105.483414 -4.733119 +v 175.687851 -106.439857 -2.832133 +v 177.734619 -104.649673 -2.600573 +v 178.192627 -105.483414 -4.733119 +v 178.192627 -105.483414 -4.733119 +v 177.734619 -104.649673 -2.600573 +v 180.276779 -103.504875 -4.360049 +v 177.734619 -104.649673 -2.600573 +v 179.779572 -102.858269 -2.360446 +v 180.276779 -103.504875 -4.360049 +v 180.276779 -103.504875 -4.360049 +v 179.779572 -102.858269 -2.360446 +v 182.358841 -101.525650 -3.977444 +v 179.779572 -102.858269 -2.360446 +v 181.822647 -101.065712 -2.109654 +v 182.358841 -101.525650 -3.977444 +v 182.358841 -101.525650 -3.977444 +v 181.822647 -101.065712 -2.109654 +v 183.863708 -99.272209 -1.845417 +v 181.822647 -101.065712 -2.109654 +v 183.762833 -99.222603 -1.536374 +v 183.863708 -99.272209 -1.845417 +v 183.863708 -99.272209 -1.845417 +v 183.762833 -99.222603 -1.536374 +v 183.941330 -99.077614 -1.537228 +v 185.409515 -97.830597 -1.419774 +v 185.495880 -97.836273 -1.621319 +v 184.883530 -98.375237 -1.707150 +v 185.495880 -97.836273 -1.621319 +v 185.842590 -97.857986 -2.430272 +v 184.883530 -98.375237 -1.707150 +v 184.883530 -98.375237 -1.707150 +v 185.842590 -97.857986 -2.430272 +v 185.179779 -98.466270 -2.544049 +v 185.842590 -97.857986 -2.430272 +v 186.188522 -97.878120 -3.237454 +v 185.179779 -98.466270 -2.544049 +v 185.179779 -98.466270 -2.544049 +v 186.188522 -97.878120 -3.237454 +v 185.477844 -98.556107 -3.380337 +v 186.188522 -97.878120 -3.237454 +v 186.533676 -97.896820 -4.042836 +v 185.477844 -98.556107 -3.380337 +v 185.477844 -98.556107 -3.380337 +v 186.533676 -97.896820 -4.042836 +v 184.438721 -99.545975 -3.582959 +v 186.533676 -97.896820 -4.042836 +v 184.728592 -99.681305 -4.451085 +v 184.438721 -99.545975 -3.582959 +v 184.438721 -99.545975 -3.582959 +v 184.728592 -99.681305 -4.451085 +v 182.358841 -101.525650 -3.977444 +v 184.728592 -99.681305 -4.451085 +v 182.900436 -101.982193 -5.844326 +v 182.358841 -101.525650 -3.977444 +v 182.358841 -101.525650 -3.977444 +v 182.900436 -101.982193 -5.844326 +v 180.276779 -103.504875 -4.360049 +v 182.900436 -101.982193 -5.844326 +v 180.778763 -104.148651 -6.359241 +v 180.276779 -103.504875 -4.360049 +v 180.276779 -103.504875 -4.360049 +v 180.778763 -104.148651 -6.359241 +v 178.192627 -105.483414 -4.733119 +v 180.778763 -104.148651 -6.359241 +v 178.654938 -106.314781 -6.865558 +v 178.192627 -105.483414 -4.733119 +v 178.192627 -105.483414 -4.733119 +v 178.654938 -106.314781 -6.865558 +v 176.106552 -107.461143 -5.098422 +v 178.654938 -106.314781 -6.865558 +v 176.529160 -108.480431 -7.364817 +v 176.106552 -107.461143 -5.098422 +v 176.106552 -107.461143 -5.098422 +v 176.529160 -108.480431 -7.364817 +v 174.018784 -109.438065 -5.457362 +v 176.529160 -108.480431 -7.364817 +v 174.401611 -110.645554 -7.858225 +v 174.018784 -109.438065 -5.457362 +v 174.018784 -109.438065 -5.457362 +v 174.401611 -110.645554 -7.858225 +v 170.141937 -114.974113 -8.831147 +v 174.401611 -110.645554 -7.858225 +v 170.243759 -116.664764 -11.396920 +v 170.141937 -114.974113 -8.831147 +v 170.141937 -114.974113 -8.831147 +v 170.243759 -116.664764 -11.396920 +v 166.091217 -121.163330 -12.583727 +v -178.749969 -111.135391 -8.909509 +v -180.999969 -108.697891 -8.284510 +v -189.999954 -98.947891 -10.784510 +v -180.999969 -108.697891 -8.284510 +v -183.249954 -106.260391 -7.659509 +v -189.999954 -98.947891 -10.784510 +v -153.999969 -137.947891 -20.784512 +v -153.999969 -137.947891 -15.784510 +v -162.999969 -128.197891 -13.284510 +v -183.249954 -106.260391 -7.659509 +v -185.499954 -103.822891 -7.034509 +v -189.999954 -98.947891 -10.784510 +v -185.499954 -103.822891 -7.034509 +v -187.749954 -101.385391 -6.409509 +v -189.999954 -98.947891 -10.784510 +v -189.999954 -98.947891 -10.784510 +v -187.749954 -101.385391 -6.409509 +v -189.999954 -98.947891 -5.784510 +v -162.999969 -128.197891 -13.284510 +v -167.499969 -123.322891 -12.034510 +v -153.999969 -137.947891 -20.784512 +v -167.499969 -123.322891 -12.034510 +v -171.999969 -118.447891 -10.784510 +v -153.999969 -137.947891 -20.784512 +v -153.999969 -137.947891 -20.784512 +v -171.999969 -118.447891 -10.784510 +v -189.999954 -98.947891 -10.784510 +v -171.999969 -118.447891 -10.784510 +v -176.499969 -113.572891 -9.534510 +v -189.999954 -98.947891 -10.784510 +v -189.999954 -98.947891 -10.784510 +v -176.499969 -113.572891 -9.534510 +v -178.749969 -111.135391 -8.909509 +v -189.999954 -98.947891 -5.784510 +v -189.999939 120.052109 -5.784526 +v -189.999954 -98.947891 -10.784510 +v -189.999939 120.052109 -5.784526 +v -189.999939 120.052109 -10.784527 +v -189.999954 -98.947891 -10.784510 +v -153.999969 -134.262085 -20.784512 +v -153.999969 -137.947891 -20.784512 +v -187.499954 -97.970436 -11.478952 +v -153.999969 -137.947891 -20.784512 +v -189.999954 -98.947891 -10.784510 +v -187.499954 -97.970436 -11.478952 +v -187.499954 -97.970436 -11.478952 +v -189.999954 -98.947891 -10.784510 +v -187.499939 120.052109 -11.478970 +v -189.999954 -98.947891 -10.784510 +v -189.999939 120.052109 -10.784527 +v -187.499939 120.052109 -11.478970 +v 187.500061 120.052078 -6.297704 +v 187.500046 -97.942841 -6.297688 +v 187.069260 -97.923393 -5.292500 +v 187.069260 -97.923393 -5.292500 +v 186.878067 -97.914223 -4.846409 +v 187.500061 120.052078 -6.297704 +v 186.878067 -97.914223 -4.846409 +v 186.533676 -97.896820 -4.042836 +v 187.500061 120.052078 -6.297704 +v 187.500061 120.052078 -6.297704 +v 186.533676 -97.896820 -4.042836 +v 186.188522 -97.878120 -3.237454 +v 185.409515 -97.830597 -1.419774 +v 185.409531 120.052078 -1.419790 +v 185.495880 -97.836273 -1.621319 +v 185.409531 120.052078 -1.419790 +v 187.500061 120.052078 -6.297704 +v 185.495880 -97.836273 -1.621319 +v 185.495880 -97.836273 -1.621319 +v 187.500061 120.052078 -6.297704 +v 185.842590 -97.857986 -2.430272 +v 187.500061 120.052078 -6.297704 +v 186.188522 -97.878120 -3.237454 +v 185.842590 -97.857986 -2.430272 +v -164.249954 -107.197891 0.215489 +v -170.499969 -111.447891 1.215489 +v -166.374969 -114.572891 1.215490 +v -164.249954 -107.197891 0.215489 +v -166.374969 -114.572891 1.215490 +v -159.124969 -111.322891 0.215488 +v -166.374969 -114.572891 1.215490 +v -162.249969 -117.697891 1.215490 +v -159.124969 -111.322891 0.215488 +v -162.249969 -117.697891 1.215490 +v -153.999969 -123.947891 1.215489 +v -159.124969 -111.322891 0.215488 +v -159.124969 -111.322891 0.215488 +v -153.999969 -123.947891 1.215489 +v -153.999969 -115.447891 0.215488 +v -186.999954 -98.947891 1.215490 +v -185.968704 -99.729141 1.215490 +v -161.999954 -98.947891 -0.784512 +v -185.968704 -99.729141 1.215490 +v -184.937454 -100.510391 1.215490 +v -161.999954 -98.947891 -0.784512 +v -161.999954 -98.947891 -0.784512 +v -184.937454 -100.510391 1.215490 +v -183.906204 -101.291641 1.215490 +v -183.906204 -101.291641 1.215490 +v -182.874954 -102.072891 1.215490 +v -161.999954 -98.947891 -0.784512 +v -182.874954 -102.072891 1.215490 +v -180.812454 -103.635391 1.215490 +v -161.999954 -98.947891 -0.784512 +v -161.999954 -98.947891 -0.784512 +v -180.812454 -103.635391 1.215490 +v -159.999954 -100.947891 -0.784512 +v -178.749954 -105.197891 1.215490 +v -176.687454 -106.760391 1.215490 +v -164.249954 -107.197891 0.215489 +v -176.687454 -106.760391 1.215490 +v -174.624969 -108.322891 1.215490 +v -164.249954 -107.197891 0.215489 +v -164.249954 -107.197891 0.215489 +v -174.624969 -108.322891 1.215490 +v -170.499969 -111.447891 1.215489 +v -180.812454 -103.635391 1.215490 +v -178.749954 -105.197891 1.215490 +v -159.999954 -100.947891 -0.784512 +v -178.749954 -105.197891 1.215490 +v -164.249954 -107.197891 0.215489 +v -159.999954 -100.947891 -0.784512 +v -159.999954 -100.947891 -0.784512 +v -164.249954 -107.197891 0.215489 +v -157.999954 -102.947891 -0.784512 +v -164.249954 -107.197891 0.215489 +v -159.124969 -111.322891 0.215488 +v -157.999954 -102.947891 -0.784512 +v -157.999954 -102.947891 -0.784512 +v -159.124969 -111.322891 0.215488 +v -155.999954 -104.947891 -0.784512 +v -159.124969 -111.322891 0.215488 +v -153.999969 -115.447891 0.215488 +v -155.999954 -104.947891 -0.784512 +v -155.999954 -104.947891 -0.784512 +v -153.999969 -115.447891 0.215488 +v -153.999954 -106.947891 -0.784512 +v -161.499954 -99.983421 -3.257260 +v -161.499954 -99.983421 -4.284512 +v -158.241531 -103.241867 -3.256069 +v -161.499954 -99.983421 -4.284512 +v -155.035477 -106.447891 -4.284513 +v -158.241531 -103.241867 -3.256069 +v -158.241531 -103.241867 -3.256069 +v -155.035477 -106.447891 -4.284513 +v -155.035477 -106.447891 -3.255711 +v 187.500046 -97.942841 -6.297688 +v 187.500061 120.052078 -6.297704 +v 187.500046 -97.970467 -6.362233 +v 187.500061 120.052078 -6.297704 +v 187.500061 120.052078 -11.479002 +v 187.500046 -97.970467 -6.362233 +v 187.500046 -97.970467 -6.362233 +v 187.500061 120.052078 -11.479002 +v 187.500046 -97.970467 -11.478985 +v -176.106476 -107.461113 -5.098391 +v -178.192520 -105.483383 -4.733088 +v -177.734512 -104.649643 -2.600542 +v -187.069168 -97.923363 -5.292468 +v -186.877975 -97.914192 -4.846377 +v -185.019730 -99.815643 -5.318820 +v -154.111511 -122.329681 -1.492130 +v -153.316498 -122.885239 -1.426769 +v -153.299469 -125.894882 -5.081348 +v -161.323364 -118.942192 -4.312319 +v -153.299469 -125.894882 -5.081348 +v -153.282867 -128.977966 -8.825084 +v -154.111511 -122.329681 -1.492130 +v -153.299469 -125.894882 -5.081348 +v -160.458160 -117.458786 -1.493846 +v -153.299469 -125.894882 -5.081348 +v -161.323364 -118.942192 -4.312319 +v -160.458160 -117.458786 -1.493846 +v -160.458160 -117.458786 -1.493846 +v -161.323364 -118.942192 -4.312319 +v -161.198303 -116.889557 -1.494174 +v -161.323364 -118.942192 -4.312319 +v -165.432739 -115.374458 -3.906771 +v -161.198303 -116.889557 -1.494174 +v -161.198303 -116.889557 -1.494174 +v -165.432739 -115.374458 -3.906771 +v -165.245087 -113.771347 -1.496631 +v -173.391022 -107.451050 -1.506114 +v -171.129089 -109.213722 -1.502696 +v -169.538422 -111.803551 -3.489741 +v -171.129089 -109.213722 -1.502696 +v -169.652954 -110.360443 -1.500827 +v -169.538422 -111.803551 -3.489741 +v -169.652954 -110.360443 -1.500827 +v -169.315826 -110.621979 -1.500438 +v -169.538422 -111.803551 -3.489741 +v -169.538422 -111.803551 -3.489741 +v -169.315826 -110.621979 -1.500438 +v -165.245087 -113.771347 -1.496631 +v -169.538422 -111.803551 -3.489741 +v -173.639374 -108.228836 -3.056697 +v -173.391022 -107.451050 -1.506114 +v -173.639374 -108.228836 -3.056697 +v -175.687759 -106.439827 -2.832102 +v -173.391022 -107.451050 -1.506114 +v -173.391022 -107.451050 -1.506114 +v -175.687759 -106.439827 -2.832102 +v -175.440811 -105.846649 -1.509921 +v -183.941238 -99.077583 -1.537196 +v -183.762741 -99.222572 -1.536342 +v -183.863602 -99.272179 -1.845385 +v -183.762741 -99.222572 -1.536342 +v -181.658646 -100.920105 -1.527430 +v -183.863602 -99.272179 -1.845385 +v -183.863602 -99.272179 -1.845385 +v -181.658646 -100.920105 -1.527430 +v -181.822556 -101.065681 -2.109622 +v -181.658646 -100.920105 -1.527430 +v -179.572159 -102.585800 -1.520319 +v -181.822556 -101.065681 -2.109622 +v -181.822556 -101.065681 -2.109622 +v -179.572159 -102.585800 -1.520319 +v -179.779495 -102.858238 -2.360415 +v -179.572159 -102.585800 -1.520319 +v -178.798965 -103.199432 -1.518039 +v -179.779495 -102.858238 -2.360415 +v -179.779495 -102.858238 -2.360415 +v -178.798965 -103.199432 -1.518039 +v -177.734512 -104.649643 -2.600542 +v -178.798965 -103.199432 -1.518039 +v -177.501694 -104.225273 -1.514582 +v -177.734512 -104.649643 -2.600542 +v -185.409439 -97.830566 -1.419741 +v -183.941238 -99.077583 -1.537196 +v -184.883438 -98.375206 -1.707118 +v -183.941238 -99.077583 -1.537196 +v -183.863602 -99.272179 -1.845385 +v -184.883438 -98.375206 -1.707118 +v -184.883438 -98.375206 -1.707118 +v -183.863602 -99.272179 -1.845385 +v -184.150284 -99.409599 -2.714381 +v -183.863602 -99.272179 -1.845385 +v -181.822556 -101.065681 -2.109622 +v -184.150284 -99.409599 -2.714381 +v -185.179703 -98.466240 -2.544017 +v -185.842484 -97.857956 -2.430239 +v -185.495804 -97.836243 -1.621287 +v -184.728500 -99.681274 -4.451052 +v -186.533585 -97.896790 -4.042803 +v -185.477737 -98.556076 -3.380305 +v -186.533585 -97.896790 -4.042803 +v -186.188431 -97.878090 -3.237422 +v -185.477737 -98.556076 -3.380305 +v -185.477737 -98.556076 -3.380305 +v -186.188431 -97.878090 -3.237422 +v -185.842484 -97.857956 -2.430239 +v -187.069168 -97.923363 -5.292468 +v -185.019730 -99.815643 -5.318820 +v -187.499954 -97.942810 -6.297656 +v -185.019730 -99.815643 -5.318820 +v -185.703140 -99.916954 -6.898806 +v -187.499954 -97.942810 -6.297656 +v -187.499954 -97.942810 -6.297656 +v -185.703140 -99.916954 -6.898806 +v -187.499954 -97.970436 -6.362200 +v -176.529083 -108.480400 -7.364787 +v -179.084610 -107.087059 -8.845102 +v -178.654861 -106.314751 -6.865526 +v -179.084610 -107.087059 -8.845102 +v -181.245773 -104.745789 -8.213961 +v -178.654861 -106.314751 -6.865526 +v -178.654861 -106.314751 -6.865526 +v -181.245773 -104.745789 -8.213961 +v -180.778671 -104.148621 -6.359210 +v -181.245773 -104.745789 -8.213961 +v -183.406631 -102.404869 -7.578935 +v -180.778671 -104.148621 -6.359210 +v -180.778671 -104.148621 -6.359210 +v -183.406631 -102.404869 -7.578935 +v -182.900345 -101.982162 -5.844294 +v -183.406631 -102.404869 -7.578935 +v -185.567062 -100.064392 -6.939280 +v -182.900345 -101.982162 -5.844294 +v -176.923187 -109.428604 -9.472957 +v -174.401550 -110.645523 -7.858195 +v -174.863312 -111.660149 -10.068644 +v -174.401550 -110.645523 -7.858195 +v -170.141876 -114.974083 -8.831119 +v -174.863312 -111.660149 -10.068644 +v -174.863312 -111.660149 -10.068644 +v -170.141876 -114.974083 -8.831119 +v -170.243683 -116.664734 -11.396892 +v -170.141876 -114.974083 -8.831119 +v -165.877075 -119.300491 -9.789935 +v -170.243683 -116.664734 -11.396892 +v -170.243683 -116.664734 -11.396892 +v -165.877075 -119.300491 -9.789935 +v -166.091156 -121.163300 -12.583697 +v -165.877075 -119.300491 -9.789935 +v -161.608154 -123.624969 -10.738367 +v -166.091156 -121.163300 -12.583697 +v -166.091156 -121.163300 -12.583697 +v -161.608154 -123.624969 -10.738367 +v -161.747711 -125.868698 -13.819559 +v -161.608154 -123.624969 -10.738367 +v -153.252411 -135.071945 -16.224909 +v -161.747711 -125.868698 -13.819559 +v -169.838684 -113.389442 -6.160251 +v -165.432739 -115.374458 -3.906771 +v -165.653656 -117.337944 -6.848155 +v -165.432739 -115.374458 -3.906771 +v -161.323364 -118.942192 -4.312319 +v -165.653656 -117.337944 -6.848155 +v -165.653656 -117.337944 -6.848155 +v -161.323364 -118.942192 -4.312319 +v -161.464722 -121.283943 -7.525141 +v -161.323364 -118.942192 -4.312319 +v -153.282867 -128.977966 -8.825084 +v -161.464722 -121.283943 -7.525141 +v -161.464722 -121.283943 -7.525141 +v -153.282867 -128.977966 -8.825084 +v -153.267090 -132.061356 -12.569209 +v -185.842484 -97.857956 -2.430239 +v -185.179703 -98.466240 -2.544017 +v -185.477737 -98.556076 -3.380305 +v -185.179703 -98.466240 -2.544017 +v -184.438614 -99.545944 -3.582926 +v -185.477737 -98.556076 -3.380305 +v -185.477737 -98.556076 -3.380305 +v -184.438614 -99.545944 -3.582926 +v -184.728500 -99.681274 -4.451052 +v -177.734512 -104.649643 -2.600542 +v -178.192520 -105.483383 -4.733088 +v -179.779495 -102.858238 -2.360415 +v -178.192520 -105.483383 -4.733088 +v -180.276688 -103.504845 -4.360018 +v -179.779495 -102.858238 -2.360415 +v -179.779495 -102.858238 -2.360415 +v -180.276688 -103.504845 -4.360018 +v -181.822556 -101.065681 -2.109622 +v -180.276688 -103.504845 -4.360018 +v -182.358749 -101.525620 -3.977412 +v -181.822556 -101.065681 -2.109622 +v -181.822556 -101.065681 -2.109622 +v -182.358749 -101.525620 -3.977412 +v -184.150284 -99.409599 -2.714381 +v -165.245087 -113.771347 -1.496631 +v -165.432739 -115.374458 -3.906771 +v -169.538422 -111.803551 -3.489741 +v -165.432739 -115.374458 -3.906771 +v -169.838684 -113.389442 -6.160251 +v -169.538422 -111.803551 -3.489741 +v -169.538422 -111.803551 -3.489741 +v -169.838684 -113.389442 -6.160251 +v -173.639374 -108.228836 -3.056697 +v -169.838684 -113.389442 -6.160251 +v -174.018707 -109.438034 -5.457331 +v -173.639374 -108.228836 -3.056697 +v -173.639374 -108.228836 -3.056697 +v -174.018707 -109.438034 -5.457331 +v -175.687759 -106.439827 -2.832102 +v -186.877975 -97.914192 -4.846377 +v -186.533585 -97.896790 -4.042803 +v -185.019730 -99.815643 -5.318820 +v -186.533585 -97.896790 -4.042803 +v -184.728500 -99.681274 -4.451052 +v -185.019730 -99.815643 -5.318820 +v -185.019730 -99.815643 -5.318820 +v -184.728500 -99.681274 -4.451052 +v -182.358749 -101.525620 -3.977412 +v -184.728500 -99.681274 -4.451052 +v -184.438614 -99.545944 -3.582926 +v -182.358749 -101.525620 -3.977412 +v -182.358749 -101.525620 -3.977412 +v -184.438614 -99.545944 -3.582926 +v -184.150284 -99.409599 -2.714381 +v -184.438614 -99.545944 -3.582926 +v -185.179703 -98.466240 -2.544017 +v -184.150284 -99.409599 -2.714381 +v -184.150284 -99.409599 -2.714381 +v -185.179703 -98.466240 -2.544017 +v -184.883438 -98.375206 -1.707118 +v -185.179703 -98.466240 -2.544017 +v -185.495804 -97.836243 -1.621287 +v -184.883438 -98.375206 -1.707118 +v -184.883438 -98.375206 -1.707118 +v -185.495804 -97.836243 -1.621287 +v -185.409439 -97.830566 -1.419741 +v -176.106476 -107.461113 -5.098391 +v -174.401550 -110.645523 -7.858195 +v -176.529083 -108.480400 -7.364787 +v -174.401550 -110.645523 -7.858195 +v -176.923187 -109.428604 -9.472957 +v -176.529083 -108.480400 -7.364787 +v -176.529083 -108.480400 -7.364787 +v -176.923187 -109.428604 -9.472957 +v -179.084610 -107.087059 -8.845102 +v -176.106476 -107.461113 -5.098391 +v -176.529083 -108.480400 -7.364787 +v -178.192520 -105.483383 -4.733088 +v -176.529083 -108.480400 -7.364787 +v -178.654861 -106.314751 -6.865526 +v -178.192520 -105.483383 -4.733088 +v -178.192520 -105.483383 -4.733088 +v -178.654861 -106.314751 -6.865526 +v -180.276688 -103.504845 -4.360018 +v -178.654861 -106.314751 -6.865526 +v -180.778671 -104.148621 -6.359210 +v -180.276688 -103.504845 -4.360018 +v -180.276688 -103.504845 -4.360018 +v -180.778671 -104.148621 -6.359210 +v -182.358749 -101.525620 -3.977412 +v -180.778671 -104.148621 -6.359210 +v -182.900345 -101.982162 -5.844294 +v -182.358749 -101.525620 -3.977412 +v -182.358749 -101.525620 -3.977412 +v -182.900345 -101.982162 -5.844294 +v -185.019730 -99.815643 -5.318820 +v -182.900345 -101.982162 -5.844294 +v -185.567062 -100.064392 -6.939280 +v -185.019730 -99.815643 -5.318820 +v -185.019730 -99.815643 -5.318820 +v -185.567062 -100.064392 -6.939280 +v -185.703140 -99.916954 -6.898806 +v -177.501694 -104.225273 -1.514582 +v -175.440811 -105.846649 -1.509921 +v -177.734512 -104.649643 -2.600542 +v -175.440811 -105.846649 -1.509921 +v -175.687759 -106.439827 -2.832102 +v -177.734512 -104.649643 -2.600542 +v -177.734512 -104.649643 -2.600542 +v -175.687759 -106.439827 -2.832102 +v -176.106476 -107.461113 -5.098391 +v -175.687759 -106.439827 -2.832102 +v -174.018707 -109.438034 -5.457331 +v -176.106476 -107.461113 -5.098391 +v -176.106476 -107.461113 -5.098391 +v -174.018707 -109.438034 -5.457331 +v -174.401550 -110.645523 -7.858195 +v -174.018707 -109.438034 -5.457331 +v -169.838684 -113.389442 -6.160251 +v -174.401550 -110.645523 -7.858195 +v -174.401550 -110.645523 -7.858195 +v -169.838684 -113.389442 -6.160251 +v -170.141876 -114.974083 -8.831119 +v -169.838684 -113.389442 -6.160251 +v -165.653656 -117.337944 -6.848155 +v -170.141876 -114.974083 -8.831119 +v -170.141876 -114.974083 -8.831119 +v -165.653656 -117.337944 -6.848155 +v -165.877075 -119.300491 -9.789935 +v -165.653656 -117.337944 -6.848155 +v -161.464722 -121.283943 -7.525141 +v -165.877075 -119.300491 -9.789935 +v -165.877075 -119.300491 -9.789935 +v -161.464722 -121.283943 -7.525141 +v -161.608154 -123.624969 -10.738367 +v -161.464722 -121.283943 -7.525141 +v -153.267090 -132.061356 -12.569209 +v -161.608154 -123.624969 -10.738367 +v -161.608154 -123.624969 -10.738367 +v -153.267090 -132.061356 -12.569209 +v -153.252411 -135.071945 -16.224909 +v -187.499954 -97.970436 -11.478952 +v -187.499939 120.052109 -11.478970 +v -187.499954 -97.970436 -6.362200 +v -187.499939 120.052109 -11.478970 +v -187.499939 120.052109 -6.297672 +v -187.499954 -97.970436 -6.362200 +v -187.499954 -97.970436 -6.362200 +v -187.499939 120.052109 -6.297672 +v -187.499954 -97.942810 -6.297656 +v -161.499939 120.052109 -3.284528 +v -161.499939 120.052109 -4.284528 +v -161.499954 -99.651382 -3.284512 +v -161.499939 120.052109 -4.284528 +v -161.499954 -99.983421 -4.284512 +v -161.499954 -99.651382 -3.284512 +v -161.499954 -99.651382 -3.284512 +v -161.499954 -99.983421 -4.284512 +v -161.499954 -99.983421 -3.257260 +v 187.500061 120.052078 -11.479002 +v 190.000061 120.052078 -10.784559 +v 187.500046 -97.970467 -11.478985 +v 190.000061 120.052078 -10.784559 +v 190.000046 -98.947922 -10.784542 +v 187.500046 -97.970467 -11.478985 +v 187.500046 -97.970467 -11.478985 +v 190.000046 -98.947922 -10.784542 +v 154.000031 -134.262115 -20.784538 +v 190.000046 -98.947922 -10.784542 +v 154.000031 -137.947922 -20.784538 +v 154.000031 -134.262115 -20.784538 +v 152.905457 -135.447922 -16.681448 +v 152.905457 -135.447922 -20.784538 +v -152.905396 -135.447891 -16.681421 +v 152.905457 -135.447922 -20.784538 +v -152.905396 -135.447891 -20.784512 +v -152.905396 -135.447891 -16.681421 +v 161.500061 120.052078 -3.284557 +v -161.999939 120.052109 -0.784528 +v 162.000061 120.052078 -0.784557 +v 190.000061 120.052078 -10.784559 +v 187.500061 120.052078 -11.479002 +v 190.000061 120.052078 -5.784559 +v 187.500061 120.052078 -11.479002 +v 187.500061 120.052078 -6.297704 +v 190.000061 120.052078 -5.784559 +v 190.000061 120.052078 -5.784559 +v 187.500061 120.052078 -6.297704 +v 187.000061 120.052078 1.215441 +v 187.500061 120.052078 -6.297704 +v 185.409531 120.052078 -1.419790 +v 187.000061 120.052078 1.215441 +v 187.000061 120.052078 1.215441 +v 185.409531 120.052078 -1.419790 +v 162.000061 120.052078 -0.784557 +v 185.409531 120.052078 -1.419790 +v 162.099899 120.052078 -3.284557 +v 162.000061 120.052078 -0.784557 +v 162.000061 120.052078 -0.784557 +v 162.099899 120.052078 -3.284557 +v 161.500061 120.052078 -3.284557 +v -187.499939 120.052109 -11.478970 +v -189.999939 120.052109 -10.784527 +v -187.499939 120.052109 -6.297672 +v -189.999939 120.052109 -10.784527 +v -189.999939 120.052109 -5.784526 +v -187.499939 120.052109 -6.297672 +v -187.499939 120.052109 -6.297672 +v -189.999939 120.052109 -5.784526 +v -185.409424 120.052109 -1.419757 +v -189.999939 120.052109 -5.784526 +v -186.999939 120.052109 1.215474 +v -185.409424 120.052109 -1.419757 +v -185.409424 120.052109 -1.419757 +v -186.999939 120.052109 1.215474 +v -162.099792 120.052109 -3.284528 +v -186.999939 120.052109 1.215474 +v -161.999939 120.052109 -0.784528 +v -162.099792 120.052109 -3.284528 +v -162.099792 120.052109 -3.284528 +v -161.999939 120.052109 -0.784528 +v -161.499939 120.052109 -3.284528 +v -161.999939 120.052109 -0.784528 +v 161.500061 120.052078 -3.284557 +v -161.499939 120.052109 -3.284528 +v -161.499939 120.052109 -3.284528 +v 161.500061 120.052078 -3.284557 +v -161.499939 120.052109 -4.284528 +v 161.500061 120.052078 -3.284557 +v 161.500061 120.052078 -4.284557 +v -161.499939 120.052109 -4.284528 +v 187.000061 120.052078 1.215441 +v 162.000061 120.052078 -0.784557 +v 187.000046 -98.947922 1.215457 +v 162.000061 120.052078 -0.784557 +v 162.000046 -98.947922 -0.784541 +v 187.000046 -98.947922 1.215457 +v -154.783401 -106.447891 -3.284512 +v -155.035477 -106.447891 -3.255711 +v -155.035477 -106.447891 -4.284513 +v -154.783401 -106.447891 -3.284512 +v -155.035477 -106.447891 -4.284513 +v -103.356987 -106.447899 -3.284516 +v -155.035477 -106.447891 -4.284513 +v -103.356987 -106.447899 -4.284516 +v -103.356987 -106.447899 -3.284516 +v -103.356987 -106.447899 -3.284516 +v -103.356987 -106.447899 -4.284516 +v -51.678474 -106.447899 -3.284521 +v -103.356987 -106.447899 -4.284516 +v -51.678474 -106.447899 -4.284522 +v -51.678474 -106.447899 -3.284521 +v -51.678474 -106.447899 -3.284521 +v -51.678474 -106.447899 -4.284522 +v 0.000038 -106.447906 -3.284526 +v -51.678474 -106.447899 -4.284522 +v 0.000038 -106.447906 -4.284526 +v 0.000038 -106.447906 -3.284526 +v 0.000038 -106.447906 -3.284526 +v 0.000038 -106.447906 -4.284526 +v 51.678551 -106.447914 -3.284530 +v 0.000038 -106.447906 -4.284526 +v 51.678551 -106.447914 -4.284530 +v 51.678551 -106.447914 -3.284530 +v 51.678551 -106.447914 -3.284530 +v 51.678551 -106.447914 -4.284530 +v 103.357063 -106.447914 -3.284535 +v 51.678551 -106.447914 -4.284530 +v 103.357063 -106.447914 -4.284535 +v 103.357063 -106.447914 -3.284535 +v 103.357063 -106.447914 -3.284535 +v 103.357063 -106.447914 -4.284535 +v 154.783508 -106.447922 -3.284539 +v 103.357063 -106.447914 -4.284535 +v 155.035583 -106.447922 -4.284539 +v 154.783508 -106.447922 -3.284539 +v 154.783508 -106.447922 -3.284539 +v 155.035583 -106.447922 -4.284539 +v 155.035583 -106.447922 -3.255738 +v 161.500061 120.052078 -4.284557 +v 161.500046 -99.983452 -4.284541 +v 155.035583 -106.447922 -4.284539 +v 155.035583 -106.447922 -4.284539 +v 103.357063 -106.447914 -4.284535 +v 161.500061 120.052078 -4.284557 +v 103.357063 -106.447914 -4.284535 +v 51.678551 -106.447914 -4.284530 +v 161.500061 120.052078 -4.284557 +v 161.500061 120.052078 -4.284557 +v 51.678551 -106.447914 -4.284530 +v -161.499939 120.052109 -4.284528 +v 51.678551 -106.447914 -4.284530 +v 0.000038 -106.447906 -4.284526 +v -161.499939 120.052109 -4.284528 +v -155.035477 -106.447891 -4.284513 +v -161.499954 -99.983421 -4.284512 +v -103.356987 -106.447899 -4.284516 +v -161.499954 -99.983421 -4.284512 +v -161.499939 120.052109 -4.284528 +v -103.356987 -106.447899 -4.284516 +v -103.356987 -106.447899 -4.284516 +v -161.499939 120.052109 -4.284528 +v -51.678474 -106.447899 -4.284522 +v -161.499939 120.052109 -4.284528 +v 0.000038 -106.447906 -4.284526 +v -51.678474 -106.447899 -4.284522 +v 152.905457 -135.447922 -20.784538 +v 154.000031 -134.262115 -20.784538 +v 154.000031 -137.947922 -20.784538 +v 152.905457 -135.447922 -20.784538 +v 154.000031 -137.947922 -20.784538 +v -152.905396 -135.447891 -20.784512 +v 154.000031 -137.947922 -20.784538 +v -153.999969 -137.947891 -20.784512 +v -152.905396 -135.447891 -20.784512 +v -152.905396 -135.447891 -20.784512 +v -153.999969 -137.947891 -20.784512 +v -153.999969 -134.262085 -20.784512 +v 189.625046 -98.947922 -4.909543 +v 190.000046 -98.947922 -5.784543 +v 190.000061 120.052078 -5.784559 +v 189.625046 -98.947922 -4.909543 +v 190.000061 120.052078 -5.784559 +v 189.250046 -98.947922 -4.034543 +v 187.000061 120.052078 1.215441 +v 187.000046 -98.947922 1.215457 +v 187.375046 -98.947922 0.340457 +v 187.375046 -98.947922 0.340457 +v 187.750046 -98.947922 -0.534543 +v 187.000061 120.052078 1.215441 +v 187.750046 -98.947922 -0.534543 +v 188.500046 -98.947922 -2.284543 +v 187.000061 120.052078 1.215441 +v 187.000061 120.052078 1.215441 +v 188.500046 -98.947922 -2.284543 +v 190.000061 120.052078 -5.784559 +v 188.500046 -98.947922 -2.284543 +v 188.875046 -98.947922 -3.159543 +v 190.000061 120.052078 -5.784559 +v 190.000061 120.052078 -5.784559 +v 188.875046 -98.947922 -3.159543 +v 189.250046 -98.947922 -4.034543 +v -153.316498 -122.885239 -1.426769 +v -154.111511 -122.329681 -1.492130 +v -154.122742 -112.603630 -2.636372 +v 154.122803 -112.603661 -2.636399 +v 154.111572 -122.329712 -1.492157 +v 153.316559 -122.885269 -1.426796 +v 153.316559 -122.885269 -1.426796 +v -153.316498 -122.885239 -1.426769 +v 154.122803 -112.603661 -2.636399 +v -153.316498 -122.885239 -1.426769 +v -154.122742 -112.603630 -2.636372 +v 154.122803 -112.603661 -2.636399 +v 154.122803 -112.603661 -2.636399 +v -154.122742 -112.603630 -2.636372 +v 154.148270 -107.094475 -3.284539 +v -154.122742 -112.603630 -2.636372 +v -154.148178 -107.094444 -3.284512 +v 154.148270 -107.094475 -3.284539 +v -162.099792 120.052109 -3.284528 +v -161.499939 120.052109 -3.284528 +v -162.099808 -99.046623 -3.284512 +v -161.499939 120.052109 -3.284528 +v -161.499954 -99.651382 -3.284512 +v -162.099808 -99.046623 -3.284512 +v -153.316498 -122.885239 -1.426769 +v 153.316559 -122.885269 -1.426796 +v -153.299469 -125.894882 -5.081348 +v 153.316559 -122.885269 -1.426796 +v 153.299515 -125.894913 -5.081375 +v -153.299469 -125.894882 -5.081348 +v -153.299469 -125.894882 -5.081348 +v 153.299515 -125.894913 -5.081375 +v -153.282867 -128.977966 -8.825084 +v 153.299515 -125.894913 -5.081375 +v 153.282928 -128.977997 -8.825110 +v -153.282867 -128.977966 -8.825084 +v -153.282867 -128.977966 -8.825084 +v 153.282928 -128.977997 -8.825110 +v -153.267090 -132.061356 -12.569209 +v 153.252487 -135.071976 -16.224936 +v 152.905457 -135.447922 -16.681448 +v -152.905396 -135.447891 -16.681421 +v 153.282928 -128.977997 -8.825110 +v 153.267151 -132.061386 -12.569236 +v -153.267090 -132.061356 -12.569209 +v 153.267151 -132.061386 -12.569236 +v 153.252487 -135.071976 -16.224936 +v -153.267090 -132.061356 -12.569209 +v -153.267090 -132.061356 -12.569209 +v 153.252487 -135.071976 -16.224936 +v -153.252411 -135.071945 -16.224909 +v 153.252487 -135.071976 -16.224936 +v -152.905396 -135.447891 -16.681421 +v -153.252411 -135.071945 -16.224909 +v 161.500061 120.052078 -4.284557 +v 161.500061 120.052078 -3.284557 +v 161.500046 -99.983452 -4.284541 +v 161.500061 120.052078 -3.284557 +v 161.500046 -99.651413 -3.284541 +v 161.500046 -99.983452 -4.284541 +v 161.500046 -99.983452 -4.284541 +v 161.500046 -99.651413 -3.284541 +v 161.500046 -99.983452 -3.257288 +v -183.941238 -99.077583 -1.537196 +v -185.409439 -97.830566 -1.419741 +v -180.995377 -99.075989 -1.772868 +v -185.409439 -97.830566 -1.419741 +v -185.409424 120.052109 -1.419757 +v -180.995377 -99.075989 -1.772868 +v -180.995377 -99.075989 -1.772868 +v -185.409424 120.052109 -1.419757 +v -174.699203 -99.071297 -2.276561 +v -174.699203 -99.071297 -2.276561 +v -185.409424 120.052109 -1.419757 +v -169.582657 -99.065201 -2.685879 +v -185.409424 120.052109 -1.419757 +v -162.099792 120.052109 -3.284528 +v -169.582657 -99.065201 -2.685879 +v -169.582657 -99.065201 -2.685879 +v -162.099792 120.052109 -3.284528 +v -162.099808 -99.046623 -3.284512 +v 155.035583 -106.447922 -3.255738 +v 155.035583 -106.447922 -4.284539 +v 158.241608 -103.241898 -3.256097 +v 155.035583 -106.447922 -4.284539 +v 161.500046 -99.983452 -4.284541 +v 158.241608 -103.241898 -3.256097 +v 158.241608 -103.241898 -3.256097 +v 161.500046 -99.983452 -4.284541 +v 161.500046 -99.983452 -3.257288 +v -186.533585 -97.896790 -4.042803 +v -186.877975 -97.914192 -4.846377 +v -187.499939 120.052109 -6.297672 +v -186.877975 -97.914192 -4.846377 +v -187.069168 -97.923363 -5.292468 +v -187.499939 120.052109 -6.297672 +v -187.499939 120.052109 -6.297672 +v -187.069168 -97.923363 -5.292468 +v -187.499954 -97.942810 -6.297656 +v -185.409424 120.052109 -1.419757 +v -185.409439 -97.830566 -1.419741 +v -187.499939 120.052109 -6.297672 +v -185.409439 -97.830566 -1.419741 +v -185.495804 -97.836243 -1.621287 +v -187.499939 120.052109 -6.297672 +v -185.495804 -97.836243 -1.621287 +v -185.842484 -97.857956 -2.430239 +v -187.499939 120.052109 -6.297672 +v -185.842484 -97.857956 -2.430239 +v -186.188431 -97.878090 -3.237422 +v -187.499939 120.052109 -6.297672 +v -187.499939 120.052109 -6.297672 +v -186.188431 -97.878090 -3.237422 +v -186.533585 -97.896790 -4.042803 +v 154.148270 -107.094475 -3.284539 +v 158.650513 -110.970001 -2.393472 +v 154.122803 -112.603661 -2.636399 +v 158.650513 -110.970001 -2.393472 +v 160.458237 -117.458817 -1.493874 +v 154.122803 -112.603661 -2.636399 +v 154.122803 -112.603661 -2.636399 +v 160.458237 -117.458817 -1.493874 +v 154.111572 -122.329712 -1.492157 +v 163.553696 -106.947121 -2.395845 +v 165.245132 -113.771378 -1.496660 +v 158.650513 -110.970001 -2.393472 +v 165.245132 -113.771378 -1.496660 +v 161.198364 -116.889587 -1.494202 +v 158.650513 -110.970001 -2.393472 +v 158.650513 -110.970001 -2.393472 +v 161.198364 -116.889587 -1.494202 +v 160.458237 -117.458817 -1.493874 +v 171.129150 -109.213753 -1.502726 +v 169.653015 -110.360474 -1.500857 +v 163.553696 -106.947121 -2.395845 +v 169.653015 -110.360474 -1.500857 +v 169.315887 -110.622009 -1.500467 +v 163.553696 -106.947121 -2.395845 +v 163.553696 -106.947121 -2.395845 +v 169.315887 -110.622009 -1.500467 +v 165.245132 -113.771378 -1.496660 +v 178.799072 -103.199463 -1.518070 +v 174.699295 -99.071327 -2.276592 +v 179.572266 -102.585831 -1.520352 +v 174.699295 -99.071327 -2.276592 +v 180.995468 -99.076019 -1.772900 +v 179.572266 -102.585831 -1.520352 +v 173.391068 -107.451080 -1.506144 +v 169.582748 -99.065231 -2.685908 +v 175.440918 -105.846680 -1.509951 +v 169.582748 -99.065231 -2.685908 +v 174.699295 -99.071327 -2.276592 +v 175.440918 -105.846680 -1.509951 +v 175.440918 -105.846680 -1.509951 +v 174.699295 -99.071327 -2.276592 +v 177.501785 -104.225304 -1.514613 +v 174.699295 -99.071327 -2.276592 +v 178.799072 -103.199463 -1.518070 +v 177.501785 -104.225304 -1.514613 +v 183.941330 -99.077614 -1.537228 +v 183.762833 -99.222603 -1.536374 +v 180.995468 -99.076019 -1.772900 +v 183.762833 -99.222603 -1.536374 +v 181.658722 -100.920135 -1.527462 +v 180.995468 -99.076019 -1.772900 +v 180.995468 -99.076019 -1.772900 +v 181.658722 -100.920135 -1.527462 +v 179.572266 -102.585831 -1.520352 +v 161.500046 -99.651413 -3.284541 +v 162.099884 -99.046654 -3.284541 +v 161.500046 -99.983452 -3.257288 +v 162.099884 -99.046654 -3.284541 +v 169.582748 -99.065231 -2.685908 +v 161.500046 -99.983452 -3.257288 +v 161.500046 -99.983452 -3.257288 +v 169.582748 -99.065231 -2.685908 +v 158.241608 -103.241898 -3.256097 +v 173.391068 -107.451080 -1.506144 +v 171.129150 -109.213753 -1.502726 +v 169.582748 -99.065231 -2.685908 +v 171.129150 -109.213753 -1.502726 +v 163.553696 -106.947121 -2.395845 +v 169.582748 -99.065231 -2.685908 +v 169.582748 -99.065231 -2.685908 +v 163.553696 -106.947121 -2.395845 +v 158.241608 -103.241898 -3.256097 +v 163.553696 -106.947121 -2.395845 +v 158.650513 -110.970001 -2.393472 +v 158.241608 -103.241898 -3.256097 +v 158.241608 -103.241898 -3.256097 +v 158.650513 -110.970001 -2.393472 +v 155.035583 -106.447922 -3.255738 +v 158.650513 -110.970001 -2.393472 +v 154.148270 -107.094475 -3.284539 +v 155.035583 -106.447922 -3.255738 +v 155.035583 -106.447922 -3.255738 +v 154.148270 -107.094475 -3.284539 +v 154.783508 -106.447922 -3.284539 +v 186.533676 -97.896820 -4.042836 +v 186.878067 -97.914223 -4.846409 +v 187.500061 115.052078 -6.297704 +v 186.878067 -97.914223 -4.846409 +v 187.069260 -97.923393 -5.292500 +v 187.500061 115.052078 -6.297704 +v 187.500061 115.052078 -6.297704 +v 187.069260 -97.923393 -5.292500 +v 187.500046 -97.942841 -6.297688 +v 185.409531 115.052078 -1.419790 +v 185.409515 -97.830597 -1.419774 +v 187.500061 115.052078 -6.297704 +v 185.409515 -97.830597 -1.419774 +v 185.495880 -97.836273 -1.621319 +v 187.500061 115.052078 -6.297704 +v 185.495880 -97.836273 -1.621319 +v 185.842590 -97.857986 -2.430272 +v 187.500061 115.052078 -6.297704 +v 185.842590 -97.857986 -2.430272 +v 186.188522 -97.878120 -3.237454 +v 187.500061 115.052078 -6.297704 +v 187.500061 115.052078 -6.297704 +v 186.188522 -97.878120 -3.237454 +v 186.533676 -97.896820 -4.042836 +v 162.099899 115.052078 -3.284557 +v 161.500061 115.052078 -3.284557 +v 162.099884 -99.046654 -3.284541 +v 161.500061 115.052078 -3.284557 +v 161.500046 -99.651413 -3.284541 +v 162.099884 -99.046654 -3.284541 +v 187.500046 -97.970467 -11.478985 +v 187.500061 115.052078 -11.479001 +v 187.500046 -97.970467 -6.362233 +v 187.500061 115.052078 -11.479001 +v 187.500061 115.052078 -6.297704 +v 187.500046 -97.970467 -6.362233 +v 187.500046 -97.970467 -6.362233 +v 187.500061 115.052078 -6.297704 +v 187.500046 -97.942841 -6.297688 +v 176.106552 -107.461143 -5.098422 +v 178.192627 -105.483414 -4.733119 +v 177.734619 -104.649673 -2.600573 +v 187.069260 -97.923393 -5.292500 +v 186.878067 -97.914223 -4.846409 +v 185.019821 -99.815674 -5.318852 +v 154.111572 -122.329712 -1.492157 +v 153.316559 -122.885269 -1.426796 +v 153.299515 -125.894913 -5.081375 +v 161.323425 -118.942223 -4.312348 +v 153.299515 -125.894913 -5.081375 +v 153.282928 -128.977997 -8.825110 +v 154.111572 -122.329712 -1.492157 +v 153.299515 -125.894913 -5.081375 +v 160.458237 -117.458817 -1.493874 +v 153.299515 -125.894913 -5.081375 +v 161.323425 -118.942223 -4.312348 +v 160.458237 -117.458817 -1.493874 +v 160.458237 -117.458817 -1.493874 +v 161.323425 -118.942223 -4.312348 +v 161.198364 -116.889587 -1.494202 +v 161.323425 -118.942223 -4.312348 +v 165.432800 -115.374489 -3.906801 +v 161.198364 -116.889587 -1.494202 +v 161.198364 -116.889587 -1.494202 +v 165.432800 -115.374489 -3.906801 +v 165.245132 -113.771378 -1.496660 +v 173.391068 -107.451080 -1.506144 +v 171.129150 -109.213753 -1.502726 +v 169.538467 -111.803581 -3.489771 +v 171.129150 -109.213753 -1.502726 +v 169.653015 -110.360474 -1.500857 +v 169.538467 -111.803581 -3.489771 +v 169.653015 -110.360474 -1.500857 +v 169.315887 -110.622009 -1.500467 +v 169.538467 -111.803581 -3.489771 +v 169.538467 -111.803581 -3.489771 +v 169.315887 -110.622009 -1.500467 +v 165.245132 -113.771378 -1.496660 +v 169.538467 -111.803581 -3.489771 +v 173.639450 -108.228867 -3.056727 +v 173.391068 -107.451080 -1.506144 +v 173.639450 -108.228867 -3.056727 +v 175.687851 -106.439857 -2.832133 +v 173.391068 -107.451080 -1.506144 +v 173.391068 -107.451080 -1.506144 +v 175.687851 -106.439857 -2.832133 +v 175.440918 -105.846680 -1.509951 +v 183.941330 -99.077614 -1.537228 +v 183.762833 -99.222603 -1.536374 +v 183.863708 -99.272209 -1.845417 +v 183.762833 -99.222603 -1.536374 +v 181.658722 -100.920135 -1.527462 +v 183.863708 -99.272209 -1.845417 +v 183.863708 -99.272209 -1.845417 +v 181.658722 -100.920135 -1.527462 +v 181.822647 -101.065712 -2.109654 +v 181.658722 -100.920135 -1.527462 +v 179.572266 -102.585831 -1.520352 +v 181.822647 -101.065712 -2.109654 +v 181.822647 -101.065712 -2.109654 +v 179.572266 -102.585831 -1.520352 +v 179.779572 -102.858269 -2.360446 +v 179.572266 -102.585831 -1.520352 +v 178.799072 -103.199463 -1.518070 +v 179.779572 -102.858269 -2.360446 +v 179.779572 -102.858269 -2.360446 +v 178.799072 -103.199463 -1.518070 +v 177.734619 -104.649673 -2.600573 +v 178.799072 -103.199463 -1.518070 +v 177.501785 -104.225304 -1.514613 +v 177.734619 -104.649673 -2.600573 +v 185.409515 -97.830597 -1.419774 +v 183.941330 -99.077614 -1.537228 +v 184.883530 -98.375237 -1.707150 +v 183.941330 -99.077614 -1.537228 +v 183.863708 -99.272209 -1.845417 +v 184.883530 -98.375237 -1.707150 +v 184.883530 -98.375237 -1.707150 +v 183.863708 -99.272209 -1.845417 +v 184.150391 -99.409630 -2.714413 +v 183.863708 -99.272209 -1.845417 +v 181.822647 -101.065712 -2.109654 +v 184.150391 -99.409630 -2.714413 +v 185.179779 -98.466270 -2.544049 +v 185.842590 -97.857986 -2.430272 +v 185.495880 -97.836273 -1.621319 +v 184.728592 -99.681305 -4.451085 +v 186.533676 -97.896820 -4.042836 +v 185.477844 -98.556107 -3.380337 +v 186.533676 -97.896820 -4.042836 +v 186.188522 -97.878120 -3.237454 +v 185.477844 -98.556107 -3.380337 +v 185.477844 -98.556107 -3.380337 +v 186.188522 -97.878120 -3.237454 +v 185.842590 -97.857986 -2.430272 +v 187.069260 -97.923393 -5.292500 +v 185.019821 -99.815674 -5.318852 +v 187.500046 -97.942841 -6.297688 +v 185.019821 -99.815674 -5.318852 +v 185.703247 -99.916985 -6.898839 +v 187.500046 -97.942841 -6.297688 +v 187.500046 -97.942841 -6.297688 +v 185.703247 -99.916985 -6.898839 +v 187.500046 -97.970467 -6.362233 +v 176.529160 -108.480431 -7.364817 +v 179.084702 -107.087090 -8.845135 +v 178.654938 -106.314781 -6.865558 +v 179.084702 -107.087090 -8.845135 +v 181.245865 -104.745819 -8.213993 +v 178.654938 -106.314781 -6.865558 +v 178.654938 -106.314781 -6.865558 +v 181.245865 -104.745819 -8.213993 +v 180.778763 -104.148651 -6.359241 +v 181.245865 -104.745819 -8.213993 +v 183.406708 -102.404900 -7.578969 +v 180.778763 -104.148651 -6.359241 +v 180.778763 -104.148651 -6.359241 +v 183.406708 -102.404900 -7.578969 +v 182.900436 -101.982193 -5.844326 +v 183.406708 -102.404900 -7.578969 +v 185.567154 -100.064423 -6.939313 +v 182.900436 -101.982193 -5.844326 +v 176.923264 -109.428635 -9.472987 +v 174.401611 -110.645554 -7.858225 +v 174.863373 -111.660179 -10.068674 +v 174.401611 -110.645554 -7.858225 +v 170.141937 -114.974113 -8.831147 +v 174.863373 -111.660179 -10.068674 +v 174.863373 -111.660179 -10.068674 +v 170.141937 -114.974113 -8.831147 +v 170.243759 -116.664764 -11.396920 +v 170.141937 -114.974113 -8.831147 +v 165.877136 -119.300522 -9.789964 +v 170.243759 -116.664764 -11.396920 +v 170.243759 -116.664764 -11.396920 +v 165.877136 -119.300522 -9.789964 +v 166.091217 -121.163330 -12.583727 +v 165.877136 -119.300522 -9.789964 +v 161.608215 -123.625000 -10.738396 +v 166.091217 -121.163330 -12.583727 +v 166.091217 -121.163330 -12.583727 +v 161.608215 -123.625000 -10.738396 +v 161.747787 -125.868729 -13.819588 +v 161.608215 -123.625000 -10.738396 +v 153.252487 -135.071976 -16.224936 +v 161.747787 -125.868729 -13.819588 +v 169.838745 -113.389473 -6.160280 +v 165.432800 -115.374489 -3.906801 +v 165.653732 -117.337975 -6.848184 +v 165.432800 -115.374489 -3.906801 +v 161.323425 -118.942223 -4.312348 +v 165.653732 -117.337975 -6.848184 +v 165.653732 -117.337975 -6.848184 +v 161.323425 -118.942223 -4.312348 +v 161.464783 -121.283974 -7.525170 +v 161.323425 -118.942223 -4.312348 +v 153.282928 -128.977997 -8.825110 +v 161.464783 -121.283974 -7.525170 +v 161.464783 -121.283974 -7.525170 +v 153.282928 -128.977997 -8.825110 +v 153.267151 -132.061386 -12.569236 +v 185.842590 -97.857986 -2.430272 +v 185.179779 -98.466270 -2.544049 +v 185.477844 -98.556107 -3.380337 +v 185.179779 -98.466270 -2.544049 +v 184.438721 -99.545975 -3.582959 +v 185.477844 -98.556107 -3.380337 +v 185.477844 -98.556107 -3.380337 +v 184.438721 -99.545975 -3.582959 +v 184.728592 -99.681305 -4.451085 +v 177.734619 -104.649673 -2.600573 +v 178.192627 -105.483414 -4.733119 +v 179.779572 -102.858269 -2.360446 +v 178.192627 -105.483414 -4.733119 +v 180.276779 -103.504875 -4.360049 +v 179.779572 -102.858269 -2.360446 +v 179.779572 -102.858269 -2.360446 +v 180.276779 -103.504875 -4.360049 +v 181.822647 -101.065712 -2.109654 +v 180.276779 -103.504875 -4.360049 +v 182.358841 -101.525650 -3.977444 +v 181.822647 -101.065712 -2.109654 +v 181.822647 -101.065712 -2.109654 +v 182.358841 -101.525650 -3.977444 +v 184.150391 -99.409630 -2.714413 +v 165.245132 -113.771378 -1.496660 +v 165.432800 -115.374489 -3.906801 +v 169.538467 -111.803581 -3.489771 +v 165.432800 -115.374489 -3.906801 +v 169.838745 -113.389473 -6.160280 +v 169.538467 -111.803581 -3.489771 +v 169.538467 -111.803581 -3.489771 +v 169.838745 -113.389473 -6.160280 +v 173.639450 -108.228867 -3.056727 +v 169.838745 -113.389473 -6.160280 +v 174.018784 -109.438065 -5.457362 +v 173.639450 -108.228867 -3.056727 +v 173.639450 -108.228867 -3.056727 +v 174.018784 -109.438065 -5.457362 +v 175.687851 -106.439857 -2.832133 +v 186.878067 -97.914223 -4.846409 +v 186.533676 -97.896820 -4.042836 +v 185.019821 -99.815674 -5.318852 +v 186.533676 -97.896820 -4.042836 +v 184.728592 -99.681305 -4.451085 +v 185.019821 -99.815674 -5.318852 +v 185.019821 -99.815674 -5.318852 +v 184.728592 -99.681305 -4.451085 +v 182.358841 -101.525650 -3.977444 +v 184.728592 -99.681305 -4.451085 +v 184.438721 -99.545975 -3.582959 +v 182.358841 -101.525650 -3.977444 +v 182.358841 -101.525650 -3.977444 +v 184.438721 -99.545975 -3.582959 +v 184.150391 -99.409630 -2.714413 +v 184.438721 -99.545975 -3.582959 +v 185.179779 -98.466270 -2.544049 +v 184.150391 -99.409630 -2.714413 +v 184.150391 -99.409630 -2.714413 +v 185.179779 -98.466270 -2.544049 +v 184.883530 -98.375237 -1.707150 +v 185.179779 -98.466270 -2.544049 +v 185.495880 -97.836273 -1.621319 +v 184.883530 -98.375237 -1.707150 +v 184.883530 -98.375237 -1.707150 +v 185.495880 -97.836273 -1.621319 +v 185.409515 -97.830597 -1.419774 +v 176.106552 -107.461143 -5.098422 +v 174.401611 -110.645554 -7.858225 +v 176.529160 -108.480431 -7.364817 +v 174.401611 -110.645554 -7.858225 +v 176.923264 -109.428635 -9.472987 +v 176.529160 -108.480431 -7.364817 +v 176.529160 -108.480431 -7.364817 +v 176.923264 -109.428635 -9.472987 +v 179.084702 -107.087090 -8.845135 +v 176.106552 -107.461143 -5.098422 +v 176.529160 -108.480431 -7.364817 +v 178.192627 -105.483414 -4.733119 +v 176.529160 -108.480431 -7.364817 +v 178.654938 -106.314781 -6.865558 +v 178.192627 -105.483414 -4.733119 +v 178.192627 -105.483414 -4.733119 +v 178.654938 -106.314781 -6.865558 +v 180.276779 -103.504875 -4.360049 +v 178.654938 -106.314781 -6.865558 +v 180.778763 -104.148651 -6.359241 +v 180.276779 -103.504875 -4.360049 +v 180.276779 -103.504875 -4.360049 +v 180.778763 -104.148651 -6.359241 +v 182.358841 -101.525650 -3.977444 +v 180.778763 -104.148651 -6.359241 +v 182.900436 -101.982193 -5.844326 +v 182.358841 -101.525650 -3.977444 +v 182.358841 -101.525650 -3.977444 +v 182.900436 -101.982193 -5.844326 +v 185.019821 -99.815674 -5.318852 +v 182.900436 -101.982193 -5.844326 +v 185.567154 -100.064423 -6.939313 +v 185.019821 -99.815674 -5.318852 +v 185.019821 -99.815674 -5.318852 +v 185.567154 -100.064423 -6.939313 +v 185.703247 -99.916985 -6.898839 +v 177.501785 -104.225304 -1.514613 +v 175.440918 -105.846680 -1.509951 +v 177.734619 -104.649673 -2.600573 +v 175.440918 -105.846680 -1.509951 +v 175.687851 -106.439857 -2.832133 +v 177.734619 -104.649673 -2.600573 +v 177.734619 -104.649673 -2.600573 +v 175.687851 -106.439857 -2.832133 +v 176.106552 -107.461143 -5.098422 +v 175.687851 -106.439857 -2.832133 +v 174.018784 -109.438065 -5.457362 +v 176.106552 -107.461143 -5.098422 +v 176.106552 -107.461143 -5.098422 +v 174.018784 -109.438065 -5.457362 +v 174.401611 -110.645554 -7.858225 +v 174.018784 -109.438065 -5.457362 +v 169.838745 -113.389473 -6.160280 +v 174.401611 -110.645554 -7.858225 +v 174.401611 -110.645554 -7.858225 +v 169.838745 -113.389473 -6.160280 +v 170.141937 -114.974113 -8.831147 +v 169.838745 -113.389473 -6.160280 +v 165.653732 -117.337975 -6.848184 +v 170.141937 -114.974113 -8.831147 +v 170.141937 -114.974113 -8.831147 +v 165.653732 -117.337975 -6.848184 +v 165.877136 -119.300522 -9.789964 +v 165.653732 -117.337975 -6.848184 +v 161.464783 -121.283974 -7.525170 +v 165.877136 -119.300522 -9.789964 +v 165.877136 -119.300522 -9.789964 +v 161.464783 -121.283974 -7.525170 +v 161.608215 -123.625000 -10.738396 +v 161.464783 -121.283974 -7.525170 +v 153.267151 -132.061386 -12.569236 +v 161.608215 -123.625000 -10.738396 +v 161.608215 -123.625000 -10.738396 +v 153.267151 -132.061386 -12.569236 +v 153.252487 -135.071976 -16.224936 +v 161.500061 115.052078 -3.284557 +v 161.500061 115.052078 -4.284557 +v 161.500046 -99.651413 -3.284541 +v 161.500061 115.052078 -4.284557 +v 161.500046 -99.983452 -4.284541 +v 161.500046 -99.651413 -3.284541 +v 161.500046 -99.651413 -3.284541 +v 161.500046 -99.983452 -4.284541 +v 161.500046 -99.983452 -3.257288 +v 157.535583 -103.947922 -4.284539 +v 155.035583 -106.447922 -4.284539 +v 157.535583 -103.947922 -3.255921 +v 155.035583 -106.447922 -4.284539 +v 155.035583 -106.447922 -3.255738 +v 157.535583 -103.947922 -3.255921 +v 187.500046 -97.970467 -6.362233 +v 185.703247 -99.916985 -6.898839 +v 187.500046 -97.970467 -11.478985 +v 185.703247 -99.916985 -6.898839 +v 185.567154 -100.064423 -6.939313 +v 187.500046 -97.970467 -11.478985 +v 187.500046 -97.970467 -11.478985 +v 185.567154 -100.064423 -6.939313 +v 183.406708 -102.404900 -7.578969 +v 183.406708 -102.404900 -7.578969 +v 181.245865 -104.745819 -8.213993 +v 187.500046 -97.970467 -11.478985 +v 181.245865 -104.745819 -8.213993 +v 179.084702 -107.087090 -8.845135 +v 187.500046 -97.970467 -11.478985 +v 187.500046 -97.970467 -11.478985 +v 179.084702 -107.087090 -8.845135 +v 176.923264 -109.428635 -9.472987 +v 166.091217 -121.163330 -12.583727 +v 154.000031 -134.262115 -20.784538 +v 170.243759 -116.664764 -11.396920 +v 154.000031 -134.262115 -20.784538 +v 187.500046 -97.970467 -11.478985 +v 170.243759 -116.664764 -11.396920 +v 170.243759 -116.664764 -11.396920 +v 187.500046 -97.970467 -11.478985 +v 174.863373 -111.660179 -10.068674 +v 187.500046 -97.970467 -11.478985 +v 176.923264 -109.428635 -9.472987 +v 174.863373 -111.660179 -10.068674 +v 152.905457 -135.447922 -16.681448 +v 152.905457 -135.447922 -20.784538 +v 153.252487 -135.071976 -16.224936 +v 152.905457 -135.447922 -20.784538 +v 154.000031 -134.262115 -20.784538 +v 153.252487 -135.071976 -16.224936 +v 153.252487 -135.071976 -16.224936 +v 154.000031 -134.262115 -20.784538 +v 161.747787 -125.868729 -13.819588 +v 154.000031 -134.262115 -20.784538 +v 166.091217 -121.163330 -12.583727 +v 161.747787 -125.868729 -13.819588 +v 159.000046 -103.947922 -3.115808 +v 157.535583 -103.947922 -3.255921 +v 155.035583 -106.447922 -3.255738 +v 161.500046 -99.983452 -3.257288 +v 159.000046 -102.483459 -3.256333 +v 159.000046 -103.947922 -3.115808 +v 183.762833 -99.222603 -1.536374 +v 183.941330 -99.077614 -1.537228 +v 180.995468 -99.076019 -1.772900 +v 177.501785 -104.225304 -1.514613 +v 178.799072 -103.199463 -1.518070 +v 174.699295 -99.071327 -2.276592 +v 178.799072 -103.199463 -1.518070 +v 179.572266 -102.585831 -1.520352 +v 174.699295 -99.071327 -2.276592 +v 174.699295 -99.071327 -2.276592 +v 179.572266 -102.585831 -1.520352 +v 180.995468 -99.076019 -1.772900 +v 179.572266 -102.585831 -1.520352 +v 181.658722 -100.920135 -1.527462 +v 180.995468 -99.076019 -1.772900 +v 180.995468 -99.076019 -1.772900 +v 181.658722 -100.920135 -1.527462 +v 183.762833 -99.222603 -1.536374 +v 169.582748 -99.065231 -2.685908 +v 163.553696 -106.947121 -2.395845 +v 169.653015 -110.360474 -1.500857 +v 169.653015 -110.360474 -1.500857 +v 171.129150 -109.213753 -1.502726 +v 169.582748 -99.065231 -2.685908 +v 171.129150 -109.213753 -1.502726 +v 173.391068 -107.451080 -1.506144 +v 169.582748 -99.065231 -2.685908 +v 169.582748 -99.065231 -2.685908 +v 173.391068 -107.451080 -1.506144 +v 174.699295 -99.071327 -2.276592 +v 173.391068 -107.451080 -1.506144 +v 175.440918 -105.846680 -1.509951 +v 174.699295 -99.071327 -2.276592 +v 174.699295 -99.071327 -2.276592 +v 175.440918 -105.846680 -1.509951 +v 177.501785 -104.225304 -1.514613 +v 160.458237 -117.458817 -1.493874 +v 161.198364 -116.889587 -1.494202 +v 158.650513 -110.970001 -2.393472 +v 161.198364 -116.889587 -1.494202 +v 165.245132 -113.771378 -1.496660 +v 158.650513 -110.970001 -2.393472 +v 158.650513 -110.970001 -2.393472 +v 165.245132 -113.771378 -1.496660 +v 163.553696 -106.947121 -2.395845 +v 165.245132 -113.771378 -1.496660 +v 169.315887 -110.622009 -1.500467 +v 163.553696 -106.947121 -2.395845 +v 163.553696 -106.947121 -2.395845 +v 169.315887 -110.622009 -1.500467 +v 169.653015 -110.360474 -1.500857 +v 154.111572 -122.329712 -1.492157 +v 160.458237 -117.458817 -1.493874 +v 154.122803 -112.603661 -2.636399 +v 160.458237 -117.458817 -1.493874 +v 158.650513 -110.970001 -2.393472 +v 154.122803 -112.603661 -2.636399 +v 154.122803 -112.603661 -2.636399 +v 158.650513 -110.970001 -2.393472 +v 154.148270 -107.094475 -3.284539 +v 158.650513 -110.970001 -2.393472 +v 154.783508 -106.447922 -3.284539 +v 154.148270 -107.094475 -3.284539 +v 162.099884 -99.046654 -3.284541 +v 161.500046 -99.651413 -3.284541 +v 169.582748 -99.065231 -2.685908 +v 161.500046 -99.651413 -3.284541 +v 161.500046 -99.983452 -3.257288 +v 169.582748 -99.065231 -2.685908 +v 169.582748 -99.065231 -2.685908 +v 161.500046 -99.983452 -3.257288 +v 163.553696 -106.947121 -2.395845 +v 161.500046 -99.983452 -3.257288 +v 159.000046 -103.947922 -3.115808 +v 163.553696 -106.947121 -2.395845 +v 163.553696 -106.947121 -2.395845 +v 159.000046 -103.947922 -3.115808 +v 158.650513 -110.970001 -2.393472 +v 159.000046 -103.947922 -3.115808 +v 155.035583 -106.447922 -3.255738 +v 158.650513 -110.970001 -2.393472 +v 158.650513 -110.970001 -2.393472 +v 155.035583 -106.447922 -3.255738 +v 154.783508 -106.447922 -3.284539 +v 159.000046 -102.483459 -3.256333 +v 161.500046 -99.983452 -3.257288 +v 159.000046 -102.483459 -4.284539 +v 161.500046 -99.983452 -3.257288 +v 161.500046 -99.983452 -4.284541 +v 159.000046 -102.483459 -4.284539 +v 167.658310 -110.952873 -5.347849 +v 159.567749 -105.451286 -5.995095 +v 168.184830 -110.499100 -5.305727 +v 159.567749 -105.451286 -5.995095 +v 162.500046 -102.518990 -5.760515 +v 168.184830 -110.499100 -5.305727 +v 168.184830 -110.499100 -5.305727 +v 162.500046 -102.518990 -5.760515 +v 172.143524 -107.078400 -4.989039 +v 162.500061 115.052078 -5.760532 +v 174.905914 -104.679207 -4.768046 +v 162.500046 -102.518990 -5.760515 +v 174.905914 -104.679207 -4.768046 +v 174.137375 -105.347946 -4.829531 +v 162.500046 -102.518990 -5.760515 +v 162.500046 -102.518990 -5.760515 +v 174.137375 -105.347946 -4.829531 +v 172.143524 -107.078400 -4.989039 +v 162.500061 115.052078 -5.760532 +v 181.138855 -99.203865 -4.269413 +v 180.156525 -100.074593 -4.347996 +v 183.819000 115.052078 -4.055021 +v 183.818985 -96.806648 -4.055005 +v 162.500061 115.052078 -5.760532 +v 183.818985 -96.806648 -4.055005 +v 182.193665 -98.264488 -4.185024 +v 162.500061 115.052078 -5.760532 +v 162.500061 115.052078 -5.760532 +v 182.193665 -98.264488 -4.185024 +v 181.138855 -99.203865 -4.269413 +v 180.156525 -100.074593 -4.347996 +v 178.135254 -101.855858 -4.509700 +v 162.500061 115.052078 -5.760532 +v 178.135254 -101.855858 -4.509700 +v 176.130905 -103.610954 -4.670046 +v 162.500061 115.052078 -5.760532 +v 162.500061 115.052078 -5.760532 +v 176.130905 -103.610954 -4.670046 +v 174.905914 -104.679207 -4.768046 +v 162.500061 115.052078 -5.760532 +v 162.500046 -102.518990 -5.760515 +v 162.500061 115.052078 -6.784557 +v 162.500046 -102.518990 -5.760515 +v 162.500046 -102.518990 -6.784540 +v 162.500061 115.052078 -6.784557 +v 157.571091 -107.447922 -5.760202 +v 157.571091 -107.447922 -6.784539 +v 159.567749 -105.451286 -5.995095 +v 157.571091 -107.447922 -6.784539 +v 162.500046 -102.518990 -6.784540 +v 159.567749 -105.451286 -5.995095 +v 159.567749 -105.451286 -5.995095 +v 162.500046 -102.518990 -6.784540 +v 162.500046 -102.518990 -5.760515 +v 159.000061 113.052078 -4.284555 +v 159.000061 113.052078 -6.784555 +v 159.000046 -102.483459 -4.284539 +v 159.000061 113.052078 -6.784555 +v 159.000046 -103.947922 -6.784539 +v 159.000046 -102.483459 -4.284539 +v 159.000046 -102.483459 -4.284539 +v 159.000046 -103.947922 -6.784539 +v 159.000046 -102.483459 -3.256333 +v 159.000046 -103.947922 -6.784539 +v 159.000046 -103.947922 -3.115808 +v 159.000046 -102.483459 -3.256333 +v 183.941330 -99.077614 -1.537228 +v 185.409515 -97.830597 -1.419774 +v 180.995468 -99.076019 -1.772900 +v 185.409515 -97.830597 -1.419774 +v 185.409531 115.052078 -1.419790 +v 180.995468 -99.076019 -1.772900 +v 180.995468 -99.076019 -1.772900 +v 185.409531 115.052078 -1.419790 +v 174.699295 -99.071327 -2.276592 +v 174.699295 -99.071327 -2.276592 +v 185.409531 115.052078 -1.419790 +v 169.582748 -99.065231 -2.685908 +v 185.409531 115.052078 -1.419790 +v 162.099899 115.052078 -3.284557 +v 169.582748 -99.065231 -2.685908 +v 169.582748 -99.065231 -2.685908 +v 162.099899 115.052078 -3.284557 +v 162.099884 -99.046654 -3.284541 +v 157.571091 -107.447922 -6.784539 +v 157.571091 -107.447922 -5.760202 +v -157.571014 -107.447891 -6.784512 +v 157.571091 -107.447922 -5.760202 +v -157.571014 -107.447891 -5.760174 +v -157.571014 -107.447891 -6.784512 +v -184.728500 -99.681274 -4.451052 +v -185.019730 -99.815643 -5.318820 +v -182.900345 -101.982162 -5.844294 +v -187.499954 -97.970436 -6.362200 +v -185.703140 -99.916954 -6.898806 +v -187.499954 -97.942810 -6.297656 +v -185.703140 -99.916954 -6.898806 +v -185.019730 -99.815643 -5.318820 +v -187.499954 -97.942810 -6.297656 +v -187.499954 -97.942810 -6.297656 +v -185.019730 -99.815643 -5.318820 +v -187.069168 -97.923363 -5.292468 +v -187.069168 -97.923363 -5.292468 +v -185.019730 -99.815643 -5.318820 +v -186.877975 -97.914192 -4.846377 +v -185.019730 -99.815643 -5.318820 +v -184.728500 -99.681274 -4.451052 +v -186.877975 -97.914192 -4.846377 +v -186.877975 -97.914192 -4.846377 +v -184.728500 -99.681274 -4.451052 +v -186.533585 -97.896790 -4.042803 +v -183.863602 -99.272179 -1.845385 +v -183.941238 -99.077583 -1.537196 +v -184.883438 -98.375206 -1.707118 +v -183.941238 -99.077583 -1.537196 +v -185.409439 -97.830566 -1.419741 +v -184.883438 -98.375206 -1.707118 +v -179.779495 -102.858238 -2.360415 +v -181.658646 -100.920105 -1.527430 +v -181.822556 -101.065681 -2.109622 +v -181.658646 -100.920105 -1.527430 +v -183.762741 -99.222572 -1.536342 +v -181.822556 -101.065681 -2.109622 +v -177.501694 -104.225273 -1.514582 +v -178.798965 -103.199432 -1.518039 +v -179.779495 -102.858238 -2.360415 +v -178.798965 -103.199432 -1.518039 +v -179.572159 -102.585800 -1.520319 +v -179.779495 -102.858238 -2.360415 +v -179.779495 -102.858238 -2.360415 +v -179.572159 -102.585800 -1.520319 +v -181.658646 -100.920105 -1.527430 +v -173.639374 -108.228836 -3.056697 +v -175.440811 -105.846649 -1.509921 +v -175.687759 -106.439827 -2.832102 +v -175.440811 -105.846649 -1.509921 +v -177.501694 -104.225273 -1.514582 +v -175.687759 -106.439827 -2.832102 +v -175.687759 -106.439827 -2.832102 +v -177.501694 -104.225273 -1.514582 +v -177.734512 -104.649643 -2.600542 +v -177.501694 -104.225273 -1.514582 +v -179.779495 -102.858238 -2.360415 +v -177.734512 -104.649643 -2.600542 +v -169.538422 -111.803551 -3.489741 +v -171.129089 -109.213722 -1.502696 +v -173.639374 -108.228836 -3.056697 +v -171.129089 -109.213722 -1.502696 +v -173.391022 -107.451050 -1.506114 +v -173.639374 -108.228836 -3.056697 +v -173.639374 -108.228836 -3.056697 +v -173.391022 -107.451050 -1.506114 +v -175.440811 -105.846649 -1.509921 +v -161.323364 -118.942192 -4.312319 +v -165.245087 -113.771347 -1.496631 +v -165.432739 -115.374458 -3.906771 +v -165.245087 -113.771347 -1.496631 +v -169.315826 -110.621979 -1.500438 +v -165.432739 -115.374458 -3.906771 +v -165.432739 -115.374458 -3.906771 +v -169.315826 -110.621979 -1.500438 +v -169.538422 -111.803551 -3.489741 +v -169.315826 -110.621979 -1.500438 +v -169.652954 -110.360443 -1.500827 +v -169.538422 -111.803551 -3.489741 +v -169.538422 -111.803551 -3.489741 +v -169.652954 -110.360443 -1.500827 +v -171.129089 -109.213722 -1.502696 +v -154.111511 -122.329681 -1.492130 +v -160.458160 -117.458786 -1.493846 +v -161.323364 -118.942192 -4.312319 +v -160.458160 -117.458786 -1.493846 +v -161.198303 -116.889557 -1.494174 +v -161.323364 -118.942192 -4.312319 +v -161.323364 -118.942192 -4.312319 +v -161.198303 -116.889557 -1.494174 +v -165.245087 -113.771347 -1.496631 +v -161.464722 -121.283943 -7.525141 +v -153.282867 -128.977966 -8.825084 +v -153.299469 -125.894882 -5.081348 +v -185.703140 -99.916954 -6.898806 +v -185.567062 -100.064392 -6.939280 +v -185.019730 -99.815643 -5.318820 +v -185.567062 -100.064392 -6.939280 +v -183.406631 -102.404869 -7.578935 +v -185.019730 -99.815643 -5.318820 +v -185.019730 -99.815643 -5.318820 +v -183.406631 -102.404869 -7.578935 +v -182.900345 -101.982162 -5.844294 +v -183.406631 -102.404869 -7.578935 +v -181.245773 -104.745789 -8.213961 +v -182.900345 -101.982162 -5.844294 +v -182.900345 -101.982162 -5.844294 +v -181.245773 -104.745789 -8.213961 +v -180.778671 -104.148621 -6.359210 +v -181.245773 -104.745789 -8.213961 +v -179.084610 -107.087059 -8.845102 +v -180.778671 -104.148621 -6.359210 +v -180.778671 -104.148621 -6.359210 +v -179.084610 -107.087059 -8.845102 +v -178.654861 -106.314751 -6.865526 +v -179.084610 -107.087059 -8.845102 +v -176.923187 -109.428604 -9.472957 +v -178.654861 -106.314751 -6.865526 +v -178.654861 -106.314751 -6.865526 +v -176.923187 -109.428604 -9.472957 +v -176.529083 -108.480400 -7.364787 +v -176.923187 -109.428604 -9.472957 +v -174.863312 -111.660149 -10.068644 +v -176.529083 -108.480400 -7.364787 +v -176.529083 -108.480400 -7.364787 +v -174.863312 -111.660149 -10.068644 +v -174.401550 -110.645523 -7.858195 +v -174.863312 -111.660149 -10.068644 +v -170.243683 -116.664734 -11.396892 +v -174.401550 -110.645523 -7.858195 +v -153.252411 -135.071945 -16.224909 +v -153.267090 -132.061356 -12.569209 +v -161.747711 -125.868698 -13.819559 +v -153.267090 -132.061356 -12.569209 +v -161.608154 -123.624969 -10.738367 +v -161.747711 -125.868698 -13.819559 +v -161.747711 -125.868698 -13.819559 +v -161.608154 -123.624969 -10.738367 +v -166.091156 -121.163300 -12.583697 +v -161.608154 -123.624969 -10.738367 +v -165.877075 -119.300491 -9.789935 +v -166.091156 -121.163300 -12.583697 +v -166.091156 -121.163300 -12.583697 +v -165.877075 -119.300491 -9.789935 +v -170.141876 -114.974083 -8.831119 +v -165.877075 -119.300491 -9.789935 +v -169.838684 -113.389442 -6.160251 +v -170.141876 -114.974083 -8.831119 +v -170.141876 -114.974083 -8.831119 +v -169.838684 -113.389442 -6.160251 +v -174.018707 -109.438034 -5.457331 +v -153.316498 -122.885239 -1.426769 +v -154.111511 -122.329681 -1.492130 +v -153.299469 -125.894882 -5.081348 +v -154.111511 -122.329681 -1.492130 +v -161.323364 -118.942192 -4.312319 +v -153.299469 -125.894882 -5.081348 +v -153.299469 -125.894882 -5.081348 +v -161.323364 -118.942192 -4.312319 +v -161.464722 -121.283943 -7.525141 +v -161.323364 -118.942192 -4.312319 +v -165.432739 -115.374458 -3.906771 +v -161.464722 -121.283943 -7.525141 +v -161.464722 -121.283943 -7.525141 +v -165.432739 -115.374458 -3.906771 +v -165.653656 -117.337944 -6.848155 +v -165.432739 -115.374458 -3.906771 +v -169.538422 -111.803551 -3.489741 +v -165.653656 -117.337944 -6.848155 +v -184.438614 -99.545944 -3.582926 +v -184.150284 -99.409599 -2.714381 +v -185.477737 -98.556076 -3.380305 +v -184.150284 -99.409599 -2.714381 +v -185.179703 -98.466240 -2.544017 +v -185.477737 -98.556076 -3.380305 +v -184.438614 -99.545944 -3.582926 +v -182.358749 -101.525620 -3.977412 +v -184.150284 -99.409599 -2.714381 +v -182.358749 -101.525620 -3.977412 +v -183.863602 -99.272179 -1.845385 +v -184.150284 -99.409599 -2.714381 +v -184.150284 -99.409599 -2.714381 +v -183.863602 -99.272179 -1.845385 +v -185.179703 -98.466240 -2.544017 +v -183.863602 -99.272179 -1.845385 +v -184.883438 -98.375206 -1.707118 +v -185.179703 -98.466240 -2.544017 +v -153.267090 -132.061356 -12.569209 +v -153.282867 -128.977966 -8.825084 +v -161.608154 -123.624969 -10.738367 +v -153.282867 -128.977966 -8.825084 +v -161.464722 -121.283943 -7.525141 +v -161.608154 -123.624969 -10.738367 +v -161.608154 -123.624969 -10.738367 +v -161.464722 -121.283943 -7.525141 +v -165.877075 -119.300491 -9.789935 +v -161.464722 -121.283943 -7.525141 +v -165.653656 -117.337944 -6.848155 +v -165.877075 -119.300491 -9.789935 +v -165.877075 -119.300491 -9.789935 +v -165.653656 -117.337944 -6.848155 +v -169.838684 -113.389442 -6.160251 +v -165.653656 -117.337944 -6.848155 +v -169.538422 -111.803551 -3.489741 +v -169.838684 -113.389442 -6.160251 +v -169.838684 -113.389442 -6.160251 +v -169.538422 -111.803551 -3.489741 +v -174.018707 -109.438034 -5.457331 +v -169.538422 -111.803551 -3.489741 +v -173.639374 -108.228836 -3.056697 +v -174.018707 -109.438034 -5.457331 +v -174.018707 -109.438034 -5.457331 +v -173.639374 -108.228836 -3.056697 +v -176.106476 -107.461113 -5.098391 +v -173.639374 -108.228836 -3.056697 +v -175.687759 -106.439827 -2.832102 +v -176.106476 -107.461113 -5.098391 +v -176.106476 -107.461113 -5.098391 +v -175.687759 -106.439827 -2.832102 +v -178.192520 -105.483383 -4.733088 +v -175.687759 -106.439827 -2.832102 +v -177.734512 -104.649643 -2.600542 +v -178.192520 -105.483383 -4.733088 +v -178.192520 -105.483383 -4.733088 +v -177.734512 -104.649643 -2.600542 +v -180.276688 -103.504845 -4.360018 +v -177.734512 -104.649643 -2.600542 +v -179.779495 -102.858238 -2.360415 +v -180.276688 -103.504845 -4.360018 +v -180.276688 -103.504845 -4.360018 +v -179.779495 -102.858238 -2.360415 +v -182.358749 -101.525620 -3.977412 +v -179.779495 -102.858238 -2.360415 +v -181.822556 -101.065681 -2.109622 +v -182.358749 -101.525620 -3.977412 +v -182.358749 -101.525620 -3.977412 +v -181.822556 -101.065681 -2.109622 +v -183.863602 -99.272179 -1.845385 +v -181.822556 -101.065681 -2.109622 +v -183.762741 -99.222572 -1.536342 +v -183.863602 -99.272179 -1.845385 +v -183.863602 -99.272179 -1.845385 +v -183.762741 -99.222572 -1.536342 +v -183.941238 -99.077583 -1.537196 +v -185.409439 -97.830566 -1.419741 +v -185.495804 -97.836243 -1.621287 +v -184.883438 -98.375206 -1.707118 +v -185.495804 -97.836243 -1.621287 +v -185.842484 -97.857956 -2.430239 +v -184.883438 -98.375206 -1.707118 +v -184.883438 -98.375206 -1.707118 +v -185.842484 -97.857956 -2.430239 +v -185.179703 -98.466240 -2.544017 +v -185.842484 -97.857956 -2.430239 +v -186.188431 -97.878090 -3.237422 +v -185.179703 -98.466240 -2.544017 +v -185.179703 -98.466240 -2.544017 +v -186.188431 -97.878090 -3.237422 +v -185.477737 -98.556076 -3.380305 +v -186.188431 -97.878090 -3.237422 +v -186.533585 -97.896790 -4.042803 +v -185.477737 -98.556076 -3.380305 +v -185.477737 -98.556076 -3.380305 +v -186.533585 -97.896790 -4.042803 +v -184.438614 -99.545944 -3.582926 +v -186.533585 -97.896790 -4.042803 +v -184.728500 -99.681274 -4.451052 +v -184.438614 -99.545944 -3.582926 +v -184.438614 -99.545944 -3.582926 +v -184.728500 -99.681274 -4.451052 +v -182.358749 -101.525620 -3.977412 +v -184.728500 -99.681274 -4.451052 +v -182.900345 -101.982162 -5.844294 +v -182.358749 -101.525620 -3.977412 +v -182.358749 -101.525620 -3.977412 +v -182.900345 -101.982162 -5.844294 +v -180.276688 -103.504845 -4.360018 +v -182.900345 -101.982162 -5.844294 +v -180.778671 -104.148621 -6.359210 +v -180.276688 -103.504845 -4.360018 +v -180.276688 -103.504845 -4.360018 +v -180.778671 -104.148621 -6.359210 +v -178.192520 -105.483383 -4.733088 +v -180.778671 -104.148621 -6.359210 +v -178.654861 -106.314751 -6.865526 +v -178.192520 -105.483383 -4.733088 +v -178.192520 -105.483383 -4.733088 +v -178.654861 -106.314751 -6.865526 +v -176.106476 -107.461113 -5.098391 +v -178.654861 -106.314751 -6.865526 +v -176.529083 -108.480400 -7.364787 +v -176.106476 -107.461113 -5.098391 +v -176.106476 -107.461113 -5.098391 +v -176.529083 -108.480400 -7.364787 +v -174.018707 -109.438034 -5.457331 +v -176.529083 -108.480400 -7.364787 +v -174.401550 -110.645523 -7.858195 +v -174.018707 -109.438034 -5.457331 +v -174.018707 -109.438034 -5.457331 +v -174.401550 -110.645523 -7.858195 +v -170.141876 -114.974083 -8.831119 +v -174.401550 -110.645523 -7.858195 +v -170.243683 -116.664734 -11.396892 +v -170.141876 -114.974083 -8.831119 +v -170.141876 -114.974083 -8.831119 +v -170.243683 -116.664734 -11.396892 +v -166.091156 -121.163300 -12.583697 +v 160.228638 -116.395905 -4.707498 +v 157.571091 -107.447922 -5.760202 +v 163.524033 -114.003532 -4.988954 +v 157.571091 -107.447922 -5.760202 +v 159.567749 -105.451286 -5.995095 +v 163.524033 -114.003532 -4.988954 +v 163.524033 -114.003532 -4.988954 +v 159.567749 -105.451286 -5.995095 +v 167.658310 -110.952873 -5.347849 +v -167.658234 -110.952843 -5.347819 +v -159.567642 -105.451256 -5.995069 +v -163.523956 -114.003502 -4.988925 +v -159.567642 -105.451256 -5.995069 +v -157.571014 -107.447891 -5.760174 +v -163.523956 -114.003502 -4.988925 +v -163.523956 -114.003502 -4.988925 +v -157.571014 -107.447891 -5.760174 +v -160.228577 -116.395874 -4.707469 +v -157.571014 -107.447891 -5.760174 +v -156.716522 -118.915443 -4.411045 +v -160.228577 -116.395874 -4.707469 +v 160.228638 -116.395905 -4.707498 +v 156.716568 -118.915474 -4.411072 +v 157.571091 -107.447922 -5.760202 +v 156.716568 -118.915474 -4.411072 +v 152.620651 -121.822601 -4.069061 +v 157.571091 -107.447922 -5.760202 +v 157.571091 -107.447922 -5.760202 +v 152.620651 -121.822601 -4.069061 +v -157.571014 -107.447891 -5.760174 +v 152.620651 -121.822601 -4.069061 +v -152.620575 -121.822571 -4.069034 +v -157.571014 -107.447891 -5.760174 +v -157.571014 -107.447891 -5.760174 +v -152.620575 -121.822571 -4.069034 +v -156.716522 -118.915443 -4.411045 +v -185.409439 -97.830566 -1.419741 +v -183.941238 -99.077583 -1.537196 +v -185.409424 115.052109 -1.419757 +v -183.941238 -99.077583 -1.537196 +v -180.995377 -99.075989 -1.772868 +v -185.409424 115.052109 -1.419757 +v -162.099808 -99.046623 -3.284512 +v -162.099792 115.052109 -3.284528 +v -169.582657 -99.065201 -2.685879 +v -162.099792 115.052109 -3.284528 +v -185.409424 115.052109 -1.419757 +v -169.582657 -99.065201 -2.685879 +v -169.582657 -99.065201 -2.685879 +v -185.409424 115.052109 -1.419757 +v -174.699203 -99.071297 -2.276561 +v -185.409424 115.052109 -1.419757 +v -180.995377 -99.075989 -1.772868 +v -174.699203 -99.071297 -2.276561 +v -184.999954 -96.992966 -12.173396 +v -184.999954 -96.992966 -6.970957 +v -184.726639 -97.289047 -7.058482 +v -184.726639 -97.289047 -7.058482 +v -183.199326 -98.943649 -7.544024 +v -184.999954 -96.992966 -12.173396 +v -183.199326 -98.943649 -7.544024 +v -181.155319 -101.157990 -8.185221 +v -184.999954 -96.992966 -12.173396 +v -184.999954 -96.992966 -12.173396 +v -181.155319 -101.157990 -8.185221 +v -179.112015 -103.371590 -8.817804 +v -175.019043 -107.805641 -10.064578 +v -172.967499 -110.028160 -10.681247 +v -184.999954 -96.992966 -12.173396 +v -179.112015 -103.371590 -8.817804 +v -177.341934 -105.289139 -9.359987 +v -184.999954 -96.992966 -12.173396 +v -177.341934 -105.289139 -9.359987 +v -177.068649 -105.585220 -9.443278 +v -184.999954 -96.992966 -12.173396 +v -184.999954 -96.992966 -12.173396 +v -177.068649 -105.585220 -9.443278 +v -175.019043 -107.805641 -10.064578 +v -172.967499 -110.028160 -10.681247 +v -168.858765 -114.479279 -11.903369 +v -184.999954 -96.992966 -12.173396 +v -168.858765 -114.479279 -11.903369 +v -168.492676 -114.875877 -12.011546 +v -184.999954 -96.992966 -12.173396 +v -184.999954 -96.992966 -12.173396 +v -168.492676 -114.875877 -12.011546 +v -153.999969 -130.576309 -20.784512 +v -168.492676 -114.875877 -12.011546 +v -164.736725 -118.944801 -13.115718 +v -153.999969 -130.576309 -20.784512 +v -153.999969 -130.576309 -20.784512 +v -164.736725 -118.944801 -13.115718 +v -160.604706 -123.421188 -14.320429 +v -151.810822 -132.947891 -17.578333 +v -151.810822 -132.947891 -20.784512 +v -152.510620 -132.189758 -16.657755 +v -151.810822 -132.947891 -20.784512 +v -153.999969 -130.576309 -20.784512 +v -152.510620 -132.189758 -16.657755 +v -152.510620 -132.189758 -16.657755 +v -153.999969 -130.576309 -20.784512 +v -155.410187 -129.048599 -15.823330 +v -153.999969 -130.576309 -20.784512 +v -160.604706 -123.421188 -14.320429 +v -155.410187 -129.048599 -15.823330 +v 154.000031 -130.576340 -20.784538 +v 154.000031 -134.262115 -20.784538 +v 151.810867 -132.947922 -20.784538 +v 154.000031 -134.262115 -20.784538 +v 152.905457 -135.447922 -20.784538 +v 151.810867 -132.947922 -20.784538 +v 151.810867 -132.947922 -20.784538 +v 152.905457 -135.447922 -20.784538 +v -151.810822 -132.947891 -20.784512 +v 152.905457 -135.447922 -20.784538 +v -152.905396 -135.447891 -20.784512 +v -151.810822 -132.947891 -20.784512 +v -151.810822 -132.947891 -20.784512 +v -152.905396 -135.447891 -20.784512 +v -153.999969 -130.576309 -20.784512 +v -152.905396 -135.447891 -20.784512 +v -153.999969 -134.262085 -20.784512 +v -153.999969 -130.576309 -20.784512 +v 151.810867 -132.947922 -17.578360 +v 151.810867 -132.947922 -20.784538 +v -151.810822 -132.947891 -17.578333 +v 151.810867 -132.947922 -20.784538 +v -151.810822 -132.947891 -20.784512 +v -151.810822 -132.947891 -17.578333 +v -174.905838 -104.679176 -4.768015 +v -174.137283 -105.347916 -4.829501 +v -174.398148 -106.079140 -6.386898 +v -156.716522 -118.915443 -4.411045 +v -152.620575 -121.822571 -4.069034 +v -152.591644 -124.382614 -7.177654 +v -155.410187 -129.048599 -15.823330 +v -160.604706 -123.421188 -14.320429 +v -160.504089 -121.540482 -11.748446 +v -152.536041 -129.628418 -13.547542 +v -152.510620 -132.189758 -16.657755 +v -155.410187 -129.048599 -15.823330 +v -155.410187 -129.048599 -15.823330 +v -160.504089 -121.540482 -11.748446 +v -152.536041 -129.628418 -13.547542 +v -160.504089 -121.540482 -11.748446 +v -160.399506 -119.531502 -9.003009 +v -152.536041 -129.628418 -13.547542 +v -152.536041 -129.628418 -13.547542 +v -160.399506 -119.531502 -9.003009 +v -152.563263 -127.005280 -10.362323 +v -167.658234 -110.952843 -5.347819 +v -163.523956 -114.003502 -4.988925 +v -164.243652 -113.995384 -5.765246 +v -163.523956 -114.003502 -4.988925 +v -160.228577 -116.395874 -4.707469 +v -164.243652 -113.995384 -5.765246 +v -156.716522 -118.915443 -4.411045 +v -152.591644 -124.382614 -7.177654 +v -160.228577 -116.395874 -4.707469 +v -152.591644 -124.382614 -7.177654 +v -160.298004 -117.521454 -6.258166 +v -160.228577 -116.395874 -4.707469 +v -160.228577 -116.395874 -4.707469 +v -160.298004 -117.521454 -6.258166 +v -164.243652 -113.995384 -5.765246 +v -160.298004 -117.521454 -6.258166 +v -164.409515 -115.694084 -8.285655 +v -164.243652 -113.995384 -5.765246 +v -164.243652 -113.995384 -5.765246 +v -164.409515 -115.694084 -8.285655 +v -167.658234 -110.952843 -5.347819 +v -164.409515 -115.694084 -8.285655 +v -168.412140 -111.852119 -7.548061 +v -167.658234 -110.952843 -5.347819 +v -167.658234 -110.952843 -5.347819 +v -168.412140 -111.852119 -7.548061 +v -168.184784 -110.499069 -5.305698 +v -168.412140 -111.852119 -7.548061 +v -172.405548 -108.004906 -6.782969 +v -168.184784 -110.499069 -5.305698 +v -168.184784 -110.499069 -5.305698 +v -172.405548 -108.004906 -6.782969 +v -172.143448 -107.078369 -4.989009 +v -174.905838 -104.679176 -4.768015 +v -174.398148 -106.079140 -6.386898 +v -176.130814 -103.610924 -4.670016 +v -182.333908 -98.362343 -4.661899 +v -182.193558 -98.264458 -4.184993 +v -180.355759 -100.293221 -5.120349 +v -182.193558 -98.264458 -4.184993 +v -181.138748 -99.203835 -4.269382 +v -180.355759 -100.293221 -5.120349 +v -182.792130 -98.673447 -6.197032 +v -184.841568 -96.908249 -6.441241 +v -183.913895 -96.816910 -4.276690 +v -184.999954 -96.992966 -6.970957 +v -184.999954 -96.922340 -6.810801 +v -184.726639 -97.289047 -7.058482 +v -184.999954 -96.922340 -6.810801 +v -184.841568 -96.908249 -6.441241 +v -184.726639 -97.289047 -7.058482 +v -184.726639 -97.289047 -7.058482 +v -184.841568 -96.908249 -6.441241 +v -183.199326 -98.943649 -7.544024 +v -184.841568 -96.908249 -6.441241 +v -182.792130 -98.673447 -6.197032 +v -183.199326 -98.943649 -7.544024 +v -182.792130 -98.673447 -6.197032 +v -180.782211 -100.756393 -6.760554 +v -183.199326 -98.943649 -7.544024 +v -183.199326 -98.943649 -7.544024 +v -180.782211 -100.756393 -6.760554 +v -181.155319 -101.157990 -8.185221 +v -180.782211 -100.756393 -6.760554 +v -178.768143 -102.839027 -7.305438 +v -181.155319 -101.157990 -8.185221 +v -181.155319 -101.157990 -8.185221 +v -178.768143 -102.839027 -7.305438 +v -179.112015 -103.371590 -8.817804 +v -179.112015 -103.371590 -8.817804 +v -178.768143 -102.839027 -7.305438 +v -177.341934 -105.289139 -9.359987 +v -178.768143 -102.839027 -7.305438 +v -176.750229 -104.920959 -7.835024 +v -177.341934 -105.289139 -9.359987 +v -177.341934 -105.289139 -9.359987 +v -176.750229 -104.920959 -7.835024 +v -177.068649 -105.585220 -9.443278 +v -168.492676 -114.875877 -12.011546 +v -168.858765 -114.479279 -11.903369 +v -168.646210 -113.238686 -9.845492 +v -168.858765 -114.479279 -11.903369 +v -172.967499 -110.028160 -10.681247 +v -168.646210 -113.238686 -9.845492 +v -168.646210 -113.238686 -9.845492 +v -172.967499 -110.028160 -10.681247 +v -172.704071 -109.081924 -8.858256 +v -160.604706 -123.421188 -14.320429 +v -164.736725 -118.944801 -13.115718 +v -160.504089 -121.540482 -11.748446 +v -164.736725 -118.944801 -13.115718 +v -164.409515 -115.694084 -8.285655 +v -160.504089 -121.540482 -11.748446 +v -160.504089 -121.540482 -11.748446 +v -164.409515 -115.694084 -8.285655 +v -160.399506 -119.531502 -9.003009 +v -164.409515 -115.694084 -8.285655 +v -160.298004 -117.521454 -6.258166 +v -160.399506 -119.531502 -9.003009 +v -160.399506 -119.531502 -9.003009 +v -160.298004 -117.521454 -6.258166 +v -152.563263 -127.005280 -10.362323 +v -160.298004 -117.521454 -6.258166 +v -152.591644 -124.382614 -7.177654 +v -152.563263 -127.005280 -10.362323 +v -175.019043 -107.805641 -10.064578 +v -177.068649 -105.585220 -9.443278 +v -174.728745 -107.001961 -8.351939 +v -177.068649 -105.585220 -9.443278 +v -176.750229 -104.920959 -7.835024 +v -174.728745 -107.001961 -8.351939 +v -174.728745 -107.001961 -8.351939 +v -176.750229 -104.920959 -7.835024 +v -176.387589 -104.151886 -5.979441 +v -176.750229 -104.920959 -7.835024 +v -178.768143 -102.839027 -7.305438 +v -176.387589 -104.151886 -5.979441 +v -176.387589 -104.151886 -5.979441 +v -178.768143 -102.839027 -7.305438 +v -178.373550 -102.223190 -5.558252 +v -178.768143 -102.839027 -7.305438 +v -180.782211 -100.756393 -6.760554 +v -178.373550 -102.223190 -5.558252 +v -178.373550 -102.223190 -5.558252 +v -180.782211 -100.756393 -6.760554 +v -180.355759 -100.293221 -5.120349 +v -180.782211 -100.756393 -6.760554 +v -182.792130 -98.673447 -6.197032 +v -180.355759 -100.293221 -5.120349 +v -180.355759 -100.293221 -5.120349 +v -182.792130 -98.673447 -6.197032 +v -182.333908 -98.362343 -4.661899 +v -182.792130 -98.673447 -6.197032 +v -183.913895 -96.816910 -4.276690 +v -182.333908 -98.362343 -4.661899 +v -182.333908 -98.362343 -4.661899 +v -183.913895 -96.816910 -4.276690 +v -182.193558 -98.264458 -4.184993 +v -183.913895 -96.816910 -4.276690 +v -183.818893 -96.806618 -4.054972 +v -182.193558 -98.264458 -4.184993 +v -181.138748 -99.203835 -4.269382 +v -180.156448 -100.074562 -4.347964 +v -180.355759 -100.293221 -5.120349 +v -180.156448 -100.074562 -4.347964 +v -178.135147 -101.855827 -4.509668 +v -180.355759 -100.293221 -5.120349 +v -180.355759 -100.293221 -5.120349 +v -178.135147 -101.855827 -4.509668 +v -178.373550 -102.223190 -5.558252 +v -178.135147 -101.855827 -4.509668 +v -176.130814 -103.610924 -4.670016 +v -178.373550 -102.223190 -5.558252 +v -178.373550 -102.223190 -5.558252 +v -176.130814 -103.610924 -4.670016 +v -176.387589 -104.151886 -5.979441 +v -176.130814 -103.610924 -4.670016 +v -174.398148 -106.079140 -6.386898 +v -176.387589 -104.151886 -5.979441 +v -176.387589 -104.151886 -5.979441 +v -174.398148 -106.079140 -6.386898 +v -174.728745 -107.001961 -8.351939 +v -174.398148 -106.079140 -6.386898 +v -172.704071 -109.081924 -8.858256 +v -174.728745 -107.001961 -8.351939 +v -174.728745 -107.001961 -8.351939 +v -172.704071 -109.081924 -8.858256 +v -175.019043 -107.805641 -10.064578 +v -172.704071 -109.081924 -8.858256 +v -172.967499 -110.028160 -10.681247 +v -175.019043 -107.805641 -10.064578 +v -164.736725 -118.944801 -13.115718 +v -168.492676 -114.875877 -12.011546 +v -164.409515 -115.694084 -8.285655 +v -168.492676 -114.875877 -12.011546 +v -168.646210 -113.238686 -9.845492 +v -164.409515 -115.694084 -8.285655 +v -164.409515 -115.694084 -8.285655 +v -168.646210 -113.238686 -9.845492 +v -168.412140 -111.852119 -7.548061 +v -168.646210 -113.238686 -9.845492 +v -172.704071 -109.081924 -8.858256 +v -168.412140 -111.852119 -7.548061 +v -168.412140 -111.852119 -7.548061 +v -172.704071 -109.081924 -8.858256 +v -172.405548 -108.004906 -6.782969 +v -172.704071 -109.081924 -8.858256 +v -174.398148 -106.079140 -6.386898 +v -172.405548 -108.004906 -6.782969 +v -172.405548 -108.004906 -6.782969 +v -174.398148 -106.079140 -6.386898 +v -172.143448 -107.078369 -4.989009 +v -174.398148 -106.079140 -6.386898 +v -174.137283 -105.347916 -4.829501 +v -172.143448 -107.078369 -4.989009 +v -167.658234 -110.952843 -5.347819 +v -168.184784 -110.499069 -5.305698 +v -159.567642 -105.451256 -5.995069 +v -168.184784 -110.499069 -5.305698 +v -162.499954 -102.518959 -5.760487 +v -159.567642 -105.451256 -5.995069 +v -174.905838 -104.679176 -4.768015 +v -162.499939 115.052109 -5.760503 +v -174.137283 -105.347916 -4.829501 +v -162.499939 115.052109 -5.760503 +v -162.499954 -102.518959 -5.760487 +v -174.137283 -105.347916 -4.829501 +v -174.137283 -105.347916 -4.829501 +v -162.499954 -102.518959 -5.760487 +v -172.143448 -107.078369 -4.989009 +v -162.499954 -102.518959 -5.760487 +v -168.184784 -110.499069 -5.305698 +v -172.143448 -107.078369 -4.989009 +v -174.905838 -104.679176 -4.768015 +v -176.130814 -103.610924 -4.670016 +v -162.499939 115.052109 -5.760503 +v -176.130814 -103.610924 -4.670016 +v -178.135147 -101.855827 -4.509668 +v -162.499939 115.052109 -5.760503 +v -162.499939 115.052109 -5.760503 +v -178.135147 -101.855827 -4.509668 +v -180.156448 -100.074562 -4.347964 +v -183.818893 -96.806618 -4.054972 +v -183.818878 115.052109 -4.054988 +v -182.193558 -98.264458 -4.184993 +v -183.818878 115.052109 -4.054988 +v -162.499939 115.052109 -5.760503 +v -182.193558 -98.264458 -4.184993 +v -182.193558 -98.264458 -4.184993 +v -162.499939 115.052109 -5.760503 +v -181.138748 -99.203835 -4.269382 +v -162.499939 115.052109 -5.760503 +v -180.156448 -100.074562 -4.347964 +v -181.138748 -99.203835 -4.269382 +v 153.316559 -122.885269 -1.426796 +v 154.111572 -122.329712 -1.492157 +v 154.122803 -112.603661 -2.636399 +v -154.122742 -112.603630 -2.636372 +v -154.111511 -122.329681 -1.492130 +v -153.316498 -122.885239 -1.426769 +v -153.316498 -122.885239 -1.426769 +v 153.316559 -122.885269 -1.426796 +v -154.122742 -112.603630 -2.636372 +v 153.316559 -122.885269 -1.426796 +v 154.122803 -112.603661 -2.636399 +v -154.122742 -112.603630 -2.636372 +v -154.122742 -112.603630 -2.636372 +v 154.122803 -112.603661 -2.636399 +v -154.148178 -107.094444 -3.284512 +v 154.122803 -112.603661 -2.636399 +v 154.148270 -107.094475 -3.284539 +v -154.148178 -107.094444 -3.284512 +v -153.999969 -130.576309 -20.784512 +v -153.999969 -134.262085 -20.784512 +v -184.999954 -96.992966 -12.173396 +v -153.999969 -134.262085 -20.784512 +v -187.499954 -97.970436 -11.478952 +v -184.999954 -96.992966 -12.173396 +v -184.999954 -96.992966 -12.173396 +v -187.499954 -97.970436 -11.478952 +v -184.999939 115.052109 -12.173411 +v -187.499954 -97.970436 -11.478952 +v -187.499939 115.052109 -11.478969 +v -184.999939 115.052109 -12.173411 +v 185.000061 115.052078 -12.173444 +v 187.500061 115.052078 -11.479001 +v 185.000046 -96.992996 -12.173429 +v 187.500061 115.052078 -11.479001 +v 187.500046 -97.970467 -11.478985 +v 185.000046 -96.992996 -12.173429 +v 185.000046 -96.992996 -12.173429 +v 187.500046 -97.970467 -11.478985 +v 154.000031 -130.576340 -20.784538 +v 187.500046 -97.970467 -11.478985 +v 154.000031 -134.262115 -20.784538 +v 154.000031 -130.576340 -20.784538 +v -184.999954 -96.992966 -12.173396 +v -184.999939 115.052109 -12.173411 +v -184.999954 -96.992966 -6.970957 +v -184.999939 115.052109 -12.173411 +v -184.999939 115.052109 -6.810817 +v -184.999954 -96.992966 -6.970957 +v -184.999954 -96.992966 -6.970957 +v -184.999939 115.052109 -6.810817 +v -184.999954 -96.922340 -6.810801 +v 183.818985 -96.806648 -4.055005 +v 183.819000 115.052078 -4.055021 +v 183.913986 -96.816940 -4.276723 +v 183.819000 115.052078 -4.055021 +v 185.000061 115.052078 -6.810850 +v 183.913986 -96.816940 -4.276723 +v 183.913986 -96.816940 -4.276723 +v 185.000061 115.052078 -6.810850 +v 184.841660 -96.908279 -6.441273 +v 185.000061 115.052078 -6.810850 +v 185.000046 -96.922371 -6.810834 +v 184.841660 -96.908279 -6.441273 +v -103.356987 -106.447899 -3.284516 +v -154.783401 -106.447891 -3.284512 +v -154.148178 -107.094444 -3.284512 +v 154.148270 -107.094475 -3.284539 +v 154.783508 -106.447922 -3.284539 +v 103.357063 -106.447914 -3.284535 +v 103.357063 -106.447914 -3.284535 +v 51.678551 -106.447914 -3.284530 +v 154.148270 -107.094475 -3.284539 +v 51.678551 -106.447914 -3.284530 +v 0.000038 -106.447906 -3.284526 +v 154.148270 -107.094475 -3.284539 +v 154.148270 -107.094475 -3.284539 +v 0.000038 -106.447906 -3.284526 +v -154.148178 -107.094444 -3.284512 +v 0.000038 -106.447906 -3.284526 +v -51.678474 -106.447899 -3.284521 +v -154.148178 -107.094444 -3.284512 +v -154.148178 -107.094444 -3.284512 +v -51.678474 -106.447899 -3.284521 +v -103.356987 -106.447899 -3.284516 +v -158.999954 -103.947891 -6.784513 +v 159.000046 -103.947922 -6.784539 +v 157.571091 -107.447922 -6.784539 +v 157.571091 -107.447922 -6.784539 +v -157.571014 -107.447891 -6.784512 +v -158.999954 -103.947891 -6.784513 +v -157.571014 -107.447891 -6.784512 +v -162.499954 -102.518959 -6.784512 +v -158.999954 -103.947891 -6.784513 +v -158.999954 -103.947891 -6.784513 +v -162.499954 -102.518959 -6.784512 +v -158.999939 113.052109 -6.784529 +v -162.499954 -102.518959 -6.784512 +v -162.499939 115.052109 -6.784528 +v -158.999939 113.052109 -6.784529 +v -158.999939 113.052109 -6.784529 +v -162.499939 115.052109 -6.784528 +v 159.000061 113.052078 -6.784555 +v -162.499939 115.052109 -6.784528 +v 162.500061 115.052078 -6.784557 +v 159.000061 113.052078 -6.784555 +v 159.000061 113.052078 -6.784555 +v 162.500061 115.052078 -6.784557 +v 159.000046 -103.947922 -6.784539 +v 162.500061 115.052078 -6.784557 +v 162.500046 -102.518990 -6.784540 +v 159.000046 -103.947922 -6.784539 +v 159.000046 -103.947922 -6.784539 +v 162.500046 -102.518990 -6.784540 +v 157.571091 -107.447922 -6.784539 +v 162.500061 115.052078 -6.784557 +v -162.499939 115.052109 -6.784528 +v 162.500061 115.052078 -5.760532 +v -162.499939 115.052109 -6.784528 +v -162.499939 115.052109 -5.760503 +v 162.500061 115.052078 -5.760532 +v 187.500061 115.052078 -11.479001 +v 185.000061 115.052078 -12.173444 +v 187.500061 115.052078 -6.297704 +v 185.000061 115.052078 -12.173444 +v 185.000061 115.052078 -6.810850 +v 187.500061 115.052078 -6.297704 +v 187.500061 115.052078 -6.297704 +v 185.000061 115.052078 -6.810850 +v 185.409531 115.052078 -1.419790 +v 185.000061 115.052078 -6.810850 +v 183.819000 115.052078 -4.055021 +v 185.409531 115.052078 -1.419790 +v 185.409531 115.052078 -1.419790 +v 183.819000 115.052078 -4.055021 +v 162.099899 115.052078 -3.284557 +v 183.819000 115.052078 -4.055021 +v 162.500061 115.052078 -5.760532 +v 162.099899 115.052078 -3.284557 +v 162.099899 115.052078 -3.284557 +v 162.500061 115.052078 -5.760532 +v 161.500061 115.052078 -3.284557 +v -184.999939 115.052109 -12.173411 +v -187.499939 115.052109 -11.478969 +v -184.999939 115.052109 -6.810817 +v -187.499939 115.052109 -11.478969 +v -187.499939 115.052109 -6.297672 +v -184.999939 115.052109 -6.810817 +v -184.999939 115.052109 -6.810817 +v -187.499939 115.052109 -6.297672 +v -183.818878 115.052109 -4.054988 +v -187.499939 115.052109 -6.297672 +v -185.409424 115.052109 -1.419757 +v -183.818878 115.052109 -4.054988 +v -183.818878 115.052109 -4.054988 +v -185.409424 115.052109 -1.419757 +v -162.499939 115.052109 -5.760503 +v -185.409424 115.052109 -1.419757 +v -162.099792 115.052109 -3.284528 +v -162.499939 115.052109 -5.760503 +v 161.500061 115.052078 -3.284557 +v 162.500061 115.052078 -5.760532 +v 161.500061 115.052078 -4.284557 +v 162.500061 115.052078 -5.760532 +v -162.499939 115.052109 -5.760503 +v 161.500061 115.052078 -4.284557 +v 161.500061 115.052078 -4.284557 +v -162.499939 115.052109 -5.760503 +v -161.499939 115.052109 -4.284528 +v -162.499939 115.052109 -5.760503 +v -162.099792 115.052109 -3.284528 +v -161.499939 115.052109 -4.284528 +v -161.499939 115.052109 -4.284528 +v -162.099792 115.052109 -3.284528 +v -161.499939 115.052109 -3.284528 +v 154.783508 -106.447922 -3.284539 +v 155.035583 -106.447922 -3.255738 +v 155.035583 -106.447922 -4.284539 +v 154.783508 -106.447922 -3.284539 +v 155.035583 -106.447922 -4.284539 +v 103.357063 -106.447914 -3.284535 +v 155.035583 -106.447922 -4.284539 +v 103.357063 -106.447914 -4.284535 +v 103.357063 -106.447914 -3.284535 +v 103.357063 -106.447914 -4.284535 +v 51.678551 -106.447914 -4.284530 +v 103.357063 -106.447914 -3.284535 +v 103.357063 -106.447914 -3.284535 +v 51.678551 -106.447914 -4.284530 +v 51.678551 -106.447914 -3.284530 +v 51.678551 -106.447914 -4.284530 +v 0.000038 -106.447906 -4.284526 +v 51.678551 -106.447914 -3.284530 +v 51.678551 -106.447914 -3.284530 +v 0.000038 -106.447906 -4.284526 +v 0.000038 -106.447906 -3.284526 +v 0.000038 -106.447906 -4.284526 +v -51.678474 -106.447899 -4.284522 +v 0.000038 -106.447906 -3.284526 +v 0.000038 -106.447906 -3.284526 +v -51.678474 -106.447899 -4.284522 +v -51.678474 -106.447899 -3.284521 +v -51.678474 -106.447899 -4.284522 +v -103.356987 -106.447899 -4.284516 +v -51.678474 -106.447899 -3.284521 +v -51.678474 -106.447899 -3.284521 +v -103.356987 -106.447899 -4.284516 +v -103.356987 -106.447899 -3.284516 +v -103.356987 -106.447899 -3.284516 +v -103.356987 -106.447899 -4.284516 +v -154.783401 -106.447891 -3.284512 +v -103.356987 -106.447899 -4.284516 +v -155.035477 -106.447891 -4.284513 +v -154.783401 -106.447891 -3.284512 +v -154.783401 -106.447891 -3.284512 +v -155.035477 -106.447891 -4.284513 +v -155.035477 -106.447891 -3.255711 +v -158.999954 -102.483429 -3.256306 +v -158.999954 -103.947891 -3.115780 +v -158.999954 -102.483429 -4.284513 +v -158.999954 -103.947891 -3.115780 +v -158.999954 -103.947891 -6.784513 +v -158.999954 -102.483429 -4.284513 +v -158.999954 -102.483429 -4.284513 +v -158.999954 -103.947891 -6.784513 +v -158.999939 113.052109 -4.284529 +v -158.999954 -103.947891 -6.784513 +v -158.999939 113.052109 -6.784529 +v -158.999939 113.052109 -4.284529 +v 157.535583 -103.947922 -3.255921 +v 159.000046 -103.947922 -3.115808 +v 157.535583 -103.947922 -4.284539 +v 159.000046 -103.947922 -3.115808 +v 159.000046 -103.947922 -6.784539 +v 157.535583 -103.947922 -4.284539 +v 157.535583 -103.947922 -4.284539 +v 159.000046 -103.947922 -6.784539 +v -157.535477 -103.947891 -4.284513 +v 159.000046 -103.947922 -6.784539 +v -158.999954 -103.947891 -6.784513 +v -157.535477 -103.947891 -4.284513 +v -157.535477 -103.947891 -4.284513 +v -158.999954 -103.947891 -6.784513 +v -157.535477 -103.947891 -3.255894 +v -158.999954 -103.947891 -6.784513 +v -158.999954 -103.947891 -3.115780 +v -157.535477 -103.947891 -3.255894 +v -187.499939 115.052109 -6.297672 +v -187.499954 -97.942810 -6.297656 +v -187.069168 -97.923363 -5.292468 +v -187.069168 -97.923363 -5.292468 +v -186.877975 -97.914192 -4.846377 +v -187.499939 115.052109 -6.297672 +v -186.877975 -97.914192 -4.846377 +v -186.533585 -97.896790 -4.042803 +v -187.499939 115.052109 -6.297672 +v -187.499939 115.052109 -6.297672 +v -186.533585 -97.896790 -4.042803 +v -186.188431 -97.878090 -3.237422 +v -185.409439 -97.830566 -1.419741 +v -185.409424 115.052109 -1.419757 +v -185.495804 -97.836243 -1.621287 +v -185.409424 115.052109 -1.419757 +v -187.499939 115.052109 -6.297672 +v -185.495804 -97.836243 -1.621287 +v -185.495804 -97.836243 -1.621287 +v -187.499939 115.052109 -6.297672 +v -185.842484 -97.857956 -2.430239 +v -187.499939 115.052109 -6.297672 +v -186.188431 -97.878090 -3.237422 +v -185.842484 -97.857956 -2.430239 +v -184.841568 -96.908249 -6.441241 +v -184.999954 -96.922340 -6.810801 +v -184.999939 115.052109 -6.810817 +v -184.841568 -96.908249 -6.441241 +v -184.999939 115.052109 -6.810817 +v -183.913895 -96.816910 -4.276690 +v -184.999939 115.052109 -6.810817 +v -183.818878 115.052109 -4.054988 +v -183.913895 -96.816910 -4.276690 +v -183.913895 -96.816910 -4.276690 +v -183.818878 115.052109 -4.054988 +v -183.818893 -96.806618 -4.054972 +v -162.499954 -102.518959 -5.760487 +v -162.499954 -102.518959 -6.784512 +v -159.567642 -105.451256 -5.995069 +v -162.499954 -102.518959 -6.784512 +v -157.571014 -107.447891 -6.784512 +v -159.567642 -105.451256 -5.995069 +v -159.567642 -105.451256 -5.995069 +v -157.571014 -107.447891 -6.784512 +v -157.571014 -107.447891 -5.760174 +v -152.905396 -135.447891 -16.681421 +v 152.905457 -135.447922 -16.681448 +v -153.252411 -135.071945 -16.224909 +v 152.905457 -135.447922 -16.681448 +v 153.252487 -135.071976 -16.224936 +v -153.252411 -135.071945 -16.224909 +v -153.252411 -135.071945 -16.224909 +v 153.252487 -135.071976 -16.224936 +v -153.267090 -132.061356 -12.569209 +v 153.252487 -135.071976 -16.224936 +v 153.267151 -132.061386 -12.569236 +v -153.267090 -132.061356 -12.569209 +v -153.267090 -132.061356 -12.569209 +v 153.267151 -132.061386 -12.569236 +v -153.282867 -128.977966 -8.825084 +v 153.267151 -132.061386 -12.569236 +v 153.282928 -128.977997 -8.825110 +v -153.282867 -128.977966 -8.825084 +v -153.282867 -128.977966 -8.825084 +v 153.282928 -128.977997 -8.825110 +v -153.299469 -125.894882 -5.081348 +v 153.282928 -128.977997 -8.825110 +v 153.299515 -125.894913 -5.081375 +v -153.299469 -125.894882 -5.081348 +v -153.299469 -125.894882 -5.081348 +v 153.299515 -125.894913 -5.081375 +v -153.316498 -122.885239 -1.426769 +v 153.299515 -125.894913 -5.081375 +v 153.316559 -122.885269 -1.426796 +v -153.316498 -122.885239 -1.426769 +v 175.019104 -107.805672 -10.064609 +v 174.728836 -107.001991 -8.351970 +v 176.750320 -104.920990 -7.835055 +v 155.410233 -129.048630 -15.823356 +v 152.510681 -132.189789 -16.657782 +v 152.536118 -129.628448 -13.547568 +v 184.841660 -96.908279 -6.441273 +v 185.000046 -96.922371 -6.810834 +v 185.000046 -96.992996 -6.970990 +v 182.334000 -98.362373 -4.661930 +v 183.913986 -96.816940 -4.276723 +v 184.841660 -96.908279 -6.441273 +v 183.818985 -96.806648 -4.055005 +v 183.913986 -96.816940 -4.276723 +v 182.193665 -98.264488 -4.185024 +v 183.913986 -96.816940 -4.276723 +v 182.334000 -98.362373 -4.661930 +v 182.193665 -98.264488 -4.185024 +v 182.193665 -98.264488 -4.185024 +v 182.334000 -98.362373 -4.661930 +v 181.138855 -99.203865 -4.269413 +v 182.334000 -98.362373 -4.661930 +v 180.355850 -100.293251 -5.120381 +v 181.138855 -99.203865 -4.269413 +v 181.138855 -99.203865 -4.269413 +v 180.355850 -100.293251 -5.120381 +v 180.156525 -100.074593 -4.347996 +v 180.355850 -100.293251 -5.120381 +v 178.373657 -102.223221 -5.558284 +v 180.156525 -100.074593 -4.347996 +v 180.156525 -100.074593 -4.347996 +v 178.373657 -102.223221 -5.558284 +v 178.135254 -101.855858 -4.509700 +v 167.658310 -110.952873 -5.347849 +v 168.184830 -110.499100 -5.305727 +v 168.412186 -111.852150 -7.548090 +v 168.184830 -110.499100 -5.305727 +v 172.143524 -107.078400 -4.989039 +v 168.412186 -111.852150 -7.548090 +v 168.412186 -111.852150 -7.548090 +v 172.143524 -107.078400 -4.989039 +v 172.405609 -108.004936 -6.783000 +v 172.143524 -107.078400 -4.989039 +v 174.137375 -105.347946 -4.829531 +v 172.405609 -108.004936 -6.783000 +v 172.405609 -108.004936 -6.783000 +v 174.137375 -105.347946 -4.829531 +v 174.398224 -106.079170 -6.386928 +v 174.137375 -105.347946 -4.829531 +v 174.905914 -104.679207 -4.768046 +v 174.398224 -106.079170 -6.386928 +v 174.398224 -106.079170 -6.386928 +v 174.905914 -104.679207 -4.768046 +v 176.387680 -104.151917 -5.979472 +v 174.905914 -104.679207 -4.768046 +v 176.130905 -103.610954 -4.670046 +v 176.387680 -104.151917 -5.979472 +v 176.387680 -104.151917 -5.979472 +v 176.130905 -103.610954 -4.670046 +v 178.135254 -101.855858 -4.509700 +v 152.591690 -124.382645 -7.177681 +v 152.620651 -121.822601 -4.069061 +v 156.716568 -118.915474 -4.411072 +v 156.716568 -118.915474 -4.411072 +v 160.298065 -117.521484 -6.258195 +v 152.591690 -124.382645 -7.177681 +v 160.298065 -117.521484 -6.258195 +v 160.399551 -119.531532 -9.003037 +v 152.591690 -124.382645 -7.177681 +v 152.591690 -124.382645 -7.177681 +v 160.399551 -119.531532 -9.003037 +v 152.563309 -127.005310 -10.362350 +v 152.536118 -129.628448 -13.547568 +v 152.563309 -127.005310 -10.362350 +v 160.504150 -121.540512 -11.748475 +v 152.563309 -127.005310 -10.362350 +v 160.399551 -119.531532 -9.003037 +v 160.504150 -121.540512 -11.748475 +v 160.504150 -121.540512 -11.748475 +v 160.399551 -119.531532 -9.003037 +v 164.409561 -115.694115 -8.285684 +v 160.399551 -119.531532 -9.003037 +v 160.298065 -117.521484 -6.258195 +v 164.409561 -115.694115 -8.285684 +v 164.409561 -115.694115 -8.285684 +v 160.298065 -117.521484 -6.258195 +v 164.243713 -113.995415 -5.765275 +v 155.410233 -129.048630 -15.823356 +v 152.536118 -129.628448 -13.547568 +v 160.604767 -123.421219 -14.320457 +v 152.536118 -129.628448 -13.547568 +v 160.504150 -121.540512 -11.748475 +v 160.604767 -123.421219 -14.320457 +v 160.604767 -123.421219 -14.320457 +v 160.504150 -121.540512 -11.748475 +v 164.736801 -118.944832 -13.115746 +v 160.504150 -121.540512 -11.748475 +v 164.409561 -115.694115 -8.285684 +v 164.736801 -118.944832 -13.115746 +v 164.736801 -118.944832 -13.115746 +v 164.409561 -115.694115 -8.285684 +v 168.492737 -114.875908 -12.011575 +v 164.409561 -115.694115 -8.285684 +v 168.646286 -113.238716 -9.845521 +v 168.492737 -114.875908 -12.011575 +v 168.492737 -114.875908 -12.011575 +v 168.646286 -113.238716 -9.845521 +v 168.858826 -114.479309 -11.903398 +v 168.646286 -113.238716 -9.845521 +v 172.704117 -109.081955 -8.858286 +v 168.858826 -114.479309 -11.903398 +v 168.858826 -114.479309 -11.903398 +v 172.704117 -109.081955 -8.858286 +v 172.967560 -110.028191 -10.681277 +v 184.726746 -97.289078 -7.058514 +v 183.199417 -98.943680 -7.544057 +v 182.792206 -98.673477 -6.197064 +v 183.199417 -98.943680 -7.544057 +v 181.155411 -101.158020 -8.185253 +v 182.792206 -98.673477 -6.197064 +v 182.792206 -98.673477 -6.197064 +v 181.155411 -101.158020 -8.185253 +v 180.782303 -100.756424 -6.760586 +v 181.155411 -101.158020 -8.185253 +v 179.112091 -103.371620 -8.817837 +v 180.782303 -100.756424 -6.760586 +v 180.782303 -100.756424 -6.760586 +v 179.112091 -103.371620 -8.817837 +v 178.768250 -102.839058 -7.305470 +v 179.112091 -103.371620 -8.817837 +v 177.342041 -105.289169 -9.360020 +v 178.768250 -102.839058 -7.305470 +v 178.768250 -102.839058 -7.305470 +v 177.342041 -105.289169 -9.360020 +v 176.750320 -104.920990 -7.835055 +v 177.342041 -105.289169 -9.360020 +v 177.068741 -105.585251 -9.443309 +v 176.750320 -104.920990 -7.835055 +v 176.750320 -104.920990 -7.835055 +v 177.068741 -105.585251 -9.443309 +v 175.019104 -107.805672 -10.064609 +v 185.000046 -96.992996 -6.970990 +v 184.726746 -97.289078 -7.058514 +v 184.841660 -96.908279 -6.441273 +v 184.726746 -97.289078 -7.058514 +v 182.792206 -98.673477 -6.197064 +v 184.841660 -96.908279 -6.441273 +v 184.841660 -96.908279 -6.441273 +v 182.792206 -98.673477 -6.197064 +v 182.334000 -98.362373 -4.661930 +v 182.792206 -98.673477 -6.197064 +v 180.782303 -100.756424 -6.760586 +v 182.334000 -98.362373 -4.661930 +v 182.334000 -98.362373 -4.661930 +v 180.782303 -100.756424 -6.760586 +v 180.355850 -100.293251 -5.120381 +v 180.782303 -100.756424 -6.760586 +v 178.768250 -102.839058 -7.305470 +v 180.355850 -100.293251 -5.120381 +v 180.355850 -100.293251 -5.120381 +v 178.768250 -102.839058 -7.305470 +v 178.373657 -102.223221 -5.558284 +v 178.768250 -102.839058 -7.305470 +v 176.750320 -104.920990 -7.835055 +v 178.373657 -102.223221 -5.558284 +v 178.135254 -101.855858 -4.509700 +v 178.373657 -102.223221 -5.558284 +v 176.387680 -104.151917 -5.979472 +v 178.373657 -102.223221 -5.558284 +v 176.750320 -104.920990 -7.835055 +v 176.387680 -104.151917 -5.979472 +v 176.387680 -104.151917 -5.979472 +v 176.750320 -104.920990 -7.835055 +v 174.398224 -106.079170 -6.386928 +v 176.750320 -104.920990 -7.835055 +v 174.728836 -107.001991 -8.351970 +v 174.398224 -106.079170 -6.386928 +v 174.398224 -106.079170 -6.386928 +v 174.728836 -107.001991 -8.351970 +v 172.405609 -108.004936 -6.783000 +v 175.019104 -107.805672 -10.064609 +v 172.967560 -110.028191 -10.681277 +v 174.728836 -107.001991 -8.351970 +v 172.967560 -110.028191 -10.681277 +v 172.704117 -109.081955 -8.858286 +v 174.728836 -107.001991 -8.351970 +v 174.728836 -107.001991 -8.351970 +v 172.704117 -109.081955 -8.858286 +v 172.405609 -108.004936 -6.783000 +v 172.704117 -109.081955 -8.858286 +v 168.646286 -113.238716 -9.845521 +v 172.405609 -108.004936 -6.783000 +v 172.405609 -108.004936 -6.783000 +v 168.646286 -113.238716 -9.845521 +v 168.412186 -111.852150 -7.548090 +v 168.646286 -113.238716 -9.845521 +v 164.409561 -115.694115 -8.285684 +v 168.412186 -111.852150 -7.548090 +v 168.412186 -111.852150 -7.548090 +v 164.409561 -115.694115 -8.285684 +v 167.658310 -110.952873 -5.347849 +v 164.409561 -115.694115 -8.285684 +v 164.243713 -113.995415 -5.765275 +v 167.658310 -110.952873 -5.347849 +v 167.658310 -110.952873 -5.347849 +v 164.243713 -113.995415 -5.765275 +v 163.524033 -114.003532 -4.988954 +v 164.243713 -113.995415 -5.765275 +v 160.298065 -117.521484 -6.258195 +v 163.524033 -114.003532 -4.988954 +v 163.524033 -114.003532 -4.988954 +v 160.298065 -117.521484 -6.258195 +v 160.228638 -116.395905 -4.707498 +v 160.298065 -117.521484 -6.258195 +v 156.716568 -118.915474 -4.411072 +v 160.228638 -116.395905 -4.707498 +v -158.999939 113.052109 -6.784529 +v 159.000061 113.052078 -6.784555 +v -158.999939 113.052109 -4.284529 +v 159.000061 113.052078 -6.784555 +v 159.000061 113.052078 -4.284555 +v -158.999939 113.052109 -4.284529 +v -152.620575 -121.822571 -4.069034 +v 152.620651 -121.822601 -4.069061 +v -152.591644 -124.382614 -7.177654 +v 152.620651 -121.822601 -4.069061 +v 152.591690 -124.382645 -7.177681 +v -152.591644 -124.382614 -7.177654 +v -152.591644 -124.382614 -7.177654 +v 152.591690 -124.382645 -7.177681 +v -152.563263 -127.005280 -10.362323 +v 152.591690 -124.382645 -7.177681 +v 152.563309 -127.005310 -10.362350 +v -152.563263 -127.005280 -10.362323 +v -152.563263 -127.005280 -10.362323 +v 152.563309 -127.005310 -10.362350 +v -152.536041 -129.628418 -13.547542 +v 152.510681 -132.189789 -16.657782 +v 151.810867 -132.947922 -17.578360 +v -151.810822 -132.947891 -17.578333 +v 152.563309 -127.005310 -10.362350 +v 152.536118 -129.628448 -13.547568 +v -152.536041 -129.628418 -13.547542 +v 152.536118 -129.628448 -13.547568 +v 152.510681 -132.189789 -16.657782 +v -152.536041 -129.628418 -13.547542 +v -152.536041 -129.628418 -13.547542 +v 152.510681 -132.189789 -16.657782 +v -152.510620 -132.189758 -16.657755 +v 152.510681 -132.189789 -16.657782 +v -151.810822 -132.947891 -17.578333 +v -152.510620 -132.189758 -16.657755 +v -161.499954 -99.983421 -3.257260 +v -158.999954 -102.483429 -3.256306 +v -161.499954 -99.983421 -4.284512 +v -158.999954 -102.483429 -3.256306 +v -158.999954 -102.483429 -4.284513 +v -161.499954 -99.983421 -4.284512 +v 181.155411 -101.158020 -8.185253 +v 183.199417 -98.943680 -7.544057 +v 185.000046 -96.992996 -12.173429 +v 183.199417 -98.943680 -7.544057 +v 184.726746 -97.289078 -7.058514 +v 185.000046 -96.992996 -12.173429 +v 185.000046 -96.992996 -12.173429 +v 184.726746 -97.289078 -7.058514 +v 185.000046 -96.992996 -6.970990 +v 155.410233 -129.048630 -15.823356 +v 160.604767 -123.421219 -14.320457 +v 154.000031 -130.576340 -20.784538 +v 172.967560 -110.028191 -10.681277 +v 175.019104 -107.805672 -10.064609 +v 185.000046 -96.992996 -12.173429 +v 175.019104 -107.805672 -10.064609 +v 177.068741 -105.585251 -9.443309 +v 185.000046 -96.992996 -12.173429 +v 177.068741 -105.585251 -9.443309 +v 177.342041 -105.289169 -9.360020 +v 185.000046 -96.992996 -12.173429 +v 177.342041 -105.289169 -9.360020 +v 179.112091 -103.371620 -8.817837 +v 185.000046 -96.992996 -12.173429 +v 185.000046 -96.992996 -12.173429 +v 179.112091 -103.371620 -8.817837 +v 181.155411 -101.158020 -8.185253 +v 160.604767 -123.421219 -14.320457 +v 164.736801 -118.944832 -13.115746 +v 154.000031 -130.576340 -20.784538 +v 164.736801 -118.944832 -13.115746 +v 168.492737 -114.875908 -12.011575 +v 154.000031 -130.576340 -20.784538 +v 154.000031 -130.576340 -20.784538 +v 168.492737 -114.875908 -12.011575 +v 185.000046 -96.992996 -12.173429 +v 168.492737 -114.875908 -12.011575 +v 168.858826 -114.479309 -11.903398 +v 185.000046 -96.992996 -12.173429 +v 185.000046 -96.992996 -12.173429 +v 168.858826 -114.479309 -11.903398 +v 172.967560 -110.028191 -10.681277 +v 151.810867 -132.947922 -20.784538 +v 151.810867 -132.947922 -17.578360 +v 154.000031 -130.576340 -20.784538 +v 151.810867 -132.947922 -17.578360 +v 152.510681 -132.189789 -16.657782 +v 154.000031 -130.576340 -20.784538 +v 154.000031 -130.576340 -20.784538 +v 152.510681 -132.189789 -16.657782 +v 155.410233 -129.048630 -15.823356 +v 103.357063 -106.447914 -4.284535 +v 155.035583 -106.447922 -4.284539 +v 157.535583 -103.947922 -4.284539 +v -157.535477 -103.947891 -4.284513 +v -155.035477 -106.447891 -4.284513 +v -103.356987 -106.447899 -4.284516 +v -103.356987 -106.447899 -4.284516 +v -51.678474 -106.447899 -4.284522 +v -157.535477 -103.947891 -4.284513 +v -51.678474 -106.447899 -4.284522 +v 0.000038 -106.447906 -4.284526 +v -157.535477 -103.947891 -4.284513 +v -157.535477 -103.947891 -4.284513 +v 0.000038 -106.447906 -4.284526 +v 157.535583 -103.947922 -4.284539 +v 0.000038 -106.447906 -4.284526 +v 51.678551 -106.447914 -4.284530 +v 157.535583 -103.947922 -4.284539 +v 157.535583 -103.947922 -4.284539 +v 51.678551 -106.447914 -4.284530 +v 103.357063 -106.447914 -4.284535 +v -154.783401 -106.447891 -3.284512 +v -155.035477 -106.447891 -3.255711 +v -154.148178 -107.094444 -3.284512 +v -155.035477 -106.447891 -3.255711 +v -158.650452 -110.969971 -2.393444 +v -154.148178 -107.094444 -3.284512 +v -154.148178 -107.094444 -3.284512 +v -158.650452 -110.969971 -2.393444 +v -154.122742 -112.603630 -2.636372 +v -158.650452 -110.969971 -2.393444 +v -160.458160 -117.458786 -1.493846 +v -154.122742 -112.603630 -2.636372 +v -154.122742 -112.603630 -2.636372 +v -160.458160 -117.458786 -1.493846 +v -154.111511 -122.329681 -1.492130 +v -169.652954 -110.360443 -1.500827 +v -169.315826 -110.621979 -1.500438 +v -163.553604 -106.947090 -2.395816 +v -169.315826 -110.621979 -1.500438 +v -165.245087 -113.771347 -1.496631 +v -163.553604 -106.947090 -2.395816 +v -163.553604 -106.947090 -2.395816 +v -165.245087 -113.771347 -1.496631 +v -158.650452 -110.969971 -2.393444 +v -165.245087 -113.771347 -1.496631 +v -161.198303 -116.889557 -1.494174 +v -158.650452 -110.969971 -2.393444 +v -158.650452 -110.969971 -2.393444 +v -161.198303 -116.889557 -1.494174 +v -160.458160 -117.458786 -1.493846 +v -178.798965 -103.199432 -1.518039 +v -174.699203 -99.071297 -2.276561 +v -179.572159 -102.585800 -1.520319 +v -174.699203 -99.071297 -2.276561 +v -180.995377 -99.075989 -1.772868 +v -179.572159 -102.585800 -1.520319 +v -178.798965 -103.199432 -1.518039 +v -177.501694 -104.225273 -1.514582 +v -174.699203 -99.071297 -2.276561 +v -177.501694 -104.225273 -1.514582 +v -175.440811 -105.846649 -1.509921 +v -174.699203 -99.071297 -2.276561 +v -174.699203 -99.071297 -2.276561 +v -175.440811 -105.846649 -1.509921 +v -169.582657 -99.065201 -2.685879 +v -175.440811 -105.846649 -1.509921 +v -173.391022 -107.451050 -1.506114 +v -169.582657 -99.065201 -2.685879 +v -169.582657 -99.065201 -2.685879 +v -173.391022 -107.451050 -1.506114 +v -171.129089 -109.213722 -1.502696 +v -183.941238 -99.077583 -1.537196 +v -183.762741 -99.222572 -1.536342 +v -180.995377 -99.075989 -1.772868 +v -183.762741 -99.222572 -1.536342 +v -181.658646 -100.920105 -1.527430 +v -180.995377 -99.075989 -1.772868 +v -180.995377 -99.075989 -1.772868 +v -181.658646 -100.920105 -1.527430 +v -179.572159 -102.585800 -1.520319 +v -155.035477 -106.447891 -3.255711 +v -157.535477 -103.947891 -3.255894 +v -158.650452 -110.969971 -2.393444 +v -157.535477 -103.947891 -3.255894 +v -158.999954 -103.947891 -3.115780 +v -158.650452 -110.969971 -2.393444 +v -158.650452 -110.969971 -2.393444 +v -158.999954 -103.947891 -3.115780 +v -163.553604 -106.947090 -2.395816 +v -158.999954 -103.947891 -3.115780 +v -158.999954 -102.483429 -3.256306 +v -163.553604 -106.947090 -2.395816 +v -163.553604 -106.947090 -2.395816 +v -158.999954 -102.483429 -3.256306 +v -161.499954 -99.983421 -3.257260 +v -161.499954 -99.651382 -3.284512 +v -162.099808 -99.046623 -3.284512 +v -161.499954 -99.983421 -3.257260 +v -162.099808 -99.046623 -3.284512 +v -169.582657 -99.065201 -2.685879 +v -161.499954 -99.983421 -3.257260 +v -161.499954 -99.983421 -3.257260 +v -169.582657 -99.065201 -2.685879 +v -163.553604 -106.947090 -2.395816 +v -169.582657 -99.065201 -2.685879 +v -171.129089 -109.213722 -1.502696 +v -163.553604 -106.947090 -2.395816 +v -163.553604 -106.947090 -2.395816 +v -171.129089 -109.213722 -1.502696 +v -169.652954 -110.360443 -1.500827 +v -183.406631 -102.404869 -7.578935 +v -185.567062 -100.064392 -6.939280 +v -187.499954 -97.970436 -11.478952 +v -185.567062 -100.064392 -6.939280 +v -185.703140 -99.916954 -6.898806 +v -187.499954 -97.970436 -11.478952 +v -187.499954 -97.970436 -11.478952 +v -185.703140 -99.916954 -6.898806 +v -187.499954 -97.970436 -6.362200 +v -176.923187 -109.428604 -9.472957 +v -179.084610 -107.087059 -8.845102 +v -187.499954 -97.970436 -11.478952 +v -179.084610 -107.087059 -8.845102 +v -181.245773 -104.745789 -8.213961 +v -187.499954 -97.970436 -11.478952 +v -187.499954 -97.970436 -11.478952 +v -181.245773 -104.745789 -8.213961 +v -183.406631 -102.404869 -7.578935 +v -152.905396 -135.447891 -20.784512 +v -152.905396 -135.447891 -16.681421 +v -153.999969 -134.262085 -20.784512 +v -152.905396 -135.447891 -16.681421 +v -153.252411 -135.071945 -16.224909 +v -153.999969 -134.262085 -20.784512 +v -153.999969 -134.262085 -20.784512 +v -153.252411 -135.071945 -16.224909 +v -161.747711 -125.868698 -13.819559 +v -161.747711 -125.868698 -13.819559 +v -166.091156 -121.163300 -12.583697 +v -153.999969 -134.262085 -20.784512 +v -166.091156 -121.163300 -12.583697 +v -170.243683 -116.664734 -11.396892 +v -153.999969 -134.262085 -20.784512 +v -153.999969 -134.262085 -20.784512 +v -170.243683 -116.664734 -11.396892 +v -187.499954 -97.970436 -11.478952 +v -170.243683 -116.664734 -11.396892 +v -174.863312 -111.660149 -10.068644 +v -187.499954 -97.970436 -11.478952 +v -187.499954 -97.970436 -11.478952 +v -174.863312 -111.660149 -10.068644 +v -176.923187 -109.428604 -9.472957 +v -155.035477 -106.447891 -4.284513 +v -157.535477 -103.947891 -4.284513 +v -155.035477 -106.447891 -3.255711 +v -157.535477 -103.947891 -4.284513 +v -157.535477 -103.947891 -3.255894 +v -155.035477 -106.447891 -3.255711 +v -161.499939 115.052109 -4.284528 +v -161.499939 115.052109 -3.284528 +v -161.499954 -99.983421 -4.284512 +v -161.499939 115.052109 -3.284528 +v -161.499954 -99.651382 -3.284512 +v -161.499954 -99.983421 -4.284512 +v -161.499954 -99.983421 -4.284512 +v -161.499954 -99.651382 -3.284512 +v -161.499954 -99.983421 -3.257260 +v -187.499954 -97.942810 -6.297656 +v -187.499939 115.052109 -6.297672 +v -187.499954 -97.970436 -6.362200 +v -187.499939 115.052109 -6.297672 +v -187.499939 115.052109 -11.478969 +v -187.499954 -97.970436 -6.362200 +v -187.499954 -97.970436 -6.362200 +v -187.499939 115.052109 -11.478969 +v -187.499954 -97.970436 -11.478952 +v 152.905457 -135.447922 -20.784538 +v 152.905457 -135.447922 -16.681448 +v -152.905396 -135.447891 -20.784512 +v 152.905457 -135.447922 -16.681448 +v -152.905396 -135.447891 -16.681421 +v -152.905396 -135.447891 -20.784512 +v 185.000046 -96.922371 -6.810834 +v 185.000061 115.052078 -6.810850 +v 185.000046 -96.992996 -6.970990 +v 185.000061 115.052078 -6.810850 +v 185.000061 115.052078 -12.173444 +v 185.000046 -96.992996 -6.970990 +v 185.000046 -96.992996 -6.970990 +v 185.000061 115.052078 -12.173444 +v 185.000046 -96.992996 -12.173429 +v -162.499954 -102.518959 -5.760487 +v -162.499939 115.052109 -5.760503 +v -162.499954 -102.518959 -6.784512 +v -162.499939 115.052109 -5.760503 +v -162.499939 115.052109 -6.784528 +v -162.499954 -102.518959 -6.784512 +v 159.000046 -102.483459 -4.284539 +v 161.500046 -99.983452 -4.284541 +v 159.000061 113.052078 -4.284555 +v 161.500046 -99.983452 -4.284541 +v 161.500061 115.052078 -4.284557 +v 159.000061 113.052078 -4.284555 +v 159.000061 113.052078 -4.284555 +v 161.500061 115.052078 -4.284557 +v -158.999939 113.052109 -4.284529 +v 161.500061 115.052078 -4.284557 +v -161.499939 115.052109 -4.284528 +v -158.999939 113.052109 -4.284529 +v -158.999939 113.052109 -4.284529 +v -161.499939 115.052109 -4.284528 +v -158.999954 -102.483429 -4.284513 +v -161.499939 115.052109 -4.284528 +v -161.499954 -99.983421 -4.284512 +v -158.999954 -102.483429 -4.284513 +v -161.499939 115.052109 -3.284528 +v -162.099792 115.052109 -3.284528 +v -161.499954 -99.651382 -3.284512 +v -162.099792 115.052109 -3.284528 +v -162.099808 -99.046623 -3.284512 +v -161.499954 -99.651382 -3.284512 +vn -0.7348 0.6783 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn 0.7348 0.6783 -0.0000 +vn 0.7349 0.6782 -0.0000 +vn -0.9191 -0.0000 0.3939 +vn -0.0944 0.0944 0.9911 +vn -0.0882 0.1164 0.9893 +vn -0.0863 0.0863 0.9925 +vn -0.0793 0.1047 0.9913 +vn -0.0896 0.1113 0.9897 +vn -0.1041 0.1041 0.9891 +vn -0.0936 0.1163 0.9888 +vn -0.0858 0.1132 0.9899 +vn -0.0877 0.1090 0.9902 +vn -0.0835 0.1102 0.9904 +vn -0.1130 -0.0982 -0.9887 +vn -0.1060 -0.1042 -0.9889 +vn -0.0952 -0.1167 -0.9886 +vn -0.0944 -0.0948 -0.9910 +vn -0.0813 -0.0987 -0.9918 +vn -0.0795 -0.0815 -0.9935 +vn -0.0793 -0.0787 -0.9937 +vn -0.0793 -0.1034 -0.9915 +vn -0.0792 -0.1035 -0.9915 +vn -0.0793 -0.1035 -0.9915 +vn -0.0839 -0.1097 -0.9904 +vn -0.0875 -0.1034 -0.9908 +vn -0.0866 -0.1131 -0.9898 +vn -0.0886 -0.1085 -0.9901 +vn -0.0932 -0.1141 -0.9891 +vn -0.0945 -0.0946 -0.9910 +vn -0.0932 -0.1112 -0.9894 +vn -0.0891 -0.1165 -0.9892 +vn -0.0000 -0.7719 0.6357 +vn -0.0000 0.1168 0.9932 +vn 0.5903 -0.6630 0.4605 +vn 0.6390 -0.7013 0.3162 +vn 0.5679 -0.7497 0.3397 +vn 0.5803 -0.7660 0.2765 +vn 0.5766 -0.6900 0.4375 +vn 0.5780 -0.6575 0.4833 +vn 0.5776 -0.6716 0.4640 +vn 0.5660 -0.6650 0.4872 +vn 0.5676 -0.6526 0.5019 +vn 0.5562 -0.6592 0.5061 +vn 0.5530 -0.6729 0.4913 +vn 0.5438 -0.6661 0.5105 +vn 0.5386 -0.6813 0.4957 +vn 0.6215 -0.7187 0.3117 +vn 0.6116 -0.7283 0.3092 +vn 0.6331 -0.7250 0.2713 +vn 0.6060 -0.7426 0.2853 +vn 0.6170 -0.7319 0.2890 +vn 0.6008 -0.7384 0.3063 +vn 0.5846 -0.7717 0.2505 +vn 0.5938 -0.7539 0.2811 +vn 0.5986 -0.7589 0.2565 +vn 0.5844 -0.7443 0.3232 +vn 0.5959 -0.7342 0.3255 +vn 0.5800 -0.7396 0.3414 +vn 0.5717 -0.7307 0.3731 +vn 0.5604 -0.7397 0.3727 +vn 0.5844 -0.7443 0.3233 +vn 0.5720 -0.7550 0.3207 +vn 0.5890 -0.7491 0.3032 +vn 0.6008 -0.7384 0.3064 +vn 0.5911 -0.7301 0.3429 +vn 0.5822 -0.7222 0.3735 +vn 0.5641 -0.7225 0.3998 +vn 0.5741 -0.7148 0.3993 +vn 0.5600 -0.7018 0.4404 +vn 0.5562 -0.6857 0.4695 +vn 0.5685 -0.6958 0.4390 +vn 0.6592 -0.6968 0.2825 +vn 0.6467 -0.6932 0.3181 +vn 0.6513 -0.7057 0.2791 +vn 0.5756 -0.7014 0.4203 +vn 0.5667 -0.7080 0.4214 +vn 0.5921 -0.7006 0.3983 +vn 0.6010 -0.7064 0.3740 +vn 0.5919 -0.7141 0.3738 +vn 0.6108 -0.7125 0.3455 +vn 0.6365 -0.7124 0.2956 +vn 0.6272 -0.7219 0.2924 +vn 0.5637 -0.6808 0.4676 +vn 0.5993 -0.6832 0.4173 +vn 0.5840 -0.6951 0.4193 +vn 0.6079 -0.6875 0.3973 +vn 0.6173 -0.6920 0.3742 +vn 0.6276 -0.6966 0.3475 +vn 0.6195 -0.7043 0.3465 +vn 0.6306 -0.7097 0.3140 +vn 0.6306 -0.7098 0.3140 +vn 0.6426 -0.7150 0.2754 +vn 0.5304 -0.6733 0.5150 +vn 0.5293 -0.6549 0.5394 +vn 0.5403 -0.6495 0.5349 +vn 0.5507 -0.6444 0.5306 +vn 0.5413 -0.7145 0.4433 +vn 0.5400 -0.6959 0.4734 +vn 0.5312 -0.7012 0.4755 +vn 0.5309 -0.6857 0.4979 +vn 0.5229 -0.6902 0.5002 +vn 0.5159 -0.6810 0.5198 +vn 0.5175 -0.6605 0.5440 +vn 0.5470 -0.7221 0.4234 +vn 0.5572 -0.7149 0.4224 +vn 0.5509 -0.7080 0.4419 +vn 0.5483 -0.6907 0.4715 +vn 0.5483 -0.6907 0.4714 +vn 0.5460 -0.6771 0.4935 +vn 0.5914 -0.6791 0.4348 +vn 0.6129 -0.6722 0.4153 +vn 0.6218 -0.6756 0.3962 +vn 0.6316 -0.6790 0.3743 +vn 0.6423 -0.6824 0.3491 +vn 0.6352 -0.6893 0.3483 +vn 0.6539 -0.6856 0.3199 +vn -0.0000 -0.0000 1.0000 +vn 0.0797 -0.0000 -0.9968 +vn -0.6047 -0.6690 0.4322 +vn -0.6539 -0.6856 0.3199 +vn -0.5604 -0.7397 0.3727 +vn -0.5600 -0.7018 0.4404 +vn -0.6113 -0.7468 0.2620 +vn -0.6112 -0.7468 0.2620 +vn -0.5660 -0.6650 0.4872 +vn -0.5309 -0.6857 0.4979 +vn -0.5312 -0.7012 0.4755 +vn -0.5159 -0.6810 0.5198 +vn -0.5386 -0.6813 0.4957 +vn -0.5304 -0.6733 0.5150 +vn -0.5530 -0.6729 0.4913 +vn -0.5438 -0.6661 0.5105 +vn -0.5562 -0.6592 0.5061 +vn -0.5780 -0.6575 0.4833 +vn -0.5766 -0.6900 0.4375 +vn -0.5756 -0.7014 0.4203 +vn -0.5840 -0.6951 0.4193 +vn -0.5741 -0.7148 0.3993 +vn -0.5921 -0.7006 0.3983 +vn -0.5986 -0.7589 0.2565 +vn -0.5938 -0.7539 0.2811 +vn -0.6060 -0.7426 0.2852 +vn -0.6008 -0.7383 0.3064 +vn -0.6008 -0.7384 0.3063 +vn -0.6063 -0.7246 0.3275 +vn -0.5911 -0.7301 0.3430 +vn -0.5911 -0.7301 0.3429 +vn -0.5844 -0.7443 0.3232 +vn -0.5959 -0.7342 0.3255 +vn -0.5890 -0.7491 0.3032 +vn -0.5937 -0.7540 0.2811 +vn -0.5803 -0.7660 0.2765 +vn -0.5717 -0.7307 0.3731 +vn -0.5800 -0.7396 0.3414 +vn -0.5720 -0.7550 0.3207 +vn -0.5844 -0.7443 0.3233 +vn -0.5761 -0.7604 0.2998 +vn -0.5534 -0.7305 0.4002 +vn -0.5667 -0.7080 0.4214 +vn -0.5572 -0.7149 0.4224 +vn -0.6272 -0.7219 0.2925 +vn -0.6215 -0.7187 0.3117 +vn -0.6013 -0.7210 0.3443 +vn -0.6108 -0.7125 0.3455 +vn -0.5919 -0.7141 0.3738 +vn -0.5822 -0.7222 0.3735 +vn -0.5641 -0.7225 0.3998 +vn -0.5483 -0.6907 0.4715 +vn -0.5685 -0.6958 0.4390 +vn -0.5562 -0.6857 0.4695 +vn -0.5637 -0.6808 0.4676 +vn -0.6666 -0.6885 0.2857 +vn -0.6467 -0.6932 0.3181 +vn -0.6592 -0.6968 0.2825 +vn -0.6390 -0.7013 0.3162 +vn -0.6306 -0.7098 0.3140 +vn -0.5993 -0.6832 0.4173 +vn -0.6129 -0.6722 0.4153 +vn -0.6079 -0.6875 0.3973 +vn -0.6218 -0.6756 0.3962 +vn -0.6173 -0.6920 0.3742 +vn -0.6316 -0.6790 0.3743 +vn -0.6277 -0.6966 0.3475 +vn -0.6352 -0.6893 0.3483 +vn -0.6450 -0.7035 0.2984 +vn -0.6426 -0.7150 0.2754 +vn -0.5048 -0.6664 0.5488 +vn -0.5175 -0.6605 0.5440 +vn -0.5293 -0.6549 0.5394 +vn -0.5403 -0.6495 0.5349 +vn -0.5676 -0.6526 0.5019 +vn -0.5776 -0.6716 0.4640 +vn -0.5460 -0.6771 0.4935 +vn -0.5483 -0.6907 0.4714 +vn -0.5400 -0.6959 0.4734 +vn -0.5509 -0.7080 0.4419 +vn -0.5413 -0.7145 0.4433 +vn -0.6331 -0.7250 0.2713 +vn -0.6365 -0.7124 0.2956 +vn -0.6195 -0.7043 0.3465 +vn -0.6010 -0.7064 0.3740 +vn -0.5914 -0.6791 0.4348 +vn -0.5903 -0.6630 0.4605 +vn 0.0797 -0.0000 0.9968 +vn 0.7348 -0.6783 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.6365 0.7008 -0.3221 +vn -0.6600 0.6907 -0.2955 +vn -0.6482 0.6888 -0.3246 +vn -0.6470 0.7048 -0.2909 +vn -0.6468 0.7046 -0.2917 +vn -0.6359 0.7014 -0.3220 +vn -0.6391 0.7126 -0.2893 +vn -0.6034 0.7341 -0.3115 +vn -0.6047 0.7397 -0.2953 +vn -0.5936 0.7254 -0.3485 +vn -0.5895 0.7289 -0.3482 +vn -0.5755 0.7265 -0.3756 +vn -0.5764 0.7249 -0.3773 +vn -0.5786 0.7231 -0.3773 +vn -0.5694 0.7051 -0.4227 +vn -0.5606 0.7114 -0.4239 +vn -0.5768 0.7114 -0.4016 +vn -0.5763 0.7117 -0.4017 +vn -0.5559 0.6933 -0.4586 +vn -0.5515 0.7069 -0.4429 +vn -0.5532 0.7057 -0.4426 +vn -0.5415 0.6799 -0.4944 +vn -0.5311 0.6859 -0.4975 +vn -0.5513 0.6888 -0.4708 +vn -0.5402 0.6956 -0.4736 +vn -0.5408 0.6953 -0.4734 +vn -0.5211 0.6789 -0.5173 +vn -0.5219 0.6783 -0.5172 +vn -0.5227 0.6779 -0.5170 +vn -0.5309 0.6553 -0.5373 +vn -0.6488 0.6882 -0.3248 +vn -0.6491 0.6879 -0.3248 +vn -0.6249 0.6967 -0.3522 +vn -0.6378 0.6845 -0.3530 +vn -0.6151 0.6921 -0.3777 +vn -0.6276 0.6810 -0.3773 +vn -0.6060 0.6876 -0.3998 +vn -0.6182 0.6775 -0.3985 +vn -0.5978 0.6834 -0.4191 +vn -0.6096 0.6741 -0.4171 +vn -0.5906 0.6795 -0.4353 +vn -0.6019 0.6706 -0.4336 +vn -0.5497 0.6459 -0.5297 +vn -0.5562 0.6596 -0.5055 +vn -0.5658 0.6541 -0.5020 +vn -0.5658 0.6653 -0.4870 +vn -0.5656 0.6655 -0.4871 +vn -0.5772 0.6719 -0.4641 +vn -0.5644 0.6802 -0.4677 +vn -0.5097 0.6653 -0.5455 +vn -0.5215 0.6614 -0.5390 +vn -0.5333 0.6723 -0.5135 +vn -0.5331 0.6724 -0.5135 +vn -0.5542 0.6725 -0.4905 +vn -0.5412 0.6800 -0.4946 +vn -0.6205 0.7166 -0.3185 +vn -0.6176 0.7277 -0.2983 +vn -0.6211 0.7160 -0.3186 +vn -0.6214 0.7160 -0.3182 +vn -0.6119 0.7249 -0.3165 +vn -0.6081 0.7369 -0.2954 +vn -0.5408 0.6504 -0.5334 +vn -0.5452 0.6658 -0.5094 +vn -0.5560 0.6598 -0.5055 +vn -0.5541 0.6724 -0.4907 +vn -0.5539 0.6726 -0.4908 +vn -0.5648 0.6801 -0.4674 +vn -0.5645 0.6803 -0.4675 +vn -0.5628 0.6991 -0.4411 +vn -0.5771 0.6891 -0.4383 +vn -0.5693 0.7050 -0.4229 +vn -0.5843 0.6940 -0.4207 +vn -0.5766 0.7113 -0.4019 +vn -0.5921 0.6993 -0.4006 +vn -0.5847 0.7180 -0.3776 +vn -0.6007 0.7049 -0.3773 +vn -0.5935 0.7252 -0.3490 +vn -0.5927 0.7259 -0.3489 +vn -0.6033 0.7329 -0.3146 +vn -0.5995 0.7363 -0.3138 +vn -0.6111 0.7393 -0.2827 +vn -0.6114 0.7395 -0.2818 +vn -0.6172 0.7283 -0.2977 +vn -0.6213 0.7302 -0.2845 +vn -0.6261 0.7196 -0.3004 +vn -0.6304 0.7213 -0.2869 +vn -0.6306 0.7208 -0.2876 +vn -0.6284 0.7089 -0.3203 +vn -0.6210 0.7160 -0.3190 +vn -0.6178 0.7035 -0.3513 +vn -0.6105 0.7101 -0.3508 +vn -0.6152 0.6922 -0.3774 +vn -0.6010 0.7043 -0.3777 +vn -0.6062 0.6877 -0.3995 +vn -0.5924 0.6989 -0.4009 +vn -0.5979 0.6834 -0.4189 +vn -0.5845 0.6937 -0.4210 +vn -0.5903 0.6794 -0.4358 +vn -0.5906 0.6792 -0.4358 +vn -0.5763 0.6717 -0.4655 +vn -0.5880 0.6645 -0.4612 +vn -0.7348 -0.6783 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.2676 -0.0000 -0.9635 +vn -0.9191 -0.0000 -0.3939 +vn -0.9192 -0.0000 -0.3939 +vn 0.0835 0.1102 0.9904 +vn 0.0877 0.1090 0.9902 +vn 0.0858 0.1132 0.9899 +vn 0.0936 0.1163 0.9888 +vn 0.0793 0.1047 0.9913 +vn 0.0845 0.0845 0.9928 +vn 0.0814 0.1074 0.9909 +vn 0.0825 0.1025 0.9913 +vn 0.0944 0.0944 0.9911 +vn 0.0859 0.1067 0.9906 +vn 0.1041 0.1041 0.9891 +vn 0.0896 0.1113 0.9897 +vn 0.1161 0.1161 0.9864 +vn -0.7071 -0.7071 -0.0000 +vn 0.5925 0.6989 -0.4005 +vn 0.6468 0.7046 -0.2917 +vn 0.5097 0.6653 -0.5455 +vn 0.5203 0.6603 -0.5415 +vn 0.5105 0.6650 -0.5451 +vn 0.5320 0.6710 -0.5165 +vn 0.5219 0.6783 -0.5172 +vn 0.5331 0.6724 -0.5134 +vn 0.5295 0.6868 -0.4980 +vn 0.5424 0.6951 -0.4718 +vn 0.5408 0.6953 -0.4734 +vn 0.5402 0.6956 -0.4736 +vn 0.5391 0.6963 -0.4739 +vn 0.5629 0.6992 -0.4409 +vn 0.5625 0.6994 -0.4409 +vn 0.5587 0.7128 -0.4241 +vn 0.5995 0.7362 -0.3138 +vn 0.5971 0.7384 -0.3134 +vn 0.5929 0.7260 -0.3484 +vn 0.5856 0.7321 -0.3479 +vn 0.5842 0.7186 -0.3772 +vn 0.5764 0.7248 -0.3773 +vn 0.5815 0.7156 -0.3870 +vn 0.5685 0.7176 -0.4023 +vn 0.6047 0.7397 -0.2952 +vn 0.6034 0.7341 -0.3115 +vn 0.6024 0.7335 -0.3147 +vn 0.6032 0.7328 -0.3149 +vn 0.6209 0.7300 -0.2857 +vn 0.6343 0.7111 -0.3034 +vn 0.6304 0.7213 -0.2869 +vn 0.6301 0.7211 -0.2880 +vn 0.6470 0.7048 -0.2909 +vn 0.6482 0.6888 -0.3246 +vn 0.6600 0.6907 -0.2955 +vn 0.6064 0.6874 -0.3998 +vn 0.6179 0.6778 -0.3986 +vn 0.6155 0.6917 -0.3777 +vn 0.6272 0.6813 -0.3773 +vn 0.6255 0.6962 -0.3522 +vn 0.6375 0.6849 -0.3530 +vn 0.6015 0.6710 -0.4336 +vn 0.5909 0.6793 -0.4352 +vn 0.5875 0.6648 -0.4614 +vn 0.5766 0.6715 -0.4654 +vn 0.5759 0.6592 -0.4836 +vn 0.5658 0.6654 -0.4870 +vn 0.5658 0.6541 -0.5020 +vn 0.5663 0.6539 -0.5018 +vn 0.5540 0.6726 -0.4906 +vn 0.5415 0.6799 -0.4945 +vn 0.5450 0.6660 -0.5094 +vn 0.5452 0.6658 -0.5093 +vn 0.5308 0.6553 -0.5374 +vn 0.6171 0.7282 -0.2982 +vn 0.6265 0.7192 -0.3005 +vn 0.6204 0.7165 -0.3189 +vn 0.5762 0.7116 -0.4020 +vn 0.6012 0.7044 -0.3773 +vn 0.5841 0.7185 -0.3776 +vn 0.6107 0.7102 -0.3502 +vn 0.6017 0.7181 -0.3496 +vn 0.5413 0.6801 -0.4945 +vn 0.5512 0.6887 -0.4710 +vn 0.5508 0.6890 -0.4711 +vn 0.5775 0.6888 -0.4382 +vn 0.5624 0.6994 -0.4411 +vn 0.6466 0.7046 -0.2924 +vn 0.6283 0.7089 -0.3206 +vn 0.6210 0.7159 -0.3193 +vn 0.6210 0.7160 -0.3190 +vn 0.6211 0.7160 -0.3186 +vn 0.6118 0.7248 -0.3169 +vn 0.6177 0.7278 -0.2978 +vn 0.6076 0.7373 -0.2953 +vn 0.6111 0.7393 -0.2827 +vn 0.5982 0.6832 -0.4188 +vn 0.5980 0.6832 -0.4191 +vn 0.6093 0.6743 -0.4172 +vn 0.5842 0.6939 -0.4210 +vn 0.6065 0.6874 -0.3995 +vn 0.5920 0.6992 -0.4009 +vn 0.6156 0.6918 -0.3774 +vn 0.6005 0.7048 -0.3777 +vn 0.6256 0.6963 -0.3518 +vn 0.6251 0.6968 -0.3517 +vn 0.6364 0.7007 -0.3225 +vn 0.6489 0.6881 -0.3248 +vn 0.5666 0.7190 -0.4024 +vn 0.5691 0.7053 -0.4227 +vn 0.5690 0.7053 -0.4229 +vn 0.5846 0.6938 -0.4206 +vn 0.5770 0.6890 -0.4385 +vn 0.5774 0.6888 -0.4385 +vn 0.5769 0.6721 -0.4642 +vn 0.5647 0.6800 -0.4676 +vn 0.5657 0.6655 -0.4869 +vn 0.5541 0.6724 -0.4907 +vn 0.5560 0.6598 -0.5055 +vn 0.5562 0.6596 -0.5054 +vn 0.5407 0.6504 -0.5335 +vn 0.2676 -0.0000 -0.9635 +vn -0.0000 1.0000 -0.0000 +vn -0.0797 -0.0000 0.9968 +vn 0.9191 -0.0000 0.3939 +vn -0.0000 -0.1168 -0.9932 +vn -0.0000 0.7719 -0.6357 +vn 1.0000 0.0001 -0.0000 +vn -0.0797 -0.0000 -0.9968 +vn 0.7071 -0.7071 -0.0000 +vn 0.9191 -0.0000 -0.3939 +vn 0.9192 -0.0000 -0.3939 +vn 0.0952 -0.1167 -0.9886 +vn 0.0932 -0.1112 -0.9894 +vn 0.0891 -0.1165 -0.9892 +vn 0.0886 -0.1085 -0.9901 +vn 0.0866 -0.1131 -0.9898 +vn 0.0839 -0.1097 -0.9904 +vn 0.0792 -0.1035 -0.9915 +vn 0.0793 -0.1034 -0.9915 +vn 0.0822 -0.0815 -0.9933 +vn 0.0793 -0.0797 -0.9937 +vn 0.0862 -0.1024 -0.9910 +vn 0.0880 -0.1038 -0.9907 +vn 0.0865 -0.1060 -0.9906 +vn 0.1047 -0.1048 -0.9890 +vn 0.1071 -0.1029 -0.9889 +vn 0.1128 -0.1108 -0.9874 +vn 0.9192 -0.0000 0.3939 +vn 0.5925 -0.6989 0.4005 +vn 0.6468 -0.7046 0.2917 +vn 0.5097 -0.6653 0.5455 +vn 0.5203 -0.6603 0.5415 +vn 0.5105 -0.6650 0.5451 +vn 0.5320 -0.6710 0.5165 +vn 0.5219 -0.6783 0.5172 +vn 0.5331 -0.6724 0.5134 +vn 0.5295 -0.6868 0.4980 +vn 0.5424 -0.6951 0.4718 +vn 0.5408 -0.6953 0.4734 +vn 0.5402 -0.6956 0.4736 +vn 0.5391 -0.6963 0.4739 +vn 0.5629 -0.6992 0.4409 +vn 0.5625 -0.6994 0.4409 +vn 0.5587 -0.7128 0.4241 +vn 0.5994 -0.7363 0.3138 +vn 0.5971 -0.7384 0.3134 +vn 0.5929 -0.7260 0.3485 +vn 0.5856 -0.7321 0.3480 +vn 0.5842 -0.7186 0.3772 +vn 0.5764 -0.7249 0.3773 +vn 0.5815 -0.7156 0.3869 +vn 0.5685 -0.7176 0.4023 +vn 0.6047 -0.7397 0.2953 +vn 0.6034 -0.7341 0.3115 +vn 0.6024 -0.7335 0.3147 +vn 0.6032 -0.7328 0.3149 +vn 0.6209 -0.7300 0.2857 +vn 0.6343 -0.7111 0.3033 +vn 0.6304 -0.7213 0.2869 +vn 0.6301 -0.7212 0.2880 +vn 0.6470 -0.7048 0.2909 +vn 0.6482 -0.6888 0.3246 +vn 0.6600 -0.6907 0.2955 +vn 0.6064 -0.6874 0.3998 +vn 0.6179 -0.6778 0.3986 +vn 0.6155 -0.6917 0.3777 +vn 0.6272 -0.6813 0.3773 +vn 0.6255 -0.6962 0.3522 +vn 0.6375 -0.6849 0.3529 +vn 0.6015 -0.6710 0.4336 +vn 0.5909 -0.6793 0.4352 +vn 0.5875 -0.6648 0.4614 +vn 0.5766 -0.6715 0.4654 +vn 0.5759 -0.6592 0.4836 +vn 0.5658 -0.6653 0.4870 +vn 0.5658 -0.6541 0.5020 +vn 0.5663 -0.6539 0.5018 +vn 0.5540 -0.6726 0.4906 +vn 0.5415 -0.6799 0.4945 +vn 0.5450 -0.6660 0.5094 +vn 0.5452 -0.6658 0.5093 +vn 0.5308 -0.6553 0.5374 +vn 0.6171 -0.7282 0.2982 +vn 0.6265 -0.7192 0.3006 +vn 0.6204 -0.7165 0.3189 +vn 0.5762 -0.7116 0.4020 +vn 0.6012 -0.7044 0.3773 +vn 0.5841 -0.7185 0.3776 +vn 0.6107 -0.7102 0.3502 +vn 0.6017 -0.7181 0.3496 +vn 0.5413 -0.6801 0.4945 +vn 0.5512 -0.6887 0.4710 +vn 0.5508 -0.6890 0.4711 +vn 0.5775 -0.6888 0.4382 +vn 0.5624 -0.6993 0.4411 +vn 0.6466 -0.7046 0.2924 +vn 0.6283 -0.7089 0.3206 +vn 0.6210 -0.7159 0.3192 +vn 0.6210 -0.7160 0.3190 +vn 0.6211 -0.7160 0.3186 +vn 0.6118 -0.7248 0.3169 +vn 0.6177 -0.7278 0.2978 +vn 0.6076 -0.7373 0.2953 +vn 0.6111 -0.7394 0.2827 +vn 0.5982 -0.6832 0.4188 +vn 0.5980 -0.6832 0.4191 +vn 0.6093 -0.6743 0.4172 +vn 0.5842 -0.6939 0.4210 +vn 0.6065 -0.6874 0.3995 +vn 0.5920 -0.6992 0.4009 +vn 0.6156 -0.6918 0.3774 +vn 0.6005 -0.7048 0.3777 +vn 0.6256 -0.6963 0.3518 +vn 0.6251 -0.6968 0.3517 +vn 0.6364 -0.7007 0.3225 +vn 0.6488 -0.6881 0.3248 +vn 0.5666 -0.7190 0.4024 +vn 0.5691 -0.7053 0.4227 +vn 0.5690 -0.7053 0.4229 +vn 0.5846 -0.6938 0.4206 +vn 0.5770 -0.6890 0.4385 +vn 0.5774 -0.6888 0.4385 +vn 0.5769 -0.6721 0.4642 +vn 0.5647 -0.6800 0.4676 +vn 0.5657 -0.6655 0.4869 +vn 0.5541 -0.6724 0.4907 +vn 0.5560 -0.6598 0.5055 +vn 0.5562 -0.6596 0.5054 +vn 0.5407 -0.6504 0.5335 +vn -1.0000 -0.0001 -0.0000 +vn -0.7071 0.7071 -0.0000 +vn -0.0948 0.0949 0.9910 +vn -0.0947 0.0951 0.9910 +vn -0.0793 0.1034 0.9915 +vn -0.0792 0.1035 0.9915 +vn -0.0875 0.1034 0.9908 +vn -0.0866 0.1131 0.9898 +vn -0.0886 0.1085 0.9901 +vn -0.0839 0.1097 0.9904 +vn -0.0891 0.1165 0.9892 +vn -0.0932 0.1112 0.9894 +vn -0.0952 0.1167 0.9886 +vn -0.1060 0.1042 0.9889 +vn -0.0793 0.0787 0.9937 +vn -0.0795 0.0815 0.9935 +vn -0.0813 0.0987 0.9918 +vn -0.0942 0.0948 0.9910 +vn -0.0867 0.1062 0.9906 +vn -0.1023 0.1068 0.9890 +vn -0.1130 0.0982 0.9887 +vn 0.0798 -0.0000 -0.9968 +vn -0.6365 -0.7008 0.3221 +vn -0.6600 -0.6907 0.2955 +vn -0.6482 -0.6888 0.3246 +vn -0.6470 -0.7048 0.2909 +vn -0.6468 -0.7046 0.2917 +vn -0.6359 -0.7014 0.3220 +vn -0.6391 -0.7126 0.2893 +vn -0.6034 -0.7341 0.3115 +vn -0.6047 -0.7397 0.2952 +vn -0.5936 -0.7254 0.3485 +vn -0.5895 -0.7289 0.3482 +vn -0.5755 -0.7265 0.3756 +vn -0.5764 -0.7248 0.3773 +vn -0.5786 -0.7231 0.3773 +vn -0.5694 -0.7050 0.4227 +vn -0.5606 -0.7114 0.4239 +vn -0.5768 -0.7114 0.4016 +vn -0.5763 -0.7117 0.4017 +vn -0.5559 -0.6933 0.4586 +vn -0.5515 -0.7069 0.4429 +vn -0.5532 -0.7057 0.4426 +vn -0.5415 -0.6799 0.4944 +vn -0.5311 -0.6859 0.4975 +vn -0.5513 -0.6888 0.4708 +vn -0.5402 -0.6956 0.4736 +vn -0.5408 -0.6953 0.4734 +vn -0.5211 -0.6789 0.5173 +vn -0.5219 -0.6783 0.5172 +vn -0.5227 -0.6779 0.5170 +vn -0.5309 -0.6553 0.5373 +vn -0.6489 -0.6881 0.3248 +vn -0.6491 -0.6879 0.3248 +vn -0.6249 -0.6967 0.3522 +vn -0.6378 -0.6845 0.3530 +vn -0.6151 -0.6921 0.3777 +vn -0.6276 -0.6810 0.3773 +vn -0.6060 -0.6877 0.3998 +vn -0.6182 -0.6775 0.3985 +vn -0.5978 -0.6834 0.4191 +vn -0.6096 -0.6741 0.4171 +vn -0.5906 -0.6795 0.4353 +vn -0.6019 -0.6706 0.4336 +vn -0.5497 -0.6459 0.5297 +vn -0.5562 -0.6596 0.5055 +vn -0.5658 -0.6541 0.5020 +vn -0.5658 -0.6654 0.4870 +vn -0.5656 -0.6655 0.4871 +vn -0.5772 -0.6719 0.4641 +vn -0.5644 -0.6803 0.4677 +vn -0.5097 -0.6653 0.5455 +vn -0.5215 -0.6614 0.5390 +vn -0.5333 -0.6723 0.5135 +vn -0.5331 -0.6724 0.5135 +vn -0.5542 -0.6725 0.4905 +vn -0.5412 -0.6800 0.4946 +vn -0.6205 -0.7166 0.3185 +vn -0.6176 -0.7278 0.2983 +vn -0.6211 -0.7160 0.3186 +vn -0.6214 -0.7160 0.3182 +vn -0.6119 -0.7249 0.3165 +vn -0.6081 -0.7369 0.2954 +vn -0.5408 -0.6504 0.5334 +vn -0.5452 -0.6658 0.5094 +vn -0.5560 -0.6598 0.5055 +vn -0.5541 -0.6724 0.4907 +vn -0.5539 -0.6726 0.4908 +vn -0.5648 -0.6801 0.4674 +vn -0.5645 -0.6803 0.4675 +vn -0.5628 -0.6991 0.4411 +vn -0.5771 -0.6891 0.4383 +vn -0.5693 -0.7050 0.4229 +vn -0.5843 -0.6940 0.4207 +vn -0.5766 -0.7113 0.4019 +vn -0.5921 -0.6993 0.4006 +vn -0.5847 -0.7181 0.3776 +vn -0.6007 -0.7048 0.3773 +vn -0.5935 -0.7252 0.3490 +vn -0.5927 -0.7259 0.3489 +vn -0.6033 -0.7329 0.3145 +vn -0.5995 -0.7363 0.3138 +vn -0.6111 -0.7393 0.2827 +vn -0.6113 -0.7395 0.2818 +vn -0.6172 -0.7283 0.2977 +vn -0.6213 -0.7301 0.2845 +vn -0.6261 -0.7196 0.3004 +vn -0.6304 -0.7213 0.2869 +vn -0.6306 -0.7208 0.2876 +vn -0.6284 -0.7089 0.3203 +vn -0.6210 -0.7160 0.3190 +vn -0.6178 -0.7035 0.3513 +vn -0.6105 -0.7101 0.3508 +vn -0.6152 -0.6922 0.3774 +vn -0.6010 -0.7043 0.3777 +vn -0.6062 -0.6877 0.3995 +vn -0.5924 -0.6989 0.4009 +vn -0.5979 -0.6834 0.4189 +vn -0.5845 -0.6937 0.4210 +vn -0.5903 -0.6794 0.4358 +vn -0.5906 -0.6792 0.4358 +vn -0.5763 -0.6717 0.4655 +vn -0.5880 -0.6645 0.4612 +vn 0.7348 0.6783 -0.0001 +vn 0.5747 0.6995 -0.4247 +vn 0.5162 0.6635 -0.5416 +vn 0.5649 0.6554 -0.5013 +vn 0.5491 0.6473 -0.5286 +vn 0.5461 0.6544 -0.5230 +vn 0.5564 0.6603 -0.5044 +vn 0.5324 0.6556 -0.5354 +vn 0.5430 0.6774 -0.4963 +vn 0.5386 0.6839 -0.4921 +vn 0.5218 0.6644 -0.5350 +vn 0.5366 0.6713 -0.5113 +vn 0.5362 0.6715 -0.5114 +vn 0.5447 0.6784 -0.4931 +vn 0.5444 0.6786 -0.4932 +vn 0.5643 0.6783 -0.4706 +vn 0.5541 0.6867 -0.4705 +vn 0.5653 0.6797 -0.4674 +vn 0.5659 0.6959 -0.4421 +vn 0.5757 0.6991 -0.4240 +vn 0.6196 0.7128 -0.3286 +vn 0.6060 0.7123 -0.3542 +vn 0.6421 0.7034 -0.3049 +vn 0.6529 0.6931 -0.3056 +vn 0.6526 0.6932 -0.3061 +vn 0.6532 0.6927 -0.3057 +vn 0.6380 0.6947 -0.3322 +vn 0.6325 0.7000 -0.3316 +vn 0.6317 0.6871 -0.3591 +vn 0.6222 0.6957 -0.3590 +vn 0.6221 0.6834 -0.3821 +vn 0.6227 0.6828 -0.3820 +vn 0.6048 0.6882 -0.4008 +vn 0.6136 0.6795 -0.4022 +vn 0.5853 0.6663 -0.4621 +vn 0.5847 0.6666 -0.4623 +vn 0.5892 0.6792 -0.4377 +vn 0.5642 0.6558 -0.5016 +vn 0.5655 0.6659 -0.4865 +vn 0.5463 0.6659 -0.5081 +vn 0.5464 0.6659 -0.5079 +vn 0.5468 0.6657 -0.5077 +vn 0.5234 0.6601 -0.5389 +vn 0.6053 0.6762 -0.4199 +vn 0.6042 0.6871 -0.4034 +vn 0.6044 0.6872 -0.4030 +vn 0.6038 0.6877 -0.4030 +vn 0.6005 0.7019 -0.3830 +vn 0.6123 0.6921 -0.3822 +vn 0.6095 0.7073 -0.3582 +vn 0.6215 0.6967 -0.3583 +vn 0.6194 0.7127 -0.3293 +vn 0.6180 0.7139 -0.3292 +vn 0.6183 0.7140 -0.3286 +vn 0.6234 0.7218 -0.3006 +vn 0.6033 0.7129 -0.3575 +vn 0.6012 0.7147 -0.3575 +vn 0.5998 0.7028 -0.3826 +vn 0.5910 0.7099 -0.3831 +vn 0.5917 0.6975 -0.4042 +vn 0.5924 0.6970 -0.4041 +vn 0.5841 0.6925 -0.4235 +vn 0.5965 0.6832 -0.4212 +vn 0.5963 0.6831 -0.4216 +vn 0.5979 0.6728 -0.4356 +vn 0.5738 0.6609 -0.4837 +vn 0.5657 0.6766 -0.4713 +vn 0.5658 0.6792 -0.4676 +vn 0.5760 0.6726 -0.4646 +vn 0.5779 0.6874 -0.4399 +vn 0.5773 0.6878 -0.4400 +vn 0.5775 0.6879 -0.4397 +vn 0.5737 0.7002 -0.4249 +vn 1.0000 -0.0000 0.0005 +vn -0.9192 -0.0000 -0.3938 +vn -0.9193 -0.0000 0.3936 +vn -0.9192 -0.0000 0.3939 +vn 0.9192 -0.0000 -0.3938 +vn -0.5958 0.6835 -0.4217 +vn -0.5491 0.6473 -0.5286 +vn -0.6521 0.6937 -0.3059 +vn -0.6287 0.7175 -0.2997 +vn -0.6234 0.7218 -0.3006 +vn -0.6183 0.7140 -0.3285 +vn -0.6135 0.7184 -0.3280 +vn -0.6135 0.7104 -0.3449 +vn -0.6033 0.7129 -0.3575 +vn -0.6097 0.7074 -0.3576 +vn -0.5933 0.7080 -0.3830 +vn -0.5541 0.6867 -0.4705 +vn -0.5552 0.6860 -0.4702 +vn -0.5781 0.6875 -0.4395 +vn -0.5676 0.6947 -0.4417 +vn -0.5849 0.6921 -0.4229 +vn -0.5747 0.6995 -0.4247 +vn -0.5873 0.6942 -0.4162 +vn -0.5822 0.7048 -0.4053 +vn -0.5837 0.7036 -0.4052 +vn -0.5162 0.6635 -0.5416 +vn -0.5300 0.6657 -0.5253 +vn -0.5366 0.6712 -0.5114 +vn -0.5325 0.6557 -0.5352 +vn -0.5411 0.6514 -0.5318 +vn -0.5468 0.6656 -0.5079 +vn -0.5463 0.6659 -0.5081 +vn -0.5464 0.6659 -0.5079 +vn -0.5447 0.6784 -0.4931 +vn -0.5489 0.6478 -0.5282 +vn -0.5563 0.6603 -0.5046 +vn -0.5642 0.6558 -0.5016 +vn -0.5655 0.6659 -0.4865 +vn -0.5738 0.6609 -0.4837 +vn -0.5657 0.6766 -0.4713 +vn -0.5853 0.6663 -0.4621 +vn -0.5758 0.6725 -0.4649 +vn -0.5987 0.6722 -0.4354 +vn -0.6423 0.6905 -0.3327 +vn -0.6430 0.6898 -0.3328 +vn -0.6212 0.6966 -0.3590 +vn -0.6324 0.6864 -0.3591 +vn -0.6120 0.6920 -0.3828 +vn -0.6227 0.6828 -0.3820 +vn -0.6048 0.6882 -0.4008 +vn -0.6136 0.6795 -0.4022 +vn -0.6139 0.6792 -0.4021 +vn -0.6528 0.6930 -0.3060 +vn -0.6409 0.7009 -0.3130 +vn -0.6381 0.6950 -0.3313 +vn -0.6328 0.7001 -0.3308 +vn -0.6083 0.7083 -0.3582 +vn -0.6225 0.6958 -0.3583 +vn -0.5996 0.7027 -0.3831 +vn -0.6131 0.6914 -0.3822 +vn -0.6007 0.7020 -0.3825 +vn -0.5915 0.6974 -0.4047 +vn -0.5922 0.6969 -0.4046 +vn -0.5960 0.6836 -0.4213 +vn -0.5847 0.6920 -0.4234 +vn -0.6059 0.6758 -0.4198 +vn -0.5886 0.6796 -0.4378 +vn -0.5888 0.6797 -0.4374 +vn -0.5894 0.6792 -0.4373 +vn -0.5651 0.6796 -0.4677 +vn -0.5658 0.6792 -0.4676 +vn -0.5643 0.6783 -0.4706 +vn -0.5444 0.6786 -0.4932 +vn -0.5430 0.6774 -0.4963 +vn -0.5431 0.6772 -0.4964 +vn -0.5327 0.6734 -0.5126 +vn -0.5282 0.6758 -0.5142 +vn 0.7071 0.7071 -0.0000 +vn -0.7348 0.6783 -0.0001 +vn 0.1128 0.1108 0.9874 +vn 0.1071 0.1029 0.9889 +vn 0.0952 0.1167 0.9886 +vn 0.0932 0.1112 0.9894 +vn 0.0891 0.1165 0.9892 +vn 0.0839 0.1097 0.9904 +vn 0.0886 0.1085 0.9901 +vn 0.0866 0.1131 0.9898 +vn 0.0792 0.1035 0.9915 +vn 0.0793 0.1034 0.9915 +vn 0.0793 0.1035 0.9915 +vn 0.1048 0.1048 0.9890 +vn 0.0947 0.1065 0.9898 +vn 0.0867 0.1062 0.9906 +vn 0.0941 0.0951 0.9910 +vn 0.0944 0.0948 0.9910 +vn 0.0822 0.0815 0.9933 +vn 0.0793 0.0797 0.9937 +vn 0.0813 0.0987 0.9918 +vn 0.0862 0.1024 0.9910 +vn 0.0840 0.1097 0.9904 +vn -0.7349 -0.6782 -0.0000 +s 1 +f 1//1 2//1 3//1 +f 4//1 5//1 6//1 +f 7//1 8//1 9//1 +f 10//1 11//1 12//1 +f 13//1 14//1 15//1 +f 16//1 17//1 18//1 +f 19//1 20//1 21//1 +f 22//1 23//1 24//1 +f 25//1 26//1 27//1 +f 28//1 29//1 30//1 +f 31//1 32//1 33//1 +f 34//1 35//1 36//1 +f 37//1 38//1 39//1 +f 40//1 41//1 42//1 +f 43//2 44//2 45//2 +f 46//2 47//2 48//2 +f 49//3 50//3 51//3 +f 52//4 53//4 54//4 +f 55//3 56//3 57//3 +f 58//3 59//3 60//3 +f 61//3 62//3 63//3 +f 64//3 65//3 66//3 +f 67//3 68//3 69//3 +f 70//3 71//3 72//3 +f 73//3 74//3 75//3 +f 76//3 77//3 78//3 +f 79//3 80//3 81//3 +f 82//3 83//3 84//3 +f 85//3 86//3 87//3 +f 88//3 89//3 90//3 +f 91//5 92//5 93//5 +f 94//5 95//5 96//5 +f 97//5 98//5 99//5 +f 100//5 101//5 102//5 +f 103//5 104//5 105//5 +f 106//5 107//5 108//5 +f 109//5 110//5 111//5 +f 112//5 113//5 114//5 +f 115//6 116//6 117//6 +f 118//7 119//7 120//7 +f 121//8 122//8 123//8 +f 124//9 125//9 126//9 +f 127//9 128//9 129//9 +f 130//9 131//9 132//9 +f 133//9 134//9 135//9 +f 136//9 137//9 138//9 +f 139//9 140//9 141//9 +f 142//10 143//10 144//10 +f 145//11 146//11 147//11 +f 148//12 149//12 150//12 +f 151//10 152//10 153//10 +f 154//13 155//13 156//13 +f 157//14 158//14 159//14 +f 160//15 161//15 162//15 +f 163//15 164//15 165//15 +f 166//8 167//8 168//8 +f 169//15 170//15 171//15 +f 172//15 173//15 174//15 +f 175//15 176//15 177//15 +f 178//16 179//16 180//16 +f 181//17 182//17 183//17 +f 184//18 185//18 186//18 +f 187//19 188//19 189//19 +f 190//20 191//20 192//20 +f 193//21 194//21 195//21 +f 196//22 197//22 198//22 +f 199//23 200//23 201//23 +f 202//24 203//24 204//24 +f 205//24 206//24 207//24 +f 208//24 209//24 210//24 +f 211//24 212//24 213//24 +f 214//25 215//25 216//25 +f 217//24 218//24 219//24 +f 220//24 221//24 222//24 +f 223//24 224//24 225//24 +f 226//26 227//26 228//26 +f 229//26 230//26 231//26 +f 232//27 233//27 234//27 +f 235//24 236//24 237//24 +f 238//24 239//24 240//24 +f 241//28 242//28 243//28 +f 244//29 245//29 246//29 +f 247//30 248//30 249//30 +f 250//31 251//31 252//31 +f 253//28 254//28 255//28 +f 256//32 257//32 258//32 +f 259//33 260//33 261//33 +f 262//34 263//34 264//34 +f 265//34 266//34 267//34 +f 268//34 269//34 270//34 +f 271//34 272//34 273//34 +f 274//34 275//34 276//34 +f 277//34 278//34 279//34 +f 280//34 281//34 282//34 +f 283//34 284//34 285//34 +f 286//35 287//35 288//35 +f 289//35 290//35 291//35 +f 292//35 293//35 294//35 +f 295//35 296//35 297//35 +f 298//36 299//36 300//36 +f 301//37 302//37 303//37 +f 304//38 305//38 306//38 +f 307//39 308//39 309//39 +f 310//40 311//40 312//40 +f 313//41 314//41 315//41 +f 316//42 317//42 318//42 +f 319//43 320//43 321//43 +f 322//44 323//44 324//44 +f 325//43 326//43 327//43 +f 328//45 329//45 330//45 +f 331//46 332//46 333//46 +f 334//47 335//47 336//47 +f 337//48 338//48 339//48 +f 340//49 341//49 342//49 +f 343//50 344//50 345//50 +f 346//51 347//51 348//51 +f 349//52 350//52 351//52 +f 352//53 353//53 354//53 +f 355//54 356//54 357//54 +f 358//50 359//50 360//50 +f 361//55 362//55 363//55 +f 364//56 365//56 366//56 +f 367//57 368//57 369//57 +f 370//58 371//58 372//58 +f 373//59 374//59 375//59 +f 376//60 377//60 378//60 +f 379//60 380//60 381//60 +f 382//61 383//61 384//61 +f 385//62 386//62 387//62 +f 388//38 389//38 390//38 +f 391//63 392//63 393//63 +f 394//64 395//64 396//64 +f 397//65 398//65 399//65 +f 400//65 401//65 402//65 +f 403//52 404//52 405//52 +f 406//56 407//56 408//56 +f 409//66 410//66 411//66 +f 412//66 413//66 414//66 +f 415//67 416//67 417//67 +f 418//67 419//67 420//67 +f 421//67 422//67 423//67 +f 424//68 425//68 426//68 +f 427//68 428//68 429//68 +f 430//69 431//69 432//69 +f 433//70 434//70 435//70 +f 436//71 437//71 438//71 +f 439//72 440//72 441//72 +f 442//73 443//73 444//73 +f 445//74 446//74 447//74 +f 448//75 449//75 450//75 +f 451//76 452//76 453//76 +f 454//76 455//76 456//76 +f 457//71 458//71 459//71 +f 460//77 461//77 462//77 +f 463//78 464//78 465//78 +f 466//79 467//79 468//79 +f 469//70 470//70 471//70 +f 472//80 473//80 474//80 +f 475//81 476//81 477//81 +f 478//82 479//82 480//82 +f 481//82 482//82 483//82 +f 484//49 485//49 486//49 +f 487//49 488//49 489//49 +f 490//83 491//83 492//83 +f 493//84 494//84 495//84 +f 496//85 497//85 498//85 +f 499//40 500//40 501//40 +f 502//40 503//40 504//40 +f 505//86 506//86 507//86 +f 508//87 509//87 510//87 +f 511//88 512//88 513//88 +f 514//79 515//79 516//79 +f 517//89 518//89 519//89 +f 520//80 521//80 522//80 +f 523//90 524//90 525//90 +f 526//91 527//91 528//91 +f 529//37 530//37 531//37 +f 532//92 533//92 534//92 +f 535//93 536//93 537//93 +f 538//94 539//94 540//94 +f 541//95 542//95 543//95 +f 544//96 545//96 546//96 +f 547//47 548//47 549//47 +f 550//97 551//97 552//97 +f 553//45 554//45 555//45 +f 556//98 557//98 558//98 +f 559//99 560//99 561//99 +f 562//99 563//99 564//99 +f 565//100 566//100 567//100 +f 568//101 569//101 570//101 +f 571//102 572//102 573//102 +f 574//103 575//103 576//103 +f 577//95 578//95 579//95 +f 580//104 581//104 582//104 +f 583//105 584//105 585//105 +f 586//106 587//106 588//106 +f 589//107 590//107 591//107 +f 592//71 593//71 594//71 +f 595//108 596//108 597//108 +f 598//109 599//109 600//109 +f 601//110 602//110 603//110 +f 604//110 605//110 606//110 +f 607//111 608//111 609//111 +f 610//85 611//85 612//85 +f 613//85 614//85 615//85 +f 616//42 617//42 618//42 +f 619//112 620//112 621//112 +f 622//112 623//112 624//112 +f 625//113 626//113 627//113 +f 628//86 629//86 630//86 +f 631//114 632//114 633//114 +f 634//88 635//88 636//88 +f 637//115 638//115 639//115 +f 640//89 641//89 642//89 +f 643//116 644//116 645//116 +f 646//117 647//117 648//117 +f 649//118 650//118 651//118 +f 652//118 653//118 654//118 +f 655//119 656//119 657//119 +f 658//119 659//119 660//119 +f 661//119 662//119 663//119 +f 664//119 665//119 666//119 +f 667//119 668//119 669//119 +f 670//119 671//119 672//119 +f 673//119 674//119 675//119 +f 676//119 677//119 678//119 +f 679//119 680//119 681//119 +f 682//119 683//119 684//119 +f 685//120 686//120 687//120 +f 688//120 689//120 690//120 +f 691//120 692//120 693//120 +f 694//120 695//120 696//120 +f 697//120 698//120 699//120 +f 700//120 701//120 702//120 +f 703//121 704//121 705//121 +f 706//122 707//122 708//122 +f 709//123 710//123 711//123 +f 712//124 713//124 714//124 +f 715//125 716//125 717//125 +f 718//126 719//126 720//126 +f 721//127 722//127 723//127 +f 724//128 725//128 726//128 +f 727//129 728//129 729//129 +f 730//129 731//129 732//129 +f 733//130 734//130 735//130 +f 736//131 737//131 738//131 +f 739//132 740//132 741//132 +f 742//133 743//133 744//133 +f 745//134 746//134 747//134 +f 748//127 749//127 750//127 +f 751//135 752//135 753//135 +f 754//136 755//136 756//136 +f 757//137 758//137 759//137 +f 760//138 761//138 762//138 +f 763//139 764//139 765//139 +f 766//140 767//140 768//140 +f 769//141 770//141 771//141 +f 772//142 773//142 774//142 +f 775//143 776//143 777//143 +f 778//144 779//144 780//144 +f 781//145 782//145 783//145 +f 784//146 785//146 786//146 +f 787//147 788//147 789//147 +f 790//148 791//148 792//148 +f 793//149 794//149 795//149 +f 796//149 797//149 798//149 +f 799//149 800//149 801//149 +f 802//150 803//150 804//150 +f 805//151 806//151 807//151 +f 808//152 809//152 810//152 +f 811//152 812//152 813//152 +f 814//153 815//153 816//153 +f 817//154 818//154 819//154 +f 820//155 821//155 822//155 +f 823//156 824//156 825//156 +f 826//156 827//156 828//156 +f 829//157 830//157 831//157 +f 832//158 833//158 834//158 +f 835//159 836//159 837//159 +f 838//159 839//159 840//159 +f 841//160 842//160 843//160 +f 844//161 845//161 846//161 +f 847//162 848//162 849//162 +f 850//124 851//124 852//124 +f 853//124 854//124 855//124 +f 856//163 857//163 858//163 +f 859//163 860//163 861//163 +f 862//146 863//146 864//146 +f 865//164 866//164 867//164 +f 868//165 869//165 870//165 +f 871//166 872//166 873//166 +f 874//167 875//167 876//167 +f 877//168 878//168 879//168 +f 880//168 881//168 882//168 +f 883//169 884//169 885//169 +f 886//123 887//123 888//123 +f 889//170 890//170 891//170 +f 892//171 893//171 894//171 +f 895//172 896//172 897//172 +f 898//137 899//137 900//137 +f 901//173 902//173 903//173 +f 904//174 905//174 906//174 +f 907//175 908//175 909//175 +f 910//176 911//176 912//176 +f 913//177 914//177 915//177 +f 916//178 917//178 918//178 +f 919//121 920//121 921//121 +f 922//179 923//179 924//179 +f 925//180 926//180 927//180 +f 928//181 929//181 930//181 +f 931//182 932//182 933//182 +f 934//183 935//183 936//183 +f 937//184 938//184 939//184 +f 940//185 941//185 942//185 +f 943//186 944//186 945//186 +f 946//177 947//177 948//177 +f 949//177 950//177 951//177 +f 952//187 953//187 954//187 +f 955//188 956//188 957//188 +f 958//189 959//189 960//189 +f 961//132 962//132 963//132 +f 964//190 965//190 966//190 +f 967//134 968//134 969//134 +f 970//191 971//191 972//191 +f 973//135 974//135 975//135 +f 976//192 977//192 978//192 +f 979//193 980//193 981//193 +f 982//194 983//194 984//194 +f 985//133 986//133 987//133 +f 988//173 989//173 990//173 +f 991//195 992//195 993//195 +f 994//170 995//170 996//170 +f 997//196 998//196 999//196 +f 1000//197 1001//197 1002//197 +f 1003//198 1004//198 1005//198 +f 1006//199 1007//199 1008//199 +f 1009//200 1010//200 1011//200 +f 1012//201 1013//201 1014//201 +f 1015//163 1016//163 1017//163 +f 1018//178 1019//178 1020//178 +f 1021//164 1022//164 1023//164 +f 1024//202 1025//202 1026//202 +f 1027//166 1028//166 1029//166 +f 1030//183 1031//183 1032//183 +f 1033//203 1034//203 1035//203 +f 1036//181 1037//181 1038//181 +f 1039//141 1040//141 1041//141 +f 1042//179 1043//179 1044//179 +f 1045//139 1046//139 1047//139 +f 1048//204 1049//204 1050//204 +f 1051//204 1052//204 1053//204 +f 1054//194 1055//194 1056//194 +f 1057//205 1058//205 1059//205 +f 1060//206 1061//206 1062//206 +f 1063//206 1064//206 1065//206 +f 1066//207 1067//207 1068//207 +f 1069//207 1070//207 1071//207 +f 1072//207 1073//207 1074//207 +f 1075//207 1076//207 1077//207 +f 1078//207 1079//207 1080//207 +f 1081//207 1082//207 1083//207 +f 1084//207 1085//207 1086//207 +f 1087//207 1088//207 1089//207 +f 1090//207 1091//207 1092//207 +f 1093//207 1094//207 1095//207 +f 1096//207 1097//207 1098//207 +f 1099//208 1100//208 1101//208 +f 1102//208 1103//208 1104//208 +f 1105//2 1106//2 1107//2 +f 1108//2 1109//2 1110//2 +f 1111//2 1112//2 1113//2 +f 1114//2 1115//2 1116//2 +f 1117//2 1118//2 1119//2 +f 1120//2 1121//2 1122//2 +f 1123//2 1124//2 1125//2 +f 1126//209 1127//209 1128//209 +f 1129//209 1130//209 1131//209 +f 1132//210 1133//210 1134//210 +f 1135//211 1136//211 1137//211 +f 1138//212 1139//212 1140//212 +f 1141//213 1142//213 1143//213 +f 1144//214 1145//214 1146//214 +f 1147//215 1148//215 1149//215 +f 1150//216 1151//216 1152//216 +f 1153//217 1154//217 1155//217 +f 1156//218 1157//218 1158//218 +f 1159//219 1160//219 1161//219 +f 1162//220 1163//220 1164//220 +f 1165//221 1166//221 1167//221 +f 1168//222 1169//222 1170//222 +f 1171//223 1172//223 1173//223 +f 1174//224 1175//224 1176//224 +f 1177//225 1178//225 1179//225 +f 1180//226 1181//226 1182//226 +f 1183//227 1184//227 1185//227 +f 1186//228 1187//228 1188//228 +f 1189//229 1190//229 1191//229 +f 1192//230 1193//230 1194//230 +f 1195//231 1196//231 1197//231 +f 1198//232 1199//232 1200//232 +f 1201//233 1202//233 1203//233 +f 1204//234 1205//234 1206//234 +f 1207//235 1208//235 1209//235 +f 1210//236 1211//236 1212//236 +f 1213//237 1214//237 1215//237 +f 1216//238 1217//238 1218//238 +f 1219//239 1220//239 1221//239 +f 1222//240 1223//240 1224//240 +f 1225//241 1226//241 1227//241 +f 1228//242 1229//242 1230//242 +f 1231//243 1232//243 1233//243 +f 1234//244 1235//244 1236//244 +f 1237//245 1238//245 1239//245 +f 1240//246 1241//246 1242//246 +f 1243//247 1244//247 1245//247 +f 1246//248 1247//248 1248//248 +f 1249//249 1250//249 1251//249 +f 1252//250 1253//250 1254//250 +f 1255//251 1256//251 1257//251 +f 1258//252 1259//252 1260//252 +f 1261//253 1262//253 1263//253 +f 1264//254 1265//254 1266//254 +f 1267//255 1268//255 1269//255 +f 1270//256 1271//256 1272//256 +f 1273//257 1274//257 1275//257 +f 1276//258 1277//258 1278//258 +f 1279//259 1280//259 1281//259 +f 1282//260 1283//260 1284//260 +f 1285//261 1286//261 1287//261 +f 1288//262 1289//262 1290//262 +f 1291//263 1292//263 1293//263 +f 1294//264 1295//264 1296//264 +f 1297//265 1298//265 1299//265 +f 1300//266 1301//266 1302//266 +f 1303//267 1304//267 1305//267 +f 1306//268 1307//268 1308//268 +f 1309//269 1310//269 1311//269 +f 1312//270 1313//270 1314//270 +f 1315//271 1316//271 1317//271 +f 1318//272 1319//272 1320//272 +f 1321//273 1322//273 1323//273 +f 1324//274 1325//274 1326//274 +f 1327//275 1328//275 1329//275 +f 1330//276 1331//276 1332//276 +f 1333//277 1334//277 1335//277 +f 1336//278 1337//278 1338//278 +f 1339//279 1340//279 1341//279 +f 1342//280 1343//280 1344//280 +f 1345//281 1346//281 1347//281 +f 1348//282 1349//282 1350//282 +f 1351//283 1352//283 1353//283 +f 1354//284 1355//284 1356//284 +f 1357//285 1358//285 1359//285 +f 1360//286 1361//286 1362//286 +f 1363//287 1364//287 1365//287 +f 1366//288 1367//288 1368//288 +f 1369//289 1370//289 1371//289 +f 1372//290 1373//290 1374//290 +f 1375//291 1376//291 1377//291 +f 1378//292 1379//292 1380//292 +f 1381//293 1382//293 1383//293 +f 1384//294 1385//294 1386//294 +f 1387//295 1388//295 1389//295 +f 1390//296 1391//296 1392//296 +f 1393//297 1394//297 1395//297 +f 1396//298 1397//298 1398//298 +f 1399//299 1400//299 1401//299 +f 1402//300 1403//300 1404//300 +f 1405//301 1406//301 1407//301 +f 1408//302 1409//302 1410//302 +f 1411//303 1412//303 1413//303 +f 1414//304 1415//304 1416//304 +f 1417//305 1418//305 1419//305 +f 1420//306 1421//306 1422//306 +f 1423//307 1424//307 1425//307 +f 1426//308 1427//308 1428//308 +f 1429//309 1430//309 1431//309 +f 1432//310 1433//310 1434//310 +f 1435//311 1436//311 1437//311 +f 1438//311 1439//311 1440//311 +f 1441//311 1442//311 1443//311 +f 1444//311 1445//311 1446//311 +f 1447//311 1448//311 1449//311 +f 1450//311 1451//311 1452//311 +f 1453//311 1454//311 1455//311 +f 1456//311 1457//311 1458//311 +f 1459//311 1460//311 1461//311 +f 1462//311 1463//311 1464//311 +f 1465//311 1466//311 1467//311 +f 1468//312 1469//312 1470//312 +f 1471//312 1472//312 1473//312 +f 1474//313 1475//313 1476//313 +f 1477//313 1478//313 1479//313 +f 1480//313 1481//313 1482//313 +f 1483//313 1484//313 1485//313 +f 1486//314 1487//314 1488//314 +f 1489//314 1490//314 1491//314 +f 1492//314 1493//314 1494//314 +f 1495//314 1496//314 1497//314 +f 1498//315 1499//315 1500//315 +f 1501//314 1502//314 1503//314 +f 1504//314 1505//314 1506//314 +f 1507//314 1508//314 1509//314 +f 1510//316 1511//316 1512//316 +f 1513//317 1514//317 1515//317 +f 1516//318 1517//318 1518//318 +f 1519//318 1520//318 1521//318 +f 1522//319 1523//319 1524//319 +f 1525//320 1526//320 1527//320 +f 1528//320 1529//320 1530//320 +f 1531//320 1532//320 1533//320 +f 1534//320 1535//320 1536//320 +f 1537//320 1538//320 1539//320 +f 1540//321 1541//321 1542//321 +f 1543//316 1544//316 1545//316 +f 1546//316 1547//316 1548//316 +f 1549//316 1550//316 1551//316 +f 1552//322 1553//322 1554//322 +f 1555//323 1556//323 1557//323 +f 1558//324 1559//324 1560//324 +f 1561//325 1562//325 1563//325 +f 1564//326 1565//326 1566//326 +f 1567//327 1568//327 1569//327 +f 1570//328 1571//328 1572//328 +f 1573//329 1574//329 1575//329 +f 1576//329 1577//329 1578//329 +f 1579//329 1580//329 1581//329 +f 1582//312 1583//312 1584//312 +f 1585//312 1586//312 1587//312 +f 1588//312 1589//312 1590//312 +f 1591//330 1592//330 1593//330 +f 1594//331 1595//331 1596//331 +f 1597//332 1598//332 1599//332 +f 1600//333 1601//333 1602//333 +f 1603//334 1604//334 1605//334 +f 1606//335 1607//335 1608//335 +f 1609//336 1610//336 1611//336 +f 1612//337 1613//337 1614//337 +f 1615//338 1616//338 1617//338 +f 1618//339 1619//339 1620//339 +f 1621//340 1622//340 1623//340 +f 1624//341 1625//341 1626//341 +f 1627//342 1628//342 1629//342 +f 1630//343 1631//343 1632//343 +f 1633//344 1634//344 1635//344 +f 1636//345 1637//345 1638//345 +f 1639//346 1640//346 1641//346 +f 1642//347 1643//347 1644//347 +f 1645//348 1646//348 1647//348 +f 1648//349 1649//349 1650//349 +f 1651//350 1652//350 1653//350 +f 1654//351 1655//351 1656//351 +f 1657//352 1658//352 1659//352 +f 1660//353 1661//353 1662//353 +f 1663//354 1664//354 1665//354 +f 1666//355 1667//355 1668//355 +f 1669//356 1670//356 1671//356 +f 1672//357 1673//357 1674//357 +f 1675//358 1676//358 1677//358 +f 1678//359 1679//359 1680//359 +f 1681//360 1682//360 1683//360 +f 1684//361 1685//361 1686//361 +f 1687//362 1688//362 1689//362 +f 1690//363 1691//363 1692//363 +f 1693//364 1694//364 1695//364 +f 1696//365 1697//365 1698//365 +f 1699//366 1700//366 1701//366 +f 1702//367 1703//367 1704//367 +f 1705//368 1706//368 1707//368 +f 1708//369 1709//369 1710//369 +f 1711//370 1712//370 1713//370 +f 1714//371 1715//371 1716//371 +f 1717//372 1718//372 1719//372 +f 1720//373 1721//373 1722//373 +f 1723//374 1724//374 1725//374 +f 1726//375 1727//375 1728//375 +f 1729//376 1730//376 1731//376 +f 1732//377 1733//377 1734//377 +f 1735//378 1736//378 1737//378 +f 1738//379 1739//379 1740//379 +f 1741//380 1742//380 1743//380 +f 1744//381 1745//381 1746//381 +f 1747//382 1748//382 1749//382 +f 1750//383 1751//383 1752//383 +f 1753//384 1754//384 1755//384 +f 1756//385 1757//385 1758//385 +f 1759//386 1760//386 1761//386 +f 1762//387 1763//387 1764//387 +f 1765//388 1766//388 1767//388 +f 1768//389 1769//389 1770//389 +f 1771//390 1772//390 1773//390 +f 1774//391 1775//391 1776//391 +f 1777//392 1778//392 1779//392 +f 1780//393 1781//393 1782//393 +f 1783//394 1784//394 1785//394 +f 1786//395 1787//395 1788//395 +f 1789//396 1790//396 1791//396 +f 1792//397 1793//397 1794//397 +f 1795//398 1796//398 1797//398 +f 1798//399 1799//399 1800//399 +f 1801//400 1802//400 1803//400 +f 1804//401 1805//401 1806//401 +f 1807//402 1808//402 1809//402 +f 1810//403 1811//403 1812//403 +f 1813//404 1814//404 1815//404 +f 1816//405 1817//405 1818//405 +f 1819//406 1820//406 1821//406 +f 1822//407 1823//407 1824//407 +f 1825//408 1826//408 1827//408 +f 1828//409 1829//409 1830//409 +f 1831//410 1832//410 1833//410 +f 1834//411 1835//411 1836//411 +f 1837//412 1838//412 1839//412 +f 1840//413 1841//413 1842//413 +f 1843//414 1844//414 1845//414 +f 1846//415 1847//415 1848//415 +f 1849//416 1850//416 1851//416 +f 1852//417 1853//417 1854//417 +f 1855//418 1856//418 1857//418 +f 1858//419 1859//419 1860//419 +f 1861//420 1862//420 1863//420 +f 1864//421 1865//421 1866//421 +f 1867//422 1868//422 1869//422 +f 1870//423 1871//423 1872//423 +f 1873//424 1874//424 1875//424 +f 1876//425 1877//425 1878//425 +f 1879//426 1880//426 1881//426 +f 1882//427 1883//427 1884//427 +f 1885//428 1886//428 1887//428 +f 1888//429 1889//429 1890//429 +f 1891//430 1892//430 1893//430 +f 1894//209 1895//209 1896//209 +f 1897//209 1898//209 1899//209 +f 1900//209 1901//209 1902//209 +f 1903//312 1904//312 1905//312 +f 1906//312 1907//312 1908//312 +f 1909//312 1910//312 1911//312 +f 1912//431 1913//431 1914//431 +f 1915//431 1916//431 1917//431 +f 1918//431 1919//431 1920//431 +f 1921//431 1922//431 1923//431 +f 1924//432 1925//432 1926//432 +f 1927//432 1928//432 1929//432 +f 1930//432 1931//432 1932//432 +f 1933//432 1934//432 1935//432 +f 1936//432 1937//432 1938//432 +f 1939//432 1940//432 1941//432 +f 1942//432 1943//432 1944//432 +f 1945//432 1946//432 1947//432 +f 1948//432 1949//432 1950//432 +f 1951//432 1952//432 1953//432 +f 1954//432 1955//432 1956//432 +f 1957//432 1958//432 1959//432 +f 1960//432 1961//432 1962//432 +f 1963//432 1964//432 1965//432 +f 1966//432 1967//432 1968//432 +f 1969//432 1970//432 1971//432 +f 1972//432 1973//432 1974//432 +f 1975//432 1976//432 1977//432 +f 1978//432 1979//432 1980//432 +f 1981//432 1982//432 1983//432 +f 1984//433 1985//433 1986//433 +f 1987//433 1988//433 1989//433 +f 1990//208 1991//208 1992//208 +f 1993//208 1994//208 1995//208 +f 1996//208 1997//208 1998//208 +f 1999//208 2000//208 2001//208 +f 2002//208 2003//208 2004//208 +f 2005//208 2006//208 2007//208 +f 2008//208 2009//208 2010//208 +f 2011//208 2012//208 2013//208 +f 2014//208 2015//208 2016//208 +f 2017//208 2018//208 2019//208 +f 2020//208 2021//208 2022//208 +f 2023//208 2024//208 2025//208 +f 2026//208 2027//208 2028//208 +f 2029//208 2030//208 2031//208 +f 2032//2 2033//2 2034//2 +f 2035//2 2036//2 2037//2 +f 2038//2 2039//2 2040//2 +f 2041//2 2042//2 2043//2 +f 2044//2 2045//2 2046//2 +f 2047//2 2048//2 2049//2 +f 2050//2 2051//2 2052//2 +f 2053//2 2054//2 2055//2 +f 2056//2 2057//2 2058//2 +f 2059//2 2060//2 2061//2 +f 2062//2 2063//2 2064//2 +f 2065//2 2066//2 2067//2 +f 2068//2 2069//2 2070//2 +f 2071//434 2072//434 2073//434 +f 2074//434 2075//434 2076//434 +f 2077//434 2078//434 2079//434 +f 2080//434 2081//434 2082//434 +f 2083//434 2084//434 2085//434 +f 2086//434 2087//434 2088//434 +f 2089//434 2090//434 2091//434 +f 2092//434 2093//434 2094//434 +f 2095//435 2096//435 2097//435 +f 2098//435 2099//435 2100//435 +f 2101//435 2102//435 2103//435 +f 2104//435 2105//435 2106//435 +f 2107//435 2108//435 2109//435 +f 2110//435 2111//435 2112//435 +f 2113//2 2114//2 2115//2 +f 2116//2 2117//2 2118//2 +f 2119//436 2120//436 2121//436 +f 2122//436 2123//436 2124//436 +f 2125//436 2126//436 2127//436 +f 2128//436 2129//436 2130//436 +f 2131//436 2132//436 2133//436 +f 2134//436 2135//436 2136//436 +f 2137//436 2138//436 2139//436 +f 2140//436 2141//436 2142//436 +f 2143//436 2144//436 2145//436 +f 2146//436 2147//436 2148//436 +f 2149//209 2150//209 2151//209 +f 2152//209 2153//209 2154//209 +f 2155//437 2156//437 2157//437 +f 2158//438 2159//438 2160//438 +f 2161//438 2162//438 2163//438 +f 2164//438 2165//438 2166//438 +f 2167//438 2168//438 2169//438 +f 2170//438 2171//438 2172//438 +f 2173//438 2174//438 2175//438 +f 2176//439 2177//439 2178//439 +f 2179//439 2180//439 2181//439 +f 2182//439 2183//439 2184//439 +f 2185//440 2186//440 2187//440 +f 2188//440 2189//440 2190//440 +f 2191//440 2192//440 2193//440 +f 2194//440 2195//440 2196//440 +f 2197//441 2198//441 2199//441 +f 2200//441 2201//441 2202//441 +f 2203//440 2204//440 2205//440 +f 2206//440 2207//440 2208//440 +f 2209//442 2210//442 2211//442 +f 2212//443 2213//443 2214//443 +f 2215//444 2216//444 2217//444 +f 2218//445 2219//445 2220//445 +f 2221//446 2222//446 2223//446 +f 2224//446 2225//446 2226//446 +f 2227//447 2228//447 2229//447 +f 2230//447 2231//447 2232//447 +f 2233//447 2234//447 2235//447 +f 2236//448 2237//448 2238//448 +f 2239//448 2240//448 2241//448 +f 2242//448 2243//448 2244//448 +f 2245//448 2246//448 2247//448 +f 2248//448 2249//448 2250//448 +f 2251//448 2252//448 2253//448 +f 2254//449 2255//449 2256//449 +f 2257//449 2258//449 2259//449 +f 2260//448 2261//448 2262//448 +f 2263//450 2264//450 2265//450 +f 2266//451 2267//451 2268//451 +f 2269//451 2270//451 2271//451 +f 2272//448 2273//448 2274//448 +f 2275//452 2276//452 2277//452 +f 2278//453 2279//453 2280//453 +f 2281//454 2282//454 2283//454 +f 2284//455 2285//455 2286//455 +f 2287//456 2288//456 2289//456 +f 2290//457 2291//457 2292//457 +f 2293//434 2294//434 2295//434 +f 2296//434 2297//434 2298//434 +f 2299//434 2300//434 2301//434 +f 2302//434 2303//434 2304//434 +f 2305//458 2306//458 2307//458 +f 2308//434 2309//434 2310//434 +f 2311//434 2312//434 2313//434 +f 2314//434 2315//434 2316//434 +f 2317//119 2318//119 2319//119 +f 2320//119 2321//119 2322//119 +f 2323//209 2324//209 2325//209 +f 2326//209 2327//209 2328//209 +f 2329//209 2330//209 2331//209 +f 2332//459 2333//459 2334//459 +f 2335//460 2336//460 2337//460 +f 2338//461 2339//461 2340//461 +f 2341//462 2342//462 2343//462 +f 2344//463 2345//463 2346//463 +f 2347//464 2348//464 2349//464 +f 2350//465 2351//465 2352//465 +f 2353//466 2354//466 2355//466 +f 2356//467 2357//467 2358//467 +f 2359//468 2360//468 2361//468 +f 2362//469 2363//469 2364//469 +f 2365//470 2366//470 2367//470 +f 2368//471 2369//471 2370//471 +f 2371//472 2372//472 2373//472 +f 2374//473 2375//473 2376//473 +f 2377//474 2378//474 2379//474 +f 2380//475 2381//475 2382//475 +f 2383//476 2384//476 2385//476 +f 2386//477 2387//477 2388//477 +f 2389//478 2390//478 2391//478 +f 2392//479 2393//479 2394//479 +f 2395//480 2396//480 2397//480 +f 2398//481 2399//481 2400//481 +f 2401//482 2402//482 2403//482 +f 2404//483 2405//483 2406//483 +f 2407//484 2408//484 2409//484 +f 2410//485 2411//485 2412//485 +f 2413//486 2414//486 2415//486 +f 2416//487 2417//487 2418//487 +f 2419//488 2420//488 2421//488 +f 2422//489 2423//489 2424//489 +f 2425//490 2426//490 2427//490 +f 2428//491 2429//491 2430//491 +f 2431//492 2432//492 2433//492 +f 2434//493 2435//493 2436//493 +f 2437//494 2438//494 2439//494 +f 2440//495 2441//495 2442//495 +f 2443//496 2444//496 2445//496 +f 2446//497 2447//497 2448//497 +f 2449//498 2450//498 2451//498 +f 2452//499 2453//499 2454//499 +f 2455//500 2456//500 2457//500 +f 2458//501 2459//501 2460//501 +f 2461//502 2462//502 2463//502 +f 2464//503 2465//503 2466//503 +f 2467//504 2468//504 2469//504 +f 2470//505 2471//505 2472//505 +f 2473//506 2474//506 2475//506 +f 2476//507 2477//507 2478//507 +f 2479//508 2480//508 2481//508 +f 2482//509 2483//509 2484//509 +f 2485//510 2486//510 2487//510 +f 2488//511 2489//511 2490//511 +f 2491//512 2492//512 2493//512 +f 2494//513 2495//513 2496//513 +f 2497//514 2498//514 2499//514 +f 2500//515 2501//515 2502//515 +f 2503//516 2504//516 2505//516 +f 2506//517 2507//517 2508//517 +f 2509//518 2510//518 2511//518 +f 2512//519 2513//519 2514//519 +f 2515//520 2516//520 2517//520 +f 2518//521 2519//521 2520//521 +f 2521//522 2522//522 2523//522 +f 2524//523 2525//523 2526//523 +f 2527//524 2528//524 2529//524 +f 2530//525 2531//525 2532//525 +f 2533//526 2534//526 2535//526 +f 2536//527 2537//527 2538//527 +f 2539//528 2540//528 2541//528 +f 2542//529 2543//529 2544//529 +f 2545//530 2546//530 2547//530 +f 2548//531 2549//531 2550//531 +f 2551//532 2552//532 2553//532 +f 2554//533 2555//533 2556//533 +f 2557//534 2558//534 2559//534 +f 2560//535 2561//535 2562//535 +f 2563//536 2564//536 2565//536 +f 2566//537 2567//537 2568//537 +f 2569//538 2570//538 2571//538 +f 2572//539 2573//539 2574//539 +f 2575//540 2576//540 2577//540 +f 2578//541 2579//541 2580//541 +f 2581//542 2582//542 2583//542 +f 2584//543 2585//543 2586//543 +f 2587//544 2588//544 2589//544 +f 2590//545 2591//545 2592//545 +f 2593//546 2594//546 2595//546 +f 2596//547 2597//547 2598//547 +f 2599//548 2600//548 2601//548 +f 2602//549 2603//549 2604//549 +f 2605//550 2606//550 2607//550 +f 2608//551 2609//551 2610//551 +f 2611//552 2612//552 2613//552 +f 2614//553 2615//553 2616//553 +f 2617//554 2618//554 2619//554 +f 2620//555 2621//555 2622//555 +f 2623//556 2624//556 2625//556 +f 2626//557 2627//557 2628//557 +f 2629//558 2630//558 2631//558 +f 2632//559 2633//559 2634//559 +f 2635//312 2636//312 2637//312 +f 2638//312 2639//312 2640//312 +f 2641//560 2642//560 2643//560 +f 2644//561 2645//561 2646//561 +f 2647//561 2648//561 2649//561 +f 2650//207 2651//207 2652//207 +f 2653//207 2654//207 2655//207 +f 2656//207 2657//207 2658//207 +f 2659//207 2660//207 2661//207 +f 2662//207 2663//207 2664//207 +f 2665//207 2666//207 2667//207 +f 2668//207 2669//207 2670//207 +f 2671//207 2672//207 2673//207 +f 2674//207 2675//207 2676//207 +f 2677//207 2678//207 2679//207 +f 2680//207 2681//207 2682//207 +f 2683//207 2684//207 2685//207 +f 2686//207 2687//207 2688//207 +f 2689//207 2690//207 2691//207 +f 2692//562 2693//562 2694//562 +f 2695//563 2696//563 2697//563 +f 2698//564 2699//564 2700//564 +f 2701//565 2702//565 2703//565 +f 2704//565 2705//565 2706//565 +f 2707//565 2708//565 2709//565 +f 2710//565 2711//565 2712//565 +f 2713//564 2714//564 2715//564 +f 2716//566 2717//566 2718//566 +f 2719//565 2720//565 2721//565 +f 2722//565 2723//565 2724//565 +f 2725//565 2726//565 2727//565 +f 2728//565 2729//565 2730//565 +f 2731//565 2732//565 2733//565 +f 2734//567 2735//567 2736//567 +f 2737//567 2738//567 2739//567 +f 2740//568 2741//568 2742//568 +f 2743//569 2744//569 2745//569 +f 2746//569 2747//569 2748//569 +f 2749//570 2750//570 2751//570 +f 2752//571 2753//571 2754//571 +f 2755//572 2756//572 2757//572 +f 2758//573 2759//573 2760//573 +f 2761//574 2762//574 2763//574 +f 2764//575 2765//575 2766//575 +f 2767//576 2768//576 2769//576 +f 2770//577 2771//577 2772//577 +f 2773//578 2774//578 2775//578 +f 2776//579 2777//579 2778//579 +f 2779//580 2780//580 2781//580 +f 2782//561 2783//561 2784//561 +f 2785//561 2786//561 2787//561 +f 2788//120 2789//120 2790//120 +f 2791//120 2792//120 2793//120 +f 2794//120 2795//120 2796//120 +f 2797//120 2798//120 2799//120 +f 2800//120 2801//120 2802//120 +f 2803//120 2804//120 2805//120 +f 2806//120 2807//120 2808//120 +f 2809//120 2810//120 2811//120 +f 2812//120 2813//120 2814//120 +f 2815//581 2816//581 2817//581 +f 2818//120 2819//120 2820//120 +f 2821//120 2822//120 2823//120 +f 2824//120 2825//120 2826//120 +f 2827//209 2828//209 2829//209 +f 2830//209 2831//209 2832//209 +f 2833//439 2834//439 2835//439 +f 2836//439 2837//439 2838//439 +f 2839//439 2840//439 2841//439 +f 2842//312 2843//312 2844//312 +f 2845//312 2846//312 2847//312 +f 2848//312 2849//312 2850//312 +f 2851//312 2852//312 2853//312 +f 2854//433 2855//433 2856//433 +f 2857//433 2858//433 2859//433 +f 2860//433 2861//433 2862//433 +f 2863//433 2864//433 2865//433 +f 2866//433 2867//433 2868//433 +f 2869//433 2870//433 2871//433 +f 2872//208 2873//208 2874//208 +f 2875//208 2876//208 2877//208 +f 2878//582 2879//582 2880//582 +f 2881//583 2882//583 2883//583 +f 2884//584 2885//584 2886//584 +f 2887//585 2888//585 2889//585 +f 2890//586 2891//586 2892//586 +f 2893//587 2894//587 2895//587 +f 2896//588 2897//588 2898//588 +f 2899//589 2900//589 2901//589 +f 2902//590 2903//590 2904//590 +f 2905//591 2906//591 2907//591 +f 2908//592 2909//592 2910//592 +f 2911//593 2912//593 2913//593 +f 2914//594 2915//594 2916//594 +f 2917//595 2918//595 2919//595 +f 2920//596 2921//596 2922//596 +f 2923//597 2924//597 2925//597 +f 2926//598 2927//598 2928//598 +f 2929//599 2930//599 2931//599 +f 2932//600 2933//600 2934//600 +f 2935//601 2936//601 2937//601 +f 2938//602 2939//602 2940//602 +f 2941//603 2942//603 2943//603 +f 2944//604 2945//604 2946//604 +f 2947//605 2948//605 2949//605 +f 2950//606 2951//606 2952//606 +f 2953//607 2954//607 2955//607 +f 2956//608 2957//608 2958//608 +f 2959//609 2960//609 2961//609 +f 2962//610 2963//610 2964//610 +f 2965//611 2966//611 2967//611 +f 2968//612 2969//612 2970//612 +f 2971//613 2972//613 2973//613 +f 2974//614 2975//614 2976//614 +f 2977//615 2978//615 2979//615 +f 2980//616 2981//616 2982//616 +f 2983//617 2984//617 2985//617 +f 2986//618 2987//618 2988//618 +f 2989//619 2990//619 2991//619 +f 2992//620 2993//620 2994//620 +f 2995//621 2996//621 2997//621 +f 2998//622 2999//622 3000//622 +f 3001//623 3002//623 3003//623 +f 3004//624 3005//624 3006//624 +f 3007//625 3008//625 3009//625 +f 3010//626 3011//626 3012//626 +f 3013//627 3014//627 3015//627 +f 3016//628 3017//628 3018//628 +f 3019//629 3020//629 3021//629 +f 3022//630 3023//630 3024//630 +f 3025//631 3026//631 3027//631 +f 3028//632 3029//632 3030//632 +f 3031//633 3032//633 3033//633 +f 3034//634 3035//634 3036//634 +f 3037//635 3038//635 3039//635 +f 3040//636 3041//636 3042//636 +f 3043//637 3044//637 3045//637 +f 3046//638 3047//638 3048//638 +f 3049//639 3050//639 3051//639 +f 3052//640 3053//640 3054//640 +f 3055//641 3056//641 3057//641 +f 3058//642 3059//642 3060//642 +f 3061//643 3062//643 3063//643 +f 3064//644 3065//644 3066//644 +f 3067//645 3068//645 3069//645 +f 3070//646 3071//646 3072//646 +f 3073//647 3074//647 3075//647 +f 3076//648 3077//648 3078//648 +f 3079//649 3080//649 3081//649 +f 3082//650 3083//650 3084//650 +f 3085//651 3086//651 3087//651 +f 3088//652 3089//652 3090//652 +f 3091//653 3092//653 3093//653 +f 3094//654 3095//654 3096//654 +f 3097//655 3098//655 3099//655 +f 3100//656 3101//656 3102//656 +f 3103//657 3104//657 3105//657 +f 3106//658 3107//658 3108//658 +f 3109//659 3110//659 3111//659 +f 3112//660 3113//660 3114//660 +f 3115//661 3116//661 3117//661 +f 3118//662 3119//662 3120//662 +f 3121//663 3122//663 3123//663 +f 3124//664 3125//664 3126//664 +f 3127//665 3128//665 3129//665 +f 3130//666 3131//666 3132//666 +f 3133//667 3134//667 3135//667 +f 3136//668 3137//668 3138//668 +f 3139//669 3140//669 3141//669 +f 3142//670 3143//670 3144//670 +f 3145//671 3146//671 3147//671 +f 3148//672 3149//672 3150//672 +f 3151//673 3152//673 3153//673 +f 3154//674 3155//674 3156//674 +f 3157//675 3158//675 3159//675 +f 3160//676 3161//676 3162//676 +f 3163//677 3164//677 3165//677 +f 3166//678 3167//678 3168//678 +f 3169//679 3170//679 3171//679 +f 3172//680 3173//680 3174//680 +f 3175//681 3176//681 3177//681 +f 3178//682 3179//682 3180//682 +f 3181//435 3182//435 3183//435 +f 3184//435 3185//435 3186//435 +f 3187//435 3188//435 3189//435 +f 3190//435 3191//435 3192//435 +f 3193//435 3194//435 3195//435 +f 3196//435 3197//435 3198//435 +f 3199//435 3200//435 3201//435 +f 3202//435 3203//435 3204//435 +f 3205//435 3206//435 3207//435 +f 3208//435 3209//435 3210//435 +f 3211//435 3212//435 3213//435 +f 3214//435 3215//435 3216//435 +f 3217//206 3218//206 3219//206 +f 3220//206 3221//206 3222//206 +f 3223//206 3224//206 3225//206 +f 3226//206 3227//206 3228//206 +f 3229//206 3230//206 3231//206 +f 3232//206 3233//206 3234//206 +f 3235//3 3236//3 3237//3 +f 3238//3 3239//3 3240//3 +f 3241//3 3242//3 3243//3 +f 3244//3 3245//3 3246//3 +f 3247//3 3248//3 3249//3 +f 3250//3 3251//3 3252//3 +f 3253//683 3254//683 3255//683 +f 3256//3 3257//3 3258//3 +f 3259//3 3260//3 3261//3 +f 3262//3 3263//3 3264//3 +f 3265//3 3266//3 3267//3 +f 3268//3 3269//3 3270//3 +f 3271//3 3272//3 3273//3 +f 3274//3 3275//3 3276//3 +f 3277//3 3278//3 3279//3 +f 3280//3 3281//3 3282//3 +f 3283//3 3284//3 3285//3 +f 3286//2 3287//2 3288//2 +f 3289//2 3290//2 3291//2 +f 3292//2 3293//2 3294//2 +f 3295//2 3296//2 3297//2 +f 3298//2 3299//2 3300//2 +f 3301//2 3302//2 3303//2 +f 3304//432 3305//432 3306//432 +f 3307//432 3308//432 3309//432 +f 3310//684 3311//684 3312//684 +f 3313//685 3314//685 3315//685 +f 3316//686 3317//686 3318//686 +f 3319//687 3320//687 3321//687 +f 3322//688 3323//688 3324//688 +f 3325//689 3326//689 3327//689 +f 3328//690 3329//690 3330//690 +f 3331//691 3332//691 3333//691 +f 3334//692 3335//692 3336//692 +f 3337//693 3338//693 3339//693 +f 3340//694 3341//694 3342//694 +f 3343//695 3344//695 3345//695 +f 3346//696 3347//696 3348//696 +f 3349//697 3350//697 3351//697 +f 3352//698 3353//698 3354//698 +f 3355//699 3356//699 3357//699 +f 3358//700 3359//700 3360//700 +f 3361//701 3362//701 3363//701 +f 3364//702 3365//702 3366//702 +f 3367//703 3368//703 3369//703 +f 3370//704 3371//704 3372//704 +f 3373//705 3374//705 3375//705 +f 3376//706 3377//706 3378//706 +f 3379//707 3380//707 3381//707 +f 3382//708 3383//708 3384//708 +f 3385//709 3386//709 3387//709 +f 3388//710 3389//710 3390//710 +f 3391//711 3392//711 3393//711 +f 3394//712 3395//712 3396//712 +f 3397//713 3398//713 3399//713 +f 3400//714 3401//714 3402//714 +f 3403//715 3404//715 3405//715 +f 3406//716 3407//716 3408//716 +f 3409//717 3410//717 3411//717 +f 3412//718 3413//718 3414//718 +f 3415//719 3416//719 3417//719 +f 3418//720 3419//720 3420//720 +f 3421//721 3422//721 3423//721 +f 3424//722 3425//722 3426//722 +f 3427//723 3428//723 3429//723 +f 3430//724 3431//724 3432//724 +f 3433//725 3434//725 3435//725 +f 3436//726 3437//726 3438//726 +f 3439//727 3440//727 3441//727 +f 3442//728 3443//728 3444//728 +f 3445//729 3446//729 3447//729 +f 3448//730 3449//730 3450//730 +f 3451//731 3452//731 3453//731 +f 3454//732 3455//732 3456//732 +f 3457//733 3458//733 3459//733 +f 3460//734 3461//734 3462//734 +f 3463//735 3464//735 3465//735 +f 3466//736 3467//736 3468//736 +f 3469//737 3470//737 3471//737 +f 3472//738 3473//738 3474//738 +f 3475//739 3476//739 3477//739 +f 3478//740 3479//740 3480//740 +f 3481//741 3482//741 3483//741 +f 3484//742 3485//742 3486//742 +f 3487//743 3488//743 3489//743 +f 3490//744 3491//744 3492//744 +f 3493//745 3494//745 3495//745 +f 3496//746 3497//746 3498//746 +f 3499//747 3500//747 3501//747 +f 3502//748 3503//748 3504//748 +f 3505//749 3506//749 3507//749 +f 3508//750 3509//750 3510//750 +f 3511//751 3512//751 3513//751 +f 3514//752 3515//752 3516//752 +f 3517//753 3518//753 3519//753 +f 3520//754 3521//754 3522//754 +f 3523//755 3524//755 3525//755 +f 3526//438 3527//438 3528//438 +f 3529//438 3530//438 3531//438 +f 3532//438 3533//438 3534//438 +f 3535//438 3536//438 3537//438 +f 3538//438 3539//438 3540//438 +f 3541//438 3542//438 3543//438 +f 3544//438 3545//438 3546//438 +f 3547//438 3548//438 3549//438 +f 3550//438 3551//438 3552//438 +f 3553//438 3554//438 3555//438 +f 3556//438 3557//438 3558//438 +f 3559//438 3560//438 3561//438 +f 3562//438 3563//438 3564//438 +f 3565//35 3566//35 3567//35 +f 3568//35 3569//35 3570//35 +f 3571//35 3572//35 3573//35 +f 3574//35 3575//35 3576//35 +f 3577//35 3578//35 3579//35 +f 3580//35 3581//35 3582//35 +f 3583//313 3584//313 3585//313 +f 3586//313 3587//313 3588//313 +f 3589//313 3590//313 3591//313 +f 3592//313 3593//313 3594//313 +f 3595//431 3596//431 3597//431 +f 3598//431 3599//431 3600//431 +f 3601//431 3602//431 3603//431 +f 3604//431 3605//431 3606//431 +f 3607//209 3608//209 3609//209 +f 3610//209 3611//209 3612//209 +f 3613//756 3614//756 3615//756 +f 3616//757 3617//757 3618//757 +f 3619//314 3620//314 3621//314 +f 3622//314 3623//314 3624//314 +f 3625//314 3626//314 3627//314 +f 3628//119 3629//119 3630//119 +f 3631//119 3632//119 3633//119 +f 3634//119 3635//119 3636//119 +f 3637//119 3638//119 3639//119 +f 3640//119 3641//119 3642//119 +f 3643//119 3644//119 3645//119 +f 3646//119 3647//119 3648//119 +f 3649//2 3650//2 3651//2 +f 3652//2 3653//2 3654//2 +f 3655//2 3656//2 3657//2 +f 3658//2 3659//2 3660//2 +f 3661//2 3662//2 3663//2 +f 3664//2 3665//2 3666//2 +f 3667//2 3668//2 3669//2 +f 3670//2 3671//2 3672//2 +f 3673//2 3674//2 3675//2 +f 3676//2 3677//2 3678//2 +f 3679//432 3680//432 3681//432 +f 3682//432 3683//432 3684//432 +f 3685//432 3686//432 3687//432 +f 3688//432 3689//432 3690//432 +f 3691//432 3692//432 3693//432 +f 3694//432 3695//432 3696//432 +f 3697//432 3698//432 3699//432 +f 3700//432 3701//432 3702//432 +f 3703//432 3704//432 3705//432 +f 3706//432 3707//432 3708//432 +f 3709//432 3710//432 3711//432 +f 3712//432 3713//432 3714//432 +f 3715//432 3716//432 3717//432 +f 3718//432 3719//432 3720//432 +f 3721//432 3722//432 3723//432 +f 3724//432 3725//432 3726//432 +f 3727//432 3728//432 3729//432 +f 3730//432 3731//432 3732//432 +f 3733//432 3734//432 3735//432 +f 3736//432 3737//432 3738//432 +f 3739//432 3740//432 3741//432 +f 3742//432 3743//432 3744//432 +f 3745//432 3746//432 3747//432 +f 3748//432 3749//432 3750//432 +f 3751//432 3752//432 3753//432 +f 3754//432 3755//432 3756//432 +f 3757//432 3758//432 3759//432 +f 3760//432 3761//432 3762//432 +f 3763//432 3764//432 3765//432 +f 3766//432 3767//432 3768//432 +f 3769//432 3770//432 3771//432 +f 3772//432 3773//432 3774//432 +f 3775//432 3776//432 3777//432 +f 3778//432 3779//432 3780//432 +f 3781//209 3782//209 3783//209 +f 3784//209 3785//209 3786//209 +f 3787//209 3788//209 3789//209 +f 3790//209 3791//209 3792//209 +f 3793//432 3794//432 3795//432 +f 3796//432 3797//432 3798//432 +f 3799//432 3800//432 3801//432 +f 3802//432 3803//432 3804//432 +f 3805//432 3806//432 3807//432 +f 3808//432 3809//432 3810//432 +f 3811//5 3812//5 3813//5 +f 3814//758 3815//758 3816//758 +f 3817//5 3818//5 3819//5 +f 3820//5 3821//5 3822//5 +f 3823//759 3824//759 3825//759 +f 3826//5 3827//5 3828//5 +f 3829//759 3830//759 3831//759 +f 3832//5 3833//5 3834//5 +f 3835//440 3836//440 3837//440 +f 3838//440 3839//440 3840//440 +f 3841//440 3842//440 3843//440 +f 3844//760 3845//760 3846//760 +f 3847//329 3848//329 3849//329 +f 3850//329 3851//329 3852//329 +f 3853//329 3854//329 3855//329 +f 3856//34 3857//34 3858//34 +f 3859//34 3860//34 3861//34 +f 3862//34 3863//34 3864//34 +f 3865//34 3866//34 3867//34 +f 3868//34 3869//34 3870//34 +f 3871//34 3872//34 3873//34 +f 3874//34 3875//34 3876//34 +f 3877//34 3878//34 3879//34 +f 3880//34 3881//34 3882//34 +f 3883//34 3884//34 3885//34 +f 3886//761 3887//761 3888//761 +f 3889//762 3890//762 3891//762 +f 3892//763 3893//763 3894//763 +f 3895//764 3896//764 3897//764 +f 3898//765 3899//765 3900//765 +f 3901//766 3902//766 3903//766 +f 3904//767 3905//767 3906//767 +f 3907//768 3908//768 3909//768 +f 3910//769 3911//769 3912//769 +f 3913//770 3914//770 3915//770 +f 3916//771 3917//771 3918//771 +f 3919//772 3920//772 3921//772 +f 3922//773 3923//773 3924//773 +f 3925//774 3926//774 3927//774 +f 3928//775 3929//775 3930//775 +f 3931//776 3932//776 3933//776 +f 3934//777 3935//777 3936//777 +f 3937//778 3938//778 3939//778 +f 3940//779 3941//779 3942//779 +f 3943//780 3944//780 3945//780 +f 3946//781 3947//781 3948//781 +f 3949//782 3950//782 3951//782 +f 3952//783 3953//783 3954//783 +f 3955//784 3956//784 3957//784 +f 3958//785 3959//785 3960//785 +f 3961//786 3962//786 3963//786 +f 3964//787 3965//787 3966//787 +f 3967//788 3968//788 3969//788 +f 3970//789 3971//789 3972//789 +f 3973//790 3974//790 3975//790 +f 3976//791 3977//791 3978//791 +f 3979//792 3980//792 3981//792 +f 3982//793 3983//793 3984//793 +f 3985//794 3986//794 3987//794 +f 3988//795 3989//795 3990//795 +f 3991//796 3992//796 3993//796 +f 3994//797 3995//797 3996//797 +f 3997//798 3998//798 3999//798 +f 4000//799 4001//799 4002//799 +f 4003//800 4004//800 4005//800 +f 4006//801 4007//801 4008//801 +f 4009//802 4010//802 4011//802 +f 4012//803 4013//803 4014//803 +f 4015//804 4016//804 4017//804 +f 4018//805 4019//805 4020//805 +f 4021//806 4022//806 4023//806 +f 4024//807 4025//807 4026//807 +f 4027//808 4028//808 4029//808 +f 4030//809 4031//809 4032//809 +f 4033//810 4034//810 4035//810 +f 4036//811 4037//811 4038//811 +f 4039//812 4040//812 4041//812 +f 4042//813 4043//813 4044//813 +f 4045//814 4046//814 4047//814 +f 4048//815 4049//815 4050//815 +f 4051//816 4052//816 4053//816 +f 4054//817 4055//817 4056//817 +f 4057//818 4058//818 4059//818 +f 4060//819 4061//819 4062//819 +f 4063//820 4064//820 4065//820 +f 4066//821 4067//821 4068//821 +f 4069//822 4070//822 4071//822 +f 4072//823 4073//823 4074//823 +f 4075//824 4076//824 4077//824 +f 4078//825 4079//825 4080//825 +f 4081//826 4082//826 4083//826 +f 4084//827 4085//827 4086//827 +f 4087//828 4088//828 4089//828 +f 4090//829 4091//829 4092//829 +f 4093//830 4094//830 4095//830 +f 4096//831 4097//831 4098//831 +f 4099//832 4100//832 4101//832 +f 4102//208 4103//208 4104//208 +f 4105//208 4106//208 4107//208 +f 4108//436 4109//436 4110//436 +f 4111//436 4112//436 4113//436 +f 4114//436 4115//436 4116//436 +f 4117//436 4118//436 4119//436 +f 4120//436 4121//436 4122//436 +f 4123//436 4124//436 4125//436 +f 4126//436 4127//436 4128//436 +f 4129//436 4130//436 4131//436 +f 4132//436 4133//436 4134//436 +f 4135//436 4136//436 4137//436 +f 4138//833 4139//833 4140//833 +f 4141//833 4142//833 4143//833 +f 4144//1 4145//1 4146//1 +f 4147//1 4148//1 4149//1 +f 4150//1 4151//1 4152//1 +f 4153//1 4154//1 4155//1 +f 4156//1 4157//1 4158//1 +f 4159//1 4160//1 4161//1 +f 4162//834 4163//834 4164//834 +f 4165//1 4166//1 4167//1 +f 4168//1 4169//1 4170//1 +f 4171//1 4172//1 4173//1 +f 4174//1 4175//1 4176//1 +f 4177//1 4178//1 4179//1 +f 4180//1 4181//1 4182//1 +f 4183//1 4184//1 4185//1 +f 4186//1 4187//1 4188//1 +f 4189//1 4190//1 4191//1 +f 4192//1 4193//1 4194//1 +f 4195//119 4196//119 4197//119 +f 4198//119 4199//119 4200//119 +f 4201//119 4202//119 4203//119 +f 4204//119 4205//119 4206//119 +f 4207//119 4208//119 4209//119 +f 4210//119 4211//119 4212//119 +f 4213//119 4214//119 4215//119 +f 4216//835 4217//835 4218//835 +f 4219//836 4220//836 4221//836 +f 4222//837 4223//837 4224//837 +f 4225//838 4226//838 4227//838 +f 4228//839 4229//839 4230//839 +f 4231//840 4232//840 4233//840 +f 4234//840 4235//840 4236//840 +f 4237//841 4238//841 4239//841 +f 4240//842 4241//842 4242//842 +f 4243//842 4244//842 4245//842 +f 4246//843 4247//843 4248//843 +f 4249//843 4250//843 4251//843 +f 4252//843 4253//843 4254//843 +f 4255//843 4256//843 4257//843 +f 4258//843 4259//843 4260//843 +f 4261//843 4262//843 4263//843 +f 4264//843 4265//843 4266//843 +f 4267//844 4268//844 4269//844 +f 4270//845 4271//845 4272//845 +f 4273//843 4274//843 4275//843 +f 4276//846 4277//846 4278//846 +f 4279//847 4280//847 4281//847 +f 4282//848 4283//848 4284//848 +f 4285//849 4286//849 4287//849 +f 4288//850 4289//850 4290//850 +f 4291//851 4292//851 4293//851 +f 4294//852 4295//852 4296//852 +f 4297//853 4298//853 4299//853 +f 4300//854 4301//854 4302//854 +f 4303//855 4304//855 4305//855 +f 4306//311 4307//311 4308//311 +f 4309//856 4310//856 4311//856 +f 4312//311 4313//311 4314//311 +f 4315//311 4316//311 4317//311 +f 4318//311 4319//311 4320//311 +f 4321//311 4322//311 4323//311 +f 4324//311 4325//311 4326//311 +f 4327//311 4328//311 4329//311 +f 4330//311 4331//311 4332//311 +f 4333//311 4334//311 4335//311 +f 4336//311 4337//311 4338//311 +f 4339//311 4340//311 4341//311 +f 4342//311 4343//311 4344//311 +f 4345//311 4346//311 4347//311 +f 4348//833 4349//833 4350//833 +f 4351//833 4352//833 4353//833 +f 4354//209 4355//209 4356//209 +f 4357//209 4358//209 4359//209 +f 4360//209 4361//209 4362//209 +f 4363//312 4364//312 4365//312 +f 4366//312 4367//312 4368//312 +f 4369//312 4370//312 4371//312 +f 4372//208 4373//208 4374//208 +f 4375//208 4376//208 4377//208 +f 4378//312 4379//312 4380//312 +f 4381//312 4382//312 4383//312 +f 4384//312 4385//312 4386//312 +f 4387//312 4388//312 4389//312 +f 4390//312 4391//312 4392//312 +f 4393//119 4394//119 4395//119 +f 4396//119 4397//119 4398//119 +f 4399//119 4400//119 4401//119 +f 4402//119 4403//119 4404//119 +f 4405//119 4406//119 4407//119 +f 4408//119 4409//119 4410//119 +f 4411//119 4412//119 4413//119 +f 4414//119 4415//119 4416//119 From 68d631921ece237c1a882f44cb68a71336c0bbbd Mon Sep 17 00:00:00 2001 From: Paul Kuiper <46715907+pkuiper-ultimaker@users.noreply.github.com> Date: Wed, 3 Sep 2025 16:51:54 +0200 Subject: [PATCH 149/200] Reliability improvements to the RapidRinse raft settings (less chance on jamming). PP-622 --- ...um_methodx_2xa_um-rapidrinse-175_0.2mm.inst.cfg | 14 ++++++++++---- ...m_methodxl_2xa_um-rapidrinse-175_0.2mm.inst.cfg | 14 ++++++++++---- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/resources/quality/ultimaker_methodx/um_methodx_2xa_um-rapidrinse-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodx/um_methodx_2xa_um-rapidrinse-175_0.2mm.inst.cfg index 4897ef28bc..e5cff57c0e 100644 --- a/resources/quality/ultimaker_methodx/um_methodx_2xa_um-rapidrinse-175_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_methodx/um_methodx_2xa_um-rapidrinse-175_0.2mm.inst.cfg @@ -16,10 +16,16 @@ brim_replaces_support = False cool_fan_enabled = False cool_min_temperature = =material_print_temperature raft_airgap = 0.0 -raft_interface_flow = 110 -raft_interface_infill_overlap = 25 -raft_interface_speed = 90 -raft_interface_z_offset = -0.1 +raft_interface_flow = 108 +raft_interface_infill_overlap = 35 +raft_interface_layers = 2 +raft_interface_line_width = 0.52 +raft_interface_speed = 60 +raft_interface_thickness = 0.25 +raft_interface_z_offset = -0.15 +raft_surface_flow = 105 +raft_surface_layers = 2 +raft_surface_z_offset = -0.1 retract_at_layer_change = True retraction_min_travel = 5 speed_prime_tower = 25.0 diff --git a/resources/quality/ultimaker_methodxl/um_methodxl_2xa_um-rapidrinse-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodxl/um_methodxl_2xa_um-rapidrinse-175_0.2mm.inst.cfg index 3c5935b341..f76ef0fe9b 100644 --- a/resources/quality/ultimaker_methodxl/um_methodxl_2xa_um-rapidrinse-175_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_methodxl/um_methodxl_2xa_um-rapidrinse-175_0.2mm.inst.cfg @@ -16,10 +16,16 @@ brim_replaces_support = False cool_fan_enabled = False cool_min_temperature = =material_print_temperature raft_airgap = 0.0 -raft_interface_flow = 110 -raft_interface_infill_overlap = 25 -raft_interface_speed = 90 -raft_interface_z_offset = -0.1 +raft_interface_flow = 108 +raft_interface_infill_overlap = 35 +raft_interface_layers = 2 +raft_interface_line_width = 0.52 +raft_interface_speed = 60 +raft_interface_thickness = 0.25 +raft_interface_z_offset = -0.15 +raft_surface_flow = 105 +raft_surface_layers = 2 +raft_surface_z_offset = -0.1 retract_at_layer_change = True retraction_min_travel = 5 speed_prime_tower = 25.0 From 986ff9b1694de6c3cdb0bf4af5a2fade183377a6 Mon Sep 17 00:00:00 2001 From: Paul Kuiper <46715907+pkuiper-ultimaker@users.noreply.github.com> Date: Thu, 4 Sep 2025 10:57:06 +0200 Subject: [PATCH 150/200] Print profile for Method Nylon in 1A, !C and LABS extruder. PP-577 --- .../definitions/ultimaker_method.def.json | 1 - .../ultimaker_method_base.def.json | 2 +- .../definitions/ultimaker_methodx.def.json | 1 - ...d_1a_um-nylon-175_0.2mm_highspeed.inst.cfg | 25 ++++++++ ...um-nylon-175_0.2mm_highspeedsolid.inst.cfg | 31 ++++++++++ ...ethod_1a_um-nylon-175_0.2mm_solid.inst.cfg | 22 +++++++ ...d_1c_um-nylon-175_0.2mm_highspeed.inst.cfg | 25 ++++++++ ...um-nylon-175_0.2mm_highspeedsolid.inst.cfg | 31 ++++++++++ ...ethod_1c_um-nylon-175_0.2mm_solid.inst.cfg | 22 +++++++ ...labs_um-nylon-175_0.2mm_highspeed.inst.cfg | 25 ++++++++ ...um-nylon-175_0.2mm_highspeedsolid.inst.cfg | 31 ++++++++++ ...hod_labs_um-nylon-175_0.2mm_solid.inst.cfg | 22 +++++++ ...x_1a_um-nylon-175_0.2mm_highspeed.inst.cfg | 25 ++++++++ ...um-nylon-175_0.2mm_highspeedsolid.inst.cfg | 31 ++++++++++ ...thodx_1a_um-nylon-175_0.2mm_solid.inst.cfg | 22 +++++++ ...x_1c_um-nylon-175_0.2mm_highspeed.inst.cfg | 25 ++++++++ ...um-nylon-175_0.2mm_highspeedsolid.inst.cfg | 31 ++++++++++ ...thodx_1c_um-nylon-175_0.2mm_solid.inst.cfg | 22 +++++++ ...labs_um-nylon-175_0.2mm_highspeed.inst.cfg | 25 ++++++++ ...um-nylon-175_0.2mm_highspeedsolid.inst.cfg | 31 ++++++++++ ...odx_labs_um-nylon-175_0.2mm_solid.inst.cfg | 22 +++++++ .../um_method_1a_um-nylon-175_0.2mm.inst.cfg | 58 +++++++++++++++++++ .../um_method_1c_um-nylon-175_0.2mm.inst.cfg | 58 +++++++++++++++++++ ...um_method_labs_um-nylon-175_0.2mm.inst.cfg | 58 +++++++++++++++++++ .../um_methodx_1a_um-nylon-175_0.2mm.inst.cfg | 58 +++++++++++++++++++ .../um_methodx_1c_um-nylon-175_0.2mm.inst.cfg | 58 +++++++++++++++++++ ...m_methodx_labs_um-nylon-175_0.2mm.inst.cfg | 58 +++++++++++++++++++ 27 files changed, 817 insertions(+), 3 deletions(-) create mode 100644 resources/intent/ultimaker_method/um_method_1a_um-nylon-175_0.2mm_highspeed.inst.cfg create mode 100644 resources/intent/ultimaker_method/um_method_1a_um-nylon-175_0.2mm_highspeedsolid.inst.cfg create mode 100644 resources/intent/ultimaker_method/um_method_1a_um-nylon-175_0.2mm_solid.inst.cfg create mode 100644 resources/intent/ultimaker_method/um_method_1c_um-nylon-175_0.2mm_highspeed.inst.cfg create mode 100644 resources/intent/ultimaker_method/um_method_1c_um-nylon-175_0.2mm_highspeedsolid.inst.cfg create mode 100644 resources/intent/ultimaker_method/um_method_1c_um-nylon-175_0.2mm_solid.inst.cfg create mode 100644 resources/intent/ultimaker_method/um_method_labs_um-nylon-175_0.2mm_highspeed.inst.cfg create mode 100644 resources/intent/ultimaker_method/um_method_labs_um-nylon-175_0.2mm_highspeedsolid.inst.cfg create mode 100644 resources/intent/ultimaker_method/um_method_labs_um-nylon-175_0.2mm_solid.inst.cfg create mode 100644 resources/intent/ultimaker_methodx/um_methodx_1a_um-nylon-175_0.2mm_highspeed.inst.cfg create mode 100644 resources/intent/ultimaker_methodx/um_methodx_1a_um-nylon-175_0.2mm_highspeedsolid.inst.cfg create mode 100644 resources/intent/ultimaker_methodx/um_methodx_1a_um-nylon-175_0.2mm_solid.inst.cfg create mode 100644 resources/intent/ultimaker_methodx/um_methodx_1c_um-nylon-175_0.2mm_highspeed.inst.cfg create mode 100644 resources/intent/ultimaker_methodx/um_methodx_1c_um-nylon-175_0.2mm_highspeedsolid.inst.cfg create mode 100644 resources/intent/ultimaker_methodx/um_methodx_1c_um-nylon-175_0.2mm_solid.inst.cfg create mode 100644 resources/intent/ultimaker_methodx/um_methodx_labs_um-nylon-175_0.2mm_highspeed.inst.cfg create mode 100644 resources/intent/ultimaker_methodx/um_methodx_labs_um-nylon-175_0.2mm_highspeedsolid.inst.cfg create mode 100644 resources/intent/ultimaker_methodx/um_methodx_labs_um-nylon-175_0.2mm_solid.inst.cfg create mode 100644 resources/quality/ultimaker_method/um_method_1a_um-nylon-175_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_method/um_method_1c_um-nylon-175_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_method/um_method_labs_um-nylon-175_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_methodx/um_methodx_1a_um-nylon-175_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_methodx/um_methodx_1c_um-nylon-175_0.2mm.inst.cfg create mode 100644 resources/quality/ultimaker_methodx/um_methodx_labs_um-nylon-175_0.2mm.inst.cfg diff --git a/resources/definitions/ultimaker_method.def.json b/resources/definitions/ultimaker_method.def.json index d2813ea8a3..c1a820f834 100644 --- a/resources/definitions/ultimaker_method.def.json +++ b/resources/definitions/ultimaker_method.def.json @@ -45,7 +45,6 @@ "ultimaker_bvoh_175", "ultimaker_cffpa_175", "ultimaker_cpe_175", - "ultimaker_nylon_175", "ultimaker_hips_175", "ultimaker_pc_175", "ultimaker_tpu_175", diff --git a/resources/definitions/ultimaker_method_base.def.json b/resources/definitions/ultimaker_method_base.def.json index e421b20529..ac37078571 100644 --- a/resources/definitions/ultimaker_method_base.def.json +++ b/resources/definitions/ultimaker_method_base.def.json @@ -701,7 +701,7 @@ 45 ] }, - "support_infill_rate": { "value": 20.0 }, + "support_infill_rate": { "value": "0 if support_structure == 'tree' else 20.0" }, "support_infill_sparse_thickness": { "value": "layer_height" }, "support_interface_enable": { "value": true }, "support_interface_height": { "value": "4*support_infill_sparse_thickness" }, diff --git a/resources/definitions/ultimaker_methodx.def.json b/resources/definitions/ultimaker_methodx.def.json index 37b11ad4ef..e5aa87afc1 100644 --- a/resources/definitions/ultimaker_methodx.def.json +++ b/resources/definitions/ultimaker_methodx.def.json @@ -44,7 +44,6 @@ "zyyx_pro_", "octofiber_", "fiberlogy_", - "ultimaker_nylon_175", "ultimaker_metallic_pla_175" ], "has_machine_materials": true, diff --git a/resources/intent/ultimaker_method/um_method_1a_um-nylon-175_0.2mm_highspeed.inst.cfg b/resources/intent/ultimaker_method/um_method_1a_um-nylon-175_0.2mm_highspeed.inst.cfg new file mode 100644 index 0000000000..a864337115 --- /dev/null +++ b/resources/intent/ultimaker_method/um_method_1a_um-nylon-175_0.2mm_highspeed.inst.cfg @@ -0,0 +1,25 @@ +[general] +definition = ultimaker_method +name = High Speed +version = 4 + +[metadata] +intent_category = highspeed +is_experimental = True +material = ultimaker_nylon_175 +quality_type = draft +setting_version = 25 +type = intent +variant = 1A + +[values] +acceleration_print = 3500 +bridge_wall_speed = 300 +cool_min_layer_time = 3 +infill_pattern = zigzag +jerk_print = 35 +speed_layer_0 = 55 +speed_print = 300 +speed_travel = 500 +support_pattern = zigzag + diff --git a/resources/intent/ultimaker_method/um_method_1a_um-nylon-175_0.2mm_highspeedsolid.inst.cfg b/resources/intent/ultimaker_method/um_method_1a_um-nylon-175_0.2mm_highspeedsolid.inst.cfg new file mode 100644 index 0000000000..9dd0d6c8fa --- /dev/null +++ b/resources/intent/ultimaker_method/um_method_1a_um-nylon-175_0.2mm_highspeedsolid.inst.cfg @@ -0,0 +1,31 @@ +[general] +definition = ultimaker_method +name = High Speed Solid +version = 4 + +[metadata] +intent_category = highspeedsolid +is_experimental = True +material = ultimaker_nylon_175 +quality_type = draft +setting_version = 25 +type = intent +variant = 1A + +[values] +acceleration_print = 3500 +bottom_thickness = =top_bottom_thickness +bridge_wall_speed = 300 +cool_min_layer_time = 3 +infill_angles = [45,135] +infill_material_flow = 97 +infill_pattern = zigzag +infill_sparse_density = 99 +jerk_print = 35 +speed_layer_0 = 55 +speed_print = 300 +speed_travel = 500 +support_pattern = zigzag +top_bottom_thickness = =layer_height * 2 +top_thickness = =top_bottom_thickness + diff --git a/resources/intent/ultimaker_method/um_method_1a_um-nylon-175_0.2mm_solid.inst.cfg b/resources/intent/ultimaker_method/um_method_1a_um-nylon-175_0.2mm_solid.inst.cfg new file mode 100644 index 0000000000..912d71d2eb --- /dev/null +++ b/resources/intent/ultimaker_method/um_method_1a_um-nylon-175_0.2mm_solid.inst.cfg @@ -0,0 +1,22 @@ +[general] +definition = ultimaker_method +name = Solid +version = 4 + +[metadata] +intent_category = solid +material = ultimaker_nylon_175 +quality_type = draft +setting_version = 25 +type = intent +variant = 1A + +[values] +bottom_thickness = =top_bottom_thickness +infill_angles = [45,135] +infill_material_flow = 97 +infill_pattern = zigzag +infill_sparse_density = 99 +top_bottom_thickness = =layer_height * 2 +top_thickness = =top_bottom_thickness + diff --git a/resources/intent/ultimaker_method/um_method_1c_um-nylon-175_0.2mm_highspeed.inst.cfg b/resources/intent/ultimaker_method/um_method_1c_um-nylon-175_0.2mm_highspeed.inst.cfg new file mode 100644 index 0000000000..8e9ae1594a --- /dev/null +++ b/resources/intent/ultimaker_method/um_method_1c_um-nylon-175_0.2mm_highspeed.inst.cfg @@ -0,0 +1,25 @@ +[general] +definition = ultimaker_method +name = High Speed +version = 4 + +[metadata] +intent_category = highspeed +is_experimental = True +material = ultimaker_nylon_175 +quality_type = draft +setting_version = 25 +type = intent +variant = 1C + +[values] +acceleration_print = 3500 +bridge_wall_speed = 300 +cool_min_layer_time = 3 +infill_pattern = zigzag +jerk_print = 35 +speed_layer_0 = 55 +speed_print = 300 +speed_travel = 500 +support_pattern = zigzag + diff --git a/resources/intent/ultimaker_method/um_method_1c_um-nylon-175_0.2mm_highspeedsolid.inst.cfg b/resources/intent/ultimaker_method/um_method_1c_um-nylon-175_0.2mm_highspeedsolid.inst.cfg new file mode 100644 index 0000000000..65918cdec0 --- /dev/null +++ b/resources/intent/ultimaker_method/um_method_1c_um-nylon-175_0.2mm_highspeedsolid.inst.cfg @@ -0,0 +1,31 @@ +[general] +definition = ultimaker_method +name = High Speed Solid +version = 4 + +[metadata] +intent_category = highspeedsolid +is_experimental = True +material = ultimaker_nylon_175 +quality_type = draft +setting_version = 25 +type = intent +variant = 1C + +[values] +acceleration_print = 3500 +bottom_thickness = =top_bottom_thickness +bridge_wall_speed = 300 +cool_min_layer_time = 3 +infill_angles = [45,135] +infill_material_flow = 97 +infill_pattern = zigzag +infill_sparse_density = 99 +jerk_print = 35 +speed_layer_0 = 55 +speed_print = 300 +speed_travel = 500 +support_pattern = zigzag +top_bottom_thickness = =layer_height * 2 +top_thickness = =top_bottom_thickness + diff --git a/resources/intent/ultimaker_method/um_method_1c_um-nylon-175_0.2mm_solid.inst.cfg b/resources/intent/ultimaker_method/um_method_1c_um-nylon-175_0.2mm_solid.inst.cfg new file mode 100644 index 0000000000..ed8949a519 --- /dev/null +++ b/resources/intent/ultimaker_method/um_method_1c_um-nylon-175_0.2mm_solid.inst.cfg @@ -0,0 +1,22 @@ +[general] +definition = ultimaker_method +name = Solid +version = 4 + +[metadata] +intent_category = solid +material = ultimaker_nylon_175 +quality_type = draft +setting_version = 25 +type = intent +variant = 1C + +[values] +bottom_thickness = =top_bottom_thickness +infill_angles = [45,135] +infill_material_flow = 97 +infill_pattern = zigzag +infill_sparse_density = 99 +top_bottom_thickness = =layer_height * 2 +top_thickness = =top_bottom_thickness + diff --git a/resources/intent/ultimaker_method/um_method_labs_um-nylon-175_0.2mm_highspeed.inst.cfg b/resources/intent/ultimaker_method/um_method_labs_um-nylon-175_0.2mm_highspeed.inst.cfg new file mode 100644 index 0000000000..c8e31af0be --- /dev/null +++ b/resources/intent/ultimaker_method/um_method_labs_um-nylon-175_0.2mm_highspeed.inst.cfg @@ -0,0 +1,25 @@ +[general] +definition = ultimaker_method +name = High Speed +version = 4 + +[metadata] +intent_category = highspeed +is_experimental = True +material = ultimaker_nylon_175 +quality_type = draft +setting_version = 25 +type = intent +variant = LABS + +[values] +acceleration_print = 3500 +bridge_wall_speed = 300 +cool_min_layer_time = 3 +infill_pattern = zigzag +jerk_print = 35 +speed_layer_0 = 55 +speed_print = 300 +speed_travel = 500 +support_pattern = zigzag + diff --git a/resources/intent/ultimaker_method/um_method_labs_um-nylon-175_0.2mm_highspeedsolid.inst.cfg b/resources/intent/ultimaker_method/um_method_labs_um-nylon-175_0.2mm_highspeedsolid.inst.cfg new file mode 100644 index 0000000000..94aa6c8267 --- /dev/null +++ b/resources/intent/ultimaker_method/um_method_labs_um-nylon-175_0.2mm_highspeedsolid.inst.cfg @@ -0,0 +1,31 @@ +[general] +definition = ultimaker_method +name = High Speed Solid +version = 4 + +[metadata] +intent_category = highspeedsolid +is_experimental = True +material = ultimaker_nylon_175 +quality_type = draft +setting_version = 25 +type = intent +variant = LABS + +[values] +acceleration_print = 3500 +bottom_thickness = =top_bottom_thickness +bridge_wall_speed = 300 +cool_min_layer_time = 3 +infill_angles = [45,135] +infill_material_flow = 97 +infill_pattern = zigzag +infill_sparse_density = 99 +jerk_print = 35 +speed_layer_0 = 55 +speed_print = 300 +speed_travel = 500 +support_pattern = zigzag +top_bottom_thickness = =layer_height * 2 +top_thickness = =top_bottom_thickness + diff --git a/resources/intent/ultimaker_method/um_method_labs_um-nylon-175_0.2mm_solid.inst.cfg b/resources/intent/ultimaker_method/um_method_labs_um-nylon-175_0.2mm_solid.inst.cfg new file mode 100644 index 0000000000..f77d77afa2 --- /dev/null +++ b/resources/intent/ultimaker_method/um_method_labs_um-nylon-175_0.2mm_solid.inst.cfg @@ -0,0 +1,22 @@ +[general] +definition = ultimaker_method +name = Solid +version = 4 + +[metadata] +intent_category = solid +material = ultimaker_nylon_175 +quality_type = draft +setting_version = 25 +type = intent +variant = LABS + +[values] +bottom_thickness = =top_bottom_thickness +infill_angles = [45,135] +infill_material_flow = 97 +infill_pattern = zigzag +infill_sparse_density = 99 +top_bottom_thickness = =layer_height * 2 +top_thickness = =top_bottom_thickness + diff --git a/resources/intent/ultimaker_methodx/um_methodx_1a_um-nylon-175_0.2mm_highspeed.inst.cfg b/resources/intent/ultimaker_methodx/um_methodx_1a_um-nylon-175_0.2mm_highspeed.inst.cfg new file mode 100644 index 0000000000..967aa0dbf8 --- /dev/null +++ b/resources/intent/ultimaker_methodx/um_methodx_1a_um-nylon-175_0.2mm_highspeed.inst.cfg @@ -0,0 +1,25 @@ +[general] +definition = ultimaker_methodx +name = High Speed +version = 4 + +[metadata] +intent_category = highspeed +is_experimental = True +material = ultimaker_nylon_175 +quality_type = draft +setting_version = 25 +type = intent +variant = 1A + +[values] +acceleration_print = 3500 +bridge_wall_speed = 300 +cool_min_layer_time = 3 +infill_pattern = zigzag +jerk_print = 35 +speed_layer_0 = 55 +speed_print = 300 +speed_travel = 500 +support_pattern = zigzag + diff --git a/resources/intent/ultimaker_methodx/um_methodx_1a_um-nylon-175_0.2mm_highspeedsolid.inst.cfg b/resources/intent/ultimaker_methodx/um_methodx_1a_um-nylon-175_0.2mm_highspeedsolid.inst.cfg new file mode 100644 index 0000000000..a08f2e1948 --- /dev/null +++ b/resources/intent/ultimaker_methodx/um_methodx_1a_um-nylon-175_0.2mm_highspeedsolid.inst.cfg @@ -0,0 +1,31 @@ +[general] +definition = ultimaker_methodx +name = High Speed Solid +version = 4 + +[metadata] +intent_category = highspeedsolid +is_experimental = True +material = ultimaker_nylon_175 +quality_type = draft +setting_version = 25 +type = intent +variant = 1A + +[values] +acceleration_print = 3500 +bottom_thickness = =top_bottom_thickness +bridge_wall_speed = 300 +cool_min_layer_time = 3 +infill_angles = [45,135] +infill_material_flow = 97 +infill_pattern = zigzag +infill_sparse_density = 99 +jerk_print = 35 +speed_layer_0 = 55 +speed_print = 300 +speed_travel = 500 +support_pattern = zigzag +top_bottom_thickness = =layer_height * 2 +top_thickness = =top_bottom_thickness + diff --git a/resources/intent/ultimaker_methodx/um_methodx_1a_um-nylon-175_0.2mm_solid.inst.cfg b/resources/intent/ultimaker_methodx/um_methodx_1a_um-nylon-175_0.2mm_solid.inst.cfg new file mode 100644 index 0000000000..e9d7188457 --- /dev/null +++ b/resources/intent/ultimaker_methodx/um_methodx_1a_um-nylon-175_0.2mm_solid.inst.cfg @@ -0,0 +1,22 @@ +[general] +definition = ultimaker_methodx +name = Solid +version = 4 + +[metadata] +intent_category = solid +material = ultimaker_nylon_175 +quality_type = draft +setting_version = 25 +type = intent +variant = 1A + +[values] +bottom_thickness = =top_bottom_thickness +infill_angles = [45,135] +infill_material_flow = 97 +infill_pattern = zigzag +infill_sparse_density = 99 +top_bottom_thickness = =layer_height * 2 +top_thickness = =top_bottom_thickness + diff --git a/resources/intent/ultimaker_methodx/um_methodx_1c_um-nylon-175_0.2mm_highspeed.inst.cfg b/resources/intent/ultimaker_methodx/um_methodx_1c_um-nylon-175_0.2mm_highspeed.inst.cfg new file mode 100644 index 0000000000..d31a6542b6 --- /dev/null +++ b/resources/intent/ultimaker_methodx/um_methodx_1c_um-nylon-175_0.2mm_highspeed.inst.cfg @@ -0,0 +1,25 @@ +[general] +definition = ultimaker_methodx +name = High Speed +version = 4 + +[metadata] +intent_category = highspeed +is_experimental = True +material = ultimaker_nylon_175 +quality_type = draft +setting_version = 25 +type = intent +variant = 1C + +[values] +acceleration_print = 3500 +bridge_wall_speed = 300 +cool_min_layer_time = 3 +infill_pattern = zigzag +jerk_print = 35 +speed_layer_0 = 55 +speed_print = 300 +speed_travel = 500 +support_pattern = zigzag + diff --git a/resources/intent/ultimaker_methodx/um_methodx_1c_um-nylon-175_0.2mm_highspeedsolid.inst.cfg b/resources/intent/ultimaker_methodx/um_methodx_1c_um-nylon-175_0.2mm_highspeedsolid.inst.cfg new file mode 100644 index 0000000000..29bd7371a0 --- /dev/null +++ b/resources/intent/ultimaker_methodx/um_methodx_1c_um-nylon-175_0.2mm_highspeedsolid.inst.cfg @@ -0,0 +1,31 @@ +[general] +definition = ultimaker_methodx +name = High Speed Solid +version = 4 + +[metadata] +intent_category = highspeedsolid +is_experimental = True +material = ultimaker_nylon_175 +quality_type = draft +setting_version = 25 +type = intent +variant = 1C + +[values] +acceleration_print = 3500 +bottom_thickness = =top_bottom_thickness +bridge_wall_speed = 300 +cool_min_layer_time = 3 +infill_angles = [45,135] +infill_material_flow = 97 +infill_pattern = zigzag +infill_sparse_density = 99 +jerk_print = 35 +speed_layer_0 = 55 +speed_print = 300 +speed_travel = 500 +support_pattern = zigzag +top_bottom_thickness = =layer_height * 2 +top_thickness = =top_bottom_thickness + diff --git a/resources/intent/ultimaker_methodx/um_methodx_1c_um-nylon-175_0.2mm_solid.inst.cfg b/resources/intent/ultimaker_methodx/um_methodx_1c_um-nylon-175_0.2mm_solid.inst.cfg new file mode 100644 index 0000000000..ae2bc39db8 --- /dev/null +++ b/resources/intent/ultimaker_methodx/um_methodx_1c_um-nylon-175_0.2mm_solid.inst.cfg @@ -0,0 +1,22 @@ +[general] +definition = ultimaker_methodx +name = Solid +version = 4 + +[metadata] +intent_category = solid +material = ultimaker_nylon_175 +quality_type = draft +setting_version = 25 +type = intent +variant = 1C + +[values] +bottom_thickness = =top_bottom_thickness +infill_angles = [45,135] +infill_material_flow = 97 +infill_pattern = zigzag +infill_sparse_density = 99 +top_bottom_thickness = =layer_height * 2 +top_thickness = =top_bottom_thickness + diff --git a/resources/intent/ultimaker_methodx/um_methodx_labs_um-nylon-175_0.2mm_highspeed.inst.cfg b/resources/intent/ultimaker_methodx/um_methodx_labs_um-nylon-175_0.2mm_highspeed.inst.cfg new file mode 100644 index 0000000000..e54a52ba05 --- /dev/null +++ b/resources/intent/ultimaker_methodx/um_methodx_labs_um-nylon-175_0.2mm_highspeed.inst.cfg @@ -0,0 +1,25 @@ +[general] +definition = ultimaker_methodx +name = High Speed +version = 4 + +[metadata] +intent_category = highspeed +is_experimental = True +material = ultimaker_nylon_175 +quality_type = draft +setting_version = 25 +type = intent +variant = LABS + +[values] +acceleration_print = 3500 +bridge_wall_speed = 300 +cool_min_layer_time = 3 +infill_pattern = zigzag +jerk_print = 35 +speed_layer_0 = 55 +speed_print = 300 +speed_travel = 500 +support_pattern = zigzag + diff --git a/resources/intent/ultimaker_methodx/um_methodx_labs_um-nylon-175_0.2mm_highspeedsolid.inst.cfg b/resources/intent/ultimaker_methodx/um_methodx_labs_um-nylon-175_0.2mm_highspeedsolid.inst.cfg new file mode 100644 index 0000000000..d1402a3140 --- /dev/null +++ b/resources/intent/ultimaker_methodx/um_methodx_labs_um-nylon-175_0.2mm_highspeedsolid.inst.cfg @@ -0,0 +1,31 @@ +[general] +definition = ultimaker_methodx +name = High Speed Solid +version = 4 + +[metadata] +intent_category = highspeedsolid +is_experimental = True +material = ultimaker_nylon_175 +quality_type = draft +setting_version = 25 +type = intent +variant = LABS + +[values] +acceleration_print = 3500 +bottom_thickness = =top_bottom_thickness +bridge_wall_speed = 300 +cool_min_layer_time = 3 +infill_angles = [45,135] +infill_material_flow = 97 +infill_pattern = zigzag +infill_sparse_density = 99 +jerk_print = 35 +speed_layer_0 = 55 +speed_print = 300 +speed_travel = 500 +support_pattern = zigzag +top_bottom_thickness = =layer_height * 2 +top_thickness = =top_bottom_thickness + diff --git a/resources/intent/ultimaker_methodx/um_methodx_labs_um-nylon-175_0.2mm_solid.inst.cfg b/resources/intent/ultimaker_methodx/um_methodx_labs_um-nylon-175_0.2mm_solid.inst.cfg new file mode 100644 index 0000000000..e5a0fe6dc8 --- /dev/null +++ b/resources/intent/ultimaker_methodx/um_methodx_labs_um-nylon-175_0.2mm_solid.inst.cfg @@ -0,0 +1,22 @@ +[general] +definition = ultimaker_methodx +name = Solid +version = 4 + +[metadata] +intent_category = solid +material = ultimaker_nylon_175 +quality_type = draft +setting_version = 25 +type = intent +variant = LABS + +[values] +bottom_thickness = =top_bottom_thickness +infill_angles = [45,135] +infill_material_flow = 97 +infill_pattern = zigzag +infill_sparse_density = 99 +top_bottom_thickness = =layer_height * 2 +top_thickness = =top_bottom_thickness + diff --git a/resources/quality/ultimaker_method/um_method_1a_um-nylon-175_0.2mm.inst.cfg b/resources/quality/ultimaker_method/um_method_1a_um-nylon-175_0.2mm.inst.cfg new file mode 100644 index 0000000000..13b5c6c4f1 --- /dev/null +++ b/resources/quality/ultimaker_method/um_method_1a_um-nylon-175_0.2mm.inst.cfg @@ -0,0 +1,58 @@ +[general] +definition = ultimaker_method +name = Fast +version = 4 + +[metadata] +material = ultimaker_nylon_175 +quality_type = draft +setting_version = 25 +type = quality +variant = 1A +weight = -2 + +[values] +cool_fan_enabled = True +cool_fan_speed = 0 +cool_fan_speed_max = 0 +cool_min_layer_time = 8 +cool_min_speed = 10 +cool_min_temperature = 250 +material_final_print_temperature = =default_material_print_temperature-5 +material_initial_print_temperature = =default_material_print_temperature-5 +raft_airgap = 0.3 +raft_base_flow = 105 +raft_base_line_width = 1.2 +raft_base_speed = 10 +raft_base_thickness = 0.6 +raft_interface_thickness = 0.25 +retraction_amount = 0.5 +retraction_min_travel = 3.2ƒ√ +small_skin_width = 3.6 +speed_prime_tower = =speed_print +speed_print = 50 +speed_roofing = =speed_print * 3/5 +speed_topbottom = =speed_roofing +speed_wall = =speed_print * 3/5 +speed_wall_0 = =speed_wall * 5/6 +speed_wall_x = =speed_wall +support_angle = 30 +support_bottom_density = 24 +support_bottom_distance = =layer_height +support_bottom_enable = False +support_bottom_line_width = 0.6 +support_bottom_stair_step_height = 0 +support_infill_rate = =0 if support_structure == tree else 12.0 +support_interface_height = 0.406 +support_interface_material_flow = 95 +support_interface_pattern = lines +support_line_width = =line_width * 0.75 +support_material_flow = 92 +support_roof_density = 50 +support_roof_height = =support_interface_height +support_structure = tree +support_supported_skin_fan_speed = 75 +support_wall_count = 1 +support_xy_distance = 0.3 +support_z_distance = 0.3 + diff --git a/resources/quality/ultimaker_method/um_method_1c_um-nylon-175_0.2mm.inst.cfg b/resources/quality/ultimaker_method/um_method_1c_um-nylon-175_0.2mm.inst.cfg new file mode 100644 index 0000000000..6a7fb34999 --- /dev/null +++ b/resources/quality/ultimaker_method/um_method_1c_um-nylon-175_0.2mm.inst.cfg @@ -0,0 +1,58 @@ +[general] +definition = ultimaker_method +name = Fast +version = 4 + +[metadata] +material = ultimaker_nylon_175 +quality_type = draft +setting_version = 25 +type = quality +variant = 1C +weight = -2 + +[values] +cool_fan_enabled = True +cool_fan_speed = 0 +cool_fan_speed_max = 0 +cool_min_layer_time = 8 +cool_min_speed = 10 +cool_min_temperature = 250 +material_final_print_temperature = =default_material_print_temperature-5 +material_initial_print_temperature = =default_material_print_temperature-5 +raft_airgap = 0.3 +raft_base_flow = 105 +raft_base_line_width = 1.2 +raft_base_speed = 10 +raft_base_thickness = 0.6 +raft_interface_thickness = 0.25 +retraction_amount = 0.5 +retraction_min_travel = 3.2ƒ√ +small_skin_width = 3.6 +speed_prime_tower = =speed_print +speed_print = 50 +speed_roofing = =speed_print * 3/5 +speed_topbottom = =speed_roofing +speed_wall = =speed_print * 3/5 +speed_wall_0 = =speed_wall * 5/6 +speed_wall_x = =speed_wall +support_angle = 30 +support_bottom_density = 24 +support_bottom_distance = =layer_height +support_bottom_enable = False +support_bottom_line_width = 0.6 +support_bottom_stair_step_height = 0 +support_infill_rate = =0 if support_structure == tree else 12.0 +support_interface_height = 0.406 +support_interface_material_flow = 95 +support_interface_pattern = lines +support_line_width = =line_width * 0.75 +support_material_flow = 92 +support_roof_density = 50 +support_roof_height = =support_interface_height +support_structure = tree +support_supported_skin_fan_speed = 75 +support_wall_count = 1 +support_xy_distance = 0.3 +support_z_distance = 0.3 + diff --git a/resources/quality/ultimaker_method/um_method_labs_um-nylon-175_0.2mm.inst.cfg b/resources/quality/ultimaker_method/um_method_labs_um-nylon-175_0.2mm.inst.cfg new file mode 100644 index 0000000000..5b85e94356 --- /dev/null +++ b/resources/quality/ultimaker_method/um_method_labs_um-nylon-175_0.2mm.inst.cfg @@ -0,0 +1,58 @@ +[general] +definition = ultimaker_method +name = Fast +version = 4 + +[metadata] +material = ultimaker_nylon_175 +quality_type = draft +setting_version = 25 +type = quality +variant = LABS +weight = -2 + +[values] +cool_fan_enabled = True +cool_fan_speed = 0 +cool_fan_speed_max = 0 +cool_min_layer_time = 8 +cool_min_speed = 10 +cool_min_temperature = 250 +material_final_print_temperature = =default_material_print_temperature-5 +material_initial_print_temperature = =default_material_print_temperature-5 +raft_airgap = 0.3 +raft_base_flow = 105 +raft_base_line_width = 1.2 +raft_base_speed = 10 +raft_base_thickness = 0.6 +raft_interface_thickness = 0.25 +retraction_amount = 0.5 +retraction_min_travel = 3.2ƒ√ +small_skin_width = 3.6 +speed_prime_tower = =speed_print +speed_print = 50 +speed_roofing = =speed_print * 3/5 +speed_topbottom = =speed_roofing +speed_wall = =speed_print * 3/5 +speed_wall_0 = =speed_wall * 5/6 +speed_wall_x = =speed_wall +support_angle = 30 +support_bottom_density = 24 +support_bottom_distance = =layer_height +support_bottom_enable = False +support_bottom_line_width = 0.6 +support_bottom_stair_step_height = 0 +support_infill_rate = =0 if support_structure == tree else 12.0 +support_interface_height = 0.406 +support_interface_material_flow = 95 +support_interface_pattern = lines +support_line_width = =line_width * 0.75 +support_material_flow = 92 +support_roof_density = 50 +support_roof_height = =support_interface_height +support_structure = tree +support_supported_skin_fan_speed = 75 +support_wall_count = 1 +support_xy_distance = 0.3 +support_z_distance = 0.3 + diff --git a/resources/quality/ultimaker_methodx/um_methodx_1a_um-nylon-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodx/um_methodx_1a_um-nylon-175_0.2mm.inst.cfg new file mode 100644 index 0000000000..dd622e65bf --- /dev/null +++ b/resources/quality/ultimaker_methodx/um_methodx_1a_um-nylon-175_0.2mm.inst.cfg @@ -0,0 +1,58 @@ +[general] +definition = ultimaker_methodx +name = Fast +version = 4 + +[metadata] +material = ultimaker_nylon_175 +quality_type = draft +setting_version = 25 +type = quality +variant = 1A +weight = -2 + +[values] +cool_fan_enabled = True +cool_fan_speed = 0 +cool_fan_speed_max = 0 +cool_min_layer_time = 8 +cool_min_speed = 10 +cool_min_temperature = 250 +material_final_print_temperature = =default_material_print_temperature-5 +material_initial_print_temperature = =default_material_print_temperature-5 +raft_airgap = 0.3 +raft_base_flow = 105 +raft_base_line_width = 1.2 +raft_base_speed = 10 +raft_base_thickness = 0.6 +raft_interface_thickness = 0.25 +retraction_amount = 0.5 +retraction_min_travel = 3.2ƒ√ +small_skin_width = 3.6 +speed_prime_tower = =speed_print +speed_print = 50 +speed_roofing = =speed_print * 3/5 +speed_topbottom = =speed_roofing +speed_wall = =speed_print * 3/5 +speed_wall_0 = =speed_wall * 5/6 +speed_wall_x = =speed_wall +support_angle = 30 +support_bottom_density = 24 +support_bottom_distance = =layer_height +support_bottom_enable = False +support_bottom_line_width = 0.6 +support_bottom_stair_step_height = 0 +support_infill_rate = =0 if support_structure == tree else 12.0 +support_interface_height = 0.406 +support_interface_material_flow = 95 +support_interface_pattern = lines +support_line_width = =line_width * 0.75 +support_material_flow = 92 +support_roof_density = 50 +support_roof_height = =support_interface_height +support_structure = tree +support_supported_skin_fan_speed = 75 +support_wall_count = 1 +support_xy_distance = 0.3 +support_z_distance = 0.3 + diff --git a/resources/quality/ultimaker_methodx/um_methodx_1c_um-nylon-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodx/um_methodx_1c_um-nylon-175_0.2mm.inst.cfg new file mode 100644 index 0000000000..8aef5be946 --- /dev/null +++ b/resources/quality/ultimaker_methodx/um_methodx_1c_um-nylon-175_0.2mm.inst.cfg @@ -0,0 +1,58 @@ +[general] +definition = ultimaker_methodx +name = Fast +version = 4 + +[metadata] +material = ultimaker_nylon_175 +quality_type = draft +setting_version = 25 +type = quality +variant = 1C +weight = -2 + +[values] +cool_fan_enabled = True +cool_fan_speed = 0 +cool_fan_speed_max = 0 +cool_min_layer_time = 8 +cool_min_speed = 10 +cool_min_temperature = 250 +material_final_print_temperature = =default_material_print_temperature-5 +material_initial_print_temperature = =default_material_print_temperature-5 +raft_airgap = 0.3 +raft_base_flow = 105 +raft_base_line_width = 1.2 +raft_base_speed = 10 +raft_base_thickness = 0.6 +raft_interface_thickness = 0.25 +retraction_amount = 0.5 +retraction_min_travel = 3.2ƒ√ +small_skin_width = 3.6 +speed_prime_tower = =speed_print +speed_print = 50 +speed_roofing = =speed_print * 3/5 +speed_topbottom = =speed_roofing +speed_wall = =speed_print * 3/5 +speed_wall_0 = =speed_wall * 5/6 +speed_wall_x = =speed_wall +support_angle = 30 +support_bottom_density = 24 +support_bottom_distance = =layer_height +support_bottom_enable = False +support_bottom_line_width = 0.6 +support_bottom_stair_step_height = 0 +support_infill_rate = =0 if support_structure == tree else 12.0 +support_interface_height = 0.406 +support_interface_material_flow = 95 +support_interface_pattern = lines +support_line_width = =line_width * 0.75 +support_material_flow = 92 +support_roof_density = 50 +support_roof_height = =support_interface_height +support_structure = tree +support_supported_skin_fan_speed = 75 +support_wall_count = 1 +support_xy_distance = 0.3 +support_z_distance = 0.3 + diff --git a/resources/quality/ultimaker_methodx/um_methodx_labs_um-nylon-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodx/um_methodx_labs_um-nylon-175_0.2mm.inst.cfg new file mode 100644 index 0000000000..08e5a9f7a2 --- /dev/null +++ b/resources/quality/ultimaker_methodx/um_methodx_labs_um-nylon-175_0.2mm.inst.cfg @@ -0,0 +1,58 @@ +[general] +definition = ultimaker_methodx +name = Fast +version = 4 + +[metadata] +material = ultimaker_nylon_175 +quality_type = draft +setting_version = 25 +type = quality +variant = LABS +weight = -2 + +[values] +cool_fan_enabled = True +cool_fan_speed = 0 +cool_fan_speed_max = 0 +cool_min_layer_time = 8 +cool_min_speed = 10 +cool_min_temperature = 250 +material_final_print_temperature = =default_material_print_temperature-5 +material_initial_print_temperature = =default_material_print_temperature-5 +raft_airgap = 0.3 +raft_base_flow = 105 +raft_base_line_width = 1.2 +raft_base_speed = 10 +raft_base_thickness = 0.6 +raft_interface_thickness = 0.25 +retraction_amount = 0.5 +retraction_min_travel = 3.2ƒ√ +small_skin_width = 3.6 +speed_prime_tower = =speed_print +speed_print = 50 +speed_roofing = =speed_print * 3/5 +speed_topbottom = =speed_roofing +speed_wall = =speed_print * 3/5 +speed_wall_0 = =speed_wall * 5/6 +speed_wall_x = =speed_wall +support_angle = 30 +support_bottom_density = 24 +support_bottom_distance = =layer_height +support_bottom_enable = False +support_bottom_line_width = 0.6 +support_bottom_stair_step_height = 0 +support_infill_rate = =0 if support_structure == tree else 12.0 +support_interface_height = 0.406 +support_interface_material_flow = 95 +support_interface_pattern = lines +support_line_width = =line_width * 0.75 +support_material_flow = 92 +support_roof_density = 50 +support_roof_height = =support_interface_height +support_structure = tree +support_supported_skin_fan_speed = 75 +support_wall_count = 1 +support_xy_distance = 0.3 +support_z_distance = 0.3 + From e62fbfaf64321c03b9356f1a5bf5019bb0a7f4af Mon Sep 17 00:00:00 2001 From: Paul Kuiper <46715907+pkuiper-ultimaker@users.noreply.github.com> Date: Thu, 4 Sep 2025 13:24:52 +0200 Subject: [PATCH 151/200] Profile improvements composite materials. Various changes. PP-659 --- ...um_f4_aa0.4_abs_0.2mm_engineering.inst.cfg | 2 +- ..._aa0.4_cpe-plus_0.2mm_engineering.inst.cfg | 2 +- ...um_f4_aa0.4_cpe_0.2mm_engineering.inst.cfg | 2 +- ..._f4_aa0.4_nylon_0.2mm_engineering.inst.cfg | 2 +- .../um_f4_aa0.4_pc_0.2mm_engineering.inst.cfg | 2 +- ...m_f4_aa0.4_petg_0.2mm_engineering.inst.cfg | 2 +- ...um_f4_aa0.4_pla_0.2mm_engineering.inst.cfg | 2 +- ...aa0.4_tough-pla_0.2mm_engineering.inst.cfg | 2 +- ...f4_cc0.4_cffcpe_0.2mm_engineering.inst.cfg | 2 +- ..._f4_cc0.4_cffpa_0.2mm_engineering.inst.cfg | 2 +- ...f4_cc0.4_gffcpe_0.2mm_engineering.inst.cfg | 2 +- ..._f4_cc0.4_gffpa_0.2mm_engineering.inst.cfg | 2 +- ..._nylon-cf-slide_0.2mm_engineering.inst.cfg | 2 +- ...cc0.4_nylon-cf-slide_0.2mm_strong.inst.cfg | 2 +- ..._f4_cc0.4_petcf_0.2mm_engineering.inst.cfg | 2 +- ...f4_cc0.6_cffcpe_0.2mm_engineering.inst.cfg | 2 +- ..._f4_cc0.6_cffpa_0.2mm_engineering.inst.cfg | 2 +- ...f4_cc0.6_gffcpe_0.2mm_engineering.inst.cfg | 2 +- ..._f4_cc0.6_gffpa_0.2mm_engineering.inst.cfg | 2 +- ..._nylon-cf-slide_0.2mm_engineering.inst.cfg | 2 +- ...cc0.6_nylon-cf-slide_0.2mm_strong.inst.cfg | 2 +- ..._f4_cc0.6_petcf_0.2mm_engineering.inst.cfg | 2 +- ...f4_ht0.6_cffpps_0.2mm_engineering.inst.cfg | 3 +-- ..._nylon-cf-slide_0.2mm_engineering.inst.cfg | 3 +-- ...ht0.6_nylon-cf-slide_0.2mm_strong.inst.cfg | 2 +- ..._f4_ht0.6_petcf_0.2mm_engineering.inst.cfg | 3 +-- .../um_f4_cc0.4_nylon-cf-slide_0.2mm.inst.cfg | 22 +++++++++++++++ .../um_f4_cc0.4_petcf_0.2mm.inst.cfg | 27 ++++++++++++++++--- .../um_f4_cc0.6_nylon-cf-slide_0.2mm.inst.cfg | 22 +++++++++++++++ .../um_f4_cc0.6_petcf_0.2mm.inst.cfg | 27 ++++++++++++++++--- .../um_f4_ht0.6_cffpps_0.2mm.inst.cfg | 26 +++++++++++++++--- .../um_f4_ht0.6_nylon-cf-slide_0.2mm.inst.cfg | 22 +++++++++++++++ .../um_f4_ht0.6_petcf_0.2mm.inst.cfg | 27 ++++++++++++++++--- 33 files changed, 187 insertions(+), 41 deletions(-) diff --git a/resources/intent/ultimaker_factor4/um_f4_aa0.4_abs_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_factor4/um_f4_aa0.4_abs_0.2mm_engineering.inst.cfg index 706dd59ef5..aa54f58a51 100644 --- a/resources/intent/ultimaker_factor4/um_f4_aa0.4_abs_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_factor4/um_f4_aa0.4_abs_0.2mm_engineering.inst.cfg @@ -14,5 +14,5 @@ variant = AA 0.4 [values] jerk_print = 30 speed_print = 80 -wall_thickness = =line_width * 3 +wall_thickness = =wall_line_width_0 + wall_line_width_x * 2 diff --git a/resources/intent/ultimaker_factor4/um_f4_aa0.4_cpe-plus_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_factor4/um_f4_aa0.4_cpe-plus_0.2mm_engineering.inst.cfg index f350a10415..941bfb3301 100644 --- a/resources/intent/ultimaker_factor4/um_f4_aa0.4_cpe-plus_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_factor4/um_f4_aa0.4_cpe-plus_0.2mm_engineering.inst.cfg @@ -14,5 +14,5 @@ variant = AA 0.4 [values] jerk_print = 30 speed_print = 80 -wall_thickness = =line_width * 3 +wall_thickness = =wall_line_width_0 + wall_line_width_x * 2 diff --git a/resources/intent/ultimaker_factor4/um_f4_aa0.4_cpe_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_factor4/um_f4_aa0.4_cpe_0.2mm_engineering.inst.cfg index a14b5e3c7e..d743434f90 100644 --- a/resources/intent/ultimaker_factor4/um_f4_aa0.4_cpe_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_factor4/um_f4_aa0.4_cpe_0.2mm_engineering.inst.cfg @@ -14,5 +14,5 @@ variant = AA 0.4 [values] jerk_print = 30 speed_print = 80 -wall_thickness = =line_width * 3 +wall_thickness = =wall_line_width_0 + wall_line_width_x * 2 diff --git a/resources/intent/ultimaker_factor4/um_f4_aa0.4_nylon_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_factor4/um_f4_aa0.4_nylon_0.2mm_engineering.inst.cfg index c41d9c0523..65eb1037d9 100644 --- a/resources/intent/ultimaker_factor4/um_f4_aa0.4_nylon_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_factor4/um_f4_aa0.4_nylon_0.2mm_engineering.inst.cfg @@ -14,5 +14,5 @@ variant = AA 0.4 [values] jerk_print = 30 speed_print = 80 -wall_thickness = =line_width * 3 +wall_thickness = =wall_line_width_0 + wall_line_width_x * 2 diff --git a/resources/intent/ultimaker_factor4/um_f4_aa0.4_pc_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_factor4/um_f4_aa0.4_pc_0.2mm_engineering.inst.cfg index 7bb37bb00e..9a8d6fc7c7 100644 --- a/resources/intent/ultimaker_factor4/um_f4_aa0.4_pc_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_factor4/um_f4_aa0.4_pc_0.2mm_engineering.inst.cfg @@ -14,5 +14,5 @@ variant = AA 0.4 [values] jerk_print = 30 speed_print = 80 -wall_thickness = =line_width * 3 +wall_thickness = =wall_line_width_0 + wall_line_width_x * 2 diff --git a/resources/intent/ultimaker_factor4/um_f4_aa0.4_petg_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_factor4/um_f4_aa0.4_petg_0.2mm_engineering.inst.cfg index 5b2e0c6168..f864a2e9dd 100644 --- a/resources/intent/ultimaker_factor4/um_f4_aa0.4_petg_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_factor4/um_f4_aa0.4_petg_0.2mm_engineering.inst.cfg @@ -14,5 +14,5 @@ variant = AA 0.4 [values] jerk_print = 30 speed_print = 80 -wall_thickness = =line_width * 3 +wall_thickness = =wall_line_width_0 + wall_line_width_x * 2 diff --git a/resources/intent/ultimaker_factor4/um_f4_aa0.4_pla_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_factor4/um_f4_aa0.4_pla_0.2mm_engineering.inst.cfg index 453f87fa42..5d519aa3f3 100644 --- a/resources/intent/ultimaker_factor4/um_f4_aa0.4_pla_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_factor4/um_f4_aa0.4_pla_0.2mm_engineering.inst.cfg @@ -17,5 +17,5 @@ jerk_print = 30 material_bed_temperature = =default_material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature + 15 speed_print = 80 -wall_thickness = =line_width * 3 +wall_thickness = =wall_line_width_0 + wall_line_width_x * 2 diff --git a/resources/intent/ultimaker_factor4/um_f4_aa0.4_tough-pla_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_factor4/um_f4_aa0.4_tough-pla_0.2mm_engineering.inst.cfg index e83448c3e5..44df75f9f4 100644 --- a/resources/intent/ultimaker_factor4/um_f4_aa0.4_tough-pla_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_factor4/um_f4_aa0.4_tough-pla_0.2mm_engineering.inst.cfg @@ -15,5 +15,5 @@ variant = AA 0.4 jerk_print = 30 material_print_temperature = =default_material_print_temperature + 10 speed_print = 80 -wall_thickness = =line_width * 3 +wall_thickness = =wall_line_width_0 + wall_line_width_x * 2 diff --git a/resources/intent/ultimaker_factor4/um_f4_cc0.4_cffcpe_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_factor4/um_f4_cc0.4_cffcpe_0.2mm_engineering.inst.cfg index 987c75e613..ad8fed3bcc 100644 --- a/resources/intent/ultimaker_factor4/um_f4_cc0.4_cffcpe_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_factor4/um_f4_cc0.4_cffcpe_0.2mm_engineering.inst.cfg @@ -14,5 +14,5 @@ variant = CC 0.4 [values] jerk_print = 30 speed_print = 80 -wall_thickness = =line_width * 3 +wall_thickness = =wall_line_width_0 + wall_line_width_x * 2 diff --git a/resources/intent/ultimaker_factor4/um_f4_cc0.4_cffpa_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_factor4/um_f4_cc0.4_cffpa_0.2mm_engineering.inst.cfg index a02449ed8f..270c51da42 100644 --- a/resources/intent/ultimaker_factor4/um_f4_cc0.4_cffpa_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_factor4/um_f4_cc0.4_cffpa_0.2mm_engineering.inst.cfg @@ -14,5 +14,5 @@ variant = CC 0.4 [values] jerk_print = 30 speed_print = 80 -wall_thickness = =line_width * 3 +wall_thickness = =wall_line_width_0 + wall_line_width_x * 2 diff --git a/resources/intent/ultimaker_factor4/um_f4_cc0.4_gffcpe_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_factor4/um_f4_cc0.4_gffcpe_0.2mm_engineering.inst.cfg index 0b648b2379..27fd793c4a 100644 --- a/resources/intent/ultimaker_factor4/um_f4_cc0.4_gffcpe_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_factor4/um_f4_cc0.4_gffcpe_0.2mm_engineering.inst.cfg @@ -14,5 +14,5 @@ variant = CC 0.4 [values] jerk_print = 30 speed_print = 80 -wall_thickness = =line_width * 3 +wall_thickness = =wall_line_width_0 + wall_line_width_x * 2 diff --git a/resources/intent/ultimaker_factor4/um_f4_cc0.4_gffpa_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_factor4/um_f4_cc0.4_gffpa_0.2mm_engineering.inst.cfg index d84dad5068..22f71bc813 100644 --- a/resources/intent/ultimaker_factor4/um_f4_cc0.4_gffpa_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_factor4/um_f4_cc0.4_gffpa_0.2mm_engineering.inst.cfg @@ -14,5 +14,5 @@ variant = CC 0.4 [values] jerk_print = 30 speed_print = 80 -wall_thickness = =line_width * 3 +wall_thickness = =wall_line_width_0 + wall_line_width_x * 2 diff --git a/resources/intent/ultimaker_factor4/um_f4_cc0.4_nylon-cf-slide_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_factor4/um_f4_cc0.4_nylon-cf-slide_0.2mm_engineering.inst.cfg index b5ba198105..64b41de151 100644 --- a/resources/intent/ultimaker_factor4/um_f4_cc0.4_nylon-cf-slide_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_factor4/um_f4_cc0.4_nylon-cf-slide_0.2mm_engineering.inst.cfg @@ -14,5 +14,5 @@ variant = CC 0.4 [values] jerk_print = 30 speed_print = 80 -wall_thickness = =line_width * 3 +wall_thickness = =wall_line_width_0 + wall_line_width_x * 2 diff --git a/resources/intent/ultimaker_factor4/um_f4_cc0.4_nylon-cf-slide_0.2mm_strong.inst.cfg b/resources/intent/ultimaker_factor4/um_f4_cc0.4_nylon-cf-slide_0.2mm_strong.inst.cfg index 1930715076..1b1751d4f3 100644 --- a/resources/intent/ultimaker_factor4/um_f4_cc0.4_nylon-cf-slide_0.2mm_strong.inst.cfg +++ b/resources/intent/ultimaker_factor4/um_f4_cc0.4_nylon-cf-slide_0.2mm_strong.inst.cfg @@ -15,5 +15,5 @@ variant = CC 0.4 jerk_print = 30 material_print_temperature = =default_material_print_temperature + 20 speed_print = 80 -wall_thickness = =line_width * 4 +wall_thickness = =wall_line_width_0 + wall_line_width_x * 3 diff --git a/resources/intent/ultimaker_factor4/um_f4_cc0.4_petcf_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_factor4/um_f4_cc0.4_petcf_0.2mm_engineering.inst.cfg index d327152850..f40b320f9c 100644 --- a/resources/intent/ultimaker_factor4/um_f4_cc0.4_petcf_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_factor4/um_f4_cc0.4_petcf_0.2mm_engineering.inst.cfg @@ -14,5 +14,5 @@ variant = CC 0.4 [values] jerk_print = 30 speed_print = 80 -wall_thickness = =line_width * 3 +wall_thickness = =wall_line_width_0 + wall_line_width_x * 2 diff --git a/resources/intent/ultimaker_factor4/um_f4_cc0.6_cffcpe_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_factor4/um_f4_cc0.6_cffcpe_0.2mm_engineering.inst.cfg index 12c015ec1d..b66407fd0c 100644 --- a/resources/intent/ultimaker_factor4/um_f4_cc0.6_cffcpe_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_factor4/um_f4_cc0.6_cffcpe_0.2mm_engineering.inst.cfg @@ -14,5 +14,5 @@ variant = CC 0.6 [values] jerk_print = 30 speed_print = 80 -wall_thickness = =line_width * 3 +wall_thickness = =wall_line_width_0 + wall_line_width_x * 2 diff --git a/resources/intent/ultimaker_factor4/um_f4_cc0.6_cffpa_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_factor4/um_f4_cc0.6_cffpa_0.2mm_engineering.inst.cfg index a1bc915888..b2cd53deba 100644 --- a/resources/intent/ultimaker_factor4/um_f4_cc0.6_cffpa_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_factor4/um_f4_cc0.6_cffpa_0.2mm_engineering.inst.cfg @@ -14,5 +14,5 @@ variant = CC 0.6 [values] jerk_print = 30 speed_print = 80 -wall_thickness = =line_width * 3 +wall_thickness = =wall_line_width_0 + wall_line_width_x * 2 diff --git a/resources/intent/ultimaker_factor4/um_f4_cc0.6_gffcpe_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_factor4/um_f4_cc0.6_gffcpe_0.2mm_engineering.inst.cfg index f8df8291be..fd8e00205d 100644 --- a/resources/intent/ultimaker_factor4/um_f4_cc0.6_gffcpe_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_factor4/um_f4_cc0.6_gffcpe_0.2mm_engineering.inst.cfg @@ -14,5 +14,5 @@ variant = CC 0.6 [values] jerk_print = 30 speed_print = 80 -wall_thickness = =line_width * 3 +wall_thickness = =wall_line_width_0 + wall_line_width_x * 2 diff --git a/resources/intent/ultimaker_factor4/um_f4_cc0.6_gffpa_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_factor4/um_f4_cc0.6_gffpa_0.2mm_engineering.inst.cfg index 8fe4b441bf..e9848e792f 100644 --- a/resources/intent/ultimaker_factor4/um_f4_cc0.6_gffpa_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_factor4/um_f4_cc0.6_gffpa_0.2mm_engineering.inst.cfg @@ -14,5 +14,5 @@ variant = CC 0.6 [values] jerk_print = 30 speed_print = 80 -wall_thickness = =line_width * 3 +wall_thickness = =wall_line_width_0 + wall_line_width_x * 2 diff --git a/resources/intent/ultimaker_factor4/um_f4_cc0.6_nylon-cf-slide_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_factor4/um_f4_cc0.6_nylon-cf-slide_0.2mm_engineering.inst.cfg index 51b8d16f13..9a2a69f1e4 100644 --- a/resources/intent/ultimaker_factor4/um_f4_cc0.6_nylon-cf-slide_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_factor4/um_f4_cc0.6_nylon-cf-slide_0.2mm_engineering.inst.cfg @@ -14,5 +14,5 @@ variant = CC 0.6 [values] jerk_print = 30 speed_print = 80 -wall_thickness = =line_width * 3 +wall_thickness = =wall_line_width_0 + wall_line_width_x * 2 diff --git a/resources/intent/ultimaker_factor4/um_f4_cc0.6_nylon-cf-slide_0.2mm_strong.inst.cfg b/resources/intent/ultimaker_factor4/um_f4_cc0.6_nylon-cf-slide_0.2mm_strong.inst.cfg index bb527f58f7..4a2fc57b41 100644 --- a/resources/intent/ultimaker_factor4/um_f4_cc0.6_nylon-cf-slide_0.2mm_strong.inst.cfg +++ b/resources/intent/ultimaker_factor4/um_f4_cc0.6_nylon-cf-slide_0.2mm_strong.inst.cfg @@ -15,5 +15,5 @@ variant = CC 0.6 jerk_print = 30 material_print_temperature = =default_material_print_temperature + 20 speed_print = 80 -wall_thickness = =line_width * 4 +wall_thickness = =wall_line_width_0 + wall_line_width_x * 3 diff --git a/resources/intent/ultimaker_factor4/um_f4_cc0.6_petcf_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_factor4/um_f4_cc0.6_petcf_0.2mm_engineering.inst.cfg index cb438e20e5..11b7a7f26c 100644 --- a/resources/intent/ultimaker_factor4/um_f4_cc0.6_petcf_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_factor4/um_f4_cc0.6_petcf_0.2mm_engineering.inst.cfg @@ -14,5 +14,5 @@ variant = CC 0.6 [values] jerk_print = 30 speed_print = 80 -wall_thickness = =line_width * 3 +wall_thickness = =wall_line_width_0 + wall_line_width_x * 2 diff --git a/resources/intent/ultimaker_factor4/um_f4_ht0.6_cffpps_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_factor4/um_f4_ht0.6_cffpps_0.2mm_engineering.inst.cfg index 1770a1ab47..91c03b0bd1 100644 --- a/resources/intent/ultimaker_factor4/um_f4_ht0.6_cffpps_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_factor4/um_f4_ht0.6_cffpps_0.2mm_engineering.inst.cfg @@ -13,6 +13,5 @@ variant = HT 0.6 [values] jerk_print = 30 -speed_print = 70 -wall_thickness = =line_width * 3 +wall_thickness = =wall_line_width_0 + wall_line_width_x * 2 diff --git a/resources/intent/ultimaker_factor4/um_f4_ht0.6_nylon-cf-slide_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_factor4/um_f4_ht0.6_nylon-cf-slide_0.2mm_engineering.inst.cfg index f77b3eadc1..676d2cf37d 100644 --- a/resources/intent/ultimaker_factor4/um_f4_ht0.6_nylon-cf-slide_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_factor4/um_f4_ht0.6_nylon-cf-slide_0.2mm_engineering.inst.cfg @@ -13,6 +13,5 @@ variant = HT 0.6 [values] jerk_print = 30 -speed_print = 70 -wall_thickness = =line_width * 3 +wall_thickness = =wall_line_width_0 + wall_line_width_x * 2 diff --git a/resources/intent/ultimaker_factor4/um_f4_ht0.6_nylon-cf-slide_0.2mm_strong.inst.cfg b/resources/intent/ultimaker_factor4/um_f4_ht0.6_nylon-cf-slide_0.2mm_strong.inst.cfg index 930841fcd3..8a9f07b61d 100644 --- a/resources/intent/ultimaker_factor4/um_f4_ht0.6_nylon-cf-slide_0.2mm_strong.inst.cfg +++ b/resources/intent/ultimaker_factor4/um_f4_ht0.6_nylon-cf-slide_0.2mm_strong.inst.cfg @@ -15,5 +15,5 @@ variant = HT 0.6 jerk_print = 30 material_print_temperature = =default_material_print_temperature + 20 speed_print = 80 -wall_thickness = =line_width * 4 +wall_thickness = =wall_line_width_0 + wall_line_width_x * 3 diff --git a/resources/intent/ultimaker_factor4/um_f4_ht0.6_petcf_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_factor4/um_f4_ht0.6_petcf_0.2mm_engineering.inst.cfg index a3ae283c8e..3b980ef62f 100644 --- a/resources/intent/ultimaker_factor4/um_f4_ht0.6_petcf_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_factor4/um_f4_ht0.6_petcf_0.2mm_engineering.inst.cfg @@ -13,6 +13,5 @@ variant = HT 0.6 [values] jerk_print = 30 -speed_print = 70 -wall_thickness = =line_width * 3 +wall_thickness = =wall_line_width_0 + wall_line_width_x * 2 diff --git a/resources/quality/ultimaker_factor4/um_f4_cc0.4_nylon-cf-slide_0.2mm.inst.cfg b/resources/quality/ultimaker_factor4/um_f4_cc0.4_nylon-cf-slide_0.2mm.inst.cfg index 6a37013164..9013b184ef 100644 --- a/resources/quality/ultimaker_factor4/um_f4_cc0.4_nylon-cf-slide_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_factor4/um_f4_cc0.4_nylon-cf-slide_0.2mm.inst.cfg @@ -15,6 +15,28 @@ weight = -2 gradual_flow_discretisation_step_size = 0.1 gradual_flow_enabled = True inset_direction = outside_in +jerk_print = 30 max_flow_acceleration = 1 +retraction_combing_max_distance = 5 +roofing_pattern = lines skin_material_flow = =material_flow * 0.965 +skin_outline_count = 0 +skin_overlap = 15 +speed_print = 80 +speed_wall_x = 60 +support_bottom_distance = =support_z_distance +support_structure = tree +support_supported_skin_fan_speed = 100 +support_tree_angle = 45 +support_tree_angle_slow = 25 +support_tree_bp_diameter = 25 +support_tree_branch_diameter = 5 +support_tree_max_diameter = 15 +support_tree_tip_diameter = 2 +support_xy_distance_overhang = 0.8 +support_z_distance = =2*layer_height +travel_avoid_other_parts = false +wall_line_width_x = 0.8 +xy_offset = -0.05 +z_seam_type = sharpest_corner diff --git a/resources/quality/ultimaker_factor4/um_f4_cc0.4_petcf_0.2mm.inst.cfg b/resources/quality/ultimaker_factor4/um_f4_cc0.4_petcf_0.2mm.inst.cfg index 87191547f6..3fc13c2c3f 100644 --- a/resources/quality/ultimaker_factor4/um_f4_cc0.4_petcf_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_factor4/um_f4_cc0.4_petcf_0.2mm.inst.cfg @@ -16,11 +16,32 @@ cool_fan_speed_max = =cool_fan_speed gradual_flow_discretisation_step_size = 0.5 gradual_flow_enabled = True infill_wall_line_count = 1 +inset_direction = outside_in +jerk_print = 30 material_shrinkage_percentage = 100.15 material_shrinkage_percentage_z = 100.15 max_flow_acceleration = 0.1 -skin_material_flow = =material_flow * 0.93 -speed_print = 60 -xy_offset = =machine_nozzle_size * -0.25 +retraction_combing_max_distance = 5 +roofing_pattern = lines +skin_material_flow = =material_flow * 0.965 +skin_outline_count = 0 +skin_overlap = 15 +speed_print = 80 +speed_wall_x = 60 +support_bottom_distance = =support_z_distance +support_structure = tree +support_supported_skin_fan_speed = 100 +support_tree_angle = 45 +support_tree_angle_slow = 25 +support_tree_bp_diameter = 25 +support_tree_branch_diameter = 5 +support_tree_max_diameter = 15 +support_tree_tip_diameter = 2 +support_xy_distance_overhang = 0.8 +support_z_distance = =2*layer_height +travel_avoid_other_parts = false +wall_line_width_x = 0.8 +xy_offset = -0.05 xy_offset_layer_0 = =xy_offset +z_seam_type = sharpest_corner diff --git a/resources/quality/ultimaker_factor4/um_f4_cc0.6_nylon-cf-slide_0.2mm.inst.cfg b/resources/quality/ultimaker_factor4/um_f4_cc0.6_nylon-cf-slide_0.2mm.inst.cfg index c19753d2f3..a622daab23 100644 --- a/resources/quality/ultimaker_factor4/um_f4_cc0.6_nylon-cf-slide_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_factor4/um_f4_cc0.6_nylon-cf-slide_0.2mm.inst.cfg @@ -15,6 +15,28 @@ weight = -2 gradual_flow_discretisation_step_size = 0.1 gradual_flow_enabled = True inset_direction = outside_in +jerk_print = 30 max_flow_acceleration = 1 +retraction_combing_max_distance = 5 +roofing_pattern = lines skin_material_flow = =material_flow * 0.965 +skin_outline_count = 0 +skin_overlap = 15 +speed_print = 80 +speed_wall_x = 60 +support_bottom_distance = =support_z_distance +support_structure = tree +support_supported_skin_fan_speed = 100 +support_tree_angle = 45 +support_tree_angle_slow = 25 +support_tree_bp_diameter = 25 +support_tree_branch_diameter = 5 +support_tree_max_diameter = 15 +support_tree_tip_diameter = 2 +support_xy_distance_overhang = 0.8 +support_z_distance = =2*layer_height +travel_avoid_other_parts = false +wall_line_width_x = 0.8 +xy_offset = -0.05 +z_seam_type = sharpest_corner diff --git a/resources/quality/ultimaker_factor4/um_f4_cc0.6_petcf_0.2mm.inst.cfg b/resources/quality/ultimaker_factor4/um_f4_cc0.6_petcf_0.2mm.inst.cfg index 6135812dc6..453ba31a5f 100644 --- a/resources/quality/ultimaker_factor4/um_f4_cc0.6_petcf_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_factor4/um_f4_cc0.6_petcf_0.2mm.inst.cfg @@ -16,11 +16,32 @@ cool_fan_speed_max = =cool_fan_speed gradual_flow_discretisation_step_size = 0.5 gradual_flow_enabled = True infill_wall_line_count = 1 +inset_direction = outside_in +jerk_print = 30 material_shrinkage_percentage = 100.15 material_shrinkage_percentage_z = 100.15 max_flow_acceleration = 0.1 -skin_material_flow = =material_flow * 0.93 -speed_print = 60 -xy_offset = =machine_nozzle_size * -0.25 +retraction_combing_max_distance = 5 +roofing_pattern = lines +skin_material_flow = =material_flow * 0.965 +skin_outline_count = 0 +skin_overlap = 15 +speed_print = 80 +speed_wall_x = 60 +support_bottom_distance = =support_z_distance +support_structure = tree +support_supported_skin_fan_speed = 100 +support_tree_angle = 45 +support_tree_angle_slow = 25 +support_tree_bp_diameter = 25 +support_tree_branch_diameter = 5 +support_tree_max_diameter = 15 +support_tree_tip_diameter = 2 +support_xy_distance_overhang = 0.8 +support_z_distance = =2*layer_height +travel_avoid_other_parts = false +wall_line_width_x = 0.8 +xy_offset = -0.05 xy_offset_layer_0 = =xy_offset +z_seam_type = sharpest_corner diff --git a/resources/quality/ultimaker_factor4/um_f4_ht0.6_cffpps_0.2mm.inst.cfg b/resources/quality/ultimaker_factor4/um_f4_ht0.6_cffpps_0.2mm.inst.cfg index b4b4514265..e445deca6e 100644 --- a/resources/quality/ultimaker_factor4/um_f4_ht0.6_cffpps_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_factor4/um_f4_ht0.6_cffpps_0.2mm.inst.cfg @@ -16,11 +16,31 @@ adhesion_type = brim gradual_flow_discretisation_step_size = 0.1 gradual_flow_enabled = True infill_wall_line_count = 1 +inset_direction = outside_in +jerk_print = 30 max_flow_acceleration = 1 retraction_combing_max_distance = 2 roofing_material_flow = =material_flow -skin_material_flow = =material_flow * 0.93 -speed_print = 60 -xy_offset = =machine_nozzle_size * -0.25 +roofing_pattern = lines +skin_material_flow = =material_flow * 0.965 +skin_outline_count = 0 +skin_overlap = 15 +speed_print = 80 +speed_wall_x = 60 +support_bottom_distance = =support_z_distance +support_structure = tree +support_supported_skin_fan_speed = 100 +support_tree_angle = 45 +support_tree_angle_slow = 25 +support_tree_bp_diameter = 25 +support_tree_branch_diameter = 5 +support_tree_max_diameter = 15 +support_tree_tip_diameter = 2 +support_xy_distance_overhang = 0.8 +support_z_distance = =2*layer_height +travel_avoid_other_parts = false +wall_line_width_x = 0.8 +xy_offset = -0.05 xy_offset_layer_0 = =xy_offset +z_seam_type = sharpest_corner diff --git a/resources/quality/ultimaker_factor4/um_f4_ht0.6_nylon-cf-slide_0.2mm.inst.cfg b/resources/quality/ultimaker_factor4/um_f4_ht0.6_nylon-cf-slide_0.2mm.inst.cfg index 3f567dc761..254d5cd9dd 100644 --- a/resources/quality/ultimaker_factor4/um_f4_ht0.6_nylon-cf-slide_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_factor4/um_f4_ht0.6_nylon-cf-slide_0.2mm.inst.cfg @@ -15,6 +15,28 @@ weight = -2 gradual_flow_discretisation_step_size = 0.1 gradual_flow_enabled = True inset_direction = outside_in +jerk_print = 30 max_flow_acceleration = 1 +retraction_combing_max_distance = 5 +roofing_pattern = lines skin_material_flow = =material_flow * 0.965 +skin_outline_count = 0 +skin_overlap = 15 +speed_print = 80 +speed_wall_x = 60 +support_bottom_distance = =support_z_distance +support_structure = tree +support_supported_skin_fan_speed = 100 +support_tree_angle = 45 +support_tree_angle_slow = 25 +support_tree_bp_diameter = 25 +support_tree_branch_diameter = 5 +support_tree_max_diameter = 15 +support_tree_tip_diameter = 2 +support_xy_distance_overhang = 0.8 +support_z_distance = =2*layer_height +travel_avoid_other_parts = false +wall_line_width_x = 0.8 +xy_offset = -0.05 +z_seam_type = sharpest_corner diff --git a/resources/quality/ultimaker_factor4/um_f4_ht0.6_petcf_0.2mm.inst.cfg b/resources/quality/ultimaker_factor4/um_f4_ht0.6_petcf_0.2mm.inst.cfg index ff09c1a087..66f74d1c84 100644 --- a/resources/quality/ultimaker_factor4/um_f4_ht0.6_petcf_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_factor4/um_f4_ht0.6_petcf_0.2mm.inst.cfg @@ -16,11 +16,32 @@ cool_fan_speed_max = =cool_fan_speed gradual_flow_discretisation_step_size = 0.5 gradual_flow_enabled = True infill_wall_line_count = 1 +inset_direction = outside_in +jerk_print = 30 material_shrinkage_percentage = 100.15 material_shrinkage_percentage_z = 100.15 max_flow_acceleration = 0.1 -skin_material_flow = =material_flow * 0.93 -speed_print = 60 -xy_offset = =machine_nozzle_size * -0.25 +retraction_combing_max_distance = 5 +roofing_pattern = lines +skin_material_flow = =material_flow * 0.965 +skin_outline_count = 0 +skin_overlap = 15 +speed_print = 80 +speed_wall_x = 60 +support_bottom_distance = =support_z_distance +support_structure = tree +support_supported_skin_fan_speed = 100 +support_tree_angle = 45 +support_tree_angle_slow = 25 +support_tree_bp_diameter = 25 +support_tree_branch_diameter = 5 +support_tree_max_diameter = 15 +support_tree_tip_diameter = 2 +support_xy_distance_overhang = 0.8 +support_z_distance = =2*layer_height +travel_avoid_other_parts = false +wall_line_width_x = 0.8 +xy_offset = -0.05 xy_offset_layer_0 = =xy_offset +z_seam_type = sharpest_corner From 6d91ec1633216e19ba089ebb1dd7a34d828dc365 Mon Sep 17 00:00:00 2001 From: Frederic Meeuwissen <13856291+Frederic98@users.noreply.github.com> Date: Thu, 4 Sep 2025 17:06:19 +0200 Subject: [PATCH 152/200] Mark legacy profiles as experimental --- .../intent/ultimaker_s8/um_s8_aa0.4_abs_0.06mm_visual.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_abs_0.15mm_engineering.inst.cfg | 1 + .../intent/ultimaker_s8/um_s8_aa0.4_abs_0.15mm_visual.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_abs_0.1mm_engineering.inst.cfg | 1 + .../intent/ultimaker_s8/um_s8_aa0.4_abs_0.1mm_visual.inst.cfg | 1 + .../intent/ultimaker_s8/um_s8_aa0.4_abs_0.2mm_quick.inst.cfg | 1 + .../um_s8_aa0.4_cpe-plus_0.15mm_engineering.inst.cfg | 1 + .../um_s8_aa0.4_cpe-plus_0.1mm_engineering.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_cpe_0.15mm_engineering.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_cpe_0.1mm_engineering.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_nylon_0.15mm_engineering.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_nylon_0.1mm_engineering.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_pc_0.15mm_engineering.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_pc_0.1mm_engineering.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_petg_0.15mm_engineering.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_petg_0.1mm_engineering.inst.cfg | 1 + .../intent/ultimaker_s8/um_s8_aa0.4_pla_0.06mm_visual.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_pla_0.15mm_engineering.inst.cfg | 1 + .../intent/ultimaker_s8/um_s8_aa0.4_pla_0.15mm_visual.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_pla_0.1mm_engineering.inst.cfg | 1 + .../intent/ultimaker_s8/um_s8_aa0.4_pla_0.1mm_visual.inst.cfg | 1 + .../intent/ultimaker_s8/um_s8_aa0.4_pla_0.2mm_quick.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_tough-pla_0.06mm_visual.inst.cfg | 1 + .../um_s8_aa0.4_tough-pla_0.15mm_engineering.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_tough-pla_0.15mm_visual.inst.cfg | 1 + .../um_s8_aa0.4_tough-pla_0.1mm_engineering.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_tough-pla_0.1mm_visual.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_tough-pla_0.2mm_quick.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_um-abs_0.06mm_visual.inst.cfg | 1 + .../um_s8_aa0.4_um-abs_0.15mm_engineering.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_um-abs_0.15mm_visual.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_um-abs_0.1mm_engineering.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_um-abs_0.1mm_visual.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_um-abs_0.2mm_engineering.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_um-abs_0.2mm_quick.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_um-abs_0.2mm_visual.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_um-abs_0.3mm_quick.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_um-petg_0.06mm_visual.inst.cfg | 1 + .../um_s8_aa0.4_um-petg_0.15mm_engineering.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_um-petg_0.15mm_visual.inst.cfg | 1 + .../um_s8_aa0.4_um-petg_0.1mm_engineering.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_um-petg_0.1mm_visual.inst.cfg | 1 + .../um_s8_aa0.4_um-petg_0.2mm_engineering.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_um-petg_0.2mm_quick.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_um-petg_0.2mm_visual.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_um-petg_0.3mm_quick.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_um-pla_0.06mm_visual.inst.cfg | 1 + .../um_s8_aa0.4_um-pla_0.15mm_engineering.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_um-pla_0.15mm_visual.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_um-pla_0.1mm_engineering.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_um-pla_0.1mm_visual.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_um-pla_0.2mm_engineering.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_um-pla_0.2mm_quick.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_um-pla_0.2mm_visual.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_um-pla_0.3mm_quick.inst.cfg | 1 + .../um_s8_aa0.4_um-tough-pla_0.06mm_visual.inst.cfg | 1 + .../um_s8_aa0.4_um-tough-pla_0.15mm_engineering.inst.cfg | 1 + .../um_s8_aa0.4_um-tough-pla_0.15mm_visual.inst.cfg | 1 + .../um_s8_aa0.4_um-tough-pla_0.1mm_engineering.inst.cfg | 1 + .../um_s8_aa0.4_um-tough-pla_0.1mm_visual.inst.cfg | 1 + .../um_s8_aa0.4_um-tough-pla_0.2mm_engineering.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.2mm_quick.inst.cfg | 1 + .../um_s8_aa0.4_um-tough-pla_0.2mm_visual.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.3mm_quick.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.8_um-abs_0.2mm_engineering.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.8_um-abs_0.2mm_quick.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.8_um-abs_0.2mm_visual.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.8_um-abs_0.3mm_quick.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.8_um-abs_0.4mm_quick.inst.cfg | 1 + .../um_s8_aa0.8_um-petg_0.2mm_engineering.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.8_um-petg_0.2mm_quick.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.8_um-petg_0.2mm_visual.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.8_um-petg_0.3mm_quick.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.8_um-petg_0.4mm_quick.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.8_um-pla_0.2mm_engineering.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.8_um-pla_0.2mm_quick.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.8_um-pla_0.2mm_visual.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.8_um-pla_0.3mm_quick.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.8_um-pla_0.4mm_quick.inst.cfg | 1 + .../um_s8_aa0.8_um-tough-pla_0.2mm_engineering.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.2mm_quick.inst.cfg | 1 + .../um_s8_aa0.8_um-tough-pla_0.2mm_visual.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.3mm_quick.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.4mm_quick.inst.cfg | 1 + .../ultimaker_s8/um_s8_cc0.4_petcf_0.15mm_annealing.inst.cfg | 1 + .../ultimaker_s8/um_s8_cc0.4_petcf_0.15mm_engineering.inst.cfg | 1 + .../ultimaker_s8/um_s8_cc0.4_petcf_0.2mm_annealing.inst.cfg | 1 + .../ultimaker_s8/um_s8_cc0.4_petcf_0.2mm_engineering.inst.cfg | 1 + .../um_s8_cc0.6_nylon-cf-slide_0.2mm_engineering.inst.cfg | 1 + .../ultimaker_s8/um_s8_cc0.6_petcf_0.15mm_annealing.inst.cfg | 1 + .../ultimaker_s8/um_s8_cc0.6_petcf_0.15mm_engineering.inst.cfg | 1 + .../ultimaker_s8/um_s8_cc0.6_petcf_0.2mm_annealing.inst.cfg | 1 + .../ultimaker_s8/um_s8_cc0.6_petcf_0.2mm_engineering.inst.cfg | 1 + resources/quality/ultimaker_s8/um_s8_aa0.25_abs_0.1mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.25_cpe_0.1mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.25_nylon_0.1mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.25_petg_0.1mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.25_pla_0.1mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.25_tough-pla_0.1mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.25_um-abs_0.1mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.25_um-petg_0.1mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.25_um-pla_0.1mm.inst.cfg | 3 ++- .../ultimaker_s8/um_s8_aa0.25_um-tough-pla_0.1mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.06mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.15mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.1mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.2mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.4_bam_0.15mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.4_bam_0.1mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.4_bam_0.2mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.06mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.15mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.1mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.2mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.4_cpe_0.06mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.4_cpe_0.15mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.4_cpe_0.1mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.4_cpe_0.2mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.4_nylon_0.06mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.4_nylon_0.15mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.4_nylon_0.1mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.4_nylon_0.2mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.4_pc_0.06mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.4_pc_0.15mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.4_pc_0.1mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.4_pc_0.2mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.4_petg_0.06mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.4_petg_0.15mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.1mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.2mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.06mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.15mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.1mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.2mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.4_pp_0.15mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.4_pp_0.1mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.4_pp_0.2mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.06mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.15mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.1mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.2mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.4_tpu_0.15mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.4_tpu_0.1mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.4_tpu_0.2mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.06mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.15mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.1mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.2mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.3mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.06mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.15mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.1mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.2mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.3mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.06mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.15mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.1mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.2mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.3mm.inst.cfg | 3 ++- .../ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.06mm.inst.cfg | 3 ++- .../ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.15mm.inst.cfg | 3 ++- .../ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.1mm.inst.cfg | 3 ++- .../ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.2mm.inst.cfg | 3 ++- .../ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.3mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.8_abs_0.2mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.8_abs_0.3mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.8_abs_0.4mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.8_cpe_0.2mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.8_cpe_0.3mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.8_cpe_0.4mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.8_nylon_0.2mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.8_nylon_0.3mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.8_nylon_0.4mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.8_petg_0.2mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.8_petg_0.3mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.8_petg_0.4mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.8_pla_0.2mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.8_pla_0.3mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.8_pla_0.4mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.8_pp_0.2mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.8_pp_0.3mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.8_pp_0.4mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.8_tough-pla_0.2mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.8_tough-pla_0.3mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.8_tough-pla_0.4mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.8_tpu_0.2mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.8_tpu_0.3mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_aa0.8_tpu_0.4mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.8_um-abs_0.2mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.8_um-abs_0.3mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.8_um-abs_0.4mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.8_um-petg_0.2mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.8_um-petg_0.3mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.8_um-petg_0.4mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.8_um-pla_0.2mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.8_um-pla_0.3mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_aa0.8_um-pla_0.4mm.inst.cfg | 3 ++- .../ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.2mm.inst.cfg | 3 ++- .../ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.3mm.inst.cfg | 3 ++- .../ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.4mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_bb0.4_pva_0.06mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_bb0.8_pva_0.2mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_bb0.8_pva_0.3mm.inst.cfg | 3 ++- resources/quality/ultimaker_s8/um_s8_bb0.8_pva_0.4mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_cc0.4_cffcpe_0.15mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_cc0.4_cffcpe_0.2mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_cc0.4_cffpa_0.15mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_cc0.4_cffpa_0.2mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_cc0.4_gffcpe_0.15mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_cc0.4_gffcpe_0.2mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_cc0.4_gffpa_0.15mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_cc0.4_gffpa_0.2mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_cc0.4_petcf_0.15mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_cc0.4_petcf_0.2mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_cc0.6_cffcpe_0.2mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_cc0.6_cffpa_0.2mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_cc0.6_gffcpe_0.2mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_cc0.6_gffpa_0.2mm.inst.cfg | 3 ++- .../ultimaker_s8/um_s8_cc0.6_nylon-cf-slide_0.2mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_cc0.6_petcf_0.15mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_cc0.6_petcf_0.2mm.inst.cfg | 3 ++- .../quality/ultimaker_s8/um_s8_cc0.6_petcf_0.3mm.inst.cfg | 3 ++- 222 files changed, 351 insertions(+), 129 deletions(-) diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.06mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.06mm_visual.inst.cfg index b356738b66..3fd772bc9a 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.06mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.06mm_visual.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = visual +is_experimental = True material = generic_abs quality_type = high setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.15mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.15mm_engineering.inst.cfg index 627dea9332..35ef159b08 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.15mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.15mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = generic_abs quality_type = fast setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.15mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.15mm_visual.inst.cfg index d9e0c25bd3..1cf65b7420 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.15mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.15mm_visual.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = visual +is_experimental = True material = generic_abs quality_type = fast setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.1mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.1mm_engineering.inst.cfg index a4e71ef413..75e96df5de 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.1mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.1mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = generic_abs quality_type = normal setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.1mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.1mm_visual.inst.cfg index 2b683b2857..84a20a70b2 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.1mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.1mm_visual.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = visual +is_experimental = True material = generic_abs quality_type = normal setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.2mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.2mm_quick.inst.cfg index 496de761a1..1611a8c98b 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.2mm_quick.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_abs_0.2mm_quick.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = quick +is_experimental = True material = generic_abs quality_type = draft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.15mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.15mm_engineering.inst.cfg index e8b5a54aa6..4438e60ba4 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.15mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.15mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = generic_cpe_plus quality_type = fast setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.1mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.1mm_engineering.inst.cfg index 2294037548..21d666987a 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.1mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.1mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = generic_cpe_plus quality_type = normal setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_cpe_0.15mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_cpe_0.15mm_engineering.inst.cfg index cebc44bfb4..27fcf62b42 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_cpe_0.15mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_cpe_0.15mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = generic_cpe quality_type = fast setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_cpe_0.1mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_cpe_0.1mm_engineering.inst.cfg index f00fb55b7c..691ee76257 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_cpe_0.1mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_cpe_0.1mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = generic_cpe quality_type = normal setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_nylon_0.15mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_nylon_0.15mm_engineering.inst.cfg index ad294a2926..69af94a877 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_nylon_0.15mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_nylon_0.15mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = generic_nylon quality_type = fast setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_nylon_0.1mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_nylon_0.1mm_engineering.inst.cfg index 7d4efabfd7..186d983d70 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_nylon_0.1mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_nylon_0.1mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = generic_nylon quality_type = normal setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_pc_0.15mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_pc_0.15mm_engineering.inst.cfg index 43cfd41245..c268152027 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_pc_0.15mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_pc_0.15mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = generic_pc quality_type = fast setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_pc_0.1mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_pc_0.1mm_engineering.inst.cfg index cf136a6edb..7bf0185ad7 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_pc_0.1mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_pc_0.1mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = generic_pc quality_type = normal setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_petg_0.15mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_petg_0.15mm_engineering.inst.cfg index 5b642ed935..e904940c1c 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_petg_0.15mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_petg_0.15mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = generic_petg quality_type = fast setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_petg_0.1mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_petg_0.1mm_engineering.inst.cfg index 9f73af1597..8352264ce3 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_petg_0.1mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_petg_0.1mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = generic_petg quality_type = normal setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.06mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.06mm_visual.inst.cfg index 8cdcbab9c7..1beb9ff420 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.06mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.06mm_visual.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = visual +is_experimental = True material = generic_pla quality_type = high setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.15mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.15mm_engineering.inst.cfg index a1612d1103..26a469b3ca 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.15mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.15mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = generic_pla quality_type = fast setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.15mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.15mm_visual.inst.cfg index 34a9b06ffd..d6ef6be8d6 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.15mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.15mm_visual.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = visual +is_experimental = True material = generic_pla quality_type = fast setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.1mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.1mm_engineering.inst.cfg index 1d5c2d882b..fc724077d4 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.1mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.1mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = generic_pla quality_type = normal setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.1mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.1mm_visual.inst.cfg index 5cbc26af3e..f07a50634f 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.1mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.1mm_visual.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = visual +is_experimental = True material = generic_pla quality_type = normal setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.2mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.2mm_quick.inst.cfg index f1839e5489..3f4afa78a2 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.2mm_quick.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_pla_0.2mm_quick.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = quick +is_experimental = True material = generic_pla quality_type = draft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.06mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.06mm_visual.inst.cfg index 0c249c48a6..99d54efaf8 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.06mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.06mm_visual.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = visual +is_experimental = True material = generic_tough_pla quality_type = high setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.15mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.15mm_engineering.inst.cfg index f8b56ab423..3909c8fef3 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.15mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.15mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = generic_tough_pla quality_type = fast setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.15mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.15mm_visual.inst.cfg index fd5cd368cd..ee2e6689c6 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.15mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.15mm_visual.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = visual +is_experimental = True material = generic_tough_pla quality_type = fast setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.1mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.1mm_engineering.inst.cfg index c726414943..002a62dbe8 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.1mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.1mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = generic_tough_pla quality_type = normal setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.1mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.1mm_visual.inst.cfg index 3e111fa8d6..59945fd42a 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.1mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.1mm_visual.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = visual +is_experimental = True material = generic_tough_pla quality_type = normal setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.2mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.2mm_quick.inst.cfg index e62e4a57d2..ad6c6d9caa 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.2mm_quick.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_tough-pla_0.2mm_quick.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = quick +is_experimental = True material = generic_tough_pla quality_type = draft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.06mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.06mm_visual.inst.cfg index 4be90e8f67..9501ee84f5 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.06mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.06mm_visual.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = visual +is_experimental = True material = ultimaker_abs quality_type = high setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.15mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.15mm_engineering.inst.cfg index 9797fe41d3..e47f1f880f 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.15mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.15mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = ultimaker_abs quality_type = fast setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.15mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.15mm_visual.inst.cfg index ecb56ba36f..a931d387f1 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.15mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.15mm_visual.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = visual +is_experimental = True material = ultimaker_abs quality_type = fast setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.1mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.1mm_engineering.inst.cfg index 52a9310869..8901a3a3d7 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.1mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.1mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = ultimaker_abs quality_type = normal setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.1mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.1mm_visual.inst.cfg index 2f89d6bd82..23cce47191 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.1mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.1mm_visual.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = visual +is_experimental = True material = ultimaker_abs quality_type = normal setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.2mm_engineering.inst.cfg index 475a6b5a23..125c98629b 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.2mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = ultimaker_abs quality_type = draft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.2mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.2mm_quick.inst.cfg index e73e7a2799..f51eb549db 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.2mm_quick.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.2mm_quick.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = quick +is_experimental = True material = ultimaker_abs quality_type = draft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.2mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.2mm_visual.inst.cfg index 8026df23e3..f2511d5682 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.2mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.2mm_visual.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = visual +is_experimental = True material = ultimaker_abs quality_type = draft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.3mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.3mm_quick.inst.cfg index 4c43808e35..ed69933780 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.3mm_quick.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-abs_0.3mm_quick.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = quick +is_experimental = True material = ultimaker_abs quality_type = verydraft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.06mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.06mm_visual.inst.cfg index e98ca06a81..04d9ca618a 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.06mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.06mm_visual.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = visual +is_experimental = True material = ultimaker_petg quality_type = high setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.15mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.15mm_engineering.inst.cfg index 8bf04f0207..7eb837e8ed 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.15mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.15mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = ultimaker_petg quality_type = fast setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.15mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.15mm_visual.inst.cfg index 45379ba328..22e7f1cce0 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.15mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.15mm_visual.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = visual +is_experimental = True material = ultimaker_petg quality_type = fast setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.1mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.1mm_engineering.inst.cfg index 56fe586532..8bc584579f 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.1mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.1mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = ultimaker_petg quality_type = normal setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.1mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.1mm_visual.inst.cfg index 3bf27bcda8..6b1376ee8d 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.1mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.1mm_visual.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = visual +is_experimental = True material = ultimaker_petg quality_type = normal setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.2mm_engineering.inst.cfg index 612a2c0c57..fafb5ed482 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.2mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = ultimaker_petg quality_type = draft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.2mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.2mm_quick.inst.cfg index a2ad4e7dc0..dff13b77e5 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.2mm_quick.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.2mm_quick.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = quick +is_experimental = True material = ultimaker_petg quality_type = draft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.2mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.2mm_visual.inst.cfg index 5b9e30ddd9..0c18517ec8 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.2mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.2mm_visual.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = visual +is_experimental = True material = ultimaker_petg quality_type = draft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.3mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.3mm_quick.inst.cfg index b9bfb488e3..6bd4c9511b 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.3mm_quick.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-petg_0.3mm_quick.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = quick +is_experimental = True material = ultimaker_petg quality_type = verydraft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.06mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.06mm_visual.inst.cfg index f2df2c2aaf..de16fb580c 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.06mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.06mm_visual.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = visual +is_experimental = True material = ultimaker_pla quality_type = high setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.15mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.15mm_engineering.inst.cfg index 185eaa327e..7131a95e99 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.15mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.15mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = ultimaker_pla quality_type = fast setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.15mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.15mm_visual.inst.cfg index 909c68507a..e5b167899d 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.15mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.15mm_visual.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = visual +is_experimental = True material = ultimaker_pla quality_type = fast setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.1mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.1mm_engineering.inst.cfg index 7784dce4d2..2f1ab4ce0b 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.1mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.1mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = ultimaker_pla quality_type = normal setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.1mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.1mm_visual.inst.cfg index 583b1f232d..d8da7b01f1 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.1mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.1mm_visual.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = visual +is_experimental = True material = ultimaker_pla quality_type = normal setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.2mm_engineering.inst.cfg index a75357f6c0..851b16ec93 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.2mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = ultimaker_pla quality_type = draft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.2mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.2mm_quick.inst.cfg index 8b31cd621b..d7083a1710 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.2mm_quick.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.2mm_quick.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = quick +is_experimental = True material = ultimaker_pla quality_type = draft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.2mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.2mm_visual.inst.cfg index 4f74741250..aa118954d9 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.2mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.2mm_visual.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = visual +is_experimental = True material = ultimaker_pla quality_type = draft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.3mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.3mm_quick.inst.cfg index f5aa30497e..2c96950b23 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.3mm_quick.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-pla_0.3mm_quick.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = quick +is_experimental = True material = ultimaker_pla quality_type = verydraft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.06mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.06mm_visual.inst.cfg index 0976120afb..1e14a72716 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.06mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.06mm_visual.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = visual +is_experimental = True material = ultimaker_tough_pla quality_type = high setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.15mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.15mm_engineering.inst.cfg index f4473f02e2..8e93be0541 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.15mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.15mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = ultimaker_tough_pla quality_type = fast setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.15mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.15mm_visual.inst.cfg index ebe93b0146..e7e8fb4850 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.15mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.15mm_visual.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = visual +is_experimental = True material = ultimaker_tough_pla quality_type = fast setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.1mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.1mm_engineering.inst.cfg index cf45040685..598a4c14de 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.1mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.1mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = ultimaker_tough_pla quality_type = normal setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.1mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.1mm_visual.inst.cfg index bb4c50b3b4..a805c2d19a 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.1mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.1mm_visual.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = visual +is_experimental = True material = ultimaker_tough_pla quality_type = normal setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.2mm_engineering.inst.cfg index da99137acb..f4795adb16 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.2mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = ultimaker_tough_pla quality_type = draft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.2mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.2mm_quick.inst.cfg index 45597eaef1..7bbde83ab6 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.2mm_quick.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.2mm_quick.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = quick +is_experimental = True material = ultimaker_tough_pla quality_type = draft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.2mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.2mm_visual.inst.cfg index f5fb35aa99..53941a55ae 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.2mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.2mm_visual.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = visual +is_experimental = True material = ultimaker_tough_pla quality_type = draft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.3mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.3mm_quick.inst.cfg index 72e94a6cae..9be59e8f34 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.3mm_quick.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.3mm_quick.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = quick +is_experimental = True material = ultimaker_tough_pla quality_type = verydraft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.2mm_engineering.inst.cfg index 3ef6e28604..c0e12d7dfe 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.2mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = ultimaker_abs quality_type = draft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.2mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.2mm_quick.inst.cfg index 11743417f6..f83fa05ef1 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.2mm_quick.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.2mm_quick.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = quick +is_experimental = True material = ultimaker_abs quality_type = draft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.2mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.2mm_visual.inst.cfg index 62ab9dda69..76dbed7bbb 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.2mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.2mm_visual.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = visual +is_experimental = True material = ultimaker_abs quality_type = draft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.3mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.3mm_quick.inst.cfg index 87c2f3b6c7..2adc34f814 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.3mm_quick.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.3mm_quick.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = quick +is_experimental = True material = ultimaker_abs quality_type = verydraft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.4mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.4mm_quick.inst.cfg index a71c7a3c89..c942788b53 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.4mm_quick.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-abs_0.4mm_quick.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = quick +is_experimental = True material = ultimaker_abs quality_type = superdraft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.2mm_engineering.inst.cfg index 73c88f1d13..c397b814a8 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.2mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = ultimaker_petg quality_type = draft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.2mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.2mm_quick.inst.cfg index 5477607a3e..34cd9ca253 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.2mm_quick.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.2mm_quick.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = quick +is_experimental = True material = ultimaker_petg quality_type = draft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.2mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.2mm_visual.inst.cfg index 1d277b1f7c..ea99b40063 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.2mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.2mm_visual.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = visual +is_experimental = True material = ultimaker_petg quality_type = draft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.3mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.3mm_quick.inst.cfg index 06c257bb6c..e57f5cf733 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.3mm_quick.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.3mm_quick.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = quick +is_experimental = True material = ultimaker_petg quality_type = verydraft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.4mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.4mm_quick.inst.cfg index 7c01bb687e..b13f8eaa8f 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.4mm_quick.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-petg_0.4mm_quick.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = quick +is_experimental = True material = ultimaker_petg quality_type = superdraft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.2mm_engineering.inst.cfg index 4c6f2b24fb..318d23b2f9 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.2mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = ultimaker_pla quality_type = draft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.2mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.2mm_quick.inst.cfg index 04d6457eec..eff16d83b2 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.2mm_quick.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.2mm_quick.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = quick +is_experimental = True material = ultimaker_pla quality_type = draft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.2mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.2mm_visual.inst.cfg index 128e79b7e0..cc3ba1cf77 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.2mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.2mm_visual.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = visual +is_experimental = True material = ultimaker_pla quality_type = draft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.3mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.3mm_quick.inst.cfg index 7314a059f5..da5b69ea5c 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.3mm_quick.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.3mm_quick.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = quick +is_experimental = True material = ultimaker_pla quality_type = verydraft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.4mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.4mm_quick.inst.cfg index 053edd9770..3e42e01b7f 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.4mm_quick.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-pla_0.4mm_quick.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = quick +is_experimental = True material = ultimaker_pla quality_type = superdraft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.2mm_engineering.inst.cfg index fd78e3681b..01c4378231 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.2mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = ultimaker_tough_pla quality_type = draft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.2mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.2mm_quick.inst.cfg index 9079d94e43..cf4b45ba7a 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.2mm_quick.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.2mm_quick.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = quick +is_experimental = True material = ultimaker_tough_pla quality_type = draft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.2mm_visual.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.2mm_visual.inst.cfg index 19a216bc11..08141b951f 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.2mm_visual.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.2mm_visual.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = visual +is_experimental = True material = ultimaker_tough_pla quality_type = draft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.3mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.3mm_quick.inst.cfg index 8580049ba3..bb89d11824 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.3mm_quick.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.3mm_quick.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = quick +is_experimental = True material = ultimaker_tough_pla quality_type = verydraft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.4mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.4mm_quick.inst.cfg index 54ae19e81b..16e936fb96 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.4mm_quick.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.4mm_quick.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = quick +is_experimental = True material = ultimaker_tough_pla quality_type = superdraft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_cc0.4_petcf_0.15mm_annealing.inst.cfg b/resources/intent/ultimaker_s8/um_s8_cc0.4_petcf_0.15mm_annealing.inst.cfg index 25c6d228ef..e2992cfa3a 100644 --- a/resources/intent/ultimaker_s8/um_s8_cc0.4_petcf_0.15mm_annealing.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_cc0.4_petcf_0.15mm_annealing.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = annealing +is_experimental = True material = generic_petcf quality_type = fast setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_cc0.4_petcf_0.15mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_cc0.4_petcf_0.15mm_engineering.inst.cfg index 447b840f13..d64f90fdc6 100644 --- a/resources/intent/ultimaker_s8/um_s8_cc0.4_petcf_0.15mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_cc0.4_petcf_0.15mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = generic_petcf quality_type = fast setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_cc0.4_petcf_0.2mm_annealing.inst.cfg b/resources/intent/ultimaker_s8/um_s8_cc0.4_petcf_0.2mm_annealing.inst.cfg index b7955ffb09..631118717c 100644 --- a/resources/intent/ultimaker_s8/um_s8_cc0.4_petcf_0.2mm_annealing.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_cc0.4_petcf_0.2mm_annealing.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = annealing +is_experimental = True material = generic_petcf quality_type = draft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_cc0.4_petcf_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_cc0.4_petcf_0.2mm_engineering.inst.cfg index a15ad98591..4c551f588e 100644 --- a/resources/intent/ultimaker_s8/um_s8_cc0.4_petcf_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_cc0.4_petcf_0.2mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = generic_petcf quality_type = draft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_cc0.6_nylon-cf-slide_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_cc0.6_nylon-cf-slide_0.2mm_engineering.inst.cfg index 5980618e92..5bebb643ec 100644 --- a/resources/intent/ultimaker_s8/um_s8_cc0.6_nylon-cf-slide_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_cc0.6_nylon-cf-slide_0.2mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = generic_nylon-cf-slide quality_type = draft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_cc0.6_petcf_0.15mm_annealing.inst.cfg b/resources/intent/ultimaker_s8/um_s8_cc0.6_petcf_0.15mm_annealing.inst.cfg index 31d26798df..7a2cff4ef5 100644 --- a/resources/intent/ultimaker_s8/um_s8_cc0.6_petcf_0.15mm_annealing.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_cc0.6_petcf_0.15mm_annealing.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = annealing +is_experimental = True material = generic_petcf quality_type = fast setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_cc0.6_petcf_0.15mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_cc0.6_petcf_0.15mm_engineering.inst.cfg index cd645dc5fc..d1fffb7b9d 100644 --- a/resources/intent/ultimaker_s8/um_s8_cc0.6_petcf_0.15mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_cc0.6_petcf_0.15mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = generic_petcf quality_type = fast setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_cc0.6_petcf_0.2mm_annealing.inst.cfg b/resources/intent/ultimaker_s8/um_s8_cc0.6_petcf_0.2mm_annealing.inst.cfg index 285e012e20..2330d0f32b 100644 --- a/resources/intent/ultimaker_s8/um_s8_cc0.6_petcf_0.2mm_annealing.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_cc0.6_petcf_0.2mm_annealing.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = annealing +is_experimental = True material = generic_petcf quality_type = draft setting_version = 25 diff --git a/resources/intent/ultimaker_s8/um_s8_cc0.6_petcf_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_cc0.6_petcf_0.2mm_engineering.inst.cfg index e5d63f5a4e..fe18b8ecba 100644 --- a/resources/intent/ultimaker_s8/um_s8_cc0.6_petcf_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_cc0.6_petcf_0.2mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = generic_petcf quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.25_abs_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.25_abs_0.1mm.inst.cfg index 8c1f9d4996..4cac8a6e4e 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.25_abs_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.25_abs_0.1mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fine +name = Fine - Experimental version = 4 [metadata] +is_experimental = True material = generic_abs quality_type = normal setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.25_cpe_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.25_cpe_0.1mm.inst.cfg index 787a96a1e0..06e928787c 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.25_cpe_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.25_cpe_0.1mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fine +name = Fine - Experimental version = 4 [metadata] +is_experimental = True material = generic_cpe quality_type = normal setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.25_nylon_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.25_nylon_0.1mm.inst.cfg index 0174c2daa0..7cb88c76e8 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.25_nylon_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.25_nylon_0.1mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fine +name = Fine - Experimental version = 4 [metadata] +is_experimental = True material = generic_nylon quality_type = normal setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.25_petg_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.25_petg_0.1mm.inst.cfg index f08fea0ed9..0a221d1d40 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.25_petg_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.25_petg_0.1mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fine +name = Fine - Experimental version = 4 [metadata] +is_experimental = True material = generic_petg quality_type = normal setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.25_pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.25_pla_0.1mm.inst.cfg index 65c9eda80c..ef6714547c 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.25_pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.25_pla_0.1mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fine +name = Fine - Experimental version = 4 [metadata] +is_experimental = True material = generic_pla quality_type = normal setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.25_tough-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.25_tough-pla_0.1mm.inst.cfg index 9ef20faf9f..0c1fbd0049 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.25_tough-pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.25_tough-pla_0.1mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fine +name = Fine - Experimental version = 4 [metadata] +is_experimental = True material = generic_tough_pla quality_type = normal setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.25_um-abs_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.25_um-abs_0.1mm.inst.cfg index 56b89939e9..8ea63f0592 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.25_um-abs_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.25_um-abs_0.1mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fine +name = Fine - Experimental version = 4 [metadata] +is_experimental = True material = ultimaker_abs quality_type = normal setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.25_um-petg_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.25_um-petg_0.1mm.inst.cfg index 57417789e5..2a428ea22c 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.25_um-petg_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.25_um-petg_0.1mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fine +name = Fine - Experimental version = 4 [metadata] +is_experimental = True material = ultimaker_petg quality_type = normal setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.25_um-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.25_um-pla_0.1mm.inst.cfg index fe6ad06ded..0208068358 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.25_um-pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.25_um-pla_0.1mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fine +name = Fine - Experimental version = 4 [metadata] +is_experimental = True material = ultimaker_pla quality_type = normal setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.25_um-tough-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.25_um-tough-pla_0.1mm.inst.cfg index 8e4335011b..073424086f 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.25_um-tough-pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.25_um-tough-pla_0.1mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fine +name = Fine - Experimental version = 4 [metadata] +is_experimental = True material = ultimaker_tough_pla quality_type = normal setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.06mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.06mm.inst.cfg index 0b2b4f9038..e69d4ca91c 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.06mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Extra Fine +name = Extra Fine - Experimental version = 4 [metadata] +is_experimental = True material = generic_abs quality_type = high setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.15mm.inst.cfg index ea1225e92a..0967bbae16 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.15mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Normal +name = Normal - Experimental version = 4 [metadata] +is_experimental = True material = generic_abs quality_type = fast setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.1mm.inst.cfg index ff61f96f80..03ef0942d0 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.1mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fine +name = Fine - Experimental version = 4 [metadata] +is_experimental = True material = generic_abs quality_type = normal setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.2mm.inst.cfg index 200909b459..47517baba6 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_abs_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_abs quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_bam_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_bam_0.15mm.inst.cfg index b90e50d979..eceb885cfc 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_bam_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_bam_0.15mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Normal +name = Normal - Experimental version = 4 [metadata] +is_experimental = True material = generic_bam quality_type = fast setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_bam_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_bam_0.1mm.inst.cfg index 6603b665e6..cddaf8cee4 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_bam_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_bam_0.1mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fine +name = Fine - Experimental version = 4 [metadata] +is_experimental = True material = generic_bam quality_type = normal setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_bam_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_bam_0.2mm.inst.cfg index 12c53e74c6..6b22de0fba 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_bam_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_bam_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_bam quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.06mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.06mm.inst.cfg index 382b65fb08..b075dd7003 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.06mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Extra Fine +name = Extra Fine - Experimental version = 4 [metadata] +is_experimental = True material = generic_cpe_plus quality_type = high setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.15mm.inst.cfg index cd36410d6f..d8c18fec07 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.15mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Normal +name = Normal - Experimental version = 4 [metadata] +is_experimental = True material = generic_cpe_plus quality_type = fast setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.1mm.inst.cfg index e3df57a7ef..18d1369a20 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.1mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fine +name = Fine - Experimental version = 4 [metadata] +is_experimental = True material = generic_cpe_plus quality_type = normal setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.2mm.inst.cfg index 5c665edd6d..68329d7fe2 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe-plus_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_cpe_plus quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe_0.06mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe_0.06mm.inst.cfg index c418c86f7b..f34a1e71e3 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe_0.06mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Extra Fine +name = Extra Fine - Experimental version = 4 [metadata] +is_experimental = True material = generic_cpe quality_type = high setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe_0.15mm.inst.cfg index 9ecdd90717..e04f9df28f 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe_0.15mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Normal +name = Normal - Experimental version = 4 [metadata] +is_experimental = True material = generic_cpe quality_type = fast setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe_0.1mm.inst.cfg index f1f7f57117..08ee246d6b 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe_0.1mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fine +name = Fine - Experimental version = 4 [metadata] +is_experimental = True material = generic_cpe quality_type = normal setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe_0.2mm.inst.cfg index eb12cec82f..c37344f00a 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_cpe_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_cpe quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_nylon_0.06mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_nylon_0.06mm.inst.cfg index a13b77840c..40b974c7a1 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_nylon_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_nylon_0.06mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Extra Fine +name = Extra Fine - Experimental version = 4 [metadata] +is_experimental = True material = generic_nylon quality_type = high setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_nylon_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_nylon_0.15mm.inst.cfg index 8dd81a49f2..eb040d39d4 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_nylon_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_nylon_0.15mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Normal +name = Normal - Experimental version = 4 [metadata] +is_experimental = True material = generic_nylon quality_type = fast setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_nylon_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_nylon_0.1mm.inst.cfg index f7602f0759..219af55c07 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_nylon_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_nylon_0.1mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fine +name = Fine - Experimental version = 4 [metadata] +is_experimental = True material = generic_nylon quality_type = normal setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_nylon_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_nylon_0.2mm.inst.cfg index 37f87ce76b..029c0bd65b 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_nylon_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_nylon_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_nylon quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_pc_0.06mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_pc_0.06mm.inst.cfg index 97449e1053..46565f6a32 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_pc_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_pc_0.06mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Extra Fine +name = Extra Fine - Experimental version = 4 [metadata] +is_experimental = True material = generic_pc quality_type = high setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_pc_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_pc_0.15mm.inst.cfg index 2212b6aa96..4ace483ae8 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_pc_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_pc_0.15mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Normal +name = Normal - Experimental version = 4 [metadata] +is_experimental = True material = generic_pc quality_type = fast setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_pc_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_pc_0.1mm.inst.cfg index a2ca0b20ed..b1a3df5573 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_pc_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_pc_0.1mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fine +name = Fine - Experimental version = 4 [metadata] +is_experimental = True material = generic_pc quality_type = normal setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_pc_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_pc_0.2mm.inst.cfg index d21b584ac8..ea03577c63 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_pc_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_pc_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_pc quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.06mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.06mm.inst.cfg index 13cb78a6f1..0ad128a581 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.06mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Extra Fine +name = Extra Fine - Experimental version = 4 [metadata] +is_experimental = True material = generic_petg quality_type = high setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.15mm.inst.cfg index 7aa5d7a740..b47e0affb8 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.15mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Normal +name = Normal - Experimental version = 4 [metadata] +is_experimental = True material = generic_petg quality_type = fast setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.1mm.inst.cfg index 2a2f094a29..cc00935dbd 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.1mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fine +name = Fine - Experimental version = 4 [metadata] +is_experimental = True material = generic_petg quality_type = normal setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.2mm.inst.cfg index 560fe987c7..34c1cde3b1 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_petg_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_petg quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.06mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.06mm.inst.cfg index 826d15d989..d76af8d6be 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.06mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Extra Fine +name = Extra Fine - Experimental version = 4 [metadata] +is_experimental = True material = generic_pla quality_type = high setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.15mm.inst.cfg index 8bda910465..f845c7b5da 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.15mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Normal +name = Normal - Experimental version = 4 [metadata] +is_experimental = True material = generic_pla quality_type = fast setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.1mm.inst.cfg index cab37f9e8d..34fe163ba4 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.1mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fine +name = Fine - Experimental version = 4 [metadata] +is_experimental = True material = generic_pla quality_type = normal setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.2mm.inst.cfg index 1fbd2b1ed2..0117c1d11f 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_pla_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_pla quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_pp_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_pp_0.15mm.inst.cfg index d2e8a3b3ac..2b1e0b809b 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_pp_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_pp_0.15mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Normal +name = Normal - Experimental version = 4 [metadata] +is_experimental = True material = generic_pp quality_type = fast setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_pp_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_pp_0.1mm.inst.cfg index c0177217a3..f28737c1fb 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_pp_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_pp_0.1mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fine +name = Fine - Experimental version = 4 [metadata] +is_experimental = True material = generic_pp quality_type = normal setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_pp_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_pp_0.2mm.inst.cfg index 8e91cff5ac..c66275a066 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_pp_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_pp_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_pp quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.06mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.06mm.inst.cfg index b3a7c79e42..5fc7213ed9 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.06mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Extra Fine +name = Extra Fine - Experimental version = 4 [metadata] +is_experimental = True material = generic_tough_pla quality_type = high setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.15mm.inst.cfg index 76c42e2866..520423af81 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.15mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Normal +name = Normal - Experimental version = 4 [metadata] +is_experimental = True material = generic_tough_pla quality_type = fast setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.1mm.inst.cfg index 221210977a..877e4b7f4a 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.1mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fine +name = Fine - Experimental version = 4 [metadata] +is_experimental = True material = generic_tough_pla quality_type = normal setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.2mm.inst.cfg index cb3443e8ad..b92154644b 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_tough-pla_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_tough_pla quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_tpu_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_tpu_0.15mm.inst.cfg index abecbe5d52..bf4f00a2b6 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_tpu_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_tpu_0.15mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Normal +name = Normal - Experimental version = 4 [metadata] +is_experimental = True material = generic_tpu quality_type = fast setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_tpu_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_tpu_0.1mm.inst.cfg index da411e87e1..0bd1131f67 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_tpu_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_tpu_0.1mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fine +name = Fine - Experimental version = 4 [metadata] +is_experimental = True material = generic_tpu quality_type = normal setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_tpu_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_tpu_0.2mm.inst.cfg index a2b4b3dfee..6194d289ca 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_tpu_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_tpu_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_tpu quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.06mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.06mm.inst.cfg index 0221359ace..fc8817845e 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.06mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Extra Fine +name = Extra Fine - Experimental version = 4 [metadata] +is_experimental = True material = ultimaker_abs quality_type = high setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.15mm.inst.cfg index d73ec3f1ee..792a85cef9 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.15mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Normal +name = Normal - Experimental version = 4 [metadata] +is_experimental = True material = ultimaker_abs quality_type = fast setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.1mm.inst.cfg index 59ad6a25b9..2fa443ed00 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.1mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fine +name = Fine - Experimental version = 4 [metadata] +is_experimental = True material = ultimaker_abs quality_type = normal setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.2mm.inst.cfg index ffd5b07a45..62060a8420 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = ultimaker_abs quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.3mm.inst.cfg index 4bdf35424a..7a7b25a4cb 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-abs_0.3mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Extra Fast +name = Extra Fast - Experimental version = 4 [metadata] +is_experimental = True material = ultimaker_abs quality_type = verydraft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.06mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.06mm.inst.cfg index 22f1973263..fa26b70e6f 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.06mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Extra Fine +name = Extra Fine - Experimental version = 4 [metadata] +is_experimental = True material = ultimaker_petg quality_type = high setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.15mm.inst.cfg index 2da5194d23..548c6face8 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.15mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Normal +name = Normal - Experimental version = 4 [metadata] +is_experimental = True material = ultimaker_petg quality_type = fast setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.1mm.inst.cfg index 4be0b95bc9..b7506186a8 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.1mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fine +name = Fine - Experimental version = 4 [metadata] +is_experimental = True material = ultimaker_petg quality_type = normal setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.2mm.inst.cfg index 35d8486171..e96a06481d 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = ultimaker_petg quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.3mm.inst.cfg index 0c0f14ddb5..12031f052d 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-petg_0.3mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Extra Fast +name = Extra Fast - Experimental version = 4 [metadata] +is_experimental = True material = ultimaker_petg quality_type = verydraft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.06mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.06mm.inst.cfg index b406bb49bc..22e1f168bd 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.06mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Extra Fine +name = Extra Fine - Experimental version = 4 [metadata] +is_experimental = True material = ultimaker_pla quality_type = high setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.15mm.inst.cfg index cb624ec4f5..68522949bb 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.15mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Normal +name = Normal - Experimental version = 4 [metadata] +is_experimental = True material = ultimaker_pla quality_type = fast setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.1mm.inst.cfg index 406cc05c88..00e57ac8ad 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.1mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fine +name = Fine - Experimental version = 4 [metadata] +is_experimental = True material = ultimaker_pla quality_type = normal setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.2mm.inst.cfg index 23d046a371..bbe63e6547 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = ultimaker_pla quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.3mm.inst.cfg index 4466ea0bd7..bb37e746de 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-pla_0.3mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Extra Fast +name = Extra Fast - Experimental version = 4 [metadata] +is_experimental = True material = ultimaker_pla quality_type = verydraft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.06mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.06mm.inst.cfg index 5d5379e513..54f84ccfea 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.06mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Extra Fine +name = Extra Fine - Experimental version = 4 [metadata] +is_experimental = True material = ultimaker_tough_pla quality_type = high setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.15mm.inst.cfg index bfeaa246d0..ac332b3b1c 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.15mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Normal +name = Normal - Experimental version = 4 [metadata] +is_experimental = True material = ultimaker_tough_pla quality_type = fast setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.1mm.inst.cfg index b947b21a25..3f0bfcca9f 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.1mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fine +name = Fine - Experimental version = 4 [metadata] +is_experimental = True material = ultimaker_tough_pla quality_type = normal setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.2mm.inst.cfg index 490194e158..d5d57fe1ff 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = ultimaker_tough_pla quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.3mm.inst.cfg index 8f6f3f0a57..ae7e38357d 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.4_um-tough-pla_0.3mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Extra Fast +name = Extra Fast - Experimental version = 4 [metadata] +is_experimental = True material = ultimaker_tough_pla quality_type = verydraft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_abs_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_abs_0.2mm.inst.cfg index 15d89998e6..ef02c2742b 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.8_abs_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_abs_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_abs quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_abs_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_abs_0.3mm.inst.cfg index de3f4a3d4b..6c8a2116d4 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.8_abs_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_abs_0.3mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Extra Fast +name = Extra Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_abs quality_type = verydraft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_abs_0.4mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_abs_0.4mm.inst.cfg index 322f9e4a0c..2bfdd789f4 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.8_abs_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_abs_0.4mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Sprint +name = Sprint - Experimental version = 4 [metadata] +is_experimental = True material = generic_abs quality_type = superdraft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_cpe_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_cpe_0.2mm.inst.cfg index de7bd4c511..8456ae263d 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.8_cpe_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_cpe_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_cpe quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_cpe_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_cpe_0.3mm.inst.cfg index bee75628df..4b457799d9 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.8_cpe_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_cpe_0.3mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Extra Fast +name = Extra Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_cpe quality_type = verydraft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_cpe_0.4mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_cpe_0.4mm.inst.cfg index 13f7434614..26f39bc06b 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.8_cpe_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_cpe_0.4mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Sprint +name = Sprint - Experimental version = 4 [metadata] +is_experimental = True material = generic_cpe quality_type = superdraft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_nylon_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_nylon_0.2mm.inst.cfg index d9c71f70fe..7efae3275d 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.8_nylon_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_nylon_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_nylon quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_nylon_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_nylon_0.3mm.inst.cfg index 478b9cfc2a..09def251bc 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.8_nylon_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_nylon_0.3mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Extra Fast +name = Extra Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_nylon quality_type = verydraft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_nylon_0.4mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_nylon_0.4mm.inst.cfg index 09573cdec3..c397dc68bb 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.8_nylon_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_nylon_0.4mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Sprint +name = Sprint - Experimental version = 4 [metadata] +is_experimental = True material = generic_nylon quality_type = superdraft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_petg_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_petg_0.2mm.inst.cfg index a8e7a988de..adce55c055 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.8_petg_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_petg_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_petg quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_petg_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_petg_0.3mm.inst.cfg index ef0c3041cc..a1a37f01e6 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.8_petg_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_petg_0.3mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Extra Fast +name = Extra Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_petg quality_type = verydraft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_petg_0.4mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_petg_0.4mm.inst.cfg index 7720a38a5f..569fe071a6 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.8_petg_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_petg_0.4mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Sprint +name = Sprint - Experimental version = 4 [metadata] +is_experimental = True material = generic_petg quality_type = superdraft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_pla_0.2mm.inst.cfg index db20d8b31b..d5fbd68d8f 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.8_pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_pla_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_pla quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_pla_0.3mm.inst.cfg index dd5eaffec4..a08b04225b 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.8_pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_pla_0.3mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Extra Fast +name = Extra Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_pla quality_type = verydraft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_pla_0.4mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_pla_0.4mm.inst.cfg index 053918931b..76409e2ab7 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.8_pla_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_pla_0.4mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Sprint +name = Sprint - Experimental version = 4 [metadata] +is_experimental = True material = generic_pla quality_type = superdraft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_pp_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_pp_0.2mm.inst.cfg index 62792d9e5b..25181ed212 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.8_pp_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_pp_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_pp quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_pp_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_pp_0.3mm.inst.cfg index 3192253c57..9de73f17e4 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.8_pp_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_pp_0.3mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Extra Fast +name = Extra Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_pp quality_type = verydraft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_pp_0.4mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_pp_0.4mm.inst.cfg index ddb4749033..d1fc3befcb 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.8_pp_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_pp_0.4mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Sprint +name = Sprint - Experimental version = 4 [metadata] +is_experimental = True material = generic_pp quality_type = superdraft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_tough-pla_0.2mm.inst.cfg index 1805e5c5df..212cd93a0f 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.8_tough-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_tough-pla_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_tough_pla quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_tough-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_tough-pla_0.3mm.inst.cfg index 7db0022328..bf2d6771e7 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.8_tough-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_tough-pla_0.3mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Extra Fast +name = Extra Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_tough_pla quality_type = verydraft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_tough-pla_0.4mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_tough-pla_0.4mm.inst.cfg index c17dc24813..3c9e3aea18 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.8_tough-pla_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_tough-pla_0.4mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Sprint +name = Sprint - Experimental version = 4 [metadata] +is_experimental = True material = generic_tough_pla quality_type = superdraft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_tpu_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_tpu_0.2mm.inst.cfg index 9420627bdd..41f3d6c7cc 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.8_tpu_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_tpu_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_tpu quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_tpu_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_tpu_0.3mm.inst.cfg index b4208d8fe4..35e8215b4c 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.8_tpu_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_tpu_0.3mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Extra Fast +name = Extra Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_tpu quality_type = verydraft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_tpu_0.4mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_tpu_0.4mm.inst.cfg index 4548482156..3fe5aa3d0c 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.8_tpu_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_tpu_0.4mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Sprint +name = Sprint - Experimental version = 4 [metadata] +is_experimental = True material = generic_tpu quality_type = superdraft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_um-abs_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-abs_0.2mm.inst.cfg index 35c69af4dd..107982eb08 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.8_um-abs_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-abs_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = ultimaker_abs quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_um-abs_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-abs_0.3mm.inst.cfg index e95ec9024f..e673c82752 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.8_um-abs_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-abs_0.3mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Extra Fast +name = Extra Fast - Experimental version = 4 [metadata] +is_experimental = True material = ultimaker_abs quality_type = verydraft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_um-abs_0.4mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-abs_0.4mm.inst.cfg index 16bad1a40e..53e9670af5 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.8_um-abs_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-abs_0.4mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Sprint +name = Sprint - Experimental version = 4 [metadata] +is_experimental = True material = ultimaker_abs quality_type = superdraft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_um-petg_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-petg_0.2mm.inst.cfg index 053c60e3cb..128761c72b 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.8_um-petg_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-petg_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = ultimaker_petg quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_um-petg_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-petg_0.3mm.inst.cfg index 637d2d13bd..308a923d10 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.8_um-petg_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-petg_0.3mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Extra Fast +name = Extra Fast - Experimental version = 4 [metadata] +is_experimental = True material = ultimaker_petg quality_type = verydraft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_um-petg_0.4mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-petg_0.4mm.inst.cfg index a4c04a6495..a2116cbb18 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.8_um-petg_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-petg_0.4mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Sprint +name = Sprint - Experimental version = 4 [metadata] +is_experimental = True material = ultimaker_petg quality_type = superdraft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_um-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-pla_0.2mm.inst.cfg index b9469064b4..d896a9de0d 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.8_um-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-pla_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = ultimaker_pla quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_um-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-pla_0.3mm.inst.cfg index fc9505505a..7bf986cc93 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.8_um-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-pla_0.3mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Extra Fast +name = Extra Fast - Experimental version = 4 [metadata] +is_experimental = True material = ultimaker_pla quality_type = verydraft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_um-pla_0.4mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-pla_0.4mm.inst.cfg index 1e5a6942ac..51324ae009 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.8_um-pla_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-pla_0.4mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Sprint +name = Sprint - Experimental version = 4 [metadata] +is_experimental = True material = ultimaker_pla quality_type = superdraft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.2mm.inst.cfg index 6c5352167f..9f1abda07e 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = ultimaker_tough_pla quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.3mm.inst.cfg index 6b06d31a6a..f973058272 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.3mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Extra Fast +name = Extra Fast - Experimental version = 4 [metadata] +is_experimental = True material = ultimaker_tough_pla quality_type = verydraft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.4mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.4mm.inst.cfg index 1b615801f9..ea703b5dfa 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa0.8_um-tough-pla_0.4mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Sprint +name = Sprint - Experimental version = 4 [metadata] +is_experimental = True material = ultimaker_tough_pla quality_type = superdraft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_bb0.4_pva_0.06mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_bb0.4_pva_0.06mm.inst.cfg index 5623ed0f47..2040977dee 100644 --- a/resources/quality/ultimaker_s8/um_s8_bb0.4_pva_0.06mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_bb0.4_pva_0.06mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Extra Fine +name = Extra Fine - Experimental version = 4 [metadata] +is_experimental = True material = generic_pva quality_type = high setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_bb0.8_pva_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_bb0.8_pva_0.2mm.inst.cfg index fa7814eb5d..b2d35e13f0 100644 --- a/resources/quality/ultimaker_s8/um_s8_bb0.8_pva_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_bb0.8_pva_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_pva quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_bb0.8_pva_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_bb0.8_pva_0.3mm.inst.cfg index 2eea235168..7578c4096d 100644 --- a/resources/quality/ultimaker_s8/um_s8_bb0.8_pva_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_bb0.8_pva_0.3mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Extra Fast +name = Extra Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_pva quality_type = verydraft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_bb0.8_pva_0.4mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_bb0.8_pva_0.4mm.inst.cfg index 30f777fd56..8dea83fa39 100644 --- a/resources/quality/ultimaker_s8/um_s8_bb0.8_pva_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_bb0.8_pva_0.4mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Sprint +name = Sprint - Experimental version = 4 [metadata] +is_experimental = True material = generic_pva quality_type = superdraft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.4_cffcpe_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.4_cffcpe_0.15mm.inst.cfg index b53629e6f5..4d422d76a6 100644 --- a/resources/quality/ultimaker_s8/um_s8_cc0.4_cffcpe_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_cc0.4_cffcpe_0.15mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Normal +name = Normal - Experimental version = 4 [metadata] +is_experimental = True material = generic_cffcpe quality_type = fast setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.4_cffcpe_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.4_cffcpe_0.2mm.inst.cfg index 22f5c48300..7f30c1b7c4 100644 --- a/resources/quality/ultimaker_s8/um_s8_cc0.4_cffcpe_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_cc0.4_cffcpe_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_cffcpe quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.4_cffpa_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.4_cffpa_0.15mm.inst.cfg index 3a708cbe4a..64c307dd25 100644 --- a/resources/quality/ultimaker_s8/um_s8_cc0.4_cffpa_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_cc0.4_cffpa_0.15mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Normal +name = Normal - Experimental version = 4 [metadata] +is_experimental = True material = generic_cffpa quality_type = fast setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.4_cffpa_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.4_cffpa_0.2mm.inst.cfg index e495ae41ae..4575c84751 100644 --- a/resources/quality/ultimaker_s8/um_s8_cc0.4_cffpa_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_cc0.4_cffpa_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_cffpa quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.4_gffcpe_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.4_gffcpe_0.15mm.inst.cfg index 053817040e..ca1911acb7 100644 --- a/resources/quality/ultimaker_s8/um_s8_cc0.4_gffcpe_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_cc0.4_gffcpe_0.15mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Normal +name = Normal - Experimental version = 4 [metadata] +is_experimental = True material = generic_gffcpe quality_type = fast setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.4_gffcpe_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.4_gffcpe_0.2mm.inst.cfg index 22dce0b6c2..7a8b75efa4 100644 --- a/resources/quality/ultimaker_s8/um_s8_cc0.4_gffcpe_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_cc0.4_gffcpe_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_gffcpe quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.4_gffpa_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.4_gffpa_0.15mm.inst.cfg index d6b95bb453..579902719c 100644 --- a/resources/quality/ultimaker_s8/um_s8_cc0.4_gffpa_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_cc0.4_gffpa_0.15mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Normal +name = Normal - Experimental version = 4 [metadata] +is_experimental = True material = generic_gffpa quality_type = fast setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.4_gffpa_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.4_gffpa_0.2mm.inst.cfg index 7f04dac417..489b6e6481 100644 --- a/resources/quality/ultimaker_s8/um_s8_cc0.4_gffpa_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_cc0.4_gffpa_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_gffpa quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.4_petcf_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.4_petcf_0.15mm.inst.cfg index 24fc4c98f9..f39cf8d8dc 100644 --- a/resources/quality/ultimaker_s8/um_s8_cc0.4_petcf_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_cc0.4_petcf_0.15mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Normal +name = Normal - Experimental version = 4 [metadata] +is_experimental = True material = generic_petcf quality_type = fast setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.4_petcf_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.4_petcf_0.2mm.inst.cfg index 334d7e7098..af30aa4fda 100644 --- a/resources/quality/ultimaker_s8/um_s8_cc0.4_petcf_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_cc0.4_petcf_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_petcf quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.6_cffcpe_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.6_cffcpe_0.2mm.inst.cfg index f7495f89a9..d42782179a 100644 --- a/resources/quality/ultimaker_s8/um_s8_cc0.6_cffcpe_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_cc0.6_cffcpe_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_cffcpe quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.6_cffpa_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.6_cffpa_0.2mm.inst.cfg index be7480628e..d4d5e62b24 100644 --- a/resources/quality/ultimaker_s8/um_s8_cc0.6_cffpa_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_cc0.6_cffpa_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_cffpa quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.6_gffcpe_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.6_gffcpe_0.2mm.inst.cfg index 8da22d3145..53863e8eeb 100644 --- a/resources/quality/ultimaker_s8/um_s8_cc0.6_gffcpe_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_cc0.6_gffcpe_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_gffcpe quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.6_gffpa_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.6_gffpa_0.2mm.inst.cfg index 8e4e9be901..e738c1b90b 100644 --- a/resources/quality/ultimaker_s8/um_s8_cc0.6_gffpa_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_cc0.6_gffpa_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_gffpa quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.6_nylon-cf-slide_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.6_nylon-cf-slide_0.2mm.inst.cfg index 5714509210..a2301d9f6e 100644 --- a/resources/quality/ultimaker_s8/um_s8_cc0.6_nylon-cf-slide_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_cc0.6_nylon-cf-slide_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_nylon-cf-slide quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.6_petcf_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.6_petcf_0.15mm.inst.cfg index cd9a0e5446..2f1c6808f7 100644 --- a/resources/quality/ultimaker_s8/um_s8_cc0.6_petcf_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_cc0.6_petcf_0.15mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Normal +name = Normal - Experimental version = 4 [metadata] +is_experimental = True material = generic_petcf quality_type = fast setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.6_petcf_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.6_petcf_0.2mm.inst.cfg index 4b7933ac61..17266d22e1 100644 --- a/resources/quality/ultimaker_s8/um_s8_cc0.6_petcf_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_cc0.6_petcf_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_petcf quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s8/um_s8_cc0.6_petcf_0.3mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc0.6_petcf_0.3mm.inst.cfg index c095e01c58..b9aa45a9a3 100644 --- a/resources/quality/ultimaker_s8/um_s8_cc0.6_petcf_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_cc0.6_petcf_0.3mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s8 -name = Extra Fast +name = Extra Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_petcf quality_type = verydraft setting_version = 25 From 969cbf09e3c7ce62b1df80925f673074f36efa1e Mon Sep 17 00:00:00 2001 From: THeijmans Date: Thu, 21 Aug 2025 15:22:59 +0200 Subject: [PATCH 153/200] PP-650 R3 --- resources/definitions/ultimaker_s8.def.json | 11 ++++--- ...aa_plus_0.4_abs_0.2mm_engineering.inst.cfg | 3 ++ ...um_s8_aa_plus_0.4_abs_0.2mm_quick.inst.cfg | 5 +++ ...us_0.4_cpe-plus_0.2mm_engineering.inst.cfg | 3 ++ ...aa_plus_0.4_cpe_0.2mm_engineering.inst.cfg | 3 ++ ..._aa_plus_0.4_pc_0.2mm_engineering.inst.cfg | 3 ++ ...a_plus_0.4_petg_0.2mm_engineering.inst.cfg | 3 ++ ...m_s8_aa_plus_0.4_petg_0.2mm_quick.inst.cfg | 5 +++ ...aa_plus_0.4_pla_0.2mm_engineering.inst.cfg | 3 ++ ...um_s8_aa_plus_0.4_pla_0.2mm_quick.inst.cfg | 5 +++ ...s_0.4_tough-pla_0.2mm_engineering.inst.cfg | 3 ++ ...aa_plus_0.4_tough-pla_0.2mm_quick.inst.cfg | 5 +++ ...us_0.4_cpe-plus_0.2mm_engineering.inst.cfg | 3 ++ ..._nylon-cf-slide_0.2mm_engineering.inst.cfg | 3 ++ ..._cc_plus_0.4_pc_0.2mm_engineering.inst.cfg | 3 ++ ..._plus_0.4_petcf_0.2mm_engineering.inst.cfg | 3 ++ ..._nylon-cf-slide_0.2mm_engineering.inst.cfg | 3 ++ ..._plus_0.6_petcf_0.2mm_engineering.inst.cfg | 3 ++ .../um_s8_aa_plus_0.4_abs_0.2mm.inst.cfg | 3 ++ .../um_s8_aa_plus_0.4_petg_0.2mm.inst.cfg | 3 ++ .../um_s8_aa_plus_0.4_pla_0.15mm.inst.cfg | 3 ++ .../um_s8_aa_plus_0.4_pla_0.1mm.inst.cfg | 3 ++ .../um_s8_aa_plus_0.4_pla_0.2mm.inst.cfg | 3 ++ ...m_s8_aa_plus_0.4_tough-pla_0.15mm.inst.cfg | 3 ++ ...um_s8_aa_plus_0.4_tough-pla_0.1mm.inst.cfg | 3 ++ ...um_s8_aa_plus_0.4_tough-pla_0.2mm.inst.cfg | 3 ++ ..._cc_plus_0.4_nylon-cf-slide_0.2mm.inst.cfg | 31 ++++++++++++++++++- .../um_s8_cc_plus_0.4_petcf_0.2mm.inst.cfg | 31 +++++++++++++++++++ 28 files changed, 151 insertions(+), 5 deletions(-) diff --git a/resources/definitions/ultimaker_s8.def.json b/resources/definitions/ultimaker_s8.def.json index cbd6e255f8..48f89a5502 100644 --- a/resources/definitions/ultimaker_s8.def.json +++ b/resources/definitions/ultimaker_s8.def.json @@ -237,7 +237,9 @@ "default_material_print_temperature": { "maximum_value_warning": 320 }, "extra_infill_lines_to_support_skins": { "value": "'walls_and_lines'" }, "flooring_layer_count": { "value": 1 }, - "gradual_flow_enabled": { "value": false }, + "flooring_material_flow": { "value": "skin_material_flow * 110/93" }, + "gradual_flow_discretisation_step_size": { "value": 1 }, + "gradual_flow_enabled": { "value": true }, "hole_xy_offset": { "value": 0.075 }, "infill_material_flow": { "value": "material_flow if infill_sparse_density < 95 else 95" }, "infill_overlap": { "value": 10 }, @@ -428,7 +430,7 @@ }, "material_print_temperature": { "maximum_value_warning": 320 }, "material_print_temperature_layer_0": { "maximum_value_warning": 320 }, - "max_flow_acceleration": { "value": 8.0 }, + "max_flow_acceleration": { "value": 1.5 }, "max_skin_angle_for_expansion": { "value": 45 }, "meshfix_maximum_resolution": { "value": 0.4 }, "min_infill_area": { "default_value": 10 }, @@ -444,6 +446,7 @@ "retraction_hop_enabled": { "value": true }, "retraction_min_travel": { "value": "2.5 if support_enable and support_structure=='tree' else line_width * 2.5" }, "retraction_prime_speed": { "value": 15 }, + "seam_overhang_angle": { "value": 35 }, "skin_edge_support_thickness": { "value": 0 }, "skin_material_flow": { "value": 93 }, "skin_outline_count": { "value": 0 }, @@ -543,12 +546,12 @@ "speed_wall": { "maximum_value_warning": 300, - "value": "speed_print*2/3" + "value": "speed_print*1/2" }, "speed_wall_0": { "maximum_value_warning": 300, - "value": "speed_wall" + "value": "speed_wall*60/75" }, "speed_wall_0_flooring": { diff --git a/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_abs_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_abs_0.2mm_engineering.inst.cfg index 1d1cae70e6..7bbf373b2e 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_abs_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_abs_0.2mm_engineering.inst.cfg @@ -12,7 +12,10 @@ type = intent variant = AA+ 0.4 [values] +hole_xy_offset = 0.075 infill_sparse_density = 20 +inset_direction = outside-in top_bottom_thickness = =wall_thickness wall_thickness = =line_width * 4 +xy_offset = 0.075 diff --git a/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_abs_0.2mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_abs_0.2mm_quick.inst.cfg index 9889424797..fe4b0497e1 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_abs_0.2mm_quick.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_abs_0.2mm_quick.inst.cfg @@ -16,7 +16,12 @@ cool_min_layer_time = 5 cool_min_layer_time_overhang = 9 cool_min_speed = 6 cool_min_temperature = =material_print_temperature - 15 +gradual_flow_enable = False +hole_xy_offset = 0.075 +inset_direction = outside-in +speed_wall = =speed_print speed_wall_x = =speed_print speed_wall_x_roofing = =speed_wall wall_line_width_x = =wall_line_width +xy_offset = 0.075 diff --git a/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_cpe-plus_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_cpe-plus_0.2mm_engineering.inst.cfg index 21e814e112..d01f907d33 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_cpe-plus_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_cpe-plus_0.2mm_engineering.inst.cfg @@ -12,7 +12,10 @@ type = intent variant = AA+ 0.4 [values] +hole_xy_offset = 0.075 infill_sparse_density = 20 +inset_direction = outside-in top_bottom_thickness = =wall_thickness wall_thickness = =line_width * 4 +xy_offset = 0.075 diff --git a/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_cpe_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_cpe_0.2mm_engineering.inst.cfg index f52cdf8124..7a96aa3f79 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_cpe_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_cpe_0.2mm_engineering.inst.cfg @@ -12,7 +12,10 @@ type = intent variant = AA+ 0.4 [values] +hole_xy_offset = 0.075 infill_sparse_density = 20 +inset_direction = outside-in top_bottom_thickness = =wall_thickness wall_thickness = =line_width * 4 +xy_offset = 0.075 diff --git a/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_pc_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_pc_0.2mm_engineering.inst.cfg index 8332ecacbc..1b666e4d83 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_pc_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_pc_0.2mm_engineering.inst.cfg @@ -12,7 +12,10 @@ type = intent variant = AA+ 0.4 [values] +hole_xy_offset = 0.075 infill_sparse_density = 20 +inset_direction = outside-in top_bottom_thickness = =wall_thickness wall_thickness = =line_width * 4 +xy_offset = 0.075 diff --git a/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_petg_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_petg_0.2mm_engineering.inst.cfg index 4c4490876f..3dd4ef5f01 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_petg_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_petg_0.2mm_engineering.inst.cfg @@ -12,7 +12,10 @@ type = intent variant = AA+ 0.4 [values] +hole_xy_offset = 0.075 infill_sparse_density = 20 +inset_direction = outside-in top_bottom_thickness = =wall_thickness wall_thickness = =line_width * 4 +xy_offset = 0.075 diff --git a/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_petg_0.2mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_petg_0.2mm_quick.inst.cfg index ae38c02395..0fe5944438 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_petg_0.2mm_quick.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_petg_0.2mm_quick.inst.cfg @@ -16,7 +16,12 @@ cool_min_layer_time = 5 cool_min_layer_time_overhang = 9 cool_min_speed = 6 cool_min_temperature = =material_print_temperature - 15 +gradual_flow_enable = False +hole_xy_offset = 0.075 +inset_direction = outside-in +speed_wall = =speed_print speed_wall_x = =speed_print speed_wall_x_roofing = =speed_wall wall_line_width_x = =wall_line_width +xy_offset = 0.075 diff --git a/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_pla_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_pla_0.2mm_engineering.inst.cfg index 484b9536a6..d2bbcf226e 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_pla_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_pla_0.2mm_engineering.inst.cfg @@ -12,7 +12,10 @@ type = intent variant = AA+ 0.4 [values] +hole_xy_offset = 0.075 infill_sparse_density = 20 +inset_direction = outside-in top_bottom_thickness = =wall_thickness wall_thickness = =line_width * 4 +xy_offset = 0.075 diff --git a/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_pla_0.2mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_pla_0.2mm_quick.inst.cfg index 4509317076..a4730213de 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_pla_0.2mm_quick.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_pla_0.2mm_quick.inst.cfg @@ -16,7 +16,12 @@ cool_min_layer_time = 5 cool_min_layer_time_overhang = 9 cool_min_speed = 6 cool_min_temperature = =material_print_temperature - 15 +gradual_flow_enable = False +hole_xy_offset = 0.075 +inset_direction = outside-in +speed_wall = =speed_print speed_wall_x = =speed_print speed_wall_x_roofing = =speed_wall wall_line_width_x = =wall_line_width +xy_offset = 0.075 diff --git a/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_tough-pla_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_tough-pla_0.2mm_engineering.inst.cfg index c5b81e4a4c..ed68baf7b1 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_tough-pla_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_tough-pla_0.2mm_engineering.inst.cfg @@ -12,7 +12,10 @@ type = intent variant = AA+ 0.4 [values] +hole_xy_offset = 0.075 infill_sparse_density = 20 +inset_direction = outside-in top_bottom_thickness = =wall_thickness wall_thickness = =line_width * 4 +xy_offset = 0.075 diff --git a/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_tough-pla_0.2mm_quick.inst.cfg b/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_tough-pla_0.2mm_quick.inst.cfg index 4f75b631df..908ecae7ed 100644 --- a/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_tough-pla_0.2mm_quick.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_tough-pla_0.2mm_quick.inst.cfg @@ -16,7 +16,12 @@ cool_min_layer_time = 5 cool_min_layer_time_overhang = 9 cool_min_speed = 6 cool_min_temperature = =material_print_temperature - 15 +gradual_flow_enable = False +hole_xy_offset = 0.075 +inset_direction = outside-in +speed_wall = =speed_print speed_wall_x = =speed_print speed_wall_x_roofing = =speed_wall wall_line_width_x = =wall_line_width +xy_offset = 0.075 diff --git a/resources/intent/ultimaker_s8/um_s8_cc_plus_0.4_cpe-plus_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_cc_plus_0.4_cpe-plus_0.2mm_engineering.inst.cfg index 832912a022..0252cd6eb5 100644 --- a/resources/intent/ultimaker_s8/um_s8_cc_plus_0.4_cpe-plus_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_cc_plus_0.4_cpe-plus_0.2mm_engineering.inst.cfg @@ -13,7 +13,10 @@ type = intent variant = CC+ 0.4 [values] +hole_xy_offset = 0.075 infill_sparse_density = 20 +inset_direction = outside-in top_bottom_thickness = =wall_thickness wall_thickness = =line_width * 4 +xy_offset = 0.075 diff --git a/resources/intent/ultimaker_s8/um_s8_cc_plus_0.4_nylon-cf-slide_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_cc_plus_0.4_nylon-cf-slide_0.2mm_engineering.inst.cfg index a0e65969e9..2ce40b3df1 100644 --- a/resources/intent/ultimaker_s8/um_s8_cc_plus_0.4_nylon-cf-slide_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_cc_plus_0.4_nylon-cf-slide_0.2mm_engineering.inst.cfg @@ -13,7 +13,10 @@ type = intent variant = CC+ 0.4 [values] +hole_xy_offset = 0.075 infill_sparse_density = 20 +inset_direction = outside-in top_bottom_thickness = =wall_thickness wall_thickness = =line_width * 4 +xy_offset = 0.075 diff --git a/resources/intent/ultimaker_s8/um_s8_cc_plus_0.4_pc_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_cc_plus_0.4_pc_0.2mm_engineering.inst.cfg index f40d2509b6..cb3c7bbac2 100644 --- a/resources/intent/ultimaker_s8/um_s8_cc_plus_0.4_pc_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_cc_plus_0.4_pc_0.2mm_engineering.inst.cfg @@ -13,7 +13,10 @@ type = intent variant = CC+ 0.4 [values] +hole_xy_offset = 0.075 infill_sparse_density = 20 +inset_direction = outside-in top_bottom_thickness = =wall_thickness wall_thickness = =line_width * 4 +xy_offset = 0.075 diff --git a/resources/intent/ultimaker_s8/um_s8_cc_plus_0.4_petcf_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_cc_plus_0.4_petcf_0.2mm_engineering.inst.cfg index 824018a1d5..706c77e91a 100644 --- a/resources/intent/ultimaker_s8/um_s8_cc_plus_0.4_petcf_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_cc_plus_0.4_petcf_0.2mm_engineering.inst.cfg @@ -13,7 +13,10 @@ type = intent variant = CC+ 0.4 [values] +hole_xy_offset = 0.075 infill_sparse_density = 20 +inset_direction = outside-in top_bottom_thickness = =wall_thickness wall_thickness = =line_width * 4 +xy_offset = 0.075 diff --git a/resources/intent/ultimaker_s8/um_s8_cc_plus_0.6_nylon-cf-slide_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_cc_plus_0.6_nylon-cf-slide_0.2mm_engineering.inst.cfg index 8cbb513108..57dfaa8f45 100644 --- a/resources/intent/ultimaker_s8/um_s8_cc_plus_0.6_nylon-cf-slide_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_cc_plus_0.6_nylon-cf-slide_0.2mm_engineering.inst.cfg @@ -12,7 +12,10 @@ type = intent variant = CC+ 0.6 [values] +hole_xy_offset = 0.075 infill_sparse_density = 20 +inset_direction = outside-in top_bottom_thickness = =wall_thickness wall_thickness = =line_width * 4 +xy_offset = 0.075 diff --git a/resources/intent/ultimaker_s8/um_s8_cc_plus_0.6_petcf_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s8/um_s8_cc_plus_0.6_petcf_0.2mm_engineering.inst.cfg index 5384f380ac..9f2ddc6be5 100644 --- a/resources/intent/ultimaker_s8/um_s8_cc_plus_0.6_petcf_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s8/um_s8_cc_plus_0.6_petcf_0.2mm_engineering.inst.cfg @@ -12,7 +12,10 @@ type = intent variant = CC+ 0.6 [values] +hole_xy_offset = 0.075 infill_sparse_density = 20 +inset_direction = outside-in top_bottom_thickness = =wall_thickness wall_thickness = =line_width * 4 +xy_offset = 0.075 diff --git a/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_abs_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_abs_0.2mm.inst.cfg index cc5e850220..23863493e9 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_abs_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_abs_0.2mm.inst.cfg @@ -15,9 +15,12 @@ weight = -2 cool_min_layer_time = 4 cool_min_layer_time_fan_speed_max = 9 cool_min_temperature = =material_print_temperature - 20 +hole_xy_offset = 0.1 +inset_direction = inside-out retraction_prime_speed = 15 speed_wall_x = =speed_wall speed_wall_x_roofing = =speed_wall * 0.8 support_structure = tree wall_line_width_x = =wall_line_width * 1.25 +xy_offset = 0.025 diff --git a/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_petg_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_petg_0.2mm.inst.cfg index 9abcd5ddd2..c739be3112 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_petg_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_petg_0.2mm.inst.cfg @@ -13,9 +13,12 @@ weight = -2 [values] cool_min_layer_time = 4 +hole_xy_offset = 0.1 +inset_direction = inside-out material_print_temperature = =default_material_print_temperature + 5 retraction_prime_speed = 15 speed_wall_x = =speed_wall speed_wall_x_roofing = =speed_wall * 0.8 wall_line_width_x = =wall_line_width * 1.25 +xy_offset = 0.025 diff --git a/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_pla_0.15mm.inst.cfg index 9feab61e0e..e206c6ca7c 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_pla_0.15mm.inst.cfg @@ -13,6 +13,8 @@ weight = -1 [values] cool_min_temperature = =material_print_temperature - 20 +hole_xy_offset = 0.1 +inset_direction = inside-out material_final_print_temperature = =material_print_temperature - 15 material_initial_print_temperature = =material_print_temperature - 15 retraction_prime_speed = =retraction_speed @@ -20,4 +22,5 @@ speed_wall_x = =speed_wall speed_wall_x_roofing = =speed_wall * 0.8 support_structure = tree wall_line_width_x = =wall_line_width * 1.25 +xy_offset = 0.025 diff --git a/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_pla_0.1mm.inst.cfg index 8431bb9c43..19575814fd 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_pla_0.1mm.inst.cfg @@ -13,6 +13,8 @@ weight = 0 [values] cool_min_temperature = =material_print_temperature - 20 +hole_xy_offset = 0.1 +inset_direction = inside-out material_final_print_temperature = =material_print_temperature - 15 material_initial_print_temperature = =material_print_temperature - 15 retraction_prime_speed = =retraction_speed @@ -21,4 +23,5 @@ speed_wall_x_roofing = =speed_wall * 0.8 support_structure = tree top_bottom_thickness = =round(6*layer_height,3) wall_line_width_x = =wall_line_width * 1.25 +xy_offset = 0.025 diff --git a/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_pla_0.2mm.inst.cfg index 7a5d19dc2c..72132baab2 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_pla_0.2mm.inst.cfg @@ -13,6 +13,8 @@ weight = -2 [values] cool_min_temperature = =material_print_temperature - 20 +hole_xy_offset = 0.1 +inset_direction = inside-out material_final_print_temperature = =material_print_temperature - 15 material_initial_print_temperature = =material_print_temperature - 15 retraction_prime_speed = =retraction_speed @@ -20,4 +22,5 @@ speed_wall_x = =speed_wall speed_wall_x_roofing = =speed_wall * 0.8 support_structure = tree wall_line_width_x = =wall_line_width * 1.25 +xy_offset = 0.025 diff --git a/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_tough-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_tough-pla_0.15mm.inst.cfg index f17d3fde40..c7daafbcf6 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_tough-pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_tough-pla_0.15mm.inst.cfg @@ -13,10 +13,13 @@ weight = -1 [values] cool_min_temperature = =material_print_temperature - 20 +hole_xy_offset = 0.1 +inset_direction = inside-out retraction_prime_speed = =retraction_speed retraction_speed = 25 speed_wall_x = =speed_wall speed_wall_x_roofing = =speed_wall * 0.8 support_structure = tree wall_line_width_x = =wall_line_width * 1.25 +xy_offset = 0.025 diff --git a/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_tough-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_tough-pla_0.1mm.inst.cfg index 672eae3e4a..ffcdbf79e3 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_tough-pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_tough-pla_0.1mm.inst.cfg @@ -13,10 +13,13 @@ weight = 0 [values] cool_min_temperature = =material_print_temperature - 20 +hole_xy_offset = 0.1 +inset_direction = inside-out retraction_prime_speed = =retraction_speed speed_wall_x = =speed_wall speed_wall_x_roofing = =speed_wall * 0.8 support_structure = tree top_bottom_thickness = =round(6*layer_height,3) wall_line_width_x = =wall_line_width * 1.25 +xy_offset = 0.025 diff --git a/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_tough-pla_0.2mm.inst.cfg index 716765aac5..9dc8f752d8 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_tough-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_tough-pla_0.2mm.inst.cfg @@ -13,9 +13,12 @@ weight = -2 [values] cool_min_temperature = =material_print_temperature - 20 +hole_xy_offset = 0.1 +inset_direction = inside-out retraction_prime_speed = =retraction_speed speed_wall_x = =speed_wall speed_wall_x_roofing = =speed_wall * 0.8 support_structure = tree wall_line_width_x = =wall_line_width * 1.25 +xy_offset = 0.025 diff --git a/resources/quality/ultimaker_s8/um_s8_cc_plus_0.4_nylon-cf-slide_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc_plus_0.4_nylon-cf-slide_0.2mm.inst.cfg index 5f3180ef4e..04249a0af3 100644 --- a/resources/quality/ultimaker_s8/um_s8_cc_plus_0.4_nylon-cf-slide_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_cc_plus_0.4_nylon-cf-slide_0.2mm.inst.cfg @@ -13,12 +13,41 @@ variant = CC+ 0.4 weight = -2 [values] +acceleration_roofing = =acceleration_topbottom/2 +bridge_enable_more_layers = True +bridge_skin_density = 70 bridge_skin_material_flow = 100 +bridge_skin_material_flow_2 = 70 bridge_skin_speed = 30 +bridge_skin_speed_2 = =speed_print*2/3 bridge_wall_material_flow = 100 +bridge_wall_min_length = 2 bridge_wall_speed = 30 +cool_min_layer_time = 6 cool_min_layer_time_fan_speed_max = 11 -retraction_prime_speed = 15 +cool_min_layer_time_overhang = 11 +cool_min_temperature = =material_print_temperature-10 +flooring_monotonic = False +infill_material_flow = =material_flow if infill_sparse_density < 95 else 95 +infill_pattern = ='zigzag' if infill_sparse_density > 50 else 'grid' +jerk_roofing = =jerk_print +material_flow = 95 +retraction_hop_enabled = False +retraction_prime_speed = 25 +roofing_material_flow = =skin_material_flow +roofing_monotonic = False +skin_material_flow = =0.95*material_flow +skin_outline_count = 0 +support_bottom_distance = =support_z_distance support_structure = tree +support_tree_tip_diameter = 2.0 +support_tree_top_rate = 10 +support_xy_distance = 1.2 +support_xy_distance_overhang = =1.5*machine_nozzle_size +support_z_distance = =min(2*layer_height, 0.4) +top_bottom_thickness = =wall_thickness +wall_0_inset = =0.05 wall_overhang_speed_factors = [100,90,80,70,60,50] +wall_x_material_flow = =material_flow +xy_offset = 0.075 diff --git a/resources/quality/ultimaker_s8/um_s8_cc_plus_0.4_petcf_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_cc_plus_0.4_petcf_0.2mm.inst.cfg index 3467ed5ded..664748835f 100644 --- a/resources/quality/ultimaker_s8/um_s8_cc_plus_0.4_petcf_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_cc_plus_0.4_petcf_0.2mm.inst.cfg @@ -13,12 +13,43 @@ variant = CC+ 0.4 weight = -2 [values] +acceleration_roofing = =acceleration_topbottom/2 adhesion_type = skirt +bridge_enable_more_layers = True +bridge_skin_density = 70 bridge_skin_material_flow = 100 +bridge_skin_material_flow_2 = 70 bridge_skin_speed = 30 +bridge_skin_speed_2 = =speed_print*2/3 bridge_wall_material_flow = 100 +bridge_wall_min_length = 2 bridge_wall_speed = 30 +cool_min_layer_time = 6 +cool_min_layer_time_overhang = 11 +cool_min_temperature = =material_print_temperature-10 +flooring_monotonic = False +infill_material_flow = =material_flow if infill_sparse_density < 95 else 95 +infill_pattern = ='zigzag' if infill_sparse_density > 50 else 'grid' +jerk_roofing = =jerk_print +material_pressure_advance_factor = 0.25 +retraction_hop_enabled = False +retraction_prime_speed = 15 +roofing_material_flow = =skin_material_flow +roofing_monotonic = False +skin_material_flow = =0.95*material_flow +skin_outline_count = 0 +skirt_height = 5 +support_bottom_distance = =support_z_distance support_structure = tree +support_tree_tip_diameter = 2.0 +support_tree_top_rate = 10 +support_xy_distance = 1.2 +support_xy_distance_overhang = =1.5*machine_nozzle_size +support_z_distance = =min(2*layer_height, 0.4) switch_extruder_retraction_amount = 16 +top_bottom_thickness = =wall_thickness +wall_0_inset = =0.05 wall_overhang_speed_factors = [100,90,80,70,60,50] +wall_x_material_flow = =material_flow +xy_offset = 0.075 From 28f2e4fb499b47fbe28f2899400a296f23e0cd7f Mon Sep 17 00:00:00 2001 From: THeijmans Date: Fri, 29 Aug 2025 14:36:59 +0200 Subject: [PATCH 154/200] PP-650 R5 --- resources/definitions/ultimaker_s8.def.json | 5 ++++- .../ultimaker_s8/um_s8_aa_plus_0.4_abs_0.2mm.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa_plus_0.4_petg_0.2mm.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa_plus_0.4_pla_0.15mm.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa_plus_0.4_pla_0.1mm.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa_plus_0.4_pla_0.2mm.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa_plus_0.4_tough-pla_0.15mm.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa_plus_0.4_tough-pla_0.1mm.inst.cfg | 1 + .../ultimaker_s8/um_s8_aa_plus_0.4_tough-pla_0.2mm.inst.cfg | 1 + 9 files changed, 12 insertions(+), 1 deletion(-) diff --git a/resources/definitions/ultimaker_s8.def.json b/resources/definitions/ultimaker_s8.def.json index 48f89a5502..165a7719b2 100644 --- a/resources/definitions/ultimaker_s8.def.json +++ b/resources/definitions/ultimaker_s8.def.json @@ -238,6 +238,7 @@ "extra_infill_lines_to_support_skins": { "value": "'walls_and_lines'" }, "flooring_layer_count": { "value": 1 }, "flooring_material_flow": { "value": "skin_material_flow * 110/93" }, + "flooring_monotonic": { "value": false }, "gradual_flow_discretisation_step_size": { "value": 1 }, "gradual_flow_enabled": { "value": true }, "hole_xy_offset": { "value": 0.075 }, @@ -446,11 +447,13 @@ "retraction_hop_enabled": { "value": true }, "retraction_min_travel": { "value": "2.5 if support_enable and support_structure=='tree' else line_width * 2.5" }, "retraction_prime_speed": { "value": 15 }, + "roofing_monotonic": { "value": false }, + "roofing_pattern": { "value": "'zigzag'" }, "seam_overhang_angle": { "value": 35 }, "skin_edge_support_thickness": { "value": 0 }, "skin_material_flow": { "value": 93 }, "skin_outline_count": { "value": 0 }, - "skin_overlap": { "value": 0 }, + "skin_overlap": { "value": 20 }, "skin_preshrink": { "value": 0 }, "skirt_brim_minimal_length": { "value": 1000 }, "skirt_brim_speed": diff --git a/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_abs_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_abs_0.2mm.inst.cfg index 23863493e9..014a2012c8 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_abs_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_abs_0.2mm.inst.cfg @@ -18,6 +18,7 @@ cool_min_temperature = =material_print_temperature - 20 hole_xy_offset = 0.1 inset_direction = inside-out retraction_prime_speed = 15 +speed_roofing = =speed_topbottom * 1/3 speed_wall_x = =speed_wall speed_wall_x_roofing = =speed_wall * 0.8 support_structure = tree diff --git a/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_petg_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_petg_0.2mm.inst.cfg index c739be3112..9e9320d45d 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_petg_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_petg_0.2mm.inst.cfg @@ -17,6 +17,7 @@ hole_xy_offset = 0.1 inset_direction = inside-out material_print_temperature = =default_material_print_temperature + 5 retraction_prime_speed = 15 +speed_roofing = =speed_topbottom * 1/3 speed_wall_x = =speed_wall speed_wall_x_roofing = =speed_wall * 0.8 wall_line_width_x = =wall_line_width * 1.25 diff --git a/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_pla_0.15mm.inst.cfg index e206c6ca7c..a63f0371b4 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_pla_0.15mm.inst.cfg @@ -18,6 +18,7 @@ inset_direction = inside-out material_final_print_temperature = =material_print_temperature - 15 material_initial_print_temperature = =material_print_temperature - 15 retraction_prime_speed = =retraction_speed +speed_roofing = =speed_topbottom * 1/3 speed_wall_x = =speed_wall speed_wall_x_roofing = =speed_wall * 0.8 support_structure = tree diff --git a/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_pla_0.1mm.inst.cfg index 19575814fd..b9ed1a649a 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_pla_0.1mm.inst.cfg @@ -18,6 +18,7 @@ inset_direction = inside-out material_final_print_temperature = =material_print_temperature - 15 material_initial_print_temperature = =material_print_temperature - 15 retraction_prime_speed = =retraction_speed +speed_roofing = =speed_topbottom * 1/3 speed_wall_x = =speed_wall speed_wall_x_roofing = =speed_wall * 0.8 support_structure = tree diff --git a/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_pla_0.2mm.inst.cfg index 72132baab2..8ab383a08d 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_pla_0.2mm.inst.cfg @@ -18,6 +18,7 @@ inset_direction = inside-out material_final_print_temperature = =material_print_temperature - 15 material_initial_print_temperature = =material_print_temperature - 15 retraction_prime_speed = =retraction_speed +speed_roofing = =speed_topbottom * 1/3 speed_wall_x = =speed_wall speed_wall_x_roofing = =speed_wall * 0.8 support_structure = tree diff --git a/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_tough-pla_0.15mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_tough-pla_0.15mm.inst.cfg index c7daafbcf6..2f48c95b7b 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_tough-pla_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_tough-pla_0.15mm.inst.cfg @@ -17,6 +17,7 @@ hole_xy_offset = 0.1 inset_direction = inside-out retraction_prime_speed = =retraction_speed retraction_speed = 25 +speed_roofing = =speed_topbottom * 1/3 speed_wall_x = =speed_wall speed_wall_x_roofing = =speed_wall * 0.8 support_structure = tree diff --git a/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_tough-pla_0.1mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_tough-pla_0.1mm.inst.cfg index ffcdbf79e3..d32f2466ea 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_tough-pla_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_tough-pla_0.1mm.inst.cfg @@ -16,6 +16,7 @@ cool_min_temperature = =material_print_temperature - 20 hole_xy_offset = 0.1 inset_direction = inside-out retraction_prime_speed = =retraction_speed +speed_roofing = =speed_topbottom * 1/3 speed_wall_x = =speed_wall speed_wall_x_roofing = =speed_wall * 0.8 support_structure = tree diff --git a/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_tough-pla_0.2mm.inst.cfg b/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_tough-pla_0.2mm.inst.cfg index 9dc8f752d8..a7eebb69be 100644 --- a/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_tough-pla_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s8/um_s8_aa_plus_0.4_tough-pla_0.2mm.inst.cfg @@ -16,6 +16,7 @@ cool_min_temperature = =material_print_temperature - 20 hole_xy_offset = 0.1 inset_direction = inside-out retraction_prime_speed = =retraction_speed +speed_roofing = =speed_topbottom * 1/3 speed_wall_x = =speed_wall speed_wall_x_roofing = =speed_wall * 0.8 support_structure = tree From 1a8a9b2e433fe9a04a57d0676eb5ffb7e75886b8 Mon Sep 17 00:00:00 2001 From: Paul Kuiper <46715907+pkuiper-ultimaker@users.noreply.github.com> Date: Fri, 5 Sep 2025 11:44:19 +0200 Subject: [PATCH 155/200] Fine tuning print time on 3 prints of different sizes. PP-674 --- .../definitions/ultimaker_replicator_plus.def.json | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/resources/definitions/ultimaker_replicator_plus.def.json b/resources/definitions/ultimaker_replicator_plus.def.json index 7b01c55c17..d7a51a25e6 100644 --- a/resources/definitions/ultimaker_replicator_plus.def.json +++ b/resources/definitions/ultimaker_replicator_plus.def.json @@ -97,7 +97,7 @@ "acceleration_print": { "enabled": false, - "value": 200 + "value": 800 }, "acceleration_print_layer_0": { @@ -147,7 +147,7 @@ "acceleration_travel": { "enabled": false, - "value": 1000 + "value": 5000 }, "acceleration_travel_enabled": { @@ -185,6 +185,8 @@ "value": "acceleration_wall" }, "adhesion_type": { "value": "'raft'" }, + "bridge_skin_speed": { "value": 40 }, + "bridge_wall_speed": { "value": 40 }, "brim_width": { "value": "3" }, "cool_during_extruder_switch": { @@ -194,7 +196,7 @@ "cool_fan_full_at_height": { "value": "layer_height + layer_height_0" }, "cool_fan_speed": { "value": 100 }, "cool_fan_speed_0": { "value": 0 }, - "cool_min_layer_time": { "value": 5 }, + "cool_min_layer_time": { "value": 7 }, "extruder_prime_pos_abs": { "default_value": true }, "fill_outline_gaps": { "value": true }, "gantry_height": { "value": "60" }, @@ -235,7 +237,7 @@ "jerk_print": { "enabled": false, - "value": 7 + "value": 4 }, "jerk_print_layer_0": { @@ -447,7 +449,7 @@ { "maximum_value": 5, "maximum_value_warning": 2.5, - "value": 0.5 + "value": 1.0 }, "retraction_combing": { "value": "'infill'" }, "retraction_count_max": From 2c5a22d0733aba0c98a4049987d1996971da450d Mon Sep 17 00:00:00 2001 From: Frederic Meeuwissen <13856291+Frederic98@users.noreply.github.com> Date: Mon, 8 Sep 2025 09:58:11 +0200 Subject: [PATCH 156/200] Re-generate S6/S8 legacy profiles For changes from PP-650 --- resources/variants/ultimaker_s6_aa025.inst.cfg | 6 ++++++ resources/variants/ultimaker_s6_aa04.inst.cfg | 6 ++++++ resources/variants/ultimaker_s6_aa08.inst.cfg | 6 ++++++ resources/variants/ultimaker_s6_cc04.inst.cfg | 6 ++++++ resources/variants/ultimaker_s6_cc06.inst.cfg | 6 ++++++ resources/variants/ultimaker_s8_aa025.inst.cfg | 6 ++++++ resources/variants/ultimaker_s8_aa04.inst.cfg | 6 ++++++ resources/variants/ultimaker_s8_aa08.inst.cfg | 6 ++++++ resources/variants/ultimaker_s8_cc04.inst.cfg | 6 ++++++ resources/variants/ultimaker_s8_cc06.inst.cfg | 6 ++++++ 10 files changed, 60 insertions(+) diff --git a/resources/variants/ultimaker_s6_aa025.inst.cfg b/resources/variants/ultimaker_s6_aa025.inst.cfg index efdee1d071..589778cefb 100644 --- a/resources/variants/ultimaker_s6_aa025.inst.cfg +++ b/resources/variants/ultimaker_s6_aa025.inst.cfg @@ -53,6 +53,9 @@ cool_min_speed = =round(speed_wall_0 * 3 / 4) if cool_lift_head else round(speed cool_min_temperature = =max([material_final_print_temperature, material_initial_print_temperature, material_print_temperature - 15]) extra_infill_lines_to_support_skins = none flooring_layer_count = 0 +flooring_material_flow = =skin_material_flow +flooring_monotonic = True +gradual_flow_discretisation_step_size = 0.2 gradual_flow_enabled = False hole_xy_offset = 0 infill_material_flow = =(1.95-infill_sparse_density / 100 if infill_sparse_density > 95 else 1) * material_flow @@ -108,6 +111,9 @@ retraction_hop_after_extruder_switch_height = =retraction_hop retraction_hop_enabled = =extruders_enabled_count > 1 retraction_min_travel = 5 retraction_prime_speed = =retraction_speed +roofing_monotonic = True +roofing_pattern = =top_bottom_pattern +seam_overhang_angle = =support_angle skin_edge_support_thickness = =4 * layer_height if infill_sparse_density < 30 else 0 skin_material_flow = =0.95 * material_flow skin_outline_count = =0 if top_bottom_pattern == 'concentric' and top_bottom_pattern_0 == 'concentric' and roofing_layer_count <= 0 else 1 diff --git a/resources/variants/ultimaker_s6_aa04.inst.cfg b/resources/variants/ultimaker_s6_aa04.inst.cfg index 0f2155e944..673062ce77 100644 --- a/resources/variants/ultimaker_s6_aa04.inst.cfg +++ b/resources/variants/ultimaker_s6_aa04.inst.cfg @@ -53,6 +53,9 @@ cool_min_speed = =round(speed_wall_0 * 3 / 4) if cool_lift_head else round(speed cool_min_temperature = =max([material_final_print_temperature, material_initial_print_temperature, material_print_temperature - 15]) extra_infill_lines_to_support_skins = none flooring_layer_count = 0 +flooring_material_flow = =skin_material_flow +flooring_monotonic = True +gradual_flow_discretisation_step_size = 0.2 gradual_flow_enabled = False hole_xy_offset = 0 infill_material_flow = =(1.95-infill_sparse_density / 100 if infill_sparse_density > 95 else 1) * material_flow @@ -108,6 +111,9 @@ retraction_hop_after_extruder_switch_height = =retraction_hop retraction_hop_enabled = =extruders_enabled_count > 1 retraction_min_travel = 5 retraction_prime_speed = 15 +roofing_monotonic = True +roofing_pattern = =top_bottom_pattern +seam_overhang_angle = =support_angle skin_edge_support_thickness = =4 * layer_height if infill_sparse_density < 30 else 0 skin_material_flow = =0.95 * material_flow skin_outline_count = =0 if top_bottom_pattern == 'concentric' and top_bottom_pattern_0 == 'concentric' and roofing_layer_count <= 0 else 1 diff --git a/resources/variants/ultimaker_s6_aa08.inst.cfg b/resources/variants/ultimaker_s6_aa08.inst.cfg index a51a46173c..93ab1f0279 100644 --- a/resources/variants/ultimaker_s6_aa08.inst.cfg +++ b/resources/variants/ultimaker_s6_aa08.inst.cfg @@ -55,6 +55,9 @@ cool_min_temperature = =max([material_final_print_temperature, material_initial_ default_material_print_temperature = 200 extra_infill_lines_to_support_skins = none flooring_layer_count = 0 +flooring_material_flow = =skin_material_flow +flooring_monotonic = True +gradual_flow_discretisation_step_size = 0.2 gradual_flow_enabled = False hole_xy_offset = 0 infill_material_flow = =(1.95-infill_sparse_density / 100 if infill_sparse_density > 95 else 1) * material_flow @@ -119,6 +122,9 @@ retraction_hop_only_when_collides = True retraction_min_travel = 5 retraction_prime_speed = 15 retraction_speed = 25 +roofing_monotonic = True +roofing_pattern = =top_bottom_pattern +seam_overhang_angle = =support_angle skin_edge_support_thickness = =4 * layer_height if infill_sparse_density < 30 else 0 skin_material_flow = =0.95 * material_flow skin_outline_count = =0 if top_bottom_pattern == 'concentric' and top_bottom_pattern_0 == 'concentric' and roofing_layer_count <= 0 else 1 diff --git a/resources/variants/ultimaker_s6_cc04.inst.cfg b/resources/variants/ultimaker_s6_cc04.inst.cfg index 8c55862d90..4c2035a130 100644 --- a/resources/variants/ultimaker_s6_cc04.inst.cfg +++ b/resources/variants/ultimaker_s6_cc04.inst.cfg @@ -53,6 +53,9 @@ cool_min_speed = =round(speed_wall_0 * 3 / 4) if cool_lift_head else round(speed cool_min_temperature = =max([material_final_print_temperature, material_initial_print_temperature, material_print_temperature - 15]) extra_infill_lines_to_support_skins = none flooring_layer_count = 0 +flooring_material_flow = =skin_material_flow +flooring_monotonic = True +gradual_flow_discretisation_step_size = 0.2 gradual_flow_enabled = False hole_xy_offset = 0 infill_material_flow = =(1.95-infill_sparse_density / 100 if infill_sparse_density > 95 else 1) * material_flow @@ -107,6 +110,9 @@ retraction_hop_after_extruder_switch_height = =retraction_hop retraction_hop_enabled = =extruders_enabled_count > 1 retraction_min_travel = 5 retraction_prime_speed = =retraction_speed +roofing_monotonic = True +roofing_pattern = =top_bottom_pattern +seam_overhang_angle = =support_angle skin_edge_support_thickness = =4 * layer_height if infill_sparse_density < 30 else 0 skin_material_flow = =0.95 * material_flow skin_outline_count = =0 if top_bottom_pattern == 'concentric' and top_bottom_pattern_0 == 'concentric' and roofing_layer_count <= 0 else 1 diff --git a/resources/variants/ultimaker_s6_cc06.inst.cfg b/resources/variants/ultimaker_s6_cc06.inst.cfg index 9cb9afade5..134a11a8d4 100644 --- a/resources/variants/ultimaker_s6_cc06.inst.cfg +++ b/resources/variants/ultimaker_s6_cc06.inst.cfg @@ -53,6 +53,9 @@ cool_min_speed = =round(speed_wall_0 * 3 / 4) if cool_lift_head else round(speed cool_min_temperature = =max([material_final_print_temperature, material_initial_print_temperature, material_print_temperature - 15]) extra_infill_lines_to_support_skins = none flooring_layer_count = 0 +flooring_material_flow = =skin_material_flow +flooring_monotonic = True +gradual_flow_discretisation_step_size = 0.2 gradual_flow_enabled = False hole_xy_offset = 0 infill_material_flow = =(1.95-infill_sparse_density / 100 if infill_sparse_density > 95 else 1) * material_flow @@ -107,6 +110,9 @@ retraction_hop_after_extruder_switch_height = =retraction_hop retraction_hop_enabled = =extruders_enabled_count > 1 retraction_min_travel = 5 retraction_prime_speed = =retraction_speed +roofing_monotonic = True +roofing_pattern = =top_bottom_pattern +seam_overhang_angle = =support_angle skin_edge_support_thickness = =4 * layer_height if infill_sparse_density < 30 else 0 skin_material_flow = =0.95 * material_flow skin_outline_count = =0 if top_bottom_pattern == 'concentric' and top_bottom_pattern_0 == 'concentric' and roofing_layer_count <= 0 else 1 diff --git a/resources/variants/ultimaker_s8_aa025.inst.cfg b/resources/variants/ultimaker_s8_aa025.inst.cfg index 608a11249d..bcf3c21cfb 100644 --- a/resources/variants/ultimaker_s8_aa025.inst.cfg +++ b/resources/variants/ultimaker_s8_aa025.inst.cfg @@ -53,6 +53,9 @@ cool_min_speed = =round(speed_wall_0 * 3 / 4) if cool_lift_head else round(speed cool_min_temperature = =max([material_final_print_temperature, material_initial_print_temperature, material_print_temperature - 15]) extra_infill_lines_to_support_skins = none flooring_layer_count = 0 +flooring_material_flow = =skin_material_flow +flooring_monotonic = True +gradual_flow_discretisation_step_size = 0.2 gradual_flow_enabled = False hole_xy_offset = 0 infill_material_flow = =(1.95-infill_sparse_density / 100 if infill_sparse_density > 95 else 1) * material_flow @@ -108,6 +111,9 @@ retraction_hop_after_extruder_switch_height = =retraction_hop retraction_hop_enabled = =extruders_enabled_count > 1 retraction_min_travel = 5 retraction_prime_speed = =retraction_speed +roofing_monotonic = True +roofing_pattern = =top_bottom_pattern +seam_overhang_angle = =support_angle skin_edge_support_thickness = =4 * layer_height if infill_sparse_density < 30 else 0 skin_material_flow = =0.95 * material_flow skin_outline_count = =0 if top_bottom_pattern == 'concentric' and top_bottom_pattern_0 == 'concentric' and roofing_layer_count <= 0 else 1 diff --git a/resources/variants/ultimaker_s8_aa04.inst.cfg b/resources/variants/ultimaker_s8_aa04.inst.cfg index 8260baa7a8..d74f0fb398 100644 --- a/resources/variants/ultimaker_s8_aa04.inst.cfg +++ b/resources/variants/ultimaker_s8_aa04.inst.cfg @@ -53,6 +53,9 @@ cool_min_speed = =round(speed_wall_0 * 3 / 4) if cool_lift_head else round(speed cool_min_temperature = =max([material_final_print_temperature, material_initial_print_temperature, material_print_temperature - 15]) extra_infill_lines_to_support_skins = none flooring_layer_count = 0 +flooring_material_flow = =skin_material_flow +flooring_monotonic = True +gradual_flow_discretisation_step_size = 0.2 gradual_flow_enabled = False hole_xy_offset = 0 infill_material_flow = =(1.95-infill_sparse_density / 100 if infill_sparse_density > 95 else 1) * material_flow @@ -108,6 +111,9 @@ retraction_hop_after_extruder_switch_height = =retraction_hop retraction_hop_enabled = =extruders_enabled_count > 1 retraction_min_travel = 5 retraction_prime_speed = 15 +roofing_monotonic = True +roofing_pattern = =top_bottom_pattern +seam_overhang_angle = =support_angle skin_edge_support_thickness = =4 * layer_height if infill_sparse_density < 30 else 0 skin_material_flow = =0.95 * material_flow skin_outline_count = =0 if top_bottom_pattern == 'concentric' and top_bottom_pattern_0 == 'concentric' and roofing_layer_count <= 0 else 1 diff --git a/resources/variants/ultimaker_s8_aa08.inst.cfg b/resources/variants/ultimaker_s8_aa08.inst.cfg index 30cc256e21..7aa2730395 100644 --- a/resources/variants/ultimaker_s8_aa08.inst.cfg +++ b/resources/variants/ultimaker_s8_aa08.inst.cfg @@ -55,6 +55,9 @@ cool_min_temperature = =max([material_final_print_temperature, material_initial_ default_material_print_temperature = 200 extra_infill_lines_to_support_skins = none flooring_layer_count = 0 +flooring_material_flow = =skin_material_flow +flooring_monotonic = True +gradual_flow_discretisation_step_size = 0.2 gradual_flow_enabled = False hole_xy_offset = 0 infill_material_flow = =(1.95-infill_sparse_density / 100 if infill_sparse_density > 95 else 1) * material_flow @@ -119,6 +122,9 @@ retraction_hop_only_when_collides = True retraction_min_travel = 5 retraction_prime_speed = 15 retraction_speed = 25 +roofing_monotonic = True +roofing_pattern = =top_bottom_pattern +seam_overhang_angle = =support_angle skin_edge_support_thickness = =4 * layer_height if infill_sparse_density < 30 else 0 skin_material_flow = =0.95 * material_flow skin_outline_count = =0 if top_bottom_pattern == 'concentric' and top_bottom_pattern_0 == 'concentric' and roofing_layer_count <= 0 else 1 diff --git a/resources/variants/ultimaker_s8_cc04.inst.cfg b/resources/variants/ultimaker_s8_cc04.inst.cfg index ad55bf758b..7db1cd1063 100644 --- a/resources/variants/ultimaker_s8_cc04.inst.cfg +++ b/resources/variants/ultimaker_s8_cc04.inst.cfg @@ -53,6 +53,9 @@ cool_min_speed = =round(speed_wall_0 * 3 / 4) if cool_lift_head else round(speed cool_min_temperature = =max([material_final_print_temperature, material_initial_print_temperature, material_print_temperature - 15]) extra_infill_lines_to_support_skins = none flooring_layer_count = 0 +flooring_material_flow = =skin_material_flow +flooring_monotonic = True +gradual_flow_discretisation_step_size = 0.2 gradual_flow_enabled = False hole_xy_offset = 0 infill_material_flow = =(1.95-infill_sparse_density / 100 if infill_sparse_density > 95 else 1) * material_flow @@ -107,6 +110,9 @@ retraction_hop_after_extruder_switch_height = =retraction_hop retraction_hop_enabled = =extruders_enabled_count > 1 retraction_min_travel = 5 retraction_prime_speed = =retraction_speed +roofing_monotonic = True +roofing_pattern = =top_bottom_pattern +seam_overhang_angle = =support_angle skin_edge_support_thickness = =4 * layer_height if infill_sparse_density < 30 else 0 skin_material_flow = =0.95 * material_flow skin_outline_count = =0 if top_bottom_pattern == 'concentric' and top_bottom_pattern_0 == 'concentric' and roofing_layer_count <= 0 else 1 diff --git a/resources/variants/ultimaker_s8_cc06.inst.cfg b/resources/variants/ultimaker_s8_cc06.inst.cfg index 6e00f0e64e..3672f3d8a0 100644 --- a/resources/variants/ultimaker_s8_cc06.inst.cfg +++ b/resources/variants/ultimaker_s8_cc06.inst.cfg @@ -53,6 +53,9 @@ cool_min_speed = =round(speed_wall_0 * 3 / 4) if cool_lift_head else round(speed cool_min_temperature = =max([material_final_print_temperature, material_initial_print_temperature, material_print_temperature - 15]) extra_infill_lines_to_support_skins = none flooring_layer_count = 0 +flooring_material_flow = =skin_material_flow +flooring_monotonic = True +gradual_flow_discretisation_step_size = 0.2 gradual_flow_enabled = False hole_xy_offset = 0 infill_material_flow = =(1.95-infill_sparse_density / 100 if infill_sparse_density > 95 else 1) * material_flow @@ -107,6 +110,9 @@ retraction_hop_after_extruder_switch_height = =retraction_hop retraction_hop_enabled = =extruders_enabled_count > 1 retraction_min_travel = 5 retraction_prime_speed = =retraction_speed +roofing_monotonic = True +roofing_pattern = =top_bottom_pattern +seam_overhang_angle = =support_angle skin_edge_support_thickness = =4 * layer_height if infill_sparse_density < 30 else 0 skin_material_flow = =0.95 * material_flow skin_outline_count = =0 if top_bottom_pattern == 'concentric' and top_bottom_pattern_0 == 'concentric' and roofing_layer_count <= 0 else 1 From 3a3497229dd21d8994d30f41d6b24701cb628f0d Mon Sep 17 00:00:00 2001 From: Paul Kuiper <46715907+pkuiper-ultimaker@users.noreply.github.com> Date: Mon, 8 Sep 2025 10:26:34 +0200 Subject: [PATCH 157/200] Slightly better raft release and reduced stringing due to combing. PP-674 --- resources/definitions/ultimaker_replicator_plus.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/ultimaker_replicator_plus.def.json b/resources/definitions/ultimaker_replicator_plus.def.json index d7a51a25e6..507fab6803 100644 --- a/resources/definitions/ultimaker_replicator_plus.def.json +++ b/resources/definitions/ultimaker_replicator_plus.def.json @@ -395,7 +395,7 @@ "enabled": false, "value": "acceleration_print" }, - "raft_airgap": { "value": 0.3 }, + "raft_airgap": { "value": 0.33 }, "raft_base_acceleration": { "enabled": false, @@ -451,7 +451,7 @@ "maximum_value_warning": 2.5, "value": 1.0 }, - "retraction_combing": { "value": "'infill'" }, + "retraction_combing": { "value": "'no_outer_surfaces'" }, "retraction_count_max": { "maximum_value": 700, From 25c494a75c4c80aeeb31ab48b984bfb80c40defe Mon Sep 17 00:00:00 2001 From: Paul Kuiper <46715907+pkuiper-ultimaker@users.noreply.github.com> Date: Mon, 8 Sep 2025 10:34:12 +0200 Subject: [PATCH 158/200] Increased support z distance for better release of self support. PP-577 --- .../ultimaker_method/um_method_1a_um-nylon-175_0.2mm.inst.cfg | 4 ++-- .../ultimaker_method/um_method_1c_um-nylon-175_0.2mm.inst.cfg | 4 ++-- .../um_method_labs_um-nylon-175_0.2mm.inst.cfg | 4 ++-- .../um_methodx_1a_um-nylon-175_0.2mm.inst.cfg | 4 ++-- .../um_methodx_1c_um-nylon-175_0.2mm.inst.cfg | 4 ++-- .../um_methodx_labs_um-nylon-175_0.2mm.inst.cfg | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/resources/quality/ultimaker_method/um_method_1a_um-nylon-175_0.2mm.inst.cfg b/resources/quality/ultimaker_method/um_method_1a_um-nylon-175_0.2mm.inst.cfg index 13b5c6c4f1..6859b6c0b2 100644 --- a/resources/quality/ultimaker_method/um_method_1a_um-nylon-175_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_method/um_method_1a_um-nylon-175_0.2mm.inst.cfg @@ -27,7 +27,7 @@ raft_base_speed = 10 raft_base_thickness = 0.6 raft_interface_thickness = 0.25 retraction_amount = 0.5 -retraction_min_travel = 3.2ƒ√ +retraction_min_travel = 3.2 small_skin_width = 3.6 speed_prime_tower = =speed_print speed_print = 50 @@ -54,5 +54,5 @@ support_structure = tree support_supported_skin_fan_speed = 75 support_wall_count = 1 support_xy_distance = 0.3 -support_z_distance = 0.3 +support_z_distance = =layer_height*2 diff --git a/resources/quality/ultimaker_method/um_method_1c_um-nylon-175_0.2mm.inst.cfg b/resources/quality/ultimaker_method/um_method_1c_um-nylon-175_0.2mm.inst.cfg index 6a7fb34999..57a0c78003 100644 --- a/resources/quality/ultimaker_method/um_method_1c_um-nylon-175_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_method/um_method_1c_um-nylon-175_0.2mm.inst.cfg @@ -27,7 +27,7 @@ raft_base_speed = 10 raft_base_thickness = 0.6 raft_interface_thickness = 0.25 retraction_amount = 0.5 -retraction_min_travel = 3.2ƒ√ +retraction_min_travel = 3.2 small_skin_width = 3.6 speed_prime_tower = =speed_print speed_print = 50 @@ -54,5 +54,5 @@ support_structure = tree support_supported_skin_fan_speed = 75 support_wall_count = 1 support_xy_distance = 0.3 -support_z_distance = 0.3 +support_z_distance = =layer_height*2 diff --git a/resources/quality/ultimaker_method/um_method_labs_um-nylon-175_0.2mm.inst.cfg b/resources/quality/ultimaker_method/um_method_labs_um-nylon-175_0.2mm.inst.cfg index 5b85e94356..cf87c5c74b 100644 --- a/resources/quality/ultimaker_method/um_method_labs_um-nylon-175_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_method/um_method_labs_um-nylon-175_0.2mm.inst.cfg @@ -27,7 +27,7 @@ raft_base_speed = 10 raft_base_thickness = 0.6 raft_interface_thickness = 0.25 retraction_amount = 0.5 -retraction_min_travel = 3.2ƒ√ +retraction_min_travel = 3.2 small_skin_width = 3.6 speed_prime_tower = =speed_print speed_print = 50 @@ -54,5 +54,5 @@ support_structure = tree support_supported_skin_fan_speed = 75 support_wall_count = 1 support_xy_distance = 0.3 -support_z_distance = 0.3 +support_z_distance = =layer_height*2 diff --git a/resources/quality/ultimaker_methodx/um_methodx_1a_um-nylon-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodx/um_methodx_1a_um-nylon-175_0.2mm.inst.cfg index dd622e65bf..e2f294f391 100644 --- a/resources/quality/ultimaker_methodx/um_methodx_1a_um-nylon-175_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_methodx/um_methodx_1a_um-nylon-175_0.2mm.inst.cfg @@ -27,7 +27,7 @@ raft_base_speed = 10 raft_base_thickness = 0.6 raft_interface_thickness = 0.25 retraction_amount = 0.5 -retraction_min_travel = 3.2ƒ√ +retraction_min_travel = 3.2 small_skin_width = 3.6 speed_prime_tower = =speed_print speed_print = 50 @@ -54,5 +54,5 @@ support_structure = tree support_supported_skin_fan_speed = 75 support_wall_count = 1 support_xy_distance = 0.3 -support_z_distance = 0.3 +support_z_distance = =layer_height*2 diff --git a/resources/quality/ultimaker_methodx/um_methodx_1c_um-nylon-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodx/um_methodx_1c_um-nylon-175_0.2mm.inst.cfg index 8aef5be946..788d768ff2 100644 --- a/resources/quality/ultimaker_methodx/um_methodx_1c_um-nylon-175_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_methodx/um_methodx_1c_um-nylon-175_0.2mm.inst.cfg @@ -27,7 +27,7 @@ raft_base_speed = 10 raft_base_thickness = 0.6 raft_interface_thickness = 0.25 retraction_amount = 0.5 -retraction_min_travel = 3.2ƒ√ +retraction_min_travel = 3.2 small_skin_width = 3.6 speed_prime_tower = =speed_print speed_print = 50 @@ -54,5 +54,5 @@ support_structure = tree support_supported_skin_fan_speed = 75 support_wall_count = 1 support_xy_distance = 0.3 -support_z_distance = 0.3 +support_z_distance = =layer_height*2 diff --git a/resources/quality/ultimaker_methodx/um_methodx_labs_um-nylon-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodx/um_methodx_labs_um-nylon-175_0.2mm.inst.cfg index 08e5a9f7a2..d5f520eb71 100644 --- a/resources/quality/ultimaker_methodx/um_methodx_labs_um-nylon-175_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_methodx/um_methodx_labs_um-nylon-175_0.2mm.inst.cfg @@ -27,7 +27,7 @@ raft_base_speed = 10 raft_base_thickness = 0.6 raft_interface_thickness = 0.25 retraction_amount = 0.5 -retraction_min_travel = 3.2ƒ√ +retraction_min_travel = 3.2 small_skin_width = 3.6 speed_prime_tower = =speed_print speed_print = 50 @@ -54,5 +54,5 @@ support_structure = tree support_supported_skin_fan_speed = 75 support_wall_count = 1 support_xy_distance = 0.3 -support_z_distance = 0.3 +support_z_distance = =layer_height*2 From 066ac3eb20052a16afd528de6c987278ea0d9c62 Mon Sep 17 00:00:00 2001 From: THeijmans Date: Mon, 8 Sep 2025 13:22:01 +0200 Subject: [PATCH 159/200] PP-664 reduce z-resonances in F4 print process --- resources/definitions/ultimaker_factor4.def.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/resources/definitions/ultimaker_factor4.def.json b/resources/definitions/ultimaker_factor4.def.json index 710ee29a40..483300d878 100644 --- a/resources/definitions/ultimaker_factor4.def.json +++ b/resources/definitions/ultimaker_factor4.def.json @@ -86,6 +86,7 @@ "gantry_height": { "value": 35 }, "gradual_support_infill_steps": { "value": "3 if support_interface_enable and support_structure != 'tree' else 0" }, "group_outer_walls": { "value": "False" }, + "infill_angles": { "value": "[-40, 50] if infill_pattern in ('grid', 'lines', 'zigzag') else [ ]" }, "infill_before_walls": { "value": "False if infill_sparse_density > 50 else True" }, "infill_enable_travel_optimization": { "value": "True" }, "infill_material_flow": @@ -94,7 +95,7 @@ "value": "(1 + (skin_material_flow-infill_sparse_density) / 100 if infill_sparse_density > skin_material_flow else 1) * material_flow" }, "infill_overlap": { "value": "0" }, - "infill_pattern": { "value": "'zigzag' if infill_sparse_density > 50 else 'triangles'" }, + "infill_pattern": { "value": "'zigzag' if infill_sparse_density > 50 else 'gyroid' if 15 < speed_infill / ( infill_line_width * 300 / infill_sparse_density ) < 25 else 'triangles'" }, "infill_sparse_density": { "maximum_value": "100" }, "infill_wipe_dist": { "value": "0" }, "inset_direction": { "value": "'inside_out'" }, @@ -199,6 +200,7 @@ "value": "skin_material_flow" }, "roofing_monotonic": { "value": "True" }, + "skin_angles": { "value": "[-40, 50]" }, "skin_material_flow": { "maximum_value": "100", From 6e6849c9c1f8dd5a7ef8c6a2a94ece883319677e Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Mon, 8 Sep 2025 15:21:04 +0200 Subject: [PATCH 160/200] Take care of layer height for paint resolution CURA-12584 Since the meshes generation has been once more optimized, we can now use lower resolutions. --- resources/definitions/fdmprinter.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 21dd3209de..41d48d5be5 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -7924,8 +7924,8 @@ "type": "float", "enabled": "extruders_enabled_count > 1", "default_value": 0.2, - "value": "line_width / 2", - "minimum_value": "0.1", + "value": "min(line_width / 2, layer_height)", + "minimum_value": "0.05", "maximum_value": "5", "maximum_value_warning": "line_width * 2", "settable_per_mesh": false, From 34eac462bd5655e2b8075966afab6cd46fd55973 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Wed, 23 Jul 2025 16:58:09 +0200 Subject: [PATCH 161/200] More authentication, since printer-API call-responses can include user-info. The new regulations make a decent amount of sense -- but just because we agree with them doesn't mean we'd implemented this yet. Anyway, information wich can be used to personally identify people should be kept behind (virtual) locks and bars. The new firmware will only allow certain operations _after_ a request has been made to the .../auth/request endpoint, and someone in the physical vicinity (of the printer) has pressed ALLOW on a popup (with the application and name of the requester shown, on the printers' UI). After that, _as long as you put the relevant Authorization Digest in your HTTP headers_ (and use at least SHA-256), you may proceed to make other requests without the printer-server flipping out with a FORBIDDEN error. The current commit _should_ also still work with printers that still have old (well, current I guess...) firmware -- but I didn't test that yet. CURA-12624 --- .../src/Network/ClusterApiClient.py | 90 +++++++++++++++++-- 1 file changed, 85 insertions(+), 5 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Network/ClusterApiClient.py b/plugins/UM3NetworkPrinting/src/Network/ClusterApiClient.py index fd8118306b..a1f7a47da6 100644 --- a/plugins/UM3NetworkPrinting/src/Network/ClusterApiClient.py +++ b/plugins/UM3NetworkPrinting/src/Network/ClusterApiClient.py @@ -1,6 +1,8 @@ -# Copyright (c) 2019 Ultimaker B.V. +# Copyright (c) 2025 UltiMaker # Cura is released under the terms of the LGPLv3 or higher. +import hashlib import json +import secrets from json import JSONDecodeError from typing import Callable, List, Optional, Dict, Union, Any, Type, cast, TypeVar, Tuple @@ -9,6 +11,8 @@ from PyQt6.QtNetwork import QNetworkAccessManager, QNetworkRequest, QNetworkRepl from UM.Logger import Logger +from cura.CuraApplication import CuraApplication + from ..Models.BaseModel import BaseModel from ..Models.Http.ClusterPrintJobStatus import ClusterPrintJobStatus from ..Models.Http.ClusterPrinterStatus import ClusterPrinterStatus @@ -27,6 +31,14 @@ class ClusterApiClient: PRINTER_API_PREFIX = "/api/v1" CLUSTER_API_PREFIX = "/cluster-api/v1" + AUTH_REALM = "Jedi-API" + AUTH_QOP = "auth" + AUTH_NC = "00000001" + AUTH_NONCE_LEN = 16 + AUTH_CNONCE_LEN = 8 + + AUTH_MAX_TRIES = 5 + # In order to avoid garbage collection we keep the callbacks in this list. _anti_gc_callbacks = [] # type: List[Callable[[], None]] @@ -40,6 +52,8 @@ class ClusterApiClient: self._manager = QNetworkAccessManager() self._address = address self._on_error = on_error + self._auth_info = None + self._auth_tries = 0 def getSystem(self, on_finished: Callable) -> None: """Get printer system information. @@ -81,13 +95,13 @@ class ClusterApiClient: """Move a print job to the top of the queue.""" url = "{}/print_jobs/{}/action/move".format(self.CLUSTER_API_PREFIX, print_job_uuid) - self._manager.post(self._createEmptyRequest(url), json.dumps({"to_position": 0, "list": "queued"}).encode()) + self._manager.post(self._createEmptyRequest(url, method="POST"), json.dumps({"to_position": 0, "list": "queued"}).encode()) def forcePrintJob(self, print_job_uuid: str) -> None: """Override print job configuration and force it to be printed.""" url = "{}/print_jobs/{}".format(self.CLUSTER_API_PREFIX, print_job_uuid) - self._manager.put(self._createEmptyRequest(url), json.dumps({"force": True}).encode()) + self._manager.put(self._createEmptyRequest(url, method="PUT"), json.dumps({"force": True}).encode()) def deletePrintJob(self, print_job_uuid: str) -> None: """Delete a print job from the queue.""" @@ -101,7 +115,7 @@ class ClusterApiClient: url = "{}/print_jobs/{}/action".format(self.CLUSTER_API_PREFIX, print_job_uuid) # We rewrite 'resume' to 'print' here because we are using the old print job action endpoints. action = "print" if state == "resume" else state - self._manager.put(self._createEmptyRequest(url), json.dumps({"action": action}).encode()) + self._manager.put(self._createEmptyRequest(url, method="PUT"), json.dumps({"action": action}).encode()) def getPrintJobPreviewImage(self, print_job_uuid: str, on_finished: Callable) -> None: """Get the preview image data of a print job.""" @@ -110,16 +124,23 @@ class ClusterApiClient: reply = self._manager.get(self._createEmptyRequest(url)) self._addCallback(reply, on_finished) - def _createEmptyRequest(self, path: str, content_type: Optional[str] = "application/json") -> QNetworkRequest: + def _createEmptyRequest(self, path: str, content_type: Optional[str] = "application/json", method: str = "GET", skip_auth: bool = False) -> QNetworkRequest: """We override _createEmptyRequest in order to add the user credentials. :param url: The URL to request :param content_type: The type of the body contents. + :param method: The HTTP method to use, such as GET, POST, PUT, etc. + :param skip_auth: Skips the authentication step if set; prevents a loop on request of authentication token. """ url = QUrl("http://" + self._address + path) request = QNetworkRequest(url) if content_type: request.setHeader(QNetworkRequest.KnownHeaders.ContentTypeHeader, content_type) + if self._auth_info: + digest_str = self._makeAuthDigestHeaderPart(path, method=method) + request.setRawHeader(b"Authorization", f"Digest {digest_str}".encode("utf-8")) + elif not skip_auth: + self._setupAuth() return request @staticmethod @@ -158,6 +179,65 @@ class ClusterApiClient: except (JSONDecodeError, TypeError, ValueError): Logger.log("e", "Could not parse response from network: %s", str(response)) + def _makeAuthDigestHeaderPart(self, url_part: str, method: str = "GET") -> str: + """ Make the data-part for a Digest Authentication HTTP-header. + + :param url_part: The part of the URL beyond the host name. + :param method: The HTTP method to use, such as GET, POST, PUT, etc. + :return: A string with the data, can be used as in `f"Digest {return_value}".encode()`. + """ + + def sha256_utf8(x: str) -> str: + return hashlib.sha256(x.encode("utf-8")).hexdigest() + + nonce = secrets.token_hex(ClusterApiClient.AUTH_NONCE_LEN) + cnonce = secrets.token_hex(ClusterApiClient.AUTH_CNONCE_LEN) + + ha1 = sha256_utf8(f"{self._auth_info["id"]}:{ClusterApiClient.AUTH_REALM}:{self._auth_info["key"]}") + ha2 = sha256_utf8(f"{method}:{url_part}") + resp_digest = sha256_utf8(f"{ha1}:{nonce}:{ClusterApiClient.AUTH_NC}:{cnonce}:{ClusterApiClient.AUTH_QOP}:{ha2}") + return ", ".join([ + f'username="{self._auth_info["id"]}"', + f'realm="{ClusterApiClient.AUTH_REALM}"', + f'nonce="{nonce}"', + f'uri="{url_part}"', + f'nc={ClusterApiClient.AUTH_NC}', + f'cnonce="{cnonce}"', + f'qop={ClusterApiClient.AUTH_QOP}', + f'response="{resp_digest}"', + f'algorithm="SHA-256"' + ]) + + def _setupAuth(self) -> None: + """ Handles the setup process for authentication by making a temporary digest-token request to the printer API. + """ + + if self._auth_tries >= ClusterApiClient.AUTH_MAX_TRIES: + Logger.warning("Maximum authorization temporary digest-token request tries exceeded. Is printer-firmware up to date?") + return + + username = CuraApplication.getInstance().getCuraAPI().account.userName + if (not username) or username == "": + return + + def on_finished(resp) -> None: + self._auth_tries += 1 + try: + self._auth_info = json.loads(resp.data().decode()) + except Exception as ex: + Logger.warning(f"Couldn't get temporary digest token: {str(ex)}") + return + self._auth_tries = 0 + + url = "{}/auth/request".format(self.PRINTER_API_PREFIX) + request_body = json.dumps({ + "application": CuraApplication.getInstance().getApplicationDisplayName(), + "user": username, + }).encode("utf-8") + reply = self._manager.post(self._createEmptyRequest(url, method="POST", skip_auth=True), request_body) + + self._addCallback(reply, on_finished) + def _addCallback(self, reply: QNetworkReply, on_finished: Union[Callable[[ClusterApiClientModel], Any], Callable[[List[ClusterApiClientModel]], Any]], model: Type[ClusterApiClientModel] = None, ) -> None: From 115d2d5b775901a966aa66ff0ae1393acb4dab48 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Wed, 23 Jul 2025 18:19:17 +0200 Subject: [PATCH 162/200] Fix 2 calls w.r.t. new authorization workflow _outside_ of the API. New rules means we have to put printjobs and such behind a little authentication, as these contain personally identifiable info. These two effected calls where found _outside_ of the API class where I thought to be able to fix it 100%. See also the TODO's in the neighbourhood -- but I'm not sure I can just do what those say (move the relevant methods to the API), as those methods to be moved are _inside_ the larger Cura SDK (and they're public) and the place where I'm meant to move them to (the ClusterAPIClient) is _not_ (as they're in a plugin). part of CURA-12624 --- .../NetworkedPrinterOutputDevice.py | 6 +++-- .../src/Network/ClusterApiClient.py | 22 +++++++++---------- .../src/Network/LocalClusterOutputDevice.py | 3 ++- .../src/Network/SendMaterialJob.py | 3 ++- 4 files changed, 19 insertions(+), 15 deletions(-) diff --git a/cura/PrinterOutput/NetworkedPrinterOutputDevice.py b/cura/PrinterOutput/NetworkedPrinterOutputDevice.py index 1d0be1389e..0eb55d81c5 100644 --- a/cura/PrinterOutput/NetworkedPrinterOutputDevice.py +++ b/cura/PrinterOutput/NetworkedPrinterOutputDevice.py @@ -288,9 +288,11 @@ class NetworkedPrinterOutputDevice(PrinterOutputDevice): def postFormWithParts(self, target: str, parts: List[QHttpPart], on_finished: Optional[Callable[[QNetworkReply], None]], - on_progress: Optional[Callable[[int, int], None]] = None) -> QNetworkReply: + on_progress: Optional[Callable[[int, int], None]] = None, + request: Optional[QNetworkRequest] = None) -> QNetworkReply: self._validateManager() - request = self._createEmptyRequest(target, content_type=None) + if request is None: + request = self._createEmptyRequest(target, content_type=None) multi_post_part = QHttpMultiPart(QHttpMultiPart.ContentType.FormDataType) for part in parts: multi_post_part.append(part) diff --git a/plugins/UM3NetworkPrinting/src/Network/ClusterApiClient.py b/plugins/UM3NetworkPrinting/src/Network/ClusterApiClient.py index a1f7a47da6..ed92b4aafe 100644 --- a/plugins/UM3NetworkPrinting/src/Network/ClusterApiClient.py +++ b/plugins/UM3NetworkPrinting/src/Network/ClusterApiClient.py @@ -61,7 +61,7 @@ class ClusterApiClient: :param on_finished: The callback in case the response is successful. """ url = "{}/system".format(self.PRINTER_API_PREFIX) - reply = self._manager.get(self._createEmptyRequest(url)) + reply = self._manager.get(self.createEmptyRequest(url)) self._addCallback(reply, on_finished, PrinterSystemStatus) def getMaterials(self, on_finished: Callable[[List[ClusterMaterial]], Any]) -> None: @@ -70,7 +70,7 @@ class ClusterApiClient: :param on_finished: The callback in case the response is successful. """ url = "{}/materials".format(self.CLUSTER_API_PREFIX) - reply = self._manager.get(self._createEmptyRequest(url)) + reply = self._manager.get(self.createEmptyRequest(url)) self._addCallback(reply, on_finished, ClusterMaterial) def getPrinters(self, on_finished: Callable[[List[ClusterPrinterStatus]], Any]) -> None: @@ -79,7 +79,7 @@ class ClusterApiClient: :param on_finished: The callback in case the response is successful. """ url = "{}/printers".format(self.CLUSTER_API_PREFIX) - reply = self._manager.get(self._createEmptyRequest(url)) + reply = self._manager.get(self.createEmptyRequest(url)) self._addCallback(reply, on_finished, ClusterPrinterStatus) def getPrintJobs(self, on_finished: Callable[[List[ClusterPrintJobStatus]], Any]) -> None: @@ -88,26 +88,26 @@ class ClusterApiClient: :param on_finished: The callback in case the response is successful. """ url = "{}/print_jobs".format(self.CLUSTER_API_PREFIX) - reply = self._manager.get(self._createEmptyRequest(url)) + reply = self._manager.get(self.createEmptyRequest(url)) self._addCallback(reply, on_finished, ClusterPrintJobStatus) def movePrintJobToTop(self, print_job_uuid: str) -> None: """Move a print job to the top of the queue.""" url = "{}/print_jobs/{}/action/move".format(self.CLUSTER_API_PREFIX, print_job_uuid) - self._manager.post(self._createEmptyRequest(url, method="POST"), json.dumps({"to_position": 0, "list": "queued"}).encode()) + self._manager.post(self.createEmptyRequest(url, method="POST"), json.dumps({"to_position": 0, "list": "queued"}).encode()) def forcePrintJob(self, print_job_uuid: str) -> None: """Override print job configuration and force it to be printed.""" url = "{}/print_jobs/{}".format(self.CLUSTER_API_PREFIX, print_job_uuid) - self._manager.put(self._createEmptyRequest(url, method="PUT"), json.dumps({"force": True}).encode()) + self._manager.put(self.createEmptyRequest(url, method="PUT"), json.dumps({"force": True}).encode()) def deletePrintJob(self, print_job_uuid: str) -> None: """Delete a print job from the queue.""" url = "{}/print_jobs/{}".format(self.CLUSTER_API_PREFIX, print_job_uuid) - self._manager.deleteResource(self._createEmptyRequest(url)) + self._manager.deleteResource(self.createEmptyRequest(url)) def setPrintJobState(self, print_job_uuid: str, state: str) -> None: """Set the state of a print job.""" @@ -115,16 +115,16 @@ class ClusterApiClient: url = "{}/print_jobs/{}/action".format(self.CLUSTER_API_PREFIX, print_job_uuid) # We rewrite 'resume' to 'print' here because we are using the old print job action endpoints. action = "print" if state == "resume" else state - self._manager.put(self._createEmptyRequest(url, method="PUT"), json.dumps({"action": action}).encode()) + self._manager.put(self.createEmptyRequest(url, method="PUT"), json.dumps({"action": action}).encode()) def getPrintJobPreviewImage(self, print_job_uuid: str, on_finished: Callable) -> None: """Get the preview image data of a print job.""" url = "{}/print_jobs/{}/preview_image".format(self.CLUSTER_API_PREFIX, print_job_uuid) - reply = self._manager.get(self._createEmptyRequest(url)) + reply = self._manager.get(self.createEmptyRequest(url)) self._addCallback(reply, on_finished) - def _createEmptyRequest(self, path: str, content_type: Optional[str] = "application/json", method: str = "GET", skip_auth: bool = False) -> QNetworkRequest: + def createEmptyRequest(self, path: str, content_type: Optional[str] = "application/json", method: str = "GET", skip_auth: bool = False) -> QNetworkRequest: """We override _createEmptyRequest in order to add the user credentials. :param url: The URL to request @@ -234,7 +234,7 @@ class ClusterApiClient: "application": CuraApplication.getInstance().getApplicationDisplayName(), "user": username, }).encode("utf-8") - reply = self._manager.post(self._createEmptyRequest(url, method="POST", skip_auth=True), request_body) + reply = self._manager.post(self.createEmptyRequest(url, method="POST", skip_auth=True), request_body) self._addCallback(reply, on_finished) diff --git a/plugins/UM3NetworkPrinting/src/Network/LocalClusterOutputDevice.py b/plugins/UM3NetworkPrinting/src/Network/LocalClusterOutputDevice.py index 2a57bd0321..f9e0b95b59 100644 --- a/plugins/UM3NetworkPrinting/src/Network/LocalClusterOutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/Network/LocalClusterOutputDevice.py @@ -204,7 +204,8 @@ class LocalClusterOutputDevice(UltimakerNetworkedPrinterOutputDevice): parts.append(self._createFormPart("name=require_printer_name", bytes(unique_name, "utf-8"), "text/plain")) # FIXME: move form posting to API client self.postFormWithParts("/cluster-api/v1/print_jobs/", parts, on_finished=self._onPrintUploadCompleted, - on_progress=self._onPrintJobUploadProgress) + on_progress=self._onPrintJobUploadProgress, + request=self._cluster_api.createEmptyRequest("/cluster-api/v1/print_jobs/", content_type=None, method="POST")) self._active_exported_job = None def _onPrintJobUploadProgress(self, bytes_sent: int, bytes_total: int) -> None: diff --git a/plugins/UM3NetworkPrinting/src/Network/SendMaterialJob.py b/plugins/UM3NetworkPrinting/src/Network/SendMaterialJob.py index 9f5484ba15..2f3fb9ff19 100644 --- a/plugins/UM3NetworkPrinting/src/Network/SendMaterialJob.py +++ b/plugins/UM3NetworkPrinting/src/Network/SendMaterialJob.py @@ -147,7 +147,8 @@ class SendMaterialJob(Job): # FIXME: move form posting to API client self.device.postFormWithParts(target = "/cluster-api/v1/materials/", parts = parts, - on_finished = self._sendingFinished) + on_finished = self._sendingFinished, + request=self._cluster_api.createEmptyRequest("/cluster-api/v1/materials/", content_type=None, method="POST")) def _sendingFinished(self, reply: QNetworkReply) -> None: """Check a reply from an upload to the printer and log an error when the call failed""" From 7f35a5074b3dc3f417cc7a5f5cd311bbd120b8da Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Wed, 23 Jul 2025 20:25:17 +0200 Subject: [PATCH 163/200] Make authentication info a little less brittle. Otherwise if the server (on the printer) gives back something that can be parsed into JSON, but _isn't_ the authorization digest info, the thing breaks. part of CURA-12624 --- .../src/Network/ClusterApiClient.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Network/ClusterApiClient.py b/plugins/UM3NetworkPrinting/src/Network/ClusterApiClient.py index ed92b4aafe..c7562db96b 100644 --- a/plugins/UM3NetworkPrinting/src/Network/ClusterApiClient.py +++ b/plugins/UM3NetworkPrinting/src/Network/ClusterApiClient.py @@ -52,7 +52,8 @@ class ClusterApiClient: self._manager = QNetworkAccessManager() self._address = address self._on_error = on_error - self._auth_info = None + self._auth_id = None + self._auth_key = None self._auth_tries = 0 def getSystem(self, on_finished: Callable) -> None: @@ -136,7 +137,7 @@ class ClusterApiClient: request = QNetworkRequest(url) if content_type: request.setHeader(QNetworkRequest.KnownHeaders.ContentTypeHeader, content_type) - if self._auth_info: + if self._auth_id and self._auth_key: digest_str = self._makeAuthDigestHeaderPart(path, method=method) request.setRawHeader(b"Authorization", f"Digest {digest_str}".encode("utf-8")) elif not skip_auth: @@ -193,11 +194,11 @@ class ClusterApiClient: nonce = secrets.token_hex(ClusterApiClient.AUTH_NONCE_LEN) cnonce = secrets.token_hex(ClusterApiClient.AUTH_CNONCE_LEN) - ha1 = sha256_utf8(f"{self._auth_info["id"]}:{ClusterApiClient.AUTH_REALM}:{self._auth_info["key"]}") + ha1 = sha256_utf8(f"{self._auth_id}:{ClusterApiClient.AUTH_REALM}:{self._auth_key}") ha2 = sha256_utf8(f"{method}:{url_part}") resp_digest = sha256_utf8(f"{ha1}:{nonce}:{ClusterApiClient.AUTH_NC}:{cnonce}:{ClusterApiClient.AUTH_QOP}:{ha2}") return ", ".join([ - f'username="{self._auth_info["id"]}"', + f'username="{self._auth_id}"', f'realm="{ClusterApiClient.AUTH_REALM}"', f'nonce="{nonce}"', f'uri="{url_part}"', @@ -223,7 +224,9 @@ class ClusterApiClient: def on_finished(resp) -> None: self._auth_tries += 1 try: - self._auth_info = json.loads(resp.data().decode()) + auth_info = json.loads(resp.data().decode()) + self._auth_id = auth_info["id"] + self._auth_key = auth_info["key"] except Exception as ex: Logger.warning(f"Couldn't get temporary digest token: {str(ex)}") return From 75fc0782da38f591796a2885a29c4ecaedbd9a0d Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Tue, 29 Jul 2025 11:00:15 +0200 Subject: [PATCH 164/200] Code review: Replace string with enum. First use of 3.11's StrEnum in the code base I think -- anyway, Python autoboxes these (maybe even the old str,enum things as well, but irrelevant now), so there's nothing in the way of making this an enum and have type-_checking_ instead of type-_o_'s. done as part of CURA-12624 --- .../src/Network/ClusterApiClient.py | 27 ++++++++++++++----- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Network/ClusterApiClient.py b/plugins/UM3NetworkPrinting/src/Network/ClusterApiClient.py index c7562db96b..5cd8457188 100644 --- a/plugins/UM3NetworkPrinting/src/Network/ClusterApiClient.py +++ b/plugins/UM3NetworkPrinting/src/Network/ClusterApiClient.py @@ -3,6 +3,7 @@ import hashlib import json import secrets +from enum import StrEnum from json import JSONDecodeError from typing import Callable, List, Optional, Dict, Union, Any, Type, cast, TypeVar, Tuple @@ -24,6 +25,18 @@ ClusterApiClientModel = TypeVar("ClusterApiClientModel", bound=BaseModel) """The generic type variable used to document the methods below.""" +class HttpRequestMethod(StrEnum): + GET = "GET", + HEAD = "HEAD", + POST = "POST", + PUT = "PUT", + DELETE = "DELETE", + CONNECT = "CONNECT", + OPTIONS = "OPTIONS", + TRACE = "TRACE", + PATCH = "PATCH", + + class ClusterApiClient: """The ClusterApiClient is responsible for all network calls to local network clusters.""" @@ -96,13 +109,13 @@ class ClusterApiClient: """Move a print job to the top of the queue.""" url = "{}/print_jobs/{}/action/move".format(self.CLUSTER_API_PREFIX, print_job_uuid) - self._manager.post(self.createEmptyRequest(url, method="POST"), json.dumps({"to_position": 0, "list": "queued"}).encode()) + self._manager.post(self.createEmptyRequest(url, method=HttpRequestMethod.POST), json.dumps({"to_position": 0, "list": "queued"}).encode()) def forcePrintJob(self, print_job_uuid: str) -> None: """Override print job configuration and force it to be printed.""" url = "{}/print_jobs/{}".format(self.CLUSTER_API_PREFIX, print_job_uuid) - self._manager.put(self.createEmptyRequest(url, method="PUT"), json.dumps({"force": True}).encode()) + self._manager.put(self.createEmptyRequest(url, method=HttpRequestMethod.PUT), json.dumps({"force": True}).encode()) def deletePrintJob(self, print_job_uuid: str) -> None: """Delete a print job from the queue.""" @@ -116,7 +129,7 @@ class ClusterApiClient: url = "{}/print_jobs/{}/action".format(self.CLUSTER_API_PREFIX, print_job_uuid) # We rewrite 'resume' to 'print' here because we are using the old print job action endpoints. action = "print" if state == "resume" else state - self._manager.put(self.createEmptyRequest(url, method="PUT"), json.dumps({"action": action}).encode()) + self._manager.put(self.createEmptyRequest(url, method=HttpRequestMethod.PUT), json.dumps({"action": action}).encode()) def getPrintJobPreviewImage(self, print_job_uuid: str, on_finished: Callable) -> None: """Get the preview image data of a print job.""" @@ -125,10 +138,10 @@ class ClusterApiClient: reply = self._manager.get(self.createEmptyRequest(url)) self._addCallback(reply, on_finished) - def createEmptyRequest(self, path: str, content_type: Optional[str] = "application/json", method: str = "GET", skip_auth: bool = False) -> QNetworkRequest: + def createEmptyRequest(self, path: str, content_type: Optional[str] = "application/json", method: HttpRequestMethod = HttpRequestMethod.GET, skip_auth: bool = False) -> QNetworkRequest: """We override _createEmptyRequest in order to add the user credentials. - :param url: The URL to request + :param path: Part added to the base-endpoint forming the total request URL (the path from the endpoint to the requested resource). :param content_type: The type of the body contents. :param method: The HTTP method to use, such as GET, POST, PUT, etc. :param skip_auth: Skips the authentication step if set; prevents a loop on request of authentication token. @@ -180,7 +193,7 @@ class ClusterApiClient: except (JSONDecodeError, TypeError, ValueError): Logger.log("e", "Could not parse response from network: %s", str(response)) - def _makeAuthDigestHeaderPart(self, url_part: str, method: str = "GET") -> str: + def _makeAuthDigestHeaderPart(self, url_part: str, method: HttpRequestMethod = HttpRequestMethod.GET) -> str: """ Make the data-part for a Digest Authentication HTTP-header. :param url_part: The part of the URL beyond the host name. @@ -237,7 +250,7 @@ class ClusterApiClient: "application": CuraApplication.getInstance().getApplicationDisplayName(), "user": username, }).encode("utf-8") - reply = self._manager.post(self.createEmptyRequest(url, method="POST", skip_auth=True), request_body) + reply = self._manager.post(self.createEmptyRequest(url, method=HttpRequestMethod.POST, skip_auth=True), request_body) self._addCallback(reply, on_finished) From 6b1f29cdb1f25aa12303fa88c40864c56e5df3bc Mon Sep 17 00:00:00 2001 From: Frederic Meeuwissen <13856291+Frederic98@users.noreply.github.com> Date: Fri, 22 Aug 2025 14:12:07 +0200 Subject: [PATCH 165/200] Fix crash on AttributeError --- .../src/Network/LocalClusterOutputDevice.py | 20 +++++++++---------- .../src/Network/SendMaterialJob.py | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Network/LocalClusterOutputDevice.py b/plugins/UM3NetworkPrinting/src/Network/LocalClusterOutputDevice.py index f9e0b95b59..f51ff5a4e8 100644 --- a/plugins/UM3NetworkPrinting/src/Network/LocalClusterOutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/Network/LocalClusterOutputDevice.py @@ -94,15 +94,15 @@ class LocalClusterOutputDevice(UltimakerNetworkedPrinterOutputDevice): @pyqtSlot(str, name="sendJobToTop") def sendJobToTop(self, print_job_uuid: str) -> None: - self._getApiClient().movePrintJobToTop(print_job_uuid) + self.getApiClient().movePrintJobToTop(print_job_uuid) @pyqtSlot(str, name="deleteJobFromQueue") def deleteJobFromQueue(self, print_job_uuid: str) -> None: - self._getApiClient().deletePrintJob(print_job_uuid) + self.getApiClient().deletePrintJob(print_job_uuid) @pyqtSlot(str, name="forceSendJob") def forceSendJob(self, print_job_uuid: str) -> None: - self._getApiClient().forcePrintJob(print_job_uuid) + self.getApiClient().forcePrintJob(print_job_uuid) def setJobState(self, print_job_uuid: str, action: str) -> None: """Set the remote print job state. @@ -111,20 +111,20 @@ class LocalClusterOutputDevice(UltimakerNetworkedPrinterOutputDevice): :param action: The action to undertake ('pause', 'resume', 'abort'). """ - self._getApiClient().setPrintJobState(print_job_uuid, action) + self.getApiClient().setPrintJobState(print_job_uuid, action) def _update(self) -> None: super()._update() if time() - self._time_of_last_request < self.CHECK_CLUSTER_INTERVAL: return # avoid calling the cluster too often - self._getApiClient().getPrinters(self._updatePrinters) - self._getApiClient().getPrintJobs(self._updatePrintJobs) + self.getApiClient().getPrinters(self._updatePrinters) + self.getApiClient().getPrintJobs(self._updatePrintJobs) self._updatePrintJobPreviewImages() def getMaterials(self, on_finished: Callable[[List[ClusterMaterial]], Any]) -> None: """Get a list of materials that are installed on the cluster host.""" - self._getApiClient().getMaterials(on_finished = on_finished) + self.getApiClient().getMaterials(on_finished = on_finished) def sendMaterialProfiles(self) -> None: """Sync the material profiles in Cura with the printer. @@ -205,7 +205,7 @@ class LocalClusterOutputDevice(UltimakerNetworkedPrinterOutputDevice): # FIXME: move form posting to API client self.postFormWithParts("/cluster-api/v1/print_jobs/", parts, on_finished=self._onPrintUploadCompleted, on_progress=self._onPrintJobUploadProgress, - request=self._cluster_api.createEmptyRequest("/cluster-api/v1/print_jobs/", content_type=None, method="POST")) + request=self.getApiClient().createEmptyRequest("/cluster-api/v1/print_jobs/", content_type=None, method="POST")) self._active_exported_job = None def _onPrintJobUploadProgress(self, bytes_sent: int, bytes_total: int) -> None: @@ -237,9 +237,9 @@ class LocalClusterOutputDevice(UltimakerNetworkedPrinterOutputDevice): for print_job in self._print_jobs: if print_job.getPreviewImage() is None: - self._getApiClient().getPrintJobPreviewImage(print_job.key, print_job.updatePreviewImageData) + self.getApiClient().getPrintJobPreviewImage(print_job.key, print_job.updatePreviewImageData) - def _getApiClient(self) -> ClusterApiClient: + def getApiClient(self) -> ClusterApiClient: """Get the API client instance.""" if not self._cluster_api: diff --git a/plugins/UM3NetworkPrinting/src/Network/SendMaterialJob.py b/plugins/UM3NetworkPrinting/src/Network/SendMaterialJob.py index 2f3fb9ff19..3b9f127c77 100644 --- a/plugins/UM3NetworkPrinting/src/Network/SendMaterialJob.py +++ b/plugins/UM3NetworkPrinting/src/Network/SendMaterialJob.py @@ -148,7 +148,7 @@ class SendMaterialJob(Job): # FIXME: move form posting to API client self.device.postFormWithParts(target = "/cluster-api/v1/materials/", parts = parts, on_finished = self._sendingFinished, - request=self._cluster_api.createEmptyRequest("/cluster-api/v1/materials/", content_type=None, method="POST")) + request=self.device.getApiClient().createEmptyRequest("/cluster-api/v1/materials/", content_type=None, method="POST")) def _sendingFinished(self, reply: QNetworkReply) -> None: """Check a reply from an upload to the printer and log an error when the call failed""" From 7fc87cb4c126bf77d3104a379f53fc6755544d6e Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Wed, 3 Sep 2025 14:28:12 +0200 Subject: [PATCH 166/200] Fill in correct nonce and nonce-count for cluster-auth. part of CURA-12624 --- .../src/Network/ClusterApiClient.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Network/ClusterApiClient.py b/plugins/UM3NetworkPrinting/src/Network/ClusterApiClient.py index 5cd8457188..1a0a915a03 100644 --- a/plugins/UM3NetworkPrinting/src/Network/ClusterApiClient.py +++ b/plugins/UM3NetworkPrinting/src/Network/ClusterApiClient.py @@ -2,6 +2,7 @@ # Cura is released under the terms of the LGPLv3 or higher. import hashlib import json +import re import secrets from enum import StrEnum from json import JSONDecodeError @@ -46,7 +47,6 @@ class ClusterApiClient: AUTH_REALM = "Jedi-API" AUTH_QOP = "auth" - AUTH_NC = "00000001" AUTH_NONCE_LEN = 16 AUTH_CNONCE_LEN = 8 @@ -69,6 +69,9 @@ class ClusterApiClient: self._auth_key = None self._auth_tries = 0 + self._nonce_count = 1 + self._nonce = None + def getSystem(self, on_finished: Callable) -> None: """Get printer system information. @@ -153,6 +156,7 @@ class ClusterApiClient: if self._auth_id and self._auth_key: digest_str = self._makeAuthDigestHeaderPart(path, method=method) request.setRawHeader(b"Authorization", f"Digest {digest_str}".encode("utf-8")) + self._nonce_count += 1 elif not skip_auth: self._setupAuth() return request @@ -204,18 +208,19 @@ class ClusterApiClient: def sha256_utf8(x: str) -> str: return hashlib.sha256(x.encode("utf-8")).hexdigest() - nonce = secrets.token_hex(ClusterApiClient.AUTH_NONCE_LEN) + nonce = secrets.token_hex(ClusterApiClient.AUTH_NONCE_LEN) if self._nonce is None else self._nonce cnonce = secrets.token_hex(ClusterApiClient.AUTH_CNONCE_LEN) + auth_nc = f"{self._nonce_count:08x}" ha1 = sha256_utf8(f"{self._auth_id}:{ClusterApiClient.AUTH_REALM}:{self._auth_key}") ha2 = sha256_utf8(f"{method}:{url_part}") - resp_digest = sha256_utf8(f"{ha1}:{nonce}:{ClusterApiClient.AUTH_NC}:{cnonce}:{ClusterApiClient.AUTH_QOP}:{ha2}") + resp_digest = sha256_utf8(f"{ha1}:{nonce}:{auth_nc}:{cnonce}:{ClusterApiClient.AUTH_QOP}:{ha2}") return ", ".join([ f'username="{self._auth_id}"', f'realm="{ClusterApiClient.AUTH_REALM}"', f'nonce="{nonce}"', f'uri="{url_part}"', - f'nc={ClusterApiClient.AUTH_NC}', + f'nc={auth_nc}', f'cnonce="{cnonce}"', f'qop={ClusterApiClient.AUTH_QOP}', f'response="{resp_digest}"', @@ -275,6 +280,11 @@ class ClusterApiClient: return if reply.error() != QNetworkReply.NetworkError.NoError: + if reply.error() == QNetworkReply.NetworkError.AuthenticationRequiredError: + nonce_match = re.search(r'nonce="([^"]+)', str(reply.rawHeader(b"WWW-Authenticate"))) + if nonce_match: + self._nonce = nonce_match.group(1) + self._nonce_count = 1 self._on_error(reply.errorString()) return From 70a8f9b0a3f816f6ce0de34fe22fff5c086a608c Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Wed, 3 Sep 2025 14:37:18 +0200 Subject: [PATCH 167/200] Use machine-node-ID as username. Otherwise there's _still_ personal information in there. part of CURA-12624 --- plugins/UM3NetworkPrinting/src/Network/ClusterApiClient.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Network/ClusterApiClient.py b/plugins/UM3NetworkPrinting/src/Network/ClusterApiClient.py index 1a0a915a03..bbe7932d66 100644 --- a/plugins/UM3NetworkPrinting/src/Network/ClusterApiClient.py +++ b/plugins/UM3NetworkPrinting/src/Network/ClusterApiClient.py @@ -2,6 +2,7 @@ # Cura is released under the terms of the LGPLv3 or higher. import hashlib import json +import platform import re import secrets from enum import StrEnum @@ -235,10 +236,6 @@ class ClusterApiClient: Logger.warning("Maximum authorization temporary digest-token request tries exceeded. Is printer-firmware up to date?") return - username = CuraApplication.getInstance().getCuraAPI().account.userName - if (not username) or username == "": - return - def on_finished(resp) -> None: self._auth_tries += 1 try: @@ -253,7 +250,7 @@ class ClusterApiClient: url = "{}/auth/request".format(self.PRINTER_API_PREFIX) request_body = json.dumps({ "application": CuraApplication.getInstance().getApplicationDisplayName(), - "user": username, + "user": f"user@{platform.node()}", }).encode("utf-8") reply = self._manager.post(self.createEmptyRequest(url, method=HttpRequestMethod.POST, skip_auth=True), request_body) From a8ac8e93324cda60a36191657474a7a730a2e540 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Tue, 9 Sep 2025 09:27:23 +0200 Subject: [PATCH 168/200] Forgot to update this (needed for authentication). part of CURA-12624 --- plugins/UM3NetworkPrinting/src/Network/ClusterApiClient.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/src/Network/ClusterApiClient.py b/plugins/UM3NetworkPrinting/src/Network/ClusterApiClient.py index bbe7932d66..25617ce824 100644 --- a/plugins/UM3NetworkPrinting/src/Network/ClusterApiClient.py +++ b/plugins/UM3NetworkPrinting/src/Network/ClusterApiClient.py @@ -125,7 +125,7 @@ class ClusterApiClient: """Delete a print job from the queue.""" url = "{}/print_jobs/{}".format(self.CLUSTER_API_PREFIX, print_job_uuid) - self._manager.deleteResource(self.createEmptyRequest(url)) + self._manager.deleteResource(self.createEmptyRequest(url, method=HttpRequestMethod.DELETE)) def setPrintJobState(self, print_job_uuid: str, state: str) -> None: """Set the state of a print job.""" From f41c3d197ce57b46b91927e2b0842c04aedbe887 Mon Sep 17 00:00:00 2001 From: takanuva15 <6986426+takanuva15@users.noreply.github.com> Date: Mon, 1 Sep 2025 16:00:58 -0400 Subject: [PATCH 169/200] Add profile for Anycubic Kobra S1 --- .../definitions/anycubic_kobra_s1.def.json | 38 + .../anycubic_kobra_s1_extruder_0.def.json | 16 + .../anycubic_kobra_s1_buildplate_texture.svg | 35 + .../meshes/anycubic_kobra_s1_buildplate.obj | 917 ++++++++++++++++++ .../anycubic_kobra_s1_high_quality.inst.cfg | 33 + .../anycubic_kobra_s1_standard.inst.cfg | 33 + 6 files changed, 1072 insertions(+) create mode 100644 resources/definitions/anycubic_kobra_s1.def.json create mode 100644 resources/extruders/anycubic_kobra_s1_extruder_0.def.json create mode 100644 resources/images/anycubic_kobra_s1_buildplate_texture.svg create mode 100644 resources/meshes/anycubic_kobra_s1_buildplate.obj create mode 100644 resources/quality/anycubic_kobra_s1/anycubic_kobra_s1_high_quality.inst.cfg create mode 100644 resources/quality/anycubic_kobra_s1/anycubic_kobra_s1_standard.inst.cfg diff --git a/resources/definitions/anycubic_kobra_s1.def.json b/resources/definitions/anycubic_kobra_s1.def.json new file mode 100644 index 0000000000..8cedd8c591 --- /dev/null +++ b/resources/definitions/anycubic_kobra_s1.def.json @@ -0,0 +1,38 @@ +{ + "version": 2, + "name": "Anycubic Kobra S1", + "inherits": "fdmprinter", + "metadata": + { + "visible": true, + "author": "takanuva15", + "manufacturer": "Anycubic", + "file_formats": "text/x-gcode", + "has_machine_quality": true, + "has_materials": true, + "platform": "anycubic_kobra_s1_buildplate.obj", + "platform_texture": "anycubic_kobra_s1_buildplate_texture.svg", + "has_textured_buildplate": true, + "machine_extruder_trains": { "0": "anycubic_kobra_s1_extruder_0" }, + "has_variant_buildplates": false, + "has_variants": false, + "preferred_variant_name": "0.4mm", + "preferred_quality_type": "normal" + }, + "overrides": + { + "machine_depth": { "default_value": 250 }, + "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, + "machine_heated_bed": { "default_value": true }, + "machine_height": { "default_value": 250 }, + "machine_name": + { + "default_value": "Anycubic Kobra S1", + "description": "Anycubic Kobra S1" + }, + "machine_buildplate_type": { "default_value": "PEI Spring Steel" }, + "machine_start_gcode": { "default_value": "M106 S0\nM106 P2 S0\n;TYPE:Custom\nG9111 bedTemp={material_bed_temperature} extruderTemp={material_print_temperature}\nM117\nM106 P3 S153\nG90\nG21\nM83 ; use relative distances for extrusion\n; filament start gcode\nM900 K0.035 ; Override pressure advance value\nM106 S0\nM106 P2 S0\n\nM420 S1 ;load stored mesh to avoid auto-leveling" }, + "machine_end_gcode": { "default_value": "; move printhead away from object\nG1 Z22.000 ; for object exclusion\nG1 E-.76675 F2400\n; fan off\nM106 S0\nM106 P2 S0\n;TYPE:Custom\n; filament end gcode\nG92 E0\nG1 E-2 F3000\nG1 Z24 F900 ; Move print head further up \nG1 F12000; present print\nG1 X44; throw_position_x\nG1 Y270; throw_position_y\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM106 P1 S0 ; turn off fan\nM106 P2 S0\nM106 P3 S0\nM84; disable motors \n; disable stepper motors\nM106 P3 S204\n\n; CONFIG FOR SCREEN PRINT PREVIEW\n; total filament used [g] = {filament_weight}\n\n; CONFIG_BLOCK_START = begin\n; filament_type = {material_type}\n; nozzle_temperature = {material_print_temperature}\n; bed_temperature = {material_bed_temperature}\n; CONFIG_BLOCK_END = end" }, + "machine_width": { "default_value": 250 } + } +} diff --git a/resources/extruders/anycubic_kobra_s1_extruder_0.def.json b/resources/extruders/anycubic_kobra_s1_extruder_0.def.json new file mode 100644 index 0000000000..c850757b6e --- /dev/null +++ b/resources/extruders/anycubic_kobra_s1_extruder_0.def.json @@ -0,0 +1,16 @@ +{ + "version": 2, + "name": "Extruder 1", + "inherits": "fdmextruder", + "metadata": + { + "machine": "anycubic_kobra_s1", + "position": "0" + }, + "overrides": + { + "extruder_nr": { "default_value": 0 }, + "machine_nozzle_size": { "default_value": 0.4 }, + "material_diameter": { "default_value": 1.75 } + } +} \ No newline at end of file diff --git a/resources/images/anycubic_kobra_s1_buildplate_texture.svg b/resources/images/anycubic_kobra_s1_buildplate_texture.svg new file mode 100644 index 0000000000..d5a4c3d2aa --- /dev/null +++ b/resources/images/anycubic_kobra_s1_buildplate_texture.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/meshes/anycubic_kobra_s1_buildplate.obj b/resources/meshes/anycubic_kobra_s1_buildplate.obj new file mode 100644 index 0000000000..c206e9d45d --- /dev/null +++ b/resources/meshes/anycubic_kobra_s1_buildplate.obj @@ -0,0 +1,917 @@ +# Blender 4.5.2 LTS +# www.blender.org +mtllib anycubic_kobra_s1_buildplate.mtl +o anycubic_kobra_s1_buildplate +v -129.054123 -130.091019 -0.700027 +v -131.999741 -125.129326 -0.700027 +v 24.434870 -134.329071 -0.699997 +v 17.018261 -141.131271 -0.700027 +v 17.993422 -138.654526 -0.700017 +v 17.573563 -138.625687 -0.700039 +v 7.467300 -130.848297 -0.700027 +v 10.650862 -131.688293 -0.700024 +v 10.835647 -131.177765 -0.700052 +v 10.634915 -131.406662 -0.700027 +v 28.897467 -129.170013 -0.700027 +v 129.731293 -141.134842 -0.700027 +v 28.763437 -139.157059 -0.700023 +v 19.657635 1.777050 -0.700027 +v 130.689468 -140.855942 -0.700027 +v -126.003876 134.864807 -0.700027 +v 94.529488 119.736588 -0.700027 +v -127.664345 134.508484 -0.700027 +v -53.626228 131.701767 -0.700027 +v -58.244865 131.375092 -0.700011 +v -56.412327 131.738388 -0.700027 +v -58.738430 134.509171 -0.700027 +v -51.261589 134.509155 -0.700027 +v 59.504433 134.866333 -0.700027 +v 58.738407 134.509140 -0.700027 +v 56.373764 131.701767 -0.700027 +v 129.054123 133.823685 -0.700027 +v 6.849222 -131.822647 -0.700027 +v 5.973866 -131.306747 -0.700027 +v -125.937408 -131.133133 -0.700027 +v 16.145327 -140.860641 -0.700027 +v 15.498124 -140.467697 -0.700027 +v 19.726137 -139.083862 -0.699903 +v 19.846451 -139.155289 -0.699967 +v 19.694454 -138.804977 -0.700012 +v 19.672100 -138.985672 -0.699999 +v 17.791988 -138.688354 -0.699921 +v 24.677004 -131.159836 -0.700026 +v 5.082874 -131.134628 -0.700027 +v -131.642151 -126.798012 -0.700027 +v -130.345932 -128.984650 -0.700027 +v -131.129166 -127.883667 -0.700027 +v -127.521126 -130.824478 -0.700027 +v 24.189461 -134.309204 -0.699963 +v 28.900984 -139.058914 -0.699964 +v 28.937689 -138.922531 -0.699970 +v 131.429153 -140.236237 -0.700027 +v 131.829224 -139.561752 -0.700027 +v 131.999878 -138.837708 -0.700027 +v 24.932178 -131.709625 -0.699983 +v 24.986902 -131.483047 -0.700003 +v 24.872414 -131.261368 -0.700028 +v -131.972137 129.010681 -0.700027 +v -131.690811 130.387451 -0.700027 +v -129.850983 133.212265 -0.700027 +v -130.957367 131.920441 -0.700027 +v -59.504433 134.866333 -0.700027 +v -55.206390 131.169067 -0.700027 +v -54.353245 131.252808 -0.700027 +v -55.876461 131.360275 -0.700027 +v -61.206200 131.340363 -0.699992 +v -61.103699 131.284119 -0.700031 +v -58.337986 131.290283 -0.700022 +v -61.257591 131.533386 -0.700020 +v -60.041721 132.993088 -0.699486 +v -59.706219 133.092285 -0.699463 +v -59.445782 133.003464 -0.699889 +v -128.750000 133.995499 -0.700027 +v -58.214905 131.529205 -0.699996 +v -59.081882 134.772491 -0.700027 +v -50.918118 134.772491 -0.700027 +v 54.123543 131.360275 -0.700027 +v 54.793610 131.169067 -0.700027 +v 55.646759 131.252808 -0.700027 +v -50.495571 134.866333 -0.700027 +v 58.372162 131.283875 -0.700029 +v 61.090813 131.281311 -0.700040 +v 61.215893 131.350204 -0.699977 +v 131.996445 128.883270 -0.700027 +v 131.642151 130.530670 -0.700027 +v 53.603378 131.725235 -0.700027 +v 50.495571 134.866333 -0.700027 +v 59.437256 133.000992 -0.699896 +v 50.918118 134.772491 -0.700027 +v 51.261566 134.509171 -0.700027 +v 59.081882 134.772491 -0.700027 +v 59.768948 133.092285 -0.699463 +v 61.261791 131.523209 -0.699989 +v 60.038094 132.999237 -0.699867 +v 130.345932 132.717316 -0.700027 +v 131.129166 131.616333 -0.700027 +v 125.947678 134.864441 -0.700027 +v 127.521126 134.557144 -0.700027 +v 15.477744 -140.445251 -0.000027 +v 6.921199 -131.894821 -0.000027 +v 6.172548 -131.389053 -0.000027 +v 5.182955 -131.133942 -0.000027 +v -126.021477 -131.129410 -0.000027 +v -127.664345 -130.775818 -0.000027 +v -128.750000 -130.262833 -0.000027 +v -129.850983 -129.479599 -0.000027 +v -130.957352 -128.187790 -0.000027 +v -131.690811 -126.654793 -0.000027 +v -131.999237 -125.072853 -0.000027 +v -131.999634 128.862701 -0.000027 +v -131.642151 130.530670 -0.000027 +v -131.129166 131.616333 -0.000027 +v -130.345932 132.717316 -0.000027 +v -129.054123 133.823685 -0.000027 +v -127.521126 134.557144 -0.000027 +v -125.943855 134.864960 -0.000027 +v -59.504433 134.866333 -0.000027 +v -59.081867 134.772491 -0.000027 +v -58.738400 134.509140 -0.000027 +v -56.382183 131.713150 -0.000027 +v -55.646759 131.252808 -0.000027 +v -54.793610 131.169067 -0.000027 +v -54.123543 131.360275 -0.000027 +v -53.588142 131.744583 -0.000027 +v -51.261597 134.509155 -0.000027 +v -50.918118 134.772491 -0.000027 +v -50.495571 134.866333 -0.000027 +v 50.495571 134.866333 -0.000027 +v 50.918118 134.772491 -0.000027 +v 53.590721 131.735840 -0.000027 +v 51.261597 134.509155 -0.000027 +v 54.353245 131.252808 -0.000027 +v 55.206390 131.169067 -0.000027 +v 55.876461 131.360275 -0.000027 +v 56.411842 131.744568 -0.000027 +v 58.738411 134.509155 -0.000027 +v 59.081882 134.772491 -0.000027 +v 126.004631 134.864685 -0.000027 +v 59.504433 134.866333 -0.000027 +v 127.664345 134.508484 -0.000027 +v 128.750000 133.995499 -0.000027 +v 129.850983 133.212265 -0.000027 +v 130.957367 131.920441 -0.000027 +v 131.690811 130.387451 -0.000027 +v 131.998947 128.807678 -0.000027 +v 131.999741 -138.838501 -0.000027 +v 131.720840 -139.824554 -0.000027 +v 131.101089 -140.564301 -0.000027 +v 130.426453 -140.964417 -0.000027 +v 129.667175 -141.134506 -0.000027 +v 17.248808 -141.134827 -0.000027 +v 16.351576 -140.962082 -0.000027 +v 19.707363 -138.788864 -0.000041 +v 24.162891 -134.333496 -0.000053 +v 19.663969 -138.943939 -0.000087 +v 19.797115 -139.148376 -0.000032 +v 28.767149 -139.155899 -0.000027 +v 28.914742 -139.033264 -0.000058 +v 28.935387 -138.848969 -0.000056 +v 28.901199 -138.794693 -0.699900 +v 24.398291 -134.300629 -0.000029 +v 17.543394 -138.596664 -0.000027 +v 10.667012 -131.718216 -0.000029 +v 17.720654 -138.684357 -0.000258 +v 18.011297 -138.637558 -0.000064 +v 24.922869 -131.725021 -0.000033 +v 24.982822 -131.458267 -0.000442 +v 24.862761 -131.252243 -0.000026 +v 24.679277 -131.160583 -0.000028 +v 10.902476 -131.165527 -0.000039 +v 10.718793 -131.272064 -0.000636 +v 10.623919 -131.451797 -0.000026 +v 61.245735 131.562759 -0.000011 +v 61.253937 131.430710 0.000029 +v 61.149254 131.294632 -0.000034 +v 60.027687 133.012787 -0.000037 +v 59.431732 132.991699 -0.000385 +v 59.678104 133.087860 -0.000445 +v 58.228245 131.561798 -0.000019 +v 58.211628 131.530136 -0.699993 +v 58.355827 131.286514 -0.000025 +v 58.224735 131.394821 -0.000031 +v 58.258984 131.349060 -0.699994 +v -58.215385 131.472092 -0.000096 +v -58.242355 131.581573 -0.000025 +v -58.251167 131.362717 -0.000042 +v -58.354370 131.287048 -0.000028 +v -59.444996 133.012695 -0.000070 +v -60.042431 132.997391 -0.000213 +v -59.797066 133.087875 -0.000445 +v -61.231110 131.585205 -0.000019 +v -61.179737 131.318527 -0.000114 +v -61.088017 131.281326 -0.000014 +v -61.257828 131.433472 0.000060 +v -27.913065 -9.021112 -0.000027 +v -96.694077 101.654877 -0.000027 +v 7.098911 -130.230896 -0.000027 +v 25.810665 -131.897369 -0.000027 +v 31.053526 -138.925018 -0.000027 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 -0.0001 -1.0000 +vn -0.0003 0.0004 -1.0000 +vn 0.0006 -0.0007 -1.0000 +vn 0.0001 -0.0001 -1.0000 +vn 0.0005 -0.0001 -1.0000 +vn -0.0005 0.0002 -1.0000 +vn -0.0000 0.0006 -1.0000 +vn -0.0020 -0.0000 -1.0000 +vn -0.0001 0.0001 -1.0000 +vn -0.0000 0.0008 -1.0000 +vn 0.0001 -0.0000 -1.0000 +vn 0.0012 -0.0006 -1.0000 +vn 0.0002 -0.0003 -1.0000 +vn -0.0017 -0.0001 -1.0000 +vn -0.0000 0.0001 -1.0000 +vn -0.0001 -0.0001 -1.0000 +vn 0.0002 0.0008 -1.0000 +vn 0.0002 0.0006 -1.0000 +vn 0.0012 0.0005 -1.0000 +vn -0.0017 -0.0006 -1.0000 +vn 0.0001 -0.0003 -1.0000 +vn -0.7069 -0.7074 -0.0003 +vn -0.7069 -0.7073 0.0021 +vn -0.5073 -0.8607 0.0428 +vn -0.5596 -0.8283 -0.0279 +vn -0.1896 -0.9815 0.0281 +vn -0.2494 -0.9674 -0.0430 +vn -0.0000 -1.0000 0.0053 +vn -0.0000 -1.0000 0.0009 +vn -0.2103 -0.9773 0.0249 +vn -0.1913 -0.9814 -0.0177 +vn -0.4269 -0.9036 -0.0363 +vn -0.4314 -0.9018 -0.0256 +vn -0.5789 -0.8137 0.0518 +vn -0.6486 -0.7573 -0.0768 +vn -0.8138 -0.5789 -0.0518 +vn -0.9018 -0.4314 0.0256 +vn -0.9036 -0.4269 0.0363 +vn -0.9814 -0.1913 0.0161 +vn -0.9775 -0.2095 -0.0251 +vn -0.7573 -0.6486 0.0768 +vn -0.9992 0.0001 -0.0392 +vn -1.0000 -0.0000 0.0007 +vn -0.9775 0.2095 0.0251 +vn -0.9797 0.2002 0.0038 +vn -0.9036 0.4269 -0.0363 +vn -0.9018 0.4314 -0.0256 +vn -0.8137 0.5789 0.0518 +vn -0.7573 0.6486 -0.0769 +vn -0.5789 0.8137 -0.0518 +vn -0.4314 0.9018 0.0256 +vn -0.4269 0.9036 0.0363 +vn -0.1915 0.9814 0.0162 +vn -0.2098 0.9774 -0.0250 +vn -0.6486 0.7573 0.0768 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 1.0000 -0.0002 +vn 0.2168 0.9762 -0.0000 +vn 0.6085 0.7936 0.0001 +vn 0.6084 0.7936 -0.0000 +vn 0.7659 0.6430 -0.0000 +vn 0.7646 0.6444 -0.0097 +vn 0.5765 0.8171 0.0046 +vn 0.5301 0.8468 -0.0439 +vn 0.2739 0.9600 0.0575 +vn 0.0975 0.9936 -0.0575 +vn -0.0975 0.9936 0.0575 +vn -0.2740 0.9600 -0.0575 +vn -0.5250 0.8501 0.0418 +vn -0.5830 0.8123 -0.0180 +vn -0.7648 0.6442 0.0022 +vn -0.7651 0.6439 -0.0000 +vn -0.2168 0.9762 -0.0000 +vn -0.6085 0.7936 -0.0000 +vn -0.6084 0.7936 -0.0000 +vn 0.6085 0.7936 -0.0000 +vn 0.7653 0.6437 0.0041 +vn 0.7658 0.6431 -0.0000 +vn 0.5743 0.8186 -0.0020 +vn 0.5346 0.8439 -0.0458 +vn 0.2740 0.9600 0.0575 +vn -0.2739 0.9600 -0.0575 +vn -0.6084 0.7936 -0.0001 +vn -0.0000 1.0000 -0.0004 +vn 0.2098 0.9774 0.0250 +vn 0.1917 0.9813 -0.0159 +vn 0.4269 0.9036 -0.0363 +vn 0.4314 0.9018 -0.0256 +vn 0.5789 0.8137 0.0518 +vn 0.6486 0.7573 -0.0768 +vn 0.8137 0.5789 -0.0518 +vn 0.9018 0.4314 0.0256 +vn 0.9036 0.4269 0.0363 +vn 0.9814 0.1914 0.0172 +vn 0.9773 0.2102 -0.0249 +vn 0.7573 0.6486 0.0768 +vn 1.0000 -0.0000 0.0002 +vn 1.0000 -0.0000 -0.0036 +vn 0.9612 -0.2719 0.0468 +vn 0.9733 -0.2294 -0.0001 +vn 0.8586 -0.5093 -0.0583 +vn 0.7652 -0.6411 0.0582 +vn 0.6411 -0.7652 -0.0582 +vn 0.5092 -0.8587 0.0583 +vn 0.2186 -0.9756 0.0204 +vn 0.2792 -0.9592 -0.0437 +vn -0.0000 -1.0000 -0.0050 +vn -0.0000 -1.0000 0.0004 +vn -0.1887 -0.9804 0.0572 +vn -0.2957 -0.9539 -0.0511 +vn -0.5090 -0.8607 0.0128 +vn -0.5188 -0.8544 0.0290 +vn 0.7072 -0.7070 0.0023 +vn 0.7071 -0.7071 0.0032 +vn 0.5103 0.8596 0.0275 +vn 0.8759 0.4821 -0.0186 +vn 0.9923 -0.1228 0.0189 +vn 0.9629 -0.2695 -0.0116 +vn 0.8374 0.5454 -0.0347 +vn 0.0002 1.0000 -0.0099 +vn 0.0008 1.0000 -0.0016 +vn -0.5808 0.8140 0.0018 +vn -0.9937 0.1113 -0.0150 +vn -0.9656 0.2599 0.0095 +vn -0.9613 -0.2744 0.0257 +vn -0.6390 0.7690 -0.0157 +vn -0.7070 -0.7071 -0.0082 +vn -0.7078 -0.7061 -0.0201 +vn -0.0806 -0.9961 0.0363 +vn 0.1382 -0.9900 -0.0291 +vn 0.7072 0.7070 0.0012 +vn 0.7078 0.7063 0.0139 +vn 0.2757 0.9610 0.0226 +vn 0.4433 0.8962 -0.0181 +vn -0.1656 0.9859 -0.0225 +vn -0.1589 0.9871 -0.0199 +vn -0.7072 0.7071 0.0009 +vn -0.7074 0.7068 0.0062 +vn -0.9720 0.2347 -0.0140 +vn -0.9756 0.2193 -0.0082 +vn -0.8885 -0.4588 0.0111 +vn -0.8640 -0.5035 -0.0053 +vn -0.4611 -0.8874 0.0052 +vn -0.4469 -0.8946 0.0005 +vn 0.0004 -0.9998 0.0175 +vn 0.0013 -1.0000 -0.0011 +vn 0.5015 -0.8645 -0.0328 +vn 0.7513 -0.6589 0.0367 +vn 0.9982 0.0565 0.0193 +vn 0.8842 -0.4668 -0.0162 +vn 0.9870 0.1597 -0.0160 +vn -0.9979 -0.0621 -0.0194 +vn -0.9663 0.2563 0.0230 +vn -0.7923 0.6096 -0.0270 +vn -0.4824 0.8757 0.0236 +vn -0.7657 -0.6432 0.0011 +vn -0.7697 -0.6381 0.0184 +vn 0.3636 -0.9315 -0.0095 +vn -0.2098 -0.9772 -0.0334 +vn 0.2652 -0.9638 0.0284 +vn -0.3267 -0.9450 0.0134 +vn 0.7682 -0.6401 0.0107 +vn 0.7651 -0.6439 -0.0025 +vn 0.6368 0.7708 -0.0192 +vn 0.4990 0.8665 0.0084 +vn 0.9995 -0.0210 -0.0228 +vn 0.9670 0.2529 0.0308 +vn 0.0009 1.0000 -0.0037 +vn -0.0029 0.9998 -0.0188 +vn -0.9815 0.1908 0.0149 +vn -0.5913 0.8064 -0.0101 +vn -0.6733 0.7393 0.0070 +vn -0.9708 -0.2391 -0.0202 +vn -0.9504 0.3109 -0.0031 +vn -0.7654 -0.6432 0.0181 +vn -0.7676 -0.6409 0.0093 +vn 0.3460 -0.9382 0.0061 +vn -0.2087 -0.9774 -0.0333 +vn 0.2834 -0.9585 0.0308 +vn -0.3227 -0.9464 0.0128 +vn 0.7650 -0.6440 0.0047 +vn 0.7682 -0.6399 0.0183 +vn 0.3758 0.9267 -0.0047 +vn 0.8271 0.5619 -0.0138 +vn 0.4810 0.8767 0.0092 +vn 0.9846 -0.1733 -0.0244 +vn 0.9657 0.2571 0.0370 +vn -0.0021 1.0000 0.0046 +vn -0.0022 1.0000 0.0041 +vn -0.0000 -0.0000 1.0000 +vn -0.0001 0.0002 1.0000 +vn 0.0002 -0.0004 1.0000 +vn -0.0008 0.0006 1.0000 +vn 0.0010 -0.0005 1.0000 +vn 0.0010 0.0029 1.0000 +vn -0.0010 -0.0039 1.0000 +vn -0.0005 0.0006 1.0000 +vn 0.0008 -0.0010 1.0000 +vn -0.0007 0.0009 1.0000 +vn -0.0001 0.0003 1.0000 +vn -0.0001 0.0005 1.0000 +vn -0.0000 -0.0006 1.0000 +vn -0.0001 -0.0000 1.0000 +vn 0.0008 -0.0005 1.0000 +vn 0.0012 -0.0008 1.0000 +vn -0.0010 0.0002 1.0000 +vn -0.0000 0.0003 1.0000 +vn -0.0000 0.0004 1.0000 +vn -0.0001 0.0001 1.0000 +vn 0.0003 0.0015 1.0000 +vn -0.0023 -0.0033 1.0000 +vn -0.0000 -0.0001 1.0000 +vn -0.0000 0.0001 1.0000 +vn -0.0000 -0.0005 1.0000 +vn 0.0004 -0.0001 1.0000 +vn -0.0014 -0.0012 1.0000 +vn 0.0003 -0.0001 1.0000 +vt 0.000000 0.000000 +vt 0.000107 0.058203 +vt 0.016454 0.037622 +vt 0.394244 0.478671 +vt 0.016996 0.998790 +vt 0.001448 0.984261 +vt 0.000121 0.978240 +vt 0.133726 0.879669 +vt 0.286443 0.988604 +vt 0.276187 0.999660 +vt 0.279358 0.988093 +vt 0.540230 0.035080 +vt 0.526857 0.039508 +vt 0.540433 0.034155 +vt 0.574484 0.007985 +vt 0.561949 0.000747 +vt 0.565302 0.000027 +vt 0.597730 0.033470 +vt 0.999878 0.008326 +vt 0.720558 0.987447 +vt 0.713609 0.988715 +vt 0.991098 0.000046 +vt 0.998752 0.004815 +vt 0.012310 0.039392 +vt 0.008205 0.042301 +vt 0.519592 0.036165 +vt 0.022652 0.036358 +vt 0.004032 0.046963 +vt 0.001265 0.052495 +vt 0.558636 0.002548 +vt 0.526167 0.033461 +vt 0.566417 0.009197 +vt 0.574994 0.007280 +vt 0.574631 0.008489 +vt 0.567037 0.008919 +vt 0.568114 0.009061 +vt 0.523292 0.035196 +vt 0.540622 0.035760 +vt 0.541267 0.036099 +vt 0.593443 0.036109 +vt 0.022945 0.999896 +vt 0.003298 0.988224 +vt 0.006339 0.992151 +vt 0.011213 0.996143 +vt 0.268058 0.988106 +vt 0.267978 0.987584 +vt 0.268216 0.987186 +vt 0.274587 1.000000 +vt 0.278953 0.987065 +vt 0.268591 0.987023 +vt 0.279330 0.987333 +vt 0.279457 0.987685 +vt 0.289243 0.987038 +vt 0.292425 0.986655 +vt 0.294945 0.987343 +vt 0.296968 0.988715 +vt 0.274751 0.993207 +vt 0.272600 0.993165 +vt 0.277488 0.998706 +vt 0.273704 0.993558 +vt 0.308709 1.000000 +vt 0.305808 0.998706 +vt 0.307109 0.999660 +vt 0.608914 0.007209 +vt 0.617588 0.008008 +vt 0.609438 0.007577 +vt 0.609480 0.008255 +vt 0.592353 0.024675 +vt 0.591541 0.024638 +vt 0.594342 0.034112 +vt 0.594123 0.035786 +vt 0.594533 0.035019 +vt 0.996497 0.002108 +vt 0.993956 0.000667 +vt 0.694129 0.998706 +vt 0.709065 0.986656 +vt 0.705884 0.987038 +vt 0.711585 0.987343 +vt 0.702989 0.988695 +vt 0.720555 0.988028 +vt 0.720989 0.987063 +vt 0.999829 0.978042 +vt 0.731580 0.987122 +vt 0.731963 0.987555 +vt 0.731920 0.988003 +vt 0.691227 1.000000 +vt 0.692828 0.999660 +vt 0.722448 0.998706 +vt 0.724957 0.993040 +vt 0.727273 0.993212 +vt 0.723749 0.999660 +vt 0.725349 1.000000 +vt 0.726232 0.993558 +vt 0.977220 0.999882 +vt 0.983483 0.998614 +vt 0.998672 0.983742 +vt 0.995905 0.989274 +vt 0.991731 0.993936 +vt 0.987626 0.996845 +s 0 +usemtl Material.002 +f 2/1/1 1/1/1 40/1/1 +f 14/1/1 9/1/1 7/1/1 +f 10/1/1 8/1/1 7/1/1 +f 14/1/1 20/1/1 21/1/1 +f 25/1/1 175/1/1 26/1/1 +f 26/1/1 76/1/1 17/1/1 +f 26/1/1 17/1/1 14/1/1 +f 29/1/1 7/1/1 28/1/1 +f 6/1/1 28/1/1 7/1/1 +f 7/1/2 9/1/2 10/1/2 +f 4/1/1 31/1/1 32/1/1 +f 4/1/3 33/1/3 34/1/3 +f 36/1/4 33/1/4 4/1/4 +f 4/1/5 35/1/5 36/1/5 +f 4/1/6 6/1/6 37/1/6 +f 6/1/1 4/1/1 32/1/1 +f 32/1/1 28/1/1 6/1/1 +f 14/1/1 38/1/1 9/1/1 +f 6/1/1 7/1/1 8/1/1 +f 5/1/7 4/1/7 37/1/7 +f 5/1/1 35/1/1 4/1/1 +f 39/1/1 7/1/1 29/1/1 +f 40/1/1 41/1/1 42/1/1 +f 1/1/1 30/1/1 43/1/1 +f 40/1/1 1/1/1 41/1/1 +f 2/1/1 14/1/1 1/1/1 +f 30/1/1 14/1/1 39/1/1 +f 30/1/1 1/1/1 14/1/1 +f 14/1/1 7/1/1 39/1/1 +f 14/1/1 11/1/1 38/1/1 +f 34/1/1 13/1/1 4/1/1 +f 12/1/1 4/1/1 13/1/1 +f 11/1/1 155/1/1 3/1/1 +f 44/1/1 35/1/1 5/1/1 +f 13/1/8 45/1/8 12/1/8 +f 12/1/1 46/1/1 11/1/1 +f 12/1/1 45/1/1 46/1/1 +f 11/1/9 46/1/9 155/1/9 +f 12/1/1 14/1/1 15/1/1 +f 47/1/1 15/1/1 48/1/1 +f 49/1/1 48/1/1 15/1/1 +f 14/1/1 49/1/1 15/1/1 +f 14/1/1 12/1/1 11/1/1 +f 50/1/1 11/1/1 5/1/1 +f 11/1/10 3/1/10 44/1/10 +f 5/1/2 11/1/2 44/1/2 +f 11/1/5 50/1/5 51/1/5 +f 51/1/2 52/1/2 11/1/2 +f 52/1/1 38/1/1 11/1/1 +f 16/1/1 14/1/1 2/1/1 +f 54/1/1 16/1/1 53/1/1 +f 16/1/1 54/1/1 56/1/1 +f 2/1/1 53/1/1 16/1/1 +f 14/1/1 16/1/1 62/1/1 +f 61/1/11 62/1/11 16/1/11 +f 62/1/1 63/1/1 14/1/1 +f 14/1/1 58/1/1 59/1/1 +f 58/1/1 14/1/1 60/1/1 +f 14/1/12 63/1/12 20/1/12 +f 56/1/1 55/1/1 16/1/1 +f 55/1/1 18/1/1 16/1/1 +f 64/1/13 57/1/13 65/1/13 +f 65/1/14 57/1/14 66/1/14 +f 57/1/15 67/1/15 66/1/15 +f 64/1/1 16/1/1 57/1/1 +f 55/1/1 68/1/1 18/1/1 +f 69/1/16 21/1/16 20/1/16 +f 57/1/17 21/1/17 67/1/17 +f 21/1/16 69/1/16 67/1/16 +f 14/1/1 21/1/1 60/1/1 +f 59/1/1 19/1/1 14/1/1 +f 14/1/1 19/1/1 23/1/1 +f 21/1/1 57/1/1 22/1/1 +f 70/1/1 22/1/1 57/1/1 +f 71/1/1 75/1/1 14/1/1 +f 71/1/1 14/1/1 23/1/1 +f 16/1/2 64/1/2 61/1/2 +f 14/1/1 75/1/1 82/1/1 +f 14/1/1 74/1/1 26/1/1 +f 17/1/1 24/1/1 92/1/1 +f 14/1/1 73/1/1 74/1/1 +f 73/1/1 14/1/1 72/1/1 +f 76/1/18 26/1/18 178/1/18 +f 76/1/1 77/1/1 17/1/1 +f 77/1/19 78/1/19 17/1/19 +f 14/1/1 17/1/1 49/1/1 +f 17/1/1 79/1/1 49/1/1 +f 79/1/1 17/1/1 27/1/1 +f 79/1/1 27/1/1 80/1/1 +f 14/1/1 81/1/1 72/1/1 +f 175/1/1 178/1/1 26/1/1 +f 175/1/12 25/1/12 83/1/12 +f 84/1/1 85/1/1 14/1/1 +f 84/1/1 14/1/1 82/1/1 +f 25/1/1 86/1/1 24/1/1 +f 14/1/1 85/1/1 81/1/1 +f 83/1/20 25/1/20 87/1/20 +f 88/1/2 17/1/2 78/1/2 +f 89/1/21 87/1/21 24/1/21 +f 88/1/16 89/1/16 17/1/16 +f 89/1/2 24/1/2 17/1/2 +f 80/1/1 27/1/1 91/1/1 +f 90/1/1 91/1/1 27/1/1 +f 27/1/1 92/1/1 93/1/1 +f 17/1/1 92/1/1 27/1/1 +f 24/1/22 87/1/22 25/1/22 +f 95/1/23 28/1/23 94/1/23 +f 28/1/24 32/1/24 94/1/24 +f 29/1/25 28/1/25 96/1/25 +f 28/1/26 95/1/26 96/1/26 +f 39/1/27 29/1/27 97/1/27 +f 29/1/28 96/1/28 97/1/28 +f 30/1/29 97/1/29 98/1/29 +f 39/1/30 97/1/30 30/1/30 +f 98/1/31 99/1/31 43/1/31 +f 98/1/32 43/1/32 30/1/32 +f 99/1/33 100/1/33 1/1/33 +f 99/1/34 1/1/34 43/1/34 +f 100/1/35 101/1/35 1/1/35 +f 41/1/36 1/1/36 101/1/36 +f 102/1/37 42/1/37 41/1/37 +f 102/1/38 103/1/38 40/1/38 +f 102/1/39 40/1/39 42/1/39 +f 103/1/40 104/1/40 2/1/40 +f 103/1/41 2/1/41 40/1/41 +f 41/1/42 101/1/42 102/1/42 +f 2/1/43 105/1/43 53/1/43 +f 2/1/44 104/1/44 105/1/44 +f 105/1/45 106/1/45 54/1/45 +f 105/1/46 54/1/46 53/1/46 +f 106/1/47 107/1/47 56/1/47 +f 106/1/48 56/1/48 54/1/48 +f 107/1/49 108/1/49 56/1/49 +f 55/1/50 56/1/50 108/1/50 +f 109/1/51 68/1/51 55/1/51 +f 109/1/52 110/1/52 18/1/52 +f 109/1/53 18/1/53 68/1/53 +f 110/1/54 111/1/54 16/1/54 +f 110/1/55 16/1/55 18/1/55 +f 55/1/56 108/1/56 109/1/56 +f 112/1/57 57/1/57 16/1/57 +f 112/1/58 16/1/58 111/1/58 +f 113/1/59 70/1/59 57/1/59 +f 113/1/59 57/1/59 112/1/59 +f 22/1/60 113/1/60 114/1/60 +f 113/1/61 22/1/61 70/1/61 +f 114/1/62 21/1/62 22/1/62 +f 114/1/63 115/1/63 21/1/63 +f 60/1/64 21/1/64 115/1/64 +f 60/1/65 115/1/65 116/1/65 +f 58/1/66 60/1/66 116/1/66 +f 58/1/67 116/1/67 117/1/67 +f 59/1/68 58/1/68 117/1/68 +f 59/1/69 117/1/69 118/1/69 +f 19/1/70 59/1/70 118/1/70 +f 19/1/71 118/1/71 119/1/71 +f 23/1/72 19/1/72 119/1/72 +f 23/1/73 119/1/73 120/1/73 +f 71/1/74 121/1/74 122/1/74 +f 71/1/74 122/1/74 75/1/74 +f 120/1/75 71/1/75 23/1/75 +f 71/1/76 120/1/76 121/1/76 +f 82/1/57 122/1/57 123/1/57 +f 82/1/57 75/1/57 122/1/57 +f 82/1/59 123/1/59 124/1/59 +f 84/1/59 82/1/59 124/1/59 +f 124/1/61 126/1/61 84/1/61 +f 126/1/77 85/1/77 84/1/77 +f 81/1/78 85/1/78 125/1/78 +f 126/1/79 125/1/79 85/1/79 +f 72/1/80 81/1/80 125/1/80 +f 72/1/81 125/1/81 127/1/81 +f 73/1/67 127/1/67 128/1/67 +f 74/1/68 73/1/68 128/1/68 +f 73/1/82 72/1/82 127/1/82 +f 26/1/70 74/1/70 129/1/70 +f 26/1/71 129/1/71 130/1/71 +f 74/1/83 128/1/83 129/1/83 +f 25/1/72 26/1/72 130/1/72 +f 25/1/73 130/1/73 131/1/73 +f 86/1/74 132/1/74 24/1/74 +f 24/1/74 132/1/74 134/1/74 +f 25/1/84 131/1/84 132/1/84 +f 86/1/75 25/1/75 132/1/75 +f 92/1/85 24/1/85 133/1/85 +f 133/1/57 24/1/57 134/1/57 +f 133/1/86 135/1/86 93/1/86 +f 133/1/87 93/1/87 92/1/87 +f 135/1/88 136/1/88 27/1/88 +f 135/1/89 27/1/89 93/1/89 +f 136/1/90 137/1/90 27/1/90 +f 90/1/91 27/1/91 137/1/91 +f 138/1/92 91/1/92 90/1/92 +f 138/1/93 139/1/93 80/1/93 +f 138/1/94 80/1/94 91/1/94 +f 139/1/95 140/1/95 79/1/95 +f 139/1/96 79/1/96 80/1/96 +f 90/1/97 137/1/97 138/1/97 +f 49/1/98 140/1/98 141/1/98 +f 79/1/99 140/1/99 49/1/99 +f 141/1/100 142/1/100 48/1/100 +f 141/1/101 48/1/101 49/1/101 +f 142/1/102 47/1/102 48/1/102 +f 47/1/103 142/1/103 143/1/103 +f 143/1/104 15/1/104 47/1/104 +f 143/1/105 144/1/105 15/1/105 +f 144/1/106 145/1/106 12/1/106 +f 144/1/107 12/1/107 15/1/107 +f 12/1/108 146/1/108 4/1/108 +f 145/1/109 146/1/109 12/1/109 +f 146/1/110 147/1/110 4/1/110 +f 31/1/111 4/1/111 147/1/111 +f 147/1/112 94/1/112 32/1/112 +f 147/1/113 32/1/113 31/1/113 +f 35/1/114 44/1/114 149/1/114 +f 35/1/115 149/1/115 148/1/115 +f 34/1/116 33/1/116 151/1/116 +f 33/1/117 36/1/117 150/1/117 +f 36/1/118 35/1/118 150/1/118 +f 35/1/119 148/1/119 150/1/119 +f 150/1/120 151/1/120 33/1/120 +f 34/1/121 151/1/121 13/1/121 +f 152/1/122 13/1/122 151/1/122 +f 45/1/123 13/1/123 152/1/123 +f 154/1/124 46/1/124 153/1/124 +f 153/1/125 46/1/125 45/1/125 +f 155/1/126 46/1/126 154/1/126 +f 152/1/127 153/1/127 45/1/127 +f 155/1/128 156/1/128 3/1/128 +f 154/1/129 156/1/129 155/1/129 +f 3/1/130 156/1/130 44/1/130 +f 44/1/131 156/1/131 149/1/131 +f 157/1/132 6/1/132 158/1/132 +f 6/1/133 8/1/133 158/1/133 +f 159/1/134 37/1/134 6/1/134 +f 159/1/135 6/1/135 157/1/135 +f 5/1/136 37/1/136 159/1/136 +f 5/1/137 159/1/137 160/1/137 +f 5/1/138 160/1/138 161/1/138 +f 5/1/139 161/1/139 50/1/139 +f 50/1/140 162/1/140 51/1/140 +f 162/1/141 50/1/141 161/1/141 +f 52/1/142 51/1/142 162/1/142 +f 52/1/143 162/1/143 163/1/143 +f 38/1/144 52/1/144 163/1/144 +f 38/1/145 163/1/145 164/1/145 +f 9/1/146 164/1/146 165/1/146 +f 38/1/147 164/1/147 9/1/147 +f 166/1/148 9/1/148 165/1/148 +f 166/1/149 10/1/149 9/1/149 +f 8/1/150 10/1/150 167/1/150 +f 10/1/151 166/1/151 167/1/151 +f 8/1/152 167/1/152 158/1/152 +f 88/1/153 169/1/153 168/1/153 +f 78/1/154 169/1/154 88/1/154 +f 170/1/155 169/1/155 78/1/155 +f 77/1/156 170/1/156 78/1/156 +f 171/1/157 89/1/157 168/1/157 +f 168/1/158 89/1/158 88/1/158 +f 83/1/159 173/1/159 172/1/159 +f 171/1/160 173/1/160 87/1/160 +f 173/1/161 83/1/161 87/1/161 +f 171/1/162 87/1/162 89/1/162 +f 175/1/163 83/1/163 174/1/163 +f 83/1/164 172/1/164 174/1/164 +f 177/1/165 176/1/165 178/1/165 +f 178/1/166 176/1/166 76/1/166 +f 175/1/167 174/1/167 177/1/167 +f 178/1/168 175/1/168 177/1/168 +f 77/1/169 76/1/169 176/1/169 +f 176/1/170 170/1/170 77/1/170 +f 20/1/171 179/1/171 69/1/171 +f 63/1/172 182/1/172 181/1/172 +f 181/1/173 20/1/173 63/1/173 +f 69/1/174 179/1/174 180/1/174 +f 179/1/175 20/1/175 181/1/175 +f 183/1/176 69/1/176 180/1/176 +f 183/1/177 67/1/177 69/1/177 +f 184/1/178 65/1/178 185/1/178 +f 183/1/179 185/1/179 66/1/179 +f 185/1/180 65/1/180 66/1/180 +f 183/1/181 66/1/181 67/1/181 +f 186/1/182 65/1/182 184/1/182 +f 186/1/183 64/1/183 65/1/183 +f 187/1/184 188/1/184 62/1/184 +f 189/1/185 187/1/185 61/1/185 +f 61/1/186 187/1/186 62/1/186 +f 186/1/187 189/1/187 64/1/187 +f 64/1/188 189/1/188 61/1/188 +f 188/1/189 182/1/189 63/1/189 +f 63/1/190 62/1/190 188/1/190 +f 104/2/191 99/3/191 190/4/191 +f 110/5/191 106/6/191 105/7/191 +f 110/5/191 105/7/191 191/8/191 +f 115/9/191 113/10/191 180/11/191 +f 190/4/191 115/9/191 191/8/191 +f 167/12/191 192/13/191 158/14/191 +f 150/15/191 147/16/191 146/17/191 +f 190/4/191 193/18/191 141/19/191 +f 190/4/191 177/20/191 130/21/191 +f 141/19/191 145/22/191 142/23/191 +f 100/24/191 99/3/191 101/25/191 +f 97/26/191 190/4/191 98/27/191 +f 101/25/191 99/3/191 102/28/191 +f 103/29/191 102/28/191 99/3/191 +f 99/3/191 104/2/191 103/29/191 +f 98/27/191 190/4/191 99/3/191 +f 190/4/191 105/7/191 104/2/191 +f 94/30/191 192/13/191 95/31/191 +f 158/14/191 147/16/191 157/32/191 +f 158/14/191 192/13/191 94/30/191 +f 147/16/191 158/14/191 94/30/191 +f 150/15/192 146/17/192 151/33/192 +f 150/15/193 148/34/193 147/16/193 +f 159/35/194 147/16/194 160/36/194 +f 159/35/195 157/32/195 147/16/195 +f 192/13/191 96/37/191 95/31/191 +f 96/37/191 192/13/191 97/26/191 +f 190/4/191 97/26/191 192/13/191 +f 166/38/196 192/13/196 167/12/196 +f 166/38/197 165/39/197 192/13/197 +f 192/13/191 165/39/191 190/4/191 +f 165/39/191 164/40/191 190/4/191 +f 105/7/191 190/4/191 191/8/191 +f 110/5/191 191/8/191 111/41/191 +f 107/42/191 106/6/191 108/43/191 +f 109/44/191 108/43/191 110/5/191 +f 106/6/191 110/5/191 108/43/191 +f 186/45/198 191/8/198 189/46/198 +f 191/8/199 187/47/199 189/46/199 +f 191/8/191 112/48/191 111/41/191 +f 191/8/191 113/10/191 112/48/191 +f 182/49/191 188/50/191 191/8/191 +f 182/49/191 191/8/191 115/9/191 +f 191/8/200 188/50/200 187/47/200 +f 182/49/201 115/9/201 181/51/201 +f 181/51/202 115/9/202 179/52/202 +f 115/9/203 180/11/203 179/52/203 +f 190/4/191 116/53/191 115/9/191 +f 117/54/191 116/53/191 190/4/191 +f 118/55/191 190/4/191 119/56/191 +f 190/4/191 118/55/191 117/54/191 +f 183/57/204 180/11/204 113/10/204 +f 184/58/205 113/10/205 186/45/205 +f 114/59/191 113/10/191 115/9/191 +f 113/10/191 191/8/191 186/45/191 +f 185/60/206 113/10/206 184/58/206 +f 183/57/207 113/10/207 185/60/207 +f 119/56/191 122/61/191 120/62/191 +f 119/56/191 190/4/191 122/61/191 +f 121/63/191 120/62/191 122/61/191 +f 146/17/191 152/64/191 151/33/191 +f 194/65/208 153/66/208 152/64/208 +f 146/17/191 194/65/191 152/64/191 +f 194/65/209 141/19/209 154/67/209 +f 141/19/191 156/68/191 154/67/191 +f 153/66/191 194/65/191 154/67/191 +f 149/69/191 160/36/191 148/34/191 +f 147/16/191 148/34/191 160/36/191 +f 193/18/191 160/36/191 149/69/191 +f 161/70/191 160/36/191 193/18/191 +f 149/69/210 156/68/210 193/18/210 +f 193/18/191 156/68/191 141/19/191 +f 190/4/191 164/40/191 163/71/191 +f 193/18/191 190/4/191 163/71/191 +f 161/70/211 193/18/211 162/72/211 +f 162/72/212 193/18/212 163/71/212 +f 194/65/191 146/17/191 141/19/191 +f 145/22/191 141/19/191 146/17/191 +f 143/73/191 145/22/191 144/74/191 +f 143/73/191 142/23/191 145/22/191 +f 190/4/191 126/75/191 122/61/191 +f 128/76/191 127/77/191 190/4/191 +f 190/4/191 129/78/191 128/76/191 +f 125/79/191 190/4/191 127/77/191 +f 129/78/191 190/4/191 130/21/191 +f 130/21/213 177/20/213 174/80/213 +f 177/20/191 190/4/191 176/81/191 +f 140/82/191 176/81/191 190/4/191 +f 140/82/214 170/83/214 176/81/214 +f 140/82/215 169/84/215 170/83/215 +f 168/85/208 169/84/208 140/82/208 +f 190/4/191 125/79/191 126/75/191 +f 122/61/191 126/75/191 123/86/191 +f 123/86/191 126/75/191 124/87/191 +f 131/88/191 130/21/191 174/80/191 +f 131/88/216 174/80/216 172/89/216 +f 171/90/191 168/85/191 140/82/191 +f 132/91/191 131/88/191 134/92/191 +f 131/88/191 171/90/191 134/92/191 +f 131/88/217 173/93/217 171/90/217 +f 134/92/191 171/90/191 140/82/191 +f 172/89/218 173/93/218 131/88/218 +f 190/4/191 141/19/191 140/82/191 +f 140/82/191 133/94/191 134/92/191 +f 140/82/191 135/95/191 133/94/191 +f 139/96/191 135/95/191 140/82/191 +f 138/97/191 135/95/191 139/96/191 +f 138/97/191 137/98/191 135/95/191 +f 136/99/191 135/95/191 137/98/191 diff --git a/resources/quality/anycubic_kobra_s1/anycubic_kobra_s1_high_quality.inst.cfg b/resources/quality/anycubic_kobra_s1/anycubic_kobra_s1_high_quality.inst.cfg new file mode 100644 index 0000000000..1462ee5e55 --- /dev/null +++ b/resources/quality/anycubic_kobra_s1/anycubic_kobra_s1_high_quality.inst.cfg @@ -0,0 +1,33 @@ +[general] +definition = anycubic_kobra_s1 +name = High Quality +version = 4 + +[metadata] +global_quality = True +quality_type = high +setting_version = 25 +type = quality +weight = 1 + +[values] +adhesion_type = brim +brim_width = 5 +line_width = 0.42 +initial_layer_line_width_factor = 125 +layer_height = 0.2 +layer_height_0 = 0.2 +material_bed_temperature = 55 +top_thickness = =layer_height*5 +bottom_thickness = =layer_height*3 +infill_sparse_density = 15 +material_print_temperature = 215.0 +skirt_height = 1 +speed_layer_0 = 40 +speed_travel_layer_0 = 60 +speed_print = 180.0 +speed_travel = 300.0 +speed_wall = 180.0 +speed_wall_0 = 60.0 +speed_wall_x = 180.0 +wall_thickness = =line_width*4 diff --git a/resources/quality/anycubic_kobra_s1/anycubic_kobra_s1_standard.inst.cfg b/resources/quality/anycubic_kobra_s1/anycubic_kobra_s1_standard.inst.cfg new file mode 100644 index 0000000000..3b3280331e --- /dev/null +++ b/resources/quality/anycubic_kobra_s1/anycubic_kobra_s1_standard.inst.cfg @@ -0,0 +1,33 @@ +[general] +definition = anycubic_kobra_s1 +name = Standard +version = 4 + +[metadata] +global_quality = True +quality_type = standard +setting_version = 25 +type = quality +weight = 0 + +[values] +adhesion_type = brim +brim_width = 5 +line_width = 0.42 +initial_layer_line_width_factor = 125 +layer_height = 0.2 +layer_height_0 = 0.2 +material_bed_temperature = 55 +top_thickness = =layer_height*5 +bottom_thickness = =layer_height*3 +infill_sparse_density = 15 +material_print_temperature = 215.0 +skirt_height = 1 +speed_layer_0 = 50 +speed_travel_layer_0 = 80 +speed_print = 300.0 +speed_travel = 300.0 +speed_wall = 300.0 +speed_wall_0 = 200.0 +speed_wall_x = 300.0 +wall_thickness = =line_width*2 From b5908c173c57317fe866341dc002d89d89042a2f Mon Sep 17 00:00:00 2001 From: Paul Kuiper <46715907+pkuiper-ultimaker@users.noreply.github.com> Date: Thu, 11 Sep 2025 08:29:02 +0200 Subject: [PATCH 170/200] Lowered prime tower speed in high speed intents. Removed high speed intents for Method. Fixed bug in support infill rate formula (forgot string quotes) PP-577 --- ...d_1a_um-nylon-175_0.2mm_highspeed.inst.cfg | 25 --------------- ...um-nylon-175_0.2mm_highspeedsolid.inst.cfg | 31 ------------------- ...d_1c_um-nylon-175_0.2mm_highspeed.inst.cfg | 25 --------------- ...um-nylon-175_0.2mm_highspeedsolid.inst.cfg | 31 ------------------- ...labs_um-nylon-175_0.2mm_highspeed.inst.cfg | 25 --------------- ...um-nylon-175_0.2mm_highspeedsolid.inst.cfg | 31 ------------------- ...x_1a_um-nylon-175_0.2mm_highspeed.inst.cfg | 25 --------------- ...um-nylon-175_0.2mm_highspeedsolid.inst.cfg | 31 ------------------- ...dx_1c_um-absr-175_0.2mm_highspeed.inst.cfg | 1 + ..._um-absr-175_0.2mm_highspeedsolid.inst.cfg | 1 + ...x_1c_um-nylon-175_0.2mm_highspeed.inst.cfg | 25 --------------- ...um-nylon-175_0.2mm_highspeedsolid.inst.cfg | 31 ------------------- ...x_1xa_um-absr-175_0.2mm_highspeed.inst.cfg | 1 + ..._um-absr-175_0.2mm_highspeedsolid.inst.cfg | 1 + ..._labs_um-absr-175_0.2mm_highspeed.inst.cfg | 1 + ..._um-absr-175_0.2mm_highspeedsolid.inst.cfg | 1 + ...labs_um-nylon-175_0.2mm_highspeed.inst.cfg | 25 --------------- ...um-nylon-175_0.2mm_highspeedsolid.inst.cfg | 31 ------------------- ...xl_1c_um-absr-175_0.2mm_highspeed.inst.cfg | 1 + ..._um-absr-175_0.2mm_highspeedsolid.inst.cfg | 1 + ...l_1xa_um-absr-175_0.2mm_highspeed.inst.cfg | 1 + ..._um-absr-175_0.2mm_highspeedsolid.inst.cfg | 1 + ..._labs_um-absr-175_0.2mm_highspeed.inst.cfg | 1 + ..._um-absr-175_0.2mm_highspeedsolid.inst.cfg | 1 + .../um_method_1a_um-nylon-175_0.2mm.inst.cfg | 2 +- .../um_method_1c_um-nylon-175_0.2mm.inst.cfg | 2 +- ...um_method_labs_um-nylon-175_0.2mm.inst.cfg | 2 +- .../um_methodx_1a_um-nylon-175_0.2mm.inst.cfg | 2 +- .../um_methodx_1c_um-nylon-175_0.2mm.inst.cfg | 2 +- ...m_methodx_labs_um-nylon-175_0.2mm.inst.cfg | 2 +- 30 files changed, 18 insertions(+), 342 deletions(-) delete mode 100644 resources/intent/ultimaker_method/um_method_1a_um-nylon-175_0.2mm_highspeed.inst.cfg delete mode 100644 resources/intent/ultimaker_method/um_method_1a_um-nylon-175_0.2mm_highspeedsolid.inst.cfg delete mode 100644 resources/intent/ultimaker_method/um_method_1c_um-nylon-175_0.2mm_highspeed.inst.cfg delete mode 100644 resources/intent/ultimaker_method/um_method_1c_um-nylon-175_0.2mm_highspeedsolid.inst.cfg delete mode 100644 resources/intent/ultimaker_method/um_method_labs_um-nylon-175_0.2mm_highspeed.inst.cfg delete mode 100644 resources/intent/ultimaker_method/um_method_labs_um-nylon-175_0.2mm_highspeedsolid.inst.cfg delete mode 100644 resources/intent/ultimaker_methodx/um_methodx_1a_um-nylon-175_0.2mm_highspeed.inst.cfg delete mode 100644 resources/intent/ultimaker_methodx/um_methodx_1a_um-nylon-175_0.2mm_highspeedsolid.inst.cfg delete mode 100644 resources/intent/ultimaker_methodx/um_methodx_1c_um-nylon-175_0.2mm_highspeed.inst.cfg delete mode 100644 resources/intent/ultimaker_methodx/um_methodx_1c_um-nylon-175_0.2mm_highspeedsolid.inst.cfg delete mode 100644 resources/intent/ultimaker_methodx/um_methodx_labs_um-nylon-175_0.2mm_highspeed.inst.cfg delete mode 100644 resources/intent/ultimaker_methodx/um_methodx_labs_um-nylon-175_0.2mm_highspeedsolid.inst.cfg diff --git a/resources/intent/ultimaker_method/um_method_1a_um-nylon-175_0.2mm_highspeed.inst.cfg b/resources/intent/ultimaker_method/um_method_1a_um-nylon-175_0.2mm_highspeed.inst.cfg deleted file mode 100644 index a864337115..0000000000 --- a/resources/intent/ultimaker_method/um_method_1a_um-nylon-175_0.2mm_highspeed.inst.cfg +++ /dev/null @@ -1,25 +0,0 @@ -[general] -definition = ultimaker_method -name = High Speed -version = 4 - -[metadata] -intent_category = highspeed -is_experimental = True -material = ultimaker_nylon_175 -quality_type = draft -setting_version = 25 -type = intent -variant = 1A - -[values] -acceleration_print = 3500 -bridge_wall_speed = 300 -cool_min_layer_time = 3 -infill_pattern = zigzag -jerk_print = 35 -speed_layer_0 = 55 -speed_print = 300 -speed_travel = 500 -support_pattern = zigzag - diff --git a/resources/intent/ultimaker_method/um_method_1a_um-nylon-175_0.2mm_highspeedsolid.inst.cfg b/resources/intent/ultimaker_method/um_method_1a_um-nylon-175_0.2mm_highspeedsolid.inst.cfg deleted file mode 100644 index 9dd0d6c8fa..0000000000 --- a/resources/intent/ultimaker_method/um_method_1a_um-nylon-175_0.2mm_highspeedsolid.inst.cfg +++ /dev/null @@ -1,31 +0,0 @@ -[general] -definition = ultimaker_method -name = High Speed Solid -version = 4 - -[metadata] -intent_category = highspeedsolid -is_experimental = True -material = ultimaker_nylon_175 -quality_type = draft -setting_version = 25 -type = intent -variant = 1A - -[values] -acceleration_print = 3500 -bottom_thickness = =top_bottom_thickness -bridge_wall_speed = 300 -cool_min_layer_time = 3 -infill_angles = [45,135] -infill_material_flow = 97 -infill_pattern = zigzag -infill_sparse_density = 99 -jerk_print = 35 -speed_layer_0 = 55 -speed_print = 300 -speed_travel = 500 -support_pattern = zigzag -top_bottom_thickness = =layer_height * 2 -top_thickness = =top_bottom_thickness - diff --git a/resources/intent/ultimaker_method/um_method_1c_um-nylon-175_0.2mm_highspeed.inst.cfg b/resources/intent/ultimaker_method/um_method_1c_um-nylon-175_0.2mm_highspeed.inst.cfg deleted file mode 100644 index 8e9ae1594a..0000000000 --- a/resources/intent/ultimaker_method/um_method_1c_um-nylon-175_0.2mm_highspeed.inst.cfg +++ /dev/null @@ -1,25 +0,0 @@ -[general] -definition = ultimaker_method -name = High Speed -version = 4 - -[metadata] -intent_category = highspeed -is_experimental = True -material = ultimaker_nylon_175 -quality_type = draft -setting_version = 25 -type = intent -variant = 1C - -[values] -acceleration_print = 3500 -bridge_wall_speed = 300 -cool_min_layer_time = 3 -infill_pattern = zigzag -jerk_print = 35 -speed_layer_0 = 55 -speed_print = 300 -speed_travel = 500 -support_pattern = zigzag - diff --git a/resources/intent/ultimaker_method/um_method_1c_um-nylon-175_0.2mm_highspeedsolid.inst.cfg b/resources/intent/ultimaker_method/um_method_1c_um-nylon-175_0.2mm_highspeedsolid.inst.cfg deleted file mode 100644 index 65918cdec0..0000000000 --- a/resources/intent/ultimaker_method/um_method_1c_um-nylon-175_0.2mm_highspeedsolid.inst.cfg +++ /dev/null @@ -1,31 +0,0 @@ -[general] -definition = ultimaker_method -name = High Speed Solid -version = 4 - -[metadata] -intent_category = highspeedsolid -is_experimental = True -material = ultimaker_nylon_175 -quality_type = draft -setting_version = 25 -type = intent -variant = 1C - -[values] -acceleration_print = 3500 -bottom_thickness = =top_bottom_thickness -bridge_wall_speed = 300 -cool_min_layer_time = 3 -infill_angles = [45,135] -infill_material_flow = 97 -infill_pattern = zigzag -infill_sparse_density = 99 -jerk_print = 35 -speed_layer_0 = 55 -speed_print = 300 -speed_travel = 500 -support_pattern = zigzag -top_bottom_thickness = =layer_height * 2 -top_thickness = =top_bottom_thickness - diff --git a/resources/intent/ultimaker_method/um_method_labs_um-nylon-175_0.2mm_highspeed.inst.cfg b/resources/intent/ultimaker_method/um_method_labs_um-nylon-175_0.2mm_highspeed.inst.cfg deleted file mode 100644 index c8e31af0be..0000000000 --- a/resources/intent/ultimaker_method/um_method_labs_um-nylon-175_0.2mm_highspeed.inst.cfg +++ /dev/null @@ -1,25 +0,0 @@ -[general] -definition = ultimaker_method -name = High Speed -version = 4 - -[metadata] -intent_category = highspeed -is_experimental = True -material = ultimaker_nylon_175 -quality_type = draft -setting_version = 25 -type = intent -variant = LABS - -[values] -acceleration_print = 3500 -bridge_wall_speed = 300 -cool_min_layer_time = 3 -infill_pattern = zigzag -jerk_print = 35 -speed_layer_0 = 55 -speed_print = 300 -speed_travel = 500 -support_pattern = zigzag - diff --git a/resources/intent/ultimaker_method/um_method_labs_um-nylon-175_0.2mm_highspeedsolid.inst.cfg b/resources/intent/ultimaker_method/um_method_labs_um-nylon-175_0.2mm_highspeedsolid.inst.cfg deleted file mode 100644 index 94aa6c8267..0000000000 --- a/resources/intent/ultimaker_method/um_method_labs_um-nylon-175_0.2mm_highspeedsolid.inst.cfg +++ /dev/null @@ -1,31 +0,0 @@ -[general] -definition = ultimaker_method -name = High Speed Solid -version = 4 - -[metadata] -intent_category = highspeedsolid -is_experimental = True -material = ultimaker_nylon_175 -quality_type = draft -setting_version = 25 -type = intent -variant = LABS - -[values] -acceleration_print = 3500 -bottom_thickness = =top_bottom_thickness -bridge_wall_speed = 300 -cool_min_layer_time = 3 -infill_angles = [45,135] -infill_material_flow = 97 -infill_pattern = zigzag -infill_sparse_density = 99 -jerk_print = 35 -speed_layer_0 = 55 -speed_print = 300 -speed_travel = 500 -support_pattern = zigzag -top_bottom_thickness = =layer_height * 2 -top_thickness = =top_bottom_thickness - diff --git a/resources/intent/ultimaker_methodx/um_methodx_1a_um-nylon-175_0.2mm_highspeed.inst.cfg b/resources/intent/ultimaker_methodx/um_methodx_1a_um-nylon-175_0.2mm_highspeed.inst.cfg deleted file mode 100644 index 967aa0dbf8..0000000000 --- a/resources/intent/ultimaker_methodx/um_methodx_1a_um-nylon-175_0.2mm_highspeed.inst.cfg +++ /dev/null @@ -1,25 +0,0 @@ -[general] -definition = ultimaker_methodx -name = High Speed -version = 4 - -[metadata] -intent_category = highspeed -is_experimental = True -material = ultimaker_nylon_175 -quality_type = draft -setting_version = 25 -type = intent -variant = 1A - -[values] -acceleration_print = 3500 -bridge_wall_speed = 300 -cool_min_layer_time = 3 -infill_pattern = zigzag -jerk_print = 35 -speed_layer_0 = 55 -speed_print = 300 -speed_travel = 500 -support_pattern = zigzag - diff --git a/resources/intent/ultimaker_methodx/um_methodx_1a_um-nylon-175_0.2mm_highspeedsolid.inst.cfg b/resources/intent/ultimaker_methodx/um_methodx_1a_um-nylon-175_0.2mm_highspeedsolid.inst.cfg deleted file mode 100644 index a08f2e1948..0000000000 --- a/resources/intent/ultimaker_methodx/um_methodx_1a_um-nylon-175_0.2mm_highspeedsolid.inst.cfg +++ /dev/null @@ -1,31 +0,0 @@ -[general] -definition = ultimaker_methodx -name = High Speed Solid -version = 4 - -[metadata] -intent_category = highspeedsolid -is_experimental = True -material = ultimaker_nylon_175 -quality_type = draft -setting_version = 25 -type = intent -variant = 1A - -[values] -acceleration_print = 3500 -bottom_thickness = =top_bottom_thickness -bridge_wall_speed = 300 -cool_min_layer_time = 3 -infill_angles = [45,135] -infill_material_flow = 97 -infill_pattern = zigzag -infill_sparse_density = 99 -jerk_print = 35 -speed_layer_0 = 55 -speed_print = 300 -speed_travel = 500 -support_pattern = zigzag -top_bottom_thickness = =layer_height * 2 -top_thickness = =top_bottom_thickness - diff --git a/resources/intent/ultimaker_methodx/um_methodx_1c_um-absr-175_0.2mm_highspeed.inst.cfg b/resources/intent/ultimaker_methodx/um_methodx_1c_um-absr-175_0.2mm_highspeed.inst.cfg index f5a00d9db1..52345bc4c6 100644 --- a/resources/intent/ultimaker_methodx/um_methodx_1c_um-absr-175_0.2mm_highspeed.inst.cfg +++ b/resources/intent/ultimaker_methodx/um_methodx_1c_um-absr-175_0.2mm_highspeed.inst.cfg @@ -22,6 +22,7 @@ cool_min_temperature = 245.0 infill_pattern = zigzag jerk_print = 35 speed_layer_0 = 55 +speed_prime_tower = =speed_print/5 speed_print = 300 speed_support = 100 speed_support_interface = 75 diff --git a/resources/intent/ultimaker_methodx/um_methodx_1c_um-absr-175_0.2mm_highspeedsolid.inst.cfg b/resources/intent/ultimaker_methodx/um_methodx_1c_um-absr-175_0.2mm_highspeedsolid.inst.cfg index 2e098b3a0b..72a2f8e143 100644 --- a/resources/intent/ultimaker_methodx/um_methodx_1c_um-absr-175_0.2mm_highspeedsolid.inst.cfg +++ b/resources/intent/ultimaker_methodx/um_methodx_1c_um-absr-175_0.2mm_highspeedsolid.inst.cfg @@ -26,6 +26,7 @@ infill_pattern = zigzag infill_sparse_density = 99 jerk_print = 35 speed_layer_0 = 55 +speed_prime_tower = =speed_print/5 speed_print = 300 speed_support = 100 speed_support_interface = 75 diff --git a/resources/intent/ultimaker_methodx/um_methodx_1c_um-nylon-175_0.2mm_highspeed.inst.cfg b/resources/intent/ultimaker_methodx/um_methodx_1c_um-nylon-175_0.2mm_highspeed.inst.cfg deleted file mode 100644 index d31a6542b6..0000000000 --- a/resources/intent/ultimaker_methodx/um_methodx_1c_um-nylon-175_0.2mm_highspeed.inst.cfg +++ /dev/null @@ -1,25 +0,0 @@ -[general] -definition = ultimaker_methodx -name = High Speed -version = 4 - -[metadata] -intent_category = highspeed -is_experimental = True -material = ultimaker_nylon_175 -quality_type = draft -setting_version = 25 -type = intent -variant = 1C - -[values] -acceleration_print = 3500 -bridge_wall_speed = 300 -cool_min_layer_time = 3 -infill_pattern = zigzag -jerk_print = 35 -speed_layer_0 = 55 -speed_print = 300 -speed_travel = 500 -support_pattern = zigzag - diff --git a/resources/intent/ultimaker_methodx/um_methodx_1c_um-nylon-175_0.2mm_highspeedsolid.inst.cfg b/resources/intent/ultimaker_methodx/um_methodx_1c_um-nylon-175_0.2mm_highspeedsolid.inst.cfg deleted file mode 100644 index 29bd7371a0..0000000000 --- a/resources/intent/ultimaker_methodx/um_methodx_1c_um-nylon-175_0.2mm_highspeedsolid.inst.cfg +++ /dev/null @@ -1,31 +0,0 @@ -[general] -definition = ultimaker_methodx -name = High Speed Solid -version = 4 - -[metadata] -intent_category = highspeedsolid -is_experimental = True -material = ultimaker_nylon_175 -quality_type = draft -setting_version = 25 -type = intent -variant = 1C - -[values] -acceleration_print = 3500 -bottom_thickness = =top_bottom_thickness -bridge_wall_speed = 300 -cool_min_layer_time = 3 -infill_angles = [45,135] -infill_material_flow = 97 -infill_pattern = zigzag -infill_sparse_density = 99 -jerk_print = 35 -speed_layer_0 = 55 -speed_print = 300 -speed_travel = 500 -support_pattern = zigzag -top_bottom_thickness = =layer_height * 2 -top_thickness = =top_bottom_thickness - diff --git a/resources/intent/ultimaker_methodx/um_methodx_1xa_um-absr-175_0.2mm_highspeed.inst.cfg b/resources/intent/ultimaker_methodx/um_methodx_1xa_um-absr-175_0.2mm_highspeed.inst.cfg index 0db1a5b803..4f65ccabe5 100644 --- a/resources/intent/ultimaker_methodx/um_methodx_1xa_um-absr-175_0.2mm_highspeed.inst.cfg +++ b/resources/intent/ultimaker_methodx/um_methodx_1xa_um-absr-175_0.2mm_highspeed.inst.cfg @@ -22,6 +22,7 @@ cool_min_temperature = 245.0 infill_pattern = zigzag jerk_print = 35 speed_layer_0 = 55 +speed_prime_tower = =speed_print/5 speed_print = 300 speed_support = 100 speed_support_interface = 75 diff --git a/resources/intent/ultimaker_methodx/um_methodx_1xa_um-absr-175_0.2mm_highspeedsolid.inst.cfg b/resources/intent/ultimaker_methodx/um_methodx_1xa_um-absr-175_0.2mm_highspeedsolid.inst.cfg index b6ff6e1ebd..9bdbbe3019 100644 --- a/resources/intent/ultimaker_methodx/um_methodx_1xa_um-absr-175_0.2mm_highspeedsolid.inst.cfg +++ b/resources/intent/ultimaker_methodx/um_methodx_1xa_um-absr-175_0.2mm_highspeedsolid.inst.cfg @@ -26,6 +26,7 @@ infill_pattern = zigzag infill_sparse_density = 99 jerk_print = 35 speed_layer_0 = 55 +speed_prime_tower = =speed_print/5 speed_print = 300 speed_support = 100 speed_support_interface = 75 diff --git a/resources/intent/ultimaker_methodx/um_methodx_labs_um-absr-175_0.2mm_highspeed.inst.cfg b/resources/intent/ultimaker_methodx/um_methodx_labs_um-absr-175_0.2mm_highspeed.inst.cfg index 4b42af13fa..c9bd04bcdb 100644 --- a/resources/intent/ultimaker_methodx/um_methodx_labs_um-absr-175_0.2mm_highspeed.inst.cfg +++ b/resources/intent/ultimaker_methodx/um_methodx_labs_um-absr-175_0.2mm_highspeed.inst.cfg @@ -22,6 +22,7 @@ cool_min_temperature = 245.0 infill_pattern = zigzag jerk_print = 35 speed_layer_0 = 55 +speed_prime_tower = =speed_print/5 speed_print = 300 speed_support = 100 speed_support_interface = 75 diff --git a/resources/intent/ultimaker_methodx/um_methodx_labs_um-absr-175_0.2mm_highspeedsolid.inst.cfg b/resources/intent/ultimaker_methodx/um_methodx_labs_um-absr-175_0.2mm_highspeedsolid.inst.cfg index 69a50a831b..a69db2d057 100644 --- a/resources/intent/ultimaker_methodx/um_methodx_labs_um-absr-175_0.2mm_highspeedsolid.inst.cfg +++ b/resources/intent/ultimaker_methodx/um_methodx_labs_um-absr-175_0.2mm_highspeedsolid.inst.cfg @@ -26,6 +26,7 @@ infill_pattern = zigzag infill_sparse_density = 99 jerk_print = 35 speed_layer_0 = 55 +speed_prime_tower = =speed_print/5 speed_print = 300 speed_support = 100 speed_support_interface = 75 diff --git a/resources/intent/ultimaker_methodx/um_methodx_labs_um-nylon-175_0.2mm_highspeed.inst.cfg b/resources/intent/ultimaker_methodx/um_methodx_labs_um-nylon-175_0.2mm_highspeed.inst.cfg deleted file mode 100644 index e54a52ba05..0000000000 --- a/resources/intent/ultimaker_methodx/um_methodx_labs_um-nylon-175_0.2mm_highspeed.inst.cfg +++ /dev/null @@ -1,25 +0,0 @@ -[general] -definition = ultimaker_methodx -name = High Speed -version = 4 - -[metadata] -intent_category = highspeed -is_experimental = True -material = ultimaker_nylon_175 -quality_type = draft -setting_version = 25 -type = intent -variant = LABS - -[values] -acceleration_print = 3500 -bridge_wall_speed = 300 -cool_min_layer_time = 3 -infill_pattern = zigzag -jerk_print = 35 -speed_layer_0 = 55 -speed_print = 300 -speed_travel = 500 -support_pattern = zigzag - diff --git a/resources/intent/ultimaker_methodx/um_methodx_labs_um-nylon-175_0.2mm_highspeedsolid.inst.cfg b/resources/intent/ultimaker_methodx/um_methodx_labs_um-nylon-175_0.2mm_highspeedsolid.inst.cfg deleted file mode 100644 index d1402a3140..0000000000 --- a/resources/intent/ultimaker_methodx/um_methodx_labs_um-nylon-175_0.2mm_highspeedsolid.inst.cfg +++ /dev/null @@ -1,31 +0,0 @@ -[general] -definition = ultimaker_methodx -name = High Speed Solid -version = 4 - -[metadata] -intent_category = highspeedsolid -is_experimental = True -material = ultimaker_nylon_175 -quality_type = draft -setting_version = 25 -type = intent -variant = LABS - -[values] -acceleration_print = 3500 -bottom_thickness = =top_bottom_thickness -bridge_wall_speed = 300 -cool_min_layer_time = 3 -infill_angles = [45,135] -infill_material_flow = 97 -infill_pattern = zigzag -infill_sparse_density = 99 -jerk_print = 35 -speed_layer_0 = 55 -speed_print = 300 -speed_travel = 500 -support_pattern = zigzag -top_bottom_thickness = =layer_height * 2 -top_thickness = =top_bottom_thickness - diff --git a/resources/intent/ultimaker_methodxl/um_methodxl_1c_um-absr-175_0.2mm_highspeed.inst.cfg b/resources/intent/ultimaker_methodxl/um_methodxl_1c_um-absr-175_0.2mm_highspeed.inst.cfg index 0328525090..f0a38b5a25 100644 --- a/resources/intent/ultimaker_methodxl/um_methodxl_1c_um-absr-175_0.2mm_highspeed.inst.cfg +++ b/resources/intent/ultimaker_methodxl/um_methodxl_1c_um-absr-175_0.2mm_highspeed.inst.cfg @@ -22,6 +22,7 @@ cool_min_temperature = 245.0 infill_pattern = zigzag jerk_print = 35 speed_layer_0 = 55 +speed_prime_tower = =speed_print/5 speed_print = 300 speed_support = 100 speed_support_interface = 75 diff --git a/resources/intent/ultimaker_methodxl/um_methodxl_1c_um-absr-175_0.2mm_highspeedsolid.inst.cfg b/resources/intent/ultimaker_methodxl/um_methodxl_1c_um-absr-175_0.2mm_highspeedsolid.inst.cfg index 0c2bb88cc7..9ad152ffcd 100644 --- a/resources/intent/ultimaker_methodxl/um_methodxl_1c_um-absr-175_0.2mm_highspeedsolid.inst.cfg +++ b/resources/intent/ultimaker_methodxl/um_methodxl_1c_um-absr-175_0.2mm_highspeedsolid.inst.cfg @@ -26,6 +26,7 @@ infill_pattern = zigzag infill_sparse_density = 99 jerk_print = 35 speed_layer_0 = 55 +speed_prime_tower = =speed_print/5 speed_print = 300 speed_support = 100 speed_support_interface = 75 diff --git a/resources/intent/ultimaker_methodxl/um_methodxl_1xa_um-absr-175_0.2mm_highspeed.inst.cfg b/resources/intent/ultimaker_methodxl/um_methodxl_1xa_um-absr-175_0.2mm_highspeed.inst.cfg index a82ddaa428..3835fdfedf 100644 --- a/resources/intent/ultimaker_methodxl/um_methodxl_1xa_um-absr-175_0.2mm_highspeed.inst.cfg +++ b/resources/intent/ultimaker_methodxl/um_methodxl_1xa_um-absr-175_0.2mm_highspeed.inst.cfg @@ -22,6 +22,7 @@ cool_min_temperature = 245.0 infill_pattern = zigzag jerk_print = 35 speed_layer_0 = 55 +speed_prime_tower = =speed_print/5 speed_print = 300 speed_support = 100 speed_support_interface = 75 diff --git a/resources/intent/ultimaker_methodxl/um_methodxl_1xa_um-absr-175_0.2mm_highspeedsolid.inst.cfg b/resources/intent/ultimaker_methodxl/um_methodxl_1xa_um-absr-175_0.2mm_highspeedsolid.inst.cfg index 9aebcb531b..0e6f4d11cd 100644 --- a/resources/intent/ultimaker_methodxl/um_methodxl_1xa_um-absr-175_0.2mm_highspeedsolid.inst.cfg +++ b/resources/intent/ultimaker_methodxl/um_methodxl_1xa_um-absr-175_0.2mm_highspeedsolid.inst.cfg @@ -26,6 +26,7 @@ infill_pattern = zigzag infill_sparse_density = 99 jerk_print = 35 speed_layer_0 = 55 +speed_prime_tower = =speed_print/5 speed_print = 300 speed_support = 100 speed_support_interface = 75 diff --git a/resources/intent/ultimaker_methodxl/um_methodxl_labs_um-absr-175_0.2mm_highspeed.inst.cfg b/resources/intent/ultimaker_methodxl/um_methodxl_labs_um-absr-175_0.2mm_highspeed.inst.cfg index 11aa6d2878..48340b2e09 100644 --- a/resources/intent/ultimaker_methodxl/um_methodxl_labs_um-absr-175_0.2mm_highspeed.inst.cfg +++ b/resources/intent/ultimaker_methodxl/um_methodxl_labs_um-absr-175_0.2mm_highspeed.inst.cfg @@ -22,6 +22,7 @@ cool_min_temperature = 245.0 infill_pattern = zigzag jerk_print = 35 speed_layer_0 = 55 +speed_prime_tower = =speed_print/5 speed_print = 300 speed_support = 100 speed_support_interface = 75 diff --git a/resources/intent/ultimaker_methodxl/um_methodxl_labs_um-absr-175_0.2mm_highspeedsolid.inst.cfg b/resources/intent/ultimaker_methodxl/um_methodxl_labs_um-absr-175_0.2mm_highspeedsolid.inst.cfg index ea8caef493..bb48267880 100644 --- a/resources/intent/ultimaker_methodxl/um_methodxl_labs_um-absr-175_0.2mm_highspeedsolid.inst.cfg +++ b/resources/intent/ultimaker_methodxl/um_methodxl_labs_um-absr-175_0.2mm_highspeedsolid.inst.cfg @@ -26,6 +26,7 @@ infill_pattern = zigzag infill_sparse_density = 99 jerk_print = 35 speed_layer_0 = 55 +speed_prime_tower = =speed_print/5 speed_print = 300 speed_support = 100 speed_support_interface = 75 diff --git a/resources/quality/ultimaker_method/um_method_1a_um-nylon-175_0.2mm.inst.cfg b/resources/quality/ultimaker_method/um_method_1a_um-nylon-175_0.2mm.inst.cfg index 6859b6c0b2..21785ed4ff 100644 --- a/resources/quality/ultimaker_method/um_method_1a_um-nylon-175_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_method/um_method_1a_um-nylon-175_0.2mm.inst.cfg @@ -42,7 +42,7 @@ support_bottom_distance = =layer_height support_bottom_enable = False support_bottom_line_width = 0.6 support_bottom_stair_step_height = 0 -support_infill_rate = =0 if support_structure == tree else 12.0 +support_infill_rate = =0 if support_structure == 'tree' else 12.0 support_interface_height = 0.406 support_interface_material_flow = 95 support_interface_pattern = lines diff --git a/resources/quality/ultimaker_method/um_method_1c_um-nylon-175_0.2mm.inst.cfg b/resources/quality/ultimaker_method/um_method_1c_um-nylon-175_0.2mm.inst.cfg index 57a0c78003..c9fcc9dae7 100644 --- a/resources/quality/ultimaker_method/um_method_1c_um-nylon-175_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_method/um_method_1c_um-nylon-175_0.2mm.inst.cfg @@ -42,7 +42,7 @@ support_bottom_distance = =layer_height support_bottom_enable = False support_bottom_line_width = 0.6 support_bottom_stair_step_height = 0 -support_infill_rate = =0 if support_structure == tree else 12.0 +support_infill_rate = =0 if support_structure == 'tree' else 12.0 support_interface_height = 0.406 support_interface_material_flow = 95 support_interface_pattern = lines diff --git a/resources/quality/ultimaker_method/um_method_labs_um-nylon-175_0.2mm.inst.cfg b/resources/quality/ultimaker_method/um_method_labs_um-nylon-175_0.2mm.inst.cfg index cf87c5c74b..2325dbfa00 100644 --- a/resources/quality/ultimaker_method/um_method_labs_um-nylon-175_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_method/um_method_labs_um-nylon-175_0.2mm.inst.cfg @@ -42,7 +42,7 @@ support_bottom_distance = =layer_height support_bottom_enable = False support_bottom_line_width = 0.6 support_bottom_stair_step_height = 0 -support_infill_rate = =0 if support_structure == tree else 12.0 +support_infill_rate = =0 if support_structure == 'tree' else 12.0 support_interface_height = 0.406 support_interface_material_flow = 95 support_interface_pattern = lines diff --git a/resources/quality/ultimaker_methodx/um_methodx_1a_um-nylon-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodx/um_methodx_1a_um-nylon-175_0.2mm.inst.cfg index e2f294f391..fa7f524998 100644 --- a/resources/quality/ultimaker_methodx/um_methodx_1a_um-nylon-175_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_methodx/um_methodx_1a_um-nylon-175_0.2mm.inst.cfg @@ -42,7 +42,7 @@ support_bottom_distance = =layer_height support_bottom_enable = False support_bottom_line_width = 0.6 support_bottom_stair_step_height = 0 -support_infill_rate = =0 if support_structure == tree else 12.0 +support_infill_rate = =0 if support_structure == 'tree' else 12.0 support_interface_height = 0.406 support_interface_material_flow = 95 support_interface_pattern = lines diff --git a/resources/quality/ultimaker_methodx/um_methodx_1c_um-nylon-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodx/um_methodx_1c_um-nylon-175_0.2mm.inst.cfg index 788d768ff2..f167c56520 100644 --- a/resources/quality/ultimaker_methodx/um_methodx_1c_um-nylon-175_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_methodx/um_methodx_1c_um-nylon-175_0.2mm.inst.cfg @@ -42,7 +42,7 @@ support_bottom_distance = =layer_height support_bottom_enable = False support_bottom_line_width = 0.6 support_bottom_stair_step_height = 0 -support_infill_rate = =0 if support_structure == tree else 12.0 +support_infill_rate = =0 if support_structure == 'tree' else 12.0 support_interface_height = 0.406 support_interface_material_flow = 95 support_interface_pattern = lines diff --git a/resources/quality/ultimaker_methodx/um_methodx_labs_um-nylon-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodx/um_methodx_labs_um-nylon-175_0.2mm.inst.cfg index d5f520eb71..36c3360377 100644 --- a/resources/quality/ultimaker_methodx/um_methodx_labs_um-nylon-175_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_methodx/um_methodx_labs_um-nylon-175_0.2mm.inst.cfg @@ -42,7 +42,7 @@ support_bottom_distance = =layer_height support_bottom_enable = False support_bottom_line_width = 0.6 support_bottom_stair_step_height = 0 -support_infill_rate = =0 if support_structure == tree else 12.0 +support_infill_rate = =0 if support_structure == 'tree' else 12.0 support_interface_height = 0.406 support_interface_material_flow = 95 support_interface_pattern = lines From 739a15f3c023adae89bc063ad6ba8aaa840fc3ed Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Thu, 11 Sep 2025 17:57:34 +0200 Subject: [PATCH 171/200] Remove "None" seam corner preference CURA-12294 --- resources/definitions/fdmprinter.def.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 68852d805f..ec0860e69f 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1427,11 +1427,10 @@ "z_seam_corner": { "label": "Seam Corner Preference", - "description": "Control whether corners on the model outline influence the position of the seam. None means that corners have no influence on the seam position. Hide Seam makes the seam more likely to occur on an inside corner. Expose Seam makes the seam more likely to occur on an outside corner. Hide or Expose Seam makes the seam more likely to occur at an inside or outside corner. Smart Hiding allows both inside and outside corners, but chooses inside corners more frequently, if appropriate.", + "description": "Control how corners on the model outline influence the position of the seam. Hide Seam makes the seam more likely to occur on an inside corner. Expose Seam makes the seam more likely to occur on an outside corner. Hide or Expose Seam makes the seam more likely to occur at an inside or outside corner. Smart Hiding allows both inside and outside corners, but chooses inside corners more frequently, if appropriate.", "type": "enum", "options": { - "z_seam_corner_none": "None", "z_seam_corner_inner": "Hide Seam", "z_seam_corner_outer": "Expose Seam", "z_seam_corner_any": "Hide or Expose Seam", From 9b6c3aa6211b33ef380e6471779b0a8dfe8b53cb Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Thu, 11 Sep 2025 21:29:00 +0200 Subject: [PATCH 172/200] Disable USB-cable-printing by default (except for people who used it already). We set the preference value for people who used USB-printing in the previous version, from the next version onwards, it'll be disabled by default -- as not many people still print by USB-cable, and more importantly, it can mess up some systems. It's not going away at the moment though. CURA-12333 --- plugins/USBPrinting/USBPrinterOutputDevice.py | 4 --- .../USBPrinterOutputDeviceManager.py | 7 ++-- resources/qml/Preferences/GeneralPage.qml | 33 +++++++++++++++++++ 3 files changed, 38 insertions(+), 6 deletions(-) diff --git a/plugins/USBPrinting/USBPrinterOutputDevice.py b/plugins/USBPrinting/USBPrinterOutputDevice.py index 18d9466eb5..85b98e532b 100644 --- a/plugins/USBPrinting/USBPrinterOutputDevice.py +++ b/plugins/USBPrinting/USBPrinterOutputDevice.py @@ -97,8 +97,6 @@ class USBPrinterOutputDevice(PrinterOutputDevice): CuraApplication.getInstance().getOnExitCallbackManager().addCallback(self._checkActivePrintingUponAppExit) - CuraApplication.getInstance().getPreferences().addPreference("usb_printing/enabled", False) - # This is a callback function that checks if there is any printing in progress via USB when the application tries # to exit. If so, it will show a confirmation before def _checkActivePrintingUponAppExit(self) -> None: @@ -146,8 +144,6 @@ class USBPrinterOutputDevice(PrinterOutputDevice): CuraApplication.getInstance().getController().setActiveStage("MonitorStage") - CuraApplication.getInstance().getPreferences().setValue("usb_printing/enabled", True) - #Find the g-code to print. gcode_textio = StringIO() gcode_writer = cast(MeshWriter, PluginRegistry.getInstance().getPluginObject("GCodeWriter")) diff --git a/plugins/USBPrinting/USBPrinterOutputDeviceManager.py b/plugins/USBPrinting/USBPrinterOutputDeviceManager.py index 4eeeb7970b..a0c57441c8 100644 --- a/plugins/USBPrinting/USBPrinterOutputDeviceManager.py +++ b/plugins/USBPrinting/USBPrinterOutputDeviceManager.py @@ -20,6 +20,7 @@ from . import USBPrinterOutputDevice i18n_catalog = i18nCatalog("cura") +USB_PRINT_PREFERENCE_KEY = "usb_printing/enabled" @signalemitter class USBPrinterOutputDeviceManager(QObject, OutputDevicePlugin): @@ -43,7 +44,9 @@ class USBPrinterOutputDeviceManager(QObject, OutputDevicePlugin): self._update_thread = threading.Thread(target = self._updateThread) self._update_thread.daemon = True - self._check_updates = True + preferences = self._application.getPreferences() + preferences.addPreference(USB_PRINT_PREFERENCE_KEY, False) + self._check_updates = preferences.getValue(USB_PRINT_PREFERENCE_KEY) self._application.applicationShuttingDown.connect(self.stop) # Because the model needs to be created in the same thread as the QMLEngine, we use a signal. @@ -58,7 +61,7 @@ class USBPrinterOutputDeviceManager(QObject, OutputDevicePlugin): device.resetDeviceSettings() def start(self): - self._check_updates = True + self._check_updates = self._application.getPreferences().getValue(USB_PRINT_PREFERENCE_KEY) self._update_thread.start() def stop(self, store_data: bool = True): diff --git a/resources/qml/Preferences/GeneralPage.qml b/resources/qml/Preferences/GeneralPage.qml index 42469c6cf6..6317058c9a 100644 --- a/resources/qml/Preferences/GeneralPage.qml +++ b/resources/qml/Preferences/GeneralPage.qml @@ -73,6 +73,9 @@ UM.PreferencesPage var defaultTheme = UM.Preferences.getValue("general/theme") setDefaultTheme(defaultTheme) + UM.Preferences.resetPreference("usb_printing/enabled") + usbPrintCheckbox.checked = boolCheck(UM.Preferences.getValue("usb_printing/enabled")) + UM.Preferences.resetPreference("general/use_tray_icon") trayIconCheckbox.checked = boolCheck(UM.Preferences.getValue("cura/use_tray_icon")) @@ -367,6 +370,36 @@ UM.PreferencesPage width: UM.Theme.getSize("default_margin").width } + UM.Label + { + font: UM.Theme.getFont("medium_bold") + text: catalog.i18nc("@label", "Slice-Output") + } + + UM.TooltipArea + { + width: childrenRect.width; + height: childrenRect.height; + + text: catalog.i18nc("@info:tooltip", "Printing via USB-cable isn't automatically enabled for new installs anymore, as the scanning of ports to find connected printers can give trouble on some systems.") + + UM.CheckBox + { + id: usbPrintCheckbox + checked: boolCheck(UM.Preferences.getValue("usb_printing/enabled")) + onClicked: UM.Preferences.setValue("usb_printing/enabled", checked) + + text: catalog.i18nc("@option:check", "Enable printing via USB-cable (restart required)") + } + } + + Item + { + //: Spacer + height: UM.Theme.getSize("default_margin").height + width: UM.Theme.getSize("default_margin").width + } + UM.Label { font: UM.Theme.getFont("medium_bold") From 9acb0ffa6b51b70302af1299cf731e5b701199eb Mon Sep 17 00:00:00 2001 From: HellAholic Date: Fri, 12 Sep 2025 09:02:23 +0200 Subject: [PATCH 173/200] replace svg with png application consistency --- .../definitions/anycubic_kobra_s1.def.json | 2 +- .../anycubic_kobra_s1_buildplate_texture.png | Bin 0 -> 15318 bytes .../anycubic_kobra_s1_buildplate_texture.svg | 35 ------------------ 3 files changed, 1 insertion(+), 36 deletions(-) create mode 100644 resources/images/anycubic_kobra_s1_buildplate_texture.png delete mode 100644 resources/images/anycubic_kobra_s1_buildplate_texture.svg diff --git a/resources/definitions/anycubic_kobra_s1.def.json b/resources/definitions/anycubic_kobra_s1.def.json index 8cedd8c591..6104d1d54c 100644 --- a/resources/definitions/anycubic_kobra_s1.def.json +++ b/resources/definitions/anycubic_kobra_s1.def.json @@ -11,7 +11,7 @@ "has_machine_quality": true, "has_materials": true, "platform": "anycubic_kobra_s1_buildplate.obj", - "platform_texture": "anycubic_kobra_s1_buildplate_texture.svg", + "platform_texture": "anycubic_kobra_s1_buildplate_texture.png", "has_textured_buildplate": true, "machine_extruder_trains": { "0": "anycubic_kobra_s1_extruder_0" }, "has_variant_buildplates": false, diff --git a/resources/images/anycubic_kobra_s1_buildplate_texture.png b/resources/images/anycubic_kobra_s1_buildplate_texture.png new file mode 100644 index 0000000000000000000000000000000000000000..1f80dd346de2c8f6b9a3bac8c4d29825e36cb966 GIT binary patch literal 15318 zcmeHtc~q0xwr7-5EGLYVA~I=EDOARw$gC1TL7+q<3IZw;W{`PKEKv!{P-+CisBi%V z0g)jqVG`o8z>>t3t>>i*UemfvvLXAi&q+k2n* zUu-P4Y}~yO0)cEfeF|X*fvn{~AQDm=)`L4&&Daj$*P0+Zi<4`5-yg<+|NP*7!ukXR zQl7kN>FPT0|2?j!?5rV>$O90_&D#*jBDi&P3<3$!gh0Msfk5=rAP|`wnRRCk!GrbJ ztSk`VH@F0*MDc1r-Z*tB2m(=87XMolo^KKgZb}B9wlJJLcom&fR^t0)i8sJTZ6sfIW6a`DaI(PFEz=e`U+(*$p&{+F)nbrv9VD%0el$xg7g`) z|GM!}SP}LUtxXC7nSU|89jM7e5&}UOKpEo3W5J;}V_Zxfq*8I;K+kid9Hz1u` zzrQNJvHI~FjJ zQ?mbMG3T}4cmKEB|Icf#rg-k8$(2G{1PY1NJ9>1^RKw&yb@i7enQZB;Qc_A8c$d1e z7G3KKpBpzOgUo^BIwJp6Z=;O|b@Y8ruHhWG^Q4#HfT4_86fqdrH(|{98 zReDe<@h&;_MRT>OaU3JkFP3l(<-h=jRN z;_{H4<@oxA``qEH8kx=>=_3dKc=YS9zqaEeJP`<#x`M211pSp;Tea|*va+(u^%12o zWl^6^VNg{$1k#ulXlzr5YEP$EJCxXVTns@XE`QKze~d)>`lT1Bz?BrC8t*7Aw!AK# z_9#h7NtW+n2t`UvJr@*#L1IbFCD`_?i*PNI+v8ru5D9cu=QD#jg`M3<_ zLE_NRkV_eRaedyO%D=*GXAEn#rKlAr9UH{TTtLp&W5chbxJXOcWUQR>;H&4)pEo$y z1`Z!F2cHo4^s(!VZ*=CGVU(b@1F!wg<>P=>ewEq;w0p0Ylr-`E2^g6e zQJYflnQs5s4jrfwy8PsdB;=+-n?Qf+d0}=P@^g$T9 zGS<{jcGs?B^q(P+E1^LvC%RTvR#;R@vKit!3em*oefjN>@=1_=8bi;E0iXtx!4KKMnSS(R%6cIzyaZCWpU%hS$v_`{{^=7-yg)yRdB&kpMpqaV3Bn=nxlEaWV%4-T@ z-ap(=ZKY^%zIu}7pccD9uB?dy`|ano3k<}jH}N4bc=1@>>mw(i0Z7$hZ+wKSYQ70< zYce(;-zx)6eQa0SHz$u5!1KV0eoEAq(-!9D#?sIhv!)CS3kwrFdI-KYX7*dRkig(z zu-FzvQ&5VA3p)NR0Eo3_!guf9ol_nhv}@fVAtBK~AT8g$dpFw&*==vBDvG*t<@2TQ zzQp$inziMquUxkf949 zAxd?)nM+mKA|)m2^bux8etS+tB4-D{|(1MabmM6C8SO=X&BKO1LFk=JYmz5OQ}4JO#XOvLuTJ}vj8kxD_a7l4bu%d`DSJEAUoC$rI!cJMBO@&%UfQ}u zS&SY_>PEAyyWxw%!qLV8&lE%x0yUs%Y>W8Y{|!VlSBm1Ln&sdnbd zgUytsxv{aaQFa~q_YJ^bWe`zLbg6Fu_}G-_xvilLJ4*o%7&S)+P}@)Bh}x=az}*YE zdp{||=CIggDPWObwZvXvF8uJ}gETzIbDmyosaocfK5_&K&ByrzweN(!&Bskqe9W4j zi$QVIE)HHW!@YLSGNKpIy}Oj9t6|JsfV}?dF63xUSjSjtRNePAf!!Oq)SRuGH%FVm zu6cQRoeSd+$_kx6BrfeQ%nY?Gq9cnLDB9pyd`$^cb;Zu7&eu?8tucOTXqC!7&3)hBc+^1ne_*9ipiO3SC}a zjs^KJheAOz!$tOD=;wG-XMfBnsD0M$Wo_0(zQ0o~(h_m`Vz{BB*0Gmhj`r!NkTAMZPavcZI2+~2gRK{=(2{u?}qc@Cm{)0pm6)Ebt3e;1H z!LdujOc#QVHQzlSXK&F&uls_Y{8dtM;j;KmgR0RlnNjT*$!;TeW4G#$;hAAwdAPuy z&!0bAD8tOn&B+%m1raDzakoAUrmndgc$$~7dh+-gjWGSJ72l%`9?jKTXl)=c8jiws z!(7qv<>K%#2i{>%YvY6pr)X^=QD>n=Z)3gCOs-b1ND8i2%3Atoz zOAT(!G1Aeggu(q)^E0a+ooJsch@c$)(UY-E%0Ev z=2oh7_mRi0uC6lOAu&WKu!=f%)wlZm2qqc$hK5)sSn^z|hRe#2s{xe3C$`j2CHni! z&&))BQM_dYyB2_mj=p~VtJ^AH(gn#bV$4)&F%CL)8;iAT9l?Iu22C|@QiFCnT1K2g zDQ4g?pNziFU>EAY$9@#b1|#myuo@LN?&PjoU@%DF4G;ZuV~Vy3b4XP}7MQet>Z(wv-ukjyOm1dOJbDlI5w1E(cX`4 zRV|zmQy3VmLp}d86zYF;6-@OSY*#U}xM=Y>kd@M}0?Wk(#vuB4L1Ul+H&E)|N?Dos zEMMwb%UYi+SFSvt0{UI*HyU|@4YxscTn;;qkk@P@NBNG*N6Bpgso`8Dh!=xC5Zwk5 z>Fh-CM^>+!S*iSG2ndi$hZ0lmAQnabK32}gWO>FVVtfsNd<)^X?&6$oud4NMzAUuU zB*;;9_?um;N=r*i9LNjIU1EgHi)l|kQdUy*O&Z_Z*NM)@@%qDu5-|%a^9`b{fAGxI zLs_AHo>3qUJIAl^(7%4PuWM`gIsfucP)8U{oBwXVRZ9I^@oH=GVgTpVNF$3PRfl6z zokDwE4YE3}=zc8Qy=zza07yu0Emc!P>1uGWhl`CK$ykdp%z!>9wYXd4j_PFDxS!J< zl(9f`g~XWBba?3l4W(=yF*&aBU{whDt#zdUSBi@Ix||5%&1m~jOttbgU9pgN?$0sm zOj-)}b`QXS(6mwtxY-`K z=rBCT!Sd2WJdF@pZv-z(z)~OEbtvxI^~py}P#Qapb##KgkVqa;hPdJp96Tc%;>5bL z%IWnQqQsQMw5TYZEE$C>K|5R4=HjMl*qV@LZZaSSO4_T=J7<^~f8>YTepA}$NzXa)G6#m~}9VvT64Qccm;F|Mcr znEH?41@78lXIZNQOWFmB=Mf)aS4bAVwqD2`*)Oinuuw%V}1CP7N{X2RNZm_ zw5txYp#i{)VoENsL4QjfrYHk-Ig}sm#R$ULp^qFpwh-0~Wa8hLPXqpIcnB^!3d?ycr%ze5Af8qVI9`J4dUjKmWdLA>51>v{+`FUw3S%9*7pWMx9nOI#by70 za!H-hqpQ4NFE)Z|p^!x%0)&nX_}uqz9NPuDxpVXLN)PauAeUtSDhJ?D|I$QAii$3TVwTJD^734mC}9BDb!`B!$XYSWdjt(=qlCPD`_@&Q=ljpn zXPv5n`y|Q&$ENr_RZqsJmDh(e67jXyBWrQmejtUtoa{ui6OLoJhZ#BZY?brKj70D< zx6AoSi(o2YcnD;NKIjw%mYapAQYoXh{_=8iLMd^QT$eQGT}GPAkW`AEw1$=+BP>3` zE30Z^|18=k(ZUW+JIw;{l83JWnxii#_b zu;G9~&~#jO$;&TY3R}JpKPN8#4qsLT?(k>lZFPMow+<6*pH6$hh2mL`*#F;Cd_i{A zNMA9%Izq@kYR$(}meAq~U9uUZtktWr|6Q%|7eKy&R`!D(*|nyE5*_2E1MJnE=|Xe1 zjPOAsl?LL6bj@#r?&(eSuw*e<)PCB9p8R%k@l0#>U3-`a^R-@aw|{ zvhh*o2%McCmC_)upb!Iic%FC@VO~^$%No4J8I4ps^?^`vN{q(~xV}lfMzED&(5?`g zHx;is$oY1`kHz1f!qKF_6pnvJEeRLssp|GhC=38}N#G>*Gtl(Heu|2GiVJL`Y%w)8 zl}g681QVQe03Ut^Bv(nbOUi)GQjdOboN46G*lG|QO3I0b7m=j!$Xd_zst~6z7>vx% z;w?F;y44fMZ~VDzjc?@Dz`*I7zPDD)m^nikM}6x&BA4%OkxQ3tnUw{-2a0Q@`v~TY z2B0=egz;gJ5e(JfISl6L8#vW4sBNaYt`uIE+Ksb2DhJ-~_w3*)!a+)F5DJAB@Sw9O zvM-=P4G2JWrfOs{`Q0EP#9|nT3wi+6yP@tK7iV8$j~#?XD#I*Q zO-L(?Y!f4X8YOyqCQx_DDzNTqr&Q0yR-uTH3xR#HoG>MBAoSlBDsx=-Uh>I-F|{9o`y1m0zm8wg$iKWD>N4R+ zF2GF_@^Nxvn$ek$6I~UjaB(XOKrEBk#sg{nSR`=F1iwa6G%&{w02opLS4nbQ4c+hj zsjTSRS?2MEh@s}hx6F`?x?jo1V7aAihNY@|uvElX(1Q7^jrfTqH)aArn1etxfomqt zTE>>AbL7Zu1s7e?VmP98U)(tXT-i!BgJ@ESdNBY<7Hfw14U}PDm?0pk#EGr&#!Q&V z{5`gS4tl<_P)F^GkS3_bL`CH6H;^@sd}J<3%=-W+0_3Q`Q=O}>SPz~oyEiQrV6jC- zexP5)x{p;sAg+(7h&y3BHTyup)8Jy+n}#m|(D+d{qrfB~9e#2}!`#9`)Gy|g!oa7B z9^v5&zR)QEfxh?%W>;6&9dVbh8oFx2NjcvEmS-7TU-??Yh2p9(kN_3{(`*lMN{;-4 z2Ls(d(&krU!~IZPT@o4hF&^7yrJ5tJq~zjApRHN-6$^2<3uNC4XeTjm*;3U-Nlwo3 zU_T(z!jUDeR$+GJH@|!wzc7}BdsU7LJRK&m2jzzHH5h2)ie8qL@zk1uIG_h2>V@&mx-q#9_DT zCr&<2jhPd6rcAt~-*_p*f6-~SsA%iAQubxEVAyZXkKnBx9B9BfQ1~hyBV7}hP|yI2 zd8b(tC`>E%!CBqRr6DmF|6@VWr(UgIPJzI*Ez`*NxrZI&@fzxjid;aiur5F(yXyW4 zb3F7sk#!F%r(ID9bYTWRYVAT_`HgD;sxlXGgZ!pg$#Yesi?_vHy6nl@Du(5_k1VgM zqwSw&ez$7{RjCDH2_SUzcz!B+ARoLAt|fDZ+q?zHwP;UNHquhi4f;wvF+fb*@&HYq z08jz1$;Yku5~>&+SM4AqqF+-_Pw+-uU~+iTqXwAkfZb^3WsMH~13-uWvm&pb>sU7< zr4+kpv>;F2K8>UeygHDwqs@h~?wJAMDD+{NgR?VeFesTv0Y`$;UOQU~Y)~s6i;i~g ztrQEhCb*?47*bR)mocb)s}qp{o%R(Z(hPAqq}MIgC?bjwEDs7*RXAXe4G!dJ!TVK6 z%;0O-AIwh(mGKXd0=>IW5kV_9pwE#5yEdK>&Kf|=m^B^BDCoWR7ci~v|ND8++Is$LTKNBmqJX{pGZXvU z?Duce&%bo`&lA@F#t=G}X$7qGFMmTk#{O%`|IiHoegZ6h<6j5ef5_)8;Ua`U z0<6x*S9c?R`0p3~_Z$C@7yIvwmO(cBKN#izslUHT_U{MM$19@%r2WfrfxlV#ztrOY z!K)f_5? zf#SfNmuAz;M9bKkFK;%9rbMNV^HcNkn58Mv?z4)a0}-PN>L3iS$T(K}TzZV>Wv8WG zjF~8J$v%%1l!mZ-6lgkGJ4!AHjl>=tS}sGLyaNscpp9V%tlrN9qH{s1zb0TPB)^GD zFL5NC7uSdCfpfj?JUqU|De(P59hi@Xxi_zI%rjDodAB!CG@s#54zNbeR_l_dGWAGS zdE(M8$}`z$F4CQ*Q=Dx0YJQUP%^FT{O9`8wRU0Vr9Hdz&F@qk8-&+^DA{aF>tdI{M zj8{Qd5p+%Dp)p~JbNyk-Mn&+We)Wsz@DUWCrHYGUN!At>&3yoL%0Mie4m>FRvW5&Qd>^%Tz*z+goOS#&>wu6v4APnnCzPHZmzS7jx^J2VoRO$Zq3 z&hf2^yx`Vs4Af_PX#ao=bSSH%3kn@>El?c=9ou7ooNe_dM6m)GzJ!>ca~DCiAY2tQ zmKn<6B-j-42gFjwLx*pdyjFD0KeKF&9QL+~*SJ2i7b?I~rcL1dVOk5S`8bi(vXURX zvh`ME62}UloaU3#ii--c4_LoiSHJ@AXZf%RR>>QZb!Bu>h zKX`tO1h?IVg%YWd zKCf#b`+;5~3EB-Bw0zyYePvjz(h=*5-%S8EbN#m(&3rg#HU7eAvQc85nn0_rV9<7| zwW_4ptr+JzM6@5FFIl0u04${ zhu)LI!g*zt%o|IGddfsi?%G2&9FC(Ue}vL+0<%v_PGyaA5~=22ldZ-x?U5xIl5k~; zyh(lGW8)^5@Cg|(vT=@?eh(^O0<~=zP|OeAG|);73>=){cL*0~%B@Pwx7<|R!#J}h zq>R%{vb|Z;m;5FI7p>P`RSuG;rmAj-;m!`0m!m0KE%K@O`&Rfx8&tL?V-3ES;Wv-|+$3$gWRCp(>S%Tp zm)Fl29hnAYf#T%1x{kM74JI~$)*hyxP8i#Pd_3CzilLB?JG3HQX!J8&sz21NP`V{p ze@H|i5W?E0T9iaB;&|fT31J&g)lmw<_#^F@3c7QYsHMldn>W&8O^awJ8Mz~oA~l$8 zUucZ#@ICL++QlE^Hk$abQH35OfE2L+R#CNdB@5s=pt!Hk$#W zufXxOGZPhbjowbakK7J$M(R8#lvfN!32~r@cnbmF_+Emh;VZwlvP)f`*fSW6?)e*FVmxr!2v5`DF!*}^DJ zDAgV|_}Y2P0w)FE>6c1CG!?tQKszA}_XeesQRtr1-$_%W3oOXln` zvA33s>;|QYi>FslB`neW-)y>ISzC%*h{tf2js{p8K%{=g3+6u6dVliwP4AGa8*Q}< z6cyc*!EM)Q<*M{r#)lzr;0#y}Me(uL1}r+x~HT4~DD-2nt$ zy*6RS0q(P+XnN_&&^}lTd}#7g^}wzNRw%s@a9#?FWfDx-+E6GVOq9qoT5f2-1^OZq z+)!XV+_$(}w3zk~Z^BqqR?;8xafD5SD&9ytNW^W;v1q!EkOz~70-@nnEH>LWTQp+V z`jFD^%@|FUW!-yMn7Z91@n>*ajfr818rlpv5W^4AF)GPQ1_0D`5tX6$vC3BQ9o_aW z%lGUCV`v6vY*H}sKeJdXN?V6>GEmbG?`vd7V-Wo>^CW@Ja~w)~Ho3Dd7=r?mV5O?m zAIj(%-DQL?8P&0#IHISAwnIcv6I>+;KJh_)oav$>FD2UenH4j{N_QxXJLl+6nq}j| z)<@Atq-_lYOp!<->Zk?I&Rl~WzVr#Czm>(`cgqRm3ZDDDr{tlQ2w}P#l3OWxu-qWP z4g6~O^M*A-i}$l2U!ENr%Hy^A6r>+0BXX)4*-B?us9Wtqy}(hkHb56bZ>^9(I}DJf zAa?;vkO+3M5K9@6K_XknJY;>+!-Yqqd^6M1!s!bOW0#;)JmS$lS8GItmx0L7dHY#) zl2A)f05AsKKv_70xP)GsDx=!Ce}h5;7&A}t0cXN;=x0Pv9W42E0I6F{l>&L&}cSdo|kHii5mwU)Q-92XKH`a8u-v6cF_`Y|(AHCl|`pv6*n+88R zacDK%KA4}w5bUelh+Q$`TKJUPY1jw1@*TH|t9t6lJ9_(nfF9kp@z?7If~fwYwD>c3 z@!Pz$4ll=K$4QQm0TR27M7ehujk4tAdNpdgP z@2QK^-CsCmj3PDZSjA3-AKox|zcA%>Y{4b{>T{fg6FsE-wPyXWvMo8Z8OWxgUKq?>m$A-{`UBA(>*uK zpwHb9HPoRgvds^NTFSYTg6MUWXs5Zrk85F7w@!6m#*lPhgs|!~H)p4(H{3c^0?|~j zWe(82E-ZS(`qS#lYZxI+X*6a<1E-y>v$;s>hmEW?9$sAiJf@0GCKm3#e01gA17!>6 zX~EKtsqkpiln^lf>8VLM<-7iwzKP2+!EWhzv$mX}BDJf&{?;W2{@vG`CggcsV^3Y( z`6b9_mmGA**ypFFi&m8WPqt&2X9dmV1M*vW>%t?vzP&B*H|*_DF7O@a%Lk*^J{B< zR!dmvle;@Sr?hb3%o283~ds1Ylv6}ij?~~R{Mxs!VJ9z6eY0ND* z)AN5~Wu9tcOHOIeEiSLy;NH_cg*^NXbL zs4N$IdtFtaE=_mQoqMuO2bGi_I^CO5tu!6}A#?L`bCQQnU1Ue59yK3b_27g0?QJJd z-QY>XoNewJoR>F_4zIHNCMR*(-+RxtUm#@2Grg#}eWCjpJXB(1qH|eTXi|jS5?Yi9 znZ|n9R8RV+k6fc2K60jFMw>pIXF26ku&&Eu?XQgrNkfO(T<$?sj})x8V?oEr$SBcr zs(l$Tn?+gBsz5&}DcQeq#sRAj zcoT((6A|V~`lckiv@K6wzI=IOBi!vSS2)e*tAGXX28+5woBB#B{+AQC{gLO-f32#nUXgTHX)oVR?!t-qR zPu!)It1g%vKYsF_qb_Dt)wo!~;XjKm*P1W&Y52gOc<5CsQ&yQ3AnYmX{ zDltz_HKBEOS0#U%t0SRJb_R!pShGnd_T)yxst)Wr91v|R%1Rnqf>)4rt@H*AZhUSu zMx{R{sz;)K7&{2zNyfTj&LEzWhcAXD`<5}h8SJ_3vU81IX?F`(lJeg$*BtlfjmH~J z)GeGyf-F23I@WM}ZUmvwlB^{9@rh&FZ0py`rn}@XQl{};9UfgPQe||z9rf{^vFhKfpSX zZd|QudG%r=O5woAcv`GMY1i)gxVKjeOFPJqPcdl*8awaL9wpYTOvv9Ss{eE_#;5m{ z8}s#*8<*zdyw=>D+wZSf|H$LFIQ7S?uDjXp20dLg{HS!4e>T4*7WMW?A-fG8pD8TOh%%i|~R%~e)ag>3)Qc4_SxH9b9j>-Mu+(3mT`CX?j#rq{xJ zCir{HemRbK3rUdZdiDE#86~#@7u1CNKkO=tYHGfga{aD*x=<7IERxCT8!&0?C-u%Q zw@-0kcI-#2lkST5Z62=~T4dNXYb6zxlqj@QGzxDG2j?fa8)nygF2Cr}K~d5I5NW^d zpD{}9<6^XeNbEX=_tpIi5h-<|?Z>xN`r?c6PN@}R%iEtn zI$(ONuRF-MJU0j!L~Q=N6}EBhaaY$NI7D>Nw^o-}7p@Iu9*ubA&j;r<;x4A_@bu$e z$~m(Ak#XAQ-xnNML2Lzlk%&OOK{f<@?ha%-MCGGju>LvzrdK@s7-lu6CGV`z9T6-G zZ%B2OQhwMrny&FZ%kl1<9GPYvsL44I=5N3~@5ucD?r#!2_Q4;g4TB&h&U0o5Gm?fT z#yEHKQhWL@UcPL&zk*0SzpW@oFNnJjhNKa*>g($xdf#ALPoqkUUc8u*{$jb0SdzJU zayKe8ZHmkuEEEWI_FC;~>y2tZo=@TS7vKF75d-EP`zh}~v{NSPe6-jtzfE)&#^L8>cI?;z$&~v1w!~2` zG{TTvr6}dg5BJEp8V>t%V<9WyW%LElcG3B>XQ6WNg6nIJOFnAYxn_2D*1>z3Gvg+s zQQZgOLdFgW1g4=~Jv~WhmS4dqpFHa_gq+&9eSU9Ap)$(&^^0PBFUQE`*W;fD@7>#o zYOWs8ck7|%pA;>~j|#TlLpsX6l1Cv=NTiqud;0sUfUMlc<|ya~FPKBjD49~v-m9spS*f)hE`RaS>Sp#M z$_&DM*Eh?3+YN$3a*j>b8Fd#J^*-KHCi^ZDadB`qvMnRSRk!(?;R)~gk3%iVB7|x> zet6`Kn~l%@)*hYp76t|egf+odi@{}d6J5o^Ezc+4Sx#+e3E&=S|M+0b7RRNeA;iXw z8_80?6%sr*Lksdb{JNr|u?>)%P6B6%Z4@=g-l_g#Zr6J9mPuzuwM<_%>1AD=eglZb zpwdap+o$h-=|!G92mc~%{<~XMRh4U7YwJKli)$*J&!;Te+1f50YK~NBqGa;*>yqp*XWbeN7X>`%iJFSDfyt89-|OmVTDjTwRQcu-&~&` zy*Vh$PK3R=idy)%9zUKny6x!`Lg99lao49$n%_n;M(b^6ref1#=BO0RZ^lo~1UAZg zSskKFdKSB>9fB(<=elUQ9&41=j*7cFVqU^D*!=d`55H8ek&S{>Y7ga3kg6c3Le0ie zXNcPx*U1ihSQH(4ci8xP^C5)%mFA}Nk8;is_4SjYBgQ^l<=`bann99KXNfU=$Q@7G zyh=vQhn&H#Mq@RINCmEXvv6+i!dr?z^y#K2-rCj6yCG%>`y7rpEkq#q<)z@f&h9PH z=XK=a4;bG|J$CI5j6V3_R5VS~uq0OSL7~F=4Mj=S%`m7m2VNp@yg87EE1!+7Kk&%u zmyaljI@GUmJa2JD1KwbbP=+jNf%CJOkZ_xn&XcyfCN*CA#SWo@FIr%Yx4cEDH>E>C}}HQZjVb@6o;z7)Qhx+#`rwVrvpi*diLR;~Af zOZzdGviDt8lcURr?Qj#1$A%Wu9xd8eyKVX?5#=Sc&+lPVbN=D-uvVQq;6F!ed!!`_ z@+?#DD92xe9qc%pv=&A=<;zZCrOxm7q={+W*9}|<#{IXoW4EcfwZB7d4K}UWj0!Hj z-N(R=t*;Hd^Id`S37+X9&5N%=QM0dd(<)!Nvuzcgu>3YIj@X6-1< - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From 57073e2282643955d7d1ea7a920aa3ef948d7787 Mon Sep 17 00:00:00 2001 From: HellAholic <28710690+HellAholic@users.noreply.github.com> Date: Fri, 12 Sep 2025 07:34:24 +0000 Subject: [PATCH 174/200] Apply printer-linter format --- .../definitions/anycubic_kobra_s1.def.json | 20 +++++++++---------- .../anycubic_kobra_s1_high_quality.inst.cfg | 11 +++++----- .../anycubic_kobra_s1_standard.inst.cfg | 11 +++++----- 3 files changed, 22 insertions(+), 20 deletions(-) diff --git a/resources/definitions/anycubic_kobra_s1.def.json b/resources/definitions/anycubic_kobra_s1.def.json index 6104d1d54c..09fc5c64e2 100644 --- a/resources/definitions/anycubic_kobra_s1.def.json +++ b/resources/definitions/anycubic_kobra_s1.def.json @@ -8,31 +8,31 @@ "author": "takanuva15", "manufacturer": "Anycubic", "file_formats": "text/x-gcode", + "platform": "anycubic_kobra_s1_buildplate.obj", "has_machine_quality": true, "has_materials": true, - "platform": "anycubic_kobra_s1_buildplate.obj", - "platform_texture": "anycubic_kobra_s1_buildplate_texture.png", "has_textured_buildplate": true, - "machine_extruder_trains": { "0": "anycubic_kobra_s1_extruder_0" }, "has_variant_buildplates": false, "has_variants": false, - "preferred_variant_name": "0.4mm", - "preferred_quality_type": "normal" + "machine_extruder_trains": { "0": "anycubic_kobra_s1_extruder_0" }, + "platform_texture": "anycubic_kobra_s1_buildplate_texture.png", + "preferred_quality_type": "normal", + "preferred_variant_name": "0.4mm" }, "overrides": { + "machine_buildplate_type": { "default_value": "PEI Spring Steel" }, "machine_depth": { "default_value": 250 }, + "machine_end_gcode": { "default_value": "; move printhead away from object\nG1 Z22.000 ; for object exclusion\nG1 E-.76675 F2400\n; fan off\nM106 S0\nM106 P2 S0\n;TYPE:Custom\n; filament end gcode\nG92 E0\nG1 E-2 F3000\nG1 Z24 F900 ; Move print head further up \nG1 F12000; present print\nG1 X44; throw_position_x\nG1 Y270; throw_position_y\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM106 P1 S0 ; turn off fan\nM106 P2 S0\nM106 P3 S0\nM84; disable motors \n; disable stepper motors\nM106 P3 S204\n\n; CONFIG FOR SCREEN PRINT PREVIEW\n; total filament used [g] = {filament_weight}\n\n; CONFIG_BLOCK_START = begin\n; filament_type = {material_type}\n; nozzle_temperature = {material_print_temperature}\n; bed_temperature = {material_bed_temperature}\n; CONFIG_BLOCK_END = end" }, "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, "machine_heated_bed": { "default_value": true }, "machine_height": { "default_value": 250 }, "machine_name": { - "default_value": "Anycubic Kobra S1", - "description": "Anycubic Kobra S1" + "default_value": "Anycubic Kobra S1", + "description": "Anycubic Kobra S1" }, - "machine_buildplate_type": { "default_value": "PEI Spring Steel" }, "machine_start_gcode": { "default_value": "M106 S0\nM106 P2 S0\n;TYPE:Custom\nG9111 bedTemp={material_bed_temperature} extruderTemp={material_print_temperature}\nM117\nM106 P3 S153\nG90\nG21\nM83 ; use relative distances for extrusion\n; filament start gcode\nM900 K0.035 ; Override pressure advance value\nM106 S0\nM106 P2 S0\n\nM420 S1 ;load stored mesh to avoid auto-leveling" }, - "machine_end_gcode": { "default_value": "; move printhead away from object\nG1 Z22.000 ; for object exclusion\nG1 E-.76675 F2400\n; fan off\nM106 S0\nM106 P2 S0\n;TYPE:Custom\n; filament end gcode\nG92 E0\nG1 E-2 F3000\nG1 Z24 F900 ; Move print head further up \nG1 F12000; present print\nG1 X44; throw_position_x\nG1 Y270; throw_position_y\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM106 P1 S0 ; turn off fan\nM106 P2 S0\nM106 P3 S0\nM84; disable motors \n; disable stepper motors\nM106 P3 S204\n\n; CONFIG FOR SCREEN PRINT PREVIEW\n; total filament used [g] = {filament_weight}\n\n; CONFIG_BLOCK_START = begin\n; filament_type = {material_type}\n; nozzle_temperature = {material_print_temperature}\n; bed_temperature = {material_bed_temperature}\n; CONFIG_BLOCK_END = end" }, "machine_width": { "default_value": 250 } } -} +} \ No newline at end of file diff --git a/resources/quality/anycubic_kobra_s1/anycubic_kobra_s1_high_quality.inst.cfg b/resources/quality/anycubic_kobra_s1/anycubic_kobra_s1_high_quality.inst.cfg index 1462ee5e55..fe48dcc12c 100644 --- a/resources/quality/anycubic_kobra_s1/anycubic_kobra_s1_high_quality.inst.cfg +++ b/resources/quality/anycubic_kobra_s1/anycubic_kobra_s1_high_quality.inst.cfg @@ -12,22 +12,23 @@ weight = 1 [values] adhesion_type = brim +bottom_thickness = =layer_height*3 brim_width = 5 -line_width = 0.42 +infill_sparse_density = 15 initial_layer_line_width_factor = 125 layer_height = 0.2 layer_height_0 = 0.2 +line_width = 0.42 material_bed_temperature = 55 -top_thickness = =layer_height*5 -bottom_thickness = =layer_height*3 -infill_sparse_density = 15 material_print_temperature = 215.0 skirt_height = 1 speed_layer_0 = 40 -speed_travel_layer_0 = 60 speed_print = 180.0 speed_travel = 300.0 +speed_travel_layer_0 = 60 speed_wall = 180.0 speed_wall_0 = 60.0 speed_wall_x = 180.0 +top_thickness = =layer_height*5 wall_thickness = =line_width*4 + diff --git a/resources/quality/anycubic_kobra_s1/anycubic_kobra_s1_standard.inst.cfg b/resources/quality/anycubic_kobra_s1/anycubic_kobra_s1_standard.inst.cfg index 3b3280331e..fd6a2962a3 100644 --- a/resources/quality/anycubic_kobra_s1/anycubic_kobra_s1_standard.inst.cfg +++ b/resources/quality/anycubic_kobra_s1/anycubic_kobra_s1_standard.inst.cfg @@ -12,22 +12,23 @@ weight = 0 [values] adhesion_type = brim +bottom_thickness = =layer_height*3 brim_width = 5 -line_width = 0.42 +infill_sparse_density = 15 initial_layer_line_width_factor = 125 layer_height = 0.2 layer_height_0 = 0.2 +line_width = 0.42 material_bed_temperature = 55 -top_thickness = =layer_height*5 -bottom_thickness = =layer_height*3 -infill_sparse_density = 15 material_print_temperature = 215.0 skirt_height = 1 speed_layer_0 = 50 -speed_travel_layer_0 = 80 speed_print = 300.0 speed_travel = 300.0 +speed_travel_layer_0 = 80 speed_wall = 300.0 speed_wall_0 = 200.0 speed_wall_x = 300.0 +top_thickness = =layer_height*5 wall_thickness = =line_width*2 + From 75a15a5831d531b8760207887c044064042f7e92 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Fri, 12 Sep 2025 10:28:20 +0200 Subject: [PATCH 175/200] Fix linter not checking for parent's parent's definitions --- .../src/printerlinter/linters/defintion.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/printer-linter/src/printerlinter/linters/defintion.py b/printer-linter/src/printerlinter/linters/defintion.py index a95fede55a..3e325a7522 100644 --- a/printer-linter/src/printerlinter/linters/defintion.py +++ b/printer-linter/src/printerlinter/linters/defintion.py @@ -145,17 +145,18 @@ class Definition(Linter): if "overrides" not in self._definitions[inherits_from]: return self._isDefinedInParent(key, value_dict, self._definitions[inherits_from]["inherits"]) - parent = self._definitions[inherits_from]["overrides"] + parent = self._definitions[inherits_from] + parent_overrides = self._definitions[inherits_from]["overrides"] if key not in self._definitions[self.base_def]["overrides"]: is_number = False else: is_number = self._definitions[self.base_def]["overrides"][key]["type"] in ("float", "int") for child_key, child_value in value_dict.items(): - if key in parent: + if key in parent_overrides: if child_key in ("default_value", "value"): - check_values = [cv for cv in [parent[key].get("default_value", None), parent[key].get("value", None)] if cv is not None] + check_values = [cv for cv in [parent_overrides[key].get("default_value", None), parent_overrides[key].get("value", None)] if cv is not None] else: - check_values = [parent[key].get(child_key, None)] + check_values = [parent_overrides[key].get(child_key, None)] for check_value in check_values: if is_number and child_key in ("default_value", "value"): try: @@ -170,10 +171,10 @@ class Definition(Linter): v = child_value cv = check_value if v == cv: - return True, child_key, child_value, parent, inherits_from + return True, child_key, child_value, parent_overrides, inherits_from - if "inherits" in parent: - return self._isDefinedInParent(key, value_dict, parent["inherits"]) + if "inherits" in parent: + return self._isDefinedInParent(key, value_dict, parent["inherits"]) return False, None, None, None, None def _loadExperimentalSettings(self): From eb697f25712d6b1641803c46281b85fe299d489a Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Fri, 12 Sep 2025 10:37:11 +0200 Subject: [PATCH 176/200] Remove useless comment publishing step --- .github/workflows/printer-linter-pr-diagnose.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/.github/workflows/printer-linter-pr-diagnose.yml b/.github/workflows/printer-linter-pr-diagnose.yml index 666383c8f9..ad0a7ea587 100644 --- a/.github/workflows/printer-linter-pr-diagnose.yml +++ b/.github/workflows/printer-linter-pr-diagnose.yml @@ -45,10 +45,3 @@ jobs: with: name: printer-linter-result path: printer-linter-result/ - - - name: Run clang-tidy-pr-comments action - uses: platisd/clang-tidy-pr-comments@v1.8.0 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - clang_tidy_fixes: result.yml - request_changes: true From 13cd6e0ca18549d1de2294e26be3d9d992123941 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Fri, 12 Sep 2025 11:02:52 +0200 Subject: [PATCH 177/200] Fix comment action --- .github/workflows/printer-linter-pr-post.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/printer-linter-pr-post.yml b/.github/workflows/printer-linter-pr-post.yml index 7b3dd152cb..d7f43d06dc 100644 --- a/.github/workflows/printer-linter-pr-post.yml +++ b/.github/workflows/printer-linter-pr-post.yml @@ -103,9 +103,10 @@ jobs: body-path: 'printer-linter-result/comment.md' - name: Run clang-tidy-pr-comments action - uses: platisd/clang-tidy-pr-comments@v1 + uses: platisd/clang-tidy-pr-comments@v1.8.0 with: github_token: ${{ secrets.GITHUB_TOKEN }} clang_tidy_fixes: printer-linter-result/fixes.yml pull_request_id: ${{ env.PR_ID }} request_changes: true + auto_resolve_conversations: true From bd0dabe182c3f5033953d3247c14965b18bf29d9 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Fri, 12 Sep 2025 14:18:27 +0200 Subject: [PATCH 178/200] Make "Use Towers" setting visible in all visibilities CURA-12688 --- resources/setting_visibility/advanced.cfg | 1 + resources/setting_visibility/basic.cfg | 1 + 2 files changed, 2 insertions(+) diff --git a/resources/setting_visibility/advanced.cfg b/resources/setting_visibility/advanced.cfg index 8585a05eec..6d5f68c62a 100644 --- a/resources/setting_visibility/advanced.cfg +++ b/resources/setting_visibility/advanced.cfg @@ -117,6 +117,7 @@ gradual_support_infill_step_height support_interface_enable support_roof_enable support_bottom_enable +support_use_towers [platform_adhesion] prime_blob_enable diff --git a/resources/setting_visibility/basic.cfg b/resources/setting_visibility/basic.cfg index 6c6124ab67..768f5287a9 100644 --- a/resources/setting_visibility/basic.cfg +++ b/resources/setting_visibility/basic.cfg @@ -46,6 +46,7 @@ support_type support_angle support_offset support_structure +support_use_towers [platform_adhesion] prime_blob_enable From bb744d91a935bfb3896624c75ef88cea166c3bd6 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Fri, 12 Sep 2025 14:56:29 +0200 Subject: [PATCH 179/200] Update logos with most recent versions CURA-12688 --- resources/images/cura.png | Bin 337002 -> 288650 bytes resources/images/cura_enterprise.png | Bin 339188 -> 310779 bytes resources/images/cura_wip.png | Bin 344577 -> 312176 bytes resources/themes/cura-light/images/logo.svg | 16 ++++++++++++---- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/resources/images/cura.png b/resources/images/cura.png index b2f304fce3966cc5a07dd06bb1766ec6ec1938ae..10d1c0a3753876b5a9272ec4faf1c0f06c199084 100644 GIT binary patch literal 288650 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�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