From d8d328c491bc7f62700a467fbf04c2fd9861a82c Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Fri, 19 Aug 2016 17:22:55 +0200 Subject: [PATCH 1/5] Code style --- cura/Settings/ExtruderManager.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/cura/Settings/ExtruderManager.py b/cura/Settings/ExtruderManager.py index 10556096b0..07216a158b 100644 --- a/cura/Settings/ExtruderManager.py +++ b/cura/Settings/ExtruderManager.py @@ -131,9 +131,9 @@ class ExtruderManager(QObject): # Make sure the next stack is a stack that contains only the machine definition if not extruder_train.getNextStack(): - shallowStack = UM.Settings.ContainerStack(machine_id + "_shallow") - shallowStack.addContainer(machine_definition) - extruder_train.setNextStack(shallowStack) + shallow_stack = UM.Settings.ContainerStack(machine_id + "_shallow") + shallow_stack.addContainer(machine_definition) + extruder_train.setNextStack(shallow_stack) changed = True if changed: self.extrudersChanged.emit(machine_id) @@ -248,9 +248,9 @@ class ExtruderManager(QObject): # Make sure the next stack is a stack that contains only the machine definition if not container_stack.getNextStack(): - shallowStack = UM.Settings.ContainerStack(machine_id + "_shallow") - shallowStack.addContainer(machine_definition) - container_stack.setNextStack(shallowStack) + shallow_stack = UM.Settings.ContainerStack(machine_id + "_shallow") + shallow_stack.addContainer(machine_definition) + container_stack.setNextStack(shallow_stack) container_registry.addContainer(container_stack) From 9f34e06cb684b04381a81b214b37adcc8463320a Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Sat, 20 Aug 2016 14:31:18 +0200 Subject: [PATCH 2/5] Add prime tower and extruder switch position CURA-1774 --- .../definitions/ultimaker_original_dual.def.json | 14 ++++++++++++-- .../ultimaker_original_dual_left.def.json | 11 +++++++++-- .../ultimaker_original_dual_right.def.json | 11 +++++++++-- 3 files changed, 30 insertions(+), 6 deletions(-) diff --git a/resources/definitions/ultimaker_original_dual.def.json b/resources/definitions/ultimaker_original_dual.def.json index 04c8aadcc9..f1c80680c3 100644 --- a/resources/definitions/ultimaker_original_dual.def.json +++ b/resources/definitions/ultimaker_original_dual.def.json @@ -70,7 +70,17 @@ "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} + "machine_extruder_count": { + "default_value": 2 + }, + "print_sequence": { + "enabled": false + }, + "prime_tower_position_x": { + "default_value": 185 + }, + "prime_tower_position_y": { + "default_value": 175 + } } } diff --git a/resources/extruders/ultimaker_original_dual_left.def.json b/resources/extruders/ultimaker_original_dual_left.def.json index 51268dd8b7..1bbb6f9035 100644 --- a/resources/extruders/ultimaker_original_dual_left.def.json +++ b/resources/extruders/ultimaker_original_dual_left.def.json @@ -1,6 +1,6 @@ { "id": "ultimaker_original_dual_left", - "version": 2, + "version": 2, "name": "Left Extruder", "inherits": "fdmextruder", "metadata": { @@ -14,6 +14,13 @@ "maximum_value": "1" }, "machine_nozzle_offset_x": { "default_value": 0.0 }, - "machine_nozzle_offset_y": { "default_value": 0.0 } + "machine_nozzle_offset_y": { "default_value": 0.0 }, + + "machine_extruder_start_pos_abs": { "default_value": true }, + "machine_extruder_start_pos_x": { "default_value": 185 }, + "machine_extruder_start_pos_y": { "default_value": 155 }, + "machine_extruder_end_pos_abs": { "default_value": true }, + "machine_extruder_end_pos_x": { "default_value": 185 }, + "machine_extruder_end_pos_y": { "default_value": 155 } } } diff --git a/resources/extruders/ultimaker_original_dual_right.def.json b/resources/extruders/ultimaker_original_dual_right.def.json index 9a0cd089fe..97d2217326 100644 --- a/resources/extruders/ultimaker_original_dual_right.def.json +++ b/resources/extruders/ultimaker_original_dual_right.def.json @@ -1,6 +1,6 @@ { "id": "ultimaker_original_dual_right", - "version": 2, + "version": 2, "name": "Right Extruder", "inherits": "fdmextruder", "metadata": { @@ -14,6 +14,13 @@ "maximum_value": "1" }, "machine_nozzle_offset_x": { "default_value": 0.0 }, - "machine_nozzle_offset_y": { "default_value": 21.6 } + "machine_nozzle_offset_y": { "default_value": 21.6 }, + + "machine_extruder_start_pos_abs": { "default_value": true }, + "machine_extruder_start_pos_x": { "default_value": 213 }, + "machine_extruder_start_pos_y": { "default_value": 189 }, + "machine_extruder_end_pos_abs": { "default_value": true }, + "machine_extruder_end_pos_x": { "default_value": 213 }, + "machine_extruder_end_pos_y": { "default_value": 189 } } } From a1c3b8f3a86777a88d4d702e4de6970add9b5607 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Sat, 20 Aug 2016 17:20:51 +0200 Subject: [PATCH 3/5] Update start- & and gcode and change extruder names CURA-1774 --- .../definitions/ultimaker_original_dual.def.json | 8 ++++---- ...def.json => ultimaker_original_dual_1st.def.json} | 12 ++++++------ ...def.json => ultimaker_original_dual_2nd.def.json} | 12 ++++++------ 3 files changed, 16 insertions(+), 16 deletions(-) rename resources/extruders/{ultimaker_original_dual_left.def.json => ultimaker_original_dual_1st.def.json} (58%) rename resources/extruders/{ultimaker_original_dual_right.def.json => ultimaker_original_dual_2nd.def.json} (58%) diff --git a/resources/definitions/ultimaker_original_dual.def.json b/resources/definitions/ultimaker_original_dual.def.json index f1c80680c3..e379d978a9 100644 --- a/resources/definitions/ultimaker_original_dual.def.json +++ b/resources/definitions/ultimaker_original_dual.def.json @@ -17,8 +17,8 @@ "preferred_quality": "*normal*", "machine_extruder_trains": { - "0": "ultimaker_original_dual_left", - "1": "ultimaker_original_dual_right" + "0": "ultimaker_original_dual_1st", + "1": "ultimaker_original_dual_2nd" }, "first_start_actions": ["UMOUpgradeSelection", "UMOCheckup", "BedLevel"], "supported_actions": ["UMOUpgradeSelection", "UMOCheckup", "BedLevel", "UpgradeFirmware"] @@ -65,10 +65,10 @@ "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..." + "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\nT1 ;Switch to the 2nd extruder\nG92 E0 ;zero the extruded length\nG1 F200 E6 ;extrude 6 mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F200 E-{switch_extruder_retraction_amount}\nT0 ;Switch to the 1st extruder\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" + "default_value": "M104 T0 S0 ;1st extruder heater off\nM104 T1 S0 ;2nd 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 diff --git a/resources/extruders/ultimaker_original_dual_left.def.json b/resources/extruders/ultimaker_original_dual_1st.def.json similarity index 58% rename from resources/extruders/ultimaker_original_dual_left.def.json rename to resources/extruders/ultimaker_original_dual_1st.def.json index 1bbb6f9035..058dbf3028 100644 --- a/resources/extruders/ultimaker_original_dual_left.def.json +++ b/resources/extruders/ultimaker_original_dual_1st.def.json @@ -1,7 +1,7 @@ { - "id": "ultimaker_original_dual_left", + "id": "ultimaker_original_dual_1st", "version": 2, - "name": "Left Extruder", + "name": "1st Extruder", "inherits": "fdmextruder", "metadata": { "machine": "ultimaker_original_dual", @@ -17,10 +17,10 @@ "machine_nozzle_offset_y": { "default_value": 0.0 }, "machine_extruder_start_pos_abs": { "default_value": true }, - "machine_extruder_start_pos_x": { "default_value": 185 }, - "machine_extruder_start_pos_y": { "default_value": 155 }, + "machine_extruder_start_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_start_pos_y": { "value": "prime_tower_position_y" }, "machine_extruder_end_pos_abs": { "default_value": true }, - "machine_extruder_end_pos_x": { "default_value": 185 }, - "machine_extruder_end_pos_y": { "default_value": 155 } + "machine_extruder_end_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_end_pos_y": { "value": "prime_tower_position_y" } } } diff --git a/resources/extruders/ultimaker_original_dual_right.def.json b/resources/extruders/ultimaker_original_dual_2nd.def.json similarity index 58% rename from resources/extruders/ultimaker_original_dual_right.def.json rename to resources/extruders/ultimaker_original_dual_2nd.def.json index 97d2217326..4b600d0281 100644 --- a/resources/extruders/ultimaker_original_dual_right.def.json +++ b/resources/extruders/ultimaker_original_dual_2nd.def.json @@ -1,7 +1,7 @@ { - "id": "ultimaker_original_dual_right", + "id": "ultimaker_original_dual_2nd", "version": 2, - "name": "Right Extruder", + "name": "2nd Extruder", "inherits": "fdmextruder", "metadata": { "machine": "ultimaker_original_dual", @@ -17,10 +17,10 @@ "machine_nozzle_offset_y": { "default_value": 21.6 }, "machine_extruder_start_pos_abs": { "default_value": true }, - "machine_extruder_start_pos_x": { "default_value": 213 }, - "machine_extruder_start_pos_y": { "default_value": 189 }, + "machine_extruder_start_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_start_pos_y": { "value": "prime_tower_position_y" }, "machine_extruder_end_pos_abs": { "default_value": true }, - "machine_extruder_end_pos_x": { "default_value": 213 }, - "machine_extruder_end_pos_y": { "default_value": 189 } + "machine_extruder_end_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_end_pos_y": { "value": "prime_tower_position_y" } } } From 2f3f57c43d2954f43678f1403ff84a20ae74e32d Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Sat, 20 Aug 2016 23:40:43 +0200 Subject: [PATCH 4/5] Code-style --- resources/qml/SaveButton.qml | 112 ++++++++++++++++++++++++----------- 1 file changed, 78 insertions(+), 34 deletions(-) diff --git a/resources/qml/SaveButton.qml b/resources/qml/SaveButton.qml index 9ea6e181bb..9b63fccf94 100644 --- a/resources/qml/SaveButton.qml +++ b/resources/qml/SaveButton.qml @@ -14,9 +14,7 @@ Rectangle { property real progress: UM.Backend.progress; property int backendState: UM.Backend.state; - property bool activity: Printer.getPlatformActivity; - //Behavior on progress { NumberAnimation { duration: 250; } } property int totalHeight: childrenRect.height + UM.Theme.getSize("default_margin").height property string fileBaseName property string statusText: @@ -26,21 +24,18 @@ Rectangle { return catalog.i18nc("@label:PrintjobStatus", "Please load a 3d model"); } - if(base.backendState == 1) + switch(base.backendState) { - return catalog.i18nc("@label:PrintjobStatus", "Preparing to slice..."); - } - else if(base.backendState == 2) - { - return catalog.i18nc("@label:PrintjobStatus", "Slicing..."); - } - else if(base.backendState == 3) - { - return catalog.i18nc("@label:PrintjobStatus %1 is target operation","Ready to %1").arg(UM.OutputDeviceManager.activeDeviceShortDescription); - } - else if(base.backendState == 4) - { - return catalog.i18nc("@label:PrintjobStatus", "Unable to Slice") + case 1: + return catalog.i18nc("@label:PrintjobStatus", "Preparing to slice..."); + case 2: + return catalog.i18nc("@label:PrintjobStatus", "Slicing..."); + case 3: + return catalog.i18nc("@label:PrintjobStatus %1 is target operation","Ready to %1").arg(UM.OutputDeviceManager.activeDeviceShortDescription); + case 4: + return catalog.i18nc("@label:PrintjobStatus", "Unable to Slice"); + default: + return ""; } } @@ -126,12 +121,29 @@ 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) @@ -139,9 +151,17 @@ Rectangle { Label { 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; } @@ -167,12 +187,28 @@ Rectangle { background: Rectangle { id: deviceSelectionIcon 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; } } anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("save_button_text_margin").width / 2; @@ -186,9 +222,17 @@ Rectangle { height: UM.Theme.getSize("standard_arrow").height sourceSize.width: width sourceSize.height: height - 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"); + } source: UM.Theme.getIcon("arrow_bottom"); } } From 7efde6b1649d4ac41ef45ce9952040546250adbc Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Sat, 20 Aug 2016 23:42:51 +0200 Subject: [PATCH 5/5] Prevent qml warning when no printer is connected --- 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 77cf7f595e..79168ed6df 100644 --- a/resources/qml/MonitorButton.qml +++ b/resources/qml/MonitorButton.qml @@ -235,12 +235,12 @@ Rectangle text: { var result = ""; - var jobState = Cura.MachineManager.printerOutputDevices[0].jobState; if (!printerConnected) { return ""; } - if (lastJobState !== jobState) { + var jobState = Cura.MachineManager.printerOutputDevices[0].jobState; + if (lastJobState != jobState) { // the userClicked message must disappear when an "automated" jobState comes by userClicked = false; lastJobState = jobState;