From 2bcbe9400893905a824c83ea0ad08655dd39d0f0 Mon Sep 17 00:00:00 2001 From: Victor Lin <60565737+v-xup6@users.noreply.github.com> Date: Wed, 21 Apr 2021 15:35:08 +0800 Subject: [PATCH 001/141] Standard Atom 2.0 --- resources/definitions/atom2.def.json | 40 ++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 resources/definitions/atom2.def.json diff --git a/resources/definitions/atom2.def.json b/resources/definitions/atom2.def.json new file mode 100644 index 0000000000..bc19ce49ef --- /dev/null +++ b/resources/definitions/atom2.def.json @@ -0,0 +1,40 @@ +{ + "name": "Atom 2", + "version": 2, + "inherits": "fdmprinter", + "metadata": + { + "visible": true, + "author": "Victor (Yu Chieh) Lin", + "manufacturer": "Layer One", + "file_formats": "text/x-gcode", + "platform_offset": [ 0, 0, 0 ], + "machine_extruder_trains": + { + "0": "atom2_extruder_0" + } + }, + + "overrides": { + "machine_name": { "default_value": "Atom 2" }, + "machine_shape": { "default_value": "elliptic" }, + "machine_width": { "default_value": 210 }, + "machine_depth": { "default_value": 210 }, + "machine_height": { "default_value": 320 }, + "machine_extruder_count": { "default_value": 1 }, + "machine_heated_bed": { "default_value": false }, + "machine_center_is_zero": { "default_value": true }, + "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, + + "machine_start_gcode": { + "default_value": "G21\nG90 \nM107\nG28\nG92 E0\nG1 F200 E3\nG92 E0" + }, + "machine_end_gcode": { + "default_value": "M104 S0\nG28\nG91\nG1 E-6 F300\nM84\nG90" + }, + + "layer_height": { "default_value": 0.2 }, + "default_material_print_temperature": { "default_value": 200 }, + "speed_print": { "default_value": 30 } + } +} \ No newline at end of file From 420fe2ab3309a6666ef36d00b9daf74d1954fe02 Mon Sep 17 00:00:00 2001 From: Victor Lin <60565737+v-xup6@users.noreply.github.com> Date: Wed, 21 Apr 2021 15:36:07 +0800 Subject: [PATCH 002/141] Single Extruder - Atom 2.0 --- resources/extruders/atom2_extruder_0.def.json | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 resources/extruders/atom2_extruder_0.def.json diff --git a/resources/extruders/atom2_extruder_0.def.json b/resources/extruders/atom2_extruder_0.def.json new file mode 100644 index 0000000000..50e1f8501f --- /dev/null +++ b/resources/extruders/atom2_extruder_0.def.json @@ -0,0 +1,15 @@ +{ + "version": 2, + "name": "Extruder 1", + "inherits": "fdmextruder", + "metadata": { + "machine": "Atom 2", + "position": "0" + }, + + "overrides": { + "extruder_nr": { "default_value": 0 }, + "machine_nozzle_size": { "default_value": 0.4 }, + "material_diameter": { "default_value": 1.75 } + } +} From 781a5d42a6539ecdb995752ce0c957b85b4a8d01 Mon Sep 17 00:00:00 2001 From: Victor Lin <60565737+v-xup6@users.noreply.github.com> Date: Wed, 21 Apr 2021 16:37:37 +0800 Subject: [PATCH 003/141] Update Atom 2.0 --- resources/definitions/atom2.def.json | 55 +++++++++++++++++++++------- 1 file changed, 42 insertions(+), 13 deletions(-) diff --git a/resources/definitions/atom2.def.json b/resources/definitions/atom2.def.json index bc19ce49ef..2fd76df8fe 100644 --- a/resources/definitions/atom2.def.json +++ b/resources/definitions/atom2.def.json @@ -2,16 +2,13 @@ "name": "Atom 2", "version": 2, "inherits": "fdmprinter", - "metadata": - { + "metadata": { "visible": true, "author": "Victor (Yu Chieh) Lin", "manufacturer": "Layer One", "file_formats": "text/x-gcode", - "platform_offset": [ 0, 0, 0 ], - "machine_extruder_trains": - { - "0": "atom2_extruder_0" + "platform_offset": [0,0,0], + "machine_extruder_trains": { "0": "atom2_extruder_0" } }, @@ -26,15 +23,47 @@ "machine_center_is_zero": { "default_value": true }, "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, - "machine_start_gcode": { - "default_value": "G21\nG90 \nM107\nG28\nG92 E0\nG1 F200 E3\nG92 E0" - }, - "machine_end_gcode": { - "default_value": "M104 S0\nG28\nG91\nG1 E-6 F300\nM84\nG90" - }, + "machine_start_gcode": { "default_value": "G21\nG90 \nM107\nG28\nG92 E0\nG1 F200 E3\nG92 E0" }, + "machine_end_gcode": { "default_value": "M104 S0\nG28\nG91\nG1 E-6 F300\nM84\nG90" }, "layer_height": { "default_value": 0.2 }, "default_material_print_temperature": { "default_value": 200 }, - "speed_print": { "default_value": 30 } + "speed_print": { "default_value": 32 }, + "infill_before_walls": { "value": false }, + "optimize_wall_printing_order": { "value": "True" }, + "infill_sparse_density": { "default_value": 10 }, + "brim_width": + { + "label": "Brim Width", + "description": "The distance from the model to the outermost brim line. A larger brim enhances adhesion to the build plate, but also reduces the effective print area.", + "type": "float", + "unit": "mm", + "default_value": 4, + "minimum_value": "0.0", + "maximum_value_warning": "50.0", + "maximum_value": "0.5 * min(machine_width, machine_depth)", + "enabled": "resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('prime_tower_brim_enable')", + "settable_per_mesh": false, + "settable_per_extruder": true, + "limit_to_extruder": "atom2_extruder_0", + "children": + { + "brim_line_count": + { + "label": "Brim Line Count", + "description": "The number of lines used for a brim. More brim lines enhance adhesion to the build plate, but also reduces the effective print area.", + "type": "int", + "default_value": 10, + "minimum_value": "0", + "maximum_value_warning": "50 / skirt_brim_line_width", + "maximum_value": "0.5 * min(machine_width, machine_depth) / skirt_brim_line_width", + "value": 10, + "enabled": "resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('prime_tower_brim_enable')", + "settable_per_mesh": false, + "settable_per_extruder": true, + "limit_to_extruder": "atom2_extruder_0" + } + } + } } } \ No newline at end of file From d5f845831fa90f3bc496d48a8c0e37dd1ad1cb42 Mon Sep 17 00:00:00 2001 From: Victor Lin <60565737+v-xup6@users.noreply.github.com> Date: Thu, 22 Apr 2021 17:07:47 +0800 Subject: [PATCH 004/141] Added Atom Plus --- resources/definitions/atom2.def.json | 2 +- resources/definitions/atomPlus.def.json | 35 +++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 resources/definitions/atomPlus.def.json diff --git a/resources/definitions/atom2.def.json b/resources/definitions/atom2.def.json index 2fd76df8fe..3918631699 100644 --- a/resources/definitions/atom2.def.json +++ b/resources/definitions/atom2.def.json @@ -21,7 +21,7 @@ "machine_extruder_count": { "default_value": 1 }, "machine_heated_bed": { "default_value": false }, "machine_center_is_zero": { "default_value": true }, - "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, + "machine_gcode_flavor": { "RepRap (Marlin/Sprinter)": "Marlin" }, "machine_start_gcode": { "default_value": "G21\nG90 \nM107\nG28\nG92 E0\nG1 F200 E3\nG92 E0" }, "machine_end_gcode": { "default_value": "M104 S0\nG28\nG91\nG1 E-6 F300\nM84\nG90" }, diff --git a/resources/definitions/atomPlus.def.json b/resources/definitions/atomPlus.def.json new file mode 100644 index 0000000000..1726fee8eb --- /dev/null +++ b/resources/definitions/atomPlus.def.json @@ -0,0 +1,35 @@ +{ + "name": "Atom Plus", + "version": 2, + "inherits": "fdmprinter", + "metadata": { + "visible": true, + "author": "Victor (Yu Chieh) Lin", + "manufacturer": "Layer One", + "file_formats": "text/x-gcode", + "platform_offset": [0,0,0], + "machine_extruder_trains": { "0": "atomPlus_extruder_0" + } + }, + + "overrides": { + "machine_name": { "default_value": "Atom Plus" }, + "machine_shape": { "default_value": "elliptic" }, + "machine_width": { "default_value": 420 }, + "machine_depth": { "default_value": 420 }, + "machine_height": { "default_value": 910 }, + "machine_extruder_count": { "default_value": 1 }, + "machine_heated_bed": { "default_value": false }, + "machine_center_is_zero": { "default_value": true }, + "machine_gcode_flavor": { "RepRap (Marlin/Sprinter)": "Marlin" }, + + "machine_start_gcode": { "default_value": "G21\nG90 \nM107\nG28\nG92 E0\nG1 F200 E3\nG92 E0" }, + "machine_end_gcode": { "default_value": "M104 S0\nG28\nG91\nG1 E-6 F300\nM84\nG90" }, + + "layer_height": { "default_value": 0.4 }, + "default_material_print_temperature": { "default_value": 220 }, + "speed_print": { "default_value": 32 }, + "optimize_wall_printing_order": { "value": "True" }, + "infill_sparse_density": { "default_value": 10 } + } +} \ No newline at end of file From 54f41b964169acdf4edc45cb2306f0eaf6a45cbc Mon Sep 17 00:00:00 2001 From: Victor Lin <60565737+v-xup6@users.noreply.github.com> Date: Thu, 22 Apr 2021 17:11:03 +0800 Subject: [PATCH 005/141] Extruder for Atom Plus (1mm) --- resources/extruders/atomPlus_extruder_0.def.json | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 resources/extruders/atomPlus_extruder_0.def.json diff --git a/resources/extruders/atomPlus_extruder_0.def.json b/resources/extruders/atomPlus_extruder_0.def.json new file mode 100644 index 0000000000..7a76eada02 --- /dev/null +++ b/resources/extruders/atomPlus_extruder_0.def.json @@ -0,0 +1,15 @@ +{ + "version": 2, + "name": "Extruder 1", + "inherits": "fdmextruder", + "metadata": { + "machine": "Atom Plus", + "position": "0" + }, + + "overrides": { + "extruder_nr": { "default_value": 0 }, + "machine_nozzle_size": { "default_value": 1 }, + "material_diameter": { "default_value": 1.75 } + } +} From 1dab6e39e11840313e5cb65b318dd8ef72b28637 Mon Sep 17 00:00:00 2001 From: Victor Lin <60565737+v-xup6@users.noreply.github.com> Date: Thu, 29 Apr 2021 22:31:53 +0800 Subject: [PATCH 006/141] Match ID for Atom2 Co-authored-by: Jaime van Kessel --- resources/extruders/atom2_extruder_0.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/extruders/atom2_extruder_0.def.json b/resources/extruders/atom2_extruder_0.def.json index 50e1f8501f..be9d5782ff 100644 --- a/resources/extruders/atom2_extruder_0.def.json +++ b/resources/extruders/atom2_extruder_0.def.json @@ -3,7 +3,7 @@ "name": "Extruder 1", "inherits": "fdmextruder", "metadata": { - "machine": "Atom 2", + "machine": "atom2", "position": "0" }, From fbd2b45dd0591db348cb9a9485ac7adf1824d4c3 Mon Sep 17 00:00:00 2001 From: Victor Lin <60565737+v-xup6@users.noreply.github.com> Date: Thu, 29 Apr 2021 22:32:22 +0800 Subject: [PATCH 007/141] Match ID for atomPlus Co-authored-by: Jaime van Kessel --- resources/extruders/atomPlus_extruder_0.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/extruders/atomPlus_extruder_0.def.json b/resources/extruders/atomPlus_extruder_0.def.json index 7a76eada02..19ab13cf79 100644 --- a/resources/extruders/atomPlus_extruder_0.def.json +++ b/resources/extruders/atomPlus_extruder_0.def.json @@ -3,7 +3,7 @@ "name": "Extruder 1", "inherits": "fdmextruder", "metadata": { - "machine": "Atom Plus", + "machine": "atomPlus", "position": "0" }, From d089bf16cd22cdeb121672b9c445c27b17b4e8be Mon Sep 17 00:00:00 2001 From: Victor Lin <60565737+v-xup6@users.noreply.github.com> Date: Wed, 5 May 2021 11:54:55 +0800 Subject: [PATCH 008/141] Add files via upload Minor tweaks --- resources/definitions/atom2.def.json | 10 ++-------- resources/definitions/atomPlus.def.json | 1 - 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/resources/definitions/atom2.def.json b/resources/definitions/atom2.def.json index 3918631699..8fbbe2c698 100644 --- a/resources/definitions/atom2.def.json +++ b/resources/definitions/atom2.def.json @@ -21,15 +21,13 @@ "machine_extruder_count": { "default_value": 1 }, "machine_heated_bed": { "default_value": false }, "machine_center_is_zero": { "default_value": true }, - "machine_gcode_flavor": { "RepRap (Marlin/Sprinter)": "Marlin" }, "machine_start_gcode": { "default_value": "G21\nG90 \nM107\nG28\nG92 E0\nG1 F200 E3\nG92 E0" }, "machine_end_gcode": { "default_value": "M104 S0\nG28\nG91\nG1 E-6 F300\nM84\nG90" }, "layer_height": { "default_value": 0.2 }, - "default_material_print_temperature": { "default_value": 200 }, + "default_material_print_temperature": { "default_value": 210 }, "speed_print": { "default_value": 32 }, - "infill_before_walls": { "value": false }, "optimize_wall_printing_order": { "value": "True" }, "infill_sparse_density": { "default_value": 10 }, "brim_width": @@ -44,8 +42,6 @@ "maximum_value": "0.5 * min(machine_width, machine_depth)", "enabled": "resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('prime_tower_brim_enable')", "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "atom2_extruder_0", "children": { "brim_line_count": @@ -59,9 +55,7 @@ "maximum_value": "0.5 * min(machine_width, machine_depth) / skirt_brim_line_width", "value": 10, "enabled": "resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('prime_tower_brim_enable')", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "atom2_extruder_0" + "settable_per_mesh": false } } } diff --git a/resources/definitions/atomPlus.def.json b/resources/definitions/atomPlus.def.json index 1726fee8eb..2d053693ff 100644 --- a/resources/definitions/atomPlus.def.json +++ b/resources/definitions/atomPlus.def.json @@ -21,7 +21,6 @@ "machine_extruder_count": { "default_value": 1 }, "machine_heated_bed": { "default_value": false }, "machine_center_is_zero": { "default_value": true }, - "machine_gcode_flavor": { "RepRap (Marlin/Sprinter)": "Marlin" }, "machine_start_gcode": { "default_value": "G21\nG90 \nM107\nG28\nG92 E0\nG1 F200 E3\nG92 E0" }, "machine_end_gcode": { "default_value": "M104 S0\nG28\nG91\nG1 E-6 F300\nM84\nG90" }, From e9e5327bc515cb45714e57aac21ca4251371c0b0 Mon Sep 17 00:00:00 2001 From: ChronosTech Date: Mon, 10 May 2021 11:07:32 +0200 Subject: [PATCH 009/141] Create definitons and HT0.4 quality for strateo3d. --- resources/definitions/strateo3d.def.json | 88 +++++++++++++------ .../HT0.4/s3d_ht0.4_ABS-X_A.inst.cfg | 47 ++++++++++ .../HT0.4/s3d_ht0.4_ABS-X_B.inst.cfg | 47 ++++++++++ .../HT0.4/s3d_ht0.4_ABS-X_C.inst.cfg | 47 ++++++++++ .../strateo3d/HT0.4/s3d_ht0.4_ABS_A.inst.cfg | 47 ++++++++++ .../strateo3d/HT0.4/s3d_ht0.4_ABS_B.inst.cfg | 47 ++++++++++ .../strateo3d/HT0.4/s3d_ht0.4_ABS_C.inst.cfg | 47 ++++++++++ .../HT0.4/s3d_ht0.4_ACETATE_A.inst.cfg | 47 ++++++++++ .../HT0.4/s3d_ht0.4_ACETATE_B.inst.cfg | 47 ++++++++++ .../HT0.4/s3d_ht0.4_ACETATE_C.inst.cfg | 47 ++++++++++ .../HT0.4/s3d_ht0.4_ASA-X_A.inst.cfg | 47 ++++++++++ .../HT0.4/s3d_ht0.4_ASA-X_B.inst.cfg | 47 ++++++++++ .../HT0.4/s3d_ht0.4_ASA-X_C.inst.cfg | 47 ++++++++++ .../strateo3d/HT0.4/s3d_ht0.4_COPA_A.inst.cfg | 62 +++++++++++++ .../strateo3d/HT0.4/s3d_ht0.4_COPA_B.inst.cfg | 62 +++++++++++++ .../strateo3d/HT0.4/s3d_ht0.4_COPA_C.inst.cfg | 62 +++++++++++++ .../strateo3d/HT0.4/s3d_ht0.4_HIPS_A.inst.cfg | 50 +++++++++++ .../strateo3d/HT0.4/s3d_ht0.4_HIPS_B.inst.cfg | 50 +++++++++++ .../strateo3d/HT0.4/s3d_ht0.4_HIPS_C.inst.cfg | 50 +++++++++++ .../strateo3d/HT0.4/s3d_ht0.4_PC_A.inst.cfg | 61 +++++++++++++ .../strateo3d/HT0.4/s3d_ht0.4_PC_B.inst.cfg | 61 +++++++++++++ .../strateo3d/HT0.4/s3d_ht0.4_PC_C.inst.cfg | 61 +++++++++++++ .../strateo3d/HT0.4/s3d_ht0.4_PEKK_B.inst.cfg | 58 ++++++++++++ .../strateo3d/HT0.4/s3d_ht0.4_PETG_A.inst.cfg | 47 ++++++++++ .../strateo3d/HT0.4/s3d_ht0.4_PETG_B.inst.cfg | 47 ++++++++++ .../strateo3d/HT0.4/s3d_ht0.4_PETG_C.inst.cfg | 47 ++++++++++ .../strateo3d/HT0.4/s3d_ht0.4_PLA_A.inst.cfg | 47 ++++++++++ .../strateo3d/HT0.4/s3d_ht0.4_PLA_B.inst.cfg | 47 ++++++++++ .../strateo3d/HT0.4/s3d_ht0.4_PLA_C.inst.cfg | 47 ++++++++++ .../HT0.4/s3d_ht0.4_PLA_HT_A.inst.cfg | 55 ++++++++++++ .../HT0.4/s3d_ht0.4_PLA_HT_B.inst.cfg | 54 ++++++++++++ .../HT0.4/s3d_ht0.4_PLA_HT_C.inst.cfg | 54 ++++++++++++ .../HT0.4/s3d_ht0.4_TPU98A_A.inst.cfg | 47 ++++++++++ .../HT0.4/s3d_ht0.4_TPU98A_B.inst.cfg | 47 ++++++++++ .../HT0.4/s3d_ht0.4_TPU98A_C.inst.cfg | 47 ++++++++++ .../strateo3d_haute_temperature_04.inst.cfg | 21 +++++ 36 files changed, 1811 insertions(+), 25 deletions(-) create mode 100644 resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_A.inst.cfg create mode 100644 resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_B.inst.cfg create mode 100644 resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_C.inst.cfg create mode 100644 resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_A.inst.cfg create mode 100644 resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_B.inst.cfg create mode 100644 resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_C.inst.cfg create mode 100644 resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_A.inst.cfg create mode 100644 resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_B.inst.cfg create mode 100644 resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_C.inst.cfg create mode 100644 resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_A.inst.cfg create mode 100644 resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_B.inst.cfg create mode 100644 resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_C.inst.cfg create mode 100644 resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_A.inst.cfg create mode 100644 resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_B.inst.cfg create mode 100644 resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_C.inst.cfg create mode 100644 resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_A.inst.cfg create mode 100644 resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_B.inst.cfg create mode 100644 resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_C.inst.cfg create mode 100644 resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_A.inst.cfg create mode 100644 resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_B.inst.cfg create mode 100644 resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_C.inst.cfg create mode 100644 resources/quality/strateo3d/HT0.4/s3d_ht0.4_PEKK_B.inst.cfg create mode 100644 resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_A.inst.cfg create mode 100644 resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_B.inst.cfg create mode 100644 resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_C.inst.cfg create mode 100644 resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_A.inst.cfg create mode 100644 resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_B.inst.cfg create mode 100644 resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_C.inst.cfg create mode 100644 resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_A.inst.cfg create mode 100644 resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_B.inst.cfg create mode 100644 resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_C.inst.cfg create mode 100644 resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_A.inst.cfg create mode 100644 resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_B.inst.cfg create mode 100644 resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_C.inst.cfg create mode 100644 resources/variants/strateo3d_haute_temperature_04.inst.cfg diff --git a/resources/definitions/strateo3d.def.json b/resources/definitions/strateo3d.def.json index 2858a859c5..b1a9202a06 100644 --- a/resources/definitions/strateo3d.def.json +++ b/resources/definitions/strateo3d.def.json @@ -21,7 +21,20 @@ "1": "strateo3d_left_extruder" } }, - + "settings": { + "material": { + "children": { + "_material_print_temperature_maximum_value": { + "label": "Maximum Printing Temperature", + "description": "This is a private setting, please ignore", + "type": "float", + "default_value": 285, + "enabled": false, + "settable_per_extruder": true + } + } + } + }, "overrides": { "machine_name": { "default_value": "Strateo3D" }, @@ -35,28 +48,42 @@ "gantry_height": { "value": "40" }, "machine_extruder_count": { "default_value": 2 }, "machine_gcode_flavor": { "default_value": "Marlin" }, - "machine_start_gcode": { "default_value": "G28 \nG90 G1 X300 Y210 Z15 F6000 \nG92 E0" }, + "machine_start_gcode": { "default_value": ";M203 X280.33334 Y280.33334 Z25 S-1 ;max cartesian feedrate \n;M204 S1500.00000 Z300.00000 ;acceleration \n;M205 X0.01000 Z-1.00000 S0.00000 ;junction deviation \nM104 T0 S{material_standby_temperature, 0} \nM104 T1 S{material_standby_temperature, 1} \nM140 S{material_bed_temperature_layer_0} \nM141 S{build_volume_temperature} \nG28 \nG90 \nT{initial_extruder_nr} \nG1 X0 Y0 Z15 F6000 \nM190 S{material_bed_temperature_layer_0} \nM109 S{material_print_temperature_layer_0, initial_extruder_nr} \nG1 Z0.3 \nG92 E0 \nG1 F300 X45 E18 \n;G1 F1500 E17 \nG1 F600 X25 \nG1 F600 Z3" }, "machine_end_gcode": { "default_value": "T1 \nM104 S0 \nT0 \nM104 S0 \nM140 S0 \nM141 S0 \nG91 \nG0 z1 \nG90 \nG28 \nM801.0 \nM84 \nM192" }, "extruder_prime_pos_y": {"minimum_value": "0", "maximum_value": "machine_depth"}, "extruder_prime_pos_x": {"minimum_value": "0", "maximum_value": "machine_width"}, "machine_heat_zone_length": { "default_value": 7 }, - "default_material_print_temperature": { "maximum_value_warning": "350" }, - "material_print_temperature": { "maximum_value_warning": "350" }, - "material_print_temperature_layer_0": { "maximum_value_warning": "350" }, - "material_bed_temperature": { "maximum_value": "130" }, - "material_bed_temperature_layer_0": { "maximum_value": "130" }, + "default_material_print_temperature": { "maximum_value_warning": "_material_print_temperature_maximum_value - 5", "maximum_value": "_material_print_temperature_maximum_value" }, + "material_print_temperature": { "maximum_value_warning": "_material_print_temperature_maximum_value - 5", "maximum_value": "_material_print_temperature_maximum_value" }, + "material_print_temperature_layer_0": { "maximum_value_warning": "_material_print_temperature_maximum_value - 5", "maximum_value": "_material_print_temperature_maximum_value" }, + "material_initial_print_temperature": { "maximum_value": "_material_print_temperature_maximum_value" }, + "material_final_print_temperature": { "maximum_value": "_material_print_temperature_maximum_value" }, + "material_bed_temperature": { "maximum_value_warning": "140", "maximum_value": "140" }, + "material_bed_temperature_layer_0": { "maximum_value_warning": "140", "maximum_value": "140" }, "extruder_prime_pos_abs": { "default_value": true }, "machine_acceleration": { "default_value": 1500 }, + "machine_max_jerk_xy": { "default_value": 0.01 }, + "machine_max_jerk_z": { "default_value": 0}, "acceleration_enabled": { "value": false }, - "acceleration_print": { "value": "machine_acceleration" }, - "acceleration_wall": { "value": "math.ceil(acceleration_print * 1250 / acceleration_print)" }, - "acceleration_wall_0": { "value": "math.ceil(acceleration_print * 1000 / acceleration_print)" }, - "acceleration_topbottom": { "value": "math.ceil(acceleration_print * 1250 / acceleration_print)" }, - "acceleration_support": { "value": "acceleration_print" }, - "acceleration_support_interface": { "value": "acceleration_topbottom" }, - "acceleration_travel": { "value": "acceleration_print" }, - "acceleration_layer_0": { "value": "acceleration_topbottom" }, + "acceleration_print": { "value": "machine_acceleration", "maximum_value_warning": "1500" }, + "acceleration_infill": { "maximum_value_warning": "1500" }, + "acceleration_wall": { "value": "math.ceil(acceleration_print * 1250 / acceleration_print)", "maximum_value_warning": "1500" }, + "acceleration_wall_0": { "value": "math.ceil(acceleration_print * 1000 / acceleration_print)", "maximum_value_warning": "1500" }, + "acceleration_wall_x": { "maximum_value_warning": "1500" }, + "acceleration_topbottom": { "value": "math.ceil(acceleration_print * 1250 / acceleration_print)", "maximum_value_warning": "1500" }, + "acceleration_support": { "value": "acceleration_print", "maximum_value_warning": "1500" }, + "acceleration_support_infill": { "maximum_value_warning": "1500" }, + "acceleration_support_interface": { "value": "acceleration_topbottom", "maximum_value_warning": "1500" }, + "acceleration_support_roof": { "maximum_value_warning": "1500" }, + "acceleration_support_bottom": { "maximum_value_warning": "1500" }, + "acceleration_prime_tower": { "maximum_value_warning": "1500" }, + "acceleration_travel": { "value": "acceleration_print", "maximum_value_warning": "1500" }, + "acceleration_layer_0": { "value": "acceleration_topbottom", "maximum_value_warning": "1500" }, + "acceleration_print_layer_0": { "maximum_value_warning": "1500" }, + "acceleration_travel_layer_0": { "maximum_value_warning": "1500" }, + "acceleration_skirt_brim": { "maximum_value_warning": "1500" }, + "adaptive_layer_height_variation": { "default_value": 0.1 }, "adaptive_layer_height_variation_step": { "default_value": 0.05 }, "adhesion_type": { "default_value": "skirt" }, @@ -66,15 +93,26 @@ "infill_before_walls": { "default_value": false }, "infill_overlap": { "value": "0" }, "infill_wipe_dist": { "value": "0" }, - "jerk_enabled": { "value": "False" }, - "jerk_layer_0": { "value": "jerk_topbottom" }, - "jerk_prime_tower": { "value": "math.ceil(jerk_print * 15 / 25)" }, - "jerk_print": { "value": "25" }, - "jerk_support": { "value": "math.ceil(jerk_print * 15 / 25)" }, - "jerk_support_interface": { "value": "jerk_topbottom" }, - "jerk_topbottom": { "value": "math.ceil(jerk_print * 5 / 25)" }, - "jerk_wall": { "value": "math.ceil(jerk_print * 10 / 25)" }, - "jerk_wall_0": { "value": "math.ceil(jerk_wall * 5 / 10)" }, + + "jerk_enabled": { "value": "False", "maximum_value_warning": "0.01" }, + "jerk_print": { "value": "0.01", "maximum_value_warning": "0.01" }, + "jerk_infill": { "value": "0.01", "maximum_value_warning": "0.01" }, + "jerk_layer_0": { "value": "jerk_topbottom", "maximum_value_warning": "0.01" }, + "jerk_print_layer_0": { "maximum_value_warning": "0.01" }, + "jerk_travel_layer_0": { "maximum_value_warning": "0.01" }, + "jerk_skirt_brim": { "maximum_value_warning": "0.01" }, + "jerk_prime_tower": { "value": "jerk_print * 15 / 25", "maximum_value_warning": "0.01" }, + "jerk_support": { "value": "jerk_print * 15 / 25", "maximum_value_warning": "0.01" }, + "jerk_support_infill": { "maximum_value_warning": "0.01" }, + "jerk_support_interface": { "value": "jerk_topbottom", "maximum_value_warning": "0.01" }, + "jerk_support_roof": { "maximum_value_warning": "0.01" }, + "jerk_support_bottom": { "maximum_value_warning": "0.01" }, + "jerk_topbottom": { "value": "jerk_print * 5 / 25", "maximum_value_warning": "0.01" }, + "jerk_wall": { "value": "jerk_print * 5 / 25", "maximum_value_warning": "0.01" }, + "jerk_wall_0": { "value": "jerk_wall * 5 / 10", "maximum_value_warning": "0.01" }, + "jerk_wall_x": { "maximum_value_warning": "0.01" }, + "jerk_travel": { "value": "machine_max_jerk_xy", "maximum_value_warning": "0.01" }, + "layer_start_x": { "value": "sum(extruderValues('machine_extruder_start_pos_x')) / len(extruderValues('machine_extruder_start_pos_x'))" }, "layer_start_y": { "value": "sum(extruderValues('machine_extruder_start_pos_y')) / len(extruderValues('machine_extruder_start_pos_y'))" }, "machine_min_cool_heat_time_window": { "value": "15" }, @@ -89,7 +127,7 @@ "optimize_wall_printing_order": { "value": "True" }, "prime_blob_enable": { "enabled": false, "default_value": false }, "prime_tower_min_volume": { "default_value": 35 }, - "prime_tower_position_x": { "value": "machine_width/2 - max(extruderValue(adhesion_extruder_nr, 'brim_width') * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 if adhesion_type == 'brim' else (extruderValue(adhesion_extruder_nr, 'raft_margin') if adhesion_type == 'raft' else (extruderValue(adhesion_extruder_nr, 'skirt_gap') if adhesion_type == 'skirt' else 0)), max(extruderValues('travel_avoid_distance'))) - max(extruderValues('support_offset')) - sum(extruderValues('skirt_brim_line_width')) * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 - (resolveOrValue('draft_shield_dist') if resolveOrValue('draft_shield_enabled') else 0) - 1" }, + "prime_tower_position_x": { "value": "machine_width/2 + prime_tower_size/2" }, "prime_tower_position_y": { "value": "machine_depth - prime_tower_size - max(extruderValue(adhesion_extruder_nr, 'brim_width') * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 if adhesion_type == 'brim' else (extruderValue(adhesion_extruder_nr, 'raft_margin') if adhesion_type == 'raft' else (extruderValue(adhesion_extruder_nr, 'skirt_gap') if adhesion_type == 'skirt' else 0)), max(extruderValues('travel_avoid_distance'))) - max(extruderValues('support_offset')) - sum(extruderValues('skirt_brim_line_width')) * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 - (resolveOrValue('draft_shield_dist') if resolveOrValue('draft_shield_enabled') else 0) - 1" }, "retraction_amount": { "default_value": 1.5 }, "retraction_combing": { "default_value": "all" }, diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_A.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_A.inst.cfg new file mode 100644 index 0000000000..8313aebe9c --- /dev/null +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_A.inst.cfg @@ -0,0 +1,47 @@ +[general] +version = 4 +name = A +definition = strateo3d + +[metadata] +setting_version = 16 +type = quality +quality_type = a +weight = 1 +material = emotiontech_absx +variant = Haute température 0.4 + +[values] +layer_height_0 = =round(0.5*machine_nozzle_size, 2) +line_width = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_line_width = =machine_nozzle_size/machine_nozzle_size*0.35 +wall_line_width_x = =machine_nozzle_size/machine_nozzle_size*0.3 +wall_0_wipe_dist = =machine_nozzle_size/2 +speed_print = 50 +speed_wall = =math.ceil(speed_print * 35/50) +speed_wall_0 = =math.ceil(speed_wall * 30/35) +speed_topbottom = =math.ceil(speed_print * 35/50) +speed_layer_0 = =math.ceil(speed_print * 20/50) +speed_slowdown_layers = 2 +cool_fan_enabled = True +cool_fan_speed = 35 +cool_fan_speed_max = 100 +cool_min_layer_time_fan_speed_max = 20 +cool_min_layer_time = 11 +cool_fan_full_at_height = =layer_height_0 + 19 * layer_height +cool_min_speed = 10 +support_angle = 65 +material_print_temperature = =default_material_print_temperature + 3 +material_print_temperature_layer_0 = =default_material_print_temperature +material_flow = 100 +retraction_extra_prime_amount = 0.1 +retraction_min_travel = =3*line_width +retraction_hop_only_when_collides = True +skin_overlap = 10 +support_z_distance = =layer_height +support_bottom_distance = =support_z_distance +support_xy_distance = =line_width * 1.7 +support_xy_distance_overhang = =wall_line_width_0 +support_offset = 1 +support_interface_density = 100 +prime_tower_enable = True \ No newline at end of file diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_B.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_B.inst.cfg new file mode 100644 index 0000000000..9d0c07321e --- /dev/null +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_B.inst.cfg @@ -0,0 +1,47 @@ +[general] +version = 4 +name = B +definition = strateo3d + +[metadata] +setting_version = 16 +type = quality +quality_type = b +weight = 0 +material = emotiontech_absx +variant = Haute température 0.4 + +[values] +layer_height_0 = =round(0.67*machine_nozzle_size, 2) +line_width = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_line_width = =machine_nozzle_size/machine_nozzle_size*0.35 +wall_line_width_x = =machine_nozzle_size/machine_nozzle_size*0.3 +wall_0_wipe_dist = =machine_nozzle_size/2 +speed_print = 55 +speed_wall = =math.ceil(speed_print * 37/55) +speed_wall_0 = =math.ceil(speed_wall * 33/37) +speed_topbottom = =math.ceil(speed_print * 37/55) +speed_layer_0 = =math.ceil(speed_print * 25/55) +speed_slowdown_layers = 2 +cool_fan_enabled = True +cool_fan_speed = 35 +cool_fan_speed_max = 100 +cool_min_layer_time_fan_speed_max = 20 +cool_min_layer_time = 11 +cool_fan_full_at_height = =layer_height_0 + 14 * layer_height +cool_min_speed = 10 +support_angle = 60 +material_print_temperature = =default_material_print_temperature + 5 +material_print_temperature_layer_0 = =default_material_print_temperature + 3 +material_flow = 96 +retraction_extra_prime_amount = 0.1 +retraction_min_travel = =3*line_width +retraction_hop_only_when_collides = True +skin_overlap = 15 +support_z_distance = =layer_height +support_bottom_distance = =support_z_distance +support_xy_distance = =line_width * 1.7 +support_xy_distance_overhang = =wall_line_width_0 +support_offset = 1 +support_interface_density = 100 +prime_tower_enable = True \ No newline at end of file diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_C.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_C.inst.cfg new file mode 100644 index 0000000000..b7fd5efbdb --- /dev/null +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_C.inst.cfg @@ -0,0 +1,47 @@ +[general] +version = 4 +name = C +definition = strateo3d + +[metadata] +setting_version = 16 +type = quality +quality_type = c +weight = -1 +material = emotiontech_absx +variant = Haute température 0.4 + +[values] +layer_height_0 = =round(0.75*machine_nozzle_size, 2) +line_width = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_line_width = =machine_nozzle_size/machine_nozzle_size*0.35 +wall_line_width_x = =machine_nozzle_size/machine_nozzle_size*0.3 +wall_0_wipe_dist = =machine_nozzle_size/2 +speed_print = 60 +speed_wall = =math.ceil(speed_print * 40/60) +speed_wall_0 = =math.ceil(speed_wall * 35/40) +speed_topbottom = =math.ceil(speed_print * 40/60) +speed_layer_0 = =math.ceil(speed_print * 30/60) +speed_slowdown_layers = 2 +cool_fan_enabled = True +cool_fan_speed = 35 +cool_fan_speed_max = 100 +cool_min_layer_time_fan_speed_max = 20 +cool_min_layer_time = 11 +cool_fan_full_at_height = =layer_height_0 + 9 * layer_height +cool_min_speed = 10 +support_angle = 55 +material_print_temperature = =default_material_print_temperature + 10 +material_print_temperature_layer_0 = =default_material_print_temperature + 5 +material_flow = 91 +retraction_extra_prime_amount = 0.1 +retraction_min_travel = =3*line_width +retraction_hop_only_when_collides = True +skin_overlap = 20 +support_z_distance = =layer_height +support_bottom_distance = =support_z_distance +support_xy_distance = =line_width * 1.7 +support_xy_distance_overhang = =wall_line_width_0 +support_offset = 1 +support_interface_density = 100 +prime_tower_enable = True \ No newline at end of file diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_A.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_A.inst.cfg new file mode 100644 index 0000000000..c8a8e20c44 --- /dev/null +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_A.inst.cfg @@ -0,0 +1,47 @@ +[general] +version = 4 +name = A +definition = strateo3d + +[metadata] +setting_version = 16 +type = quality +quality_type = a +weight = 1 +material = emotiontech_abs +variant = Haute température 0.4 + +[values] +layer_height_0 = =round(0.5*machine_nozzle_size, 2) +line_width = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_line_width = =machine_nozzle_size/machine_nozzle_size*0.35 +wall_line_width_x = =machine_nozzle_size/machine_nozzle_size*0.3 +wall_0_wipe_dist = =machine_nozzle_size/2 +speed_print = 50 +speed_wall = =math.ceil(speed_print * 35/50) +speed_wall_0 = =math.ceil(speed_wall * 30/35) +speed_topbottom = =math.ceil(speed_print * 35/50) +speed_layer_0 = =math.ceil(speed_print * 20/50) +speed_slowdown_layers = 2 +cool_fan_enabled = True +cool_fan_speed = 35 +cool_fan_speed_max = 100 +cool_min_layer_time_fan_speed_max = 20 +cool_min_layer_time = 11 +cool_fan_full_at_height = =layer_height_0 + 19 * layer_height +cool_min_speed = 10 +support_angle = 65 +material_print_temperature = =default_material_print_temperature + 1 +material_print_temperature_layer_0 = =default_material_print_temperature +material_flow = 100 +retraction_extra_prime_amount = 0.1 +retraction_min_travel = =3*line_width +retraction_hop_only_when_collides = True +skin_overlap = 10 +support_z_distance = =layer_height +support_bottom_distance = =support_z_distance +support_xy_distance = =line_width * 1.7 +support_xy_distance_overhang = =wall_line_width_0 +support_offset = 1 +support_interface_density = 100 +prime_tower_enable = True \ No newline at end of file diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_B.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_B.inst.cfg new file mode 100644 index 0000000000..f2fa17cf83 --- /dev/null +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_B.inst.cfg @@ -0,0 +1,47 @@ +[general] +version = 4 +name = B +definition = strateo3d + +[metadata] +setting_version = 16 +type = quality +quality_type = b +weight = 0 +material = emotiontech_abs +variant = Haute température 0.4 + +[values] +layer_height_0 = =round(0.67*machine_nozzle_size, 2) +line_width = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_line_width = =machine_nozzle_size/machine_nozzle_size*0.35 +wall_line_width_x = =machine_nozzle_size/machine_nozzle_size*0.3 +wall_0_wipe_dist = =machine_nozzle_size/2 +speed_print = 55 +speed_wall = =math.ceil(speed_print * 37/55) +speed_wall_0 = =math.ceil(speed_wall * 33/37) +speed_topbottom = =math.ceil(speed_print * 37/55) +speed_layer_0 = =math.ceil(speed_print * 25/55) +speed_slowdown_layers = 2 +cool_fan_enabled = True +cool_fan_speed = 35 +cool_fan_speed_max = 100 +cool_min_layer_time_fan_speed_max = 20 +cool_min_layer_time = 11 +cool_fan_full_at_height = =layer_height_0 + 14 * layer_height +cool_min_speed = 10 +support_angle = 60 +material_print_temperature = =default_material_print_temperature + 3 +material_print_temperature_layer_0 = =default_material_print_temperature + 1 +material_flow = 96 +retraction_extra_prime_amount = 0.1 +retraction_min_travel = =3*line_width +retraction_hop_only_when_collides = True +skin_overlap = 15 +support_z_distance = =layer_height +support_bottom_distance = =support_z_distance +support_xy_distance = =line_width * 1.7 +support_xy_distance_overhang = =wall_line_width_0 +support_offset = 1 +support_interface_density = 100 +prime_tower_enable = True \ No newline at end of file diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_C.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_C.inst.cfg new file mode 100644 index 0000000000..6f94a0b8eb --- /dev/null +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_C.inst.cfg @@ -0,0 +1,47 @@ +[general] +version = 4 +name = C +definition = strateo3d + +[metadata] +setting_version = 16 +type = quality +quality_type = c +weight = -1 +material = emotiontech_abs +variant = Haute température 0.4 + +[values] +layer_height_0 = =round(0.75*machine_nozzle_size, 2) +line_width = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_line_width = =machine_nozzle_size/machine_nozzle_size*0.35 +wall_line_width_x = =machine_nozzle_size/machine_nozzle_size*0.3 +wall_0_wipe_dist = =machine_nozzle_size/2 +speed_print = 60 +speed_wall = =math.ceil(speed_print * 40/60) +speed_wall_0 = =math.ceil(speed_wall * 35/40) +speed_topbottom = =math.ceil(speed_print * 40/60) +speed_layer_0 = =math.ceil(speed_print * 30/60) +speed_slowdown_layers = 2 +cool_fan_enabled = True +cool_fan_speed = 35 +cool_fan_speed_max = 100 +cool_min_layer_time_fan_speed_max = 20 +cool_min_layer_time = 11 +cool_fan_full_at_height = =layer_height_0 + 9 * layer_height +cool_min_speed = 10 +support_angle = 55 +material_print_temperature = =default_material_print_temperature + 5 +material_print_temperature_layer_0 = =default_material_print_temperature +3 +material_flow = 91 +retraction_extra_prime_amount = 0.1 +retraction_min_travel = =3*line_width +retraction_hop_only_when_collides = True +skin_overlap = 20 +support_z_distance = =layer_height +support_bottom_distance = =support_z_distance +support_xy_distance = =line_width * 1.7 +support_xy_distance_overhang = =wall_line_width_0 +support_offset = 1 +support_interface_density = 100 +prime_tower_enable = True \ No newline at end of file diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_A.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_A.inst.cfg new file mode 100644 index 0000000000..c7612fbe5e --- /dev/null +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_A.inst.cfg @@ -0,0 +1,47 @@ +[general] +version = 4 +name = A +definition = strateo3d + +[metadata] +setting_version = 16 +type = quality +quality_type = a +weight = 1 +material = emotiontech_acetate +variant = Haute température 0.4 + +[values] +layer_height_0 = =round(0.5*machine_nozzle_size, 2) +line_width = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_line_width = =machine_nozzle_size/machine_nozzle_size*0.35 +wall_line_width_x = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_0_wipe_dist = =machine_nozzle_size/2 +speed_print = 50 +speed_wall = =math.ceil(speed_print * 37/50) +speed_wall_0 = =math.ceil(speed_wall * 30/37) +speed_topbottom = =math.ceil(speed_print * 33/50) +speed_layer_0 = =math.ceil(speed_print * 25/50) +speed_slowdown_layers = 2 +cool_fan_enabled = True +cool_fan_speed = 35 +cool_fan_speed_max = 100 +cool_min_layer_time_fan_speed_max = 20 +cool_min_layer_time = 11 +cool_fan_full_at_height = =layer_height_0 + 10 * layer_height +cool_min_speed = 10 +support_angle = 60 +material_print_temperature = =default_material_print_temperature +material_print_temperature_layer_0 = =default_material_print_temperature +material_flow = 98 +retraction_extra_prime_amount = 0.1 +retraction_min_travel = =3*line_width +retraction_hop_only_when_collides = True +skin_overlap = 10 +support_z_distance = =layer_height +support_bottom_distance = =support_z_distance +support_xy_distance = =line_width * 1.7 +support_xy_distance_overhang = =wall_line_width_0 +support_offset = 1 +support_interface_density = 100 +prime_tower_enable = True \ No newline at end of file diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_B.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_B.inst.cfg new file mode 100644 index 0000000000..bad4f43f23 --- /dev/null +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_B.inst.cfg @@ -0,0 +1,47 @@ +[general] +version = 4 +name = B +definition = strateo3d + +[metadata] +setting_version = 16 +type = quality +quality_type = b +weight = 0 +material = emotiontech_acetate +variant = Haute température 0.4 + +[values] +layer_height_0 = =round(0.67*machine_nozzle_size, 2) +line_width = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_line_width = =machine_nozzle_size/machine_nozzle_size*0.35 +wall_line_width_x = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_0_wipe_dist = =machine_nozzle_size/2 +speed_print = 55 +speed_wall = =math.ceil(speed_print * 40/55) +speed_wall_0 = =math.ceil(speed_wall * 30/40) +speed_topbottom = =math.ceil(speed_print * 37/55) +speed_layer_0 = =math.ceil(speed_print * 27/55) +speed_slowdown_layers = 2 +cool_fan_enabled = True +cool_fan_speed = 35 +cool_fan_speed_max = 100 +cool_min_layer_time_fan_speed_max = 20 +cool_min_layer_time = 11 +cool_fan_full_at_height = =layer_height_0 + 7 * layer_height +cool_min_speed = 10 +support_angle = 55 +material_print_temperature = =default_material_print_temperature + 2 +material_print_temperature_layer_0 = =default_material_print_temperature + 0 +material_flow = 95 +retraction_extra_prime_amount = 0.1 +retraction_min_travel = =3*line_width +retraction_hop_only_when_collides = True +skin_overlap = 10 +support_z_distance = =layer_height +support_bottom_distance = =support_z_distance +support_xy_distance = =line_width * 1.7 +support_xy_distance_overhang = =wall_line_width_0 +support_offset = 1 +support_interface_density = 100 +prime_tower_enable = True \ No newline at end of file diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_C.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_C.inst.cfg new file mode 100644 index 0000000000..bc0754e888 --- /dev/null +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_C.inst.cfg @@ -0,0 +1,47 @@ +[general] +version = 4 +name = C +definition = strateo3d + +[metadata] +setting_version = 16 +type = quality +quality_type = c +weight = -1 +material = emotiontech_acetate +variant = Haute température 0.4 + +[values] +layer_height_0 = =round(0.75*machine_nozzle_size, 2) +line_width = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_line_width = =machine_nozzle_size/machine_nozzle_size*0.35 +wall_line_width_x = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_0_wipe_dist = =machine_nozzle_size/2 +speed_print = 60 +speed_wall = =math.ceil(speed_print * 45/60) +speed_wall_0 = =math.ceil(speed_wall * 33/45) +speed_topbottom = =math.ceil(speed_print * 40/60) +speed_layer_0 = =math.ceil(speed_print * 30/60) +speed_slowdown_layers = 2 +cool_fan_enabled = True +cool_fan_speed = 35 +cool_fan_speed_max = 100 +cool_min_layer_time_fan_speed_max = 20 +cool_min_layer_time = 11 +cool_fan_full_at_height = =layer_height_0 + 5 * layer_height +cool_min_speed = 10 +support_angle = 50 +material_print_temperature = =default_material_print_temperature + 5 +material_print_temperature_layer_0 = =default_material_print_temperature + 3 +material_flow = 93 +retraction_extra_prime_amount = 0.1 +retraction_min_travel = =3*line_width +retraction_hop_only_when_collides = True +skin_overlap = 10 +support_z_distance = =layer_height +support_bottom_distance = =support_z_distance +support_xy_distance = =line_width * 1.7 +support_xy_distance_overhang = =wall_line_width_0 +support_offset = 1 +support_interface_density = 100 +prime_tower_enable = True \ No newline at end of file diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_A.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_A.inst.cfg new file mode 100644 index 0000000000..ef2a07bd24 --- /dev/null +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_A.inst.cfg @@ -0,0 +1,47 @@ +[general] +version = 4 +name = A +definition = strateo3d + +[metadata] +setting_version = 16 +type = quality +quality_type = a +weight = 1 +material = emotiontech_asax +variant = Haute température 0.4 + +[values] +layer_height_0 = =round(0.5*machine_nozzle_size, 2) +line_width = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_line_width = =machine_nozzle_size/machine_nozzle_size*0.35 +wall_line_width_x = =machine_nozzle_size/machine_nozzle_size*0.3 +wall_0_wipe_dist = =machine_nozzle_size/2 +speed_print = 50 +speed_wall = =math.ceil(speed_print * 35/50) +speed_wall_0 = =math.ceil(speed_wall * 30/35) +speed_topbottom = =math.ceil(speed_print * 35/50) +speed_layer_0 = =math.ceil(speed_print * 20/50) +speed_slowdown_layers = 2 +cool_fan_enabled = True +cool_fan_speed = 40 +cool_fan_speed_max = 75 +cool_min_layer_time_fan_speed_max = 20 +cool_min_layer_time = 11 +cool_fan_full_at_height = =layer_height_0 + 19 * layer_height +cool_min_speed = 10 +support_angle = 65 +material_print_temperature = =default_material_print_temperature + 1 +material_print_temperature_layer_0 = =default_material_print_temperature + 3 +material_flow = 100 +retraction_extra_prime_amount = 0.1 +retraction_min_travel = =3*line_width +retraction_hop_only_when_collides = True +skin_overlap = 10 +support_z_distance = =layer_height +support_bottom_distance = =support_z_distance +support_xy_distance = =line_width * 1.5 +support_xy_distance_overhang = =wall_line_width_0 +support_offset = 1 +support_interface_density = 100 +prime_tower_enable = True \ No newline at end of file diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_B.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_B.inst.cfg new file mode 100644 index 0000000000..4dae7f1d00 --- /dev/null +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_B.inst.cfg @@ -0,0 +1,47 @@ +[general] +version = 4 +name = B +definition = strateo3d + +[metadata] +setting_version = 16 +type = quality +quality_type = b +weight = 0 +material = emotiontech_asax +variant = Haute température 0.4 + +[values] +layer_height_0 = =round(0.67*machine_nozzle_size, 2) +line_width = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_line_width = =machine_nozzle_size/machine_nozzle_size*0.35 +wall_line_width_x = =machine_nozzle_size/machine_nozzle_size*0.3 +wall_0_wipe_dist = =machine_nozzle_size/2 +speed_print = 55 +speed_wall = =math.ceil(speed_print * 37/55) +speed_wall_0 = =math.ceil(speed_wall * 33/37) +speed_topbottom = =math.ceil(speed_print * 37/55) +speed_layer_0 = =math.ceil(speed_print * 25/55) +speed_slowdown_layers = 2 +cool_fan_enabled = True +cool_fan_speed = 40 +cool_fan_speed_max = 75 +cool_min_layer_time_fan_speed_max = 20 +cool_min_layer_time = 11 +cool_fan_full_at_height = =layer_height_0 + 14 * layer_height +cool_min_speed = 10 +support_angle = 60 +material_print_temperature = =default_material_print_temperature + 3 +material_print_temperature_layer_0 = =default_material_print_temperature + 5 +material_flow = 96 +retraction_extra_prime_amount = 0.1 +retraction_min_travel = =3*line_width +retraction_hop_only_when_collides = True +skin_overlap = 15 +support_z_distance = =layer_height +support_bottom_distance = =support_z_distance +support_xy_distance = =line_width * 1.5 +support_xy_distance_overhang = =wall_line_width_0 +support_offset = 1 +support_interface_density = 100 +prime_tower_enable = True \ No newline at end of file diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_C.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_C.inst.cfg new file mode 100644 index 0000000000..7ae349108d --- /dev/null +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_C.inst.cfg @@ -0,0 +1,47 @@ +[general] +version = 4 +name = C +definition = strateo3d + +[metadata] +setting_version = 16 +type = quality +quality_type = c +weight = -1 +material = emotiontech_asax +variant = Haute température 0.4 + +[values] +layer_height_0 = =round(0.75*machine_nozzle_size, 2) +line_width = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_line_width = =machine_nozzle_size/machine_nozzle_size*0.35 +wall_line_width_x = =machine_nozzle_size/machine_nozzle_size*0.3 +wall_0_wipe_dist = =machine_nozzle_size/2 +speed_print = 60 +speed_wall = =math.ceil(speed_print * 40/60) +speed_wall_0 = =math.ceil(speed_wall * 35/40) +speed_topbottom = =math.ceil(speed_print * 40/60) +speed_layer_0 = =math.ceil(speed_print * 30/60) +speed_slowdown_layers = 2 +cool_fan_enabled = True +cool_fan_speed = 40 +cool_fan_speed_max = 75 +cool_min_layer_time_fan_speed_max = 20 +cool_min_layer_time = 11 +cool_fan_full_at_height = =layer_height_0 + 9 * layer_height +cool_min_speed = 10 +support_angle = 55 +material_print_temperature = =default_material_print_temperature + 5 +material_print_temperature_layer_0 = =default_material_print_temperature + 7 +material_flow = 91 +retraction_extra_prime_amount = 0.1 +retraction_min_travel = =3*line_width +retraction_hop_only_when_collides = True +skin_overlap = 20 +support_z_distance = =layer_height +support_bottom_distance = =support_z_distance +support_xy_distance = =line_width * 1.5 +support_xy_distance_overhang = =wall_line_width_0 +support_offset = 1 +support_interface_density = 100 +prime_tower_enable = True \ No newline at end of file diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_A.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_A.inst.cfg new file mode 100644 index 0000000000..9b3c491fdc --- /dev/null +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_A.inst.cfg @@ -0,0 +1,62 @@ +[general] +version = 4 +name = A +definition = strateo3d + +[metadata] +setting_version = 16 +type = quality +quality_type = a +weight = 1 +material = emotiontech_copa +variant = Haute température 0.4 + +[values] +layer_height_0 = =round(0.5*machine_nozzle_size, 2) +line_width = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_line_width = =machine_nozzle_size/machine_nozzle_size*0.35 +wall_line_width_x = =machine_nozzle_size/machine_nozzle_size*0.3 +wall_0_wipe_dist = =machine_nozzle_size/2 +wall_line_count = 3 +speed_print = 35 +speed_wall = =math.ceil(speed_print * 35/50) +speed_wall_0 = =math.ceil(speed_wall * 30/35) +speed_topbottom = =math.ceil(speed_print * 35/50) +speed_layer_0 = =math.ceil(speed_print * 20/50) +speed_slowdown_layers = 2 +cool_fan_enabled = True +cool_fan_speed = 20 +cool_fan_speed_max = 80 +cool_min_layer_time_fan_speed_max = 20 +cool_min_layer_time = 2 +cool_fan_full_at_height = =layer_height_0 + 2 * layer_height +cool_min_speed = 2 +cool_lift_head = True +support_angle = 45 +material_print_temperature = =default_material_print_temperature +material_print_temperature_layer_0 = =default_material_print_temperature + 5 +material_initial_print_temperature = =default_material_print_temperature +material_final_print_temperature = =default_material_print_temperature +material_flow = 91 +skin_material_flow = 92 +retraction_extra_prime_amount = 0.1 +retraction_min_travel = =3*line_width +retraction_hop_only_when_collides = True +skin_overlap = 10 +support_z_distance = =layer_height*2 +support_bottom_distance = =support_z_distance*0.5 +support_xy_distance = =line_width * 1.7 +support_xy_distance_overhang = =wall_line_width_0 +support_offset = 1 +support_interface_density = 100 +prime_tower_enable = True +bridge_settings_enabled = True +bridge_wall_coast = 50 +bridge_wall_speed = 8 +bridge_wall_material_flow = 50 +bridge_skin_speed = 8 +bridge_skin_material_flow = 60 +bridge_skin_density = 80 +bridge_fan_speed = 80 +meshfix_maximum_resolution = 0.5 +meshfix_maximum_deviation = 0.04 \ No newline at end of file diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_B.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_B.inst.cfg new file mode 100644 index 0000000000..03cbeb2aef --- /dev/null +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_B.inst.cfg @@ -0,0 +1,62 @@ +[general] +version = 4 +name = B +definition = strateo3d + +[metadata] +setting_version = 16 +type = quality +quality_type = b +weight = 0 +material = emotiontech_copa +variant = Haute température 0.4 + +[values] +layer_height_0 = =round(0.67*machine_nozzle_size, 2) +line_width = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_line_width = =machine_nozzle_size/machine_nozzle_size*0.35 +wall_line_width_x = =machine_nozzle_size/machine_nozzle_size*0.3 +wall_0_wipe_dist = =machine_nozzle_size/2 +wall_line_count = 3 +speed_print = 35 +speed_wall = =math.ceil(speed_print * 37/55) +speed_wall_0 = =math.ceil(speed_wall * 33/37) +speed_topbottom = =math.ceil(speed_print * 37/55) +speed_layer_0 = =math.ceil(speed_print * 25/55) +speed_slowdown_layers = 2 +cool_fan_enabled = True +cool_fan_speed = 20 +cool_fan_speed_max = 80 +cool_min_layer_time_fan_speed_max = 20 +cool_min_layer_time = 2 +cool_fan_full_at_height = =layer_height_0 + 2 * layer_height +cool_min_speed = 2 +cool_lift_head = True +support_angle = 60 +material_print_temperature = =default_material_print_temperature +material_print_temperature_layer_0 = =default_material_print_temperature + 5 +material_initial_print_temperature = =default_material_print_temperature +material_final_print_temperature = =default_material_print_temperature +material_flow = 91 +skin_material_flow = 92 +retraction_extra_prime_amount = 0.1 +retraction_min_travel = =3*line_width +retraction_hop_only_when_collides = True +skin_overlap = 15 +support_z_distance = =layer_height*2 +support_bottom_distance = =support_z_distance*0.5 +support_xy_distance = =line_width * 1.7 +support_xy_distance_overhang = =wall_line_width_0 +support_offset = 1 +support_interface_density = 100 +prime_tower_enable = True +bridge_settings_enabled = True +bridge_wall_coast = 50 +bridge_wall_speed = 8 +bridge_wall_material_flow = 50 +bridge_skin_speed = 8 +bridge_skin_material_flow = 60 +bridge_skin_density = 80 +bridge_fan_speed = 80 +meshfix_maximum_resolution = 0.5 +meshfix_maximum_deviation = 0.04 \ No newline at end of file diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_C.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_C.inst.cfg new file mode 100644 index 0000000000..a946c14468 --- /dev/null +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_C.inst.cfg @@ -0,0 +1,62 @@ +[general] +version = 4 +name = C +definition = strateo3d + +[metadata] +setting_version = 16 +type = quality +quality_type = c +weight = -1 +material = emotiontech_copa +variant = Haute température 0.4 + +[values] +layer_height_0 = =round(0.75*machine_nozzle_size, 2) +line_width = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_line_width = =machine_nozzle_size/machine_nozzle_size*0.35 +wall_line_width_x = =machine_nozzle_size/machine_nozzle_size*0.3 +wall_0_wipe_dist = =machine_nozzle_size/2 +wall_line_count = 3 +speed_print = 35 +speed_wall = =math.ceil(speed_print * 40/60) +speed_wall_0 = =math.ceil(speed_wall * 35/40) +speed_topbottom = =math.ceil(speed_print * 40/60) +speed_layer_0 = =math.ceil(speed_print * 30/60) +speed_slowdown_layers = 2 +cool_fan_enabled = True +cool_fan_speed = 20 +cool_fan_speed_max = 80 +cool_min_layer_time_fan_speed_max = 20 +cool_min_layer_time = 2 +cool_fan_full_at_height = =layer_height_0 + 2 * layer_height +cool_min_speed = 2 +cool_lift_head = True +support_angle = 60 +material_print_temperature = =default_material_print_temperature +material_print_temperature_layer_0 = =default_material_print_temperature + 5 +material_initial_print_temperature = =default_material_print_temperature +material_final_print_temperature = =default_material_print_temperature +material_flow = 91 +skin_material_flow = 92 +retraction_extra_prime_amount = 0.1 +retraction_min_travel = =3*line_width +retraction_hop_only_when_collides = True +skin_overlap = 20 +support_z_distance = =layer_height*2 +support_bottom_distance = =support_z_distance*0.5 +support_xy_distance = =line_width * 1.7 +support_xy_distance_overhang = =wall_line_width_0 +support_offset = 1 +support_interface_density = 100 +prime_tower_enable = True +bridge_settings_enabled = True +bridge_wall_coast = 50 +bridge_wall_speed = 8 +bridge_wall_material_flow = 50 +bridge_skin_speed = 8 +bridge_skin_material_flow = 60 +bridge_skin_density = 80 +bridge_fan_speed = 80 +meshfix_maximum_resolution = 0.5 +meshfix_maximum_deviation = 0.04 \ No newline at end of file diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_A.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_A.inst.cfg new file mode 100644 index 0000000000..24d2e40836 --- /dev/null +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_A.inst.cfg @@ -0,0 +1,50 @@ +[general] +version = 4 +name = A +definition = strateo3d + +[metadata] +setting_version = 16 +type = quality +quality_type = a +weight = 1 +material = emotiontech_hips +variant = Haute température 0.4 + +[values] +layer_height_0 = =round(0.5*machine_nozzle_size, 2) +line_width = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_line_width = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_line_width_x = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_0_wipe_dist = =machine_nozzle_size/2 +speed_print = 40 +speed_wall = =math.ceil(speed_print * 30/40) +speed_wall_0 = =math.ceil(speed_wall * 30/40) +speed_topbottom = =math.ceil(speed_print * 20/40) +speed_layer_0 = =math.ceil(speed_print * 20/40) +speed_slowdown_layers = 2 +cool_fan_enabled = True +cool_fan_speed = 50 +cool_fan_speed_max = 100 +cool_min_layer_time_fan_speed_max = 20 +cool_min_layer_time = 11 +cool_fan_full_at_height = =layer_height_0 + 14 * layer_height +cool_min_speed = 10 +support_angle = 55 +material_print_temperature = =default_material_print_temperature +material_print_temperature_layer_0 = =default_material_print_temperature +material_flow = 97 +retraction_extra_prime_amount = 0.1 +retraction_min_travel = =3*line_width +retraction_hop_only_when_collides = True +skin_overlap = 10 +support_bottom_stair_step_height = 0 +support_bottom_stair_step_width = 0 +support_z_distance = =layer_height-layer_height +support_bottom_distance = =support_z_distance +support_xy_distance = =line_width * 0.5 +support_xy_distance_overhang = =line_width*0 +support_offset = 3 +support_pattern = grid +support_interface_density = 100 +prime_tower_enable = True \ No newline at end of file diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_B.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_B.inst.cfg new file mode 100644 index 0000000000..b37f68fb72 --- /dev/null +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_B.inst.cfg @@ -0,0 +1,50 @@ +[general] +version = 4 +name = B +definition = strateo3d + +[metadata] +setting_version = 16 +type = quality +quality_type = b +weight = 0 +material = emotiontech_hips +variant = Haute température 0.4 + +[values] +layer_height_0 = =round(0.67*machine_nozzle_size, 2) +line_width = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_line_width = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_line_width_x = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_0_wipe_dist = =machine_nozzle_size/2 +speed_print = 40 +speed_wall = =math.ceil(speed_print * 30/40) +speed_wall_0 = =math.ceil(speed_wall * 30/40) +speed_topbottom = =math.ceil(speed_print * 20/40) +speed_layer_0 = =math.ceil(speed_print * 20/40) +speed_slowdown_layers = 2 +cool_fan_enabled = True +cool_fan_speed = 50 +cool_fan_speed_max = 100 +cool_min_layer_time_fan_speed_max = 20 +cool_min_layer_time = 11 +cool_fan_full_at_height = =layer_height_0 + 9 * layer_height +cool_min_speed = 10 +support_angle = 55 +material_print_temperature = =default_material_print_temperature + 3 +material_print_temperature_layer_0 = =default_material_print_temperature +material_flow = 97 +retraction_extra_prime_amount = 0.1 +retraction_min_travel = =3*line_width +retraction_hop_only_when_collides = True +skin_overlap = 15 +support_bottom_stair_step_height = 0 +support_bottom_stair_step_width = 0 +support_z_distance = =layer_height-layer_height +support_bottom_distance = =support_z_distance +support_xy_distance = =line_width * 0.5 +support_xy_distance_overhang = =line_width*0 +support_offset = 3 +support_pattern = grid +support_interface_density = 100 +prime_tower_enable = True \ No newline at end of file diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_C.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_C.inst.cfg new file mode 100644 index 0000000000..bd6d44edbe --- /dev/null +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_C.inst.cfg @@ -0,0 +1,50 @@ +[general] +version = 4 +name = C +definition = strateo3d + +[metadata] +setting_version = 16 +type = quality +quality_type = c +weight = -1 +material = emotiontech_hips +variant = Haute température 0.4 + +[values] +layer_height_0 = =round(0.75*machine_nozzle_size, 2) +line_width = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_line_width = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_line_width_x = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_0_wipe_dist = =machine_nozzle_size/2 +speed_print = 40 +speed_wall = =math.ceil(speed_print * 30/40) +speed_wall_0 = =math.ceil(speed_wall * 30/40) +speed_topbottom = =math.ceil(speed_print * 20/40) +speed_layer_0 = =math.ceil(speed_print * 20/40) +speed_slowdown_layers = 2 +cool_fan_enabled = True +cool_fan_speed = 50 +cool_fan_speed_max = 100 +cool_min_layer_time_fan_speed_max = 20 +cool_min_layer_time = 11 +cool_fan_full_at_height = =layer_height_0 + 4 * layer_height +cool_min_speed = 10 +support_angle = 55 +material_print_temperature = =default_material_print_temperature + 5 +material_print_temperature_layer_0 = =default_material_print_temperature +material_flow = 97 +retraction_extra_prime_amount = 0.1 +retraction_min_travel = =3*line_width +retraction_hop_only_when_collides = True +skin_overlap = 20 +support_bottom_stair_step_height = 0 +support_bottom_stair_step_width = 0 +support_z_distance = =layer_height-layer_height +support_bottom_distance = =support_z_distance +support_xy_distance = =line_width * 0.5 +support_xy_distance_overhang = =line_width*0 +support_offset = 3 +support_pattern = grid +support_interface_density = 100 +prime_tower_enable = True \ No newline at end of file diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_A.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_A.inst.cfg new file mode 100644 index 0000000000..9e364db0ea --- /dev/null +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_A.inst.cfg @@ -0,0 +1,61 @@ +[general] +version = 4 +name = A +definition = strateo3d + +[metadata] +setting_version = 16 +type = quality +quality_type = a +weight = 1 +material = emotiontech_pc +variant = Haute température 0.4 + +[values] +layer_height_0 = =round(0.5*machine_nozzle_size, 2) +line_width = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_line_width = =machine_nozzle_size/machine_nozzle_size*0.35 +wall_line_width_x = =machine_nozzle_size/machine_nozzle_size*0.3 +wall_0_wipe_dist = =machine_nozzle_size/2 +speed_print = 35 +speed_wall = =math.ceil(speed_print * 35/50) +speed_wall_0 = =math.ceil(speed_wall * 30/35) +speed_topbottom = =math.ceil(speed_print * 35/50) +speed_layer_0 = =math.ceil(speed_print * 20/50) +speed_slowdown_layers = 2 +cool_fan_enabled = True +cool_fan_speed = 10 +cool_fan_speed_max = 10 +cool_min_layer_time_fan_speed_max = 20 +cool_min_layer_time = 2 +cool_fan_full_at_height = =layer_height_0 + 2 * layer_height +cool_min_speed = 12 +support_angle = 60 +cool_lift_head = true +material_print_temperature = 260 +material_print_temperature_layer_0 = 265 +material_flow = 88 +wall_line_count = 3 +retraction_extra_prime_amount = 0.1 +retraction_speed = 30 +retraction_min_travel = =3*line_width +retraction_hop_only_when_collides = True +skin_overlap = 10 +support_z_distance = =layer_height +support_bottom_distance = =support_z_distance*0.5 +support_xy_distance = =line_width * 1.7 +support_xy_distance_overhang = =wall_line_width_0 +support_offset = 1 +support_interface_density = 100 +prime_tower_enable = True +adhesion_type = brim + +bridge_settings_enabled = True +bridge_wall_coast = 50 +bridge_wall_speed = 12 +bridge_wall_material_flow = 50 +bridge_skin_speed = 12.5 +bridge_skin_material_flow = 100 +bridge_skin_density = 80 +bridge_fan_speed = 100 + diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_B.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_B.inst.cfg new file mode 100644 index 0000000000..1327c9ecd5 --- /dev/null +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_B.inst.cfg @@ -0,0 +1,61 @@ +[general] +version = 4 +name = B +definition = strateo3d + +[metadata] +setting_version = 16 +type = quality +quality_type = b +weight = 0 +material = emotiontech_pc +variant = Haute température 0.4 + +[values] +layer_height_0 = =round(0.67*machine_nozzle_size, 2) +line_width = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_line_width = =machine_nozzle_size/machine_nozzle_size*0.35 +wall_line_width_x = =machine_nozzle_size/machine_nozzle_size*0.3 +wall_0_wipe_dist = =machine_nozzle_size/2 +speed_print = 35 +speed_wall = =math.ceil(speed_print * 37/55) +speed_wall_0 = =math.ceil(speed_wall * 33/37) +speed_topbottom = =math.ceil(speed_print * 37/55) +speed_layer_0 = =math.ceil(speed_print * 25/55) +speed_slowdown_layers = 2 +cool_fan_enabled = True +cool_fan_speed = 10 +cool_fan_speed_max = 10 +cool_min_layer_time_fan_speed_max = 20 +cool_min_layer_time = 2 +cool_fan_full_at_height = =layer_height_0 + 2 * layer_height +cool_min_speed = 12 +cool_lift_head = true +support_angle = 60 +material_print_temperature = 270 +material_print_temperature_layer_0 = 275 +material_flow = 88 +wall_line_count = 3 +retraction_speed = 30 +retraction_extra_prime_amount = 0.1 +retraction_min_travel = =3*line_width +retraction_hop_only_when_collides = True +skin_overlap = 15 +support_z_distance = =layer_height +support_bottom_distance = =support_z_distance*0.5 +support_xy_distance = =line_width * 1.7 +support_xy_distance_overhang = =wall_line_width_0 +support_offset = 1 +support_interface_density = 100 +prime_tower_enable = True + +adhesion_type = brim + +bridge_settings_enabled = True +bridge_wall_coast = 50 +bridge_wall_speed = 12 +bridge_wall_material_flow = 50 +bridge_skin_speed = 12.5 +bridge_skin_material_flow = 100 +bridge_skin_density = 80 +bridge_fan_speed = 100 diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_C.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_C.inst.cfg new file mode 100644 index 0000000000..f8fa66eb11 --- /dev/null +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_C.inst.cfg @@ -0,0 +1,61 @@ +[general] +version = 4 +name = C +definition = strateo3d + +[metadata] +setting_version = 16 +type = quality +quality_type = c +weight = -1 +material = emotiontech_pc +variant = Haute température 0.4 + +[values] +layer_height_0 = =round(0.75*machine_nozzle_size, 2) +line_width = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_line_width = =machine_nozzle_size/machine_nozzle_size*0.35 +wall_line_width_x = =machine_nozzle_size/machine_nozzle_size*0.3 +wall_0_wipe_dist = =machine_nozzle_size/2 +speed_print = 35 +speed_wall = =math.ceil(speed_print * 40/60) +speed_wall_0 = =math.ceil(speed_wall * 35/40) +speed_topbottom = =math.ceil(speed_print * 40/60) +speed_layer_0 = =math.ceil(speed_print * 30/60) +speed_slowdown_layers = 2 +cool_fan_enabled = True +cool_fan_speed = 10 +cool_fan_speed_max = 10 +cool_min_layer_time_fan_speed_max = 20 +cool_min_layer_time = 2 +cool_fan_full_at_height = =layer_height_0 + 2 * layer_height +cool_min_speed = 12 +support_angle = 60 +cool_lift_head = true +material_print_temperature = 270 +material_print_temperature_layer_0 = 275 +material_flow = 88 +wall_line_count = 3 +retraction_speed = 30 +retraction_extra_prime_amount = 0.1 +retraction_min_travel = =3*line_width +retraction_hop_only_when_collides = True +skin_overlap = 20 +support_z_distance = =layer_height +support_bottom_distance = =support_z_distance*0.5 +support_xy_distance = =line_width * 1.7 +support_xy_distance_overhang = =wall_line_width_0 +support_offset = 1 +support_interface_density = 100 +prime_tower_enable = True + +adhesion_type = brim + +bridge_settings_enabled = True +bridge_wall_coast = 50 +bridge_wall_speed = 12 +bridge_wall_material_flow = 50 +bridge_skin_speed = 12.5 +bridge_skin_material_flow = 100 +bridge_skin_density = 80 +bridge_fan_speed = 100 diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PEKK_B.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PEKK_B.inst.cfg new file mode 100644 index 0000000000..477421f34d --- /dev/null +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PEKK_B.inst.cfg @@ -0,0 +1,58 @@ +[general] +version = 4 +name = B +definition = strateo3d + +[metadata] +setting_version = 16 +type = quality +quality_type = b +weight = 0 +material = emotiontech_pekk +variant = Haute température 0.4 + +[values] +layer_height_0 = =round(0.75*machine_nozzle_size, 2) +line_width = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_line_width = =machine_nozzle_size/machine_nozzle_size*0.35 +wall_line_width_x = =machine_nozzle_size/machine_nozzle_size*0.3 +initial_layer_line_width_factor = 120 +material_flow_layer_0 = 120 +wall_0_wipe_dist = =machine_nozzle_size/2 +speed_print = 40 +speed_wall = =math.ceil(speed_print * 37/55) +speed_wall_0 = =math.ceil(speed_wall * 33/37) +speed_topbottom = =math.ceil(speed_print * 37/55) +speed_layer_0 = 10 +speed_travel_layer_0 = 100 +skirt_brim_speed = 5 +speed_slowdown_layers = 2 +cool_fan_enabled = True +cool_fan_speed = 30 +cool_fan_speed_max = 30 +cool_min_layer_time_fan_speed_max = 10 +cool_min_layer_time = 11 +cool_fan_full_layer = 2 +cool_min_speed = 5 +support_angle = 45 +material_print_temperature = =default_material_print_temperature +material_print_temperature_layer_0 = =default_material_print_temperature + 15 +material_flow = 105 +retraction_extra_prime_amount = 0.1 +retraction_min_travel = =3*line_width +retraction_hop_only_when_collides = True +skin_overlap = 15 +support_z_distance = =layer_height +support_bottom_distance = =support_z_distance +support_xy_distance = =line_width * 1.7 +support_xy_distance_overhang = =wall_line_width_0 +support_offset = 1 +support_interface_density = 105 +prime_tower_enable = True +bridge_settings_enabled = True +bridge_wall_speed = 5 +bridge_wall_material_flow = 185 +bridge_skin_speed = =bridge_wall_speed +bridge_skin_material_flow = =bridge_wall_material_flow +bridge_fan_speed = 100 +bridge_enable_more_layers = False \ No newline at end of file diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_A.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_A.inst.cfg new file mode 100644 index 0000000000..b7cf65aff9 --- /dev/null +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_A.inst.cfg @@ -0,0 +1,47 @@ +[general] +version = 4 +name = A +definition = strateo3d + +[metadata] +setting_version = 16 +type = quality +quality_type = a +weight = 1 +material = emotiontech_petg +variant = Haute température 0.4 + +[values] +layer_height_0 = =round(0.5*machine_nozzle_size, 2) +line_width = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_line_width = =machine_nozzle_size/machine_nozzle_size*0.35 +wall_line_width_x = =machine_nozzle_size/machine_nozzle_size*0.3 +wall_0_wipe_dist = =machine_nozzle_size/2 +speed_print = 50 +speed_wall = =math.ceil(speed_print * 35/50) +speed_wall_0 = =math.ceil(speed_wall * 30/35) +speed_topbottom = =math.ceil(speed_print * 35/50) +speed_layer_0 = =math.ceil(speed_print * 20/50) +speed_slowdown_layers = 2 +cool_fan_enabled = True +cool_fan_speed = 50 +cool_fan_speed_max = 100 +cool_min_layer_time_fan_speed_max = 20 +cool_min_layer_time = 11 +cool_fan_full_at_height = =layer_height_0 + 3 * layer_height +cool_min_speed = 10 +support_angle = 65 +material_print_temperature = =default_material_print_temperature +material_print_temperature_layer_0 = =default_material_print_temperature +material_flow = 98 +retraction_extra_prime_amount = 0 +retraction_min_travel = =3*line_width +retraction_hop_only_when_collides = True +skin_overlap = 10 +support_z_distance = =layer_height*2 +support_bottom_distance = =support_z_distance*0.5 +support_xy_distance = =line_width * 1.7 +support_xy_distance_overhang = =wall_line_width_0 +support_offset = 1 +support_interface_density = 100 +prime_tower_enable = True \ No newline at end of file diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_B.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_B.inst.cfg new file mode 100644 index 0000000000..7fd7b70ffc --- /dev/null +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_B.inst.cfg @@ -0,0 +1,47 @@ +[general] +version = 4 +name = B +definition = strateo3d + +[metadata] +setting_version = 16 +type = quality +quality_type = b +weight = 0 +material = emotiontech_petg +variant = Haute température 0.4 + +[values] +layer_height_0 = =round(0.67*machine_nozzle_size, 2) +line_width = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_line_width = =machine_nozzle_size/machine_nozzle_size*0.35 +wall_line_width_x = =machine_nozzle_size/machine_nozzle_size*0.3 +wall_0_wipe_dist = =machine_nozzle_size/2 +speed_print = 55 +speed_wall = =math.ceil(speed_print * 37/55) +speed_wall_0 = =math.ceil(speed_wall * 33/37) +speed_topbottom = =math.ceil(speed_print * 37/55) +speed_layer_0 = =math.ceil(speed_print * 25/55) +speed_slowdown_layers = 2 +cool_fan_enabled = True +cool_fan_speed = 50 +cool_fan_speed_max = 100 +cool_min_layer_time_fan_speed_max = 20 +cool_min_layer_time = 11 +cool_fan_full_at_height = =layer_height_0 + 3 * layer_height +cool_min_speed = 10 +support_angle = 60 +material_print_temperature = =default_material_print_temperature + 5 +material_print_temperature_layer_0 = =default_material_print_temperature +material_flow = 95 +retraction_extra_prime_amount = 0 +retraction_min_travel = =3*line_width +retraction_hop_only_when_collides = True +skin_overlap = 15 +support_z_distance = =layer_height*2 +support_bottom_distance = =support_z_distance*0.5 +support_xy_distance = =line_width * 1.7 +support_xy_distance_overhang = =wall_line_width_0 +support_offset = 1 +support_interface_density = 100 +prime_tower_enable = True \ No newline at end of file diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_C.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_C.inst.cfg new file mode 100644 index 0000000000..3681b09d57 --- /dev/null +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_C.inst.cfg @@ -0,0 +1,47 @@ +[general] +version = 4 +name = C +definition = strateo3d + +[metadata] +setting_version = 16 +type = quality +quality_type = c +weight = -1 +material = emotiontech_petg +variant = Haute température 0.4 + +[values] +layer_height_0 = =round(0.75*machine_nozzle_size, 2) +line_width = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_line_width = =machine_nozzle_size/machine_nozzle_size*0.35 +wall_line_width_x = =machine_nozzle_size/machine_nozzle_size*0.3 +wall_0_wipe_dist = =machine_nozzle_size/2 +speed_print = 60 +speed_wall = =math.ceil(speed_print * 40/60) +speed_wall_0 = =math.ceil(speed_wall * 35/40) +speed_topbottom = =math.ceil(speed_print * 40/60) +speed_layer_0 = =math.ceil(speed_print * 30/60) +speed_slowdown_layers = 2 +cool_fan_enabled = True +cool_fan_speed = 50 +cool_fan_speed_max = 100 +cool_min_layer_time_fan_speed_max = 20 +cool_min_layer_time = 11 +cool_fan_full_at_height = =layer_height_0 + 3 * layer_height +cool_min_speed = 10 +support_angle = 55 +material_print_temperature = =default_material_print_temperature + 10 +material_print_temperature_layer_0 = =default_material_print_temperature +5 +material_flow = 91 +retraction_extra_prime_amount = 0 +retraction_min_travel = =3*line_width +retraction_hop_only_when_collides = True +skin_overlap = 20 +support_z_distance = =layer_height*2 +support_bottom_distance = =support_z_distance*0.5 +support_xy_distance = =line_width * 1.7 +support_xy_distance_overhang = =wall_line_width_0 +support_offset = 1 +support_interface_density = 100 +prime_tower_enable = True \ No newline at end of file diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_A.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_A.inst.cfg new file mode 100644 index 0000000000..7ef79ade3f --- /dev/null +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_A.inst.cfg @@ -0,0 +1,47 @@ +[general] +version = 4 +name = A +definition = strateo3d + +[metadata] +setting_version = 16 +type = quality +quality_type = a +weight = 1 +material = emotiontech_pla +variant = Haute température 0.4 + +[values] +layer_height_0 = =round(0.5*machine_nozzle_size, 2) +line_width = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_line_width = =machine_nozzle_size/machine_nozzle_size*0.35 +wall_line_width_x = =machine_nozzle_size/machine_nozzle_size*0.3 +wall_0_wipe_dist = =machine_nozzle_size/2 +speed_print = 50 +speed_wall = =math.ceil(speed_print * 35/50) +speed_wall_0 = =math.ceil(speed_wall * 30/35) +speed_topbottom = =math.ceil(speed_print * 35/50) +speed_layer_0 = =math.ceil(speed_print * 20/50) +speed_slowdown_layers = 2 +cool_fan_enabled = True +cool_fan_speed = 100 +cool_fan_speed_max = 100 +cool_min_layer_time_fan_speed_max = 20 +cool_min_layer_time = 11 +cool_fan_full_at_height = =layer_height_0 + 2 * layer_height +cool_min_speed = 10 +support_angle = 65 +material_print_temperature = =default_material_print_temperature +material_print_temperature_layer_0 = =default_material_print_temperature -5 +material_flow = 98 +retraction_extra_prime_amount = 0.1 +retraction_min_travel = =3*line_width +retraction_hop_only_when_collides = True +skin_overlap = 10 +support_z_distance = =layer_height*2 +support_bottom_distance = =support_z_distance*0.5 +support_xy_distance = =line_width * 1.7 +support_xy_distance_overhang = =wall_line_width_0 +support_offset = 1 +support_interface_density = 100 +prime_tower_enable = True \ No newline at end of file diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_B.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_B.inst.cfg new file mode 100644 index 0000000000..09286b3750 --- /dev/null +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_B.inst.cfg @@ -0,0 +1,47 @@ +[general] +version = 4 +name = B +definition = strateo3d + +[metadata] +setting_version = 16 +type = quality +quality_type = b +weight = 0 +material = emotiontech_pla +variant = Haute température 0.4 + +[values] +layer_height_0 = =round(0.67*machine_nozzle_size, 2) +line_width = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_line_width = =machine_nozzle_size/machine_nozzle_size*0.35 +wall_line_width_x = =machine_nozzle_size/machine_nozzle_size*0.3 +wall_0_wipe_dist = =machine_nozzle_size/2 +speed_print = 55 +speed_wall = =math.ceil(speed_print * 37/55) +speed_wall_0 = =math.ceil(speed_wall * 33/37) +speed_topbottom = =math.ceil(speed_print * 37/55) +speed_layer_0 = =math.ceil(speed_print * 25/55) +speed_slowdown_layers = 2 +cool_fan_enabled = True +cool_fan_speed = 100 +cool_fan_speed_max = 100 +cool_min_layer_time_fan_speed_max = 20 +cool_min_layer_time = 11 +cool_fan_full_at_height = =layer_height_0 + 2 * layer_height +cool_min_speed = 10 +support_angle = 60 +material_print_temperature = =default_material_print_temperature + 5 +material_print_temperature_layer_0 = =default_material_print_temperature +material_flow = 95 +retraction_extra_prime_amount = 0.1 +retraction_min_travel = =3*line_width +retraction_hop_only_when_collides = True +skin_overlap = 15 +support_z_distance = =layer_height*2 +support_bottom_distance = =support_z_distance*0.5 +support_xy_distance = =line_width * 1.7 +support_xy_distance_overhang = =wall_line_width_0 +support_offset = 1 +support_interface_density = 100 +prime_tower_enable = True \ No newline at end of file diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_C.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_C.inst.cfg new file mode 100644 index 0000000000..a96d5db856 --- /dev/null +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_C.inst.cfg @@ -0,0 +1,47 @@ +[general] +version = 4 +name = C +definition = strateo3d + +[metadata] +setting_version = 16 +type = quality +quality_type = c +weight = -1 +material = emotiontech_pla +variant = Haute température 0.4 + +[values] +layer_height_0 = =round(0.75*machine_nozzle_size, 2) +line_width = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_line_width = =machine_nozzle_size/machine_nozzle_size*0.35 +wall_line_width_x = =machine_nozzle_size/machine_nozzle_size*0.3 +wall_0_wipe_dist = =machine_nozzle_size/2 +speed_print = 60 +speed_wall = =math.ceil(speed_print * 40/60) +speed_wall_0 = =math.ceil(speed_wall * 35/40) +speed_topbottom = =math.ceil(speed_print * 40/60) +speed_layer_0 = =math.ceil(speed_print * 30/60) +speed_slowdown_layers = 2 +cool_fan_enabled = True +cool_fan_speed = 100 +cool_fan_speed_max = 100 +cool_min_layer_time_fan_speed_max = 20 +cool_min_layer_time = 11 +cool_fan_full_at_height = =layer_height_0 + 2 * layer_height +cool_min_speed = 10 +support_angle = 55 +material_print_temperature = =default_material_print_temperature + 10 +material_print_temperature_layer_0 = =default_material_print_temperature + 5 +material_flow = 91 +retraction_extra_prime_amount = 0.1 +retraction_min_travel = =3*line_width +retraction_hop_only_when_collides = True +skin_overlap = 20 +support_z_distance = =layer_height*2 +support_bottom_distance = =support_z_distance*0.5 +support_xy_distance = =line_width * 1.7 +support_xy_distance_overhang = =wall_line_width_0 +support_offset = 1 +support_interface_density = 100 +prime_tower_enable = True \ No newline at end of file diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_A.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_A.inst.cfg new file mode 100644 index 0000000000..c09f6ff1a5 --- /dev/null +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_A.inst.cfg @@ -0,0 +1,55 @@ +[general] +version = 4 +name = A +definition = strateo3d + +[metadata] +setting_version = 16 +type = quality +quality_type = a +weight = 1 +material = emotiontech_pla_hr_870 +variant = Haute température 0.4 + +[values] +layer_height_0 = =round(0.5*machine_nozzle_size, 2) +line_width = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_line_width = =machine_nozzle_size/machine_nozzle_size*0.35 +wall_line_width_x = =machine_nozzle_size/machine_nozzle_size*0.3 +wall_0_wipe_dist = =machine_nozzle_size/2 +wall_line_count = 3 +speed_print = 30 +speed_wall = =math.ceil(speed_print * 35/50) +speed_wall_0 = =math.ceil(speed_wall * 30/35) +speed_topbottom = =math.ceil(speed_print * 35/50) +speed_layer_0 = =math.ceil(speed_print * 20/50) +speed_slowdown_layers = 2 +cool_fan_enabled = True +cool_fan_speed = 100 +cool_fan_speed_max = 100 +cool_min_layer_time_fan_speed_max = 20 +cool_min_layer_time = 2 +cool_fan_full_at_height = =layer_height_0 + 2 * layer_height +cool_min_speed = 4 +support_angle = 65 +material_print_temperature = =default_material_print_temperature + 5 +material_print_temperature_layer_0 = =default_material_print_temperature + 10 +material_initial_print_temperature = =default_material_print_temperature + 5 +material_final_print_temperature = =default_material_print_temperature + 5 +material_flow = 91 +skin_material_flow = 92 +retraction_amount = 2 +retraction_extra_prime_amount = 0.1 +retraction_min_travel = =3*line_width +retraction_hop_only_when_collides = True +skin_overlap = 10 +support_z_distance = =layer_height*2 +support_bottom_distance = =support_z_distance*0.5 +support_xy_distance = =line_width * 1.7 +support_xy_distance_overhang = =wall_line_width_0 +support_offset = 1 +support_interface_density = 100 +prime_tower_enable = True +meshfix_maximum_resolution = 0.5 +meshfix_maximum_deviation = 0.04 +cool_lift_head = True \ No newline at end of file diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_B.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_B.inst.cfg new file mode 100644 index 0000000000..343401e742 --- /dev/null +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_B.inst.cfg @@ -0,0 +1,54 @@ +[general] +version = 4 +name = B +definition = strateo3d + +[metadata] +setting_version = 16 +type = quality +quality_type = b +weight = 0 +material = emotiontech_pla_hr_870 +variant = Haute température 0.4 + +[values] +layer_height_0 = =round(0.67*machine_nozzle_size, 2) +line_width = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_line_width = =machine_nozzle_size/machine_nozzle_size*0.35 +wall_line_width_x = =machine_nozzle_size/machine_nozzle_size*0.3 +wall_0_wipe_dist = =machine_nozzle_size/2 +speed_print = 40 +speed_wall = =math.ceil(speed_print * 37/55) +speed_wall_0 = =math.ceil(speed_wall * 33/37) +speed_topbottom = =math.ceil(speed_print * 37/55) +speed_layer_0 = =math.ceil(speed_print * 25/55) +speed_slowdown_layers = 2 +cool_fan_enabled = True +cool_fan_speed = 100 +cool_fan_speed_max = 100 +cool_min_layer_time_fan_speed_max = 20 +cool_min_layer_time = 2 +cool_fan_full_at_height = =layer_height_0 + 2 * layer_height +cool_min_speed = 4 +support_angle = 60 +material_print_temperature = =default_material_print_temperature +material_print_temperature_layer_0 = =default_material_print_temperature + 5 +material_initial_print_temperature = =default_material_print_temperature +material_final_print_temperature = =default_material_print_temperature +material_flow = 91 +skin_material_flow = 92 +retraction_amount = 2 +retraction_extra_prime_amount = 0.1 +retraction_min_travel = =3*line_width +retraction_hop_only_when_collides = True +skin_overlap = 15 +support_z_distance = =layer_height*2 +support_bottom_distance = =support_z_distance*0.5 +support_xy_distance = =line_width * 1.7 +support_xy_distance_overhang = =wall_line_width_0 +support_offset = 1 +support_interface_density = 100 +prime_tower_enable = True +meshfix_maximum_resolution = 0.5 +meshfix_maximum_deviation = 0.04 +cool_lift_head = True \ No newline at end of file diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_C.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_C.inst.cfg new file mode 100644 index 0000000000..0da9abc580 --- /dev/null +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_C.inst.cfg @@ -0,0 +1,54 @@ +[general] +version = 4 +name = C +definition = strateo3d + +[metadata] +setting_version = 16 +type = quality +quality_type = c +weight = -1 +material = emotiontech_pla_hr_870 +variant = Haute température 0.4 + +[values] +layer_height_0 = =round(0.75*machine_nozzle_size, 2) +line_width = =machine_nozzle_size/machine_nozzle_size*0.4 +wall_line_width = =machine_nozzle_size/machine_nozzle_size*0.35 +wall_line_width_x = =machine_nozzle_size/machine_nozzle_size*0.3 +wall_0_wipe_dist = =machine_nozzle_size/2 +speed_print = 40 +speed_wall = =math.ceil(speed_print * 40/60) +speed_wall_0 = =math.ceil(speed_wall * 35/40) +speed_topbottom = =math.ceil(speed_print * 40/60) +speed_layer_0 = =math.ceil(speed_print * 30/60) +speed_slowdown_layers = 2 +cool_fan_enabled = True +cool_fan_speed = 100 +cool_fan_speed_max = 100 +cool_min_layer_time_fan_speed_max = 20 +cool_min_layer_time = 2 +cool_fan_full_at_height = =layer_height_0 + 2 * layer_height +cool_min_speed = 4 +support_angle = 55 +material_print_temperature = =default_material_print_temperature +material_print_temperature_layer_0 = =default_material_print_temperature + 5 +material_initial_print_temperature = =default_material_print_temperature +material_final_print_temperature = =default_material_print_temperature +material_flow = 91 +skin_material_flow = 92 +retraction_amount = 2 +retraction_extra_prime_amount = 0.1 +retraction_min_travel = =3*line_width +retraction_hop_only_when_collides = True +skin_overlap = 20 +support_z_distance = =layer_height*2 +support_bottom_distance = =support_z_distance*0.5 +support_xy_distance = =line_width * 1.7 +support_xy_distance_overhang = =wall_line_width_0 +support_offset = 1 +support_interface_density = 100 +prime_tower_enable = True +meshfix_maximum_resolution = 0.5 +meshfix_maximum_deviation = 0.04 +cool_lift_head = True \ No newline at end of file diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_A.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_A.inst.cfg new file mode 100644 index 0000000000..b30dab1625 --- /dev/null +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_A.inst.cfg @@ -0,0 +1,47 @@ +[general] +version = 4 +name = A +definition = strateo3d + +[metadata] +setting_version = 16 +type = quality +quality_type = a +weight = 1 +material = emotiontech_tpu98a +variant = Haute température 0.4 + +[values] +layer_height_0 = =round(0.5*machine_nozzle_size, 2) +line_width = =machine_nozzle_size/machine_nozzle_size*0.38 +wall_line_width = =machine_nozzle_size/machine_nozzle_size*0.38 +wall_line_width_x = =machine_nozzle_size/machine_nozzle_size*0.38 +wall_0_wipe_dist = =machine_nozzle_size/2 +speed_print = 30 +speed_wall = =math.ceil(speed_print * 30/30) +speed_wall_0 = =math.ceil(speed_print * 25/30) +speed_topbottom = =math.ceil(speed_print * 25/30) +speed_layer_0 = =math.ceil(speed_print * 20/30) +speed_slowdown_layers = 1 +cool_fan_enabled = True +cool_fan_speed = 50 +cool_fan_speed_max = 100 +cool_min_layer_time_fan_speed_max = 20 +cool_min_layer_time = 11 +cool_fan_full_at_height = =layer_height_0 + 4 * layer_height +cool_min_speed = 10 +support_angle = 50 +material_print_temperature = =default_material_print_temperature + 3 +material_print_temperature_layer_0 = =default_material_print_temperature - 3 +material_flow = 107 +retraction_extra_prime_amount = 0.2 +retraction_min_travel = =3*line_width +retraction_hop_only_when_collides = False +skin_overlap = 5 +support_z_distance = =layer_height*2 +support_bottom_distance = =support_z_distance*0.5 +support_xy_distance = =line_width * 2.5 +support_xy_distance_overhang = =wall_line_width_0 +support_offset = 0.5 +support_interface_density = 100 +prime_tower_enable = True \ No newline at end of file diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_B.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_B.inst.cfg new file mode 100644 index 0000000000..66cf22d23e --- /dev/null +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_B.inst.cfg @@ -0,0 +1,47 @@ +[general] +version = 4 +name = B +definition = strateo3d + +[metadata] +setting_version = 16 +type = quality +quality_type = b +weight = 0 +material = emotiontech_tpu98a +variant = Haute température 0.4 + +[values] +layer_height_0 = =round(0.67*machine_nozzle_size, 2) +line_width = =machine_nozzle_size/machine_nozzle_size*0.38 +wall_line_width = =machine_nozzle_size/machine_nozzle_size*0.38 +wall_line_width_x = =machine_nozzle_size/machine_nozzle_size*0.38 +wall_0_wipe_dist = =machine_nozzle_size/2 +speed_print = 35 +speed_wall = =math.ceil(speed_print * 35/35) +speed_wall_0 = =math.ceil(speed_print * 27/35) +speed_topbottom = =math.ceil(speed_print * 25/35) +speed_layer_0 = =math.ceil(speed_print * 20/35) +speed_slowdown_layers = 1 +cool_fan_enabled = True +cool_fan_speed = 50 +cool_fan_speed_max = 100 +cool_min_layer_time_fan_speed_max = 20 +cool_min_layer_time = 11 +cool_fan_full_at_height = =layer_height_0 + 4 * layer_height +cool_min_speed = 10 +support_angle = 50 +material_print_temperature = =default_material_print_temperature + 5 +material_print_temperature_layer_0 = =default_material_print_temperature +material_flow = 103 +retraction_extra_prime_amount = 0.2 +retraction_min_travel = =3*line_width +retraction_hop_only_when_collides = False +skin_overlap = 5 +support_z_distance = =layer_height*2 +support_bottom_distance = =support_z_distance*0.5 +support_xy_distance = =line_width * 2.5 +support_xy_distance_overhang = =wall_line_width_0 +support_offset = 0.5 +support_interface_density = 100 +prime_tower_enable = True \ No newline at end of file diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_C.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_C.inst.cfg new file mode 100644 index 0000000000..c5ab72edfe --- /dev/null +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_C.inst.cfg @@ -0,0 +1,47 @@ +[general] +version = 4 +name = C +definition = strateo3d + +[metadata] +setting_version = 16 +type = quality +quality_type = c +weight = -1 +material = emotiontech_tpu98a +variant = Haute température 0.4 + +[values] +layer_height_0 = =round(0.75*machine_nozzle_size, 2) +line_width = =machine_nozzle_size/machine_nozzle_size*0.38 +wall_line_width = =machine_nozzle_size/machine_nozzle_size*0.38 +wall_line_width_x = =machine_nozzle_size/machine_nozzle_size*0.38 +wall_0_wipe_dist = =machine_nozzle_size/2 +speed_print = 40 +speed_wall = =math.ceil(speed_print * 40/40) +speed_wall_0 = =math.ceil(speed_print * 30/40) +speed_topbottom = =math.ceil(speed_print * 27/40) +speed_layer_0 = =math.ceil(speed_print * 20/40) +speed_slowdown_layers = 1 +cool_fan_enabled = True +cool_fan_speed = 50 +cool_fan_speed_max = 100 +cool_min_layer_time_fan_speed_max = 20 +cool_min_layer_time = 11 +cool_fan_full_at_height = =layer_height_0 + 4 * layer_height +cool_min_speed = 10 +support_angle = 50 +material_print_temperature = =default_material_print_temperature + 7 +material_print_temperature_layer_0 = =default_material_print_temperature + 3 +material_flow = 101 +retraction_extra_prime_amount = 0.2 +retraction_min_travel = =3*line_width +retraction_hop_only_when_collides = False +skin_overlap = 5 +support_z_distance = =layer_height*2 +support_bottom_distance = =support_z_distance*0.5 +support_xy_distance = =line_width * 2.5 +support_xy_distance_overhang = =wall_line_width_0 +support_offset = 0.5 +support_interface_density = 100 +prime_tower_enable = True \ No newline at end of file diff --git a/resources/variants/strateo3d_haute_temperature_04.inst.cfg b/resources/variants/strateo3d_haute_temperature_04.inst.cfg new file mode 100644 index 0000000000..2f7bd5f88f --- /dev/null +++ b/resources/variants/strateo3d_haute_temperature_04.inst.cfg @@ -0,0 +1,21 @@ +[general] +name = Haute température 0.4 +version = 4 +definition = strateo3d + +[metadata] +setting_version = 16 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_id = HT0.4 +machine_nozzle_size = 0.4 +machine_nozzle_tip_outer_diameter = 1.0 +_material_print_temperature_maximum_value = 400 +layer_height = 0.2 +layer_height_0 = 0.3 +prime_tower_enable = True +retract_at_layer_change = False +support_angle = 45 +support_use_towers = True \ No newline at end of file From 8b52836c649017b3ccbbbd2811cd737efe270920 Mon Sep 17 00:00:00 2001 From: ChronosTech Date: Mon, 10 May 2021 12:33:29 +0200 Subject: [PATCH 010/141] Update temperatures and remove duplicate temperature declarations --- resources/definitions/strateo3d.def.json | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/resources/definitions/strateo3d.def.json b/resources/definitions/strateo3d.def.json index b1a9202a06..9225758fe6 100644 --- a/resources/definitions/strateo3d.def.json +++ b/resources/definitions/strateo3d.def.json @@ -15,9 +15,9 @@ "preferred_material": "emotiontech_pla", "preferred_quality_type": "c", "variants_name": "Print Head", - "machine_extruder_trains": - { - "0": "strateo3d_right_extruder", + "machine_extruder_trains": + { + "0": "strateo3d_right_extruder", "1": "strateo3d_left_extruder" } }, @@ -35,7 +35,7 @@ } } }, - "overrides": + "overrides": { "machine_name": { "default_value": "Strateo3D" }, "machine_width": { "default_value": 600 }, @@ -56,8 +56,9 @@ "default_material_print_temperature": { "maximum_value_warning": "_material_print_temperature_maximum_value - 5", "maximum_value": "_material_print_temperature_maximum_value" }, "material_print_temperature": { "maximum_value_warning": "_material_print_temperature_maximum_value - 5", "maximum_value": "_material_print_temperature_maximum_value" }, "material_print_temperature_layer_0": { "maximum_value_warning": "_material_print_temperature_maximum_value - 5", "maximum_value": "_material_print_temperature_maximum_value" }, - "material_initial_print_temperature": { "maximum_value": "_material_print_temperature_maximum_value" }, - "material_final_print_temperature": { "maximum_value": "_material_print_temperature_maximum_value" }, + "material_initial_print_temperature": { "maximum_value_warning": "_material_print_temperature_maximum_value - 5", "maximum_value": "_material_print_temperature_maximum_value" }, + "material_final_print_temperature": { "maximum_value_warning": "_material_print_temperature_maximum_value - 5", "maximum_value": "_material_print_temperature_maximum_value" }, + "material_standby_temperature": { "maximum_value_warning": "material_print_temperature - 40", "maximum_value": "material_print_temperature" }, "material_bed_temperature": { "maximum_value_warning": "140", "maximum_value": "140" }, "material_bed_temperature_layer_0": { "maximum_value_warning": "140", "maximum_value": "140" }, "extruder_prime_pos_abs": { "default_value": true }, @@ -83,7 +84,7 @@ "acceleration_print_layer_0": { "maximum_value_warning": "1500" }, "acceleration_travel_layer_0": { "maximum_value_warning": "1500" }, "acceleration_skirt_brim": { "maximum_value_warning": "1500" }, - + "adaptive_layer_height_variation": { "default_value": 0.1 }, "adaptive_layer_height_variation_step": { "default_value": 0.05 }, "adhesion_type": { "default_value": "skirt" }, @@ -93,7 +94,7 @@ "infill_before_walls": { "default_value": false }, "infill_overlap": { "value": "0" }, "infill_wipe_dist": { "value": "0" }, - + "jerk_enabled": { "value": "False", "maximum_value_warning": "0.01" }, "jerk_print": { "value": "0.01", "maximum_value_warning": "0.01" }, "jerk_infill": { "value": "0.01", "maximum_value_warning": "0.01" }, @@ -112,16 +113,14 @@ "jerk_wall_0": { "value": "jerk_wall * 5 / 10", "maximum_value_warning": "0.01" }, "jerk_wall_x": { "maximum_value_warning": "0.01" }, "jerk_travel": { "value": "machine_max_jerk_xy", "maximum_value_warning": "0.01" }, - + "layer_start_x": { "value": "sum(extruderValues('machine_extruder_start_pos_x')) / len(extruderValues('machine_extruder_start_pos_x'))" }, "layer_start_y": { "value": "sum(extruderValues('machine_extruder_start_pos_y')) / len(extruderValues('machine_extruder_start_pos_y'))" }, "machine_min_cool_heat_time_window": { "value": "15" }, "machine_nozzle_cool_down_speed": { "default_value": 0.50 }, "machine_nozzle_heat_up_speed": { "default_value": 2.25 }, - "material_final_print_temperature": { "value": "material_print_temperature - 10" }, "material_flow": { "default_value": 93 }, "material_flow_layer_0": { "value": "math.ceil(material_flow*1)" }, - "material_initial_print_temperature": { "value": "material_print_temperature - 5" }, "meshfix_maximum_resolution": { "value": "0.5" }, "meshfix_maximum_deviation": { "default_value": 0.04 }, "optimize_wall_printing_order": { "value": "True" }, @@ -173,4 +172,4 @@ "travel_avoid_distance": { "value": "3 if extruders_enabled_count > 1 else machine_nozzle_tip_outer_diameter / 2 * 1.5" }, "wall_thickness": { "value": "wall_line_width_0 + wall_line_width_x" } } -} \ No newline at end of file +} From 535026d0d3025d49e184d22445165e6baa1b8e58 Mon Sep 17 00:00:00 2001 From: ChronosTech Date: Tue, 25 May 2021 10:40:56 +0200 Subject: [PATCH 011/141] edit start gcode --- resources/definitions/strateo3d.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/strateo3d.def.json b/resources/definitions/strateo3d.def.json index 9225758fe6..b96a42c4e4 100644 --- a/resources/definitions/strateo3d.def.json +++ b/resources/definitions/strateo3d.def.json @@ -48,7 +48,7 @@ "gantry_height": { "value": "40" }, "machine_extruder_count": { "default_value": 2 }, "machine_gcode_flavor": { "default_value": "Marlin" }, - "machine_start_gcode": { "default_value": ";M203 X280.33334 Y280.33334 Z25 S-1 ;max cartesian feedrate \n;M204 S1500.00000 Z300.00000 ;acceleration \n;M205 X0.01000 Z-1.00000 S0.00000 ;junction deviation \nM104 T0 S{material_standby_temperature, 0} \nM104 T1 S{material_standby_temperature, 1} \nM140 S{material_bed_temperature_layer_0} \nM141 S{build_volume_temperature} \nG28 \nG90 \nT{initial_extruder_nr} \nG1 X0 Y0 Z15 F6000 \nM190 S{material_bed_temperature_layer_0} \nM109 S{material_print_temperature_layer_0, initial_extruder_nr} \nG1 Z0.3 \nG92 E0 \nG1 F300 X45 E18 \n;G1 F1500 E17 \nG1 F600 X25 \nG1 F600 Z3" }, + "machine_start_gcode": { "default_value": ";M104 T0 S{material_standby_temperature, 0} \n;M104 T1 S{material_standby_temperature, 1} \n;M140 S{material_bed_temperature_layer_0} \n;M141 S{build_volume_temperature} \nG28 \nG90 \nT{initial_extruder_nr} \nG1 X0 Y0 Z15 F6000 \n;M190 S{material_bed_temperature_layer_0} \n;M109 S{material_print_temperature_layer_0, initial_extruder_nr} \nG1 Z0.3 \nG92 E0 \nG1 F300 X45 E18 \n;G1 F1500 E17 \nG1 F600 X25 \nG1 F600 Z3" }, "machine_end_gcode": { "default_value": "T1 \nM104 S0 \nT0 \nM104 S0 \nM140 S0 \nM141 S0 \nG91 \nG0 z1 \nG90 \nG28 \nM801.0 \nM84 \nM192" }, "extruder_prime_pos_y": {"minimum_value": "0", "maximum_value": "machine_depth"}, "extruder_prime_pos_x": {"minimum_value": "0", "maximum_value": "machine_width"}, From c4380d84597df7d9eff547dec3ef069da9854da4 Mon Sep 17 00:00:00 2001 From: ivovk9 Date: Wed, 26 May 2021 13:06:07 +0200 Subject: [PATCH 012/141] Creasee 3D printers Creasee 3D printers --- creasee_cs20.def.json | 31 +++++++++++++++++++++++++++++++ creasee_cs30.def.json | 31 +++++++++++++++++++++++++++++++ creasee_extruder_0.def.json | 15 +++++++++++++++ 3 files changed, 77 insertions(+) create mode 100644 creasee_cs20.def.json create mode 100644 creasee_cs30.def.json create mode 100644 creasee_extruder_0.def.json diff --git a/creasee_cs20.def.json b/creasee_cs20.def.json new file mode 100644 index 0000000000..2ca872957d --- /dev/null +++ b/creasee_cs20.def.json @@ -0,0 +1,31 @@ +{ + "version": 2, + "name": "Creasee CS20", + "inherits": "creasee", + "metadata": { + "visible": true, + "machine_extruder_trains": + { + "0": "creasee_extruder_0" + } + }, + + "overrides": { + "machine_name": { "default_value": "Creasee CS20" }, + "machine_width": { + "default_value": 220 + }, + "machine_depth": { + "default_value": 220 + }, + "machine_height": { + "default_value": 250 + }, + "machine_start_gcode": { + "default_value": "G28 ;Home\nG1 Z15.0 F2000 ;Move the platform" + }, + "machine_end_gcode": { + "default_value": "M104 S0\nM140 S0\nG92 E0\nG1 E-10 F2000\nG28 X0 Y0\nM84" + } + } +} diff --git a/creasee_cs30.def.json b/creasee_cs30.def.json new file mode 100644 index 0000000000..ce02732570 --- /dev/null +++ b/creasee_cs30.def.json @@ -0,0 +1,31 @@ +{ + "version": 2, + "name": "Creasee CS30", + "inherits": "creasee", + "metadata": { + "visible": true, + "machine_extruder_trains": + { + "0": "creasee_extruder_0" + } + }, + + "overrides": { + "machine_name": { "default_value": "Creasee CS30" }, + "machine_width": { + "default_value": 300 + }, + "machine_depth": { + "default_value": 300 + }, + "machine_height": { + "default_value": 400 + }, + "machine_start_gcode": { + "default_value": "G28 ;Home\nG1 Z15.0 F2000 ;Move the platform" + }, + "machine_end_gcode": { + "default_value": "M104 S0\nM140 S0\nG92 E0\nG1 E-10 F2000\nG28 X0 Y0\nM84" + } + } +} diff --git a/creasee_extruder_0.def.json b/creasee_extruder_0.def.json new file mode 100644 index 0000000000..8b8f13b9ae --- /dev/null +++ b/creasee_extruder_0.def.json @@ -0,0 +1,15 @@ +{ + "version": 2, + "name": "Extruder 1", + "inherits": "fdmextruder", + "metadata": { + "machine": "creasee", + "position": "0" + }, + + "overrides": { + "extruder_nr": { "default_value": 0 }, + "machine_nozzle_size": { "default_value": 0.4 }, + "material_diameter": { "default_value": 1.75 } + } +} From 18ea18989d0b12297c92d2eb2e3bee64944eacf0 Mon Sep 17 00:00:00 2001 From: ivovk9 Date: Tue, 1 Jun 2021 16:21:58 +0200 Subject: [PATCH 013/141] Update creasee_cs20.def.json some small changes in the file. --- creasee_cs20.def.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/creasee_cs20.def.json b/creasee_cs20.def.json index 2ca872957d..a3720fe710 100644 --- a/creasee_cs20.def.json +++ b/creasee_cs20.def.json @@ -1,9 +1,10 @@ { "version": 2, "name": "Creasee CS20", - "inherits": "creasee", + "inherits": "fdmprinter", "metadata": { "visible": true, + "manufacturer": "CREASEE", "machine_extruder_trains": { "0": "creasee_extruder_0" From 7eeb92817d7666c7c6786b51fd6ce8496e497c64 Mon Sep 17 00:00:00 2001 From: ivovk9 Date: Tue, 1 Jun 2021 16:24:58 +0200 Subject: [PATCH 014/141] Update creasee_cs30.def.json small changes in the file. --- creasee_cs30.def.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/creasee_cs30.def.json b/creasee_cs30.def.json index ce02732570..954cd4fee3 100644 --- a/creasee_cs30.def.json +++ b/creasee_cs30.def.json @@ -1,9 +1,10 @@ { "version": 2, "name": "Creasee CS30", - "inherits": "creasee", + "inherits": "fdmprinter", "metadata": { "visible": true, + "manufacturer": "CREASEE", "machine_extruder_trains": { "0": "creasee_extruder_0" From f8725d13cfba1181c931749d3f97ebe6d87c1337 Mon Sep 17 00:00:00 2001 From: ChronosTech Date: Wed, 9 Jun 2021 17:24:53 +0200 Subject: [PATCH 015/141] remove material_print_temperature_maximum_value --- resources/definitions/strateo3d.def.json | 25 +++++-------------- .../strateo3d_haute_temperature_04.inst.cfg | 3 +-- 2 files changed, 7 insertions(+), 21 deletions(-) diff --git a/resources/definitions/strateo3d.def.json b/resources/definitions/strateo3d.def.json index b96a42c4e4..9c865fe233 100644 --- a/resources/definitions/strateo3d.def.json +++ b/resources/definitions/strateo3d.def.json @@ -21,20 +21,7 @@ "1": "strateo3d_left_extruder" } }, - "settings": { - "material": { - "children": { - "_material_print_temperature_maximum_value": { - "label": "Maximum Printing Temperature", - "description": "This is a private setting, please ignore", - "type": "float", - "default_value": 285, - "enabled": false, - "settable_per_extruder": true - } - } - } - }, + "overrides": { "machine_name": { "default_value": "Strateo3D" }, @@ -53,11 +40,11 @@ "extruder_prime_pos_y": {"minimum_value": "0", "maximum_value": "machine_depth"}, "extruder_prime_pos_x": {"minimum_value": "0", "maximum_value": "machine_width"}, "machine_heat_zone_length": { "default_value": 7 }, - "default_material_print_temperature": { "maximum_value_warning": "_material_print_temperature_maximum_value - 5", "maximum_value": "_material_print_temperature_maximum_value" }, - "material_print_temperature": { "maximum_value_warning": "_material_print_temperature_maximum_value - 5", "maximum_value": "_material_print_temperature_maximum_value" }, - "material_print_temperature_layer_0": { "maximum_value_warning": "_material_print_temperature_maximum_value - 5", "maximum_value": "_material_print_temperature_maximum_value" }, - "material_initial_print_temperature": { "maximum_value_warning": "_material_print_temperature_maximum_value - 5", "maximum_value": "_material_print_temperature_maximum_value" }, - "material_final_print_temperature": { "maximum_value_warning": "_material_print_temperature_maximum_value - 5", "maximum_value": "_material_print_temperature_maximum_value" }, + "default_material_print_temperature": { "maximum_value_warning": "400", "maximum_value": "415" }, + "material_print_temperature": { "maximum_value_warning": "400", "maximum_value": "415" }, + "material_print_temperature_layer_0": { "maximum_value_warning": "400", "maximum_value": "415" }, + "material_initial_print_temperature": { "maximum_value_warning": "400", "maximum_value": "415" }, + "material_final_print_temperature": { "maximum_value_warning": "400", "maximum_value": "415" }, "material_standby_temperature": { "maximum_value_warning": "material_print_temperature - 40", "maximum_value": "material_print_temperature" }, "material_bed_temperature": { "maximum_value_warning": "140", "maximum_value": "140" }, "material_bed_temperature_layer_0": { "maximum_value_warning": "140", "maximum_value": "140" }, diff --git a/resources/variants/strateo3d_haute_temperature_04.inst.cfg b/resources/variants/strateo3d_haute_temperature_04.inst.cfg index 2f7bd5f88f..b60cc016b1 100644 --- a/resources/variants/strateo3d_haute_temperature_04.inst.cfg +++ b/resources/variants/strateo3d_haute_temperature_04.inst.cfg @@ -12,10 +12,9 @@ hardware_type = nozzle machine_nozzle_id = HT0.4 machine_nozzle_size = 0.4 machine_nozzle_tip_outer_diameter = 1.0 -_material_print_temperature_maximum_value = 400 layer_height = 0.2 layer_height_0 = 0.3 prime_tower_enable = True retract_at_layer_change = False support_angle = 45 -support_use_towers = True \ No newline at end of file +support_use_towers = True From 3fb8dc09310214082e0241ff764fc59cf1721b5d Mon Sep 17 00:00:00 2001 From: ChronosTech Date: Thu, 10 Jun 2021 11:34:44 +0200 Subject: [PATCH 016/141] Update setting version --- .../quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_A.inst.cfg | 4 ++-- .../quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_B.inst.cfg | 4 ++-- .../quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_C.inst.cfg | 4 ++-- resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_A.inst.cfg | 4 ++-- resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_B.inst.cfg | 4 ++-- resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_C.inst.cfg | 4 ++-- .../quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_A.inst.cfg | 4 ++-- .../quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_B.inst.cfg | 4 ++-- .../quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_C.inst.cfg | 4 ++-- .../quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_A.inst.cfg | 4 ++-- .../quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_B.inst.cfg | 4 ++-- .../quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_C.inst.cfg | 4 ++-- resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_A.inst.cfg | 6 +++--- resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_B.inst.cfg | 4 ++-- resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_C.inst.cfg | 4 ++-- resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_A.inst.cfg | 4 ++-- resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_B.inst.cfg | 4 ++-- resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_C.inst.cfg | 4 ++-- resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_A.inst.cfg | 2 +- resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_C.inst.cfg | 2 +- resources/quality/strateo3d/HT0.4/s3d_ht0.4_PEKK_B.inst.cfg | 4 ++-- resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_A.inst.cfg | 4 ++-- resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_B.inst.cfg | 4 ++-- resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_C.inst.cfg | 4 ++-- resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_A.inst.cfg | 4 ++-- resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_B.inst.cfg | 4 ++-- resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_C.inst.cfg | 4 ++-- .../quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_A.inst.cfg | 4 ++-- .../quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_B.inst.cfg | 4 ++-- .../quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_C.inst.cfg | 4 ++-- .../quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_A.inst.cfg | 4 ++-- .../quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_B.inst.cfg | 4 ++-- .../quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_C.inst.cfg | 4 ++-- resources/variants/strateo3d_haute_temperature_04.inst.cfg | 2 +- 35 files changed, 67 insertions(+), 67 deletions(-) diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_A.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_A.inst.cfg index 8313aebe9c..577311eac7 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_A.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_A.inst.cfg @@ -4,7 +4,7 @@ name = A definition = strateo3d [metadata] -setting_version = 16 +setting_version = 17 type = quality quality_type = a weight = 1 @@ -44,4 +44,4 @@ support_xy_distance = =line_width * 1.7 support_xy_distance_overhang = =wall_line_width_0 support_offset = 1 support_interface_density = 100 -prime_tower_enable = True \ No newline at end of file +prime_tower_enable = True diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_B.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_B.inst.cfg index 9d0c07321e..aedabc9327 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_B.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_B.inst.cfg @@ -4,7 +4,7 @@ name = B definition = strateo3d [metadata] -setting_version = 16 +setting_version = 17 type = quality quality_type = b weight = 0 @@ -44,4 +44,4 @@ support_xy_distance = =line_width * 1.7 support_xy_distance_overhang = =wall_line_width_0 support_offset = 1 support_interface_density = 100 -prime_tower_enable = True \ No newline at end of file +prime_tower_enable = True diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_C.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_C.inst.cfg index b7fd5efbdb..6575dc05b3 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_C.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_C.inst.cfg @@ -4,7 +4,7 @@ name = C definition = strateo3d [metadata] -setting_version = 16 +setting_version = 17 type = quality quality_type = c weight = -1 @@ -44,4 +44,4 @@ support_xy_distance = =line_width * 1.7 support_xy_distance_overhang = =wall_line_width_0 support_offset = 1 support_interface_density = 100 -prime_tower_enable = True \ No newline at end of file +prime_tower_enable = True diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_A.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_A.inst.cfg index c8a8e20c44..840ec3365d 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_A.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_A.inst.cfg @@ -4,7 +4,7 @@ name = A definition = strateo3d [metadata] -setting_version = 16 +setting_version = 17 type = quality quality_type = a weight = 1 @@ -44,4 +44,4 @@ support_xy_distance = =line_width * 1.7 support_xy_distance_overhang = =wall_line_width_0 support_offset = 1 support_interface_density = 100 -prime_tower_enable = True \ No newline at end of file +prime_tower_enable = True diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_B.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_B.inst.cfg index f2fa17cf83..60b68dc59b 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_B.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_B.inst.cfg @@ -4,7 +4,7 @@ name = B definition = strateo3d [metadata] -setting_version = 16 +setting_version = 17 type = quality quality_type = b weight = 0 @@ -44,4 +44,4 @@ support_xy_distance = =line_width * 1.7 support_xy_distance_overhang = =wall_line_width_0 support_offset = 1 support_interface_density = 100 -prime_tower_enable = True \ No newline at end of file +prime_tower_enable = True diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_C.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_C.inst.cfg index 6f94a0b8eb..3e90769ca4 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_C.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_C.inst.cfg @@ -4,7 +4,7 @@ name = C definition = strateo3d [metadata] -setting_version = 16 +setting_version = 17 type = quality quality_type = c weight = -1 @@ -44,4 +44,4 @@ support_xy_distance = =line_width * 1.7 support_xy_distance_overhang = =wall_line_width_0 support_offset = 1 support_interface_density = 100 -prime_tower_enable = True \ No newline at end of file +prime_tower_enable = True diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_A.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_A.inst.cfg index c7612fbe5e..2084d4c852 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_A.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_A.inst.cfg @@ -4,7 +4,7 @@ name = A definition = strateo3d [metadata] -setting_version = 16 +setting_version = 17 type = quality quality_type = a weight = 1 @@ -44,4 +44,4 @@ support_xy_distance = =line_width * 1.7 support_xy_distance_overhang = =wall_line_width_0 support_offset = 1 support_interface_density = 100 -prime_tower_enable = True \ No newline at end of file +prime_tower_enable = True diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_B.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_B.inst.cfg index bad4f43f23..0448285579 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_B.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_B.inst.cfg @@ -4,7 +4,7 @@ name = B definition = strateo3d [metadata] -setting_version = 16 +setting_version = 17 type = quality quality_type = b weight = 0 @@ -44,4 +44,4 @@ support_xy_distance = =line_width * 1.7 support_xy_distance_overhang = =wall_line_width_0 support_offset = 1 support_interface_density = 100 -prime_tower_enable = True \ No newline at end of file +prime_tower_enable = True diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_C.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_C.inst.cfg index bc0754e888..b0efa1ecce 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_C.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_C.inst.cfg @@ -4,7 +4,7 @@ name = C definition = strateo3d [metadata] -setting_version = 16 +setting_version = 17 type = quality quality_type = c weight = -1 @@ -44,4 +44,4 @@ support_xy_distance = =line_width * 1.7 support_xy_distance_overhang = =wall_line_width_0 support_offset = 1 support_interface_density = 100 -prime_tower_enable = True \ No newline at end of file +prime_tower_enable = True diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_A.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_A.inst.cfg index ef2a07bd24..9dcc30ff63 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_A.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_A.inst.cfg @@ -4,7 +4,7 @@ name = A definition = strateo3d [metadata] -setting_version = 16 +setting_version = 17 type = quality quality_type = a weight = 1 @@ -44,4 +44,4 @@ support_xy_distance = =line_width * 1.5 support_xy_distance_overhang = =wall_line_width_0 support_offset = 1 support_interface_density = 100 -prime_tower_enable = True \ No newline at end of file +prime_tower_enable = True diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_B.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_B.inst.cfg index 4dae7f1d00..9cc0f19d87 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_B.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_B.inst.cfg @@ -4,7 +4,7 @@ name = B definition = strateo3d [metadata] -setting_version = 16 +setting_version = 17 type = quality quality_type = b weight = 0 @@ -44,4 +44,4 @@ support_xy_distance = =line_width * 1.5 support_xy_distance_overhang = =wall_line_width_0 support_offset = 1 support_interface_density = 100 -prime_tower_enable = True \ No newline at end of file +prime_tower_enable = True diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_C.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_C.inst.cfg index 7ae349108d..e084528372 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_C.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_C.inst.cfg @@ -4,7 +4,7 @@ name = C definition = strateo3d [metadata] -setting_version = 16 +setting_version = 17 type = quality quality_type = c weight = -1 @@ -44,4 +44,4 @@ support_xy_distance = =line_width * 1.5 support_xy_distance_overhang = =wall_line_width_0 support_offset = 1 support_interface_density = 100 -prime_tower_enable = True \ No newline at end of file +prime_tower_enable = True diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_A.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_A.inst.cfg index 9b3c491fdc..b28bfcea7c 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_A.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_A.inst.cfg @@ -4,11 +4,11 @@ name = A definition = strateo3d [metadata] -setting_version = 16 +setting_version = 17 type = quality quality_type = a weight = 1 -material = emotiontech_copa +material = emotiontech_copa variant = Haute température 0.4 [values] @@ -59,4 +59,4 @@ bridge_skin_material_flow = 60 bridge_skin_density = 80 bridge_fan_speed = 80 meshfix_maximum_resolution = 0.5 -meshfix_maximum_deviation = 0.04 \ No newline at end of file +meshfix_maximum_deviation = 0.04 diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_B.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_B.inst.cfg index 03cbeb2aef..efa7a3a060 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_B.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_B.inst.cfg @@ -4,7 +4,7 @@ name = B definition = strateo3d [metadata] -setting_version = 16 +setting_version = 17 type = quality quality_type = b weight = 0 @@ -59,4 +59,4 @@ bridge_skin_material_flow = 60 bridge_skin_density = 80 bridge_fan_speed = 80 meshfix_maximum_resolution = 0.5 -meshfix_maximum_deviation = 0.04 \ No newline at end of file +meshfix_maximum_deviation = 0.04 diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_C.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_C.inst.cfg index a946c14468..7d104d2547 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_C.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_C.inst.cfg @@ -4,7 +4,7 @@ name = C definition = strateo3d [metadata] -setting_version = 16 +setting_version = 17 type = quality quality_type = c weight = -1 @@ -59,4 +59,4 @@ bridge_skin_material_flow = 60 bridge_skin_density = 80 bridge_fan_speed = 80 meshfix_maximum_resolution = 0.5 -meshfix_maximum_deviation = 0.04 \ No newline at end of file +meshfix_maximum_deviation = 0.04 diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_A.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_A.inst.cfg index 24d2e40836..e00424fb28 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_A.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_A.inst.cfg @@ -4,7 +4,7 @@ name = A definition = strateo3d [metadata] -setting_version = 16 +setting_version = 17 type = quality quality_type = a weight = 1 @@ -47,4 +47,4 @@ support_xy_distance_overhang = =line_width*0 support_offset = 3 support_pattern = grid support_interface_density = 100 -prime_tower_enable = True \ No newline at end of file +prime_tower_enable = True diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_B.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_B.inst.cfg index b37f68fb72..543f2f4633 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_B.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_B.inst.cfg @@ -4,7 +4,7 @@ name = B definition = strateo3d [metadata] -setting_version = 16 +setting_version = 17 type = quality quality_type = b weight = 0 @@ -47,4 +47,4 @@ support_xy_distance_overhang = =line_width*0 support_offset = 3 support_pattern = grid support_interface_density = 100 -prime_tower_enable = True \ No newline at end of file +prime_tower_enable = True diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_C.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_C.inst.cfg index bd6d44edbe..498ca1ee4a 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_C.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_C.inst.cfg @@ -4,7 +4,7 @@ name = C definition = strateo3d [metadata] -setting_version = 16 +setting_version = 17 type = quality quality_type = c weight = -1 @@ -47,4 +47,4 @@ support_xy_distance_overhang = =line_width*0 support_offset = 3 support_pattern = grid support_interface_density = 100 -prime_tower_enable = True \ No newline at end of file +prime_tower_enable = True diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_A.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_A.inst.cfg index 9e364db0ea..34cc38d0c8 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_A.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_A.inst.cfg @@ -4,7 +4,7 @@ name = A definition = strateo3d [metadata] -setting_version = 16 +setting_version = 17 type = quality quality_type = a weight = 1 diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_B.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_B.inst.cfg index 1327c9ecd5..588c94f91c 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_B.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_B.inst.cfg @@ -4,7 +4,7 @@ name = B definition = strateo3d [metadata] -setting_version = 16 +setting_version = 17 type = quality quality_type = b weight = 0 diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_C.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_C.inst.cfg index f8fa66eb11..bfc2586832 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_C.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_C.inst.cfg @@ -4,7 +4,7 @@ name = C definition = strateo3d [metadata] -setting_version = 16 +setting_version = 17 type = quality quality_type = c weight = -1 diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PEKK_B.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PEKK_B.inst.cfg index 477421f34d..5733230aa7 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PEKK_B.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PEKK_B.inst.cfg @@ -4,7 +4,7 @@ name = B definition = strateo3d [metadata] -setting_version = 16 +setting_version = 17 type = quality quality_type = b weight = 0 @@ -55,4 +55,4 @@ bridge_wall_material_flow = 185 bridge_skin_speed = =bridge_wall_speed bridge_skin_material_flow = =bridge_wall_material_flow bridge_fan_speed = 100 -bridge_enable_more_layers = False \ No newline at end of file +bridge_enable_more_layers = False diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_A.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_A.inst.cfg index b7cf65aff9..88e5bee584 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_A.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_A.inst.cfg @@ -4,7 +4,7 @@ name = A definition = strateo3d [metadata] -setting_version = 16 +setting_version = 17 type = quality quality_type = a weight = 1 @@ -44,4 +44,4 @@ support_xy_distance = =line_width * 1.7 support_xy_distance_overhang = =wall_line_width_0 support_offset = 1 support_interface_density = 100 -prime_tower_enable = True \ No newline at end of file +prime_tower_enable = True diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_B.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_B.inst.cfg index 7fd7b70ffc..7ccb7cf6b1 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_B.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_B.inst.cfg @@ -4,7 +4,7 @@ name = B definition = strateo3d [metadata] -setting_version = 16 +setting_version = 17 type = quality quality_type = b weight = 0 @@ -44,4 +44,4 @@ support_xy_distance = =line_width * 1.7 support_xy_distance_overhang = =wall_line_width_0 support_offset = 1 support_interface_density = 100 -prime_tower_enable = True \ No newline at end of file +prime_tower_enable = True diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_C.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_C.inst.cfg index 3681b09d57..693db6b7a9 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_C.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_C.inst.cfg @@ -4,7 +4,7 @@ name = C definition = strateo3d [metadata] -setting_version = 16 +setting_version = 17 type = quality quality_type = c weight = -1 @@ -44,4 +44,4 @@ support_xy_distance = =line_width * 1.7 support_xy_distance_overhang = =wall_line_width_0 support_offset = 1 support_interface_density = 100 -prime_tower_enable = True \ No newline at end of file +prime_tower_enable = True diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_A.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_A.inst.cfg index 7ef79ade3f..9ee2e3b59b 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_A.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_A.inst.cfg @@ -4,7 +4,7 @@ name = A definition = strateo3d [metadata] -setting_version = 16 +setting_version = 17 type = quality quality_type = a weight = 1 @@ -44,4 +44,4 @@ support_xy_distance = =line_width * 1.7 support_xy_distance_overhang = =wall_line_width_0 support_offset = 1 support_interface_density = 100 -prime_tower_enable = True \ No newline at end of file +prime_tower_enable = True diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_B.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_B.inst.cfg index 09286b3750..bd0a43e0ea 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_B.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_B.inst.cfg @@ -4,7 +4,7 @@ name = B definition = strateo3d [metadata] -setting_version = 16 + type = quality quality_type = b weight = 0 @@ -44,4 +44,4 @@ support_xy_distance = =line_width * 1.7 support_xy_distance_overhang = =wall_line_width_0 support_offset = 1 support_interface_density = 100 -prime_tower_enable = True \ No newline at end of file +prime_tower_enable = True diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_C.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_C.inst.cfg index a96d5db856..e8db5b08b4 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_C.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_C.inst.cfg @@ -4,7 +4,7 @@ name = C definition = strateo3d [metadata] -setting_version = 16 +setting_version = 17 type = quality quality_type = c weight = -1 @@ -44,4 +44,4 @@ support_xy_distance = =line_width * 1.7 support_xy_distance_overhang = =wall_line_width_0 support_offset = 1 support_interface_density = 100 -prime_tower_enable = True \ No newline at end of file +prime_tower_enable = True diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_A.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_A.inst.cfg index c09f6ff1a5..1fae859f7d 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_A.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_A.inst.cfg @@ -4,7 +4,7 @@ name = A definition = strateo3d [metadata] -setting_version = 16 +setting_version = 17 type = quality quality_type = a weight = 1 @@ -52,4 +52,4 @@ support_interface_density = 100 prime_tower_enable = True meshfix_maximum_resolution = 0.5 meshfix_maximum_deviation = 0.04 -cool_lift_head = True \ No newline at end of file +cool_lift_head = True diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_B.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_B.inst.cfg index 343401e742..df4fb32a4a 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_B.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_B.inst.cfg @@ -4,7 +4,7 @@ name = B definition = strateo3d [metadata] -setting_version = 16 +setting_version = 17 type = quality quality_type = b weight = 0 @@ -51,4 +51,4 @@ support_interface_density = 100 prime_tower_enable = True meshfix_maximum_resolution = 0.5 meshfix_maximum_deviation = 0.04 -cool_lift_head = True \ No newline at end of file +cool_lift_head = True diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_C.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_C.inst.cfg index 0da9abc580..238fc72dd9 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_C.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_C.inst.cfg @@ -4,7 +4,7 @@ name = C definition = strateo3d [metadata] -setting_version = 16 +setting_version = 17 type = quality quality_type = c weight = -1 @@ -51,4 +51,4 @@ support_interface_density = 100 prime_tower_enable = True meshfix_maximum_resolution = 0.5 meshfix_maximum_deviation = 0.04 -cool_lift_head = True \ No newline at end of file +cool_lift_head = True diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_A.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_A.inst.cfg index b30dab1625..cbc8b3c05a 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_A.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_A.inst.cfg @@ -4,7 +4,7 @@ name = A definition = strateo3d [metadata] -setting_version = 16 +setting_version = 17 type = quality quality_type = a weight = 1 @@ -44,4 +44,4 @@ support_xy_distance = =line_width * 2.5 support_xy_distance_overhang = =wall_line_width_0 support_offset = 0.5 support_interface_density = 100 -prime_tower_enable = True \ No newline at end of file +prime_tower_enable = True diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_B.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_B.inst.cfg index 66cf22d23e..9957ba7127 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_B.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_B.inst.cfg @@ -4,7 +4,7 @@ name = B definition = strateo3d [metadata] -setting_version = 16 +setting_version = 17 type = quality quality_type = b weight = 0 @@ -44,4 +44,4 @@ support_xy_distance = =line_width * 2.5 support_xy_distance_overhang = =wall_line_width_0 support_offset = 0.5 support_interface_density = 100 -prime_tower_enable = True \ No newline at end of file +prime_tower_enable = True diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_C.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_C.inst.cfg index c5ab72edfe..a1596e749b 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_C.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_C.inst.cfg @@ -4,7 +4,7 @@ name = C definition = strateo3d [metadata] -setting_version = 16 +setting_version = 17 type = quality quality_type = c weight = -1 @@ -44,4 +44,4 @@ support_xy_distance = =line_width * 2.5 support_xy_distance_overhang = =wall_line_width_0 support_offset = 0.5 support_interface_density = 100 -prime_tower_enable = True \ No newline at end of file +prime_tower_enable = True diff --git a/resources/variants/strateo3d_haute_temperature_04.inst.cfg b/resources/variants/strateo3d_haute_temperature_04.inst.cfg index b60cc016b1..b974d9a164 100644 --- a/resources/variants/strateo3d_haute_temperature_04.inst.cfg +++ b/resources/variants/strateo3d_haute_temperature_04.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = strateo3d [metadata] -setting_version = 16 +setting_version = 17 type = variant hardware_type = nozzle From 4aae3bac0993b0b338c9493f0ae7730d696ddd44 Mon Sep 17 00:00:00 2001 From: ChronosTech Date: Thu, 10 Jun 2021 11:41:42 +0200 Subject: [PATCH 017/141] Update setting version PLA_B - HT0.4 --- resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_B.inst.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_B.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_B.inst.cfg index bd0a43e0ea..c949120187 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_B.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_B.inst.cfg @@ -4,7 +4,7 @@ name = B definition = strateo3d [metadata] - +setting_version = 17 type = quality quality_type = b weight = 0 From 16e2ebd4890ad205bdd734947640ebcb2b3a87bb Mon Sep 17 00:00:00 2001 From: ivovk9 Date: Fri, 25 Jun 2021 09:01:06 +0200 Subject: [PATCH 018/141] moved files to folders moved files to folders --- resources/definitions/creasee_cs20.def.json | 32 +++++++++++++++++++ resources/definitions/creasee_cs30.def.json | 32 +++++++++++++++++++ .../extruders/creasee_extruder_0.def.json | 15 +++++++++ 3 files changed, 79 insertions(+) create mode 100644 resources/definitions/creasee_cs20.def.json create mode 100644 resources/definitions/creasee_cs30.def.json create mode 100644 resources/extruders/creasee_extruder_0.def.json diff --git a/resources/definitions/creasee_cs20.def.json b/resources/definitions/creasee_cs20.def.json new file mode 100644 index 0000000000..a3720fe710 --- /dev/null +++ b/resources/definitions/creasee_cs20.def.json @@ -0,0 +1,32 @@ +{ + "version": 2, + "name": "Creasee CS20", + "inherits": "fdmprinter", + "metadata": { + "visible": true, + "manufacturer": "CREASEE", + "machine_extruder_trains": + { + "0": "creasee_extruder_0" + } + }, + + "overrides": { + "machine_name": { "default_value": "Creasee CS20" }, + "machine_width": { + "default_value": 220 + }, + "machine_depth": { + "default_value": 220 + }, + "machine_height": { + "default_value": 250 + }, + "machine_start_gcode": { + "default_value": "G28 ;Home\nG1 Z15.0 F2000 ;Move the platform" + }, + "machine_end_gcode": { + "default_value": "M104 S0\nM140 S0\nG92 E0\nG1 E-10 F2000\nG28 X0 Y0\nM84" + } + } +} diff --git a/resources/definitions/creasee_cs30.def.json b/resources/definitions/creasee_cs30.def.json new file mode 100644 index 0000000000..954cd4fee3 --- /dev/null +++ b/resources/definitions/creasee_cs30.def.json @@ -0,0 +1,32 @@ +{ + "version": 2, + "name": "Creasee CS30", + "inherits": "fdmprinter", + "metadata": { + "visible": true, + "manufacturer": "CREASEE", + "machine_extruder_trains": + { + "0": "creasee_extruder_0" + } + }, + + "overrides": { + "machine_name": { "default_value": "Creasee CS30" }, + "machine_width": { + "default_value": 300 + }, + "machine_depth": { + "default_value": 300 + }, + "machine_height": { + "default_value": 400 + }, + "machine_start_gcode": { + "default_value": "G28 ;Home\nG1 Z15.0 F2000 ;Move the platform" + }, + "machine_end_gcode": { + "default_value": "M104 S0\nM140 S0\nG92 E0\nG1 E-10 F2000\nG28 X0 Y0\nM84" + } + } +} diff --git a/resources/extruders/creasee_extruder_0.def.json b/resources/extruders/creasee_extruder_0.def.json new file mode 100644 index 0000000000..8b8f13b9ae --- /dev/null +++ b/resources/extruders/creasee_extruder_0.def.json @@ -0,0 +1,15 @@ +{ + "version": 2, + "name": "Extruder 1", + "inherits": "fdmextruder", + "metadata": { + "machine": "creasee", + "position": "0" + }, + + "overrides": { + "extruder_nr": { "default_value": 0 }, + "machine_nozzle_size": { "default_value": 0.4 }, + "material_diameter": { "default_value": 1.75 } + } +} From 9735daf4974d2ddc22ba9df752fa817751848852 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 29 Jun 2021 16:21:39 +0200 Subject: [PATCH 019/141] Replace the extruder icon with the new design CURA-8011 --- resources/qml/ExtruderIcon.qml | 51 +++++++------------ .../cura-light/icons/medium/ExtruderColor.svg | 11 ++++ 2 files changed, 29 insertions(+), 33 deletions(-) create mode 100644 resources/themes/cura-light/icons/medium/ExtruderColor.svg diff --git a/resources/qml/ExtruderIcon.qml b/resources/qml/ExtruderIcon.qml index 1c93966519..2d21ed9e13 100644 --- a/resources/qml/ExtruderIcon.qml +++ b/resources/qml/ExtruderIcon.qml @@ -1,7 +1,7 @@ -// Copyright (c) 2018 Ultimaker B.V. +// Copyright (c) 2021 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. -import QtQuick 2.7 +import QtQuick 2.11 import QtQuick.Controls 1.1 import UM 1.2 as UM @@ -17,29 +17,26 @@ Item property alias textColor: extruderNumberText.color property bool extruderEnabled: true - UM.RecolorImage + Item { - id: mainIcon + opacity: extruderEnabled ? 1 : 0.4 anchors.fill: parent - source: UM.Theme.getIcon("Extruder", "medium") - color: extruderEnabled ? materialColor: UM.Theme.getColor("disabled") - } - - Rectangle - { - id: extruderNumberCircle - - width: height - height: Math.round(parent.height / 2) - radius: Math.round(width) - color: UM.Theme.getColor("toolbar_background") - - anchors + UM.RecolorImage { - horizontalCenter: parent.horizontalCenter - top: parent.top - topMargin: (parent.height - height) / 2 + id: blorp + anchors.fill: parent + + source: UM.Theme.getIcon("ExtruderColor", "medium") + color: materialColor + } + UM.RecolorImage + { + id: mainIcon + anchors.fill: parent + + source: UM.Theme.getIcon("Extruder", "medium") + color: UM.Theme.getColor("text") } Label @@ -51,21 +48,9 @@ Item color: UM.Theme.getColor("text") width: contentWidth height: contentHeight - visible: extruderEnabled renderType: Text.NativeRendering horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter } - - UM.RecolorImage - { - id: disabledIcon - anchors.fill: parent - anchors.margins: UM.Theme.getSize("thick_lining").width - sourceSize.height: width - source: UM.Theme.getIcon("Cancel") - visible: !extruderEnabled - color: UM.Theme.getColor("text") - } } } diff --git a/resources/themes/cura-light/icons/medium/ExtruderColor.svg b/resources/themes/cura-light/icons/medium/ExtruderColor.svg new file mode 100644 index 0000000000..c017c69106 --- /dev/null +++ b/resources/themes/cura-light/icons/medium/ExtruderColor.svg @@ -0,0 +1,11 @@ + + + + + + + + + From 53fd47e8db8206c43ad563697e744fd591c0f0c8 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 29 Jun 2021 16:26:59 +0200 Subject: [PATCH 020/141] Set opacity of disabled extruder text CURA-8011 --- resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml index ad4911404a..b088abc830 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml @@ -70,7 +70,7 @@ Cura.ExpandablePopup font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") renderType: Text.NativeRendering - + opacity: model.enabled ? 1 : 0.4 anchors { top: extruderIcon.top @@ -92,7 +92,7 @@ Cura.ExpandablePopup font: UM.Theme.getFont("default_bold") color: UM.Theme.getColor("text") renderType: Text.NativeRendering - + opacity: model.enabled ? 1 : 0.4 anchors { left: extruderIcon.right From c3a7cd59beb920377e6a09f4f1d9cfb86ac02932 Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Wed, 30 Jun 2021 12:24:49 +0200 Subject: [PATCH 021/141] Add medium quality "Folder" icon CURA-8202 --- plugins/PrepareStage/PrepareMenu.qml | 2 +- resources/themes/cura-light/icons/medium/Folder.svg | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 resources/themes/cura-light/icons/medium/Folder.svg diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index 73c2cad39a..09bb2a9fc1 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -97,7 +97,7 @@ Item { id: buttonIcon anchors.centerIn: parent - source: UM.Theme.getIcon("Folder") + source: UM.Theme.getIcon("Folder", "medium") width: UM.Theme.getSize("button_icon").width height: UM.Theme.getSize("button_icon").height color: UM.Theme.getColor("icon") diff --git a/resources/themes/cura-light/icons/medium/Folder.svg b/resources/themes/cura-light/icons/medium/Folder.svg new file mode 100644 index 0000000000..8dc9b5ea9f --- /dev/null +++ b/resources/themes/cura-light/icons/medium/Folder.svg @@ -0,0 +1,11 @@ + + + + + + + + + From 72ca4a9564e4c26d23b5dadb72d86c8501db8199 Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Wed, 30 Jun 2021 12:25:28 +0200 Subject: [PATCH 022/141] Use medium quality Printer icon in the MachineSelector CURA-8202 --- resources/qml/PrinterSelector/MachineSelector.qml | 4 ++-- .../themes/cura-light/icons/medium/Printer.svg | 13 +++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 resources/themes/cura-light/icons/medium/Printer.svg diff --git a/resources/qml/PrinterSelector/MachineSelector.qml b/resources/qml/PrinterSelector/MachineSelector.qml index 7c74be1605..712a81d6dd 100644 --- a/resources/qml/PrinterSelector/MachineSelector.qml +++ b/resources/qml/PrinterSelector/MachineSelector.qml @@ -93,11 +93,11 @@ Cura.ExpandablePopup { if (isGroup) { - return UM.Theme.getIcon("PrinterTriple") + return UM.Theme.getIcon("PrinterTriple", "medium") } else if (isNetworkPrinter || isCloudRegistered) { - return UM.Theme.getIcon("Printer") + return UM.Theme.getIcon("Printer", "medium") } else { diff --git a/resources/themes/cura-light/icons/medium/Printer.svg b/resources/themes/cura-light/icons/medium/Printer.svg new file mode 100644 index 0000000000..ef67996d48 --- /dev/null +++ b/resources/themes/cura-light/icons/medium/Printer.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + From 3eafd115872d668c7309ddbb15cf840ec75513bc Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Wed, 30 Jun 2021 12:26:13 +0200 Subject: [PATCH 023/141] Fix qml warning about the sourceSize of the ToolbarButton icon CURA-8202 --- resources/qml/Toolbar.qml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/qml/Toolbar.qml b/resources/qml/Toolbar.qml index ec4d29420b..c948bb8242 100644 --- a/resources/qml/Toolbar.qml +++ b/resources/qml/Toolbar.qml @@ -68,7 +68,8 @@ Item source: UM.Theme.getIcon(model.icon) != "" ? UM.Theme.getIcon(model.icon) : "file:///" + model.location + "/" + model.icon color: UM.Theme.getColor("icon") - sourceSize: Math.round(UM.Theme.getSize("button") / 2) + sourceSize.height: Math.round(UM.Theme.getSize("button").height / 2) + sourceSize.width: Math.round(UM.Theme.getSize("button").width / 2) } onCheckedChanged: From 4583866f57f11e77fbb3b48d63715f54ba995637 Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Wed, 30 Jun 2021 12:28:08 +0200 Subject: [PATCH 024/141] Add toolbar button icon size Which is slightly smaller than the button icon CURA-8202 --- .../PrintSetupSelector/PrintSetupSelectorHeader.qml | 6 +++++- resources/themes/cura-light/styles.qml | 10 +++++----- resources/themes/cura-light/theme.json | 5 ++++- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml b/resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml index ff9204655f..6dd909105d 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml @@ -15,7 +15,8 @@ RowLayout Cura.IconWithText { - source: UM.Theme.getIcon("PrintQuality") + source: UM.Theme.getIcon("Sliders", "medium") + iconSize: UM.Theme.getSize("button_icon").width text: { if (Cura.MachineManager.activeStack) @@ -53,6 +54,7 @@ RowLayout source: UM.Theme.getIcon("Infill1") text: Cura.MachineManager.activeStack ? parseInt(infillDensity.properties.value) + "%" : "0%" font: UM.Theme.getFont("medium") + iconSize: UM.Theme.getSize("toolbar_button_icon").width UM.SettingPropertyProvider { @@ -68,6 +70,7 @@ RowLayout source: UM.Theme.getIcon("Support") text: supportEnabled.properties.value == "True" ? enabledText : disabledText font: UM.Theme.getFont("medium") + iconSize: UM.Theme.getSize("toolbar_button_icon").width UM.SettingPropertyProvider { @@ -83,6 +86,7 @@ RowLayout source: UM.Theme.getIcon("Adhesion") text: platformAdhesionType.properties.value != "skirt" && platformAdhesionType.properties.value != "none" ? enabledText : disabledText font: UM.Theme.getFont("medium") + iconSize: UM.Theme.getSize("toolbar_button_icon").width UM.SettingPropertyProvider { diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index de15866f1a..62c673c584 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -175,8 +175,8 @@ QtObject { background: Item { - implicitWidth: UM.Theme.getSize("button").width - implicitHeight: UM.Theme.getSize("button").height + implicitWidth: UM.Theme.getSize("toolbar_button").width + implicitHeight: UM.Theme.getSize("toolbar_button").height UM.PointingRectangle { @@ -252,11 +252,11 @@ QtObject anchors.centerIn: parent opacity: control.enabled ? 1.0 : 0.2 source: control.iconSource - width: UM.Theme.getSize("button_icon").width - height: UM.Theme.getSize("button_icon").height + width: UM.Theme.getSize("toolbar_button_icon").width + height: UM.Theme.getSize("toolbar_button_icon").height color: UM.Theme.getColor("icon") - sourceSize: UM.Theme.getSize("button_icon") + sourceSize: UM.Theme.getSize("toolbar_button_icon") } } } diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 5245d21455..e190f3fc97 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -482,7 +482,7 @@ "machine_selector_widget": [20.0, 4.0], "machine_selector_widget_content": [25.0, 32.0], - "machine_selector_icon": [2.66, 2.66], + "machine_selector_icon": [2.5, 2.5], "views_selector": [23.0, 4.0], @@ -527,6 +527,9 @@ "button_icon": [2.5, 2.5], "button_lining": [0, 0], + "toolbar_button": [4, 4], + "toolbar_button_icon": [2, 2], + "action_button": [15.0, 2.5], "action_button_icon": [1.0, 1.0], "action_button_radius": [0.15, 0.15], From 6cf25aa540d48b082de4677c2ccde1583fadbc20 Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Wed, 30 Jun 2021 12:28:46 +0200 Subject: [PATCH 025/141] Make the icons in the recommended window same size as the toolbar icons CURA-8202 --- .../Recommended/RecommendedAdhesionSelector.qml | 1 + .../Recommended/RecommendedInfillDensitySelector.qml | 1 + .../Recommended/RecommendedQualityProfileSelector.qml | 1 + .../Recommended/RecommendedSupportSelector.qml | 1 + 4 files changed, 4 insertions(+) diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedAdhesionSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedAdhesionSelector.qml index df2c1bfae6..40d1e890dc 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedAdhesionSelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedAdhesionSelector.qml @@ -29,6 +29,7 @@ Item text: catalog.i18nc("@label", "Adhesion") font: UM.Theme.getFont("medium") width: labelColumnWidth + iconSize: UM.Theme.getSize("toolbar_button_icon").width } Item diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml index 8da97437cf..d78c63c803 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml @@ -65,6 +65,7 @@ Item text: catalog.i18nc("@label", "Infill") + " (%)" font: UM.Theme.getFont("medium") width: labelColumnWidth + iconSize: UM.Theme.getSize("toolbar_button_icon").width } Item diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml index a8e19c7357..3c54c37785 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml @@ -52,6 +52,7 @@ Item text: catalog.i18nc("@label", "Profiles") font: UM.Theme.getFont("medium") width: labelColumnWidth + iconSize: UM.Theme.getSize("toolbar_button_icon").width } UM.SimpleButton { diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml index 924dcd5ec4..50327d364b 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml @@ -30,6 +30,7 @@ Item text: catalog.i18nc("@label", "Support") font: UM.Theme.getFont("medium") width: labelColumnWidth + iconSize: UM.Theme.getSize("toolbar_button_icon").width } Item From d7779c42dfa6c599efd77f1494cebafe78908211 Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Wed, 30 Jun 2021 12:29:18 +0200 Subject: [PATCH 026/141] Add medium quality Sliders icon Which is now used in the print settings header CURA-8202 --- .../themes/cura-light/icons/medium/Sliders.svg | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 resources/themes/cura-light/icons/medium/Sliders.svg diff --git a/resources/themes/cura-light/icons/medium/Sliders.svg b/resources/themes/cura-light/icons/medium/Sliders.svg new file mode 100644 index 0000000000..91bd9ae0fd --- /dev/null +++ b/resources/themes/cura-light/icons/medium/Sliders.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + From eb2fe5b139bd789ff8c2da7340c1b7fb77f30187 Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Wed, 30 Jun 2021 12:30:04 +0200 Subject: [PATCH 027/141] Change the size of the stage buttons to be same size as the marketplace button CURA-8202 --- resources/qml/MainWindow/MainWindowHeader.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/MainWindow/MainWindowHeader.qml b/resources/qml/MainWindow/MainWindowHeader.qml index cb7d5c3d88..c670abb67a 100644 --- a/resources/qml/MainWindow/MainWindowHeader.qml +++ b/resources/qml/MainWindow/MainWindowHeader.qml @@ -62,7 +62,7 @@ Item anchors.verticalCenter: parent.verticalCenter exclusiveGroup: mainWindowHeaderMenuGroup style: UM.Theme.styles.main_window_header_tab - height: UM.Theme.getSize("main_window_header_button").height + height: Math.round(0.5 * UM.Theme.getSize("main_window_header").height) iconSource: model.stage.iconSource property color overlayColor: "transparent" From 061e88937183919f8e3f09fb74da4e765b65c8bf Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Wed, 30 Jun 2021 13:09:29 +0200 Subject: [PATCH 028/141] Fix height binding loop in the account details popup CURA-8202 --- resources/qml/Account/UserOperations.qml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/qml/Account/UserOperations.qml b/resources/qml/Account/UserOperations.qml index 19e92e0249..6d83e628f7 100644 --- a/resources/qml/Account/UserOperations.qml +++ b/resources/qml/Account/UserOperations.qml @@ -18,7 +18,7 @@ Column { id: accountInfo width: childrenRect.width - height: childrenRect.height + height: accountSyncDetailsColumn.height anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("default_margin").width AvatarImage @@ -56,6 +56,7 @@ Column Column { + id: accountSyncDetailsColumn anchors.left: avatar.right anchors.leftMargin: UM.Theme.getSize("default_margin").width spacing: UM.Theme.getSize("narrow_margin").height From 3c2e336153745a0fcbb2f451f299a62a9de96acc Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Wed, 30 Jun 2021 15:17:37 +0200 Subject: [PATCH 029/141] Align the printer status icon properly CURA-8202 --- resources/qml/PrinterSelector/MachineSelector.qml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/qml/PrinterSelector/MachineSelector.qml b/resources/qml/PrinterSelector/MachineSelector.qml index 712a81d6dd..dfe51df859 100644 --- a/resources/qml/PrinterSelector/MachineSelector.qml +++ b/resources/qml/PrinterSelector/MachineSelector.qml @@ -114,8 +114,9 @@ Cura.ExpandablePopup anchors { bottom: parent.bottom + bottomMargin: - height * 1 / 6 left: parent.left - leftMargin: UM.Theme.getSize("thick_margin").width + leftMargin: iconSize - width * 5 / 6 } source: From 9d70ea8a8aa38cbde40a365e45445acc789b9c38 Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Wed, 30 Jun 2021 15:18:12 +0200 Subject: [PATCH 030/141] Size the avatar icon with the same height as the marketplace button CURA-8202 --- resources/qml/Account/AccountWidget.qml | 13 +++++++------ resources/qml/Account/UserOperations.qml | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/resources/qml/Account/AccountWidget.qml b/resources/qml/Account/AccountWidget.qml index 48c05f8a11..ef1622daee 100644 --- a/resources/qml/Account/AccountWidget.qml +++ b/resources/qml/Account/AccountWidget.qml @@ -54,9 +54,10 @@ Item id: accountWidget anchors.verticalCenter: parent.verticalCenter + anchors.horizontalCenter: signInButton.horizontalCenter - implicitHeight: UM.Theme.getSize("main_window_header").height - implicitWidth: UM.Theme.getSize("main_window_header").height + implicitHeight: Math.round(0.5 * UM.Theme.getSize("main_window_header").height) + implicitWidth: Math.round(0.5 * UM.Theme.getSize("main_window_header").height) hoverEnabled: true @@ -68,8 +69,8 @@ Item { id: avatar - width: Math.round(0.8 * accountWidget.width) - height: Math.round(0.8 * accountWidget.height) + width: accountWidget.width + height: accountWidget.height anchors.verticalCenter: accountWidget.verticalCenter anchors.horizontalCenter: accountWidget.horizontalCenter @@ -86,7 +87,7 @@ Item { id: initialCircle anchors.centerIn: parent - width: Math.min(parent.width, parent.height) + width: Math.min(accountWidget.width, accountWidget.height) height: width radius: width color: accountWidget.hovered ? UM.Theme.getColor("primary_text") : "transparent" @@ -141,7 +142,7 @@ Item borderColor: UM.Theme.getColor("lining") borderWidth: UM.Theme.getSize("default_lining").width - target: Qt.point(width - (accountWidget.width / 2), -10) + target: Qt.point(width - (signInButton.width / 2), -10) arrowSize: UM.Theme.getSize("default_arrow").width } diff --git a/resources/qml/Account/UserOperations.qml b/resources/qml/Account/UserOperations.qml index 6d83e628f7..f5241596d5 100644 --- a/resources/qml/Account/UserOperations.qml +++ b/resources/qml/Account/UserOperations.qml @@ -9,7 +9,7 @@ import Cura 1.1 as Cura Column { - spacing: UM.Theme.getSize("narrow_margin").height + spacing: UM.Theme.getSize("default_margin").height topPadding: UM.Theme.getSize("default_margin").height bottomPadding: UM.Theme.getSize("default_margin").height width: childrenRect.width From e5d77a46d6aa3509449085b52905846ad199d49d Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Wed, 30 Jun 2021 17:04:55 +0200 Subject: [PATCH 031/141] Remove 'roundedness' and 'shadow' from action-buttons. Per the new UI design. Keep them as deprecated properties, so we may not need a major API/SDK increase just yet. contributes to CURA-8012 --- resources/qml/ActionButton.qml | 67 +++++++++++++------ .../ActionPanel/OutputDevicesActionButton.qml | 7 +- resources/qml/PrimaryButton.qml | 4 +- resources/qml/SecondaryButton.qml | 4 +- resources/qml/TertiaryButton.qml | 4 +- 5 files changed, 50 insertions(+), 36 deletions(-) diff --git a/resources/qml/ActionButton.qml b/resources/qml/ActionButton.qml index 0c1be007b5..c5c0c0be08 100644 --- a/resources/qml/ActionButton.qml +++ b/resources/qml/ActionButton.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2020 Ultimaker B.V. +// Copyright (c) 2021 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.7 @@ -18,7 +18,6 @@ Button property alias textFont: buttonText.font property alias cornerRadius: backgroundRect.radius property alias tooltip: tooltip.tooltipText - property alias cornerSide: backgroundRect.cornerSide property color color: UM.Theme.getColor("primary") property color hoverColor: UM.Theme.getColor("primary_hover") @@ -29,8 +28,6 @@ Button property color outlineColor: color property color outlineHoverColor: hoverColor property color outlineDisabledColor: outlineColor - property alias shadowColor: shadow.color - property alias shadowEnabled: shadow.visible property alias busy: busyIndicator.visible property bool underlineTextOnHover: false @@ -46,6 +43,49 @@ Button // but it can exceed a maximum, then this value have to be set. property int maximumWidth: 0 + // These properties are deprecated. + // To (maybe) prevent a major SDK upgrade, mark them as deprecated instead of just outright removing them. + // Note, if you still want rounded corners, use (something based on) Cura.RoundedRectangle. + property alias cornerSide: deprecatedProperties.cornerSide + property alias shadowColor: deprecatedProperties.shadowColor + property alias shadowEnabled: deprecatedProperties.shadowEnabled + + Item + { + id: deprecatedProperties + + visible: false + enabled: false + width: 0 + height: 0 + + property var cornerSide: null + property var shadowColor: null + property var shadowEnabled: null + + onCornerSideChanged: + { + if (cornerSide != null) + { + CuraApplication.writeToLog("w", "'ActionButton.cornerSide' is deprecated since 4.11. Rounded corners can still be made with 'Cura.RoundedRectangle'."); + } + } + onShadowColorChanged: + { + if (shadowColor != null) + { + CuraApplication.writeToLog("w", "'ActionButton.shadowColor' is deprecated since 4.11.") + } + } + onShadowEnabledChanged: + { + if (shadowEnabled != null) + { + CuraApplication.writeToLog("w", "'ActionButton.shadowEnabled' is deprecated since 4.11.") + } + } + } + leftPadding: UM.Theme.getSize("default_margin").width rightPadding: UM.Theme.getSize("default_margin").width height: UM.Theme.getSize("action_button").height @@ -127,29 +167,14 @@ Button } } - background: Cura.RoundedRectangle + background: Rectangle { id: backgroundRect - cornerSide: Cura.RoundedRectangle.Direction.All color: button.enabled ? (button.hovered ? button.hoverColor : button.color) : button.disabledColor - radius: UM.Theme.getSize("action_button_radius").width border.width: UM.Theme.getSize("default_lining").width border.color: button.enabled ? (button.hovered ? button.outlineHoverColor : button.outlineColor) : button.outlineDisabledColor } - DropShadow - { - id: shadow - // Don't blur the shadow - radius: 0 - anchors.fill: backgroundRect - source: backgroundRect - verticalOffset: 2 - visible: false - // Should always be drawn behind the background. - z: backgroundRect.z - 1 - } - Cura.ToolTip { id: tooltip @@ -189,4 +214,4 @@ Button duration: 2500 } } -} \ No newline at end of file +} diff --git a/resources/qml/ActionPanel/OutputDevicesActionButton.qml b/resources/qml/ActionPanel/OutputDevicesActionButton.qml index 6d1a1d83dd..0a49c59c77 100644 --- a/resources/qml/ActionPanel/OutputDevicesActionButton.qml +++ b/resources/qml/ActionPanel/OutputDevicesActionButton.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2018 Ultimaker B.V. +// Copyright (c) 2021 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.7 @@ -23,7 +23,6 @@ Item id: saveToButton height: parent.height fixedWidthMode: true - cornerSide: deviceSelectionMenu.visible ? Cura.RoundedRectangle.Direction.Left : Cura.RoundedRectangle.Direction.All anchors { @@ -48,10 +47,6 @@ Item id: deviceSelectionMenu height: parent.height - shadowEnabled: true - shadowColor: UM.Theme.getColor("primary_shadow") - cornerSide: Cura.RoundedRectangle.Direction.Right - anchors { top: parent.top diff --git a/resources/qml/PrimaryButton.qml b/resources/qml/PrimaryButton.qml index fca63d2cdb..52c460bde4 100644 --- a/resources/qml/PrimaryButton.qml +++ b/resources/qml/PrimaryButton.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2018 Ultimaker B.V. +// Copyright (c) 2021 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 @@ -9,8 +9,6 @@ import Cura 1.1 as Cura Cura.ActionButton { - shadowEnabled: true - shadowColor: enabled ? UM.Theme.getColor("primary_button_shadow"): UM.Theme.getColor("action_button_disabled_shadow") color: UM.Theme.getColor("primary_button") textColor: UM.Theme.getColor("primary_button_text") outlineColor: "transparent" diff --git a/resources/qml/SecondaryButton.qml b/resources/qml/SecondaryButton.qml index f03d8acdfa..09c4efa025 100644 --- a/resources/qml/SecondaryButton.qml +++ b/resources/qml/SecondaryButton.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2018 Ultimaker B.V. +// Copyright (c) 2021 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 @@ -9,8 +9,6 @@ import Cura 1.1 as Cura Cura.ActionButton { - shadowEnabled: true - shadowColor: enabled ? UM.Theme.getColor("secondary_button_shadow"): UM.Theme.getColor("action_button_disabled_shadow") color: UM.Theme.getColor("secondary_button") textColor: UM.Theme.getColor("secondary_button_text") outlineColor: "transparent" diff --git a/resources/qml/TertiaryButton.qml b/resources/qml/TertiaryButton.qml index eb714c22f6..76684b6ef2 100644 --- a/resources/qml/TertiaryButton.qml +++ b/resources/qml/TertiaryButton.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2020 Ultimaker B.V. +// Copyright (c) 2021 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 @@ -9,8 +9,6 @@ import Cura 1.1 as Cura Cura.ActionButton { - shadowEnabled: true - shadowColor: enabled ? UM.Theme.getColor("secondary_button_shadow"): UM.Theme.getColor("action_button_disabled_shadow") color: "transparent" textColor: UM.Theme.getColor("text_link") outlineColor: "transparent" From 0a2407e6ed30dbc580d957b0f6515a170fd3e0da Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Thu, 1 Jul 2021 09:46:24 +0200 Subject: [PATCH 032/141] Reduce the size of the magnifier in the setting search CURA-8202 --- resources/qml/Settings/SettingView.qml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index f038d15ca3..cb49f0549c 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -65,7 +65,13 @@ Item anchors.right: clearFilterButton.left anchors.rightMargin: Math.round(UM.Theme.getSize("thick_margin").width) - placeholderText: "" + "
" + catalog.i18nc("@label:textbox", "Search settings") + placeholderText: + { + var imageSize = "width='" + UM.Theme.getSize("small_button_icon").width + "' height='" + UM.Theme.getSize("small_button_icon").height + var imageSource = "' src='"+ UM.Theme.getIcon("Magnifier") + var searchPlaceholder = catalog.i18nc("@label:textbox", "Search settings") + return "" + "
" + searchPlaceholder + } style: TextFieldStyle { From a996b631bb0e45c2cecce4f1a81ac3152e66c06c Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Thu, 1 Jul 2021 09:49:48 +0200 Subject: [PATCH 033/141] Increase the size of the hamburger menu CURA-8202 --- resources/qml/Settings/SettingView.qml | 4 ++-- resources/themes/cura-light/theme.json | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index cb49f0549c..fc920a30e7 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -194,8 +194,8 @@ Item { anchors.verticalCenter: parent.verticalCenter anchors.horizontalCenter: parent.horizontalCenter - width: UM.Theme.getSize("standard_arrow").width - height: UM.Theme.getSize("standard_arrow").height + width: UM.Theme.getSize("medium_button_icon").width + height: UM.Theme.getSize("medium_button_icon").height sourceSize.width: width sourceSize.height: height color: control.hovered ? UM.Theme.getColor("small_button_text_hover") : UM.Theme.getColor("small_button_text") diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index e190f3fc97..984681b8da 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -507,8 +507,8 @@ "section": [0.0, 2], "section_control": [0, 1], - "section_icon": [1.6, 1.6], - "section_icon_column": [2.8, 0.0], + "section_icon": [2, 2], + "section_icon_column": [2.5, 2.5], "rating_star": [1.0, 1.0], "setting": [25.0, 1.8], @@ -540,6 +540,9 @@ "small_button": [2, 2], "small_button_icon": [1.5, 1.5], + "medium_button": [2.5, 2.5], + "medium_button_icon": [2, 2], + "favorites_row": [2, 2], "favorites_button": [2, 2], "favorites_button_icon": [1.2, 1.2], From 4ef7fcf6e40f2d8c51636db6ae0835f00c9b7499 Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Thu, 1 Jul 2021 09:53:51 +0200 Subject: [PATCH 034/141] Increase the size of the small buttons in the setting category Also, fix the misalignment of the background rectangle, which made the category icons seem not-centered. CURA-8202 --- resources/qml/Settings/SettingCategory.qml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/resources/qml/Settings/SettingCategory.qml b/resources/qml/Settings/SettingCategory.qml index a42db9cdcb..5beb6e209e 100644 --- a/resources/qml/Settings/SettingCategory.qml +++ b/resources/qml/Settings/SettingCategory.qml @@ -16,10 +16,13 @@ Button anchors.rightMargin: 2 * UM.Theme.getSize("thin_margin").width hoverEnabled: true + height: UM.Theme.getSize("section_icon_column").height + background: Rectangle { id: backgroundRectangle height: UM.Theme.getSize("section").height + anchors.verticalCenter: parent.verticalCenter color: { if (!base.enabled) @@ -107,8 +110,8 @@ Button source: UM.Theme.getIcon(definition.icon) width: UM.Theme.getSize("section_icon").width height: UM.Theme.getSize("section_icon").height - sourceSize.width: width + 15 * screenScaleFactor - sourceSize.height: width + 15 * screenScaleFactor + sourceSize.width: width + sourceSize.height: width } onClicked: @@ -141,8 +144,8 @@ Button id: settingsButton visible: base.hovered || settingsButton.hovered - height: Math.round(base.height * 0.6) - width: Math.round(base.height * 0.6) + height: UM.Theme.getSize("small_button_icon").height + width: height anchors { @@ -184,7 +187,7 @@ Button return false } - height: Math.round(parent.height / 2) + height: UM.Theme.getSize("small_button_icon").height width: height onClicked: From 0478c127bfcfc220160b09989167b90341cae240 Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Thu, 1 Jul 2021 09:54:31 +0200 Subject: [PATCH 035/141] Increase the size of the auxiliary buttons in the setting items CURA-8202 --- resources/qml/Settings/SettingItem.qml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/resources/qml/Settings/SettingItem.qml b/resources/qml/Settings/SettingItem.qml index a377d08cfc..35172fc799 100644 --- a/resources/qml/Settings/SettingItem.qml +++ b/resources/qml/Settings/SettingItem.qml @@ -156,7 +156,7 @@ Item { id: settingControls - height: UM.Theme.getSize("section_control").height + height: UM.Theme.getSize("small_button_icon").height spacing: Math.round(UM.Theme.getSize("thick_margin").height / 2) anchors @@ -174,6 +174,7 @@ Item anchors.top: parent.top anchors.bottom: parent.bottom + height: UM.Theme.getSize("small_button_icon").height width: height color: UM.Theme.getColor("setting_control_button") @@ -203,6 +204,7 @@ Item anchors.top: parent.top anchors.bottom: parent.bottom + height: UM.Theme.getSize("small_button_icon").height width: height color: UM.Theme.getColor("setting_control_button") @@ -286,6 +288,7 @@ Item anchors.top: parent.top anchors.bottom: parent.bottom + height: UM.Theme.getSize("small_button_icon").height width: height onClicked: From 375529c2f0702e6df5ea9194abe15057be0d8393 Mon Sep 17 00:00:00 2001 From: ivovk9 Date: Thu, 1 Jul 2021 09:57:06 +0200 Subject: [PATCH 036/141] new edits and files new edits and files --- creasee_cs20.def.json | 32 ------------------- creasee_cs30.def.json | 32 ------------------- resources/definitions/creasee_cs30.def.json | 2 +- .../extruders/creasee_extruder_0.def.json | 2 +- .../extruders/creasee_extruder_1.def.json | 2 +- 5 files changed, 3 insertions(+), 67 deletions(-) delete mode 100644 creasee_cs20.def.json delete mode 100644 creasee_cs30.def.json rename creasee_extruder_0.def.json => resources/extruders/creasee_extruder_1.def.json (89%) diff --git a/creasee_cs20.def.json b/creasee_cs20.def.json deleted file mode 100644 index a3720fe710..0000000000 --- a/creasee_cs20.def.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "version": 2, - "name": "Creasee CS20", - "inherits": "fdmprinter", - "metadata": { - "visible": true, - "manufacturer": "CREASEE", - "machine_extruder_trains": - { - "0": "creasee_extruder_0" - } - }, - - "overrides": { - "machine_name": { "default_value": "Creasee CS20" }, - "machine_width": { - "default_value": 220 - }, - "machine_depth": { - "default_value": 220 - }, - "machine_height": { - "default_value": 250 - }, - "machine_start_gcode": { - "default_value": "G28 ;Home\nG1 Z15.0 F2000 ;Move the platform" - }, - "machine_end_gcode": { - "default_value": "M104 S0\nM140 S0\nG92 E0\nG1 E-10 F2000\nG28 X0 Y0\nM84" - } - } -} diff --git a/creasee_cs30.def.json b/creasee_cs30.def.json deleted file mode 100644 index 954cd4fee3..0000000000 --- a/creasee_cs30.def.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "version": 2, - "name": "Creasee CS30", - "inherits": "fdmprinter", - "metadata": { - "visible": true, - "manufacturer": "CREASEE", - "machine_extruder_trains": - { - "0": "creasee_extruder_0" - } - }, - - "overrides": { - "machine_name": { "default_value": "Creasee CS30" }, - "machine_width": { - "default_value": 300 - }, - "machine_depth": { - "default_value": 300 - }, - "machine_height": { - "default_value": 400 - }, - "machine_start_gcode": { - "default_value": "G28 ;Home\nG1 Z15.0 F2000 ;Move the platform" - }, - "machine_end_gcode": { - "default_value": "M104 S0\nM140 S0\nG92 E0\nG1 E-10 F2000\nG28 X0 Y0\nM84" - } - } -} diff --git a/resources/definitions/creasee_cs30.def.json b/resources/definitions/creasee_cs30.def.json index 954cd4fee3..b879ecddc0 100644 --- a/resources/definitions/creasee_cs30.def.json +++ b/resources/definitions/creasee_cs30.def.json @@ -7,7 +7,7 @@ "manufacturer": "CREASEE", "machine_extruder_trains": { - "0": "creasee_extruder_0" + "0": "creasee_extruder_1" } }, diff --git a/resources/extruders/creasee_extruder_0.def.json b/resources/extruders/creasee_extruder_0.def.json index 8b8f13b9ae..abefa6b1c8 100644 --- a/resources/extruders/creasee_extruder_0.def.json +++ b/resources/extruders/creasee_extruder_0.def.json @@ -3,7 +3,7 @@ "name": "Extruder 1", "inherits": "fdmextruder", "metadata": { - "machine": "creasee", + "machine": "creasee_cs20", "position": "0" }, diff --git a/creasee_extruder_0.def.json b/resources/extruders/creasee_extruder_1.def.json similarity index 89% rename from creasee_extruder_0.def.json rename to resources/extruders/creasee_extruder_1.def.json index 8b8f13b9ae..747e1c48f8 100644 --- a/creasee_extruder_0.def.json +++ b/resources/extruders/creasee_extruder_1.def.json @@ -3,7 +3,7 @@ "name": "Extruder 1", "inherits": "fdmextruder", "metadata": { - "machine": "creasee", + "machine": "creasee_cs30", "position": "0" }, From 0904324dde1a64d18839aba86b9ad77c8c79c2b5 Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Thu, 1 Jul 2021 10:02:09 +0200 Subject: [PATCH 037/141] Use medium_button instead of toolbar_button Since it is less specific and can be used in other places too. CURA-8202 --- .../PrintSetupSelector/PrintSetupSelectorHeader.qml | 6 +++--- .../Recommended/RecommendedAdhesionSelector.qml | 2 +- .../Recommended/RecommendedInfillDensitySelector.qml | 2 +- .../Recommended/RecommendedQualityProfileSelector.qml | 2 +- .../Recommended/RecommendedSupportSelector.qml | 2 +- resources/themes/cura-light/styles.qml | 10 +++++----- resources/themes/cura-light/theme.json | 3 --- 7 files changed, 12 insertions(+), 15 deletions(-) diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml b/resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml index 6dd909105d..3b6fc37eb4 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml @@ -54,7 +54,7 @@ RowLayout source: UM.Theme.getIcon("Infill1") text: Cura.MachineManager.activeStack ? parseInt(infillDensity.properties.value) + "%" : "0%" font: UM.Theme.getFont("medium") - iconSize: UM.Theme.getSize("toolbar_button_icon").width + iconSize: UM.Theme.getSize("medium_button_icon").width UM.SettingPropertyProvider { @@ -70,7 +70,7 @@ RowLayout source: UM.Theme.getIcon("Support") text: supportEnabled.properties.value == "True" ? enabledText : disabledText font: UM.Theme.getFont("medium") - iconSize: UM.Theme.getSize("toolbar_button_icon").width + iconSize: UM.Theme.getSize("medium_button_icon").width UM.SettingPropertyProvider { @@ -86,7 +86,7 @@ RowLayout source: UM.Theme.getIcon("Adhesion") text: platformAdhesionType.properties.value != "skirt" && platformAdhesionType.properties.value != "none" ? enabledText : disabledText font: UM.Theme.getFont("medium") - iconSize: UM.Theme.getSize("toolbar_button_icon").width + iconSize: UM.Theme.getSize("medium_button_icon").width UM.SettingPropertyProvider { diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedAdhesionSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedAdhesionSelector.qml index 40d1e890dc..a3a5047ee9 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedAdhesionSelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedAdhesionSelector.qml @@ -29,7 +29,7 @@ Item text: catalog.i18nc("@label", "Adhesion") font: UM.Theme.getFont("medium") width: labelColumnWidth - iconSize: UM.Theme.getSize("toolbar_button_icon").width + iconSize: UM.Theme.getSize("medium_button_icon").width } Item diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml index d78c63c803..0f2e6bc706 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml @@ -65,7 +65,7 @@ Item text: catalog.i18nc("@label", "Infill") + " (%)" font: UM.Theme.getFont("medium") width: labelColumnWidth - iconSize: UM.Theme.getSize("toolbar_button_icon").width + iconSize: UM.Theme.getSize("medium_button_icon").width } Item diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml index 3c54c37785..fbc958c51c 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml @@ -52,7 +52,7 @@ Item text: catalog.i18nc("@label", "Profiles") font: UM.Theme.getFont("medium") width: labelColumnWidth - iconSize: UM.Theme.getSize("toolbar_button_icon").width + iconSize: UM.Theme.getSize("medium_button_icon").width } UM.SimpleButton { diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml index 50327d364b..5fb437b1c2 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml @@ -30,7 +30,7 @@ Item text: catalog.i18nc("@label", "Support") font: UM.Theme.getFont("medium") width: labelColumnWidth - iconSize: UM.Theme.getSize("toolbar_button_icon").width + iconSize: UM.Theme.getSize("medium_button_icon").width } Item diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index 62c673c584..1320b54f37 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -175,8 +175,8 @@ QtObject { background: Item { - implicitWidth: UM.Theme.getSize("toolbar_button").width - implicitHeight: UM.Theme.getSize("toolbar_button").height + implicitWidth: UM.Theme.getSize("button").width + implicitHeight: UM.Theme.getSize("button").height UM.PointingRectangle { @@ -252,11 +252,11 @@ QtObject anchors.centerIn: parent opacity: control.enabled ? 1.0 : 0.2 source: control.iconSource - width: UM.Theme.getSize("toolbar_button_icon").width - height: UM.Theme.getSize("toolbar_button_icon").height + width: UM.Theme.getSize("medium_button_icon").width + height: UM.Theme.getSize("medium_button_icon").height color: UM.Theme.getColor("icon") - sourceSize: UM.Theme.getSize("toolbar_button_icon") + sourceSize: UM.Theme.getSize("medium_button_icon") } } } diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 984681b8da..c45eb00c9e 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -527,9 +527,6 @@ "button_icon": [2.5, 2.5], "button_lining": [0, 0], - "toolbar_button": [4, 4], - "toolbar_button_icon": [2, 2], - "action_button": [15.0, 2.5], "action_button_icon": [1.0, 1.0], "action_button_radius": [0.15, 0.15], From 0d64f3383a817f1fb4f1256db9c46d4eaec088d5 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 1 Jul 2021 10:08:53 +0200 Subject: [PATCH 038/141] Remove silly id from extruderIcon Whoops. That was a debug thingie. CURA-8011 --- resources/qml/ExtruderIcon.qml | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/qml/ExtruderIcon.qml b/resources/qml/ExtruderIcon.qml index 2d21ed9e13..a4118228db 100644 --- a/resources/qml/ExtruderIcon.qml +++ b/resources/qml/ExtruderIcon.qml @@ -24,7 +24,6 @@ Item UM.RecolorImage { - id: blorp anchors.fill: parent source: UM.Theme.getIcon("ExtruderColor", "medium") From 196e5ba3978b2444fea5e94b68d872495774d68d Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Thu, 1 Jul 2021 11:21:45 +0200 Subject: [PATCH 039/141] Increase size of buildplate icon in monitor page CURA-8202 --- .../resources/qml/MonitorBuildplateConfiguration.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorBuildplateConfiguration.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorBuildplateConfiguration.qml index f3002fd25b..0f4aec5424 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorBuildplateConfiguration.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorBuildplateConfiguration.qml @@ -50,7 +50,7 @@ Item id: buildplateIcon anchors.centerIn: parent color: UM.Theme.getColor("monitor_icon_primary") - height: parent.height + height: UM.Theme.getSize("medium_button_icon").width source: "../svg/icons/Buildplate.svg" width: height visible: buildplate From 1f612f3e1a0a038b109e77a0e650bbde81d68a60 Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Thu, 1 Jul 2021 11:37:03 +0200 Subject: [PATCH 040/141] Align extruder labels in monitor page with the extruder icon CURA-8202 --- .../qml/MonitorExtruderConfiguration.qml | 28 ++++--------------- .../resources/qml/MonitorIconExtruder.qml | 3 +- 2 files changed, 7 insertions(+), 24 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorExtruderConfiguration.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorExtruderConfiguration.qml index ac5f588db3..c305c76ac6 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorExtruderConfiguration.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorExtruderConfiguration.qml @@ -37,6 +37,7 @@ Item { id: extruderIcon color: UM.Theme.getColor("monitor_skeleton_loading") + size: UM.Theme.getSize("button_icon").width position: 0 } @@ -46,16 +47,18 @@ Item anchors { left: extruderIcon.right - leftMargin: 12 * screenScaleFactor // TODO: Theme! + leftMargin: UM.Theme.getSize("default_margin").width + verticalCenter: extruderIcon.verticalCenter } color: materialLabel.visible > 0 ? "transparent" : UM.Theme.getColor("monitor_skeleton_loading") - height: 18 * screenScaleFactor // TODO: Theme! + height: childrenRect.height width: Math.max(materialLabel.contentWidth, 60 * screenScaleFactor) // TODO: Theme! radius: 2 * screenScaleFactor // TODO: Theme! Label { id: materialLabel + anchors.top: parent.top color: UM.Theme.getColor("text") elide: Text.ElideRight @@ -63,29 +66,13 @@ Item text: "" visible: text !== "" - // FIXED-LINE-HEIGHT: - height: parent.height - verticalAlignment: Text.AlignVCenter renderType: Text.NativeRendering } - } - - Rectangle - { - id: printCoreLabelWrapper - anchors - { - left: materialLabelWrapper.left - bottom: parent.bottom - } - color: printCoreLabel.visible > 0 ? "transparent" : UM.Theme.getColor("monitor_skeleton_loading") - height: 18 * screenScaleFactor // TODO: Theme! - width: Math.max(printCoreLabel.contentWidth, 36 * screenScaleFactor) // TODO: Theme! - radius: 2 * screenScaleFactor // TODO: Theme! Label { id: printCoreLabel + anchors.top: materialLabel.bottom color: UM.Theme.getColor("text") elide: Text.ElideRight @@ -93,9 +80,6 @@ Item text: "" visible: text !== "" - // FIXED-LINE-HEIGHT: - height: parent.height - verticalAlignment: Text.AlignVCenter renderType: Text.NativeRendering } } diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorIconExtruder.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorIconExtruder.qml index 79bc0ec25b..ad0e8a6777 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorIconExtruder.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorIconExtruder.qml @@ -38,6 +38,7 @@ Item Label { id: positionLabel + anchors.centerIn: icon font: UM.Theme.getFont("small") color: UM.Theme.getColor("text") height: Math.round(size / 2) @@ -45,8 +46,6 @@ Item text: position + 1 verticalAlignment: Text.AlignVCenter width: Math.round(size / 2) - x: Math.round(size * 0.25) - y: Math.round(size * 0.15625) visible: position >= 0 renderType: Text.NativeRendering } From 0472df38149a40ca0af28b9a66457f7d819a39fb Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Thu, 1 Jul 2021 11:42:31 +0200 Subject: [PATCH 041/141] Change collapse button icon in expandable component to chevron CURA-8202 --- resources/qml/ExpandableComponent.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index f58d7b59ff..f48cc685db 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -167,7 +167,7 @@ Item verticalCenter: parent.verticalCenter margins: background.padding } - source: UM.Theme.getIcon("Pen") + source: expanded ? UM.Theme.getIcon("ChevronSingleDown") : UM.Theme.getIcon("ChevronSingleLeft") visible: source != "" width: UM.Theme.getSize("standard_arrow").width height: UM.Theme.getSize("standard_arrow").height From bf40ccc3f2005bd3132b9b10b72f0bcbef2e31e4 Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Thu, 1 Jul 2021 11:55:24 +0200 Subject: [PATCH 042/141] Replace shadow with border in headerbar in simulation view CURA-8202 --- plugins/PreviewStage/PreviewMenu.qml | 25 +++++-------------- .../SimulationViewMenuComponent.qml | 3 +++ 2 files changed, 9 insertions(+), 19 deletions(-) diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index ff1ccff75f..2c9d1d5319 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -35,26 +35,21 @@ Item anchors.horizontalCenter: parent.horizontalCenter width: parent.width - 2 * UM.Theme.getSize("wide_margin").width height: parent.height + // This is a trick to make sure that the borders of the two adjacent buttons' borders overlap. Otherwise + // there will be double border (one from each button) + spacing: -UM.Theme.getSize("default_lining").width Cura.ViewsSelector { id: viewsSelector height: parent.height width: UM.Theme.getSize("views_selector").width + headerBackgroundBorder.width: UM.Theme.getSize("default_lining").width + headerBackgroundBorder.color: UM.Theme.getColor("lining") + enableHeaderShadow: false headerCornerSide: Cura.RoundedRectangle.Direction.Left } - // Separator line - Rectangle - { - height: parent.height - // If there is no viewPanel, we only need a single spacer, so hide this one. - visible: viewPanel.source != "" - width: visible ? UM.Theme.getSize("default_lining").width : 0 - - color: UM.Theme.getColor("lining") - } - // This component will grow freely up to complete the width of the row. Loader { @@ -64,14 +59,6 @@ Item source: UM.Controller.activeView != null && UM.Controller.activeView.stageMenuComponent != null ? UM.Controller.activeView.stageMenuComponent : "" } - // Separator line - Rectangle - { - height: parent.height - width: UM.Theme.getSize("default_lining").width - color: UM.Theme.getColor("lining") - } - Item { id: printSetupSelectorItem diff --git a/plugins/SimulationView/SimulationViewMenuComponent.qml b/plugins/SimulationView/SimulationViewMenuComponent.qml index 86e686e0fc..ba1b546043 100644 --- a/plugins/SimulationView/SimulationViewMenuComponent.qml +++ b/plugins/SimulationView/SimulationViewMenuComponent.qml @@ -16,6 +16,9 @@ Cura.ExpandableComponent id: base dragPreferencesNamePrefix: "view/colorscheme" + headerBackgroundBorder.width: UM.Theme.getSize("default_lining").width + headerBackgroundBorder.color: UM.Theme.getColor("lining") + enableHeaderShadow: false contentHeaderTitle: catalog.i18nc("@label", "Color scheme") From ce88392137128fd7095a4b516a3584b592a0e4e4 Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Thu, 1 Jul 2021 11:57:14 +0200 Subject: [PATCH 043/141] Replace shadow with border in machine selector in monitor page CURA-8202 --- plugins/MonitorStage/MonitorMenu.qml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/MonitorStage/MonitorMenu.qml b/plugins/MonitorStage/MonitorMenu.qml index bc95c276e8..4c29c84312 100644 --- a/plugins/MonitorStage/MonitorMenu.qml +++ b/plugins/MonitorStage/MonitorMenu.qml @@ -15,6 +15,9 @@ Item Cura.MachineSelector { id: machineSelection + headerBackgroundBorder.width: UM.Theme.getSize("default_lining").width + headerBackgroundBorder.color: UM.Theme.getColor("lining") + enableHeaderShadow: false headerCornerSide: Cura.RoundedRectangle.Direction.All width: UM.Theme.getSize("machine_selector_widget").width height: parent.height From 0505842235a8a6cea0226c00e6753e0297bc1f3a Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Thu, 1 Jul 2021 12:07:35 +0200 Subject: [PATCH 044/141] Remove DropShadow from ExpandablePopup and ExpandableComponent Since they are not used anywhere anymore CURA-8202 --- plugins/MonitorStage/MonitorMenu.qml | 1 - plugins/PrepareStage/PrepareMenu.qml | 2 -- plugins/PreviewStage/PreviewMenu.qml | 1 - .../SimulationViewMenuComponent.qml | 1 - resources/qml/ExpandableComponent.qml | 24 ++----------------- resources/qml/ExpandablePopup.qml | 24 ++----------------- .../PrintSetupSelector/PrintSetupSelector.qml | 1 - 7 files changed, 4 insertions(+), 50 deletions(-) diff --git a/plugins/MonitorStage/MonitorMenu.qml b/plugins/MonitorStage/MonitorMenu.qml index 4c29c84312..dc339ed8ef 100644 --- a/plugins/MonitorStage/MonitorMenu.qml +++ b/plugins/MonitorStage/MonitorMenu.qml @@ -17,7 +17,6 @@ Item id: machineSelection headerBackgroundBorder.width: UM.Theme.getSize("default_lining").width headerBackgroundBorder.color: UM.Theme.getColor("lining") - enableHeaderShadow: false headerCornerSide: Cura.RoundedRectangle.Direction.All width: UM.Theme.getSize("machine_selector_widget").width height: parent.height diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index 09bb2a9fc1..012d2b9d36 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -54,7 +54,6 @@ Item headerCornerSide: Cura.RoundedRectangle.Direction.Left headerBackgroundBorder.width: UM.Theme.getSize("default_lining").width headerBackgroundBorder.color: UM.Theme.getColor("lining") - enableHeaderShadow: false Layout.preferredWidth: parent.machineSelectorWidth Layout.fillWidth: true Layout.fillHeight: true @@ -63,7 +62,6 @@ Item Cura.ConfigurationMenu { id: printerSetup - enableHeaderShadow: false headerBackgroundBorder.width: UM.Theme.getSize("default_lining").width headerBackgroundBorder.color: UM.Theme.getColor("lining") Layout.fillHeight: true diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index 2c9d1d5319..290a085772 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -46,7 +46,6 @@ Item width: UM.Theme.getSize("views_selector").width headerBackgroundBorder.width: UM.Theme.getSize("default_lining").width headerBackgroundBorder.color: UM.Theme.getColor("lining") - enableHeaderShadow: false headerCornerSide: Cura.RoundedRectangle.Direction.Left } diff --git a/plugins/SimulationView/SimulationViewMenuComponent.qml b/plugins/SimulationView/SimulationViewMenuComponent.qml index ba1b546043..a4126db7ab 100644 --- a/plugins/SimulationView/SimulationViewMenuComponent.qml +++ b/plugins/SimulationView/SimulationViewMenuComponent.qml @@ -18,7 +18,6 @@ Cura.ExpandableComponent dragPreferencesNamePrefix: "view/colorscheme" headerBackgroundBorder.width: UM.Theme.getSize("default_lining").width headerBackgroundBorder.color: UM.Theme.getColor("lining") - enableHeaderShadow: false contentHeaderTitle: catalog.i18nc("@label", "Color scheme") diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index f48cc685db..e1c4a03807 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -7,8 +7,6 @@ import QtQuick.Controls 2.3 import UM 1.2 as UM import Cura 1.0 as Cura -import QtGraphicalEffects 1.0 // For the dropshadow - // The expandable component has 2 major sub components: // * The headerItem; Always visible and should hold some info about what happens if the component is expanded // * The contentItem; The content that needs to be shown if the component is expanded. @@ -75,11 +73,7 @@ Item // On what side should the header corners be shown? 1 is down, 2 is left, 3 is up and 4 is right. property alias headerCornerSide: background.cornerSide - property alias headerShadowColor: shadow.color - - property alias enableHeaderShadow: shadow.visible - - property int shadowOffset: 2 + property int popupOffset: 2 // Prefix used for the dragged position preferences. Preferences not used if empty. Don't translate! property string dragPreferencesNamePrefix: "" @@ -186,20 +180,6 @@ Item } } - DropShadow - { - id: shadow - // Don't blur the shadow - radius: 0 - anchors.fill: background - source: background - verticalOffset: base.shadowOffset - visible: true - color: UM.Theme.getColor("action_button_shadow") - // Should always be drawn behind the background. - z: background.z - 1 - } - Cura.RoundedRectangle { id: contentContainer @@ -211,7 +191,7 @@ Item height: childrenRect.height // Ensure that the content is located directly below the headerItem - y: dragPreferencesNamePrefix === "" ? (background.height + base.shadowOffset + base.contentSpacingY) : UM.Preferences.getValue(dragPreferencesNamePrefix + dragPreferencesNameY) + y: dragPreferencesNamePrefix === "" ? (background.height + base.popupOffset + base.contentSpacingY) : UM.Preferences.getValue(dragPreferencesNamePrefix + dragPreferencesNameY) // Make the content aligned with the rest, using the property contentAlignment to decide whether is right or left. // In case of right alignment, the 3x padding is due to left, right and padding between the button & text. diff --git a/resources/qml/ExpandablePopup.qml b/resources/qml/ExpandablePopup.qml index 69f7f61433..f47d6239dc 100644 --- a/resources/qml/ExpandablePopup.qml +++ b/resources/qml/ExpandablePopup.qml @@ -7,8 +7,6 @@ import QtQuick.Controls 2.3 import UM 1.2 as UM import Cura 1.0 as Cura -import QtGraphicalEffects 1.0 // For the dropshadow - // The expandable component has 2 major sub components: // * The headerItem; Always visible and should hold some info about what happens if the component is expanded // * The contentItem; The content that needs to be shown if the component is expanded. @@ -74,11 +72,7 @@ Item // Change the contentItem close behaviour property alias contentClosePolicy : content.closePolicy - property alias headerShadowColor: shadow.color - - property alias enableHeaderShadow: shadow.visible - - property int shadowOffset: 2 + property int popupOffset: 2 onEnabledChanged: { @@ -190,26 +184,12 @@ Item } - DropShadow - { - id: shadow - // Don't blur the shadow - radius: 0 - anchors.fill: background - source: background - verticalOffset: base.shadowOffset - visible: true - color: UM.Theme.getColor("action_button_shadow") - // Should always be drawn behind the background. - z: background.z - 1 - } - Popup { id: content // Ensure that the content is located directly below the headerItem - y: background.height + base.shadowOffset + y: background.height + base.popupOffset // Make the content aligned with the rest, using the property contentAlignment to decide whether is right or left. // In case of right alignment, the 3x padding is due to left, right and padding between the button & text. diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector/PrintSetupSelector.qml index a378290b03..3bb31fecc1 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelector.qml @@ -17,7 +17,6 @@ Cura.ExpandableComponent contentPadding: UM.Theme.getSize("default_lining").width contentHeaderTitle: catalog.i18nc("@label", "Print settings") - enableHeaderShadow: false headerBackgroundBorder.width: UM.Theme.getSize("default_lining").width headerBackgroundBorder.color: UM.Theme.getColor("lining") enabled: !preSlicedData From a7446d681f443a8430e100b51eb693ff533b63ea Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Thu, 1 Jul 2021 14:20:57 +0200 Subject: [PATCH 045/141] Set header border and color by default in ExpandablePopup and Component CURA-8202 --- plugins/MonitorStage/MonitorMenu.qml | 2 -- plugins/PrepareStage/PrepareMenu.qml | 4 ---- plugins/PreviewStage/PreviewMenu.qml | 2 -- plugins/SimulationView/SimulationViewMenuComponent.qml | 2 -- resources/qml/ExpandableComponent.qml | 6 ++++++ resources/qml/ExpandablePopup.qml | 6 ++++++ resources/qml/PrintSetupSelector/PrintSetupSelector.qml | 2 -- 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/plugins/MonitorStage/MonitorMenu.qml b/plugins/MonitorStage/MonitorMenu.qml index dc339ed8ef..bc95c276e8 100644 --- a/plugins/MonitorStage/MonitorMenu.qml +++ b/plugins/MonitorStage/MonitorMenu.qml @@ -15,8 +15,6 @@ Item Cura.MachineSelector { id: machineSelection - headerBackgroundBorder.width: UM.Theme.getSize("default_lining").width - headerBackgroundBorder.color: UM.Theme.getColor("lining") headerCornerSide: Cura.RoundedRectangle.Direction.All width: UM.Theme.getSize("machine_selector_widget").width height: parent.height diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index 012d2b9d36..82f61da069 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -52,8 +52,6 @@ Item { id: machineSelection headerCornerSide: Cura.RoundedRectangle.Direction.Left - headerBackgroundBorder.width: UM.Theme.getSize("default_lining").width - headerBackgroundBorder.color: UM.Theme.getColor("lining") Layout.preferredWidth: parent.machineSelectorWidth Layout.fillWidth: true Layout.fillHeight: true @@ -62,8 +60,6 @@ Item Cura.ConfigurationMenu { id: printerSetup - headerBackgroundBorder.width: UM.Theme.getSize("default_lining").width - headerBackgroundBorder.color: UM.Theme.getColor("lining") Layout.fillHeight: true Layout.fillWidth: true Layout.preferredWidth: parent.machineSelectorWidth * 2 diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index 290a085772..e6c4a25c4c 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -44,8 +44,6 @@ Item id: viewsSelector height: parent.height width: UM.Theme.getSize("views_selector").width - headerBackgroundBorder.width: UM.Theme.getSize("default_lining").width - headerBackgroundBorder.color: UM.Theme.getColor("lining") headerCornerSide: Cura.RoundedRectangle.Direction.Left } diff --git a/plugins/SimulationView/SimulationViewMenuComponent.qml b/plugins/SimulationView/SimulationViewMenuComponent.qml index a4126db7ab..86e686e0fc 100644 --- a/plugins/SimulationView/SimulationViewMenuComponent.qml +++ b/plugins/SimulationView/SimulationViewMenuComponent.qml @@ -16,8 +16,6 @@ Cura.ExpandableComponent id: base dragPreferencesNamePrefix: "view/colorscheme" - headerBackgroundBorder.width: UM.Theme.getSize("default_lining").width - headerBackgroundBorder.color: UM.Theme.getColor("lining") contentHeaderTitle: catalog.i18nc("@label", "Color scheme") diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index e1c4a03807..415d994ceb 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -56,6 +56,9 @@ Item property alias headerBackgroundBorder: background.border + // Whether or not to show the background border + property bool enableHeaderBackgroundBorder: true + // What icon should be displayed on the right. property alias iconSource: collapseButton.source @@ -116,6 +119,9 @@ Item id: background property real padding: UM.Theme.getSize("default_margin").width + border.width: base.enableHeaderBackgroundBorder ? UM.Theme.getSize("default_lining").width : 0 + border.color: UM.Theme.getColor("lining") + color: base.enabled ? (base.expanded ? headerActiveColor : headerBackgroundColor) : UM.Theme.getColor("disabled") anchors.fill: parent diff --git a/resources/qml/ExpandablePopup.qml b/resources/qml/ExpandablePopup.qml index f47d6239dc..da56470bfb 100644 --- a/resources/qml/ExpandablePopup.qml +++ b/resources/qml/ExpandablePopup.qml @@ -50,6 +50,9 @@ Item property alias headerBackgroundBorder: background.border + // Whether or not to show the background border + property bool enableHeaderBackgroundBorder: true + // What icon should be displayed on the right. property alias iconSource: collapseButton.source @@ -110,6 +113,9 @@ Item id: background property real padding: UM.Theme.getSize("default_margin").width + border.width: base.enableHeaderBackgroundBorder ? UM.Theme.getSize("default_lining").width : 0 + border.color: UM.Theme.getColor("lining") + color: base.enabled ? headerBackgroundColor : UM.Theme.getColor("disabled") anchors.fill: parent diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector/PrintSetupSelector.qml index 3bb31fecc1..414c349bb6 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelector.qml @@ -17,8 +17,6 @@ Cura.ExpandableComponent contentPadding: UM.Theme.getSize("default_lining").width contentHeaderTitle: catalog.i18nc("@label", "Print settings") - headerBackgroundBorder.width: UM.Theme.getSize("default_lining").width - headerBackgroundBorder.color: UM.Theme.getColor("lining") enabled: !preSlicedData disabledText: catalog.i18nc("@label shown when we load a Gcode file", "Print setup disabled. G-code file can not be modified.") From b34dd6117217b0beed35902df40b656eda6b4aab Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Thu, 1 Jul 2021 16:08:53 +0200 Subject: [PATCH 046/141] Align layer height labels with the "Profiles" label CURA-8202 --- .../Recommended/RecommendedQualityProfileSelector.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml index fbc958c51c..0823b5cb62 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml @@ -92,6 +92,7 @@ Item { left: profileLabel.right right: parent.right + verticalCenter: profileLabel.verticalCenter } model: Cura.QualityProfilesDropDownMenuModel From 0cce7bf9ac58dd0ba907e4608d45762307ad8f14 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 1 Jul 2021 16:22:57 +0200 Subject: [PATCH 047/141] =?UTF-8?q?Rename=20'Haute=20temp=C3=A9rature'=20n?= =?UTF-8?q?ozzle=20to=20'High=20temp'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit As discussed with ChronosTech in his PR #9803. Contributes to issue CURA-8355. --- resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_A.inst.cfg | 2 +- resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_C.inst.cfg | 2 +- resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_A.inst.cfg | 2 +- resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_C.inst.cfg | 2 +- resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_A.inst.cfg | 2 +- resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_C.inst.cfg | 2 +- resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_A.inst.cfg | 2 +- resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_C.inst.cfg | 2 +- resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_A.inst.cfg | 2 +- resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_C.inst.cfg | 2 +- resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_A.inst.cfg | 2 +- resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_C.inst.cfg | 2 +- resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_A.inst.cfg | 2 +- resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_C.inst.cfg | 2 +- resources/quality/strateo3d/HT0.4/s3d_ht0.4_PEKK_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_A.inst.cfg | 2 +- resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_C.inst.cfg | 2 +- resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_A.inst.cfg | 2 +- resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_C.inst.cfg | 2 +- resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_A.inst.cfg | 2 +- resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_C.inst.cfg | 2 +- resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_A.inst.cfg | 2 +- resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_B.inst.cfg | 2 +- resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_C.inst.cfg | 2 +- ..._temperature_04.inst.cfg => strateo3d_high_temp_04.inst.cfg} | 2 +- 35 files changed, 35 insertions(+), 35 deletions(-) rename resources/variants/{strateo3d_haute_temperature_04.inst.cfg => strateo3d_high_temp_04.inst.cfg} (92%) diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_A.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_A.inst.cfg index 577311eac7..76ec06262a 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_A.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_A.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = a weight = 1 material = emotiontech_absx -variant = Haute température 0.4 +variant = High temp 0.4 [values] layer_height_0 = =round(0.5*machine_nozzle_size, 2) diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_B.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_B.inst.cfg index aedabc9327..f3f24b3469 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_B.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_B.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = b weight = 0 material = emotiontech_absx -variant = Haute température 0.4 +variant = High temp 0.4 [values] layer_height_0 = =round(0.67*machine_nozzle_size, 2) diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_C.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_C.inst.cfg index 6575dc05b3..1a81a07607 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_C.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS-X_C.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = c weight = -1 material = emotiontech_absx -variant = Haute température 0.4 +variant = High temp 0.4 [values] layer_height_0 = =round(0.75*machine_nozzle_size, 2) diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_A.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_A.inst.cfg index 840ec3365d..ccb80ab2f1 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_A.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_A.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = a weight = 1 material = emotiontech_abs -variant = Haute température 0.4 +variant = High temp 0.4 [values] layer_height_0 = =round(0.5*machine_nozzle_size, 2) diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_B.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_B.inst.cfg index 60b68dc59b..25f6aef09a 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_B.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_B.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = b weight = 0 material = emotiontech_abs -variant = Haute température 0.4 +variant = High temp 0.4 [values] layer_height_0 = =round(0.67*machine_nozzle_size, 2) diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_C.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_C.inst.cfg index 3e90769ca4..3413ce30aa 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_C.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ABS_C.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = c weight = -1 material = emotiontech_abs -variant = Haute température 0.4 +variant = High temp 0.4 [values] layer_height_0 = =round(0.75*machine_nozzle_size, 2) diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_A.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_A.inst.cfg index 2084d4c852..739ae5bf06 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_A.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_A.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = a weight = 1 material = emotiontech_acetate -variant = Haute température 0.4 +variant = High temp 0.4 [values] layer_height_0 = =round(0.5*machine_nozzle_size, 2) diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_B.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_B.inst.cfg index 0448285579..7787def8bb 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_B.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_B.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = b weight = 0 material = emotiontech_acetate -variant = Haute température 0.4 +variant = High temp 0.4 [values] layer_height_0 = =round(0.67*machine_nozzle_size, 2) diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_C.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_C.inst.cfg index b0efa1ecce..f670bb6eb1 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_C.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ACETATE_C.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = c weight = -1 material = emotiontech_acetate -variant = Haute température 0.4 +variant = High temp 0.4 [values] layer_height_0 = =round(0.75*machine_nozzle_size, 2) diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_A.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_A.inst.cfg index 9dcc30ff63..cfe30caf9f 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_A.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_A.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = a weight = 1 material = emotiontech_asax -variant = Haute température 0.4 +variant = High temp 0.4 [values] layer_height_0 = =round(0.5*machine_nozzle_size, 2) diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_B.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_B.inst.cfg index 9cc0f19d87..2d113281a8 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_B.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_B.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = b weight = 0 material = emotiontech_asax -variant = Haute température 0.4 +variant = High temp 0.4 [values] layer_height_0 = =round(0.67*machine_nozzle_size, 2) diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_C.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_C.inst.cfg index e084528372..7dc65e54da 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_C.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_ASA-X_C.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = c weight = -1 material = emotiontech_asax -variant = Haute température 0.4 +variant = High temp 0.4 [values] layer_height_0 = =round(0.75*machine_nozzle_size, 2) diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_A.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_A.inst.cfg index b28bfcea7c..010c252721 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_A.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_A.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = a weight = 1 material = emotiontech_copa -variant = Haute température 0.4 +variant = High temp 0.4 [values] layer_height_0 = =round(0.5*machine_nozzle_size, 2) diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_B.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_B.inst.cfg index efa7a3a060..80c7c4c6ad 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_B.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_B.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = b weight = 0 material = emotiontech_copa -variant = Haute température 0.4 +variant = High temp 0.4 [values] layer_height_0 = =round(0.67*machine_nozzle_size, 2) diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_C.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_C.inst.cfg index 7d104d2547..5de7b0ea9f 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_C.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_COPA_C.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = c weight = -1 material = emotiontech_copa -variant = Haute température 0.4 +variant = High temp 0.4 [values] layer_height_0 = =round(0.75*machine_nozzle_size, 2) diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_A.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_A.inst.cfg index e00424fb28..cb3871fc6d 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_A.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_A.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = a weight = 1 material = emotiontech_hips -variant = Haute température 0.4 +variant = High temp 0.4 [values] layer_height_0 = =round(0.5*machine_nozzle_size, 2) diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_B.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_B.inst.cfg index 543f2f4633..d29a61bae6 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_B.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_B.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = b weight = 0 material = emotiontech_hips -variant = Haute température 0.4 +variant = High temp 0.4 [values] layer_height_0 = =round(0.67*machine_nozzle_size, 2) diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_C.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_C.inst.cfg index 498ca1ee4a..46b30ef1a1 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_C.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_HIPS_C.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = c weight = -1 material = emotiontech_hips -variant = Haute température 0.4 +variant = High temp 0.4 [values] layer_height_0 = =round(0.75*machine_nozzle_size, 2) diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_A.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_A.inst.cfg index 34cc38d0c8..c2065bf506 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_A.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_A.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = a weight = 1 material = emotiontech_pc -variant = Haute température 0.4 +variant = High temp 0.4 [values] layer_height_0 = =round(0.5*machine_nozzle_size, 2) diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_B.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_B.inst.cfg index 588c94f91c..e3804df9e2 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_B.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_B.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = b weight = 0 material = emotiontech_pc -variant = Haute température 0.4 +variant = High temp 0.4 [values] layer_height_0 = =round(0.67*machine_nozzle_size, 2) diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_C.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_C.inst.cfg index bfc2586832..453c4c8700 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_C.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PC_C.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = c weight = -1 material = emotiontech_pc -variant = Haute température 0.4 +variant = High temp 0.4 [values] layer_height_0 = =round(0.75*machine_nozzle_size, 2) diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PEKK_B.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PEKK_B.inst.cfg index 5733230aa7..3782c7f994 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PEKK_B.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PEKK_B.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = b weight = 0 material = emotiontech_pekk -variant = Haute température 0.4 +variant = High temp 0.4 [values] layer_height_0 = =round(0.75*machine_nozzle_size, 2) diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_A.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_A.inst.cfg index 88e5bee584..a5bf7374ca 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_A.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_A.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = a weight = 1 material = emotiontech_petg -variant = Haute température 0.4 +variant = High temp 0.4 [values] layer_height_0 = =round(0.5*machine_nozzle_size, 2) diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_B.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_B.inst.cfg index 7ccb7cf6b1..91d3015b25 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_B.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_B.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = b weight = 0 material = emotiontech_petg -variant = Haute température 0.4 +variant = High temp 0.4 [values] layer_height_0 = =round(0.67*machine_nozzle_size, 2) diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_C.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_C.inst.cfg index 693db6b7a9..77bd280b59 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_C.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PETG_C.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = c weight = -1 material = emotiontech_petg -variant = Haute température 0.4 +variant = High temp 0.4 [values] layer_height_0 = =round(0.75*machine_nozzle_size, 2) diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_A.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_A.inst.cfg index 9ee2e3b59b..5ee51facb5 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_A.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_A.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = a weight = 1 material = emotiontech_pla -variant = Haute température 0.4 +variant = High temp 0.4 [values] layer_height_0 = =round(0.5*machine_nozzle_size, 2) diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_B.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_B.inst.cfg index c949120187..b575c4db11 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_B.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_B.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = b weight = 0 material = emotiontech_pla -variant = Haute température 0.4 +variant = High temp 0.4 [values] layer_height_0 = =round(0.67*machine_nozzle_size, 2) diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_C.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_C.inst.cfg index e8db5b08b4..3dd12ec3d3 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_C.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_C.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = c weight = -1 material = emotiontech_pla -variant = Haute température 0.4 +variant = High temp 0.4 [values] layer_height_0 = =round(0.75*machine_nozzle_size, 2) diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_A.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_A.inst.cfg index 1fae859f7d..46a34e8290 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_A.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_A.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = a weight = 1 material = emotiontech_pla_hr_870 -variant = Haute température 0.4 +variant = High temp 0.4 [values] layer_height_0 = =round(0.5*machine_nozzle_size, 2) diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_B.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_B.inst.cfg index df4fb32a4a..504695192f 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_B.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_B.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = b weight = 0 material = emotiontech_pla_hr_870 -variant = Haute température 0.4 +variant = High temp 0.4 [values] layer_height_0 = =round(0.67*machine_nozzle_size, 2) diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_C.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_C.inst.cfg index 238fc72dd9..1bc06df105 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_C.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_PLA_HT_C.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = c weight = -1 material = emotiontech_pla_hr_870 -variant = Haute température 0.4 +variant = High temp 0.4 [values] layer_height_0 = =round(0.75*machine_nozzle_size, 2) diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_A.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_A.inst.cfg index cbc8b3c05a..5a2e9009be 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_A.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_A.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = a weight = 1 material = emotiontech_tpu98a -variant = Haute température 0.4 +variant = High temp 0.4 [values] layer_height_0 = =round(0.5*machine_nozzle_size, 2) diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_B.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_B.inst.cfg index 9957ba7127..46bdc28c7e 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_B.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_B.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = b weight = 0 material = emotiontech_tpu98a -variant = Haute température 0.4 +variant = High temp 0.4 [values] layer_height_0 = =round(0.67*machine_nozzle_size, 2) diff --git a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_C.inst.cfg b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_C.inst.cfg index a1596e749b..57a47f9a3b 100644 --- a/resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_C.inst.cfg +++ b/resources/quality/strateo3d/HT0.4/s3d_ht0.4_TPU98A_C.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = c weight = -1 material = emotiontech_tpu98a -variant = Haute température 0.4 +variant = High temp 0.4 [values] layer_height_0 = =round(0.75*machine_nozzle_size, 2) diff --git a/resources/variants/strateo3d_haute_temperature_04.inst.cfg b/resources/variants/strateo3d_high_temp_04.inst.cfg similarity index 92% rename from resources/variants/strateo3d_haute_temperature_04.inst.cfg rename to resources/variants/strateo3d_high_temp_04.inst.cfg index b974d9a164..bb51ab03cc 100644 --- a/resources/variants/strateo3d_haute_temperature_04.inst.cfg +++ b/resources/variants/strateo3d_high_temp_04.inst.cfg @@ -1,5 +1,5 @@ [general] -name = Haute température 0.4 +name = High temp 0.4 version = 4 definition = strateo3d From 1e0efccd0b03c0dde9bbdcb785d610d032a7c260 Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Fri, 2 Jul 2021 09:38:12 +0200 Subject: [PATCH 048/141] Remove the margin from the ViewOrientation buttons CURA-8202 --- resources/qml/ViewOrientationButton.qml | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/qml/ViewOrientationButton.qml b/resources/qml/ViewOrientationButton.qml index 5d72de9a8d..7040447b29 100644 --- a/resources/qml/ViewOrientationButton.qml +++ b/resources/qml/ViewOrientationButton.qml @@ -11,5 +11,4 @@ UM.SimpleButton height: UM.Theme.getSize("small_button").height hoverColor: UM.Theme.getColor("small_button_text_hover") color: UM.Theme.getColor("small_button_text") - iconMargin: UM.Theme.getSize("thick_lining").width } \ No newline at end of file From b1ff639fc4a21bcb5bb9e3be11b074c2d6c3e00a Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Fri, 2 Jul 2021 09:38:42 +0200 Subject: [PATCH 049/141] Add border around the checked radio button in the intents and infill CURA-8202 --- .../Recommended/RecommendedInfillDensitySelector.qml | 2 ++ resources/qml/RadioCheckbar.qml | 1 + 2 files changed, 3 insertions(+) diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml index 0f2e6bc706..e79e074883 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml @@ -120,6 +120,8 @@ Item implicitWidth: UM.Theme.getSize("print_setup_slider_handle").width implicitHeight: implicitWidth radius: Math.round(implicitWidth / 2) + border.color: defaultItemColor + border.width: UM.Theme.getSize("default_lining").height } tickmarks: Repeater diff --git a/resources/qml/RadioCheckbar.qml b/resources/qml/RadioCheckbar.qml index 0b8709fe7a..5aea771a44 100644 --- a/resources/qml/RadioCheckbar.qml +++ b/resources/qml/RadioCheckbar.qml @@ -146,6 +146,7 @@ Item } radius: Math.round(width / 2) color: activeColor + border.color: defaultItemColor visible: checkbox.checked } } From e3dc5bc460d7e6deb570c1a7a98c33e54c602671 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Fri, 2 Jul 2021 09:39:33 +0200 Subject: [PATCH 050/141] Adjust color-scheme for button restyle. Also changed ligh theme. part of CURA-8012 --- resources/qml/ActionButton.qml | 6 +++--- .../ActionPanel/OutputDevicesActionButton.qml | 19 ++++++------------- resources/qml/SecondaryButton.qml | 2 +- resources/qml/TertiaryButton.qml | 10 +++++----- resources/themes/cura-light/theme.json | 16 ++++++++-------- 5 files changed, 23 insertions(+), 30 deletions(-) diff --git a/resources/qml/ActionButton.qml b/resources/qml/ActionButton.qml index c5c0c0be08..1593ee931c 100644 --- a/resources/qml/ActionButton.qml +++ b/resources/qml/ActionButton.qml @@ -24,10 +24,10 @@ Button property color disabledColor: color property color textColor: UM.Theme.getColor("button_text") property color textHoverColor: textColor - property color textDisabledColor: textColor + property color textDisabledColor: disabledColor property color outlineColor: color - property color outlineHoverColor: hoverColor - property color outlineDisabledColor: outlineColor + property color outlineHoverColor: outlineColor + property color outlineDisabledColor: disabledColor property alias busy: busyIndicator.visible property bool underlineTextOnHover: false diff --git a/resources/qml/ActionPanel/OutputDevicesActionButton.qml b/resources/qml/ActionPanel/OutputDevicesActionButton.qml index 0a49c59c77..48416e69fd 100644 --- a/resources/qml/ActionPanel/OutputDevicesActionButton.qml +++ b/resources/qml/ActionPanel/OutputDevicesActionButton.qml @@ -42,7 +42,7 @@ Item } } - Cura.ActionButton + Cura.PrimaryButton { id: deviceSelectionMenu height: parent.height @@ -56,7 +56,7 @@ Item leftPadding: UM.Theme.getSize("narrow_margin").width //Need more space than usual here for wide text. rightPadding: UM.Theme.getSize("narrow_margin").width iconSource: popup.opened ? UM.Theme.getIcon("ChevronSingleUp") : UM.Theme.getIcon("ChevronSingleDown") - color: UM.Theme.getColor("action_panel_secondary") + color: popup.opened ? hoverColor : UM.Theme.getColor("action_panel_secondary") visible: (devicesModel.deviceCount > 1) onClicked: popup.opened ? popup.close() : popup.open() @@ -65,6 +65,7 @@ Item { id: popup padding: 0 + spacing: 0 y: -height x: parent.width - width @@ -73,17 +74,16 @@ Item contentItem: ColumnLayout { + spacing: 0 + Repeater { model: devicesModel - delegate: Cura.ActionButton + delegate: Cura.PrimaryButton { text: model.description visible: model.id != UM.OutputDeviceManager.activeDevice // Don't show the active device in the list - color: "transparent" - cornerRadius: 0 - hoverColor: UM.Theme.getColor("primary") Layout.fillWidth: true // The total width of the popup should be defined by the largest button. By stating that each // button should be minimally the size of it's content (aka; implicitWidth) we can ensure that. @@ -97,13 +97,6 @@ Item } } } - - background: Rectangle - { - opacity: visible ? 1 : 0 - Behavior on opacity { NumberAnimation { duration: 100 } } - color: UM.Theme.getColor("action_panel_secondary") - } } } diff --git a/resources/qml/SecondaryButton.qml b/resources/qml/SecondaryButton.qml index 09c4efa025..ba4e0bb2c1 100644 --- a/resources/qml/SecondaryButton.qml +++ b/resources/qml/SecondaryButton.qml @@ -11,7 +11,7 @@ Cura.ActionButton { color: UM.Theme.getColor("secondary_button") textColor: UM.Theme.getColor("secondary_button_text") - outlineColor: "transparent" + outlineColor: UM.Theme.getColor("secondary_button_text") disabledColor: UM.Theme.getColor("action_button_disabled") textDisabledColor: UM.Theme.getColor("action_button_disabled_text") hoverColor: UM.Theme.getColor("secondary_button_hover") diff --git a/resources/qml/TertiaryButton.qml b/resources/qml/TertiaryButton.qml index 76684b6ef2..8f78ea1a3b 100644 --- a/resources/qml/TertiaryButton.qml +++ b/resources/qml/TertiaryButton.qml @@ -9,11 +9,11 @@ import Cura 1.1 as Cura Cura.ActionButton { - color: "transparent" - textColor: UM.Theme.getColor("text_link") + color: UM.Theme.getColor("secondary_button") + textColor: UM.Theme.getColor("secondary_button_text") outlineColor: "transparent" + outlineDisabledColor: "transparent" disabledColor: UM.Theme.getColor("action_button_disabled") textDisabledColor: UM.Theme.getColor("action_button_disabled_text") - hoverColor: "transparent" - underlineTextOnHover: true -} + hoverColor: UM.Theme.getColor("secondary_button_hover") +} \ No newline at end of file diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 5245d21455..e63867fa79 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -168,15 +168,15 @@ "icon": [8, 7, 63, 255], - "primary_button": [38, 113, 231, 255], + "primary_button": [25, 110, 240, 255], "primary_button_shadow": [27, 95, 202, 255], - "primary_button_hover": [81, 145, 247, 255], + "primary_button_hover": [16, 70, 156, 255], "primary_button_text": [255, 255, 255, 255], - "secondary_button": [240, 240, 240, 255], + "secondary_button": [255, 255, 255, 0], "secondary_button_shadow": [216, 216, 216, 255], - "secondary_button_hover": [228, 228, 228, 255], - "secondary_button_text": [30, 102, 215, 255], + "secondary_button_hover": [232, 240, 253, 255], + "secondary_button_text": [25, 110, 240, 255], "main_window_header_background": [8, 7, 63, 255], "main_window_header_background_gradient": [25, 23, 91, 255], @@ -196,7 +196,7 @@ "machine_selector_text_active": [255, 255, 255, 255], "machine_selector_printer_icon": [8, 7, 63, 255], - "action_panel_secondary": [27, 95, 202, 255], + "action_panel_secondary": [25, 110, 240, 255], "first_run_shadow": [50, 50, 50, 255], @@ -266,8 +266,8 @@ "action_button_active_text": [0, 0, 0, 255], "action_button_active_border": [50, 130, 255, 255], "action_button_disabled": [245, 245, 245, 255], - "action_button_disabled_text": [127, 127, 127, 255], - "action_button_disabled_border": [245, 245, 245, 255], + "action_button_disabled_text": [196, 196, 196, 255], + "action_button_disabled_border": [196, 196, 196, 255], "action_button_shadow": [223, 223, 223, 255], "action_button_disabled_shadow": [228, 228, 228, 255], From e249db4477e268db96159fa09224de5c2c8ba17a Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Fri, 2 Jul 2021 12:11:04 +0200 Subject: [PATCH 051/141] Fix ExtruderColor and Extruder icons bleeding into each other CURA-8011 --- resources/qml/ExtruderButton.qml | 1 + resources/qml/ExtruderIcon.qml | 10 +++++-- .../cura-light/icons/default/Extruder.svg | 13 ++++++++ .../icons/default/ExtruderColor.svg | 14 +++++++++ .../cura-light/icons/medium/ExtruderColor.svg | 13 ++++---- resources/themes/cura-light/theme.json | 30 +++++++++++++++---- 6 files changed, 68 insertions(+), 13 deletions(-) create mode 100644 resources/themes/cura-light/icons/default/Extruder.svg create mode 100644 resources/themes/cura-light/icons/default/ExtruderColor.svg diff --git a/resources/qml/ExtruderButton.qml b/resources/qml/ExtruderButton.qml index feb399d528..b87855e25e 100644 --- a/resources/qml/ExtruderButton.qml +++ b/resources/qml/ExtruderButton.qml @@ -22,6 +22,7 @@ Cura.ToolbarButton { materialColor: extruder.color extruderEnabled: extruder.stack.isEnabled + iconVariant: "default" property int index: extruder.index } diff --git a/resources/qml/ExtruderIcon.qml b/resources/qml/ExtruderIcon.qml index a4118228db..4cc9ffe69b 100644 --- a/resources/qml/ExtruderIcon.qml +++ b/resources/qml/ExtruderIcon.qml @@ -16,6 +16,8 @@ Item property color materialColor property alias textColor: extruderNumberText.color property bool extruderEnabled: true + property alias iconSize: mainIcon.sourceSize + property string iconVariant: "medium" Item { @@ -25,16 +27,18 @@ Item UM.RecolorImage { anchors.fill: parent + sourceSize: mainIcon.sourceSize - source: UM.Theme.getIcon("ExtruderColor", "medium") + source: UM.Theme.getIcon("ExtruderColor", iconVariant) color: materialColor } UM.RecolorImage { id: mainIcon anchors.fill: parent + sourceSize: UM.Theme.getSize("extruder_icon") - source: UM.Theme.getIcon("Extruder", "medium") + source: UM.Theme.getIcon("Extruder", iconVariant) color: UM.Theme.getColor("text") } @@ -43,7 +47,7 @@ Item id: extruderNumberText anchors.centerIn: parent text: index + 1 - font: UM.Theme.getFont("small") + font: UM.Theme.getFont("small_black") color: UM.Theme.getColor("text") width: contentWidth height: contentHeight diff --git a/resources/themes/cura-light/icons/default/Extruder.svg b/resources/themes/cura-light/icons/default/Extruder.svg new file mode 100644 index 0000000000..7c17fa67ca --- /dev/null +++ b/resources/themes/cura-light/icons/default/Extruder.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + diff --git a/resources/themes/cura-light/icons/default/ExtruderColor.svg b/resources/themes/cura-light/icons/default/ExtruderColor.svg new file mode 100644 index 0000000000..ff202e7296 --- /dev/null +++ b/resources/themes/cura-light/icons/default/ExtruderColor.svg @@ -0,0 +1,14 @@ + + + + + + + + + + diff --git a/resources/themes/cura-light/icons/medium/ExtruderColor.svg b/resources/themes/cura-light/icons/medium/ExtruderColor.svg index c017c69106..85360a9622 100644 --- a/resources/themes/cura-light/icons/medium/ExtruderColor.svg +++ b/resources/themes/cura-light/icons/medium/ExtruderColor.svg @@ -1,10 +1,13 @@ - + - - - + + + diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index c45eb00c9e..43151e746d 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -129,24 +129,44 @@ "family": "Noto Sans" }, "small": { - "size": 0.7, + "size": 0.9, "weight": 40, "family": "Noto Sans" }, "small_ja_JP": { - "size": 0.7, + "size": 0.9, "weight": 50, "family": "Noto Sans" }, "small_zh_CN": { - "size": 0.7, + "size": 0.9, "weight": 50, "family": "Noto Sans" }, "small_zh_TW": { - "size": 0.7, + "size": 0.9, "weight": 50, "family": "Noto Sans" + }, + "small_black": { + "size": 0.9, + "weight": 100, + "family": "Noto Sans" + }, + "small_black_ja_JP": { + "size": 0.9, + "weight": 100, + "family": "Noto Sans" + }, + "small_black_zh_CN": { + "size": 0.9, + "weight": 100, + "family": "Noto Sans" + }, + "small_black_zh_TW": { + "size": 0.9, + "weight": 100, + "family": "Noto Sans" } }, @@ -503,7 +523,7 @@ "thin_margin": [0.71, 0.71], "narrow_margin": [0.5, 0.5], - "extruder_icon": [2.33, 2.33], + "extruder_icon": [2.5, 2.5], "section": [0.0, 2], "section_control": [0, 1], From cc305100581f1ec31282351e69b16ba22e352f60 Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Fri, 2 Jul 2021 12:12:18 +0200 Subject: [PATCH 052/141] Let ExtruderIcon decide its size in the ConfigurationMenu CURA-8011 --- resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml index f55bb0e37c..2c399ab548 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml @@ -56,7 +56,6 @@ Cura.ExpandablePopup id: extruderIcon materialColor: model.color extruderEnabled: model.enabled - width: UM.Theme.getSize("button_icon").width anchors.verticalCenter: parent.verticalCenter } From 7f6e6403d2ee2c17d4485b24c6e302f2e9830791 Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Fri, 2 Jul 2021 12:13:28 +0200 Subject: [PATCH 053/141] Set the "Not overridden" extruder color as transparetn Otherwise a white extruder is drawn in the dark theme next to the "Not overridden" label. CURA-8011 --- cura/Machines/Models/ExtrudersModel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/Machines/Models/ExtrudersModel.py b/cura/Machines/Models/ExtrudersModel.py index e979a1e848..1aba1d871a 100644 --- a/cura/Machines/Models/ExtrudersModel.py +++ b/cura/Machines/Models/ExtrudersModel.py @@ -215,7 +215,7 @@ class ExtrudersModel(ListModel): "id": "", "name": catalog.i18nc("@menuitem", "Not overridden"), "enabled": True, - "color": "#ffffff", + "color": "transparent", "index": -1, "definition": "", "material": "", From b378e4870a0ca67a8ee98a8ec28387129055b588 Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Fri, 2 Jul 2021 12:14:10 +0200 Subject: [PATCH 054/141] Change the extruder icon in the object list to be a filled circle CURA-8011 --- resources/qml/ObjectItemButton.qml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/resources/qml/ObjectItemButton.qml b/resources/qml/ObjectItemButton.qml index 7d8988fde4..1637b8d0cd 100644 --- a/resources/qml/ObjectItemButton.qml +++ b/resources/qml/ObjectItemButton.qml @@ -13,8 +13,6 @@ Button width: parent.width height: UM.Theme.getSize("action_button").height - leftPadding: UM.Theme.getSize("thin_margin").width - rightPadding: perObjectSettingsInfo.visible ? UM.Theme.getSize("default_lining").width : UM.Theme.getSize("thin_margin").width checkable: true hoverEnabled: true @@ -46,14 +44,14 @@ Button width: objectItemButton.width - objectItemButton.leftPadding height: UM.Theme.getSize("action_button").height - UM.RecolorImage + Rectangle { id: swatch anchors.verticalCenter: parent.verticalCenter anchors.left: parent.left - width: height - height: parent.height - UM.Theme.getSize("narrow_margin").height - source: UM.Theme.getIcon("Extruder", "medium") + width: UM.Theme.getSize("standard_arrow").height + height: UM.Theme.getSize("standard_arrow").height + radius: Math.round(width / 2) color: extruderColor visible: showExtruderSwatches && extruderColor != "" } From a6cd2fe970e33747db887a08f0e4072a205d444a Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Fri, 2 Jul 2021 12:15:26 +0200 Subject: [PATCH 055/141] Change the extruder icon in the settings dropdown to be a filled circle This makes it much more distinguishable. CURA-8011 --- .../Recommended/RecommendedSupportSelector.qml | 12 ++++-------- resources/qml/Settings/SettingExtruder.qml | 16 ++++++---------- .../qml/Settings/SettingOptionalExtruder.qml | 16 ++++++---------- 3 files changed, 16 insertions(+), 28 deletions(-) diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml index 5fb437b1c2..4e2341fb57 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml @@ -219,18 +219,16 @@ Item elide: Text.ElideLeft verticalAlignment: Text.AlignVCenter - background: UM.RecolorImage + background: Rectangle { id: swatch height: Math.round(parent.height / 2) width: height + radius: Math.round(width / 2) anchors.right: parent.right anchors.verticalCenter: parent.verticalCenter anchors.rightMargin: UM.Theme.getSize("thin_margin").width - sourceSize.width: width - sourceSize.height: height - source: UM.Theme.getIcon("Extruder", "medium") color: supportExtruderCombobox.color } } @@ -289,18 +287,16 @@ Item verticalAlignment: Text.AlignVCenter rightPadding: swatch.width + UM.Theme.getSize("setting_unit_margin").width - background: UM.RecolorImage + background: Rectangle { id: swatch height: Math.round(parent.height / 2) width: height + radius: Math.round(width / 2) anchors.right: parent.right anchors.verticalCenter: parent.verticalCenter anchors.rightMargin: UM.Theme.getSize("thin_margin").width - sourceSize.width: width - sourceSize.height: height - source: UM.Theme.getIcon("Extruder", "medium") color: supportExtruderCombobox.model.getItem(index).color } } diff --git a/resources/qml/Settings/SettingExtruder.qml b/resources/qml/Settings/SettingExtruder.qml index 995e1103f3..ea514eb069 100644 --- a/resources/qml/Settings/SettingExtruder.qml +++ b/resources/qml/Settings/SettingExtruder.qml @@ -77,7 +77,7 @@ SettingItem currentIndex: propertyProvider.properties.value !== undefined ? propertyProvider.properties.value : 0 - property string color: "#fff" + property string color: "transparent" Binding { @@ -85,7 +85,7 @@ SettingItem // explicit binding here otherwise we do not handle value changes after the model changes. target: control property: "color" - value: control.currentText != "" ? control.model.getItem(control.currentIndex).color : "" + value: control.currentText != "" ? control.model.getItem(control.currentIndex).color : "transparent" } Binding @@ -160,18 +160,16 @@ SettingItem elide: Text.ElideLeft verticalAlignment: Text.AlignVCenter - background: UM.RecolorImage + background: Rectangle { id: swatch height: Math.round(parent.height / 2) width: height + radius: Math.round(width / 2) anchors.right: parent.right anchors.verticalCenter: parent.verticalCenter anchors.rightMargin: UM.Theme.getSize("thin_margin").width - sourceSize.width: width - sourceSize.height: height - source: UM.Theme.getIcon("Extruder", "medium") color: control.color } } @@ -229,18 +227,16 @@ SettingItem verticalAlignment: Text.AlignVCenter rightPadding: swatch.width + UM.Theme.getSize("setting_unit_margin").width - background: UM.RecolorImage + background: Rectangle { id: swatch height: Math.round(parent.height / 2) width: height + radius: Math.round(width / 2) anchors.right: parent.right anchors.verticalCenter: parent.verticalCenter anchors.rightMargin: UM.Theme.getSize("thin_margin").width - sourceSize.width: width - sourceSize.height: height - source: UM.Theme.getIcon("Extruder", "medium") color: control.model.getItem(index).color } } diff --git a/resources/qml/Settings/SettingOptionalExtruder.qml b/resources/qml/Settings/SettingOptionalExtruder.qml index 5b1da6b785..94df1bcc03 100644 --- a/resources/qml/Settings/SettingOptionalExtruder.qml +++ b/resources/qml/Settings/SettingOptionalExtruder.qml @@ -88,7 +88,7 @@ SettingItem when: control.model.items.length > 0 } - property string color: "#fff" + property string color: "transparent" Binding { @@ -96,7 +96,7 @@ SettingItem // explicit binding here otherwise we do not handle value changes after the model changes. target: control property: "color" - value: control.currentText != "" ? control.model.getItem(control.currentIndex).color : "" + value: control.currentText != "" ? control.model.getItem(control.currentIndex).color : "transparent" } indicator: UM.RecolorImage @@ -161,18 +161,16 @@ SettingItem elide: Text.ElideRight verticalAlignment: Text.AlignVCenter - background: UM.RecolorImage + background: Rectangle { id: swatch height: Math.round(parent.height / 2) width: height + radius: Math.round(width / 2) anchors.right: parent.right anchors.verticalCenter: parent.verticalCenter anchors.rightMargin: UM.Theme.getSize("thin_margin").width - sourceSize.width: width - sourceSize.height: height - source: UM.Theme.getIcon("Extruder", "medium") color: control.color } } @@ -226,18 +224,16 @@ SettingItem verticalAlignment: Text.AlignVCenter rightPadding: swatch.width + UM.Theme.getSize("setting_unit_margin").width - background: UM.RecolorImage + background: Rectangle { id: swatch height: Math.round(parent.height / 2) width: height + radius: Math.round(width / 2) anchors.right: parent.right anchors.verticalCenter: parent.verticalCenter anchors.rightMargin: UM.Theme.getSize("thin_margin").width - sourceSize.width: width - sourceSize.height: height - source: UM.Theme.getIcon("Extruder", "medium") color: control.model.getItem(index).color } } From 952e02676fa53603b2ef0d13ec5193e2ee6de4a2 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Fri, 2 Jul 2021 13:24:02 +0200 Subject: [PATCH 056/141] Tweaks for restyling benefitting the dark theme. part of CURA-8012 --- resources/qml/TertiaryButton.qml | 6 +++--- resources/themes/cura-dark/theme.json | 10 +++++++--- resources/themes/cura-light/theme.json | 2 +- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/resources/qml/TertiaryButton.qml b/resources/qml/TertiaryButton.qml index 8f78ea1a3b..035b0d1da7 100644 --- a/resources/qml/TertiaryButton.qml +++ b/resources/qml/TertiaryButton.qml @@ -9,11 +9,11 @@ import Cura 1.1 as Cura Cura.ActionButton { - color: UM.Theme.getColor("secondary_button") - textColor: UM.Theme.getColor("secondary_button_text") + color: "transparent" + textColor: UM.Theme.getColor("text_link") outlineColor: "transparent" outlineDisabledColor: "transparent" - disabledColor: UM.Theme.getColor("action_button_disabled") + disabledColor: "transparent" textDisabledColor: UM.Theme.getColor("action_button_disabled_text") hoverColor: UM.Theme.getColor("secondary_button_hover") } \ No newline at end of file diff --git a/resources/themes/cura-dark/theme.json b/resources/themes/cura-dark/theme.json index e3266b923b..f15c1abf2c 100644 --- a/resources/themes/cura-dark/theme.json +++ b/resources/themes/cura-dark/theme.json @@ -16,6 +16,10 @@ "primary_text": [255, 255, 255, 204], "secondary": [95, 95, 95, 255], + "secondary_button": [0, 0, 0, 0], + "secondary_button_hover": [85, 85, 87, 255], + "secondary_button_text": [255, 255, 255, 255], + "icon": [204, 204, 204, 255], "toolbar_background": [39, 44, 48, 255], "toolbar_button_active": [95, 95, 95, 255], @@ -32,7 +36,7 @@ "text": [255, 255, 255, 204], "text_detail": [255, 255, 255, 172], - "text_link": [255, 255, 255, 127], + "text_link": [25, 110, 240, 255], "text_inactive": [255, 255, 255, 88], "text_hover": [255, 255, 255, 204], "text_pressed": [255, 255, 255, 204], @@ -87,8 +91,8 @@ "action_button_active": [39, 44, 48, 30], "action_button_active_text": [255, 255, 255, 255], "action_button_active_border": [255, 255, 255, 100], - "action_button_disabled": [19, 24, 28, 255], - "action_button_disabled_text": [200, 200, 200, 80], + "action_button_disabled": [85, 85, 87, 255], + "action_button_disabled_text": [103, 103, 104, 255], "action_button_disabled_border": [255, 255, 255, 30], "scrollbar_background": [39, 44, 48, 0], diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index e63867fa79..98062746ae 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -210,7 +210,7 @@ "text": [25, 25, 25, 255], "text_detail": [174, 174, 174, 128], - "text_link": [50, 130, 255, 255], + "text_link": [25, 110, 240, 255], "text_inactive": [174, 174, 174, 255], "text_pressed": [50, 130, 255, 255], "text_subtext": [0, 0, 0, 255], From a0589d57d696ff72dd5934b16a2699ab6f4a17ec Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 2 Jul 2021 13:46:32 +0200 Subject: [PATCH 057/141] Rename visual name from Voron V0 to Voron 0 As discussed in #9589. --- resources/definitions/voron0_120.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/voron0_120.def.json b/resources/definitions/voron0_120.def.json index 7a06c2eac7..d0bf92f0e0 100644 --- a/resources/definitions/voron0_120.def.json +++ b/resources/definitions/voron0_120.def.json @@ -1,5 +1,5 @@ { - "name": "Voron V0", + "name": "Voron 0", "version": 2, "inherits": "voron2_base", "metadata": @@ -10,7 +10,7 @@ }, "overrides": { - "machine_name": { "default_value": "VORON V0" }, + "machine_name": { "default_value": "VORON 0" }, "machine_width": { "default_value": 120 }, "machine_depth": { "default_value": 120 }, "machine_height": { "default_value": 120 } From 1c73077f7ec4e5f644a2374d453f69da6eeb7021 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Fri, 2 Jul 2021 13:54:34 +0200 Subject: [PATCH 058/141] More dark theme tweaks. part of CURA-8012 --- resources/themes/cura-dark/theme.json | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/resources/themes/cura-dark/theme.json b/resources/themes/cura-dark/theme.json index f15c1abf2c..8d68bb0d5b 100644 --- a/resources/themes/cura-dark/theme.json +++ b/resources/themes/cura-dark/theme.json @@ -5,7 +5,7 @@ }, "colors": { - "main_background": [39, 44, 48, 255], + "main_background": [31, 31, 32, 255], "message_background": [39, 44, 48, 255], "wide_lining": [31, 36, 39, 255], "thick_lining": [255, 255, 255, 60], @@ -20,13 +20,16 @@ "secondary_button_hover": [85, 85, 87, 255], "secondary_button_text": [255, 255, 255, 255], - "icon": [204, 204, 204, 255], + "icon": [255, 255, 255, 255], "toolbar_background": [39, 44, 48, 255], - "toolbar_button_active": [95, 95, 95, 255], - "toolbar_button_hover": [95, 95, 95, 255], - "toolbar_button_active_hover": [95, 95, 95, 255], + "toolbar_button_active": [57, 57, 58, 255], + "toolbar_button_hover": [57, 57, 58, 255], + "toolbar_button_active_hover": [57, 57, 58, 255], "main_window_header_button_text_inactive": [128, 128, 128, 255], + "main_window_header_background": [14, 14, 14, 255], + "main_window_header_background_gradient": [32, 32, 32, 255], + "main_window_header_button_background_hovered": [46, 46, 46, 255], "account_sync_state_icon": [255, 255, 255, 204], From 97bb25aef0f61620348357b73471d2d61f35221a Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Mon, 5 Jul 2021 10:06:16 +0200 Subject: [PATCH 059/141] Fix Print settings window getting locked in the y direction Due to a wrong reference, the settings window was getting an incorrect initialY position. This lead to the window being unable to be dragged in the y direction. CURA-8011 --- resources/qml/ExpandableComponent.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index 415d994ceb..bbe617e27d 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -216,7 +216,7 @@ Item var maxPt = base.mapFromItem(null, CuraApplication.appWidth() - (contentContainer.width + margin.width), CuraApplication.appHeight() - (contentContainer.height + margin.height)); - var initialY = background.height + base.shadowOffset + margin.height; + var initialY = background.height + base.popupOffset + margin.height; contentContainer.x = Math.max(minPt.x, Math.min(maxPt.x, posNewX)); contentContainer.y = Math.max(initialY, Math.min(maxPt.y, posNewY)); From 9c49baa9ce0957cee7b20c8df96c734763867775 Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Mon, 5 Jul 2021 10:07:23 +0200 Subject: [PATCH 060/141] Fix incorrect reference of the handleButton border color CURA-8011 --- .../Recommended/RecommendedInfillDensitySelector.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml index e79e074883..a29b69c924 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml @@ -120,7 +120,7 @@ Item implicitWidth: UM.Theme.getSize("print_setup_slider_handle").width implicitHeight: implicitWidth radius: Math.round(implicitWidth / 2) - border.color: defaultItemColor + border.color: UM.Theme.getColor("slider_groove_fill") border.width: UM.Theme.getSize("default_lining").height } From 1a273714a384d1b4ed02db5cd2bae164e27207bc Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Mon, 5 Jul 2021 10:37:19 +0200 Subject: [PATCH 061/141] Make the width of the PreviewMenu headers dynamic CURA-8011 --- plugins/PreviewStage/PreviewMenu.qml | 4 ++-- resources/themes/cura-light/theme.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index e6c4a25c4c..c6f9d64756 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -43,7 +43,7 @@ Item { id: viewsSelector height: parent.height - width: UM.Theme.getSize("views_selector").width + width: Math.max(Math.round((parent.width - printSetupSelectorItem.width) / 3), UM.Theme.getSize("views_selector").width) headerCornerSide: Cura.RoundedRectangle.Direction.Left } @@ -52,7 +52,7 @@ Item { id: viewPanel height: parent.height - width: source != "" ? (previewMenu.width - viewsSelector.width - printSetupSelectorItem.width - 2 * (UM.Theme.getSize("wide_margin").width + UM.Theme.getSize("default_lining").width)) : 0 + width: source != "" ? (previewMenu.width - viewsSelector.width - printSetupSelectorItem.width) : 0 source: UM.Controller.activeView != null && UM.Controller.activeView.stageMenuComponent != null ? UM.Controller.activeView.stageMenuComponent : "" } diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 43151e746d..eeaf2423de 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -504,7 +504,7 @@ "machine_selector_widget_content": [25.0, 32.0], "machine_selector_icon": [2.5, 2.5], - "views_selector": [23.0, 4.0], + "views_selector": [16.0, 4.0], "printer_type_label": [3.5, 1.5], From 18377d2726c9b40cdedc89b1a8d9964cfb8f85b7 Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Mon, 5 Jul 2021 11:31:23 +0200 Subject: [PATCH 062/141] Change extruder icon in monitor tab to be same as preview tab There are still some discrepancies (e.g. when the extruder is empty, the Preview tab just keeps it disabled and mentions "Generic PLA" while the Monitor tab shows it disabled by mentions "Empty" in the material. But we consider this acceptable for the time being, since it has been like that for a long time. CURA-8011 --- .../qml/MonitorExtruderConfiguration.qml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorExtruderConfiguration.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorExtruderConfiguration.qml index c305c76ac6..2720e6896a 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorExtruderConfiguration.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorExtruderConfiguration.qml @@ -5,6 +5,8 @@ import QtQuick 2.2 import QtQuick.Controls 2.0 import UM 1.3 as UM +import Cura 1.6 as Cura + /** * This component comprises a colored extruder icon, the material name, and the * print core name. It is used by the MonitorPrinterConfiguration component with @@ -18,10 +20,10 @@ import UM 1.3 as UM Item { // The material color - property alias color: extruderIcon.color + property alias color: extruderIcon.materialColor - // The extruder position; NOTE: Decent human beings count from 0 - property alias position: extruderIcon.position + // The extruder position + property int position // The material name property alias material: materialLabel.text @@ -32,13 +34,13 @@ Item // Height is 2 x 18px labels, plus 4px spacing between them height: 40 * screenScaleFactor // TODO: Theme! width: childrenRect.width + opacity: material != "" && material != "Empty" && position >= 0 ? 1 : 0.4 - MonitorIconExtruder + Cura.ExtruderIcon { id: extruderIcon - color: UM.Theme.getColor("monitor_skeleton_loading") - size: UM.Theme.getSize("button_icon").width - position: 0 + materialColor: UM.Theme.getColor("monitor_skeleton_loading") + anchors.verticalCenter: parent.verticalCenter } Rectangle From 12b844b357e7daf86078b2c2adfe9e8eea295d34 Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Mon, 5 Jul 2021 11:38:55 +0200 Subject: [PATCH 063/141] Change extruder icon color to follow the color of the text As per the review suggestion https://github.com/Ultimaker/Cura/pull/10051#discussion_r661493104. CURA-8011 --- resources/qml/ExtruderIcon.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/ExtruderIcon.qml b/resources/qml/ExtruderIcon.qml index 4cc9ffe69b..47131ed93a 100644 --- a/resources/qml/ExtruderIcon.qml +++ b/resources/qml/ExtruderIcon.qml @@ -39,7 +39,7 @@ Item sourceSize: UM.Theme.getSize("extruder_icon") source: UM.Theme.getIcon("Extruder", iconVariant) - color: UM.Theme.getColor("text") + color: extruderNumberText.color } Label From 0319fdcc41bb9f45e0dbcbf4c8bc39ad63eb3257 Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Mon, 5 Jul 2021 12:27:29 +0200 Subject: [PATCH 064/141] Get the opacity of the extruder from the theme CURA-8011 --- resources/qml/ExtruderIcon.qml | 2 +- resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml | 2 +- resources/themes/cura-light/theme.json | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/resources/qml/ExtruderIcon.qml b/resources/qml/ExtruderIcon.qml index 47131ed93a..be67515196 100644 --- a/resources/qml/ExtruderIcon.qml +++ b/resources/qml/ExtruderIcon.qml @@ -21,7 +21,7 @@ Item Item { - opacity: extruderEnabled ? 1 : 0.4 + opacity: extruderEnabled ? 1 : UM.Theme.getColor("extruder_disabled").a anchors.fill: parent UM.RecolorImage diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml index 2c399ab548..75bb7d0787 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml @@ -62,7 +62,7 @@ Cura.ExpandablePopup Item { height: childrenRect.height - opacity: model.enabled ? 1 : 0.4 + opacity: model.enabled ? 1 : UM.Theme.getColor("extruder_disabled").a anchors { left: extruderIcon.right diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index eeaf2423de..f505a248e4 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -270,6 +270,7 @@ "button_tooltip_text": [192, 193, 194, 255], "extruder_button_material_border": [255, 255, 255, 255], + "extruder_disabled": [255, 255, 255, 102], "rating_star": [90, 90, 90, 255], From e7648b654d822c6255674607bc6375964c5221ab Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Mon, 5 Jul 2021 14:11:40 +0200 Subject: [PATCH 065/141] Fix ExtruderIcon size in the printer settings tab CURA-8011 and CURA-8202 --- resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml b/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml index 92cbd7dd89..120aca9228 100644 --- a/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml +++ b/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml @@ -229,6 +229,9 @@ Item anchors.horizontalCenter: parent.horizontalCenter materialColor: model.color extruderEnabled: model.enabled + iconVariant: "default" + width: UM.Theme.getSize("medium_button_icon").width + height: UM.Theme.getSize("medium_button_icon").height } } onClicked: From fa4c69cb2b5f5d85613c9dbd5dc146e33a688063 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 5 Jul 2021 15:09:15 +0200 Subject: [PATCH 066/141] Merge CloudBlueBG and CloudGreyBG into one icon without colour We don't use the colour of icons. The colour is determined by the theme, and recoloured by UM.RecolorImage. Contributes to issue CURA-8247. --- resources/qml/PrinterSelector/MachineSelector.qml | 8 ++------ .../icons/low/{CloudBlueBG.svg => CloudBadge.svg} | 2 +- resources/themes/cura-light/icons/low/CloudGreyBG.svg | 5 ----- 3 files changed, 3 insertions(+), 12 deletions(-) rename resources/themes/cura-light/icons/low/{CloudBlueBG.svg => CloudBadge.svg} (59%) delete mode 100644 resources/themes/cura-light/icons/low/CloudGreyBG.svg diff --git a/resources/qml/PrinterSelector/MachineSelector.qml b/resources/qml/PrinterSelector/MachineSelector.qml index 7c74be1605..56728aeea0 100644 --- a/resources/qml/PrinterSelector/MachineSelector.qml +++ b/resources/qml/PrinterSelector/MachineSelector.qml @@ -124,13 +124,9 @@ Cura.ExpandablePopup { return UM.Theme.getIcon("CheckBlueBG", "low") } - else if (connectionStatus == "printer_cloud_connected") + else if (connectionStatus == "printer_cloud_connected" || connectionStatus == "printer_cloud_not_available") { - return UM.Theme.getIcon("CloudBlueBG", "low") - } - else if (connectionStatus == "printer_cloud_not_available") - { - return UM.Theme.getIcon("CloudGreyBG", "low") + return UM.Theme.getIcon("CloudBadge", "low") } else { diff --git a/resources/themes/cura-light/icons/low/CloudBlueBG.svg b/resources/themes/cura-light/icons/low/CloudBadge.svg similarity index 59% rename from resources/themes/cura-light/icons/low/CloudBlueBG.svg rename to resources/themes/cura-light/icons/low/CloudBadge.svg index a3c092992d..e37fb324d4 100644 --- a/resources/themes/cura-light/icons/low/CloudBlueBG.svg +++ b/resources/themes/cura-light/icons/low/CloudBadge.svg @@ -1,5 +1,5 @@ - diff --git a/resources/themes/cura-light/icons/low/CloudGreyBG.svg b/resources/themes/cura-light/icons/low/CloudGreyBG.svg deleted file mode 100644 index 0637dd7de9..0000000000 --- a/resources/themes/cura-light/icons/low/CloudGreyBG.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - From f9fcbf249226b46b43a237f2f796e2203e02b422 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 5 Jul 2021 15:19:15 +0200 Subject: [PATCH 067/141] Add new colour for background of the printer connectivity badge This should be different from the background colour in case of the dark theme. The design asks for a white background for the badge in the dark theme. Contributes to issue CURA-8247. --- resources/qml/PrinterSelector/MachineSelector.qml | 2 +- resources/themes/cura-light/theme.json | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/resources/qml/PrinterSelector/MachineSelector.qml b/resources/qml/PrinterSelector/MachineSelector.qml index 56728aeea0..6e2dfdbdce 100644 --- a/resources/qml/PrinterSelector/MachineSelector.qml +++ b/resources/qml/PrinterSelector/MachineSelector.qml @@ -150,7 +150,7 @@ Cura.ExpandablePopup width: parent.width + 2 * UM.Theme.getSize("default_lining").width height: parent.height + 2 * UM.Theme.getSize("default_lining").height radius: Math.round(width / 2) - color: UM.Theme.getColor("main_background") + color: UM.Theme.getColor("connection_badge_background") z: parent.z - 1 } diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 5245d21455..d2c0f6929b 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -445,7 +445,8 @@ "monitor_carousel_dot": [216, 216, 216, 255], "monitor_carousel_dot_current": [119, 119, 119, 255], - "cloud_unavailable": [153, 153, 153, 255] + "cloud_unavailable": [153, 153, 153, 255], + "connection_badge_background": [255, 255, 255, 255] }, "sizes": { From ff19d1dd6349c9556fbe76d060d1b6e5d1cb735b Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 5 Jul 2021 15:44:50 +0200 Subject: [PATCH 068/141] Rename small_black to small_emphasis Still not a great name, but it's better than the old one CURA-8011 CURA-8202 --- resources/qml/ExtruderIcon.qml | 2 +- resources/themes/cura-light/theme.json | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/resources/qml/ExtruderIcon.qml b/resources/qml/ExtruderIcon.qml index be67515196..f33e345b68 100644 --- a/resources/qml/ExtruderIcon.qml +++ b/resources/qml/ExtruderIcon.qml @@ -47,7 +47,7 @@ Item id: extruderNumberText anchors.centerIn: parent text: index + 1 - font: UM.Theme.getFont("small_black") + font: UM.Theme.getFont("small_emphasis") color: UM.Theme.getColor("text") width: contentWidth height: contentHeight diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index f505a248e4..e34d498e74 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -148,22 +148,22 @@ "weight": 50, "family": "Noto Sans" }, - "small_black": { + "small_emphasis": { "size": 0.9, "weight": 100, "family": "Noto Sans" }, - "small_black_ja_JP": { + "small_emphasis_ja_JP": { "size": 0.9, "weight": 100, "family": "Noto Sans" }, - "small_black_zh_CN": { + "small_emphasis_zh_CN": { "size": 0.9, "weight": 100, "family": "Noto Sans" }, - "small_black_zh_TW": { + "small_emphasis_zh_TW": { "size": 0.9, "weight": 100, "family": "Noto Sans" From 5ae4ad54295c8280167d8ad52eb51df43279b84e Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Mon, 5 Jul 2021 17:33:03 +0200 Subject: [PATCH 069/141] Center the material label if no variant in the ConfigurationMenu header CURA-8011 --- .../ConfigurationMenu/ConfigurationMenu.qml | 35 ++++--------------- 1 file changed, 6 insertions(+), 29 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml index 75bb7d0787..43ccde461e 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml @@ -59,10 +59,10 @@ Cura.ExpandablePopup anchors.verticalCenter: parent.verticalCenter } - Item + ColumnLayout { - height: childrenRect.height opacity: model.enabled ? 1 : UM.Theme.getColor("extruder_disabled").a + spacing: 0 anchors { left: extruderIcon.right @@ -81,13 +81,8 @@ Cura.ExpandablePopup font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") renderType: Text.NativeRendering + width: parent.width - anchors - { - top: parent.top - left: parent.left - right: parent.right - } visible: !truncated } @@ -100,13 +95,7 @@ Cura.ExpandablePopup font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") renderType: Text.NativeRendering - - anchors - { - top: parent.top - left: parent.left - right: parent.right - } + width: parent.width visible: !materialBrandColorTypeLabel.visible && !truncated } @@ -120,13 +109,7 @@ Cura.ExpandablePopup font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") renderType: Text.NativeRendering - - anchors - { - top: parent.top - left: parent.left - right: parent.right - } + width: parent.width visible: !materialBrandColorTypeLabel.visible && !materialColorTypeLabel.visible } // Label that shows the name of the variant @@ -141,13 +124,7 @@ Cura.ExpandablePopup font: UM.Theme.getFont("default_bold") color: UM.Theme.getColor("text") renderType: Text.NativeRendering - - anchors - { - left: parent.left - top: materialBrandColorTypeLabel.bottom - right: parent.right - } + width: parent.width } } } From 62916cb7d4e267ed6de2641996451d8e7a268755 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 5 Jul 2021 17:34:13 +0200 Subject: [PATCH 070/141] Remove outline of background around connectivity badge After feedback from our designer, this turns out to no longer be desirable. Contributes to issue CURA-8247. --- resources/qml/PrinterSelector/MachineSelector.qml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/resources/qml/PrinterSelector/MachineSelector.qml b/resources/qml/PrinterSelector/MachineSelector.qml index b7d256ca75..c12e364339 100644 --- a/resources/qml/PrinterSelector/MachineSelector.qml +++ b/resources/qml/PrinterSelector/MachineSelector.qml @@ -147,10 +147,9 @@ Cura.ExpandablePopup { id: iconBackground anchors.centerIn: parent - // Make it a bit bigger so there is an outline - width: parent.width + 2 * UM.Theme.getSize("default_lining").width - height: parent.height + 2 * UM.Theme.getSize("default_lining").height - radius: Math.round(width / 2) + width: parent.width - 1.5 //1.5 pixels smaller, (at least sqrt(2), regardless of screen pixel scale) so that the circle doesn't show up behind the icon due to anti-aliasing. + height: parent.height - 1.5 + radius: width / 2 color: UM.Theme.getColor("connection_badge_background") z: parent.z - 1 } From f92c6594dad91d5f7de2c59ede7e78f4504285db Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 5 Jul 2021 17:55:01 +0200 Subject: [PATCH 071/141] Remove stylised caps for Creasee manufacturer We'd like to keep the list of manufacturers and printers a bit more fair, without some manufacturers/printers getting more attention than others. The printers didn't have stylised caps here either. Contributes to issue CURA-8364. --- resources/definitions/creasee_cs20.def.json | 2 +- resources/definitions/creasee_cs30.def.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/creasee_cs20.def.json b/resources/definitions/creasee_cs20.def.json index a3720fe710..ab30f3dd1c 100644 --- a/resources/definitions/creasee_cs20.def.json +++ b/resources/definitions/creasee_cs20.def.json @@ -4,7 +4,7 @@ "inherits": "fdmprinter", "metadata": { "visible": true, - "manufacturer": "CREASEE", + "manufacturer": "Creasee", "machine_extruder_trains": { "0": "creasee_extruder_0" diff --git a/resources/definitions/creasee_cs30.def.json b/resources/definitions/creasee_cs30.def.json index b879ecddc0..7d6a5090bb 100644 --- a/resources/definitions/creasee_cs30.def.json +++ b/resources/definitions/creasee_cs30.def.json @@ -4,7 +4,7 @@ "inherits": "fdmprinter", "metadata": { "visible": true, - "manufacturer": "CREASEE", + "manufacturer": "Creasee", "machine_extruder_trains": { "0": "creasee_extruder_1" From e4710dd921245d031074a53e10f11c98d7844e02 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Tue, 6 Jul 2021 09:06:47 +0200 Subject: [PATCH 072/141] ActionButton is a RoundedRectangle once more. We want to deprecate the API, not break it (yet). part of CURA-8012 --- resources/qml/ActionButton.qml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/resources/qml/ActionButton.qml b/resources/qml/ActionButton.qml index 1593ee931c..31d5c35d2c 100644 --- a/resources/qml/ActionButton.qml +++ b/resources/qml/ActionButton.qml @@ -167,12 +167,16 @@ Button } } - background: Rectangle + background: Cura.RoundedRectangle { id: backgroundRect color: button.enabled ? (button.hovered ? button.hoverColor : button.color) : button.disabledColor border.width: UM.Theme.getSize("default_lining").width border.color: button.enabled ? (button.hovered ? button.outlineHoverColor : button.outlineColor) : button.outlineDisabledColor + + // Disable the rounded-ness of this rectangle. We can't use a normal Rectangle here yet, as the API/SDK has only just been deprecated. + radius: 0 + cornerSide: Cura.RoundedRectangle.Direction.None } Cura.ToolTip From a42fee48340f72842e0a340fc090321eff71ed23 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Tue, 6 Jul 2021 09:25:10 +0200 Subject: [PATCH 073/141] Put the dark-theme bg back the way it was. Not really part of this ticket. Also no buttons are directly on the background anyway. part of CURA-8012 --- resources/themes/cura-dark/theme.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/themes/cura-dark/theme.json b/resources/themes/cura-dark/theme.json index 8d68bb0d5b..0d6fa2f260 100644 --- a/resources/themes/cura-dark/theme.json +++ b/resources/themes/cura-dark/theme.json @@ -5,7 +5,7 @@ }, "colors": { - "main_background": [31, 31, 32, 255], + "main_background": [39, 44, 48, 255], "message_background": [39, 44, 48, 255], "wide_lining": [31, 36, 39, 255], "thick_lining": [255, 255, 255, 60], From acf3f2d02a1a0cf393cf6e10d381a4a28dd1376e Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Tue, 6 Jul 2021 09:37:48 +0200 Subject: [PATCH 074/141] Let Tertiary button have its own hover entry. Secondary button entries should not be re-used here. part of CURA-8012 --- resources/qml/TertiaryButton.qml | 2 +- resources/themes/cura-dark/theme.json | 2 ++ resources/themes/cura-light/theme.json | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/resources/qml/TertiaryButton.qml b/resources/qml/TertiaryButton.qml index 035b0d1da7..4a352420df 100644 --- a/resources/qml/TertiaryButton.qml +++ b/resources/qml/TertiaryButton.qml @@ -15,5 +15,5 @@ Cura.ActionButton outlineDisabledColor: "transparent" disabledColor: "transparent" textDisabledColor: UM.Theme.getColor("action_button_disabled_text") - hoverColor: UM.Theme.getColor("secondary_button_hover") + hoverColor: UM.Theme.getColor("tertiary_button_hover") } \ No newline at end of file diff --git a/resources/themes/cura-dark/theme.json b/resources/themes/cura-dark/theme.json index 0d6fa2f260..de10488162 100644 --- a/resources/themes/cura-dark/theme.json +++ b/resources/themes/cura-dark/theme.json @@ -20,6 +20,8 @@ "secondary_button_hover": [85, 85, 87, 255], "secondary_button_text": [255, 255, 255, 255], + "tertiary_button_hover": [85, 85, 87, 255], + "icon": [255, 255, 255, 255], "toolbar_background": [39, 44, 48, 255], "toolbar_button_active": [57, 57, 58, 255], diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 98062746ae..03e5678945 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -178,6 +178,8 @@ "secondary_button_hover": [232, 240, 253, 255], "secondary_button_text": [25, 110, 240, 255], + "tertiary_button_hover": [232, 240, 253, 255], + "main_window_header_background": [8, 7, 63, 255], "main_window_header_background_gradient": [25, 23, 91, 255], "main_window_header_button_text_active": [8, 7, 63, 255], From fe0f4605476f19482a350429af6a807473ec6c5a Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 6 Jul 2021 11:33:50 +0200 Subject: [PATCH 075/141] Set default z hop speed to max allowed value for maylan m200 Fixes Ultimaker/Cura#10083 --- resources/definitions/malyan_m200.def.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/definitions/malyan_m200.def.json b/resources/definitions/malyan_m200.def.json index c853f8f772..e9980724cb 100644 --- a/resources/definitions/malyan_m200.def.json +++ b/resources/definitions/malyan_m200.def.json @@ -80,6 +80,7 @@ "retraction_amount" : { "default_value": 4.5}, "retraction_speed" : { "default_value": 40}, "coasting_enable": { "default_value": true }, - "prime_tower_enable": { "default_value": false} + "prime_tower_enable": { "default_value": false}, + "speed_z_hop": {"default_value": 1.5} } } From b7e60ca4135ac44ecf9830d7886a2d9386d2f2b2 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 6 Jul 2021 11:37:30 +0200 Subject: [PATCH 076/141] Set z hop speed to max for Tevo Tarantula Fixes Ultimaker/Cura#10085 --- resources/definitions/tevo_tarantula.def.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/definitions/tevo_tarantula.def.json b/resources/definitions/tevo_tarantula.def.json index eee773cd74..8efa9c4f87 100644 --- a/resources/definitions/tevo_tarantula.def.json +++ b/resources/definitions/tevo_tarantula.def.json @@ -47,6 +47,7 @@ "machine_max_acceleration_y": { "default_value": 2650 }, "acceleration_print": { "default_value": 2650 }, "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 E3 ;extrude 3mm 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\nG90 ;absolute positioning\nG1 X0 Y200 F3600 ;move extruder out of the way by moving the baseplate to the front for easier access to printed object\nM84 ;steppers off" } + "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\nG90 ;absolute positioning\nG1 X0 Y200 F3600 ;move extruder out of the way by moving the baseplate to the front for easier access to printed object\nM84 ;steppers off" }, + "speed_z_hop": {"default_value": 3} } } From 6634fca88740c1f21bce5dd2aacd3923654c0a73 Mon Sep 17 00:00:00 2001 From: pbr-research <76119933+pbr-research@users.noreply.github.com> Date: Tue, 6 Jul 2021 15:12:44 +0530 Subject: [PATCH 077/141] Add PBR 3D Gen-I printer definition (#9307) * Add new printer PBR_3D.def.json Adding new Profile definition for PBR 3D. * Create pbr_3d.extruder_0.def.json Adding extruder profile for PBR 3D * Delete pbr_3d.def.json * Delete pbr_3d.extruder_0.def.json * Adding PBR 3D Gen-I printer definition. This is an printer definition for our printer. * Adding PBR 3D Gen-I Printer Extruder definition This is an extruder definition for our printer. * Adding buildplate definition for PBR 3D Gen-I This is a buildplate definition for our printer. * Update pbr3d_g1.def.json * Add files via upload --- resources/definitions/pbr3d_g1.def.json | 45 ++++++++++++++++++ .../extruders/pbr3d_g1_extruder_0.def.json | 15 ++++++ resources/meshes/pbr3d_g1_buildplate.stl | Bin 0 -> 113884 bytes 3 files changed, 60 insertions(+) create mode 100644 resources/definitions/pbr3d_g1.def.json create mode 100644 resources/extruders/pbr3d_g1_extruder_0.def.json create mode 100644 resources/meshes/pbr3d_g1_buildplate.stl diff --git a/resources/definitions/pbr3d_g1.def.json b/resources/definitions/pbr3d_g1.def.json new file mode 100644 index 0000000000..fbe1d5bfc6 --- /dev/null +++ b/resources/definitions/pbr3d_g1.def.json @@ -0,0 +1,45 @@ +{ + "version": 2, + "name": "PBR 3D Gen-I", + "inherits": "fdmprinter", + "metadata": { + "visible": true, + "author": "Kapil H. Sonone, Prof. Bahubali P. Fuladi", + "manufacturer": "PBR Research", + "file_formats": "text/x-gcode", + "platform": "pbr3d_g1_buildplate.stl", + "platform_offset": [0, -5, 0], + "machine_extruder_trains": + { + "0": "pbr3d_g1_extruder_0" + } + }, + + "overrides": { + "machine_name": { "default_value": "PBR 3D Gen-I" }, + "machine_heated_bed": { + "default_value": true + }, + "machine_width": { + "default_value": 200 + }, + "machine_height": { + "default_value": 200 + }, + "machine_depth": { + "default_value": 200 + }, + "machine_center_is_zero": { + "default_value": false + }, + "gantry_height": { + "value": "200" + }, + "machine_start_gcode": { + "default_value": "G28 ;Home\nG1 Z15.0 F6000 ;Move the Platform down 15mm\n;Prime the extruder\nG92 E0\nG1 F200 E3\nG92 E0" + }, + "machine_end_gcode": { + "default_value": "M104 S0\nM140 S0\n;Retract the Filament\nG92 E1\nG1 E-1 F300\nG28 X0 Y0\nM84" + } + } +} diff --git a/resources/extruders/pbr3d_g1_extruder_0.def.json b/resources/extruders/pbr3d_g1_extruder_0.def.json new file mode 100644 index 0000000000..3a79fe4f20 --- /dev/null +++ b/resources/extruders/pbr3d_g1_extruder_0.def.json @@ -0,0 +1,15 @@ +{ + "version": 2, + "name": "Extruder 1", + "inherits": "fdmextruder", + "metadata": { + "machine": "pbr3d_g1", + "position": "0" + }, + + "overrides": { + "extruder_nr": { "default_value": 0 }, + "machine_nozzle_size": { "default_value": 0.4 }, + "material_diameter": { "default_value": 1.75 } + } +} diff --git a/resources/meshes/pbr3d_g1_buildplate.stl b/resources/meshes/pbr3d_g1_buildplate.stl new file mode 100644 index 0000000000000000000000000000000000000000..1f7b77bd7855ab4520a6a012bb402cf7aeb57e8c GIT binary patch literal 113884 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 Date: Tue, 6 Jul 2021 11:45:04 +0200 Subject: [PATCH 078/141] Set Z speed for dagoma disco --- resources/definitions/dagoma_disco.def.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/definitions/dagoma_disco.def.json b/resources/definitions/dagoma_disco.def.json index bf098b8b4a..89773d9c0e 100644 --- a/resources/definitions/dagoma_disco.def.json +++ b/resources/definitions/dagoma_disco.def.json @@ -73,6 +73,7 @@ "machine_steps_per_mm_x": { "default_value": 80 }, "machine_steps_per_mm_y": { "default_value": 80 }, "machine_steps_per_mm_z": { "default_value": 2560 }, - "machine_steps_per_mm_e": { "default_value": 98 } + "machine_steps_per_mm_e": { "default_value": 98 }, + "speed_z_hop": {"default_value": 4} } } From 11b6e680b2d3eeda67288b02879bfdc77bc4ad04 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 6 Jul 2021 11:45:51 +0200 Subject: [PATCH 079/141] Remove incorrect value from makermade profile No idea why it worked in the first place, but a max speed of 0 is impossible! --- resources/definitions/maker_made_300x.def.json | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/definitions/maker_made_300x.def.json b/resources/definitions/maker_made_300x.def.json index 9651aaf5f3..ae112af5d1 100644 --- a/resources/definitions/maker_made_300x.def.json +++ b/resources/definitions/maker_made_300x.def.json @@ -96,7 +96,6 @@ "speed_travel": {"value": 150}, "speed_layer_0": {"value": 10}, "speed_travel_layer_0": {"value": 50}, - "machine_max_feedrate_z": {"value": 0}, "speed_slowdown_layers": {"value": 2}, "speed_equalize_flow_enabled": {"value": false }, "acceleration_enabled": {"value": false }, From 401f3d0df6d0f3471f231ff57d7b3bd242081adb Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 6 Jul 2021 11:47:47 +0200 Subject: [PATCH 080/141] Set default z-hop speed to allowed value --- resources/definitions/printrbot_play.def.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/definitions/printrbot_play.def.json b/resources/definitions/printrbot_play.def.json index e3c0c85d80..b1f7e72967 100644 --- a/resources/definitions/printrbot_play.def.json +++ b/resources/definitions/printrbot_play.def.json @@ -45,6 +45,7 @@ }, "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" - } + }, + "speed_z_hop": {"default_value": 5} } } From d0411a95fd5d70fdc228072dc954c69a661d7bce Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 6 Jul 2021 11:53:41 +0200 Subject: [PATCH 081/141] Fixed rigid3d zhop speed --- resources/definitions/rigid3d_base.def.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/definitions/rigid3d_base.def.json b/resources/definitions/rigid3d_base.def.json index 76ed115a57..de6365c415 100644 --- a/resources/definitions/rigid3d_base.def.json +++ b/resources/definitions/rigid3d_base.def.json @@ -146,7 +146,8 @@ "adaptive_layer_height_variation_step": { "value": 0.04 }, "top_bottom_thickness": {"value": "layer_height_0 + layer_height * 3" }, - "wall_thickness": {"value": "line_width * 2" } + "wall_thickness": {"value": "line_width * 2" }, + "speed_z_hop": {"default_value": 8} } } \ No newline at end of file From 38bec36f6bc58715e06ff769446dfc935d5cbd22 Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Tue, 6 Jul 2021 13:45:24 +0200 Subject: [PATCH 082/141] Revert Tertiary button to its previous style The styling of the Tertiary button (to not look like a link anymore) and the introduction of the Quatertiary button (as the link button) will happen in a separate ticket in the future. CURA-8012 --- resources/qml/TertiaryButton.qml | 8 ++++---- resources/themes/cura-dark/theme.json | 2 -- resources/themes/cura-light/theme.json | 2 -- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/resources/qml/TertiaryButton.qml b/resources/qml/TertiaryButton.qml index 4a352420df..76684b6ef2 100644 --- a/resources/qml/TertiaryButton.qml +++ b/resources/qml/TertiaryButton.qml @@ -12,8 +12,8 @@ Cura.ActionButton color: "transparent" textColor: UM.Theme.getColor("text_link") outlineColor: "transparent" - outlineDisabledColor: "transparent" - disabledColor: "transparent" + disabledColor: UM.Theme.getColor("action_button_disabled") textDisabledColor: UM.Theme.getColor("action_button_disabled_text") - hoverColor: UM.Theme.getColor("tertiary_button_hover") -} \ No newline at end of file + hoverColor: "transparent" + underlineTextOnHover: true +} diff --git a/resources/themes/cura-dark/theme.json b/resources/themes/cura-dark/theme.json index de10488162..0d6fa2f260 100644 --- a/resources/themes/cura-dark/theme.json +++ b/resources/themes/cura-dark/theme.json @@ -20,8 +20,6 @@ "secondary_button_hover": [85, 85, 87, 255], "secondary_button_text": [255, 255, 255, 255], - "tertiary_button_hover": [85, 85, 87, 255], - "icon": [255, 255, 255, 255], "toolbar_background": [39, 44, 48, 255], "toolbar_button_active": [57, 57, 58, 255], diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 03e5678945..98062746ae 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -178,8 +178,6 @@ "secondary_button_hover": [232, 240, 253, 255], "secondary_button_text": [25, 110, 240, 255], - "tertiary_button_hover": [232, 240, 253, 255], - "main_window_header_background": [8, 7, 63, 255], "main_window_header_background_gradient": [25, 23, 91, 255], "main_window_header_button_text_active": [8, 7, 63, 255], From d4c254dcab3ebf9ff2fce29ea6ff29efa873cc3d Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Tue, 6 Jul 2021 13:59:05 +0200 Subject: [PATCH 083/141] Make the Link button in the Messages similar to the Cura Tertiary button CURA-8012 --- resources/qml/Cura.qml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index db910d1798..191ae712d4 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -429,6 +429,14 @@ UM.MainWindow height: UM.Theme.getSize("message_action_button").height } } + link: Component + { + Cura.TertiaryButton + { + text: model.name + height: UM.Theme.getSize("message_action_button").height + } + } } } From b850d8c18e023e9c3536d3e3daa32b1337dfa4a6 Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Tue, 6 Jul 2021 14:10:19 +0200 Subject: [PATCH 084/141] Center the extruder icon in the tabRowButton in the custom print settings CURA-8011 and CURA-8202 --- .../qml/PrintSetupSelector/Custom/CustomPrintSetup.qml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml b/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml index 120aca9228..cde2cd8dfc 100644 --- a/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml +++ b/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml @@ -226,12 +226,12 @@ Item { Cura.ExtruderIcon { - anchors.horizontalCenter: parent.horizontalCenter + anchors.centerIn: parent materialColor: model.color extruderEnabled: model.enabled iconVariant: "default" - width: UM.Theme.getSize("medium_button_icon").width - height: UM.Theme.getSize("medium_button_icon").height + height: parent.height + width: height } } onClicked: From d2c0a1f32e91c7f287a93d90cb9e39e680c9635c Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Tue, 6 Jul 2021 14:13:19 +0200 Subject: [PATCH 085/141] Change height of message buttons to be the same with all other action buttons CURA-8012 --- resources/themes/cura-light/theme.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 98062746ae..0e40778f02 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -589,7 +589,7 @@ "message": [30.0, 5.0], "message_close": [1, 1], "message_radius": [0.25, 0.25], - "message_action_button": [0, 2.0], + "message_action_button": [0, 2.5], "message_image": [15.0, 5.0], "infill_button_margin": [0.5, 0.5], From 92293e70086112b889bdc96d56b29904d8381f92 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 6 Jul 2021 16:17:55 +0200 Subject: [PATCH 086/141] Make checkbox mark colours same as text colours The new icon set changes the checkmark to something a lot thinner and more subtle. Making it darker compensates for that a bit. --- resources/themes/cura-light/theme.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index e34d498e74..bf4542b444 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -350,7 +350,7 @@ "checkbox_hover": [255, 255, 255, 255], "checkbox_border": [199, 199, 199, 255], "checkbox_border_hover": [50, 130, 255, 255], - "checkbox_mark": [50, 130, 255, 255], + "checkbox_mark": [35, 35, 35, 255], "checkbox_disabled": [223, 223, 223, 255], "checkbox_text": [35, 35, 35, 255], From 8e5485330fe974cd76ea86c7850ba86df76da536 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 7 Jul 2021 10:27:53 +0200 Subject: [PATCH 087/141] Align sizes of prepare and preview menus For some reason, the prepare menu is still one pixel too small. I think it's got to do with that one being a layout rather than a normal row. Contributes to issue CURA-8202. --- plugins/PrepareStage/PrepareMenu.qml | 8 +++----- plugins/PreviewStage/PreviewMenu.qml | 10 ++++------ 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index 82f61da069..2d3814309e 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -23,16 +23,14 @@ Item { left: parent.left right: parent.right - leftMargin: UM.Theme.getSize("wide_margin").width - rightMargin: UM.Theme.getSize("wide_margin").width + leftMargin: UM.Theme.getSize("wide_margin").width * 2 + rightMargin: UM.Theme.getSize("wide_margin").width * 2 } // Item to ensure that all of the buttons are nicely centered. Item { - anchors.horizontalCenter: parent.horizontalCenter - width: parent.width - 2 * UM.Theme.getSize("wide_margin").width - height: parent.height + anchors.fill: parent RowLayout { diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index c6f9d64756..9e039896c6 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -24,17 +24,15 @@ Item { left: parent.left right: parent.right - leftMargin: UM.Theme.getSize("wide_margin").width - rightMargin: UM.Theme.getSize("wide_margin").width + leftMargin: UM.Theme.getSize("wide_margin").width * 2 + rightMargin: UM.Theme.getSize("wide_margin").width * 2 } Row { id: stageMenuRow - anchors.horizontalCenter: parent.horizontalCenter - width: parent.width - 2 * UM.Theme.getSize("wide_margin").width - height: parent.height + anchors.fill: parent // This is a trick to make sure that the borders of the two adjacent buttons' borders overlap. Otherwise // there will be double border (one from each button) spacing: -UM.Theme.getSize("default_lining").width @@ -52,7 +50,7 @@ Item { id: viewPanel height: parent.height - width: source != "" ? (previewMenu.width - viewsSelector.width - printSetupSelectorItem.width) : 0 + width: source != "" ? (parent.width - viewsSelector.width - printSetupSelectorItem.width) : 0 source: UM.Controller.activeView != null && UM.Controller.activeView.stageMenuComponent != null ? UM.Controller.activeView.stageMenuComponent : "" } From 1975d053b061cd514df80152b34f3566103ead8d Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 7 Jul 2021 10:32:30 +0200 Subject: [PATCH 088/141] Split solid and 100% infill icons into two icons Both have different margins for their different use cases. Contributes to issue CURA-8202. --- .../RecommendedInfillDensitySelector.qml | 2 +- .../themes/cura-light/icons/default/Infill100.svg | 3 +++ resources/themes/cura-light/icons/default/Solid.svg | 13 +++---------- 3 files changed, 7 insertions(+), 11 deletions(-) create mode 100644 resources/themes/cura-light/icons/default/Infill100.svg diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml index a29b69c924..705a3e95ef 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml @@ -43,7 +43,7 @@ Item { return UM.Theme.getIcon("Infill2") } - return UM.Theme.getIcon("Solid") + return UM.Theme.getIcon("Infill100") } } diff --git a/resources/themes/cura-light/icons/default/Infill100.svg b/resources/themes/cura-light/icons/default/Infill100.svg new file mode 100644 index 0000000000..d136666990 --- /dev/null +++ b/resources/themes/cura-light/icons/default/Infill100.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/resources/themes/cura-light/icons/default/Solid.svg b/resources/themes/cura-light/icons/default/Solid.svg index 34367b7bc7..608a56a3e3 100644 --- a/resources/themes/cura-light/icons/default/Solid.svg +++ b/resources/themes/cura-light/icons/default/Solid.svg @@ -1,10 +1,3 @@ - - - - - - - - - - + + + \ No newline at end of file From 52018a60489971a00346cc6d85aec6c073993ba5 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 7 Jul 2021 10:57:14 +0200 Subject: [PATCH 089/141] Adjust size and margin of guide book icon The icon was rendered at a too small size, such that it would get a different line width or look-and-feel than the rest. However making it bigger doesn't properly centre it either. To centre it we also reduced the margin. Contributes to issue CURA-8202. --- .../qml/Menus/ConfigurationMenu/CustomConfiguration.qml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml index 7d1393151f..8376693ad1 100644 --- a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml @@ -302,15 +302,15 @@ Item } Item { - width: instructionButton.width + 2 * UM.Theme.getSize("default_margin").width + width: instructionButton.width + 2 * UM.Theme.getSize("narrow_margin").width height: instructionButton.visible ? materialSelection.height: 0 Button { id: instructionButton hoverEnabled: true contentItem: Item {} - height: 0.5 * materialSelection.height - width: height + height: UM.Theme.getSize("small_button").height + width: UM.Theme.getSize("small_button").width anchors.centerIn: parent background: UM.RecolorImage { From ba6e79c81f5f4d13cc25d3c47c41d10dc470539c Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 7 Jul 2021 11:27:07 +0200 Subject: [PATCH 090/141] Rework parts of camera button The new button should be consistent with the looks of the tool buttons. I've given it the same size as the inner part of the tool buttons, reworked the background so that it matches. I'm also giving it the 'secondary button' style which is also used for one other button. But that other detail button should get the same style anyway so that's fine too. I've also turned this icon into an actual button. That way it can get focus when using keyboard navigation and works better with tools for blind and such. Contributes to issue CURA-8202. --- .../resources/qml/CameraButton.qml | 50 ++++++++----------- resources/themes/cura-light/theme.json | 2 +- 2 files changed, 23 insertions(+), 29 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/CameraButton.qml b/plugins/UM3NetworkPrinting/resources/qml/CameraButton.qml index 2e3d17ceb0..8dca61ec38 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/CameraButton.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/CameraButton.qml @@ -1,23 +1,26 @@ -// Copyright (c) 2019 Ultimaker B.V. +// Copyright (c) 2021 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.3 -import QtQuick.Controls 1.4 +import QtQuick.Controls 2.4 import QtQuick.Controls.Styles 1.3 import UM 1.3 as UM import Cura 1.0 as Cura -Rectangle +Button { - id: base - - property var enabled: true - property var iconSource: null - color: enabled ? UM.Theme.getColor("monitor_icon_primary") : UM.Theme.getColor("monitor_icon_disabled") - height: width - radius: Math.round(0.5 * width) - width: 24 * screenScaleFactor + width: UM.Theme.getSize("button").width * 0.75 //Matching the size of the content of tool buttons. + height: UM.Theme.getSize("button").height * 0.75 + + hoverEnabled: true + + background: Rectangle + { + anchors.fill: parent + radius: 0.5 * width + color: parent.enabled ? (parent.hovered ? UM.Theme.getColor("monitor_secondary_button_hover") : "transparent") : UM.Theme.getColor("monitor_icon_disabled") + } UM.RecolorImage { @@ -27,30 +30,21 @@ Rectangle horizontalCenter: parent.horizontalCenter verticalCenter: parent.verticalCenter } - color: UM.Theme.getColor("monitor_icon_accent") + color: UM.Theme.getColor("primary") height: width source: iconSource width: Math.round(parent.width / 2) } - MouseArea + onClicked: { - id: clickArea - anchors.fill: parent - hoverEnabled: base.enabled - onClicked: + if (OutputDevice.activeCameraUrl != "") { - if (base.enabled) - { - if (OutputDevice.activeCameraUrl != "") - { - OutputDevice.setActiveCameraUrl("") - } - else - { - OutputDevice.setActiveCameraUrl(modelData.cameraUrl) - } - } + OutputDevice.setActiveCameraUrl("") + } + else + { + OutputDevice.setActiveCameraUrl(modelData.cameraUrl) } } } diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index bf4542b444..9ad8c03d07 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -437,7 +437,7 @@ "monitor_icon_accent": [255, 255, 255, 255], "monitor_icon_disabled": [238, 238, 238, 255], - "monitor_secondary_button_hover": [228, 228, 228, 255], + "monitor_secondary_button_hover": [232, 242, 252, 255], "monitor_secondary_button": [240, 240, 240, 255], "monitor_secondary_button_text": [30, 102, 215, 255], "monitor_secondary_button_shadow": [216, 216, 216, 255], From b4a8cb1b82cb87c8315d6ca91539a9339c180677 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 8 Jul 2021 17:01:03 +0200 Subject: [PATCH 091/141] Add monitor print button for cloud print The button redirects the user to the cloud page CURA-8018 --- .../UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py index 1884efec46..9a996444a6 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py @@ -256,7 +256,16 @@ class CloudOutputDevice(UltimakerNetworkedPrinterOutputDevice): """ self._uploaded_print_job = self._pre_upload_print_job self._progress.hide() - PrintJobUploadSuccessMessage().show() + message = PrintJobUploadSuccessMessage() + message.addAction("monitor print", + name=I18N_CATALOG.i18nc("@action:button", "Monitor Print"), + icon="", + description="Remove the plugin", + button_align=message.ActionButtonAlignment.ALIGN_RIGHT) + df_url = "https://digitalfactory.ultimaker.com/app/jobs/%s?utm_source=cura&utm_medium=software&utm_campaign=monitor-button" % self._cluster.cluster_id + message.pyQtActionTriggered.connect(lambda message, action: (QDesktopServices.openUrl(QUrl(df_url)), message.hide())) + + message.show() self.writeFinished.emit() def _onPrintUploadSpecificError(self, reply: "QNetworkReply", _: "QNetworkReply.NetworkError"): From ffa89bb1a16380c41e05846b7bd2073d6d50f00e Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 8 Jul 2021 16:24:23 +0200 Subject: [PATCH 092/141] Allow open file button to resize depending on content items This re-links the widths, heights and paddings such that we can later change the width of the button depending on its contents. However there is a complication: Buttons automatically change the size of the contents based on the size of the button minus its padding. So making the size of the button in turn depend on its contents causes a binding loop. To get around this binding loop, we need to manually calculate the size of the button, such that the size of the contents ends up exactly right. Contributes to issue CURA-8008. --- plugins/PrepareStage/PrepareMenu.qml | 34 +++++++++++++++++++--------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index 2d3814309e..4e6c37961c 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -77,24 +77,36 @@ Item Button { id: openFileButton + + //Make the button square if the contents are. + leftPadding: topPadding + rightPadding: topPadding + bottomPadding: topPadding + height: UM.Theme.getSize("stage_menu").height - width: UM.Theme.getSize("stage_menu").height + width: openFileIconContainer.width + leftPadding + rightPadding onClicked: Cura.Actions.open.trigger() hoverEnabled: true - contentItem: Item + contentItem: Row { - anchors.fill: parent - UM.RecolorImage + Item { - id: buttonIcon - anchors.centerIn: parent - source: UM.Theme.getIcon("Folder", "medium") - width: UM.Theme.getSize("button_icon").width - height: UM.Theme.getSize("button_icon").height - color: UM.Theme.getColor("icon") + id: openFileIconContainer + height: parent.height + width: height //Square button. - sourceSize.height: height + UM.RecolorImage + { + id: buttonIcon + anchors.centerIn: parent + source: UM.Theme.getIcon("Folder", "medium") + width: UM.Theme.getSize("button_icon").width + height: UM.Theme.getSize("button_icon").height + color: UM.Theme.getColor("icon") + + sourceSize.height: height + } } } From 41642a35ffd885a6260d2dc766813884ea748bde Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 8 Jul 2021 18:00:35 +0200 Subject: [PATCH 093/141] Add chevron to select where to load models from The chevron looks a little big now. No worries, we can fix that. Contributes to issue CURA-8008. --- plugins/PrepareStage/PrepareMenu.qml | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index 4e6c37961c..bf6b76360f 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -84,7 +84,7 @@ Item bottomPadding: topPadding height: UM.Theme.getSize("stage_menu").height - width: openFileIconContainer.width + leftPadding + rightPadding + width: leftPadding + openFileIconContainer.width + openFileChevronContainer.width + rightPadding onClicked: Cura.Actions.open.trigger() hoverEnabled: true @@ -105,6 +105,23 @@ Item height: UM.Theme.getSize("button_icon").height color: UM.Theme.getColor("icon") + sourceSize.height: height + } + } + Item + { + id: openFileChevronContainer + height: parent.height + width: UM.Theme.getSize("small_button_icon").width + + UM.RecolorImage + { + anchors.centerIn: parent + source: UM.Theme.getIcon("ChevronSingleDown") + width: UM.Theme.getSize("small_button_icon").width + height: UM.Theme.getSize("small_button_icon").height + color: UM.Theme.getColor("icon") + sourceSize.height: height } } @@ -113,8 +130,8 @@ Item background: Rectangle { id: background - height: UM.Theme.getSize("stage_menu").height - width: UM.Theme.getSize("stage_menu").height + height: parent.height + width: parent.width border.color: UM.Theme.getColor("lining") border.width: UM.Theme.getSize("default_lining").width From ae649d9a9f5ae6e215f4e593e9778da605203b66 Mon Sep 17 00:00:00 2001 From: Lorenzo Romagnoli Date: Fri, 9 Jul 2021 11:43:37 +0200 Subject: [PATCH 094/141] replacing with new icon for better visibility --- .../cura-light/icons/medium/ExtruderColor.svg | 14 -------------- 1 file changed, 14 deletions(-) delete mode 100644 resources/themes/cura-light/icons/medium/ExtruderColor.svg diff --git a/resources/themes/cura-light/icons/medium/ExtruderColor.svg b/resources/themes/cura-light/icons/medium/ExtruderColor.svg deleted file mode 100644 index 85360a9622..0000000000 --- a/resources/themes/cura-light/icons/medium/ExtruderColor.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - From 5cf7cd63f4ba18595a9672c74e82cff416a79e04 Mon Sep 17 00:00:00 2001 From: Lorenzo Romagnoli Date: Fri, 9 Jul 2021 11:45:43 +0200 Subject: [PATCH 095/141] replacing with thicker icon made the circle one pixel thicker so that the colorer ring is more visible for dark and light colors --- .../cura-light/icons/medium/ExtruderColor.svg | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 resources/themes/cura-light/icons/medium/ExtruderColor.svg diff --git a/resources/themes/cura-light/icons/medium/ExtruderColor.svg b/resources/themes/cura-light/icons/medium/ExtruderColor.svg new file mode 100644 index 0000000000..cd4452b246 --- /dev/null +++ b/resources/themes/cura-light/icons/medium/ExtruderColor.svg @@ -0,0 +1,14 @@ + + + + + + + + + + From bcd11636d5899d712c85b96abd77cdbaa7f09acb Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 9 Jul 2021 13:36:53 +0200 Subject: [PATCH 096/141] Catch error when release notes file could not be read And show an error message to the user in that case. This could happen if the user modified their installation or their resource folder. Fixes Sentry issue CURA-2P2. --- cura/UI/TextManager.py | 49 +++++++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 22 deletions(-) diff --git a/cura/UI/TextManager.py b/cura/UI/TextManager.py index dbe7940f26..e45689936b 100644 --- a/cura/UI/TextManager.py +++ b/cura/UI/TextManager.py @@ -1,4 +1,4 @@ -# Copyright (c) 2019 Ultimaker B.V. +# Copyright (c) 2021 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. import collections @@ -6,9 +6,11 @@ from typing import Optional, Dict, List, cast from PyQt5.QtCore import QObject, pyqtSlot +from UM.i18n import i18nCatalog from UM.Resources import Resources from UM.Version import Version +catalog = i18nCatalog("cura") # # This manager provides means to load texts to QML. @@ -30,30 +32,33 @@ class TextManager(QObject): # Load change log texts and organize them with a dict try: file_path = Resources.getPath(Resources.Texts, "change_log.txt") - except FileNotFoundError: + except FileNotFoundError as e: # I have no idea how / when this happens, but we're getting crash reports about it. - return "" + return catalog.i18nc("@text:window", "The release notes could not be opened.") + "
" + str(e) change_logs_dict = {} # type: Dict[Version, Dict[str, List[str]]] - with open(file_path, "r", encoding = "utf-8") as f: - open_version = None # type: Optional[Version] - open_header = "" # Initialise to an empty header in case there is no "*" in the first line of the changelog - for line in f: - line = line.replace("\n", "") - if "[" in line and "]" in line: - line = line.replace("[", "") - line = line.replace("]", "") - open_version = Version(line) - if open_version > Version([14, 99, 99]): # Bit of a hack: We released the 15.x.x versions before 2.x - open_version = Version([0, open_version.getMinor(), open_version.getRevision(), open_version.getPostfixVersion()]) - open_header = "" - change_logs_dict[open_version] = collections.OrderedDict() - elif line.startswith("*"): - open_header = line.replace("*", "") - change_logs_dict[cast(Version, open_version)][open_header] = [] - elif line != "": - if open_header not in change_logs_dict[cast(Version, open_version)]: + try: + with open(file_path, "r", encoding = "utf-8") as f: + open_version = None # type: Optional[Version] + open_header = "" # Initialise to an empty header in case there is no "*" in the first line of the changelog + for line in f: + line = line.replace("\n", "") + if "[" in line and "]" in line: + line = line.replace("[", "") + line = line.replace("]", "") + open_version = Version(line) + if open_version > Version([14, 99, 99]): # Bit of a hack: We released the 15.x.x versions before 2.x + open_version = Version([0, open_version.getMinor(), open_version.getRevision(), open_version.getPostfixVersion()]) + open_header = "" + change_logs_dict[open_version] = collections.OrderedDict() + elif line.startswith("*"): + open_header = line.replace("*", "") change_logs_dict[cast(Version, open_version)][open_header] = [] - change_logs_dict[cast(Version, open_version)][open_header].append(line) + elif line != "": + if open_header not in change_logs_dict[cast(Version, open_version)]: + change_logs_dict[cast(Version, open_version)][open_header] = [] + change_logs_dict[cast(Version, open_version)][open_header].append(line) + except EnvironmentError as e: + return catalog.i18nc("@text:window", "The release notes could not be opened.") + "
" + str(e) # Format changelog text content = "" From f4f48c0fdab65a5e520a8cf64bf677d32fbdc164 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 9 Jul 2021 14:23:14 +0200 Subject: [PATCH 097/141] Move padding to only be around row Not around the individual icons. This way the chevron can be placed next to the icon closer. Contributes to issue CURA-8008. --- plugins/PrepareStage/PrepareMenu.qml | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index bf6b76360f..850d329ab2 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -78,35 +78,28 @@ Item { id: openFileButton - //Make the button square if the contents are. + //Make the padding such that the main icon is centred, even if something else is placed besides it. + topPadding: Math.round((parent.height - buttonIcon.height) / 2) leftPadding: topPadding rightPadding: topPadding bottomPadding: topPadding height: UM.Theme.getSize("stage_menu").height - width: leftPadding + openFileIconContainer.width + openFileChevronContainer.width + rightPadding + width: leftPadding + buttonIcon.width + openFileChevronContainer.width + rightPadding onClicked: Cura.Actions.open.trigger() hoverEnabled: true contentItem: Row { - Item + UM.RecolorImage { - id: openFileIconContainer - height: parent.height - width: height //Square button. + id: buttonIcon + source: UM.Theme.getIcon("Folder", "medium") + width: UM.Theme.getSize("button_icon").width + height: UM.Theme.getSize("button_icon").height + color: UM.Theme.getColor("icon") - UM.RecolorImage - { - id: buttonIcon - anchors.centerIn: parent - source: UM.Theme.getIcon("Folder", "medium") - width: UM.Theme.getSize("button_icon").width - height: UM.Theme.getSize("button_icon").height - color: UM.Theme.getColor("icon") - - sourceSize.height: height - } + sourceSize.height: height } Item { From 6203a5c9873ee650ff7c19a0d5688effd36a0517 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 9 Jul 2021 14:27:32 +0200 Subject: [PATCH 098/141] Correct chevron size and colour This is the same as what ExpandablePopup does. Contributes to issue CURA-8008. --- plugins/PrepareStage/PrepareMenu.qml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index 850d329ab2..323ea46050 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -110,10 +110,10 @@ Item UM.RecolorImage { anchors.centerIn: parent - source: UM.Theme.getIcon("ChevronSingleDown") - width: UM.Theme.getSize("small_button_icon").width - height: UM.Theme.getSize("small_button_icon").height - color: UM.Theme.getColor("icon") + source: UM.Theme.getIcon("ChevronSingleLeft") + width: UM.Theme.getSize("standard_arrow").width + height: UM.Theme.getSize("standard_arrow").height + color: UM.Theme.getColor("small_button_text") sourceSize.height: height } From c100ba88d0589f11d9979c08b94c48f35d605724 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 9 Jul 2021 15:27:12 +0200 Subject: [PATCH 099/141] Move pop-up code to external item to re-use ExpandablePopup element All of what we were about to implement is already implemented in ExpandablePopup. So let's re-use that one. That guarantees that it looks consistent too. Contributes to issue CURA-8008. --- plugins/PrepareStage/PrepareMenu.qml | 67 ++++++++++++++++------------ 1 file changed, 38 insertions(+), 29 deletions(-) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index 323ea46050..576cd3cd95 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2018 Ultimaker B.V. +// Copyright (c) 2021 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.7 @@ -36,9 +36,9 @@ Item { id: itemRow - anchors.left: openFileButton.right + anchors.left: parent.left anchors.right: parent.right - anchors.leftMargin: UM.Theme.getSize("default_margin").width + anchors.leftMargin: UM.Theme.getSize("default_margin").width + openFileButton.width + openFileMenu.width property int machineSelectorWidth: Math.round((width - printSetupSelectorItem.width) / 3) height: parent.height @@ -74,50 +74,59 @@ Item } } + //Pop-up shown when there are multiple items to select from. + Cura.ExpandablePopup + { + id: openFileMenu + contentAlignment: Cura.ExpandablePopup.ContentAlignment.AlignLeft + headerCornerSide: Cura.RoundedRectangle.Direction.All + headerPadding: Math.round((parent.height - UM.Theme.getSize("button_icon").height) / 2) + enabled: visible + + height: parent.height + width: visible ? (headerPadding * 3 + UM.Theme.getSize("button_icon").height + iconSize) : 0 + + headerItem: UM.RecolorImage + { + id: menuIcon + source: UM.Theme.getIcon("Folder", "medium") + color: UM.Theme.getColor("icon") + + sourceSize.height: height + } + + contentItem: Rectangle + { + width: 100 + height: 100 + color: "red" + } + } + + //If there is just a single item, show a button instead that directly chooses the one option. Button { id: openFileButton - //Make the padding such that the main icon is centred, even if something else is placed besides it. - topPadding: Math.round((parent.height - buttonIcon.height) / 2) - leftPadding: topPadding - rightPadding: topPadding - bottomPadding: topPadding - - height: UM.Theme.getSize("stage_menu").height - width: leftPadding + buttonIcon.width + openFileChevronContainer.width + rightPadding + height: parent.height + width: height //Square button. onClicked: Cura.Actions.open.trigger() + enabled: visible hoverEnabled: true - contentItem: Row + contentItem: Item { UM.RecolorImage { id: buttonIcon source: UM.Theme.getIcon("Folder", "medium") + anchors.centerIn: parent width: UM.Theme.getSize("button_icon").width height: UM.Theme.getSize("button_icon").height color: UM.Theme.getColor("icon") sourceSize.height: height } - Item - { - id: openFileChevronContainer - height: parent.height - width: UM.Theme.getSize("small_button_icon").width - - UM.RecolorImage - { - anchors.centerIn: parent - source: UM.Theme.getIcon("ChevronSingleLeft") - width: UM.Theme.getSize("standard_arrow").width - height: UM.Theme.getSize("standard_arrow").height - color: UM.Theme.getColor("small_button_text") - - sourceSize.height: height - } - } } background: Rectangle From 5bc384830114fb4144709784441f0c5900900bb9 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 9 Jul 2021 15:33:57 +0200 Subject: [PATCH 100/141] Show either openFileButton or openFileMenu, depending on provider count If there's just 1 provider, show the button. If there are multiple, show the menu. If there are 0, also show the button but disable the button. The behaviour is not yet implemented though. It doesn't actually look at which providers are available and what they do. Contributes to issue CURA-8008. --- plugins/PrepareStage/PrepareMenu.qml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index 576cd3cd95..219979407b 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -13,6 +13,8 @@ Item { id: prepareMenu + property var fileProviderModel: CuraApplication.getFileProviderModel() + UM.I18nCatalog { id: catalog @@ -78,6 +80,8 @@ Item Cura.ExpandablePopup { id: openFileMenu + visible: prepareMenu.fileProviderModel.count > 1 + contentAlignment: Cura.ExpandablePopup.ContentAlignment.AlignLeft headerCornerSide: Cura.RoundedRectangle.Direction.All headerPadding: Math.round((parent.height - UM.Theme.getSize("button_icon").height) / 2) @@ -107,11 +111,12 @@ Item Button { id: openFileButton + visible: prepareMenu.fileProviderModel.count <= 1 height: parent.height - width: height //Square button. + width: visible ? height : 0 //Square button (and don't take up space if invisible). onClicked: Cura.Actions.open.trigger() - enabled: visible + enabled: visible && prepareMenu.fileProviderModel.count > 0 hoverEnabled: true contentItem: Item From 0db1f1034b164b783ff395afc87e7cdc1e13a183 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 9 Jul 2021 16:47:51 +0200 Subject: [PATCH 101/141] Add header, and make popup grow to its contents It was quite a hassle to allow the column to grow to the size of its contents. For some reason, things update the size to 0. And the size updates again once the pop-up actually gets opened for the first time, because then the column actually gets populated lazily. Contributes to issue CURA-8008. --- plugins/PrepareStage/PrepareMenu.qml | 38 ++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index 219979407b..1916a5813d 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -1,7 +1,7 @@ // Copyright (c) 2021 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. -import QtQuick 2.7 +import QtQuick 2.9 import QtQuick.Layouts 1.1 import QtQuick.Controls 2.3 @@ -99,11 +99,39 @@ Item sourceSize.height: height } - contentItem: Rectangle + contentItem: Item { - width: 100 - height: 100 - color: "red" + id: popup + width: openProviderColumn.width + height: openProviderColumn.height + + Column + { + id: openProviderColumn + + //The column doesn't automatically listen to its children rect if the children change internally, so we need to explicitly update the size. + onChildrenRectChanged: + { + popup.height = childrenRect.height + popup.width = childrenRect.width + } + onPositioningComplete: + { + popup.height = childrenRect.height + popup.width = childrenRect.width + } + + Label + { + text: catalog.i18nc("@menu:header", "Open file") + color: UM.Theme.getColor("text_medium") + font: UM.Theme.getFont("medium") + renderType: Text.NativeRendering + + width: contentWidth + height: contentHeight + } + } } } From f8aa6a3398d2dda18b7c78b6121281f137cd5c6f Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 9 Jul 2021 17:02:38 +0200 Subject: [PATCH 102/141] Add list of open file providers to submenu The layout isn't quite there yet, but it mostly works and I want to have a save point to return to if I tinker too much. Contributes to issue CURA-8008. --- plugins/PrepareStage/PrepareMenu.qml | 43 ++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index 1916a5813d..31da2f356b 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -131,6 +131,49 @@ Item width: contentWidth height: contentHeight } + + Repeater + { + model: prepareMenu.fileProviderModel + delegate: Button + { + leftPadding: UM.Theme.getSize("thick_margin").width + rightPadding: UM.Theme.getSize("thick_margin").width + width: contentItem.width + leftPadding + rightPadding + height: UM.Theme.getSize("action_button").height + hoverEnabled: true + + contentItem: Label + { + text: model.displayText + color: UM.Theme.getColor("text") + font: UM.Theme.getFont("medium") + renderType: Text.NativeRendering + verticalAlignment: Text.AlignVCenter + + width: contentWidth + height: contentHeight + } + + onClicked: + { + if(model.index == 0) //The 0th element is the "From Disk" option, which should activate the open local file dialog. + { + Cura.Actions.open.trigger(); + } + else + { + prepareMenu.fileProviderModel.trigger(model.name); + } + } + + background: Rectangle + { + color: parent.hovered ? UM.Theme.getColor("action_button_hovered") : "transparent" + radius: UM.Theme.getSize("action_button_radius").width + } + } + } } } } From 739f8834d0de2a1a04be14814510bcb2784d8066 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 9 Jul 2021 17:20:32 +0200 Subject: [PATCH 103/141] Align layout of providers with machine selector It's quite different in detail because there is a lot less content to show here (no machine type, icons, etc), but the basics are the same now. One possible issue is that the button doesn't extend all the way to the right, so you can't click everywhere on the shortest item. I'll see if that can still be fixed. Contributes to issue CURA-8008. --- plugins/PrepareStage/PrepareMenu.qml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index 31da2f356b..5126d0aba6 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -85,6 +85,7 @@ Item contentAlignment: Cura.ExpandablePopup.ContentAlignment.AlignLeft headerCornerSide: Cura.RoundedRectangle.Direction.All headerPadding: Math.round((parent.height - UM.Theme.getSize("button_icon").height) / 2) + contentPadding: UM.Theme.getSize("default_lining").width enabled: visible height: parent.height @@ -102,8 +103,6 @@ Item contentItem: Item { id: popup - width: openProviderColumn.width - height: openProviderColumn.height Column { @@ -127,9 +126,11 @@ Item color: UM.Theme.getColor("text_medium") font: UM.Theme.getFont("medium") renderType: Text.NativeRendering + verticalAlignment: Text.AlignVCenter width: contentWidth - height: contentHeight + height: UM.Theme.getSize("action_button").height + leftPadding: UM.Theme.getSize("default_margin").width } Repeater @@ -152,7 +153,7 @@ Item verticalAlignment: Text.AlignVCenter width: contentWidth - height: contentHeight + height: parent.height } onClicked: @@ -171,6 +172,7 @@ Item { color: parent.hovered ? UM.Theme.getColor("action_button_hovered") : "transparent" radius: UM.Theme.getSize("action_button_radius").width + width: popup.width } } } From c78618bc157a56ace65f6363453139a12d50fa15 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Fri, 9 Jul 2021 21:06:49 +0200 Subject: [PATCH 104/141] Digital Library: Allow 'personal users' to DL. Users with an account and an UM printer should have some basic access to the Digital Library. To this end, and to remain future proof, the online team has made an extension to its API so now feature budgets can be gauge. At the moment it's only checked wether the user has any access to personal projects at all. If so, the interface shows Digital Library functionality. Known issue: Removing the last printer from DF while still logged in leaves the DL access in the Cura interface until logged out or Cura restarted. Additionally, I think the response for a logged in user without any printer from the API is just 'data = empty list' instead of everything set to False and 0 (which should be the case as they're all listed as required fields in their docs ... maybe I'm missing something). In any case, the code as is now can handle that as well. CURA-8138 --- .../src/DigitalFactoryApiClient.py | 21 +++++++++ .../src/DigitalFactoryController.py | 18 +++++++- .../DigitalFactoryFeatureBudgetResponse.py | 43 +++++++++++++++++++ .../src/DigitalFactoryFileProvider.py | 4 +- .../src/DigitalFactoryOutputDevice.py | 4 +- 5 files changed, 84 insertions(+), 6 deletions(-) create mode 100644 plugins/DigitalLibrary/src/DigitalFactoryFeatureBudgetResponse.py diff --git a/plugins/DigitalLibrary/src/DigitalFactoryApiClient.py b/plugins/DigitalLibrary/src/DigitalFactoryApiClient.py index b0e34adaba..0140d9858d 100644 --- a/plugins/DigitalLibrary/src/DigitalFactoryApiClient.py +++ b/plugins/DigitalLibrary/src/DigitalFactoryApiClient.py @@ -22,6 +22,7 @@ from .DFFileUploader import DFFileUploader from .DFLibraryFileUploadRequest import DFLibraryFileUploadRequest from .DFLibraryFileUploadResponse import DFLibraryFileUploadResponse from .DFPrintJobUploadRequest import DFPrintJobUploadRequest +from .DigitalFactoryFeatureBudgetResponse import DigitalFactoryFeatureBudgetResponse from .DigitalFactoryFileResponse import DigitalFactoryFileResponse from .DigitalFactoryProjectResponse import DigitalFactoryProjectResponse from .PaginationLinks import PaginationLinks @@ -57,6 +58,26 @@ class DigitalFactoryApiClient: self._projects_pagination_mgr = PaginationManager(limit = projects_limit_per_page) if projects_limit_per_page else None # type: Optional[PaginationManager] + def checkUserHasAccess(self, callback: Callable) -> bool: + """Checks if the user has any sort of access to the digital library. + A user is considered to have access if the max-# of private projects is greater then 0 (or -1 for unlimited). + """ + + def callbackWrap(response: Optional[Any] = None, *args, **kwargs) -> None: + if response and isinstance(response, DigitalFactoryFeatureBudgetResponse): + callback( + response.library_max_private_projects == -1 or # Note: -1 is unlimited + response.library_max_private_projects > 0) + else: + Logger.warning(f"Digital Factory: Response is not a feature budget, likely an error: {str(response)}") + callback(False) + + self._http.get(f"{self.CURA_API_ROOT}/feature_budgets", + scope = self._scope, + callback = self._parseCallback(callbackWrap, DigitalFactoryFeatureBudgetResponse, callbackWrap), + error_callback = callbackWrap, + timeout = self.DEFAULT_REQUEST_TIMEOUT) + def getProject(self, library_project_id: str, on_finished: Callable[[DigitalFactoryProjectResponse], Any], failed: Callable) -> None: """ Retrieves a digital factory project by its library project id. diff --git a/plugins/DigitalLibrary/src/DigitalFactoryController.py b/plugins/DigitalLibrary/src/DigitalFactoryController.py index 352a8c70f2..368b29219a 100644 --- a/plugins/DigitalLibrary/src/DigitalFactoryController.py +++ b/plugins/DigitalLibrary/src/DigitalFactoryController.py @@ -89,6 +89,9 @@ class DigitalFactoryController(QObject): uploadFileError = Signal() uploadFileFinished = Signal() + """Signal to inform about the state of user access.""" + userAccessStateChanged = pyqtSignal(bool) + def __init__(self, application: CuraApplication) -> None: super().__init__(parent = None) @@ -106,6 +109,7 @@ class DigitalFactoryController(QObject): self._has_more_projects_to_load = False self._account = self._application.getInstance().getCuraAPI().account # type: Account + self._account.loginStateChanged.connect(self._onLoginStateChanged) self._current_workspace_information = CuraApplication.getInstance().getCurrentWorkspaceInformation() # Initialize the project model @@ -131,6 +135,8 @@ class DigitalFactoryController(QObject): self._application.engineCreatedSignal.connect(self._onEngineCreated) self._application.initializationFinished.connect(self._applicationInitializationFinished) + self._user_has_access = False + def clear(self) -> None: self._project_model.clearProjects() self._api.clear() @@ -143,16 +149,24 @@ class DigitalFactoryController(QObject): self.setSelectedProjectIndex(-1) + def _onLoginStateChanged(self, logged_in: bool) -> None: + def callback(has_access, **kwargs): + self._user_has_access = has_access + self.userAccessStateChanged.emit(logged_in) + + self._api.checkUserHasAccess(callback) + def userAccountHasLibraryAccess(self) -> bool: """ Checks whether the currently logged in user account has access to the Digital Library :return: True if the user account has Digital Library access, else False """ - subscriptions = [] # type: List[Dict[str, Any]] if self._account.userProfile: subscriptions = self._account.userProfile.get("subscriptions", []) - return len(subscriptions) > 0 + if len(subscriptions) > 0: + return True + return self._user_has_access def initialize(self, preselected_project_id: Optional[str] = None) -> None: self.clear() diff --git a/plugins/DigitalLibrary/src/DigitalFactoryFeatureBudgetResponse.py b/plugins/DigitalLibrary/src/DigitalFactoryFeatureBudgetResponse.py new file mode 100644 index 0000000000..016306a478 --- /dev/null +++ b/plugins/DigitalLibrary/src/DigitalFactoryFeatureBudgetResponse.py @@ -0,0 +1,43 @@ +# Copyright (c) 2021 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + +from .BaseModel import BaseModel +from typing import Optional + + +class DigitalFactoryFeatureBudgetResponse(BaseModel): + """Class representing the capabilities of a user account for Digital Library. + NOTE: For each max_..._projects fields, '-1' means unlimited! + """ + + def __init__(self, + library_can_use_business_value: Optional[bool] = False, + library_can_use_comments: Optional[bool] = False, + library_can_use_status: Optional[bool] = False, + library_can_use_tags: Optional[bool] = False, + library_can_use_technical_requirements: Optional[bool] = False, + library_max_organization_shared_projects: Optional[int] = False, # -1 means unlimited + library_max_private_projects: Optional[int] = False, # -1 means unlimited + library_max_team_shared_projects: Optional[int] = False, # -1 means unlimited + **kwargs) -> None: + + self.library_can_use_business_value = library_can_use_business_value + self.library_can_use_comments = library_can_use_comments + self.library_can_use_status = library_can_use_status + self.library_can_use_tags = library_can_use_tags + self.library_can_use_technical_requirements = library_can_use_technical_requirements + self.library_max_organization_shared_projects = library_max_organization_shared_projects # -1 means unlimited + self.library_max_private_projects = library_max_private_projects # -1 means unlimited + self.library_max_team_shared_projects = library_max_team_shared_projects # -1 means unlimited + super().__init__(**kwargs) + + def __repr__(self) -> str: + return "max private: {}, max org: {}, max team: {}".format( + self.library_max_private_projects, + self.library_max_organization_shared_projects, + self.library_max_team_shared_projects) + + # Validates the model, raising an exception if the model is invalid. + def validate(self) -> None: + super().validate() + # No validation for now, as the response can be "data: []", which should be interpreted as all False and 0's diff --git a/plugins/DigitalLibrary/src/DigitalFactoryFileProvider.py b/plugins/DigitalLibrary/src/DigitalFactoryFileProvider.py index 7a544afaa1..65a727e21a 100644 --- a/plugins/DigitalLibrary/src/DigitalFactoryFileProvider.py +++ b/plugins/DigitalLibrary/src/DigitalFactoryFileProvider.py @@ -22,7 +22,7 @@ class DigitalFactoryFileProvider(FileProvider): self._dialog = None self._account = CuraApplication.getInstance().getCuraAPI().account # type: Account - self._account.loginStateChanged.connect(self._onLoginStateChanged) + self._controller.userAccessStateChanged.connect(self._onUserAccessStateChanged) self.enabled = self._account.isLoggedIn and self._controller.userAccountHasLibraryAccess() self.priority = 10 @@ -53,7 +53,7 @@ class DigitalFactoryFileProvider(FileProvider): if not self._dialog: Logger.log("e", "Unable to create the Digital Library Open dialog.") - def _onLoginStateChanged(self, logged_in: bool) -> None: + def _onUserAccessStateChanged(self, logged_in: bool) -> None: """ Sets the enabled status of the DigitalFactoryFileProvider according to the account's login status :param logged_in: The new login status diff --git a/plugins/DigitalLibrary/src/DigitalFactoryOutputDevice.py b/plugins/DigitalLibrary/src/DigitalFactoryOutputDevice.py index 202223f9b4..70e3ac34f2 100644 --- a/plugins/DigitalLibrary/src/DigitalFactoryOutputDevice.py +++ b/plugins/DigitalLibrary/src/DigitalFactoryOutputDevice.py @@ -45,7 +45,7 @@ class DigitalFactoryOutputDevice(ProjectOutputDevice): self._writing = False self._account = CuraApplication.getInstance().getCuraAPI().account # type: Account - self._account.loginStateChanged.connect(self._onLoginStateChanged) + self._controller.userAccessStateChanged.connect(self._onUserAccessStateChanged) self.enabled = self._account.isLoggedIn and self._controller.userAccountHasLibraryAccess() self._current_workspace_information = CuraApplication.getInstance().getCurrentWorkspaceInformation() @@ -97,7 +97,7 @@ class DigitalFactoryOutputDevice(ProjectOutputDevice): if not self._dialog: Logger.log("e", "Unable to create the Digital Library Save dialog.") - def _onLoginStateChanged(self, logged_in: bool) -> None: + def _onUserAccessStateChanged(self, logged_in: bool) -> None: """ Sets the enabled status of the DigitalFactoryOutputDevice according to the account's login status :param logged_in: The new login status From 6f99837db575648ffee21715acefd218d7046de0 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Fri, 9 Jul 2021 21:17:33 +0200 Subject: [PATCH 105/141] Fix typing. part of CURA-8138 --- plugins/DigitalLibrary/src/DigitalFactoryApiClient.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/DigitalLibrary/src/DigitalFactoryApiClient.py b/plugins/DigitalLibrary/src/DigitalFactoryApiClient.py index 0140d9858d..3560182aa0 100644 --- a/plugins/DigitalLibrary/src/DigitalFactoryApiClient.py +++ b/plugins/DigitalLibrary/src/DigitalFactoryApiClient.py @@ -58,7 +58,7 @@ class DigitalFactoryApiClient: self._projects_pagination_mgr = PaginationManager(limit = projects_limit_per_page) if projects_limit_per_page else None # type: Optional[PaginationManager] - def checkUserHasAccess(self, callback: Callable) -> bool: + def checkUserHasAccess(self, callback: Callable) -> None: """Checks if the user has any sort of access to the digital library. A user is considered to have access if the max-# of private projects is greater then 0 (or -1 for unlimited). """ @@ -66,6 +66,7 @@ class DigitalFactoryApiClient: def callbackWrap(response: Optional[Any] = None, *args, **kwargs) -> None: if response and isinstance(response, DigitalFactoryFeatureBudgetResponse): callback( + response.library_max_private_projects is not None and response.library_max_private_projects == -1 or # Note: -1 is unlimited response.library_max_private_projects > 0) else: From 85f98bdaffe671f66049baffec82188b008f8426 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Fri, 9 Jul 2021 21:36:20 +0200 Subject: [PATCH 106/141] Appease type-checking system even further. That last one should have worked really. part of CURA-8138 --- plugins/DigitalLibrary/src/DigitalFactoryApiClient.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/DigitalLibrary/src/DigitalFactoryApiClient.py b/plugins/DigitalLibrary/src/DigitalFactoryApiClient.py index 3560182aa0..e1a62fdd5c 100644 --- a/plugins/DigitalLibrary/src/DigitalFactoryApiClient.py +++ b/plugins/DigitalLibrary/src/DigitalFactoryApiClient.py @@ -64,9 +64,9 @@ class DigitalFactoryApiClient: """ def callbackWrap(response: Optional[Any] = None, *args, **kwargs) -> None: - if response and isinstance(response, DigitalFactoryFeatureBudgetResponse): + if (response is not None and isinstance(response, DigitalFactoryFeatureBudgetResponse) and + response.library_max_private_projects is not None): callback( - response.library_max_private_projects is not None and response.library_max_private_projects == -1 or # Note: -1 is unlimited response.library_max_private_projects > 0) else: From a1387f7ed7d8ee2ee76ad626edab7f21ca6f07d6 Mon Sep 17 00:00:00 2001 From: Dave Date: Sat, 10 Jul 2021 18:24:00 +0200 Subject: [PATCH 107/141] Update geeetech_a30.def.json wrong name for the settings --- resources/definitions/geeetech_a30.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/geeetech_a30.def.json b/resources/definitions/geeetech_a30.def.json index 1f08d37445..d4f7df139f 100644 --- a/resources/definitions/geeetech_a30.def.json +++ b/resources/definitions/geeetech_a30.def.json @@ -4,7 +4,7 @@ "inherits": "fdmprinter", "metadata": { "author": "William & Cataldo URSO", - "manufacturer": "Shenzhen Geeetech Technology", + "manufacturer": "Geeetech", "file_formats": "text/x-gcode", "visible": true, "has_materials": true, From 55bdb81e785bf9fa94e419076cca58b55a74334a Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 12 Jul 2021 11:13:06 +0200 Subject: [PATCH 108/141] Reduce margins of options in the open file drop-down This was a desire from the developer. It shouldn't be consistent with the printer selector. The margins being all the same is more important. Contributes to issue CURA-8008. --- plugins/PrepareStage/PrepareMenu.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index 5126d0aba6..061db0b8f6 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -138,8 +138,8 @@ Item model: prepareMenu.fileProviderModel delegate: Button { - leftPadding: UM.Theme.getSize("thick_margin").width - rightPadding: UM.Theme.getSize("thick_margin").width + leftPadding: UM.Theme.getSize("default_margin").width + rightPadding: UM.Theme.getSize("default_margin").width width: contentItem.width + leftPadding + rightPadding height: UM.Theme.getSize("action_button").height hoverEnabled: true From 3d6b58d5c08a1f3b8901b47d33bbb13d780926b7 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 12 Jul 2021 11:19:04 +0200 Subject: [PATCH 109/141] Always show down arrow regardless of expanded state This is something our UX designer wants to change for all expandable header bar menus. The down arrow indicates that something will pop-up downwards once clicked. It is unnecessary to feedback the state of the expansion in the icon. Contributes to CURA-8008. --- resources/qml/ExpandableComponent.qml | 2 +- resources/qml/ExpandablePopup.qml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index bbe617e27d..18eb8c0fa6 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -167,7 +167,7 @@ Item verticalCenter: parent.verticalCenter margins: background.padding } - source: expanded ? UM.Theme.getIcon("ChevronSingleDown") : UM.Theme.getIcon("ChevronSingleLeft") + source: UM.Theme.getIcon("ChevronSingleDown") visible: source != "" width: UM.Theme.getSize("standard_arrow").width height: UM.Theme.getSize("standard_arrow").height diff --git a/resources/qml/ExpandablePopup.qml b/resources/qml/ExpandablePopup.qml index da56470bfb..3bcfdbb6f8 100644 --- a/resources/qml/ExpandablePopup.qml +++ b/resources/qml/ExpandablePopup.qml @@ -180,7 +180,7 @@ Item verticalCenter: parent.verticalCenter margins: background.padding } - source: expanded ? UM.Theme.getIcon("ChevronSingleDown") : UM.Theme.getIcon("ChevronSingleLeft") + source: UM.Theme.getIcon("ChevronSingleDown") visible: source != "" width: UM.Theme.getSize("standard_arrow").width height: UM.Theme.getSize("standard_arrow").height From 9ec261f72169bf87d7add73ad09d304067bed3f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lars=20P=C3=B6pperl?= <45465820+tispokes@users.noreply.github.com> Date: Mon, 12 Jul 2021 13:08:42 +0200 Subject: [PATCH 110/141] =?UTF-8?q?corrected=20z=5Fseam-"Back"=20from=20"Z?= =?UTF-8?q?ur=C3=BCck"=20to=20"Hinten"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/i18n/de_DE/fdmprinter.def.json.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/i18n/de_DE/fdmprinter.def.json.po b/resources/i18n/de_DE/fdmprinter.def.json.po index 5d7915ac0d..3eb590b680 100644 --- a/resources/i18n/de_DE/fdmprinter.def.json.po +++ b/resources/i18n/de_DE/fdmprinter.def.json.po @@ -1177,7 +1177,7 @@ msgstr "Hinten links" #: fdmprinter.def.json msgctxt "z_seam_position option back" msgid "Back" -msgstr "Zurück" +msgstr "Hinten" #: fdmprinter.def.json msgctxt "z_seam_position option backright" From 2b5747f3eefb673734b366250a6dc671acc25760 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 12 Jul 2021 17:13:32 +0200 Subject: [PATCH 111/141] Update plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py Co-authored-by: Ghostkeeper --- plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py index 9a996444a6..3ca150ec87 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py @@ -260,7 +260,7 @@ class CloudOutputDevice(UltimakerNetworkedPrinterOutputDevice): message.addAction("monitor print", name=I18N_CATALOG.i18nc("@action:button", "Monitor Print"), icon="", - description="Remove the plugin", + description=I18N_CATALOG.i18nc("@action:tooltip", "Track the print in Ultimaker Digital Factory"), button_align=message.ActionButtonAlignment.ALIGN_RIGHT) df_url = "https://digitalfactory.ultimaker.com/app/jobs/%s?utm_source=cura&utm_medium=software&utm_campaign=monitor-button" % self._cluster.cluster_id message.pyQtActionTriggered.connect(lambda message, action: (QDesktopServices.openUrl(QUrl(df_url)), message.hide())) From 22826bc4d89a425812b2d003edeb273c8a10cdab Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 12 Jul 2021 17:16:16 +0200 Subject: [PATCH 112/141] Add text field in a layout for search The text field is not stylised yet, so far. Will do, but let's first make it functional. Contributes to issue CURA-8009. --- .../resources/qml/SelectProjectPage.qml | 52 +++++++++++-------- 1 file changed, 30 insertions(+), 22 deletions(-) diff --git a/plugins/DigitalLibrary/resources/qml/SelectProjectPage.qml b/plugins/DigitalLibrary/resources/qml/SelectProjectPage.qml index 2de0e78cc7..4fcccac61e 100644 --- a/plugins/DigitalLibrary/resources/qml/SelectProjectPage.qml +++ b/plugins/DigitalLibrary/resources/qml/SelectProjectPage.qml @@ -1,10 +1,12 @@ // Copyright (C) 2021 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.10 import QtQuick.Window 2.2 import QtQuick.Controls 1.4 as OldControls // TableView doesn't exist in the QtQuick Controls 2.x in 5.10, so use the old one import QtQuick.Controls 2.3 import QtQuick.Controls.Styles 1.4 +import QtQuick.Layouts 1.1 import UM 1.2 as UM import Cura 1.6 as Cura @@ -29,31 +31,37 @@ Item margins: UM.Theme.getSize("default_margin").width } - Label + RowLayout { - id: selectProjectLabel + id: headerRow - text: "Select Project" - font: UM.Theme.getFont("medium") - color: UM.Theme.getColor("small_button_text") - anchors.top: parent.top - anchors.left: parent.left - visible: projectListContainer.visible - } - - Cura.SecondaryButton - { - id: createNewProjectButton - - anchors.verticalCenter: selectProjectLabel.verticalCenter - anchors.right: parent.right - text: "New Library project" - - onClicked: + anchors { - createNewProjectPopup.open() + top: parent.top + left: parent.left + right: parent.right + } + height: childrenRect.height + + TextField + { + id: searchBar + Layout.fillWidth: true + height: createNewProjectButton.height + } + + Cura.SecondaryButton + { + id: createNewProjectButton + + text: "New Library project" + + onClicked: + { + createNewProjectPopup.open() + } + busy: manager.creatingNewProjectStatus == DF.RetrievalStatus.InProgress } - busy: manager.creatingNewProjectStatus == DF.RetrievalStatus.InProgress } Item @@ -106,7 +114,7 @@ Item id: projectListContainer anchors { - top: selectProjectLabel.bottom + top: headerRow.bottom topMargin: UM.Theme.getSize("default_margin").height bottom: parent.bottom left: parent.left From 65f7eb5ea8f0cd5a8c1c7e56e08f1c08fcfc71f4 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 12 Jul 2021 17:41:10 +0200 Subject: [PATCH 113/141] Add function to update search filter when the user types Seems to work fine. The pyqtSignal is not technically necessary unless we display this filter in the interface anywhere. We don't currently. If the signal is not present it would complain about non-notifyable properties. And making it a slot instead of a signal seems a bit unintuitive to me in how the field is being used. Contributes to issue CURA-8009. --- .../resources/qml/SelectProjectPage.qml | 2 + .../src/DigitalFactoryController.py | 39 ++++++++++++++++++- 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/plugins/DigitalLibrary/resources/qml/SelectProjectPage.qml b/plugins/DigitalLibrary/resources/qml/SelectProjectPage.qml index 4fcccac61e..ecec9556c9 100644 --- a/plugins/DigitalLibrary/resources/qml/SelectProjectPage.qml +++ b/plugins/DigitalLibrary/resources/qml/SelectProjectPage.qml @@ -48,6 +48,8 @@ Item id: searchBar Layout.fillWidth: true height: createNewProjectButton.height + + onTextEdited: manager.projectFilter = text } Cura.SecondaryButton diff --git a/plugins/DigitalLibrary/src/DigitalFactoryController.py b/plugins/DigitalLibrary/src/DigitalFactoryController.py index 368b29219a..3d1cc178f8 100644 --- a/plugins/DigitalLibrary/src/DigitalFactoryController.py +++ b/plugins/DigitalLibrary/src/DigitalFactoryController.py @@ -1,4 +1,6 @@ # Copyright (c) 2021 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + import json import math import os @@ -8,7 +10,7 @@ from enum import IntEnum from pathlib import Path from typing import Optional, List, Dict, Any, cast -from PyQt5.QtCore import pyqtSignal, QObject, pyqtSlot, pyqtProperty, Q_ENUMS, QUrl +from PyQt5.QtCore import pyqtSignal, QObject, pyqtSlot, pyqtProperty, Q_ENUMS, QTimer, QUrl from PyQt5.QtNetwork import QNetworkReply from PyQt5.QtQml import qmlRegisterType, qmlRegisterUncreatableType @@ -116,6 +118,11 @@ class DigitalFactoryController(QObject): self._project_model = DigitalFactoryProjectModel() self._selected_project_idx = -1 self._project_creation_error_text = "Something went wrong while creating a new project. Please try again." + self._project_filter = "" + self._project_filter_change_timer = QTimer() + self._project_filter_change_timer.setInterval(1000) + self._project_filter_change_timer.setSingleShot(True) + self._project_filter_change_timer.timeout.connect(self._applyProjectFilter) # Initialize the file model self._file_model = DigitalFactoryFileModel() @@ -302,6 +309,36 @@ class DigitalFactoryController(QObject): self._selected_file_indices = file_indices self.selectedFileIndicesChanged.emit(file_indices) + def setProjectFilter(self, new_filter) -> None: + """ + Called when the user wants to change the search filter for projects. + + The filter is not immediately applied. There is some delay to allow the user to finish typing. + :param new_filter: The new filter that the user wants to apply. + """ + self._project_filter = new_filter + self._project_filter_change_timer.start() + + """ + Signal to notify Qt that the applied filter has changed. + """ + projectFilterChanged = pyqtSignal() + + @pyqtProperty(str, notify = projectFilterChanged, fset = setProjectFilter) + def projectFilter(self) -> str: + """ + The current search filter being applied to the project list. + :return: The current search filter being applied to the project list. + """ + return self._project_filter + + def _applyProjectFilter(self): + """ + Actually apply the current filter to search for projects with the user-defined search string. + :return: + """ + self.projectFilterChanged.emit() + @pyqtProperty(QObject, constant = True) def digitalFactoryProjectModel(self) -> "DigitalFactoryProjectModel": return self._project_model From 02932a1f62dd62f17d405666ae932d0dec78537a Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 12 Jul 2021 18:43:02 +0200 Subject: [PATCH 114/141] Add filter to API call for project list This passes the filter on to the API call and causes the API call, so that we only get the projects that the user searched for. Contributes to issue CURA-8009. --- plugins/DigitalLibrary/src/DigitalFactoryApiClient.py | 11 ++++++++--- .../DigitalLibrary/src/DigitalFactoryController.py | 3 ++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/plugins/DigitalLibrary/src/DigitalFactoryApiClient.py b/plugins/DigitalLibrary/src/DigitalFactoryApiClient.py index e1a62fdd5c..4ebb3cb051 100644 --- a/plugins/DigitalLibrary/src/DigitalFactoryApiClient.py +++ b/plugins/DigitalLibrary/src/DigitalFactoryApiClient.py @@ -95,7 +95,7 @@ class DigitalFactoryApiClient: error_callback = failed, timeout = self.DEFAULT_REQUEST_TIMEOUT) - def getProjectsFirstPage(self, on_finished: Callable[[List[DigitalFactoryProjectResponse]], Any], failed: Callable) -> None: + def getProjectsFirstPage(self, search_filter: str, on_finished: Callable[[List[DigitalFactoryProjectResponse]], Any], failed: Callable) -> None: """ Retrieves digital factory projects for the user that is currently logged in. @@ -103,13 +103,18 @@ class DigitalFactoryApiClient: according to the limit set in the pagination manager. If there is no projects pagination manager, this function leaves the project limit to the default set on the server side (999999). + :param search_filter: Text to filter the search results. If given an empty string, results are not filtered. :param on_finished: The function to be called after the result is parsed. :param failed: The function to be called if the request fails. """ - url = "{}/projects".format(self.CURA_API_ROOT) + url = f"{self.CURA_API_ROOT}/projects" + query_character = "?" if self._projects_pagination_mgr: self._projects_pagination_mgr.reset() # reset to clear all the links and response metadata - url += "?limit={}".format(self._projects_pagination_mgr.limit) + url += f"{query_character}limit={self._projects_pagination_mgr.limit}" + query_character = "&" + if search_filter != "": + url += f"{query_character}search={search_filter}" self._http.get(url, scope = self._scope, diff --git a/plugins/DigitalLibrary/src/DigitalFactoryController.py b/plugins/DigitalLibrary/src/DigitalFactoryController.py index 3d1cc178f8..a5cc2936a3 100644 --- a/plugins/DigitalLibrary/src/DigitalFactoryController.py +++ b/plugins/DigitalLibrary/src/DigitalFactoryController.py @@ -183,7 +183,7 @@ class DigitalFactoryController(QObject): if preselected_project_id: self._api.getProject(preselected_project_id, on_finished = self.setProjectAsPreselected, failed = self._onGetProjectFailed) else: - self._api.getProjectsFirstPage(on_finished = self._onGetProjectsFirstPageFinished, failed = self._onGetProjectsFailed) + self._api.getProjectsFirstPage(search_filter = self._project_filter, on_finished = self._onGetProjectsFirstPageFinished, failed = self._onGetProjectsFailed) def setProjectAsPreselected(self, df_project: DigitalFactoryProjectResponse) -> None: """ @@ -338,6 +338,7 @@ class DigitalFactoryController(QObject): :return: """ self.projectFilterChanged.emit() + self._api.getProjectsFirstPage(search_filter = self._project_filter, on_finished = self._onGetProjectsFirstPageFinished, failed = self._onGetProjectsFailed) @pyqtProperty(QObject, constant = True) def digitalFactoryProjectModel(self) -> "DigitalFactoryProjectModel": From 94e229aa446a291370bcfa06690907d8233a1793 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 12 Jul 2021 18:44:11 +0200 Subject: [PATCH 115/141] Clear list of projects every time we load the first page Otherwise when we refresh the project list after searching it would put the new results at the end. That's not what we want. Contributes to issue CURA-8009. --- plugins/DigitalLibrary/src/DigitalFactoryController.py | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/DigitalLibrary/src/DigitalFactoryController.py b/plugins/DigitalLibrary/src/DigitalFactoryController.py index a5cc2936a3..80f4d37f66 100644 --- a/plugins/DigitalLibrary/src/DigitalFactoryController.py +++ b/plugins/DigitalLibrary/src/DigitalFactoryController.py @@ -211,6 +211,7 @@ class DigitalFactoryController(QObject): :param df_projects: A list of all the Digital Factory Library projects linked to the user's account """ + self.clear() self.setHasMoreProjectsToLoad(self._api.hasMoreProjectsToLoad()) self._project_model.setProjects(df_projects) self.setRetrievingProjectsStatus(RetrievalStatus.Success) From 1269c28d0a14d53a1a2630666b5f9ac8b9241020 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 12 Jul 2021 18:46:54 +0200 Subject: [PATCH 116/141] Reduce wait time before sending query Most people should be able to type 5 characters per second. And those that can't will just have to see it refresh after every stroke. Contributes to issue CURA-8009. --- plugins/DigitalLibrary/src/DigitalFactoryController.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/DigitalLibrary/src/DigitalFactoryController.py b/plugins/DigitalLibrary/src/DigitalFactoryController.py index 80f4d37f66..796937a9d9 100644 --- a/plugins/DigitalLibrary/src/DigitalFactoryController.py +++ b/plugins/DigitalLibrary/src/DigitalFactoryController.py @@ -120,7 +120,7 @@ class DigitalFactoryController(QObject): self._project_creation_error_text = "Something went wrong while creating a new project. Please try again." self._project_filter = "" self._project_filter_change_timer = QTimer() - self._project_filter_change_timer.setInterval(1000) + self._project_filter_change_timer.setInterval(200) self._project_filter_change_timer.setSingleShot(True) self._project_filter_change_timer.timeout.connect(self._applyProjectFilter) From e8fc88e6b02f465faaa59c7475d0bf59215e804b Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 13 Jul 2021 09:45:00 +0200 Subject: [PATCH 117/141] Use f-string formatting instead of % CURA-8018 Co-authored-by: Konstantinos Karmas --- plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py index 3ca150ec87..86927a43d4 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py @@ -262,7 +262,7 @@ class CloudOutputDevice(UltimakerNetworkedPrinterOutputDevice): icon="", description=I18N_CATALOG.i18nc("@action:tooltip", "Track the print in Ultimaker Digital Factory"), button_align=message.ActionButtonAlignment.ALIGN_RIGHT) - df_url = "https://digitalfactory.ultimaker.com/app/jobs/%s?utm_source=cura&utm_medium=software&utm_campaign=monitor-button" % self._cluster.cluster_id + df_url = f"https://digitalfactory.ultimaker.com/app/jobs/{self._cluster.cluster_id}?utm_source=cura&utm_medium=software&utm_campaign=monitor-button" message.pyQtActionTriggered.connect(lambda message, action: (QDesktopServices.openUrl(QUrl(df_url)), message.hide())) message.show() From e31ec31f344d82f5ca8471f4d618c3276a49ef26 Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Tue, 13 Jul 2021 09:59:05 +0200 Subject: [PATCH 118/141] Make the lifetime of the "print job sent" message 30s Previously it was 5s and the message would disappear before the user had a chance to press the "Monitor print" button. CURA-8018 --- .../src/Messages/PrintJobUploadSuccessMessage.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Messages/PrintJobUploadSuccessMessage.py b/plugins/UM3NetworkPrinting/src/Messages/PrintJobUploadSuccessMessage.py index aa64f338dd..aa3d72ccd8 100644 --- a/plugins/UM3NetworkPrinting/src/Messages/PrintJobUploadSuccessMessage.py +++ b/plugins/UM3NetworkPrinting/src/Messages/PrintJobUploadSuccessMessage.py @@ -13,6 +13,5 @@ class PrintJobUploadSuccessMessage(Message): def __init__(self) -> None: super().__init__( text = I18N_CATALOG.i18nc("@info:status", "Print job was successfully sent to the printer."), - title = I18N_CATALOG.i18nc("@info:title", "Data Sent"), - lifetime = 5 + title = I18N_CATALOG.i18nc("@info:title", "Data Sent") ) From 329973adfbea675edd851548b7a6952bcbc42a73 Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Tue, 13 Jul 2021 10:00:27 +0200 Subject: [PATCH 119/141] Capitalize only the first word in the message action CURA-8018 --- plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py index 86927a43d4..9eaa133ef5 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py @@ -258,7 +258,7 @@ class CloudOutputDevice(UltimakerNetworkedPrinterOutputDevice): self._progress.hide() message = PrintJobUploadSuccessMessage() message.addAction("monitor print", - name=I18N_CATALOG.i18nc("@action:button", "Monitor Print"), + name=I18N_CATALOG.i18nc("@action:button", "Monitor print"), icon="", description=I18N_CATALOG.i18nc("@action:tooltip", "Track the print in Ultimaker Digital Factory"), button_align=message.ActionButtonAlignment.ALIGN_RIGHT) From 13ca30ed98c9ab2c2155d2d60465a58dbda92137 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 13 Jul 2021 14:40:04 +0200 Subject: [PATCH 120/141] Stylise search bar This is the standard style for text fields in Cura. The spacing around the search icon is customised with the best approximation I could get using a simple string of placeholderText. Contributes to issue CURA-8009. --- .../resources/qml/SelectProjectPage.qml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/plugins/DigitalLibrary/resources/qml/SelectProjectPage.qml b/plugins/DigitalLibrary/resources/qml/SelectProjectPage.qml index ecec9556c9..08bf8aec7c 100644 --- a/plugins/DigitalLibrary/resources/qml/SelectProjectPage.qml +++ b/plugins/DigitalLibrary/resources/qml/SelectProjectPage.qml @@ -43,13 +43,20 @@ Item } height: childrenRect.height - TextField + Cura.TextField { id: searchBar Layout.fillWidth: true height: createNewProjectButton.height - onTextEdited: manager.projectFilter = text + onTextEdited: manager.projectFilter = text //Update the search filter when editing this text field. + + placeholderText: + { + var image_size = "width=\"" + UM.Theme.getSize("small_button_icon").width + "\" height=\"" + UM.Theme.getSize("small_button_icon").height + "\" "; + var image_source = "src=\"" + UM.Theme.getIcon("Magnifier") + "\""; + return "   Search"; + } } Cura.SecondaryButton From 1566a282dcad5f5405f4e3d5ac6ecdd431513007 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 13 Jul 2021 15:16:09 +0200 Subject: [PATCH 121/141] Replace text and image if there's no projects due to search It's a bit weird if it shows that you didn't add any projects yet if you just type in a gibberish search keyword. Contributes to issue CURA-8009. --- .../resources/images/projects_not_found.svg | 62 +++++++++++++++++++ .../resources/qml/SelectProjectPage.qml | 5 +- 2 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 plugins/DigitalLibrary/resources/images/projects_not_found.svg diff --git a/plugins/DigitalLibrary/resources/images/projects_not_found.svg b/plugins/DigitalLibrary/resources/images/projects_not_found.svg new file mode 100644 index 0000000000..8aee7b797c --- /dev/null +++ b/plugins/DigitalLibrary/resources/images/projects_not_found.svg @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/DigitalLibrary/resources/qml/SelectProjectPage.qml b/plugins/DigitalLibrary/resources/qml/SelectProjectPage.qml index 08bf8aec7c..3f1799b9ae 100644 --- a/plugins/DigitalLibrary/resources/qml/SelectProjectPage.qml +++ b/plugins/DigitalLibrary/resources/qml/SelectProjectPage.qml @@ -93,7 +93,7 @@ Item { id: digitalFactoryImage anchors.horizontalCenter: parent.horizontalCenter - source: "../images/digital_factory.svg" + source: searchBar.text === "" ? "../images/digital_factory.svg" : "../images/projects_not_found.svg" fillMode: Image.PreserveAspectFit width: parent.width - 2 * UM.Theme.getSize("thick_margin").width sourceSize.width: width @@ -104,7 +104,7 @@ Item { id: noLibraryProjectsLabel anchors.horizontalCenter: parent.horizontalCenter - text: "It appears that you don't have any projects in the Library yet." + text: searchBar.text === "" ? "It appears that you don't have any projects in the Library yet." : "No projects found that match the search query." font: UM.Theme.getFont("medium") } @@ -114,6 +114,7 @@ Item anchors.horizontalCenter: parent.horizontalCenter text: "Visit Digital Library" onClicked: Qt.openUrlExternally(CuraApplication.ultimakerDigitalFactoryUrl + "/app/library") + visible: searchBar.text === "" //Show the link to Digital Library when there are no projects in the user's Library. } } } From d4f249277ecfc51630c017fda0d43744f513c195 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 13 Jul 2021 15:20:41 +0200 Subject: [PATCH 122/141] Change icon in simulation view to rectangle CURA-8379 --- plugins/SimulationView/SimulationViewMenuComponent.qml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/SimulationView/SimulationViewMenuComponent.qml b/plugins/SimulationView/SimulationViewMenuComponent.qml index 86e686e0fc..6dde44c8ae 100644 --- a/plugins/SimulationView/SimulationViewMenuComponent.qml +++ b/plugins/SimulationView/SimulationViewMenuComponent.qml @@ -203,16 +203,16 @@ Cura.ExpandableComponent style: UM.Theme.styles.checkbox - - UM.RecolorImage + Rectangle { id: swatch anchors.verticalCenter: parent.verticalCenter anchors.right: extrudersModelCheckBox.right width: UM.Theme.getSize("layerview_legend_size").width height: UM.Theme.getSize("layerview_legend_size").height - source: UM.Theme.getIcon("Extruder", "medium") color: model.color + border.width: UM.Theme.getSize("default_lining").width + border.color: UM.Theme.getColor("lining") } Label From bec83920e46d3f5f82ded82a8c26b4a4fb5b3a4d Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 13 Jul 2021 15:47:21 +0200 Subject: [PATCH 123/141] Keep showing search icon while typing search query This adds an option to the TextField element to show an icon on the left side in the text field. The icon remains visible when the user types in something (it's not part of the placeholder string). Then we use that optional icon for the search bar in the Digital Library. Contributes to issue CURA-8009. --- .../resources/qml/SelectProjectPage.qml | 9 +++----- resources/qml/Widgets/TextField.qml | 21 +++++++++++++++++++ 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/plugins/DigitalLibrary/resources/qml/SelectProjectPage.qml b/plugins/DigitalLibrary/resources/qml/SelectProjectPage.qml index 3f1799b9ae..36e3de3da7 100644 --- a/plugins/DigitalLibrary/resources/qml/SelectProjectPage.qml +++ b/plugins/DigitalLibrary/resources/qml/SelectProjectPage.qml @@ -51,12 +51,8 @@ Item onTextEdited: manager.projectFilter = text //Update the search filter when editing this text field. - placeholderText: - { - var image_size = "width=\"" + UM.Theme.getSize("small_button_icon").width + "\" height=\"" + UM.Theme.getSize("small_button_icon").height + "\" "; - var image_source = "src=\"" + UM.Theme.getIcon("Magnifier") + "\""; - return "   Search"; - } + leftIcon: UM.Theme.getIcon("Magnifier") + placeholderText: "Search" } Cura.SecondaryButton @@ -106,6 +102,7 @@ Item anchors.horizontalCenter: parent.horizontalCenter text: searchBar.text === "" ? "It appears that you don't have any projects in the Library yet." : "No projects found that match the search query." font: UM.Theme.getFont("medium") + color: UM.Theme.getColor("text") } Cura.TertiaryButton diff --git a/resources/qml/Widgets/TextField.qml b/resources/qml/Widgets/TextField.qml index 28074d4415..2643609eaf 100644 --- a/resources/qml/Widgets/TextField.qml +++ b/resources/qml/Widgets/TextField.qml @@ -15,6 +15,8 @@ TextField { id: textField + property alias leftIcon: iconLeft.source + UM.I18nCatalog { id: catalog; name: "cura" } hoverEnabled: true @@ -22,6 +24,7 @@ TextField font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") renderType: Text.NativeRendering + leftPadding: iconLeft.visible ? iconLeft.width + UM.Theme.getSize("default_margin").width * 2 : UM.Theme.getSize("thin_margin") states: [ State @@ -67,5 +70,23 @@ TextField } return UM.Theme.getColor("setting_control_border") } + + //Optional icon added on the left hand side. + UM.RecolorImage + { + id: iconLeft + + anchors + { + verticalCenter: parent.verticalCenter + left: parent.left + leftMargin: UM.Theme.getSize("default_margin").width + } + + visible: source != "" + height: UM.Theme.getSize("small_button_icon").height + width: visible ? height : 0 + color: textField.color + } } } From 7fdf1dbdd4a511f626133547f7cb1eb1441f7e07 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 13 Jul 2021 16:02:29 +0200 Subject: [PATCH 124/141] Fix height of search bar Because this item is in a layout, the height gets overridden. We should use the preferredHeight, or the one it defaults to, implicitHeight. Contributes to issue CURA-8009. --- plugins/DigitalLibrary/resources/qml/SelectProjectPage.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/DigitalLibrary/resources/qml/SelectProjectPage.qml b/plugins/DigitalLibrary/resources/qml/SelectProjectPage.qml index 36e3de3da7..529f28213b 100644 --- a/plugins/DigitalLibrary/resources/qml/SelectProjectPage.qml +++ b/plugins/DigitalLibrary/resources/qml/SelectProjectPage.qml @@ -47,7 +47,7 @@ Item { id: searchBar Layout.fillWidth: true - height: createNewProjectButton.height + implicitHeight: createNewProjectButton.height onTextEdited: manager.projectFilter = text //Update the search filter when editing this text field. From 3d6601a37ecc176a6e26e2727d0e067fc46768dd Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 13 Jul 2021 16:04:01 +0200 Subject: [PATCH 125/141] Fix margins The margin around the icon didn't work if the icon source was none, because it was provided a QSize rather than a real. The margin around the background didn't work at all because the background is automatically adjusted to fill the parent element, so it's best left out. Contributes to issue CURA-8009. --- resources/qml/Widgets/TextField.qml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/resources/qml/Widgets/TextField.qml b/resources/qml/Widgets/TextField.qml index 2643609eaf..c126c8a6e0 100644 --- a/resources/qml/Widgets/TextField.qml +++ b/resources/qml/Widgets/TextField.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2019 Ultimaker B.V. +// Copyright (c) 2021 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.10 @@ -24,7 +24,7 @@ TextField font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") renderType: Text.NativeRendering - leftPadding: iconLeft.visible ? iconLeft.width + UM.Theme.getSize("default_margin").width * 2 : UM.Theme.getSize("thin_margin") + leftPadding: iconLeft.visible ? iconLeft.width + UM.Theme.getSize("default_margin").width * 2 : UM.Theme.getSize("thin_margin").width states: [ State @@ -55,7 +55,6 @@ TextField color: UM.Theme.getColor("main_background") - anchors.margins: Math.round(UM.Theme.getSize("default_lining").width) radius: UM.Theme.getSize("setting_control_radius").width border.color: From eb2a315e4234ff7bc78a50b2064fbf5d6bf1a658 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 13 Jul 2021 16:09:02 +0200 Subject: [PATCH 126/141] Specify spacing between search bar and button Instead of using the default of 5 pixels, we should use this element from the theme to match the margin around the page. Contributes to issue CURA-8009. --- plugins/DigitalLibrary/resources/qml/SelectProjectPage.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/DigitalLibrary/resources/qml/SelectProjectPage.qml b/plugins/DigitalLibrary/resources/qml/SelectProjectPage.qml index 529f28213b..1a3c1723b3 100644 --- a/plugins/DigitalLibrary/resources/qml/SelectProjectPage.qml +++ b/plugins/DigitalLibrary/resources/qml/SelectProjectPage.qml @@ -42,6 +42,7 @@ Item right: parent.right } height: childrenRect.height + spacing: UM.Theme.getSize("default_margin").width Cura.TextField { From 72eb839d079dfb137e09af31cbd234d9ec887010 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 13 Jul 2021 16:18:36 +0200 Subject: [PATCH 127/141] Add missing search filter parameter to refresh query Thank you, automated tests. Contributes to issue CURA-8009. --- plugins/DigitalLibrary/src/DigitalFactoryController.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/DigitalLibrary/src/DigitalFactoryController.py b/plugins/DigitalLibrary/src/DigitalFactoryController.py index 796937a9d9..5f160a4b8f 100644 --- a/plugins/DigitalLibrary/src/DigitalFactoryController.py +++ b/plugins/DigitalLibrary/src/DigitalFactoryController.py @@ -555,7 +555,7 @@ class DigitalFactoryController(QObject): # false, we also need to clean it from the projects model self._project_model.clearProjects() self.setSelectedProjectIndex(-1) - self._api.getProjectsFirstPage(on_finished = self._onGetProjectsFirstPageFinished, failed = self._onGetProjectsFailed) + self._api.getProjectsFirstPage(search_filter = self._project_filter, on_finished = self._onGetProjectsFirstPageFinished, failed = self._onGetProjectsFailed) self.setRetrievingProjectsStatus(RetrievalStatus.InProgress) self._has_preselected_project = new_has_preselected_project self.preselectedProjectChanged.emit() From 7f2e951b9c8ccfdd2f2be2ad6308299cc8ea88bb Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 13 Jul 2021 16:24:21 +0200 Subject: [PATCH 128/141] Update tests to test filter too Contributes to issue CURA-8009. --- .../tests/TestDigitalLibraryApiClient.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/plugins/DigitalLibrary/tests/TestDigitalLibraryApiClient.py b/plugins/DigitalLibrary/tests/TestDigitalLibraryApiClient.py index ba0a0b15b4..9751838ddf 100644 --- a/plugins/DigitalLibrary/tests/TestDigitalLibraryApiClient.py +++ b/plugins/DigitalLibrary/tests/TestDigitalLibraryApiClient.py @@ -1,3 +1,6 @@ +# Copyright (c) 2021 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + from unittest.mock import MagicMock import pytest @@ -37,7 +40,7 @@ def test_getProjectsFirstPage(api_client): failed_callback = MagicMock() # Call - api_client.getProjectsFirstPage(on_finished = finished_callback, failed = failed_callback) + api_client.getProjectsFirstPage(search_filter = "filter", on_finished = finished_callback, failed = failed_callback) # Asserts pagination_manager.reset.assert_called_once() # Should be called since we asked for new set of projects @@ -45,16 +48,16 @@ def test_getProjectsFirstPage(api_client): args = http_manager.get.call_args_list[0] # Ensure that it's called with the right limit - assert args[0][0] == "https://api.ultimaker.com/cura/v1/projects?limit=20" + assert args[0][0] == "https://api.ultimaker.com/cura/v1/projects?limit=20&search=filter" # Change the limit & try again http_manager.get.reset_mock() pagination_manager.limit = 80 - api_client.getProjectsFirstPage(on_finished = finished_callback, failed = failed_callback) + api_client.getProjectsFirstPage(search_filter = "filter", on_finished = finished_callback, failed = failed_callback) args = http_manager.get.call_args_list[0] # Ensure that it's called with the right limit - assert args[0][0] == "https://api.ultimaker.com/cura/v1/projects?limit=80" + assert args[0][0] == "https://api.ultimaker.com/cura/v1/projects?limit=80&search=filter" def test_getMoreProjects_noNewProjects(api_client): From 6560766b1ffc5dd83c6eebf45d7754b77007b925 Mon Sep 17 00:00:00 2001 From: Victor Lin <60565737+v-xup6@users.noreply.github.com> Date: Tue, 13 Jul 2021 22:40:39 +0800 Subject: [PATCH 129/141] Update atom2.def.json Simplify brim width to adjust only the value --- resources/definitions/atom2.def.json | 32 ++-------------------------- 1 file changed, 2 insertions(+), 30 deletions(-) diff --git a/resources/definitions/atom2.def.json b/resources/definitions/atom2.def.json index 8fbbe2c698..d7a26546d8 100644 --- a/resources/definitions/atom2.def.json +++ b/resources/definitions/atom2.def.json @@ -30,34 +30,6 @@ "speed_print": { "default_value": 32 }, "optimize_wall_printing_order": { "value": "True" }, "infill_sparse_density": { "default_value": 10 }, - "brim_width": - { - "label": "Brim Width", - "description": "The distance from the model to the outermost brim line. A larger brim enhances adhesion to the build plate, but also reduces the effective print area.", - "type": "float", - "unit": "mm", - "default_value": 4, - "minimum_value": "0.0", - "maximum_value_warning": "50.0", - "maximum_value": "0.5 * min(machine_width, machine_depth)", - "enabled": "resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('prime_tower_brim_enable')", - "settable_per_mesh": false, - "children": - { - "brim_line_count": - { - "label": "Brim Line Count", - "description": "The number of lines used for a brim. More brim lines enhance adhesion to the build plate, but also reduces the effective print area.", - "type": "int", - "default_value": 10, - "minimum_value": "0", - "maximum_value_warning": "50 / skirt_brim_line_width", - "maximum_value": "0.5 * min(machine_width, machine_depth) / skirt_brim_line_width", - "value": 10, - "enabled": "resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('prime_tower_brim_enable')", - "settable_per_mesh": false - } - } - } + "brim_width": { "default_value": 4 } } -} \ No newline at end of file +} From 8414e8b52372372ea54554fcfc44512257a4f206 Mon Sep 17 00:00:00 2001 From: Victor Lin <60565737+v-xup6@users.noreply.github.com> Date: Tue, 13 Jul 2021 22:42:03 +0800 Subject: [PATCH 130/141] Delete atomPlus.def.json Prototype machine --- resources/definitions/atomPlus.def.json | 34 ------------------------- 1 file changed, 34 deletions(-) delete mode 100644 resources/definitions/atomPlus.def.json diff --git a/resources/definitions/atomPlus.def.json b/resources/definitions/atomPlus.def.json deleted file mode 100644 index 2d053693ff..0000000000 --- a/resources/definitions/atomPlus.def.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "Atom Plus", - "version": 2, - "inherits": "fdmprinter", - "metadata": { - "visible": true, - "author": "Victor (Yu Chieh) Lin", - "manufacturer": "Layer One", - "file_formats": "text/x-gcode", - "platform_offset": [0,0,0], - "machine_extruder_trains": { "0": "atomPlus_extruder_0" - } - }, - - "overrides": { - "machine_name": { "default_value": "Atom Plus" }, - "machine_shape": { "default_value": "elliptic" }, - "machine_width": { "default_value": 420 }, - "machine_depth": { "default_value": 420 }, - "machine_height": { "default_value": 910 }, - "machine_extruder_count": { "default_value": 1 }, - "machine_heated_bed": { "default_value": false }, - "machine_center_is_zero": { "default_value": true }, - - "machine_start_gcode": { "default_value": "G21\nG90 \nM107\nG28\nG92 E0\nG1 F200 E3\nG92 E0" }, - "machine_end_gcode": { "default_value": "M104 S0\nG28\nG91\nG1 E-6 F300\nM84\nG90" }, - - "layer_height": { "default_value": 0.4 }, - "default_material_print_temperature": { "default_value": 220 }, - "speed_print": { "default_value": 32 }, - "optimize_wall_printing_order": { "value": "True" }, - "infill_sparse_density": { "default_value": 10 } - } -} \ No newline at end of file From 52b022c575bfb6205b5094866da6a8046d0e9056 Mon Sep 17 00:00:00 2001 From: Victor Lin <60565737+v-xup6@users.noreply.github.com> Date: Tue, 13 Jul 2021 22:42:12 +0800 Subject: [PATCH 131/141] Delete atomPlus_extruder_0.def.json Prototype machine --- resources/extruders/atomPlus_extruder_0.def.json | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100644 resources/extruders/atomPlus_extruder_0.def.json diff --git a/resources/extruders/atomPlus_extruder_0.def.json b/resources/extruders/atomPlus_extruder_0.def.json deleted file mode 100644 index 19ab13cf79..0000000000 --- a/resources/extruders/atomPlus_extruder_0.def.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "version": 2, - "name": "Extruder 1", - "inherits": "fdmextruder", - "metadata": { - "machine": "atomPlus", - "position": "0" - }, - - "overrides": { - "extruder_nr": { "default_value": 0 }, - "machine_nozzle_size": { "default_value": 1 }, - "material_diameter": { "default_value": 1.75 } - } -} From 888f62a9ea39eefc705d658bfc2da6f1b8d5936b Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 13 Jul 2021 16:55:28 +0200 Subject: [PATCH 132/141] Add missing typing CURA-8009 --- plugins/DigitalLibrary/src/DigitalFactoryController.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/DigitalLibrary/src/DigitalFactoryController.py b/plugins/DigitalLibrary/src/DigitalFactoryController.py index 5f160a4b8f..9c412a9747 100644 --- a/plugins/DigitalLibrary/src/DigitalFactoryController.py +++ b/plugins/DigitalLibrary/src/DigitalFactoryController.py @@ -310,7 +310,7 @@ class DigitalFactoryController(QObject): self._selected_file_indices = file_indices self.selectedFileIndicesChanged.emit(file_indices) - def setProjectFilter(self, new_filter) -> None: + def setProjectFilter(self, new_filter: str) -> None: """ Called when the user wants to change the search filter for projects. @@ -333,7 +333,7 @@ class DigitalFactoryController(QObject): """ return self._project_filter - def _applyProjectFilter(self): + def _applyProjectFilter(self) -> None: """ Actually apply the current filter to search for projects with the user-defined search string. :return: From fd322c051258c089b41c83d5d86b2b2a6eec1913 Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Wed, 14 Jul 2021 15:32:57 +0200 Subject: [PATCH 133/141] Fix having no "load more projects" available when using the search When the `_onGetProjectsFirstPageFinished` is reached, the pagination manager already contains the correct pagination metadata and links, so calling `clear()` there resets them giving the impression that there is no next page. This commit fixed that by calling the `clear()` function should when the search filter is applied, instead. CURA-8009 --- plugins/DigitalLibrary/src/DigitalFactoryController.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/DigitalLibrary/src/DigitalFactoryController.py b/plugins/DigitalLibrary/src/DigitalFactoryController.py index 9c412a9747..0821cc6925 100644 --- a/plugins/DigitalLibrary/src/DigitalFactoryController.py +++ b/plugins/DigitalLibrary/src/DigitalFactoryController.py @@ -211,7 +211,6 @@ class DigitalFactoryController(QObject): :param df_projects: A list of all the Digital Factory Library projects linked to the user's account """ - self.clear() self.setHasMoreProjectsToLoad(self._api.hasMoreProjectsToLoad()) self._project_model.setProjects(df_projects) self.setRetrievingProjectsStatus(RetrievalStatus.Success) @@ -338,6 +337,7 @@ class DigitalFactoryController(QObject): Actually apply the current filter to search for projects with the user-defined search string. :return: """ + self.clear() self.projectFilterChanged.emit() self._api.getProjectsFirstPage(search_filter = self._project_filter, on_finished = self._onGetProjectsFirstPageFinished, failed = self._onGetProjectsFailed) From e9ecba13746482d0d1e183a641f9577a1a63085a Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 14 Jul 2021 16:03:06 +0200 Subject: [PATCH 134/141] Remove bindingloop in project selector --- plugins/DigitalLibrary/resources/qml/SelectProjectPage.qml | 2 -- 1 file changed, 2 deletions(-) diff --git a/plugins/DigitalLibrary/resources/qml/SelectProjectPage.qml b/plugins/DigitalLibrary/resources/qml/SelectProjectPage.qml index 1a3c1723b3..d184264cde 100644 --- a/plugins/DigitalLibrary/resources/qml/SelectProjectPage.qml +++ b/plugins/DigitalLibrary/resources/qml/SelectProjectPage.qml @@ -93,8 +93,6 @@ Item source: searchBar.text === "" ? "../images/digital_factory.svg" : "../images/projects_not_found.svg" fillMode: Image.PreserveAspectFit width: parent.width - 2 * UM.Theme.getSize("thick_margin").width - sourceSize.width: width - sourceSize.height: height } Label From 399b378ba65499b04ccf25916f4b6d8d1dc23b38 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 14 Jul 2021 16:58:05 +0200 Subject: [PATCH 135/141] Show message when slicing failed with nonzero exit code The slicing engine should never crash. If it does though, it's best to show something to the user. Otherwise the slicing process just halts and the user will wait a long time for it to never finish. Contributes to issue CURA-6568. --- .../CuraEngineBackend/CuraEngineBackend.py | 28 +++++++++++++++++-- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 1aa6c86dcb..4c0ed55bfe 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -4,12 +4,12 @@ import argparse #To run the engine in debug mode if the front-end is in debug mode. from collections import defaultdict import os -from PyQt5.QtCore import QObject, QTimer, pyqtSlot +from PyQt5.QtCore import QObject, QTimer, QUrl, pyqtSlot import sys from time import time from typing import Any, cast, Dict, List, Optional, Set, TYPE_CHECKING -from PyQt5.QtGui import QImage +from PyQt5.QtGui import QDesktopServices, QImage from UM.Backend.Backend import Backend, BackendState from UM.Scene.SceneNode import SceneNode @@ -922,9 +922,31 @@ class CuraEngineBackend(QObject, Backend): if not self._restart: if self._process: # type: ignore - Logger.log("d", "Backend quit with return code %s. Resetting process and socket.", self._process.wait()) # type: ignore + return_code = self._process.wait() + if return_code != 0: + Logger.log("e", f"Backend exited abnormally with return code {return_code}!") + message = Message( + text = catalog.i18nc("@message", "Slicing failed with an unexpected error. Please consider reporting a bug on our issue tracker."), + title = catalog.i18nc("@message:title", "Slicing failed") + ) + message.addAction( + action_id = "report_bug", + name = catalog.i18nc("@message:button", "Report a bug"), + description = catalog.i18nc("@message:description", "Report a bug on Ultimaker Cura's issue tracker."), + icon = "[no_icon]" + ) + message.actionTriggered.connect(self._reportBackendError) + message.show() + else: + Logger.log("d", "Backend finished slicing. Resetting process and socket.") self._process = None # type: ignore + def _reportBackendError(self, _message_id: str, _action_id: str) -> None: + """ + Triggered when the user wants to report an error in the back-end. + """ + QDesktopServices.openUrl(QUrl("https://github.com/Ultimaker/Cura/issues/new/choose")) + def _onGlobalStackChanged(self) -> None: """Called when the global container stack changes""" From 26487c5b3147923edddde41e8b052793ffd3eda5 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 14 Jul 2021 17:02:55 +0200 Subject: [PATCH 136/141] Stop slicing if an error occurred If the user has auto-slicing enabled, this causes the indeterminate progress bar to appear. If the user doesn't have auto-slicing enabled, this causes the slice button to reappear. Both of these indicate that something has caused slicing to be interrupted. The message should make clear why. Contributes to issue CURA-6568. --- plugins/CuraEngineBackend/CuraEngineBackend.py | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 4c0ed55bfe..ed4141c99a 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -937,6 +937,7 @@ class CuraEngineBackend(QObject, Backend): ) message.actionTriggered.connect(self._reportBackendError) message.show() + self.stopSlicing() else: Logger.log("d", "Backend finished slicing. Resetting process and socket.") self._process = None # type: ignore From e127f7e4b610903a8b98f4341314e91c3253e076 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 15 Jul 2021 16:45:50 +0200 Subject: [PATCH 137/141] Move construction of slicing error message to constructor This way we could re-use it in other places. Contributes to issue CURA-6568. --- .../CuraEngineBackend/CuraEngineBackend.py | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index ed4141c99a..d49baf189e 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -157,6 +157,18 @@ class CuraEngineBackend(QObject, Backend): self.determineAutoSlicing() application.getPreferences().preferenceChanged.connect(self._onPreferencesChanged) + self._slicing_error_message = Message( + text = catalog.i18nc("@message", "Slicing failed with an unexpected error. Please consider reporting a bug on our issue tracker."), + title = catalog.i18nc("@message:title", "Slicing failed") + ) + self._slicing_error_message.addAction( + action_id = "report_bug", + name = catalog.i18nc("@message:button", "Report a bug"), + description = catalog.i18nc("@message:description", "Report a bug on Ultimaker Cura's issue tracker."), + icon = "[no_icon]" + ) + self._slicing_error_message.actionTriggered.connect(self._reportBackendError) + self._snapshot = None #type: Optional[QImage] application.initializationFinished.connect(self.initialize) @@ -925,18 +937,7 @@ class CuraEngineBackend(QObject, Backend): return_code = self._process.wait() if return_code != 0: Logger.log("e", f"Backend exited abnormally with return code {return_code}!") - message = Message( - text = catalog.i18nc("@message", "Slicing failed with an unexpected error. Please consider reporting a bug on our issue tracker."), - title = catalog.i18nc("@message:title", "Slicing failed") - ) - message.addAction( - action_id = "report_bug", - name = catalog.i18nc("@message:button", "Report a bug"), - description = catalog.i18nc("@message:description", "Report a bug on Ultimaker Cura's issue tracker."), - icon = "[no_icon]" - ) - message.actionTriggered.connect(self._reportBackendError) - message.show() + self._slicing_error_message.show() self.stopSlicing() else: Logger.log("d", "Backend finished slicing. Resetting process and socket.") From 623b59d0e85190b0477c16f47295dfb44f81a879 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 15 Jul 2021 16:48:39 +0200 Subject: [PATCH 138/141] Set self to be in an error state if backend crashed Contributes to issue CURA-6568. --- plugins/CuraEngineBackend/CuraEngineBackend.py | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index d49baf189e..fa9a8c5474 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -938,6 +938,7 @@ class CuraEngineBackend(QObject, Backend): if return_code != 0: Logger.log("e", f"Backend exited abnormally with return code {return_code}!") self._slicing_error_message.show() + self.setState(BackendState.Error) self.stopSlicing() else: Logger.log("d", "Backend finished slicing. Resetting process and socket.") From 40fe8b577d004d1357235e931ee7344b013d96ad Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 15 Jul 2021 17:01:07 +0200 Subject: [PATCH 139/141] Also show error message if connection got reset without error code When working with --external-backend, the engine just stops responding, and the operating system cleans up its socket connection. From Cura's front-end we then just see the socket reset. So we should interpret a reset socket to mean that the slicing process was halted. When not working with an external backend, a crash would always give a response code and we can base it on that instead (as previously implemented). Contributes to issue CURA-6568. --- plugins/CuraEngineBackend/CuraEngineBackend.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index fa9a8c5474..272ad3a7e9 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -610,10 +610,15 @@ class CuraEngineBackend(QObject, Backend): if error.getErrorCode() not in [Arcus.ErrorCode.BindFailedError, Arcus.ErrorCode.ConnectionResetError, Arcus.ErrorCode.Debug]: Logger.log("w", "A socket error caused the connection to be reset") + elif error.getErrorCode() == Arcus.ErrorCode.ConnectionResetError: + Logger.error("CuraEngine crashed abnormally! The socket connection was reset unexpectedly.") + self._slicing_error_message.show() + self.setState(BackendState.Error) + self.stopSlicing() # _terminate()' function sets the job status to 'cancel', after reconnecting to another Port the job status # needs to be updated. Otherwise backendState is "Unable To Slice" - if error.getErrorCode() == Arcus.ErrorCode.BindFailedError and self._start_slice_job is not None: + elif error.getErrorCode() == Arcus.ErrorCode.BindFailedError and self._start_slice_job is not None: self._start_slice_job.setIsCancelled(False) # Check if there's any slicable object in the scene. From 5503c576312454eff1b7427c9444fc032235e31f Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 15 Jul 2021 18:24:25 +0200 Subject: [PATCH 140/141] Reduce margins around troubleshooting link This makes the link space out better on some screens, where the space is limited. Contributes to issue CURA-8392. --- .../qml/WelcomePages/AddNetworkPrinterScrollView.qml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/qml/WelcomePages/AddNetworkPrinterScrollView.qml b/resources/qml/WelcomePages/AddNetworkPrinterScrollView.qml index 5334a15974..58cadbec37 100644 --- a/resources/qml/WelcomePages/AddNetworkPrinterScrollView.qml +++ b/resources/qml/WelcomePages/AddNetworkPrinterScrollView.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2019 Ultimaker B.V. +// Copyright (c) 2021 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.10 @@ -214,16 +214,16 @@ Item id: troubleshootingButton anchors.right: parent.right - anchors.rightMargin: UM.Theme.getSize("default_margin").width + anchors.rightMargin: UM.Theme.getSize("thin_margin").width anchors.verticalCenter: parent.verticalCenter height: troubleshootingLinkIcon.height - width: troubleshootingLinkIcon.width + troubleshootingLabel.width + UM.Theme.getSize("default_margin").width + width: troubleshootingLinkIcon.width + troubleshootingLabel.width + UM.Theme.getSize("thin_margin").width UM.RecolorImage { id: troubleshootingLinkIcon anchors.right: troubleshootingLabel.left - anchors.rightMargin: UM.Theme.getSize("default_margin").width + anchors.rightMargin: UM.Theme.getSize("thin_margin").width anchors.verticalCenter: parent.verticalCenter height: troubleshootingLabel.height width: height From 6f6d8d0f93927a202d81100cc203364f0aa01314 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 15 Jul 2021 18:46:20 +0200 Subject: [PATCH 141/141] Override all settings that might influence infill mesh shells to 0 If the user had specialised settings fixing the number of walls or skin layers to an integer number, this fixed value would get copied over from the extruder settings, causing infill meshes to have walls by default. This is unintuitive. We want infill meshes to behave like it's only infill by default. So remove all of those overrides so that only infill gets printed there, by default. The user may still change the number of walls or skin layers or their parent settings. But by default it should now behave like infill within infill, regardless of the user's setting overrides. Fixes issue CURA-8393 and fixes #9815. --- .../PerObjectSettingsTool.py | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingsTool.py b/plugins/PerObjectSettingsTool/PerObjectSettingsTool.py index ab2bcaad5b..e80acc8d94 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingsTool.py +++ b/plugins/PerObjectSettingsTool/PerObjectSettingsTool.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020 Ultimaker B.V. +# Copyright (c) 2021 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. from UM.Logger import Logger @@ -103,20 +103,27 @@ class PerObjectSettingsTool(Tool): new_instance.resetState() # Ensure that the state is not seen as a user state. settings.addInstance(new_instance) - for property_key in ["top_bottom_thickness", "wall_thickness", "wall_line_count"]: + # Override some settings to ensure that the infill mesh by default adds no skin or walls. Or remove them if not an infill mesh. + specialized_settings = { + "top_bottom_thickness": 0, + "top_thickness": "=top_bottom_thickness", + "bottom_thickness": "=top_bottom_thickness", + "top_layers": "=0 if infill_sparse_density == 100 else math.ceil(round(top_thickness / resolveOrValue('layer_height'), 4))", + "bottom_layers": "=0 if infill_sparse_density == 100 else math.ceil(round(bottom_thickness / resolveOrValue('layer_height'), 4))", + "wall_thickness": 0, + "wall_line_count": "=max(1, round((wall_thickness - wall_line_width_0) / wall_line_width_x) + 1) if wall_thickness != 0 else 0" + } + for property_key in specialized_settings: if mesh_type == "infill_mesh": if settings.getInstance(property_key) is None: definition = stack.getSettingDefinition(property_key) new_instance = SettingInstance(definition, settings) - # We just want the wall_line count to be there in case it was overriden in the global stack. - # as such, we don't need to set a value. - if property_key != "wall_line_count": - new_instance.setProperty("value", 0) + new_instance.setProperty("value", specialized_settings[property_key]) new_instance.resetState() # Ensure that the state is not seen as a user state. settings.addInstance(new_instance) settings_visibility_changed = True - elif old_mesh_type == "infill_mesh" and settings.getInstance(property_key) and (settings.getProperty(property_key, "value") == 0 or property_key == "wall_line_count"): + elif old_mesh_type == "infill_mesh" and settings.getInstance(property_key) and property_key in specialized_settings: settings.removeInstance(property_key) settings_visibility_changed = True