mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-06 22:47:29 -06:00
Reset extruder numbers whose values are no longer valid
CURA-4176 After the user changes the number of extruders for a machine, some extruder number settings may not have valid values any more. These settings need to be reset.`
This commit is contained in:
parent
e8bd404904
commit
fe70e19089
1 changed files with 11 additions and 5 deletions
|
@ -147,6 +147,7 @@ class MachineSettingsAction(MachineAction):
|
||||||
for setting_instance in extruder_user_container.findInstances():
|
for setting_instance in extruder_user_container.findInstances():
|
||||||
setting_key = setting_instance.definition.key
|
setting_key = setting_instance.definition.key
|
||||||
settable_per_extruder = self._global_container_stack.getProperty(setting_key, "settable_per_extruder")
|
settable_per_extruder = self._global_container_stack.getProperty(setting_key, "settable_per_extruder")
|
||||||
|
|
||||||
if settable_per_extruder:
|
if settable_per_extruder:
|
||||||
limit_to_extruder = self._global_container_stack.getProperty(setting_key, "limit_to_extruder")
|
limit_to_extruder = self._global_container_stack.getProperty(setting_key, "limit_to_extruder")
|
||||||
|
|
||||||
|
@ -154,11 +155,16 @@ class MachineSettingsAction(MachineAction):
|
||||||
global_user_container.setProperty(setting_key, "value", extruder_user_container.getProperty(setting_key, "value"))
|
global_user_container.setProperty(setting_key, "value", extruder_user_container.getProperty(setting_key, "value"))
|
||||||
extruder_user_container.removeInstance(setting_key)
|
extruder_user_container.removeInstance(setting_key)
|
||||||
|
|
||||||
# Check to see if any features are set to print with an extruder that will no longer exist
|
# reset all extruder number settings whose value is no longer valid
|
||||||
for setting_key in ["adhesion_extruder_nr", "support_extruder_nr", "support_extruder_nr_layer_0", "support_infill_extruder_nr", "support_interface_extruder_nr"]:
|
for setting_instance in self._global_container_stack.userChanges.findInstances():
|
||||||
if int(self._global_container_stack.getProperty(setting_key, "value")) > extruder_count - 1:
|
setting_key = setting_instance.definition.key
|
||||||
Logger.log("i", "Lowering %s setting to match number of extruders", setting_key)
|
if not self._global_container_stack.getProperty(setting_key, "type") in ("extruder", "optional_extruder"):
|
||||||
self._global_container_stack.getTop().setProperty(setting_key, "value", extruder_count - 1)
|
continue
|
||||||
|
|
||||||
|
old_value = int(self._global_container_stack.userChanges.getProperty(setting_key, "value"))
|
||||||
|
if old_value >= extruder_count:
|
||||||
|
self._global_container_stack.userChanges.removeInstance(setting_key)
|
||||||
|
Logger.log("d", "Reset [%s] because its old value [%s] is no longer valid ", setting_key, old_value)
|
||||||
|
|
||||||
# Check to see if any objects are set to print with an extruder that will no longer exist
|
# Check to see if any objects are set to print with an extruder that will no longer exist
|
||||||
root_node = Application.getInstance().getController().getScene().getRoot()
|
root_node = Application.getInstance().getController().getScene().getRoot()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue