From dafff9159e5130ba2c5f7cb834bce906d28e6e3b Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 18 May 2016 11:03:44 +0200 Subject: [PATCH] Added materials & qualities CURA-1278 --- cura/MachineManagerModel.py | 32 ++++++++++++------- resources/definitions/fdmprinter.def.json | 4 ++- .../{instances => materials}/abs.inst.cfg | 0 .../{instances => materials}/cpe.inst.cfg | 0 .../{instances => materials}/pla.inst.cfg | 0 resources/quality/high.inst.cfg | 9 ++++++ resources/quality/normal.inst.cfg | 9 ++++++ 7 files changed, 42 insertions(+), 12 deletions(-) rename resources/{instances => materials}/abs.inst.cfg (100%) rename resources/{instances => materials}/cpe.inst.cfg (100%) rename resources/{instances => materials}/pla.inst.cfg (100%) create mode 100644 resources/quality/high.inst.cfg create mode 100644 resources/quality/normal.inst.cfg diff --git a/cura/MachineManagerModel.py b/cura/MachineManagerModel.py index 0d3540475e..0f45f0a7b1 100644 --- a/cura/MachineManagerModel.py +++ b/cura/MachineManagerModel.py @@ -58,21 +58,29 @@ class MachineManagerModel(QObject): new_global_stack.addMetaDataEntry("type", "machine") UM.Settings.ContainerRegistry.getInstance().addContainer(new_global_stack) - ## DEBUG CODE - material_instance_container = UM.Settings.InstanceContainer("test_material") - material_instance_container.addMetaDataEntry("type", "material") - material_instance_container.setDefinition(definitions[0]) + preferred_material_id = definitions[0].getMetaDataEntry("preferred_material") + material_instance_container = None + if preferred_material_id: + preferred_material_id = preferred_material_id.lower() + container = UM.Settings.ContainerRegistry.getInstance().findInstanceContainers(id = preferred_material_id) + if container: + material_instance_container = container[0] + + preferred_quality_id = definitions[0].getMetaDataEntry("preferred_quality") + quality_instance_container = None + if preferred_quality_id: + preferred_quality_id = preferred_quality_id.lower() + container = UM.Settings.ContainerRegistry.getInstance().findInstanceContainers(id = preferred_quality_id) + if container: + quality_instance_container = container[0] + + ## DEBUG CODE variant_instance_container = UM.Settings.InstanceContainer("test_variant") variant_instance_container.addMetaDataEntry("type", "variant") variant_instance_container.setDefinition(definitions[0]) - quality_instance_container = UM.Settings.InstanceContainer(name + "_quality") - UM.Settings.ContainerRegistry.getInstance().addContainer(material_instance_container) UM.Settings.ContainerRegistry.getInstance().addContainer(variant_instance_container) - UM.Settings.ContainerRegistry.getInstance().addContainer(quality_instance_container) - quality_instance_container.addMetaDataEntry("type", "quality") - quality_instance_container.setDefinition(definitions[0]) current_settings_instance_container = UM.Settings.InstanceContainer(name + "_current_settings") current_settings_instance_container.addMetaDataEntry("machine", name) @@ -82,9 +90,11 @@ class MachineManagerModel(QObject): # If a definition is found, its a list. Should only have one item. new_global_stack.addContainer(definitions[0]) - new_global_stack.addContainer(material_instance_container) + if material_instance_container: + new_global_stack.addContainer(material_instance_container) new_global_stack.addContainer(variant_instance_container) - new_global_stack.addContainer(quality_instance_container) + if quality_instance_container: + new_global_stack.addContainer(quality_instance_container) new_global_stack.addContainer(current_settings_instance_container) Application.getInstance().setGlobalContainerStack(new_global_stack) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 11436bdcce..603dc18e92 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -8,7 +8,9 @@ "category": "Ultimaker", "manufacturer": "Ultimaker", "file_formats": "text/x-gcode;application/x-stl-ascii;application/x-stl-binary;application/x-wavefront-obj;application/x3g", - "visible": false + "visible": false, + "preferred_material": "pla", + "preferred_quality": "normal" }, "settings": { diff --git a/resources/instances/abs.inst.cfg b/resources/materials/abs.inst.cfg similarity index 100% rename from resources/instances/abs.inst.cfg rename to resources/materials/abs.inst.cfg diff --git a/resources/instances/cpe.inst.cfg b/resources/materials/cpe.inst.cfg similarity index 100% rename from resources/instances/cpe.inst.cfg rename to resources/materials/cpe.inst.cfg diff --git a/resources/instances/pla.inst.cfg b/resources/materials/pla.inst.cfg similarity index 100% rename from resources/instances/pla.inst.cfg rename to resources/materials/pla.inst.cfg diff --git a/resources/quality/high.inst.cfg b/resources/quality/high.inst.cfg new file mode 100644 index 0000000000..2e860cf380 --- /dev/null +++ b/resources/quality/high.inst.cfg @@ -0,0 +1,9 @@ +[general] +version = 2 +name = high +definition = fdmprinter + +[metadata] +type = quality + +[values] diff --git a/resources/quality/normal.inst.cfg b/resources/quality/normal.inst.cfg new file mode 100644 index 0000000000..6bb23d841c --- /dev/null +++ b/resources/quality/normal.inst.cfg @@ -0,0 +1,9 @@ +[general] +version = 2 +name = normal +definition = fdmprinter + +[metadata] +type = quality + +[values]