mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-21 21:58:01 -06:00
WIP: Refactor duplicated code and clean up
This commit is contained in:
parent
194988dc9a
commit
c79dd313ac
3 changed files with 38 additions and 22 deletions
25
cura/Machines/MachineTools.py
Normal file
25
cura/Machines/MachineTools.py
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
from UM.Util import parseBool
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Gets the machine definition ID that can be used to search for Quality containers that are suitable for the given
|
||||||
|
# machine. The rule is as follows:
|
||||||
|
# 1. By default, the machine definition ID for quality container search will be "fdmprinter", which is the generic
|
||||||
|
# machine.
|
||||||
|
# 2. If a machine has its own machine quality (with "has_machine_quality = True"), we should use the given machine's
|
||||||
|
# own machine definition ID for quality search.
|
||||||
|
# Example: for an Ultimaker 3, the definition ID should be "ultimaker3".
|
||||||
|
# 3. When condition (2) is met, AND the machine has "quality_definition" defined in its definition file, then the
|
||||||
|
# definition ID specified in "quality_definition" should be used.
|
||||||
|
# Example: for an Ultimaker 3 Extended, it has "quality_definition = ultimaker3". This means Ultimaker 3 Extended
|
||||||
|
# shares the same set of qualities profiles as Ultimaker 3.
|
||||||
|
#
|
||||||
|
def getMachineDefinitionIDForQualitySearch(machine: "GlobalStack", default_definition_id: str = "fdmprinter") -> str:
|
||||||
|
machine_definition_id = default_definition_id
|
||||||
|
if parseBool(machine.getMetaDataEntry("has_machine_quality", False)):
|
||||||
|
# Only use the machine's own quality definition ID if this machine has machine quality.
|
||||||
|
machine_definition_id = machine.getMetaDataEntry("quality_definition")
|
||||||
|
if machine_definition_id is None:
|
||||||
|
machine_definition_id = machine.definition.getId()
|
||||||
|
|
||||||
|
return machine_definition_id
|
|
@ -1,14 +1,14 @@
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from PyQt5.Qt import pyqtSignal, QObject
|
from PyQt5.Qt import QObject
|
||||||
|
|
||||||
from UM.Application import Application
|
from UM.Application import Application
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
from UM.Settings.InstanceContainer import InstanceContainer
|
|
||||||
from UM.Util import parseBool
|
from UM.Util import parseBool
|
||||||
|
|
||||||
from cura.Machines.ContainerGroup import ContainerGroup
|
from cura.Machines.ContainerGroup import ContainerGroup
|
||||||
from cura.Machines.ContainerNode import ContainerNode
|
from cura.Machines.ContainerNode import ContainerNode
|
||||||
|
from cura.Machines.MachineTools import getMachineDefinitionIDForQualitySearch
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -114,12 +114,12 @@ class QualityManager(QObject):
|
||||||
|
|
||||||
def __init__(self, container_registry, parent = None):
|
def __init__(self, container_registry, parent = None):
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
|
self._application = Application.getInstance()
|
||||||
self._material_manager = Application.getInstance()._material_manager
|
self._material_manager = self._application._material_manager
|
||||||
|
|
||||||
self._container_registry = container_registry
|
self._container_registry = container_registry
|
||||||
self._empty_quality_container = self._container_registry.findInstanceContainers(id = "empty_quality")[0]
|
|
||||||
#self._empty_quality_changes_container = self._container_registry.findInstanceContainers(id = "empty_quality_changes")[0]
|
self._empty_quality_container = self._application.empty_quality_container
|
||||||
|
self._empty_quality_changes_container = self._application.empty_quality_changes_container
|
||||||
|
|
||||||
self._machine_variant_material_quality_type_to_quality_dict = {} # for quality lookup
|
self._machine_variant_material_quality_type_to_quality_dict = {} # for quality lookup
|
||||||
self._machine_quality_type_to_quality_changes_dict = {} # for quality_changes lookup
|
self._machine_quality_type_to_quality_changes_dict = {} # for quality_changes lookup
|
||||||
|
@ -229,12 +229,8 @@ class QualityManager(QObject):
|
||||||
# Returns a dict of "custom profile name" -> QualityChangesGroup
|
# Returns a dict of "custom profile name" -> QualityChangesGroup
|
||||||
def getQualityChangesGroups(self, machine: "GlobalStack") -> dict:
|
def getQualityChangesGroups(self, machine: "GlobalStack") -> dict:
|
||||||
# TODO: How to make this simpler?
|
# TODO: How to make this simpler?
|
||||||
# Get machine definition ID
|
# Get machine definition ID for quality search
|
||||||
machine_definition_id = self._default_machine_definition_id
|
machine_definition_id = getMachineDefinitionIDForQualitySearch(machine)
|
||||||
if parseBool(machine.getMetaDataEntry("has_machine_quality", False)):
|
|
||||||
machine_definition_id = machine.getMetaDataEntry("quality_definition")
|
|
||||||
if machine_definition_id is None:
|
|
||||||
machine_definition_id = machine.definition.getId()
|
|
||||||
|
|
||||||
machine_node = self._machine_quality_type_to_quality_changes_dict.get(machine_definition_id)
|
machine_node = self._machine_quality_type_to_quality_changes_dict.get(machine_definition_id)
|
||||||
if not machine_node:
|
if not machine_node:
|
||||||
|
@ -257,12 +253,8 @@ class QualityManager(QObject):
|
||||||
|
|
||||||
def getQualityGroups(self, machine: "GlobalStack") -> dict:
|
def getQualityGroups(self, machine: "GlobalStack") -> dict:
|
||||||
# TODO: How to make this simpler, including the fall backs.
|
# TODO: How to make this simpler, including the fall backs.
|
||||||
# Get machine definition ID
|
# Get machine definition ID for quality search
|
||||||
machine_definition_id = self._default_machine_definition_id
|
machine_definition_id = getMachineDefinitionIDForQualitySearch(machine)
|
||||||
if parseBool(machine.getMetaDataEntry("has_machine_quality", False)):
|
|
||||||
machine_definition_id = machine.getMetaDataEntry("quality_definition")
|
|
||||||
if machine_definition_id is None:
|
|
||||||
machine_definition_id = machine.definition.getId()
|
|
||||||
|
|
||||||
# To find the quality container for the GlobalStack, check in the following fall-back manner:
|
# To find the quality container for the GlobalStack, check in the following fall-back manner:
|
||||||
# (1) the machine-specific node
|
# (1) the machine-specific node
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (c) 2017 Ultimaker B.V.
|
# Copyright (c) 2018 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
|
@ -206,9 +206,8 @@ class CuraStackBuilder:
|
||||||
|
|
||||||
return container
|
return container
|
||||||
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def createDefinitionChangesContainer(cls, container_stack, container_name, container_index = None):
|
def createDefinitionChangesContainer(cls, container_stack, container_name):
|
||||||
from cura.CuraApplication import CuraApplication
|
from cura.CuraApplication import CuraApplication
|
||||||
|
|
||||||
unique_container_name = ContainerRegistry.getInstance().uniqueName(container_name)
|
unique_container_name = ContainerRegistry.getInstance().uniqueName(container_name)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue