mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-05-31 02:25:57 +08:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
504eacce66
@ -140,7 +140,7 @@ class MachineNode(ContainerNode):
|
|||||||
elif groups_by_name[name].intent_category == "default": # Intent category should be stored as "default" if everything is default or as the intent if any of the extruder have an actual intent.
|
elif groups_by_name[name].intent_category == "default": # Intent category should be stored as "default" if everything is default or as the intent if any of the extruder have an actual intent.
|
||||||
groups_by_name[name].intent_category = quality_changes.get("intent_category", "default")
|
groups_by_name[name].intent_category = quality_changes.get("intent_category", "default")
|
||||||
|
|
||||||
if "position" in quality_changes: # An extruder profile.
|
if quality_changes.get("position") is not None: # An extruder profile.
|
||||||
groups_by_name[name].metadata_per_extruder[int(quality_changes["position"])] = quality_changes
|
groups_by_name[name].metadata_per_extruder[int(quality_changes["position"])] = quality_changes
|
||||||
else: # Global profile.
|
else: # Global profile.
|
||||||
groups_by_name[name].metadata_for_global = quality_changes
|
groups_by_name[name].metadata_for_global = quality_changes
|
||||||
|
@ -6,6 +6,7 @@ from typing import Dict, Set
|
|||||||
from PyQt5.QtCore import Qt, QTimer, pyqtSignal, pyqtProperty
|
from PyQt5.QtCore import Qt, QTimer, pyqtSignal, pyqtProperty
|
||||||
|
|
||||||
from UM.Qt.ListModel import ListModel
|
from UM.Qt.ListModel import ListModel
|
||||||
|
from UM.Logger import Logger
|
||||||
|
|
||||||
import cura.CuraApplication # Imported like this to prevent a circular reference.
|
import cura.CuraApplication # Imported like this to prevent a circular reference.
|
||||||
from cura.Machines.ContainerTree import ContainerTree
|
from cura.Machines.ContainerTree import ContainerTree
|
||||||
@ -153,7 +154,12 @@ class BaseMaterialsModel(ListModel):
|
|||||||
if not extruder_stack:
|
if not extruder_stack:
|
||||||
return
|
return
|
||||||
nozzle_name = extruder_stack.variant.getName()
|
nozzle_name = extruder_stack.variant.getName()
|
||||||
materials = ContainerTree.getInstance().machines[global_stack.definition.getId()].variants[nozzle_name].materials
|
machine_node = ContainerTree.getInstance().machines[global_stack.definition.getId()]
|
||||||
|
if nozzle_name not in machine_node.variants:
|
||||||
|
Logger.log("w", "Unable to find variant %s in container tree", nozzle_name)
|
||||||
|
self._available_materials = {}
|
||||||
|
return
|
||||||
|
materials = machine_node.variants[nozzle_name].materials
|
||||||
approximate_material_diameter = extruder_stack.getApproximateMaterialDiameter()
|
approximate_material_diameter = extruder_stack.getApproximateMaterialDiameter()
|
||||||
self._available_materials = {key: material for key, material in materials.items() if float(material.getMetaDataEntry("approximate_diameter", -1)) == approximate_material_diameter}
|
self._available_materials = {key: material for key, material in materials.items() if float(material.getMetaDataEntry("approximate_diameter", -1)) == approximate_material_diameter}
|
||||||
|
|
||||||
|
@ -139,9 +139,33 @@ def test_preferredMaterialExactMatch(empty_variant_node):
|
|||||||
"some_different_material": MagicMock(getMetaDataEntry = lambda x: 3),
|
"some_different_material": MagicMock(getMetaDataEntry = lambda x: 3),
|
||||||
"preferred_material": MagicMock(getMetaDataEntry = lambda x: 3) # Exact match.
|
"preferred_material": MagicMock(getMetaDataEntry = lambda x: 3) # Exact match.
|
||||||
}
|
}
|
||||||
|
empty_variant_node.machine.preferred_material = "preferred_material"
|
||||||
|
|
||||||
assert empty_variant_node.preferredMaterial(approximate_diameter = 3) == empty_variant_node.materials["preferred_material"], "It should match exactly on this one since it's the preferred material."
|
assert empty_variant_node.preferredMaterial(approximate_diameter = 3) == empty_variant_node.materials["preferred_material"], "It should match exactly on this one since it's the preferred material."
|
||||||
|
|
||||||
|
## Tests the preferred material when a submaterial is available in the
|
||||||
|
# materials list for this node.
|
||||||
|
def test_preferredMaterialSubmaterial(empty_variant_node):
|
||||||
|
empty_variant_node.materials = {
|
||||||
|
"some_different_material": MagicMock(getMetaDataEntry = lambda x: 3),
|
||||||
|
"preferred_material_base_file_aa04": MagicMock(getMetaDataEntry = lambda x: 3) # This is a submaterial of the preferred material.
|
||||||
|
}
|
||||||
|
empty_variant_node.machine.preferred_material = "preferred_material_base_file_aa04"
|
||||||
|
|
||||||
|
assert empty_variant_node.preferredMaterial(approximate_diameter = 3) == empty_variant_node.materials["preferred_material_base_file_aa04"], "It should match on the submaterial just as well."
|
||||||
|
|
||||||
|
## Tests the preferred material matching on the approximate diameter of the
|
||||||
|
# filament.
|
||||||
|
def test_preferredMaterialDiameter(empty_variant_node):
|
||||||
|
empty_variant_node.materials = {
|
||||||
|
"some_different_material": MagicMock(getMetaDataEntry = lambda x: 3),
|
||||||
|
"preferred_material_wrong_diameter": MagicMock(getMetaDataEntry = lambda x: 2), # Approximate diameter is 2 instead of 3.
|
||||||
|
"preferred_material_correct_diameter": MagicMock(getMetaDataEntry = lambda x: 3) # Correct approximate diameter.
|
||||||
|
}
|
||||||
|
empty_variant_node.machine.preferred_material = "preferred_material_correct_diameter"
|
||||||
|
|
||||||
|
assert empty_variant_node.preferredMaterial(approximate_diameter = 3) == empty_variant_node.materials["preferred_material_correct_diameter"], "It should match only on the material with correct diameter."
|
||||||
|
|
||||||
## Tests the preferred material matching on a different material if the
|
## Tests the preferred material matching on a different material if the
|
||||||
# diameter is wrong.
|
# diameter is wrong.
|
||||||
def test_preferredMaterialDiameterNoMatch(empty_variant_node):
|
def test_preferredMaterialDiameterNoMatch(empty_variant_node):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user