From f948203a63fc246abb7d6e3c62dac63616d4fecf Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 16 Jan 2018 13:43:28 +0100 Subject: [PATCH 1/2] Fix crash when clearing build plate We shouldn't delete the singleton PrintInformation object. We should rather just zero out the print information. And instead of doing that explicitly in deleteAll, listen to scene changes from PrintInformation in order to keep the logic related to the print information contained within its class. Contributes to issue CURA-4810. --- cura/CuraApplication.py | 3 --- cura/PrintInformation.py | 5 +++-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index f4f121eda8..37952a42ac 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -1061,9 +1061,6 @@ class CuraApplication(QtApplication): op.push() Selection.clear() - Logger.log("i", "Reseting print information") - self._print_information = PrintInformation.PrintInformation() - # stay on the same build plate #self.getCuraSceneController().setActiveBuildPlate(0) # Select first build plate diff --git a/cura/PrintInformation.py b/cura/PrintInformation.py index 838628e37c..5d5d59ed3b 100644 --- a/cura/PrintInformation.py +++ b/cura/PrintInformation.py @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Ultimaker B.V. +# Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. from PyQt5.QtCore import QObject, pyqtSignal, pyqtProperty @@ -65,6 +65,7 @@ class PrintInformation(QObject): self._backend = Application.getInstance().getBackend() if self._backend: self._backend.printDurationMessage.connect(self._onPrintDurationMessage) + Application.getInstance().getController().getScene().sceneChanged.connect(self.setToZeroPrintInformation) self._base_name = "" self._abbr_machine = "" @@ -171,7 +172,7 @@ class PrintInformation(QObject): def printTimes(self): return self._print_time_message_values[self._active_build_plate] - def _onPrintDurationMessage(self, build_plate_number, print_time, material_amounts): + def _onPrintDurationMessage(self, build_plate_number, print_time: Dict[str, int], material_amounts: list): self._updateTotalPrintTimePerFeature(build_plate_number, print_time) self.currentPrintTimeChanged.emit() From b0d2ef0f72e590054e0db36a246c778c30b2bed4 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Tue, 16 Jan 2018 13:48:12 +0100 Subject: [PATCH 2/2] Correct default material diameter value for single-extrusion machines CURA-4812 --- .../MachineSettingsAction.py | 5 ++++- resources/definitions/fdmextruder.def.json | 21 ------------------- 2 files changed, 4 insertions(+), 22 deletions(-) diff --git a/plugins/MachineSettingsAction/MachineSettingsAction.py b/plugins/MachineSettingsAction/MachineSettingsAction.py index a939d033fc..101ba54ed0 100755 --- a/plugins/MachineSettingsAction/MachineSettingsAction.py +++ b/plugins/MachineSettingsAction/MachineSettingsAction.py @@ -225,7 +225,10 @@ class MachineSettingsAction(MachineAction): material_approximate_diameter = str(round(material_diameter)) machine_diameter = extruder_stack.definitionChanges.getProperty("material_diameter", "value") if not machine_diameter: - machine_diameter = extruder_stack.definition.getProperty("material_diameter", "value") + if extruder_stack.definition.hasProperty("material_diameter", "value"): + machine_diameter = extruder_stack.definition.getProperty("material_diameter", "value") + else: + machine_diameter = self._global_container_stack.definition.getProperty("material_diameter", "value") machine_approximate_diameter = str(round(machine_diameter)) if material_approximate_diameter != machine_approximate_diameter: diff --git a/resources/definitions/fdmextruder.def.json b/resources/definitions/fdmextruder.def.json index 3a59e7df1e..2b314cd6a5 100644 --- a/resources/definitions/fdmextruder.def.json +++ b/resources/definitions/fdmextruder.def.json @@ -181,27 +181,6 @@ } } }, - "material": { - "label": "Material", - "icon": "category_material", - "description": "Material", - "type": "category", - "children": { - "material_diameter": { - "label": "Diameter", - "description": "Adjusts the diameter of the filament used. Match this value with the diameter of the used filament.", - "unit": "mm", - "type": "float", - "default_value": 2.85, - "minimum_value": "0.0001", - "minimum_value_warning": "0.4", - "maximum_value_warning": "3.5", - "enabled": "machine_gcode_flavor != \"UltiGCode\"", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, "platform_adhesion": { "label": "Build Plate Adhesion",