From 7f5f22d472bc6b261010707ffe0d0d994c62bafa Mon Sep 17 00:00:00 2001 From: Thomas Karl Pietrowski Date: Fri, 1 Jul 2016 19:37:24 +0200 Subject: [PATCH 001/228] Moving Nvidia workaround to cura_app.py * also added "debian" into the list of distributions --- cura/CuraApplication.py | 8 -------- cura_app.py | 13 +++++++++++++ 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index de4c6e0681..8bed8e7023 100644 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -59,14 +59,6 @@ import copy import urllib numpy.seterr(all="ignore") -#WORKAROUND: GITHUB-88 GITHUB-385 GITHUB-612 -if Platform.isLinux(): # Needed for platform.linux_distribution, which is not available on Windows and OSX - # For Ubuntu: https://bugs.launchpad.net/ubuntu/+source/python-qt4/+bug/941826 - if platform.linux_distribution()[0] in ("Ubuntu", ): # TODO: Needs a "if X11_GFX == 'nvidia'" here. The workaround is only needed on Ubuntu+NVidia drivers. Other drivers are not affected, but fine with this fix. - import ctypes - from ctypes.util import find_library - ctypes.CDLL(find_library('GL'), ctypes.RTLD_GLOBAL) - try: from cura.CuraVersion import CuraVersion, CuraBuildType except ImportError: diff --git a/cura_app.py b/cura_app.py index 3548acedb6..8a6c5825c3 100755 --- a/cura_app.py +++ b/cura_app.py @@ -5,6 +5,19 @@ import os import sys +import platform + +from UM.Platform import Platform + +#WORKAROUND: GITHUB-88 GITHUB-385 GITHUB-612 +if Platform.isLinux(): # Needed for platform.linux_distribution, which is not available on Windows and OSX + # For Ubuntu: https://bugs.launchpad.net/ubuntu/+source/python-qt4/+bug/941826 + print(platform.linux_distribution()) + if platform.linux_distribution()[0] in ("debian", "Ubuntu", ): # TODO: Needs a "if X11_GFX == 'nvidia'" here. The workaround is only needed on Ubuntu+NVidia drivers. Other drivers are not affected, but fine with this fix. + import ctypes + from ctypes.util import find_library + libGL = find_library("GL") + ctypes.CDLL(libGL, ctypes.RTLD_GLOBAL) #WORKAROUND: GITHUB-704 GITHUB-708 # It looks like setuptools creates a .pth file in From 4295a85f6a2a90f7e29abbd747b9bba92de9edf0 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 20 Jul 2016 10:53:04 +0200 Subject: [PATCH 002/228] Split Initial Layer Speed in two It's now two settings: Initial Layer Print Speed (for the extrusion moves) and Initial Layer Travel Speed (for the non-extrusion moves). Contributes to issue CURA-1507. --- resources/definitions/fdmprinter.def.json | 42 +++++++++++++++++++---- 1 file changed, 36 insertions(+), 6 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index d4933be5bb..ca09f3ec23 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1511,14 +1511,44 @@ }, "speed_layer_0": { "label": "Initial Layer Speed", - "description": "The print speed for the initial layer. A lower value is advised to improve adhesion to the build plate.", + "description": "The speed for the initial layer. A lower value is advised to improve adhesion to the build plate.", "unit": "mm/s", "type": "float", "default_value": 30, "minimum_value": "0.1", "maximum_value": "299792458000", "maximum_value_warning": "300", - "settable_per_mesh": true + "settable_per_mesh": true, + "children": + { + "speed_print_layer_0": + { + "label": "Initial Layer Print Speed", + "description": "The speed of printing for the initial layer. A lower value is advised to improve adhesion to the build plate.", + "unit": "mm/s", + "type": "float", + "default_value": 30, + "value": "speed_layer_0", + "minimum_value": "0.1", + "maximum_value": "299792458000", + "maximum_value_warning": "300", + "settable_per_mesh": true + }, + "speed_travel_layer_0": + { + "label": "Initial Layer Travel Speed", + "description": "The speed of travel moves in the initial layer. A lower value is advised to prevent pulling previously printed parts away from the build plate.", + "unit": "mm/s", + "type": "float", + "default_value": 60, + "value": "speed_layer_0 * 2", + "minimum_value": "0.1", + "maximum_value": "299792458000", + "maximum_value_warning": "300", + "settable_per_mesh": true, + "settable_per_extruder": true + } + } }, "skirt_speed": { "label": "Skirt Speed", @@ -1545,8 +1575,8 @@ "settable_per_mesh": false, "settable_per_extruder": false }, - - + + "acceleration_enabled": { "label": "Enable Acceleration Control", "description": "Enables adjusting the print head acceleration. Increasing the accelerations can reduce printing time at the cost of print quality.", @@ -1733,8 +1763,8 @@ "settable_per_mesh": false }, - - + + "jerk_enabled": { "label": "Enable Jerk Control", "description": "Enables adjusting the jerk of print head when the velocity in the X or Y axis changes. Increasing the jerk can reduce printing time at the cost of print quality.", From 8597b5c9bef30aae8f98fd2da685b59a7adc9bc2 Mon Sep 17 00:00:00 2001 From: Thomas Karl Pietrowski Date: Mon, 25 Jul 2016 22:25:26 +0200 Subject: [PATCH 003/228] CURA-1923: SliceInfo: Sending data threaded The idea is to make the sending process, so it won't block the UI until the data is sent or the timeout has reached. This commit does the following: * Increasing the timeout to 5s -> As we are sending our data threaded now this won't hurt. At least for clients in slow networks. * Moving section for "sending data to info_url" into a seperate thread. * Starting the thread instead and collecting all threads in a list * Removing all threads from the list, if they have already finished their work. * When the SliceInfo Extension gets __del__'d, it will wait for the threads until they finish. Contributes to CURA-1923 --- plugins/SliceInfoPlugin/SliceInfo.py | 64 ++++++++++++++++++++-------- 1 file changed, 47 insertions(+), 17 deletions(-) diff --git a/plugins/SliceInfoPlugin/SliceInfo.py b/plugins/SliceInfoPlugin/SliceInfo.py index d50194d40f..737d3b03d4 100644 --- a/plugins/SliceInfoPlugin/SliceInfo.py +++ b/plugins/SliceInfoPlugin/SliceInfo.py @@ -12,10 +12,7 @@ from UM.Logger import Logger from UM.Platform import Platform from UM.Qt.Duration import DurationFormat -import collections -import json -import os.path -import copy +from threading import Thread import platform import math import urllib.request @@ -24,6 +21,33 @@ import ssl catalog = i18nCatalog("cura") +class SliceInfoThread(Thread): + data = None + url = None + + def __init__(self, url, data): + Thread.__init__(self) + self.url = url + self.data = data + + def run(self): + if not self.url or not self.data: + Logger.log("e", "URL or DATA for sending slice info was not set!") + + # Submit data + kwoptions = {"data" : self.data, + "timeout" : 5 + } + + if Platform.isOSX(): + kwoptions["context"] = ssl._create_unverified_context() + + try: + f = urllib.request.urlopen(self.url, **kwoptions) + Logger.log("i", "Sent anonymous slice info to %s", self.url) + f.close() + except Exception: + Logger.logException("e", "An exception occurred while trying to send slice information") ## This Extension runs in the background and sends several bits of information to the Ultimaker servers. # The data is only sent when the user in question gave permission to do so. All data is anonymous and @@ -43,11 +67,25 @@ class SliceInfo(Extension): self.send_slice_info_message.actionTriggered.connect(self.messageActionTriggered) self.send_slice_info_message.show() + self.runningThreads = [] + + def __del__(self): + for thread in self.threadedReports: + if thread.is_alive(): + thread.join() # Wait for threads - shouldn't take much more time than the timeout. See above.. + + def _removeFinishedThreads(self): + for process in self.runningThreads: + if not process.is_alive(): + self.runningThreads.remove(process) # Remove finished threads + def messageActionTriggered(self, message_id, action_id): self.send_slice_info_message.hide() Preferences.getInstance().setValue("info/asked_send_slice_info", True) def _onWriteStarted(self, output_device): + self._removeFinishedThreads() + try: if not Preferences.getInstance().getValue("info/send_slice_info"): Logger.log("d", "'info/send_slice_info' is turned off.") @@ -112,19 +150,11 @@ class SliceInfo(Extension): submitted_data = urllib.parse.urlencode(submitted_data) binary_data = submitted_data.encode("utf-8") - # Submit data - kwoptions = {"data" : binary_data, - "timeout" : 1 - } - if Platform.isOSX(): - kwoptions["context"] = ssl._create_unverified_context() - try: - f = urllib.request.urlopen(self.info_url, **kwoptions) - Logger.log("i", "Sent anonymous slice info to %s", self.info_url) - f.close() - except Exception as e: - Logger.logException("e", "An exception occurred while trying to send slice information") + # Sending slice info non-blocking + reportThread = SliceInfoThread(self.info_url, binary_data) + self.runningThreads.append(reportThread) + reportThread.start() except: # We really can't afford to have a mistake here, as this would break the sending of g-code to a device # (Either saving or directly to a printer). The functionality of the slice data is not *that* important. - pass + Logger.logException("e", "Exception raised while sending slice info") # But we should be notified about these problems of course. \ No newline at end of file From 336dd406b15bff2e7a530e41592ef03d60f4c2bb Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Tue, 26 Jul 2016 11:58:25 +0200 Subject: [PATCH 004/228] Add a reusable mechanism for plugins to add controls to designated areas in the GUI contributes to CURA-271 --- cura/CuraApplication.py | 22 +++++++++++++++++++++- resources/qml/SaveButton.qml | 26 +++++++++++++++++++++++--- 2 files changed, 44 insertions(+), 4 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index a6d0a3b827..9dc5987cb7 100644 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -128,6 +128,8 @@ class CuraApplication(QtApplication): self._machine_action_manager = MachineActionManager.MachineActionManager() self._machine_manager = None # This is initialized on demand. + self._additional_components = {} # Components to add to certain areas in the interface + super().__init__(name = "cura", version = CuraVersion, buildtype = CuraBuildType) self.setWindowIcon(QIcon(Resources.getPath(Resources.Images, "cura-icon.png"))) @@ -876,4 +878,22 @@ class CuraApplication(QtApplication): self.getMainWindow().setMinimumSize(size) def getBuildVolume(self): - return self._volume \ No newline at end of file + return self._volume + + additionalComponentsChanged = pyqtSignal(str, arguments = ["areaId"]) + + @pyqtProperty("QVariantMap", notify = additionalComponentsChanged) + def additionalComponents(self): + return self._additional_components + + ## Add a component to a list of components to be reparented to another area in the GUI. + # The actual reparenting is done by the area itself. + # \param area_id \type{str} Identifying name of the area to which the component should be reparented + # \param component \type{QQuickComponent} The component that should be reparented + @pyqtSlot(str, "QVariant") + def addAdditionalComponent(self, area_id, component): + if area_id not in self._additional_components: + self._additional_components[area_id] = [] + self._additional_components[area_id].append(component) + + self.additionalComponentsChanged.emit(area_id) \ No newline at end of file diff --git a/resources/qml/SaveButton.qml b/resources/qml/SaveButton.qml index 8b95de15ee..9ea6e181bb 100644 --- a/resources/qml/SaveButton.qml +++ b/resources/qml/SaveButton.qml @@ -84,6 +84,27 @@ Rectangle { anchors.topMargin: UM.Theme.getSize("default_margin").height anchors.left: parent.left + Row { + id: additionalComponentsRow + anchors.top: parent.top + anchors.right: saveToButton.visible ? saveToButton.left : parent.right + anchors.rightMargin: UM.Theme.getSize("default_margin").width + + spacing: UM.Theme.getSize("default_margin").width + } + + Connections { + target: Printer + onAdditionalComponentsChanged: + { + if(areaId == "saveButton") { + for (var component in Printer.additionalComponents["saveButton"]) { + Printer.additionalComponents["saveButton"][component].parent = additionalComponentsRow + } + } + } + } + Button { id: saveToButton @@ -102,8 +123,7 @@ Rectangle { } style: ButtonStyle { - background: - Rectangle + background: Rectangle { border.width: UM.Theme.getSize("default_lining").width border.color: !control.enabled ? UM.Theme.getColor("action_button_disabled_border") : @@ -126,7 +146,7 @@ Rectangle { text: control.text; } } - label: Item { } + label: Item { } } } From 36f4f5180420314143baf73c4d6120b571d65618 Mon Sep 17 00:00:00 2001 From: Thomas Karl Pietrowski Date: Tue, 26 Jul 2016 18:25:54 +0200 Subject: [PATCH 005/228] Adding missing return Without the function would be still progressed of course. --- plugins/SliceInfoPlugin/SliceInfo.py | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/SliceInfoPlugin/SliceInfo.py b/plugins/SliceInfoPlugin/SliceInfo.py index 737d3b03d4..8c7402762a 100644 --- a/plugins/SliceInfoPlugin/SliceInfo.py +++ b/plugins/SliceInfoPlugin/SliceInfo.py @@ -33,6 +33,7 @@ class SliceInfoThread(Thread): def run(self): if not self.url or not self.data: Logger.log("e", "URL or DATA for sending slice info was not set!") + return # Submit data kwoptions = {"data" : self.data, From d64eff9947a4a9a116cb302af59e61fe632d28a9 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Tue, 26 Jul 2016 18:54:55 +0200 Subject: [PATCH 006/228] Fix updating the Per Object Settings color swatch CURA-1971 --- plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml index 79f10f508f..dc0574d14d 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml +++ b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml @@ -47,7 +47,9 @@ Item { id: extruders_model onRowsInserted: extruderSelector.visible = extruders_model.rowCount() > 1 onModelReset: extruderSelector.visible = extruders_model.rowCount() > 1 + onModelChanged: extruderSelector.color = extruders_model.getItem(extruderSelector.currentIndex).colour } + property string color: extruders_model.getItem(extruderSelector.currentIndex).colour visible: extruders_model.rowCount() > 1 textRole: "name" width: UM.Theme.getSize("setting_control").width @@ -88,7 +90,7 @@ Item { anchors.leftMargin: UM.Theme.getSize("default_lining").width anchors.verticalCenter: parent.verticalCenter - color: extruders_model.getItem(extruderSelector.currentIndex).colour + color: extruderSelector.color border.width: UM.Theme.getSize("default_lining").width border.color: !enabled ? UM.Theme.getColor("setting_control_disabled_border") : UM.Theme.getColor("setting_control_border") } @@ -136,6 +138,7 @@ Item { if(extruders_model.getItem(i).id == UM.ActiveTool.properties.getValue("SelectedActiveExtruder")) { extruderSelector.currentIndex = i; + extruderSelector.color = extruders_model.getItem(i).colour; return; } } From 260b68286475afc59eb31ab2b7a995b268e9f43e Mon Sep 17 00:00:00 2001 From: Thomas Karl Pietrowski Date: Tue, 26 Jul 2016 18:56:57 +0200 Subject: [PATCH 007/228] CURA-1923: Slicinfo: Using UM.Job instead As suggested by @awhiemstra handling our "thread" here should be done with UM.Job. --- plugins/SliceInfoPlugin/SliceInfo.py | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/plugins/SliceInfoPlugin/SliceInfo.py b/plugins/SliceInfoPlugin/SliceInfo.py index 8c7402762a..20e670dca7 100644 --- a/plugins/SliceInfoPlugin/SliceInfo.py +++ b/plugins/SliceInfoPlugin/SliceInfo.py @@ -11,8 +11,9 @@ from UM.i18n import i18nCatalog from UM.Logger import Logger from UM.Platform import Platform from UM.Qt.Duration import DurationFormat +from UM.Job import Job -from threading import Thread +import time import platform import math import urllib.request @@ -21,12 +22,12 @@ import ssl catalog = i18nCatalog("cura") -class SliceInfoThread(Thread): +class SliceInfoThread(Job): data = None url = None def __init__(self, url, data): - Thread.__init__(self) + Job.__init__(self) self.url = url self.data = data @@ -68,17 +69,17 @@ class SliceInfo(Extension): self.send_slice_info_message.actionTriggered.connect(self.messageActionTriggered) self.send_slice_info_message.show() - self.runningThreads = [] + self.runningJobs = [] def __del__(self): - for thread in self.threadedReports: - if thread.is_alive(): - thread.join() # Wait for threads - shouldn't take much more time than the timeout. See above.. + for job in self.runningJobs: + while not job.isFinished(): + time.sleep(1) # Wait for threads - shouldn't take much more time than the timeout. See above.. def _removeFinishedThreads(self): - for process in self.runningThreads: - if not process.is_alive(): - self.runningThreads.remove(process) # Remove finished threads + for job in self.runningJobs: + if job.isFinished(): + self.runningJobs.remove(job) # Remove finished threads def messageActionTriggered(self, message_id, action_id): self.send_slice_info_message.hide() @@ -152,9 +153,9 @@ class SliceInfo(Extension): binary_data = submitted_data.encode("utf-8") # Sending slice info non-blocking - reportThread = SliceInfoThread(self.info_url, binary_data) - self.runningThreads.append(reportThread) - reportThread.start() + reportJob = SliceInfoThread(self.info_url, binary_data) + self.runningJobs.append(reportJob) + reportJob.start() except: # We really can't afford to have a mistake here, as this would break the sending of g-code to a device # (Either saving or directly to a printer). The functionality of the slice data is not *that* important. From d96ce760f8828c14ece3b42ad6668f6f55c94905 Mon Sep 17 00:00:00 2001 From: Thomas Karl Pietrowski Date: Tue, 26 Jul 2016 20:21:00 +0200 Subject: [PATCH 008/228] CURA-1223: 3MFReader: Doing selftest and fail on broken files This commit adds a selftest before the "result" gets returned. It should break on this/these functions and popup a message about using the online repair tool. I compared the content of both files for a long time, googled about the format, but wasn't able to find a proper fix. More routines will likely need to be added here, but with those I have it is working so far very well. Sadly it is not possible to override the default message, so two messages will appear. Additionally, the URL of the link is not clickable/executable from the UX. Just acting like normal text. Contributes to CURA-1223 --- plugins/3MFReader/ThreeMFReader.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/plugins/3MFReader/ThreeMFReader.py b/plugins/3MFReader/ThreeMFReader.py index 57d76b2783..bf25ccd440 100644 --- a/plugins/3MFReader/ThreeMFReader.py +++ b/plugins/3MFReader/ThreeMFReader.py @@ -9,9 +9,13 @@ from UM.Math.Vector import Vector from UM.Scene.SceneNode import SceneNode from UM.Scene.GroupDecorator import GroupDecorator from UM.Math.Quaternion import Quaternion - from UM.Job import Job +from UM.Message import Message +from UM.i18n import i18nCatalog +catalog = i18nCatalog("cura") + + import math import zipfile @@ -116,4 +120,11 @@ class ThreeMFReader(MeshReader): except Exception as e: Logger.log("e", "exception occured in 3mf reader: %s", e) + try: # Selftest - There might be more functions that should fail + result.getBoundingBox() + except: + message = Message(catalog.i18nc("@info:status", "Your 3MF file seems to be broken. Please visit https://modelrepair.azurewebsites.net/ and try to repair your model!"), lifetime = 0) + message.show() + return None + return result From 762ea15e785cef44ab14460c41044a8bc589236c Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 27 Jul 2016 09:54:02 +0200 Subject: [PATCH 009/228] Global inherited settings now use target (instead of active) stack to copy values Fixes multiple issues with support settings not being updated properly --- cura/Settings/MachineManager.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index ca09cbc5dc..5bc0ff65fa 100644 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -269,13 +269,16 @@ class MachineManager(QObject): if property_name == "global_inherits_stack": if self._active_container_stack and self._active_container_stack != self._global_container_stack: # Update the global user value when the "global_inherits_stack" function points to a different stack - stack_index = int(self._active_container_stack.getProperty(key, property_name)) - extruder_stacks = [stack for stack in ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId())] + extruder_stacks = list(ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId())) + target_stack_position = int(self._active_container_stack.getProperty(key, "global_inherits_stack")) + if target_stack_position == -1: # Prevent -1 from selecting wrong stack. + target_stack = self._active_container_stack + else: + target_stack = extruder_stacks[target_stack_position] - if len(extruder_stacks) > stack_index: - new_value = extruder_stacks[stack_index].getProperty(key, "value") - if self._global_container_stack.getProperty(key, "value") != new_value: - self._global_container_stack.getTop().setProperty(key, "value", new_value) + new_value = target_stack.getProperty(key, "value") + if self._global_container_stack.getProperty(key, "value") != new_value: + self._global_container_stack.getTop().setProperty(key, "value", new_value) if property_name == "validationState": if self._global_stack_valid: @@ -549,7 +552,7 @@ class MachineManager(QObject): return "" @pyqtSlot(str, str) - def renameQualityContainer(self, container_id, new_name): + def renameQualityContainer(self, container_id, nbalew_name): containers = UM.Settings.ContainerRegistry.getInstance().findInstanceContainers(id = container_id, type = "quality") if containers: new_name = self._createUniqueName("quality", containers[0].getName(), new_name, From f4698c7cd4f1d58e0a8fbd0367131c2d96a5d508 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Wed, 27 Jul 2016 10:18:19 +0200 Subject: [PATCH 010/228] feat: support_bottom_height and support_interface_height (CURA-1013) --- resources/definitions/fdmprinter.def.json | 39 ++++++++++++++++++++--- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 950c856a6e..303f06288e 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -2365,10 +2365,10 @@ "enabled": "support_enable", "settable_per_mesh": true }, - "support_roof_height": + "support_interface_height": { - "label": "Support Roof Thickness", - "description": "The thickness of the support roofs.", + "label": "Support Interface Thickness", + "description": "The thickness of the interface of the support where it touches with the model on the bottom or the top.", "unit": "mm", "type": "float", "default_value": 1, @@ -2376,7 +2376,38 @@ "global_inherits_stack": "support_extruder_nr", "maximum_value_warning": "10", "enabled": "support_roof_enable and support_enable", - "settable_per_mesh": true + "settable_per_mesh": true, + "children": + { + "support_roof_height": + { + "label": "Support Roof Thickness", + "description": "The thickness of the support roofs. This controls the amount of dense layers at the top of the support on which the model rests.", + "unit": "mm", + "type": "float", + "default_value": 1, + "value": "support_interface_height", + "minimum_value": "0", + "global_inherits_stack": "support_extruder_nr", + "maximum_value_warning": "10", + "enabled": "support_roof_enable and support_enable", + "settable_per_mesh": true + }, + "support_bottom_height": + { + "label": "Support Bottom Thickness", + "description": "The thickness of the support bottoms. This controls the number of dense layers are printed on top of places of a model on which support rests.", + "unit": "mm", + "type": "float", + "default_value": 1, + "value": "support_interface_height", + "minimum_value": "0", + "global_inherits_stack": "support_extruder_nr", + "maximum_value_warning": "10", + "enabled": "support_roof_enable and support_enable", + "settable_per_mesh": true + } + } }, "support_roof_density": { From 17b455d2ed920e04161b0ee6d909ce2f61aa9832 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Wed, 27 Jul 2016 10:34:41 +0200 Subject: [PATCH 011/228] JSON rename: Support Roof ==> Support Interface (CURA-1013) the support roof settings are now used for support bottoms as well --- resources/definitions/fdmprinter.def.json | 36 +++++++++++------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 303f06288e..8a53f4859a 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -636,8 +636,8 @@ }, "support_roof_line_width": { - "label": "Support Roof Line Width", - "description": "Width of a single support roof line.", + "label": "Support Interface Line Width", + "description": "Width of a single support interface line.", "unit": "mm", "default_value": 0.4, "minimum_value": "0.0001", @@ -1468,8 +1468,8 @@ }, "speed_support_roof": { - "label": "Support Roof Speed", - "description": "The speed at which the roofs of support are printed. Printing the support roof at lower speeds can improve overhang quality.", + "label": "Support Interface Speed", + "description": "The speed at which the roofs and bottoms of support are printed. Printing the them at lower speeds can improve overhang quality.", "unit": "mm/s", "type": "float", "default_value": 40, @@ -1671,8 +1671,8 @@ "settable_per_extruder": false }, "acceleration_support_roof": { - "label": "Support Roof Acceleration", - "description": "The acceleration with which the roofs of support are printed. Printing the support roof at lower accelerations can improve overhang quality.", + "label": "Support Interface Acceleration", + "description": "The acceleration with which the roofs and bottoms of support are printed. Printing them at lower accelerations can improve overhang quality.", "unit": "mm/s²", "type": "float", "default_value": 3000, @@ -1862,8 +1862,8 @@ "settable_per_extruder": false }, "jerk_support_roof": { - "label": "Support Roof Jerk", - "description": "The maximum instantaneous velocity change with which the roofs of support are printed.", + "label": "Support Interface Jerk", + "description": "The maximum instantaneous velocity change with which the roofs and bottoms of support are printed.", "unit": "mm/s", "type": "float", "default_value": 20, @@ -2357,8 +2357,8 @@ }, "support_roof_enable": { - "label": "Enable Support Roof", - "description": "Generate a dense top skin at the top of the support on which the model is printed.", + "label": "Enable Support Interface", + "description": "Generate a dense interface between the model and the support. This will create a skin at the top of the support on which the model is printed and at the bottom of the support, where it rests on the model.", "type": "bool", "default_value": false, "global_inherits_stack": "support_extruder_nr", @@ -2411,8 +2411,8 @@ }, "support_roof_density": { - "label": "Support Roof Density", - "description": "Adjusts the density of the roof of the support structure. A higher value results in better overhangs, but the supports are harder to remove.", + "label": "Support Interface Density", + "description": "Adjusts the density of the roofs and bottoms of the support structure. A higher value results in better overhangs, but the supports are harder to remove.", "unit": "%", "type": "float", "default_value": 100, @@ -2425,8 +2425,8 @@ { "support_roof_line_distance": { - "label": "Support Roof Line Distance", - "description": "Distance between the printed support roof lines. This setting is calculated by the support roof Density, but can be adjusted separately.", + "label": "Support Interface Line Distance", + "description": "Distance between the printed support interface lines. This setting is calculated by the Support Interface Density, but can be adjusted separately.", "unit": "mm", "type": "float", "default_value": 0.4, @@ -2440,8 +2440,8 @@ }, "support_roof_pattern": { - "label": "Support Roof Pattern", - "description": "The pattern with which the top of the support is printed.", + "label": "Support Interface Pattern", + "description": "The pattern with which the interface of the support with the model is printed.", "type": "enum", "options": { @@ -3089,8 +3089,8 @@ }, "support_roof_extruder_nr": { - "label": "Support Roof Extruder", - "description": "The extruder train to use for printing the roof of the support. This is used in multi-extrusion.", + "label": "Support Interface Extruder", + "description": "The extruder train to use for printing the roofs and bottoms of the support. This is used in multi-extrusion.", "type": "extruder", "default_value": "0", "value": "support_extruder_nr", From 5da3cd34e9bb759ca18aec6ff2768c43bf4f1e69 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 27 Jul 2016 10:56:13 +0200 Subject: [PATCH 012/228] Improve inheritance function for speed_travel_layer_0 This makes the speed_travel_layer_0 by default have the same ratio to the parent print speed as the travel speed has on other layers. --- resources/definitions/fdmprinter.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index ca09f3ec23..62c8505558 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1541,7 +1541,7 @@ "unit": "mm/s", "type": "float", "default_value": 60, - "value": "speed_layer_0 * 2", + "value": "speed_layer_0 * speed_travel / speed_print", "minimum_value": "0.1", "maximum_value": "299792458000", "maximum_value_warning": "300", From 1e2147522deab8e4d64e4422dc1095731c8afe61 Mon Sep 17 00:00:00 2001 From: Simon Edwards Date: Wed, 27 Jul 2016 11:00:47 +0200 Subject: [PATCH 013/228] Increase the size of the backend log. Contributes to CURA-1509 Cura in slicing loop, Arcus Error (8) --- plugins/CuraEngineBackend/CuraEngineBackend.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index aedc91f130..bf68a6cb78 100644 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -92,7 +92,7 @@ class CuraEngineBackend(Backend): self._always_restart = True #Always restart the engine when starting a new slice. Don't keep the process running. TODO: Fix engine statelessness. self._process_layers_job = None #The currently active job to process layers, or None if it is not processing layers. - self._backend_log_max_lines = 200 # Maximal count of lines to buffer + self._backend_log_max_lines = 20000 # Maximum number of lines to buffer self._error_message = None #Pop-up message that shows errors. self.backendQuit.connect(self._onBackendQuit) From 358a48dfbb7c5fe4e593d3ebdee7356ad8abeee4 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Wed, 27 Jul 2016 12:14:25 +0200 Subject: [PATCH 014/228] JSON fix: support_bottom_height now warns if below support_bottom_stair_step_dist (CURA-1013) --- resources/definitions/fdmprinter.def.json | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 8a53f4859a..0e07121539 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -2402,6 +2402,7 @@ "default_value": 1, "value": "support_interface_height", "minimum_value": "0", + "minimum_value_warning": "support_bottom_stair_step_height", "global_inherits_stack": "support_extruder_nr", "maximum_value_warning": "10", "enabled": "support_roof_enable and support_enable", From 4175e51dbb1f8707c05910872c0dd628baacce62 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Wed, 27 Jul 2016 14:00:42 +0200 Subject: [PATCH 015/228] Corrected gantry height for ultimaker2.json (extended and go inherit). CURA-1979 Made same change in resources/definitions/ultimaker2.def.json as in the original resources/machines/ultimaker2.json --- resources/definitions/ultimaker2.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/ultimaker2.def.json b/resources/definitions/ultimaker2.def.json index 3712963f23..d8e73a7e14 100644 --- a/resources/definitions/ultimaker2.def.json +++ b/resources/definitions/ultimaker2.def.json @@ -57,7 +57,7 @@ "default_value": 2 }, "gantry_height": { - "default_value": 55 + "default_value": 48 }, "machine_use_extruder_offset_to_offset_coords": { "default_value": true From afed6eed93e2ebb11bb0183ca08aa6e8d4fef8f1 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 27 Jul 2016 14:14:13 +0200 Subject: [PATCH 016/228] Print montior also handles wait_for_cleanup correctly now --- resources/qml/MonitorButton.qml | 6 +++++- resources/qml/Sidebar.qml | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/resources/qml/MonitorButton.qml b/resources/qml/MonitorButton.qml index af163a39e2..7a87eb4f60 100644 --- a/resources/qml/MonitorButton.qml +++ b/resources/qml/MonitorButton.qml @@ -22,7 +22,7 @@ Rectangle { if(!printerConnected) return UM.Theme.getColor("status_offline") - else if(Cura.MachineManager.printerOutputDevices[0].jobState == "printing" || Cura.MachineManager.printerOutputDevices[0].jobState == "pre_print") + else if(Cura.MachineManager.printerOutputDevices[0].jobState == "printing" || Cura.MachineManager.printerOutputDevices[0].jobState == "pre_print" || Cura.MachineManager.printerOutputDevices[0].jobState == "wait_cleanup" ) return UM.Theme.getColor("status_busy") else if(Cura.MachineManager.printerOutputDevices[0].jobState == "ready" || Cura.MachineManager.printerOutputDevices[0].jobState == "") return UM.Theme.getColor("status_ready") @@ -53,6 +53,10 @@ Rectangle { return catalog.i18nc("@label:", "Preparing...") } + else if(Cura.MachineManager.printerOutputDevices[0].jobState == "wait_cleanup") + { + return catalog.i18nc("@label:", "Waiting for cleanup...") + } else { return " " diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml index 53a2375394..1542e24f5d 100644 --- a/resources/qml/Sidebar.qml +++ b/resources/qml/Sidebar.qml @@ -108,7 +108,7 @@ Rectangle iconSource: { if(!printerConnected) return UM.Theme.getIcon("tab_monitor") - else if(Cura.MachineManager.printerOutputDevices[0].jobState == "printing" || Cura.MachineManager.printerOutputDevices[0].jobState == "pre_print") + else if(Cura.MachineManager.printerOutputDevices[0].jobState == "printing" || Cura.MachineManager.printerOutputDevices[0].jobState == "pre_print" || Cura.MachineManager.printerOutputDevices[0].jobState == "wait_cleanup" ) return UM.Theme.getIcon("tab_monitor_busy") else if(Cura.MachineManager.printerOutputDevices[0].jobState == "ready" || Cura.MachineManager.printerOutputDevices[0].jobState == "") return UM.Theme.getIcon("tab_monitor_connected") From cd26794155ee73ea6b10bfb7e179c23892e52afb Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Wed, 27 Jul 2016 17:27:57 +0200 Subject: [PATCH 017/228] JSON fix: retrieve globalish support settings from support extruder (CURA-2003) --- resources/definitions/fdmprinter.def.json | 47 +++++++++-------------- 1 file changed, 18 insertions(+), 29 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 950c856a6e..f8bd162c27 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -630,9 +630,8 @@ "type": "float", "enabled": "support_enable", "value": "line_width", - "global_inherits_stack": "support_extruder_nr", "settable_per_mesh": false, - "settable_per_extruder": false + "settable_per_extruder": true }, "support_roof_line_width": { @@ -645,9 +644,8 @@ "type": "float", "enabled": "support_roof_enable", "value": "line_width", - "global_inherits_stack": "support_extruder_nr", "settable_per_mesh": false, - "settable_per_extruder": false + "settable_per_extruder": true }, "prime_tower_line_width": { @@ -1444,10 +1442,9 @@ "maximum_value_warning": "150", "default_value": 60, "value": "speed_print", - "global_inherits_stack": "support_extruder_nr", "enabled": "support_enable", "settable_per_mesh": false, - "settable_per_extruder": false, + "settable_per_extruder": true, "children": { "speed_support_infill": @@ -1461,10 +1458,9 @@ "maximum_value": "299792458000", "maximum_value_warning": "150", "value": "speed_support", - "global_inherits_stack": "support_extruder_nr", "enabled": "support_enable", "settable_per_mesh": false, - "settable_per_extruder": false + "settable_per_extruder": true }, "speed_support_roof": { @@ -1478,9 +1474,8 @@ "maximum_value_warning": "150", "enabled": "support_roof_enable and support_enable", "value": "speed_support / 1.5", - "global_inherits_stack": "support_extruder_nr", "settable_per_mesh": false, - "settable_per_extruder": false + "settable_per_extruder": true } } }, @@ -1650,10 +1645,9 @@ "maximum_value_warning": "10000", "default_value": 3000, "value": "acceleration_print", - "global_inherits_stack": "support_extruder_nr", "enabled": "acceleration_enabled and support_enable", "settable_per_mesh": false, - "settable_per_extruder": false, + "settable_per_extruder": true, "children": { "acceleration_support_infill": { "label": "Support Infill Acceleration", @@ -1662,13 +1656,12 @@ "type": "float", "default_value": 3000, "value": "acceleration_support", - "global_inherits_stack": "support_extruder_nr", "minimum_value": "0.1", "minimum_value_warning": "100", "maximum_value_warning": "10000", "enabled": "acceleration_enabled and support_enable", "settable_per_mesh": false, - "settable_per_extruder": false + "settable_per_extruder": true }, "acceleration_support_roof": { "label": "Support Roof Acceleration", @@ -1677,13 +1670,12 @@ "type": "float", "default_value": 3000, "value": "acceleration_support", - "global_inherits_stack": "support_extruder_nr", "minimum_value": "0.1", "minimum_value_warning": "100", "maximum_value_warning": "10000", "enabled": "acceleration_enabled and support_roof_enable and support_enable", "settable_per_mesh": false, - "settable_per_extruder": false + "settable_per_extruder": true } } }, @@ -1841,10 +1833,9 @@ "maximum_value_warning": "50", "default_value": 20, "value": "jerk_print", - "global_inherits_stack": "support_extruder_nr", "enabled": "jerk_enabled and support_enable", "settable_per_mesh": false, - "settable_per_extruder": false, + "settable_per_extruder": true, "children": { "jerk_support_infill": { "label": "Support Infill Jerk", @@ -1853,13 +1844,12 @@ "type": "float", "default_value": 20, "value": "jerk_support", - "global_inherits_stack": "support_extruder_nr", "minimum_value": "0.1", "minimum_value_warning": "5", "maximum_value_warning": "50", "enabled": "jerk_enabled and support_enable", "settable_per_mesh": false, - "settable_per_extruder": false + "settable_per_extruder": true }, "jerk_support_roof": { "label": "Support Roof Jerk", @@ -1868,13 +1858,12 @@ "type": "float", "default_value": 20, "value": "jerk_support", - "global_inherits_stack": "support_extruder_nr", "minimum_value": "0.1", "minimum_value_warning": "5", "maximum_value_warning": "50", "enabled": "jerk_enabled and support_roof_enable and support_enable", "settable_per_mesh": false, - "settable_per_extruder": false + "settable_per_extruder": true } } }, @@ -2180,7 +2169,7 @@ "default_value": "zigzag", "enabled": "support_enable", "settable_per_mesh": false, - "settable_per_extruder": false + "settable_per_extruder": true }, "support_connect_zigzags": { @@ -2190,7 +2179,7 @@ "default_value": true, "enabled": "support_enable and (support_pattern == \"zigzag\")", "settable_per_mesh": false, - "settable_per_extruder": false + "settable_per_extruder": true }, "support_infill_rate": { @@ -2203,7 +2192,7 @@ "default_value": 15, "enabled": "support_enable", "settable_per_mesh": false, - "settable_per_extruder": false, + "settable_per_extruder": true, "children": { "support_line_distance": { @@ -2216,7 +2205,7 @@ "enabled": "support_enable", "value": "(support_line_width * 100) / support_infill_rate * (2 if support_pattern == \"grid\" else (3 if support_pattern == \"triangles\" else 1))", "settable_per_mesh": false, - "settable_per_extruder": false + "settable_per_extruder": true } } }, @@ -2389,7 +2378,7 @@ "maximum_value_warning": "100", "enabled":"support_roof_enable and support_enable", "settable_per_mesh": false, - "settable_per_extruder": false, + "settable_per_extruder": true, "children": { "support_roof_line_distance": @@ -2403,7 +2392,7 @@ "value": "0 if support_roof_density == 0 else (support_roof_line_width * 100) / support_roof_density * (2 if support_roof_pattern == \"grid\" else (3 if support_roof_pattern == \"triangles\" else 1))", "enabled": "support_roof_enable and support_enable", "settable_per_mesh": false, - "settable_per_extruder": false + "settable_per_extruder": true } } }, @@ -2423,7 +2412,7 @@ "default_value": "concentric", "enabled": "support_roof_enable and support_enable", "settable_per_mesh": false, - "settable_per_extruder": false + "settable_per_extruder": true }, "support_use_towers": { From bac3f73e6db141554af50bf6b281c429da47c5a1 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Wed, 27 Jul 2016 17:42:15 +0200 Subject: [PATCH 018/228] Check ConvexHullHead vs ConvexHullHead collision. CURA-1776 --- cura/PlatformPhysics.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cura/PlatformPhysics.py b/cura/PlatformPhysics.py index d2a848dd72..91d2b1a1ef 100644 --- a/cura/PlatformPhysics.py +++ b/cura/PlatformPhysics.py @@ -95,11 +95,11 @@ class PlatformPhysics: # Get the overlap distance for both convex hulls. If this returns None, there is no intersection. head_hull = node.callDecoration("getConvexHullHead") if head_hull: - overlap = head_hull.intersectsPolygon(other_node.callDecoration("getConvexHull")) + overlap = head_hull.intersectsPolygon(other_node.callDecoration("getConvexHullHead")) if not overlap: other_head_hull = other_node.callDecoration("getConvexHullHead") if other_head_hull: - overlap = node.callDecoration("getConvexHull").intersectsPolygon(other_head_hull) + overlap = node.callDecoration("getConvexHullHead").intersectsPolygon(other_head_hull) else: own_convex_hull = node.callDecoration("getConvexHull") other_convex_hull = other_node.callDecoration("getConvexHull") From 6af0f28f32e776e971d04cd3e15b01f75319425d Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 27 Jul 2016 17:50:25 +0200 Subject: [PATCH 019/228] Only show draft shield height if draft shield enabled We must've missed that one previously. Contributes to issue CURA-1295. --- resources/definitions/fdmprinter.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index f8bd162c27..2df6c295a4 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3348,7 +3348,7 @@ "maximum_value_warning": "9999", "default_value": 0, "value": "9999 if draft_shield_height_limitation == 'full' and draft_shield_enabled else 0.0", - "enabled": "draft_shield_height_limitation == \"limited\"", + "enabled": "draft_shield_enabled and draft_shield_height_limitation == \"limited\"", "settable_per_mesh": false, "settable_per_extruder": false }, From 823ab61cc577eb072a61cb3bd7cb524e1b4561d3 Mon Sep 17 00:00:00 2001 From: Arjen Hiemstra Date: Wed, 27 Jul 2016 18:02:31 +0200 Subject: [PATCH 020/228] Tweak convex hull node and transparent object shader Now we render at least a vague hint at lighting instead of nothing at all. --- cura/ConvexHullNode.py | 2 +- resources/shaders/transparent_object.shader | 34 ++++++++------------- 2 files changed, 13 insertions(+), 23 deletions(-) diff --git a/cura/ConvexHullNode.py b/cura/ConvexHullNode.py index 703dfb0bed..232b30e317 100644 --- a/cura/ConvexHullNode.py +++ b/cura/ConvexHullNode.py @@ -23,7 +23,7 @@ class ConvexHullNode(SceneNode): self._original_parent = parent # Color of the drawn convex hull - self._color = Color(35, 35, 35, 192) + self._color = Color(0.4, 0.4, 0.4, 1.0) # The y-coordinate of the convex hull mesh. Must not be 0, to prevent z-fighting. self._mesh_height = 0.1 diff --git a/resources/shaders/transparent_object.shader b/resources/shaders/transparent_object.shader index a3790901bc..cd27a40769 100644 --- a/resources/shaders/transparent_object.shader +++ b/resources/shaders/transparent_object.shader @@ -1,7 +1,7 @@ [shaders] vertex = - uniform highp mat4 u_viewProjectionMatrix; uniform highp mat4 u_modelMatrix; + uniform highp mat4 u_viewProjectionMatrix; uniform highp mat4 u_normalMatrix; attribute highp vec4 a_vertex; @@ -10,7 +10,6 @@ vertex = varying highp vec3 v_vertex; varying highp vec3 v_normal; - varying highp vec2 v_uvs; void main() { @@ -19,56 +18,47 @@ vertex = v_vertex = world_space_vert.xyz; v_normal = (u_normalMatrix * normalize(a_normal)).xyz; - - v_uvs = a_uvs; } fragment = uniform mediump vec4 u_ambientColor; uniform mediump vec4 u_diffuseColor; uniform highp vec3 u_lightPosition; - uniform highp vec3 u_viewPosition; + uniform mediump float u_opacity; - uniform sampler2D u_texture; varying highp vec3 v_vertex; varying highp vec3 v_normal; - varying highp vec2 v_uvs; void main() { - // Copied from platform.shader, removed texture - mediump vec4 final_color = vec4(0.0); + mediump vec4 finalColor = vec4(0.0); /* Ambient Component */ - final_color += u_ambientColor; + finalColor += u_ambientColor; highp vec3 normal = normalize(v_normal); - highp vec3 light_dir = normalize(u_lightPosition - v_vertex); + highp vec3 lightDir = normalize(u_lightPosition - v_vertex); /* Diffuse Component */ - highp float n_dot_l = clamp(dot(normal, light_dir), 0.0, 1.0); - final_color += (n_dot_l * u_diffuseColor); + highp float NdotL = clamp(abs(dot(normal, lightDir)), 0.0, 1.0); + finalColor += (NdotL * u_diffuseColor); - final_color.a = u_opacity; - - gl_FragColor = final_color; + gl_FragColor = finalColor; + gl_FragColor.a = u_opacity; } [defaults] -u_ambientColor = [0.3, 0.3, 0.3, 1.0] -u_diffuseColor = [1.0, 1.0, 1.0, 1.0] +u_ambientColor = [0.1, 0.1, 0.1, 1.0] +u_diffuseColor = [0.4, 0.4, 0.4, 1.0] u_opacity = 0.5 -u_texture = 0 [bindings] -u_viewProjectionMatrix = view_projection_matrix u_modelMatrix = model_matrix +u_viewProjectionMatrix = view_projection_matrix u_normalMatrix = normal_matrix u_lightPosition = light_0_position -u_viewPosition = camera_position [attributes] a_vertex = vertex a_normal = normal -a_uvs = uv0 From 7971ffdc0828377810e3c36fc93408a344cf8fc3 Mon Sep 17 00:00:00 2001 From: Arjen Hiemstra Date: Wed, 27 Jul 2016 18:02:50 +0200 Subject: [PATCH 021/228] Properly ignore Arcus debug messages --- plugins/CuraEngineBackend/CuraEngineBackend.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index bf68a6cb78..aa6f2b0807 100644 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -252,6 +252,9 @@ class CuraEngineBackend(Backend): return super()._onSocketError(error) + if error.getErrorCode() == Arcus.ErrorCode.Debug: + return + self._terminate() if error.getErrorCode() not in [Arcus.ErrorCode.BindFailedError, Arcus.ErrorCode.ConnectionResetError, Arcus.ErrorCode.Debug]: From 4dbe895c15d8c4ffbebee18947580a73840c642d Mon Sep 17 00:00:00 2001 From: Thomas Karl Pietrowski Date: Wed, 27 Jul 2016 20:16:12 +0200 Subject: [PATCH 022/228] 3MF_Reader: Optionally use cElementTree This should make reading the XML faster --- plugins/3MFReader/ThreeMFReader.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/plugins/3MFReader/ThreeMFReader.py b/plugins/3MFReader/ThreeMFReader.py index bf25ccd440..71fe8857b1 100644 --- a/plugins/3MFReader/ThreeMFReader.py +++ b/plugins/3MFReader/ThreeMFReader.py @@ -19,7 +19,10 @@ catalog = i18nCatalog("cura") import math import zipfile -import xml.etree.ElementTree as ET +try: + import xml.etree.cElementTree as ET +except ImportError: + import xml.etree.ElementTree as ET ## Base implementation for reading 3MF files. Has no support for textures. Only loads meshes! class ThreeMFReader(MeshReader): From d4861ee6269d658be42599b6e6d1459fe1dd7561 Mon Sep 17 00:00:00 2001 From: Thomas Karl Pietrowski Date: Wed, 27 Jul 2016 20:21:35 +0200 Subject: [PATCH 023/228] CURA-1223: Checking whether the bounding box is correct Adds an additional check, like suggested by @awhiemstra. Contributes to CURA-1223 --- plugins/3MFReader/ThreeMFReader.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/3MFReader/ThreeMFReader.py b/plugins/3MFReader/ThreeMFReader.py index 71fe8857b1..deb6153ee3 100644 --- a/plugins/3MFReader/ThreeMFReader.py +++ b/plugins/3MFReader/ThreeMFReader.py @@ -124,7 +124,8 @@ class ThreeMFReader(MeshReader): Logger.log("e", "exception occured in 3mf reader: %s", e) try: # Selftest - There might be more functions that should fail - result.getBoundingBox() + boundingBox = result.getBoundingBox() + boundingBox.isValid() except: message = Message(catalog.i18nc("@info:status", "Your 3MF file seems to be broken. Please visit https://modelrepair.azurewebsites.net/ and try to repair your model!"), lifetime = 0) message.show() From 7581aded7aa68e7c7c42db0493e6e694f45ca74d Mon Sep 17 00:00:00 2001 From: Thomas Karl Pietrowski Date: Wed, 27 Jul 2016 20:32:44 +0200 Subject: [PATCH 024/228] CURA-1923: Remove tracking of jobs Like suggested by @awhiemstra. Contributes to CURA-1923 --- plugins/SliceInfoPlugin/SliceInfo.py | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/plugins/SliceInfoPlugin/SliceInfo.py b/plugins/SliceInfoPlugin/SliceInfo.py index 20e670dca7..7fd0e38309 100644 --- a/plugins/SliceInfoPlugin/SliceInfo.py +++ b/plugins/SliceInfoPlugin/SliceInfo.py @@ -13,7 +13,6 @@ from UM.Platform import Platform from UM.Qt.Duration import DurationFormat from UM.Job import Job -import time import platform import math import urllib.request @@ -69,18 +68,6 @@ class SliceInfo(Extension): self.send_slice_info_message.actionTriggered.connect(self.messageActionTriggered) self.send_slice_info_message.show() - self.runningJobs = [] - - def __del__(self): - for job in self.runningJobs: - while not job.isFinished(): - time.sleep(1) # Wait for threads - shouldn't take much more time than the timeout. See above.. - - def _removeFinishedThreads(self): - for job in self.runningJobs: - if job.isFinished(): - self.runningJobs.remove(job) # Remove finished threads - def messageActionTriggered(self, message_id, action_id): self.send_slice_info_message.hide() Preferences.getInstance().setValue("info/asked_send_slice_info", True) @@ -154,7 +141,6 @@ class SliceInfo(Extension): # Sending slice info non-blocking reportJob = SliceInfoThread(self.info_url, binary_data) - self.runningJobs.append(reportJob) reportJob.start() except: # We really can't afford to have a mistake here, as this would break the sending of g-code to a device From dd9220068e7ccc1fba15a453dffd1d5030c5b3b4 Mon Sep 17 00:00:00 2001 From: Thomas Karl Pietrowski Date: Wed, 27 Jul 2016 20:34:52 +0200 Subject: [PATCH 025/228] CURA-1923: Using super.__init__() --- plugins/SliceInfoPlugin/SliceInfo.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/SliceInfoPlugin/SliceInfo.py b/plugins/SliceInfoPlugin/SliceInfo.py index 7fd0e38309..1324f60948 100644 --- a/plugins/SliceInfoPlugin/SliceInfo.py +++ b/plugins/SliceInfoPlugin/SliceInfo.py @@ -26,7 +26,7 @@ class SliceInfoThread(Job): url = None def __init__(self, url, data): - Job.__init__(self) + super.__init__(self) self.url = url self.data = data From c7956542c41499a22a8efabbf700c2a542967259 Mon Sep 17 00:00:00 2001 From: Thomas Karl Pietrowski Date: Wed, 27 Jul 2016 20:39:55 +0200 Subject: [PATCH 026/228] CURA-1923: Rename SliceInfoThread to SliceInfoJob --- plugins/SliceInfoPlugin/SliceInfo.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/SliceInfoPlugin/SliceInfo.py b/plugins/SliceInfoPlugin/SliceInfo.py index 1324f60948..5630f76805 100644 --- a/plugins/SliceInfoPlugin/SliceInfo.py +++ b/plugins/SliceInfoPlugin/SliceInfo.py @@ -21,7 +21,7 @@ import ssl catalog = i18nCatalog("cura") -class SliceInfoThread(Job): +class SliceInfoJob(Job): data = None url = None @@ -140,7 +140,7 @@ class SliceInfo(Extension): binary_data = submitted_data.encode("utf-8") # Sending slice info non-blocking - reportJob = SliceInfoThread(self.info_url, binary_data) + reportJob = SliceInfoJob(self.info_url, binary_data) reportJob.start() except: # We really can't afford to have a mistake here, as this would break the sending of g-code to a device From 44c64c4ac766fc7e085d338cb1f21c949851c9ba Mon Sep 17 00:00:00 2001 From: Thomas Karl Pietrowski Date: Wed, 27 Jul 2016 21:14:21 +0200 Subject: [PATCH 027/228] Clean up __init__ --- plugins/3MFReader/ThreeMFReader.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/3MFReader/ThreeMFReader.py b/plugins/3MFReader/ThreeMFReader.py index 57d76b2783..12c74ce73c 100644 --- a/plugins/3MFReader/ThreeMFReader.py +++ b/plugins/3MFReader/ThreeMFReader.py @@ -20,7 +20,7 @@ import xml.etree.ElementTree as ET ## Base implementation for reading 3MF files. Has no support for textures. Only loads meshes! class ThreeMFReader(MeshReader): def __init__(self): - super(ThreeMFReader, self).__init__() + super().__init__() self._supported_extensions = [".3mf"] self._namespaces = { From b699efa55e388cf0de97b7385fecbeb57fa3a997 Mon Sep 17 00:00:00 2001 From: Thomas Karl Pietrowski Date: Wed, 27 Jul 2016 21:20:55 +0200 Subject: [PATCH 028/228] Revert "Clean up __init__" This reverts commit 44c64c4ac766fc7e085d338cb1f21c949851c9ba. --- plugins/3MFReader/ThreeMFReader.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/3MFReader/ThreeMFReader.py b/plugins/3MFReader/ThreeMFReader.py index 12c74ce73c..57d76b2783 100644 --- a/plugins/3MFReader/ThreeMFReader.py +++ b/plugins/3MFReader/ThreeMFReader.py @@ -20,7 +20,7 @@ import xml.etree.ElementTree as ET ## Base implementation for reading 3MF files. Has no support for textures. Only loads meshes! class ThreeMFReader(MeshReader): def __init__(self): - super().__init__() + super(ThreeMFReader, self).__init__() self._supported_extensions = [".3mf"] self._namespaces = { From 9f280717d880cb9d132f43a47aef133f64b5bf76 Mon Sep 17 00:00:00 2001 From: Thomas Karl Pietrowski Date: Wed, 27 Jul 2016 21:14:21 +0200 Subject: [PATCH 029/228] Clean up __init__ --- plugins/3MFReader/ThreeMFReader.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/3MFReader/ThreeMFReader.py b/plugins/3MFReader/ThreeMFReader.py index deb6153ee3..74db9fe946 100644 --- a/plugins/3MFReader/ThreeMFReader.py +++ b/plugins/3MFReader/ThreeMFReader.py @@ -27,7 +27,7 @@ except ImportError: ## Base implementation for reading 3MF files. Has no support for textures. Only loads meshes! class ThreeMFReader(MeshReader): def __init__(self): - super(ThreeMFReader, self).__init__() + super().__init__() self._supported_extensions = [".3mf"] self._namespaces = { From d99827109ab836963d523322ef00b0e6cf9675bd Mon Sep 17 00:00:00 2001 From: Thomas Karl Pietrowski Date: Wed, 27 Jul 2016 21:20:55 +0200 Subject: [PATCH 030/228] Revert "Clean up __init__" This reverts commit 44c64c4ac766fc7e085d338cb1f21c949851c9ba. --- plugins/3MFReader/ThreeMFReader.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/3MFReader/ThreeMFReader.py b/plugins/3MFReader/ThreeMFReader.py index 74db9fe946..deb6153ee3 100644 --- a/plugins/3MFReader/ThreeMFReader.py +++ b/plugins/3MFReader/ThreeMFReader.py @@ -27,7 +27,7 @@ except ImportError: ## Base implementation for reading 3MF files. Has no support for textures. Only loads meshes! class ThreeMFReader(MeshReader): def __init__(self): - super().__init__() + super(ThreeMFReader, self).__init__() self._supported_extensions = [".3mf"] self._namespaces = { From 5f540a7a78d004b2642cfc275b8a56e5f9676dff Mon Sep 17 00:00:00 2001 From: Thomas Karl Pietrowski Date: Wed, 27 Jul 2016 21:22:30 +0200 Subject: [PATCH 031/228] Revert "Revert "Clean up __init__"" This reverts commit d99827109ab836963d523322ef00b0e6cf9675bd. --- plugins/3MFReader/ThreeMFReader.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/3MFReader/ThreeMFReader.py b/plugins/3MFReader/ThreeMFReader.py index deb6153ee3..74db9fe946 100644 --- a/plugins/3MFReader/ThreeMFReader.py +++ b/plugins/3MFReader/ThreeMFReader.py @@ -27,7 +27,7 @@ except ImportError: ## Base implementation for reading 3MF files. Has no support for textures. Only loads meshes! class ThreeMFReader(MeshReader): def __init__(self): - super(ThreeMFReader, self).__init__() + super().__init__() self._supported_extensions = [".3mf"] self._namespaces = { From b9857a697576db4a311c792bb57130f03f7c9904 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Tue, 26 Jul 2016 17:10:17 +0200 Subject: [PATCH 032/228] Partially solve setting the UMO heated bed kit option CURA-580 --- plugins/UltimakerMachineActions/UMOUpgradeSelection.py | 3 +++ .../UMOUpgradeSelectionMachineAction.qml | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/plugins/UltimakerMachineActions/UMOUpgradeSelection.py b/plugins/UltimakerMachineActions/UMOUpgradeSelection.py index 2e13ec50d5..5d00fd5e3a 100644 --- a/plugins/UltimakerMachineActions/UMOUpgradeSelection.py +++ b/plugins/UltimakerMachineActions/UMOUpgradeSelection.py @@ -12,6 +12,9 @@ class UMOUpgradeSelection(MachineAction): super().__init__("UMOUpgradeSelection", catalog.i18nc("@action", "Select upgrades")) self._qml_url = "UMOUpgradeSelectionMachineAction.qml" + def _reset(self): + self.heatedBedChanged.emit() + heatedBedChanged = pyqtSignal() @pyqtProperty(bool, notify = heatedBedChanged) diff --git a/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml b/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml index d960bcf976..234e53c0a6 100644 --- a/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml +++ b/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml @@ -44,7 +44,7 @@ Cura.MachineAction text: catalog.i18nc("@label", "Heated bed (official kit or self-built)") checked: manager.hasHeatedBed - onClicked: manager.hasHeatedBed ? manager.removeHeatedBed() : manager.addHeatedBed() + onClicked: checked ? manager.addHeatedBed() : manager.removeHeatedBed() } UM.I18nCatalog { id: catalog; name: "cura"; } From dc6d415cf5b2e5a0ac49e207f4159e16fbf275fe Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Thu, 28 Jul 2016 09:13:35 +0200 Subject: [PATCH 033/228] Disabled duplicate material, because it has a lot of issues. CURA-1969. --- resources/qml/Preferences/MaterialsPage.qml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/resources/qml/Preferences/MaterialsPage.qml b/resources/qml/Preferences/MaterialsPage.qml index aaaa4f5e9d..9da5522762 100644 --- a/resources/qml/Preferences/MaterialsPage.qml +++ b/resources/qml/Preferences/MaterialsPage.qml @@ -67,6 +67,8 @@ UM.ManagementPage enabled: base.currentItem != null && base.currentItem.id != Cura.MachineManager.activeMaterialId onClicked: Cura.MachineManager.setActiveMaterial(base.currentItem.id) }, + /* + // disabled because it has a lot of issues Button { text: catalog.i18nc("@action:button", "Duplicate"); @@ -89,7 +91,7 @@ UM.ManagementPage Cura.MachineManager.setActiveMaterial(material_id) } - }, + }, */ Button { text: catalog.i18nc("@action:button", "Remove"); From 1147e915c19f033e632329df63a4174a83b45d28 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 28 Jul 2016 09:27:20 +0200 Subject: [PATCH 034/228] Setting a instance to the same state no longer causes display to break CURA-1985 --- plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml index dc0574d14d..75cf522c14 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml +++ b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml @@ -246,6 +246,7 @@ Item { key: model.key watchedProperties: [ "value", "enabled", "validationState" ] storeIndex: 0 + removeUnusedValue: false } } } From c6d1caaf0f0c64da1d9d2b0abcd92964847f5ba3 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 28 Jul 2016 11:47:56 +0200 Subject: [PATCH 035/228] Convex hull is no longer needlessly re-calculated CURA-2002 --- cura/ConvexHullDecorator.py | 5 +++-- cura/PlatformPhysics.py | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cura/ConvexHullDecorator.py b/cura/ConvexHullDecorator.py index d864f4288b..783d74e41b 100644 --- a/cura/ConvexHullDecorator.py +++ b/cura/ConvexHullDecorator.py @@ -30,9 +30,10 @@ class ConvexHullDecorator(SceneNodeDecorator): def setNode(self, node): previous_node = self._node + # Disconnect from previous node signals if previous_node is not None and node is not previous_node: - previous_node.transformationChanged.connect(self._onChanged) - previous_node.parentChanged.connect(self._onChanged) + previous_node.transformationChanged.disconnect(self._onChanged) + previous_node.parentChanged.disconnect(self._onChanged) super().setNode(node) diff --git a/cura/PlatformPhysics.py b/cura/PlatformPhysics.py index 91d2b1a1ef..56daaddc18 100644 --- a/cura/PlatformPhysics.py +++ b/cura/PlatformPhysics.py @@ -71,7 +71,6 @@ class PlatformPhysics: # If there is no convex hull for the node, start calculating it and continue. if not node.getDecorator(ConvexHullDecorator): node.addDecorator(ConvexHullDecorator()) - node.callDecoration("recomputeConvexHull") if Preferences.getInstance().getValue("physics/automatic_push_free"): # Check for collisions between convex hulls From cab1dc7a13416d1a72592962e1708ad365702051 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 28 Jul 2016 12:35:36 +0200 Subject: [PATCH 036/228] Fix merge mistake --- cura/CuraApplication.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index a6d0a3b827..1142783c9c 100644 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -98,7 +98,7 @@ class CuraApplication(QtApplication): SettingDefinition.addSupportedProperty("settable_per_meshgroup", DefinitionPropertyType.Any, default = True) SettingDefinition.addSupportedProperty("settable_globally", DefinitionPropertyType.Any, default = True) SettingDefinition.addSupportedProperty("global_inherits_stack", DefinitionPropertyType.Function, default = "-1") - SettingDefinition.addSettingType("extruder", int, str, Validator) + SettingDefinition.addSettingType("extruder", None, str, Validator) ## Add the 4 types of profiles to storage. Resources.addStorageType(self.ResourceTypes.QualityInstanceContainer, "quality") From a1bd8f59edef4c8ad6815314ea35dce677367155 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 28 Jul 2016 13:14:07 +0200 Subject: [PATCH 037/228] Slicing no longer occurs when stack is invalid CURA-1998 --- cura/Settings/MachineManager.py | 27 ++++++++++--------- .../CuraEngineBackend/CuraEngineBackend.py | 2 +- plugins/CuraEngineBackend/StartSliceJob.py | 2 +- resources/qml/Actions.qml | 4 +-- 4 files changed, 18 insertions(+), 17 deletions(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 5bc0ff65fa..9e09ad83be 100644 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -26,7 +26,7 @@ class MachineManager(QObject): self._global_container_stack = None Application.getInstance().globalContainerStackChanged.connect(self._onGlobalContainerChanged) - self._global_stack_valid = None + self._active_stack_valid = None self._onGlobalContainerChanged() ExtruderManager.getInstance().activeExtruderChanged.connect(self._onActiveExtruderStackChanged) @@ -74,7 +74,7 @@ class MachineManager(QObject): activeStackChanged = pyqtSignal() globalValueChanged = pyqtSignal() # Emitted whenever a value inside global container is changed. - globalValidationChanged = pyqtSignal() # Emitted whenever a validation inside global container is changed + activeValidationChanged = pyqtSignal() # Emitted whenever a validation inside active container is changed blurSettings = pyqtSignal() # Emitted to force fields in the advanced sidebar to un-focus, so they update properly @@ -281,16 +281,17 @@ class MachineManager(QObject): self._global_container_stack.getTop().setProperty(key, "value", new_value) if property_name == "validationState": - if self._global_stack_valid: + if self._active_stack_valid: changed_validation_state = self._active_container_stack.getProperty(key, property_name) if changed_validation_state in (UM.Settings.ValidatorState.Exception, UM.Settings.ValidatorState.MaximumError, UM.Settings.ValidatorState.MinimumError): - self._global_stack_valid = False - self.globalValidationChanged.emit() + self._active_stack_valid = False + self.activeValidationChanged.emit() else: has_errors = self._checkStackForErrors(self._active_container_stack) if not has_errors: - self._global_stack_valid = True - self.globalValidationChanged.emit() + self._active_stack_valid = True + self.activeValidationChanged.emit() + def _onGlobalContainerChanged(self): if self._global_container_stack: self._global_container_stack.nameChanged.disconnect(self._onMachineNameChanged) @@ -313,8 +314,6 @@ class MachineManager(QObject): self._global_container_stack.nameChanged.connect(self._onMachineNameChanged) self._global_container_stack.containersChanged.connect(self._onInstanceContainersChanged) self._global_container_stack.propertyChanged.connect(self._onGlobalPropertyChanged) - self._global_stack_valid = not self._checkStackForErrors(self._global_container_stack) - self.globalValidationChanged.emit() material = self._global_container_stack.findContainer({"type": "material"}) material.nameChanged.connect(self._onMaterialNameChanged) @@ -332,6 +331,8 @@ class MachineManager(QObject): self._active_container_stack.propertyChanged.connect(self._onGlobalPropertyChanged) else: self._active_container_stack = self._global_container_stack + self._active_stack_valid = not self._checkStackForErrors(self._active_container_stack) + self.activeValidationChanged.emit() def _onInstanceContainersChanged(self, container): container_type = container.getMetaDataEntry("type") @@ -436,11 +437,11 @@ class MachineManager(QObject): return len(user_settings) != 0 ## Check if the global profile does not contain error states - # Note that the _global_stack_valid is cached due to performance issues + # Note that the _active_stack_valid is cached due to performance issues # Calling _checkStackForErrors on every change is simply too expensive - @pyqtProperty(bool, notify = globalValidationChanged) - def isGlobalStackValid(self): - return bool(self._global_stack_valid) + @pyqtProperty(bool, notify = activeValidationChanged) + def isActiveStackValid(self): + return bool(self._active_stack_valid) @pyqtProperty(str, notify = activeStackChanged) def activeUserProfileId(self): diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index aa6f2b0807..8028df5923 100644 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -117,7 +117,7 @@ class CuraEngineBackend(Backend): # \return list of commands and args / parameters. def getEngineCommand(self): json_path = Resources.getPath(Resources.DefinitionContainers, "fdmprinter.def.json") - return [Preferences.getInstance().getValue("backend/location"), "connect", "127.0.0.1:{0}".format(self._port), "-j", json_path, "-vv"] + return [Preferences.getInstance().getValue("backend/location"), "connect", "127.0.0.1:{0}".format(self._port), "-j", json_path, ""] ## Emitted when we get a message containing print duration and material amount. This also implies the slicing has finished. # \param time The amount of time the print will take. diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index a726e239e0..ebc4495365 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -71,7 +71,7 @@ class StartSliceJob(Job): return # Don't slice if there is a setting with an error value. - if self._checkStackForErrors(stack): + if not Application.getInstance().getMachineManager().isActiveStackValid: self.setResult(StartJobResult.SettingError) return diff --git a/resources/qml/Actions.qml b/resources/qml/Actions.qml index 67bc5fe149..c443c38875 100644 --- a/resources/qml/Actions.qml +++ b/resources/qml/Actions.qml @@ -119,7 +119,7 @@ Item Action { id: updateProfileAction; - enabled: Cura.MachineManager.isGlobalStackValid && Cura.MachineManager.hasUserSettings && !Cura.MachineManager.isReadOnly(Cura.MachineManager.activeQualityId) + enabled: Cura.MachineManager.isActiveStackValid && Cura.MachineManager.hasUserSettings && !Cura.MachineManager.isReadOnly(Cura.MachineManager.activeQualityId) text: catalog.i18nc("@action:inmenu menubar:profile","&Update profile with current settings"); onTriggered: Cura.MachineManager.updateQualityContainerFromUserContainer() } @@ -135,7 +135,7 @@ Item Action { id: addProfileAction; - enabled: Cura.MachineManager.isGlobalStackValid && Cura.MachineManager.hasUserSettings + enabled: Cura.MachineManager.isActiveStackValid && Cura.MachineManager.hasUserSettings text: catalog.i18nc("@action:inmenu menubar:profile","&Create profile from current settings..."); } From 40932a3ad212e87529abcaa8a34328b33abd7072 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 28 Jul 2016 13:07:14 +0200 Subject: [PATCH 038/228] Set default of draft shield height to 10mm This is a fairly arbitrary default until we have tests from materials. The draft shield height is now only used by the engine if the draft shield is enabled and limited. Contributes to issue CURA-1295. --- resources/definitions/fdmprinter.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 2df6c295a4..669d0bcef2 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3346,8 +3346,8 @@ "type": "float", "minimum_value": "0", "maximum_value_warning": "9999", - "default_value": 0, - "value": "9999 if draft_shield_height_limitation == 'full' and draft_shield_enabled else 0.0", + "default_value": 10, + "value": "10", "enabled": "draft_shield_enabled and draft_shield_height_limitation == \"limited\"", "settable_per_mesh": false, "settable_per_extruder": false From 1bbf9879214f821bfb5f9aab40bb9089bf317473 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Thu, 28 Jul 2016 13:45:11 +0200 Subject: [PATCH 039/228] Fix SettingComboBox and SettingExtruder in some contexts Use propertyProvider instead of provider; fixes comboboxes in PostProcessing plugin. --- resources/qml/Settings/SettingComboBox.qml | 6 +++--- resources/qml/Settings/SettingExtruder.qml | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/resources/qml/Settings/SettingComboBox.qml b/resources/qml/Settings/SettingComboBox.qml index 5308e45f5a..283e309e6a 100644 --- a/resources/qml/Settings/SettingComboBox.qml +++ b/resources/qml/Settings/SettingComboBox.qml @@ -86,18 +86,18 @@ SettingItem } } - onActivated: { forceActiveFocus(); provider.setPropertyValue("value", definition.options[index].key) } + onActivated: { forceActiveFocus(); propertyProvider.setPropertyValue("value", definition.options[index].key) } onModelChanged: updateCurrentIndex(); Connections { - target: provider + target: propertyProvider onPropertiesChanged: control.updateCurrentIndex() } function updateCurrentIndex() { for(var i = 0; i < definition.options.length; ++i) { - if(definition.options[i].key == provider.properties.value) { + if(definition.options[i].key == propertyProvider.properties.value) { currentIndex = i; return; } diff --git a/resources/qml/Settings/SettingExtruder.qml b/resources/qml/Settings/SettingExtruder.qml index 72c5299b15..d88fc9c457 100644 --- a/resources/qml/Settings/SettingExtruder.qml +++ b/resources/qml/Settings/SettingExtruder.qml @@ -105,13 +105,13 @@ SettingItem onActivated: { forceActiveFocus(); - provider.setPropertyValue("value", extruders_model.getItem(index).index) + propertyProvider.setPropertyValue("value", extruders_model.getItem(index).index) } onModelChanged: updateCurrentIndex(); Connections { - target: provider + target: propertyProvider onPropertiesChanged: control.updateCurrentIndex(); } @@ -119,7 +119,7 @@ SettingItem { for(var i = 0; i < extruders_model.rowCount(); ++i) { - if(extruders_model.getItem(i).index == provider.properties.value) + if(extruders_model.getItem(i).index == propertyProvider.properties.value) { currentIndex = i; return; From ce462ace17a2730c108215f414ff5b1b37b50c19 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Thu, 28 Jul 2016 13:48:43 +0200 Subject: [PATCH 040/228] Layout. CURA-1707 --- cura/ConvexHullNode.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/ConvexHullNode.py b/cura/ConvexHullNode.py index 232b30e317..8e5acf9518 100644 --- a/cura/ConvexHullNode.py +++ b/cura/ConvexHullNode.py @@ -77,7 +77,7 @@ class ConvexHullNode(SceneNode): convex_hull_head = self._node.callDecoration("getConvexHullHead") if convex_hull_head: convex_hull_head_builder = MeshBuilder() - convex_hull_head_builder.addConvexPolygon(convex_hull_head.getPoints(), self._mesh_height-self._thickness) + convex_hull_head_builder.addConvexPolygon(convex_hull_head.getPoints(), self._mesh_height - self._thickness) self._convex_hull_head_mesh = convex_hull_head_builder.build() if not node: From 0794ddb58e278888b47dccd85af67f680272c55e Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 28 Jul 2016 14:01:57 +0200 Subject: [PATCH 041/228] Backend now listens to all machine extruders for changes CURA-1999 --- .../CuraEngineBackend/CuraEngineBackend.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 8028df5923..73054fb4dc 100644 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -13,9 +13,11 @@ from UM.Resources import Resources from UM.Settings.Validator import ValidatorState #To find if a setting is in an error state. We can't slice then. from UM.Platform import Platform + import cura.Settings from cura.OneAtATimeIterator import OneAtATimeIterator +from cura.Settings.ExtruderManager import ExtruderManager from . import ProcessSlicedLayersJob from . import ProcessGCodeJob from . import StartSliceJob @@ -391,22 +393,35 @@ class CuraEngineBackend(Backend): if self._global_container_stack: self._global_container_stack.propertyChanged.disconnect(self._onSettingChanged) self._global_container_stack.containersChanged.disconnect(self._onChanged) + extruders = list(ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId())) + if extruders: + for extruder in extruders: + extruder.propertyChanged.disconnect(self._onSettingChanged) self._global_container_stack = Application.getInstance().getGlobalContainerStack() if self._global_container_stack: self._global_container_stack.propertyChanged.connect(self._onSettingChanged) #Note: Only starts slicing when the value changed. self._global_container_stack.containersChanged.connect(self._onChanged) + extruders = list(ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId())) + if extruders: + for extruder in extruders: + extruder.propertyChanged.connect(self._onSettingChanged) self._onActiveExtruderChanged() self._onChanged() def _onActiveExtruderChanged(self): + if self._global_container_stack: + # Connect all extruders of the active machine. This might cause a few connects that have already happend, + # but that shouldn't cause issues as only new / unique connections are added. + extruders = list(ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId())) + if extruders: + for extruder in extruders: + extruder.propertyChanged.connect(self._onSettingChanged) if self._active_extruder_stack: - self._active_extruder_stack.propertyChanged.disconnect(self._onSettingChanged) self._active_extruder_stack.containersChanged.disconnect(self._onChanged) self._active_extruder_stack = cura.Settings.ExtruderManager.getInstance().getActiveExtruderStack() if self._active_extruder_stack: - self._active_extruder_stack.propertyChanged.connect(self._onSettingChanged) # Note: Only starts slicing when the value changed. self._active_extruder_stack.containersChanged.connect(self._onChanged) From 1f903b9fccd9cfe15a36070e381d3bd23bcd39dc Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Thu, 28 Jul 2016 14:06:00 +0200 Subject: [PATCH 042/228] JSON renames: support_roof_... ==> support_interface... (CURA-1013) --- cura/CuraApplication.py | 2 +- resources/definitions/fdmprinter.def.json | 42 +++++++++++------------ 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index c51207862e..5daae559d6 100644 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -235,7 +235,7 @@ class CuraApplication(QtApplication): support support_enable support_type - support_roof_density + support_interface_density platform_adhesion adhesion_type brim_width diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 66748a9482..9866e1a35d 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -633,7 +633,7 @@ "settable_per_mesh": false, "settable_per_extruder": true }, - "support_roof_line_width": + "support_interface_line_width": { "label": "Support Interface Line Width", "description": "Width of a single support interface line.", @@ -642,7 +642,7 @@ "minimum_value": "0.0001", "maximum_value_warning": "machine_nozzle_size * 2", "type": "float", - "enabled": "support_roof_enable", + "enabled": "support_interface_enable", "value": "line_width", "settable_per_mesh": false, "settable_per_extruder": true @@ -1462,7 +1462,7 @@ "settable_per_mesh": false, "settable_per_extruder": true }, - "speed_support_roof": + "speed_support_interface": { "label": "Support Interface Speed", "description": "The speed at which the roofs and bottoms of support are printed. Printing the them at lower speeds can improve overhang quality.", @@ -1472,7 +1472,7 @@ "minimum_value": "0.1", "maximum_value": "299792458000", "maximum_value_warning": "150", - "enabled": "support_roof_enable and support_enable", + "enabled": "support_interface_enable and support_enable", "value": "speed_support / 1.5", "settable_per_mesh": false, "settable_per_extruder": true @@ -1663,7 +1663,7 @@ "settable_per_mesh": false, "settable_per_extruder": true }, - "acceleration_support_roof": { + "acceleration_support_interface": { "label": "Support Interface Acceleration", "description": "The acceleration with which the roofs and bottoms of support are printed. Printing them at lower accelerations can improve overhang quality.", "unit": "mm/s²", @@ -1673,7 +1673,7 @@ "minimum_value": "0.1", "minimum_value_warning": "100", "maximum_value_warning": "10000", - "enabled": "acceleration_enabled and support_roof_enable and support_enable", + "enabled": "acceleration_enabled and support_interface_enable and support_enable", "settable_per_mesh": false, "settable_per_extruder": true } @@ -1851,7 +1851,7 @@ "settable_per_mesh": false, "settable_per_extruder": true }, - "jerk_support_roof": { + "jerk_support_interface": { "label": "Support Interface Jerk", "description": "The maximum instantaneous velocity change with which the roofs and bottoms of support are printed.", "unit": "mm/s", @@ -1861,7 +1861,7 @@ "minimum_value": "0.1", "minimum_value_warning": "5", "maximum_value_warning": "50", - "enabled": "jerk_enabled and support_roof_enable and support_enable", + "enabled": "jerk_enabled and support_interface_enable and support_enable", "settable_per_mesh": false, "settable_per_extruder": true } @@ -2344,7 +2344,7 @@ "enabled": "support_enable", "settable_per_mesh": true }, - "support_roof_enable": + "support_interface_enable": { "label": "Enable Support Interface", "description": "Generate a dense interface between the model and the support. This will create a skin at the top of the support on which the model is printed and at the bottom of the support, where it rests on the model.", @@ -2364,7 +2364,7 @@ "minimum_value": "0", "global_inherits_stack": "support_extruder_nr", "maximum_value_warning": "10", - "enabled": "support_roof_enable and support_enable", + "enabled": "support_interface_enable and support_enable", "settable_per_mesh": true, "children": { @@ -2379,7 +2379,7 @@ "minimum_value": "0", "global_inherits_stack": "support_extruder_nr", "maximum_value_warning": "10", - "enabled": "support_roof_enable and support_enable", + "enabled": "support_interface_enable and support_enable", "settable_per_mesh": true }, "support_bottom_height": @@ -2394,12 +2394,12 @@ "minimum_value_warning": "support_bottom_stair_step_height", "global_inherits_stack": "support_extruder_nr", "maximum_value_warning": "10", - "enabled": "support_roof_enable and support_enable", + "enabled": "support_interface_enable and support_enable", "settable_per_mesh": true } } }, - "support_roof_density": + "support_interface_density": { "label": "Support Interface Density", "description": "Adjusts the density of the roofs and bottoms of the support structure. A higher value results in better overhangs, but the supports are harder to remove.", @@ -2408,12 +2408,12 @@ "default_value": 100, "minimum_value": "0", "maximum_value_warning": "100", - "enabled":"support_roof_enable and support_enable", + "enabled":"support_interface_enable and support_enable", "settable_per_mesh": false, "settable_per_extruder": true, "children": { - "support_roof_line_distance": + "support_interface_line_distance": { "label": "Support Interface Line Distance", "description": "Distance between the printed support interface lines. This setting is calculated by the Support Interface Density, but can be adjusted separately.", @@ -2421,14 +2421,14 @@ "type": "float", "default_value": 0.4, "minimum_value": "0", - "value": "0 if support_roof_density == 0 else (support_roof_line_width * 100) / support_roof_density * (2 if support_roof_pattern == \"grid\" else (3 if support_roof_pattern == \"triangles\" else 1))", - "enabled": "support_roof_enable and support_enable", + "value": "0 if support_interface_density == 0 else (support_interface_line_width * 100) / support_interface_density * (2 if support_interface_pattern == \"grid\" else (3 if support_interface_pattern == \"triangles\" else 1))", + "enabled": "support_interface_enable and support_enable", "settable_per_mesh": false, "settable_per_extruder": true } } }, - "support_roof_pattern": + "support_interface_pattern": { "label": "Support Interface Pattern", "description": "The pattern with which the interface of the support with the model is printed.", @@ -2442,7 +2442,7 @@ "zigzag": "Zig Zag" }, "default_value": "concentric", - "enabled": "support_roof_enable and support_enable", + "enabled": "support_interface_enable and support_enable", "settable_per_mesh": false, "settable_per_extruder": true }, @@ -3077,14 +3077,14 @@ "settable_per_mesh": false, "settable_per_extruder": false }, - "support_roof_extruder_nr": + "support_interface_extruder_nr": { "label": "Support Interface Extruder", "description": "The extruder train to use for printing the roofs and bottoms of the support. This is used in multi-extrusion.", "type": "extruder", "default_value": "0", "value": "support_extruder_nr", - "enabled": "support_enable and support_roof_enable", + "enabled": "support_enable and support_interface_enable", "settable_per_mesh": false, "settable_per_extruder": false } From fe205b51f966a4e06ec7c149ca254bdaf7ff8072 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 28 Jul 2016 14:45:49 +0200 Subject: [PATCH 043/228] Per object settings now use correct stack CURA-1934 --- cura/Settings/SettingOverrideDecorator.py | 1 + 1 file changed, 1 insertion(+) diff --git a/cura/Settings/SettingOverrideDecorator.py b/cura/Settings/SettingOverrideDecorator.py index 24360ed992..f1e34a939a 100644 --- a/cura/Settings/SettingOverrideDecorator.py +++ b/cura/Settings/SettingOverrideDecorator.py @@ -75,6 +75,7 @@ class SettingOverrideDecorator(SceneNodeDecorator): # \param extruder_stack_id The new extruder stack to print with. def setActiveExtruder(self, extruder_stack_id): self._extruder_stack = extruder_stack_id + self._updateNextStack() self.activeExtruderChanged.emit() def getStack(self): From 3d47e329a7214fe3687636ab733e9a06bb7996ca Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Thu, 28 Jul 2016 14:57:17 +0200 Subject: [PATCH 044/228] Fix convex hull being updated after removing CPU eating monster. CURA-2002. --- cura/ConvexHullDecorator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/ConvexHullDecorator.py b/cura/ConvexHullDecorator.py index 783d74e41b..5185579633 100644 --- a/cura/ConvexHullDecorator.py +++ b/cura/ConvexHullDecorator.py @@ -287,5 +287,5 @@ class ConvexHullDecorator(SceneNodeDecorator): _affected_settings = [ "adhesion_type", "raft_base_thickness", "raft_interface_thickness", "raft_surface_layers", - "raft_surface_thickness", "raft_airgap", "print_sequence", + "raft_surface_thickness", "raft_airgap", "raft_margin", "print_sequence", "skirt_gap", "skirt_line_count", "skirt_brim_line_width", "skirt_distance"] From 467f971dac2707e07a9f8d80eddad7a4b0ec1945 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 28 Jul 2016 15:26:59 +0200 Subject: [PATCH 045/228] When sending per object settings, we now also check if we need to send anything at all Adding a setting and then removing it caused some weird behavior issues CURA-1988 --- plugins/CuraEngineBackend/StartSliceJob.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index ebc4495365..26cf71ec7e 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -211,7 +211,9 @@ class StartSliceJob(Job): def _handlePerObjectSettings(self, node, message): stack = node.callDecoration("getStack") - if stack: + # Check if the node has a stack attached to it and the stack has any settings in the top container. + if stack and stack.getTop().getAllKeys(): + # Because we want to use inheritance correctly, we send all settings as seen from the per object stack. for key in stack.getAllKeys(): setting = message.addRepeatedMessage("settings") setting.name = key From 570a67556a3c14c3c6f68a71e80f74d69fbffba3 Mon Sep 17 00:00:00 2001 From: Arjen Hiemstra Date: Thu, 28 Jul 2016 18:06:14 +0200 Subject: [PATCH 046/228] Fix exporting and importing materials on OSX OSX's file dialog is stupid and does not understand extensions with a . in them. So instead just use everything after the last . Fixes CURA-1987 --- cura/Settings/ContainerManager.py | 17 +++++++++++++++-- resources/qml/Preferences/MaterialsPage.qml | 2 +- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/cura/Settings/ContainerManager.py b/cura/Settings/ContainerManager.py index 9184db109a..82be7c480f 100644 --- a/cura/Settings/ContainerManager.py +++ b/cura/Settings/ContainerManager.py @@ -244,6 +244,7 @@ class ContainerManager(QObject): if not type_name or entry["type"] == type_name: filters.append(filter_string) + filters.append("All Files (*)") return filters ## Export a container to a file @@ -280,6 +281,9 @@ class ContainerManager(QObject): return { "status": "error", "message": "Container not found"} container = containers[0] + if UM.Platform.isOSX() and "." in file_url: + file_url = file_url[:file_url.rfind(".")] + for suffix in mime_type.suffixes: if file_url.endswith(suffix): break @@ -301,7 +305,7 @@ class ContainerManager(QObject): with UM.SaveFile(file_url, "w") as f: f.write(contents) - return { "status": "success", "message": "Succesfully exported container"} + return { "status": "success", "message": "Succesfully exported container", "path": file_url} ## Imports a profile from a file # @@ -371,11 +375,20 @@ class ContainerManager(QObject): "container": container_type } - suffix_list = "*." + mime_type.preferredSuffix + suffix = mime_type.preferredSuffix + if UM.Platform.isOSX() and "." in suffix: + # OSX's File dialog is stupid and does not allow selecting files with a . in its name + suffix = suffix[suffix.index(".") + 1:] + + suffix_list = "*." + suffix for suffix in mime_type.suffixes: if suffix == mime_type.preferredSuffix: continue + if UM.Platform.isOSX() and "." in suffix: + # OSX's File dialog is stupid and does not allow selecting files with a . in its name + suffix = suffix[suffix.index("."):] + suffix_list += ", *." + suffix name_filter = "{0} ({1})".format(mime_type.comment, suffix_list) diff --git a/resources/qml/Preferences/MaterialsPage.qml b/resources/qml/Preferences/MaterialsPage.qml index 9da5522762..f4a8df1dcf 100644 --- a/resources/qml/Preferences/MaterialsPage.qml +++ b/resources/qml/Preferences/MaterialsPage.qml @@ -255,7 +255,7 @@ UM.ManagementPage else if(result.status == "success") { messageDialog.icon = StandardIcon.Information - messageDialog.text = catalog.i18nc("@info:status", "Successfully exported material to %1").arg(fileUrl) + messageDialog.text = catalog.i18nc("@info:status", "Successfully exported material to %1").arg(result.path) messageDialog.open() } CuraApplication.setDefaultPath("dialog_material_path", folder) From 14d4b1f881d74abd817f9ec3209ff066b8a50b70 Mon Sep 17 00:00:00 2001 From: Arjen Hiemstra Date: Thu, 28 Jul 2016 18:05:03 +0200 Subject: [PATCH 047/228] Fix setting the default path on OSX Contributes to CURA-1987 --- cura/CuraApplication.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index c51207862e..aa9478e491 100644 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -203,7 +203,7 @@ class CuraApplication(QtApplication): "dialog_profile_path", "dialog_material_path"]: - Preferences.getInstance().addPreference("local_file/%s" % key, "~/") + Preferences.getInstance().addPreference("local_file/%s" % key, os.path.expanduser("~/")) Preferences.getInstance().setDefault("local_file/last_used_type", "text/x-gcode") @@ -346,6 +346,7 @@ class CuraApplication(QtApplication): @pyqtSlot(str, result = QUrl) def getDefaultPath(self, key): default_path = Preferences.getInstance().getValue("local_file/%s" % key) + print(default_path) return QUrl.fromLocalFile(default_path) @pyqtSlot(str, str) @@ -896,4 +897,4 @@ class CuraApplication(QtApplication): self._additional_components[area_id] = [] self._additional_components[area_id].append(component) - self.additionalComponentsChanged.emit(area_id) \ No newline at end of file + self.additionalComponentsChanged.emit(area_id) From 8fb6c9939a5d9f9299acea6287506a7d258afb8a Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Thu, 28 Jul 2016 18:14:38 +0200 Subject: [PATCH 048/228] Add "offline" styling to sidebar/monitor CURA-1851 --- resources/qml/MonitorButton.qml | 7 ++++++- resources/qml/Sidebar.qml | 2 ++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/resources/qml/MonitorButton.qml b/resources/qml/MonitorButton.qml index 7a87eb4f60..4a33b347d3 100644 --- a/resources/qml/MonitorButton.qml +++ b/resources/qml/MonitorButton.qml @@ -30,6 +30,8 @@ Rectangle return UM.Theme.getColor("status_paused") else if (Cura.MachineManager.printerOutputDevices[0].jobState == "error") return UM.Theme.getColor("status_stopped") + else if (Cura.MachineManager.printerOutputDevices[0].jobState == "offline") + return UM.Theme.getColor("status_offline") else return UM.Theme.getColor("text") } @@ -41,7 +43,10 @@ Rectangle { if(!printerConnected) { - return catalog.i18nc("@label:", "Please check your printer connections") + return catalog.i18nc("@label:", "Not connected to a printer") + } else if(Cura.MachineManager.printerOutputDevices[0].jobState == "offline") + { + return catalog.i18nc("@label:", "Lost connection with the printer") } else if(Cura.MachineManager.printerOutputDevices[0].jobState == "printing") { return catalog.i18nc("@label:", "Printing...") diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml index 1542e24f5d..8ab776af6a 100644 --- a/resources/qml/Sidebar.qml +++ b/resources/qml/Sidebar.qml @@ -116,6 +116,8 @@ Rectangle return UM.Theme.getIcon("tab_monitor_paused") else if (Cura.MachineManager.printerOutputDevices[0].jobState == "error") return UM.Theme.getIcon("tab_monitor_stopped") + else if (Cura.MachineManager.printerOutputDevices[0].jobState == "offline") + return UM.Theme.getIcon("tab_monitor_offline") else return UM.Theme.getIcon("tab_monitor") } From 1b432b7b4f9fe0f52d50161589540b17e22cf14d Mon Sep 17 00:00:00 2001 From: Thomas Karl Pietrowski Date: Thu, 28 Jul 2016 18:30:48 +0200 Subject: [PATCH 049/228] Removing debug print Contributes to CURA-1987 --- cura/CuraApplication.py | 1 - 1 file changed, 1 deletion(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index aa9478e491..bc4378feff 100644 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -346,7 +346,6 @@ class CuraApplication(QtApplication): @pyqtSlot(str, result = QUrl) def getDefaultPath(self, key): default_path = Preferences.getInstance().getValue("local_file/%s" % key) - print(default_path) return QUrl.fromLocalFile(default_path) @pyqtSlot(str, str) From 27f160c22034a9856833613a14c8bb3d2fb7a67d Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Thu, 28 Jul 2016 19:52:43 +0200 Subject: [PATCH 050/228] JSON fix: made retraction_hop_only_when_collides and retraction_hop not children of retraction_hop_enabled retraction_hop_enabled was used by the engine, so it should never become disabled --- resources/definitions/fdmprinter.def.json | 46 +++++++++++------------ 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 4017ab3a69..c9763571e2 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1236,30 +1236,28 @@ "default_value": false, "enabled": "retraction_enable", "settable_per_mesh": false, - "settable_per_extruder": true, - "children": { - "retraction_hop_only_when_collides": { - "label": "Z Hop Only Over Printed Parts", - "description": "Only perform a Z Hop when moving over printed parts which cannot be avoided by horizontal motion by Avoid Printed Parts when Traveling.", - "type": "bool", - "default_value": false, - "enabled": "retraction_enable and retraction_hop_enabled and travel_avoid_other_parts", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "retraction_hop": { - "label": "Z Hop Height", - "description": "The height difference when performing a Z Hop.", - "unit": "mm", - "type": "float", - "default_value": 1, - "minimum_value_warning": "-0.0001", - "maximum_value_warning": "10", - "enabled": "retraction_enable and retraction_hop_enabled", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } + "settable_per_extruder": true + }, + "retraction_hop_only_when_collides": { + "label": "Z Hop Only Over Printed Parts", + "description": "Only perform a Z Hop when moving over printed parts which cannot be avoided by horizontal motion by Avoid Printed Parts when Traveling.", + "type": "bool", + "default_value": false, + "enabled": "retraction_enable and retraction_hop_enabled and travel_avoid_other_parts", + "settable_per_mesh": false, + "settable_per_extruder": true + }, + "retraction_hop": { + "label": "Z Hop Height", + "description": "The height difference when performing a Z Hop.", + "unit": "mm", + "type": "float", + "default_value": 1, + "minimum_value_warning": "-0.0001", + "maximum_value_warning": "10", + "enabled": "retraction_enable and retraction_hop_enabled", + "settable_per_mesh": false, + "settable_per_extruder": true }, "material_standby_temperature": { From 4b192db1bfdc1ae16b009ea96954f58a9fc712a3 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Thu, 28 Jul 2016 20:02:22 +0200 Subject: [PATCH 051/228] JSON: extruders cannot be more than 16 (CuraEngine hardcoded value) (CURA-2015) --- resources/definitions/fdmprinter.def.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index c9763571e2..e7445b6061 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -150,6 +150,8 @@ "label": "Number extruders", "description": "Number of extruder trains. An extruder train is the combination of a feeder, bowden tube, and nozzle.", "default_value": 1, + "minimum_value": "1", + "maximum_value": "16", "type": "int", "settable_per_mesh": false, "settable_per_extruder": false, From b5d2533820d670e162defbdec7da692f7c2bedc3 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 29 Jul 2016 09:59:57 +0200 Subject: [PATCH 052/228] G-code writer no longer uses duplicate for flattening profile Spent to much time fixing this already, so we now just make a new profile by hand based on the profiles to be flattened CURA-1933 --- plugins/GCodeWriter/GCodeWriter.py | 51 ++++++++++++------------------ 1 file changed, 21 insertions(+), 30 deletions(-) diff --git a/plugins/GCodeWriter/GCodeWriter.py b/plugins/GCodeWriter/GCodeWriter.py index 11c5dc5f84..8e3be15ffe 100644 --- a/plugins/GCodeWriter/GCodeWriter.py +++ b/plugins/GCodeWriter/GCodeWriter.py @@ -9,6 +9,8 @@ import UM.Settings.ContainerRegistry from cura.CuraApplication import CuraApplication from cura.Settings.ExtruderManager import ExtruderManager +from UM.Settings.InstanceContainer import InstanceContainer + import re #For escaping characters in the settings. import json @@ -61,6 +63,20 @@ class GCodeWriter(MeshWriter): return False + ## Create a new container with container 2 as base and container 1 written over it. + def _createFlattenedContainerInstance(self, instance_container1, instance_container2): + flat_container = InstanceContainer(instance_container2.getName()) + flat_container.setDefinition(instance_container2.getDefinition()) + flat_container.setMetaData(instance_container2.getMetaData()) + + for key in instance_container2.getAllKeys(): + flat_container.setProperty(key, "value", instance_container2.getProperty(key, "value")) + + for key in instance_container1.getAllKeys(): + flat_container.setProperty(key, "value", instance_container1.getProperty(key, "value")) + return flat_container + + ## Serialises a container stack to prepare it for writing at the end of the # g-code. # @@ -74,38 +90,13 @@ class GCodeWriter(MeshWriter): prefix_length = len(prefix) container_with_profile = stack.findContainer({"type": "quality"}) - machine_manager = CuraApplication.getInstance().getMachineManager() - - # Duplicate the current quality profile and update it with any user settings. - flat_quality_id = machine_manager.duplicateContainer(container_with_profile.getId()) - - flat_quality = UM.Settings.ContainerRegistry.getInstance().findInstanceContainers(id = flat_quality_id)[0] - flat_quality._dirty = False - user_settings = stack.getTop() - - # We don't want to send out any signals, so disconnect them. - flat_quality.propertyChanged.disconnectAll() - - for key in user_settings.getAllKeys(): - flat_quality.setProperty(key, "value", user_settings.getProperty(key, "value")) - - serialized = flat_quality.serialize() - + flat_global_container = self._createFlattenedContainerInstance(stack.getTop(),container_with_profile) + serialized = flat_global_container.serialize() data = {"global_quality": serialized} - manager = ExtruderManager.getInstance() - for extruder in manager.getMachineExtruders(stack.getId()): + + for extruder in ExtruderManager.getInstance().getMachineExtruders(stack.getId()): extruder_quality = extruder.findContainer({"type": "quality"}) - - flat_extruder_quality_id = machine_manager.duplicateContainer(extruder_quality.getId()) - flat_extruder_quality = UM.Settings.ContainerRegistry.getInstance().findInstanceContainers(id=flat_extruder_quality_id)[0] - flat_extruder_quality._dirty = False - extruder_user_settings = extruder.getTop() - - # We don't want to send out any signals, so disconnect them. - flat_extruder_quality.propertyChanged.disconnectAll() - - for key in extruder_user_settings.getAllKeys(): - flat_extruder_quality.setProperty(key, "value", extruder_user_settings.getProperty(key, "value")) + flat_extruder_quality = self._createFlattenedContainerInstance(extruder.getTop(), extruder_quality) extruder_serialized = flat_extruder_quality.serialize() data.setdefault("extruder_quality", []).append(extruder_serialized) From 1ed0503e027edd0dbaa1da95c261f8ce42aa9f9f Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 29 Jul 2016 10:37:03 +0200 Subject: [PATCH 053/228] Backspace now triggers same action as delete CURA-1891 --- resources/qml/Cura.qml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index d0870991d2..45137db5cc 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -54,10 +54,7 @@ UM.MainWindow Keys.onPressed: { if (event.key == Qt.Key_Backspace) { - if(objectContextMenu.objectId != 0) - { - Printer.deleteObject(objectContextMenu.objectId); - } + Cura.Actions.deleteSelection.trigger() } } From 21d4e9b8942532744dde1d149beb1358d760c723 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 29 Jul 2016 11:00:28 +0200 Subject: [PATCH 054/228] Delete selection now also removed group nodes when they only have one child left CURA-1891 --- cura/CuraApplication.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index bc4378feff..2de70b7304 100644 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -555,12 +555,19 @@ class CuraApplication(QtApplication): def deleteSelection(self): if not self.getController().getToolsEnabled(): return - + removed_group_nodes = [] op = GroupedOperation() nodes = Selection.getAllSelectedObjects() for node in nodes: op.addOperation(RemoveSceneNodeOperation(node)) - + group_node = node.getParent() + if group_node and group_node.callDecoration("isGroup") and group_node not in removed_group_nodes: + remaining_nodes_in_group = list(set(group_node.getChildren()) - set(nodes)) + if len(remaining_nodes_in_group) == 1: + removed_group_nodes.append(group_node) + remaining_nodes_in_group[0].translate(group_node.getPosition()) + remaining_nodes_in_group[0].setParent(group_node.getParent()) + op.addOperation(RemoveSceneNodeOperation(group_node)) op.push() pass From 03aa4f9c6a4e856079f1f4624b23ce80ae3586d0 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 29 Jul 2016 11:05:11 +0200 Subject: [PATCH 055/228] Undo removing object from group now works correctly CURA-1891 --- cura/CuraApplication.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 2de70b7304..9c3e2511c1 100644 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -565,8 +565,7 @@ class CuraApplication(QtApplication): remaining_nodes_in_group = list(set(group_node.getChildren()) - set(nodes)) if len(remaining_nodes_in_group) == 1: removed_group_nodes.append(group_node) - remaining_nodes_in_group[0].translate(group_node.getPosition()) - remaining_nodes_in_group[0].setParent(group_node.getParent()) + op.addOperation(SetParentOperation(remaining_nodes_in_group[0], group_node.getParent())) op.addOperation(RemoveSceneNodeOperation(group_node)) op.push() @@ -593,8 +592,7 @@ class CuraApplication(QtApplication): op.push() if group_node: if len(group_node.getChildren()) == 1 and group_node.callDecoration("isGroup"): - group_node.getChildren()[0].translate(group_node.getPosition()) - group_node.getChildren()[0].setParent(group_node.getParent()) + op.addOperation(SetParentOperation(group_node.getChildren()[0], group_node.getParent())) op = RemoveSceneNodeOperation(group_node) op.push() From d1a6420e1b33770733883ae6f0d7954b090bbf3e Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 29 Jul 2016 11:07:16 +0200 Subject: [PATCH 056/228] Delete all object now clears Selection CURA-1891 --- cura/CuraApplication.py | 1 + 1 file changed, 1 insertion(+) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 9c3e2511c1..a646d687f6 100644 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -657,6 +657,7 @@ class CuraApplication(QtApplication): op.addOperation(RemoveSceneNodeOperation(node)) op.push() + Selection.clear() ## Reset all translation on nodes with mesh data. @pyqtSlot() From f584b49af2d0f1db850ebaad9d100849c1ef4fd5 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Fri, 29 Jul 2016 11:27:03 +0200 Subject: [PATCH 057/228] Add "Close" button to (single) machine actions dialog CURA-2019 --- .../BedLevelMachineAction.qml | 22 +++---------------- .../UMOCheckupMachineAction.qml | 19 +++------------- .../UpgradeFirmwareMachineAction.qml | 22 ++++++------------- resources/qml/Preferences/MachinesPage.qml | 6 +++++ 4 files changed, 19 insertions(+), 50 deletions(-) diff --git a/plugins/UltimakerMachineActions/BedLevelMachineAction.qml b/plugins/UltimakerMachineActions/BedLevelMachineAction.qml index d043c20df5..602e945922 100644 --- a/plugins/UltimakerMachineActions/BedLevelMachineAction.qml +++ b/plugins/UltimakerMachineActions/BedLevelMachineAction.qml @@ -47,39 +47,23 @@ Cura.MachineAction text: catalog.i18nc("@label", "For every position; insert a piece of paper under the nozzle and adjust the print bed height. The print bed height is right when the paper is slightly gripped by the tip of the nozzle.") } - Item + Row { id: bedlevelingWrapper anchors.top: bedlevelingText.bottom anchors.topMargin: UM.Theme.getSize("default_margin").height anchors.horizontalCenter: parent.horizontalCenter - height: skipBedlevelingButton.height - width: bedlevelingButton.width + skipBedlevelingButton.width + UM.Theme.getSize("default_margin").height < bedLevelMachineAction.width ? bedlevelingButton.width + skipBedlevelingButton.width + UM.Theme.getSize("default_margin").height : bedLevelMachineAction.width + width: childrenRect.width + spacing: UM.Theme.getSize("default_margin").width Button { id: bedlevelingButton - anchors.top: parent.top - anchors.left: parent.left text: catalog.i18nc("@action:button","Move to Next Position"); onClicked: { manager.moveToNextLevelPosition() } } - - Button - { - id: skipBedlevelingButton - anchors.top: parent.width < bedLevelMachineAction.width ? parent.top : bedlevelingButton.bottom - anchors.topMargin: parent.width < bedLevelMachineAction.width ? 0 : UM.Theme.getSize("default_margin").height/2 - anchors.left: parent.width < bedLevelMachineAction.width ? bedlevelingButton.right : parent.left - anchors.leftMargin: parent.width < bedLevelMachineAction.width ? UM.Theme.getSize("default_margin").width : 0 - text: catalog.i18nc("@action:button","Skip bed leveling"); - onClicked: - { - manager.setFinished() - } - } } } } diff --git a/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml b/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml index 14ed1e2c51..27953874cd 100644 --- a/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml +++ b/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml @@ -39,19 +39,17 @@ Cura.MachineAction text: catalog.i18nc("@label", "It's a good idea to do a few sanity checks on your Ultimaker. You can skip this step if you know your machine is functional"); } - Item + Row { id: startStopButtons anchors.top: pageDescription.bottom anchors.topMargin: UM.Theme.getSize("default_margin").height anchors.horizontalCenter: parent.horizontalCenter - height: childrenRect.height - width: startCheckButton.width + skipCheckButton.width + UM.Theme.getSize("default_margin").height < checkupMachineAction.width ? startCheckButton.width + skipCheckButton.width + UM.Theme.getSize("default_margin").height : checkupMachineAction.width + width: childrenRect.width + spacing: UM.Theme.getSize("default_margin").width Button { id: startCheckButton - anchors.top: parent.top - anchors.left: parent.left text: catalog.i18nc("@action:button","Start Printer Check"); onClicked: { @@ -60,17 +58,6 @@ Cura.MachineAction manager.startCheck() } } - - Button - { - id: skipCheckButton - anchors.top: parent.width < checkupMachineAction.width ? parent.top : startCheckButton.bottom - anchors.topMargin: parent.width < checkupMachineAction.width ? 0 : UM.Theme.getSize("default_margin").height/2 - anchors.left: parent.width < checkupMachineAction.width ? startCheckButton.right : parent.left - anchors.leftMargin: parent.width < checkupMachineAction.width ? UM.Theme.getSize("default_margin").width : 0 - text: catalog.i18nc("@action:button", "Skip Printer Check"); - onClicked: manager.setFinished() - } } Item diff --git a/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml b/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml index 37e4eae2d3..0c9b80c010 100644 --- a/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml +++ b/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml @@ -56,29 +56,21 @@ Cura.MachineAction wrapMode: Text.WordWrap text: catalog.i18nc("@label", "Cura requires these new features and thus your firmware will most likely need to be upgraded. You can do so now."); } - Item + Row { anchors.top: upgradeText2.bottom anchors.topMargin: UM.Theme.getSize("default_margin").height anchors.horizontalCenter: parent.horizontalCenter - width: upgradeButton.width + skipUpgradeButton.width + UM.Theme.getSize("default_margin").height < upgradeFirmwareMachineAction.width ? upgradeButton.width + skipUpgradeButton.width + UM.Theme.getSize("default_margin").height : upgradeFirmwareMachineAction.width + width: childrenRect.width + spacing: UM.Theme.getSize("default_margin").width Button { id: upgradeButton - anchors.top: parent.top - anchors.left: parent.left text: catalog.i18nc("@action:button","Upgrade to Marlin Firmware"); - onClicked: Cura.USBPrinterManager.updateAllFirmware() - } - Button - { - id: skipUpgradeButton - anchors.top: parent.width < upgradeFirmwareMachineAction.width ? parent.top : upgradeButton.bottom - anchors.topMargin: parent.width < upgradeFirmwareMachineAction.width ? 0 : UM.Theme.getSize("default_margin").height / 2 - anchors.left: parent.width < upgradeFirmwareMachineAction.width ? upgradeButton.right : parent.left - anchors.leftMargin: parent.width < upgradeFirmwareMachineAction.width ? UM.Theme.getSize("default_margin").width : 0 - text: catalog.i18nc("@action:button", "Skip Upgrade"); - onClicked: manager.setFinished() + onClicked: + { + Cura.USBPrinterManager.updateAllFirmware() + } } } } diff --git a/resources/qml/Preferences/MachinesPage.qml b/resources/qml/Preferences/MachinesPage.qml index 0dc3bb32eb..b057a33d52 100644 --- a/resources/qml/Preferences/MachinesPage.qml +++ b/resources/qml/Preferences/MachinesPage.qml @@ -107,6 +107,12 @@ UM.ManagementPage contents = content; content.onCompleted.connect(hide) } + rightButtons: Button + { + text: catalog.i18nc("@action:button", "Close") + iconName: "dialog-close" + onClicked: actionDialog.accept() + } } Row From 8d59d7187f4054ee450a662b2d497160ec2430bf Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 29 Jul 2016 13:01:03 +0200 Subject: [PATCH 058/228] Deleting old toplayer data is now only done when new data is complete. This prevents the pretty annoying blinking behavior that we had before --- plugins/LayerView/LayerView.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plugins/LayerView/LayerView.py b/plugins/LayerView/LayerView.py index 87e1a30834..5dd84392b4 100644 --- a/plugins/LayerView/LayerView.py +++ b/plugins/LayerView/LayerView.py @@ -126,7 +126,6 @@ class LayerView(View): if self._current_layer_num > self._max_layers: self._current_layer_num = self._max_layers - self.resetLayerData() self._startUpdateTopLayers() self.currentLayerNumChanged.emit() @@ -199,7 +198,7 @@ class LayerView(View): if not job.getResult(): return - + self.resetLayerData() # Reset the layer data only when job is done. Doing it now prevents "blinking" data. self._current_layer_mesh = job.getResult().get("layers") self._current_layer_jumps = job.getResult().get("jumps") self._controller.getScene().sceneChanged.emit(self._controller.getScene().getRoot()) From b9a1d50e0583c736fe27679a4db44935c2edba3d Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 29 Jul 2016 13:17:41 +0200 Subject: [PATCH 059/228] Added option to only display top layers in layerview --- plugins/LayerView/LayerView.py | 9 +++++---- resources/qml/Preferences/GeneralPage.qml | 14 ++++++++++++++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/plugins/LayerView/LayerView.py b/plugins/LayerView/LayerView.py index 5dd84392b4..358a357d3e 100644 --- a/plugins/LayerView/LayerView.py +++ b/plugins/LayerView/LayerView.py @@ -45,10 +45,11 @@ class LayerView(View): self._activity = False Preferences.getInstance().addPreference("view/top_layer_count", 5) + Preferences.getInstance().addPreference("view/only_show_top_layers", False) Preferences.getInstance().preferenceChanged.connect(self._onPreferencesChanged) self._solid_layers = int(Preferences.getInstance().getValue("view/top_layer_count")) - + self._only_show_top_layers = bool(Preferences.getInstance().getValue("view/only_show_top_layers")) self._busy = False def getActivity(self): @@ -100,7 +101,7 @@ class LayerView(View): continue # Render all layers below a certain number as line mesh instead of vertices. - if self._current_layer_num - self._solid_layers > -1: + if self._current_layer_num - self._solid_layers > -1 and not self._only_show_top_layers: start = 0 end = 0 element_counts = layer_data.getElementCounts() @@ -206,12 +207,12 @@ class LayerView(View): self._top_layers_job = None def _onPreferencesChanged(self, preference): - if preference != "view/top_layer_count": + if preference != "view/top_layer_count" and preference != "view/only_show_top_layers": return self._solid_layers = int(Preferences.getInstance().getValue("view/top_layer_count")) + self._only_show_top_layers = bool(Preferences.getInstance().getValue("view/only_show_top_layers")) - self.resetLayerData() self._startUpdateTopLayers() class _CreateTopLayersJob(Job): diff --git a/resources/qml/Preferences/GeneralPage.qml b/resources/qml/Preferences/GeneralPage.qml index 7e5b4efadc..223b7eda85 100644 --- a/resources/qml/Preferences/GeneralPage.qml +++ b/resources/qml/Preferences/GeneralPage.qml @@ -192,6 +192,7 @@ UM.PreferencesPage } } + UM.TooltipArea { width: childrenRect.width; height: childrenRect.height; @@ -215,6 +216,19 @@ UM.PreferencesPage } } } + UM.TooltipArea { + width: childrenRect.width + height: childrenRect.height + text: catalog.i18nc("@info:tooltip", "Should only the top layers be displayed in layerview?") + + CheckBox + { + id: topLayersOnlyCheckbox + text: catalog.i18nc("@option:check", "Only display top layer(s) in layer view") + checked: boolCheck(UM.Preferences.getValue("view/only_show_top_layers")) + onCheckedChanged: UM.Preferences.setValue("view/only_show_top_layers", checked) + } + } Item { From c1d9c1ea125aee1b61a745f2231706a10297ae31 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Fri, 29 Jul 2016 14:29:35 +0200 Subject: [PATCH 060/228] Add button to start bedleveling wizard Prevents the printer from homing unexpectedly --- .../BedLevelMachineAction.py | 6 ++++++ .../BedLevelMachineAction.qml | 20 +++++++++++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/plugins/UltimakerMachineActions/BedLevelMachineAction.py b/plugins/UltimakerMachineActions/BedLevelMachineAction.py index 7dad841340..12df7d6843 100644 --- a/plugins/UltimakerMachineActions/BedLevelMachineAction.py +++ b/plugins/UltimakerMachineActions/BedLevelMachineAction.py @@ -18,6 +18,11 @@ class BedLevelMachineAction(MachineAction): pass def _reset(self): + self._bed_level_position = 0 + pass + + @pyqtSlot() + def startBedLeveling(self): self._bed_level_position = 0 printer_output_devices = self._getPrinterOutputDevices() if printer_output_devices: @@ -52,4 +57,5 @@ class BedLevelMachineAction(MachineAction): output_device.moveHead(0, 0, -3) self._bed_level_position += 1 elif self._bed_level_position >= 3: + output_device.sendCommand("M18") # Turn off all motors so the user can move the axes self.setFinished() \ No newline at end of file diff --git a/plugins/UltimakerMachineActions/BedLevelMachineAction.qml b/plugins/UltimakerMachineActions/BedLevelMachineAction.qml index 602e945922..c7c4074120 100644 --- a/plugins/UltimakerMachineActions/BedLevelMachineAction.qml +++ b/plugins/UltimakerMachineActions/BedLevelMachineAction.qml @@ -55,13 +55,29 @@ Cura.MachineAction anchors.horizontalCenter: parent.horizontalCenter width: childrenRect.width spacing: UM.Theme.getSize("default_margin").width + + Button + { + id: startBedLevelingButton + text: catalog.i18nc("@action:button","Start Bed Leveling") + onClicked: + { + startBedLevelingButton.visible = false; + bedlevelingButton.visible = true; + checkupMachineAction.heatupHotendStarted = false; + checkupMachineAction.heatupBedStarted = false; + manager.startCheck(); + } + } + Button { id: bedlevelingButton - text: catalog.i18nc("@action:button","Move to Next Position"); + text: catalog.i18nc("@action:button","Move to Next Position") + visible: false onClicked: { - manager.moveToNextLevelPosition() + manager.moveToNextLevelPosition(); } } } From 2576aaca6265e1de0523e0461657aadf08837521 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Fri, 29 Jul 2016 14:30:36 +0200 Subject: [PATCH 061/228] Hide start check button once the check has started --- plugins/UltimakerMachineActions/UMOCheckupMachineAction.py | 1 + .../UltimakerMachineActions/UMOCheckupMachineAction.qml | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/plugins/UltimakerMachineActions/UMOCheckupMachineAction.py b/plugins/UltimakerMachineActions/UMOCheckupMachineAction.py index b46c92a82c..355b4dd0c1 100644 --- a/plugins/UltimakerMachineActions/UMOCheckupMachineAction.py +++ b/plugins/UltimakerMachineActions/UMOCheckupMachineAction.py @@ -155,6 +155,7 @@ class UMOCheckupMachineAction(MachineAction): if output_devices: self._output_device = output_devices[0] try: + self._output_device.sendCommand("M18") # Turn off all motors so the user can move the axes self._output_device.startPollEndstop() self._output_device.bedTemperatureChanged.connect(self.bedTemperatureChanged) self._output_device.hotendTemperaturesChanged.connect(self.hotendTemperatureChanged) diff --git a/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml b/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml index 27953874cd..0bdbc27527 100644 --- a/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml +++ b/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml @@ -53,9 +53,10 @@ Cura.MachineAction text: catalog.i18nc("@action:button","Start Printer Check"); onClicked: { - checkupMachineAction.heatupHotendStarted = false - checkupMachineAction.heatupBedStarted = false - manager.startCheck() + checkupMachineAction.heatupHotendStarted = false; + checkupMachineAction.heatupBedStarted = false; + manager.startCheck(); + startCheckButton.visible = false; } } } From 7ff1b937e32869aee32fd81d24043a4e1b2ec654 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 29 Jul 2016 15:19:50 +0200 Subject: [PATCH 062/228] Perobject settings now use correct stacks to calculate values CURA-1754 --- plugins/CuraEngineBackend/StartSliceJob.py | 2 +- plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index 26cf71ec7e..6e7ccba6ee 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -212,7 +212,7 @@ class StartSliceJob(Job): def _handlePerObjectSettings(self, node, message): stack = node.callDecoration("getStack") # Check if the node has a stack attached to it and the stack has any settings in the top container. - if stack and stack.getTop().getAllKeys(): + if stack: # Because we want to use inheritance correctly, we send all settings as seen from the per object stack. for key in stack.getAllKeys(): setting = message.addRepeatedMessage("settings") diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml index 75cf522c14..482fb73b0f 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml +++ b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml @@ -127,7 +127,11 @@ Item { } } } - + Component.onCompleted: + { + // Ensure primary extruder is set as active + UM.ActiveTool.setProperty("SelectedActiveExtruder", extruders_model.getItem(0).id) + } onActivated: UM.ActiveTool.setProperty("SelectedActiveExtruder", extruders_model.getItem(index).id); onModelChanged: updateCurrentIndex(); From fa78cf2d397b6df5261ab5eeee111bc88ea4574e Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 29 Jul 2016 15:44:34 +0200 Subject: [PATCH 063/228] No longer use brute force approach for per object CURA-1754 --- plugins/CuraEngineBackend/StartSliceJob.py | 23 ++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index 6e7ccba6ee..8f4f47ef50 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -13,6 +13,7 @@ from UM.Scene.SceneNode import SceneNode from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator from UM.Settings.Validator import ValidatorState +from UM.Settings.SettingRelation import RelationType from cura.OneAtATimeIterator import OneAtATimeIterator @@ -213,9 +214,27 @@ class StartSliceJob(Job): stack = node.callDecoration("getStack") # Check if the node has a stack attached to it and the stack has any settings in the top container. if stack: - # Because we want to use inheritance correctly, we send all settings as seen from the per object stack. - for key in stack.getAllKeys(): + # Check all settings for relations, so we can also calculate the correct values for dependant settings. + changed_setting_keys = set(stack.getTop().getAllKeys()) + for key in stack.getTop().getAllKeys(): + instance = stack.getTop().getInstance(key) + self._addRelations(changed_setting_keys, instance.definition.relations) + Job.yieldThread() + + # Ensure that the engine is aware what the build extruder is + changed_setting_keys.add("extruder_nr") + + # Get values for all changed settings + for key in changed_setting_keys: setting = message.addRepeatedMessage("settings") setting.name = key setting.value = str(stack.getProperty(key, "value")).encode("utf-8") Job.yieldThread() + + def _addRelations(self, relations_set, relations): + for relation in filter(lambda r: r.role == "value", relations): + if relation.type == RelationType.RequiresTarget: + continue + + relations_set.add(relation.target.key) + self._addRelations(relations_set, relation.target.relations) \ No newline at end of file From 34840d42bdb2ef9ba2bd6b60e82ab2a6bc1726ef Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Fri, 29 Jul 2016 16:38:27 +0200 Subject: [PATCH 064/228] Sort printers by category instead of by manufacturer Always show Ultimaker on top. CURA-1593 --- resources/qml/AddMachineDialog.qml | 65 ++++++++++++++++++++++++------ 1 file changed, 53 insertions(+), 12 deletions(-) diff --git a/resources/qml/AddMachineDialog.qml b/resources/qml/AddMachineDialog.qml index 38221030ea..350435d1ca 100644 --- a/resources/qml/AddMachineDialog.qml +++ b/resources/qml/AddMachineDialog.qml @@ -16,12 +16,23 @@ UM.Dialog { id: base title: catalog.i18nc("@title:window", "Add Printer") - property string activeManufacturer: "Ultimaker"; + property string preferredCategory: "Ultimaker" + property string activeCategory: preferredCategory + + onVisibilityChanged: + { + // Reset selection and machine name + if (visible) { + activeCategory = preferredCategory; + machineList.currentIndex = 0; + machineName.text = getMachineName(); + } + } signal machineAdded(string id) function getMachineName() { - var name = machineList.model.getItem(machineList.currentIndex).name + var name = machineList.model.get(machineList.currentIndex).name return name } @@ -36,16 +47,32 @@ UM.Dialog right: parent.right; bottom: parent.bottom; } + ListView { id: machineList - model: UM.DefinitionContainersModel + model: ListModel { - id: machineDefinitionsModel - filter: {"visible":true} + id: sortedMachineDefinitionsModel + Component.onCompleted: { + // DefinitionContainersModel is sorted alphabetically, but we want the preferred + // category on top so we create a custom-sorted ListModel from it. + var items = []; + for(var i in machineDefinitionsModel.items) { + var item = machineDefinitionsModel.getItem(i); + if (item["category"] == preferredCategory) + sortedMachineDefinitionsModel.append(item); + else + items.push(item); + } + for(var i in items) { + sortedMachineDefinitionsModel.append(items[i]); + } + } } - section.property: "manufacturer" + + section.property: "category" section.delegate: Button { text: section @@ -76,16 +103,25 @@ UM.Dialog sourceSize.width: width sourceSize.height: width color: palette.windowText - source: base.activeManufacturer == section ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_right") + source: base.activeCategory == section ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_right") } } } onClicked: { - base.activeManufacturer = section; - machineList.currentIndex = machineList.model.find("manufacturer", section) - machineName.text = getMachineName() + base.activeCategory = section; + if (machineList.model.get(machineList.currentIndex).category != section) { + // Find the first machine from this category + for(var i = 0; i < sortedMachineDefinitionsModel.count; i++) { + var item = sortedMachineDefinitionsModel.get(i); + if (item.category == section) { + machineList.currentIndex = i; + break; + } + } + } + machineName.text = getMachineName(); } } @@ -114,7 +150,7 @@ UM.Dialog states: State { name: "collapsed"; - when: base.activeManufacturer != model.manufacturer; + when: base.activeCategory != model.category; PropertyChanges { target: machineButton; opacity: 0; height: 0; } } @@ -161,7 +197,7 @@ UM.Dialog onClicked: { base.visible = false - var item = machineList.model.getItem(machineList.currentIndex); + var item = machineList.model.get(machineList.currentIndex); Cura.MachineManager.addMachine(machineName.text, item.id) base.machineAdded(item.id) // Emit signal that the user added a machine. } @@ -174,6 +210,11 @@ UM.Dialog id: catalog; name: "cura"; } + UM.DefinitionContainersModel + { + id: machineDefinitionsModel + filter: { "visible": true } + } SystemPalette { id: palette } ExclusiveGroup { id: printerGroup; } } From 0a75aa7496bc78439180bb7eb4120ea5401da13a Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Fri, 29 Jul 2016 16:40:58 +0200 Subject: [PATCH 065/228] Fix category of PrintrBot simple definition CURA-1593 --- resources/definitions/printrbot_simple.def.json | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/definitions/printrbot_simple.def.json b/resources/definitions/printrbot_simple.def.json index 0116ba6244..a1963fe20e 100644 --- a/resources/definitions/printrbot_simple.def.json +++ b/resources/definitions/printrbot_simple.def.json @@ -7,6 +7,7 @@ "visible": true, "author": "Calvindog717", "manufacturer": "PrintrBot", + "category": "Other", "file_formats": "text/x-gcode" }, From 228f5be35aa3143feff35d96f55d3d5ba15a65f5 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Fri, 29 Jul 2016 17:13:30 +0200 Subject: [PATCH 066/228] Fix order of machine actions on manage printers page MachineActionManager now uses lists instead of dicts because dicts don't maintain the order. --- cura/MachineActionManager.py | 10 ++++++---- resources/definitions/ultimaker_original.def.json | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/cura/MachineActionManager.py b/cura/MachineActionManager.py index b50bb95e7f..6061a2e49b 100644 --- a/cura/MachineActionManager.py +++ b/cura/MachineActionManager.py @@ -57,9 +57,10 @@ class MachineActionManager(QObject): def addRequiredAction(self, definition_id, action_key): if action_key in self._machine_actions: if definition_id in self._required_actions: - self._required_actions[definition_id] |= {self._machine_actions[action_key]} + if self._machine_actions[action_key] not in self._required_actions[definition_id]: + self._required_actions[definition_id].append(self._machine_actions[action_key]) else: - self._required_actions[definition_id] = {self._machine_actions[action_key]} + self._required_actions[definition_id] = [self._machine_actions[action_key]] else: raise UnknownMachineActionError("Action %s, which is required for %s is not known." % (action_key, definition_id)) @@ -67,9 +68,10 @@ class MachineActionManager(QObject): def addSupportedAction(self, definition_id, action_key): if action_key in self._machine_actions: if definition_id in self._supported_actions: - self._supported_actions[definition_id] |= {self._machine_actions[action_key]} + if self._machine_actions[action_key] not in self._supported_actions[definition_id]: + self._supported_actions[definition_id].append(self._machine_actions[action_key]) else: - self._supported_actions[definition_id] = {self._machine_actions[action_key]} + self._supported_actions[definition_id] = [self._machine_actions[action_key]] else: Logger.log("w", "Unable to add %s to %s, as the action is not recognised", action_key, definition_id) diff --git a/resources/definitions/ultimaker_original.def.json b/resources/definitions/ultimaker_original.def.json index d2174ece80..0815aeee02 100644 --- a/resources/definitions/ultimaker_original.def.json +++ b/resources/definitions/ultimaker_original.def.json @@ -15,7 +15,7 @@ "preferred_material": "*pla*", "preferred_quality": "*normal*", "first_start_actions": ["UMOUpgradeSelection", "UMOCheckup", "BedLevel"], - "supported_actions": ["UMOCheckup", "UpgradeFirmware", "BedLevel", "UMOUpgradeSelection"] + "supported_actions": ["UMOUpgradeSelection", "UMOCheckup", "BedLevel", "UpgradeFirmware"] }, "overrides": { From 562363ec16fb7a93048c37285ffaa6e8a2a1d075 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 29 Jul 2016 17:24:12 +0200 Subject: [PATCH 067/228] Updated documentation --- plugins/CuraEngineBackend/StartSliceJob.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index 8f4f47ef50..2fd7d110bf 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -25,6 +25,7 @@ class StartJobResult(IntEnum): SettingError = 3 NothingToSlice = 4 + ## Formatter class that handles token expansion in start/end gcod class GcodeStartEndFormatter(Formatter): def get_value(self, key, args, kwargs): # [CodeStyle: get_value is an overridden function from the Formatter class] @@ -38,6 +39,7 @@ class GcodeStartEndFormatter(Formatter): Logger.log("w", "Incorrectly formatted placeholder '%s' in start/end gcode", key) return "{" + str(key) + "}" + ## Job class that builds up the message of scene data to send to CuraEngine. class StartSliceJob(Job): def __init__(self, slice_message): @@ -124,6 +126,9 @@ class StartSliceJob(Job): if temp_list: object_groups.append(temp_list) + # There are cases when there is nothing to slice. This can happen due to one at a time slicing not being + # able to find a possible sequence or because there are no objects on the build plate (or they are outside + # the build volume) if not object_groups: self.setResult(StartJobResult.NothingToSlice) return @@ -172,6 +177,7 @@ class StartSliceJob(Job): Logger.logException("w", "Unable to do token replacement on start/end gcode") return str(value).encode("utf-8") + ## Create extruder message from stack def _buildExtruderMessage(self, stack): message = self._slice_message.addRepeatedMessage("extruders") message.id = int(stack.getMetaDataEntry("position")) @@ -210,6 +216,9 @@ class StartSliceJob(Job): else: setting_message.value = str(value).encode("utf-8") + ## Check if a node has per object settings and ensure that they are set correctly in the message + # \param node \type{SceneNode} Node to check. + # \param message object_lists message to put the per object settings in def _handlePerObjectSettings(self, node, message): stack = node.callDecoration("getStack") # Check if the node has a stack attached to it and the stack has any settings in the top container. @@ -231,6 +240,9 @@ class StartSliceJob(Job): setting.value = str(stack.getProperty(key, "value")).encode("utf-8") Job.yieldThread() + ## Recursive function to put all settings that require eachother for value changes in a list + # \param relations_set \type{set} Set of keys (strings) of settings that are influenced + # \param relations list of relation objects that need to be checked. def _addRelations(self, relations_set, relations): for relation in filter(lambda r: r.role == "value", relations): if relation.type == RelationType.RequiresTarget: From 4a5b2465aec1dd9980ffbc0adade06172ca59a53 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 29 Jul 2016 17:25:36 +0200 Subject: [PATCH 068/228] Fixed process sliced layer job not deleting old data --- plugins/CuraEngineBackend/ProcessSlicedLayersJob.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py b/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py index c2f73cf5b7..3bdcd60009 100644 --- a/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py +++ b/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py @@ -56,10 +56,9 @@ class ProcessSlicedLayersJob(Job): ## Remove old layer data (if any) for node in DepthFirstIterator(self._scene.getRoot()): - if type(node) is SceneNode and node.getMeshData(): - if node.callDecoration("getLayerData"): - self._scene.getRoot().removeChild(node) - Job.yieldThread() + if node.callDecoration("getLayerData"): + node.getParent().removeChild(node) + break if self._abort_requested: if self._progress: self._progress.hide() From 03aa9cf8d3b7e6b74749709e56f4483387c6200b Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 29 Jul 2016 17:28:58 +0200 Subject: [PATCH 069/228] Codestyle --- .../CuraEngineBackend/CuraEngineBackend.py | 54 ++++++++++--------- .../ProcessSlicedLayersJob.py | 20 ++++--- 2 files changed, 37 insertions(+), 37 deletions(-) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 73054fb4dc..6b74887036 100644 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -42,7 +42,8 @@ class CuraEngineBackend(Backend): def __init__(self): super().__init__() - # Find out where the engine is located, and how it is called. This depends on how Cura is packaged and which OS we are running on. + # Find out where the engine is located, and how it is called. + # This depends on how Cura is packaged and which OS we are running on. default_engine_location = os.path.join(Application.getInstallPrefix(), "bin", "CuraEngine") if hasattr(sys, "frozen"): default_engine_location = os.path.join(os.path.dirname(os.path.abspath(sys.executable)), "CuraEngine") @@ -61,7 +62,7 @@ class CuraEngineBackend(Backend): self._stored_layer_data = [] self._stored_optimized_layer_data = [] - #Triggers for when to (re)start slicing: + # Triggers for when to (re)start slicing: self._global_container_stack = None Application.getInstance().globalContainerStackChanged.connect(self._onGlobalStackChanged) self._onGlobalStackChanged() @@ -70,15 +71,15 @@ class CuraEngineBackend(Backend): cura.Settings.ExtruderManager.getInstance().activeExtruderChanged.connect(self._onActiveExtruderChanged) self._onActiveExtruderChanged() - #When you update a setting and other settings get changed through inheritance, many propertyChanged signals are fired. - #This timer will group them up, and only slice for the last setting changed signal. - #TODO: Properly group propertyChanged signals by whether they are triggered by the same user interaction. + # When you update a setting and other settings get changed through inheritance, many propertyChanged signals are fired. + # This timer will group them up, and only slice for the last setting changed signal. + # TODO: Properly group propertyChanged signals by whether they are triggered by the same user interaction. self._change_timer = QTimer() self._change_timer.setInterval(500) self._change_timer.setSingleShot(True) self._change_timer.timeout.connect(self.slice) - #Listeners for receiving messages from the back-end. + # Listeners for receiving messages from the back-end. self._message_handlers["cura.proto.Layer"] = self._onLayerMessage self._message_handlers["cura.proto.LayerOptimized"] = self._onOptimizedLayerMessage self._message_handlers["cura.proto.Progress"] = self._onProgressMessage @@ -88,19 +89,19 @@ class CuraEngineBackend(Backend): self._message_handlers["cura.proto.SlicingFinished"] = self._onSlicingFinishedMessage self._start_slice_job = None - self._slicing = False #Are we currently slicing? - self._restart = False #Back-end is currently restarting? - self._enabled = True #Should we be slicing? Slicing might be paused when, for instance, the user is dragging the mesh around. - self._always_restart = True #Always restart the engine when starting a new slice. Don't keep the process running. TODO: Fix engine statelessness. - self._process_layers_job = None #The currently active job to process layers, or None if it is not processing layers. + self._slicing = False # Are we currently slicing? + self._restart = False # Back-end is currently restarting? + self._enabled = True # Should we be slicing? Slicing might be paused when, for instance, the user is dragging the mesh around. + self._always_restart = True # Always restart the engine when starting a new slice. Don't keep the process running. TODO: Fix engine statelessness. + self._process_layers_job = None # The currently active job to process layers, or None if it is not processing layers. - self._backend_log_max_lines = 20000 # Maximum number of lines to buffer - self._error_message = None #Pop-up message that shows errors. + self._backend_log_max_lines = 20000 # Maximum number of lines to buffer + self._error_message = None # Pop-up message that shows errors. self.backendQuit.connect(self._onBackendQuit) self.backendConnected.connect(self._onBackendConnected) - #When a tool operation is in progress, don't slice. So we need to listen for tool operations. + # When a tool operation is in progress, don't slice. So we need to listen for tool operations. Application.getInstance().getController().toolOperationStarted.connect(self._onToolOperationStarted) Application.getInstance().getController().toolOperationStopped.connect(self._onToolOperationStopped) @@ -121,7 +122,8 @@ class CuraEngineBackend(Backend): json_path = Resources.getPath(Resources.DefinitionContainers, "fdmprinter.def.json") return [Preferences.getInstance().getValue("backend/location"), "connect", "127.0.0.1:{0}".format(self._port), "-j", json_path, ""] - ## Emitted when we get a message containing print duration and material amount. This also implies the slicing has finished. + ## Emitted when we get a message containing print duration and material amount. + # This also implies the slicing has finished. # \param time The amount of time the print will take. # \param material_amount The amount of material the print will use. printDurationMessage = Signal() @@ -135,7 +137,7 @@ class CuraEngineBackend(Backend): ## Perform a slice of the scene. def slice(self): self._slice_start_time = time() - if not self._enabled or not self._global_container_stack: #We shouldn't be slicing. + if not self._enabled or not self._global_container_stack: # We shouldn't be slicing. # try again in a short time self._change_timer.start() return @@ -145,10 +147,10 @@ class CuraEngineBackend(Backend): self._stored_layer_data = [] self._stored_optimized_layer_data = [] - if self._slicing: #We were already slicing. Stop the old job. + if self._slicing: # We were already slicing. Stop the old job. self._terminate() - if self._process_layers_job: #We were processing layers. Stop that, the layers are going to change soon. + if self._process_layers_job: # We were processing layers. Stop that, the layers are going to change soon. self._process_layers_job.abort() self._process_layers_job = None @@ -185,7 +187,7 @@ class CuraEngineBackend(Backend): self._process.terminate() Logger.log("d", "Engine process is killed. Received return code %s", self._process.wait()) self._process = None - except Exception as e: # terminating a process that is already terminating causes an exception, silently ignore this. + except Exception as e: # terminating a process that is already terminating causes an exception, silently ignore this. Logger.log("d", "Exception occurred while trying to kill the engine %s", str(e)) ## Event handler to call when the job to initiate the slicing process is @@ -267,7 +269,7 @@ class CuraEngineBackend(Backend): # \param instance The setting instance that has changed. # \param property The property of the setting instance that has changed. def _onSettingChanged(self, instance, property): - if property == "value": #Only reslice if the value has changed. + if property == "value": # Only reslice if the value has changed. self._onChanged() ## Called when a sliced layer data message is received from the engine. @@ -318,7 +320,7 @@ class CuraEngineBackend(Backend): ## Called when a print time message is received from the engine. # - # \param message The protobuf message containing the print time and + # \param message The protobuff message containing the print time and # material amount per extruder def _onPrintTimeMaterialEstimates(self, message): material_amounts = [] @@ -353,8 +355,8 @@ class CuraEngineBackend(Backend): # # \param tool The tool that the user is using. def _onToolOperationStarted(self, tool): - self._terminate() # Do not continue slicing once a tool has started - self._enabled = False # Do not reslice when a tool is doing it's 'thing' + self._terminate() # Do not continue slicing once a tool has started + self._enabled = False # Do not reslice when a tool is doing it's 'thing' ## Called when the user stops using some tool. # @@ -362,13 +364,13 @@ class CuraEngineBackend(Backend): # # \param tool The tool that the user was using. def _onToolOperationStopped(self, tool): - self._enabled = True # Tool stop, start listening for changes again. + self._enabled = True # Tool stop, start listening for changes again. ## Called when the user changes the active view mode. def _onActiveViewChanged(self): if Application.getInstance().getController().getActiveView(): view = Application.getInstance().getController().getActiveView() - if view.getPluginId() == "LayerView": #If switching to layer view, we should process the layers if that hasn't been done yet. + if view.getPluginId() == "LayerView": # If switching to layer view, we should process the layers if that hasn't been done yet. self._layer_view_active = True # There is data and we're not slicing at the moment # if we are slicing, there is no need to re-calculate the data as it will be invalid in a moment. @@ -401,7 +403,7 @@ class CuraEngineBackend(Backend): self._global_container_stack = Application.getInstance().getGlobalContainerStack() if self._global_container_stack: - self._global_container_stack.propertyChanged.connect(self._onSettingChanged) #Note: Only starts slicing when the value changed. + self._global_container_stack.propertyChanged.connect(self._onSettingChanged) # Note: Only starts slicing when the value changed. self._global_container_stack.containersChanged.connect(self._onChanged) extruders = list(ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId())) if extruders: diff --git a/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py b/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py index 3bdcd60009..7443340c5b 100644 --- a/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py +++ b/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py @@ -73,7 +73,7 @@ class ProcessSlicedLayersJob(Job): # instead simply offset all other layers so the lowest layer is always 0. min_layer_number = 0 for layer in self._layers: - if(layer.id < min_layer_number): + if layer.id < min_layer_number: min_layer_number = layer.id current_layer = 0 @@ -97,7 +97,7 @@ class ProcessSlicedLayersJob(Job): points = numpy.fromstring(polygon.points, dtype="f4") # Convert bytearray to numpy array if polygon.point_type == 0: # Point2D points = points.reshape((-1,2)) # We get a linear list of pairs that make up the points, so make numpy interpret them correctly. - else: # Point3D + else: # Point3D points = points.reshape((-1,3)) line_widths = numpy.fromstring(polygon.line_width, dtype="f4") # Convert bytearray to numpy array @@ -107,15 +107,14 @@ class ProcessSlicedLayersJob(Job): # This uses manual array creation + copy rather than numpy.insert since this is # faster. new_points = numpy.empty((len(points), 3), numpy.float32) - if polygon.point_type == 0: # Point2D - new_points[:,0] = points[:,0] - new_points[:,1] = layer.height/1000 # layer height value is in backend representation - new_points[:,2] = -points[:,1] + if polygon.point_type == 0: # Point2D + new_points[:, 0] = points[:, 0] + new_points[:, 1] = layer.height / 1000 # layer height value is in backend representation + new_points[:, 2] = -points[:, 1] else: # Point3D - new_points[:,0] = points[:,0] - new_points[:,1] = points[:,2] - new_points[:,2] = -points[:,1] - + new_points[:, 0] = points[:, 0] + new_points[:, 1] = points[:, 2] + new_points[:, 2] = -points[:, 1] this_poly = LayerPolygon.LayerPolygon(layer_data, extruder, line_types, new_points, line_widths) this_poly.buildCache() @@ -184,4 +183,3 @@ class ProcessSlicedLayersJob(Job): else: if self._progress: self._progress.hide() - From 6e3488142e87b470d04c935e0de8c6b90159eaae Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 29 Jul 2016 17:32:57 +0200 Subject: [PATCH 070/228] Removed lifetime from slice error messages so they use the (longer) default --- plugins/CuraEngineBackend/CuraEngineBackend.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 6b74887036..a822512218 100644 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -208,7 +208,7 @@ class CuraEngineBackend(Backend): if job.getResult() == StartSliceJob.StartJobResult.SettingError: if Application.getInstance().getPlatformActivity: - self._error_message = Message(catalog.i18nc("@info:status", "Unable to slice. Please check your setting values for errors."), lifetime = 10) + self._error_message = Message(catalog.i18nc("@info:status", "Unable to slice. Please check your setting values for errors.")) self._error_message.show() self.backendStateChange.emit(BackendState.Error) else: @@ -217,7 +217,7 @@ class CuraEngineBackend(Backend): if job.getResult() == StartSliceJob.StartJobResult.NothingToSlice: if Application.getInstance().getPlatformActivity: - self._error_message = Message(catalog.i18nc("@info:status", "Unable to slice. No suitable objects found."), lifetime = 10) + self._error_message = Message(catalog.i18nc("@info:status", "Unable to slice. No suitable objects found.")) self._error_message.show() self.backendStateChange.emit(BackendState.Error) else: From 1182a3c87e907da16c965ed7620bb3cc2ecd9afc Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Fri, 29 Jul 2016 17:36:07 +0200 Subject: [PATCH 071/228] Fix render color for single-extrusion printers CURA-1992 --- plugins/SolidView/SolidView.py | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/plugins/SolidView/SolidView.py b/plugins/SolidView/SolidView.py index 2182a0748a..1e9721169a 100644 --- a/plugins/SolidView/SolidView.py +++ b/plugins/SolidView/SolidView.py @@ -57,25 +57,28 @@ class SolidView(View): # renderer.queueNode(scene.getRoot(), mesh = node.getBoundingBoxMesh(),mode = Renderer.RenderLines) uniforms = {} - if self._extruders_model.rowCount() > 0: + if self._extruders_model.rowCount() == 0: + material = Application.getInstance().getGlobalContainerStack().findContainer({ "type": "material" }) + material_color = material.getMetaDataEntry("color_code", default = self._extruders_model.defaultColours[0]) if material else self._extruders_model.defaultColours[0] + else: # Get color to render this mesh in from ExtrudersModel extruder_index = 0 extruder_id = node.callDecoration("getActiveExtruder") if extruder_id: extruder_index = max(0, self._extruders_model.find("id", extruder_id)) - extruder_color = self._extruders_model.getItem(extruder_index)["colour"] - try: - # Colors are passed as rgb hex strings (eg "#ffffff"), and the shader needs - # an rgba list of floats (eg [1.0, 1.0, 1.0, 1.0]) - uniforms["diffuse_color"] = [ - int(extruder_color[1:3], 16) / 255, - int(extruder_color[3:5], 16) / 255, - int(extruder_color[5:7], 16) / 255, - 1.0 - ] - except ValueError: - pass + material_color = self._extruders_model.getItem(extruder_index)["colour"] + try: + # Colors are passed as rgb hex strings (eg "#ffffff"), and the shader needs + # an rgba list of floats (eg [1.0, 1.0, 1.0, 1.0]) + uniforms["diffuse_color"] = [ + int(material_color[1:3], 16) / 255, + int(material_color[3:5], 16) / 255, + int(material_color[5:7], 16) / 255, + 1.0 + ] + except ValueError: + pass if hasattr(node, "_outside_buildarea"): if node._outside_buildarea: From 102a0793e6982d29fe952d7af01f57789f3de144 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 29 Jul 2016 17:38:35 +0200 Subject: [PATCH 072/228] Codestyle & documentation --- plugins/LayerView/LayerView.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/plugins/LayerView/LayerView.py b/plugins/LayerView/LayerView.py index 358a357d3e..f60d492ec7 100644 --- a/plugins/LayerView/LayerView.py +++ b/plugins/LayerView/LayerView.py @@ -11,6 +11,7 @@ from UM.Math.Color import Color from UM.Mesh.MeshBuilder import MeshBuilder from UM.Job import Job from UM.Preferences import Preferences +from UM.Logger import Logger from UM.View.RenderBatch import RenderBatch from UM.View.GL.OpenGL import OpenGL @@ -34,7 +35,7 @@ class LayerView(View): self._shader = None self._selection_shader = None self._num_layers = 0 - self._layer_percentage = 0 # what percentage of layers need to be shown (SLider gives value between 0 - 100) + self._layer_percentage = 0 # what percentage of layers need to be shown (Slider gives value between 0 - 100) self._proxy = LayerViewProxy.LayerViewProxy() self._controller.getScene().getRoot().childrenChanged.connect(self._onSceneChanged) self._max_layers = 0 @@ -43,6 +44,7 @@ class LayerView(View): self._current_layer_jumps = None self._top_layers_job = None self._activity = False + self._old_max_layers = 0 Preferences.getInstance().addPreference("view/top_layer_count", 5) Preferences.getInstance().addPreference("view/only_show_top_layers", False) @@ -133,7 +135,6 @@ class LayerView(View): def calculateMaxLayers(self): scene = self.getController().getScene() - renderer = self.getRenderer() # TODO: @UnusedVariable self._activity = True self._old_max_layers = self._max_layers @@ -215,6 +216,7 @@ class LayerView(View): self._startUpdateTopLayers() + class _CreateTopLayersJob(Job): def __init__(self, scene, layer_number, solid_layers): super().__init__() @@ -242,20 +244,20 @@ class _CreateTopLayersJob(Job): try: layer = layer_data.getLayer(layer_number).createMesh() - except Exception as e: - print(e) + except Exception: + Logger.logException("w", "An exception occurred while creating layer mesh.") return if not layer or layer.getVertices() is None: continue - layer_mesh.addIndices(layer_mesh._vertex_count+layer.getIndices()) + layer_mesh.addIndices(layer_mesh.getVertexCount() + layer.getIndices()) layer_mesh.addVertices(layer.getVertices()) # Scale layer color by a brightness factor based on the current layer number # This will result in a range of 0.5 - 1.0 to multiply colors by. - brightness = numpy.ones((1,4), dtype=numpy.float32) * (2.0 - (i / self._solid_layers)) / 2.0 - brightness[0, 3] = 1.0; + brightness = numpy.ones((1, 4), dtype=numpy.float32) * (2.0 - (i / self._solid_layers)) / 2.0 + brightness[0, 3] = 1.0 layer_mesh.addColors(layer.getColors() * brightness) if self._cancel: @@ -271,7 +273,7 @@ class _CreateTopLayersJob(Job): if not jump_mesh or jump_mesh.getVertices() is None: jump_mesh = None - self.setResult({ "layers": layer_mesh.build(), "jumps": jump_mesh }) + self.setResult({"layers": layer_mesh.build(), "jumps": jump_mesh}) def cancel(self): self._cancel = True From ed1d12d21d7d3e6cc2af69eae83083fef6e63b60 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Fri, 29 Jul 2016 17:43:38 +0200 Subject: [PATCH 073/228] Hide linked settings icon for single extrusion printers CURA-2020 --- resources/qml/Settings/SettingItem.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Settings/SettingItem.qml b/resources/qml/Settings/SettingItem.qml index eb6c37f73c..dae9953690 100644 --- a/resources/qml/Settings/SettingItem.qml +++ b/resources/qml/Settings/SettingItem.qml @@ -138,7 +138,7 @@ Item { { id: linkedSettingIcon; - visible: base.settablePerExtruder != "True" && base.showLinkedSettingIcon + visible: Cura.MachineManager.activeStackId != Cura.MachineManager.activeMachineId && base.settablePerExtruder != "True" && base.showLinkedSettingIcon height: parent.height; width: height; From 74d21a9053f5f6eb4c7093eb3348cc29d2031c9a Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Fri, 29 Jul 2016 19:15:05 +0200 Subject: [PATCH 074/228] Only draw boundingbox wireframe on selected groups CURA-1492 --- plugins/SolidView/SolidView.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/SolidView/SolidView.py b/plugins/SolidView/SolidView.py index 1e9721169a..0329fb53e2 100644 --- a/plugins/SolidView/SolidView.py +++ b/plugins/SolidView/SolidView.py @@ -3,6 +3,7 @@ from UM.View.View import View from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator +from UM.Scene.Selection import Selection from UM.Resources import Resources from UM.Application import Application from UM.Preferences import Preferences @@ -87,7 +88,7 @@ class SolidView(View): renderer.queueNode(node, shader = self._enabled_shader, uniforms = uniforms) else: renderer.queueNode(node, material = self._enabled_shader, uniforms = uniforms) - if node.callDecoration("isGroup"): + if node.callDecoration("isGroup") and Selection.isSelected(node): renderer.queueNode(scene.getRoot(), mesh = node.getBoundingBoxMesh(), mode = Renderer.RenderLines) def endRendering(self): From e01c8a4f106f69583280d12ac8642b2177e36d72 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Fri, 29 Jul 2016 19:25:40 +0200 Subject: [PATCH 075/228] Add Select All functionality --- cura/CuraApplication.py | 18 +++++++++++++++++- resources/qml/Actions.qml | 11 +++++++++++ resources/qml/Cura.qml | 3 +++ 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index a646d687f6..53d509b71c 100644 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -633,7 +633,23 @@ class CuraApplication(QtApplication): if node: op = SetTransformOperation(node, Vector()) op.push() - + + ## Select all nodes containing mesh data in the scene. + @pyqtSlot() + def selectAll(self): + if not self.getController().getToolsEnabled(): + return + + Selection.clear() + for node in DepthFirstIterator(self.getController().getScene().getRoot()): + if type(node) is not SceneNode: + continue + if not node.getMeshData() and not node.callDecoration("isGroup"): + continue # Node that doesnt have a mesh and is not a group. + if node.getParent() and node.getParent().callDecoration("isGroup"): + continue # Grouped nodes don't need resetting as their parent (the group) is resetted) + Selection.add(node) + ## Delete all nodes containing mesh data in the scene. @pyqtSlot() def deleteAll(self): diff --git a/resources/qml/Actions.qml b/resources/qml/Actions.qml index c443c38875..ed88433e33 100644 --- a/resources/qml/Actions.qml +++ b/resources/qml/Actions.qml @@ -27,6 +27,7 @@ Item property alias multiplyObject: multiplyObjectAction; + property alias selectAll: selectAllAction; property alias deleteAll: deleteAllAction; property alias reloadAll: reloadAllAction; property alias resetAllTranslation: resetAllTranslationAction; @@ -230,6 +231,16 @@ Item iconName: "edit-duplicate" } + Action + { + id: selectAllAction; + text: catalog.i18nc("@action:inmenu menubar:edit","&Select All Objects"); + enabled: UM.Controller.toolsEnabled; + iconName: "edit-select-all"; + shortcut: "Ctrl+A"; + onTriggered: Printer.selectAll(); + } + Action { id: deleteAllAction; diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 45137db5cc..ae72353e0e 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -118,6 +118,7 @@ UM.MainWindow MenuItem { action: Cura.Actions.undo; } MenuItem { action: Cura.Actions.redo; } MenuSeparator { } + MenuItem { action: Cura.Actions.selectAll; } MenuItem { action: Cura.Actions.deleteSelection; } MenuItem { action: Cura.Actions.deleteAll; } MenuItem { action: Cura.Actions.resetAllTranslation; } @@ -537,6 +538,7 @@ UM.MainWindow MenuItem { action: Cura.Actions.deleteObject; } MenuItem { action: Cura.Actions.multiplyObject; } MenuSeparator { } + MenuItem { action: Cura.Actions.selectAll; } MenuItem { action: Cura.Actions.deleteAll; } MenuItem { action: Cura.Actions.reloadAll; } MenuItem { action: Cura.Actions.resetAllTranslation; } @@ -589,6 +591,7 @@ UM.MainWindow Menu { id: contextMenu; + MenuItem { action: Cura.Actions.selectAll; } MenuItem { action: Cura.Actions.deleteAll; } MenuItem { action: Cura.Actions.reloadAll; } MenuItem { action: Cura.Actions.resetAllTranslation; } From fb96950762c4e5235dd12fd071a95c5ef02dd70d Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Fri, 29 Jul 2016 21:50:49 +0200 Subject: [PATCH 076/228] Don't set extruder_nr per object for single extrusion printers CURA-1754 --- plugins/CuraEngineBackend/StartSliceJob.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index 2fd7d110bf..a96b9ef857 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -231,7 +231,8 @@ class StartSliceJob(Job): Job.yieldThread() # Ensure that the engine is aware what the build extruder is - changed_setting_keys.add("extruder_nr") + if stack.getProperty("machine_extruder_count", "value") > 1: + changed_setting_keys.add("extruder_nr") # Get values for all changed settings for key in changed_setting_keys: From b21a1f311acaeaeb4760b9edf632af92e1c6c12a Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 29 Jul 2016 16:22:18 +0200 Subject: [PATCH 077/228] Send all global_inherits_stack to engine Only the settings for which global_inherits_stack is set should be sent to the engine. Contributes to issue CURA-2011. --- plugins/CuraEngineBackend/Cura.proto | 9 ++++++++- plugins/CuraEngineBackend/StartSliceJob.py | 16 ++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/plugins/CuraEngineBackend/Cura.proto b/plugins/CuraEngineBackend/Cura.proto index 0c4803cc19..289c0a98a0 100644 --- a/plugins/CuraEngineBackend/Cura.proto +++ b/plugins/CuraEngineBackend/Cura.proto @@ -13,6 +13,7 @@ message Slice repeated ObjectList object_lists = 1; // The meshgroups to be printed one after another SettingList global_settings = 2; // The global settings used for the whole print job repeated Extruder extruders = 3; // The settings sent to each extruder object + repeated SettingExtruder global_inherits_stack = 4; //From which stack the setting would inherit if not defined in a stack. } message Extruder @@ -108,8 +109,14 @@ message Setting { bytes value = 2; // The value of the setting } +message SettingExtruder { + string name = 1; //The setting key. + + int32 extruder = 2; //From which extruder stack the setting should inherit. +} + message GCodePrefix { - bytes data = 2; // Header string to be prenpended before the rest of the gcode sent from the engine + bytes data = 2; //Header string to be prepended before the rest of the g-code sent from the engine. } message SlicingFinished { diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index a96b9ef857..689346448d 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -134,6 +134,7 @@ class StartSliceJob(Job): return self._buildGlobalSettingsMessage(stack) + self._buildGlobalInheritsStackMessage(stack) for extruder_stack in cura.Settings.ExtruderManager.getInstance().getMachineExtruders(stack.getId()): self._buildExtruderMessage(extruder_stack) @@ -216,6 +217,21 @@ class StartSliceJob(Job): else: setting_message.value = str(value).encode("utf-8") + ## Sends for some settings which extruder they should fallback to if not + # set. + # + # This is only set for settings that have the global_inherits_stack + # property. + # + # \param stack The global stack with all settings, from which to read the + # global_inherits_stack property. + def _buildGlobalInheritsStackMessage(self, stack): + for key in stack.getAllKeys(): + if stack.hasProperty(key, "global_inherits_stack"): + setting_extruder = self._slice_message.addRepeatedMessage("global_inherits_stack") + setting_extruder.name = key + setting_extruder.extruder = int(stack.getProperty(key, "global_inherits_stack")) + ## Check if a node has per object settings and ensure that they are set correctly in the message # \param node \type{SceneNode} Node to check. # \param message object_lists message to put the per object settings in From c2201eb8149921eb9009b4577ab1bad2d0c8d556 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 29 Jul 2016 17:34:22 +0200 Subject: [PATCH 078/228] Send setting extruder only when extruder is valid Apparently hasProperty always returns True. Fine. I'll just check the values then... Contributes to issue CURA-2011. --- plugins/CuraEngineBackend/StartSliceJob.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index 689346448d..5b948c90ab 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -227,10 +227,11 @@ class StartSliceJob(Job): # global_inherits_stack property. def _buildGlobalInheritsStackMessage(self, stack): for key in stack.getAllKeys(): - if stack.hasProperty(key, "global_inherits_stack"): + extruder = int(stack.getProperty(key, "global_inherits_stack")) + if extruder >= 0: #Set to a specific extruder. setting_extruder = self._slice_message.addRepeatedMessage("global_inherits_stack") setting_extruder.name = key - setting_extruder.extruder = int(stack.getProperty(key, "global_inherits_stack")) + setting_extruder.extruder = extruder ## Check if a node has per object settings and ensure that they are set correctly in the message # \param node \type{SceneNode} Node to check. From 96ac27d1c3d38a3323e85c267baf7262cfebaeb7 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 1 Aug 2016 10:50:04 +0200 Subject: [PATCH 079/228] Remove 3MF repair message CURA-1223 --- plugins/3MFReader/ThreeMFReader.py | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/plugins/3MFReader/ThreeMFReader.py b/plugins/3MFReader/ThreeMFReader.py index 74db9fe946..ea3ca30118 100644 --- a/plugins/3MFReader/ThreeMFReader.py +++ b/plugins/3MFReader/ThreeMFReader.py @@ -11,11 +11,6 @@ from UM.Scene.GroupDecorator import GroupDecorator from UM.Math.Quaternion import Quaternion from UM.Job import Job -from UM.Message import Message -from UM.i18n import i18nCatalog -catalog = i18nCatalog("cura") - - import math import zipfile @@ -123,12 +118,10 @@ class ThreeMFReader(MeshReader): except Exception as e: Logger.log("e", "exception occured in 3mf reader: %s", e) - try: # Selftest - There might be more functions that should fail + try: # Selftest - There might be more functions that should fail boundingBox = result.getBoundingBox() boundingBox.isValid() except: - message = Message(catalog.i18nc("@info:status", "Your 3MF file seems to be broken. Please visit https://modelrepair.azurewebsites.net/ and try to repair your model!"), lifetime = 0) - message.show() return None - - return result + + return result From 34e8b4635b6655a6d08f58a583c9ab2bcce05e33 Mon Sep 17 00:00:00 2001 From: Thomas Karl Pietrowski Date: Mon, 1 Aug 2016 12:28:00 +0200 Subject: [PATCH 080/228] Scanning for CuraEngine and stop if it was not found So far I ran 2 or 3 times into the problem that my engine was not up to date. The bad thing here is that there is always an updated version from my PPA on the PC. So first this commit gives the possibility to look for CuraEngine in the $PATH directories. Before I had to copy it always manually, eg. via "cp $(which CuraEngine) bin/CuraEngine" in my workbench. Second, people can get into the situation that CuraEngine is missing at all. So before making Cura loop and try to use an executable that does not exist, better raise an Exception here. An additional info message tells about the location being used. Does not contribute to any JIRA issue (I think), but makes my life easier. --- .../CuraEngineBackend/CuraEngineBackend.py | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index a822512218..0569eaf946 100644 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -39,16 +39,35 @@ class CuraEngineBackend(Backend): # # This registers all the signal listeners and prepares for communication # with the back-end in general. + + executableName = "CuraEngine" + def __init__(self): super().__init__() # Find out where the engine is located, and how it is called. # This depends on how Cura is packaged and which OS we are running on. - default_engine_location = os.path.join(Application.getInstallPrefix(), "bin", "CuraEngine") + default_engine_location = None + if os.path.exists(os.path.join(Application.getInstallPrefix(), "bin", "CuraEngine")): + default_engine_location = os.path.join(Application.getInstallPrefix(), "bin", "CuraEngine") if hasattr(sys, "frozen"): default_engine_location = os.path.join(os.path.dirname(os.path.abspath(sys.executable)), "CuraEngine") if Platform.isWindows(): default_engine_location += ".exe" + if Platform.isLinux() and not default_engine_location: + if not os.getenv('PATH'): + raise OSError("There is something wrong with your Linux installation.") + for pathdir in os.getenv('PATH').split(os.pathsep): + execpath = os.path.join(pathdir, self.executableName) + if os.path.exists(execpath): + default_engine_location = execpath + break + + if not default_engine_location: + raise EnvironmentError("Could not find CuraEngine") + + Logger.log("i", "Found CuraEngine at: %s" %(default_engine_location)) + default_engine_location = os.path.abspath(default_engine_location) Preferences.getInstance().addPreference("backend/location", default_engine_location) From 92983636b044eee9cfb0a5d29a58302a4a684f0e Mon Sep 17 00:00:00 2001 From: Thomas Karl Pietrowski Date: Mon, 1 Aug 2016 12:29:57 +0200 Subject: [PATCH 081/228] Use self.executableName in __init__ --- plugins/CuraEngineBackend/CuraEngineBackend.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 0569eaf946..d9b973cab4 100644 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -48,10 +48,10 @@ class CuraEngineBackend(Backend): # Find out where the engine is located, and how it is called. # This depends on how Cura is packaged and which OS we are running on. default_engine_location = None - if os.path.exists(os.path.join(Application.getInstallPrefix(), "bin", "CuraEngine")): - default_engine_location = os.path.join(Application.getInstallPrefix(), "bin", "CuraEngine") + if os.path.exists(os.path.join(Application.getInstallPrefix(), "bin", self.executableName)): + default_engine_location = os.path.join(Application.getInstallPrefix(), "bin", self.executableName) if hasattr(sys, "frozen"): - default_engine_location = os.path.join(os.path.dirname(os.path.abspath(sys.executable)), "CuraEngine") + default_engine_location = os.path.join(os.path.dirname(os.path.abspath(sys.executable)), self.executableName) if Platform.isWindows(): default_engine_location += ".exe" if Platform.isLinux() and not default_engine_location: From 1e46ab9eea4179024b233d47320abc01b0905838 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 1 Aug 2016 13:45:24 +0200 Subject: [PATCH 082/228] Remove stale AddMachineWizard file --- resources/qml/AddMachineWizard.qml | 32 ------------------------------ 1 file changed, 32 deletions(-) delete mode 100644 resources/qml/AddMachineWizard.qml diff --git a/resources/qml/AddMachineWizard.qml b/resources/qml/AddMachineWizard.qml deleted file mode 100644 index 1c743834de..0000000000 --- a/resources/qml/AddMachineWizard.qml +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright (c) 2015 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. - -import QtQuick 2.2 -import QtQuick.Controls 1.1 -import QtQuick.Layouts 1.1 -import QtQuick.Window 2.1 - -import UM 1.1 as UM -import Cura 1.0 as Cura - -import "WizardPages" - -UM.Wizard -{ - id: base; - - title: catalog.i18nc("@title:window", "Add Printer") - - // This part is optional - // This part checks whether there is a printer -> if not: some of the functions (delete for example) are disabled - firstRun: false - - Component.onCompleted: { - base.appendPage(Qt.resolvedUrl("WizardPages/AddMachine.qml"), catalog.i18nc("@title", "Add Printer")); - base.currentPage = 0; - } - - Item { - UM.I18nCatalog { id: catalog; name: "cura"; } - } -} From 4adadd86ebe80b66049ed533b8936a51aefb7c91 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 1 Aug 2016 14:13:57 +0200 Subject: [PATCH 083/228] Fix defaults of some settings It was saying 'default' instead of 'default_value'. Must've been translated wrong from 2.1. --- .../definitions/mankati_fullscale_xt_plus.def.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/resources/definitions/mankati_fullscale_xt_plus.def.json b/resources/definitions/mankati_fullscale_xt_plus.def.json index eb8b99aaf9..72c8ebdd86 100644 --- a/resources/definitions/mankati_fullscale_xt_plus.def.json +++ b/resources/definitions/mankati_fullscale_xt_plus.def.json @@ -54,13 +54,13 @@ "speed_travel": { "default_value": 150 }, "speed_layer_0": { "minimum_value": "0.1", - "default": 15.0 + "default_value": 15.0 }, - "infill_overlap": { "default": 10 }, - "cool_fan_enabled": { "default": false }, - "cool_fan_speed": { "default": 0 }, - "skirt_line_count": { "default": 3 }, - "skirt_gap": { "default": 4 }, - "skirt_brim_minimal_length": { "default": 200 } + "infill_overlap": { "default_value": 10 }, + "cool_fan_enabled": { "default_value": false }, + "cool_fan_speed": { "default_value": 0 }, + "skirt_line_count": { "default_value": 3 }, + "skirt_gap": { "default_value": 4 }, + "skirt_brim_minimal_length": { "default_value": 200 } } } From dc6482853a39da83ba8e01566f6024cc94aee8ee Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 1 Aug 2016 14:14:58 +0200 Subject: [PATCH 084/228] Split acceleration_layer_0 and jerk_layer_0 into print/travel Exactly the same as how it's done with speed_layer_0. Contributes to issue CURA-1507. --- resources/definitions/fdmprinter.def.json | 65 +++++++++++++++++++++-- 1 file changed, 62 insertions(+), 3 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index e7445b6061..2864093b7d 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1545,7 +1545,6 @@ "minimum_value": "0.1", "maximum_value": "299792458000", "maximum_value_warning": "300", - "settable_per_mesh": true, "settable_per_extruder": true } } @@ -1748,7 +1747,37 @@ "minimum_value_warning": "100", "maximum_value_warning": "10000", "enabled": "acceleration_enabled", - "settable_per_mesh": true + "settable_per_mesh": true, + "children": { + "acceleration_print_layer_0": + { + "label": "Initial Layer Print Acceleration", + "description": "The acceleration during the printing of the initial layer.", + "unit": "mm/s", + "type": "float", + "default_value": 3000, + "value": "acceleration_layer_0", + "minimum_value": "0.1", + "minimum_value_warning": "100", + "maximum_value_warning": "10000", + "enabled": "acceleration_enabled", + "settable_per_mesh": true + }, + "acceleration_travel_layer_0": + { + "label": "Initial Layer Travel Acceleration", + "description": "The acceleration for travel moves in the initial layer.", + "unit": "mm/s", + "type": "float", + "default_value": 3000, + "value": "acceleration_layer_0 * acceleration_travel / acceleration_print", + "minimum_value": "0.1", + "minimum_value_warning": "100", + "maximum_value_warning": "10000", + "enabled": "acceleration_enabled", + "settable_per_extruder": true + } + } }, "acceleration_skirt_brim": { "label": "Skirt/Brim Acceleration", @@ -1936,7 +1965,37 @@ "minimum_value_warning": "5", "maximum_value_warning": "50", "enabled": "jerk_enabled", - "settable_per_mesh": true + "settable_per_mesh": true, + "children": { + "jerk_print_layer_0": + { + "label": "Initial Layer Print Jerk", + "description": "The maximum instantaneous velocity change during the printing of the initial layer.", + "unit": "mm/s", + "type": "float", + "default_value": 20, + "value": "jerk_layer_0", + "minimum_value": "0.1", + "minimum_value_warning": "5", + "maximum_value_warning": "50", + "enabled": "jerk_enabled", + "settable_per_mesh": true + }, + "jerk_travel_layer_0": + { + "label": "Initial Layer Travel Jerk", + "description": "The acceleration for travel moves in the initial layer.", + "unit": "mm/s", + "type": "float", + "default_value": 20, + "value": "jerk_layer_0 * jerk_travel / jerk_print", + "minimum_value": "0.1", + "minimum_value_warning": "5", + "maximum_value_warning": "50", + "enabled": "jerk_enabled", + "settable_per_extruder": true + } + } }, "jerk_skirt_brim": { "label": "Skirt/Brim Jerk", From 70acdb168b307d3908f75d7362da226784cfde5f Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 1 Aug 2016 14:56:18 +0200 Subject: [PATCH 085/228] Automate removing settings from old profiles for renames So we don't have to edit the actual code for simple setting renames. --- .../VersionUpgrade21to22.py | 25 ++----------------- 1 file changed, 2 insertions(+), 23 deletions(-) diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py b/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py index 64ea1ac665..611a290633 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py @@ -146,32 +146,11 @@ class VersionUpgrade21to22(VersionUpgrade): for key, value in settings.items(): if key == "fill_perimeter_gaps": #Setting is removed. del settings[key] - elif key == "remove_overlapping_walls_0_enabled": #Setting is functionally replaced. - del settings[key] - settings["travel_compensate_overlapping_walls_0_enabled"] = value - elif key == "remove_overlapping_walls_enabled": #Setting is functionally replaced. - del settings[key] - settings["travel_compensate_overlapping_walls_enabled"] = value - elif key == "remove_overlapping_walls_x_enabled": #Setting is functionally replaced. - del settings[key] - settings["travel_compensate_overlapping_walls_x_enabled"] = value elif key == "retraction_combing": #Combing was made into an enum instead of a boolean. settings[key] = "off" if (value == "False") else "all" - elif key == "retraction_hop": #Setting key was changed. + elif key in _setting_name_translations: del settings[key] - settings["retraction_hop_enabled"] = value - elif key == "skirt_minimal_length": #Setting key was changed. - del settings[key] - settings["skirt_brim_minimal_length"] = value - elif key == "skirt_line_width": #Setting key was changed. - del settings[key] - settings["skirt_brim_line_width"] = value - elif key == "skirt_speed": #Setting key was changed. - del settings[key] - settings["skirt_brim_speed"] = value - elif key == "speed_support_lines": #Setting key was changed. - del settings[key] - settings["speed_support_infill"] = value + settings[_setting_name_translations[key]] = value return settings ## Translates a setting name for the change from Cura 2.1 to 2.2. From f759b2403442dc7f23921f55c89f98146ce31b95 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 1 Aug 2016 15:03:14 +0200 Subject: [PATCH 086/228] Add translations for support roof to support interface These setting names were changed. Contributes to issue CURA-1013. --- .../VersionUpgrade21to22/VersionUpgrade21to22.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py b/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py index 611a290633..a871f969a5 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py @@ -34,7 +34,14 @@ _setting_name_translations = { "skirt_line_width": "skirt_brim_line_width", "skirt_minimal_length": "skirt_brim_minimal_length", "skirt_speed": "skirt_brim_speed", - "speed_support_lines": "speed_support_infill" + "speed_support_lines": "speed_support_infill", + "speed_support_roof": "speed_support_interface", + "support_roof_density": "support_interface_density", + "support_roof_enable": "support_interface_enable", + "support_roof_extruder_nr": "support_interface_extruder_nr", + "support_roof_line_distance": "support_interface_line_distance", + "support_roof_line_width": "support_interface_line_width", + "support_roof_pattern": "support_interface_pattern" } ## How to translate variants of specific machines from the old version to the From a9ed562a5886f47615c84b6e76f77f3ff87f6ac6 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 1 Aug 2016 15:21:12 +0200 Subject: [PATCH 087/228] Allow machine actions to reference the dialog they are shown in This way they can respond to the onAccepted and onRejected actions of the dialog Contributes to CURA-2019 --- resources/qml/MachineAction.qml | 4 ++++ resources/qml/Preferences/MachinesPage.qml | 1 + 2 files changed, 5 insertions(+) diff --git a/resources/qml/MachineAction.qml b/resources/qml/MachineAction.qml index 59fb3946a3..2c43f9f96d 100644 --- a/resources/qml/MachineAction.qml +++ b/resources/qml/MachineAction.qml @@ -3,6 +3,10 @@ import QtQuick 2.2 Item { id: contentItem + + // Point to the dialog containing the displayItem + property var dialog + // Connect the finished property change to completed signal. property var finished: manager.finished onFinishedChanged: if(manager.finished) {completed()} diff --git a/resources/qml/Preferences/MachinesPage.qml b/resources/qml/Preferences/MachinesPage.qml index b057a33d52..e5b04d1ee9 100644 --- a/resources/qml/Preferences/MachinesPage.qml +++ b/resources/qml/Preferences/MachinesPage.qml @@ -106,6 +106,7 @@ UM.ManagementPage { contents = content; content.onCompleted.connect(hide) + content.dialog = actionDialog } rightButtons: Button { From 0c8d0a11a90feb87e7bc7f8112d9ff76fb5a410c Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 1 Aug 2016 15:22:21 +0200 Subject: [PATCH 088/228] Fix a couple of qml casting errors --- resources/qml/AddMachineDialog.qml | 3 ++- resources/qml/Cura.qml | 1 + resources/qml/Preferences/MachinesPage.qml | 6 +++--- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/resources/qml/AddMachineDialog.qml b/resources/qml/AddMachineDialog.qml index 350435d1ca..8d0ff9af02 100644 --- a/resources/qml/AddMachineDialog.qml +++ b/resources/qml/AddMachineDialog.qml @@ -16,6 +16,7 @@ UM.Dialog { id: base title: catalog.i18nc("@title:window", "Add Printer") + property bool firstRun: false property string preferredCategory: "Ultimaker" property string activeCategory: preferredCategory @@ -32,7 +33,7 @@ UM.Dialog signal machineAdded(string id) function getMachineName() { - var name = machineList.model.get(machineList.currentIndex).name + var name = machineList.model.get(machineList.currentIndex) != undefined ? machineList.model.get(machineList.currentIndex).name : "" return name } diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index ae72353e0e..5f45a062b8 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -677,6 +677,7 @@ UM.MainWindow id: addMachineDialog onMachineAdded: { + machineActionsWizard.firstRun = addMachineDialog.firstRun machineActionsWizard.start(id) } } diff --git a/resources/qml/Preferences/MachinesPage.qml b/resources/qml/Preferences/MachinesPage.qml index e5b04d1ee9..e48448ae4c 100644 --- a/resources/qml/Preferences/MachinesPage.qml +++ b/resources/qml/Preferences/MachinesPage.qml @@ -83,7 +83,7 @@ UM.ManagementPage Repeater { id: machineActionRepeater - model: Cura.MachineActionManager.getSupportedActions(Cura.MachineManager.getDefinitionByMachineId(base.currentItem.id)) + model: base.currentItem ? Cura.MachineActionManager.getSupportedActions(Cura.MachineManager.getDefinitionByMachineId(base.currentItem.id)) : null Button { @@ -125,8 +125,8 @@ UM.ManagementPage spacing: UM.Theme.getSize("default_margin").height - Label { text: catalog.i18nc("@label", "Type") } - Label { text: base.currentItem ? base.currentItem.metadata.definition_name : "" } + Label { text: catalog.i18nc("@label", "Type"); visible: base.currentItem } + Label { text: (base.currentItem && base.currentItem.metadata) ? base.currentItem.metadata.definition_name : "" } } UM.I18nCatalog { id: catalog; name: "uranium"; } From 1808c44d026082a9db5a3212c3fbe937fcd8edb8 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 1 Aug 2016 15:36:43 +0200 Subject: [PATCH 089/228] Change behavior of the "Close" button on a machineaction dialog Pressing close now "rejects" the action, similar to pressing "cancel" in the add machine wizard (instead of accepting, like pressing "ok"). CURA-2019 --- resources/qml/Preferences/MachinesPage.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Preferences/MachinesPage.qml b/resources/qml/Preferences/MachinesPage.qml index e48448ae4c..0baa0c0f90 100644 --- a/resources/qml/Preferences/MachinesPage.qml +++ b/resources/qml/Preferences/MachinesPage.qml @@ -112,7 +112,7 @@ UM.ManagementPage { text: catalog.i18nc("@action:button", "Close") iconName: "dialog-close" - onClicked: actionDialog.accept() + onClicked: actionDialog.reject() } } From 7b873fc397ef33d8a1b5a12d859eba9aadb9a331 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 1 Aug 2016 16:05:57 +0200 Subject: [PATCH 090/228] Fix renaming profiles CURA-2017 --- cura/Settings/MachineManager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 9e09ad83be..ce60c6d3a6 100644 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -553,7 +553,7 @@ class MachineManager(QObject): return "" @pyqtSlot(str, str) - def renameQualityContainer(self, container_id, nbalew_name): + def renameQualityContainer(self, container_id, new_name): containers = UM.Settings.ContainerRegistry.getInstance().findInstanceContainers(id = container_id, type = "quality") if containers: new_name = self._createUniqueName("quality", containers[0].getName(), new_name, From e7452cd64428f9f9c50b32ea3bc6129443e44e9e Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 1 Aug 2016 16:35:48 +0200 Subject: [PATCH 091/228] Make speed_layer_0 and cousin settings not per-mesh Fixed up some of the settable_per stuff. Contributes to issue CURA-1507. --- resources/definitions/fdmprinter.def.json | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 2864093b7d..2b37d88eac 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1545,7 +1545,8 @@ "minimum_value": "0.1", "maximum_value": "299792458000", "maximum_value_warning": "300", - "settable_per_extruder": true + "settable_per_extruder": true, + "settable_per_mesh": false } } }, @@ -1775,7 +1776,8 @@ "minimum_value_warning": "100", "maximum_value_warning": "10000", "enabled": "acceleration_enabled", - "settable_per_extruder": true + "settable_per_extruder": true, + "settable_per_mesh": false } } }, @@ -1993,7 +1995,8 @@ "minimum_value_warning": "5", "maximum_value_warning": "50", "enabled": "jerk_enabled", - "settable_per_extruder": true + "settable_per_extruder": true, + "settable_per_mesh": false } } }, From 68fc9af4c2b4b0e1f4eab987e685dfa5a9904174 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 1 Aug 2016 16:38:31 +0200 Subject: [PATCH 092/228] Fix removing extruder stacks and extruder user profile CURA-1898 broke fix for CURA-1896 --- cura/Settings/MachineManager.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index ce60c6d3a6..6a180593c5 100644 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -744,10 +744,7 @@ class MachineManager(QObject): # If the machine that is being removed is the currently active machine, set another machine as the active machine. activate_new_machine = (self._global_container_stack and self._global_container_stack.getId() == machine_id) - stacks = UM.Settings.ContainerRegistry.getInstance().findContainerStacks(id = machine_id) - if not stacks: - return - ExtruderManager.getInstance().removeMachineExtruders(stacks[0].getBottom().getId()) + ExtruderManager.getInstance().removeMachineExtruders(machine_id) containers = UM.Settings.ContainerRegistry.getInstance().findInstanceContainers(type = "user", machine = machine_id) for container in containers: From 0d9d4b88ce0d419d150ea19a20766d645fc62ca7 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 1 Aug 2016 16:56:56 +0200 Subject: [PATCH 093/228] Hide "Type" label when no printer is selected on the manager printers page --- resources/qml/Preferences/MachinesPage.qml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/resources/qml/Preferences/MachinesPage.qml b/resources/qml/Preferences/MachinesPage.qml index 0baa0c0f90..88323a2e26 100644 --- a/resources/qml/Preferences/MachinesPage.qml +++ b/resources/qml/Preferences/MachinesPage.qml @@ -125,8 +125,14 @@ UM.ManagementPage spacing: UM.Theme.getSize("default_margin").height - Label { text: catalog.i18nc("@label", "Type"); visible: base.currentItem } - Label { text: (base.currentItem && base.currentItem.metadata) ? base.currentItem.metadata.definition_name : "" } + Label + { + text: catalog.i18nc("@label", "Type") + visible: base.currentItem && base.currentItem.metadata + } + Label { + text: (base.currentItem && base.currentItem.metadata) ? base.currentItem.metadata.definition_name : "" + } } UM.I18nCatalog { id: catalog; name: "uranium"; } From b765855ba5d3bb96d7113e485e34c4e8b8f3cd49 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Wed, 25 May 2016 10:55:02 +0200 Subject: [PATCH 094/228] Show "ghosts" for all objects on the buildplate in layerview CURA-1601 --- plugins/LayerView/LayerView.py | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/plugins/LayerView/LayerView.py b/plugins/LayerView/LayerView.py index f60d492ec7..7c7246361e 100644 --- a/plugins/LayerView/LayerView.py +++ b/plugins/LayerView/LayerView.py @@ -33,7 +33,7 @@ class LayerView(View): def __init__(self): super().__init__() self._shader = None - self._selection_shader = None + self._ghost_shader = None self._num_layers = 0 self._layer_percentage = 0 # what percentage of layers need to be shown (Slider gives value between 0 - 100) self._proxy = LayerViewProxy.LayerViewProxy() @@ -84,10 +84,9 @@ class LayerView(View): scene = self.getController().getScene() renderer = self.getRenderer() - if not self._selection_shader: - self._selection_shader = OpenGL.getInstance().createShaderProgram(Resources.getPath(Resources.Shaders, "color.shader")) - self._selection_shader.setUniformValue("u_color", Color(32, 32, 32, 128)) - + if not self._ghost_shader: + self._ghost_shader = OpenGL.getInstance().createShaderProgram(Resources.getPath(Resources.Shaders, "color.shader")) + self._ghost_shader.setUniformValue("u_color", Color(32, 32, 32, 96)) for node in DepthFirstIterator(scene.getRoot()): # We do not want to render ConvexHullNode as it conflicts with the bottom layers. # However, it is somewhat relevant when the node is selected, so do render it then. @@ -96,8 +95,7 @@ class LayerView(View): if not node.render(renderer): if node.getMeshData() and node.isVisible(): - if Selection.isSelected(node): - renderer.queueNode(node, transparent = True, shader = self._selection_shader) + renderer.queueNode(node, transparent = True, shader = self._ghost_shader) layer_data = node.callDecoration("getLayerData") if not layer_data: continue @@ -113,13 +111,13 @@ class LayerView(View): end += counts # This uses glDrawRangeElements internally to only draw a certain range of lines. - renderer.queueNode(node, mesh = layer_data, mode = RenderBatch.RenderMode.Lines, range = (start, end)) + renderer.queueNode(node, mesh = layer_data, mode = RenderBatch.RenderMode.Lines, overlay = True, range = (start, end)) if self._current_layer_mesh: - renderer.queueNode(node, mesh = self._current_layer_mesh) + renderer.queueNode(node, mesh = self._current_layer_mesh, overlay = True) if self._current_layer_jumps: - renderer.queueNode(node, mesh = self._current_layer_jumps) + renderer.queueNode(node, mesh = self._current_layer_jumps, overlay = True) def setLayer(self, value): if self._current_layer_num != value: From 42fc25ab09abd044fcd3a12e87586b4edb286460 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 1 Aug 2016 19:17:08 +0200 Subject: [PATCH 095/228] Move sorting of DefinitionContainerModel out of qml Add printer dialog now has sections by a configurable metadata property. A prefered section is set to always show on top. Add weights to the Ultimaker printer definitions to create a sensible list (newest on top). CURA-1593 --- resources/definitions/ultimaker2.def.json | 1 + .../definitions/ultimaker2_extended.def.json | 1 + .../ultimaker2_extended_plus.def.json | 1 + resources/definitions/ultimaker2_go.def.json | 1 + .../definitions/ultimaker2_plus.def.json | 1 + .../definitions/ultimaker_original.def.json | 1 + .../ultimaker_original_plus.def.json | 1 + resources/qml/AddMachineDialog.qml | 43 ++++++------------- 8 files changed, 20 insertions(+), 30 deletions(-) diff --git a/resources/definitions/ultimaker2.def.json b/resources/definitions/ultimaker2.def.json index d8e73a7e14..3b246ba682 100644 --- a/resources/definitions/ultimaker2.def.json +++ b/resources/definitions/ultimaker2.def.json @@ -8,6 +8,7 @@ "author": "Ultimaker", "manufacturer": "Ultimaker", "category": "Ultimaker", + "weight": 3, "file_formats": "text/x-gcode", "icon": "icon_ultimaker2.png", "platform": "ultimaker2_platform.obj", diff --git a/resources/definitions/ultimaker2_extended.def.json b/resources/definitions/ultimaker2_extended.def.json index fb443365f2..889046694c 100644 --- a/resources/definitions/ultimaker2_extended.def.json +++ b/resources/definitions/ultimaker2_extended.def.json @@ -7,6 +7,7 @@ "author": "Ultimaker", "manufacturer": "Ultimaker", "category": "Ultimaker", + "weight": 3, "file_formats": "text/x-gcode", "icon": "icon_ultimaker2.png", "platform": "ultimaker2_platform.obj", diff --git a/resources/definitions/ultimaker2_extended_plus.def.json b/resources/definitions/ultimaker2_extended_plus.def.json index f4190be83d..ea97033878 100644 --- a/resources/definitions/ultimaker2_extended_plus.def.json +++ b/resources/definitions/ultimaker2_extended_plus.def.json @@ -7,6 +7,7 @@ "author": "Ultimaker", "manufacturer": "Ultimaker", "category": "Ultimaker", + "weight": 2, "file_formats": "text/x-gcode", "platform": "ultimaker2_platform.obj", "platform_texture": "Ultimaker2ExtendedPlusbackplate.png", diff --git a/resources/definitions/ultimaker2_go.def.json b/resources/definitions/ultimaker2_go.def.json index 27b179eef9..107d413296 100644 --- a/resources/definitions/ultimaker2_go.def.json +++ b/resources/definitions/ultimaker2_go.def.json @@ -7,6 +7,7 @@ "author": "Ultimaker", "manufacturer": "Ultimaker", "category": "Ultimaker", + "weight": 3, "file_formats": "text/x-gcode", "icon": "icon_ultimaker2.png", "platform": "ultimaker2go_platform.obj", diff --git a/resources/definitions/ultimaker2_plus.def.json b/resources/definitions/ultimaker2_plus.def.json index d5a7c9f4f1..4c7279b178 100644 --- a/resources/definitions/ultimaker2_plus.def.json +++ b/resources/definitions/ultimaker2_plus.def.json @@ -7,6 +7,7 @@ "author": "Ultimaker", "manufacturer": "Ultimaker", "category": "Ultimaker", + "weight": 1, "file_formats": "text/x-gcode", "platform": "ultimaker2_platform.obj", "platform_texture": "Ultimaker2Plusbackplate.png", diff --git a/resources/definitions/ultimaker_original.def.json b/resources/definitions/ultimaker_original.def.json index 0815aeee02..3dd4766afa 100644 --- a/resources/definitions/ultimaker_original.def.json +++ b/resources/definitions/ultimaker_original.def.json @@ -8,6 +8,7 @@ "author": "Ultimaker", "manufacturer": "Ultimaker", "category": "Ultimaker", + "weight": 4, "file_formats": "text/x-gcode", "icon": "icon_ultimaker.png", "platform": "ultimaker_platform.stl", diff --git a/resources/definitions/ultimaker_original_plus.def.json b/resources/definitions/ultimaker_original_plus.def.json index 4d39a39a78..4f787896d0 100644 --- a/resources/definitions/ultimaker_original_plus.def.json +++ b/resources/definitions/ultimaker_original_plus.def.json @@ -7,6 +7,7 @@ "author": "Ultimaker", "manufacturer": "Ultimaker", "category": "Ultimaker", + "weight": 4, "file_formats": "text/x-gcode", "icon": "icon_ultimaker.png", "platform": "ultimaker2_platform.obj", diff --git a/resources/qml/AddMachineDialog.qml b/resources/qml/AddMachineDialog.qml index 8d0ff9af02..a2b7c1586f 100644 --- a/resources/qml/AddMachineDialog.qml +++ b/resources/qml/AddMachineDialog.qml @@ -33,7 +33,7 @@ UM.Dialog signal machineAdded(string id) function getMachineName() { - var name = machineList.model.get(machineList.currentIndex) != undefined ? machineList.model.get(machineList.currentIndex).name : "" + var name = machineList.model.getItem(machineList.currentIndex) != undefined ? machineList.model.getItem(machineList.currentIndex).name : "" return name } @@ -53,27 +53,15 @@ UM.Dialog { id: machineList - model: ListModel + model: UM.DefinitionContainersModel { - id: sortedMachineDefinitionsModel - Component.onCompleted: { - // DefinitionContainersModel is sorted alphabetically, but we want the preferred - // category on top so we create a custom-sorted ListModel from it. - var items = []; - for(var i in machineDefinitionsModel.items) { - var item = machineDefinitionsModel.getItem(i); - if (item["category"] == preferredCategory) - sortedMachineDefinitionsModel.append(item); - else - items.push(item); - } - for(var i in items) { - sortedMachineDefinitionsModel.append(items[i]); - } - } + id: machineDefinitionsModel + filter: { "visible": true } + sectionProperty: "category" + preferredSectionValue: preferredCategory } - section.property: "category" + section.property: "section" section.delegate: Button { text: section @@ -112,11 +100,11 @@ UM.Dialog onClicked: { base.activeCategory = section; - if (machineList.model.get(machineList.currentIndex).category != section) { - // Find the first machine from this category + if (machineList.model.getItem(machineList.currentIndex).section != section) { + // Find the first machine from this section for(var i = 0; i < sortedMachineDefinitionsModel.count; i++) { - var item = sortedMachineDefinitionsModel.get(i); - if (item.category == section) { + var item = sortedMachineDefinitionsModel.getItem(i); + if (item.section == section) { machineList.currentIndex = i; break; } @@ -151,7 +139,7 @@ UM.Dialog states: State { name: "collapsed"; - when: base.activeCategory != model.category; + when: base.activeCategory != model.section; PropertyChanges { target: machineButton; opacity: 0; height: 0; } } @@ -198,7 +186,7 @@ UM.Dialog onClicked: { base.visible = false - var item = machineList.model.get(machineList.currentIndex); + var item = machineList.model.getItem(machineList.currentIndex); Cura.MachineManager.addMachine(machineName.text, item.id) base.machineAdded(item.id) // Emit signal that the user added a machine. } @@ -211,11 +199,6 @@ UM.Dialog id: catalog; name: "cura"; } - UM.DefinitionContainersModel - { - id: machineDefinitionsModel - filter: { "visible": true } - } SystemPalette { id: palette } ExclusiveGroup { id: printerGroup; } } From fb1b199c6a230c3d7b13a9e9bfbe9d276e02db97 Mon Sep 17 00:00:00 2001 From: Thomas Karl Pietrowski Date: Tue, 2 Aug 2016 08:47:48 +0200 Subject: [PATCH 096/228] Moving self.executableName into __init__ as executable_name --- plugins/CuraEngineBackend/CuraEngineBackend.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index d9b973cab4..50694b4514 100644 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -40,25 +40,24 @@ class CuraEngineBackend(Backend): # This registers all the signal listeners and prepares for communication # with the back-end in general. - executableName = "CuraEngine" - def __init__(self): super().__init__() # Find out where the engine is located, and how it is called. # This depends on how Cura is packaged and which OS we are running on. + executable_name = "CuraEngine" default_engine_location = None - if os.path.exists(os.path.join(Application.getInstallPrefix(), "bin", self.executableName)): - default_engine_location = os.path.join(Application.getInstallPrefix(), "bin", self.executableName) + if os.path.exists(os.path.join(Application.getInstallPrefix(), "bin", executable_name)): + default_engine_location = os.path.join(Application.getInstallPrefix(), "bin", executable_name) if hasattr(sys, "frozen"): - default_engine_location = os.path.join(os.path.dirname(os.path.abspath(sys.executable)), self.executableName) + default_engine_location = os.path.join(os.path.dirname(os.path.abspath(sys.executable)), executable_name) if Platform.isWindows(): default_engine_location += ".exe" if Platform.isLinux() and not default_engine_location: if not os.getenv('PATH'): raise OSError("There is something wrong with your Linux installation.") for pathdir in os.getenv('PATH').split(os.pathsep): - execpath = os.path.join(pathdir, self.executableName) + execpath = os.path.join(pathdir, executable_name) if os.path.exists(execpath): default_engine_location = execpath break From 6b61fdbe5cdeb4501b6f3f654d83a9b55252a60f Mon Sep 17 00:00:00 2001 From: Thomas Karl Pietrowski Date: Tue, 2 Aug 2016 08:49:09 +0200 Subject: [PATCH 097/228] Using double quotes of course --- plugins/CuraEngineBackend/CuraEngineBackend.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 50694b4514..ba6f6bf7b7 100644 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -54,7 +54,7 @@ class CuraEngineBackend(Backend): if Platform.isWindows(): default_engine_location += ".exe" if Platform.isLinux() and not default_engine_location: - if not os.getenv('PATH'): + if not os.getenv("PATH"): raise OSError("There is something wrong with your Linux installation.") for pathdir in os.getenv('PATH').split(os.pathsep): execpath = os.path.join(pathdir, executable_name) From 32880a093e3acc42cf4b028c5d3985bb376a3e7b Mon Sep 17 00:00:00 2001 From: Thomas Karl Pietrowski Date: Tue, 2 Aug 2016 09:37:17 +0200 Subject: [PATCH 098/228] And again double quotes.. --- plugins/CuraEngineBackend/CuraEngineBackend.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index ba6f6bf7b7..82ee3b8c84 100644 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -56,7 +56,7 @@ class CuraEngineBackend(Backend): if Platform.isLinux() and not default_engine_location: if not os.getenv("PATH"): raise OSError("There is something wrong with your Linux installation.") - for pathdir in os.getenv('PATH').split(os.pathsep): + for pathdir in os.getenv("PATH").split(os.pathsep): execpath = os.path.join(pathdir, executable_name) if os.path.exists(execpath): default_engine_location = execpath From a2fa8246b63829891c74dd46184d92070f1f2bdc Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Tue, 2 Aug 2016 09:50:42 +0200 Subject: [PATCH 099/228] Disable UM2 material-related settings depending on gcode flavor... ...instead of hardcoding them as disabled. The fdmprinter inheritance-functions for "enabled" are combined with a check for the flavor. This way it will be easier to switch an UM2 to a functional Reprap flavor in a variant. CURA-580 --- resources/definitions/ultimaker2.def.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/resources/definitions/ultimaker2.def.json b/resources/definitions/ultimaker2.def.json index 3b246ba682..9985dea764 100644 --- a/resources/definitions/ultimaker2.def.json +++ b/resources/definitions/ultimaker2.def.json @@ -83,10 +83,10 @@ "default_value": 45 }, "material_print_temperature": { - "enabled": "False" + "enabled": "not (material_flow_dependent_temperature) and machine_gcode_flavor != \"UltiGCode\"" }, "material_bed_temperature": { - "enabled": "False" + "enabled": "machine_heated_bed and machine_gcode_flavor != \"UltiGCode\"" }, "machine_max_feedrate_x": { "default_value": 300 @@ -104,22 +104,22 @@ "default_value": 3000 }, "material_diameter": { - "enabled": "False" + "enabled": "machine_gcode_flavor != \"UltiGCode\"" }, "material_flow": { - "enabled": "False" + "enabled": "machine_gcode_flavor != \"UltiGCode\"" }, "retraction_amount": { - "enabled": "False" + "enabled": "retraction_enable and machine_gcode_flavor != \"UltiGCode\"" }, "retraction_speed": { - "enabled": "False" + "enabled": "retraction_enable and machine_gcode_flavor != \"UltiGCode\"" }, "retraction_retract_speed": { - "enabled": "False" + "enabled": "retraction_enable and machine_gcode_flavor != \"UltiGCode\"" }, "retraction_prime_speed": { - "enabled": "False" + "enabled": "retraction_enable and machine_gcode_flavor != \"UltiGCode\"" } } } From 7d65e0d62bc4c1750f7e6490fc0657fa9627fc21 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Tue, 2 Aug 2016 09:51:58 +0200 Subject: [PATCH 100/228] Add title to machine action window --- resources/qml/Preferences/MachinesPage.qml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/resources/qml/Preferences/MachinesPage.qml b/resources/qml/Preferences/MachinesPage.qml index 88323a2e26..c149185808 100644 --- a/resources/qml/Preferences/MachinesPage.qml +++ b/resources/qml/Preferences/MachinesPage.qml @@ -87,12 +87,13 @@ UM.ManagementPage Button { - text: machineActionRepeater.model[index].label; + text: machineActionRepeater.model[index].label onClicked: { - actionDialog.content = machineActionRepeater.model[index].displayItem - machineActionRepeater.model[index].displayItem.reset() - actionDialog.show() + actionDialog.content = machineActionRepeater.model[index].displayItem; + machineActionRepeater.model[index].displayItem.reset(); + actionDialog.title = machineActionRepeater.model[index].label; + actionDialog.show(); } } } From 9773a16bc61e34863aed2c68025bbf3310186ba2 Mon Sep 17 00:00:00 2001 From: Arjen Hiemstra Date: Tue, 2 Aug 2016 11:33:23 +0200 Subject: [PATCH 101/228] Properly set active extruder when deepcopying SettingOverrideDecorator Fixes CURA-2022 --- cura/Settings/SettingOverrideDecorator.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cura/Settings/SettingOverrideDecorator.py b/cura/Settings/SettingOverrideDecorator.py index f1e34a939a..183d84d2f4 100644 --- a/cura/Settings/SettingOverrideDecorator.py +++ b/cura/Settings/SettingOverrideDecorator.py @@ -37,10 +37,15 @@ class SettingOverrideDecorator(SceneNodeDecorator): self._updateNextStack() def __deepcopy__(self, memo): + print("deepcopy settingoverridedecorator") ## Create a fresh decorator object deep_copy = SettingOverrideDecorator() ## Copy the instance deep_copy._instance = copy.deepcopy(self._instance, memo) + + # Properly set the right extruder on the copy + deep_copy.setActiveExtruder(self._extruder_stack) + ## Set the copied instance as the first (and only) instance container of the stack. deep_copy._stack.replaceContainer(0, deep_copy._instance) return deep_copy From 186cd2034c76d8b080dc6b6e16784556d4a2cf12 Mon Sep 17 00:00:00 2001 From: Arjen Hiemstra Date: Tue, 2 Aug 2016 11:42:04 +0200 Subject: [PATCH 102/228] Remove forced setting of extruder 0 on component complete This would force the object's extruder to 0 every time the per object panel would update, causing the extruder to be reset. Fixes CURA-2026 --- plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml index 482fb73b0f..75cf522c14 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml +++ b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml @@ -127,11 +127,7 @@ Item { } } } - Component.onCompleted: - { - // Ensure primary extruder is set as active - UM.ActiveTool.setProperty("SelectedActiveExtruder", extruders_model.getItem(0).id) - } + onActivated: UM.ActiveTool.setProperty("SelectedActiveExtruder", extruders_model.getItem(index).id); onModelChanged: updateCurrentIndex(); From dc3d22f148f6c8b1200134f17292922df82879f7 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Tue, 2 Aug 2016 11:48:47 +0200 Subject: [PATCH 103/228] JSON: disabled flow temp again (CURA-1174) --- resources/definitions/fdmprinter.def.json | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 2b37d88eac..b8ac173306 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1066,6 +1066,7 @@ "unit": "[[mm³,°C]]", "type": "str", "default_value": "[[3.5,200],[7.0,240]]", + "enabled": "False", "comments": "old enabled function: material_flow_dependent_temperature", "settable_per_mesh": false, "settable_per_extruder": true From 0f9b989ae86fa319269a715d960b533f2a51c09d Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Tue, 2 Aug 2016 12:30:22 +0200 Subject: [PATCH 104/228] Revert "Show "ghosts" for all objects on the buildplate in layerview" This reverts commit b765855ba5d3bb96d7113e485e34c4e8b8f3cd49. --- plugins/LayerView/LayerView.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/plugins/LayerView/LayerView.py b/plugins/LayerView/LayerView.py index 7c7246361e..f60d492ec7 100644 --- a/plugins/LayerView/LayerView.py +++ b/plugins/LayerView/LayerView.py @@ -33,7 +33,7 @@ class LayerView(View): def __init__(self): super().__init__() self._shader = None - self._ghost_shader = None + self._selection_shader = None self._num_layers = 0 self._layer_percentage = 0 # what percentage of layers need to be shown (Slider gives value between 0 - 100) self._proxy = LayerViewProxy.LayerViewProxy() @@ -84,9 +84,10 @@ class LayerView(View): scene = self.getController().getScene() renderer = self.getRenderer() - if not self._ghost_shader: - self._ghost_shader = OpenGL.getInstance().createShaderProgram(Resources.getPath(Resources.Shaders, "color.shader")) - self._ghost_shader.setUniformValue("u_color", Color(32, 32, 32, 96)) + if not self._selection_shader: + self._selection_shader = OpenGL.getInstance().createShaderProgram(Resources.getPath(Resources.Shaders, "color.shader")) + self._selection_shader.setUniformValue("u_color", Color(32, 32, 32, 128)) + for node in DepthFirstIterator(scene.getRoot()): # We do not want to render ConvexHullNode as it conflicts with the bottom layers. # However, it is somewhat relevant when the node is selected, so do render it then. @@ -95,7 +96,8 @@ class LayerView(View): if not node.render(renderer): if node.getMeshData() and node.isVisible(): - renderer.queueNode(node, transparent = True, shader = self._ghost_shader) + if Selection.isSelected(node): + renderer.queueNode(node, transparent = True, shader = self._selection_shader) layer_data = node.callDecoration("getLayerData") if not layer_data: continue @@ -111,13 +113,13 @@ class LayerView(View): end += counts # This uses glDrawRangeElements internally to only draw a certain range of lines. - renderer.queueNode(node, mesh = layer_data, mode = RenderBatch.RenderMode.Lines, overlay = True, range = (start, end)) + renderer.queueNode(node, mesh = layer_data, mode = RenderBatch.RenderMode.Lines, range = (start, end)) if self._current_layer_mesh: - renderer.queueNode(node, mesh = self._current_layer_mesh, overlay = True) + renderer.queueNode(node, mesh = self._current_layer_mesh) if self._current_layer_jumps: - renderer.queueNode(node, mesh = self._current_layer_jumps, overlay = True) + renderer.queueNode(node, mesh = self._current_layer_jumps) def setLayer(self, value): if self._current_layer_num != value: From 22b6ab9c42ab24e8095dfd0e331c916af7fa554a Mon Sep 17 00:00:00 2001 From: Arjen Hiemstra Date: Tue, 2 Aug 2016 13:53:31 +0200 Subject: [PATCH 105/228] Set the extruder stack to a proper default when creating SettingOverrideDecorator Turns out it otherwise fails to send the right data. Fixes CURA-2032 --- cura/Settings/SettingOverrideDecorator.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/cura/Settings/SettingOverrideDecorator.py b/cura/Settings/SettingOverrideDecorator.py index 183d84d2f4..674c61b87c 100644 --- a/cura/Settings/SettingOverrideDecorator.py +++ b/cura/Settings/SettingOverrideDecorator.py @@ -10,6 +10,8 @@ from UM.Settings.InstanceContainer import InstanceContainer from UM.Settings.ContainerRegistry import ContainerRegistry import UM.Logger +import cura.Settings + from UM.Application import Application ## A decorator that adds a container stack to a Node. This stack should be queried for all settings regarding @@ -26,7 +28,11 @@ class SettingOverrideDecorator(SceneNodeDecorator): self._stack.setDirty(False) # This stack does not need to be saved. self._instance = InstanceContainer(container_id = "SettingOverrideInstanceContainer") self._stack.addContainer(self._instance) - self._extruder_stack = None #Stack upon which our stack is based. + + if cura.Settings.ExtruderManager.getInstance().extruderCount > 1: + self._extruder_stack = cura.Settings.ExtruderManager.getInstance().activeExtruderStackId + else: + self._extruder_stack = None self._stack.propertyChanged.connect(self._onSettingChanged) @@ -66,7 +72,11 @@ class SettingOverrideDecorator(SceneNodeDecorator): if self._extruder_stack: extruder_stack = ContainerRegistry.getInstance().findContainerStacks(id = self._extruder_stack) if extruder_stack: - old_extruder_stack_id = self._stack.getNextStack().getId() + if self._stack.getNextStack(): + old_extruder_stack_id = self._stack.getNextStack().getId() + else: + old_extruder_stack_id = "" + self._stack.setNextStack(extruder_stack[0]) if self._stack.getNextStack().getId() != old_extruder_stack_id: #Only reslice if the extruder changed. Application.getInstance().getBackend().forceSlice() From b97b694f414029c5d1ae2cc629480624b090e20f Mon Sep 17 00:00:00 2001 From: Arjen Hiemstra Date: Tue, 2 Aug 2016 13:57:55 +0200 Subject: [PATCH 106/228] Force recreating the socket when using external-backend This may recreate the socket with a new port number but at least it recreates the socket now. Partially fixes CURA-1877 --- plugins/CuraEngineBackend/CuraEngineBackend.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index a822512218..910705df42 100644 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -181,6 +181,11 @@ class CuraEngineBackend(Backend): self.slicingCancelled.emit() self.processingProgress.emit(0) Logger.log("d", "Attempting to kill the engine process") + + if Application.getInstance().getCommandLineOption("external-backend", False): + self._createSocket() + return + if self._process is not None: Logger.log("d", "Killing engine process") try: From 4f9fab94188f1597f6505eb03811de4f8a6bfbec Mon Sep 17 00:00:00 2001 From: Arjen Hiemstra Date: Tue, 2 Aug 2016 14:49:57 +0200 Subject: [PATCH 107/228] Set the right default extruder for the main property provider Fixes CURA-2024 --- resources/qml/Settings/SettingView.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index 009dbf09a9..978e2dcaed 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -125,7 +125,7 @@ ScrollView { id: provider - containerStackId: delegate.stackId + containerStackId: Cura.MachineManager.activeMachineId key: model.key ? model.key : "" watchedProperties: [ "value", "enabled", "state", "validationState", "settable_per_extruder" ] storeIndex: 0 From 0f1c59c92599772b739a0e74f94150508ac208a1 Mon Sep 17 00:00:00 2001 From: Arjen Hiemstra Date: Tue, 2 Aug 2016 15:20:03 +0200 Subject: [PATCH 108/228] Properly catch when either extruder or global quality is not properly set Cornercase, but it avoids bubbling odd error messages to the UI. Fixes CURA-1997 --- plugins/GCodeWriter/GCodeWriter.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/plugins/GCodeWriter/GCodeWriter.py b/plugins/GCodeWriter/GCodeWriter.py index 8e3be15ffe..c2a932b68c 100644 --- a/plugins/GCodeWriter/GCodeWriter.py +++ b/plugins/GCodeWriter/GCodeWriter.py @@ -90,12 +90,20 @@ class GCodeWriter(MeshWriter): prefix_length = len(prefix) container_with_profile = stack.findContainer({"type": "quality"}) + if not container_with_profile: + Logger.log("e", "No valid quality profile found, not writing settings to GCode!") + return "" + flat_global_container = self._createFlattenedContainerInstance(stack.getTop(),container_with_profile) serialized = flat_global_container.serialize() data = {"global_quality": serialized} for extruder in ExtruderManager.getInstance().getMachineExtruders(stack.getId()): extruder_quality = extruder.findContainer({"type": "quality"}) + if not extruder_quality: + Logger.log("w", "No extruder quality profile found, not writing quality for extruder %s to file!", extruder.getId()) + continue + flat_extruder_quality = self._createFlattenedContainerInstance(extruder.getTop(), extruder_quality) extruder_serialized = flat_extruder_quality.serialize() From ab843b8187665e6d853fe671797a5ae13ba84ede Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Tue, 2 Aug 2016 15:57:01 +0200 Subject: [PATCH 109/228] Reset qml component when resetting a Machine Action Contributes to CURA-2019 and fixes CURA-1978 --- cura/MachineAction.py | 1 + 1 file changed, 1 insertion(+) diff --git a/cura/MachineAction.py b/cura/MachineAction.py index 6a4df0fce1..b9ff938303 100644 --- a/cura/MachineAction.py +++ b/cura/MachineAction.py @@ -44,6 +44,7 @@ class MachineAction(QObject, PluginObject): # /sa _reset @pyqtSlot() def reset(self): + self._component = None self._finished = False self._reset() From 95b06f317ae3817c7699dc73842780b61c84d493 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Tue, 2 Aug 2016 16:13:17 +0200 Subject: [PATCH 110/228] Fix "create" button on profiles page CURA-2036 --- resources/qml/Preferences/ProfilesPage.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Preferences/ProfilesPage.qml b/resources/qml/Preferences/ProfilesPage.qml index 119a16facc..c090a8468d 100644 --- a/resources/qml/Preferences/ProfilesPage.qml +++ b/resources/qml/Preferences/ProfilesPage.qml @@ -75,7 +75,7 @@ UM.ManagementPage onClicked: { var selectedContainer; - if (objectList.currentItem.id == Cura.MachineManager.activeQualityId) { + if (base.currentItem.id == Cura.MachineManager.activeQualityId) { selectedContainer = Cura.MachineManager.newQualityContainerFromQualityAndUser(); } else { selectedContainer = Cura.MachineManager.duplicateContainer(base.currentItem.id); From 5bd3d83c9e31debea3a36ccf7756a9ed02b97650 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 2 Aug 2016 14:21:42 +0200 Subject: [PATCH 111/228] Fix typos in documentation Contributes to issue CURA-2011. --- .../PerObjectSettingVisibilityHandler.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py b/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py index 181c3dea18..57864eac34 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py +++ b/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py @@ -7,8 +7,8 @@ import UM.Settings.Models from cura.Settings.SettingOverrideDecorator import SettingOverrideDecorator -## The per object setting visibility handler ensures that only setting defintions that have a matching instance Container -# are returned as visible. +## The per object setting visibility handler ensures that only setting +# definitions that have a matching instance Container are returned as visible. class PerObjectSettingVisibilityHandler(UM.Settings.Models.SettingVisibilityHandler): def __init__(self, parent = None, *args, **kwargs): super().__init__(parent = parent, *args, **kwargs) @@ -57,7 +57,7 @@ class PerObjectSettingVisibilityHandler(UM.Settings.Models.SettingVisibilityHand settings.addInstance(SettingInstance(definition, settings)) visibility_changed = True else: - Logger.log("w", "Unable to add instance (%s) to perobject visibility because we couldn't find the matching definition", item) + Logger.log("w", "Unable to add instance (%s) to per-object visibility because we couldn't find the matching definition", item) if visibility_changed: self.visibilityChanged.emit() From f568014e67860bbb16e5f521350574e2ef734898 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 2 Aug 2016 16:49:28 +0200 Subject: [PATCH 112/228] Add setting with value from support extruder stack Upon adding the setting (making it visible) it takes the setting from the support extruder stack. It doesn't update afterwards. Contributes to issue CURA-2011. --- .../PerObjectSettingVisibilityHandler.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py b/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py index 57864eac34..c50a70d950 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py +++ b/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py @@ -1,10 +1,14 @@ +# Copyright (c) 2016 Ultimaker B.V. +# Cura is released under the terms of the AGPLv3 or higher. + from PyQt5.QtCore import QObject, pyqtProperty, pyqtSignal + from UM.Application import Application from UM.Settings.SettingInstance import SettingInstance from UM.Logger import Logger - import UM.Settings.Models +from cura.Settings.ExtruderManager import ExtruderManager #To get global-inherits-stack setting values from different extruders. from cura.Settings.SettingOverrideDecorator import SettingOverrideDecorator ## The per object setting visibility handler ensures that only setting @@ -54,7 +58,13 @@ class PerObjectSettingVisibilityHandler(UM.Settings.Models.SettingVisibilityHand if not settings.getInstance(item): definition = self._stack.getSettingDefinition(item) if definition: - settings.addInstance(SettingInstance(definition, settings)) + new_instance = SettingInstance(definition, settings) + if definition.global_inherits_stack: + #Obtain the value from the correct container stack. Only once, upon adding the setting. + stack_nr = self._stack.getProperty(item, "global_inherits_stack") #Stack to get the setting from. + extruder_stack = UM.Settings.ContainerRegistry.getInstance().findContainerStacks(id = ExtruderManager.getInstance().extruderIds[stack_nr])[0] + new_instance.value = extruder_stack.getProperty(item, "value") + settings.addInstance(new_instance) visibility_changed = True else: Logger.log("w", "Unable to add instance (%s) to per-object visibility because we couldn't find the matching definition", item) From b102a6cedddd4ebbbd5567b26ed14210fe8a8fe5 Mon Sep 17 00:00:00 2001 From: Arjen Hiemstra Date: Tue, 2 Aug 2016 19:33:59 +0200 Subject: [PATCH 113/228] Expose an extruderValues() function to value functions It returns a list of values for all extruders so that things like max() work. Contributes to CURA-2009 --- cura/CuraApplication.py | 3 ++- cura/Settings/ExtruderManager.py | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 53d509b71c..79233022c6 100644 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -28,6 +28,7 @@ from cura.SetParentOperation import SetParentOperation from UM.Settings.SettingDefinition import SettingDefinition, DefinitionPropertyType from UM.Settings.ContainerRegistry import ContainerRegistry +from UM.Settings.SettingFunction import SettingFunction from UM.i18n import i18nCatalog @@ -71,7 +72,6 @@ except ImportError: CuraVersion = "master" # [CodeStyle: Reflecting imported value] CuraBuildType = "" - class CuraApplication(QtApplication): class ResourceTypes: QmlFiles = Resources.UserType + 1 @@ -100,6 +100,7 @@ class CuraApplication(QtApplication): SettingDefinition.addSupportedProperty("global_inherits_stack", DefinitionPropertyType.Function, default = "-1") SettingDefinition.addSettingType("extruder", None, str, Validator) + SettingFunction.registerOperator("extruderValues", cura.Settings.ExtruderManager.getExtruderValues) ## Add the 4 types of profiles to storage. Resources.addStorageType(self.ResourceTypes.QualityInstanceContainer, "quality") Resources.addStorageType(self.ResourceTypes.VariantInstanceContainer, "variants") diff --git a/cura/Settings/ExtruderManager.py b/cura/Settings/ExtruderManager.py index 47359a5e97..3925f67295 100644 --- a/cura/Settings/ExtruderManager.py +++ b/cura/Settings/ExtruderManager.py @@ -273,3 +273,25 @@ class ExtruderManager(QObject): global_stack = UM.Application.getInstance().getGlobalContainerStack() if global_stack and global_stack.getBottom(): self.addMachineExtruders(global_stack.getBottom(), global_stack.getId()) + + @staticmethod + def getExtruderValues(name): + global_stack = UM.Application.getInstance().getGlobalContainerStack() + + result = [] + for extruder in ExtruderManager.getInstance().getMachineExtruders(global_stack.getId()): + value = extruder.getRawProperty(name, "value", use_next = False) + + if not value: + continue + + if isinstance(value, UM.Settings.SettingFunction): + value = value(extruder) + + result.append(value) + + if not result: + result.append(global_stack.getProperty(name, "value")) + + return result + From 3c35830cb8d08e8172b9e2c3f544b3e4e4b4b3a4 Mon Sep 17 00:00:00 2001 From: Arjen Hiemstra Date: Tue, 2 Aug 2016 19:34:46 +0200 Subject: [PATCH 114/228] Expose an extruderValue() function to value functions It returns the value of a setting of a specific extruder. Contributes to CURA-2009 --- cura/CuraApplication.py | 2 ++ cura/Settings/ExtruderManager.py | 17 +++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 79233022c6..5e78aeeed1 100644 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -101,6 +101,8 @@ class CuraApplication(QtApplication): SettingDefinition.addSettingType("extruder", None, str, Validator) SettingFunction.registerOperator("extruderValues", cura.Settings.ExtruderManager.getExtruderValues) + SettingFunction.registerOperator("extruderValue", cura.Settings.ExtruderManager.getExtruderValue) + ## Add the 4 types of profiles to storage. Resources.addStorageType(self.ResourceTypes.QualityInstanceContainer, "quality") Resources.addStorageType(self.ResourceTypes.VariantInstanceContainer, "variants") diff --git a/cura/Settings/ExtruderManager.py b/cura/Settings/ExtruderManager.py index 3925f67295..641b5a8642 100644 --- a/cura/Settings/ExtruderManager.py +++ b/cura/Settings/ExtruderManager.py @@ -6,6 +6,7 @@ from PyQt5.QtCore import pyqtSignal, pyqtProperty, pyqtSlot, QObject, QVariant # import UM.Application #To get the global container stack to find the current machine. import UM.Logger import UM.Settings.ContainerRegistry #Finding containers by ID. +import UM.Settings.SettingFunction ## Manages all existing extruder stacks. @@ -92,6 +93,15 @@ class ExtruderManager(QObject): return self._extruder_trains[global_container_stack.getId()][str(self._active_extruder_index)] return None + ## Get an extruder stack by index + def getExtruderStack(self, index): + global_container_stack = UM.Application.getInstance().getGlobalContainerStack() + if global_container_stack: + if global_container_stack.getId() in self._extruder_trains: + if str(index) in self._extruder_trains[global_container_stack.getId()]: + return self._extruder_trains[global_container_stack.getId()][str(index)] + return None + ## Adds all extruders of a specific machine definition to the extruder # manager. # @@ -295,3 +305,10 @@ class ExtruderManager(QObject): return result + @staticmethod + def getExtruderValue(extruder_index, name): + extruder = ExtruderManager.getInstance().getExtruderStack(extruder_index) + if extruder: + return extruder.getRawProperty(name, "value", use_next = False) + + return None From a7187e7fe39101f060e47626df457c07444b3a93 Mon Sep 17 00:00:00 2001 From: Arjen Hiemstra Date: Tue, 2 Aug 2016 19:40:34 +0200 Subject: [PATCH 115/228] Document getExtruderValues --- cura/Settings/ExtruderManager.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/cura/Settings/ExtruderManager.py b/cura/Settings/ExtruderManager.py index 641b5a8642..2506c0bc0b 100644 --- a/cura/Settings/ExtruderManager.py +++ b/cura/Settings/ExtruderManager.py @@ -284,13 +284,21 @@ class ExtruderManager(QObject): if global_stack and global_stack.getBottom(): self.addMachineExtruders(global_stack.getBottom(), global_stack.getId()) + ## Get all extruder values for a certain setting. + # + # This is exposed to SettingFunction so it can be used in value functions. + # + # \param key The key of the setting to retieve values for. + # + # \return A list of values for all extruders. If an extruder does not have a value, it will not be in the list. + # If no extruder has the value, the list will contain the global value. @staticmethod - def getExtruderValues(name): + def getExtruderValues(key): global_stack = UM.Application.getInstance().getGlobalContainerStack() result = [] for extruder in ExtruderManager.getInstance().getMachineExtruders(global_stack.getId()): - value = extruder.getRawProperty(name, "value", use_next = False) + value = extruder.getRawProperty(key, "value", use_next = False) if not value: continue @@ -301,7 +309,7 @@ class ExtruderManager(QObject): result.append(value) if not result: - result.append(global_stack.getProperty(name, "value")) + result.append(global_stack.getProperty(key, "value")) return result From 791d51df2a86ddd5f70f819f161b68100bf2d4f5 Mon Sep 17 00:00:00 2001 From: Arjen Hiemstra Date: Tue, 2 Aug 2016 19:41:23 +0200 Subject: [PATCH 116/228] Expose an extruderValue() function to value functions It can be used to get the value of a specific extruder Contributes to CURA-2009 --- cura/Settings/ExtruderManager.py | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/cura/Settings/ExtruderManager.py b/cura/Settings/ExtruderManager.py index 2506c0bc0b..71bd58ded5 100644 --- a/cura/Settings/ExtruderManager.py +++ b/cura/Settings/ExtruderManager.py @@ -313,10 +313,23 @@ class ExtruderManager(QObject): return result + ## Get the value for a setting from a specific extruder. + # + # This is exposed to SettingFunction to use in value functions. + # + # \param extruder_index The index of the extruder to get the value from. + # \param key The key of the setting to get the value of. + # + # \return The value of the setting for the specified extruder or None if not found. @staticmethod - def getExtruderValue(extruder_index, name): + def getExtruderValue(extruder_index, key): extruder = ExtruderManager.getInstance().getExtruderStack(extruder_index) - if extruder: - return extruder.getRawProperty(name, "value", use_next = False) + value = None - return None + if extruder: + value = extruder.getRawProperty(key, "value", use_next = False) + + if isinstance(value, UM.Settings.SettingFunction): + value = value(extruder) + + return value From 78aaf4caf07bc69d759b43468e4360cbc6af0a7c Mon Sep 17 00:00:00 2001 From: Arjen Hiemstra Date: Tue, 2 Aug 2016 19:41:54 +0200 Subject: [PATCH 117/228] Use the new extruderValues() function to determine max_warning of layer_height Contributes to CURA-2009 --- resources/definitions/fdmprinter.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index b8ac173306..84b5d3219e 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -506,7 +506,7 @@ "default_value": 0.1, "minimum_value": "0.001", "minimum_value_warning": "0.04", - "maximum_value_warning": "0.8 * machine_nozzle_size", + "maximum_value_warning": "0.8 * min(extruderValues('machine_nozzle_size'))", "settable_per_mesh": false, "settable_per_extruder": false }, @@ -519,7 +519,7 @@ "default_value": 0.3, "minimum_value": "0.001", "minimum_value_warning": "0.04", - "maximum_value_warning": "0.8 * machine_nozzle_size", + "maximum_value_warning": "0.8 * min(extruderValues('machine_nozzle_size'))", "settable_per_mesh": false, "settable_per_extruder": false }, From df1b6b8e88dce6801365a06be7fba489bcc28cfe Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 3 Aug 2016 10:27:17 +0200 Subject: [PATCH 118/228] Only get from extruder if global_inherits_stack is valid Sometimes it is set to give -1 for some settings. Contributes to issue CURA-2040. --- .../PerObjectSettingVisibilityHandler.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py b/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py index c50a70d950..ebb372ad96 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py +++ b/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py @@ -62,8 +62,9 @@ class PerObjectSettingVisibilityHandler(UM.Settings.Models.SettingVisibilityHand if definition.global_inherits_stack: #Obtain the value from the correct container stack. Only once, upon adding the setting. stack_nr = self._stack.getProperty(item, "global_inherits_stack") #Stack to get the setting from. - extruder_stack = UM.Settings.ContainerRegistry.getInstance().findContainerStacks(id = ExtruderManager.getInstance().extruderIds[stack_nr])[0] - new_instance.value = extruder_stack.getProperty(item, "value") + if int(stack_nr) >= 0: #Only if it defines an extruder stack. + extruder_stack = UM.Settings.ContainerRegistry.getInstance().findContainerStacks(id = ExtruderManager.getInstance().extruderIds[stack_nr])[0] + new_instance.value = extruder_stack.getProperty(item, "value") settings.addInstance(new_instance) visibility_changed = True else: From 557044b11c3bfa3469ff49a217910c126dcc35c2 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 3 Aug 2016 12:39:01 +0200 Subject: [PATCH 119/228] Remove print statement Wasn't meant to be committed, I reckon. Contributes to issue CURA-2022. --- cura/Settings/SettingOverrideDecorator.py | 1 - 1 file changed, 1 deletion(-) diff --git a/cura/Settings/SettingOverrideDecorator.py b/cura/Settings/SettingOverrideDecorator.py index 674c61b87c..f547d283a4 100644 --- a/cura/Settings/SettingOverrideDecorator.py +++ b/cura/Settings/SettingOverrideDecorator.py @@ -43,7 +43,6 @@ class SettingOverrideDecorator(SceneNodeDecorator): self._updateNextStack() def __deepcopy__(self, memo): - print("deepcopy settingoverridedecorator") ## Create a fresh decorator object deep_copy = SettingOverrideDecorator() ## Copy the instance From 7d48ad7872db119b9f4afb53b08f6c288430fb17 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Wed, 3 Aug 2016 18:15:06 +0200 Subject: [PATCH 120/228] Fix qml warning in Printers page after adding a printer --- resources/qml/Preferences/MachinesPage.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/Preferences/MachinesPage.qml b/resources/qml/Preferences/MachinesPage.qml index c149185808..ca9184ae6b 100644 --- a/resources/qml/Preferences/MachinesPage.qml +++ b/resources/qml/Preferences/MachinesPage.qml @@ -129,10 +129,10 @@ UM.ManagementPage Label { text: catalog.i18nc("@label", "Type") - visible: base.currentItem && base.currentItem.metadata + visible: base.currentItem && "definition_name" in base.currentItem.metadata } Label { - text: (base.currentItem && base.currentItem.metadata) ? base.currentItem.metadata.definition_name : "" + text: (base.currentItem && "definition_name" in base.currentItem.metadata) ? base.currentItem.metadata.definition_name : "" } } From 16e9c1b2bdc4aeabb2645c95b6664f501022de24 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Wed, 3 Aug 2016 22:14:39 +0200 Subject: [PATCH 121/228] Tweak general preference page spacing --- resources/qml/Preferences/GeneralPage.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/qml/Preferences/GeneralPage.qml b/resources/qml/Preferences/GeneralPage.qml index 223b7eda85..07a188713f 100644 --- a/resources/qml/Preferences/GeneralPage.qml +++ b/resources/qml/Preferences/GeneralPage.qml @@ -69,6 +69,7 @@ UM.PreferencesPage Row { + spacing: UM.Theme.getSize("default_margin").width Label { id: languageLabel From d97c9f6e4c37a09bb2ef9efd0ff80ce4a1da1c19 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 4 Aug 2016 11:36:45 +0200 Subject: [PATCH 122/228] Don't use extruder fallback on single-extrusion machines Due to a gnawing feeling in the back of my head, I tested this with an UM2 and adding settings failed there. This fixes it. Contributes to issue CURA-2011. --- .../PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py b/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py index ebb372ad96..8386095ee1 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py +++ b/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py @@ -59,7 +59,7 @@ class PerObjectSettingVisibilityHandler(UM.Settings.Models.SettingVisibilityHand definition = self._stack.getSettingDefinition(item) if definition: new_instance = SettingInstance(definition, settings) - if definition.global_inherits_stack: + if definition.global_inherits_stack and self._stack.getProperty("machine_extruder_count", "value") > 1: #Obtain the value from the correct container stack. Only once, upon adding the setting. stack_nr = self._stack.getProperty(item, "global_inherits_stack") #Stack to get the setting from. if int(stack_nr) >= 0: #Only if it defines an extruder stack. From ee95e90b4b4a5cbbb9d7cd79f93f911435d46814 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 4 Aug 2016 12:36:33 +0200 Subject: [PATCH 123/228] Fix display update bug in per-object panel Setting .value creates a new Python attribute in the object. Setting with setProperty creates the setting property, like we wanted. Contributes to issue CURA-2011. --- .../PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py b/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py index 8386095ee1..a580382845 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py +++ b/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py @@ -64,7 +64,7 @@ class PerObjectSettingVisibilityHandler(UM.Settings.Models.SettingVisibilityHand stack_nr = self._stack.getProperty(item, "global_inherits_stack") #Stack to get the setting from. if int(stack_nr) >= 0: #Only if it defines an extruder stack. extruder_stack = UM.Settings.ContainerRegistry.getInstance().findContainerStacks(id = ExtruderManager.getInstance().extruderIds[stack_nr])[0] - new_instance.value = extruder_stack.getProperty(item, "value") + new_instance.setProperty("value", extruder_stack.getProperty(item, "value")) settings.addInstance(new_instance) visibility_changed = True else: From b89a9a81130a59fd6f658aba77f7cd4841b698a6 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 4 Aug 2016 12:50:03 +0200 Subject: [PATCH 124/228] Allow freezing temperatures But not on Ultimaker printers, because they crash. --- resources/definitions/fdmprinter.def.json | 6 +++--- resources/definitions/ultimaker.def.json | 11 +++++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 33d41332a1..5118966d5a 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1053,7 +1053,7 @@ "unit": "°C", "type": "float", "default_value": 210, - "minimum_value": "0", + "minimum_value": "-273.15", "maximum_value_warning": "260", "enabled": "not (material_flow_dependent_temperature)", "settable_per_mesh": false, @@ -1090,7 +1090,7 @@ "unit": "°C", "type": "float", "default_value": 60, - "minimum_value": "0", + "minimum_value": "-273.15", "maximum_value_warning": "260", "enabled": "machine_heated_bed", "settable_per_mesh": false, @@ -1269,7 +1269,7 @@ "type": "float", "unit": "°C", "default_value": 150, - "minimum_value": "0", + "minimum_value": "-273.15", "maximum_value_warning": "260", "settable_per_mesh": false, "settable_per_extruder": true diff --git a/resources/definitions/ultimaker.def.json b/resources/definitions/ultimaker.def.json index 5df38d07cb..dc52b00dcc 100644 --- a/resources/definitions/ultimaker.def.json +++ b/resources/definitions/ultimaker.def.json @@ -7,5 +7,16 @@ "author": "Ultimaker", "manufacturer": "Ultimaker", "visible": false + }, + "overrides": { + "material_print_temperature": { + "minimum_value": "0" + }, + "material_bed_temperature": { + "minimum_value": "0" + }, + "material_standby_temperature": { + "minimum_value": "0" + } } } From a74d5dd8cb60b8f808a1ef128e3897c66bdc493a Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Thu, 4 Aug 2016 13:25:28 +0200 Subject: [PATCH 125/228] Show error text in print monitor CURA-1990 --- cura/PrinterOutputDevice.py | 13 +++++++++++++ resources/qml/MonitorButton.qml | 34 +++++++++++++++++++-------------- 2 files changed, 33 insertions(+), 14 deletions(-) diff --git a/cura/PrinterOutputDevice.py b/cura/PrinterOutputDevice.py index 212ed86ab3..f42c365ca3 100644 --- a/cura/PrinterOutputDevice.py +++ b/cura/PrinterOutputDevice.py @@ -35,6 +35,7 @@ class PrinterOutputDevice(QObject, OutputDevice): self._time_total = 0 self._job_state = "" self._job_name = "" + self._error_text = "" def requestWrite(self, node, file_name = None, filter_by_machine = False): raise NotImplementedError("requestWrite needs to be implemented") @@ -77,6 +78,8 @@ class PrinterOutputDevice(QObject, OutputDevice): jobNameChanged = pyqtSignal() + errorTextChanged = pyqtSignal() + @pyqtProperty(str, notify = jobStateChanged) def jobState(self): return self._job_state @@ -102,6 +105,16 @@ class PrinterOutputDevice(QObject, OutputDevice): self._job_name = name self.jobNameChanged.emit() + @pyqtProperty(str, notify = errorTextChanged) + def errorText(self): + return self._error_text + + ## Set the error-text that is shown in the print monitor in case of an error + def setErrorText(self, error_text): + if self._error_text != error_text: + self._error_text = error_text + self.errorTextChanged.emit() + ## Get the bed temperature of the bed (if any) # This function is "final" (do not re-implement) # /sa _getBedTemperature implementation function diff --git a/resources/qml/MonitorButton.qml b/resources/qml/MonitorButton.qml index 4a33b347d3..01365433a9 100644 --- a/resources/qml/MonitorButton.qml +++ b/resources/qml/MonitorButton.qml @@ -43,24 +43,30 @@ Rectangle { if(!printerConnected) { - return catalog.i18nc("@label:", "Not connected to a printer") - } else if(Cura.MachineManager.printerOutputDevices[0].jobState == "offline") - { - return catalog.i18nc("@label:", "Lost connection with the printer") - } else if(Cura.MachineManager.printerOutputDevices[0].jobState == "printing") - { - return catalog.i18nc("@label:", "Printing...") - } else if(Cura.MachineManager.printerOutputDevices[0].jobState == "paused") - { - return catalog.i18nc("@label:", "Paused") + return catalog.i18nc("@label:MonitorStatus", "Not connected to a printer") } - else if(Cura.MachineManager.printerOutputDevices[0].jobState == "pre_print") + var printerOutputDevice = Cura.MachineManager.printerOutputDevices[0] + if(printerOutputDevice.jobState == "offline") { - return catalog.i18nc("@label:", "Preparing...") + return catalog.i18nc("@label:MonitorStatus", "Lost connection with the printer") + } else if(printerOutputDevice.jobState == "printing") + { + return catalog.i18nc("@label:MonitorStatus", "Printing...") + } else if(printerOutputDevice.jobState == "paused") + { + return catalog.i18nc("@label:MonitorStatus", "Paused") } - else if(Cura.MachineManager.printerOutputDevices[0].jobState == "wait_cleanup") + else if(printerOutputDevice.jobState == "pre_print") { - return catalog.i18nc("@label:", "Waiting for cleanup...") + return catalog.i18nc("@label:MonitorStatus", "Preparing...") + } + else if(printerOutputDevice.jobState == "wait_cleanup") + { + return catalog.i18nc("@label:MonitorStatus", "Please remove the print") + } + else if(printerOutputDevice.jobState == "error") + { + return printerOutputDevice.errorText } else { From de7f32da195858805f399aeececa4c89c6959ee8 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 4 Aug 2016 13:25:51 +0200 Subject: [PATCH 126/228] Convert global_inherits_stack to int before slicing Sometimes it was accidentally converted to a float when it passes through Javascript. Contributes to issue CURA-2055. --- plugins/CuraEngineBackend/StartSliceJob.py | 2 +- .../PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index 5b948c90ab..fc9fd05b44 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -227,7 +227,7 @@ class StartSliceJob(Job): # global_inherits_stack property. def _buildGlobalInheritsStackMessage(self, stack): for key in stack.getAllKeys(): - extruder = int(stack.getProperty(key, "global_inherits_stack")) + extruder = int(round(float(stack.getProperty(key, "global_inherits_stack")))) if extruder >= 0: #Set to a specific extruder. setting_extruder = self._slice_message.addRepeatedMessage("global_inherits_stack") setting_extruder.name = key diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py b/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py index a580382845..e487870d8a 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py +++ b/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py @@ -62,7 +62,7 @@ class PerObjectSettingVisibilityHandler(UM.Settings.Models.SettingVisibilityHand if definition.global_inherits_stack and self._stack.getProperty("machine_extruder_count", "value") > 1: #Obtain the value from the correct container stack. Only once, upon adding the setting. stack_nr = self._stack.getProperty(item, "global_inherits_stack") #Stack to get the setting from. - if int(stack_nr) >= 0: #Only if it defines an extruder stack. + if float(stack_nr) >= 0: #Only if it defines an extruder stack. extruder_stack = UM.Settings.ContainerRegistry.getInstance().findContainerStacks(id = ExtruderManager.getInstance().extruderIds[stack_nr])[0] new_instance.setProperty("value", extruder_stack.getProperty(item, "value")) settings.addInstance(new_instance) From f3a119f9bbee912573631a83714ed06414c8a9ce Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 4 Aug 2016 13:34:59 +0200 Subject: [PATCH 127/228] Use correct extruder's value when inheriting global_inheritance_stack settings This uses the new function extruderValue() which picks the value from a different extruder. Every setting that has the global_inheritance_stack property is now referenced via the extruderValue() setting in all functions. Contributes to issue CURA-2024. --- resources/definitions/fdmprinter.def.json | 44 +++++++++++------------ 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 5118966d5a..39eb066a9e 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -644,7 +644,7 @@ "minimum_value": "0.0001", "maximum_value_warning": "machine_nozzle_size * 2", "type": "float", - "enabled": "support_interface_enable", + "enabled": "extruderValue(support_extruder_nr, 'support_interface_enable')", "value": "line_width", "settable_per_mesh": false, "settable_per_extruder": true @@ -1473,7 +1473,7 @@ "minimum_value": "0.1", "maximum_value": "299792458000", "maximum_value_warning": "150", - "enabled": "support_interface_enable and support_enable", + "enabled": "extruderValue(support_extruder_nr, 'support_interface_enable') and support_enable", "value": "speed_support / 1.5", "settable_per_mesh": false, "settable_per_extruder": true @@ -1704,7 +1704,7 @@ "minimum_value": "0.1", "minimum_value_warning": "100", "maximum_value_warning": "10000", - "enabled": "acceleration_enabled and support_interface_enable and support_enable", + "enabled": "acceleration_enabled and extruderValue(support_extruder_nr, 'support_interface_enable') and support_enable", "settable_per_mesh": false, "settable_per_extruder": true } @@ -1923,7 +1923,7 @@ "minimum_value": "0.1", "minimum_value_warning": "5", "maximum_value_warning": "50", - "enabled": "jerk_enabled and support_interface_enable and support_enable", + "enabled": "jerk_enabled and extruderValue(support_extruder_nr, 'support_interface_enable') and support_enable", "settable_per_mesh": false, "settable_per_extruder": true } @@ -2270,7 +2270,7 @@ "description": "Connect the ZigZags. This will increase the strength of the zig zag support structure.", "type": "bool", "default_value": true, - "enabled": "support_enable and (support_pattern == \"zigzag\")", + "enabled": "support_enable and (extruderValue(support_extruder_nr, 'support_pattern') == \"zigzag\")", "settable_per_mesh": false, "settable_per_extruder": true }, @@ -2326,7 +2326,7 @@ "default_value": 0.15, "type": "float", "enabled": "support_enable", - "value": "support_z_distance", + "value": "extruderValue(support_extruder_nr, 'support_z_distance')", "global_inherits_stack": "support_extruder_nr", "settable_per_mesh": true }, @@ -2341,7 +2341,7 @@ "value": "0.1 if support_type == 'everywhere' else 0", "global_inherits_stack": "support_extruder_nr", "type": "float", - "enabled": "support_enable and support_type == 'everywhere'", + "enabled": "support_enable and extruderValue(support_extruder_nr, 'support_type') == 'everywhere'", "settable_per_mesh": true } } @@ -2382,7 +2382,7 @@ "default_value": 0.2, "value": "machine_nozzle_size / 2", "global_inherits_stack": "support_extruder_nr", - "enabled": "support_enable and support_xy_overrides_z=='z_overrides_xy'", + "enabled": "support_enable and extruderValue(support_extruder_nr, 'support_xy_overrides_z') == 'z_overrides_xy'", "settable_per_mesh": true }, "support_bottom_stair_step_height": @@ -2457,7 +2457,7 @@ "minimum_value": "0", "global_inherits_stack": "support_extruder_nr", "maximum_value_warning": "10", - "enabled": "support_interface_enable and support_enable", + "enabled": "extruderValue(support_extruder_nr, 'support_interface_enable') and support_enable", "settable_per_mesh": true, "children": { @@ -2468,11 +2468,11 @@ "unit": "mm", "type": "float", "default_value": 1, - "value": "support_interface_height", + "value": "extruderValue(support_extruder_nr, 'support_interface_height')", "minimum_value": "0", "global_inherits_stack": "support_extruder_nr", "maximum_value_warning": "10", - "enabled": "support_interface_enable and support_enable", + "enabled": "extruderValue(support_extruder_nr, 'support_interface_enable') and support_enable", "settable_per_mesh": true }, "support_bottom_height": @@ -2482,12 +2482,12 @@ "unit": "mm", "type": "float", "default_value": 1, - "value": "support_interface_height", + "value": "extruderValue(support_extruder_nr, 'support_interface_height')", "minimum_value": "0", - "minimum_value_warning": "support_bottom_stair_step_height", + "minimum_value_warning": "extruderValue(support_extruder_nr, 'support_bottom_stair_step_height')", "global_inherits_stack": "support_extruder_nr", "maximum_value_warning": "10", - "enabled": "support_interface_enable and support_enable", + "enabled": "extruderValue(support_extruder_nr, 'support_interface_enable') and support_enable", "settable_per_mesh": true } } @@ -2501,7 +2501,7 @@ "default_value": 100, "minimum_value": "0", "maximum_value_warning": "100", - "enabled":"support_interface_enable and support_enable", + "enabled":"extruderValue(support_extruder_nr, 'support_interface_enable') and support_enable", "settable_per_mesh": false, "settable_per_extruder": true, "children": @@ -2515,7 +2515,7 @@ "default_value": 0.4, "minimum_value": "0", "value": "0 if support_interface_density == 0 else (support_interface_line_width * 100) / support_interface_density * (2 if support_interface_pattern == \"grid\" else (3 if support_interface_pattern == \"triangles\" else 1))", - "enabled": "support_interface_enable and support_enable", + "enabled": "extruderValue(support_extruder_nr, 'support_interface_enable') and support_enable", "settable_per_mesh": false, "settable_per_extruder": true } @@ -2535,7 +2535,7 @@ "zigzag": "Zig Zag" }, "default_value": "concentric", - "enabled": "support_interface_enable and support_enable", + "enabled": "extruderValue(support_extruder_nr, 'support_interface_enable') and support_enable", "settable_per_mesh": false, "settable_per_extruder": true }, @@ -2559,7 +2559,7 @@ "global_inherits_stack": "support_extruder_nr", "minimum_value": "0", "maximum_value_warning": "10", - "enabled": "support_enable and support_use_towers", + "enabled": "support_enable and extruderValue(support_extruder_nr, 'support_use_towers')", "settable_per_mesh": true }, "support_minimal_diameter": @@ -2572,8 +2572,8 @@ "global_inherits_stack": "support_extruder_nr", "minimum_value": "0", "maximum_value_warning": "10", - "maximum_value": "support_tower_diameter", - "enabled": "support_enable and support_use_towers", + "maximum_value": "extruderValue(support_extruder_nr, 'support_tower_diameter')", + "enabled": "support_enable and extruderValue(support_extruder_nr, 'support_use_towers')", "settable_per_mesh": true }, "support_tower_roof_angle": @@ -2586,7 +2586,7 @@ "maximum_value": "90", "default_value": 65, "global_inherits_stack": "support_extruder_nr", - "enabled": "support_enable and support_use_towers", + "enabled": "support_enable and extruderValue(support_extruder_nr, 'support_use_towers')", "settable_per_mesh": true } } @@ -3177,7 +3177,7 @@ "type": "extruder", "default_value": "0", "value": "support_extruder_nr", - "enabled": "support_enable and support_interface_enable", + "enabled": "support_enable and extruderValue(support_extruder_nr, 'support_interface_enable')", "settable_per_mesh": false, "settable_per_extruder": false } From ed669925ad35a3647f2ae50983dd4617ce894757 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Thu, 4 Aug 2016 15:06:22 +0200 Subject: [PATCH 128/228] Disable print monitor if the printer is not (yet) ready to receive commands CURA-1851 --- cura/PrinterOutputDevice.py | 13 +++++++++++++ resources/qml/MonitorButton.qml | 6 ++++-- resources/qml/PrintMonitor.qml | 4 ++-- resources/qml/Sidebar.qml | 1 + 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/cura/PrinterOutputDevice.py b/cura/PrinterOutputDevice.py index f42c365ca3..0fac851aba 100644 --- a/cura/PrinterOutputDevice.py +++ b/cura/PrinterOutputDevice.py @@ -36,6 +36,7 @@ class PrinterOutputDevice(QObject, OutputDevice): self._job_state = "" self._job_name = "" self._error_text = "" + self._accepts_commands = True def requestWrite(self, node, file_name = None, filter_by_machine = False): raise NotImplementedError("requestWrite needs to be implemented") @@ -80,6 +81,8 @@ class PrinterOutputDevice(QObject, OutputDevice): errorTextChanged = pyqtSignal() + acceptsCommandsChanged = pyqtSignal() + @pyqtProperty(str, notify = jobStateChanged) def jobState(self): return self._job_state @@ -115,6 +118,16 @@ class PrinterOutputDevice(QObject, OutputDevice): self._error_text = error_text self.errorTextChanged.emit() + @pyqtProperty(str, notify = acceptsCommandsChanged) + def acceptsCommands(self): + return self._accepts_commands + + ## Set a flag to signal the UI that the printer is not (yet) ready to receive commands + def setAcceptsCommands(self, accepts_commands): + if self._accepts_commands != accepts_commands: + self._accepts_commands = accepts_commands + self.acceptsCommandsChanged.emit() + ## Get the bed temperature of the bed (if any) # This function is "final" (do not re-implement) # /sa _getBedTemperature implementation function diff --git a/resources/qml/MonitorButton.qml b/resources/qml/MonitorButton.qml index 01365433a9..982b3df967 100644 --- a/resources/qml/MonitorButton.qml +++ b/resources/qml/MonitorButton.qml @@ -126,7 +126,8 @@ Rectangle id: abortButton visible: printerConnected - enabled: printerConnected && (Cura.MachineManager.printerOutputDevices[0].jobState == "paused" || Cura.MachineManager.printerOutputDevices[0].jobState == "printing") + enabled: printerConnected && Cura.MachineManager.printerOutputDevices[0].acceptsCommands && + (Cura.MachineManager.printerOutputDevices[0].jobState == "paused" || Cura.MachineManager.printerOutputDevices[0].jobState == "printing") height: UM.Theme.getSize("save_button_save_to_button").height anchors.top: progressBar.bottom @@ -173,7 +174,8 @@ Rectangle id: pauseButton visible: printerConnected - enabled: printerConnected && (Cura.MachineManager.printerOutputDevices[0].jobState == "paused" || Cura.MachineManager.printerOutputDevices[0].jobState == "printing") + enabled: printerConnected && Cura.MachineManager.printerOutputDevices[0].acceptsCommands && + (Cura.MachineManager.printerOutputDevices[0].jobState == "paused" || Cura.MachineManager.printerOutputDevices[0].jobState == "printing") height: UM.Theme.getSize("save_button_save_to_button").height anchors.top: progressBar.bottom diff --git a/resources/qml/PrintMonitor.qml b/resources/qml/PrintMonitor.qml index ba2f3f822c..434cb50b3a 100644 --- a/resources/qml/PrintMonitor.qml +++ b/resources/qml/PrintMonitor.qml @@ -73,7 +73,7 @@ Column Label { text: label - color: printerConnected ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text") + color: printerConnected && printerAcceptsCommands ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text") font: UM.Theme.getFont("default") width: base.width * 0.4 elide: Text.ElideRight @@ -82,7 +82,7 @@ Column Label { text: value - color: printerConnected ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text") + color: printerConnected && printerAcceptsCommands ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text") font: UM.Theme.getFont("default") anchors.verticalCenter: parent.verticalCenter } diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml index 8ab776af6a..8e2c571a3e 100644 --- a/resources/qml/Sidebar.qml +++ b/resources/qml/Sidebar.qml @@ -28,6 +28,7 @@ Rectangle // Is there an output device for this printer? property bool printerConnected: Cura.MachineManager.printerOutputDevices.length != 0 + property bool printerAcceptsCommands: printerConnected && Cura.MachineManager.printerOutputDevices[0].acceptsCommands color: UM.Theme.getColor("sidebar"); UM.I18nCatalog { id: catalog; name:"cura"} From 0faa7f4abb56190466343821626fbf5603cbe061 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Thu, 4 Aug 2016 15:49:07 +0200 Subject: [PATCH 129/228] Fix error in PrinterOutputDevice.acceptsCommands CURA-1851 --- cura/PrinterOutputDevice.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/PrinterOutputDevice.py b/cura/PrinterOutputDevice.py index 0fac851aba..153e5f7c42 100644 --- a/cura/PrinterOutputDevice.py +++ b/cura/PrinterOutputDevice.py @@ -118,7 +118,7 @@ class PrinterOutputDevice(QObject, OutputDevice): self._error_text = error_text self.errorTextChanged.emit() - @pyqtProperty(str, notify = acceptsCommandsChanged) + @pyqtProperty(bool, notify = acceptsCommandsChanged) def acceptsCommands(self): return self._accepts_commands From 5f3c051ec6fbafe96b14d66ebbb169fd05a94ca0 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Thu, 4 Aug 2016 16:02:05 +0200 Subject: [PATCH 130/228] Code cleanup CURA-1990 --- resources/qml/MonitorButton.qml | 176 ++++++++++++++++++++------------ 1 file changed, 110 insertions(+), 66 deletions(-) diff --git a/resources/qml/MonitorButton.qml b/resources/qml/MonitorButton.qml index 982b3df967..6ea9ba482f 100644 --- a/resources/qml/MonitorButton.qml +++ b/resources/qml/MonitorButton.qml @@ -15,25 +15,32 @@ Rectangle UM.I18nCatalog { id: catalog; name:"cura"} property bool printerConnected: Cura.MachineManager.printerOutputDevices.length != 0 - property real progress: printerConnected ? Cura.MachineManager.printerOutputDevices[0].progress : 0; - property int backendState: UM.Backend.state; + property real progress: printerConnected ? Cura.MachineManager.printerOutputDevices[0].progress : 0 + property int backendState: UM.Backend.state property variant statusColor: { if(!printerConnected) - return UM.Theme.getColor("status_offline") - else if(Cura.MachineManager.printerOutputDevices[0].jobState == "printing" || Cura.MachineManager.printerOutputDevices[0].jobState == "pre_print" || Cura.MachineManager.printerOutputDevices[0].jobState == "wait_cleanup" ) - return UM.Theme.getColor("status_busy") - else if(Cura.MachineManager.printerOutputDevices[0].jobState == "ready" || Cura.MachineManager.printerOutputDevices[0].jobState == "") - return UM.Theme.getColor("status_ready") - else if(Cura.MachineManager.printerOutputDevices[0].jobState == "paused") - return UM.Theme.getColor("status_paused") - else if (Cura.MachineManager.printerOutputDevices[0].jobState == "error") - return UM.Theme.getColor("status_stopped") - else if (Cura.MachineManager.printerOutputDevices[0].jobState == "offline") - return UM.Theme.getColor("status_offline") - else - return UM.Theme.getColor("text") + return UM.Theme.getColor("status_offline"); + + switch(Cura.MachineManager.printerOutputDevices[0].jobState) + { + case "printing": + case "pre_print": + case "wait_cleanup": + return UM.Theme.getColor("status_busy"); + case "ready": + case "": + return UM.Theme.getColor("status_ready"); + case "paused": + return UM.Theme.getColor("status_paused"); + case "error": + return UM.Theme.getColor("status_stopped"); + case "offline": + return UM.Theme.getColor("status_offline"); + default: + return UM.Theme.getColor("text"); + } } property bool activity: Printer.getPlatformActivity; @@ -42,37 +49,26 @@ Rectangle property string statusText: { if(!printerConnected) - { return catalog.i18nc("@label:MonitorStatus", "Not connected to a printer") - } - var printerOutputDevice = Cura.MachineManager.printerOutputDevices[0] - if(printerOutputDevice.jobState == "offline") - { - return catalog.i18nc("@label:MonitorStatus", "Lost connection with the printer") - } else if(printerOutputDevice.jobState == "printing") - { - return catalog.i18nc("@label:MonitorStatus", "Printing...") - } else if(printerOutputDevice.jobState == "paused") - { - return catalog.i18nc("@label:MonitorStatus", "Paused") - } - else if(printerOutputDevice.jobState == "pre_print") - { - return catalog.i18nc("@label:MonitorStatus", "Preparing...") - } - else if(printerOutputDevice.jobState == "wait_cleanup") - { - return catalog.i18nc("@label:MonitorStatus", "Please remove the print") - } - else if(printerOutputDevice.jobState == "error") - { - return printerOutputDevice.errorText - } - else - { - return " " - } + var printerOutputDevice = Cura.MachineManager.printerOutputDevices[0] + switch(printerOutputDevice.jobState) + { + case "offline": + return catalog.i18nc("@label:MonitorStatus", "Lost connection with the printer"); + case "printing": + return catalog.i18nc("@label:MonitorStatus", "Printing..."); + case "paused": + return catalog.i18nc("@label:MonitorStatus", "Paused"); + case "pre_print": + return catalog.i18nc("@label:MonitorStatus", "Preparing..."); + case "wait_cleanup": + return catalog.i18nc("@label:MonitorStatus", "Please remove the print"); + case "error": + return printerOutputDevice.errorText; + default: + return " "; + } } Label @@ -85,7 +81,7 @@ Rectangle color: base.statusColor font: UM.Theme.getFont("large") - text: statusText; + text: statusText } Label @@ -96,7 +92,7 @@ Rectangle color: base.statusColor font: UM.Theme.getFont("large") - text: Math.round(progress) + "%"; + text: Math.round(progress) + "%" visible: printerConnected } @@ -136,7 +132,7 @@ Rectangle anchors.rightMargin: UM.Theme.getSize("default_margin").width text: catalog.i18nc("@label:", "Abort Print") - onClicked: { Cura.MachineManager.printerOutputDevices[0].setJobState("abort") } + onClicked: Cura.MachineManager.printerOutputDevices[0].setJobState("abort") style: ButtonStyle @@ -144,12 +140,28 @@ Rectangle background: Rectangle { border.width: UM.Theme.getSize("default_lining").width - border.color: !control.enabled ? UM.Theme.getColor("action_button_disabled_border") : - control.pressed ? UM.Theme.getColor("action_button_active_border") : - control.hovered ? UM.Theme.getColor("action_button_hovered_border") : UM.Theme.getColor("action_button_border") - color: !control.enabled ? UM.Theme.getColor("action_button_disabled") : - control.pressed ? UM.Theme.getColor("action_button_active") : - control.hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button") + border.color: + { + if(!control.enabled) + return UM.Theme.getColor("action_button_disabled_border"); + else if(control.pressed) + return UM.Theme.getColor("action_button_active_border"); + else if(control.hovered) + return UM.Theme.getColor("action_button_hovered_border"); + else + return UM.Theme.getColor("action_button_border"); + } + color: + { + if(!control.enabled) + return UM.Theme.getColor("action_button_disabled"); + else if(control.pressed) + return UM.Theme.getColor("action_button_active"); + else if(control.hovered) + return UM.Theme.getColor("action_button_hovered"); + else + return UM.Theme.getColor("action_button"); + } Behavior on color { ColorAnimation { duration: 50; } } implicitWidth: actualLabel.contentWidth + (UM.Theme.getSize("default_margin").width * 2) @@ -158,9 +170,17 @@ Rectangle { id: actualLabel anchors.centerIn: parent - color: !control.enabled ? UM.Theme.getColor("action_button_disabled_text") : - control.pressed ? UM.Theme.getColor("action_button_active_text") : - control.hovered ? UM.Theme.getColor("action_button_hovered_text") : UM.Theme.getColor("action_button_text") + color: + { + if(!control.enabled) + return UM.Theme.getColor("action_button_disabled_text"); + else if(control.pressed) + return UM.Theme.getColor("action_button_active_text"); + else if(control.hovered) + return UM.Theme.getColor("action_button_hovered_text"); + else + return UM.Theme.getColor("action_button_text"); + } font: UM.Theme.getFont("action_button") text: control.text; } @@ -184,19 +204,35 @@ Rectangle anchors.rightMargin: UM.Theme.getSize("default_margin").width text: printerConnected ? Cura.MachineManager.printerOutputDevices[0].jobState == "paused" ? catalog.i18nc("@label:", "Resume") : catalog.i18nc("@label:", "Pause") : "" - onClicked: { Cura.MachineManager.printerOutputDevices[0].jobState == "paused" ? Cura.MachineManager.printerOutputDevices[0].setJobState("print") : Cura.MachineManager.printerOutputDevices[0].setJobState("pause") } + onClicked: Cura.MachineManager.printerOutputDevices[0].setJobState(Cura.MachineManager.printerOutputDevices[0].jobState == "paused" ? "print" : "pause") style: ButtonStyle { background: Rectangle { border.width: UM.Theme.getSize("default_lining").width - border.color: !control.enabled ? UM.Theme.getColor("action_button_disabled_border") : - control.pressed ? UM.Theme.getColor("action_button_active_border") : - control.hovered ? UM.Theme.getColor("action_button_hovered_border") : UM.Theme.getColor("action_button_border") - color: !control.enabled ? UM.Theme.getColor("action_button_disabled") : - control.pressed ? UM.Theme.getColor("action_button_active") : - control.hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button") + border.color: + { + if(!control.enabled) + return UM.Theme.getColor("action_button_disabled_border"); + else if(control.pressed) + return UM.Theme.getColor("action_button_active_border"); + else if(control.hovered) + return UM.Theme.getColor("action_button_hovered_border"); + else + return UM.Theme.getColor("action_button_border"); + } + color: + { + if(!control.enabled) + return UM.Theme.getColor("action_button_disabled"); + else if(control.pressed) + return UM.Theme.getColor("action_button_active"); + else if(control.hovered) + return UM.Theme.getColor("action_button_hovered"); + else + return UM.Theme.getColor("action_button"); + } Behavior on color { ColorAnimation { duration: 50; } } implicitWidth: actualLabel.contentWidth + (UM.Theme.getSize("default_margin").width * 2) @@ -205,9 +241,17 @@ Rectangle { id: actualLabel anchors.centerIn: parent - color: !control.enabled ? UM.Theme.getColor("action_button_disabled_text") : - control.pressed ? UM.Theme.getColor("action_button_active_text") : - control.hovered ? UM.Theme.getColor("action_button_hovered_text") : UM.Theme.getColor("action_button_text") + color: + { + if(!control.enabled) + return UM.Theme.getColor("action_button_disabled_text"); + else if(control.pressed) + return UM.Theme.getColor("action_button_active_text"); + else if(control.hovered) + return UM.Theme.getColor("action_button_hovered_text"); + else + return UM.Theme.getColor("action_button_text"); + } font: UM.Theme.getFont("action_button") text: control.text; } From cf06df8b07e72807e0ef8d499472721309e557df Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Thu, 4 Aug 2016 16:39:46 +0200 Subject: [PATCH 131/228] Add a sidebar state for when a printer is not accepting commands CURA-1851 --- resources/qml/MonitorButton.qml | 11 ++- resources/qml/Sidebar.qml | 35 ++++--- .../themes/cura/icons/tab_monitor_unknown.svg | 97 +++++++++++++++++++ 3 files changed, 126 insertions(+), 17 deletions(-) create mode 100644 resources/themes/cura/icons/tab_monitor_unknown.svg diff --git a/resources/qml/MonitorButton.qml b/resources/qml/MonitorButton.qml index 6ea9ba482f..4be04b1eab 100644 --- a/resources/qml/MonitorButton.qml +++ b/resources/qml/MonitorButton.qml @@ -15,13 +15,14 @@ Rectangle UM.I18nCatalog { id: catalog; name:"cura"} property bool printerConnected: Cura.MachineManager.printerOutputDevices.length != 0 + property bool printerAcceptsCommands: printerConnected && Cura.MachineManager.printerOutputDevices[0].acceptsCommands property real progress: printerConnected ? Cura.MachineManager.printerOutputDevices[0].progress : 0 property int backendState: UM.Backend.state property variant statusColor: { - if(!printerConnected) - return UM.Theme.getColor("status_offline"); + if(!printerConnected || !printerAcceptsCommands) + return UM.Theme.getColor("text"); switch(Cura.MachineManager.printerOutputDevices[0].jobState) { @@ -49,7 +50,9 @@ Rectangle property string statusText: { if(!printerConnected) - return catalog.i18nc("@label:MonitorStatus", "Not connected to a printer") + return catalog.i18nc("@label:MonitorStatus", "Not connected to a printer"); + if(!printerAcceptsCommands) + return catalog.i18nc("@label:MonitorStatus", "Printer does not accept commands"); var printerOutputDevice = Cura.MachineManager.printerOutputDevices[0] switch(printerOutputDevice.jobState) @@ -253,7 +256,7 @@ Rectangle return UM.Theme.getColor("action_button_text"); } font: UM.Theme.getFont("action_button") - text: control.text; + text: control.text } } label: Item { } diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml index 8e2c571a3e..aa51fcfefe 100644 --- a/resources/qml/Sidebar.qml +++ b/resources/qml/Sidebar.qml @@ -108,19 +108,28 @@ Rectangle onClicked: monitoringPrint = true iconSource: { if(!printerConnected) - return UM.Theme.getIcon("tab_monitor") - else if(Cura.MachineManager.printerOutputDevices[0].jobState == "printing" || Cura.MachineManager.printerOutputDevices[0].jobState == "pre_print" || Cura.MachineManager.printerOutputDevices[0].jobState == "wait_cleanup" ) - return UM.Theme.getIcon("tab_monitor_busy") - else if(Cura.MachineManager.printerOutputDevices[0].jobState == "ready" || Cura.MachineManager.printerOutputDevices[0].jobState == "") - return UM.Theme.getIcon("tab_monitor_connected") - else if(Cura.MachineManager.printerOutputDevices[0].jobState == "paused") - return UM.Theme.getIcon("tab_monitor_paused") - else if (Cura.MachineManager.printerOutputDevices[0].jobState == "error") - return UM.Theme.getIcon("tab_monitor_stopped") - else if (Cura.MachineManager.printerOutputDevices[0].jobState == "offline") - return UM.Theme.getIcon("tab_monitor_offline") - else - return UM.Theme.getIcon("tab_monitor") + return UM.Theme.getIcon("tab_monitor"); + else if(!printerAcceptsCommands) + return UM.Theme.getIcon("tab_monitor_unknown"); + + switch(Cura.MachineManager.printerOutputDevices[0].jobState) + { + case "printing": + case "pre_print": + case "wait_cleanup": + return UM.Theme.getIcon("tab_monitor_busy"); + case "ready": + case "": + return UM.Theme.getIcon("tab_monitor_connected") + case "paused": + return UM.Theme.getIcon("tab_monitor_paused") + case "error": + return UM.Theme.getIcon("tab_monitor_stopped") + case "offline": + return UM.Theme.getIcon("tab_monitor_offline") + default: + return UM.Theme.getIcon("tab_monitor") + } } checkable: true checked: monitoringPrint diff --git a/resources/themes/cura/icons/tab_monitor_unknown.svg b/resources/themes/cura/icons/tab_monitor_unknown.svg new file mode 100644 index 0000000000..cf95b28ab3 --- /dev/null +++ b/resources/themes/cura/icons/tab_monitor_unknown.svg @@ -0,0 +1,97 @@ + + + + + + image/svg+xml + + Fill 1 Copy 3 + + + + + + Fill 1 Copy 3 + Created with Sketch. + + + + + + + + + + + From 93f6f5d8d3e96f9a0c04ca07a05177487fc8d4f3 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 4 Aug 2016 16:20:06 +0200 Subject: [PATCH 132/228] Don't use extruderValue on settings that have no global_inherits_stack It's unnecessary and seems to break things. Contributes to issue CURA-2024. --- resources/definitions/fdmprinter.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 39eb066a9e..814417f2b8 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -2270,7 +2270,7 @@ "description": "Connect the ZigZags. This will increase the strength of the zig zag support structure.", "type": "bool", "default_value": true, - "enabled": "support_enable and (extruderValue(support_extruder_nr, 'support_pattern') == \"zigzag\")", + "enabled": "support_enable and (support_pattern == 'zigzag')", "settable_per_mesh": false, "settable_per_extruder": true }, @@ -2341,7 +2341,7 @@ "value": "0.1 if support_type == 'everywhere' else 0", "global_inherits_stack": "support_extruder_nr", "type": "float", - "enabled": "support_enable and extruderValue(support_extruder_nr, 'support_type') == 'everywhere'", + "enabled": "support_enable and support_type == 'everywhere'", "settable_per_mesh": true } } From 50cd98f2bba8c90586a55967f117e27be92412f7 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 4 Aug 2016 16:54:29 +0200 Subject: [PATCH 133/228] Allow extruderValue(s) to fallback to global If a setting is not defined in the extruder stack, fall back to global. At least it still tries to get the extruder value from the correct stack first. If that stack has no value, then so be it, use global anyway. Contributes to issue CURA-2024. Also could affect issue CURA-2006. --- cura/Settings/ExtruderManager.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cura/Settings/ExtruderManager.py b/cura/Settings/ExtruderManager.py index 71bd58ded5..05a6f859af 100644 --- a/cura/Settings/ExtruderManager.py +++ b/cura/Settings/ExtruderManager.py @@ -298,7 +298,7 @@ class ExtruderManager(QObject): result = [] for extruder in ExtruderManager.getInstance().getMachineExtruders(global_stack.getId()): - value = extruder.getRawProperty(key, "value", use_next = False) + value = extruder.getRawProperty(key, "value") if not value: continue @@ -327,7 +327,7 @@ class ExtruderManager(QObject): value = None if extruder: - value = extruder.getRawProperty(key, "value", use_next = False) + value = extruder.getRawProperty(key, "value") if isinstance(value, UM.Settings.SettingFunction): value = value(extruder) From 6cf8536404356696bf84e90fa3ddfc6e6a3cc69c Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Thu, 4 Aug 2016 18:22:35 +0200 Subject: [PATCH 134/228] Rename pause button to pause/resume button for clarity CURA-1851 --- resources/qml/MonitorButton.qml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/resources/qml/MonitorButton.qml b/resources/qml/MonitorButton.qml index 4be04b1eab..8aefe52f9f 100644 --- a/resources/qml/MonitorButton.qml +++ b/resources/qml/MonitorButton.qml @@ -194,11 +194,7 @@ Rectangle Button { - id: pauseButton - - visible: printerConnected - enabled: printerConnected && Cura.MachineManager.printerOutputDevices[0].acceptsCommands && - (Cura.MachineManager.printerOutputDevices[0].jobState == "paused" || Cura.MachineManager.printerOutputDevices[0].jobState == "printing") + id: pauseResumeButton height: UM.Theme.getSize("save_button_save_to_button").height anchors.top: progressBar.bottom @@ -206,6 +202,10 @@ Rectangle anchors.right: abortButton.left anchors.rightMargin: UM.Theme.getSize("default_margin").width + visible: printerConnected + enabled: printerConnected && Cura.MachineManager.printerOutputDevices[0].acceptsCommands && + (Cura.MachineManager.printerOutputDevices[0].jobState == "paused" || Cura.MachineManager.printerOutputDevices[0].jobState == "printing") + text: printerConnected ? Cura.MachineManager.printerOutputDevices[0].jobState == "paused" ? catalog.i18nc("@label:", "Resume") : catalog.i18nc("@label:", "Pause") : "" onClicked: Cura.MachineManager.printerOutputDevices[0].setJobState(Cura.MachineManager.printerOutputDevices[0].jobState == "paused" ? "print" : "pause") From eddbc87ceb6598cf944435e92796a6c0c17dc367 Mon Sep 17 00:00:00 2001 From: Mark Walker Date: Wed, 3 Aug 2016 17:48:36 -0700 Subject: [PATCH 135/228] New settings to allow control over automatic speed changes when MergeInfillLines adjusts speed for even pressure when changing extrusion widths. --- resources/definitions/fdmprinter.def.json | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 814417f2b8..6f3079b4d7 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -2013,6 +2013,29 @@ "value": "jerk_layer_0", "enabled": "jerk_enabled", "settable_per_mesh": false + }, + "speed_for_pressure_enabled": + { + "label": "Equalize Nozzle Pressure", + "description": "Attempt to dampen nozzle pressure changes by varying printing speed with extrusion width for narrow extrusions", + "type": "bool", + "default_value": true, + "settable_per_mesh": false, + "settable_per_extruder": false + }, + "speed_pressure_maximum": + { + "label": "Maximum Speed for Pressure", + "description": "Maximum print speed when adjusting to equalize nozzle pressure.", + "type": "float", + "unit": "mm/s", + "enabled": "speed_for_pressure_enabled", + "default_value": 150, + "minimum_value": "0.1", + "maximum_value": "299792458000", + "maximum_value_warning": "150", + "settable_per_mesh": false, + "settable_per_extruder": false } } }, From 1e62b43d53bbdbc62ee5dff1113c05ee1046be89 Mon Sep 17 00:00:00 2001 From: Mark Walker Date: Thu, 4 Aug 2016 10:19:36 -0700 Subject: [PATCH 136/228] Rename pressure to flow --- resources/definitions/fdmprinter.def.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 6f3079b4d7..e87e3b2bb9 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -2014,28 +2014,28 @@ "enabled": "jerk_enabled", "settable_per_mesh": false }, - "speed_for_pressure_enabled": + "speed_equalize_flow_enabled": { - "label": "Equalize Nozzle Pressure", - "description": "Attempt to dampen nozzle pressure changes by varying printing speed with extrusion width for narrow extrusions", + "label": "Equalize Filament Flow", + "description": "Print thinner than normal lines faster so that the amount of material extruded per second remains the same. Thin pieces in your model might require lines printed with smaller line width than provided in the settings. This setting controls the speed changes for such lines.", "type": "bool", "default_value": true, "settable_per_mesh": false, - "settable_per_extruder": false + "settable_per_extruder": true }, - "speed_pressure_maximum": + "speed_equalize_flow_max": { - "label": "Maximum Speed for Pressure", - "description": "Maximum print speed when adjusting to equalize nozzle pressure.", + "label": "Maximum Speed for Flow Equalization", + "description": "Maximum print speed when adjusting in order to equalize flow.", "type": "float", "unit": "mm/s", - "enabled": "speed_for_pressure_enabled", + "enabled": "speed_equalize_flow_enabled", "default_value": 150, "minimum_value": "0.1", "maximum_value": "299792458000", "maximum_value_warning": "150", "settable_per_mesh": false, - "settable_per_extruder": false + "settable_per_extruder": true } } }, From a485b5805119da7c907096ede1365053d2576add Mon Sep 17 00:00:00 2001 From: Mark Walker Date: Thu, 4 Aug 2016 12:18:53 -0700 Subject: [PATCH 137/228] Move equalize_flow settings ahead of acceleration And add "the print speed" to the description --- resources/definitions/fdmprinter.def.json | 46 +++++++++++------------ 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index e87e3b2bb9..7cf60f82a4 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1577,6 +1577,29 @@ "settable_per_mesh": false, "settable_per_extruder": false }, + "speed_equalize_flow_enabled": + { + "label": "Equalize Filament Flow", + "description": "Print thinner than normal lines faster so that the amount of material extruded per second remains the same. Thin pieces in your model might require lines printed with smaller line width than provided in the settings. This setting controls the speed changes for such lines.", + "type": "bool", + "default_value": true, + "settable_per_mesh": false, + "settable_per_extruder": true + }, + "speed_equalize_flow_max": + { + "label": "Maximum Speed for Flow Equalization", + "description": "Maximum print speed when adjusting the print speed in order to equalize flow.", + "type": "float", + "unit": "mm/s", + "enabled": "speed_equalize_flow_enabled", + "default_value": 150, + "minimum_value": "0.1", + "maximum_value": "299792458000", + "maximum_value_warning": "150", + "settable_per_mesh": false, + "settable_per_extruder": true + }, "acceleration_enabled": { @@ -2013,29 +2036,6 @@ "value": "jerk_layer_0", "enabled": "jerk_enabled", "settable_per_mesh": false - }, - "speed_equalize_flow_enabled": - { - "label": "Equalize Filament Flow", - "description": "Print thinner than normal lines faster so that the amount of material extruded per second remains the same. Thin pieces in your model might require lines printed with smaller line width than provided in the settings. This setting controls the speed changes for such lines.", - "type": "bool", - "default_value": true, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "speed_equalize_flow_max": - { - "label": "Maximum Speed for Flow Equalization", - "description": "Maximum print speed when adjusting in order to equalize flow.", - "type": "float", - "unit": "mm/s", - "enabled": "speed_equalize_flow_enabled", - "default_value": 150, - "minimum_value": "0.1", - "maximum_value": "299792458000", - "maximum_value_warning": "150", - "settable_per_mesh": false, - "settable_per_extruder": true } } }, From a46f6cc14d17e57d48dd88bf0689aab13b09587b Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 5 Aug 2016 11:36:16 +0200 Subject: [PATCH 138/228] Properly fallback to global if no extruders This fixes the extruderValue function for printers such as the Ultimaker 2+. --- cura/Settings/ExtruderManager.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/cura/Settings/ExtruderManager.py b/cura/Settings/ExtruderManager.py index 05a6f859af..0cb9322fd9 100644 --- a/cura/Settings/ExtruderManager.py +++ b/cura/Settings/ExtruderManager.py @@ -328,8 +328,9 @@ class ExtruderManager(QObject): if extruder: value = extruder.getRawProperty(key, "value") - - if isinstance(value, UM.Settings.SettingFunction): - value = value(extruder) + if isinstance(value, UM.Settings.SettingFunction): + value = value(extruder) + else: #Just a value from global. + value = UM.Application.getInstance().getGlobalContainerStack().getProperty(key, "value") return value From 92b154f5fe6a5185718f44daa4543a0493d64861 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 5 Aug 2016 11:59:32 +0200 Subject: [PATCH 139/228] More defensive check for global_inherits_stack extruder This should never give the keyerror any more and always default back to non-global_inherits_stack mode. Contributes to issue CURA-2067. --- .../PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py b/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py index e487870d8a..8eab144158 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py +++ b/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py @@ -62,7 +62,7 @@ class PerObjectSettingVisibilityHandler(UM.Settings.Models.SettingVisibilityHand if definition.global_inherits_stack and self._stack.getProperty("machine_extruder_count", "value") > 1: #Obtain the value from the correct container stack. Only once, upon adding the setting. stack_nr = self._stack.getProperty(item, "global_inherits_stack") #Stack to get the setting from. - if float(stack_nr) >= 0: #Only if it defines an extruder stack. + if stack_nr in ExtruderManager.getInstance().extruderIds: #Only if it defines an extruder stack. extruder_stack = UM.Settings.ContainerRegistry.getInstance().findContainerStacks(id = ExtruderManager.getInstance().extruderIds[stack_nr])[0] new_instance.setProperty("value", extruder_stack.getProperty(item, "value")) settings.addInstance(new_instance) From 51d972941ec8b91d092726b7fed2ba8407ed9d44 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 5 Aug 2016 12:05:01 +0200 Subject: [PATCH 140/228] Handle rounding errors in stack_nr Wouldn't want it to index extruder '1.0'. Contributes to issue CURA-2067. --- .../PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py b/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py index 8eab144158..cf86a9b48e 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py +++ b/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py @@ -61,7 +61,7 @@ class PerObjectSettingVisibilityHandler(UM.Settings.Models.SettingVisibilityHand new_instance = SettingInstance(definition, settings) if definition.global_inherits_stack and self._stack.getProperty("machine_extruder_count", "value") > 1: #Obtain the value from the correct container stack. Only once, upon adding the setting. - stack_nr = self._stack.getProperty(item, "global_inherits_stack") #Stack to get the setting from. + stack_nr = str(int(round(float(self._stack.getProperty(item, "global_inherits_stack"))))) #Stack to get the setting from. Round it and remove the fractional part. if stack_nr in ExtruderManager.getInstance().extruderIds: #Only if it defines an extruder stack. extruder_stack = UM.Settings.ContainerRegistry.getInstance().findContainerStacks(id = ExtruderManager.getInstance().extruderIds[stack_nr])[0] new_instance.setProperty("value", extruder_stack.getProperty(item, "value")) From 09801db5f8cc2d83f04686bfef8e8f5b852cce88 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 5 Aug 2016 13:48:04 +0200 Subject: [PATCH 141/228] Fix support interface density and pattern global inherits stack These depend on values that are obtained through global_inherits_stack, so they must also have global_inherits_stack. Contributes to issue CURA-2024. --- resources/definitions/fdmprinter.def.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 814417f2b8..7662ed4a6d 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -2501,7 +2501,8 @@ "default_value": 100, "minimum_value": "0", "maximum_value_warning": "100", - "enabled":"extruderValue(support_extruder_nr, 'support_interface_enable') and support_enable", + "global_inherits_stack": "support_extruder_nr", + "enabled": "extruderValue(support_extruder_nr, 'support_interface_enable') and support_enable", "settable_per_mesh": false, "settable_per_extruder": true, "children": @@ -2515,6 +2516,7 @@ "default_value": 0.4, "minimum_value": "0", "value": "0 if support_interface_density == 0 else (support_interface_line_width * 100) / support_interface_density * (2 if support_interface_pattern == \"grid\" else (3 if support_interface_pattern == \"triangles\" else 1))", + "global_inherits_stack": "support_extruder_nr", "enabled": "extruderValue(support_extruder_nr, 'support_interface_enable') and support_enable", "settable_per_mesh": false, "settable_per_extruder": true @@ -2535,6 +2537,7 @@ "zigzag": "Zig Zag" }, "default_value": "concentric", + "global_inherits_stack": "support_extruder_nr", "enabled": "extruderValue(support_extruder_nr, 'support_interface_enable') and support_enable", "settable_per_mesh": false, "settable_per_extruder": true From 2edda6802188723a93292ce0f5462fc91ba58925 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Fri, 5 Aug 2016 15:12:13 +0200 Subject: [PATCH 142/228] Improve validator for numeric fields Do not accept fractional input for "int" settings Also only accept a "-" as the first character --- resources/qml/Settings/SettingTextField.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Settings/SettingTextField.qml b/resources/qml/Settings/SettingTextField.qml index 18a55c7a50..4d05bef2b9 100644 --- a/resources/qml/Settings/SettingTextField.qml +++ b/resources/qml/Settings/SettingTextField.qml @@ -100,7 +100,7 @@ SettingItem maximumLength: 10; - validator: RegExpValidator { regExp: /[0-9.,-]{0,10}/ } + validator: RegExpValidator { regExp: (type == "int") ? /^-?[0-9]{0,10}/ : /^-?[0-9.,]{0,10}/ } //"type" property from parent loader used to disallow fractional number entry Binding { From ea3e2225ed02866ffdba4f82a0d114659e1c4a8c Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Fri, 5 Aug 2016 15:23:47 +0200 Subject: [PATCH 143/228] Don't pass support_angle to shader unless it is valid CURA-2058 --- plugins/SolidView/SolidView.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/SolidView/SolidView.py b/plugins/SolidView/SolidView.py index 0329fb53e2..d80f077416 100644 --- a/plugins/SolidView/SolidView.py +++ b/plugins/SolidView/SolidView.py @@ -8,6 +8,7 @@ from UM.Resources import Resources from UM.Application import Application from UM.Preferences import Preferences from UM.View.Renderer import Renderer +from UM.Settings.Validator import ValidatorState from UM.View.GL.OpenGL import OpenGL @@ -43,7 +44,7 @@ class SolidView(View): if Application.getInstance().getGlobalContainerStack(): if Preferences.getInstance().getValue("view/show_overhang"): angle = Application.getInstance().getGlobalContainerStack().getProperty("support_angle", "value") - if angle is not None: + if angle is not None and Application.getInstance().getGlobalContainerStack().getProperty("support_angle", "validationState") == ValidatorState.Valid: self._enabled_shader.setUniformValue("u_overhangAngle", math.cos(math.radians(90 - angle))) else: self._enabled_shader.setUniformValue("u_overhangAngle", math.cos(math.radians(0))) #Overhang angle of 0 causes no area at all to be marked as overhang. From fa0d8f912f62eb1c5d1b98d7de47a308556bb86b Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Fri, 5 Aug 2016 16:02:10 +0200 Subject: [PATCH 144/228] Don't show UMO upgrades page for UMO+ --- resources/definitions/ultimaker_original_plus.def.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/definitions/ultimaker_original_plus.def.json b/resources/definitions/ultimaker_original_plus.def.json index 4f787896d0..2c83070add 100644 --- a/resources/definitions/ultimaker_original_plus.def.json +++ b/resources/definitions/ultimaker_original_plus.def.json @@ -12,7 +12,8 @@ "icon": "icon_ultimaker.png", "platform": "ultimaker2_platform.obj", "platform_texture": "UltimakerPlusbackplate.png", - "supported_actions":["UMOCheckup", "UpgradeFirmware", "BedLevel"] + "first_start_actions": ["UMOCheckup", "BedLevel"], + "supported_actions": ["UMOCheckup", "BedLevel", "UpgradeFirmware"] }, "overrides": { From 78848567e0be0e8e503fadab4b0f3af2781aadc8 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Fri, 5 Aug 2016 16:04:51 +0200 Subject: [PATCH 145/228] Add printer when pressing enter in Add Printer page instead of closing page CURA-1354 --- resources/qml/AddMachineDialog.qml | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/resources/qml/AddMachineDialog.qml b/resources/qml/AddMachineDialog.qml index a2b7c1586f..e37629306b 100644 --- a/resources/qml/AddMachineDialog.qml +++ b/resources/qml/AddMachineDialog.qml @@ -183,13 +183,17 @@ UM.Dialog text: catalog.i18nc("@action:button", "Add Printer") anchors.bottom: parent.bottom anchors.right: parent.right - onClicked: - { - base.visible = false - var item = machineList.model.getItem(machineList.currentIndex); - Cura.MachineManager.addMachine(machineName.text, item.id) - base.machineAdded(item.id) // Emit signal that the user added a machine. - } + onClicked: addMachine() + } + + onAccepted: addMachine() + + function addMachine() + { + base.visible = false + var item = machineList.model.getItem(machineList.currentIndex); + Cura.MachineManager.addMachine(machineName.text, item.id) + base.machineAdded(item.id) // Emit signal that the user added a machine. } Item From 021a33d6bd5114d3ff7edb8fa0a85c91ba55d08d Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 5 Aug 2016 17:30:11 +0200 Subject: [PATCH 146/228] Always set value of added setting instance The value property was sometimes not set. In the default case, this just added an empty setting instance (for a particular key), which appeared to do nothing until you've changed it. This appears correct because if it's not changed then it should be the same as the extruder's value, but if you then change the extruder's value it doesn't update its visible value but still has no value in the setting instance, so the value still falls back to the extruder and the setting ends up different from what is being displayed. Contributes to issue CURA-1988. --- .../PerObjectSettingVisibilityHandler.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py b/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py index cf86a9b48e..e7295c3f97 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py +++ b/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py @@ -59,12 +59,17 @@ class PerObjectSettingVisibilityHandler(UM.Settings.Models.SettingVisibilityHand definition = self._stack.getSettingDefinition(item) if definition: new_instance = SettingInstance(definition, settings) + stack_nr = -1 if definition.global_inherits_stack and self._stack.getProperty("machine_extruder_count", "value") > 1: #Obtain the value from the correct container stack. Only once, upon adding the setting. stack_nr = str(int(round(float(self._stack.getProperty(item, "global_inherits_stack"))))) #Stack to get the setting from. Round it and remove the fractional part. - if stack_nr in ExtruderManager.getInstance().extruderIds: #Only if it defines an extruder stack. - extruder_stack = UM.Settings.ContainerRegistry.getInstance().findContainerStacks(id = ExtruderManager.getInstance().extruderIds[stack_nr])[0] - new_instance.setProperty("value", extruder_stack.getProperty(item, "value")) + if stack_nr not in ExtruderManager.getInstance().extruderIds and self._stack.getProperty("extruder_nr", "value"): #Property not defined, but we have an extruder number. + stack_nr = str(int(round(float(self._stack.getProperty("extruder_nr", "value"))))) + if stack_nr in ExtruderManager.getInstance().extruderIds: #We have either a global_inherits_stack or an extruder_nr. + stack = UM.Settings.ContainerRegistry.getInstance().findContainerStacks(id = ExtruderManager.getInstance().extruderIds[stack_nr])[0] + else: + stack = UM.Application.getInstance().getGlobalContainerStack() + new_instance.setProperty("value", stack.getProperty(item, "value")) settings.addInstance(new_instance) visibility_changed = True else: From 6b2935379f46429b125ba3a786324a6617296ef0 Mon Sep 17 00:00:00 2001 From: Thomas Karl Pietrowski Date: Sun, 7 Aug 2016 08:03:51 +0200 Subject: [PATCH 147/228] Adding "LinuxMint" Moving the Nvidia fix just broke another PR here on GitHub. This is the original commit: https://github.com/Ultimaker/Cura/pull/909/commits/8b750cb27c509b8d16f72c34c05de7f6784eceda Thanks to @Nihlus Why we are still listing all the distributions? - Still it isn't clear whether this problem is a "Debian"-specific bug or not. --- cura_app.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura_app.py b/cura_app.py index ee986ef862..92fbf69383 100755 --- a/cura_app.py +++ b/cura_app.py @@ -13,7 +13,7 @@ from UM.Platform import Platform if Platform.isLinux(): # Needed for platform.linux_distribution, which is not available on Windows and OSX # For Ubuntu: https://bugs.launchpad.net/ubuntu/+source/python-qt4/+bug/941826 print(platform.linux_distribution()) - if platform.linux_distribution()[0] in ("debian", "Ubuntu", ): # TODO: Needs a "if X11_GFX == 'nvidia'" here. The workaround is only needed on Ubuntu+NVidia drivers. Other drivers are not affected, but fine with this fix. + if platform.linux_distribution()[0] in ("debian", "Ubuntu", "LinuxMint"): # TODO: Needs a "if X11_GFX == 'nvidia'" here. The workaround is only needed on Ubuntu+NVidia drivers. Other drivers are not affected, but fine with this fix. import ctypes from ctypes.util import find_library libGL = find_library("GL") From 8e92cb4c91bff762396d6603013c11a0f092894e Mon Sep 17 00:00:00 2001 From: Thomas Karl Pietrowski Date: Sun, 7 Aug 2016 08:16:22 +0200 Subject: [PATCH 148/228] CURA-1923: Don't return a complete traceback on HTTPError As discussed on GitHub we don't need a complete traceback on HTTPError. However URLError should return a full traceback, like any other exception that might occur. --- plugins/SliceInfoPlugin/SliceInfo.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/SliceInfoPlugin/SliceInfo.py b/plugins/SliceInfoPlugin/SliceInfo.py index 5630f76805..57a1db7244 100644 --- a/plugins/SliceInfoPlugin/SliceInfo.py +++ b/plugins/SliceInfoPlugin/SliceInfo.py @@ -47,7 +47,9 @@ class SliceInfoJob(Job): f = urllib.request.urlopen(self.url, **kwoptions) Logger.log("i", "Sent anonymous slice info to %s", self.url) f.close() - except Exception: + except urllib.error.HTTPError as http_exception: + Logger.log("e", "An exception occurred while trying to send slice information: %s" %(repr(http_exception))) + except Exception: # Includes urllib.error.HTTPError, was discussed to be handled like any other exception Logger.logException("e", "An exception occurred while trying to send slice information") ## This Extension runs in the background and sends several bits of information to the Ultimaker servers. From e5ff77bc5c4d94051880ab2a44e3f20c5dea589c Mon Sep 17 00:00:00 2001 From: Thomas Karl Pietrowski Date: Sun, 7 Aug 2016 08:17:31 +0200 Subject: [PATCH 149/228] Showing less traceinfo --- plugins/SliceInfoPlugin/SliceInfo.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/SliceInfoPlugin/SliceInfo.py b/plugins/SliceInfoPlugin/SliceInfo.py index 57a1db7244..5d48a2ec4f 100644 --- a/plugins/SliceInfoPlugin/SliceInfo.py +++ b/plugins/SliceInfoPlugin/SliceInfo.py @@ -144,7 +144,7 @@ class SliceInfo(Extension): # Sending slice info non-blocking reportJob = SliceInfoJob(self.info_url, binary_data) reportJob.start() - except: + except Exception as e: # We really can't afford to have a mistake here, as this would break the sending of g-code to a device # (Either saving or directly to a printer). The functionality of the slice data is not *that* important. - Logger.logException("e", "Exception raised while sending slice info") # But we should be notified about these problems of course. \ No newline at end of file + Logger.log("e", "Exception raised while sending slice info: %s" %(repr(e))) # But we should be notified about these problems of course. \ No newline at end of file From 0a126cf80999a49eca25be68e95465d8c5169bf4 Mon Sep 17 00:00:00 2001 From: Thomas Karl Pietrowski Date: Sun, 7 Aug 2016 08:38:15 +0200 Subject: [PATCH 150/228] Generate cura.desktop (#668) Adds support to install Cura to an alternative path, while generating a correct .desktop file for it. * Renaming cura.desktop to cura.desktop.in * CMAKE: Generate .desktop from .desktop.in * Replace hardcoded paths with FULL_PATHs * Tell CMake to generate cura.desktop * CMake: Set full paths for .desktop generation * It tells CMake where to find the .desktop.in is and where to store the result. --- CMakeLists.txt | 3 ++- cura.desktop => cura.desktop.in | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) rename cura.desktop => cura.desktop.in (77%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 40d94135ce..40fac2ca2f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,6 +14,7 @@ add_custom_command(TARGET tests POST_BUILD COMMAND "PYTHONPATH=${CMAKE_SOURCE_DI set(CURA_VERSION "master" CACHE STRING "Version name of Cura") set(CURA_BUILDTYPE "" CACHE STRING "Build type of Cura, eg. 'PPA'") +configure_file(${CMAKE_SOURCE_DIR}/cura.desktop.in ${CMAKE_BINARY_DIR}/cura.desktop @ONLY) configure_file(cura/CuraVersion.py.in CuraVersion.py @ONLY) # Macro needed to list all sub-directory of a directory. @@ -76,7 +77,7 @@ if(NOT APPLE AND NOT WIN32) FILES_MATCHING PATTERN *.py) install(FILES ${CMAKE_BINARY_DIR}/CuraVersion.py DESTINATION lib/python${PYTHON_VERSION_MAJOR}/dist-packages/cura) - install(FILES cura.desktop + install(FILES ${CMAKE_BINARY_DIR}/cura.desktop DESTINATION ${CMAKE_INSTALL_DATADIR}/applications) install(FILES cura.sharedmimeinfo DESTINATION ${CMAKE_INSTALL_DATADIR}/mime/packages/ diff --git a/cura.desktop b/cura.desktop.in similarity index 77% rename from cura.desktop rename to cura.desktop.in index 8e02fe6d52..0ac25c9521 100644 --- a/cura.desktop +++ b/cura.desktop.in @@ -5,9 +5,9 @@ Name[de]=Cura GenericName=3D Printing Software GenericName[de]=3D-Druck-Software Comment=Cura converts 3D models into paths for a 3D printer. It prepares your print for maximum accuracy, minimum printing time and good reliability with many extra features that make your print come out great. -Exec=/usr/bin/cura %F -TryExec=/usr/bin/cura -Icon=/usr/share/cura/resources/images/cura-icon.png +Exec=@CMAKE_INSTALL_FULL_BINDIR@/cura %F +TryExec=@CMAKE_INSTALL_FULL_BINDIR@/cura +Icon=@CMAKE_INSTALL_FULL_DATADIR@/cura/resources/images/cura-icon.png Terminal=false Type=Application MimeType=application/sla;application/vnd.ms-3mfdocument;application/prs.wavefront-obj;image/bmp;image/gif;image/jpeg;image/png From 31436cbdf5fd619f1d2bed36dd4a81440ce81c57 Mon Sep 17 00:00:00 2001 From: Thomas Karl Pietrowski Date: Sun, 7 Aug 2016 08:49:51 +0200 Subject: [PATCH 151/228] Removing debug print in Nvidia fix --- cura_app.py | 1 - 1 file changed, 1 deletion(-) diff --git a/cura_app.py b/cura_app.py index 92fbf69383..5c3ea811b5 100755 --- a/cura_app.py +++ b/cura_app.py @@ -12,7 +12,6 @@ from UM.Platform import Platform #WORKAROUND: GITHUB-88 GITHUB-385 GITHUB-612 if Platform.isLinux(): # Needed for platform.linux_distribution, which is not available on Windows and OSX # For Ubuntu: https://bugs.launchpad.net/ubuntu/+source/python-qt4/+bug/941826 - print(platform.linux_distribution()) if platform.linux_distribution()[0] in ("debian", "Ubuntu", "LinuxMint"): # TODO: Needs a "if X11_GFX == 'nvidia'" here. The workaround is only needed on Ubuntu+NVidia drivers. Other drivers are not affected, but fine with this fix. import ctypes from ctypes.util import find_library From dbe1d140c4f30ad7c64f760d42a372e64c59749b Mon Sep 17 00:00:00 2001 From: Thomas Karl Pietrowski Date: Sun, 7 Aug 2016 08:54:58 +0200 Subject: [PATCH 152/228] Removing old function --- plugins/SliceInfoPlugin/SliceInfo.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/plugins/SliceInfoPlugin/SliceInfo.py b/plugins/SliceInfoPlugin/SliceInfo.py index 5d48a2ec4f..5d1cca5f24 100644 --- a/plugins/SliceInfoPlugin/SliceInfo.py +++ b/plugins/SliceInfoPlugin/SliceInfo.py @@ -75,8 +75,6 @@ class SliceInfo(Extension): Preferences.getInstance().setValue("info/asked_send_slice_info", True) def _onWriteStarted(self, output_device): - self._removeFinishedThreads() - try: if not Preferences.getInstance().getValue("info/send_slice_info"): Logger.log("d", "'info/send_slice_info' is turned off.") From ecd80974f712a2463ce8a4ffd824f32d3e0cbb50 Mon Sep 17 00:00:00 2001 From: Thomas Karl Pietrowski Date: Sun, 7 Aug 2016 09:04:24 +0200 Subject: [PATCH 153/228] CURA-1923: Just something I missed Forgot to remove 'self' from 'super().__init__()' --- plugins/SliceInfoPlugin/SliceInfo.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/SliceInfoPlugin/SliceInfo.py b/plugins/SliceInfoPlugin/SliceInfo.py index 5d1cca5f24..7277bfaeec 100644 --- a/plugins/SliceInfoPlugin/SliceInfo.py +++ b/plugins/SliceInfoPlugin/SliceInfo.py @@ -26,7 +26,7 @@ class SliceInfoJob(Job): url = None def __init__(self, url, data): - super.__init__(self) + super().__init__() self.url = url self.data = data From d53fe9637ecdd01b08a5d2041b486e9391f82ed3 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 8 Aug 2016 09:44:39 +0200 Subject: [PATCH 154/228] Update documentation for return of getExtruderValue It now falls back to global instead of returning None. Contributes to issue CURA-2024. --- cura/Settings/ExtruderManager.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cura/Settings/ExtruderManager.py b/cura/Settings/ExtruderManager.py index 0cb9322fd9..10556096b0 100644 --- a/cura/Settings/ExtruderManager.py +++ b/cura/Settings/ExtruderManager.py @@ -320,11 +320,11 @@ class ExtruderManager(QObject): # \param extruder_index The index of the extruder to get the value from. # \param key The key of the setting to get the value of. # - # \return The value of the setting for the specified extruder or None if not found. + # \return The value of the setting for the specified extruder or for the + # global stack if not found. @staticmethod def getExtruderValue(extruder_index, key): extruder = ExtruderManager.getInstance().getExtruderStack(extruder_index) - value = None if extruder: value = extruder.getRawProperty(key, "value") From c57f13b3d3f40c4472d9cbaf91cc913c5b8a8f49 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Mon, 8 Aug 2016 10:13:14 +0200 Subject: [PATCH 155/228] JSON fix: turn off flow equalization by default (CURA-2065) --- resources/definitions/fdmprinter.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 00e3e73582..1a91bbea9c 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1582,7 +1582,7 @@ "label": "Equalize Filament Flow", "description": "Print thinner than normal lines faster so that the amount of material extruded per second remains the same. Thin pieces in your model might require lines printed with smaller line width than provided in the settings. This setting controls the speed changes for such lines.", "type": "bool", - "default_value": true, + "default_value": false, "settable_per_mesh": false, "settable_per_extruder": true }, From 4de5360ac592aa3fcc8ff3dbc3c484c76a92096d Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 8 Aug 2016 10:43:48 +0200 Subject: [PATCH 156/228] Use Logger.log instead of Logger.logException CURA-1923 --- plugins/SliceInfoPlugin/SliceInfo.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/SliceInfoPlugin/SliceInfo.py b/plugins/SliceInfoPlugin/SliceInfo.py index 7277bfaeec..047a03575d 100644 --- a/plugins/SliceInfoPlugin/SliceInfo.py +++ b/plugins/SliceInfoPlugin/SliceInfo.py @@ -48,9 +48,9 @@ class SliceInfoJob(Job): Logger.log("i", "Sent anonymous slice info to %s", self.url) f.close() except urllib.error.HTTPError as http_exception: - Logger.log("e", "An exception occurred while trying to send slice information: %s" %(repr(http_exception))) - except Exception: # Includes urllib.error.HTTPError, was discussed to be handled like any other exception - Logger.logException("e", "An exception occurred while trying to send slice information") + Logger.log("e", "An HTTP error occurred while trying to send slice information: %s" % http_exception) + except Exception as e: # We don't want any exception to cause problems + Logger.log("e", "An exception occurred while trying to send slice information: %s" % e) ## This Extension runs in the background and sends several bits of information to the Ultimaker servers. # The data is only sent when the user in question gave permission to do so. All data is anonymous and From 7c3b6814d01af30cf0fb736e06fd3b44d679b0ae Mon Sep 17 00:00:00 2001 From: Thomas Karl Pietrowski Date: Mon, 8 Aug 2016 10:45:41 +0200 Subject: [PATCH 157/228] Removing strays --- plugins/CuraEngineBackend/CuraEngineBackend.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 82ee3b8c84..82229ca8ac 100644 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -13,7 +13,6 @@ from UM.Resources import Resources from UM.Settings.Validator import ValidatorState #To find if a setting is in an error state. We can't slice then. from UM.Platform import Platform - import cura.Settings from cura.OneAtATimeIterator import OneAtATimeIterator @@ -33,7 +32,6 @@ import Arcus from UM.i18n import i18nCatalog catalog = i18nCatalog("cura") - class CuraEngineBackend(Backend): ## Starts the back-end plug-in. # From 42db29d86ad4c0341d0e5152c0fc2d5d656d05fd Mon Sep 17 00:00:00 2001 From: Thomas Karl Pietrowski Date: Mon, 8 Aug 2016 10:47:19 +0200 Subject: [PATCH 158/228] Removing the stray @awhiemstra mentioned --- plugins/CuraEngineBackend/CuraEngineBackend.py | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 82229ca8ac..4abf992312 100644 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -37,7 +37,6 @@ class CuraEngineBackend(Backend): # # This registers all the signal listeners and prepares for communication # with the back-end in general. - def __init__(self): super().__init__() From dff90342d2ad2dfcd52f84a02b27a8b96597e8aa Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 8 Aug 2016 12:00:56 +0200 Subject: [PATCH 159/228] Improve rendering of notice icon at small sizes CURA-2048 --- resources/themes/cura/icons/notice.svg | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/resources/themes/cura/icons/notice.svg b/resources/themes/cura/icons/notice.svg index 67595b326c..fc83b627c9 100644 --- a/resources/themes/cura/icons/notice.svg +++ b/resources/themes/cura/icons/notice.svg @@ -1,13 +1,7 @@ - - - + + From 6ab3939f757ad07582a84f9fc33947257c93c42e Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 8 Aug 2016 12:12:06 +0200 Subject: [PATCH 160/228] Fix broken backend plugin on Windows --- plugins/CuraEngineBackend/CuraEngineBackend.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 3b589c28d2..21a3367b7b 100644 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -43,7 +43,7 @@ class CuraEngineBackend(Backend): # Find out where the engine is located, and how it is called. # This depends on how Cura is packaged and which OS we are running on. executable_name = "CuraEngine" - default_engine_location = None + default_engine_location = "" if os.path.exists(os.path.join(Application.getInstallPrefix(), "bin", executable_name)): default_engine_location = os.path.join(Application.getInstallPrefix(), "bin", executable_name) if hasattr(sys, "frozen"): From 7326d776055a5b9e9ea6daba143c7d275f95c016 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 8 Aug 2016 12:30:47 +0200 Subject: [PATCH 161/228] Fix broken backend plugin on Windows --- plugins/CuraEngineBackend/CuraEngineBackend.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 21a3367b7b..70dcd300a4 100644 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -39,17 +39,16 @@ class CuraEngineBackend(Backend): # with the back-end in general. def __init__(self): super().__init__() - # Find out where the engine is located, and how it is called. # This depends on how Cura is packaged and which OS we are running on. executable_name = "CuraEngine" - default_engine_location = "" + if Platform.isWindows(): + executable_name += ".exe" + default_engine_location = executable_name if os.path.exists(os.path.join(Application.getInstallPrefix(), "bin", executable_name)): default_engine_location = os.path.join(Application.getInstallPrefix(), "bin", executable_name) if hasattr(sys, "frozen"): default_engine_location = os.path.join(os.path.dirname(os.path.abspath(sys.executable)), executable_name) - if Platform.isWindows(): - default_engine_location += ".exe" if Platform.isLinux() and not default_engine_location: if not os.getenv("PATH"): raise OSError("There is something wrong with your Linux installation.") @@ -58,12 +57,12 @@ class CuraEngineBackend(Backend): if os.path.exists(execpath): default_engine_location = execpath break - + if not default_engine_location: raise EnvironmentError("Could not find CuraEngine") - + Logger.log("i", "Found CuraEngine at: %s" %(default_engine_location)) - + default_engine_location = os.path.abspath(default_engine_location) Preferences.getInstance().addPreference("backend/location", default_engine_location) From d98c122bd5be9c8dfddf2cdaf1480904a5919314 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 8 Aug 2016 12:56:34 +0200 Subject: [PATCH 162/228] Disable extruder selection drop-downs in single-extrusion machines They don't function in single-extrusion machines. --- resources/definitions/fdmprinter.def.json | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 1a91bbea9c..f652d637ad 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3161,6 +3161,7 @@ "description": "The extruder train to use for printing the skirt/brim/raft. This is used in multi-extrusion.", "type": "extruder", "default_value": "0", + "enabled": "machine_extruder_count > 1", "settable_per_mesh": false, "settable_per_extruder": false }, @@ -3170,7 +3171,7 @@ "description": "The extruder train to use for printing the support. This is used in multi-extrusion.", "type": "extruder", "default_value": "0", - "enabled": "support_enable", + "enabled": "support_enable and machine_extruder_count > 1", "settable_per_mesh": false, "settable_per_extruder": false, "children": { @@ -3181,7 +3182,7 @@ "type": "extruder", "default_value": "0", "value": "support_extruder_nr", - "enabled": "support_enable", + "enabled": "support_enable and machine_extruder_count > 1", "settable_per_mesh": false, "settable_per_extruder": false }, @@ -3192,7 +3193,7 @@ "type": "extruder", "default_value": "0", "value": "support_extruder_nr", - "enabled": "support_enable", + "enabled": "support_enable and machine_extruder_count > 1", "settable_per_mesh": false, "settable_per_extruder": false }, @@ -3203,7 +3204,7 @@ "type": "extruder", "default_value": "0", "value": "support_extruder_nr", - "enabled": "support_enable and extruderValue(support_extruder_nr, 'support_interface_enable')", + "enabled": "support_enable and machine_extruder_count > 1 and extruderValue(support_extruder_nr, 'support_interface_enable')", "settable_per_mesh": false, "settable_per_extruder": false } From ca8ded6c350d82b71d8ed18354492571856eb9a5 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Mon, 8 Aug 2016 13:23:03 +0200 Subject: [PATCH 163/228] JSON fix: support z dist defaults to 1 layer instead of 2 (CURA-1283) --- resources/definitions/fdmprinter.def.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index f652d637ad..74a8545fdd 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -2333,7 +2333,7 @@ "type": "float", "minimum_value": "0", "maximum_value_warning": "10", - "default_value": 0.15, + "default_value": 0.1, "global_inherits_stack": "support_extruder_nr", "enabled": "support_enable", "settable_per_mesh": true, @@ -2346,7 +2346,7 @@ "unit": "mm", "minimum_value": "0", "maximum_value_warning": "10", - "default_value": 0.15, + "default_value": 0.1, "type": "float", "enabled": "support_enable", "value": "extruderValue(support_extruder_nr, 'support_z_distance')", @@ -2361,7 +2361,7 @@ "minimum_value": "0", "maximum_value_warning": "10", "default_value": 0.1, - "value": "0.1 if support_type == 'everywhere' else 0", + "value": "extruderValue(support_extruder_nr, 'support_z_distance') if support_type == 'everywhere' else 0", "global_inherits_stack": "support_extruder_nr", "type": "float", "enabled": "support_enable and support_type == 'everywhere'", From 7020fd6903a791f0bcc65ff09f73e2a70735f146 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 8 Aug 2016 13:53:39 +0200 Subject: [PATCH 164/228] Allow adding multiple per object settings at once This reuses the "GUI pattern" of the main setting visibility page. CURA-1799 --- plugins/PerObjectSettingsTool/PerObjectItem.qml | 8 ++++---- plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/PerObjectSettingsTool/PerObjectItem.qml b/plugins/PerObjectSettingsTool/PerObjectItem.qml index 2dddf0b444..b40106abce 100644 --- a/plugins/PerObjectSettingsTool/PerObjectItem.qml +++ b/plugins/PerObjectSettingsTool/PerObjectItem.qml @@ -16,17 +16,17 @@ UM.TooltipArea width: childrenRect.width; height: childrenRect.height; - Button + CheckBox { id: check text: definition.label + checked: addedSettingsModel.getVisible(model.key) onClicked: { - addedSettingsModel.setVisible(model.key, true); - settingPickDialog.visible = false - UM.ActiveTool.forceUpdate() + addedSettingsModel.setVisible(model.key, checked); + UM.ActiveTool.forceUpdate(); } } } diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml index 75cf522c14..569b17364f 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml +++ b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml @@ -377,7 +377,7 @@ Item { rightButtons: [ Button { - text: catalog.i18nc("@action:button", "Cancel"); + text: catalog.i18nc("@action:button", "Close"); onClicked: { settingPickDialog.visible = false; } From 36abe075cfee6ac3096ff3db4abfd6700639667d Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 8 Aug 2016 14:24:38 +0200 Subject: [PATCH 165/228] Restyle categories in add per object settings visibility dialog ... to match the Setting Visibility preference page CURA-1799 --- .../PerObjectCategory.qml | 35 ++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/plugins/PerObjectSettingsTool/PerObjectCategory.qml b/plugins/PerObjectSettingsTool/PerObjectCategory.qml index 2113a623a0..d248d24bee 100644 --- a/plugins/PerObjectSettingsTool/PerObjectCategory.qml +++ b/plugins/PerObjectSettingsTool/PerObjectCategory.qml @@ -13,7 +13,40 @@ import ".." Button { id: base; - style: UM.Theme.styles.sidebar_category; + style: ButtonStyle { + background: Item { } + label: Row + { + spacing: UM.Theme.getSize("default_lining").width + + UM.RecolorImage + { + anchors.verticalCenter: parent.verticalCenter + height: label.height / 2 + width: height + source: control.checked ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_right"); + color: control.hovered ? palette.highlight : palette.buttonText + } + UM.RecolorImage + { + anchors.verticalCenter: parent.verticalCenter + height: label.height + width: height + source: control.iconSource + color: control.hovered ? palette.highlight : palette.buttonText + } + Label + { + id: label + anchors.verticalCenter: parent.verticalCenter + text: control.text + color: control.hovered ? palette.highlight : palette.buttonText + font.bold: true + } + + SystemPalette { id: palette } + } + } signal showTooltip(string text); signal hideTooltip(); From ca2daae6abf4b6d40d4c5a9af034aa65eaea78b9 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 8 Aug 2016 15:10:26 +0200 Subject: [PATCH 166/228] Add a "show all" toggle to the select per object setting window This way the user can add a setting that is not made visible in the sidebar. Adding a specific setting no longer needs a detour through the setting visibility preference page. CURA-1799 --- .../PerObjectSettingsPanel.qml | 32 +++++++++++++++---- 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml index 569b17364f..4d29506099 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml +++ b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml @@ -257,7 +257,7 @@ Item { height: UM.Theme.getSize("setting").height; visible: parseInt(UM.Preferences.getValue("cura/active_mode")) == 1 - text: catalog.i18nc("@action:button", "Add Setting"); + text: catalog.i18nc("@action:button", "Select settings"); style: ButtonStyle { @@ -297,16 +297,19 @@ Item { UM.Dialog { id: settingPickDialog - title: catalog.i18nc("@title:window", "Pick a Setting to Customize") + title: catalog.i18nc("@title:window", "Select Settings to Customize for this object") + width: screenScaleFactor * 360; + property string labelFilter: "" TextField { - id: filter; + id: filter anchors { - top: parent.top; - left: parent.left; - right: parent.right; + top: parent.top + left: parent.left + right: toggleShowAll.left + rightMargin: UM.Theme.getSize("default_margin").width } placeholderText: catalog.i18nc("@label:textbox", "Filter..."); @@ -324,6 +327,23 @@ Item { } } + CheckBox + { + id: toggleShowAll + + anchors { + top: parent.top + right: parent.right + } + + text: catalog.i18nc("@label:checkbox", "Show all") + checked: listview.model.showAll + onClicked: + { + listview.model.showAll = checked; + } + } + ScrollView { id: scrollView From 2c61fe32494e965232c4627d6eb8d3d109f7b159 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 8 Aug 2016 15:40:41 +0200 Subject: [PATCH 167/228] Tweak layout of Per Object Settings CURA-1799 --- .../PerObjectSettingsPanel.qml | 175 +- resources/themes/cura/icons/minus.svg | 10260 ++++++++++++++++ 2 files changed, 10350 insertions(+), 85 deletions(-) create mode 100644 resources/themes/cura/icons/minus.svg diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml index 4d29506099..b033af49a8 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml +++ b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml @@ -147,106 +147,111 @@ Item { } } - Repeater + Column { - id: contents - height: childrenRect.height; + spacing: UM.Theme.getSize("default_lining").height - model: UM.SettingDefinitionsModel + Repeater { - id: addedSettingsModel; - containerId: Cura.MachineManager.activeDefinitionId - expanded: [ "*" ] + id: contents + height: childrenRect.height; - visibilityHandler: Cura.PerObjectSettingVisibilityHandler + model: UM.SettingDefinitionsModel { - selectedObjectId: UM.ActiveTool.properties.getValue("SelectedObjectId") - } - } + id: addedSettingsModel; + containerId: Cura.MachineManager.activeDefinitionId + expanded: [ "*" ] - delegate: Row - { - Loader - { - id: settingLoader - width: UM.Theme.getSize("setting").width; - height: UM.Theme.getSize("section").height; - - property var definition: model - property var settingDefinitionsModel: addedSettingsModel - property var propertyProvider: provider - - //Qt5.4.2 and earlier has a bug where this causes a crash: https://bugreports.qt.io/browse/QTBUG-35989 - //In addition, while it works for 5.5 and higher, the ordering of the actual combo box drop down changes, - //causing nasty issues when selecting different options. So disable asynchronous loading of enum type completely. - asynchronous: model.type != "enum" && model.type != "extruder" - - onLoaded: { - settingLoader.item.showRevertButton = false - settingLoader.item.showInheritButton = false - settingLoader.item.showLinkedSettingIcon = false - settingLoader.item.doDepthIndentation = false - settingLoader.item.doQualityUserSettingEmphasis = false - } - - sourceComponent: + visibilityHandler: Cura.PerObjectSettingVisibilityHandler { - switch(model.type) - { - case "int": - return settingTextField - case "float": - return settingTextField - case "enum": - return settingComboBox - case "extruder": - return settingExtruder - case "bool": - return settingCheckBox - case "str": - return settingTextField - case "category": - return settingCategory - default: - return settingUnknown + selectedObjectId: UM.ActiveTool.properties.getValue("SelectedObjectId") + } + } + + delegate: Row + { + Loader + { + id: settingLoader + width: UM.Theme.getSize("setting").width + height: UM.Theme.getSize("section").height + + property var definition: model + property var settingDefinitionsModel: addedSettingsModel + property var propertyProvider: provider + + //Qt5.4.2 and earlier has a bug where this causes a crash: https://bugreports.qt.io/browse/QTBUG-35989 + //In addition, while it works for 5.5 and higher, the ordering of the actual combo box drop down changes, + //causing nasty issues when selecting different options. So disable asynchronous loading of enum type completely. + asynchronous: model.type != "enum" && model.type != "extruder" + + onLoaded: { + settingLoader.item.showRevertButton = false + settingLoader.item.showInheritButton = false + settingLoader.item.showLinkedSettingIcon = false + settingLoader.item.doDepthIndentation = false + settingLoader.item.doQualityUserSettingEmphasis = false } - } - } - Button - { - width: UM.Theme.getSize("setting").height; - height: UM.Theme.getSize("setting").height; - - onClicked: addedSettingsModel.setVisible(model.key, false); - - style: ButtonStyle - { - background: Item + sourceComponent: { - UM.RecolorImage + switch(model.type) { - anchors.verticalCenter: parent.verticalCenter - anchors.horizontalCenter: parent.horizontalCenter - width: parent.width/2 - height: parent.height/2 - sourceSize.width: width - sourceSize.height: width - color: control.hovered ? UM.Theme.getColor("setting_control_button_hover") : UM.Theme.getColor("setting_control_button") - source: UM.Theme.getIcon("cross1") + case "int": + return settingTextField + case "float": + return settingTextField + case "enum": + return settingComboBox + case "extruder": + return settingExtruder + case "bool": + return settingCheckBox + case "str": + return settingTextField + case "category": + return settingCategory + default: + return settingUnknown } } } - } - UM.SettingPropertyProvider - { - id: provider - containerStackId: UM.ActiveTool.properties.getValue("ContainerID") - key: model.key - watchedProperties: [ "value", "enabled", "validationState" ] - storeIndex: 0 - removeUnusedValue: false + Button + { + width: UM.Theme.getSize("setting").height / 2; + height: UM.Theme.getSize("setting").height; + + onClicked: addedSettingsModel.setVisible(model.key, false); + + style: ButtonStyle + { + background: Item + { + UM.RecolorImage + { + anchors.verticalCenter: parent.verticalCenter + width: parent.width + height: parent.height / 2 + sourceSize.width: width + sourceSize.height: width + color: control.hovered ? UM.Theme.getColor("setting_control_button_hover") : UM.Theme.getColor("setting_control_button") + source: UM.Theme.getIcon("minus") + } + } + } + } + + UM.SettingPropertyProvider + { + id: provider + + containerStackId: UM.ActiveTool.properties.getValue("ContainerID") + key: model.key + watchedProperties: [ "value", "enabled", "validationState" ] + storeIndex: 0 + removeUnusedValue: false + } } } } diff --git a/resources/themes/cura/icons/minus.svg b/resources/themes/cura/icons/minus.svg new file mode 100644 index 0000000000..4c4fb848ca --- /dev/null +++ b/resources/themes/cura/icons/minus.svg @@ -0,0 +1,10260 @@ + + + +image/svg+xml + eJzsvemOHMm1JvgE/g4xPy6galyG3MzN3N00jQZiyzsaaINKUuviokFQxVSJLRZZIFlSa55+vu/Y +4rZFZpIsFSkp01CszAhfbD3rd875t//rV18+OTx//YfbJ9N+3A3/9m+nN7fP3r1+85OdfLr76cuX +371994Yf/ejXX+zUsh9x0eGn69Nw4e9u37x98frVT3bK7ZV8ecO7f/Tz21evXn+x+9EX+OQ3L969 +vMVnv331jr89f6K/iG/Credn7/ClNj8e3Y+V3anpJ9bw62ev/vLs7dsX/x++VPO0Tvjs+Pq7V89f +vPr6+Pr//GQ37p6oCZfv+NL/58Wvb9+WX++VU0o556ZlXWarcbneu9GYyc3G2XmVm5+M+9FZO4+T +Hc2k53HG086vv/rum9tX73715vVXt2/fnl6/fP3m7U92p789e7X7+bOv8c2z3X/evnz5+q+748tn +X/15wIzYpzcvXt5i8N88e4cHcyoOP1X66fG7Fy+f/+K7b/5wi2nRjp9OT+WJv32LR+Gp/J0fL09/ ++g0++fL23TsMAu/jwH79H8e8Fxw224/+69e3X7+QlcEU/q8vwmPfvP72m2dv/vy2nB1+9Zvbb759 +iZmWuZn3dveE/8RfwjUYgHz/RC+YmWnl13qdd5ixeM02Nbd/eXH715/sfvH61a0f/+HNuy/9chkz +jv5f/82vv3t5++a3r168Q8dmfuT8DPz89fPbl7g+3X/z8pkMXJra/vUX/ObZm69v32GhX7/87p1s +ujW+ARP8s2d/u+UqydPU8vSICXqF97x6h+4+ffHHp3/xW/Xp1+9+ohZ/mXv6y29vX/3m9e9kKE+0 +2Y+zxh6c95OS/++UxfidNju1SneWFZM6pR6q7d/w2sPLd7dvXmGm46v/Tu+5vHr+NBy+2+f5u6y8 +i2+KM7JgH/0KO+uXb15gSn7yZMLqPDGj9pvuP968eL7tuUXvVv+PTPweM8wfHCQ9Ou0e+omTn2XG +sJTRD/nETxM2wDsMJK6ifnr6eXYexv3Pv8RYMPTT62+4C9+SKHCdcUZevv7af5d+l29w+3ff+nnx +OwIb9ldvXrziM4dfyDfr01+9/A5f/ceb1999+9NXf3w9/MhTv1+xM29e/fIVfvnT7vjmu7d/2v3m +9euXoGvFBeEr/xR++eadv0c+5x37Zy++/eKzeVe6p/cefPmP8o7Ts5cvX3z95tm3f3rxVe81ne/T ++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 + + nVLzpKkVW61OJI8wlCSZYdoGgNwlNFRVHZSNp5zwWmBPztzftaS9VCjyCjuP8JaCmHf/g/fn2Sld +eGzwUoDou6bWAXdKl8fu8ME3QhOf5rdt6PNGj9GnojNiR9HXcOUnZGm2xR2Lr4YQw/zPDSSFhJ4Y +q9trbozBP35e5vumxEO+8bgekFFQhcXlld+53TKrXwU19bF5agBKqtSlrpnx8L6Qwi5eHqugi/fv +nUa3GkNgeNrm89VjzhFWFV1eP3jNzoLfJ4pyv17K6Tgw++khFaew7rBGl2CW7RD8I6xdokjSU+HY +06Z6e1dVl/OcngXYngOj9xLv5axOy2Om07Zx3j2TI+rViUx3QW99I2JmByVhW5xxkPBSGdmVDBgY +KhFDrd/GQv1O9x7MX31UDtdvfE6190ODKd5JfF4mKHTqPA2YYt0sN3yYSvwNdHh6LLfn1drv3q85 +a/qFcaH3vocHUHUU/xDgqnET9q+77PHrdVvGC6/be/8A0ziE5w92JbzDYJ+23+I2b+FTBoMYVkM0 +rJtFFexzWJvRxq/r+7O+4s623qnKpZc/+eaHH/6LOdw//8uf/OpX3/3yFz/+8//647/67u+/+8mv +vvspzvfJ2b5qXXz5+f7spz//1Q+//PF//uHvf/zzX/z4f/zlD7+Y52wvf/Ln5p7joX/5y+9+/fPv +/vHH3/7wX/6rHwovVkpSU9DohIcTu6v83CKF/+3nP/3V3/3xLCu+dz9/+g+/+uF/+uUP/+jHUaw2 +z/3eaTn4r//+J59+/ouf/fhvPnfmv/ju//7V8qjvH/w//Px7e86///l3//XH/8t3//Rb38x/nO/H +GQbPyTCYfvP7+Y/f/fxnf/elH+GvfvjH+RHqe4fy//3k/7IT24P804//4odPr4/SjndvhSf/y+9+ ++clCtDeP/t41WJK/+jlL7cf/+Z/+/rvtqvyzH/13f/rn5cd/9oufzh/7f//mu5/9/BfzX/77lz/6 +yx++//uf/PSHf/jlH//ozf8uRCnGimoZ+M+XROeySwv5VOWIPquOoACiLLodfkQiHe1V4eKf6j// +93/80ZMezB1V2l/+Sf/1f7b/9f+xf/zHl3S8/KeX/+P/PF5+6r/8q7t09/Zm1ktN7bLP3NDLX+yO +Cg/2F7srftlR2yv+4re1Dd/85NP/y2rW6rSs4ldLhP/mNb7qExwv/6vCcfr7FnWDzCTXR/DggJ3w +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 +/0fx/Q/f/g6ffgerhbme35mffP3H7778+uH5kfH83p1XhBFCMcJU/JM4/ur1nxoU64Xuo99++7ef +pv/Cv+D/TY0As/MSMVHYBPTQHdsWczt5+/u3uwb5wbw7zy//E6ObNTVX6/g9e2H19yxraZiLtr40 +rRN7eGb2Vp1O2mzOzd7uZHrpDE/swYFmxA3Nw690M+50M7O7q+lev787HB+5wdXYvbJH5xZ+2z92 +xuum5ldrVrXabTVHXSt1xsdj92Y4v9cfX3WHR1o3qbdmc+9sND3UjXQ4vprNb/3oWW9wqneW1vDC +6O23tajRnHe6y27/yHKO5uGtbi1L1WFTC/Vu1tLcemOq6/FofBZET4bzK2t42NQ8vZvo3cAaZHVt +0nV23fiRn32arL4Z+4/w82YnbGhQoQ/Tg8/93Rde8jRavBnO7pnOQUP3ev2VaWERwlpjUq0NNH3W +MX3Lznr9RbU+wLs6xqLe8hvtoKlHhrXX6x+Z1tJ2DszeUjf3kuS1FzzVu6t626/UJ9XGtKV5k9nl +cHzaaE0bzUnfORoMz7rWfqPp1WqTtuYPnMMse97uhHonsu2Dam28U7LwX1utoNXGn6hnn/ScU6N3 +ZPQOyrVJrTEHUdNTXU8t+7Db22+1Q8NcNlp+pTZq6VFbi5stv9n2HOd4NDzD2rbacaU+2y5Z+FOu +DKpVfIjfNZMeGKA5r9dHuuaWy73tnU6l5tSbs2bbbzSDjrHX6exitFodM5937f2WFpQrvUZjhkmW +y067HZndg46x6vWO+4OzwfD45OSzKLtptoZaJ3WG57Pg3mByWm9O67VhuxViwG7/RO/u1Zp+rT6z +rP35fD2dnOsahPq15axanQAsoXVie3DWH573eulselirD/AHzDmZ3fZHa9MGd52DOS173+ymjca4 +Y8YTdx0tX02Dh4PpPaN/1DSijpm9/vQf9o8/1c1I60Sjyb10+Z0Xf2Zaxy09BpM0226zPW+0Zo3W +HN/bMXe79lFLT1t6Uq1PypUhpo0HwOG9/l7bSDq95Wi6jnc/Pzj++v7TX3fssNWZDybnbvpicfKd +v/tpd3jRdU6wI8+e/uXy/k/tXlprzkaz+6uTn5K9r7rOuemctTtpoznDMmp6hMGr9fFO2a433Vbb +w0aUytidfksLDTC8vW9gwY2s3dlt6buaudexwHg4CyusITgQj+GHjZYLRq1U+83WzA== + + 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 ++smf/vTn//N//++f/xOu5Hff+uEPH376ufbEuhFtAmCShBTVU7Vye3V1DY6d3b1rd9/97vc9/9LL +H3/hEx95/qMfeemVl3/w2o9+8cuf//4/fvvf//u/3/zN2+/9wIcuXb4nlx+XuAJDZMJGP1dc8aM6 +6pN0NQXAvbd77Po9Nx5/6unHn3v3Y88+98oXv/L9n7z2w5++9ue//fkv//mPX/7qN7/57W9f+fyX +d49dzuRmeL4Y1DocnzfiPT1SbzVnl5a2Tpw8eOiRB5967p3vf/Gjn3r11R/89Gc//9Wbr73xxi9/ +/daf/vLH//X//jd06/d//ItPfvpL2eKU3ckCJ7pcvMNcIamSVFwNFHPZzubWsQcfe/TBJx974RMv +/vD1n/30jV9++TvffPUrX3zz7bfe+u2vf/L6a3/40x/+v//zv3/z9q8/+qmXLt5+ZyrTYhjQ25jD +QSCIJHCxcnFqamLt5PFz99738ONPPfXZL7zyo5//7Js/+O6Xvvm13/7h93/7r/966+233nzr9b// +z7//5Jc/f+SJJzv91Xx5SQ02XS5z8fOYBeeosMBGwnqpUpkGTdLtzRzdP/Pgvzz28Zc+/trrP//1 +7373xa9/9Wdv/PJ//fd//+lvf/v4y59+4ukn777nAV1vcFyZJQKD1tTG0tatJ0/fdceFB+6949kn +H/jKFz/9H//+G6joN9/6xc9+9r1Pf+ZDd955aXV1NZNvGLE2iho+r8yQQYEO6Eqolisd296978Z9 +jz72yONPPPahF977/R9877vf/97nvvjqN77xtT/95S8/+vlPP/XyJz/92U/fcdd9i6v7zc6SomRi +4Wq+2Mtk68lkaW5qeXN1/ejmyv1XL/7r5z79pS+98vVvfunNt375h7/+7bVfvvHaL37+9tu/+s9/ +/PXt/3j7K9/+8kNP3L+4th1J1CUlI8oJRTQqhfrczPKZg/On9k/tHzt63/Vrr7zyyddf//Ebv/7V +91577Svf/PLP3/jxv/3urbd+/fpvfg3N8tPPvPLytbtuVJuzBK4TmB7UqrHEJEXGOFqPaOl6oba7 +sfLMvzz8xc999hvf/uZLn/3kj1774R///Ke//ePvr7/54z/+4bc/ff1Hn/rUh1761EePH1zUjDLI +IQArJVAyoo1ItDoYn5udmjt1cv9dzz31kY9+8BOf+tinP/vSj37yg//8n//1b3/8ww== + + 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 +3Pvw5Z0PX7/05nNXM44LR1jAwDJGFFV6KoFtV8k7i8r7txvffWf/O+/s/fSrN//hJ6//j3//i9// +/NM//tLB3/yXe//yu899/TNHp6bSaeAgadHRPJEgTApuGNhiFj7fJW/OKS/vxT55bemnX7/5/S+c +/cabaz/64sE//Oi5//jr9/71t2//5vs3f/e9y7/5k2uvXpsuO/0kCERIyB/BwqgnaiVNXkhQL26p +71yMff569juvzfz2m+f+zz+88Xc/f+HPv7j3m0+O/vFn9//uh7d//P7mTz9c/9U39//L57eub6Xr +aTcSQJAwRUfwlbHCettdqUrXl/QvP+z++Iunv/Xa7DdeX/j9T1781fee+tPP7f7gM+v//e/e/5// +/Yf/+Fev//671/6PP775vQ8PtscBFvzDg0PhAAy43WLY6QzfMcNtbfTyOPVgy3pqy3rpQu7DR9Pf +//zWN99c+Ok3rvz733/5d3/+/B9+/MK//e0X//Kbtw4WizO9bjbXRhElbbkVW+rGyO0Sdmmc+uBu +/ZdfO/ztJ1e+++76J59e++nXLv/r79755SfXvvfu+n/9+Nz//utXf/P1C998UPzgZupgjAesIlGc +bzB48skh1DcaZ4JTMehcm72+ZD46n3/v6amfffv2P/3Va//bTx/+8YcP/vjjZ3/+8eHPP9r9809P +fe569tK0PBYjEhLWLyfK6gxheEauW6mvdBJTaXouiVzsUZ+/1/jTd7d++NHBn39x5xffufiHnz77 +tz979MtvX/7lR5t/+4NL//yrZ37/gyvfeqXzmYve8weFWkKDw4zAZVja0XilkTZqDjHmYWd7yr01 +5fkd462LaTAaf/1nt3/1nYs///rh//VPX/2///VPPnlr/TufPffo1hqH0ViEjYlSgifSfKTjoEs5 +/GhcevFM4Zuvrn7/s/s/+eDcv//mM//zP37ydz9++OP3T7//YPHUbDah0hxGEIigy0lTTjqS53JM +ToLns/zhVPLuVva507EffHr1f/3uvT/8+J0vvbD80YPO995a+OmXz339zY37Z0tn5vKNbMEAMSWk +SMwAXowl1IyZLNtOVsTHXeLMuHVu0ro6b332WvWHX9j79Xfuff/zZz95a/OLzy6/fqH16n7pzlpi +ra3UU7wp0pEwLTJZR69IpFCw1JxKFRV8Pi/cP5X/xsvzP3r/1F995/Jvv3/3D3/x3D/96u2ffe3i +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 +0Mkbr9z53vsefuwLL7547yOP3/bA++985AkzVgMpBXDn8/ASn5Wlsqo1ZKVI0VY0UUvnm+VapzU+ +P7989NT5a49+4Oknnnrq29//wa9ff+Or3/7O5VvunF86Vq3NinIuiJiBoAoQxPFJULPwQq9XIoho +IjWodzdShV6q0Dlz8eYPfvKTj3/0I3e894H73//k7fc8eO2u+x547ANf/e73P/Lss3fde//py7cK +Si4QkPw+nmUjulmPxSdVpZJK90KhUjLZbrUXDx49NzM3e/rs9dffePXKbXc8/6Uv//HPf/m3d/7y +53feff3NN5965hPl8uTIKDE6ykDRRaPT+fya2yW5nBQalGQpy7BZBA2jqM6wUY6PZ7PtI0fOXr56 +x5lL126/76HHP/T0idM3TMydavYOyUre3sv6Hr/IWr3m9ObqzrlT567ddOMHn3z/Sy++8OvXfvPW +H37/6m9+9frrr//nP/7x+z/+61f/5RtPf+wT28eur7S3gmgEDYZi4MrVVDqaHQcLcXj3wvU3XLl2 +y+OPP/6Vr3/ja9/+7me+9MIzz37yG9/5ziu//d0LL33t+999+R//+MeL33j5gx/73OmLt6ay/WJ5 +bnywWaxPm1Y+n6suLczfcGn3oQfu+uhHP/iZz3/q29//9htvv/39V37x1Zdf/sHPf/nuu3/5P//3 +//7lP6Alf/z+z372wONPdac2I/E2ACZNKXEr06h219c34Nk5fOTabbd96CNPP/fC5z7++U8//ZlP +P/fiCz995ee/+e2v//Tvf/jv//3fb/z+7Wc+9snLN91RKE4qQomjctHIRKG8huEWjiiWngHgPnL4 +2O133PnwY48//NSHHnryqRe//q2f/PKVn736yl/+/pe//sc/f/u73//+D3948avfPHzsplxhThTL +IXNcEIuRZN+KNTvt+ZWVgydO7t7/3vsee+oDH332M8+/9NJPX/3Vr3/3xiuvv/7bt95896/v/K// +97+hWn/yi9984YvfyJdn3F4eONHnEz32DkmdZpK6US7kx7cPHrvvoQfve/Shj3/+2Z+99qtXX//t +N3/4vZe+9fU33n7zzT+89cvXXvnzu3/+//7P//7922995vnnLt14SybX4TjQ24THQ6GoIgmJanlm +Zmrj5PHzd939wMOPPfblr73481//6ns//dE3vvedP/z5T3//z/988+0333jztX/81z9++dtfv/eR +R8cn1ovVFT3U9vnszc+OMVJgohIfi1qVWm0WNEmvP3f01Nn73vfQ55773Cuv/fqtP/7x69/99q9e +/+3/+u//fvfvf//cC1985PFHb7vjXstqCUKVp4xBZ2Zr5eD1J8/cevPFe++6+clH7/3W17/47//2 +e8joN978za9+9eMvfumTt9xyeX19PVdsRRJdHI8gQZWjQxJrWFq4UagcO3T47jvvfvCh9z78yEOf +/PgzP/npj3/0kx9/5esvvfzyd979619//utXn3/hC1/88hdvvvXu5fVT7fEVTcslovViuZ/LN9Pp +ysLM6vb65tHttXuuXvqXr3zxG9948bvf+8Ybb/72z3/7+yu/ff2V3/z67bd/9x///Nvb//72t37w +zfsfuWd541As1VS0nKymNDlSKzUX5lbP7l44fer0qWNH77792osvfuG1137x+lu/+/Err3zre9/8 +9eu/+Nc/vvnmW6/9/i0olle/9OIL1269s96ep0iLIqyQWU+kphk6IbBWzMw2S43DW2tPvO+Br3/l +yy//4HvPffkLP3/lZ+/85d2///Mfr73xi3f+/IdXX/v5889/8rnnP3N895IZqYIcAg== + + sNKMSiTeisXrg8mF+ZmF0ydPffCpxz79mU98/vnPfvHLz/38lz/9j//6z39958+v/OaVH/zw6+++ +88ff//HtF7/2lScef7LdXUWxEBg3j4v1eyUUMSQxW6/Ol4vjR3eOPPGBxz/1+U999kvP/+zVX7zz +t3ff+fvffvrqz15/87V33v33f/vTH1751U9+97tXfvnKD5/64GNXb7k1k21JctwfoCC1DLNghYuJ +aHVtaevBBx786te+9rNXfv79H3337X99852/vvPm22/95nev/+3vf4H3/OjH3/rpz1/+5as/fuqp +J89eumX96I2SVhodJQM+NeATCFT0uQmGUPvjc9efv/DeBx/4wpe/+MWXIJqf/+nPfvDP//rnH/70 +x59B2f3ypxCozzz3iZtuumFr40gk2q5UN8NKsl0db1Sa5Wx+arq/srY0NztxaGvuztvPPvzw1dtv +O3vjpZOVcjpkyCzNoSiLo5LHRXlcpM9D0pgc15KVZGW81p0c7x4+uLlzaH15oX/+7Ob9955/5MGb +b7l2w62333ru8sXB7FwkmlHUfCQO2rsc9PNogKdwkSF4EC6nj104ePBoPpXuFDLHNudvvnTigfuu +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 +/fgPr/7bb979+TdvfOe97f/2lfP/+y9f+9VXL339YfXzt3KHUyJAFYURgqPR4afH8GAozUXnUtD5 +Hn9zzX58ofz+c3M/+aM7//xXr/9vP370t99/+Lc/fOGnXzn66UcHf/7Juc/cLF6ZV6dSVEYh/HKi +vMlRVtIq9RvtjcnMXJ5dymKXB8xn73f+5L3d7390+Odf2P/Zty7/7scv/N1PHv/8j67+/KOdv/ve +lX/5xfO//d61b3xi8lOXky8dVloZA41zklDg2YQhap281UpQU0ni3EC7v6W9tG+9fTkPRuOv/+zO +L751+adfPfq//vnL//e//fE3397+1qfPP769JRAsAfMpWcmIVF6EJxP4Wom8OK28crby9dc2v/vp +Mz/6/Pn/+NWn/ud//ujvf/johx+c+uDh6snFYkZnBYKiMMlUs7aaTShJT+BKCrpcFI/msvd2iy+e +Sn3vk5v/67fv/+6H737x5fWPHk5+5+2VH3/p/FffOvHgXO3sUrlTrFggp6QcTVjAi/GUXrCzdTdR +lMlpjzo77Zyfda4vO5++0fz+507/8lv3v/vZc998e+cLL6y/can72pna3a3MVk9r50RbZuE4K3PF +hNlQaKni6CWdqWrkcll6cLL8tVeXf/DByb/61tVff/fe7/7ixX/+xTs/+cPLP/3iwb/85IV///kr +v/zSzjcfF186k1mqSBwai0cwR68Ukj1TcByWbFtUV0eWE9Fn5oVPHOXfulr98uPl//jtu//ym7d+ ++/1n//svPv7vf/vZH3/95lff2Hj/hcW1qZSjmTzjgNtpFDqWIGRkeruTGKSwpTR0psM8t51+40rv +pXOt+yfyn7s9+ctv3PjxV25+47XNLz4/8/aVycvzqeUy4FRMpkQG14GSGR+GOJSV0ViSjk655ImO +c2a2cDCVubZafPFs7a1rU+88s/DWMwvnJs3zPf1w0l6uuClR1mheogSg+RUhJXFpQ86bkldPZ6q2 +WtH5jXri/EzuaNp560rr668t/tXXz/7zz176yy8effnR7Jcf9F7dcx6u6I938ltV2SFjHIKrUta2 +ejSZADaQgmkBjns01DKIrapwrsc8v229eibz0YPJ3/3g+f/nP77yT7/8+K+/8+Arr569vFydKXm6 +qMOIjiM8EYuz/r4usqjzLYebyUobDeNoMXt1Lf/8QfUPXlr/wzdPvXNv7s5eba5mig== + + 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 +uCNpVdnsmd4A8IJszUZg/7Cb407OL11k2Ew0DmbZNZ2pfAOMwKxozVB8IxIzK9UtLzkIRBSEyMVh +D6cKVnLVK+7I1lwcTWdzs2fO/f/svcdzJGmWJ3YnpyoTCO1aa63dw0NrDSAQ0DIhUsvKzMqsqi7Z +PV093T3dO72jBXeM5Npw17hG4x544IVnXvgnkc9RnL3MZQ80I2wMX0ehE5kRHv6+772f8PD43q/I +bGc/tVixALgMgNDJ06u3f2lY869+9vv/9J//j+HkolA2UTKywtXs5KuDp3+ycfxNWD/GqbAzfACl +UUGcfEHi5DYtAK4u+tPX1eYlingU6Vv2CGqqXBEAu/Jls0L4OqRQ47K/8e7eGl0sciwXkkxCUlXI +SZZv4mSV4pph7aQ5eAgEjWAWmemTpiB3671HvNgWwWHpAwATN96fLT8cPPxjze2nzZ3u9Gq88Xi2 +/bQ1OPWTDZhMO5zNdt/AqmVtc51Z0jgfbbwfbb2P6ycQJkp7nFIHmAKGVcyxGUBlHcnGRlA9XB58 +2Nh7wWX3Hu8H6a4TrTR74VYPotaxG83PHnz+9LNfhbVtPttVvgtKeLH3bv/xj1H7vFpfnpy8/Lt/ +/F8W+49Jsao6m4PFm82Dr3fPvh1uPBLktIxqst6VtC4rVyWrR4o1M9jcPfvuwdM/nSw/M4MtoM7F +znvdnfNq14kPJqv31c6FE+4CXqXtw0KZxWm51lk2B7tRfUWLHUGdeuF+q3/x+MUvnr7+ZaGsoLht +mIvt3W9On/wu6b5QrA1N7//m3/yH0fSapGNAxZPr73/zF//Tb/76P168+Y1XOwS1EIRbf/8P/2tc +2ylWTIbv+NWzzvTt9skPD1/+2XT5TtU7u4ev+qOTMqaSXKI6y/rg1dnj36+Ov9w7+cLONsob9KeP +s0WkYyfc9tJDM9hRzM3h7PXB2Zcs3wCpDBDtRLt2tJXd1KoMQbM9ev7dt7/+e8Md81I7bZ6nLTDA ++6q9kLURqBHdms933tXaD/JFA8PDsLZX6511Jo/Gy5eAS2gZXPrR3slHEMD5ogxcH9av7WjXTfYl +YyYok0LJaDVW33//51E0+/STUqkoCHIraVwuj7979dXfjBbPMNz75oe/TRt7BB0SoO6dFQPCiWtA +LNXW9WLn21cf/7uHb34fhLPXz7/Z2n0MiiuIN9Lm4XTrycbu682Dt63ppeUOR9OLyfYrUe0a/sQM +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 +d/kOzawQhI5jqiynHLebyc5ZZqtQnI7HG/n8YGKwfuTk1Usry+cuXnvtjbfecufdz3/hi7//45/+ +7Z0//fGdd19/882nnvlYsznn8XJerwRFl04vVqtboaAeDAg0qRt6WZLLFJ2gaUeS04qaLZcHJ05c +vHzr3eevv+2uBx5+4kNPX3XuhtmVs/3po4ZZRXtZr8CjcnK6v7h76NjVZ6++7aYbP/iB97/04gu/ +fO1Xb/3ut6/+6hevv/76f/3tb7/9/b9++V++9vQ/f2zv1LWtwWGSTtFkPAOu3CoU0+UpsBDHL1y6 +9oZbbrv9iSee+NJXv/aVb377U1944ZlnP/61b33rlV//5oWXvvLdb7/8t7/97cWvvfzBf/7Muevu +KJRn6s2VqfndenfRTVarlfbG2uoN1194+KH3fOQjH/zUZz/xze9+84233/7uKz/78ssvf++nP3/3 +3T/9n//7f//0H9CS33/3Jz956ImnJhd2U9kBAKYomNlkqdee3N7egevY8RO33Xnnhz789HMvfOaj +n/3k05/65HMvvvDjV376q1//8g///rv/+d//88Zv337mnz9++aa7a/U5U2soQiWdmq01txg2yVJm +0ikBcJ84fuquu+955PEnHnnqQw9/4KkXv/qNH/38lZ+8+sqf/vqnP//Hf/76N7/97e9+9+KXv378 +1E2V2ko02oy7U1q0nsrPJDP94WB1c/PIVWcuPPjeBx5/6h8/8uynnn/ppR+/+otf/uaNV15//ddv +vfnun9/5X//v/0C1/uhnv/rc579WbS6FIipwIoZFw2iHpCNKeSfWrFWn9o6ceuDh9z3w2MMf/eyz +P3ntF6++/uuvf/87L33jq2+8/eabv3vr56+98sd3//j//Z///du33/rU889df+PtpcpQUUBvc+Gw +QNOmruXazaWlhZ0zp695z70PPfL441/8yos//eUvvvPjH3ztO9/63R//8Nf/+q83337zjTdf+9t/ +/+3nv/7lex99bGp2u97edOIDDEObn/0+XpPSuppJJ1udzjJokumZlZNnLz7wDw9/5rnPvPLaL9/6 +/e+/+u1v/uL1X/+v//mfd//618+88PlHn3jszrvvTyYnNK2tCrH54dLhzSPXnjl/x83X3f+emz/w +2P3f+Orn//3ffgsZ/cabv/rFL374+S98/PbbL29vb1fqE6ncJMumKNJSxLgux5J2og== + + V2udOnr83nvufd/D733k0Yc//tFnfvTjH/7gRz/80ldfevnlb7375z//9JevPv/C5z7/xc/ffMe9 +B7fPDqY2bbuSS3frzZlKtV8sttaWDu1t757c27rv1uv/5Uuf/9rXXvz2d772xpu//uNf/vrKr19/ +5Ve/fPvt3/zHf/7l7X9/+xvf+/qDj953cOdoptA37YphFWwj1Wn011YOXbxw6dzZc2dPnbz3rtte +fPFzr732s9ff+s0PX3nlG9/5+i9f/9m//v7NN9967bdvQbG8+oUXX7jtjnu6g1WBTwpcMu52c4VF +ScxpcjLjlvuN3vHDW0/+w0Nf/dIXX/7ed5774ud++spP3vnTu3/9z7+99sbP3vnj71597afPP//x +557/1OkL17upNsghACs71kplJzLZ7vzc2urS2rkzZz/41OOf/NTHPvv8pz//xed++vMf/8d//9e/ +vvPHV371yve+/9V33/n9b3//9otf+dKTT3xgMHmIZuJg3MJBGY/oNBXTo+Vue7VZnzp57MST//jE +Jz77iU9/4fmfvPqzd/7y7jt//cuPX/3J62++9s67//5vf/jdK7/40W9+88rPX/n+Ux98/Nbb7yiV +J3QjixMCpFbMrSUT9Vy6vbVx+H0Pve/LX/nKT1756Xd/8O23//XNd/78zptvv/Wr37z+l7/+Ce7z +gx9+48c/ffnnr/7wqac+cPH627dP3qjbDa+XJzCLwDSOjmIhTuKsmamVa6+59N73PfS5L37+8y9B +ND/745987z//+z9/94ff/wTK7uc/hkB96rmP3XTTDYd3TqTSg1Z7N2HmB+2pXqvfLFcXFmc2tzZW +lmePHl65566Ljzxy6113Xrzx+jOtZjEeM2RRoWmZpfVwUAgHeSzMi4yRtfOtfGuqMzk3NXn8yO6x +o9sH12auubj74P3XPPq+m2+/7YY77rrj6svXzS+vpNIl06qmsqC9mySu0oQqsFGJU0G4nDt16ciR +k9VCcVgrndpdvfn6qx564JYnn7zn21//wi8Abl5/9c3f/uLZzzx93Q3nF1YWE8m8G69JYF0Zk2Ut +M5o6c/KaS5du6w8W2u2J5empvfXF684fefYj//Cdl7/0+huvvf2vb3zne1/6ykuf+uLnPvyxf3rg +8YduuurYkeFwMZFu47gmCAmStv1B8DVcKCQSmOSoTjOfPbm18ejdN3/p+Wdf+srnXnzh6Z/9+F/+ +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 +eXbWfPfhzrtPjl67t/v7713+8Q8+ePPV641SZGmuv7h0sH76nh4uET5PhEWTItaJEOemtccX6i+e +LR5PS69drvz8e49/9oPXvvTS8lcfDv72h6/8l3/++n/89ss//trxv//ylb/+1pULK1GbDWJepyYh +g8o0QkioN8n7lvLk/d3Ed7909LPvP/zjL138wovdb3527odfO/7tXz/5629c+tHHB//+61f/8YfX +v/xi+cWj3OFCNh/VC3HgyqSlZxSGT0lIL4ZulLhbG/F3np959ULpycXcn3x08dc/eus//uXTv/v5 +B7/87p3/9o/v/n//79//w68+enJS/aN3T//iBy998Hgna6m+SRRIFmysQGu4308B5QddYcprkROL +efrqavK59ezZmfCl5cgrVzp/+vv3P3794OO3nnvn5eu5aAwN8YDAKkGVdXYuRezV6bur2kd3Wt99 +7+g77539yR/c+pcfv/U//utf/t3PPv+jrx3//Z/d/4+//eI337+0P5fNgoNk5agRlynKYtCWSazm +0Yt9+taS9vrZxKdvrv3km7e+/+Xz33pn66++evwvf/Xyf/tPH/7n37z76+/f+tvvXf31n9x448Z8 +NeqQIIgQvydEBPC4bFQMdSXFvHZaf+9K4ks38995c+E3377wf/327X/62at/8dWzv/700r/+9ME/ +/fDOjz7a/cnH27/89tGffen0zdPZZjYW8mJYgGFD5MZUabsb26grN9fCX3/c/9FXz/zRm4vfemvl +73782i+/98KffvHwB+9v//d/+uh//vcf/uvfvPV3373xf/7DO9/7+HhvGmLBMzE2HvCigO0Rjp/P +iT0r0DXcV6eZh6cjL5yOfOZy4eMn89//0ulvv7Pyk29d+6///PW//YtXfvujV//LP371r799+3i1 +vDDo5wtdHNOykVjNVvoJeq9CPDfNfOVe8xd/ePKbT69994PtTz+/9ZM/vPqf//a9X3x643sfbP8v +37jwf/zqjV9/8/K3H5a/citzPCUCqiiM4BrzjTw7jrvcSc43lwhe6PI316wnF4sfvjj30z++829/ +8+b/9pPH//DDh//wo0c/+8bJzz45/IvPz33xZv65eXUqQaUUwiknyoc5yoybhX6tudFLzWXZpTR2 +ZcB86X7rTz84/cNPjv/iqwc//86V3/7k0T/+9Mkv/vjqLz7Z/ccfPPfvv3zp735w7Y8+23v/SvyV +41IjZaABThJyPBs1RK2VNRtRaipOnB9o97e0Vw7Mz13Jwmj8pz+/88vvXPnZN0/+73/7g//nP//J +p5/b/s4XLjy5vSUQLBHiE7KSEqmsGOpF8bUCeWlaee1c6dtvbH7/C0c//sqF//rr9//nf/vxP/3o +8Y8+OvPRw9X9xXxKZwWCojAprKYtNR1V4jGBKyjocl48mUvfO51/+UziB5/f/F+/e/+3P3rva6+u +f/Kw973Prfzk6xe++c7Og/OVc0vFVr5kQk5JGZowwYvxlJ6z0lU7mpfJ6Rh1bjpyYTZyfTnyhRv1 +H3757K++c//7Xzr/6ed2v/po/a3LnTeOKne3UltdrZkRLZkNBViZy0fDNYWWShG9oDNljVwuSg/2 +i996ffmvPtr/m+9c/c337/32L1/+t1+++9M/vPKzrx3++08f/ZdfvParr+9++iT/ylFqqSRxqD/g +xSJ6KRfvhoVIhCWbJtXR/3/23nNHli1LD3sATd9zTlV6F957HxkRGZHeu0pTWVnenarjvb/+3r7d +t32ze6bH9HQPhxRHIw44IofSDECBkv5QgChAEgURIqRfEiFI/K0HkFbUvIIAFYjaNw== + + 78ExWZmx9l7rW9+3Y8da+ElQ/PpA/oP3zd981v8nvzz5d//mT/+Pf/2bf/Mvfvi//Q+/+r/+1//o +X/71V//pry/+7GdH59uRZzoS74E5o9aWK8s1jbu/Fawj8riKvtzif3S/+utPF794M/nBg+aff7P8 +V3/z5b/8q6/+5g8v//Inu7/9dPnJQXTShZxKaqzCUxYwmfQmKhKCRpRCrrjtMw+2vJd7rWfbtc/P +2n/n1eA3n2//ydeHv/n68M3SebuwXi/LJz0/UjSTk1RWBs6vy5EqVm2t6aiVYbXWLxs9S7oYBm93 +G+93vN98OvnrPzz6H//61b/9737x3/zl+3/y871/8uPF7z/2fnpq/fJh815f85iSiFOGWi+7C44J +QAayGCdjSIVDJzZ9ry+/WfA/ue/+/svaP/rx8n/5r3/yf/+7v/rf/9Wv/qf/4sd/9fuvPjnp73Yq +lmJhuEXhEl1ChPhcF9O2pIkn7tbVi5H9/qj+2XnzJ8/6//gXd//pHz//k2/3v/d4sD9wFIFAC/l8 +BkERpRYuxsO71WBhio7Ncluh++Z09cWzw3Wd+bBr/e7brf/kjz793vPtz+92vnnYe7oOVi2rbksg +cETWi8sV4h7L1UDIg4Kuh+OK6esk5fFc1zF6ZXXky3cn/vvDzpeX00/P+y/2mgfdaL8RwTLWLUVm +aQJjSyWhUJAFtsaRJpZHiXxRRDGPF3aa9QfLzvuDyvcvK3/xk/V/+Q+e/NXvnvyLv/j4X/z5+3/+ +x/f+2a/O/uonh3/2xeSzIydUMBDtmmjFpY+ZCkd7JRBEKD/wo0U1aIillY8/nxsf77lfn3r/7Nf3 +/s//+c/+7b/+e//tf/bVP//7b//wy/0vHvbO5gFoY1Ove96M5wKBL1O4bIjOvDls6mLP5ia+3DP4 +saPsNb111TqqiR8fVL99vP1uv730xKGl1VXd5mSeEIt5KZPiExvAAGlLiRSSlVBUJ8iGZfXDYBSG +k8BrG2JD4TuGPPLUCo8DF6zK2rQ918QAVAkFTJ7Qmo0FS7tIAcg2SyGcyRv9Suds5+Jkaz0t6+cd +6+vzzqOh9ulR69W6fr9nPOibpy3ruOmOLBkFWpBCCdSUhC6JgwxEQGlmEwWmGE9sS1emntbViL2a +eNFVPjvwfvvlzt/75ujnLxevVv26KKoEXzZbYeNwa/1B5EJLq0qsIdIwIZajWqaouao5bbcHkdv1 +1a6vhIZQ1mVHN0VBoxgNpHo6TeK4qekNXgxyBR5DNVXwXc1rVlrdWp9H0UgWJqE3qAKmlQ1O0TkZ +BAVe4kFJoSUxl2UzGZakomrjtN4+jY+QGU2JdwRSdrWQxSFN845U3hkdHsxPloN1ZPmWoDhKxYsl +DLuZyOYLPE5FgjTStKFtDETWSSdy2WQedL2jBr4RBka5XbanDfd0K3x/2n689N4eNj+cTi8n9d2G +vap5Q69MFPHNzUypGD/bns5QG5tF0Jsc32rUj4bd025tbvBCoNCjstjV6Y5GPJnXf+/zx7/63quP +7x2cjfp1Q9NYhiVZUQpI0iPIcr6o2t5yvHg9mrxsRbuG4J7tnn7+4bsCqcB6ybRRMeqdSn9YHzXL +TYMziRxHlowsyNINDJwKxfxi0SkWTJLwNbmG5QimBLmeyabJePuryGOIQuGWwPgiG7CEUsoiVInH +ChJWkuX4jpUrsJERP8yyXSrpIHuLeYElHJEpl+2BqU8gcHhcMnl91hpQeSTUKg2v7ymeiAkCofOU +mY8rjZdIwuPZWi7Df/Q7qdsfpUBvsoTh6X5gRjwhcBhjcWpFNeNncWm8zFNlQQhkx5drxTSdiwvC +zLvTZ0G445a356snfjSkaJXjfdsZt3sXtfYxL5QZWrO1yvbiMFsgE0kkm5dkfeIEu3Z5R44ra9U1 +pblaP9HdUbZkUmz8UAbNVhHUpglXoO1ijkpsFoo5iaUqqjLg+RbAFE6UUdRW5QbQklxeyRXiVkc0 +E9rO0PMnttWNwokSH/mIb7RRlAf/JKt9TR8Y1sD1Z4431tRINzokEyG4gxMuirkUE1JUUCppFGkJ +gmeaLU2rmWY/iraDytS1uwKlqILmwMKqtUwGKRVoknAMY+7VLii+kcvziQS2sYmAY1BMy7Dn8QOJ +OS6b5Wg6ENkKgwkMytiS3W0CLjkEadCML13VyiPIuOA5/GwaIoV0dL3X6l5I6qCEeAhi4IQdVFZh +dTeb5ksFmN5A0zumM8XJSrFkYZirKkNF6RfyaiYtclyn03/geCvd3CKZajoDniMZYmiqEWg0Uen5 +9cNq76wfd6Tdu+o2rvOcvzV/JMfVy52yt4pqJ432ZaVxnilYG0l2M0kjiJPLCLc+SqeSpG7Oqr0H +jd49x1uD927eQdGils8qt26VkkmK4eqWuxPWLp3yuoSWcwUzmYpvS0l8AM6ciHfJMslNtJjjGcq1 +9Z4hR9kUWswSLK6xpMnAcpe0+JGlkoFRFQT3b30nU64esXJTVqv3Lz/Mdx9TQiRoHUaoq2bXsIdl +bz7ffVEidQTXBbnhRnNabGBUiNNVzV5MZi/ef/XHncndRIYvYoATR0HjoWqvWaGN4XahJNOMp2h9 +8DeCCkimrlnbTrAPiGiYI1VtFxELxcs4VealruUtK/Vd3R7TbOQHy07/rqp1LHskKB3VmTdGT6Le +/aBx7ARLRWsv9z9WjTFGWLrdEZS25S8lY0QJbUZsu8Fqtnp599HXNB+lslwRMQS5Gx/w4+ucHD/C +4znDxfKx6W4Z7kQ0phTfY8WxaqyLCMBOBcHiM4H5Io/juq53NXPF8b1SQUGKiqEP5KsnGjRrWu/d +bfTv88qEV8Y4HaFEWVQ6nNDAcVuRWwjmFAomzVUFtUcL3UzRTiR5jg8RVM5k4kKyBFWR1ZEgdSW5 +R7N1XuzI6sAuL3N5DcMDgm4wfJega7zUo7l6MsWkkoxlTWW1UyhJJVTnlC6r9FmpZ5YXqhEfyyRp +n+Ka2aJVwMoE1/KbF4a/79XPytHpZoLLZCRR6qh6F8VdgoTYjxA0BHCmmRqKuuk0zwpNL1h7/g5O ++HHv0ZItqGPFWDj2iMB0cMvbt0uZFFPMCUhJI6mwFD//66IoeJSXS9EAaxzjuf62Hewa3o5W3mGE +zuYGLepbojaMauvXb386WlygtEMJVZILvWjHq+7HFcOcLSk+bLMb1LZLpJEpyQXUFZTxaPFutP60 +PX3GqW2MtGV9ZPn7VnDISEOCa8L8u/4qahzZwTbASwm1dXsRNh+Xo7uyMWf4BkGFcAGquUXQZRQz +ZX0AXtHoXXZHj1r9e2H9qFY/ePDs+4o94vVBe/Zi9+Kbk8c/OLj3TWfr6Xj7jWlOGtXt88dfIpRL +8RG4llU5qvcfjVfvh8t39f4lxYWS1tHtqaSOWLEN/qm4C9Wa7O29fvDip5o1SmSYElGuNM660zeN +3mtenmFUHSUrBBtdnYXTMVxPx12Yzbj2L11h+RZGhuVgHdQOaMEnWB8WUTQWuhd3WHajffAxBLG2 +V89cbwH2ZvISQCInD3hlqjlrUesTpI2hqmMPLXcGUIzhAICB4WxX6mfV1t1a8yyX1zVjS7dWij6H +70LISg5xExkZJSpB9ZgT23F9e6YiagPNXarOStRGRdQCx7b8HRKyRlwJbUyLHTc6ks2ZFeyJ5hwh +KrqzHTZOswVwSxNci+V6qj53/B2wCCcqOBFY5W1IxOCB6YyAYpZuTautc0GZxDVbMjxcVREpA7Jt +3M7evp2/k2BLRFW3Fo6/ltRhPisVC6qq9iQIYTKAV1w8k45MeyHr8+7gUWd46QQLRowkvVeurkkh +lPWuam2BE6rWNGrsjxaPLH+rgBmqM6H5JsnUOLldous4NyLY7t+e4S/hLk6HennbjQ7Hqw9nT365 +OPoSZ2sk6bfC1dnZe4QO8phfwkKa65vlvcboaWP6TC9P48ZqrX3RGOjuVDFHijnW3HnUPqs09nm1 +WY4WTz784u6r74/Xz+qD+1blEHwSDNma3rv7+GuYMdUcdCdP+/P30/1Pe4sXur9D8O2gtnd0+d3O +6H6x5ES1o7MH3909/WSx//G9Fz+1w30AMfAfxRiKaotgyozQODj//t7pD8frr6PeY5ppUGxFt7uq +O0lkpHxBB+yynEMnOKk0Lhq9C5K1dWcYti/K1TPAh/HO+53TLxv9e06wB0TLcOcY5almX3MWTmUN +eUFz9wpY/LCb5y8Pjj/wQq2IwCr7jrfdHMEM7CnuLiuNCiWn179XCdeZgo7TDQSrUGzLDc8q7Yea +u48Q1Xpj7+WbHyBxZT8hlVUBuGSA0MHDu69+X1bHn3z687/8p/9Vd3CWzCh5xFWd5ejwk92HP5we +fO6EB0XUaXRPITSyOT2RZEmujtGAq5P28LlfPc/nTBSxVK0HMZXJ0oBdiYySLVkSuFB03p6+vnUH +S6VIgnQQ3ENQH3ySoKpFxEfJqlM5rHYuIUHnCioS85MqzTXD1j2KqTOgsKQOgIlRXo/m73Yvvyca +7aC63Rze7U/vjxYPa50jy5vCZGrOaLR6AasWt83VR1500pu+6c3elMNDMDOPmSQfAkxBhuWVvmJD +ZO1z8tT29+a776Y7T8j47PHaDla6uxS1ieHvurUDwx0fn759+PIHTmVBxVXlm8CEJzuv1/e/desn +fjg/PHz6x3/6jyfr+wjjC/pWZ/Jia/ez1fEX3ek9mgsyeZGTmqzYJDifVVsIU1HsrdXxl6cPfzqY +v1TsGaTOyfYbyRhTQlMv7w6Wb/zGme6sAK+C+l4yQxQxrtKYVzsrN1xiTIMWhqazrrXP7j/55uHz +7yczfL6oycpksfr86MHPvOYTXp2KUvvHf+cf9oYXCFYGVDy8+OrHv/qPf/yHf3H24sdmZQ/Ygu3M +fvPbvypXtlNZBacaln/cGL5aHH59+fQXw/lrQWqs9p61e4eZgoCQnqDPw86z4/s/Xx58vHP4QYsL +5XXaw/vxImJl3VmYwZ5ib/PKVnf0fPf4Y4KKgCoDROvuSnNn8aFWvguc7d7jL7/40W9ko0+x9aB6 +EtRAAK8FbcKJPWAjkjoeb7+u1E8TKblQdJzKTqV13Bjc68+fAi7lM6DS93cO3wMBTqQ4yPVOeKG5 +K8Nbs/KI5gfJtFyLll999XuuO/roO+l0iqa5mhedzw++fPbJH/UmjwpF8/Ovfx1EOyXMKQG715c4 +ECcyAlv82sVk+4tn7//k8sXPbWf0/PHns9V9YFx2eRpU94azB9PV863dV7XhuWp0e8OzweIZIzRl +a6A4Y0YaQGJV7IUbHXQmj3mlDWxNMbdaw5ejnS9nx192V69laxgGi/tPfxh19sAN3HCvMXhwfPn1 +u09+993Xv1kdfahEO9urx4udp3Z51ujd3dp71xg86k8fnVx+9fTDz+v99Xz54PDkC6eyK6gDVu3S +QhWYmKhOy9GJbEwsZ7g6eqG5Y4yuuJU9SAq6t6u4q9n+p0cPfwQ+WQ73w+7l8cOv7g== + + vvpZZ/kWdFKRCFDCs/2t7ux+kZBMf8hrI9lcNgcPar1Lw1uCFakMx/J1w9nSnL7szhT30I5Og8Z5 +1DwmmbibVad/YnljWW8EjfXk4E19eN7on7eHD1q9uyQTADwG9ZOgDqu88ptHQKSt8MwJDrqTJ+Vo +XUT10ezBfP+9Xdkrh3uqPTHKM17uVeuH4NWS2uHF5vHdj7/8yd9//PEvdy+/Gi7flCsrSao9f/7d +b3/650WsTLJRpbY33/8w2/8w3Xsz2XsPJO2LL3/v+PgNRfm8WBvvvtm//HZ9+t3JzqfL428lfZ7O +aoLUwYiyXzvwGydu7VB2toD81Pv3693HiaSEE2G1dSbIw2SaTGWYRIonyDrMMwgBx14Ui9qdjRLQ +V1kb8bHXdTmxX0BcgLKHz35WaxwAXyWZEDwBkiPLtyFNA+Pya0ft0X2IZUVpnh48bfV3KaZs2eMu +QO7Dby+f/miyeunVVprZ2V4/nh+8KwCp43zTn7WHT2brLzpbL1rjx9XumWGNO4Mz25u54boxelwd +PTAqO4I26PTuH977gdfYpfjKaPG81b/YOXj56v2Pjh98FdR3TXNwdPBqffhS0but7vGbT3754sOv +zp/86Ojht4Plc9ttfnj3/dfvfkIwAMIAX0OjvAAfqPcf2+EJLw+bzf0vfvjrsLUm2bDRvXCrJ17z +crjz7vlnf3T84PthdPj05Y/3Lj6T7EGle26Gp6K1cqvn9f6z0fZ71Z7pRuuLb/4AMAEhfZKtsfKQ +U8eSORHkTrd/f7z1+P7D93unbzllIptzAGSECgkucirL3fMvYtgUKvXOYXt6v9Y7G8yfhu1zgmlR +XKM1flDtnmNUIJuD2uBeZ+tVZ/Z2tv/d7tYr218rWu+TL3/54v1PVGsE5IoTuyAQhvPn1fa5F24D +gxXlxtHZxycXH1ebaydcgLdXqrvd4cmLNz+5fPAV6AXLma2P3h8/+n7QOVfK24q7DfT17fsfd7u7 +GKrrZn8wf9Sd3AtruxBukrWdR4N0VteNIUF5y8N3jz75g/0nP25sPWtNHzdGj2Rznc6awGN3dl/J +Sg/HQbyXEdRjgfNY25IyxrAgkaBRzFG1CYBSIiUWS56szmVtUa6cB/Vz0GW5ogoBRdJVUA2C2IoL +yCM6zAAjtszyMmwcx9FhxMxTVZuaMarU9yAYdXsC9FjRBrXOhRGsEpB86TK41nj5arx8Z/jbjNTM +o6YsNWeLZ6Y9lOQ6AN3e5dcw/2ePfnT66Gdbh5+o5SnJBou915wIlCaIQ94cm85Ws33U6p0pZp/l +/CCYRLVxd7hf7Ry40VoCGmY2m+29cmUGSURSeld9KzycK5vB0q+fhjGMHFWa2wTtWHbvwxd/+PDd +L/3WWdg6jR+a9qaG0Ts9fXt89xNAWuD5vdmHau9xe/4BMIQDLlrS69Hy5dsfdMenG0mS5lsAL83J +06B5CqFdre1uTe7+6W//4he/+rMiHqBUxMuTcvV89+Lbx5/+3eX5t4o+fv78y//wH/5Nf3wXNJpo +rgUDKPTuZP3p2atfwarhZNkHWRTtcBL4W50WmgzfVLRx7QqdHjz7stbaOzh87QUr2RiB1sCoKI/a +JdCb+ngweWa5W1Z5ZldWgtZb7rzaP/0sap6xQtw4qdM7jWo7PKxaeFwH7jp+HHYuNXsOSwwyodY+ +YbjGlejTAAx177Dafx51H/Byl+GiyfLe8cNPVGeYhDcgJq8MWqOn8CNRbd+2J3F9MNauNfYpupbN +aomUBDkxl7cput5sPxyM36r6pNM7aXXuErhXKhpA9dM5HTxNMxeV+l2KbujuTLVHEHcQArzcBoou +6RPN3Sb5NkpVaD7UzF4JMxWjV++fh80TPzoazt4Ntj8I1rhEWJXWgVNdF3GbEVog0yRQc8MHtrsN +b5O0Pkm5w62Hw+WTavfEClaSPSLFKi21qu3T5uAegAModM0a6+ak3txv94/92k4e0UUpCqoLWnAU +JTSdseOvOmOQlgegjDi5g+Kebi8Va1rEFM1uRd2j8fazvfOvl0efFVANjY/idxd7z1mlDdIpLgyu +jIbzR5PVw/HysSS3RbFt2KC/KqksB1EQNg7vPvwecAwv3CXi4oRcOieAjubEajbPAW64lXmnuzeZ +nDx+8nmjtYMSge0duMGJ7a1VewskA+CbV9ldH7w5ufiUYCoYVfUb9zuLT8LuIzvYccJ9Vo4L/p9f +ftEfnYJYRsmQFbvd0ZPTBz/c3n87nELqPByNT3/723+0Wr/CmFalc9mcPmuMH3Xnz2DCKSba33n8 +T//zf/nNz/4UyCpoT83ZCZv3utMX9d6FG2zbzuTRw69evv8lr3QBSCmxI+lTx99VzAUjDEi6HkXL +ncMXnNwi2DbOtApIOV8wZbXTHZ3vn3+gWF+SWrox8sPd9dHHe4dvOLGTKxjpjGiZ48OjjwWxvbnJ +ptOyrE6m2++a3QeKMSeoVuAv/+iP//zlq282NjDQBUW8zvDDau2sXj91nIUkVMF8XmkRtE+QrlWe +8lJXMueU2AeaXWs/COsXlcYxzDkwT6+6o8YF+Ue00KL4lqCNau3z9dmXdmU7nePhemRjzKvdWu8U +rIBsS7FhXOptcCkbPYCpcrgb9S5681fL468fvvnFeOclyUWy3o7dqajhuAfKgpf6FNcG2gkuSrBl +PxiBziqgFrBQmJAi5sBXOJUDzd3hlK6oNO49+ly3B7zUgDgFUQAeLkrNdvf8+OE3WNxir6abY1Hq +AHmrtvf9+hojy1eFnYcE7RWKiqR1gnC2Nb9bDrZSaTGRlvIlm+Kbrr9imLLAO5Y7aA6Odo/frE7e +13pHKGEDSzGdxVV1CAHiAqjy6uCTk4c/1f2jIhqmM2qlsh3UdhHSARcFLV8ouQzft4NDt3YCUYMT +znznOVBEIt4NjnAyAARudy+G0xet3hMEDzGyWmmeA+m62lVwMMJBkbgK3OMXP5itn7J8YLmzzujB +ZPtF0DjCmSpwReBjs/njTvcEJ13dGbvVI4jEnZMvar0HRaySy2m+N5vvPGH4Ksd3VGtmeruCMqlU +DyaLF2Ftn6K8k6NXy/mFwAcoZpBsxamsVicf751/SbNNFCsXSxZL1xiqms/rKOrki/CeuOOV7Y5q +1RnHhtmsYjjLWucxgrr5rJhJMVhJl7hAUIa8PKC4FkB0UNsxnXmz/0iJG9lsj7ffgxyz/J0iaqKo +KUoNWBHbX8rmluGuB8AZ9j6ert8o9iSd5SWlS3FVgqvK7pQS6gjkWaldbR62Rvd5uaFb/eH8qd84 +dKu75fo66h1AIgPXUswhqJhCyRTlIUhUPX5SY0wwdSA84O3D8V0QpxgTsnIPJSIghLoFQnUOpnFy +F65wefgBIcqS3JwsnrSHD4FmWO4yqh+1hpeg0BWtoxsDAHaCrKjWlu4BEjZx2qN5n+Z8z9sq+9N8 +kcsV2ExeSKZ4jKyB5irXjnihLrHu3vJi7+A5RjkQerzWZ+SurA91c0tS+oWiqhvtqLHj+NMgWhjl +OUa3cgVQ5UG3f88Nt3NFkSAtigoLRZsXejBdVNx4URPF+oMnX5N0sLlJFIsGTlVMZ7ba/2y5/4VR +PtxIitmCAcuRzctXJWh0kvIlsWmZ07B2pDszVWtXGyteDEjGhjChuKZuzYJoz/ZWICcx3Gq2D9rD +S1hN1VkIxla26BBkVVUn8DaC8BSpNdl+Mtx+TrFN4EI02wBZhxT1s+NXi9mZJAaa0Qxry87odHHw +ChharmAmklw2pwlsS+JbG3foTEYRlD5g6XD+zC4vUNROp0WSCqPGsV1e3tnAkom4QiBcsGVNbG+3 +PXpVrj1wq6eC0iAoS1SqglSHkJTMMScDerRLZA3shSlFEDVqHFRbF2HtLtAbyIAYExVxHxQrwwY4 +6UB2689ejLbf2P6eamy5lR1J78laczC6O148JVgfZzyc9UEt3n/xo1ef/f726eeg1hHMAhEKmIYz +Ua6gI3gE2FUOdh88+d5i/bgcLpf7r1ihXUQdcBjgIaI6sn247KfT/S9orimJUX9w6AVbrADkDby6 +LCgD017Z7pIT6sk0y0Gy1kYaqDx3Dlk+h+gE5Xe655BKEgkkkShm8wIIcIyqEXwLY6qwrCzthf7c +MHuZvKSYM6O8C2LBr5/gdCWX18C1RqOTanOJ4iokzQLqUmzbj4DU7cOyZvJKOiuUvS1eaCRTQr5o +EUxb0haN9oPB+HmjcxfSB01XhuML19+KK4GX9CJiM2JXs1esPGDEdqEgLhePur0TFHdAcGFEAD6Q +ycqS3PGDZTYuwEhQcS2gBgMmc1WE8DOFuNFPWN0Nq3sIai/23jx8/7u1wSVMFCd0wEvTaZalnXJ5 +CD5fKpkM15K1raB6JKvd+Jm4kiyK4e7B03p9JvCurLcQoiIoo6B6KCsjhq6n4vohQr2xN5hcABrn +82o6LWxuMiQReZV919/FMLeQlyCWBbFJ4l4uK0Noa9ZAiJmJD2md5ZvA/DHcw3Ffg0h3l7obM1JW +ntLAvnAbIIikK0DbGKYmSAPTAwH7wCivENLMFTmSAc3SU9Rm3DlOn4BC9KqHIAYnO+8EbZwvaZLS +BCjrju8dX3529vCLqHPEqd3B/OHy5L1bP0jlRY5vh7UL1Zha5ZVqjzWr7weL2c4rjPByedkJduqD +553JM81e8sqIYBoY6XFxn6YGQegkWVaNWVA9We59GM9fgDSA0E5nRV7sgfji5c5w8XSy/gTSk27P +AdxwMsoXdIxwEdwqlvRyZX+wfN1fPh+t3kW9xzjbBmkDuXK6fOFW1gARsjUX1LFub1/1NIHAL9dr +i9fvfwS/T+c1mu9wUh90kB+dVOr3VXMOdIWkqqa1FOWRqIys8i68IZUVNjbipl294YWgNDEIFqxM +EIGi9hm+UQInyasYZqz3nzQ6uyXMMJytRv+BXz00rG1OGKazysYGnkzRitxKJAiWC8PGwWT15t33 +/3z/3vecYBtwg0Dk0eSiHACZh/wVFxsB6xDUEoHJUJV0hosL8sT1xu10RtnYpDI5Gf6VZSuqEnGM +pqoVWW1A4ssX4pret2+Xbt3KZzMiS8f9sIolMZdnabaSL1ilogdiRNVBOVZSSY5jPI4tZzNkapNM +JXlOgBwaP69KkoGqz13/SFCnCBGUUFeQ+zTfQMkAIEvRt8LaWbVz3/CXecTcTDAo6pI06OUaI8aV +fPzavmKOGD4oFWmkQFGUoeod0JW9+B7N11v7HzCmAXmTZgzLqFkWIDlwsy6I7sny1aP3vzfce8Vb +EyAPujlUtCZOWKI6HGw9f/n+18/e/vFk58u4UBiiu+UtzZ7RXB18T9ZnorZo9Z96lSOCqiAlyTQB +rKaS2oYXTkWpjJIvmZI57U2fl8N9UW33Jhd+bRclfUA2gq4ZzqrRf1Jp3oWJMozmyb2vprtvSKHO +aUPZXXHaRDLGs/XLzuAuy0eeN+1tPVTMuenuK9aKV/q6NWp3T+bbT7n4yb561DiptQ== + + zyr1fZgNkm0AE06leZapG9qgUOBBr+GAinTdDfZ4oa8bM0kZ5ot2EO6p2jCXUzDcZ4Su6e+H7ctm +/yEr1AFL4cImy6cyMM+48mE3W3DBohJiUlQg8GEqSahKsxLOTLsfRLsgfuOGFFlWVxq2OQQyiSA2 +QLesjnihjRMgAcqQ91MpxjBHgthLpUQILqAfrBD3HSOoMJfjMmnUdfthdZ0vmr8T1/rjCgVAPBEp +OUXwtKyUTJHN9u727gtI97fvkPAG4FoM3aDJsJhX4MPv3CkV8mqpaFNslEjgV7dNdUi+NN9npSFQ +dEYaqvYKdF+2qIhK3wvW4+mL6c5nVnU/jzmZgkmz7SISF3dluKA7uHf32c/HO5/J5iSboxhCZhmL +48Enq7ozcaI9zYPMOBPkDse7LKPRlMoJgWoOVHMYNQ5BMJrRruKvNHdpulOGA8y0QCyHzb2Tu58f +X35jR2clpMwyFUGsY4QNHNirHJjOjm6vg8aFYixLKOhf1dTjfl6ZLIliuigPEMRj2IYT7jpBXPNZ +lKqdwRErVEELQ9Qo+rQ7ed4YPVOdbVh3TWu0+qe6MyqghuosJ+u3B5ffAHwN5i8ktQcap9cBDXtU +QBxR2WoPn51cfvXg+Y/WZ59XmscYalb8ycn5x63OUQnV47Z0BY2gIsOainyLpfxcli6Xx+PZE1Ed +MDzABcybw4sDimmDFbCmQFq63Yv+5LFqzUHfUWwjG3egkASh2R9dkAzMZBv8TbG3SS4GaiD5cbX8 +FC1wviT4PO/VmweGOyeZCDBQECEDGpsJqliyUczNAHiSgaIMWb5LXlUjNIwhToSZLPgzfJQNXlRE +y/ClDF/jxSgId/zKHkzpd24VszkdZj6ZEjNZvYh5JRxUQxuEkuPOIKuWCiZBhEjJhV8zcTsPLs4C +uGdYWyhazpSsWxtYOs2Ak/BiA2C81rq4fPLzy2d/sH38rR3s5woqK9Q0oExqVzJmorWtOru17vPx +8vO43xCmmXbHcAZedZ9Rt1JIkMzorjkf9u+HtT2MMBiuzIpNzZrPIMs0jwuImMmTkDc1Gwh53KII +XFpRmt3xxWj9WnYXJN9EcB/MBL6EU7brDtxg4VaPYc4hJ+YLsGoSx8eAw/DtEmKwfMOLzvzaPUnb +ZrhqOkNubBZQ3JSUcTYXV7vl+CYscdyvxJ3Y9pBiKihmg5PD6rBiW9K3gvrdZv+JYq5jqClKgPYn +Z5+Dmwlqk2CrRTxEiJAVWlED6H0EyrcRV/B7PppddIfnsjkqEh5wCcfZajb2DbOfzrBA1YC5EVSD +FTtAkDY26WSKta1hb3CKoHpc0wAxJXU433m73P0MCE86I7FsdH7vcwBAgFOaa3FC3/F33cquHu9Q +eZkMb7nTsLGH0d5Gis2XHIJpAQOU5BFNujztmlpzffDCLM/ziLuRFEi2WcJDlKyVw6OYFCVJ2+i3 +mmdX5XHkO3fwzU0SxQOaraN4OZlkIbLcYLvevWz0HvJSh6Jr4GyQ4gFmWX6Qy1s81zKDg0r3QnPm +8TmikpnNSOBIItuuhqt0moxvW9/GabJO0xECog8zgYlB4ijEh1scwHxBqtVaR4PpvcHs/mjx2Kut +IfvTTE352yfxpXqrf3919N3J6uPW+DkwFuAJcUEPOcRpVzVnTgWI/YFZvuj2X44mLxxvu4DI8AZZ +B/EYkLE0a+CUr1vjg9PvXj77PcgpmbhXoyzKVRq0qjowgj2S79S7j/uzN5w0AKk+HB4F4byEuwWQ +vSUHtDnHdTv9J63hC4bvAhNAUE2UegBcsUYrmQjmAukN60fbR5+jeEgSgSh1gOrTfAs0FPAHlm+J +UlwAMJNjIbhAboxmj4/uf8OIg0RayORElq847hb4wNV5jAk47dG9H++dfZePe+uwwCRb3aNW9xCo +r1fZM8r7Xv0esE2a60DAJpJU3D9FH6bTXDLJIJiH0w3d2Qsbj//2oFEmwyCIIss1YCwYruNkGQi8 +KPRFcQghEJ9UwVwR5DBexgkP4gs8JFuwWTbww5mkNoFcSUKjUtmrNs8hxWN4gCI6hZuqUtO0iCBU +SayCh0e13WrzVNImBNPc2GSzGYYmTIYqA4BguEvRVd2YGvYCJwLIj7dvo6JQa3cOWNZLJGnIcdmC +w2kLv/OyM3tu2uNingu90WByCWrxOx8hiZSQzpsE25Otfdc7KuSA+yGa2l6tXm/cwT+6VUgmBZrr +2sEuijkQxQRVZrhIM/um1QMFKqshGbfG0AjCdd1FWD/UrBHDVTRzUA7nnFQD22EmCTIOZ0kfUHwo +a0OrvKOY24q1BrYJzAH8AaJMtaZu5RAgCNiyW1lJatysNqjtisY4XTTSOZmiQ9dfKFo/qOy3xy84 +FXJxD6WjbBEQ2KXFFsnV0zlIymPF2AZWQFJ1mByQXUClwLfBY4FdZLNcCTNLqKMbS0nZkrUJybZy +eYNhaygRpPM6yXUg0Wv2Dig48LG4y0yaABfihSoAL8WGrDzm1YliLcu1o0xB2Yh7IMogajASlH4k +aWNwdUnpdof3wvqxYgwp0gU5BgQedFmuaCczUrFkATyqxjbo/WSSymbYbF4qIg4nDnV7N53VCyUT +I8pUvJ9QzWWZUlEEWQQsUVQGIIiA3AKkYEQFFAfIB+ClJNPUzGWz9wzmH7jHVRsvcWfxuF5d4phe +yCsAjwRuk1evbBpnCWk23PujP/wHqlLN5uRsTs2XXFEFFwoxNC5Dkc8zljOWpGYuJ8PVZjJAzBQg +USwbN8XOZVmQeDTT4uURr0xwqp1KsXH9tCwriyEv1G7dwdIZ2SqvtfJOUD9RrVUyrX10CwPOJvDx +DkkuJ5W9uWGvAHULxVh2QTSxXCDJrbK/5EDS0pA6zb+tnEASjqr1LWfuVVaANrLalvU6RprZuH2e +wLKNuH2M2mWFCjAuMW7R21OsOU5EcR0eZWj769n+x9vHX7vRESy9IDdgEVFwOcItYT5C1jhxYJdX +XrSjGUPHnev2ooA5JNdEAYqloROeaeU9yFnATFi+zUvxob74DGTeAGmDoBUtPvpV39xAMilSlIA5 +ayzXw4h6OgtXaBFUFRyyhEfwI6I2Y6WxoG7lEPt2grqTJLN5kefrOGZShAmxqVgLo7wj6FsYU8sU +5AJiEECVxRbkL3Bg01kF9Qs/PNrZ/yyI9oHvKUIEYQjQF3dZheTCdcvBwdbynaxvF0vlVIorFrV8 +QU1dHUvmpSEj9Axnx3DgX/VEgsrnZZL2CTrI5BWE8EHqgsBUjYXr74MU3UzFNeQJMqLZqmaCWN5J +xy1NFZGpVSvbHFOG5c5nhbh6c05Mp9h0SigVZEutN8J5v7vOZuJCWHF/DSoEyQzTlUwCOuURRPPC +fVjNZIKiqRCQAQQszVRLJWdjA7tzO89QLi90CyU7m1XzQCfyWh7EY9zTzQZXTCQ4nmt0++cARPmC +An/cTIgoVmHYNqxFIsFH4ez7P/m7QbC4fRu/c0ckmRqKWYWiGFehIeOnISjSA6/O5UEzujTtU7Qn +SFXN6EpKm2FDK25YuQuULN5yiSt4ODjpllC1WFIIwqaY+CxBCbEp2tfNSdg8afTOwtaBpPcoFua/ +ki+q2ZwEcphh6iTdYkWg0xNwD5KpxD3LSvEuYqP31I3uOZVLo3zCivCDIUGUaTaEJA6/8YJT0z2S +1Rm8QMvnS1pik0CLmioDPdZUbWZa+yw/Anwz3R3D3i2inihEEFMo7qNExIjgbA2S7dju2nZ2iuCN +pL1aPeClBtAPVprQYty53nQnotJGMFB5jKx0XW8Hi7ufgzNUcwXQQRTkNZKyc3meol1IdiQN5tTB +hxMpKZ3RSKph2SuIO2BZuZyKExWYFpJp4CQkOCmZlii2HTbueuEezQRPX/3g4OxTiuvgZI3i2wXM +S+VibUvSUS7GPQUijhWGwASwkplOcbfvoBsbtMC3AIvAheIj6nTTNuaWMWWYWiqu1Edl4457UiKB +pBIkoApGweU1AFt4sZsvWBsb5GBwDnEK6RIkXiIpFHIqQ5ZNvQOf8NEt5NZtDEEcQMVUUtzcoFPw +hoIj8D1NHUDW3kwQ6TQLbApYGXBdDPPzebNUMsJgOh7fxTAvmVQ4cSsWemg5X7JLuJ9D7Y00m4DZ +yCsC33H9bVmLxRFQplzcC4ajaQeSV9i45wanNNdmuSbFVDM55c4mvplkCkULJysgk2E2MEKPKwvR +ASO0KRbkbZMTmznEgA8H4UPgHopCUPME6XBxR+yu4y3j9jRsFS7VCXZ1ZwEEKa5/rvZMd+ZV9im+ +kYqbcMkgmuIqSUQZQommQPi0/Pg+2hScPJMRwEAGVBIBiTJguTrHNSEn2vaU5WpxP7KCFTbvm+VD +WZtZzpJiGpCeZD6qVOa5goyRvuPvm+U9+C6wooCYm2kKiCjFNEkyBJwB8pDLu7lCGUI1nVETSSZf +kLxgi+aijQSZyaqiOjNcIA9rq7wLcix1VZ4Rwcrw1cksD5RYlMdWZbczjjdDgMdCODtW9+NPf7ne +fwq6DwfsEvsU38GoUAGC4cyLRZNhvHJlmUqLqTQPsQNECKfbqrVv+yeJBC0y0dboAYZa4EjZAhAM +I1t0y9XTyfK1qvc3N0oUZuOoDeEM0w7cG8jVnU2uhEa6swswmEiwSKkM1sGswlTQVDk+U4q6trcT +Ne+m02Iuq8ELQ2Cep+DMpaIFdCudlUDTAY+6dauUTkso5klSD7IbxzWKsd8Cz5Q5vlvCQMGNSLYL +L4JtZ0tWNq/G29FcE3gRRlY4vqebIJDroC8Isgz6VFHHteal4x8geLVQCnIFH0GjVEbN5g2gEyjQ +CaYqSJ34wDZTgc8Hdh0fQKWCcnggKEMgtyX4liw4MEUQWpx2SYdXmrq71exdBrVTMr655gJC8lyl +Wlt1B3e92jHO1ODvFbXH0AGwIyClEh8xtMNzdtwyhrCAlMY3m+gARY1MmoPMbpljSWzSdMCLLZyu +IUQEWZhgIrjIQknj+Cpcp25vAV3khA44ACc0NHOMECAZbODAfu3MCnbBW2iuf9UCEmCkAgwTIggg +UZC34NNwuiIbo0xB++ijHACg7WxzQgsEYCoDaMAA7PQnTwbTZ+C0JdTwgjVcISAhxVbSWRFIRTnY +Hs2frE6/ALEM1tVb94AlFlEnVzTATwDcEkmeYULd6mevdOVV9LUBfhEM2J2YTNIoeD5VSSYIYHd5 +xMEooBx9w92mrnpqg6zgQXGXLEAYQQS2PCbJFhAG8HCOizedUkmmmDfvbKB5CEmx41WP3ejk5OFP +3nz5Z2Ht/PZtEtAMXolNBogZ4FsmA2SsUWucNboXfHygWhxPHqvauFh0UlktVXAQsmK6W7uH737w +i7+MKxxiQQkFstq2y4e8OAQnhGABR8LJAKzgeaCvM4iFQgkmv8VLLSZup9IGuZfJWyTTldSVrG5n +cmZ86KJglFATeJGsTgBzACtYsVXC3CIab6AFtQNBhc+HBYJkalMUxAv8RsNxg5frmg== + + MxkvXxsuAFSbk9okWWYpW+Q9jodEFt+7CaoHTnmFoE6ppIlCg+fCQpFPJvPATgtFBRal2bsPUJAv +ahBubPwwTljIC8BGSNKXtbEbHhveGsAhk5NgocG1iqhO8zWMimKeYwPgzDVrCm+IT1+oPb92ZPu7 +kLkg6IBKCdIEtFuxCImGk+RBpXbBCC2SjXh1kMxpt+4gpYIqio1cjs+kqXSKhO8VxE7UOLPL21ft +mO2wvhJlYKoWC7hE1iHXA2FYHr7fv/jKi8Dr2rPFc4gdcHLF3GKELoQzSdZAzheKMmhhQWzKSh9Y +HPgJsDgEdXGySlARsKDbtwuJBAmJI5kW01m5hNlx+CA2CAE32CeIAOi6pi0ouo3Fi2tks8LGnfzG +RqmQ0wgsAvglmGrQOF/f/ba/fNscPgRumcnot25BWowfDQDpVyzovNA07UW9eQECE7I/KA5gZYvV +a8ueZ7JaAfVFZ3+4evvy89///Pt/8Ojp17mSgWJloHOga3ixByADTnXVXXTIyz2ShXynJTNqOm4e +F4AchuCCawb5hlEBICd6tW+fj1NhAD5JMzWgRkXUxHAPcpYVt9g4p7lGrmhSTJQtyLkiJMoaRXdp +tgexj1N1BAUHC9j4jrYDyEYwrVrnXq13CZF+ZZcBLK6IaIAzJdQqlACgGqI8FaUhoAfouFSKoCkP +jzvewkw2WNAF3kHYeERRUQaS+yZOxHmzjOImyVYoocHKA1GdcmKvgGiZLBP3jbK2WsOH1f59Wuii +ZBhvdCA6yXgEHZ9qAzkJOqLee9boPUMJfzOBp9M8TvgobuXyIjAHBA85GRwyomhYZePOnVI6RRXi +BxaY+EE2FmCkAT/ISQ1F76CExUu1oHrXdA8MdylpbVBAGO0DVMpKx6ts54tKCbF0e1vShwB6paKT +TomJJJnLCTTlgyq8cysPSV+UOhzfyZe8RBqYm5BMMcAA72wSdzbwEmqTVEAzQKsGDNchyOCqKyvA +jrK5SWQzYqFgZHNxkUMQRxTZUJQ5rI6g9GV9THOQhow7CWYjIaN4gxeblg15eZBKwTQ6gtDACA9S +6mZKJJiQV7qCPDSsBeAPwBdwOcNeG9ZWXJeedLMZvoAGBNWk6GY6diERXrmCLsk90DuAjZId7xdl +csCRhEQK6JbJ8ANBW3DymBH6sBAFIHtoGRyyiNiZnAovyHc0G9f4RTGzUJQQTEGugih+XowOwRVB +j4OUA2bbbD/Yu/hpZ/kO6CsQYPAcnICfrZCszyudqPvQCk8EfYwzVYDZLNCMrAwTAokPyDCO1wVp +KWv7hrOPkTH4byYxmomi2rlXORGUaQHxULIKKrjszAShBhwPZGm1cVxpXqJkPVe0EdwHmu2HB5ox +AOIH/yop/a3l672TLzilm0eNHKIKCsjSAeQmsI6ka5Z35IZ3JW0B0bqZwDJZFtgXgAzECHwdzCQr +jgmmDWRPEuqAMwThWc5kOLsXts8oflRCw1RGAlnH8bWrxtlSsSQp6rDZf9QePWkPHyNEBdwgm5UA +dcGdAIjSKSmft0Wlg+J2BhLcJhGXfCQ8LC7ThyQSTCqtCGI/ap/lEGszSSfTDIB2CQGtJMD7422r +O2TxKvAh2CG9FuL98wrLN6/0iJXOavliGSNrtrcLlm5s0iAb/cqRF54pcdsLHfhtIkWm4z4dQT4j +3r6N5HK6H+7unr2NOnsY0yyifqFkFUuuZmzFXX2xsqBOota9/vhtCQPx0sCpNkZW4/yeEZJpmBM/ +io6GW6+n6y+izpN0Tt9M8vGFFe0iwBrhY3RdUBa6szbcFSd2ARtjYpASsnnQjKGsLIGqXVXXj9lj +KsNftdTRAPFAWeN0HacgxiuaNnS9uNk9pFpVX/rhsaKOQJCWUIUTqqY3J8U2JXasysHW/tdudBbf +lUsxcXPtkioJXdPaASnBK2NBmfBiX1YGGBrXGM9kxXRGAgR2/B1ZH13dcK9hRFWShyAT8ohbxCqc +MGj0ntQ6D8AJAXDigsMMULWm7Y6q7WNBH4Xtu73Z897sNSeNIahhacreOmpekGy/hNUYrsVwYIVf +wuK2PggKqz9q9B/vnH0rO6tcIaYTGA58oMUKESsGlj8V9QVBxRsjEFYQXMkU6Lh4fyAuga53FGMs +a1tAgViuwzKtdFreTFC5nIKU3PhX1ILABPAX5D7DdnJ5A9Dp9q0cz0RknBBtCHBgGkHtsNG+C4CW +zdHFkui4I8dd3LqNAPijeDlTNBEcJGo13tpNXNXAZJqSsqXqc/hehoMs4GcyhihOQGVnQZptYPBO +mKsiFkH6y+asZFLY2MCxosGxQXxTg6ywyrQ1eT3f+8wHEIAMTnhA77uTh6Y7h6SfAihAfE6cysYC +wCeTV8ATcNzzvHkU7UT1Y5jbZFrP5CzALsCWzRSdLaooFanWulw9Vt0FJXQIsLdUvqLx1pXE8Eka +AHmIka0i4ifScZ8jACWGr5veyvD2LH+fE9oE6QNPKKHxKvASEOMRwBGAMC/UaTbIIypALsTjdP1m +78GPJXMO3ruZoDPxDl7EMEEh3scQIddo1gqgWFbGySQIbQokeaGoEZTDCrUiagGmKfE+KojETr5g +AGzSfI/hu4o+QckI1BYvbwnyAFQDwwHhj8zyPOqc7Bx/tn38qVs9LuG1XNEB7irLg6udqJagzMrB +vmrNMKYKmjcVY5el6QMLqJo9w9gWQlZprqOb8KUjhACVVG2Pzjipn8ub2ZyZyZsU2wVxGgN1yUwm +cRTTXW/LchaKAcklyuVB0JkIUla1iaZNs7GgLmvGTFQnBNsoFr3NhLiZ4EpFQ2Dqhbwat/sBTefv +RI1jw14Aec4WJE0f1hvHqtL7zncyQERVc2xXDmVjl+Hb+bx+5w6eycqmteSFTrGoFwoWMEkBIBfy +o7wlSiOAu3SKR1EXWEcSECOnIySEZw0p2XjJwkA70JGojsvVk2r3nmlPGaZBxqnEccrT/ui8WFAB +UUGMFDGf5DvZkpPMyLmSnS85DF1DMQMjDMjUDDskyEGpFGXzTiavJ9IMRlXwq9N6BdwmuGa5ej5a +f+N3HgLVAb+C1ANRaZjb9dYTyVhf3X9xAc0gcADVr1rMdzh5AssNXC5GZjLI5uRMTga3JJmaG8QP +X+eLJkR3q3e33tsX9RrBhgDahnMAyQgnbIbxs3kxk+NFsQY/C4k+HW8sa/FuNuqWy0uC9QSpMlo+ +Vh0QXGWcqsZPmqelbF6TtAEjAEuxCogFBF7QJrqzE1OvEsSFBlaLckM1aqIcYZQPSX+w9d7yjmHR +r1odSbzcJZhKATWLmG148+X+28n2S9MecawPbESS+7XuJcHGAZUruCBzeHnU6N2zPcABKQcEu+SC +c7LSmOS72SJMODAlhmYqhjkE+cPwfUBFQZ4Nt95pxgIIMI4HqTSwrCrHdTAc5LZXQnyK7lPMUJQm ++bxx+w6SzvAM20hnFZBRKFmrtE/dxr1K4wHDde9skHfuEDDzIL4otp5HPfgECCvV2JYgQVBVEAUb +CRLFK5BVKbqeL1iituA1AJkKpNFSwQTMzKTFKzZeS6WkZILP5oDPxPf9gUgQlFco6hubBOhHlu0I +Yje+/YEB0mpeeRsFmpeXsqiVKVoF1IMoJumeYe4UigZFhyx4AlNLZ42NhJTJQEr1VWNmeCucCUuE +Ez8+IPRqrXuT9Qc7OgK+EZ9jQex41TAHA1qFVlhxIShrTppQLBAM82oPNjLt9dYOYMIRkGqgYSkg +eEXg4SDJwcdUYPKOf15tPlHtaSk+BiaUEB2nQpKrF1ArlWHyJVPWZ5zUIyj/9gYWnzjKxD3UIOND +aiiAaagLAa7aS4JvbiQ5BPUh7jJZA8MDEICQ4AimaftHINU30zyAsGbODGcP+IZqDCWlgWC6LNZs +exLvS0jdVE7fSIqprApQQ3P1XElO5QTDmYzmD3aO312d3xaTaSCimiz1vGCNYC4oGt2Y2+6uVd6V +9Sn4z61bmVxOolkQsGYedXl16VTu17oveXkY37cqaBubeL6gwJKRMQtSN4FLb5IAs6I8FKRuvqgD +wvuVXdB3dzbZZEbPlbw7SQGWBpitqk2V+HTKDgjkAmrnkEoia22mDZzsho3LcrAN+qJU0iFPba3e +HF3+wI8OQYttJNiNBF9CyoCusVhLywzfuXz5697yAyX0NpNiYpNjuXZQOQaW+zv/QeqjWwiGR5PD +b6e7HyvaCK4TMg7MA8NXwbHTWR2oAk6Pveqjh29+a9gHrNTPInAxLmBLAQOpAryrS7IDiA7NGHFi +mCtwsOLpjIEUQ1GYtnoPWbWXLsiWPV7uvS8RFZyuYmyYAQ6DRkDbIE4pthp3hUZt4LRR43mz99Ys +7wHdBQqEIpYIGtYcyzp8iL2RBoYcyfLa8x+IyjKRBPKpgIF+7cL0jlE6ShXU1NWZkHi2k8RmgkQQ +27D33PAMrjyTlzcSVCy0iyZQUOCltNh3o9PZ7nc7W29FY5GBr9jkSCJKpeSNjfjuCUxpCQtUc3V0 +72et4fMcqCS+Xg73Hf9YVCYgD5NZMZmVGbapxY2YDZAP8W4YVXO8PceHFanG+zBojAMkE6JkuYjB +Hz2UqGJESFKVWAqlhUIJ9FQbSH6+aMAf0xkBQSyWbQhiKz54zDdkY+nVLmx/H7LkZrwlDuxdAeZf +KMSlkICuJzYpBHVlGaT6GNRfMg30STOtCZDzzU2G5YbD1ceau+b4MUW1YE50pV2rzhBEvH2niFFt +Ttq2/Itm9zUvj1NZ4c4dzDJH66N3NA9SQvjoDpZIy6KyBWwZsAJEOtAqPX6uai6pg2SGh3gsYjWK +6TY7T7ZWn5VQ79ZH8e4oaBmSbwItuX2bAAkAbkNxMHs7INAyQO9rZzCrnfFLzdlNpM3/59+Tcfz/ +9wX8fzVuDLlu48aQ6zZuDLlu48aQ6zZuDLlu48aQ6zZuDLlu48aQ6zZuDLlu48aQ6zZuDLlu48aQ +6zZuDLlu48aQ6zZuDLlu48aQ6zZuDLlu48aQ6zZuDLlu48aQ6zZuDLlu48aQ6zZuDLlu48aQ6zZu +DLlu48aQ6zZuDLlu48aQ6zZuDLlu48aQ6zZuDLlu48aQ6zZuDLlu48aQ6zZuDLlu48aQ6zZuDLlu +48aQ6zZuDLlu48aQ6zZuDLlu48aQ6zZuDLlu48aQ6zZuDLlu48aQ6zZuDLlu48aQ6zZuDLlu48aQ +6zZuDLlu4/i///dkjNF/T8bvUFTryXnz5NXJd3a636FqPesI/jw7efnq7ovvjL9DHSm1F6+a989e +3X/65OTFe9SDv1Jl3USV2d2TRyj7t+9E4U3o5MX9y/tP4C/nZyeP7nKoCG/14f/vqKiGqlf/7bz/ +juRqjiEbjqPbuqZZpou6mmv+v4y9d5RsV3kn+v9bS7rdXTmcnENVnVCncs6xc859b9++OetG5Swk +EEECZDIWHnACG5uMSCaDbUwSUSAQxjbBxtie53mzZr3fbj3Pm5n13lqzVqnUXbfOqQ== + + ffb3fb+wz67+kmnX87JZN+94Ofbc/+eb0rmkY+Wz2Uwum3Mz7Fnyppdfy1tWzstYDvsfR9luFue0 +0/8/b/pfPu7s/86Yzt528raV287fNndbnlU1dnXltqX/4SfMW47MW+Py1SsnZ/fuwJScf/nFxnHM +yf/0srp0/vzeueP77OGrLF5mHSejYZbq+G/1Ovnh+G1X/+dZs9gBfjiNl66ztsWO2Y0ti90n758n +o8957OHT4cy5mWQ28/Lvo//x95f/P/rv7/9ffz98//n/9+Pxv0v/fRQ2GcVhenROnT1eePnHw4v7 +f3IFU4HRdG9LtY5fO3Xs+Hy3wa5O37aBFxOH+fLyM347nGvPezkSHrvFOpaNa8qQw0/+bx1AxvMf +B/3H/3OsizHa2cPhpllyoHWbJB2OkGR3gc0gkPZtq/3/g+VJOxaKcQSpKMplkfSbKcbpEie2JK3D +CVWGIV0HOKFgJvqK1pLUGsVmIpSNo2guw/B50h+atmW5oBkNyx0YFuk9JuJYuakYoyjlBENiMMjH +ojppmmU0DWuspaZlY8BrDYrPhmPJlN3RE3WazWnGIJmadbwVQW3TTEnUeqxQiVNeJJpi+BIvN0Sl +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 +2S7KZoEsj5tVik35A/E4bSCxq62tmeWLyXRFUVMJu+CVB1oqb2Vq6VLPTNcLtfHK1v726QvZ5ojX +Mun8XLa4cvg9Bcvno/0+hqaSjdZmpQ6Rg/LxUMi1/jGvvAaXJJl1TilIRr7UHKUyVUpMMLJtOI3+ +3ClFa0QiRsDHCEzKVAuGVhbFDM1YMTrFiRk7PcxU1+REC8QhKdnzd9y3f/5Wrj4KUWKMS7n5hVx5 +Vdaqfj8XCPDhiCqIWUkuRqLkLyHE4nYiBUpdLDe2c8UVy+leuHr/8bPXWuNVJVEMUyoUglsam16H +Fi09WWiNdk27q6c6SGlwtKx1ZhdvrG3fl8nPRWIKUstIVEv1ZctrJ92e5Q6cdN/N9XtzR3sLx/LV +cbW5VGvtNLv7pcp6OKgeuT08OUlrei2fm6Xj+tRk1O9j41HLtgaD4UGrfUw3OqGQFgyIouQlnNak +n5kKMP6goCcGjc7Zau2YobXjMSudGdpOrdudO7Z/7szZa3fd/9hTb3rLW9/97vd++M8+/5Uv/uhH +P/mnf/6Xl/7uV1/+2reeeO1b51bPYGyhwz1gqlxqQ+u256eHa3OLe2vreydOX7h19/1Pv+ktr3rj +mx966unrDz963+NPPvGGt7z6NW/6+Ec/9aFPfvLkuTvOnLvVH29ACUhKzs32vfzISJU9rz4cLW3t +7J84dfb6XbceefUr3/C2t7zzj//ooaffeM/jr3vymXf8wZ/96Sc+95nPfvWvP/WFr7zrj/7s+Lnr +ttcQ5TTNGIrkFvPDam3aSReqjd7K+t7+6SvbB+fm17c2jp3YOXXx/LW73vHsf/rW89/+8U9/8tzn +P//QE69d3ThVq8/RdIqO2SydVqRCrbo8HB5T1UI0qqWSlaW1E7MrxzrjjXp/uTOzce7qg488+Yan +3vS2Dz333Ove/PYnXv+WJ9/8jkxpBCkFuKNiZspsWqm+405bdldR88XKqN6e6Y/mZxd3do5dunbX +Y2/93Xe/49lnv/DVv/zeCz/61Be+eP8rntw5enk42kpaLZbLMKwDCDLMKtQsThiPpySpWKmtjRdO +1jpLtc78jXsfftd73/v2P/j9V73h9U+/5Z2vfO0bH3v1U69/2+9+6ktf/f0/+ZNXv+7p6/c/nrBb +DJOiKVPXC+nMuFRedexBrb6Uzfaq1bnZub2zl+7c3N66fuvuux989JEnXvXhj33857/49d/98te/ ++OWvXnjxxWff88f9/qo/IAUCGoquWNxotw+ikVQkrPBsyko1Nb3J8TmeT2t60TDLzebcxYu37n/0 +VTfue+yVTz3z9t979x3XH1jZvjazdM6y22Qv6210Us8vzWycOn7+zmt3PvbQg+9651s+8dxHv/f9 +H/zkZz/9zg+++8ILL/zrb3/705//7af+4rPv/sM/PnP57sHcaZYv8Gy2BFfu1OrF5iIsxIWb99z9 +wCOPveLtb3/7Jz/z2U9/4Uvv/9hH3/Mn7/3sF7/4/A9//NFPfPqrX/ryb3/72+c+++V3/eGfX7/3 +8VpzudvfXlw71R1vZPLtdmt4dHfngftuPvP6V//BH7zr/R943xe++oUfvfTSV5//1qe+/OW//Oa3 +f/WrX//X//bffv3PGMnPv/qNb7z+7c8urJ8qlOcAmKpil/ON6eHCiRMn8Th/4eJjTzzxe7//7g9+ +9M//6AN/+u73/+kHn/vo15//5g9++L1/+Puf/ft/+fcf/fSl9/zhe+9/6FWd7qqd6BlKq1hY6fQP +BDEvcnY+3QBwX7xw+ZWvevJNb3v7m579vWfe+exzn/n833z7+W985/lf/+bX//jP/w== + + 8sMf//SnP/vZc5/63IXLD7U628lkP5tZTCS7hepyvjQzP7ezv3/2jqs3n37DU2979nf/4E/e/+FP +fOLr3/nu9378o+dfeOGHP3nxV//4y//8f/47qvVvvvWDD33ks+3+ZjRughMpKhkjOyTTqlZNe/1O +e/HM2ctPPfPGp976zB994E++8f3vfueFH37ur77yic9/5kcvvfjiz37y7e8//4tf/eL/+q//5acv +/eT9H/7gfQ++otGaNwzobSkWU3jeTiUqw/7m5vrJq1fuevVrXv+mt73t459+7pvf++5Xvv7Xn/3K +F3/2i3/4zb/+64svvfijF7//23/77bd/+L03vPmtiysnusP9dHaOosjm51BQTmjFlFkq5gej0RY0 +ydLy9qVrt576nWf+/IN//vz3v/eTn//8M1/6wndf+OF//vd//9VvfvPnH/3Im9/+1ide9bp8fjaR +GJqKtza/eXr/7N1Xbzz+8L2ve/XD73zr6z7/mY/8/d/9FBn9oxd/8N3vfu0jH3vvK15x/4kTJ1rd +2UJlQRQLHOsYajale3k3N90ZXD534TVPvuaNz7zhTW9+5r1/9J6/+frX/vpvvvbJz3ziy1/+4q/+ +8R+/+b3vfPijH/rIxz/y8OOvOXbi2tzivuu2KsVxt7/cas/U64PdzeNnTpy6dObgtY/e9xef/Mhn +P/vcl77y2R+9+MNf/NNvnv/hC8//4HsvvfTjf/6Xf3rp71/6/F9+7uk3v/bYyXOl2ozttiyn5lqF +UW9md/v4rZv3XL92/drlS6955WPPPfeh73//Wy/85Mdfe/75z3/lc9974Vt/+/MXX/zJ93/6ExTL +dz723Ecfe/zJ8dyOIucVKZ/NjCu1DU2tJPR8KdOc6U1fOH3wjt95/Wc++fEv/+VXPvjxD33z+W/8 +8te/+s2//Pb7P/rWL3/xs+98/5sf/vB7P/jh91+5eV+mMIQcAli53qBQni2Vx2uruzubu9evXnvX +s2/70/f/8Qc+/Gcf+fgHv/ntr//zv/3r3/7yF8//4Pm//KvP/OqXP//pz1967tOffMfb3zm3cJwX +sjBusYhOx1M856WSzfFwp99dvHT+4jt+9+3v+8D7/uxjH/7Gd771y3/61S9/809f/843Xnjx+7/8 +1d//3T/87Pnv/s2Pf/z8t5//q2ff9bZHX/F4ozmbsso0oyC1vEwnn+tWisODo6ff+Po3furTn/7G +89/86l9/6aW/ffGX//jLF1/6yQ9+/MI//ebXOM9ff+3zX//ml7/9na89++w7b933ihOXHky5vUBA +ZiiHoRISn6SikiY5y4vbd991zxve+PoPffwjH/kEovmBr3/jL//l3/7lZ//w82+g7L79dQTq/R/8 +44ceeuD0yYuF4txgeCpnV+eGi9ODmX6z/X+T9J7NkmTneeAfWE73NeVdeu8zK01lee993bre+9vX +tLfT3TPTfno8hgOMgSVAgAREEKJI0YEiJVGkxJXZDUVIoQgp1sTuhj5o9yfsm42Iio6+PXOrMs95 +38dUnvOc5ZWF3f3t9bXp6fH6h6/vffnl89fv33vv8c1mo2AlFY7hMYwjMDkSoiMhKhahGFzJ6Llm +rjlujxbHo/MrR2enBzubCw/uHX3r0wdfffH05Yt3X71+df+dR0tr6ym3qGqVVAa0dwOJC1hCoAmJ +JQUQLrevPbxy5WolXxhWi9eONp4+vvH5Z8++//0P//5f/vl/Brj5r//pf/s//vMv/+h3H717Z3l9 +xXZyplVlwbriKkFoqpS6efXBw4cveoPlVqu/NhmfbK08unPll7/3nX/zr//qv/63//J//l//7d/8 +z3/117/+1V/8yc9+8ZPPvvv5kxtnV4bDFdttxeMiTdsIpgdC4GvIcJhJxFhDMBq5zNX97a8+ePpX +//SXv/7rP/nLP/vd//i//PP/8T/+73/yRz9+9c61m1e2Jv1Bo9GhKDEaITnWhhdBGvBiGUNg5Iyd +7zeHRxs7L+5f/9F3P/2D3//mn//6l//lv/yH/+e//+//7//33//Tf/ybX/z028+f3ep16iQhEHiS +odORMEgab4lywIfTmJ4xazmztLa4sre9effuzafvPXr94r3PPnj2Z3/007//u1//+T/9gz/+5Y// +8Pe++Ys//vk3n7y8f3FWKbZZLplABRSVKdLkhXSptGCZZRoXc07h/PD04w8++uXPf/aTH3z98auX +P/3Bd//9v/3X//rvf/31p49/9u3XP/3m03cf3jo73J0OFsrl8Wh67qSGfj8ZDLAk4SIJORamCISv +ZBsXB0cfv3zy53/2q7/89Z/89Cff/Oh73/rjX/7uv/+3/+4Pf/7zT148P9k7aDc7ImeQhB5PaNEw +Fw1haIIlUJ4hJdOsFAqD0XB9Y/OQk1QMB20pJBAhHudxTKVpKxplZ2eC4QBOIBpNJnFEZgmd816y +wKmZVMWxCjhCYgiOo5TAKTyvS3o5jhnBMBWL8qS3T8EMx6h5H7hagsIVLMGTmKwZYFJSomgkFYPF +CYXlypl0o1paWVy4duPW7sF+LpeDeQxHyGCYANMBUjkWk8MRPhLlFCVv23VBSFGUJglm2nTBjqZN +q5zLFHP5eqO9tLKRslMFN73Q63UrZVvUSEQA10ySFs9nncyYFQqXZyKgdpJaQxNLjprtV5rNXLFo +mXnTOtnZnfaqrVJ6cdjLZ+uiYIiCw7IFHDPDQToUwIN+JOCL+33ob5KseC6vy9VWZamUbjRz1Q9f +PL179bRTzC51271qfWM82By1a/k6jtBzswHfXDwUIOdmInOzsWCABOzCEJ2jUoZadsFmZcqFXFUR +k3gCVwUj79RtLVcrNBcHqyvDFUOSi6m8raRZQolGuPkAPR9gYglDVRu6Xuf5FIaKOAKd66bdDjS1 +IpV6/eOt/XeWV2/paoaIJ1KqXkrlTdmicABMCqpI0Rr9ya2kNQkG2bf+Jx8IUYp04zGRJQyR1tNG +uuQW8qlMOVsD+S7itEyJSblgalXHbKScfiwGnaKl0kNFb19+Kwyl4vMhkTCNJUSGyUpSuVFbvrj1 +Ko5psThoy4IgViW5Dr6SptMJRIcRIDDvu7LZ2TC85n1IwE8SqMYxGTPZUZSaxOdZLuMFSUWYUIRE +CQvFXBhzgS2QuBUIYrE4G0dkEDY0oSEJPhrlaC7HqxU1Wdf1CoIwKMKwtEoSMsuailbCSAO8P0Vn +oZUue5v7EqB1UTRJkjZFmyznRGN8JMIhiBIKkbEYE43SNGmCR1aVKsflBLFEEMmklpUVZ24+ND8b +R+M6x2aB1lm+aqZWaKbk91OggVFECvixwHwiFkQjgUQkEMcTnKVXZMFmSIUhrVhMA/cdDHG/2Voe +CcskkULiSshPRr2dSnIoosRROxLTgOMYxqlVJxdnd0q5etgfkSldYVyZcVi4HcCo2Zjfh1O46/dh +l97y+eYRirDDYR5e0PIJ1IDrEaDy3TGOJ+GqkmarVNk0zW4qWWdxA40LaIxbHh8JrANwB29FMBVa +bAtyR9PbJJ2OIVoCOvpN+K2eHCZTy/nKUblxMFi8a7qLwSBwnFwvTXBUu3wpGPASLTTT6C8t3+mP +rtNMcXYmEZhHasVFkrBnZhMwm5GIQGCWrrWLpY1sZjka4nyzMQoF0pTDIRaJayhiEWQWXDN8nGkv +zM1h8764zx/zB+IBfwIF38rkBO+L62WGyeUzoIVWRLnMC2UcdwgyzXjL2pMY4cbR5OXLwdnZCHxo +KMjRRErkiqJYhvJrVLda3eO5eXR+Pg6TzgpFLTlW9B68LYbqMp/q9zZ5qejzoX4/EgxiKKrlittW +ZllNdnk+l8+37VQ1gYjwu+EwAKaFYGlZ7Zdr5zhMhB9H4mCkB/BW4QgbDJFQdShuyWpdkVtBLxiN +ASgjCBMQEsctGLFYTKGprGn1GCHr8yOJhKHrfSPZZdhCAkvRXC0c1fwBGsovEmEuezsXIiE/GvSj +kRBJkza0G44lASSjUfXSm7iPeFxHkFQ87mUOMEwBxZxwCKSCiWCWl6TnZ/0hCcbKcUe50hQnTbjT +gA9lCQcqcPZyZNbbq06BeUcSSddaQhOO30/AKxik5mbjwRALI+wtMKCylrNkp9fjCYPnXdPp0nwe +ajsSYOe99e0YhVmd+r7Apf3zCMe4nNiIJaxIzIh6aVFlw15Uk0MEtSjKBpPSHl7LFLdIqkAxxUhU +8/kwQylPF24QmD1zOUoxWZYtykLZ1Bs4ZoF6n7kUjoWozdVrNJ3xB1iayWFkmmZLujEuVg5kuRP0 +s6EAg2MGtIZvPoEmZJbJiUpXVPq6uSBKDS+CEtMVNcOrWV8AC4UFLwVUbqpWL5VZ7E3OC9VVTsyJ +ao0Xq4Y91O0JI9TimBt5s78Vmj2eeLPHfxanyQxJZjDcVuSaluzOzWNeGWAqyWZ0Z0xL1XBcgR/z +mdbu/i3ZaPlhDBGNIKHUbfBEMDWxmAj8ePXs7vrOOZQWBrBG5zmuyrIVSW4r2hCqXeQzttVEEHFu +Lg5zgeMGw+UkrZvKrRvmEkVmi4Vly+nCvXgUHJcIwgZgkaQ6dCKKmhxptxubLF+AGfT7iICfSyCp +WMKJxU0nPQXRNTMbA4fCAPWHmViUxVAtAJPuRURaLFsCEIjF4apyBJ5JINa8HwtFBIwqJu1JsbIm +yJVIVPHyzRAnjlgg71kuB93h89OiUOeYwuW3grOXQX+YhrEgSW0kYXvZyz4G3IQo5OB60IQWiUrR +NwtREkjSizQhYGTc1fWbneEOTtlw5TxXYek8SxcYupBImPBbwKpoQopGATa9xdgIns2VDraPPmn2 +L2KICYMgyiWC9ALTMDTnbbAyu7bV0pSmIjdpKh2NeGtQQ15hR+bnEP88PjfrMVEiLptmCydSUKui +VA6B/IgAxcje1rPL8H8SKGphqPXWb/ngAihcp0jHHxB9AXneL16exWfmSJCRZyeP1g8fzIfoYFRi +pY6WWsvUDkvtYyu3LCq1xeHBnXc+xbl0KC6GYnICy+BkQZT6SWczFDMAE9CE8cZQ6BxX5LkiRcGA +ZHAqC0hCsSYnZ2ixSHA5TqkrZovicqxU1Z1pprgnax2AbkHKY5S3EUwHqWPUScZGSROYl6Y9jJqd +i83OJcIRAcqP54uqXGNZYFsKOAUgGngcsD2GWChZZPiOqHQUtaXqHbhN1+3EE2IwSMBbAYZQdJ5h +i47VOT15JEqFeR8WCBA4lmKYMs/XeaFBsQUYOrC9t24+K5QmXukGCDSugKaS5Ca0YSKuAaiqRotm +3Tkf4vPjoTATR1SKzetWHyNtXixu7N/X7O6lmdilS9FYVCVIl6KySbOXyS7GokpgHmMIkxPyM7Po +mxcGLxRNm+Yw7Y4luayo9Tii+QJUOCrEEipFF+CjG90rK3uPeQlqTB2Oj5rdYwyzA0HO56ODAQ5J +qCxtA2POzyVoJpMrbmaKmziV87ZfJZKi0a32LsZrdxW9CWDFcHUYc04oRaN8PCaEgw== + + 7JuNfibw+zyovhDrbTCJKQRuY4gRi4A8YANBPoFau3uPDa1y6VLI5yMBRQ1tSJMliizE40CXaDQi +whvOzoTCIQq0CjRFHDFFvQsSpVBYSLptP/gj3MTZHCWWrfwqq9RJLmeYneOjd+89/xJnXYJOaWYv +5a6k3ZV8fkNzFuYCDM9kVqfXVK05MwMwwkIlU2TesidL64+avZNstnvzzgteq7NyOVtZLbUPKt2j ++uCsNrquWGOKy+bTve9992dL29ehJVFURVAdxR1ebKSzm7Lai3pp8CaABuqF5xRJuoxTZYatm9aC +mZrEEorPlyC8FUHe7gwEd0gqBy+eryhqo1rfUZRKymnb7hgjHElp6s5EMro4W4ihZiyRhKsF1fRm +E26SF2uOu8CzBRCKpl3DCB3HdJZxoa4iYRHDHZrJgnwimQwjlASlChQMXRwKMaDegwGKY/O8UEw6 +w+7KXUIo+YJeSgaAJE6YoM2g/GIJHRiHA7VJQGuTly7HZ+cwKI9E3GSYuix3QZ/IakdSWqxQJpgs +J1VA3Ca84ClXkKqy0Y5FJZlPP3/2uaqVADR8PhxBDKBjjs3RdAq0VjQqikJREPIM48LF5Eorxdau +khrahRVBqVNMxrL7JOn65olggEcRh6KKkthT5FE87gSCIkWk0ukJKB/Q0nBf83Po3CwKl0fTVSs1 +LZQ2wWIEwbZ4u8kkDLG8TWEhJYE6stZ2c0ugaVW5kDRzoTAailCRqOgFyODeg1egrSiiClqdEgsJ +0rbzK1pqIZ1fGy7cGi7fz9W3RLFQKExT+QWGhU40cdIA3J4P0vCe3c6hrHk5OThms97oZVW1Xm/v +pwuLlcry3Ycf83pVMCqN0XFv6UZ/5Ua1f1xsHbJSjRWy09HuX/75395+96M4qpCEKct1Re3mCnuV ++qkgtQ2j6zUp4XobgcmSqI6M1HquctadvJ0qbCLgNwnDtrsYkQrHlBA4UDota03QbKxQSaYm7fb2 +i5dfre68HY2D96k7+VUzuyaZk2RqNZXZAmUSR3RWrLxJ0Ul5exziVjTkRQcgCb2Qm6pqDWo7GORZ +Om0mW7xUlbSOZg2aveNSYw+nUrE4oCIVCjKg67RkO1vdKvcvWLUt6h3NHIN+C4dp71mhM4BfdLOr +ufw6lMqsF+eOw6cAAoTDYFVqotQUpAYneoE2vNKSk0NB60Ajh96E4ZN0Hu5IT7ZSTnd58Ygkdahn +ACtFBqlQhALz+Ym5uYQsVSSxAJ8YChI8m8oXJ+niAitXTHfKy01eqFr2kOOLXpKVl5qbx3D3TRqA +GfZC5HK62ioVV4EXkISGYckI8Pg8wTJFii6yfBlgHzANaCWeUN96yz/nJe2AuCpKUk3Vm3DvQLhp +dwi+fG4uFAoBU6gwKVHAfDIDXimVXWuPb1rphVRhSbZ6Wmqkpyfp8rpqjUBdLHX2vvXRjxa3b4I+ +B/OCgUlBk4rWStpDwxyGIlw8wlFUJhpT/X4mgcgg1N38UrG+m69tMXzKMCudhWNvsbFW9fYaZKbl +xu5gfL6ycffs5oeCkkUJ2bb7Xm6q0oKrwqBsaNfJTDPVjSii+/yUm9noL94frN5NV7ZYsY5SuTgG +WFSv1LdUs8OIJU4qiQrI166R6gOPJzP9THncm+xlKksUZfSHhyt777WndwStL+kDeIVj2nR8/PLD +H5ZrS4EQC/qTIJsk2cjndyv1q9nClqfipLJhdUDGBECIRjgnt7K29fDu46+agzOCTh8c3F1bvwE9 +LsnFSme3MbloLtxY3nmyd/5FrXMdVCjLpRSjRvEZUHHAmxRXDXvBF2o4wnvbw/0kggD12/GEt4UT +Z4picphtndilPZwp4ZRpmC1JawCOcWJZ1uq60y+3dk13CBoGsAWsWSjEx70VDjyK6gia9AeoUAjc +sREO4nHw1IwLLG9nltzCBis1GaGuW9PW8EapdhyOKHNzKE5kebFJMSVZaRKeVM6yPJRKC5CQZbOh +oPc000vsQcDclQShZjsjMLBvveUL+omAD/fPYwBl4CwEEZx4iRdqDJ2NhoGjlbCH5wTIPFYoSWqz +WN8u1HZWlm++/+GPU9kRL5er3SuZEkzccLRwY2Hpdrl9FEY0v59kuTwLvEmkFLnB8iWvnAJQ0uVy +fZ1iM3C/slxOpoZObinf2DXTi4bRXF48ffHpT+KoBkNUqO3VvcbfqfdPar0Tt7CGEaamASUNQ2Gw +9ixFZ6DAssXt7dOXw7U7KJmKhDmaTccxMxSV/CEGQEY2BsXGle2jV252IZWZFBsbJJfyhwiCduzM +aOPo7eef/uDB868mG7dFvVrKts+uPjHcvi/EEWwuX10v1LckY1Ss7U5XTw2rFosny80zJ7POcFVV +68t6N44aQLiN1k53eAxXBQYcJLpmdnWrJ2r1UFxNoMbC2rVKezNBak5mMFm/sXxwf7By1hxdyZQ3 +RL0uCJnf/0d/+fjZpwRjgjh0MpuN8Z3q4LqWXAiGRJijyXD/5Oz5pctgWi3FnBR7p/2th6Ptd9za +fpxMW3brd3/+p6fnjwNBFlytnV5qT26d3fliuHjfC46biypihuPy834yEOKgYnmpI2lDcGdgE+JR +jqFtlssimAldXB9e9Fbubp1/tHf9W6OVe4JYm5nBJgsXdmoS9qJWSfgIGAGgidHqw1xpO+6lfyig +VyURvI8BzgL0WDjugKDFSC+FG9T7LOgfH0nhDoYmGToHMhvH0sCVKAJ63gbwpOkkTGUEihPRSDYF +HiddWGn090nOFdV6Y3hR7pymSzuDhZup3JoXhxviKMJQtTKKw8hrUS/AUw0GpUTCTYLlVOoAmIpY +dtwORmoIrr5ZBlaqdQ6nW28v7b8jCvnJ5LjZ38dZB9RXprxu55Z5pV1rH/UWrqdyi6BSRKleKG+6 +2cV0bsnOTQWtixIZUYTOzc3OozPzGIKaxfJmvrKbqx2k8ms0mwWwqrS2FLOJ4Kait4GAOoO963df +PXjv862jtzmlOOxvvfrwu4WKl+xdbZ1cv/+d19/+1crJR2pqhWCzMDU8WypXd0JezhuFezmBTjSu +kXTWTE29fAAvkVvEcTcWV1AiRbAFzR6kcqul1l4y1euPtq/feZG0ezSXximdFkuUVBH1Wq2zc+3B +Z8Xasvf1CGH3pneBRnV7GI5q4aiEYUa5sDienAEtEoTLyTVeqXJyw0gtG5nFQnNzunn7nQ9/OFm/ +OedjcCpjpZc0c8TwJfBQ8/McQIqu1hWlfOlyJByTNXspXTjU7SXDXgQ5BF6b5TyoxEn7+PrzR6+/ +ObzxcmnnsZNfB6if94P34Z9/8LNKYxukJo5nTGeC4VmOrxWr2+BtoY+QhFStLqlyEWzjJfCAfpaV +u27lKFs9ylcOKLKEIrZh9HHUmZuJ+uapNyGoDHhJEEXRqLcDaLJ0DGoWrs27WdKC2khm1lTHWxgM +paU6PdpbolZSkhNRBxxr0aQrcmmWSUEJUQChRJFlmvDCiTJOFgFmIxGx3dgp1pa8VL0AAV5YUjuN +/mlv6Walu+2Y1Xcef765dzdB6LnK+tbxi9W9Z63h9aWNh4vbjzRn6A8ySWsAVhcHwsU1GFKaa6j6 +BOpB0htzAMLe2Teu5QxYsUxyBU6qk2xJ1r3dkZxc4eWqk17gxYIi53vjw+HK9f7KtVpve2v/wfLm +bcPqOulRd3zem5yOVs7M3GKcyHqxzzEl7Ywq1W1fgJn3UaLcNJxF3RyDXpKULgByPKYyTBb1Iigp +XqqnC+uTjQft8Y1ced0waucXD77zw18Ab8IYEqSjJifN/vnVO58+ev9Ho417ULrRhJQpjq3sNIGZ +bw4bogNhESdcMCYYnorHZVGuYF4uMR1LmKLaz1W2z+68/uirP3j4we9mG/vBqCrIVRiKBGbBTAGL +UWRRUbqS3AWDMzuHADTZmXXWS4bXwATB3AFZ6yDaaRcQYHH1fLJ0ki8vp/LrvDpkpCYnt4BKxmvv +EEwxFFZMd1k1u166QkiMJ0wv336OwHCz1tjBUG3mku/yW/4YjIC3CXpF1HoYmZ6d56MJB1yV3+d9 +AxYJK9GoHo3p4KEIIu3FaFPpUmuXo9xyaZGiU8EwC7eQrR6a2S3NnuYah9BHwLaq9z1Vn+YrcHeg ++QEqoxEpGpETMQ1sCwx7PKqALoVSfxNLKNn2IOrFVSEwEcGICFfCyzXVOzKjnc70esMjy+6JYnF5 +8+7q/sPOwpVkusuJGZJ1UcJBkKRhtGnSjkUFUIZacrlUu9oe3F3eeoZ74c88z+Wt1BCkUSQmgj1H +wTIkJ6YzBfUrKtXRwnF/cMAyNoVr1frazpWn1x5+fvPhZy8++1lncqEorffuffjp5z+U9QpG2hid +48EylPdGi3fXt98jyNLlWXQOMIQumO6iAY1MZKC7QwEOxDZ4sbh35pGqW8OkM9JB3XEFis4qcqXa +2Fg6fMjK9Xg82Wge94d3SpXtta27GwcPBbUejcmWWf/4y58m0wvz82wCcUQFNPmUFRqxhAFSH+jD +SU/AwYWjvCTXM4X1fHVrsnr9zruf7Z09EfS2bQ/v3X8Nvi+OGEl7lCuulyo7hfKeKA+887DCLMem +QWgBr83Ng362ivW9zvSiUN8BhUaQZjY3isbEcFSA0oImOLr12dL+s+7yHUasXZ7BKTx9++0vWLkI +jAAFH0NcBMtrycVK46zavJjzvuOKxKIMw6bn5rE3h7spCXDrfMN01yS1D58YDpI4roFNDocEjEgz +PPjZ3sbho7vPv4nDHQkFDLMwzFu9ZjhDw53ahW2ntEcJZZpK12ubvAjWW5cA56WqojZlGZCqmIhr +4P1nZ8Nzc/HZ2bjfSztn3kSWKYlYkiYzFGHFopwsV3W7ly2vZKvrzdGZnV0EL5zOLjiZNs0nWcFk +eUeWS5JSSZp9111GQNbGJJ5JEaQViXIgUEWhxLBexB+KOgJXAWcNngiaPYFoAJ5AWIGgANQsSo1C +aT1pd0kyyVBJK1VLutVsY9pfPVvcutNo79Zqm4dHj2rtNYbPuNlppX0im8N0caPUPDacNRTNY1ha +05qSXAZxFQFvGBLeiAeLY4rgLziuThIpUNdzvujl2RCCaLYzSWc36+3z7bP3QYMljfrx6XtOfgng +KxqTkDebOziu7KYXmv3D+QDn9zGS0ARUDEWE2XkEXpGYJMo1KzUhoNRRGVqPZTOxmAxCLo4biLcK +tDIcX1vbugOeS1Er/fE5x5cScTUc5INvwr3DIZbj0tEoR9J2ArVYrmK7UxUuJjUS1Kaot4bTc0mp +CmJuMD7sLlyBfyG4chy3ElhS1TupLDjuQy9oCAygOUhlN530Zr66qxqDUDgJtRcO8aP+ztrqFS8m +zk/GkaRkdPPNg9bomm6NZ+dwx+pUKmO/D5m5FAE0AGHgZiaqXoNGiIT4RMKElyRXRbXGCXnwZcXm +Ub52OFh6UGwcmekxQmim1e6PLnSzi5PpaMwC0xr1Dstjg0E6EKD8AfI35zL8Jg2PJg== + + CwTqMribsVqbWzdoISMoxcHqtZvvfH3r6fdGWw+NzDIr5G2jvLtxtrV1XzPacUSJxmXMe9qYIgnL +dTokYcRiTFIv62oZDAtJ5VG8EI4k3xQwFfGe2THz84CNJKAouBtZ6UlSB3wESiRFKd8d76xune5e +eXB4/dnRxZPz2++v7twvdY9ILtNqrl05eSTKuQQqy1pNMwac0NGMBYLIJxJJ4GIw12jCwFCHIHIE +lk6AxEI0GGSRL8lagxczulHBySTFpGmuSHFFyWibTrfb271z/yM12VTUKjgLXqxoyVYmu5pMjji+ +AmI47fZaja2wl4OdCIUlBHUUtSPKDVGq0ZRr221AXfivoKPAkufLO8OlW5P128cXr+Hv0Puj0f7B +yePfhMvhWJL0luJwGKIKQpYiko32uqyWAcSg8KDdlGQ3W9/tbzw8OPsgm5se7t/663/1H9zMNBjS +OKELnqLWOnj8/LsPnn5ftRZmZgnoGlmuw6dAW/m8jEE+HDZ1Y8FKLelGG0N1EE6xqBiLSeGoGIpJ +vpDs9w7yMEx7KGuVSIwDEx0OM8EgGfTWnomEt5wDeD9LcxXZAGfUBsNVae2kK8vZ6kZtcJoqbSrO +CBTycHR2dPpB0umHvAhuL/xE4MokmUESSSBEYEkvmdw7HI3z7j1uIjGdwkzXaYyme3a61+nvbJ0+ +rnQ3K92dTG1bMIYkW0hZrZODB7v7z4k3h2jE4iLD5CW5xQklVW0wbE5VytXqMk3b4LURQA++LYhd +lq+G34Q/e7MQYqHHgVbePA1XENTmxLxs1GB+u72dn/zsT/74r/5hZfsm/AvAZqa0Nlq63uodLk7O +tzaum2bFTNaNZFvT24Y5pJlqOKTNzXpHLPnmMSitaEQMeM+wkLnZWMBPhAIURTiWNZgsnG/t3QtF +eVA1mHcwn6OY7WJtr9w4NKw+RTuTyVGzvZ3wUvoligJF6j0CA2NeKU0btRXfHOqfJygyDf4Ox8xA +gI1GoacMQSjaqT4Uhvf1IFNQ9UamuGQ4fUmpi3ILoHsyPlxaPg+FBLgMjs0Ak8ajEo5qLJ3CMT2T +HQjgkecTBAaaJyWpdd0ZmAAgWoMik5Vi9+HD9wEeBalbrV/Umue2PS4UljK5BZorgwjXpEq9sgJt +NTsXf3NmQUFWFrd2P9o8fK0afZ+PBssAzJ6ICZcuhy57h2hIkahN0xUwXCSXxigznpBnZiK/ATde +KudqW2D6wGtnq3tuYYsTa4XyqpMbIIxupHvN8elo+dbJtQ8fPPnee69/cn77M0EuiVIRZAaGgeu0 +AkF6bi7h92HxGCAqz3KFqJeTIwCVJGISQyZJylDM4mCyf/vhh0s71xD4EcixutvsXwfUNcxOKj1S +jG40oTFCgWLTKJYESOeEuqx02r2z/his+igYkkhgFh5QvcWw1XjCCkaMYNR4c8CfStEutGosJkC/ +JBAplenvHN4/PHun2d/ZObh9fvtp0m0KUi6VWzDdwe7Rg/HSNZJOY7iaTBb39++UywvwW+CgEwnL ++y4Ry/JcEUOSaELz+/CAF5TnhT3CPQb8OEiCdGaaL67mCkuKWjw+eW8wPiU4V7I6zcnNwcqDfG3X +tAdbu/fb3V2AKRiQbH4lm11R5DqQYzjC+XzopbdCsbBAYB4mz86FfT4CRZIYlgS9FPaemMgMlY14 +XhVFceDTIuiEWnPPsrynV3A9LJ1J6nUvw20OAThNxGSKsGnSe8YdDODRMMVSTiQCwE76AhTICVXK +K6KrKnlByKez46evvnt27UUCSVJUXpZbwOml2i4oWJpQBc5+k/xM0XTW+zpUaEhC3UmBDs+Hg4wq +Z1y7CQrnrUuhBOrRHCgfv3cSFhkMMbGEArzjm0dCIQqECqAcOJoEYnCe28pRbJaX69B61fa+6dTO +bz7ZPHi73T2YLF1sHL493bqbq24KUqlcWTKs+puVOQaMwNyst+KIJrxkMNME21Lp9E4wMuX3Y0hC +5oRCqbl1evv17SdfjhYvnj374sXHP0rlpxSbZ7gyzRZlrePm1tuje5OtZ05hVZQKvf6VavfQSo80 +swdCOhT28o2TySm4j8uzscszsTk/zYgd0ViguNqbmD5V4Mul2jbLp0FPFkoL128++eaHP7/18HWx +vW3llkSlcXj6fPfKe5rdwOmk7U4mS1eb7R3H6ZXLE1XNwXSA82W5IuiZcMQ7Y9Q7PSdheukNJBjD +5OyMh1qxCK+pddOacEKToouu2947uJUvDlnRdYvT1cPHRzfeH2/ca05uqfY4FteqheX773yL5OxA +iIx7i5PB5nsBeuGAgCdMXaqsr5wfnbwzMxObuRyC9wcStNJLMCAUnQPsajU3Do4fgxfGcJvloZ2z +HJelcNOyANWzAOMim1LUcjTCRSLeypmgn4JPQRIqhmi++SiOyaKYBTcElVZrLG8f3VnfvZutbHUG +VwCpRKm0dfCI40rRqOrl/4eESEhCsZSs9zi+AD3l96GAhFC3aEJlqBRNgP6h4EP98xjIYFHIXr4U +vHzJf+kt/+xMGKoaOFqXywLjdNobOTAOYdrQyglUF+SKYvWdLCjt3cHS3e7oyvbS4V//i393fusZ +eEYt2SnU1tOFFbhxM7XCiKUEqopcZm/3bZxMzc9FAv5oNEJGwiwgIahKULOKWpDVEkmlRbluZcfd +8cFk5azZWnv18pOnr79wcn1WqubL+7nCTmdwbff0w9Xtx4trd6zUOJ8ZX73+RLXycQKspYsRReAp +w5wo+iiB2uGoDKYMHEogogW8g8AosEjgs9K5TSezCmbt2sV7C4vHmll3cgvl1lF3cmtt98nFrU8f +vv5JZ3reG+7dfvv9VGHVdgeG2eWFEvhiUMWAh4Y+TKBaKOx1HIo5mjo2zUUw+DjuhkNeJrPIV4JB +ABkURCaG5b38TDTpPR6Sq5bbF9QiJ2ZhrFAio5n9rb2HSytXoTZanRVGSMlq3rE7MW8S9Xjcika0 +RNRkyUy3uTMZX5l98yUSQeigBwg6y6stXm1C600XT1dWL2SlIklAlC3TbqtajeezhuUlIzF0ulVb +hnkMh6lQkISKogloBAeJqyE/DZjmOs1C3tuPI3HuZPn44s7zi3sfO4VNRmhgRG5///5f/LO/q5Wm +ICDDIY7nCqrcUdWhrPbiCQ1khqHXFlZvuul+JExDOYV8VCzM4YhKorqplVjWBmAX+XLA76Xszs6C +mxAJ1IyHFRyxgPqzmfHrj78bjfE06/JKWbX7qdJqsblbrq/ubJx984M/mCydANH3RmdAi5niGpQW +rwB5gYQQ02bzt7/4peq0L12an5sNzs/FA3BHYQGYReIzC93Vu2+/MpwWCqpArYl6JZUbFmpLg+Wj +xnCblXKZ0mK9d6IaPcedOpklQakmra6ittzUQru3q1mFXKWnmr1YwgRSIGgnHNPA+XJcRdX64HBJ +phCIKDNzGIguhHANe8xLVVkqnxw9mkyPDLuVLq60RheT9Xu7J09vPfh4ee9upry8vnnt53/8N8n0 +GNQRQJmstdzc1HSWVW1BT04IytGNRndwRdEa3rc0UeM3iaDwYpiyIDb93uNsZt6HQo3FEzpchqR1 +c+Xt/sIN3YJ5KS4tntabO7xYGk+PF1fPZHBJqE4xGXBAqlILhyRQg/C2iYSNxC0kIgPLA1z45mnT +7OhGNQwsFuQ1azTeeFDtnZjuGKPSKG73BvtutkvSLs0W3MxiqbaVSi+pCvBjCioqGuE5NhWL8lHv +QVsKRYyQtxxC597sXAOu1NQqvLmbH68fPDq4eHF88fL8xuvzm6+Wpls8A7bU4tict7Yz4Z3ZRNMF +b7UGnUk5w1p9O2W3oyGGQHQad2IhjsKSNG4molzQT3BsxXXXEKA8zvIOkJrB4hElEgZ9UgThqiiN +TLpHUibLpSnGltVKtrKyvH3n9Obz05uvlw8fkZwHucub92SzQ0On8GWKKXBCRRSLoM+XVo7BOV6+ +FIgGWTRuxiJwm0I8JmKI2Kr2Tm884vV8grAylc2kO4R37q1eKw2uCHpTVUv37744On0EyoogADdq +6ezq6vqdnd23s/lVRW/1W4u/8+NfDBavvvVWOBii44AkeDqdWewNLszUIoIaJ6dPUrnRzDwSCLEI +sAzlZdapyU62uNRsrh0e3lrfvY1SScWEIR3Z6a5q1Vr93et3P7j//Lu8CqS/Ve0eMWINI1Ikk0tg +qTjqPdcuVbfK9S0EU+fmMY4rpBzPMxJYNh635328z88iqDbnj0fjHEk5dnopW9ur9U7r/VNwzZXC +9Kuvf3H70WexuGqmupnyklNYMt0J4DaGmwii6lprNLkhiA2/n/W+r/a+GxRnZ1GSyFnWeHnx5OXr +rwSpDkrSsAeKOUCpIujMcvNo/+IDOzPY2Lz67NXXw4XTWNzwlkeirhe8T6YZxnvehyYkjnZASEdj +XkT2vI8JRzUET1vuarNzksuPlpavHFx9duOdz2+8863TO6/s7CSOJUW51OzuD5euQgEYZgPcLs3k +ScoD6nBQjIblaIgHmKqX1kyjffmtoG8eTcSluPe8WIzHQRlqglA5Pn8Si+u/9VsRn48BnawZI9td +gvm6fBmJxSWMMHDKYIWM5rSa4yvrJ0+Gaw9keypb7Ux5tTE8oZis40xypa1MaSNf2TXcEcGmAmEv +EDUWkZGYEg6ygIqzcwmoBJwwMdKOoXokIel208i0acnN1ZZX9h/V+0f17n5/4bw9ADNVA/2MextY +ahK4bybLsFlBKihaeTTcfvzuR056MDsTpWnXtPuK1sQI901qX5ZiM4XyMq8UAUBCYRCQQEyuajSh +ekEENqqjk5Mbk+UDnDSq7b2tkxfnt7915dr7K9u3puvX08VpPjP4yS/+9MOv/5F3uBiZ7o4utg9e +NlrXG61rVmqaQI1AkMjn+opagTmamfVCngNBLZZwKbaaL668+/yzlx9/A6Y1FJViWBJnckqy0x0e +9UfXW6PblFiFqis2NwGrSTbDcCWKyaM4YK89WrqtWb1gRCAoF/z4GxVnQg0DAIJkZRi7XFsEWRWL +aUqyXe8dDRdvHp49Wd+9D5pT1wovnn78p3/1L4eTnVBYFoQGoKgktQkyA9MajSmyVGGYdABcdkKW +34yVqLYag/O9iw+qja2jveu/9/v/ePfw7vaVdw5vfzTafjzceLBz/vr46tPTa08avf1We/Of/e1/ ++OLr36NIK6k1dL0HCCaw+ZQ9MLUOmrBmZghwrCCE5uc8v3z5rdDcDOIZSTyvWxPV6FZrm3qyKSg1 +zR7KZl9zJmZmJZZQFaNarK0Mp6e63ar1Dha27m1eebJ5+mL58GllcG6kp/ns0v27n5zfeMUrVUFu +1rrHpeahaq1LyiKCuMEgCzYqEoF+4f1vlrEhMGtMBhxfobaWry+3+hsnN55dufn87ruf7Fx5VB8c +C3qHZLIgVCS5huPJWIxHUEuS2/3xtenKvXx5k5dBossY8A5mgLGCZmQALdWBldrKlw== + + 9tRkG2Y2EhMZLh2NiZEox4s5w+4Vq6uNzib8aTpdnncb3d3B9Lw/Oc6V1srNnUprO2l3cpnejVvv +7hzfJCgrW1ipdraz5cVkaiSqnWhch9YgMe3WzaeNxjrwVyikIEgWw4oYXkygqXJl5cmzby2tXAkE +KE4oOYW1fGN/snbvnZff/+jLX21deU2x5WF38/bd57JagBqr1PcX1t5d233VGty301MUN3DMePT2 +h+3uobeGOciBm8bJLDj0fG2nPbkOVmU02F1ZPQU8Z9i8qDVlo1Otb65s3++ML3KFKcBmtbpkmC2/ +d3ovGQzyDF/VzbHtTBOJZDjMa8lWc3BF1hqgxjmxIKhlnDRNs9lobWhGZXHj1s3HX3SnF6XGhmLU +4Qp5Lpty+7cefPT17/zR9v4DMFamNRWEWiKuIXE+5Cf8816gvW+ed9xFmIi33grMz2HBABsNgWVw +OLEJ149htpXsAB1TbK69cHFy97NbT763uPMYrEd7cHR0/uLx82/WNm68+/LLjaP7hfba4u49UEzZ +5qGbB4p58ui9r1Z37qlm18ksN/pHleae4a4SdPE3py3Mz6E05VKUHfdW0vIUkxbVmqw3MuWVXGXp +/PrTx6++k61Na/2t0Rp091mpddgd317aeK/aOsIoi6BMxWhzcjXpjKzMimYvW9lNSR/SdBHxnrsJ +DJdjxGocdwmm4kXR8qWod7RB1rI7hPfNKvtm4/niaPnOys7btd4JLzdUrTJZPi3VlxjezVU3No7e +vffeV6d3Psk3tsx0l+ZNSUpv79417ArJmpLR4OS6B5tigaPTjdpyOt0H3Rj3UvG9w1kAMBHUyeaX +mu1tUfJ2JdA0KPauZrZ0s9Hs72wePSy1dgnaPd278cV3fsd1GwzjDhduD6Z3Gu3jVGYt4n0/Q4PF +e/LOJ8PRoc87ZNbLUDXsSbG235veag7PBT778vmnj959GQrT0GuV1tHawdNHr350++kPsrUDBHNo +yvz5L/7o9PRBJK795oQR01nJFPZ4oeHzERiqjScn9e5hIMgiSBInvPUGst5K59ec7JKilJ6+/OLj +3/5xJjPGcEvV225uudbaOzx7993X35+u3RPkNseVNb0f8w6PTly6FITbDAUFQFeGrcVi9szlGIao +pcIy2MmAD+yDiOEZoMVoLClwZdB1MHqG028NTnqT65zcNpL14fTqePUmUMaduy8+/fIng6XjVHF6 +951vv/jsFye3Pt8+eP75V/9k6+hZ0h42KhsXNz5IF8fhmBRHTFBrspjFUDnqnUZk5N3udOGKLBfj +cQknLcVoVrqHrenFxuHj5b17Vqa7d3JvYfNmpX9Y7h05xXXF6vFaXU31K519p7iEMg4tFXG4O2da +aJ8SUjuKuCRXkcxeprzBiGXJbIlmnxFbktrmxDonePY2nlCh9Vg+TfM2FPzO6fs75+9PN9/uTC7K +rT2Y+mxucHzzebqylKuubp29qgzOjMyCbnfAse4f3CVpIxoTSrVdM7UgihXL7uN4KhaTOS7tpPqi +VL98OTHvPZvTJKVYbx+azhBBrGhYTLsDkoTfpRIJvjPYffb66+fvf7Vz/LBcWbXsNoKIFKErchnc +lt87C1jg+Fyzs9tsbuXz00iEm52Ng+vBcS/DhGFTklxiOJdjrHZzyXbKfj8C2n7j6NGVux8u79zJ +VzcZvo6ijiRmv/319ze3rkXieiDIe8Ey3vEQ3jcwIOdoym53Nk2rdemtCPhQlinqyZ5mDjVr7D1V +d7uffPblqw++kmVgz8LKxruDxTuV5g6AoZtdJIhsyNsCIA1H5yyT8flIishIUkfgyyydxjFnZgaJ +RdjF8d7Pfv/Pg35yDqouJICiMMxRJruey0wkzl5ePdL0MnAWJ3Zla8rQWqu3M1i8GK9c9BeOC9UV +y+l0+/sH157und8frxyX6hvZEiDJEDyvm+pNl84Ms+0tZZEqolDk2RSUlpcMgKrwd0nMRyJMNMKC +Mkxlxhv7j+88+e7RtVfT9Wu7W6d/97f/8PKjL83sKFVcbY6uFer79d7p7pUXD55+vXX8Tn9y8uEX +P0lmpnE8lS5vNMdXu9P7Z3e/PnvwndXD90ajkz/5i3/4yR/8FUqlwzHjzRl5BsEW9dRivrzT7e0+ +e/7R8fX3Rhs3l/fvjzduFNubi1s3N/bu33n06bNPv19ubnWHh09e/+Cj7/zetQcfL2zcy5RWRbUh +yi3VGMUQwEYe2hzFwR8VFbVjOQNBqopaJ444stLECT0SIwlP1PV1e6hqbYrKAj0ZydrKxo2k0yqU ++r3+WqWxaaVXebnDcTWOLYLz+s0p0lASGJak6Gwspvp8YKVFlskTuAN0z3FZjs/yQk5LNpJWH1RZ +IEQnEJkG+4aDedf0ZDmdHU5Xr2/uPzLtLsOlMNLb0/FmxR2NeAurUoJQstwxTjjxmBwNS4C00Ygc +CfMo+D7cag2PNg8ejFeupQtrNF+KRCVTr2fSI4pyocwoKgd2zzJ7PJdPQH2y2d/s0kLjxtwMNns5 +PjsTgx8pwmRI7wkay2ZmLkViESEUZLzjEefRN49ghGiYleUCw9rQKfnKeqG2q0hOpbbc7O0Ml84b +g9NUdqppVXCO5eaqrLuikkw6VdWoFWu71c4JeL2Yt8DVNvSOpjfe7LGlvT2ACYWhM/GoBDfr96Fg +hBkmxbCumqxnK2udwfHa1q2Dg2vvPvtga//6YHrl4t6n++cf3H70ndPrL9v9Hdttuel+p71x7+33 +nRz4hbXl7Qf7p08WNu7Wujvp4sRwm9Xy5NXr77zz6nOcdlPZVcOZ5so7Z3e+uHLn83p7Z33x6C9/ +/S+effxFKj+udXZGa+fLO9effPT17/3x3/yTv/m3v/Orv3zw8KNf/fLPvv39X2SrG9nKhp1bq7ZP +Nvae3nvvh/vnnwlKS5XLS6vXoYniSDKe0GguA+bRyq5P1x9niqsg6hYWdzWtZtpDt7houH0Qk2qy +N5xev/Hgt2W96Li1VKYnGZ3h4q3FzXfdwh5BVmm2aqWXdHsE3i1plKAegFsTcSsS1b1nCiGRF8rN +zqGs1hAsCXpgbffdwfLVZHqkgUlM1nFSYcUUQRsoJnK8LakFWaspRi3ptCW1Ek+Isl4+OHvc7GyC +9lP0No6ZQB8oYqpqB0ONUIgBEIDSQnCDl4tmZqnevVCTQ0EsK2JOkTxrmTTbsaga8LM8n7OcnqQ0 +Ad9ARiJgMWaxSFgCnUNAxcZ1krDDIQ50tbcyMKpwTAZ+DAVZ6B1/kI8hoGrSvFxmxbyT6Td6uwSV +KWYaxfJY1grp3NDJLJrO1HEXSuX1QmVFUlK67pqpGsu7Vmrk5Nd0ZwQ0JAjVjLuUzy+GQ2wiJpF4 +EkVBk0i+eeRNphBCYDb4PpK0JaUkqtXB+OTs2vPrd1+2x7uynk/nuht7d4vVab05LVYWRKUERZhM +dkyz66aH0MKVxlp7sKebdV6pkYxL8+mkVXVTzWp9OVMYeiGQbai3ZeiC1c3bo4WjYra5NFj6+OPP +1veu2E59df3i0cvPX3zrm4+++vHr7/zwxW9/dfPxy62909cffnLv8cdrG7fefvLl6v6T9YPnB6cv +1nfugWll+Wwu3fv0y9/fOLw376eCIVaQSpo1KLXPh8t3RaWoKflvf/kjx2mDQEIpNw3GeXB6ePXD +qw++Wj18pqjFe3eefPnNz0ZLp7RQUq0hI7c4pb+wcv/Gw296SzdJ2nn27NPB5DAclb0j0aM6TuZY +oT6cgA65b1rd5aXT7cPHo8Xr7fGRYrUIOitpDSPVa42PRb2eQCW4L0HOyWqZFVJgQFihYKUHyzsP +3v/qD6frNwyj6WQWMG+TCO890o1533eBZegOjmSlqmnFQmlBs4bdhdtWdpUVwDoB/LZVrQt0Fo8n +WTbvZkf58pKiN0k64x2TFwBEQmGiKToDGOttIPJ7i9n83jJC74Q7EPOzsxhBuN75U/NkAnfM9Ngt +rtq5qZka6tYgFjctvcAJbiTGUawlqeV8eaPcPCo2wAC2Nb1YKPZNt42gSio9bo+u1XtnndHVN6GU +Xv5eOEilko00DHiM9/kSvvkEgBh4YY4Bgi6KXKk/PGSEtKqVUlDJwwMzO5aTNcsdtEGySpl43FsI +JMitUnW/1Dg2U1OSdAk8absDQan6QxyKOYJQhG7KFKaa0SQpNxaXQiGa51xQBdGYt5KEpU1Tccvp +erU0VNWcnSz2e6sLK7v9hdVybWK6LbswKDZXO6PNtf1r9e7OysrJ4/e/Wj9+BCNpmnWBc0lCI1G+ +nGmdnT9u9LZAPzv2pJBbc9MLerJP0MD4dFJNXlzcohlXkDpufrM9OD+4+v7p7ddbJ+9misu6nP3k +w2/9w//6n09vPuWURql9XB/fWjn5+NmnPz+/+bIz2HTdyvd++NOLW8/jiA7mLumulDtn45X7d9/9 +Qbm+WcgMvvWtHz756AehqAL2JIFZstrev/Li4asfPfjwJ5nKVr+3/eWP/nFnsJ9IaAimaWa7O7p+ +5fYnTz/+6crWYzBW7zz5dr25NeudzoOFQiJB5KAqqrWtzb2HmlJ58u7rX/3Tv1HUKid3rewGfLqT +3z6/+517L37cHl4nMOfV629efvLdXHESCLG+AAV/JhI6ReYkuT/vnbXK3rz6+Ol7HwOAXL4cunwp +9NZvhS9fxhJIxklvEbi9sX19sngMtlS3APdqJJ3FqUIkAXNXApPF0JbjNHBcw+DvfM5MT0qNvfHS +xd7Ze6niIkUlq9W1dH7JO/MUMUA3BkOCtzyScw21gCNCPEKInB6PktEoS7I5ii+BnWHYEsUW4ohs +mg2QcP2V61fufLhz/ny89ShXO4zEBAJTTLOF4d5Xf2+cvoTEdUmslOtbvFSFjsjnFuCSEEyF0Q5G +ZHCLXnwfbhtKLeqtJ1HKtQ2Qu4ZaE9gcmtAZwgTwKRbHvOhEowTHpQBwkqnmdP3q8dX3NvfvptKD +QmGYzo1pJiVLWcMoi3yGJgyRsXgWfkXwByjwVgJXgpanqSSBm/GYokkFkXU52gFLDg0uiWUQzDTj +8GJGELK6US1kuuPBVre/DYwAF7+4fqczPsmXRnqypGlZ28y6ZtbQit6z+yAnCUUNLljIUZSFoQqW +EIGesvkFxRxGY0autFGs79ip0fL6je2Th63RIcM4zXL/6rVH1doKQ2ULpdVcadlOD7Rk1bTr4MrB +yapajWYy/jeHU4BWTLnL2fymkeyJQtZU053WdLp06O1SbB7k6gfdpbvd6c1SfT1TWuGFPEvIhwc3 +j84eqVoVpKBlDxkW1FdWV+uREBsJ0imj/unH3/3t7/wAvIx3vmpQjiBpRmqWGofF6raTLP/sF3/4 +2Rffi4S42RkkEpZlpVNpX0wPnsViSjzCyQLMY4+mLAANoCQYfNB+46VTEEIcjJ6U2dm62u5sJBAd +Qy0QsbxYgsHBUSEWJsIBBE+QmqhiCIojlCjlGsNzK7OiWwu8XBd5Z23x8Pzi3Vx5UQ== + + t1qZIpjlbZKpJBIKT5uanEvEeCQm0mSKpTISX0qlxuDLcCLL0fmkUjPk8rCzubl9FyEsoBWScpCE +HgXYj7AK71Sri5GwEPCR3hHMAZbALRgTUcwLYgYKI5Ptq3qRoFQ322/2DnOlTSu1MJxcy+aXCcIc +DXbb7Y1E3EsmwXCw6tloLE0QNVXpwiXFIrit5xyrFQbfFNd+8wQQQWxvJz5qRSKSaXsdynIlx524 +qT7HpuNxBWQwz2dJwoxFWZ7xViQylAlFSxLJBGIEgix0BEsZkSDu7c6O8IkoLzKOwOUlpUEx+Xhc +KNeW8tUphoFFdfRkVZLzhlZ2rYomZxJRVpWypdIAx6CtGJoyoLwNAy64DLcTifCxqMQwGRRJkoRF +kQ6MEoEoupSSuBQYCgzV2+Nj3WxzXI7j8yThgF6SxYJplFkyGYvQ/nkEepOh7LnZhG8OjYZInhIV +3sinWs3qGvTp3Bzq9zEYlmOEOs3mKSrFcboApqU9TruNuTnM2xeWXh4v314/fLK8cx8sBg3lRNsk +odCE4rEDocN9KVopnem5mT5UflLNWkaeZy2YCJ4BT1qgaIumzEiIonGVRAQa43RJY0laFjSeMzPF +vqhXCMrBcd3W8lf2r92998y0QKTl8sW1/vBmtrBN0ykCFZEoEwvTeEKhiCSOKgSqsrTDcQVV60l8 +mUQNRyvdPr3/+rPv45SZQGWSNDEALsxkSXgZ0QgdDpAJEJYRcEMaiplvQh5kBNEkIe+mexyfYmij +3lyrNjdzpVU3t2SnFiSARNx0nY7r9uB/hlnI5haLpQOa6RF4NR7TQn40ESUMJaXKmRkvRiYBBUzT +JY6tk1QOQSwcd7L5qSiVQajgRBp43PtHMg3CGIDRCwCZR9EYT4B3DhBeKoKfJimAuCJD2jSphQKo +Y9RLuQUSNwlEI1CTpUEJmCgi1urTTK4TiVA8aytKTuBdiU+zlI4nGCRKiqxZLjYTkTgexxgSuMbl +uAx8XCTM+ebRUIAC6Ts7Ew36CQI14hEBg/kiDDIB6AFlpk4WT5J6GY0LPJehyDRNOdARMI9BHxKY +j0WDJEskA15CBQ72kMbttFNPWdDdJQqzZ2ZiQIWzs56WfrMNlo6EaVV2FMmmKTUUxMEtimLZSHZS +qV62MDaSrUiYScSBT7HZmQAaIykSJkiWBLvdXCyVRpZVp0gDSTDhMBr//0l67ydJrutc8B94BGba +lHfpvfdZmVne2+6q6mrvp7vH9Hg/g8EMPAhLgCAJgqD3oBG9SInmrUSR4qMVyRVFmdWTVm5jtdqI +jfc29rc9OYqomOiersrKe+93vvN9mTfPSXEMVaUIhyK0anHUXzo7HwOuyMUimXgkw+C8xKiuVQor +Efk1SStkQqr3R731BqggyScwqVwYOHYTMhFO2tEolU3zSFbSwLxoDZLQIHAyKRrJsBiiAKclYiyB +mHmz3m8vt9tTjtEcq8yxLmhU+CCBKlhWOXkyC5SFZsOhzc0mEykZQT1BbBvGouNOLLuLoyKQz+bW +RdUAMxKAilO1bhAstVrbbj68cphOcRznCkIeoB7eFwsbUFI4eH9MzmboeDSbjiM0JuE5OFUhmQQZ +k9f1riyFRJHLKQ9N1hA4hxf6nr8XPuSCW+nwRhvwKh2dT+cyPNgcjiuaRk0UgoelFVKpGLazfvbK +lacYyk7GiWySwdKiKgQwKByRMykmOpclcUXggG2UTIolUZHFRZ6SGVLBUTwdT1IIDr9CJEpiReBL +4X3qBJ3LCLBGJx+NJSNkMkZEAQYnkpGTmUSUwnKqQLu6XALdUi00rl15HEQmJLtsUgBWQTIympE4 +wgb4xSOY5wz9/BKe02nIERkpNo+feCQRj8K6aPCNMydiLGVIQpBOsukETBEJ9i02j1CIKrMFGrOQ +tCAwvir35uazJ0/GT5yIwpBpUjd1kN+6Z3jXr99x881EkslmJIK0WK7Ei02aKSbjmK3kb126/7Ev +fS+Dqo+8a252JolmOFXwTL3g5SuaaN28dvfo+CaCSdEI8vCmfHhfnqFNUTA12SrkQWGuy2KdZfKg +8dCcAP9PYYzIyIZcxFEBy1FYhmZJzc93ec5GczADKZXnvDxgUkjn6EwWh4ygSVVdWcxlDMhE8xFk +5mQMQ1VJKvK8h4Wm1cQwm8INXS6wpI7mWMOoVts7GAHfKOcy4f7Mh38t2WY9kSTn5jLgpnNphaN8 +LKckEwSOCaWgUnZ9hVUySSyZwHFcdb1Bo7MDiMqkBTij/nA/KEzCrtDzCMAJQyQqzICBJrdoIg9A +KvuDWnGIZimgdJkzGFxhCJUjZCRDZJI5OP7NW7doQozOZuLzyOyJxPzJdCbBhmUeOefhjWAFy9lo +mkJSSDySjM4lcynE0/ROyevVCrZmtrtjRfNjUfBQ6Ui4xBiRU3MpcX4mffLR6MlHouk4Jws1iS+h +aUGkzcCuFt26qddScRLLSiQKuUaOA7GciM2dTMbnc9kEJbEBiSrJKAIIT8QA+TyN50nMzySluZn0 +3MmEJpUAkPOzacAhpF2OdhytxuFWJi5EZ3EkBZHFRGaz8SiBpIE8xVQcE1lBYmldottFZzwe8KKE +gUGyi+3mIPDLvKCiCEqhqAemsbVYKPVmZlKRuSyS5i058PVAZTlH5oe1wv7+dlCupbNkPEEgOcih +hiwZBc+plb16yT29M335hecWFzei0Ww0ko7MJwVa1kAeGZopyUQOzWtyLXBUARAVQ9NJiUYrvtKt +OTfPb167emrzaNruw8EU0wCxoYKAeWiKSTgTQzZcSzN1xbU8gXEMpc7ReZA9yQgi0nKz2u4Nlwyj +UKsMed4mcZHCpFyamZ/NnjiRCK9lUWG5GJi6TAIH9TvsTDY3Nk1Fw7NUMo6TuA6qwMs3RMlnWKfd +XrasmmHUJKmQStJolgfMsJSsCYbI2gQqQcoW+YrI5TVe1Vmm7pueYWmi7KiqRBESgIzFpsPi3vZI +FoAVGTwnYmmOQhQaMyCRATyAQ1hQmDkBSaWwdBJNpWxJXqy4213/wlrjweXRvYvLb773/sWzGyXb +YmkVQ0TIfQJhA8Aefdf87MlUGlx2WkhHUTrLSCTnq7qraJakkhC8aUwTJIljWeBHVhAoWeU8R68j +WX5+Nnny0fmZE3GAByTHeXCd88zJE8iJE5nZmVwySgP4swkMy+DloEZjPI2wtuzjGdD8DEf6Mh+k +EvjsTDwZwxnQMBkSTSYlKuNr2KAibCzk9zZag57XqGqTrnv7sP/cnZ3jo8XFtrPQ9Ip539TyJCHN +nogkIikig9m86Iu0QaWqOnYwKQw6rmPxtim5jq2KXMmV+g1tf2y/8cyZN166+OL97ZeeOtVtlaKR +VHQ+SyAgWH1TlF2J8UTcl7CVlnkwLSy31ZqNTRvK+bXSG88evvHc0Xc+dfs3P/rQz3/5zuc//8yZ +3XrZ4zRZYNkAx3wccRXWrvv2qG2vLRRW+qVAE2qeq/ByNpVD01lXlhfa1em0e3Rq+4033+wvTjCc +SKdwOIG5GeArXjcWWbYSXpo7McPjeMVxBvVas5wn0SyRxdAMpgjqYqt279a1pcnYddyjo61qtUTg +TC5HK4ovCD4oNw54CQUi4OFVc/1OuQ6JsOFKTZO4sF2/eW5lfVBcLKvHK6VXnjj1gRfOffaDN956 +6cJz987srHQreYfOYViazCVpFrdVqSpQioBTBkd2A2G5ZUxb5vaic2M7/8KF+kef3fzSW8d/8Ob5 +v/7FV37zsy9/5KXjq6dXJr2GJSoUQuNZJpfheNaTGJfOYmCqm6ayUDDbjrDesU8tlbYWK8fbi88+ +dvretY0XH+y//cqVD7x4797lS5N2p+rnTZkjsllQX7kUF48QAKd4hAJGnT0Rj82n0SSOJbMmS9cd +bdKpBJpk83S/EnSr5ZLll+0yjfIzJ+MQsLkkCWLLILN5OjF0kaurxivXek9f7r14e/zOh65949OP +f/b9h597efK77z39D7/+xJ98/YVPvO/ahb1J3ffBPqTj6Vw8KuQSNQldK+Lr5fR+G72zbd4/X791 +pnr7dPXJy4MXbw7ffHrlQ89PP//q+l/96Rt/9+tPfvszV5+7UGraRDaRTMYRntYEWmEQXMMzEwe9 +MuJur0mvX62889rOx989/cizC59/fe3n33nqH37zyZ9/694v//D2f//pe//Hf/zsT7/x3NvP7zx2 +3GsUPBqFaBU8xaq76kJZ3B8aV1btzRq+3aYmZXp/5B5Og9NT7/5x59Ovn/39b//wl7/6+hc/9+7X +nzt9+cyyIdOpeCKXIjFUmZ9Pz5yYQ+OxQEQqMtrQsUBIBGJqWlO2B87e2L68Zn/k5TMfef3KG8+d +/YOP3fnxDz7xwffeH7Tc7fXp1vaFU+eeM6wWmU66HFaU8JFLXl3WX73Rf+Fy89qy/Madzs+/9+rP +fvDGZ17a+cLLK7/94Wv/+ndf/ufff/bHX7r2T7987c+/cffGrpfncngqrEnIYgqDkjKWKgrp7Tr1 +/NnCdz9z5Wfff/kPP3Pzky+Mv/6B9R9+6drv//z1P//q7R+9c+Gffv3ev/nh/c++0H7hSu3iZrXu +GY0AcmXRMSoqK5RkdOJjBy3+qYPg7SdX33uj9frN2h997uavf/TWP//9t3/380/88rvP/PvffOT/ ++3//6q9/9bnXb3W/9ZFzv/jBS5949UzV0dIxDJIs2FiR0YlMhoaUn4tbdMqholt15t5e8bFT1cur +1u0d97W7oz/+g+ffef+Fd9567O333K95PoYIwMAaSbcNbr1EHveZZ/f0zz2z8N2PXfnOxy7/5CtP +/f2P3/of//anv/vZR3/0pWt/9V+f/+fffurrH799fr1aBQfJKZ4ZKDTtsNiCTe7VsZtT5qlt/f2X +C9/+4P5Pvv7U9z97/RtvH/3ZF679/Z+959//8tP/8puP/Pr7T/32e/d+/UcP3nyw0fXCJAgiJJNE +yCwRKGbH1HZL7BvnjI/dLXzmifp3Prj5m2/e+D9//6G//dl7/+QLl3/97dv/8NMX//aHz/zoc2d/ +8s7pX37zyn/9zLknzlWHVR9J4XiW5RDqYKl1euwf9NUn9q0vvzr90RcufeuDW994a/d3P37jl997 +9x9/6uIPPn76P/72c//zP374D3/x1u++++D/+Ou3v/fOteNlwEIyOh/JpjDgdpcXNmrSxMmOzcS9 +Zfblc+67z7nvu9N45/WN73/m3Dff3v3JNx7/t7/78m//5LXf/+i9//o3X/jzbz59ba+9uTKtN8YE +rlddv5dXpwXmuEM+tsx+/rnhL7526zfffvy7nzj97Y8e/eRr9/7ltx/7xbcffO8Tp//bV2/87796 +89dfv/PNl9uff6pybUkCVlFZMT6fnn00QsQTRT69XsjdGAtP7Duv32x++oX1n/7hM//4Fx/8337y +6l//8OW//tErP/vqrZ998eKffHT9U0/UH9vQlgp0SSXDcqKCxdN2YDemveHBpLRe5Q== + + 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 + + 33zui1/46LOf/Oo3vvHGL3/1hVe+/O1vvv73v//95a++/sFPfPb42WvJzGihNN0drBVqE5qey2Ur +87Mzt5zbe/D+Oz/+8Q8+97lPff3bX3/nvfe+/cZPvvT669/58U//9Kc//5//+3///J9wJb/79o9+ +dP/jT3XG18KxFgAmRcoxPV2vdFZWVuGzvbN75bbbPvSxjzz/hc8+/blPf+S5Tz//8hd++MaPf/HL +n//+P377P//7f975zXsf/cQnz1+4PV8Yk/kiS2Yj4X6+tOzDdMwr62oagHt359D12+946LHHH3rq +Qw8++dTLX3ntBz9940dvvvHnv/35L//5j1/+6je/+e1vX/7S13YOXcjmpwWhFNS6vFAIJ0b1aKPd +mllc3DxydO++99372FMf+Pizz33+lVd++ObPfv6rd954++1f/vrdP/3lj//r//0f6NYf/OQXL7z4 +1Vxp0u7kgBNdLsFhrJBUKTqhBkr5XHdj89C9Dz5w76MPPv25Z3/01s/efPuXX/vut1557SvvvPfu +u7/99U/feuMPf/rD//d//vdv3vv1c59//tytV9PZNsuC3sYdDhJFZZGPV0qTk+OrRw+fvvOu+x96 +7LGXvvzyj3/+s2/98Htf/dY3fvuH3//tv/7r3ffefefdt/7+33//6S9//r6HH+32VwqVRTXYcrmM +xc8WM8HTEZGLRvRytToFmqQ3On3w2Ml73//gZ5//7Btv/fzXv/vdV7759Z+9/cv/9T//86e//e2z +X3jx4ccfve32e3S9yfMVjgwM2pPri5s3Hz1x7eLZe+68+OSj97z2lRf/499/AxX9zru/+NnPvv/i +Fz959er5lZWVbKEZjncwLOxFFJYKikxA94fq+fKhrZ277rjrgQff99DDD37y6Y/+4Iff/94Pvv/q +V155/fVv/Okvf/nxz9/8/BdeePGlFy9eu2th5Viru+j3Z+ORWqE0ms01Uqny7OTSxsrawY3luy+f ++9dXX/zqV1/+5re++s67v/zDX//2xi/ffuMXP3/vvV/95z/++t5/vPfad75238N3L6xuRZMN2Z+V +lKRfCleLjdnppZN7Z44fO37s0MG7rl95+eUX3nrrJ2//+lfff+ON1771tZ+//ZN/+9277/76rd/8 +GprlzS++/IUr1+6otWZIQidxPajV4skJmorzjB7VMo1ifWd9+Yn33/+VV196/Tvfev6lF378xo/+ ++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 +6v3dTGlGUotwhSwTD0eax07f+cgHPzu/fBqMlRbsc1zB41YQN2szY+YRI9DeNMLqkTGYiJtusowM +o1YL7bSBZdAZvgzXj6KhYKAGdEzQiero7sbevccuPD62cA6sR7W1trZz5dzlR6dmjtxy9aGZtVOp +6tTY4klQTPHyaiQJFHPh7K0PTy6clLW6HhsvNddy5SU1MomR6X+etjAy7CWJCEGE3MZKWpagorxc +EP2lWHYikRvsHL547tr744V+oTnXmYLu3s5UVuvd44OZW/OVNZQIYoQmqVVGzAf0TjA2oYTGg/FZ +wd8myTRivHfjKCZB8Xm3L4JROSOKls04jaMN4sFQDTOerNI3Np6PdcZPTCzcXGhssGJJVnK98a1M +cUCxkUR+ZmbtlpO3Prx14u5kaU6L1klWE4To/OKeGsrhtCaoJUYsGrDJpxgyWiqMR6NN0I1uIxXf +OJwFABPx6vHkoFyd5wVjVwJJgmKvK1rFr5XKzYXZtTOZyiJGRraWjjzw/g9GIiWKirRHj7f6J0rV +9XBsymE8nyHB4l04f3e7s2oyDpk1MlTVUC9dWG70j5XbOxwbv3r5nrO3XLXZSei1XGVtauXi2WtP +Hb/4ZLywgqA6SWhPP/PZra3TDrfyzxNGNH0illpiuZLJhKFepdvbKNZXLVYaQQI+zFhvIPor0eSU +Hh9IUubi1Qfuet+HYrEu6gvK/mokMV6oLK1u33LL9Sf6Uyc5scowWcXfdBmHR3v27bPCbdqsHKAr +RRdcrtCB/S4UkTOpcbCTFhPYBx71xYAWna4Ax2RB18HoqXqz0tpo9A4zYlUNFNv9g93Jo0AZJ/au +3PPQh1uD9XC6v3f+wSv3PrNx7P75lcv3P/y5ubVLgVC7lJvZPXJ7NN21uwQ3ooFaE/k46hWdxmlE +ajJS749uimLa7RZ8eFBSy7n6aqW/O7N6bnzpZDBWX9o4OTp7NNdczTbW9PS0FGywSlEON3O1ZT09 +8FI6KaR9cHd6P1XdwoSqE4ngTE7QGrHsDMVnBa3Ca02KrwhyleGLDGfYW7dHhtaj2SjJhqDgF7Zu +W9i5rT97c623m60swdTHE631o5ejuUEiPzm3fS3X2lZjo/5QDRzr8soeTqpOF5cpLGrhUZ7PBUNN +ny/scokME9XDTV4o7t/vGTHezSmClC5WVzW9jSBBp52PRlo4Dn+X8HjYWmvx0vVHLt/28ML6mWxu +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 +X//o9X/+++/87ufv/PK7T/z737z1//2/f/2HX7334Kj+rbdO/eIHz7zz/G7eUmJBBCRZYGN5SsXi +cRKkfChkkFGLCCwVqetr6Uc38oezxpUV+4VrvT/+ylPvv3Lw/uuPvvGxmwXXQ2AOMLCCk1WNmc/g ++03qyTX1vSc633373IdvH/7kq3f+/sev/89/+7Pf/eyTP/rShb/+r0/9828/8/VPXTk9n88DB8lI +ru5LJGnRSMfE14rI5SF1Z1l95TD1ndfWf/L1O99/9+I33tj+8y9c+Ps//9i//9Vn/+U3b/36+3d+ ++73rv/6jW6/eWqi74yQIREg8AuMJzJf0mq6sZuiXTmlvX0t97nbxw9cWf/PNS//n7z/xtz978U+/ +cPjr71z5h5/e/9sfPvGj9/Z+8v7OL7957r9+7tTtU/l23oOjKJqgGZjYnK7s9L3Npnx73fjy88Mf +feHst15b+sbrq7/78Uu//N7Tf/yZMz/41M5//O17/+s/fvgPf/n677576//4wxvfe//C/gzAQiQw +OZWIIoDbbZZbKAgDK9HXw9dn6GdP2U+fsl++Wnr/wcL3P3fqm2+s/uQbN/7t77782w== + + P33h9z968V//5gt/8c3HL6xVF0fDYqmPoWre9hqOPExR+zX80Rn683fbv/ja0W++c+O77+x855Pb +P/na9X/57du/+M6t772z898+uPS//+rVX3/96jefrX7+Tu7CtABYRab50GTs5CNTWCicZmPzKehS +n7u9bj24XP7svfmffvuJf/zL1/63nzz/hx8++4cfPfezD45+9sUzf/rJ+c/cLj66oEynyIyMj8uJ +cgZLmr5ZGjbam4PMfJ5ZzqLXRvTnnur88TunfvjFC3/6hYOff3jt9z957m9++uAX377+iy/u/c0P +Hv2nXz7zux/c+NbHB5+65r9wodLK6EiCFfkCx7i6oHbyZsslp3384kh9alt94cB881oezMZf/ckT +v/zw2s++fvR//eNX/+9/+aPvvLnz4acvPXh8m8cZHOZSkpwRyLwAD1xsvURcmZFfOl/55qtb3//0 +uR9//tK//fpT/+vff/y3P3r+R++dfe/ZtdNLxYzG8DhJoqKhZC0l68q+x7MlGVkpCkfz2bunih87 +m/rBJ7f++3ef+v2P3v7SixtffHbwvTdXf/LlS19/Y/f+xdr55XKnWDFBTIk5CjeBF+NIrWBl645b +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 +1dt4tFU/PDnu7pq0OGXbmvfm3N1pLp9Wm7l+HGk235HzfleV9HBGX1XOjWe4xFSLgNu4Sjtxtfvt +0fC3wejRYIJC2Ym9Ei7Mpa9bocZg/3DX37mfdssuH6FmSG9lIh9xMEH7o+ZIgoYPHUq+ev9YH3ql +H9B5nwgqXDzfWW/21XaTys0++0lbON96eut5v9UzwTaJCdc3M7b+w/qT9RalEfDR/l6nh42D7cGu +EH13SCDi4eGjftAAdPLdIbGeSDum/gMR386wob3H7hAmdG8wOZy5DFzUzQho4VnQqYiML1kkv8Cr +l98YCrnm+drvqL8zmDngFsnCwXSa0r983rmuPgyY9ynsH61v+jMGhWp8NJXD2vQeEzfqPZQ/zTqJ +nUHejH+9PZwRdrDV/2Xw4GQ0HRJnWGmyv6JoSp10yPpu7erqMEiala21O3dKtz6A2MAf7dcPP39x ++cazL7+43n9+5a75/OHS6s3JrYM31/YPz93dPHdl8Yu1YX/5+LP8u9sb+flrN7+79dUD+/W1+z9+ +8eDm5GSn2NzQD8oLytrzWXa8/nZ9/0r22c3rr5Yv3bxx5ej45vE9fXXhws3r989NQqO709X929/e +v3nDDrbWhl9+tbO+vPzFfmeo+7vf03jF+uaFa8UPt6brb1+u2h+WrqwcjO8fE1Kmby5/lZ8/2Vy3 +nz1bfTv64tnChfW97O72zM4+K6q94um3L35cebK2/HT+oGm7ay9v3ni3+fLmtePlg8vrVy6cbC7e +2t1buMDI2vzp9cOT9b2Xz4rV0c3R82t7q2+ma2+KH1QDHT99vr6j7v9888bXXzyTfmjKx2uv9l+N +6afPf16/s3vn3OpS+fazla2l84cyh+f93ZOFC9Xbxcs7Gzvu28W1N/b19RsrF8znl1e/ufLT5Ztr +X3y3uTY4ufTV07vn31zf2em/w0/Dyxt799/IyCq72i8mw89+ujZ8dXd3dXTh6y+WJpd/PFm5v/X5 +z5j/xZvX774xCxfy609f3lw53Pni4PKXD65fLQ5+/HJYFFeP98zKZOeOuvzumoo97qzfPX5KaCu+ +GBTPTLZ7bbh2tU/7qx58ubh0ZbA6Kh4dyAq+v3/h5tqdG+efbVyp3DHty50X+fmvirXxq8s3nu6+ +uKa3z7/kbr86vEAL+iq/dB5b8iJ/ln97CDx9tfruYr7kSfPp7v1MvTz/YP1q/8bnm+cu/zDBKDn+ +8Ip74SYLF7Ltf92x/PPlrzZv+J9uPNu4J83Xrmz8JJ3p7/UdIt3n2eWvvtq4ote/3v/S9/PsyxvX +d99+84p3Mk6Y+nu46vwo1Gj1bpzAy3oCavHLx2g0sAxz51bXXzOq1wfHX9v8h/ztzsqT9beX1/eu +3vt5o9//4rPVfPu7b6tHF55/t/JwbfXR+t7W8OebP7+8tr9wYdV+/+S1IPOHfPeHjdfq8tNV+3zl +4eb622ev14Zv86vX9w4u7G+u7V1ShMCvfiqKx7vjerxy6+eDeysP71+6t7l+cfee4CYgWmifdn96 +tPzt5a+f9n+WBX2Vl/2b159M/7Xy5O70pLu0FmYTPISNeD45F7raopPzcG26cGHjh90L+/qnG1+v +Z5s/3jRMAjd+urG5TtRx6crl1XH1qr1XTcymGxs2Qijn6zfHJ4wlWkuKp7v3b628vquYYm5cPrr+ +0+bi3r3llezGkx/0xc9e3ZCJNNGRnzyuBpuLnx9dXHuTP363cfn+8mZNqXQAvh+Dw2xt7IJCb9Kh +Oviclnb+4tr+m43j4vrOd49Xih/0s/YePLo9etro+1+3NpaubFeztqR6N7i3tnBh5cmD3cvEYb6q +1lfvf/9u1my5ZdLu1vfFHh2aDZ3pW/ZBl3KmjzYvPhpd31x3P+jLX936aWnhQr0uWtXO3ubGuitW +86WHT5nhLKvbT6/woOtXfzq6tPp2unuwOjp8Ol558ub5Z9TFvcuxg6ONK+Nv9ObnS8WLlcd7b76g +z15+vppfvv9GuOXF9b0vbuc02/Eb4YIbT5/fDiycBrj38onZvLn/5XMw+J/Wt+2bZyvfXdg5brb7 +fOXxkxej8u1o6QZztFoQ0Cj138d3sxur7xaPhps3bqnFhLf/8PhSP8UJyZKEWats+2Rj8cufn9WS +pvVXouTFabFP0xtsdf5e/nT5+p3jPeLYO+fdqjoZvVjZ+unumv9rtfLTzRu315apyU9PiQvc/3xV +/XDyemXr5Imt/8qNiY8R4ODmZOfa57Jb6fm8+v2Nrx+uHRbFvf757O70xc3s3uLBBv1rdzW7p3ZX +5Ke7SPB2b/H5VwTr30xhan+Vv6BR0pZ9/+G9xf218OFb+uli9Ui+8V+HAaQf6exok9p9/Zh+ersu +TXzjIxklTg+N0n54lIP1dhfJ5OMXd9/trvvZyJQwOe6F5oBRZJncIyZ1cXVLYL4zXhWPgq/bKIpT +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 +tvlc/gM/AT8Rvw5k+K5q+v8EAF0C + \ No newline at end of file From 1bd0d65e0a7093c4e3a21e2ad66c4e668e269f8f Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Mon, 8 Aug 2016 16:25:01 +0200 Subject: [PATCH 168/228] Added user feedback after pressing Pause / Resume in network printer. The button displays Pausing... or Resuming... until a new status update. CURA-2060 --- resources/qml/MonitorButton.qml | 37 ++++++++++++++++++++++++++++----- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/resources/qml/MonitorButton.qml b/resources/qml/MonitorButton.qml index 8aefe52f9f..0b0167a6ab 100644 --- a/resources/qml/MonitorButton.qml +++ b/resources/qml/MonitorButton.qml @@ -134,9 +134,8 @@ Rectangle anchors.right: parent.right anchors.rightMargin: UM.Theme.getSize("default_margin").width - text: catalog.i18nc("@label:", "Abort Print") - onClicked: Cura.MachineManager.printerOutputDevices[0].setJobState("abort") - + text: catalog.i18nc("@label:", "Abort Print"); + onClicked: Cura.MachineManager.printerOutputDevices[0].setJobState("abort"); style: ButtonStyle { @@ -206,8 +205,36 @@ Rectangle enabled: printerConnected && Cura.MachineManager.printerOutputDevices[0].acceptsCommands && (Cura.MachineManager.printerOutputDevices[0].jobState == "paused" || Cura.MachineManager.printerOutputDevices[0].jobState == "printing") - text: printerConnected ? Cura.MachineManager.printerOutputDevices[0].jobState == "paused" ? catalog.i18nc("@label:", "Resume") : catalog.i18nc("@label:", "Pause") : "" - onClicked: Cura.MachineManager.printerOutputDevices[0].setJobState(Cura.MachineManager.printerOutputDevices[0].jobState == "paused" ? "print" : "pause") + property bool userClicked: false + + text: { + var result = ""; + if (!printerConnected) { + return ""; + } + + if (Cura.MachineManager.printerOutputDevices[0].jobState == "paused") + { + if (userClicked) { + result = catalog.i18nc("@label:", "Resuming..."); + } else { + result = catalog.i18nc("@label:", "Resume"); + } + } else { + if (userClicked) { + result = catalog.i18nc("@label:", "Pausing..."); + } else { + result = catalog.i18nc("@label:", "Pause"); + } + } + userClicked = false; + return result; + } + onClicked: { + var newJobState = Cura.MachineManager.printerOutputDevices[0].jobState == "paused" ? "print" : "pause"; + Cura.MachineManager.printerOutputDevices[0].setJobState(newJobState); + userClicked = true; + } style: ButtonStyle { From 6477e588da650c801dc86373e38722368e175fcd Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Mon, 8 Aug 2016 17:02:49 +0200 Subject: [PATCH 169/228] JSON feat: override max z feedrate (CURA-1049) --- resources/definitions/fdmprinter.def.json | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 74a8545fdd..46b59ecdf1 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1565,6 +1565,19 @@ "settable_per_mesh": false, "settable_per_extruder": true }, + "max_feedrate_z_override": + { + "label": "Maximum Z Speed", + "description": "The maximal speed with which the bed is moved. Setting this to zero causes the print to use the firmware defaults for the maximum z speed.", + "unit": "mm/s", + "type": "float", + "default_value": 0, + "minimum_value": "0", + "maximum_value": "299792458000", + "maximum_value_warning": "machine_max_feedrate_z", + "settable_per_mesh": false, + "settable_per_extruder": true + }, "speed_slowdown_layers": { "label": "Number of Slower Layers", From 6d52319ee42ef62c7f616406fe731e52249a8807 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Mon, 8 Aug 2016 17:08:01 +0200 Subject: [PATCH 170/228] Adjusted visibility of printer monitor progress bar + percentage. CURA-2064 --- resources/qml/MonitorButton.qml | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/resources/qml/MonitorButton.qml b/resources/qml/MonitorButton.qml index 0b0167a6ab..5850989119 100644 --- a/resources/qml/MonitorButton.qml +++ b/resources/qml/MonitorButton.qml @@ -19,6 +19,29 @@ Rectangle property real progress: printerConnected ? Cura.MachineManager.printerOutputDevices[0].progress : 0 property int backendState: UM.Backend.state + + property bool showProgress: { + // determine if we need to show the progress bar + percentage + if(!printerConnected || !printerAcceptsCommands) + return false; + + switch(Cura.MachineManager.printerOutputDevices[0].jobState) + { + case "printing": + case "pre_print": // heating, etc. + case "paused": + return true; + case "wait_cleanup": + case "ready": // nut sure if this occurs, "" seems to be the ready state. + case "offline": + case "abort": // note sure if this jobState actually occurs in the wild + case "error": // after clicking abort you apparently get "error" + case "": // ready to print + default: + return false; + } + } + property variant statusColor: { if(!printerConnected || !printerAcceptsCommands) @@ -96,7 +119,7 @@ Rectangle color: base.statusColor font: UM.Theme.getFont("large") text: Math.round(progress) + "%" - visible: printerConnected + visible: showProgress } Rectangle @@ -110,6 +133,7 @@ Rectangle anchors.leftMargin: UM.Theme.getSize("default_margin").width radius: UM.Theme.getSize("progressbar_radius").width color: UM.Theme.getColor("progressbar_background") + visible: showProgress Rectangle { From 87a0543d0c0986a27c5cc0c2583a528bcf21382a Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 9 Aug 2016 09:37:31 +0200 Subject: [PATCH 171/228] Added bit more logging to USBConnection This should make the debugging easier out in the field. --- plugins/USBPrinting/USBPrinterOutputDevice.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/USBPrinting/USBPrinterOutputDevice.py b/plugins/USBPrinting/USBPrinterOutputDevice.py index 7bd5b66cc2..2868e85bcb 100644 --- a/plugins/USBPrinting/USBPrinterOutputDevice.py +++ b/plugins/USBPrinting/USBPrinterOutputDevice.py @@ -251,7 +251,7 @@ class USBPrinterOutputDevice(PrinterOutputDevice): # If the programmer connected, we know its an atmega based version. # Not all that useful, but it does give some debugging information. for baud_rate in self._getBaudrateList(): # Cycle all baud rates (auto detect) - Logger.log("d","Attempting to connect to printer with serial %s on baud rate %s", self._serial_port, baud_rate) + Logger.log("d", "Attempting to connect to printer with serial %s on baud rate %s", self._serial_port, baud_rate) if self._serial is None: try: self._serial = serial.Serial(str(self._serial_port), baud_rate, timeout = 3, writeTimeout = 10000) @@ -260,7 +260,7 @@ class USBPrinterOutputDevice(PrinterOutputDevice): continue else: if not self.setBaudRate(baud_rate): - continue # Could not set the baud rate, go to the next + continue # Could not set the baud rate, go to the next time.sleep(1.5) # Ensure that we are not talking to the bootloader. 1.5 seconds seems to be the magic number sucesfull_responses = 0 @@ -270,11 +270,13 @@ class USBPrinterOutputDevice(PrinterOutputDevice): while timeout_time > time.time(): line = self._readline() if line is None: + Logger.log("d", "No response from serial connection received.") # Something went wrong with reading, could be that close was called. self.setConnectionState(ConnectionState.closed) return if b"T:" in line: + Logger.log("d", "Correct response for auto-baudrate detection received.") self._serial.timeout = 0.5 sucesfull_responses += 1 if sucesfull_responses >= self._required_responses_auto_baud: From f817d30abc5925e520bcaaa07a14486e49a84b4e Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Tue, 9 Aug 2016 09:56:23 +0200 Subject: [PATCH 172/228] Change colour to color for consistency --- cura/Settings/ExtrudersModel.py | 16 ++++++++-------- .../PerObjectSettingsPanel.qml | 6 +++--- plugins/SolidView/SolidView.py | 4 ++-- resources/qml/Settings/SettingExtruder.qml | 2 +- resources/qml/SidebarHeader.qml | 2 +- resources/qml/SidebarSimple.qml | 2 +- 6 files changed, 16 insertions(+), 16 deletions(-) diff --git a/cura/Settings/ExtrudersModel.py b/cura/Settings/ExtrudersModel.py index cbe127d511..155f1a0df1 100644 --- a/cura/Settings/ExtrudersModel.py +++ b/cura/Settings/ExtrudersModel.py @@ -20,7 +20,7 @@ class ExtrudersModel(UM.Qt.ListModel.ListModel): NameRole = Qt.UserRole + 2 ## Colour of the material loaded in the extruder. - ColourRole = Qt.UserRole + 3 + ColorRole = Qt.UserRole + 3 ## Index of the extruder, which is also the value of the setting itself. # @@ -31,7 +31,7 @@ class ExtrudersModel(UM.Qt.ListModel.ListModel): ## List of colours to display if there is no material or the material has no known # colour. - defaultColours = ["#ffc924", "#86ec21", "#22eeee", "#245bff", "#9124ff", "#ff24c8"] + defaultColors = ["#ffc924", "#86ec21", "#22eeee", "#245bff", "#9124ff", "#ff24c8"] ## Initialises the extruders model, defining the roles and listening for # changes in the data. @@ -42,7 +42,7 @@ class ExtrudersModel(UM.Qt.ListModel.ListModel): self.addRoleName(self.IdRole, "id") self.addRoleName(self.NameRole, "name") - self.addRoleName(self.ColourRole, "colour") + self.addRoleName(self.ColorRole, "color") self.addRoleName(self.IndexRole, "index") self._add_global = False @@ -104,11 +104,11 @@ class ExtrudersModel(UM.Qt.ListModel.ListModel): if global_container_stack: if self._add_global: material = global_container_stack.findContainer({ "type": "material" }) - colour = material.getMetaDataEntry("color_code", default = self.defaultColours[0]) if material else self.defaultColours[0] + color = material.getMetaDataEntry("color_code", default = self.defaultColors[0]) if material else self.defaultColors[0] item = { "id": global_container_stack.getId(), "name": "Global", - "colour": colour, + "color": color, "index": -1 } self.appendItem(item) @@ -125,12 +125,12 @@ class ExtrudersModel(UM.Qt.ListModel.ListModel): position = int(position) except ValueError: #Not a proper int. position = -1 - default_colour = self.defaultColours[position] if position >= 0 and position < len(self.defaultColours) else self.defaultColours[0] - colour = material.getMetaDataEntry("color_code", default = default_colour) if material else default_colour + default_color = self.defaultColors[position] if position >= 0 and position < len(self.defaultColors) else self.defaultColors[0] + color = material.getMetaDataEntry("color_code", default = default_color) if material else default_color item = { #Construct an item with only the relevant information. "id": extruder.getId(), "name": extruder_name, - "colour": colour, + "color": color, "index": position } self.appendItem(item) diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml index b033af49a8..cfe37c432f 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml +++ b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml @@ -47,9 +47,9 @@ Item { id: extruders_model onRowsInserted: extruderSelector.visible = extruders_model.rowCount() > 1 onModelReset: extruderSelector.visible = extruders_model.rowCount() > 1 - onModelChanged: extruderSelector.color = extruders_model.getItem(extruderSelector.currentIndex).colour + onModelChanged: extruderSelector.color = extruders_model.getItem(extruderSelector.currentIndex).color } - property string color: extruders_model.getItem(extruderSelector.currentIndex).colour + property string color: extruders_model.getItem(extruderSelector.currentIndex).color visible: extruders_model.rowCount() > 1 textRole: "name" width: UM.Theme.getSize("setting_control").width @@ -138,7 +138,7 @@ Item { if(extruders_model.getItem(i).id == UM.ActiveTool.properties.getValue("SelectedActiveExtruder")) { extruderSelector.currentIndex = i; - extruderSelector.color = extruders_model.getItem(i).colour; + extruderSelector.color = extruders_model.getItem(i).color; return; } } diff --git a/plugins/SolidView/SolidView.py b/plugins/SolidView/SolidView.py index d80f077416..9a4604193e 100644 --- a/plugins/SolidView/SolidView.py +++ b/plugins/SolidView/SolidView.py @@ -61,7 +61,7 @@ class SolidView(View): uniforms = {} if self._extruders_model.rowCount() == 0: material = Application.getInstance().getGlobalContainerStack().findContainer({ "type": "material" }) - material_color = material.getMetaDataEntry("color_code", default = self._extruders_model.defaultColours[0]) if material else self._extruders_model.defaultColours[0] + material_color = material.getMetaDataEntry("color_code", default = self._extruders_model.defaultColors[0]) if material else self._extruders_model.defaultColors[0] else: # Get color to render this mesh in from ExtrudersModel extruder_index = 0 @@ -69,7 +69,7 @@ class SolidView(View): if extruder_id: extruder_index = max(0, self._extruders_model.find("id", extruder_id)) - material_color = self._extruders_model.getItem(extruder_index)["colour"] + material_color = self._extruders_model.getItem(extruder_index)["color"] try: # Colors are passed as rgb hex strings (eg "#ffffff"), and the shader needs # an rgba list of floats (eg [1.0, 1.0, 1.0, 1.0]) diff --git a/resources/qml/Settings/SettingExtruder.qml b/resources/qml/Settings/SettingExtruder.qml index d88fc9c457..582eb08644 100644 --- a/resources/qml/Settings/SettingExtruder.qml +++ b/resources/qml/Settings/SettingExtruder.qml @@ -64,7 +64,7 @@ SettingItem anchors.leftMargin: UM.Theme.getSize("default_lining").width anchors.verticalCenter: parent.verticalCenter - color: extruders_model.getItem(control.currentIndex).colour + color: extruders_model.getItem(control.currentIndex).color border.width: UM.Theme.getSize("default_lining").width border.color: !enabled ? UM.Theme.getColor("setting_control_disabled_border") : UM.Theme.getColor("setting_control_border") } diff --git a/resources/qml/SidebarHeader.qml b/resources/qml/SidebarHeader.qml index 1f7fa00b54..b1cf45f6d3 100644 --- a/resources/qml/SidebarHeader.qml +++ b/resources/qml/SidebarHeader.qml @@ -138,7 +138,7 @@ Column anchors.leftMargin: (parent.height - height) / 2 anchors.verticalCenter: parent.verticalCenter - color: model.colour + color: model.color border.width: UM.Theme.getSize("default_lining").width border.color: UM.Theme.getColor("toggle_checked") } diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index 0e1b04cdeb..5213be2f38 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -372,7 +372,7 @@ Item for(var extruderNumber = 0; extruderNumber < extruders.model.rowCount() ; extruderNumber++) { extruderModel.append({ text: catalog.i18nc("@label", "Print using %1").arg(extruders.model.getItem(extruderNumber).name), - color: extruders.model.getItem(extruderNumber).colour + color: extruders.model.getItem(extruderNumber).color }) } } From f60ba6ddf0567ca850b014866ea42317b04b8c16 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Tue, 9 Aug 2016 10:57:28 +0200 Subject: [PATCH 173/228] Enable Abort Print button while in pre_print. --- resources/qml/MonitorButton.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/MonitorButton.qml b/resources/qml/MonitorButton.qml index 5850989119..0f7c170e40 100644 --- a/resources/qml/MonitorButton.qml +++ b/resources/qml/MonitorButton.qml @@ -150,7 +150,7 @@ Rectangle visible: printerConnected enabled: printerConnected && Cura.MachineManager.printerOutputDevices[0].acceptsCommands && - (Cura.MachineManager.printerOutputDevices[0].jobState == "paused" || Cura.MachineManager.printerOutputDevices[0].jobState == "printing") + (["paused", "printing", "pre_print"].indexOf(Cura.MachineManager.printerOutputDevices[0].jobState) >= 0) height: UM.Theme.getSize("save_button_save_to_button").height anchors.top: progressBar.bottom @@ -227,7 +227,7 @@ Rectangle visible: printerConnected enabled: printerConnected && Cura.MachineManager.printerOutputDevices[0].acceptsCommands && - (Cura.MachineManager.printerOutputDevices[0].jobState == "paused" || Cura.MachineManager.printerOutputDevices[0].jobState == "printing") + (["paused", "printing"].indexOf(Cura.MachineManager.printerOutputDevices[0].jobState) >= 0) property bool userClicked: false From 2d723cbb57194526627c12d673831895f1f49b32 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Tue, 9 Aug 2016 14:54:09 +0200 Subject: [PATCH 174/228] Comments CURA-2064 --- resources/qml/MonitorButton.qml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/resources/qml/MonitorButton.qml b/resources/qml/MonitorButton.qml index 0f7c170e40..73b9413b47 100644 --- a/resources/qml/MonitorButton.qml +++ b/resources/qml/MonitorButton.qml @@ -22,8 +22,9 @@ Rectangle property bool showProgress: { // determine if we need to show the progress bar + percentage - if(!printerConnected || !printerAcceptsCommands) + if(!printerConnected || !printerAcceptsCommands) { return false; + } switch(Cura.MachineManager.printerOutputDevices[0].jobState) { @@ -36,7 +37,7 @@ Rectangle case "offline": case "abort": // note sure if this jobState actually occurs in the wild case "error": // after clicking abort you apparently get "error" - case "": // ready to print + case "": // ready to print or getting ready default: return false; } From 223b8f28bbfa035b8a6d6c163e5298ee19ba46dd Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Tue, 9 Aug 2016 16:20:40 +0200 Subject: [PATCH 175/228] Update print monitor button labels and enabled. CURA-2060 --- resources/qml/MonitorButton.qml | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/resources/qml/MonitorButton.qml b/resources/qml/MonitorButton.qml index 73b9413b47..431a6999d8 100644 --- a/resources/qml/MonitorButton.qml +++ b/resources/qml/MonitorButton.qml @@ -226,33 +226,42 @@ Rectangle anchors.right: abortButton.left anchors.rightMargin: UM.Theme.getSize("default_margin").width - visible: printerConnected - enabled: printerConnected && Cura.MachineManager.printerOutputDevices[0].acceptsCommands && - (["paused", "printing"].indexOf(Cura.MachineManager.printerOutputDevices[0].jobState) >= 0) - property bool userClicked: false + property string lastJobState: "" + + visible: printerConnected + enabled: (!userClicked) && printerConnected && Cura.MachineManager.printerOutputDevices[0].acceptsCommands && + (["paused", "printing"].indexOf(Cura.MachineManager.printerOutputDevices[0].jobState) >= 0) text: { var result = ""; + var jobState = Cura.MachineManager.printerOutputDevices[0].jobState; if (!printerConnected) { return ""; } - if (Cura.MachineManager.printerOutputDevices[0].jobState == "paused") + if (lastJobState !== jobState) { + // the userClicked message must disappear when an "automated" jobState comes by + userClicked = false; + lastJobState = jobState; + } + + if (jobState == "paused") { if (userClicked) { - result = catalog.i18nc("@label:", "Resuming..."); + // User feedback for pretending we're already in "printing" mode. + result = catalog.i18nc("@label:", "Pause"); } else { result = catalog.i18nc("@label:", "Resume"); } } else { if (userClicked) { - result = catalog.i18nc("@label:", "Pausing..."); + // User feedback for pretending we're already in "pause" mode. + result = catalog.i18nc("@label:", "Resume"); } else { result = catalog.i18nc("@label:", "Pause"); } } - userClicked = false; return result; } onClicked: { From c381b82ac1f9ea8155884189e97ee792262ed910 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 9 Aug 2016 17:09:48 +0200 Subject: [PATCH 176/228] Extruder nr is now sent as string CURA-2071 --- resources/qml/SidebarSimple.qml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index 0e1b04cdeb..a45037ff56 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -327,7 +327,8 @@ Item supportEnabled.setPropertyValue("value", false); } else { supportEnabled.setPropertyValue("value", true); - supportExtruderNr.setPropertyValue("value", index - 1); + // Send the extruder nr as a string. + supportExtruderNr.setPropertyValue("value", parseInt(index - 1) + ""); } } MouseArea { From 967591bccb64b14da6c4ecb5a1c27627868ff2c8 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 9 Aug 2016 17:20:37 +0200 Subject: [PATCH 177/228] Infill pattern is now viewed from right stack again CURA-2072 --- resources/definitions/fdmprinter.def.json | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 46b59ecdf1..f4c07db2a8 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -2297,6 +2297,7 @@ }, "default_value": "zigzag", "enabled": "support_enable", + "global_inherits_stack": "support_extruder_nr", "settable_per_mesh": false, "settable_per_extruder": true }, From af86375ba358ea7b3b86eb553993846890757594 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 9 Aug 2016 11:52:39 +0200 Subject: [PATCH 178/228] Output arrays of files rather than a single file This is needed because the version upgrade system now allows for a version upgrader to output any number of files. Contributes to issue CURA-844. --- plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py | 2 +- plugins/VersionUpgrade/VersionUpgrade21to22/Preferences.py | 2 +- plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py b/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py index 664f972615..b59d72eed8 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py @@ -97,4 +97,4 @@ class MachineInstance: output = io.StringIO() config.write(output) - return self._filename, output.getvalue() \ No newline at end of file + return [self._filename], [output.getvalue()] \ No newline at end of file diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/Preferences.py b/plugins/VersionUpgrade/VersionUpgrade21to22/Preferences.py index 9f6a36d87a..13c98395f2 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/Preferences.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/Preferences.py @@ -77,4 +77,4 @@ class Preferences: #Output the result as a string. output = io.StringIO() self._config.write(output) - return self._filename, output.getvalue() \ No newline at end of file + return [self._filename], [output.getvalue()] \ No newline at end of file diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py b/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py index 621f346887..b5f5acba11 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py @@ -130,4 +130,4 @@ class Profile: output = io.StringIO() config.write(output) - return self._filename, output.getvalue() \ No newline at end of file + return [self._filename], [output.getvalue()] \ No newline at end of file From 7481f0802e1cb2c7ad0cf2eb39bd89b6bd01e1b9 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 9 Aug 2016 13:11:45 +0200 Subject: [PATCH 179/228] Split profiles into multiple if new printer has material profiles If the old profile didn't specify any material, it would be global. But if the new machine specifies that its profiles are material-specific, these profiles have to be split into multiple profiles in order to be able to show them in Cura 2.2. Contributes to issue CURA-844. --- .../VersionUpgrade21to22/Profile.py | 46 +++++++++++++++++-- 1 file changed, 41 insertions(+), 5 deletions(-) diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py b/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py index b5f5acba11..20d673fdd2 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py @@ -2,10 +2,30 @@ # Cura is released under the terms of the AGPLv3 or higher. import configparser #To read config files. +import copy #To split config files into multiple config files. import io #To write config files to strings as if they were files. import UM.VersionUpgrade +## Which machines have material-specific profiles in the new version? +# +# These are the 2.1 machine identities with "has_machine_materials": true in +# their definitions in Cura 2.2. So these are the machines for which profiles +# need to split into multiple profiles, one for each material. +# +# This should contain the definition as they are stated in the profiles. The +# inheritance structure cannot be found at this stage, since the definitions +# may have changed in later versions than 2.2. +_machines_with_machine_quality = {"ultimaker2plus", "ultimaker2_extended_plus"} + +## The materials in Cura 2.2. +# +# This is required to know how to split old profiles if the old machine didn't +# have material-specific profiles but the new machine has. This cannot be read +# from the current source directory since the current source directory may be +# a later version than Cura 2.2, so it must be stored in the upgrade plug-in. +_new_materials = {"generic_abs", "generic_cpe", "generic_pla", "generic_pva"} + ## Creates a new profile instance by parsing a serialised profile in version 1 # of the file format. # @@ -105,8 +125,6 @@ class Profile: config.set("metadata", "variant", VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.translateVariant(self._machine_variant_name, self._machine_type_id)) else: config.set("metadata", "variant", self._machine_variant_name) - if self._material_name and self._type != "material": - config.set("metadata", "material", self._material_name) if self._settings: VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.translateSettings(self._settings) @@ -128,6 +146,24 @@ class Profile: for item in disabled_settings_defaults[1:]: disabled_defaults_string += "," + str(item) - output = io.StringIO() - config.write(output) - return [self._filename], [output.getvalue()] \ No newline at end of file + #Material metadata may cause the file to split, so do it last to minimise processing time (do more with the copy). + filenames = [] + configs = [] + if self._material_name and self._type != "material": + config.set("metadata", "material", self._material_name) + filenames.append(self._filename) + configs.append(config) + elif self._type != "material" and self._machine_type_id in _machines_with_machine_quality: + #Split this profile into multiple profiles, one for each material. + for material_id in _new_materials: + filenames.append("{profile}_{material}".format(profile = self._filename, material = material_id)) + config_copy = copy.copy(config) + config_copy.set("metadata", "material", material_id) + configs.append(config_copy) + + outputs = [] + for config in configs: + output = io.StringIO() + config.write(output) + outputs.append(output.getvalue()) + return filenames, outputs \ No newline at end of file From 36f84017cf80ea3e0bceff69b9705794cf01c998 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 9 Aug 2016 13:27:48 +0200 Subject: [PATCH 180/228] Move _machines_with_machine_quality to VersionUpgrade21to22 It's going to need to be used by the upgrader of machine instances as well, that's why. Contributes to issue CURA-844. --- .../VersionUpgrade21to22/Profile.py | 13 +------------ .../VersionUpgrade21to22.py | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py b/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py index 20d673fdd2..b207a6172d 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py @@ -7,17 +7,6 @@ import io #To write config files to strings as if they were files. import UM.VersionUpgrade -## Which machines have material-specific profiles in the new version? -# -# These are the 2.1 machine identities with "has_machine_materials": true in -# their definitions in Cura 2.2. So these are the machines for which profiles -# need to split into multiple profiles, one for each material. -# -# This should contain the definition as they are stated in the profiles. The -# inheritance structure cannot be found at this stage, since the definitions -# may have changed in later versions than 2.2. -_machines_with_machine_quality = {"ultimaker2plus", "ultimaker2_extended_plus"} - ## The materials in Cura 2.2. # # This is required to know how to split old profiles if the old machine didn't @@ -153,7 +142,7 @@ class Profile: config.set("metadata", "material", self._material_name) filenames.append(self._filename) configs.append(config) - elif self._type != "material" and self._machine_type_id in _machines_with_machine_quality: + elif self._type != "material" and self._machine_type_id in VersionUpgrade21to22.machines_with_machine_quality(): #Split this profile into multiple profiles, one for each material. for material_id in _new_materials: filenames.append("{profile}_{material}".format(profile = self._filename, material = material_id)) diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py b/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py index a871f969a5..2f4b063d7c 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py @@ -9,6 +9,17 @@ from . import MachineInstance # To upgrade machine instances. from . import Preferences #To upgrade preferences. from . import Profile # To upgrade profiles. +## Which machines have material-specific profiles in the new version? +# +# These are the 2.1 machine identities with "has_machine_materials": true in +# their definitions in Cura 2.2. So these are the machines for which profiles +# need to split into multiple profiles, one for each material. +# +# This should contain the definition as they are stated in the profiles. The +# inheritance structure cannot be found at this stage, since the definitions +# may have changed in later versions than 2.2. +_machines_with_machine_quality = {"ultimaker2plus", "ultimaker2_extended_plus"} + ## How to translate printer names from the old version to the new. _printer_translations = { "ultimaker2plus": "ultimaker2_plus" @@ -77,6 +88,13 @@ class VersionUpgrade21to22(VersionUpgrade): parser.read_string(serialised) return int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised. + ## Gets a set of the machines which now have per-material quality profiles. + # + # \return A set of machine identifiers. + @staticmethod + def machines_with_machine_quality(self): + return _machines_with_machine_quality + ## Converts machine instances from format version 1 to version 2. # # \param serialised The serialised machine instance in version 1. From 1428f677988eaba8d8a247bce551aea04822a651 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 9 Aug 2016 13:33:11 +0200 Subject: [PATCH 181/228] Rename machines_with_machine_quality to machinesWithMachineQuality As per the code style conventions. Sorry, I'm used to other conventions in one of my own projects. Contributes to issue CURA-844. --- plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py | 2 +- .../VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py b/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py index b207a6172d..aea3340a10 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py @@ -142,7 +142,7 @@ class Profile: config.set("metadata", "material", self._material_name) filenames.append(self._filename) configs.append(config) - elif self._type != "material" and self._machine_type_id in VersionUpgrade21to22.machines_with_machine_quality(): + elif self._type != "material" and self._machine_type_id in VersionUpgrade21to22.machinesWithMachineQuality(): #Split this profile into multiple profiles, one for each material. for material_id in _new_materials: filenames.append("{profile}_{material}".format(profile = self._filename, material = material_id)) diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py b/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py index 2f4b063d7c..2678b7f488 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py @@ -92,7 +92,7 @@ class VersionUpgrade21to22(VersionUpgrade): # # \return A set of machine identifiers. @staticmethod - def machines_with_machine_quality(self): + def machinesWithMachineQuality(self): return _machines_with_machine_quality ## Converts machine instances from format version 1 to version 2. From 9a555fcab0c5758de9e85c97bd6fe5afd027ac0b Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 9 Aug 2016 13:40:22 +0200 Subject: [PATCH 182/228] Fix call to VersionUpgrade21to22.machinesWithMachineQuality It needs that stupidly long path if we're using imports inside a plug-in. Contributes to issue CURA-844. --- .../VersionUpgrade/VersionUpgrade21to22/MachineInstance.py | 4 +++- plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py | 2 +- .../VersionUpgrade21to22/VersionUpgrade21to22.py | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py b/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py index b59d72eed8..03c5a9f6b2 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py @@ -74,8 +74,10 @@ class MachineInstance: import VersionUpgrade21to22 # Import here to prevent circular dependencies. type_name = VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.translatePrinter(self._type_name) - active_profile = VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.translateProfile(self._active_profile_name) active_material = VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.translateProfile(self._active_material_name) + active_profile = VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.translateProfile(self._active_profile_name) + if self._type_name in VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.machinesWithMachineQuality(): #This machine now has machine-quality profiles. + active_profile += "_" + active_material #That means that the profile was split into multiple. variant = VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.translateVariant(self._variant_name, type_name) containers = [ diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py b/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py index aea3340a10..21559fd9d6 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py @@ -142,7 +142,7 @@ class Profile: config.set("metadata", "material", self._material_name) filenames.append(self._filename) configs.append(config) - elif self._type != "material" and self._machine_type_id in VersionUpgrade21to22.machinesWithMachineQuality(): + elif self._type != "material" and self._machine_type_id in VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.machinesWithMachineQuality(): #Split this profile into multiple profiles, one for each material. for material_id in _new_materials: filenames.append("{profile}_{material}".format(profile = self._filename, material = material_id)) diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py b/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py index 2678b7f488..add9c665e3 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py @@ -92,7 +92,7 @@ class VersionUpgrade21to22(VersionUpgrade): # # \return A set of machine identifiers. @staticmethod - def machinesWithMachineQuality(self): + def machinesWithMachineQuality(): return _machines_with_machine_quality ## Converts machine instances from format version 1 to version 2. From 71505a8b358448cc32aacf8b6d34d25195f8371b Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 9 Aug 2016 15:06:50 +0200 Subject: [PATCH 183/228] Use normal config only if not material(-specific) profile Other profiles should just return an array with only their single profile. Contributes to issue CURA-844. --- plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py b/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py index 21559fd9d6..158f7fa2a6 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py @@ -149,6 +149,9 @@ class Profile: config_copy = copy.copy(config) config_copy.set("metadata", "material", material_id) configs.append(config_copy) + else: + configs.append(config) + filenames.append(self._filename) outputs = [] for config in configs: From 36b027b290d432e1a02569dbfb4639bada22f19e Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 9 Aug 2016 15:25:17 +0200 Subject: [PATCH 184/228] Fix copying ConfigParser Turns out that copy.copy() doesn't work on ConfigParsers. It returns a different instance but modifying that instance still modifies the old configs. Deep copy isn't allowed. But this dictionary copy works. Contributes to issue CURA-844. --- plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py b/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py index 158f7fa2a6..75e0f158e5 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py @@ -2,7 +2,6 @@ # Cura is released under the terms of the AGPLv3 or higher. import configparser #To read config files. -import copy #To split config files into multiple config files. import io #To write config files to strings as if they were files. import UM.VersionUpgrade @@ -146,7 +145,8 @@ class Profile: #Split this profile into multiple profiles, one for each material. for material_id in _new_materials: filenames.append("{profile}_{material}".format(profile = self._filename, material = material_id)) - config_copy = copy.copy(config) + config_copy = configparser.ConfigParser(interpolation = None) + config_copy.read_dict(config) #Copy the config to a new ConfigParser instance. config_copy.set("metadata", "material", material_id) configs.append(config_copy) else: From 9c7a28fa2dbd842086c4180333e3ae3785849260 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 9 Aug 2016 17:01:11 +0200 Subject: [PATCH 185/228] Don't break if current settings machine is unknown Currently it sets the user profile to 'empty', which is bad because empty is read-only. But it allows me to continue for now. I'll find a solution for that later. Contributes to issue CURA-844. --- .../VersionUpgrade/VersionUpgrade21to22/MachineInstance.py | 6 +++++- plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py b/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py index 03c5a9f6b2..90f3776f52 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py @@ -79,9 +79,13 @@ class MachineInstance: if self._type_name in VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.machinesWithMachineQuality(): #This machine now has machine-quality profiles. active_profile += "_" + active_material #That means that the profile was split into multiple. variant = VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.translateVariant(self._variant_name, type_name) + if self._type_name in VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.machinesWithMachineQuality(): #The current settings profile is now machine-specific. + current_settings = "empty" #The profile didn't know the definition ID when it was upgraded, so it will have been invalid. Sorry, your current settings are lost now. + else: + current_settings = self._name + "_current_settings" containers = [ - self._name + "_current_settings", + current_settings, active_profile, active_material, variant, diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py b/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py index 75e0f158e5..b44b36f099 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py @@ -99,7 +99,7 @@ class Profile: translated_machine = VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.translatePrinter(self._machine_type_id) config.set("general", "definition", translated_machine) else: - config.set("general", "definition", "fdmprinter") + config.set("general", "definition", "fdmprinter") #In this case, the machine definition is unknown, and it might now have machine-specific profiles, in which case this will fail. config.add_section("metadata") if self._type: From 4d13622a6e3af3be2336afc75b5fccae20da79bc Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 9 Aug 2016 17:55:10 +0200 Subject: [PATCH 186/228] Split profiles also per variant But of course the variant names are strange in the new material profiles. Contributes to issue CURA-844. --- .../VersionUpgrade21to22/MachineInstance.py | 4 +- .../VersionUpgrade21to22/Profile.py | 25 +++++----- .../VersionUpgrade21to22.py | 48 ++++++++++++++++++- 3 files changed, 60 insertions(+), 17 deletions(-) diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py b/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py index 90f3776f52..6faf017ad4 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py @@ -75,10 +75,10 @@ class MachineInstance: import VersionUpgrade21to22 # Import here to prevent circular dependencies. type_name = VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.translatePrinter(self._type_name) active_material = VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.translateProfile(self._active_material_name) + variant = VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.translateVariant(self._variant_name, type_name) active_profile = VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.translateProfile(self._active_profile_name) if self._type_name in VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.machinesWithMachineQuality(): #This machine now has machine-quality profiles. - active_profile += "_" + active_material #That means that the profile was split into multiple. - variant = VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.translateVariant(self._variant_name, type_name) + active_profile += "_" + active_material + "_" + variant #That means that the profile was split into multiple. if self._type_name in VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.machinesWithMachineQuality(): #The current settings profile is now machine-specific. current_settings = "empty" #The profile didn't know the definition ID when it was upgraded, so it will have been invalid. Sorry, your current settings are lost now. else: diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py b/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py index b44b36f099..74597ab9eb 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py @@ -6,14 +6,6 @@ import io #To write config files to strings as if they were files. import UM.VersionUpgrade -## The materials in Cura 2.2. -# -# This is required to know how to split old profiles if the old machine didn't -# have material-specific profiles but the new machine has. This cannot be read -# from the current source directory since the current source directory may be -# a later version than Cura 2.2, so it must be stored in the upgrade plug-in. -_new_materials = {"generic_abs", "generic_cpe", "generic_pla", "generic_pva"} - ## Creates a new profile instance by parsing a serialised profile in version 1 # of the file format. # @@ -143,12 +135,19 @@ class Profile: configs.append(config) elif self._type != "material" and self._machine_type_id in VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.machinesWithMachineQuality(): #Split this profile into multiple profiles, one for each material. + _new_materials = VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.machinesWithMachineQuality()[self._machine_type_id]["materials"] + _new_variants = VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.machinesWithMachineQuality()[self._machine_type_id]["variants"] + translated_machine = VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.translatePrinter(self._machine_type_id) for material_id in _new_materials: - filenames.append("{profile}_{material}".format(profile = self._filename, material = material_id)) - config_copy = configparser.ConfigParser(interpolation = None) - config_copy.read_dict(config) #Copy the config to a new ConfigParser instance. - config_copy.set("metadata", "material", material_id) - configs.append(config_copy) + for variant_id in _new_variants: + variant_id_new = VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.translateVariant(variant_id, translated_machine) + filenames.append("{profile}_{material}_{variant}".format(profile = self._filename, material = material_id, variant = variant_id_new)) + config_copy = configparser.ConfigParser(interpolation = None) + config_copy.read_dict(config) #Copy the config to a new ConfigParser instance. + variant_id_new_materials = VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.translateVariantForMaterials(variant_id, translated_machine) + config_copy.set("metadata", "material", "{material}_{variant}".format(material = material_id, variant = variant_id_new_materials)) + config_copy.set("general", "name", self._name + " " + material_id + " " + variant_id) #DEBUG + configs.append(config_copy) else: configs.append(config) filenames.append(self._filename) diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py b/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py index add9c665e3..3dfb88638f 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py @@ -13,12 +13,24 @@ from . import Profile # To upgrade profiles. # # These are the 2.1 machine identities with "has_machine_materials": true in # their definitions in Cura 2.2. So these are the machines for which profiles -# need to split into multiple profiles, one for each material. +# need to split into multiple profiles, one for each material and variant. +# +# Each machine has the materials and variants listed in which it needs to +# split, since those might be different per machine. # # This should contain the definition as they are stated in the profiles. The # inheritance structure cannot be found at this stage, since the definitions # may have changed in later versions than 2.2. -_machines_with_machine_quality = {"ultimaker2plus", "ultimaker2_extended_plus"} +_machines_with_machine_quality = { + "ultimaker2plus": { + "materials": { "generic_abs", "generic_cpe", "generic_pla", "generic_pva" }, + "variants": { "0.25 mm", "0.4 mm", "0.6 mm", "0.8 mm" } + }, + "ultimaker2_extended_plus": { + "materials": { "generic_abs", "generic_cpe", "generic_pla", "generic_pva" }, + "variants": { "0.25 mm", "0.4 mm", "0.6 mm", "0.8 mm" } + } +} ## How to translate printer names from the old version to the new. _printer_translations = { @@ -72,6 +84,24 @@ _variant_translations = { } } +## Cura 2.2's material profiles use a different naming scheme for variants. +# +# Getting pretty stressed out by this sort of thing... +_variant_translations_materials = { + "ultimaker2_plus": { + "0.25 mm": "ultimaker2_plus_0.25_mm", + "0.4 mm": "ultimaker2_plus_0.4_mm", + "0.6 mm": "ultimaker2_plus_0.6_mm", + "0.8 mm": "ultimaker2_plus_0.8_mm" + }, + "ultimaker2_extended_plus": { + "0.25 mm": "ultimaker2_plus_0.25_mm", + "0.4 mm": "ultimaker2_plus_0.4_mm", + "0.6 mm": "ultimaker2_plus_0.6_mm", + "0.8 mm": "ultimaker2_plus_0.8_mm" + } +} + ## Converts configuration from Cura 2.1's file formats to Cura 2.2's. # # It converts the machine instances and profiles. @@ -198,4 +228,18 @@ class VersionUpgrade21to22(VersionUpgrade): def translateVariant(variant, machine): if machine in _variant_translations and variant in _variant_translations[machine]: return _variant_translations[machine][variant] + return variant + + ## Translates a variant name for the change from Cura 2.1 to 2.2 in + # material profiles. + # + # \param variant The name of the variant in Cura 2.1. + # \param machine The name of the machine this variant is part of in Cura + # 2.2's naming. + # \return The name of the corresponding variant for in material profiles + # in Cura 2.2. + @staticmethod + def translateVariantForMaterials(variant, machine): + if machine in _variant_translations_materials and variant in _variant_translations_materials[machine]: + return _variant_translations_materials[machine][variant] return variant \ No newline at end of file From a0df0c76de80e956fffceda03e8d08029f8eca78 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 9 Aug 2016 18:06:03 +0200 Subject: [PATCH 187/228] Use correct material profile in extruder stack The material profile is more specific inside a material profile if the machine has material quality profiles. Contributes to issue CURA-844. --- .../VersionUpgrade21to22/MachineInstance.py | 8 +++++--- plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py | 1 - 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py b/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py index 6faf017ad4..02113dbfc0 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py @@ -73,13 +73,15 @@ class MachineInstance: config.set("general", "version", "2") # Hard-code version 2, since if this number changes the programmer MUST change this entire function. import VersionUpgrade21to22 # Import here to prevent circular dependencies. + has_machine_qualities = self._type_name in VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.machinesWithMachineQuality() type_name = VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.translatePrinter(self._type_name) active_material = VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.translateProfile(self._active_material_name) variant = VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.translateVariant(self._variant_name, type_name) + variant_materials = VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.translateVariantForMaterials(self._variant_name, type_name) active_profile = VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.translateProfile(self._active_profile_name) - if self._type_name in VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.machinesWithMachineQuality(): #This machine now has machine-quality profiles. - active_profile += "_" + active_material + "_" + variant #That means that the profile was split into multiple. - if self._type_name in VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.machinesWithMachineQuality(): #The current settings profile is now machine-specific. + if has_machine_qualities: #This machine now has machine-quality profiles. + active_profile += "_" + active_material + "_" + variant + active_material += "_" + variant_materials #That means that the profile was split into multiple. current_settings = "empty" #The profile didn't know the definition ID when it was upgraded, so it will have been invalid. Sorry, your current settings are lost now. else: current_settings = self._name + "_current_settings" diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py b/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py index 74597ab9eb..781410997b 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py @@ -146,7 +146,6 @@ class Profile: config_copy.read_dict(config) #Copy the config to a new ConfigParser instance. variant_id_new_materials = VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.translateVariantForMaterials(variant_id, translated_machine) config_copy.set("metadata", "material", "{material}_{variant}".format(material = material_id, variant = variant_id_new_materials)) - config_copy.set("general", "name", self._name + " " + material_id + " " + variant_id) #DEBUG configs.append(config_copy) else: configs.append(config) From e551898e0475d74899dee1d785934e645cbe3bdc Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Tue, 9 Aug 2016 18:43:09 +0200 Subject: [PATCH 188/228] Add a connection string to the printmonitor CURA-2091 --- cura/PrinterOutputDevice.py | 13 ++++++++++++ plugins/USBPrinting/USBPrinterOutputDevice.py | 1 + resources/qml/PrintMonitor.qml | 20 ++++++++++++++----- 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/cura/PrinterOutputDevice.py b/cura/PrinterOutputDevice.py index 153e5f7c42..b24fe11f18 100644 --- a/cura/PrinterOutputDevice.py +++ b/cura/PrinterOutputDevice.py @@ -31,6 +31,7 @@ class PrinterOutputDevice(QObject, OutputDevice): self._head_y = 0 self._head_z = 0 self._connection_state = ConnectionState.closed + self._connection_text = "" self._time_elapsed = 0 self._time_total = 0 self._job_state = "" @@ -71,6 +72,8 @@ class PrinterOutputDevice(QObject, OutputDevice): # it also sends it's own device_id (for convenience sake) connectionStateChanged = pyqtSignal(str) + connectionTextChanged = pyqtSignal() + timeElapsedChanged = pyqtSignal() timeTotalChanged = pyqtSignal() @@ -292,6 +295,16 @@ class PrinterOutputDevice(QObject, OutputDevice): self._connection_state = connection_state self.connectionStateChanged.emit(self._id) + @pyqtProperty(str, notify = connectionTextChanged) + def connectionText(self): + return self._connection_text + + ## Set a text that is shown on top of the print monitor tab + def setConnectionText(self, connection_text): + if self._connection_text != connection_text: + self._connection_text = connection_text + self.connectionTextChanged.emit() + ## Ensure that close gets called when object is destroyed def __del__(self): self.close() diff --git a/plugins/USBPrinting/USBPrinterOutputDevice.py b/plugins/USBPrinting/USBPrinterOutputDevice.py index 2868e85bcb..b49e2acfe1 100644 --- a/plugins/USBPrinting/USBPrinterOutputDevice.py +++ b/plugins/USBPrinting/USBPrinterOutputDevice.py @@ -27,6 +27,7 @@ class USBPrinterOutputDevice(PrinterOutputDevice): self.setShortDescription(catalog.i18nc("@action:button", "Print via USB")) self.setDescription(catalog.i18nc("@info:tooltip", "Print via USB")) self.setIconName("print") + self.setConnectionText(i18n_catalog.i18nc("@info:status", "Connected via USB")) self._serial = None self._serial_port = serial_port diff --git a/resources/qml/PrintMonitor.qml b/resources/qml/PrintMonitor.qml index 434cb50b3a..6460634d8d 100644 --- a/resources/qml/PrintMonitor.qml +++ b/resources/qml/PrintMonitor.qml @@ -12,6 +12,16 @@ import Cura 1.0 as Cura Column { id: printMonitor + property var connectedPrinter: printerConnected ? Cura.MachineManager.printerOutputDevices[0] : null + + Label + { + text: printerConnected ? connectedPrinter.connectionText : catalog.i18nc("@label", "The printer is not connected.") + color: printerConnected && printerAcceptsCommands ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text") + font: UM.Theme.getFont("default") + wrapMode: Text.WordWrap + width: base.width + } Loader { @@ -25,7 +35,7 @@ Column { sourceComponent: monitorItem property string label: machineExtruderCount.properties.value > 1 ? catalog.i18nc("@label", "Hotend Temperature %1").arg(index + 1) : catalog.i18nc("@label", "Hotend Temperature") - property string value: printerConnected ? Math.round(Cura.MachineManager.printerOutputDevices[0].hotendTemperatures[index]) + "°C" : "" + property string value: printerConnected ? Math.round(connectedPrinter.hotendTemperatures[index]) + "°C" : "" } } Repeater @@ -35,7 +45,7 @@ Column { sourceComponent: monitorItem property string label: catalog.i18nc("@label", "Bed Temperature") - property string value: printerConnected ? Math.round(Cura.MachineManager.printerOutputDevices[0].bedTemperature) + "°C" : "" + property string value: printerConnected ? Math.round(connectedPrinter.bedTemperature) + "°C" : "" } } @@ -48,19 +58,19 @@ Column { sourceComponent: monitorItem property string label: catalog.i18nc("@label", "Job Name") - property string value: printerConnected ? Cura.MachineManager.printerOutputDevices[0].jobName : "" + property string value: printerConnected ? connectedPrinter.jobName : "" } Loader { sourceComponent: monitorItem property string label: catalog.i18nc("@label", "Printing Time") - property string value: printerConnected ? getPrettyTime(Cura.MachineManager.printerOutputDevices[0].timeTotal) : "" + property string value: printerConnected ? getPrettyTime(connectedPrinter.timeTotal) : "" } Loader { sourceComponent: monitorItem property string label: catalog.i18nc("@label", "Estimated time left") - property string value: printerConnected ? getPrettyTime(Cura.MachineManager.printerOutputDevices[0].timeTotal - Cura.MachineManager.printerOutputDevices[0].timeElapsed) : "" + property string value: printerConnected ? getPrettyTime(connectedPrinter.timeTotal - connectedPrinter.timeElapsed) : "" } Component From decf998d6860073b46b2c361d85f7df805aa61f6 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Wed, 10 Aug 2016 09:17:10 +0200 Subject: [PATCH 189/228] Code style, semicolons --- resources/qml/MonitorButton.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/MonitorButton.qml b/resources/qml/MonitorButton.qml index 431a6999d8..5fa68b77cc 100644 --- a/resources/qml/MonitorButton.qml +++ b/resources/qml/MonitorButton.qml @@ -159,8 +159,8 @@ Rectangle anchors.right: parent.right anchors.rightMargin: UM.Theme.getSize("default_margin").width - text: catalog.i18nc("@label:", "Abort Print"); - onClicked: Cura.MachineManager.printerOutputDevices[0].setJobState("abort"); + text: catalog.i18nc("@label:", "Abort Print") + onClicked: Cura.MachineManager.printerOutputDevices[0].setJobState("abort") style: ButtonStyle { From 9bf4dbd24fb1074f94a4e1ef114c21974a955c2c Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Wed, 10 Aug 2016 09:44:27 +0200 Subject: [PATCH 190/228] Fix wrong variable name --- plugins/USBPrinting/USBPrinterOutputDevice.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/USBPrinting/USBPrinterOutputDevice.py b/plugins/USBPrinting/USBPrinterOutputDevice.py index b49e2acfe1..9f6c59f1ff 100644 --- a/plugins/USBPrinting/USBPrinterOutputDevice.py +++ b/plugins/USBPrinting/USBPrinterOutputDevice.py @@ -27,7 +27,7 @@ class USBPrinterOutputDevice(PrinterOutputDevice): self.setShortDescription(catalog.i18nc("@action:button", "Print via USB")) self.setDescription(catalog.i18nc("@info:tooltip", "Print via USB")) self.setIconName("print") - self.setConnectionText(i18n_catalog.i18nc("@info:status", "Connected via USB")) + self.setConnectionText(catalog.i18nc("@info:status", "Connected via USB")) self._serial = None self._serial_port = serial_port From 48792aa8f3babb72bb20847d950094a827919150 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Wed, 10 Aug 2016 12:57:01 +0200 Subject: [PATCH 191/228] Fixed firmware update screen. CURA-2079. --- plugins/USBPrinting/FirmwareUpdateWindow.qml | 18 +++++++++--------- plugins/USBPrinting/USBPrinterOutputDevice.py | 16 +++++++++++++++- .../USBPrinterOutputDeviceManager.py | 19 ++++++++++++++++++- plugins/USBPrinting/avr_isp/stk500v2.py | 12 ++++++------ 4 files changed, 48 insertions(+), 17 deletions(-) diff --git a/plugins/USBPrinting/FirmwareUpdateWindow.qml b/plugins/USBPrinting/FirmwareUpdateWindow.qml index e8f532d24a..d55541f36d 100644 --- a/plugins/USBPrinting/FirmwareUpdateWindow.qml +++ b/plugins/USBPrinting/FirmwareUpdateWindow.qml @@ -32,16 +32,16 @@ UM.Dialog } text: { - if (manager.progress == 0) - { - //: Firmware update status label - return catalog.i18nc("@label","Starting firmware update, this may take a while.") - } - else if (manager.progress > 99) + if (manager.firmwareUpdateCompleteStatus) { //: Firmware update status label return catalog.i18nc("@label","Firmware update completed.") } + else if (manager.progress == 0) + { + //: Firmware update status label + return catalog.i18nc("@label","Starting firmware update, this may take a while.") + } else { //: Firmware update status label @@ -55,10 +55,10 @@ UM.Dialog ProgressBar { id: prog - value: manager.progress + value: manager.firmwareUpdateCompleteStatus ? 100 : manager.progress minimumValue: 0 maximumValue: 100 - indeterminate: manager.progress < 100 + indeterminate: (manager.progress < 1) && (!manager.firmwareUpdateCompleteStatus) anchors { left: parent.left; @@ -79,7 +79,7 @@ UM.Dialog Button { text: catalog.i18nc("@action:button","Close"); - enabled: manager.progress >= 100; + enabled: manager.firmwareUpdateCompleteStatus; onClicked: base.visible = false; } ] diff --git a/plugins/USBPrinting/USBPrinterOutputDevice.py b/plugins/USBPrinting/USBPrinterOutputDevice.py index 9f6c59f1ff..421168b87f 100644 --- a/plugins/USBPrinting/USBPrinterOutputDevice.py +++ b/plugins/USBPrinting/USBPrinterOutputDevice.py @@ -21,6 +21,7 @@ catalog = i18nCatalog("cura") class USBPrinterOutputDevice(PrinterOutputDevice): + def __init__(self, serial_port): super().__init__(serial_port) self.setName(catalog.i18nc("@item:inmenu", "USB printing")) @@ -86,12 +87,14 @@ class USBPrinterOutputDevice(PrinterOutputDevice): self._updating_firmware = False self._firmware_file_name = None + self._firmware_update_finished = False self._error_message = None onError = pyqtSignal() firmwareUpdateComplete = pyqtSignal() + firmwareUpdateChange = pyqtSignal() endstopStateChanged = pyqtSignal(str ,bool, arguments = ["key","state"]) @@ -171,6 +174,7 @@ class USBPrinterOutputDevice(PrinterOutputDevice): ## Private function (threaded) that actually uploads the firmware. def _updateFirmware(self): self.setProgress(0, 100) + self._firmware_update_finished = False if self._connection_state != ConnectionState.closed: self.close() @@ -181,7 +185,7 @@ class USBPrinterOutputDevice(PrinterOutputDevice): return programmer = stk500v2.Stk500v2() - programmer.progressCallback = self.setProgress + programmer.progressCallback = self.setProgress try: programmer.connect(self._serial_port) @@ -207,8 +211,10 @@ class USBPrinterOutputDevice(PrinterOutputDevice): programmer.close() self.setProgress(100, 100) + self._firmware_update_finished = True self.firmwareUpdateComplete.emit() + self.firmwareUpdateChange.emit() ## Upload new firmware to machine # \param filename full path of firmware file to be uploaded @@ -217,6 +223,14 @@ class USBPrinterOutputDevice(PrinterOutputDevice): self._firmware_file_name = file_name self._update_firmware_thread.start() + @property + def firmwareUpdateFinished(self): + return self._firmware_update_finished + + def resetFirmwareUpdateFinished(self): + self._firmware_update_finished = False + self.firmwareUpdateChange.emit() + @pyqtSlot() def startPollEndstop(self): if not self._poll_endstop: diff --git a/plugins/USBPrinting/USBPrinterOutputDeviceManager.py b/plugins/USBPrinting/USBPrinterOutputDeviceManager.py index fc10c217a0..1a53828d06 100644 --- a/plugins/USBPrinting/USBPrinterOutputDeviceManager.py +++ b/plugins/USBPrinting/USBPrinterOutputDeviceManager.py @@ -48,15 +48,24 @@ class USBPrinterOutputDeviceManager(QObject, OutputDevicePlugin, Extension): connectionStateChanged = pyqtSignal() progressChanged = pyqtSignal() + firmwareUpdateChange = pyqtSignal() @pyqtProperty(float, notify = progressChanged) def progress(self): progress = 0 for printer_name, device in self._usb_output_devices.items(): # TODO: @UnusedVariable "printer_name" progress += device.progress - return progress / len(self._usb_output_devices) + ## Return True if all printers finished firmware update + @pyqtProperty(float, notify = firmwareUpdateChange) + def firmwareUpdateCompleteStatus(self): + complete = True + for printer_name, device in self._usb_output_devices.items(): # TODO: @UnusedVariable "printer_name" + if not device.firmwareUpdateFinished: + complete = False + return complete + def start(self): self._check_updates = True self._update_thread.start() @@ -93,13 +102,20 @@ class USBPrinterOutputDeviceManager(QObject, OutputDevicePlugin, Extension): Message(i18n_catalog.i18nc("@info","Cannot update firmware, there were no connected printers found.")).show() return + for printer_connection in self._usb_output_devices: + self._usb_output_devices[printer_connection].resetFirmwareUpdateFinished() self.spawnFirmwareInterface("") for printer_connection in self._usb_output_devices: try: self._usb_output_devices[printer_connection].updateFirmware(Resources.getPath(CuraApplication.ResourceTypes.Firmware, self._getDefaultFirmwareName())) except FileNotFoundError: + # Should only happen in dev environments where the resources/firmware folder is absent. self._usb_output_devices[printer_connection].setProgress(100, 100) Logger.log("w", "No firmware found for printer %s", printer_connection) + Message(i18n_catalog.i18nc("@info", + "Could not find firmware required for the printer at %s.") % printer_connection).show() + self._firmware_view.close() + continue @pyqtSlot(str, result = bool) @@ -200,6 +216,7 @@ class USBPrinterOutputDeviceManager(QObject, OutputDevicePlugin, Extension): device.connectionStateChanged.connect(self._onConnectionStateChanged) device.connect() device.progressChanged.connect(self.progressChanged) + device.firmwareUpdateChange.connect(self.firmwareUpdateChange) self._usb_output_devices[serial_port] = device ## If one of the states of the connected devices change, we might need to add / remove them from the global list. diff --git a/plugins/USBPrinting/avr_isp/stk500v2.py b/plugins/USBPrinting/avr_isp/stk500v2.py index 02d398ef58..3960912e1d 100644 --- a/plugins/USBPrinting/avr_isp/stk500v2.py +++ b/plugins/USBPrinting/avr_isp/stk500v2.py @@ -20,7 +20,7 @@ class Stk500v2(ispBase.IspBase): self.serial = None self.seq = 1 self.last_addr = -1 - self.progress_callback = None + self.progressCallback = None def connect(self, port = "COM22", speed = 115200): if self.serial is not None: @@ -92,11 +92,11 @@ class Stk500v2(ispBase.IspBase): load_count = (len(flash_data) + page_size - 1) / page_size for i in range(0, int(load_count)): recv = self.sendMessage([0x13, page_size >> 8, page_size & 0xFF, 0xc1, 0x0a, 0x40, 0x4c, 0x20, 0x00, 0x00] + flash_data[(i * page_size):(i * page_size + page_size)]) - if self.progress_callback is not None: + if self.progressCallback is not None: if self._has_checksum: - self.progress_callback(i + 1, load_count) + self.progressCallback(i + 1, load_count) else: - self.progress_callback(i + 1, load_count*2) + self.progressCallback(i + 1, load_count * 2) def verifyFlash(self, flash_data): if self._has_checksum: @@ -120,8 +120,8 @@ class Stk500v2(ispBase.IspBase): load_count = (len(flash_data) + 0xFF) / 0x100 for i in range(0, int(load_count)): recv = self.sendMessage([0x14, 0x01, 0x00, 0x20])[2:0x102] - if self.progress_callback is not None: - self.progress_callback(load_count + i + 1, load_count*2) + if self.progressCallback is not None: + self.progressCallback(load_count + i + 1, load_count * 2) for j in range(0, 0x100): if i * 0x100 + j < len(flash_data) and flash_data[i * 0x100 + j] != recv[j]: raise ispBase.IspError("Verify error at: 0x%x" % (i * 0x100 + j)) From 15fef2452ba305cbb4c74839e1c7e5481f124984 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 10 Aug 2016 13:52:11 +0200 Subject: [PATCH 192/228] Limit speeds to max feedrates of the printer Also number of slowdown layers is no longer limited by light speed. Contributes to issue CURA-1049. --- resources/definitions/fdmprinter.def.json | 57 +++++++++++------------ 1 file changed, 28 insertions(+), 29 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index f4c07db2a8..d440f0f70a 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1147,7 +1147,7 @@ "type": "float", "default_value": 25, "minimum_value": "0", - "maximum_value": "299792458000", + "maximum_value": "machine_max_feedrate_e", "maximum_value_warning": "100", "enabled": "retraction_enable", "settable_per_mesh": false, @@ -1160,7 +1160,7 @@ "type": "float", "default_value": 25, "minimum_value": "0", - "maximum_value": "299792458000", + "maximum_value": "machine_max_feedrate_e", "maximum_value_warning": "100", "enabled": "retraction_enable", "value": "retraction_speed", @@ -1174,7 +1174,7 @@ "type": "float", "default_value": 25, "minimum_value": "0", - "maximum_value": "299792458000", + "maximum_value": "machine_max_feedrate_e", "maximum_value_warning": "100", "enabled": "retraction_enable", "value": "retraction_speed", @@ -1359,7 +1359,7 @@ "type": "float", "minimum_value": "0.1", "maximum_value_warning": "150", - "maximum_value": "299792458000", + "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", "default_value": 60, "settable_per_mesh": true, "children": @@ -1371,7 +1371,7 @@ "unit": "mm/s", "type": "float", "minimum_value": "0.1", - "maximum_value": "299792458000", + "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", "maximum_value_warning": "150", "default_value": 60, "value": "speed_print", @@ -1384,7 +1384,7 @@ "unit": "mm/s", "type": "float", "minimum_value": "0.1", - "maximum_value": "299792458000", + "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", "maximum_value_warning": "150", "default_value": 30, "value": "speed_print / 2", @@ -1398,7 +1398,7 @@ "unit": "mm/s", "type": "float", "minimum_value": "0.1", - "maximum_value": "299792458000", + "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", "maximum_value_warning": "150", "default_value": 30, "value": "speed_wall", @@ -1411,7 +1411,7 @@ "unit": "mm/s", "type": "float", "minimum_value": "0.1", - "maximum_value": "299792458000", + "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", "maximum_value_warning": "150", "default_value": 60, "value": "speed_wall * 2", @@ -1426,7 +1426,7 @@ "unit": "mm/s", "type": "float", "minimum_value": "0.1", - "maximum_value": "299792458000", + "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", "maximum_value_warning": "150", "default_value": 30, "value": "speed_print / 2", @@ -1439,7 +1439,7 @@ "unit": "mm/s", "type": "float", "minimum_value": "0.1", - "maximum_value": "299792458000", + "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", "maximum_value_warning": "150", "default_value": 60, "value": "speed_print", @@ -1456,7 +1456,7 @@ "type": "float", "default_value": 60, "minimum_value": "0.1", - "maximum_value": "299792458000", + "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", "maximum_value_warning": "150", "value": "speed_support", "enabled": "support_enable", @@ -1471,7 +1471,7 @@ "type": "float", "default_value": 40, "minimum_value": "0.1", - "maximum_value": "299792458000", + "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", "maximum_value_warning": "150", "enabled": "extruderValue(support_extruder_nr, 'support_interface_enable') and support_enable", "value": "speed_support / 1.5", @@ -1490,6 +1490,7 @@ "default_value": 60, "value": "speed_print", "minimum_value": "0.1", + "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", "maximum_value_warning": "150", "settable_per_mesh": false, "settable_per_extruder": true @@ -1504,7 +1505,7 @@ "type": "float", "default_value": 120, "minimum_value": "0.1", - "maximum_value": "299792458000", + "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", "maximum_value_warning": "300", "value": "speed_print if magic_spiralize else 120", "settable_per_mesh": false, @@ -1517,7 +1518,7 @@ "type": "float", "default_value": 30, "minimum_value": "0.1", - "maximum_value": "299792458000", + "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", "maximum_value_warning": "300", "settable_per_mesh": true, "children": @@ -1531,7 +1532,7 @@ "default_value": 30, "value": "speed_layer_0", "minimum_value": "0.1", - "maximum_value": "299792458000", + "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", "maximum_value_warning": "300", "settable_per_mesh": true }, @@ -1544,7 +1545,7 @@ "default_value": 60, "value": "speed_layer_0 * speed_travel / speed_print", "minimum_value": "0.1", - "maximum_value": "299792458000", + "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", "maximum_value_warning": "300", "settable_per_extruder": true, "settable_per_mesh": false @@ -1558,7 +1559,7 @@ "type": "float", "default_value": 30, "minimum_value": "0.1", - "maximum_value": "299792458000", + "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", "maximum_value_warning": "300", "value": "speed_layer_0", "enabled": "adhesion_type == \"skirt\" or adhesion_type == \"brim\"", @@ -1585,8 +1586,6 @@ "type": "int", "default_value": 2, "minimum_value": "0", - "maximum_value": "299792458000", - "maximum_value_warning": "300", "settable_per_mesh": false, "settable_per_extruder": false }, @@ -1608,7 +1607,7 @@ "enabled": "speed_equalize_flow_enabled", "default_value": 150, "minimum_value": "0.1", - "maximum_value": "299792458000", + "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", "maximum_value_warning": "150", "settable_per_mesh": false, "settable_per_extruder": true @@ -2931,7 +2930,7 @@ "type": "float", "default_value": 20, "minimum_value": "0.1", - "maximum_value": "299792458000", + "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", "maximum_value_warning": "200", "enabled": "adhesion_type == \"raft\"", "value": "speed_print / 60 * 30", @@ -2947,7 +2946,7 @@ "type": "float", "default_value": 20, "minimum_value": "0.1", - "maximum_value": "299792458000", + "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", "maximum_value_warning": "100", "enabled": "adhesion_type == \"raft\"", "value": "raft_speed", @@ -2963,7 +2962,7 @@ "default_value": 15, "value": "raft_speed * 0.75", "minimum_value": "0.1", - "maximum_value": "299792458000", + "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", "maximum_value_warning": "150", "enabled": "adhesion_type == \"raft\"", "settable_per_mesh": false, @@ -2977,7 +2976,7 @@ "type": "float", "default_value": 15, "minimum_value": "0.1", - "maximum_value": "299792458000", + "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", "maximum_value_warning": "200", "enabled": "adhesion_type == \"raft\"", "value": "0.75 * raft_speed", @@ -3737,7 +3736,7 @@ "type": "float", "default_value": 5, "minimum_value": "0.1", - "maximum_value": "299792458000", + "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", "maximum_value_warning": "50", "enabled": "wireframe_enabled", "settable_per_mesh": false, @@ -3753,7 +3752,7 @@ "type": "float", "default_value": 5, "minimum_value": "0.1", - "maximum_value": "299792458000", + "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", "maximum_value_warning": "50", "enabled": "wireframe_enabled", "value": "wireframe_printspeed", @@ -3769,7 +3768,7 @@ "type": "float", "default_value": 5, "minimum_value": "0.1", - "maximum_value": "299792458000", + "maximum_value": "math.max(max_feedrate_z_override, machine_max_feedrate_z)", "maximum_value_warning": "50", "enabled": "wireframe_enabled", "value": "wireframe_printspeed", @@ -3785,7 +3784,7 @@ "type": "float", "default_value": 5, "minimum_value": "0.1", - "maximum_value": "299792458000", + "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", "maximum_value_warning": "50", "enabled": "wireframe_enabled", "value": "wireframe_printspeed", @@ -3801,7 +3800,7 @@ "type": "float", "default_value": 5, "minimum_value": "0.1", - "maximum_value": "299792458000", + "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", "maximum_value_warning": "100", "value": "wireframe_printspeed", "enabled": "wireframe_enabled", From a0203905b6e90a46eed183c491f97a6463408688 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Wed, 10 Aug 2016 14:08:58 +0200 Subject: [PATCH 193/228] Show the right material color for single-extrusion machines CURA-1992 --- plugins/SolidView/SolidView.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/plugins/SolidView/SolidView.py b/plugins/SolidView/SolidView.py index 9a4604193e..7896892808 100644 --- a/plugins/SolidView/SolidView.py +++ b/plugins/SolidView/SolidView.py @@ -41,26 +41,28 @@ class SolidView(View): self._disabled_shader.setUniformValue("u_diffuseColor2", [0.68, 0.68, 0.68, 1.0]) self._disabled_shader.setUniformValue("u_width", 50.0) - if Application.getInstance().getGlobalContainerStack(): + multi_extrusion = False + + global_container_stack = Application.getInstance().getGlobalContainerStack() + if global_container_stack: if Preferences.getInstance().getValue("view/show_overhang"): - angle = Application.getInstance().getGlobalContainerStack().getProperty("support_angle", "value") - if angle is not None and Application.getInstance().getGlobalContainerStack().getProperty("support_angle", "validationState") == ValidatorState.Valid: + angle = global_container_stack.getProperty("support_angle", "value") + if angle is not None and global_container_stack.getProperty("support_angle", "validationState") == ValidatorState.Valid: self._enabled_shader.setUniformValue("u_overhangAngle", math.cos(math.radians(90 - angle))) else: self._enabled_shader.setUniformValue("u_overhangAngle", math.cos(math.radians(0))) #Overhang angle of 0 causes no area at all to be marked as overhang. else: self._enabled_shader.setUniformValue("u_overhangAngle", math.cos(math.radians(0))) + multi_extrusion = global_container_stack.getProperty("machine_extruder_count", "value") > 1 + for node in DepthFirstIterator(scene.getRoot()): if not node.render(renderer): if node.getMeshData() and node.isVisible(): - # TODO: Find a better way to handle this - #if node.getBoundingBoxMesh(): - # renderer.queueNode(scene.getRoot(), mesh = node.getBoundingBoxMesh(),mode = Renderer.RenderLines) uniforms = {} - if self._extruders_model.rowCount() == 0: - material = Application.getInstance().getGlobalContainerStack().findContainer({ "type": "material" }) + if not multi_extrusion: + material = global_container_stack.findContainer({ "type": "material" }) material_color = material.getMetaDataEntry("color_code", default = self._extruders_model.defaultColors[0]) if material else self._extruders_model.defaultColors[0] else: # Get color to render this mesh in from ExtrudersModel From b6bf02e0a0b893dfbc9f54860957b8b0b28981f7 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Wed, 10 Aug 2016 14:37:59 +0200 Subject: [PATCH 194/228] Update swatch colors when changing materials CURA-1971 --- .../PerObjectSettingsTool/PerObjectSettingsPanel.qml | 6 +++++- resources/qml/Settings/SettingExtruder.qml | 11 ++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml index cfe37c432f..4f2d8e4272 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml +++ b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml @@ -128,7 +128,11 @@ Item { } } - onActivated: UM.ActiveTool.setProperty("SelectedActiveExtruder", extruders_model.getItem(index).id); + onActivated: + { + UM.ActiveTool.setProperty("SelectedActiveExtruder", extruders_model.getItem(index).id); + extruderSelector.color = extruders_model.getItem(index).color; + } onModelChanged: updateCurrentIndex(); function updateCurrentIndex() diff --git a/resources/qml/Settings/SettingExtruder.qml b/resources/qml/Settings/SettingExtruder.qml index 582eb08644..ff30a7146e 100644 --- a/resources/qml/Settings/SettingExtruder.qml +++ b/resources/qml/Settings/SettingExtruder.qml @@ -19,7 +19,10 @@ SettingItem model: Cura.ExtrudersModel { id: extruders_model + onModelChanged: control.color = extruders_model.getItem(control.currentIndex).color } + property string color: extruders_model.getItem(control.currentIndex).color + textRole: "name" anchors.fill: parent @@ -64,7 +67,7 @@ SettingItem anchors.leftMargin: UM.Theme.getSize("default_lining").width anchors.verticalCenter: parent.verticalCenter - color: extruders_model.getItem(control.currentIndex).color + color: control.color border.width: UM.Theme.getSize("default_lining").width border.color: !enabled ? UM.Theme.getColor("setting_control_disabled_border") : UM.Theme.getColor("setting_control_border") } @@ -105,7 +108,8 @@ SettingItem onActivated: { forceActiveFocus(); - propertyProvider.setPropertyValue("value", extruders_model.getItem(index).index) + propertyProvider.setPropertyValue("value", extruders_model.getItem(index).index); + control.color = extruders_model.getItem(index).color; } onModelChanged: updateCurrentIndex(); @@ -121,7 +125,8 @@ SettingItem { if(extruders_model.getItem(i).index == propertyProvider.properties.value) { - currentIndex = i; + control.currentIndex = i; + control.color = extruders_model.getItem(i).color; return; } } From ff025a753f457f397ec60316fd2c6397c927cd78 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Wed, 10 Aug 2016 14:56:13 +0200 Subject: [PATCH 195/228] Change placeholder material colors CURA-2070 --- resources/materials/generic_abs.xml.fdm_material | 2 +- resources/materials/generic_cpe.xml.fdm_material | 2 +- resources/materials/generic_pla.xml.fdm_material | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/materials/generic_abs.xml.fdm_material b/resources/materials/generic_abs.xml.fdm_material index 82b2f1f963..ceb6e8698e 100644 --- a/resources/materials/generic_abs.xml.fdm_material +++ b/resources/materials/generic_abs.xml.fdm_material @@ -11,7 +11,7 @@ Generic PLA profile. Serves as an example file, data in this file is not correct 60636bb4-518f-42e7-8237-fe77b194ebe0 0 - #FF0000 + #8cb219 1.07 diff --git a/resources/materials/generic_cpe.xml.fdm_material b/resources/materials/generic_cpe.xml.fdm_material index 8ac4dd8c71..19a0072de9 100644 --- a/resources/materials/generic_cpe.xml.fdm_material +++ b/resources/materials/generic_cpe.xml.fdm_material @@ -11,7 +11,7 @@ Generic PLA profile. Serves as an example file, data in this file is not correct 12f41353-1a33-415e-8b4f-a775a6c70cc6 0 - #0000FF + #159499 0.94 diff --git a/resources/materials/generic_pla.xml.fdm_material b/resources/materials/generic_pla.xml.fdm_material index 40432d5849..9d60be93fe 100644 --- a/resources/materials/generic_pla.xml.fdm_material +++ b/resources/materials/generic_pla.xml.fdm_material @@ -11,7 +11,7 @@ Generic PLA profile. Serves as an example file, data in this file is not correct 506c9f0d-e3aa-4bd4-b2d2-23e2425b1aa9 0 - #00FF00 + #ffc924 1.3 From 63f5889eae79dad09d0d912eba3ca76d4f74b6d8 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Wed, 10 Aug 2016 17:06:51 +0200 Subject: [PATCH 196/228] JSON fix type (CURA-1049) --- resources/definitions/fdmprinter.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index d440f0f70a..f781edc47e 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1569,7 +1569,7 @@ "max_feedrate_z_override": { "label": "Maximum Z Speed", - "description": "The maximal speed with which the bed is moved. Setting this to zero causes the print to use the firmware defaults for the maximum z speed.", + "description": "The maximum speed with which the bed is moved. Setting this to zero causes the print to use the firmware defaults for the maximum z speed.", "unit": "mm/s", "type": "float", "default_value": 0, From 7aab8ad397a640fc9b2a0ff5589a4c0fe2d7d63f Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Wed, 10 Aug 2016 17:05:27 +0200 Subject: [PATCH 197/228] Change "object" to "model" UXD-83 --- cura/BuildVolume.py | 2 +- .../CuraEngineBackend/CuraEngineBackend.py | 2 +- .../PerObjectSettingsPanel.qml | 4 +-- plugins/PerObjectSettingsTool/__init__.py | 8 ++--- resources/definitions/fdmprinter.def.json | 30 +++++++++---------- resources/qml/Actions.qml | 20 ++++++------- resources/qml/Preferences/GeneralPage.qml | 14 ++++----- 7 files changed, 40 insertions(+), 40 deletions(-) diff --git a/cura/BuildVolume.py b/cura/BuildVolume.py index 02d5ff1c67..1b20cc63c0 100644 --- a/cura/BuildVolume.py +++ b/cura/BuildVolume.py @@ -208,7 +208,7 @@ class BuildVolume(SceneNode): "@info:status", "The build volume height has been reduced due to the value of the" " \"Print Sequence\" setting to prevent the gantry from colliding" - " with printed objects."), lifetime=10).show() + " with printed models."), lifetime=10).show() def getRaftThickness(self): return self._raft_thickness diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 70dcd300a4..bae4e9d427 100644 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -236,7 +236,7 @@ class CuraEngineBackend(Backend): if job.getResult() == StartSliceJob.StartJobResult.NothingToSlice: if Application.getInstance().getPlatformActivity: - self._error_message = Message(catalog.i18nc("@info:status", "Unable to slice. No suitable objects found.")) + self._error_message = Message(catalog.i18nc("@info:status", "Unable to slice. No suitable models found.")) self._error_message.show() self.backendStateChange.emit(BackendState.Error) else: diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml index 4f2d8e4272..292c8a9a49 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml +++ b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml @@ -31,7 +31,7 @@ Item { spacing: UM.Theme.getSize("default_margin").width Label { - text: catalog.i18nc("@label", "Print object with") + text: catalog.i18nc("@label", "Print model with") anchors.verticalCenter: extruderSelector.verticalCenter color: UM.Theme.getColor("setting_control_text") @@ -306,7 +306,7 @@ Item { UM.Dialog { id: settingPickDialog - title: catalog.i18nc("@title:window", "Select Settings to Customize for this object") + title: catalog.i18nc("@title:window", "Select Settings to Customize for this model") width: screenScaleFactor * 360; property string labelFilter: "" diff --git a/plugins/PerObjectSettingsTool/__init__.py b/plugins/PerObjectSettingsTool/__init__.py index 1779556ade..08b8de1452 100644 --- a/plugins/PerObjectSettingsTool/__init__.py +++ b/plugins/PerObjectSettingsTool/__init__.py @@ -11,15 +11,15 @@ i18n_catalog = i18nCatalog("cura") def getMetaData(): return { "plugin": { - "name": i18n_catalog.i18nc("@label", "Per Object Settings Tool"), + "name": i18n_catalog.i18nc("@label", "Per Model Settings Tool"), "author": "Ultimaker", "version": "1.0", - "description": i18n_catalog.i18nc("@info:whatsthis", "Provides the Per Object Settings."), + "description": i18n_catalog.i18nc("@info:whatsthis", "Provides the Per Model Settings."), "api": 3 }, "tool": { - "name": i18n_catalog.i18nc("@label", "Per Object Settings"), - "description": i18n_catalog.i18nc("@info:tooltip", "Configure Per Object Settings"), + "name": i18n_catalog.i18nc("@label", "Per Model Settings"), + "description": i18n_catalog.i18nc("@info:tooltip", "Configure Per Model Settings"), "icon": "setting_per_object", "tool_panel": "PerObjectSettingsPanel.qml", "weight": 3 diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index f781edc47e..20a5fd1ad5 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -784,7 +784,7 @@ "wall_0_inset": { "label": "Outer Wall Inset", - "description": "Inset applied to the path of the outer wall. If the outer wall is smaller than the nozzle, and printed after the inner walls, use this offset to get the hole in the nozzle to overlap with the inner walls instead of the outside of the object.", + "description": "Inset applied to the path of the outer wall. If the outer wall is smaller than the nozzle, and printed after the inner walls, use this offset to get the hole in the nozzle to overlap with the inner walls instead of the outside of the model.", "unit": "mm", "type": "float", "default_value": 0.0, @@ -1582,7 +1582,7 @@ "speed_slowdown_layers": { "label": "Number of Slower Layers", - "description": "The first few layers are printed slower than the rest of the object, to get better adhesion to the build plate and improve the overall success rate of prints. The speed is gradually increased over these layers.", + "description": "The first few layers are printed slower than the rest of the model, to get better adhesion to the build plate and improve the overall success rate of prints. The speed is gradually increased over these layers.", "type": "int", "default_value": 2, "minimum_value": "0", @@ -2667,7 +2667,7 @@ "adhesion_type": { "label": "Platform Adhesion Type", - "description": "Different options that help to improve both priming your extrusion and adhesion to the build plate. Brim adds a single layer flat area around the base of your object to prevent warping. Raft adds a thick grid with a roof below the object. Skirt is a line printed around the object, but not connected to the model.", + "description": "Different options that help to improve both priming your extrusion and adhesion to the build plate. Brim adds a single layer flat area around the base of your model to prevent warping. Raft adds a thick grid with a roof below the model. Skirt is a line printed around the model, but not connected to the model.", "type": "enum", "options": { @@ -2682,7 +2682,7 @@ "skirt_line_count": { "label": "Skirt Line Count", - "description": "Multiple skirt lines help to prime your extrusion better for small objects. Setting this to 0 will disable the skirt.", + "description": "Multiple skirt lines help to prime your extrusion better for small models. Setting this to 0 will disable the skirt.", "type": "int", "default_value": 1, "minimum_value": "0", @@ -2750,7 +2750,7 @@ "raft_margin": { "label": "Raft Extra Margin", - "description": "If the raft is enabled, this is the extra raft area around the object which is also given a raft. Increasing this margin will create a stronger raft while using more material and leaving less area for your print.", + "description": "If the raft is enabled, this is the extra raft area around the model which is also given a raft. Increasing this margin will create a stronger raft while using more material and leaving less area for your print.", "unit": "mm", "type": "float", "default_value": 15, @@ -2761,7 +2761,7 @@ "raft_airgap": { "label": "Raft Air Gap", - "description": "The gap between the final raft layer and the first layer of the object. Only the first layer is raised by this amount to lower the bonding between the raft layer and the object. Makes it easier to peel off the raft.", + "description": "The gap between the final raft layer and the first layer of the model. Only the first layer is raised by this amount to lower the bonding between the raft layer and the model. Makes it easier to peel off the raft.", "unit": "mm", "type": "float", "default_value": 0.3, @@ -2773,7 +2773,7 @@ }, "layer_0_z_overlap": { "label": "Initial Layer Z Overlap", - "description": "Make the first and second layer of the object overlap in the Z direction to compensate for the filament lost in the airgap. All models above the first model layer will be shifted down by this amount.", + "description": "Make the first and second layer of the model overlap in the Z direction to compensate for the filament lost in the airgap. All models above the first model layer will be shifted down by this amount.", "unit": "mm", "type": "float", "default_value": 0.22, @@ -2787,7 +2787,7 @@ "raft_surface_layers": { "label": "Raft Top Layers", - "description": "The number of top layers on top of the 2nd raft layer. These are fully filled layers that the object sits on. 2 layers result in a smoother top surface than 1.", + "description": "The number of top layers on top of the 2nd raft layer. These are fully filled layers that the model sits on. 2 layers result in a smoother top surface than 1.", "type": "int", "default_value": 2, "minimum_value": "0", @@ -3299,7 +3299,7 @@ "multiple_mesh_overlap": { "label": "Dual Extrusion Overlap", - "description": "Make the objects printed with different extruder trains overlap a bit. This makes the different materials bond together better.", + "description": "Make the models printed with different extruder trains overlap a bit. This makes the different materials bond together better.", "type": "float", "unit": "mm", "default_value": 0.15, @@ -3310,7 +3310,7 @@ "ooze_shield_enabled": { "label": "Enable Ooze Shield", - "description": "Enable exterior ooze shield. This will create a shell around the object which is likely to wipe a second nozzle if it's at the same height as the first nozzle.", + "description": "Enable exterior ooze shield. This will create a shell around the model which is likely to wipe a second nozzle if it's at the same height as the first nozzle.", "type": "bool", "default_value": false, "settable_per_mesh": false, @@ -3397,7 +3397,7 @@ "print_sequence": { "label": "Print Sequence", - "description": "Whether to print all objects one layer at a time or to wait for one object to finish, before moving on to the next. One at a time mode is only possible if all models are separated in such a way that the whole print head can move in between and all models are lower than the distance between the nozzle and the X/Y axes.", + "description": "Whether to print all models one layer at a time or to wait for one model to finish, before moving on to the next. One at a time mode is only possible if all models are separated in such a way that the whole print head can move in between and all models are lower than the distance between the nozzle and the X/Y axes.", "type": "enum", "options": { @@ -3451,7 +3451,7 @@ "magic_spiralize": { "label": "Spiralize Outer Contour", - "description": "Spiralize smooths out the Z move of the outer edge. This will create a steady Z increase over the whole print. This feature turns a solid object into a single walled print with a solid bottom. This feature used to be called Joris in older versions.", + "description": "Spiralize smooths out the Z move of the outer edge. This will create a steady Z increase over the whole print. This feature turns a solid model into a single walled print with a solid bottom. This feature used to be called Joris in older versions.", "type": "bool", "default_value": false, "settable_per_mesh": true @@ -3469,7 +3469,7 @@ "draft_shield_enabled": { "label": "Enable Draft Shield", - "description": "This will create a wall around the object, which traps (hot) air and shields against exterior airflow. Especially useful for materials which warp easily.", + "description": "This will create a wall around the model, which traps (hot) air and shields against exterior airflow. Especially useful for materials which warp easily.", "type": "bool", "default_value": false, "settable_per_mesh": false, @@ -3491,7 +3491,7 @@ "draft_shield_height_limitation": { "label": "Draft Shield Limitation", - "description": "Set the height of the draft shield. Choose to print the draft shield at the full height of the object or at a limited height.", + "description": "Set the height of the draft shield. Choose to print the draft shield at the full height of the model or at a limited height.", "type": "enum", "options": { @@ -3795,7 +3795,7 @@ "wireframe_printspeed_flat": { "label": "WP Horizontal Printing Speed", - "description": "Speed of printing the horizontal contours of the object. Only applies to Wire Printing.", + "description": "Speed of printing the horizontal contours of the model. Only applies to Wire Printing.", "unit": "mm/s", "type": "float", "default_value": 5, diff --git a/resources/qml/Actions.qml b/resources/qml/Actions.qml index ed88433e33..b71adf192b 100644 --- a/resources/qml/Actions.qml +++ b/resources/qml/Actions.qml @@ -183,7 +183,7 @@ Item Action { id: deleteObjectAction; - text: catalog.i18nc("@action:inmenu","Delete Object"); + text: catalog.i18nc("@action:inmenu","Delete Model"); enabled: UM.Controller.toolsEnabled; iconName: "edit-delete"; } @@ -191,13 +191,13 @@ Item Action { id: centerObjectAction; - text: catalog.i18nc("@action:inmenu","Ce&nter Object on Platform"); + text: catalog.i18nc("@action:inmenu","Ce&nter Model on Platform"); } Action { id: groupObjectsAction - text: catalog.i18nc("@action:inmenu menubar:edit","&Group Objects"); + text: catalog.i18nc("@action:inmenu menubar:edit","&Group Models"); enabled: UM.Scene.numObjectsSelected > 1 ? true: false iconName: "object-group" shortcut: "Ctrl+G"; @@ -207,7 +207,7 @@ Item Action { id: unGroupObjectsAction - text: catalog.i18nc("@action:inmenu menubar:edit","Ungroup Objects"); + text: catalog.i18nc("@action:inmenu menubar:edit","Ungroup Models"); enabled: UM.Scene.isGroupSelected iconName: "object-ungroup" shortcut: "Ctrl+Shift+G"; @@ -217,7 +217,7 @@ Item Action { id: mergeObjectsAction - text: catalog.i18nc("@action:inmenu menubar:edit","&Merge Objects"); + text: catalog.i18nc("@action:inmenu menubar:edit","&Merge Models"); enabled: UM.Scene.numObjectsSelected > 1 ? true: false iconName: "merge"; shortcut: "Ctrl+Alt+G"; @@ -227,14 +227,14 @@ Item Action { id: multiplyObjectAction; - text: catalog.i18nc("@action:inmenu","&Duplicate Object"); + text: catalog.i18nc("@action:inmenu","&Duplicate Model"); iconName: "edit-duplicate" } Action { id: selectAllAction; - text: catalog.i18nc("@action:inmenu menubar:edit","&Select All Objects"); + text: catalog.i18nc("@action:inmenu menubar:edit","&Select All Models"); enabled: UM.Controller.toolsEnabled; iconName: "edit-select-all"; shortcut: "Ctrl+A"; @@ -254,7 +254,7 @@ Item Action { id: reloadAllAction; - text: catalog.i18nc("@action:inmenu menubar:file","Re&load All Objects"); + text: catalog.i18nc("@action:inmenu menubar:file","Re&load All Models"); iconName: "document-revert"; onTriggered: Printer.reloadAll(); } @@ -262,14 +262,14 @@ Item Action { id: resetAllTranslationAction; - text: catalog.i18nc("@action:inmenu menubar:edit","Reset All Object Positions"); + text: catalog.i18nc("@action:inmenu menubar:edit","Reset All Model Positions"); onTriggered: Printer.resetAllTranslation(); } Action { id: resetAllAction; - text: catalog.i18nc("@action:inmenu menubar:edit","Reset All Object &Transformations"); + text: catalog.i18nc("@action:inmenu menubar:edit","Reset All Model &Transformations"); onTriggered: Printer.resetAll(); } diff --git a/resources/qml/Preferences/GeneralPage.qml b/resources/qml/Preferences/GeneralPage.qml index 07a188713f..001d2af8d4 100644 --- a/resources/qml/Preferences/GeneralPage.qml +++ b/resources/qml/Preferences/GeneralPage.qml @@ -168,7 +168,7 @@ UM.PreferencesPage UM.TooltipArea { width: childrenRect.width; height: childrenRect.height; - text: catalog.i18nc("@info:tooltip","Moves the camera so the object is in the center of the view when an object is selected") + text: catalog.i18nc("@info:tooltip","Moves the camera so the model is in the center of the view when an model is selected") CheckBox { @@ -182,12 +182,12 @@ UM.PreferencesPage UM.TooltipArea { width: childrenRect.width height: childrenRect.height - text: catalog.i18nc("@info:tooltip", "Should objects on the platform be moved so that they no longer intersect?") + text: catalog.i18nc("@info:tooltip", "Should models on the platform be moved so that they no longer intersect?") CheckBox { id: pushFreeCheckbox - text: catalog.i18nc("@option:check", "Ensure objects are kept apart") + text: catalog.i18nc("@option:check", "Ensure models are kept apart") checked: boolCheck(UM.Preferences.getValue("physics/automatic_push_free")) onCheckedChanged: UM.Preferences.setValue("physics/automatic_push_free", checked) } @@ -247,12 +247,12 @@ UM.PreferencesPage UM.TooltipArea { width: childrenRect.width height: childrenRect.height - text: catalog.i18nc("@info:tooltip","Should objects be scaled to the build volume if they are too large?") + text: catalog.i18nc("@info:tooltip","Should models be scaled to the build volume if they are too large?") CheckBox { id: scaleToFitCheckbox - text: catalog.i18nc("@option:check","Scale large objects") + text: catalog.i18nc("@option:check","Scale large models") checked: boolCheck(UM.Preferences.getValue("mesh/scale_to_fit")) onCheckedChanged: UM.Preferences.setValue("mesh/scale_to_fit", checked) } @@ -261,12 +261,12 @@ UM.PreferencesPage UM.TooltipArea { width: childrenRect.width height: childrenRect.height - text: catalog.i18nc("@info:tooltip","An object may appear extremely small if its unit is for example in meters rather than millimeters. Should these objects be scaled up?") + text: catalog.i18nc("@info:tooltip","An model may appear extremely small if its unit is for example in meters rather than millimeters. Should these models be scaled up?") CheckBox { id: scaleTinyCheckbox - text: catalog.i18nc("@option:check","Scale extremely small objects") + text: catalog.i18nc("@option:check","Scale extremely small models") checked: boolCheck(UM.Preferences.getValue("mesh/scale_tiny_meshes")) onCheckedChanged: UM.Preferences.setValue("mesh/scale_tiny_meshes", checked) } From 885acb49dc38eb9a4aff0bb481fee77390242ae2 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Wed, 10 Aug 2016 17:08:36 +0200 Subject: [PATCH 198/228] Change "Cooling Fans" to "Print Cooling" UXD-81 --- resources/definitions/fdmprinter.def.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 20a5fd1ad5..d1be9cc347 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -2109,8 +2109,8 @@ { "cool_fan_enabled": { - "label": "Enable Cooling Fans", - "description": "Enables the cooling fans while printing. The fans improve print quality on layers with short layer times and bridging / overhangs.", + "label": "Enable Print Cooling", + "description": "Enables the print cooling fans while printing. The fans improve print quality on layers with short layer times and bridging / overhangs.", "type": "bool", "default_value": true, "settable_per_mesh": false, @@ -2119,7 +2119,7 @@ "cool_fan_speed": { "label": "Fan Speed", - "description": "The speed at which the cooling fans spin.", + "description": "The speed at which the print cooling fans spin.", "unit": "%", "type": "float", "minimum_value": "0", From 2963a64fc2752743bf78c9114fc136572de0cf26 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Wed, 10 Aug 2016 17:15:26 +0200 Subject: [PATCH 199/228] Change "Bed Temperature" to "Build Plate Temperature" UXD-80 --- plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml | 2 +- resources/definitions/fdmprinter.def.json | 6 +++--- resources/qml/PrintMonitor.qml | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml b/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml index 0bdbc27527..6832883c79 100644 --- a/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml +++ b/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml @@ -220,7 +220,7 @@ Cura.MachineAction anchors.left: parent.left anchors.top: nozzleTempLabel.bottom wrapMode: Text.WordWrap - text: catalog.i18nc("@label","Bed temperature check:") + text: catalog.i18nc("@label","Build plate temperature check:") visible: checkupMachineAction.usbConnected && manager.hasHeatedBed } diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index d1be9cc347..9aca3759be 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -67,8 +67,8 @@ }, "material_bed_temp_wait": { - "label": "Wait for bed heatup", - "description": "Whether to insert a command to wait until the bed temperature is reached at the start.", + "label": "Wait for build plate heatup", + "description": "Whether to insert a command to wait until the build plate temperature is reached at the start.", "default_value": true, "type": "bool", "settable_per_mesh": false, @@ -1085,7 +1085,7 @@ "settable_per_extruder": true }, "material_bed_temperature": { - "label": "Bed Temperature", + "label": "Build Plate Temperature", "description": "The temperature used for the heated bed. Set at 0 to pre-heat the printer manually.", "unit": "°C", "type": "float", diff --git a/resources/qml/PrintMonitor.qml b/resources/qml/PrintMonitor.qml index 6460634d8d..875ab9ed97 100644 --- a/resources/qml/PrintMonitor.qml +++ b/resources/qml/PrintMonitor.qml @@ -44,7 +44,7 @@ Column delegate: Loader { sourceComponent: monitorItem - property string label: catalog.i18nc("@label", "Bed Temperature") + property string label: catalog.i18nc("@label", "Build plate") property string value: printerConnected ? Math.round(connectedPrinter.bedTemperature) + "°C" : "" } } From 505da1a9a75c1002ac98fbfd3c32acb25ed89588 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Wed, 10 Aug 2016 17:28:00 +0200 Subject: [PATCH 200/228] Change "Hotend temperature" to the name of the extruder UXD-79 --- resources/qml/PrintMonitor.qml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/resources/qml/PrintMonitor.qml b/resources/qml/PrintMonitor.qml index 875ab9ed97..02ec305910 100644 --- a/resources/qml/PrintMonitor.qml +++ b/resources/qml/PrintMonitor.qml @@ -14,6 +14,8 @@ Column id: printMonitor property var connectedPrinter: printerConnected ? Cura.MachineManager.printerOutputDevices[0] : null + Cura.ExtrudersModel { id: extrudersModel } + Label { text: printerConnected ? connectedPrinter.connectionText : catalog.i18nc("@label", "The printer is not connected.") @@ -34,7 +36,7 @@ Column delegate: Loader { sourceComponent: monitorItem - property string label: machineExtruderCount.properties.value > 1 ? catalog.i18nc("@label", "Hotend Temperature %1").arg(index + 1) : catalog.i18nc("@label", "Hotend Temperature") + property string label: machineExtruderCount.properties.value > 1 ? extrudersModel.getItem(index).name : catalog.i18nc("@label", "Hotend") property string value: printerConnected ? Math.round(connectedPrinter.hotendTemperatures[index]) + "°C" : "" } } From 85a58a22cb46a5fe05e00c8b09f6a8c2f97ee962 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Wed, 10 Aug 2016 17:40:23 +0200 Subject: [PATCH 201/228] Change "Bed"/"Platform" to "Build Plate" UXD-76 --- .../BedLevelMachineAction.py | 2 +- .../BedLevelMachineAction.qml | 6 +++--- .../UMOUpgradeSelectionMachineAction.qml | 2 +- resources/definitions/fdmextruder.def.json | 2 +- resources/definitions/fdmprinter.def.json | 20 +++++++++---------- resources/qml/Actions.qml | 2 +- resources/qml/SidebarSimple.qml | 2 +- 7 files changed, 18 insertions(+), 18 deletions(-) diff --git a/plugins/UltimakerMachineActions/BedLevelMachineAction.py b/plugins/UltimakerMachineActions/BedLevelMachineAction.py index 12df7d6843..c80a8ffc01 100644 --- a/plugins/UltimakerMachineActions/BedLevelMachineAction.py +++ b/plugins/UltimakerMachineActions/BedLevelMachineAction.py @@ -10,7 +10,7 @@ catalog = i18nCatalog("cura") class BedLevelMachineAction(MachineAction): def __init__(self): - super().__init__("BedLevel", catalog.i18nc("@action", "Level bed")) + super().__init__("BedLevel", catalog.i18nc("@action", "Level build plate")) self._qml_url = "BedLevelMachineAction.qml" self._bed_level_position = 0 diff --git a/plugins/UltimakerMachineActions/BedLevelMachineAction.qml b/plugins/UltimakerMachineActions/BedLevelMachineAction.qml index c7c4074120..7f35637516 100644 --- a/plugins/UltimakerMachineActions/BedLevelMachineAction.qml +++ b/plugins/UltimakerMachineActions/BedLevelMachineAction.qml @@ -24,7 +24,7 @@ Cura.MachineAction { id: pageTitle width: parent.width - text: catalog.i18nc("@title", "Bed Leveling") + text: catalog.i18nc("@title", "Build Plate Leveling") wrapMode: Text.WordWrap font.pointSize: 18; } @@ -44,7 +44,7 @@ Cura.MachineAction anchors.topMargin: UM.Theme.getSize("default_margin").height width: parent.width wrapMode: Text.WordWrap - text: catalog.i18nc("@label", "For every position; insert a piece of paper under the nozzle and adjust the print bed height. The print bed height is right when the paper is slightly gripped by the tip of the nozzle.") + text: catalog.i18nc("@label", "For every position; insert a piece of paper under the nozzle and adjust the print build plate height. The print build plate height is right when the paper is slightly gripped by the tip of the nozzle.") } Row @@ -59,7 +59,7 @@ Cura.MachineAction Button { id: startBedLevelingButton - text: catalog.i18nc("@action:button","Start Bed Leveling") + text: catalog.i18nc("@action:button","Start Build Plate Leveling") onClicked: { startBedLevelingButton.visible = false; diff --git a/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml b/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml index 234e53c0a6..a1c607658d 100644 --- a/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml +++ b/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml @@ -42,7 +42,7 @@ Cura.MachineAction anchors.top: pageDescription.bottom anchors.topMargin: UM.Theme.getSize("default_margin").height - text: catalog.i18nc("@label", "Heated bed (official kit or self-built)") + text: catalog.i18nc("@label", "Heated Build Plate (official kit or self-built)") checked: manager.hasHeatedBed onClicked: checked ? manager.addHeatedBed() : manager.removeHeatedBed() } diff --git a/resources/definitions/fdmextruder.def.json b/resources/definitions/fdmextruder.def.json index bde24ee684..7c594e3eda 100644 --- a/resources/definitions/fdmextruder.def.json +++ b/resources/definitions/fdmextruder.def.json @@ -161,7 +161,7 @@ }, "platform_adhesion": { - "label": "Platform Adhesion", + "label": "Build Plate Adhesion", "type": "category", "icon": "category_adhesion", "description": "Adhesion", diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 9aca3759be..73201247a0 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -127,8 +127,8 @@ }, "machine_heated_bed": { - "label": "Has heated bed", - "description": "Whether the machine has a heated bed present.", + "label": "Has heated build plate", + "description": "Whether the machine has a heated build plate present.", "default_value": false, "type": "bool", "settable_per_mesh": false, @@ -1086,7 +1086,7 @@ }, "material_bed_temperature": { "label": "Build Plate Temperature", - "description": "The temperature used for the heated bed. Set at 0 to pre-heat the printer manually.", + "description": "The temperature used for the heated build plate. Set at 0 to pre-heat the printer manually.", "unit": "°C", "type": "float", "default_value": 60, @@ -1569,7 +1569,7 @@ "max_feedrate_z_override": { "label": "Maximum Z Speed", - "description": "The maximum speed with which the bed is moved. Setting this to zero causes the print to use the firmware defaults for the maximum z speed.", + "description": "The maximum speed with which the build plate is moved. Setting this to zero causes the print to use the firmware defaults for the maximum z speed.", "unit": "mm/s", "type": "float", "default_value": 0, @@ -2632,7 +2632,7 @@ }, "platform_adhesion": { - "label": "Platform Adhesion", + "label": "Build Plate Adhesion", "type": "category", "icon": "category_adhesion", "description": "Adhesion", @@ -2666,7 +2666,7 @@ }, "adhesion_type": { - "label": "Platform Adhesion Type", + "label": "Build Plate Adhesion Type", "description": "Different options that help to improve both priming your extrusion and adhesion to the build plate. Brim adds a single layer flat area around the base of your model to prevent warping. Raft adds a thick grid with a roof below the model. Skirt is a line printed around the model, but not connected to the model.", "type": "enum", "options": @@ -2855,7 +2855,7 @@ "raft_interface_line_width": { "label": "Raft Middle Line Width", - "description": "Width of the lines in the middle raft layer. Making the second layer extrude more causes the lines to stick to the bed.", + "description": "Width of the lines in the middle raft layer. Making the second layer extrude more causes the lines to stick to the build plate.", "unit": "mm", "type": "float", "default_value": 0.7, @@ -2883,7 +2883,7 @@ "raft_base_thickness": { "label": "Raft Base Thickness", - "description": "Layer thickness of the base raft layer. This should be a thick layer which sticks firmly to the printer bed.", + "description": "Layer thickness of the base raft layer. This should be a thick layer which sticks firmly to the printer build plate.", "unit": "mm", "type": "float", "default_value": 0.3, @@ -2897,7 +2897,7 @@ "raft_base_line_width": { "label": "Raft Base Line Width", - "description": "Width of the lines in the base raft layer. These should be thick lines to assist in bed adhesion.", + "description": "Width of the lines in the base raft layer. These should be thick lines to assist in build plate adhesion.", "unit": "mm", "type": "float", "default_value": 0.8, @@ -3170,7 +3170,7 @@ { "adhesion_extruder_nr": { - "label": "Platform Adhesion Extruder", + "label": "Build Plate Adhesion Extruder", "description": "The extruder train to use for printing the skirt/brim/raft. This is used in multi-extrusion.", "type": "extruder", "default_value": "0", diff --git a/resources/qml/Actions.qml b/resources/qml/Actions.qml index b71adf192b..536ec289fe 100644 --- a/resources/qml/Actions.qml +++ b/resources/qml/Actions.qml @@ -244,7 +244,7 @@ Item Action { id: deleteAllAction; - text: catalog.i18nc("@action:inmenu menubar:edit","&Clear Build Platform"); + text: catalog.i18nc("@action:inmenu menubar:edit","&Clear Build Plate"); enabled: UM.Controller.toolsEnabled; iconName: "edit-delete"; shortcut: "Ctrl+D"; diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index 1cc9dac6f9..3006b60291 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -216,7 +216,7 @@ Item anchors.verticalCenter: brimCheckBox.verticalCenter width: parent.width / 100 * 35 - 3 * UM.Theme.getSize("default_margin").width //: Bed adhesion label - text: catalog.i18nc("@label:listbox", "Bed Adhesion:"); + text: catalog.i18nc("@label:listbox", "Build Plate Adhesion:"); font: UM.Theme.getFont("default"); color: UM.Theme.getColor("text"); } From 6d64d11c2ec3525ed2a9bf330e284e64fb35cb02 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Wed, 10 Aug 2016 17:49:29 +0200 Subject: [PATCH 202/228] Change Simple Mode adhesion/support label to "Helper Parts" UXD-76 --- resources/qml/SidebarSimple.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index 3006b60291..8666fba149 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -216,7 +216,7 @@ Item anchors.verticalCenter: brimCheckBox.verticalCenter width: parent.width / 100 * 35 - 3 * UM.Theme.getSize("default_margin").width //: Bed adhesion label - text: catalog.i18nc("@label:listbox", "Build Plate Adhesion:"); + text: catalog.i18nc("@label", "Helper Parts:"); font: UM.Theme.getFont("default"); color: UM.Theme.getColor("text"); } @@ -264,7 +264,7 @@ Item anchors.verticalCenter: supportCheckBox.verticalCenter width: parent.width / 100 * 35 - 3 * UM.Theme.getSize("default_margin").width //: Support label - text: catalog.i18nc("@label:listbox", "Support:"); + text: ""; font: UM.Theme.getFont("default"); color: UM.Theme.getColor("text"); } From 957f60eb113cfba9c0843fddbbdf2187f196fc33 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Wed, 10 Aug 2016 18:04:30 +0200 Subject: [PATCH 203/228] Add first draft of an UMO with Dual Extrusion Kit definition CURA-1774 --- .../ultimaker_original_dual.def.json | 76 +++++++++++++++++++ .../ultimaker_original_dual_left.def.json | 19 +++++ .../ultimaker_original_dual_right.def.json | 19 +++++ 3 files changed, 114 insertions(+) create mode 100644 resources/definitions/ultimaker_original_dual.def.json create mode 100644 resources/extruders/ultimaker_original_dual_left.def.json create mode 100644 resources/extruders/ultimaker_original_dual_right.def.json diff --git a/resources/definitions/ultimaker_original_dual.def.json b/resources/definitions/ultimaker_original_dual.def.json new file mode 100644 index 0000000000..04c8aadcc9 --- /dev/null +++ b/resources/definitions/ultimaker_original_dual.def.json @@ -0,0 +1,76 @@ +{ + "id": "ultimaker_original_dual", + "version": 2, + "name": "Ultimaker Original Dual Extrusion", + "inherits": "ultimaker", + "metadata": { + "visible": true, + "author": "Ultimaker", + "manufacturer": "Ultimaker", + "category": "Ultimaker", + "weight": 4, + "file_formats": "text/x-gcode", + "icon": "icon_ultimaker.png", + "platform": "ultimaker_platform.stl", + "has_materials": true, + "preferred_material": "*pla*", + "preferred_quality": "*normal*", + "machine_extruder_trains": + { + "0": "ultimaker_original_dual_left", + "1": "ultimaker_original_dual_right" + }, + "first_start_actions": ["UMOUpgradeSelection", "UMOCheckup", "BedLevel"], + "supported_actions": ["UMOUpgradeSelection", "UMOCheckup", "BedLevel", "UpgradeFirmware"] + }, + + "overrides": { + "machine_width": { + "default_value": 205 + }, + "machine_height": { + "default_value": 200 + }, + "machine_depth": { + "default_value": 195 + }, + "machine_center_is_zero": { + "default_value": false + }, + "machine_nozzle_size": { + "default_value": 0.4 + }, + "machine_nozzle_heat_up_speed": { + "default_value": 2 + }, + "machine_nozzle_cool_down_speed": { + "default_value": 2 + }, + "machine_head_with_fans_polygon": + { + "default_value": [ + [ -75, 35 ], + [ -75, -18 ], + [ 18, 35 ], + [ 18, -18 ] + ] + }, + "gantry_height": { + "default_value": 55 + }, + "machine_use_extruder_offset_to_offset_coords": { + "default_value": true + }, + "machine_gcode_flavor": { + "default_value": "RepRap (Marlin/Sprinter)" + }, + "machine_start_gcode": { + "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z15.0 F9000 ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F200 E6 ;extrude 6 mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F9000\n;Put printing message on LCD screen\nM117 Printing..." + }, + "machine_end_gcode": { + "default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning" + }, + "machine_extruder_count": { "default_value": 2 }, + "print_sequence": {"enabled": false} + } +} diff --git a/resources/extruders/ultimaker_original_dual_left.def.json b/resources/extruders/ultimaker_original_dual_left.def.json new file mode 100644 index 0000000000..51268dd8b7 --- /dev/null +++ b/resources/extruders/ultimaker_original_dual_left.def.json @@ -0,0 +1,19 @@ +{ + "id": "ultimaker_original_dual_left", + "version": 2, + "name": "Left Extruder", + "inherits": "fdmextruder", + "metadata": { + "machine": "ultimaker_original_dual", + "position": "0" + }, + + "overrides": { + "extruder_nr": { + "default_value": 0, + "maximum_value": "1" + }, + "machine_nozzle_offset_x": { "default_value": 0.0 }, + "machine_nozzle_offset_y": { "default_value": 0.0 } + } +} diff --git a/resources/extruders/ultimaker_original_dual_right.def.json b/resources/extruders/ultimaker_original_dual_right.def.json new file mode 100644 index 0000000000..9a0cd089fe --- /dev/null +++ b/resources/extruders/ultimaker_original_dual_right.def.json @@ -0,0 +1,19 @@ +{ + "id": "ultimaker_original_dual_right", + "version": 2, + "name": "Right Extruder", + "inherits": "fdmextruder", + "metadata": { + "machine": "ultimaker_original_dual", + "position": "1" + }, + + "overrides": { + "extruder_nr": { + "default_value": 1, + "maximum_value": "1" + }, + "machine_nozzle_offset_x": { "default_value": 0.0 }, + "machine_nozzle_offset_y": { "default_value": 21.6 } + } +} From 4e13c262cf50b9de1885a6306f54b45d18fa354f Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 11 Aug 2016 10:42:37 +0200 Subject: [PATCH 204/228] Re-add max warning value for speed_slowdown_layers It warns if the slowdown layers span more than 1mm. Contributes to issue CURA-1049. --- resources/definitions/fdmprinter.def.json | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index f781edc47e..0eecbafec7 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1586,6 +1586,7 @@ "type": "int", "default_value": 2, "minimum_value": "0", + "maximum_value_warning": "1.0 / layer_height", "settable_per_mesh": false, "settable_per_extruder": false }, From 8c231e29429dd1a2a3dbda29bbab06e607408f18 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 11 Aug 2016 10:46:58 +0200 Subject: [PATCH 205/228] Allow higher speeds for diagonal wireframe moves Since these moves are slightly diagonal in all directions, a higher speed can be achieved. Exactly how high depends on both angles, but for simplification this limit is a bit too broad, allowing speeds that the printer can't handle. The firmware should catch that case if it happens. Contributes to issue CURA-1049. --- resources/definitions/fdmprinter.def.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 0eecbafec7..50834d5568 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3737,7 +3737,7 @@ "type": "float", "default_value": 5, "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", + "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2 + math.max(max_feedrate_z_override, machine_max_feedrate_z) ** 2)", "maximum_value_warning": "50", "enabled": "wireframe_enabled", "settable_per_mesh": false, @@ -3769,7 +3769,7 @@ "type": "float", "default_value": 5, "minimum_value": "0.1", - "maximum_value": "math.max(max_feedrate_z_override, machine_max_feedrate_z)", + "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2 + math.max(max_feedrate_z_override, machine_max_feedrate_z) ** 2)", "maximum_value_warning": "50", "enabled": "wireframe_enabled", "value": "wireframe_printspeed", @@ -3785,7 +3785,7 @@ "type": "float", "default_value": 5, "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", + "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2 + math.max(max_feedrate_z_override, machine_max_feedrate_z) ** 2)", "maximum_value_warning": "50", "enabled": "wireframe_enabled", "value": "wireframe_printspeed", From 71a9f2dd7a64c94259fea3df7943bc716430d442 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Thu, 11 Aug 2016 11:53:55 +0200 Subject: [PATCH 206/228] Clean up conversion to string CURA-2071 --- resources/qml/SidebarSimple.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index 1cc9dac6f9..ac9642cc06 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -328,7 +328,7 @@ Item } else { supportEnabled.setPropertyValue("value", true); // Send the extruder nr as a string. - supportExtruderNr.setPropertyValue("value", parseInt(index - 1) + ""); + supportExtruderNr.setPropertyValue("value", String(index - 1)); } } MouseArea { From 6075536497ab5792cb608458c017f73d4b20cfcc Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Thu, 11 Aug 2016 14:37:58 +0200 Subject: [PATCH 207/228] Fix settingtextfield validator in PerObjectSettings CURA-2115 --- resources/qml/Settings/SettingTextField.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Settings/SettingTextField.qml b/resources/qml/Settings/SettingTextField.qml index 4d05bef2b9..686a47ca47 100644 --- a/resources/qml/Settings/SettingTextField.qml +++ b/resources/qml/Settings/SettingTextField.qml @@ -100,7 +100,7 @@ SettingItem maximumLength: 10; - validator: RegExpValidator { regExp: (type == "int") ? /^-?[0-9]{0,10}/ : /^-?[0-9.,]{0,10}/ } //"type" property from parent loader used to disallow fractional number entry + validator: RegExpValidator { regExp: (definition.type == "int") ? /^-?[0-9]{0,10}/ : /^-?[0-9.,]{0,10}/ } // definition.type property from parent loader used to disallow fractional number entry Binding { From 91dfd971cadef8e675e73de4aa043b2faa2158dd Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 11 Aug 2016 14:57:21 +0200 Subject: [PATCH 208/228] PerObject settings don't automatically get a user changed state CURA-2113 --- .../PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py b/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py index e7295c3f97..af3e84cfd8 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py +++ b/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py @@ -70,6 +70,7 @@ class PerObjectSettingVisibilityHandler(UM.Settings.Models.SettingVisibilityHand else: stack = UM.Application.getInstance().getGlobalContainerStack() new_instance.setProperty("value", stack.getProperty(item, "value")) + new_instance.resetState() # Ensute that the state is not seen as a user state. settings.addInstance(new_instance) visibility_changed = True else: From db028b7e5f3f78ed493d53c08f128e7a235576e5 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Thu, 11 Aug 2016 15:10:30 +0200 Subject: [PATCH 209/228] Update "Select Settings dialog" when the user removes a setting CURA-2102 --- plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml index 4f2d8e4272..0930ae568e 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml +++ b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml @@ -311,6 +311,15 @@ Item { property string labelFilter: "" + onVisibilityChanged: + { + // force updating the model to sync it with addedSettingsModel + if(visible) + { + listview.model.forceUpdate() + } + } + TextField { id: filter From 1848bb5cc40961ba1b7f2d178f019bfb176affc5 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Thu, 11 Aug 2016 16:36:24 +0200 Subject: [PATCH 210/228] Fix typo in Changes on the Printer dialog --- cura/Settings/MachineManager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 6a180593c5..42784e4e38 100644 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -165,7 +165,7 @@ class MachineManager(QObject): # Save the material that needs to be changed. Multiple changes will be handled by the callback. self._auto_materials_changed[str(index)] = containers[0].getId() Application.getInstance().messageBox(catalog.i18nc("@window:title", "Changes on the Printer"), catalog.i18nc("@label", "Do you want to change the materials and hotends to match the material in your printer?"), - catalog.i18nc("@label", "The materials and / or hotends on your printer were changed. For best results always slice for the materials . hotends that are inserted in your printer."), + catalog.i18nc("@label", "The materials and / or hotends on your printer were changed. For best results always slice for the materials and hotends that are inserted in your printer."), buttons = QMessageBox.Yes + QMessageBox.No, icon = QMessageBox.Question, callback = self._materialHotendChangedCallback) else: From c95cc7a21b409f2ab3e7fad726139c751be1f04c Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Thu, 11 Aug 2016 16:44:19 +0200 Subject: [PATCH 211/228] Fix error in SolidView when there is a model but no printer --- plugins/SolidView/SolidView.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/plugins/SolidView/SolidView.py b/plugins/SolidView/SolidView.py index 7896892808..3e3501a83f 100644 --- a/plugins/SolidView/SolidView.py +++ b/plugins/SolidView/SolidView.py @@ -62,8 +62,11 @@ class SolidView(View): uniforms = {} if not multi_extrusion: - material = global_container_stack.findContainer({ "type": "material" }) - material_color = material.getMetaDataEntry("color_code", default = self._extruders_model.defaultColors[0]) if material else self._extruders_model.defaultColors[0] + if global_container_stack: + material = global_container_stack.findContainer({ "type": "material" }) + material_color = material.getMetaDataEntry("color_code", default = self._extruders_model.defaultColors[0]) if material else self._extruders_model.defaultColors[0] + else: + material_color = self._extruders_model.defaultColors[0] else: # Get color to render this mesh in from ExtrudersModel extruder_index = 0 From b619b68675600c90ecaa2bf67891fa4f5b8e47f3 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Thu, 11 Aug 2016 16:51:48 +0200 Subject: [PATCH 212/228] Remove repeated header between versions in changelog CURA-2056 --- plugins/ChangeLogPlugin/ChangeLog.py | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/ChangeLogPlugin/ChangeLog.py b/plugins/ChangeLogPlugin/ChangeLog.py index d004104f91..b30cba4a8e 100644 --- a/plugins/ChangeLogPlugin/ChangeLog.py +++ b/plugins/ChangeLogPlugin/ChangeLog.py @@ -68,6 +68,7 @@ class ChangeLog(Extension, QObject,): line = line.replace("[","") line = line.replace("]","") open_version = Version(line) + open_header = "" self._change_logs[open_version] = collections.OrderedDict() elif line.startswith("*"): open_header = line.replace("*","") From 2a55bba8400874d6fdf2b8067fc8da8c44bc6907 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Thu, 11 Aug 2016 16:58:02 +0200 Subject: [PATCH 213/228] Code-style fixes CURA-2079 --- plugins/USBPrinting/USBPrinterOutputDevice.py | 12 +++++----- plugins/USBPrinting/avr_isp/stk500v2.py | 24 +++++++++---------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/plugins/USBPrinting/USBPrinterOutputDevice.py b/plugins/USBPrinting/USBPrinterOutputDevice.py index 421168b87f..af90961ff9 100644 --- a/plugins/USBPrinting/USBPrinterOutputDevice.py +++ b/plugins/USBPrinting/USBPrinterOutputDevice.py @@ -182,10 +182,10 @@ class USBPrinterOutputDevice(PrinterOutputDevice): if len(hex_file) == 0: Logger.log("e", "Unable to read provided hex file. Could not update firmware") - return + return programmer = stk500v2.Stk500v2() - programmer.progressCallback = self.setProgress + programmer.progress_callback = self.setProgress try: programmer.connect(self._serial_port) @@ -197,7 +197,7 @@ class USBPrinterOutputDevice(PrinterOutputDevice): if not programmer.isConnected(): Logger.log("e", "Unable to connect with serial. Could not update firmware") - return + return self._updating_firmware = True @@ -299,7 +299,7 @@ class USBPrinterOutputDevice(PrinterOutputDevice): self.setConnectionState(ConnectionState.connected) self._listen_thread.start() # Start listening Logger.log("i", "Established printer connection on port %s" % self._serial_port) - return + return self._sendCommand("M105") # Send M105 as long as we are listening, otherwise we end up in an undefined state @@ -327,7 +327,7 @@ class USBPrinterOutputDevice(PrinterOutputDevice): self._connect_thread = threading.Thread(target = self._connect) self._connect_thread.daemon = True - + self.setConnectionState(ConnectionState.closed) if self._serial is not None: try: @@ -556,7 +556,7 @@ class USBPrinterOutputDevice(PrinterOutputDevice): ret = self._serial.readline() except Exception as e: Logger.log("e", "Unexpected error while reading serial port. %s" % e) - self._setErrorState("Printer has been disconnected") + self._setErrorState("Printer has been disconnected") self.close() return None return ret diff --git a/plugins/USBPrinting/avr_isp/stk500v2.py b/plugins/USBPrinting/avr_isp/stk500v2.py index 3960912e1d..afdb50553e 100644 --- a/plugins/USBPrinting/avr_isp/stk500v2.py +++ b/plugins/USBPrinting/avr_isp/stk500v2.py @@ -20,8 +20,8 @@ class Stk500v2(ispBase.IspBase): self.serial = None self.seq = 1 self.last_addr = -1 - self.progressCallback = None - + self.progress_callback = None + def connect(self, port = "COM22", speed = 115200): if self.serial is not None: self.close() @@ -69,7 +69,7 @@ class Stk500v2(ispBase.IspBase): self.serial = None return ret return None - + def isConnected(self): return self.serial is not None @@ -79,7 +79,7 @@ class Stk500v2(ispBase.IspBase): def sendISP(self, data): recv = self.sendMessage([0x1D, 4, 4, 0, data[0], data[1], data[2], data[3]]) return recv[2:6] - + def writeFlash(self, flash_data): #Set load addr to 0, in case we have more then 64k flash we need to enable the address extension page_size = self.chip["pageSize"] * 2 @@ -89,15 +89,15 @@ class Stk500v2(ispBase.IspBase): self.sendMessage([0x06, 0x80, 0x00, 0x00, 0x00]) else: self.sendMessage([0x06, 0x00, 0x00, 0x00, 0x00]) - load_count = (len(flash_data) + page_size - 1) / page_size + load_count = (len(flash_data) + page_size - 1) / page_size for i in range(0, int(load_count)): recv = self.sendMessage([0x13, page_size >> 8, page_size & 0xFF, 0xc1, 0x0a, 0x40, 0x4c, 0x20, 0x00, 0x00] + flash_data[(i * page_size):(i * page_size + page_size)]) - if self.progressCallback is not None: + if self.progress_callback is not None: if self._has_checksum: - self.progressCallback(i + 1, load_count) + self.progress_callback(i + 1, load_count) else: - self.progressCallback(i + 1, load_count * 2) - + self.progress_callback(i + 1, load_count * 2) + def verifyFlash(self, flash_data): if self._has_checksum: self.sendMessage([0x06, 0x00, (len(flash_data) >> 17) & 0xFF, (len(flash_data) >> 9) & 0xFF, (len(flash_data) >> 1) & 0xFF]) @@ -120,8 +120,8 @@ class Stk500v2(ispBase.IspBase): load_count = (len(flash_data) + 0xFF) / 0x100 for i in range(0, int(load_count)): recv = self.sendMessage([0x14, 0x01, 0x00, 0x20])[2:0x102] - if self.progressCallback is not None: - self.progressCallback(load_count + i + 1, load_count * 2) + if self.progress_callback is not None: + self.progress_callback(load_count + i + 1, load_count * 2) for j in range(0, 0x100): if i * 0x100 + j < len(flash_data) and flash_data[i * 0x100 + j] != recv[j]: raise ispBase.IspError("Verify error at: 0x%x" % (i * 0x100 + j)) @@ -141,7 +141,7 @@ class Stk500v2(ispBase.IspBase): raise ispBase.IspError("Serial send timeout") self.seq = (self.seq + 1) & 0xFF return self.recvMessage() - + def recvMessage(self): state = "Start" checksum = 0 From 5c63e5e13f7659b6fcec8d0304446fc79e426db2 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Thu, 11 Aug 2016 17:18:43 +0200 Subject: [PATCH 214/228] Fix a typo in a comment CURA-2113 --- .../PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py b/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py index af3e84cfd8..b4086291ca 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py +++ b/plugins/PerObjectSettingsTool/PerObjectSettingVisibilityHandler.py @@ -70,7 +70,7 @@ class PerObjectSettingVisibilityHandler(UM.Settings.Models.SettingVisibilityHand else: stack = UM.Application.getInstance().getGlobalContainerStack() new_instance.setProperty("value", stack.getProperty(item, "value")) - new_instance.resetState() # Ensute that the state is not seen as a user state. + new_instance.resetState() # Ensure that the state is not seen as a user state. settings.addInstance(new_instance) visibility_changed = True else: From 1ab0637d117e6dff9c3719a493f04339d93bff35 Mon Sep 17 00:00:00 2001 From: Thomas Karl Pietrowski Date: Thu, 11 Aug 2016 20:34:01 +0200 Subject: [PATCH 215/228] Adding "approximately equal" to the amount of material needed I think it makes sense to add this character here, because the amount needed is only a approximated value, and without the end-user might expect a more accurate value. --- resources/qml/JobSpecs.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/JobSpecs.qml b/resources/qml/JobSpecs.qml index 9064c4835f..2221604ddc 100644 --- a/resources/qml/JobSpecs.qml +++ b/resources/qml/JobSpecs.qml @@ -209,7 +209,7 @@ Rectangle { lengths = ["0.00"]; weights = ["0"]; } - return catalog.i18nc("@label", "%1 m / %2 g").arg(lengths.join(" + ")).arg(weights.join(" + ")); + return catalog.i18nc("@label", "≈ %1 m / %2 g").arg(lengths.join(" + ")).arg(weights.join(" + ")); } } } From bfe97a1eca3905daef728e91a4ee89dae84a90af Mon Sep 17 00:00:00 2001 From: Thomas Karl Pietrowski Date: Thu, 11 Aug 2016 21:10:16 +0200 Subject: [PATCH 216/228] Using ~ only for the amount of material in grams --- resources/qml/JobSpecs.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/JobSpecs.qml b/resources/qml/JobSpecs.qml index 2221604ddc..78f184f13c 100644 --- a/resources/qml/JobSpecs.qml +++ b/resources/qml/JobSpecs.qml @@ -209,7 +209,7 @@ Rectangle { lengths = ["0.00"]; weights = ["0"]; } - return catalog.i18nc("@label", "≈ %1 m / %2 g").arg(lengths.join(" + ")).arg(weights.join(" + ")); + return catalog.i18nc("@label", "%1 m / ~ %2 g").arg(lengths.join(" + ")).arg(weights.join(" + ")); } } } From 85d97453f18173cf589a93e0989edf6c450fabe1 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Sun, 31 Jul 2016 21:44:57 +0200 Subject: [PATCH 217/228] JSON feat: brim only on outer boundary polys (CURA-1413) --- resources/definitions/fdmprinter.def.json | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 50834d5568..52891a3747 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -2748,6 +2748,16 @@ } } }, + "brim_outside_only": + { + "label": "Brim Only on Outside", + "description": "Only print the brim on the outside of the model. This reduces the amount of brim you need to remove afterwards, while it doesn't reduce the bed adhesion that much.", + "type": "bool", + "default_value": true, + "enabled": "adhesion_type == \"brim\"", + "settable_per_mesh": false, + "settable_per_extruder": true + }, "raft_margin": { "label": "Raft Extra Margin", From 4472e0206e8d5380e3f4a85dc2c257e469c2a8bd Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 12 Aug 2016 16:56:07 +0200 Subject: [PATCH 218/228] Fix calls to max function I think this was my mistake. --- resources/definitions/fdmprinter.def.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 52891a3747..380faa397e 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3747,7 +3747,7 @@ "type": "float", "default_value": 5, "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2 + math.max(max_feedrate_z_override, machine_max_feedrate_z) ** 2)", + "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2 + max(max_feedrate_z_override, machine_max_feedrate_z) ** 2)", "maximum_value_warning": "50", "enabled": "wireframe_enabled", "settable_per_mesh": false, @@ -3779,7 +3779,7 @@ "type": "float", "default_value": 5, "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2 + math.max(max_feedrate_z_override, machine_max_feedrate_z) ** 2)", + "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2 + max(max_feedrate_z_override, machine_max_feedrate_z) ** 2)", "maximum_value_warning": "50", "enabled": "wireframe_enabled", "value": "wireframe_printspeed", @@ -3795,7 +3795,7 @@ "type": "float", "default_value": 5, "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2 + math.max(max_feedrate_z_override, machine_max_feedrate_z) ** 2)", + "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2 + max(max_feedrate_z_override, machine_max_feedrate_z) ** 2)", "maximum_value_warning": "50", "enabled": "wireframe_enabled", "value": "wireframe_printspeed", From f915092f83d2542899043eec2799e6dfb6119314 Mon Sep 17 00:00:00 2001 From: Thomas Karl Pietrowski Date: Sun, 14 Aug 2016 17:37:36 +0200 Subject: [PATCH 219/228] CURA-2079: Finish firmware upload process on errors Looking at the old code shows that the download process was never completely finished. The according function was only return'ed, but no signal was emitted to the window to give the user the possibility to close it again. Optionally, it would be useful here to pass messages to the window dialog to inform the user about problems. However, this code is untested because: 1. I don't know where put my printers *.hex-file, when coding here with my editor, 2. Have no idea how to reproduce the IO errors reported at JIRA, so fingers crossed here. Contributes to CURA-2079 --- plugins/USBPrinting/USBPrinterOutputDevice.py | 20 +++++++++++++------ .../USBPrinterOutputDeviceManager.py | 6 +++--- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/plugins/USBPrinting/USBPrinterOutputDevice.py b/plugins/USBPrinting/USBPrinterOutputDevice.py index 421168b87f..d7775ea62e 100644 --- a/plugins/USBPrinting/USBPrinterOutputDevice.py +++ b/plugins/USBPrinting/USBPrinterOutputDevice.py @@ -182,7 +182,8 @@ class USBPrinterOutputDevice(PrinterOutputDevice): if len(hex_file) == 0: Logger.log("e", "Unable to read provided hex file. Could not update firmware") - return + self._updateFirmware_completed() + return programmer = stk500v2.Stk500v2() programmer.progressCallback = self.setProgress @@ -197,6 +198,7 @@ class USBPrinterOutputDevice(PrinterOutputDevice): if not programmer.isConnected(): Logger.log("e", "Unable to connect with serial. Could not update firmware") + self._updateFirmware_completed() return self._updating_firmware = True @@ -206,15 +208,21 @@ class USBPrinterOutputDevice(PrinterOutputDevice): self._updating_firmware = False except Exception as e: Logger.log("e", "Exception while trying to update firmware %s" %e) - self._updating_firmware = False + self._updateFirmware_completed() return programmer.close() + self._updateFirmware_completed() + return + + ## Private function which makes sure that firmware update process has completed/ended + def _updateFirmware_completed(self): self.setProgress(100, 100) self._firmware_update_finished = True - + self.resetFirmwareUpdate(update_has_finished=True) self.firmwareUpdateComplete.emit() - self.firmwareUpdateChange.emit() + + return ## Upload new firmware to machine # \param filename full path of firmware file to be uploaded @@ -227,8 +235,8 @@ class USBPrinterOutputDevice(PrinterOutputDevice): def firmwareUpdateFinished(self): return self._firmware_update_finished - def resetFirmwareUpdateFinished(self): - self._firmware_update_finished = False + def resetFirmwareUpdate(self, update_has_finished = False): + self._firmware_update_finished = update_has_finished self.firmwareUpdateChange.emit() @pyqtSlot() diff --git a/plugins/USBPrinting/USBPrinterOutputDeviceManager.py b/plugins/USBPrinting/USBPrinterOutputDeviceManager.py index 1a53828d06..34d872c67a 100644 --- a/plugins/USBPrinting/USBPrinterOutputDeviceManager.py +++ b/plugins/USBPrinting/USBPrinterOutputDeviceManager.py @@ -103,7 +103,7 @@ class USBPrinterOutputDeviceManager(QObject, OutputDevicePlugin, Extension): return for printer_connection in self._usb_output_devices: - self._usb_output_devices[printer_connection].resetFirmwareUpdateFinished() + self._usb_output_devices[printer_connection].resetFirmwareUpdate() self.spawnFirmwareInterface("") for printer_connection in self._usb_output_devices: try: @@ -111,7 +111,7 @@ class USBPrinterOutputDeviceManager(QObject, OutputDevicePlugin, Extension): except FileNotFoundError: # Should only happen in dev environments where the resources/firmware folder is absent. self._usb_output_devices[printer_connection].setProgress(100, 100) - Logger.log("w", "No firmware found for printer %s", printer_connection) + Logger.log("w", "No firmware found for printer %s called '%s'" %(printer_connection, self._getDefaultFirmwareName())) Message(i18n_catalog.i18nc("@info", "Could not find firmware required for the printer at %s.") % printer_connection).show() self._firmware_view.close() @@ -126,7 +126,7 @@ class USBPrinterOutputDeviceManager(QObject, OutputDevicePlugin, Extension): self._usb_output_devices[serial_port].updateFirmware(Resources.getPath(CuraApplication.ResourceTypes.Firmware, self._getDefaultFirmwareName())) except FileNotFoundError: self._firmware_view.close() - Logger.log("e", "Could not find firmware required for this machine") + Logger.log("e", "Could not find firmware required for this machine called '%s'" %(self._getDefaultFirmwareName())) return False return True return False From 633e37713c745d6bd518911e7d9f1571ed188fa3 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 15 Aug 2016 11:32:09 +0200 Subject: [PATCH 220/228] Update Printer manager details pane after removing a printer CURA-2085 --- resources/qml/Preferences/MachinesPage.qml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/resources/qml/Preferences/MachinesPage.qml b/resources/qml/Preferences/MachinesPage.qml index ca9184ae6b..279390cde3 100644 --- a/resources/qml/Preferences/MachinesPage.qml +++ b/resources/qml/Preferences/MachinesPage.qml @@ -142,7 +142,14 @@ UM.ManagementPage { id: confirmDialog; object: base.currentItem && base.currentItem.name ? base.currentItem.name : ""; - onYes: Cura.MachineManager.removeMachine(base.currentItem.id); + onYes: + { + Cura.MachineManager.removeMachine(base.currentItem.id); + //Reselect current item to update details panel + var index = objectList.currentIndex + objectList.currentIndex = -1 + objectList.currentIndex = index + } } UM.RenameDialog From f0622cdda6d956df918926a920017f87b263b7d2 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 15 Aug 2016 13:42:06 +0200 Subject: [PATCH 221/228] Add start & end gcode to UM2 depending on gcode flavor CURA-580 --- resources/definitions/ultimaker2.def.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/resources/definitions/ultimaker2.def.json b/resources/definitions/ultimaker2.def.json index 9985dea764..81723ae10d 100644 --- a/resources/definitions/ultimaker2.def.json +++ b/resources/definitions/ultimaker2.def.json @@ -18,10 +18,12 @@ }, "overrides": { "machine_start_gcode" : { - "default_value": "" + "default_value": "", + "value": "\"\" if machine_gcode_flavor == \"UltiGCode\" else \"G21 ;metric values\\nG90 ;absolute positioning\\nM82 ;set extruder to absolute mode\\nM107 ;start with the fan off\\nG1 X10 Y0 F4000;move X/Y to min endstops\\nG28 Z0 ;move Z to bottom endstops\\nG1 Z15.0 F9000 ;move the platform to 15mm\\nG92 E0 ;zero the extruded length\\nG1 F200 E10 ;extrude 10 mm of feed stock\\nG92 E0 ;zero the extruded length again\\nG1 F9000\\n;Put printing message on LCD screen\\nM117 Printing...\"" }, "machine_end_gcode" : { - "default_value": "" + "default_value": "", + "value": "\"\" if machine_gcode_flavor == \"UltiGCode\" else \"M104 S0 ;extruder heater off\\nM140 S0 ;heated bed heater off (if you have it)\\nG91 ;relative positioning\\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\\nM84 ;steppers off\\nG90 ;absolute positioning\"" }, "machine_width": { "default_value": 223 From dbaa6190be89b7f8fa5f58abb91cb9fee423ea1e Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 15 Aug 2016 13:43:16 +0200 Subject: [PATCH 222/228] Add firmware upload for umo_dual CURA-1774 --- plugins/USBPrinting/USBPrinterOutputDeviceManager.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/plugins/USBPrinting/USBPrinterOutputDeviceManager.py b/plugins/USBPrinting/USBPrinterOutputDeviceManager.py index 34d872c67a..d9a036c682 100644 --- a/plugins/USBPrinting/USBPrinterOutputDeviceManager.py +++ b/plugins/USBPrinting/USBPrinterOutputDeviceManager.py @@ -147,12 +147,12 @@ class USBPrinterOutputDeviceManager(QObject, OutputDevicePlugin, Extension): Logger.log("e", "There is no global container stack. Can not update firmware.") self._firmware_view.close() return "" - + # The bottom of the containerstack is the machine definition machine_id = global_container_stack.getBottom().id - + machine_has_heated_bed = global_container_stack.getProperty("machine_heated_bed", "value") - + if platform.system() == "Linux": baudrate = 115200 else: @@ -166,13 +166,15 @@ class USBPrinterOutputDeviceManager(QObject, OutputDevicePlugin, Extension): "bq_hephestos_2" : "MarlinHephestos2.hex", "ultimaker_original" : "MarlinUltimaker-{baudrate}.hex", "ultimaker_original_plus" : "MarlinUltimaker-UMOP-{baudrate}.hex", + "ultimaker_original_dual" : "MarlinUltimaker-{baudrate}-dual.hex", "ultimaker2" : "MarlinUltimaker2.hex", "ultimaker2_go" : "MarlinUltimaker2go.hex", - "ultimaker2_plus" : "MarlinUltimaker2plus.hex", + "ultimaker2_plus" : "MarlinUltimaker2plus.hex", "ultimaker2_extended" : "MarlinUltimaker2extended.hex", "ultimaker2_extended_plus" : "MarlinUltimaker2extended-plus.hex", } machine_with_heated_bed = {"ultimaker_original" : "MarlinUltimaker-HBK-{baudrate}.hex", + "ultimaker_original_dual" : "MarlinUltimaker-HBK-{baudrate}-dual.hex", } ##TODO: Add check for multiple extruders hex_file = None From b7b0faf44a441482c3ba9a17ed2707740b233ef8 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 15 Aug 2016 15:17:59 +0200 Subject: [PATCH 223/228] Fix sorting of settings on Profile manager page CURA-2123 --- cura/Settings/ContainerSettingsModel.py | 2 +- resources/qml/Preferences/ProfilesPage.qml | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/cura/Settings/ContainerSettingsModel.py b/cura/Settings/ContainerSettingsModel.py index a0bdb7f41f..f0fb91d471 100644 --- a/cura/Settings/ContainerSettingsModel.py +++ b/cura/Settings/ContainerSettingsModel.py @@ -41,7 +41,6 @@ class ContainerSettingsModel(ListModel): keys = keys + list(container.getAllKeys()) keys = list(set(keys)) # remove duplicate keys - keys.sort() for key in keys: definition = None @@ -72,6 +71,7 @@ class ContainerSettingsModel(ListModel): "unit": definition.unit, "category": category.label }) + self.sort(lambda k: (k["category"], k["key"])) ## Set the ids of the containers which have the settings this model should list. # Also makes sure the model updates when the containers have property changes diff --git a/resources/qml/Preferences/ProfilesPage.qml b/resources/qml/Preferences/ProfilesPage.qml index c090a8468d..0ef55a1e37 100644 --- a/resources/qml/Preferences/ProfilesPage.qml +++ b/resources/qml/Preferences/ProfilesPage.qml @@ -197,7 +197,9 @@ UM.ManagementPage anchors.bottom: parent.bottom ListView { - model: Cura.ContainerSettingsModel{ containers: + model: Cura.ContainerSettingsModel + { + containers: { if (!currentItem) { return [] From 48cfea01d03157336b7cc5a007490b625a20cf00 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 15 Aug 2016 15:34:54 +0200 Subject: [PATCH 224/228] Set sensible defaults for which "Dual Extrusion" settings are visible CURA-916 --- cura/CuraApplication.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index f79fa3a8a6..25a6d590e3 100644 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -237,6 +237,13 @@ class CuraApplication(QtApplication): raft_airgap layer_0_z_overlap raft_surface_layers + dual + adhesion_extruder_nr + support_extruder_nr + prime_tower_enable + prime_tower_size + prime_tower_position_x + prime_tower_position_y meshfix blackmagic print_sequence From f5d6c6024e34bf7bae25be148ace5c453045028d Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 15 Aug 2016 15:48:25 +0200 Subject: [PATCH 225/228] Update buildvolume when extruder prime location is changed CURA-1944 --- cura/BuildVolume.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cura/BuildVolume.py b/cura/BuildVolume.py index 1b20cc63c0..a74a405044 100644 --- a/cura/BuildVolume.py +++ b/cura/BuildVolume.py @@ -265,7 +265,7 @@ class BuildVolume(SceneNode): self._height = self._active_container_stack.getProperty("machine_height", "value") rebuild_me = True - if setting_key in self._skirt_settings: + if setting_key in self._skirt_settings or setting_key in self._prime_settings: self._updateDisallowedAreas() rebuild_me = True @@ -377,3 +377,4 @@ class BuildVolume(SceneNode): _skirt_settings = ["adhesion_type", "skirt_gap", "skirt_line_count", "skirt_brim_line_width", "brim_width", "brim_line_count", "raft_margin", "draft_shield_enabled", "draft_shield_dist", "xy_offset"] _raft_settings = ["adhesion_type", "raft_base_thickness", "raft_interface_thickness", "raft_surface_layers", "raft_surface_thickness", "raft_airgap"] + _prime_settings = ["extruder_prime_pos_x", "extruder_prime_pos_y", "extruder_prime_pos_z"] From f2a44bec8d5d1a341c31d06f2fad404d12123b36 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 15 Aug 2016 15:55:45 +0200 Subject: [PATCH 226/228] Add missing material_bed_temp_prepend --- resources/definitions/fdmprinter.def.json | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 17203ea797..f2d51c5020 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -95,6 +95,16 @@ "settable_per_extruder": false, "settable_per_meshgroup": false }, + "material_bed_temp_prepend": + { + "label": "Include build plate temperature", + "description": "Whether to include build plate temperature commands at the start of the gcode. When the start_gcode already contains build plate temperature commands Cura frontend will automatically disable this setting.", + "default_value": true, + "type": "bool", + "settable_per_mesh": false, + "settable_per_extruder": false, + "settable_per_meshgroup": false + }, "machine_width": { "label": "Machine width", From fcfcfa37fbf742f7001bf8309c7aed2e8eca4ddb Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 15 Aug 2016 17:09:29 +0200 Subject: [PATCH 227/228] Tweak monitor items for long jobnames CURA-2125 --- resources/qml/PrintMonitor.qml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/resources/qml/PrintMonitor.qml b/resources/qml/PrintMonitor.qml index 02ec305910..c766b2d947 100644 --- a/resources/qml/PrintMonitor.qml +++ b/resources/qml/PrintMonitor.qml @@ -82,21 +82,24 @@ Column Row { height: UM.Theme.getSize("setting_control").height + width: base.width - 2 * UM.Theme.getSize("default_margin").width Label { + width: parent.width * 0.4 + anchors.verticalCenter: parent.verticalCenter text: label color: printerConnected && printerAcceptsCommands ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text") font: UM.Theme.getFont("default") - width: base.width * 0.4 elide: Text.ElideRight - anchors.verticalCenter: parent.verticalCenter } Label { + width: parent.width * 0.6 + anchors.verticalCenter: parent.verticalCenter text: value color: printerConnected && printerAcceptsCommands ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text") font: UM.Theme.getFont("default") - anchors.verticalCenter: parent.verticalCenter + elide: Text.ElideRight } } } From c60ddbecfbbdc6059d6b965f520939649c725fa5 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 15 Aug 2016 18:07:00 +0200 Subject: [PATCH 228/228] Make sure a machine is always selected on the Printers page CURA-2085 --- resources/qml/Preferences/MachinesPage.qml | 32 ++++++++++++++++------ 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/resources/qml/Preferences/MachinesPage.qml b/resources/qml/Preferences/MachinesPage.qml index 279390cde3..3135ab1df6 100644 --- a/resources/qml/Preferences/MachinesPage.qml +++ b/resources/qml/Preferences/MachinesPage.qml @@ -18,7 +18,10 @@ UM.ManagementPage } activeId: Cura.MachineManager.activeMachineId - activeIndex: { + activeIndex: activeMachineIndex() + + function activeMachineIndex() + { for(var i = 0; i < model.rowCount(); i++) { if (model.getItem(i).id == Cura.MachineManager.activeMachineId) { return i; @@ -145,10 +148,12 @@ UM.ManagementPage onYes: { Cura.MachineManager.removeMachine(base.currentItem.id); - //Reselect current item to update details panel - var index = objectList.currentIndex - objectList.currentIndex = -1 - objectList.currentIndex = index + if(!base.currentItem) + { + objectList.currentIndex = activeMachineIndex() + } + //Force updating currentItem and the details panel + objectList.onCurrentIndexChanged() } } @@ -159,11 +164,20 @@ UM.ManagementPage onAccepted: { Cura.MachineManager.renameMachine(base.currentItem.id, newName.trim()); - //Reselect current item to update details panel - var index = objectList.currentIndex - objectList.currentIndex = -1 - objectList.currentIndex = index + //Force updating currentItem and the details panel + objectList.onCurrentIndexChanged() } } + + Connections + { + target: Cura.MachineManager + onGlobalContainerChanged: + { + objectList.currentIndex = activeMachineIndex() + objectList.onCurrentIndexChanged() + } + } + } }