diff --git a/cura/LayerPolygon.py b/cura/LayerPolygon.py index 072d5f94f5..ddf1450664 100644 --- a/cura/LayerPolygon.py +++ b/cura/LayerPolygon.py @@ -20,7 +20,7 @@ class LayerPolygon: MoveCombingType = 8 MoveRetractionType = 9 SupportInterfaceType = 10 - PrimeTower = 11 + PrimeTowerType = 11 __number_of_types = 12 __jump_map = numpy.logical_or(numpy.logical_or(numpy.arange(__number_of_types) == NoneType, numpy.arange(__number_of_types) == MoveCombingType), numpy.arange(__number_of_types) == MoveRetractionType) @@ -245,7 +245,7 @@ class LayerPolygon: theme.getColor("layerview_move_combing").getRgbF(), # MoveCombingType theme.getColor("layerview_move_retraction").getRgbF(), # MoveRetractionType theme.getColor("layerview_support_interface").getRgbF(), # SupportInterfaceType - theme.getColor("layerview_prime_tower").getRgbF() + theme.getColor("layerview_prime_tower").getRgbF() # PrimeTowerType ]) return cls.__color_map diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index cd6c7cd191..ed797882b6 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -1263,8 +1263,8 @@ class MachineManager(QObject): if self._global_container_stack is not None: if Util.parseBool(self._global_container_stack.getMetaDataEntry("has_materials", False)): for position, extruder in self._global_container_stack.extruders.items(): - if extruder.isEnabled and not extruder.material.getMetaDataEntry("compatible"): - return False + if not extruder.isEnabled: + continue if not extruder.material.getMetaDataEntry("compatible"): return False return True diff --git a/cura/Settings/cura_empty_instance_containers.py b/cura/Settings/cura_empty_instance_containers.py index 534e6f4199..0eedfc8654 100644 --- a/cura/Settings/cura_empty_instance_containers.py +++ b/cura/Settings/cura_empty_instance_containers.py @@ -1,9 +1,11 @@ -# Copyright (c) 2018 Ultimaker B.V. +# Copyright (c) 2019 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. import copy from UM.Settings.constant_instance_containers import EMPTY_CONTAINER_ID, empty_container +from UM.i18n import i18nCatalog +catalog = i18nCatalog("cura") # Empty definition changes @@ -28,7 +30,7 @@ empty_material_container.setMetaDataEntry("type", "material") EMPTY_QUALITY_CONTAINER_ID = "empty_quality" empty_quality_container = copy.deepcopy(empty_container) empty_quality_container.setMetaDataEntry("id", EMPTY_QUALITY_CONTAINER_ID) -empty_quality_container.setName("Not Supported") +empty_quality_container.setName(catalog.i18nc("@info:not supported profile", "Not supported")) empty_quality_container.setMetaDataEntry("quality_type", "not_supported") empty_quality_container.setMetaDataEntry("type", "quality") empty_quality_container.setMetaDataEntry("supported", False) diff --git a/cura/UI/PrintInformation.py b/cura/UI/PrintInformation.py index 2122abbe82..3fafaaba12 100644 --- a/cura/UI/PrintInformation.py +++ b/cura/UI/PrintInformation.py @@ -81,6 +81,7 @@ class PrintInformation(QObject): "support_interface": catalog.i18nc("@tooltip", "Support Interface"), "support": catalog.i18nc("@tooltip", "Support"), "skirt": catalog.i18nc("@tooltip", "Skirt"), + "prime_tower": catalog.i18nc("@tooltip", "Prime Tower"), "travel": catalog.i18nc("@tooltip", "Travel"), "retract": catalog.i18nc("@tooltip", "Retractions"), "none": catalog.i18nc("@tooltip", "Other") diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index bdccfca15e..938997a352 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -732,6 +732,7 @@ class CuraEngineBackend(QObject, Backend): "support_interface": message.time_support_interface, "support": message.time_support, "skirt": message.time_skirt, + "prime_tower": message.time_prime_tower, "travel": message.time_travel, "retract": message.time_retract, "none": message.time_none diff --git a/plugins/GCodeReader/FlavorParser.py b/plugins/GCodeReader/FlavorParser.py index 4c73a3b9a2..12bed210d2 100644 --- a/plugins/GCodeReader/FlavorParser.py +++ b/plugins/GCodeReader/FlavorParser.py @@ -371,7 +371,7 @@ class FlavorParser: elif type == "SUPPORT-INTERFACE": self._layer_type = LayerPolygon.SupportInterfaceType elif type == "PRIME-TOWER": - self._layer_type = LayerPolygon.SkirtType + self._layer_type = LayerPolygon.PrimeTowerType else: Logger.log("w", "Encountered a unknown type (%s) while parsing g-code.", type) diff --git a/plugins/XmlMaterialProfile/XmlMaterialProfile.py b/plugins/XmlMaterialProfile/XmlMaterialProfile.py index 40967e75c7..f057585cb5 100644 --- a/plugins/XmlMaterialProfile/XmlMaterialProfile.py +++ b/plugins/XmlMaterialProfile/XmlMaterialProfile.py @@ -1179,6 +1179,7 @@ class XmlMaterialProfile(InstanceContainer): "adhesion tendency": "material_adhesion_tendency", "surface energy": "material_surface_energy", "shrinkage percentage": "material_shrinkage_percentage", + "build volume temperature": "build_volume_temperature", } __unmapped_settings = [ "hardware compatible", diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 230f5e5082..9691819e48 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -2056,6 +2056,21 @@ "settable_per_mesh": false, "minimum_value": "-273.15" }, + "build_volume_temperature": + { + "label": "Build Volume Temperature", + "description": "The temperature used for build volume. If this is 0, the build volume temperature will not be adjusted.", + "unit": "°C", + "type": "float", + "default_value": 0, + "resolve": "max(extruderValues('build_volume_temperature'))", + "minimum_value": "-273.15", + "minimum_value_warning": "0", + "maximum_value_warning": "285", + "enabled": true, + "settable_per_mesh": false, + "settable_per_extruder": true + }, "material_print_temperature": { "label": "Printing Temperature", @@ -5234,7 +5249,7 @@ "type": "bool", "enabled": "extruders_enabled_count > 1", "default_value": false, - "resolve": "any(extruderValues('prime_tower_enable')) or (adhesion_type in ('none', 'skirt'))", + "resolve": "(extruders_enabled_count > 1) and any(extruderValues('prime_tower_enable')) or (adhesion_type in ('none', 'skirt'))", "settable_per_mesh": false, "settable_per_extruder": false }, diff --git a/resources/qml/ActionPanel/PrintJobInformation.qml b/resources/qml/ActionPanel/PrintJobInformation.qml index 4b8461987b..5b80e1a614 100644 --- a/resources/qml/ActionPanel/PrintJobInformation.qml +++ b/resources/qml/ActionPanel/PrintJobInformation.qml @@ -28,7 +28,7 @@ Column Label { - text: catalog.i18nc("@label", "Time specification").toUpperCase() + text: catalog.i18nc("@label", "Time estimation").toUpperCase() color: UM.Theme.getColor("primary") font: UM.Theme.getFont("default_bold") renderType: Text.NativeRendering @@ -111,7 +111,7 @@ Column Label { - text: catalog.i18nc("@label", "Material specification").toUpperCase() + text: catalog.i18nc("@label", "Material estimation").toUpperCase() color: UM.Theme.getColor("primary") font: UM.Theme.getFont("default_bold") renderType: Text.NativeRendering diff --git a/resources/qml/Toolbar.qml b/resources/qml/Toolbar.qml index 33481b9183..c2a70143c3 100644 --- a/resources/qml/Toolbar.qml +++ b/resources/qml/Toolbar.qml @@ -182,6 +182,8 @@ Item MouseArea //Catch all mouse events (so scene doesnt handle them) { anchors.fill: parent + acceptedButtons: Qt.NoButton + onWheel: wheel.accepted = true } Loader