Merge branch '5.10' into CURA-12458_security-fixes-that-came-in-via-the-inbox

This commit is contained in:
HellAholic 2025-03-19 11:11:31 +01:00 committed by GitHub
commit 79dfb7bd23
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
13 changed files with 263 additions and 111 deletions

View File

@ -1,15 +1,15 @@
version: "5.10.0-beta.1"
version: "5.10.0"
requirements:
- "cura_resources/5.10.0-beta.1"
- "uranium/5.10.0-beta.1"
- "curaengine/5.10.0-beta.1"
- "cura_binary_data/5.10.0-beta.1"
- "fdm_materials/5.10.0-beta.1"
- "cura_resources/5.10.0"
- "uranium/5.10.0"
- "curaengine/5.10.0"
- "cura_binary_data/5.10.0"
- "fdm_materials/5.10.0"
- "dulcificum/5.10.0"
- "pysavitar/5.10.0"
- "pynest2d/5.10.0"
requirements_internal:
- "fdm_materials/5.10.0-beta.1"
- "fdm_materials/5.10.0"
- "cura_private_data/5.10.0-alpha.0@internal/testing"
requirements_enterprise:
- "native_cad_plugin/2.0.0"

View File

@ -449,6 +449,6 @@ class PrintInformation(QObject):
"""If this is a sort of output 'device' (like local or online file storage, rather than a printer),
the user could have altered the file-name, and thus the project name should be altered as well."""
if isinstance(output_device, ProjectOutputDevice):
new_name = output_device.getLastOutputName()
new_name = output_device.popLastOutputName()
if new_name is not None:
self.setJobName(os.path.splitext(os.path.basename(new_name))[0])

View File

@ -163,11 +163,21 @@ class PurgeLinesAndUnload(Script):
"move_to_start":
{
"label": "Circle around to layer start ⚠️​",
"description": "Depending on where the 'Layer Start X' and 'Layer Start Y' are for the print, the opening travel move can pass across the print area and leave a string there. This option will generate an orthogonal path that moves the nozzle around the edges of the build plate and then comes in to the Start Point. || ⚠️​ || The nozzle will drop to Z0.0 and touch the build plate at each stop in order to 'nail down the string' so it doesn't follow in a straight line.",
"description": "Depending on where the 'Layer Start X' and 'Layer Start Y' are for the print, the opening travel move can pass across the print area and leave a string there. This option will generate an orthogonal path that moves the nozzle around the edges of the build plate and then comes in to the Start Point. || ⚠️​ || The nozzle can drop to Z0.0 and touch the build plate at each stop in order to 'nail down the string'. The nozzle always raises after the touch-down. It will not drag on the bed.",
"type": "bool",
"default_value": false,
"enabled": true
},
"move_to_start_min_z":
{
"label": " Minimum Z height ⚠️​",
"description": "When moving to the start position, the nozzle can touch down on the build plate at each stop (Z = 0.0). That will stick the string to the build plate at each direction change so it doesn't pull across the print area. Some printers may not respond well to Z=0.0. You may set a minimum Z height here (min is 0.0 and max is 0.50). The string must stick or it defeats the purpose of moving around the periphery.",
"type": "float",
"default_value": 0.0,
"minimum_value": 0.0,
"maximum_value": 0.5,
"enabled": "move_to_start"
},
"adjust_starting_e":
{
"label": "Adjust Starting E location",
@ -254,7 +264,9 @@ class PurgeLinesAndUnload(Script):
self.prime_blob_distance = self.getSettingValueByKey("prime_blob_distance")
else:
self.prime_blob_distance = 0
# Set the minimum Z to stick the string to the build plate when Move to Start is selected.
self.touchdown_z = self.getSettingValueByKey("move_to_start_min_z")
# Mapping settings to corresponding methods
procedures = {
"add_purge_lines": self._add_purge_lines,
@ -385,7 +397,7 @@ class PurgeLinesAndUnload(Script):
def add_move(axis: str, position: float) -> None:
moves.append(
f"G0 F{self.speed_travel} {axis}{position} ; Start move\n"
f"G0 F600 Z0 ; Nail down the string\n"
f"G0 F600 Z{self.touchdown_z} ; Nail down the string\n"
f"G0 F600 Z2 ; Move up\n"
)
@ -479,6 +491,14 @@ class PurgeLinesAndUnload(Script):
def calculate_purge_volume(line_width, purge_length, volume_per_mm):
return round((line_width * 0.3 * purge_length) * 1.25 / volume_per_mm, 5)
def adjust_for_prime_blob_gcode(retract_speed, retract_distance):
"""Generates G-code lines for prime blob adjustment."""
gcode_lines = [
f"G1 F{retract_speed} E{retract_distance} ; Unretract",
"G92 E0 ; Reset extruder"
]
return "\n".join(gcode_lines)
purge_location = self.getSettingValueByKey("purge_line_location")
purge_extrusion_full = True if self.getSettingValueByKey("purge_line_length") == "purge_full" else False
@ -494,6 +514,8 @@ class PurgeLinesAndUnload(Script):
# Travel to the purge start
purge_str += f"G0 F{self.speed_travel} X{self.machine_left + self.border_distance} Y{self.machine_front + 10} ; Move to start\n"
purge_str += f"G0 F600 Z0.3 ; Move down\n"
if self.prime_blob_enable:
purge_str += adjust_for_prime_blob_gcode(self.retract_speed, self.retract_dist)
# Purge two lines
purge_str += f"G1 F{self.print_speed} X{self.machine_left + self.border_distance} Y{y_stop} E{purge_volume} ; First line\n"
purge_str += f"G0 X{self.machine_left + 3 + self.border_distance} Y{y_stop} ; Move over\n"
@ -513,6 +535,8 @@ class PurgeLinesAndUnload(Script):
# Travel to the purge start
purge_str += f"G0 F{self.speed_travel} X{self.machine_right - self.border_distance} ; Move\nG0 Y{self.machine_back - 10} ; Move\n"
purge_str += f"G0 F600 Z0.3 ; Move down\n"
if self.prime_blob_enable:
purge_str += adjust_for_prime_blob_gcode(self.retract_speed, self.retract_dist)
# Purge two lines
purge_str += f"G1 F{self.print_speed} X{self.machine_right - self.border_distance} Y{y_stop} E{purge_volume} ; First line\n"
purge_str += f"G0 X{self.machine_right - 3 - self.border_distance} Y{y_stop} ; Move over\n"
@ -533,6 +557,8 @@ class PurgeLinesAndUnload(Script):
# Travel to the purge start
purge_str += f"G0 F{self.speed_travel} X{self.machine_left + 10} Y{self.machine_front + self.border_distance} ; Move to start\n"
purge_str += f"G0 F600 Z0.3 ; Move down\n"
if self.prime_blob_enable:
purge_str += adjust_for_prime_blob_gcode(self.retract_speed, self.retract_dist)
# Purge two lines
purge_str += f"G1 F{self.print_speed} X{x_stop} Y{self.machine_front + self.border_distance} E{purge_volume} ; First line\n"
purge_str += f"G0 X{x_stop} Y{self.machine_front + 3 + self.border_distance} ; Move over\n"
@ -554,6 +580,8 @@ class PurgeLinesAndUnload(Script):
purge_str += f"G0 F{self.speed_travel} Y{self.machine_back - self.border_distance} ; Ortho Move to back\n"
purge_str += f"G0 X{self.machine_right - 10} ; Ortho move to start\n"
purge_str += f"G0 F600 Z0.3 ; Move down\n"
if self.prime_blob_enable:
purge_str += adjust_for_prime_blob_gcode(self.retract_speed, self.retract_dist)
# Purge two lines
purge_str += f"G1 F{self.print_speed} X{x_stop} Y{self.machine_back - self.border_distance} E{purge_volume} ; First line\n"
purge_str += f"G0 X{x_stop} Y{self.machine_back - 3 - self.border_distance} ; Move over\n"
@ -575,6 +603,8 @@ class PurgeLinesAndUnload(Script):
# Travel to the purge start
purge_str += f"G0 F{self.speed_travel} X{self.machine_left + self.border_distance} Y{self.machine_front + 10} ; Move to start\n"
purge_str += f"G0 F600 Z0.3 ; Move down\n"
if self.prime_blob_enable:
purge_str += adjust_for_prime_blob_gcode(self.retract_speed, self.retract_dist)
# Purge two lines
purge_str += f"G1 F{self.print_speed} X{self.machine_left + self.border_distance} Y{y_stop} E{purge_volume} ; First line\n"
purge_str += f"G0 X{self.machine_left + 3 + self.border_distance} Y{y_stop} ; Move over\n"
@ -594,6 +624,8 @@ class PurgeLinesAndUnload(Script):
# Travel to the purge start
purge_str += f"G0 F{self.speed_travel} X{self.machine_right - self.border_distance} Z2 ; Move\nG0 Y{self.machine_back - 10} Z2 ; Move to start\n"
purge_str += f"G0 F600 Z0.3 ; Move down\n"
if self.prime_blob_enable:
purge_str += adjust_for_prime_blob_gcode(self.retract_speed, self.retract_dist)
# Purge two lines
purge_str += f"G1 F{self.print_speed} X{self.machine_right - self.border_distance} Y{y_stop} E{purge_volume} ; First line\n"
purge_str += f"G0 X{self.machine_right - 3 - self.border_distance} Y{y_stop} ; Move over\n"
@ -613,6 +645,8 @@ class PurgeLinesAndUnload(Script):
# Travel to the purge start
purge_str += f"G0 F{self.speed_travel} X{self.machine_left + 10} Z2 ; Move\nG0 Y{self.machine_front + self.border_distance} Z2 ; Move to start\n"
purge_str += f"G0 F600 Z0.3 ; Move down\n"
if self.prime_blob_enable:
purge_str += adjust_for_prime_blob_gcode(self.retract_speed, self.retract_dist)
# Purge two lines
purge_str += f"G1 F{self.print_speed} X{x_stop} Y{self.machine_front + self.border_distance} E{purge_volume} ; First line\n"
purge_str += f"G0 X{x_stop} Y{self.machine_front + 3 + self.border_distance} ; Move over\n"
@ -633,6 +667,8 @@ class PurgeLinesAndUnload(Script):
purge_str += f"G0 F{self.speed_travel} Y{self.machine_back - self.border_distance} Z2; Ortho Move to back\n"
purge_str += f"G0 X{self.machine_right - 10} Z2 ; Ortho Move to start\n"
purge_str += f"G0 F600 Z0.3 ; Move down\n"
if self.prime_blob_enable:
purge_str += adjust_for_prime_blob_gcode(self.retract_speed, self.retract_dist)
# Purge two lines
purge_str += f"G1 F{self.print_speed} X{x_stop} Y{self.machine_back - self.border_distance} E{purge_volume} ; First line\n"
purge_str += f"G0 X{x_stop} Y{self.machine_back - 3 - self.border_distance} ; Move over\n"
@ -945,7 +981,7 @@ class PurgeLinesAndUnload(Script):
blob_string = "G0 F1200 Z20 ; Move up\n"
blob_string += f"G0 F{self.speed_travel} X{blob_x} Y{blob_y} ; Move to blob location\n"
blob_string += f"G1 F{speed_blob} E{self.prime_blob_distance} ; Blob\n"
blob_string += f"G1 F{self.retract_speed} E-{self.retract_dist} ; Retract\n"
blob_string += f"G1 F{self.retract_speed} E{self.prime_blob_distance - self.retract_dist} ; Retract\n"
blob_string += "G92 E0 ; Reset extruder\n"
blob_string += "M300 P500 S600 ; Beep\n"
blob_string += "G4 S2 ; Wait\n"

View File

@ -1 +1 @@
version: "5.10.0-beta.1"
version: "5.10.0"

View File

@ -3021,6 +3021,7 @@
"minimum_value": "0.0001",
"minimum_value_warning": "50",
"maximum_value_warning": "150",
"enabled": "roofing_layer_count > 0 and top_layers > 0",
"limit_to_extruder": "wall_0_extruder_nr",
"settable_per_mesh": true
},
@ -3035,6 +3036,7 @@
"minimum_value": "0.0001",
"minimum_value_warning": "50",
"maximum_value_warning": "150",
"enabled": "roofing_layer_count > 0 and top_layers > 0",
"limit_to_extruder": "wall_x_extruder_nr",
"settable_per_mesh": true
},
@ -3049,6 +3051,7 @@
"minimum_value": "0.0001",
"minimum_value_warning": "50",
"maximum_value_warning": "150",
"enabled": "flooring_layer_count > 0 and bottom_layers > 0",
"limit_to_extruder": "wall_0_extruder_nr",
"settable_per_mesh": true
},
@ -3063,6 +3066,7 @@
"minimum_value": "0.0001",
"minimum_value_warning": "50",
"maximum_value_warning": "150",
"enabled": "flooring_layer_count > 0 and bottom_layers > 0",
"limit_to_extruder": "wall_x_extruder_nr",
"settable_per_mesh": true
}
@ -3464,6 +3468,7 @@
"maximum_value_warning": "150",
"default_value": 30,
"value": "speed_wall_0",
"enabled": "roofing_layer_count > 0 and top_layers > 0",
"limit_to_extruder": "wall_0_extruder_nr",
"settable_per_mesh": true
},
@ -3478,6 +3483,7 @@
"maximum_value_warning": "150",
"default_value": 60,
"value": "speed_wall_x",
"enabled": "roofing_layer_count > 0 and top_layers > 0",
"limit_to_extruder": "wall_x_extruder_nr",
"settable_per_mesh": true
},
@ -3492,6 +3498,7 @@
"maximum_value_warning": "150",
"default_value": 30,
"value": "speed_wall_0",
"enabled": "flooring_layer_count > 0 and bottom_layers > 0",
"limit_to_extruder": "wall_0_extruder_nr",
"settable_per_mesh": true
},
@ -3506,6 +3513,7 @@
"maximum_value_warning": "150",
"default_value": 60,
"value": "speed_wall_x",
"enabled": "flooring_layer_count > 0 and bottom_layers > 0",
"limit_to_extruder": "wall_x_extruder_nr",
"settable_per_mesh": true
}
@ -3878,7 +3886,7 @@
"maximum_value_warning": "10000",
"default_value": 3000,
"value": "acceleration_wall_0",
"enabled": "resolveOrValue('acceleration_enabled')",
"enabled": "resolveOrValue('acceleration_enabled') and roofing_layer_count > 0 and top_layers > 0",
"limit_to_extruder": "wall_0_extruder_nr",
"settable_per_mesh": true
},
@ -3893,7 +3901,7 @@
"maximum_value_warning": "10000",
"default_value": 3000,
"value": "acceleration_wall_x",
"enabled": "resolveOrValue('acceleration_enabled')",
"enabled": "resolveOrValue('acceleration_enabled') and roofing_layer_count > 0 and top_layers > 0",
"limit_to_extruder": "wall_x_extruder_nr",
"settable_per_mesh": true
},
@ -3908,7 +3916,7 @@
"maximum_value_warning": "10000",
"default_value": 3000,
"value": "acceleration_wall_0",
"enabled": "resolveOrValue('acceleration_enabled')",
"enabled": "resolveOrValue('acceleration_enabled') and flooring_layer_count > 0 and bottom_layers > 0",
"limit_to_extruder": "wall_0_extruder_nr",
"settable_per_mesh": true
},
@ -3923,7 +3931,7 @@
"maximum_value_warning": "10000",
"default_value": 3000,
"value": "acceleration_wall_x",
"enabled": "resolveOrValue('acceleration_enabled')",
"enabled": "resolveOrValue('acceleration_enabled') and flooring_layer_count > 0 and bottom_layers > 0",
"limit_to_extruder": "wall_x_extruder_nr",
"settable_per_mesh": true
}
@ -4251,7 +4259,7 @@
"maximum_value_warning": "50",
"default_value": 20,
"value": "jerk_wall_0",
"enabled": "resolveOrValue('jerk_enabled')",
"enabled": "resolveOrValue('jerk_enabled') and roofing_layer_count > 0 and top_layers > 0",
"limit_to_extruder": "wall_0_extruder_nr",
"settable_per_mesh": true
},
@ -4265,7 +4273,7 @@
"maximum_value_warning": "50",
"default_value": 20,
"value": "jerk_wall_x",
"enabled": "resolveOrValue('jerk_enabled')",
"enabled": "resolveOrValue('jerk_enabled') and roofing_layer_count > 0 and top_layers > 0",
"limit_to_extruder": "wall_x_extruder_nr",
"settable_per_mesh": true
},
@ -4279,7 +4287,7 @@
"maximum_value_warning": "50",
"default_value": 20,
"value": "jerk_wall_0",
"enabled": "resolveOrValue('jerk_enabled')",
"enabled": "resolveOrValue('jerk_enabled') and flooring_layer_count > 0 and bottom_layers > 0",
"limit_to_extruder": "wall_0_extruder_nr",
"settable_per_mesh": true
},
@ -4293,7 +4301,7 @@
"maximum_value_warning": "50",
"default_value": 20,
"value": "jerk_wall_x",
"enabled": "resolveOrValue('jerk_enabled')",
"enabled": "resolveOrValue('jerk_enabled') and flooring_layer_count > 0 and bottom_layers > 0",
"limit_to_extruder": "wall_x_extruder_nr",
"settable_per_mesh": true
}

View File

@ -84,7 +84,7 @@
"material_standby_temperature":
{
"minimum_value": "0",
"value": "material_print_temperature - 100"
"value": "resolveOrValue('material_print_temperature') - 100"
},
"meshfix_maximum_deviation": { "value": "machine_nozzle_size / 10" },
"meshfix_maximum_resolution": { "value": "max(speed_wall_0 / 75, 0.5)" },

View File

@ -48,27 +48,145 @@
},
"overrides":
{
"acceleration_infill": { "value": "acceleration_print" },
"acceleration_layer_0": { "value": 2000 },
"acceleration_prime_tower": { "value": "acceleration_print" },
"acceleration_print": { "value": 20000 },
"acceleration_print_layer_0": { "value": "acceleration_layer_0" },
"acceleration_roofing": { "value": "acceleration_wall_0" },
"acceleration_skirt_brim": { "value": "acceleration_layer_0" },
"acceleration_support": { "value": "acceleration_print" },
"acceleration_support_bottom": { "value": "acceleration_support_interface" },
"acceleration_support_infill": { "value": "acceleration_support" },
"acceleration_support_interface": { "value": "acceleration_support" },
"acceleration_support_roof": { "value": "acceleration_support_interface" },
"acceleration_topbottom": { "value": "acceleration_print" },
"acceleration_travel": { "value": 10000 },
"acceleration_flooring":
{
"maximum_value": "machine_max_acceleration_x",
"maximum_value_warning": "machine_max_acceleration_x*0.8",
"value": "acceleration_roofing"
},
"acceleration_infill":
{
"maximum_value": "machine_max_acceleration_x",
"maximum_value_warning": "machine_max_acceleration_x*0.8",
"value": "acceleration_print"
},
"acceleration_layer_0":
{
"maximum_value": "machine_max_acceleration_x",
"maximum_value_warning": "machine_max_acceleration_x*0.8",
"value": 2000
},
"acceleration_prime_tower":
{
"maximum_value": "machine_max_acceleration_x",
"maximum_value_warning": "machine_max_acceleration_x*0.8",
"value": "acceleration_print"
},
"acceleration_print":
{
"maximum_value": "machine_max_acceleration_x",
"maximum_value_warning": "machine_max_acceleration_x*0.8",
"value": 20000
},
"acceleration_print_layer_0":
{
"maximum_value": "machine_max_acceleration_x",
"maximum_value_warning": "machine_max_acceleration_x*0.8",
"value": "acceleration_layer_0"
},
"acceleration_roofing":
{
"maximum_value": "machine_max_acceleration_x",
"maximum_value_warning": "machine_max_acceleration_x*0.8",
"value": "acceleration_wall_0"
},
"acceleration_skirt_brim":
{
"maximum_value": "machine_max_acceleration_x",
"maximum_value_warning": "machine_max_acceleration_x*0.8",
"value": "acceleration_layer_0"
},
"acceleration_support":
{
"maximum_value": "machine_max_acceleration_x",
"maximum_value_warning": "machine_max_acceleration_x*0.8",
"value": "acceleration_print"
},
"acceleration_support_bottom":
{
"maximum_value": "machine_max_acceleration_x",
"maximum_value_warning": "machine_max_acceleration_x*0.8",
"value": "acceleration_support_interface"
},
"acceleration_support_infill":
{
"maximum_value": "machine_max_acceleration_x",
"maximum_value_warning": "machine_max_acceleration_x*0.8",
"value": "acceleration_support"
},
"acceleration_support_interface":
{
"maximum_value": "machine_max_acceleration_x",
"maximum_value_warning": "machine_max_acceleration_x*0.8",
"value": "acceleration_support"
},
"acceleration_support_roof":
{
"maximum_value": "machine_max_acceleration_x",
"maximum_value_warning": "machine_max_acceleration_x*0.8",
"value": "acceleration_support_interface"
},
"acceleration_topbottom":
{
"maximum_value": "machine_max_acceleration_x",
"maximum_value_warning": "machine_max_acceleration_x*0.8",
"value": "acceleration_print"
},
"acceleration_travel":
{
"maximum_value": "machine_max_acceleration_x",
"maximum_value_warning": "machine_max_acceleration_x*0.8",
"value": 10000
},
"acceleration_travel_enabled": { "value": true },
"acceleration_travel_layer_0": { "value": "acceleration_layer_0" },
"acceleration_wall": { "value": "acceleration_print/8" },
"acceleration_wall_0": { "value": "acceleration_wall" },
"acceleration_wall_0_roofing": { "value": "acceleration_wall_0" },
"acceleration_wall_x": { "value": "acceleration_print" },
"acceleration_wall_x_roofing": { "value": "acceleration_wall" },
"acceleration_travel_layer_0":
{
"maximum_value": "machine_max_acceleration_x",
"maximum_value_warning": "machine_max_acceleration_x*0.8",
"value": "acceleration_layer_0"
},
"acceleration_wall":
{
"maximum_value": "machine_max_acceleration_x",
"maximum_value_warning": "machine_max_acceleration_x*0.8",
"value": "acceleration_print/8"
},
"acceleration_wall_0":
{
"maximum_value": "machine_max_acceleration_x",
"maximum_value_warning": "machine_max_acceleration_x*0.8",
"value": "acceleration_wall"
},
"acceleration_wall_0_flooring":
{
"maximum_value": "machine_max_acceleration_x",
"maximum_value_warning": "machine_max_acceleration_x*0.8",
"value": "acceleration_wall_0_roofing"
},
"acceleration_wall_0_roofing":
{
"maximum_value": "machine_max_acceleration_x",
"maximum_value_warning": "machine_max_acceleration_x*0.8",
"value": "acceleration_wall_0"
},
"acceleration_wall_x":
{
"maximum_value": "machine_max_acceleration_x",
"maximum_value_warning": "machine_max_acceleration_x*0.8",
"value": "acceleration_print"
},
"acceleration_wall_x_flooring":
{
"maximum_value": "machine_max_acceleration_x",
"maximum_value_warning": "machine_max_acceleration_x*0.8",
"value": "acceleration_wall_x_roofing"
},
"acceleration_wall_x_roofing":
{
"maximum_value": "machine_max_acceleration_x",
"maximum_value_warning": "machine_max_acceleration_x*0.8",
"value": "acceleration_wall"
},
"adhesion_type": { "value": "'brim' if support_enable and support_structure=='tree' else 'skirt'" },
"bottom_thickness": { "value": "3*layer_height if top_layers==4 and not support_enable else top_bottom_thickness" },
"bridge_skin_material_flow": { "value": 200 },
@ -89,10 +207,14 @@
"cool_min_layer_time_overhang": { "value": 9 },
"cool_min_layer_time_overhang_min_segment_length": { "value": 2 },
"cool_min_speed": { "value": 6 },
"cool_min_temperature": { "value": "material_print_temperature-15" },
"cool_min_temperature":
{
"minimum_value_warning": "material_print_temperature-15",
"value": "material_print_temperature-15"
},
"default_material_print_temperature": { "maximum_value_warning": 320 },
"extra_infill_lines_to_support_skins": { "value": "'walls_and_lines'" },
"flooring_layer_count": { "value": 0 },
"flooring_layer_count": { "value": 1 },
"gradual_flow_enabled": { "value": false },
"hole_xy_offset": { "value": 0.075 },
"infill_material_flow": { "value": "material_flow" },
@ -241,6 +363,8 @@
"value": "jerk_wall_0"
},
"machine_gcode_flavor": { "default_value": "Cheetah" },
"machine_max_acceleration_x": { "default_value": 50000 },
"machine_max_acceleration_y": { "default_value": 50000 },
"machine_max_feedrate_x": { "default_value": 500 },
"machine_max_feedrate_y": { "default_value": 500 },
"machine_max_jerk_e":
@ -281,6 +405,7 @@
"optimize_wall_printing_order": { "value": 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 },
@ -293,6 +418,7 @@
"skin_material_flow": { "value": 95 },
"skin_overlap": { "value": 0 },
"skin_preshrink": { "value": 0 },
"skirt_brim_minimal_length": { "value": 1000 },
"skirt_brim_speed":
{
"maximum_value_warning": 300,
@ -344,7 +470,7 @@
"speed_support":
{
"maximum_value_warning": 300,
"value": "speed_print"
"value": "speed_wall"
},
"speed_support_bottom":
{
@ -374,11 +500,13 @@
"speed_travel":
{
"maximum_value": 500,
"maximum_value_warning": 400,
"value": 400
},
"speed_travel_layer_0":
{
"maximum_value": 500,
"maximum_value_warning": 400,
"value": 150
},
"speed_wall":
@ -417,13 +545,17 @@
"value": "speed_wall"
},
"support_angle": { "value": 60 },
"support_bottom_distance": { "maximum_value_warning": "3*layer_height" },
"support_bottom_offset": { "value": 0 },
"support_brim_width": { "value": 10 },
"support_interface_enable": { "value": true },
"support_interface_offset": { "value": "support_offset" },
"support_line_width": { "value": "1.25*line_width" },
"support_offset": { "value": "1.2 if support_structure == 'tree' else 0.8" },
"support_pattern": { "value": "'gyroid' if support_structure == 'tree' else 'lines'" },
"support_roof_height": { "minimum_value_warning": 0 },
"support_structure": { "value": "'normal'" },
"support_top_distance": { "maximum_value_warning": "3*layer_height" },
"support_tree_bp_diameter": { "value": 15 },
"support_tree_tip_diameter": { "value": 1.0 },
"support_tree_top_rate": { "value": 20 },

View File

@ -5,6 +5,7 @@ version = 4
[metadata]
intent_category = engineering
is_experimental = True
material = generic_nylon-cf-slide
quality_type = draft
setting_version = 25

View File

@ -5,6 +5,7 @@ version = 4
[metadata]
intent_category = engineering
is_experimental = True
material = generic_nylon-cf-slide
quality_type = draft
setting_version = 25

View File

@ -46,33 +46,26 @@ Item
text:
{
if(provider.properties.enabled == "True")
{
return ""
}
var key = definition ? definition.key : ""
var requires = settingDefinitionsModel.getRequires(key, "enabled")
if (requires.length == 0)
{
return catalog.i18nc("@item:tooltip", "This setting has been hidden by the active machine and will not be visible.");
}
else
{
var requires_text = ""
for (var i in requires)
{
if (requires_text == "")
{
requires_text = requires[i].label
}
else
{
requires_text += ", " + requires[i].label
}
}
if (provider.properties.enabled === "True") return "";
return catalog.i18ncp("@item:tooltip %1 is list of setting names", "This setting has been hidden by the value of %1. Change the value of that setting to make this setting visible.", "This setting has been hidden by the values of %1. Change the values of those settings to make this setting visible.", requires.length) .arg(requires_text);
var key = definition ? definition.key : "";
var requires = settingDefinitionsModel.getRequires(key, "enabled");
if (requires.length === 0) {
return catalog.i18nc(
"@item:tooltip",
"This setting has been hidden by the active machine and will not be visible."
);
}
var requiresText = requires.map(r => r.label).join(", ");
return catalog.i18ncp(
"@item:tooltip %1 is list of setting names",
"This setting has been hidden by the value of %1. Change the value of that setting to make this setting visible.",
"This setting has been hidden by the values of %1. Change the values of those settings to make this setting visible.",
requires.length
).arg(requiresText);
}
UM.ColorImage

View File

@ -1,7 +1,7 @@
// Copyright (c) 2022 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.1
import QtQuick 2.15
import QtQuick.Controls 2.15
import UM 1.5 as UM
@ -27,10 +27,7 @@ UM.PreferencesPage
]
signal scrollToSection( string key )
onScrollToSection:
{
settingsListView.positionViewAtIndex(definitionsModel.getIndex(key), ListView.Beginning)
}
onScrollToSection: settingsListView.positionViewAtIndex(definitionsModel.getIndex(key), ListView.Beginning)
function reset()
{
@ -118,30 +115,14 @@ UM.PreferencesPage
model: settingVisibilityPresetsModel.items
textRole: "name"
currentIndex:
{
var idx = -1;
for(var i = 0; i < settingVisibilityPresetsModel.items.length; ++i)
{
if(settingVisibilityPresetsModel.items[i].presetId === settingVisibilityPresetsModel.activePreset)
{
idx = i;
break;
}
}
return idx;
}
onActivated:
{
var preset_id = settingVisibilityPresetsModel.items[index].presetId
settingVisibilityPresetsModel.setActivePreset(preset_id)
}
currentIndex: settingVisibilityPresetsModel.items.findIndex(i => i.presetId === settingVisibilityPresetsModel.activePreset)
onActivated: settingVisibilityPresetsModel.setActivePreset(settingVisibilityPresetsModel.items[index].presetId)
}
ListView
{
id: settingsListView
reuseItems: true
anchors
{
top: filter.bottom
@ -164,33 +145,31 @@ UM.PreferencesPage
expanded: ["*"]
visibilityHandler: UM.SettingPreferenceVisibilityHandler {}
}
cacheBuffer: 1000000 // Set a large cache to effectively just cache every list item.
property Component settingVisibilityCategory: Cura.SettingVisibilityCategory {}
property Component settingVisibilityItem: Cura.SettingVisibilityItem {}
Component
{
id: settingVisibilityCategory
Cura.SettingVisibilityCategory {}
}
Component
{
id: settingVisibilityItem
Cura.SettingVisibilityItem {}
}
delegate: Loader
{
id: loader
width: settingsListView.width - scrollBar.width
height: model.type !== undefined ? UM.Theme.getSize("section").height : 0
property var definition: model
property var settingDefinitionsModel: definitionsModel
asynchronous: true
asynchronous: false
active: model.type !== undefined
sourceComponent:
{
switch (model.type)
{
case "category":
return settingsListView.settingVisibilityCategory
default:
return settingsListView.settingVisibilityItem
}
}
sourceComponent: model.type === "category" ? settingVisibilityCategory : settingVisibilityItem
}
}
}

View File

@ -1,9 +1,10 @@
[general]
definition = ultimaker_s3
name = Fast
name = Fast - Experimental
version = 4
[metadata]
is_experimental = True
material = generic_nylon-cf-slide
quality_type = draft
setting_version = 25

View File

@ -1,9 +1,10 @@
[general]
definition = ultimaker_s5
name = Fast
name = Fast - Experimental
version = 4
[metadata]
is_experimental = True
material = generic_nylon-cf-slide
quality_type = draft
setting_version = 25