mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-25 07:33:57 -06:00
Filter preferred materials by approximate material diameter
This commit is contained in:
parent
e92aaca7b6
commit
db6cdad956
2 changed files with 12 additions and 5 deletions
|
@ -244,7 +244,13 @@ class ExtruderManager(QObject):
|
||||||
material = materials[0]
|
material = materials[0]
|
||||||
preferred_material_id = machine_definition.getMetaDataEntry("preferred_material")
|
preferred_material_id = machine_definition.getMetaDataEntry("preferred_material")
|
||||||
if preferred_material_id:
|
if preferred_material_id:
|
||||||
search_criteria = { "type": "material", "id": preferred_material_id}
|
global_stack = ContainerRegistry.getInstance().findContainerStacks(id = machine_id)
|
||||||
|
if global_stack:
|
||||||
|
approximate_material_diameter = round(global_stack[0].getProperty("material_diameter", "value"))
|
||||||
|
else:
|
||||||
|
approximate_material_diameter = round(machine_definition.getProperty("material_diameter", "value"))
|
||||||
|
|
||||||
|
search_criteria = { "type": "material", "id": preferred_material_id, "approximate_diameter": approximate_material_diameter}
|
||||||
if machine_definition.getMetaDataEntry("has_machine_materials"):
|
if machine_definition.getMetaDataEntry("has_machine_materials"):
|
||||||
search_criteria["definition"] = machine_definition_id
|
search_criteria["definition"] = machine_definition_id
|
||||||
|
|
||||||
|
|
|
@ -332,7 +332,7 @@ class MachineManager(QObject):
|
||||||
container_registry.addContainer(new_global_stack)
|
container_registry.addContainer(new_global_stack)
|
||||||
|
|
||||||
variant_instance_container = self._updateVariantContainer(definition)
|
variant_instance_container = self._updateVariantContainer(definition)
|
||||||
material_instance_container = self._updateMaterialContainer(definition, variant_instance_container)
|
material_instance_container = self._updateMaterialContainer(definition, new_global_stack, variant_instance_container)
|
||||||
quality_instance_container = self._updateQualityContainer(definition, variant_instance_container, material_instance_container)
|
quality_instance_container = self._updateQualityContainer(definition, variant_instance_container, material_instance_container)
|
||||||
|
|
||||||
current_settings_instance_container = InstanceContainer(name + "_current_settings")
|
current_settings_instance_container = InstanceContainer(name + "_current_settings")
|
||||||
|
@ -760,7 +760,7 @@ class MachineManager(QObject):
|
||||||
if old_material:
|
if old_material:
|
||||||
preferred_material_name = old_material.getName()
|
preferred_material_name = old_material.getName()
|
||||||
|
|
||||||
self.setActiveMaterial(self._updateMaterialContainer(self._global_container_stack.getBottom(), containers[0], preferred_material_name).id)
|
self.setActiveMaterial(self._updateMaterialContainer(self._global_container_stack.getBottom(), self._global_container_stack, containers[0], preferred_material_name).id)
|
||||||
else:
|
else:
|
||||||
Logger.log("w", "While trying to set the active variant, no variant was found to replace.")
|
Logger.log("w", "While trying to set the active variant, no variant was found to replace.")
|
||||||
|
|
||||||
|
@ -1110,11 +1110,12 @@ class MachineManager(QObject):
|
||||||
|
|
||||||
return self._empty_variant_container
|
return self._empty_variant_container
|
||||||
|
|
||||||
def _updateMaterialContainer(self, definition, variant_container = None, preferred_material_name = None):
|
def _updateMaterialContainer(self, stack, definition, variant_container = None, preferred_material_name = None):
|
||||||
if not definition.getMetaDataEntry("has_materials"):
|
if not definition.getMetaDataEntry("has_materials"):
|
||||||
return self._empty_material_container
|
return self._empty_material_container
|
||||||
|
|
||||||
search_criteria = { "type": "material" }
|
approximate_material_diameter = round(stack.getProperty("material_diameter", "value"))
|
||||||
|
search_criteria = { "type": "material", "approximate_diameter": approximate_material_diameter }
|
||||||
|
|
||||||
if definition.getMetaDataEntry("has_machine_materials"):
|
if definition.getMetaDataEntry("has_machine_materials"):
|
||||||
search_criteria["definition"] = self.getQualityDefinitionId(definition)
|
search_criteria["definition"] = self.getQualityDefinitionId(definition)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue