mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-06 22:47:29 -06:00
CURA-4839 Fix single extrusing for overrite the extruder stack.
This commit is contained in:
parent
20ab6265c8
commit
619a8ccce5
1 changed files with 12 additions and 19 deletions
|
@ -754,25 +754,18 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
|
||||||
# If not extruder stacks were saved in the project file (pre 3.1) create one manually
|
# If not extruder stacks were saved in the project file (pre 3.1) create one manually
|
||||||
# We re-use the container registry's addExtruderStackForSingleExtrusionMachine method for this
|
# We re-use the container registry's addExtruderStackForSingleExtrusionMachine method for this
|
||||||
if not extruder_stacks:
|
if not extruder_stacks:
|
||||||
if self._resolve_strategies["machine"] == "new":
|
stack = self._container_registry.addExtruderStackForSingleExtrusionMachine(global_stack, "fdmextruder")
|
||||||
stack = self._container_registry.addExtruderStackForSingleExtrusionMachine(global_stack, "fdmextruder")
|
if global_stack.quality.getId() in ("empty", "empty_quality"):
|
||||||
|
stack.quality = empty_quality_container
|
||||||
|
if self._resolve_strategies["machine"] == "override":
|
||||||
|
# in case the extruder is newly created (for a single-extrusion machine), we need to override
|
||||||
|
# the existing extruder stack.
|
||||||
|
existing_extruder_stack = global_stack.extruders[stack.getMetaDataEntry("position")]
|
||||||
|
for idx in range(len(_ContainerIndexes.IndexTypeMap)):
|
||||||
|
existing_extruder_stack.replaceContainer(idx, stack._containers[idx], postpone_emit = True)
|
||||||
|
extruder_stacks.append(existing_extruder_stack)
|
||||||
else:
|
else:
|
||||||
stack = global_stack.extruders.get("0")
|
extruder_stacks.append(stack)
|
||||||
if not stack:
|
|
||||||
# this should not happen
|
|
||||||
Logger.log("e", "Cannot find any extruder in an existing global stack [%s].", global_stack.getId())
|
|
||||||
if stack:
|
|
||||||
if global_stack.quality.getId() in ("empty", "empty_quality"):
|
|
||||||
stack.quality = empty_quality_container
|
|
||||||
if self._resolve_strategies["machine"] == "override":
|
|
||||||
# in case the extruder is newly created (for a single-extrusion machine), we need to override
|
|
||||||
# the existing extruder stack.
|
|
||||||
existing_extruder_stack = global_stack.extruders[stack.getMetaDataEntry("position")]
|
|
||||||
for idx in range(len(_ContainerIndexes.IndexTypeMap)):
|
|
||||||
existing_extruder_stack.replaceContainer(idx, stack._containers[idx], postpone_emit = True)
|
|
||||||
extruder_stacks.append(existing_extruder_stack)
|
|
||||||
else:
|
|
||||||
extruder_stacks.append(stack)
|
|
||||||
|
|
||||||
except:
|
except:
|
||||||
Logger.logException("w", "We failed to serialize the stack. Trying to clean up.")
|
Logger.logException("w", "We failed to serialize the stack. Trying to clean up.")
|
||||||
|
@ -870,7 +863,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
|
||||||
# We will first find the correct quality profile for the extruder, then apply the same
|
# We will first find the correct quality profile for the extruder, then apply the same
|
||||||
# quality profile for the global stack.
|
# quality profile for the global stack.
|
||||||
#
|
#
|
||||||
if len(extruder_stacks) == 1:
|
if has_extruder_stack_files and len(extruder_stacks) == 1:
|
||||||
extruder_stack = extruder_stacks[0]
|
extruder_stack = extruder_stacks[0]
|
||||||
|
|
||||||
search_criteria = {"type": "quality", "quality_type": global_stack.quality.getMetaDataEntry("quality_type")}
|
search_criteria = {"type": "quality", "quality_type": global_stack.quality.getMetaDataEntry("quality_type")}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue