From 6dfd04928f764f6a4bd23501b32f579d3bc8d271 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 24 Oct 2017 14:51:35 +0200 Subject: [PATCH 1/8] CURA-4485 Activate configuration option disabled in printers within a cluster. Just allow when there is a cluster with just one printer. --- .../NetworkClusterPrinterOutputDevice.py | 4 +++- plugins/UM3NetworkPrinting/UM3InfoComponents.qml | 10 +++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py b/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py index cfa793996b..e482cbd4e3 100644 --- a/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +++ b/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py @@ -220,7 +220,9 @@ class NetworkClusterPrinterOutputDevice(NetworkPrinterOutputDevice.NetworkPrinte self.setPrinters(json_data) def materialHotendChangedMessage(self, callback): - pass # Do nothing. + # When there is just one printer, the activate configuration option is enabled + if (self._cluster_size == 1): + super().materialHotendChangedMessage(callback = callback) def _startCameraStream(self): ## Request new image diff --git a/plugins/UM3NetworkPrinting/UM3InfoComponents.qml b/plugins/UM3NetworkPrinting/UM3InfoComponents.qml index 2c3902dcff..87b8b219b7 100644 --- a/plugins/UM3NetworkPrinting/UM3InfoComponents.qml +++ b/plugins/UM3NetworkPrinting/UM3InfoComponents.qml @@ -115,8 +115,16 @@ Item { tooltip: catalog.i18nc("@info:tooltip", "Load the configuration of the printer into Cura") text: catalog.i18nc("@action:button", "Activate Configuration") - visible: printerConnected + visible: printerConnected && !isClusterPrinter() onClicked: manager.loadConfigurationFromPrinter() + + function isClusterPrinter() { + var clusterSize = Cura.MachineManager.printerOutputDevices[0].clusterSize + // This is a non cluster printer or the cluster it is just one printer + if (typeof clusterSize == "undefined" || clusterSize == 1) + return false + return true + } } } From a66d27e30e558395028fb032c86391b18a9410dc Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Tue, 24 Oct 2017 15:01:57 +0200 Subject: [PATCH 2/8] CURA-4176 reintroduced Wall Extruder. Added limit_to_extruder trick in wall_line_width as suggested in issue to evade inheritance problems. --- resources/definitions/fdmprinter.def.json | 49 +++++++++++++++-------- resources/definitions/ultimaker3.def.json | 2 +- 2 files changed, 34 insertions(+), 17 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index baae3f7579..0ce59b942d 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -682,6 +682,7 @@ "value": "line_width", "default_value": 0.4, "type": "float", + "limit_to_extruder": "wall_0_extruder_nr if wall_x_extruder_nr == wall_0_extruder_nr else -1", "settable_per_mesh": true, "children": { @@ -880,29 +881,45 @@ "type": "category", "children": { - "wall_0_extruder_nr": + "wall_extruder_nr": { - "label": "Outer Wall Extruder", - "description": "The extruder train used for printing the outer wall. This is used in multi-extrusion.", + "label": "Wall Extruder", + "description": "The extruder train used for printing the walls. This is used in multi-extrusion.", "type": "optional_extruder", "default_value": "-1", "settable_per_mesh": false, "settable_per_extruder": false, "settable_per_meshgroup": true, "settable_globally": true, - "enabled": "machine_extruder_count > 1" - }, - "wall_x_extruder_nr": - { - "label": "Inner Walls Extruder", - "description": "The extruder train used for printing the inner walls. This is used in multi-extrusion.", - "type": "optional_extruder", - "default_value": "-1", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": true, - "settable_globally": true, - "enabled": "machine_extruder_count > 1" + "enabled": "machine_extruder_count > 1", + "children": { + "wall_0_extruder_nr": + { + "label": "Outer Wall Extruder", + "description": "The extruder train used for printing the outer wall. This is used in multi-extrusion.", + "type": "optional_extruder", + "value": "wall_extruder_nr", + "default_value": "-1", + "settable_per_mesh": false, + "settable_per_extruder": false, + "settable_per_meshgroup": true, + "settable_globally": true, + "enabled": "machine_extruder_count > 1" + }, + "wall_x_extruder_nr": + { + "label": "Inner Wall Extruder", + "description": "The extruder train used for printing the inner walls. This is used in multi-extrusion.", + "type": "optional_extruder", + "value": "wall_extruder_nr", + "default_value": "-1", + "settable_per_mesh": false, + "settable_per_extruder": false, + "settable_per_meshgroup": true, + "settable_globally": true, + "enabled": "machine_extruder_count > 1" + } + } }, "wall_thickness": { diff --git a/resources/definitions/ultimaker3.def.json b/resources/definitions/ultimaker3.def.json index 21f80e18fd..05e39e365c 100644 --- a/resources/definitions/ultimaker3.def.json +++ b/resources/definitions/ultimaker3.def.json @@ -150,7 +150,7 @@ "top_bottom_thickness": { "value": "1" }, "travel_avoid_distance": { "value": "3" }, "wall_0_inset": { "value": "0" }, - "wall_line_width_x": { "value": "round(line_width * 0.3 / 0.35, 2)" }, + "wall_line_width_x": { "value": "round(wall_line_width * 0.3 / 0.35, 2)" }, "wall_thickness": { "value": "1" } } } From 0eedfa5c1816b79d41a326a069af19f8b875fb9d Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 24 Oct 2017 15:45:20 +0200 Subject: [PATCH 3/8] CURA-4485 Disabling automatic material and variant when connecting to a printer within a cluster of more than 1 printer. --- resources/qml/Menus/MaterialMenu.qml | 12 ++++++++++-- resources/qml/Menus/NozzleMenu.qml | 12 ++++++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/resources/qml/Menus/MaterialMenu.qml b/resources/qml/Menus/MaterialMenu.qml index 1688bc228a..5422457140 100644 --- a/resources/qml/Menus/MaterialMenu.qml +++ b/resources/qml/Menus/MaterialMenu.qml @@ -14,6 +14,14 @@ Menu property int extruderIndex: 0 property bool printerConnected: Cura.MachineManager.printerOutputDevices.length != 0 + property bool isClusterPrinter: + { + var clusterSize = Cura.MachineManager.printerOutputDevices[0].clusterSize + // This is a non cluster printer or the cluster it is just one printer + if (typeof clusterSize == "undefined" || clusterSize == 1) + return false + return true + } UM.SettingPropertyProvider { @@ -29,14 +37,14 @@ Menu id: automaticMaterial text: { - if(printerConnected && Cura.MachineManager.printerOutputDevices[0].materialNames.length > extruderIndex) + if(printerConnected && Cura.MachineManager.printerOutputDevices[0].materialNames.length > extruderIndex && !isClusterPrinter) { var materialName = Cura.MachineManager.printerOutputDevices[0].materialNames[extruderIndex]; return catalog.i18nc("@title:menuitem %1 is the automatically selected material", "Automatic: %1").arg(materialName); } return ""; } - visible: printerConnected && Cura.MachineManager.printerOutputDevices[0].materialNames.length > extruderIndex + visible: printerConnected && Cura.MachineManager.printerOutputDevices[0].materialNames.length > extruderIndex && !isClusterPrinter onTriggered: { var materialId = Cura.MachineManager.printerOutputDevices[0].materialIds[extruderIndex]; diff --git a/resources/qml/Menus/NozzleMenu.qml b/resources/qml/Menus/NozzleMenu.qml index b51b3b1907..79bc105b58 100644 --- a/resources/qml/Menus/NozzleMenu.qml +++ b/resources/qml/Menus/NozzleMenu.qml @@ -14,20 +14,28 @@ Menu property int extruderIndex: 0 property bool printerConnected: Cura.MachineManager.printerOutputDevices.length != 0 + property bool isClusterPrinter: + { + var clusterSize = Cura.MachineManager.printerOutputDevices[0].clusterSize + // This is a non cluster printer or the cluster it is just one printer + if (typeof clusterSize == "undefined" || clusterSize == 1) + return false + return true + } MenuItem { id: automaticNozzle text: { - if(printerConnected && Cura.MachineManager.printerOutputDevices[0].hotendIds.length > extruderIndex) + if(printerConnected && Cura.MachineManager.printerOutputDevices[0].hotendIds.length > extruderIndex && !isClusterPrinter) { var nozzleName = Cura.MachineManager.printerOutputDevices[0].hotendIds[extruderIndex]; return catalog.i18nc("@title:menuitem %1 is the nozzle currently loaded in the printer", "Automatic: %1").arg(nozzleName); } return ""; } - visible: printerConnected && Cura.MachineManager.printerOutputDevices[0].hotendIds.length > extruderIndex + visible: printerConnected && Cura.MachineManager.printerOutputDevices[0].hotendIds.length > extruderIndex && !isClusterPrinter onTriggered: { var activeExtruderIndex = ExtruderManager.activeExtruderIndex; From 7404df66ac30e61aa291cc3ac5e74165a656ac0b Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 24 Oct 2017 16:46:45 +0200 Subject: [PATCH 4/8] CURA-4481 Disable "Remove empty layers" when support is enabled. When support is enabled then it doesn't matter if the user choose whether to remove or not the empty layers, because it's done after generating supports. In order to avoid confusion to the user, the setting is disabled. --- 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 0ce59b942d..22bbe93b3f 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3980,6 +3980,7 @@ "description": "Remove empty layers beneath the first printed layer if they are present.", "type": "bool", "default_value": true, + "enabled": "not support_enable", "settable_per_mesh": false, "settable_per_extruder": false } From 9ad0fd2b83ad2cd0637c935204cc8c99b4b3f088 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 25 Oct 2017 11:28:41 +0200 Subject: [PATCH 5/8] Remove dash if plug-in author is empty Contributes to issue CURA-4477. --- plugins/PluginBrowser/PluginBrowser.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/PluginBrowser/PluginBrowser.qml b/plugins/PluginBrowser/PluginBrowser.qml index 71e88c652b..13000d23ad 100644 --- a/plugins/PluginBrowser/PluginBrowser.qml +++ b/plugins/PluginBrowser/PluginBrowser.qml @@ -114,7 +114,7 @@ UM.Dialog anchors.rightMargin: UM.Theme.getSize("default_margin").width Label { - text: "" + model.name + " - " + model.author + text: "" + model.name + "" + ((model.author !== "") ? (" - " + model.author) : "") width: contentWidth height: contentHeight + UM.Theme.getSize("default_margin").height verticalAlignment: Text.AlignVCenter From 73e809b956ce79629cc70d47c94a4e8d3b14ee63 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 25 Oct 2017 13:20:05 +0200 Subject: [PATCH 6/8] Remove specialised start g-code from Creality CR-10 By request from Michael. This makes it the same as the start g-code for the Custom FDM Printer, which apparently works better. --- resources/definitions/creality_cr10.def.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/resources/definitions/creality_cr10.def.json b/resources/definitions/creality_cr10.def.json index ced6f32b7b..bacae6e2e5 100644 --- a/resources/definitions/creality_cr10.def.json +++ b/resources/definitions/creality_cr10.def.json @@ -59,9 +59,6 @@ "skirt_gap": { "default_value": 5 }, - "machine_start_gcode": { - "default_value": "G21 ;metric values\nG90 ;absolute Positioning\nG28 ; home all axes\nG1 Z5 F3000 ; lift\nG1 X20 Y2 F1500 ; avoid binder clips\nG1 Z0.2 F3000 ; get ready to prime\nG92 E0 ; reset extrusion distance\nG1 X120 E10 F600 ; prime nozzle\nG1 X150 F5000 ; quick wipe" - }, "machine_end_gcode": { "default_value": "G91\nG1 F1800 E-3\nG1 F3000 Z10\nG90\nG28 X0 Y0 ; home x and y axis\nM106 S0 ; turn off cooling fan\nM104 S0 ; turn off extruder\nM140 S0 ; turn off bed\nM84 ; disable motors" }, From 87ba4056ee86682d78c31e4edacb7cdfd4bc710a Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 25 Oct 2017 13:55:30 +0200 Subject: [PATCH 7/8] CURA-4485 Minor changes --- plugins/UM3NetworkPrinting/UM3InfoComponents.qml | 2 +- resources/qml/Menus/MaterialMenu.qml | 2 +- resources/qml/Menus/NozzleMenu.qml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/UM3NetworkPrinting/UM3InfoComponents.qml b/plugins/UM3NetworkPrinting/UM3InfoComponents.qml index 87b8b219b7..8d0d8a0754 100644 --- a/plugins/UM3NetworkPrinting/UM3InfoComponents.qml +++ b/plugins/UM3NetworkPrinting/UM3InfoComponents.qml @@ -121,7 +121,7 @@ Item function isClusterPrinter() { var clusterSize = Cura.MachineManager.printerOutputDevices[0].clusterSize // This is a non cluster printer or the cluster it is just one printer - if (typeof clusterSize == "undefined" || clusterSize == 1) + if (clusterSize == undefined || clusterSize == 1) return false return true } diff --git a/resources/qml/Menus/MaterialMenu.qml b/resources/qml/Menus/MaterialMenu.qml index 5422457140..359f4f41d0 100644 --- a/resources/qml/Menus/MaterialMenu.qml +++ b/resources/qml/Menus/MaterialMenu.qml @@ -18,7 +18,7 @@ Menu { var clusterSize = Cura.MachineManager.printerOutputDevices[0].clusterSize // This is a non cluster printer or the cluster it is just one printer - if (typeof clusterSize == "undefined" || clusterSize == 1) + if (clusterSize == undefined || clusterSize == 1) return false return true } diff --git a/resources/qml/Menus/NozzleMenu.qml b/resources/qml/Menus/NozzleMenu.qml index 79bc105b58..1c75a346f3 100644 --- a/resources/qml/Menus/NozzleMenu.qml +++ b/resources/qml/Menus/NozzleMenu.qml @@ -18,7 +18,7 @@ Menu { var clusterSize = Cura.MachineManager.printerOutputDevices[0].clusterSize // This is a non cluster printer or the cluster it is just one printer - if (typeof clusterSize == "undefined" || clusterSize == 1) + if (clusterSize == undefined || clusterSize == 1) return false return true } From e4fec1f63d0406221422bc191d6043db1d16fb68 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Wed, 25 Oct 2017 16:34:41 +0200 Subject: [PATCH 8/8] Move SaveButton downwards CURA-4490 Move SaveButton downwards so it doesn't overlay with the estimated print time in some language. --- resources/qml/SaveButton.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/SaveButton.qml b/resources/qml/SaveButton.qml index 7423fc2368..acc97ebf11 100644 --- a/resources/qml/SaveButton.qml +++ b/resources/qml/SaveButton.qml @@ -91,8 +91,8 @@ Item { id: saveRow width: base.width height: saveToButton.height - anchors.top: progressBar.bottom - anchors.topMargin: UM.Theme.getSize("sidebar_margin").height + anchors.bottom: parent.bottom + anchors.bottomMargin: UM.Theme.getSize("sidebar_margin").height anchors.left: parent.left Row {