CURA-5334 factor out the need for material_diameter in machine definition for getDefaultMaterial

This commit is contained in:
Jack Ha 2018-06-12 11:25:02 +02:00
parent f775ce815d
commit 44e9d1e334
4 changed files with 15 additions and 10 deletions

View file

@ -412,11 +412,15 @@ class MaterialManager(QObject):
else:
return None
def getDefaultMaterial(self, global_stack: "GlobalStack", extruder_variant_name: Optional[str]) -> Optional["MaterialNode"]:
## Get default material for given global stack, extruder position and extruder variant name
# you can provide the extruder_definition and then the position is ignored (useful when building up global stack in CuraStackBuilder)
def getDefaultMaterial(self, global_stack: "GlobalStack", position: str, extruder_variant_name: Optional[str], extruder_definition: Optional["ExtruderStack"] = None) -> Optional["MaterialNode"]:
node = None
machine_definition = global_stack.definition
if extruder_definition is None:
extruder_definition = global_stack.extruders[position].definition
if parseBool(global_stack.getMetaDataEntry("has_materials", False)):
material_diameter = machine_definition.getProperty("material_diameter", "value")
material_diameter = extruder_definition.getProperty("material_diameter", "value")
if isinstance(material_diameter, SettingFunction):
material_diameter = material_diameter(global_stack)
approximate_material_diameter = str(round(material_diameter))