From 19e93362141631e41e7fc42558207854ddcedc22 Mon Sep 17 00:00:00 2001 From: "A.Sasin" Date: Tue, 10 Oct 2017 09:43:43 +0200 Subject: [PATCH 1/9] Revert "Adjust column width for Materials "Print Settings" page" This reverts commit 7b6faf0030d9455f772c364ce4c9f16ae0bf1e21. --- resources/qml/Preferences/MaterialView.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/Preferences/MaterialView.qml b/resources/qml/Preferences/MaterialView.qml index b13ce1aadf..c1750b2342 100644 --- a/resources/qml/Preferences/MaterialView.qml +++ b/resources/qml/Preferences/MaterialView.qml @@ -16,8 +16,8 @@ TabView property bool editingEnabled: false; property string currency: UM.Preferences.getValue("cura/currency") ? UM.Preferences.getValue("cura/currency") : "€" - property real firstColumnWidth: (width * 0.50) | 0 - property real secondColumnWidth: (width * 0.40) | 0 + property real firstColumnWidth: (width * 0.45) | 0 + property real secondColumnWidth: (width * 0.45) | 0 property string containerId: "" property var materialPreferenceValues: UM.Preferences.getValue("cura/material_settings") ? JSON.parse(UM.Preferences.getValue("cura/material_settings")) : {} From ca28748bc32d04495f93aec00b9cce70a93e6eb2 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 12 Oct 2017 10:26:38 +0200 Subject: [PATCH 2/9] Add missing translations from broken string freeze These texts were added later after the strings were frozen. Bad! But this is the German translation for it, retrieved from a secondary speaker here at the office. Contributes to issue CURA-4341. --- resources/i18n/de_DE/cura.po | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/resources/i18n/de_DE/cura.po b/resources/i18n/de_DE/cura.po index 1323070dbe..a18361802b 100644 --- a/resources/i18n/de_DE/cura.po +++ b/resources/i18n/de_DE/cura.po @@ -36,6 +36,31 @@ msgctxt "@label:status" msgid "Can't start print" msgstr "Druck startet nicht" +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is not set up to host a group of Ultimaker 3 printers." +msgstr "Dieser Drucker ist nicht eingerichtet um eine Gruppe von Ultimaker 3 Druckern anzusteuern." + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label" +msgid "Finishes at: " +msgstr "Endet um: " + +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is the host for a group of %1 Ultimaker 3 printers." +msgstr "Dieser Drucker steuert eine Gruppe von %1 Ultimaker 3 Druckern an." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Printer '{printer_name}' has finished printing '{job_name}'." +msgstr "Drucker '{printer_name}' hat '{job_name}' vollständig gedrückt." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Print finished" +msgstr "Druck vollendet" + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" From af3c34b6fdd8f0e593f755139964dbddfea0502a Mon Sep 17 00:00:00 2001 From: Simon Edwards Date: Thu, 12 Oct 2017 10:46:25 +0200 Subject: [PATCH 3/9] Don't let the user select unreachable printers in the Cura Connect monitor tab CL-584 --- plugins/UM3NetworkPrinting/PrinterInfoBlock.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/PrinterInfoBlock.qml b/plugins/UM3NetworkPrinting/PrinterInfoBlock.qml index 005d719266..ab944d0dcc 100644 --- a/plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +++ b/plugins/UM3NetworkPrinting/PrinterInfoBlock.qml @@ -73,7 +73,7 @@ Rectangle hoverEnabled: true; // Only clickable if no printer is selected - enabled: OutputDevice.selectedPrinterName == "" + enabled: OutputDevice.selectedPrinterName == "" && printer.status !== "unreachable" } Row From a3b8642a4e30f6192647b94d724473a4e5e1880b Mon Sep 17 00:00:00 2001 From: "A.Sasin" Date: Thu, 12 Oct 2017 11:45:25 +0200 Subject: [PATCH 4/9] Added text.elideRight on SidebarSimple --- resources/qml/SidebarSimple.qml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index 59972bbf99..920044e277 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -661,11 +661,14 @@ Item anchors.topMargin: Math.floor(UM.Theme.getSize("sidebar_margin").height * 1.5) anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width + anchors.right: infillCellLeft.right + anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width anchors.verticalCenter: enableSupportCheckBox.verticalCenter text: catalog.i18nc("@label", "Generate Support"); font: UM.Theme.getFont("default"); color: UM.Theme.getColor("text"); + elide: Text.ElideRight } CheckBox @@ -711,10 +714,13 @@ Item visible: supportExtruderCombobox.visible anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width + anchors.right: infillCellLeft.right + anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width anchors.verticalCenter: supportExtruderCombobox.verticalCenter text: catalog.i18nc("@label", "Support Extruder"); font: UM.Theme.getFont("default"); color: UM.Theme.getColor("text"); + elide: Text.ElideRight } ComboBox From 8d20f62dc9fc334e313fd39a18c88f838a030220 Mon Sep 17 00:00:00 2001 From: "A.Sasin" Date: Thu, 12 Oct 2017 11:57:02 +0200 Subject: [PATCH 5/9] Changed back to previous commit --- resources/qml/Preferences/MaterialView.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/Preferences/MaterialView.qml b/resources/qml/Preferences/MaterialView.qml index 597dcf7600..143f29c86e 100644 --- a/resources/qml/Preferences/MaterialView.qml +++ b/resources/qml/Preferences/MaterialView.qml @@ -16,8 +16,8 @@ TabView property bool editingEnabled: false; property string currency: UM.Preferences.getValue("cura/currency") ? UM.Preferences.getValue("cura/currency") : "€" - property real firstColumnWidth: (width * 0.45) | 0 - property real secondColumnWidth: (width * 0.45) | 0 + property real firstColumnWidth: (width * 0.50) | 0 + property real secondColumnWidth: (width * 0.40) | 0 property string containerId: "" property var materialPreferenceValues: UM.Preferences.getValue("cura/material_settings") ? JSON.parse(UM.Preferences.getValue("cura/material_settings")) : {} From 427afdbe23c45604ecc28c2fe287e18733d7b4be Mon Sep 17 00:00:00 2001 From: Simon Edwards Date: Thu, 12 Oct 2017 12:41:21 +0200 Subject: [PATCH 6/9] Correctly set up the cluster output device instances with the cluster size This fixes the Cura Connect messages shown in the network printer selection dialog. CL-555 --- .../NetworkPrinterOutputDevicePlugin.py | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevicePlugin.py b/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevicePlugin.py index ab9fbc64a8..24d65b47a8 100644 --- a/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevicePlugin.py +++ b/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevicePlugin.py @@ -153,7 +153,18 @@ class NetworkPrinterOutputDevicePlugin(QObject, OutputDevicePlugin): if status_code == 200: # We know it's a cluster printer Logger.log("d", "Cluster printer detected: [%s]", reply.url()) + + try: + cluster_printers_list = json.loads(bytes(reply.readAll()).decode("utf-8")) + except json.JSONDecodeError: + Logger.log("e", "Printer returned invalid JSON.") + return + except UnicodeDecodeError: + Logger.log("e", "Printer returned incorrect UTF-8.") + return + self._network_requests_buffer[address]["cluster"] = True + self._network_requests_buffer[address]["cluster_size"] = len(cluster_printers_list) else: Logger.log("d", "This url is not from a cluster printer: [%s]", reply.url()) self._network_requests_buffer[address]["cluster"] = False @@ -165,7 +176,6 @@ class NetworkPrinterOutputDevicePlugin(QObject, OutputDevicePlugin): instance_name = "manual:%s" % address system_info = self._network_requests_buffer[address]["system"] - is_cluster = self._network_requests_buffer[address]["cluster"] machine = "unknown" if "variant" in system_info: variant = system_info["variant"] @@ -181,10 +191,14 @@ class NetworkPrinterOutputDevicePlugin(QObject, OutputDevicePlugin): b"manual": b"true", b"machine": machine.encode("utf-8") } + + if self._network_requests_buffer[address]["cluster"]: + properties[b"cluster_size"] = self._network_requests_buffer[address]["cluster_size"] + if instance_name in self._printers: # Only replace the printer if it is still in the list of (manual) printers self.removePrinter(instance_name) - self.addPrinter(instance_name, address, properties, force_cluster=is_cluster) + self.addPrinter(instance_name, address, properties) del self._network_requests_buffer[address] @@ -215,9 +229,9 @@ class NetworkPrinterOutputDevicePlugin(QObject, OutputDevicePlugin): self._printers[key].connectionStateChanged.disconnect(self._onPrinterConnectionStateChanged) ## Because the model needs to be created in the same thread as the QMLEngine, we use a signal. - def addPrinter(self, name, address, properties, force_cluster=False): + def addPrinter(self, name, address, properties): cluster_size = int(properties.get(b"cluster_size", -1)) - if force_cluster or cluster_size >= 0: + if cluster_size >= 0: printer = NetworkClusterPrinterOutputDevice.NetworkClusterPrinterOutputDevice( name, address, properties, self._api_prefix) else: From 624aca324e8aab29d4eea1404b6899e2ea4b594c Mon Sep 17 00:00:00 2001 From: "A.Sasin" Date: Thu, 12 Oct 2017 13:42:21 +0200 Subject: [PATCH 7/9] Updated changelog, except Cross infill CURA-4391 --- plugins/ChangeLogPlugin/ChangeLog.txt | 76 ++++++++++++++++++++++++++- 1 file changed, 75 insertions(+), 1 deletion(-) diff --git a/plugins/ChangeLogPlugin/ChangeLog.txt b/plugins/ChangeLogPlugin/ChangeLog.txt index 57e6e05d9c..6ee523d35a 100755 --- a/plugins/ChangeLogPlugin/ChangeLog.txt +++ b/plugins/ChangeLogPlugin/ChangeLog.txt @@ -1,5 +1,79 @@ [3.0.0] -*Will be updated soon! +*Faster start-up +Start-up speed has been cut in half compared to the previous version. + +*New color scheme +Color scheme has been updated to reflect Ultimaker Cura rebrand. + +*Updated UX design +The Ultimaker Cura logo has moved from the bottom to the top of the interface. Print status icons have been updated and repositioned. + +*Redesigned splash screen +A new splash screen on Ultimaker Cura startup has been added. + +*Top navigation bar improvements +The width of tab functionality changes accordingly to the word space (multilingual). + +*Print quality slider +A slider can now be used to control the quality profile in recommended mode. + +*Infill slider +Model infill can now be changed using a slider in recommended mode. + +*Changed layer view +Layer view icon, panel and slider have moved to top-right of interface. + +*Rasterized build plate +The build plate now shows graduations of 10 mm and 1 mm for easy model positioning. + +*Changed row of extruder buttons +Extruder tabs have become buttons and icons have been updated. + +*Add an "Export to Cura" button in SOLIDWORKS +SOLIDWORKS plugin can now be installed using an automatic installer. + +*Siemens NX macro +When a user updates models in Siemens NX and clicks the button, the updated models replace the models opened in Ultimaker Cura. + +*Skin removal width +Remove thin strips of skin from a model to prevent print head zigzagging, in turn preventing vibrations. + +*Skin expand distance +Cutting away skins on steep overhangs makes prints less sturdy. By expanding skins with the thickness of walls, features will be better supported. In addition, features such as towers on top of infill will be stronger. + +*Extra skin wall count +Printing extra skin directly on top of infill can lead to gaps, curling and pillowing. This is reduced by printing a wall around the skin first, and also improves the printing speed. + +*Minimum extrusion for skin +Will prevent filling small gaps that are probably filled already, resulting in less strings, better top details and faster prints. + +*PVA retractions +PVA (switch) retraction length is increased, minimum travel distance for retraction is decreased and max count is slightly increased, this reduces stringing by a lot at the cost of slightly increased print time. + +*Z seam options +Gives the user control over where to place the seam - hide it in convex corners or in easy to remove locations such as concave corners. Don’t let corner angles influence the seam position. + +*Quarter cubic infill +Similar to tetrahedral (octet) infill, but half of the lines are shifted half of the period up. This pattern sacrifices some rigidity of octet infill for greater toughness. + +*Layer start negative position +Layer start X/Y values can be less than 0 when the machine centre is zero. + +*PostProcessing stretch script +This new script performs "post stretch" algorithm to fix the problem of insufficient inner and outer diameters. Thanks to electrocbd for contributing. + +*Ironing speed settings +Ironing speed settings have been moved to experimental category. + +*Doodle3D plugin +Update Doodle3D plugin to connect with printers. Thanks to mith for contributing. + +*Bug fixes +- Customized profiles are not sent when connecting to a printer +- Sync z-hop with layer changes, thanks to smartavionics for contributing +- Memory leaks on MacOS +- Printer name not loaded when project file is opened +- Doodle3D Wifi box was selected by default on non-UM3 printers [2.7.0] *Top surface skin From eef4d61402bdcedc283a0967ceea4ece82b342b3 Mon Sep 17 00:00:00 2001 From: Simon Edwards Date: Thu, 12 Oct 2017 13:44:03 +0200 Subject: [PATCH 8/9] Correct the status message when a printer needs a config change but is unreachable CL-508 --- plugins/UM3NetworkPrinting/PrinterInfoBlock.qml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/plugins/UM3NetworkPrinting/PrinterInfoBlock.qml b/plugins/UM3NetworkPrinting/PrinterInfoBlock.qml index ab944d0dcc..1ced5e8233 100644 --- a/plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +++ b/plugins/UM3NetworkPrinting/PrinterInfoBlock.qml @@ -257,6 +257,11 @@ Rectangle return catalog.i18nc("@label:status", "Disabled"); } + if (printer.status === "unreachable") + { + return printerStatusText(printer); + } + if (printJob != null) { switch (printJob.status) @@ -327,6 +332,12 @@ Rectangle { return "blocked-icon.svg"; } + + if (printer.status === "unreachable") + { + return ""; + } + if (printJob != null) { if(printJob.status === "queued") @@ -378,6 +389,11 @@ Rectangle return catalog.i18nc("@label", "Not accepting print jobs"); } + if (printer.status === "unreachable") + { + return ""; + } + if(printJob != null) { switch (printJob.status) From 8ed7918b6030b112e74ebdf4ffebed8c1299d6d4 Mon Sep 17 00:00:00 2001 From: Simon Edwards Date: Thu, 12 Oct 2017 14:02:19 +0200 Subject: [PATCH 9/9] Update the icon used to show that a printer is blocked. This applies to the printer status icons shown in the monitor tab when connected via Cura Connect. --- plugins/UM3NetworkPrinting/blocked-icon.svg | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/plugins/UM3NetworkPrinting/blocked-icon.svg b/plugins/UM3NetworkPrinting/blocked-icon.svg index 03bbe24e16..eba3efdab9 100644 --- a/plugins/UM3NetworkPrinting/blocked-icon.svg +++ b/plugins/UM3NetworkPrinting/blocked-icon.svg @@ -1,3 +1,6 @@ - - + + + + +