mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-08-04 06:40:36 +08:00
Merge branch 'master' of github.com:Ultimaker/Cura
This commit is contained in:
commit
b2068ce99b
@ -8,6 +8,8 @@ from UM.Application import Application
|
||||
from UM.Preferences import Preferences
|
||||
from UM.Logger import Logger
|
||||
|
||||
from UM.Settings.SettingRelation import RelationType
|
||||
|
||||
import UM.Settings
|
||||
|
||||
from cura.PrinterOutputDevice import PrinterOutputDevice
|
||||
@ -240,15 +242,19 @@ class MachineManager(QObject):
|
||||
|
||||
def _onPropertyChanged(self, key, property_name):
|
||||
if property_name == "value":
|
||||
# If a setting is not settable per extruder but at the same time settable per mesh, the engine needs a value in the extruder stack
|
||||
# This is mainly the case for the "support_enable" setting.
|
||||
if self._active_container_stack.getProperty(key, "settable_per_mesh") and not self._active_container_stack.getProperty(key, "settable_per_extruder"):
|
||||
if self._active_container_stack and self._global_container_stack.getProperty("machine_extruder_count", "value") > 1:
|
||||
new_value = self._global_container_stack.getProperty(key, "value")
|
||||
stacks = [stack for stack in ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId())]
|
||||
for extruder_stack in stacks:
|
||||
if extruder_stack.getProperty(key, "value") != new_value:
|
||||
extruder_stack.getTop().setProperty(key, "value", new_value)
|
||||
# If a setting is not settable per extruder, but "has enabled relations" that are settable per extruder
|
||||
# we need to copy the value to global, so that the front-end displays the right settings.
|
||||
if not self._active_container_stack.getProperty(key, "settable_per_extruder"):
|
||||
relations = self._global_container_stack.getBottom()._getDefinition(key).relations
|
||||
for relation in filter(lambda r: r.role == "enabled" and r.type == RelationType.RequiredByTarget, relations):
|
||||
# Target setting is settable per extruder
|
||||
if self._active_container_stack.getProperty(relation.target.key, "settable_per_extruder"):
|
||||
new_value = self._global_container_stack.getProperty(key, "value")
|
||||
stacks = [stack for stack in ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId())]
|
||||
for extruder_stack in stacks:
|
||||
if extruder_stack.getProperty(key, "value") != new_value:
|
||||
extruder_stack.getTop().setProperty(key, "value", new_value)
|
||||
break
|
||||
|
||||
if property_name == "validationState":
|
||||
if self._active_stack_valid:
|
||||
@ -576,10 +582,15 @@ class MachineManager(QObject):
|
||||
|
||||
criteria = { "quality_type": quality_type, "extruder": extruder_id }
|
||||
|
||||
if self._global_container_stack.getMetaDataEntry("has_machine_quality"):
|
||||
material = stack.findContainer(type = "material")
|
||||
material = stack.findContainer(type = "material")
|
||||
if material and material is not self._empty_material_container:
|
||||
criteria["material"] = material.getId()
|
||||
|
||||
if self._global_container_stack.getMetaDataEntry("has_machine_quality"):
|
||||
criteria["definition"] = self._global_container_stack.getBottom().getId()
|
||||
else:
|
||||
criteria["definition"] = "fdmprinter"
|
||||
|
||||
stack_quality = UM.Settings.ContainerRegistry.getInstance().findInstanceContainers(**criteria)
|
||||
if not stack_quality:
|
||||
criteria.pop("extruder")
|
||||
@ -822,6 +833,9 @@ class MachineManager(QObject):
|
||||
if definition.getMetaDataEntry("has_machine_quality"):
|
||||
if material_container:
|
||||
material_search_criteria["definition"] = material_container.getDefinition().id
|
||||
|
||||
if definition.getMetaDataEntry("has_variants"):
|
||||
material_search_criteria["variant"] = material_container.getMetaDataEntry("variant")
|
||||
else:
|
||||
material_search_criteria["definition"] = definition.id
|
||||
|
||||
|
@ -628,7 +628,8 @@
|
||||
"value": "line_width",
|
||||
"enabled": "adhesion_type == \"skirt\" or adhesion_type == \"brim\"",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
"settable_per_extruder": true,
|
||||
"global_inherits_stack": "adhesion_extruder_nr"
|
||||
},
|
||||
"support_line_width":
|
||||
{
|
||||
@ -1575,7 +1576,8 @@
|
||||
"value": "speed_layer_0",
|
||||
"enabled": "adhesion_type == \"skirt\" or adhesion_type == \"brim\"",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
"settable_per_extruder": true,
|
||||
"global_inherits_stack": "adhesion_extruder_nr"
|
||||
},
|
||||
"max_feedrate_z_override":
|
||||
{
|
||||
@ -1840,7 +1842,8 @@
|
||||
"minimum_value_warning": "100",
|
||||
"maximum_value_warning": "10000",
|
||||
"enabled": "acceleration_enabled",
|
||||
"settable_per_mesh": false
|
||||
"settable_per_mesh": false,
|
||||
"global_inherits_stack": "adhesion_extruder_nr"
|
||||
},
|
||||
|
||||
|
||||
@ -2059,7 +2062,8 @@
|
||||
"maximum_value_warning": "50",
|
||||
"value": "jerk_layer_0",
|
||||
"enabled": "jerk_enabled",
|
||||
"settable_per_mesh": false
|
||||
"settable_per_mesh": false,
|
||||
"global_inherits_stack": "adhesion_extruder_nr"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -2701,7 +2705,8 @@
|
||||
"maximum_value_warning": "10",
|
||||
"enabled": "adhesion_type == \"skirt\"",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
"settable_per_extruder": true,
|
||||
"global_inherits_stack": "adhesion_extruder_nr"
|
||||
},
|
||||
"skirt_gap":
|
||||
{
|
||||
@ -2714,7 +2719,8 @@
|
||||
"maximum_value_warning": "100",
|
||||
"enabled": "adhesion_type == \"skirt\"",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
"settable_per_extruder": true,
|
||||
"global_inherits_stack": "adhesion_extruder_nr"
|
||||
},
|
||||
"skirt_brim_minimal_length":
|
||||
{
|
||||
@ -2728,7 +2734,8 @@
|
||||
"maximum_value_warning": "2500",
|
||||
"enabled": "adhesion_type == \"skirt\" or adhesion_type == \"brim\"",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
"settable_per_extruder": true,
|
||||
"global_inherits_stack": "adhesion_extruder_nr"
|
||||
},
|
||||
"brim_width":
|
||||
{
|
||||
@ -2742,6 +2749,7 @@
|
||||
"enabled": "adhesion_type == \"brim\"",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true,
|
||||
"global_inherits_stack": "adhesion_extruder_nr",
|
||||
"children":
|
||||
{
|
||||
"brim_line_count":
|
||||
@ -2755,7 +2763,8 @@
|
||||
"value": "math.ceil(brim_width / skirt_brim_line_width)",
|
||||
"enabled": "adhesion_type == \"brim\"",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
"settable_per_extruder": true,
|
||||
"global_inherits_stack": "adhesion_extruder_nr"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -2767,7 +2776,8 @@
|
||||
"default_value": true,
|
||||
"enabled": "adhesion_type == \"brim\"",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
"settable_per_extruder": true,
|
||||
"global_inherits_stack": "adhesion_extruder_nr"
|
||||
},
|
||||
"raft_margin":
|
||||
{
|
||||
@ -2778,7 +2788,8 @@
|
||||
"default_value": 15,
|
||||
"minimum_value_warning": "0",
|
||||
"maximum_value_warning": "10",
|
||||
"enabled": "adhesion_type == \"raft\""
|
||||
"enabled": "adhesion_type == \"raft\"",
|
||||
"global_inherits_stack": "adhesion_extruder_nr"
|
||||
},
|
||||
"raft_airgap":
|
||||
{
|
||||
@ -2791,7 +2802,8 @@
|
||||
"maximum_value_warning": "1.0",
|
||||
"enabled": "adhesion_type == \"raft\"",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
"settable_per_extruder": true,
|
||||
"global_inherits_stack": "adhesion_extruder_nr"
|
||||
},
|
||||
"layer_0_z_overlap": {
|
||||
"label": "Initial Layer Z Overlap",
|
||||
@ -2804,7 +2816,8 @@
|
||||
"maximum_value_warning": "layer_height",
|
||||
"enabled": "adhesion_type == \"raft\"",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
"settable_per_extruder": true,
|
||||
"global_inherits_stack": "adhesion_extruder_nr"
|
||||
},
|
||||
"raft_surface_layers":
|
||||
{
|
||||
@ -2816,7 +2829,8 @@
|
||||
"maximum_value_warning": "20",
|
||||
"enabled": "adhesion_type == \"raft\"",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
"settable_per_extruder": true,
|
||||
"global_inherits_stack": "adhesion_extruder_nr"
|
||||
},
|
||||
"raft_surface_thickness":
|
||||
{
|
||||
@ -2830,7 +2844,8 @@
|
||||
"maximum_value_warning": "2.0",
|
||||
"enabled": "adhesion_type == \"raft\"",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
"settable_per_extruder": true,
|
||||
"global_inherits_stack": "adhesion_extruder_nr"
|
||||
},
|
||||
"raft_surface_line_width":
|
||||
{
|
||||
@ -2844,7 +2859,8 @@
|
||||
"maximum_value_warning": "machine_nozzle_size * 2",
|
||||
"enabled": "adhesion_type == \"raft\"",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
"settable_per_extruder": true,
|
||||
"global_inherits_stack": "adhesion_extruder_nr"
|
||||
},
|
||||
"raft_surface_line_spacing":
|
||||
{
|
||||
@ -2858,7 +2874,8 @@
|
||||
"enabled": "adhesion_type == \"raft\"",
|
||||
"value": "raft_surface_line_width",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
"settable_per_extruder": true,
|
||||
"global_inherits_stack": "adhesion_extruder_nr"
|
||||
},
|
||||
"raft_interface_thickness":
|
||||
{
|
||||
@ -2872,7 +2889,8 @@
|
||||
"maximum_value_warning": "5.0",
|
||||
"enabled": "adhesion_type == \"raft\"",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
"settable_per_extruder": true,
|
||||
"global_inherits_stack": "adhesion_extruder_nr"
|
||||
},
|
||||
"raft_interface_line_width":
|
||||
{
|
||||
@ -2886,7 +2904,8 @@
|
||||
"maximum_value_warning": "machine_nozzle_size * 2",
|
||||
"enabled": "adhesion_type == \"raft\"",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
"settable_per_extruder": true,
|
||||
"global_inherits_stack": "adhesion_extruder_nr"
|
||||
},
|
||||
"raft_interface_line_spacing":
|
||||
{
|
||||
@ -2900,7 +2919,8 @@
|
||||
"maximum_value_warning": "15.0",
|
||||
"enabled": "adhesion_type == \"raft\"",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
"settable_per_extruder": true,
|
||||
"global_inherits_stack": "adhesion_extruder_nr"
|
||||
},
|
||||
"raft_base_thickness":
|
||||
{
|
||||
@ -2914,7 +2934,8 @@
|
||||
"maximum_value_warning": "5.0",
|
||||
"enabled": "adhesion_type == \"raft\"",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
"settable_per_extruder": true,
|
||||
"global_inherits_stack": "adhesion_extruder_nr"
|
||||
},
|
||||
"raft_base_line_width":
|
||||
{
|
||||
@ -2928,7 +2949,8 @@
|
||||
"maximum_value_warning": "machine_nozzle_size * 3",
|
||||
"enabled": "adhesion_type == \"raft\"",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
"settable_per_extruder": true,
|
||||
"global_inherits_stack": "adhesion_extruder_nr"
|
||||
},
|
||||
"raft_base_line_spacing":
|
||||
{
|
||||
@ -2942,7 +2964,8 @@
|
||||
"maximum_value_warning": "100",
|
||||
"enabled": "adhesion_type == \"raft\"",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
"settable_per_extruder": true,
|
||||
"global_inherits_stack": "adhesion_extruder_nr"
|
||||
},
|
||||
"raft_speed":
|
||||
{
|
||||
@ -2958,6 +2981,7 @@
|
||||
"value": "speed_print / 60 * 30",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true,
|
||||
"global_inherits_stack": "adhesion_extruder_nr",
|
||||
"children":
|
||||
{
|
||||
"raft_surface_speed":
|
||||
@ -2973,7 +2997,8 @@
|
||||
"enabled": "adhesion_type == \"raft\"",
|
||||
"value": "raft_speed",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
"settable_per_extruder": true,
|
||||
"global_inherits_stack": "adhesion_extruder_nr"
|
||||
},
|
||||
"raft_interface_speed":
|
||||
{
|
||||
@ -2988,7 +3013,8 @@
|
||||
"maximum_value_warning": "150",
|
||||
"enabled": "adhesion_type == \"raft\"",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
"settable_per_extruder": true,
|
||||
"global_inherits_stack": "adhesion_extruder_nr"
|
||||
},
|
||||
"raft_base_speed":
|
||||
{
|
||||
@ -3003,13 +3029,11 @@
|
||||
"enabled": "adhesion_type == \"raft\"",
|
||||
"value": "0.75 * raft_speed",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
"settable_per_extruder": true,
|
||||
"global_inherits_stack": "adhesion_extruder_nr"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
|
||||
"raft_acceleration": {
|
||||
"label": "Raft Print Acceleration",
|
||||
"description": "The acceleration with which the raft is printed.",
|
||||
@ -3022,6 +3046,7 @@
|
||||
"value": "acceleration_print",
|
||||
"enabled": "adhesion_type == \"raft\" and acceleration_enabled",
|
||||
"settable_per_mesh": false,
|
||||
"global_inherits_stack": "adhesion_extruder_nr",
|
||||
"children": {
|
||||
"raft_surface_acceleration": {
|
||||
"label": "Raft Top Print Acceleration",
|
||||
@ -3034,7 +3059,8 @@
|
||||
"minimum_value_warning": "100",
|
||||
"maximum_value_warning": "10000",
|
||||
"enabled": "adhesion_type == \"raft\" and acceleration_enabled",
|
||||
"settable_per_mesh": false
|
||||
"settable_per_mesh": false,
|
||||
"global_inherits_stack": "adhesion_extruder_nr"
|
||||
},
|
||||
"raft_interface_acceleration": {
|
||||
"label": "Raft Middle Print Acceleration",
|
||||
@ -3047,7 +3073,8 @@
|
||||
"minimum_value_warning": "100",
|
||||
"maximum_value_warning": "10000",
|
||||
"enabled": "adhesion_type == \"raft\" and acceleration_enabled",
|
||||
"settable_per_mesh": false
|
||||
"settable_per_mesh": false,
|
||||
"global_inherits_stack": "adhesion_extruder_nr"
|
||||
},
|
||||
"raft_base_acceleration": {
|
||||
"label": "Raft Base Print Acceleration",
|
||||
@ -3060,13 +3087,11 @@
|
||||
"minimum_value_warning": "100",
|
||||
"maximum_value_warning": "10000",
|
||||
"enabled": "adhesion_type == \"raft\" and acceleration_enabled",
|
||||
"settable_per_mesh": false
|
||||
"settable_per_mesh": false,
|
||||
"global_inherits_stack": "adhesion_extruder_nr"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
|
||||
"raft_jerk": {
|
||||
"label": "Raft Print Jerk",
|
||||
"description": "The jerk with which the raft is printed.",
|
||||
@ -3079,6 +3104,7 @@
|
||||
"value": "jerk_print",
|
||||
"enabled": "adhesion_type == \"raft\" and jerk_enabled",
|
||||
"settable_per_mesh": false,
|
||||
"global_inherits_stack": "adhesion_extruder_nr",
|
||||
"children": {
|
||||
"raft_surface_jerk": {
|
||||
"label": "Raft Top Print Jerk",
|
||||
@ -3091,7 +3117,8 @@
|
||||
"minimum_value_warning": "5",
|
||||
"maximum_value_warning": "100",
|
||||
"enabled": "adhesion_type == \"raft\" and jerk_enabled",
|
||||
"settable_per_mesh": false
|
||||
"settable_per_mesh": false,
|
||||
"global_inherits_stack": "adhesion_extruder_nr"
|
||||
},
|
||||
"raft_interface_jerk": {
|
||||
"label": "Raft Middle Print Jerk",
|
||||
@ -3104,7 +3131,8 @@
|
||||
"minimum_value_warning": "5",
|
||||
"maximum_value_warning": "50",
|
||||
"enabled": "adhesion_type == \"raft\" and jerk_enabled",
|
||||
"settable_per_mesh": false
|
||||
"settable_per_mesh": false,
|
||||
"global_inherits_stack": "adhesion_extruder_nr"
|
||||
},
|
||||
"raft_base_jerk": {
|
||||
"label": "Raft Base Print Jerk",
|
||||
@ -3117,12 +3145,11 @@
|
||||
"minimum_value_warning": "5",
|
||||
"maximum_value_warning": "50",
|
||||
"enabled": "adhesion_type == \"raft\" and jerk_enabled",
|
||||
"settable_per_mesh": false
|
||||
"settable_per_mesh": false,
|
||||
"global_inherits_stack": "adhesion_extruder_nr"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
"raft_fan_speed": {
|
||||
"label": "Raft Fan Speed",
|
||||
"description": "The fan speed for the raft.",
|
||||
@ -3134,6 +3161,7 @@
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true,
|
||||
"enabled": "adhesion_type == \"raft\"",
|
||||
"global_inherits_stack": "adhesion_extruder_nr",
|
||||
"children":
|
||||
{
|
||||
"raft_surface_fan_speed":
|
||||
@ -3148,7 +3176,8 @@
|
||||
"value": "raft_fan_speed",
|
||||
"enabled": "adhesion_type == \"raft\"",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
"settable_per_extruder": true,
|
||||
"global_inherits_stack": "adhesion_extruder_nr"
|
||||
},
|
||||
"raft_interface_fan_speed":
|
||||
{
|
||||
@ -3162,7 +3191,8 @@
|
||||
"value": "raft_fan_speed",
|
||||
"enabled": "adhesion_type == \"raft\"",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
"settable_per_extruder": true,
|
||||
"global_inherits_stack": "adhesion_extruder_nr"
|
||||
},
|
||||
"raft_base_fan_speed":
|
||||
{
|
||||
@ -3176,7 +3206,8 @@
|
||||
"value": "raft_fan_speed",
|
||||
"enabled": "adhesion_type == \"raft\"",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
"settable_per_extruder": true,
|
||||
"global_inherits_stack": "adhesion_extruder_nr"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user