From f32eb564de4e07789984b9c6f764b835759be3c3 Mon Sep 17 00:00:00 2001 From: Gregor Riepl Date: Mon, 19 Jun 2017 08:50:54 +0200 Subject: [PATCH 01/72] Remove debian/ from gitignore --- .gitignore | 3 --- 1 file changed, 3 deletions(-) diff --git a/.gitignore b/.gitignore index 1db07180c0..3ee62405a2 100644 --- a/.gitignore +++ b/.gitignore @@ -30,9 +30,6 @@ cura.desktop .pydevproject .settings -# Debian packaging -debian* - #Externally located plug-ins. plugins/Doodle3D-cura-plugin plugins/GodMode From 07dc19c2999a9f21d36caf11bd743244f85461a6 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 19 Jun 2017 13:24:01 +0200 Subject: [PATCH 02/72] Add a dark theme Based on the work by @rudowinger --- resources/themes/cura-dark/theme.json | 186 ++++++++++++++++++++++++++ 1 file changed, 186 insertions(+) create mode 100644 resources/themes/cura-dark/theme.json diff --git a/resources/themes/cura-dark/theme.json b/resources/themes/cura-dark/theme.json new file mode 100644 index 0000000000..e561578ae1 --- /dev/null +++ b/resources/themes/cura-dark/theme.json @@ -0,0 +1,186 @@ +{ + "metadata": { + "name": "Dark", + "inherits": "cura" + }, + "colors": { + "sidebar": [83, 83, 83, 255], + "lining": [127, 127, 127, 255], + "viewport_overlay": [66, 66, 66, 255], + + "primary": [12, 169, 227, 255], + "primary_hover": [48, 182, 231, 255], + "primary_text": [83, 83, 83, 255], + "border": [127, 127, 127, 255], + "secondary": [66, 66, 66, 255], + + "text": [255, 255, 255, 255], + "text_detail": [174, 174, 174, 128], + "text_link": [12, 169, 227, 255], + "text_inactive": [174, 174, 174, 255], + "text_hover": [70, 84, 113, 255], + "text_pressed": [12, 169, 227, 255], + "text_reversed": [255, 255, 255, 255], + "text_subtext": [255, 255, 255, 255], + + "error": [255, 140, 0, 255], + + "sidebar_header_bar": [66, 66, 66, 255], + "sidebar_header_active": [83, 83, 83, 255], + "sidebar_header_hover": [83, 83, 83, 255], + "sidebar_header_highlight": [83, 83, 83, 255], + "sidebar_header_highlight_hover": [66, 66, 66, 255], + "sidebar_lining": [66, 66, 66, 255], + + "button": [83, 83, 83, 255], + "button_hover": [83, 83, 83, 255], + "button_active": [32, 166, 219, 255], + "button_active_hover": [12, 169, 227, 255], + "button_text": [255, 255, 255, 255], + "button_disabled": [255, 255, 255, 255], + "button_disabled_text": [70, 84, 113, 255], + + "button_tooltip": [83, 83, 83, 255], + "button_tooltip_border": [255, 255, 255, 255], + "button_tooltip_text": [255, 255, 255, 255], + + "toggle_checked": [255, 255, 255, 255], + "toggle_checked_border": [255, 255, 255, 255], + "toggle_checked_text": [83, 83, 83, 255], + "toggle_unchecked": [83, 83, 83, 255], + "toggle_unchecked_border": [127, 127, 127, 255], + "toggle_unchecked_text": [255, 255, 255, 255], + "toggle_hovered": [83, 83, 83, 255], + "toggle_hovered_border": [32, 166, 219, 255], + "toggle_hovered_text": [255, 255, 255, 255], + "toggle_active": [32, 166, 219, 255], + "toggle_active_border": [32, 166, 219, 255], + "toggle_active_text": [255, 255, 255, 255], + + "tab_checked": [83, 83, 83, 255], + "tab_checked_border": [83, 83, 83, 255], + "tab_checked_text": [255, 255, 255, 255], + "tab_unchecked": [66, 66, 66, 255], + "tab_unchecked_border": [66, 66, 66, 255], + "tab_unchecked_text": [127, 127, 127, 255], + "tab_hovered": [66, 66, 66, 255], + "tab_hovered_border": [66, 66, 66, 255], + "tab_hovered_text": [32, 166, 219, 255], + "tab_active": [83, 83, 83, 255], + "tab_active_border": [83, 83, 83, 255], + "tab_active_text": [255, 255, 255, 255], + "tab_background": [66, 66, 66, 255], + + "action_button": [83, 83, 83, 255], + "action_button_text": [255, 255, 255, 255], + "action_button_border": [127, 127, 127, 255], + "action_button_hovered": [83, 83, 83, 255], + "action_button_hovered_text": [255, 255, 255, 255], + "action_button_hovered_border": [12, 169, 227, 255], + "action_button_active": [12, 169, 227, 255], + "action_button_active_text": [83, 83, 83, 255], + "action_button_active_border": [12, 169, 227, 255], + "action_button_disabled": [66, 66, 66, 255], + "action_button_disabled_text": [127, 127, 127, 255], + "action_button_disabled_border": [66, 66, 66, 255], + + "scrollbar_background": [83, 83, 83, 255], + "scrollbar_handle": [255, 255, 255, 255], + "scrollbar_handle_hover": [12, 159, 227, 255], + "scrollbar_handle_down": [12, 159, 227, 255], + + "setting_category": [66, 66, 66, 255], + "setting_category_disabled": [83, 83, 83, 255], + "setting_category_hover": [66, 66, 66, 255], + "setting_category_active": [66, 66, 66, 255], + "setting_category_active_hover": [66, 66, 66, 255], + "setting_category_text": [255, 255, 255, 255], + "setting_category_border": [66, 66, 66, 255], + "setting_category_disabled_border": [66, 66, 66, 255], + "setting_category_hover_border": [12, 159, 227, 255], + "setting_category_active_border": [66, 66, 66, 255], + "setting_category_active_hover_border": [12, 159, 227, 255], + + "setting_control": [83, 83, 83, 255], + "setting_control_selected": [12, 159, 227, 255], + "setting_control_highlight": [83, 83, 83, 0], + "setting_control_border": [127, 127, 127, 255], + "setting_control_border_highlight": [12, 169, 227, 255], + "setting_control_text": [255, 255, 255, 255], + "setting_control_depth_line": [127, 127, 127, 255], + "setting_control_button": [127, 127, 127, 255], + "setting_control_button_hover": [70, 84, 113, 255], + "setting_control_disabled": [66, 66, 66, 255], + "setting_control_disabled_text": [127, 127, 127, 255], + "setting_control_disabled_border": [127, 127, 127, 255], + "setting_unit": [127, 127, 127, 255], + "setting_validation_error": [255, 57, 14, 255], + "setting_validation_warning": [255, 186, 15, 255], + "setting_validation_ok": [83, 83, 83, 255], + + "progressbar_background": [66, 66, 66, 255], + "progressbar_control": [255, 255, 255, 255], + + "slider_groove": [66, 66, 66, 255], + "slider_groove_border": [127, 127, 127, 255], + "slider_groove_fill": [127, 127, 127, 255], + "slider_handle": [32, 166, 219, 255], + "slider_handle_hover": [77, 182, 226, 255], + "slider_text_background": [83, 83, 83, 255], + + "checkbox": [83, 83, 83, 255], + "checkbox_hover": [83, 83, 83, 255], + "checkbox_border": [127, 127, 127, 255], + "checkbox_border_hover": [12, 169, 227, 255], + "checkbox_mark": [255, 255, 255, 255], + "checkbox_text": [255, 255, 255, 255], + + "mode_switch": [83, 83, 83, 255], + "mode_switch_hover": [83, 83, 83, 255], + "mode_switch_border": [127, 127, 127, 255], + "mode_switch_border_hover": [12, 169, 227, 255], + "mode_switch_handle": [255, 255, 255, 255], + "mode_switch_text": [255, 255, 255, 255], + "mode_switch_text_hover": [255, 255, 255, 255], + "mode_switch_text_checked": [12, 169, 227, 255], + + "tooltip": [12, 169, 227, 255], + "tooltip_text": [255, 255, 255, 255], + + "message_background": [255, 255, 255, 255], + "message_text": [83, 83, 83, 255], + "message_border": [255, 255, 255, 255], + "message_button": [83, 83, 83, 255], + "message_button_hover": [12, 169, 227, 255], + "message_button_active": [32, 166, 219, 255], + "message_button_text": [255, 255, 255, 255], + "message_button_text_hover": [83, 83, 83, 255], + "message_button_text_active": [83, 83, 83, 255], + "message_progressbar_background": [83, 83, 83, 255], + "message_progressbar_control": [12, 169, 227, 255], + + "tool_panel_background": [83, 83, 83, 255], + + "status_offline": [0, 0, 0, 255], + "status_ready": [0, 205, 0, 255], + "status_busy": [12, 169, 227, 255], + "status_paused": [255, 140, 0, 255], + "status_stopped": [236, 82, 80, 255], + "status_unknown": [127, 127, 127, 255], + + "disabled_axis": [127, 127, 127, 255], + "x_axis": [255, 0, 0, 255], + "y_axis": [0, 0, 255, 255], + "z_axis": [0, 255, 0, 255], + "all_axis": [83, 83, 83, 255], + + "viewport_background": [66, 66, 66, 255], + "volume_outline": [12, 169, 227, 255], + "buildplate": [244, 244, 244, 255], + "buildplate_alt": [204, 204, 204, 255], + + "convex_hull": [35, 35, 35, 127], + "disallowed_area": [0, 0, 0, 40], + "error_area": [255, 0, 0, 127] + } +} From 73e951d4023c8d7d9fe86ef73cd807a706f1f1cd Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 19 Jun 2017 15:48:04 +0200 Subject: [PATCH 03/72] Darken buildplate --- 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 e561578ae1..559671dfeb 100644 --- a/resources/themes/cura-dark/theme.json +++ b/resources/themes/cura-dark/theme.json @@ -176,7 +176,7 @@ "viewport_background": [66, 66, 66, 255], "volume_outline": [12, 169, 227, 255], - "buildplate": [244, 244, 244, 255], + "buildplate": [169, 169, 169, 255], "buildplate_alt": [204, 204, 204, 255], "convex_hull": [35, 35, 35, 127], From 7fe5c2ad07d571e03ef31b5ba695584405e22a5a Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Wed, 21 Jun 2017 14:47:57 +0200 Subject: [PATCH 04/72] Fix code style CURA-3663 --- cura/BuildVolume.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/cura/BuildVolume.py b/cura/BuildVolume.py index 290b8ee2de..ff5888b722 100755 --- a/cura/BuildVolume.py +++ b/cura/BuildVolume.py @@ -104,7 +104,6 @@ class BuildVolume(SceneNode): # but it does not update the disallowed areas after material change Application.getInstance().getMachineManager().activeStackChanged.connect(self._onStackChanged) - def _onSceneChanged(self, source): if self._global_container_stack: self._change_timer.start() @@ -637,7 +636,7 @@ class BuildVolume(SceneNode): result[extruder.getId()] = [] #Currently, the only normally printed object is the prime tower. - if ExtruderManager.getInstance().getResolveOrValue("prime_tower_enable") == True: + if ExtruderManager.getInstance().getResolveOrValue("prime_tower_enable"): prime_tower_size = self._global_container_stack.getProperty("prime_tower_size", "value") machine_width = self._global_container_stack.getProperty("machine_width", "value") machine_depth = self._global_container_stack.getProperty("machine_depth", "value") From 6be76ec80669e86e74aaca5da4f579173dc9f572 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Wed, 21 Jun 2017 11:47:48 +0200 Subject: [PATCH 05/72] Fix code style CURA-3872 --- plugins/CuraEngineBackend/StartSliceJob.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index b262080872..4588982bf2 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -215,7 +215,7 @@ class StartSliceJob(Job): for key in stack.getAllKeys(): # Do not send settings that are not settable_per_extruder. - if stack.getProperty(key, "settable_per_extruder") == False: + if not stack.getProperty(key, "settable_per_extruder"): continue setting = message.getMessage("settings").addRepeatedMessage("settings") setting.name = key From 46b6e5b0a11f41eed63c5fe8922c6fbb78169de0 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Wed, 21 Jun 2017 11:48:51 +0200 Subject: [PATCH 06/72] Add machine_nozzle_type and set them in UM3 and UM3XL variants CURA-3872 We add a new setting "machine_nozzle_type" to give the engine information about the nozzle type, such as "AA" and "BB". This is applicable to UM3 and UM3XL. --- resources/definitions/fdmextruder.def.json | 9 +++++++++ resources/definitions/fdmprinter.def.json | 9 +++++++++ resources/variants/ultimaker3_aa0.8.inst.cfg | 1 + resources/variants/ultimaker3_aa04.inst.cfg | 1 + resources/variants/ultimaker3_bb0.8.inst.cfg | 1 + resources/variants/ultimaker3_bb04.inst.cfg | 1 + resources/variants/ultimaker3_extended_aa0.8.inst.cfg | 1 + resources/variants/ultimaker3_extended_aa04.inst.cfg | 1 + resources/variants/ultimaker3_extended_bb0.8.inst.cfg | 1 + resources/variants/ultimaker3_extended_bb04.inst.cfg | 1 + 10 files changed, 26 insertions(+) diff --git a/resources/definitions/fdmextruder.def.json b/resources/definitions/fdmextruder.def.json index be006dfe59..4ee1ff515a 100644 --- a/resources/definitions/fdmextruder.def.json +++ b/resources/definitions/fdmextruder.def.json @@ -30,6 +30,15 @@ "settable_per_meshgroup": false, "settable_globally": false }, + "machine_nozzle_type": + { + "label": "Nozzle Type", + "description": "The nozzle type for an extruder train, such as \"AA\" and \"BB\".", + "type": "str", + "default_value": "unknown", + "settable_per_mesh": false, + "settable_per_extruder": true + }, "machine_nozzle_size": { "label": "Nozzle Diameter", diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 46505b8152..fd526e6378 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -407,6 +407,15 @@ "settable_per_extruder": false, "settable_per_meshgroup": false }, + "machine_nozzle_type": + { + "label": "Nozzle Type", + "description": "The nozzle type for an extruder train, such as \"AA\" and \"BB\".", + "type": "str", + "default_value": "unknown", + "settable_per_mesh": false, + "settable_per_extruder": true + }, "machine_nozzle_size": { "label": "Nozzle Diameter", diff --git a/resources/variants/ultimaker3_aa0.8.inst.cfg b/resources/variants/ultimaker3_aa0.8.inst.cfg index e94177abc3..7ce43a0a1a 100644 --- a/resources/variants/ultimaker3_aa0.8.inst.cfg +++ b/resources/variants/ultimaker3_aa0.8.inst.cfg @@ -31,6 +31,7 @@ line_width = =machine_nozzle_size machine_min_cool_heat_time_window = 15 machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 +machine_nozzle_type = AA machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 material_final_print_temperature = =material_print_temperature - 10 diff --git a/resources/variants/ultimaker3_aa04.inst.cfg b/resources/variants/ultimaker3_aa04.inst.cfg index 4cf31caef0..16f7bf2317 100644 --- a/resources/variants/ultimaker3_aa04.inst.cfg +++ b/resources/variants/ultimaker3_aa04.inst.cfg @@ -11,6 +11,7 @@ setting_version = 1 [values] brim_width = 7 machine_nozzle_cool_down_speed = 0.9 +machine_nozzle_type = AA raft_acceleration = =acceleration_print raft_airgap = 0.3 raft_base_thickness = =resolveOrValue('layer_height_0') * 1.2 diff --git a/resources/variants/ultimaker3_bb0.8.inst.cfg b/resources/variants/ultimaker3_bb0.8.inst.cfg index aa2042b271..ac451866c2 100644 --- a/resources/variants/ultimaker3_bb0.8.inst.cfg +++ b/resources/variants/ultimaker3_bb0.8.inst.cfg @@ -29,6 +29,7 @@ jerk_support_bottom = =math.ceil(jerk_support_interface * 1 / 10) layer_height = 0.2 machine_min_cool_heat_time_window = 15 machine_nozzle_heat_up_speed = 1.5 +machine_nozzle_type = BB machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 material_print_temperature = =default_material_print_temperature + 10 diff --git a/resources/variants/ultimaker3_bb04.inst.cfg b/resources/variants/ultimaker3_bb04.inst.cfg index f379a8d1e2..cb30142de7 100644 --- a/resources/variants/ultimaker3_bb04.inst.cfg +++ b/resources/variants/ultimaker3_bb04.inst.cfg @@ -17,6 +17,7 @@ jerk_support = =math.ceil(jerk_print * 15 / 25) jerk_support_interface = =math.ceil(jerk_support * 10 / 15) jerk_support_bottom = =math.ceil(jerk_support_interface * 1 / 10) machine_nozzle_heat_up_speed = 1.5 +machine_nozzle_type = BB material_print_temperature = 215 raft_base_speed = 20 raft_interface_speed = 20 diff --git a/resources/variants/ultimaker3_extended_aa0.8.inst.cfg b/resources/variants/ultimaker3_extended_aa0.8.inst.cfg index 47b0359df7..e2f5d50c0c 100644 --- a/resources/variants/ultimaker3_extended_aa0.8.inst.cfg +++ b/resources/variants/ultimaker3_extended_aa0.8.inst.cfg @@ -31,6 +31,7 @@ line_width = =machine_nozzle_size machine_min_cool_heat_time_window = 15 machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 +machine_nozzle_type = AA machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 material_final_print_temperature = =material_print_temperature - 10 diff --git a/resources/variants/ultimaker3_extended_aa04.inst.cfg b/resources/variants/ultimaker3_extended_aa04.inst.cfg index 99daa082e4..5e97ec11e0 100644 --- a/resources/variants/ultimaker3_extended_aa04.inst.cfg +++ b/resources/variants/ultimaker3_extended_aa04.inst.cfg @@ -11,6 +11,7 @@ setting_version = 1 [values] brim_width = 7 machine_nozzle_cool_down_speed = 0.9 +machine_nozzle_type = AA machine_nozzle_size = 0.4 raft_airgap = 0.3 raft_base_speed = 15 diff --git a/resources/variants/ultimaker3_extended_bb0.8.inst.cfg b/resources/variants/ultimaker3_extended_bb0.8.inst.cfg index c982d207b0..90d0a34d09 100644 --- a/resources/variants/ultimaker3_extended_bb0.8.inst.cfg +++ b/resources/variants/ultimaker3_extended_bb0.8.inst.cfg @@ -29,6 +29,7 @@ jerk_support_bottom = =math.ceil(jerk_support_interface * 1 / 10) layer_height = 0.2 machine_min_cool_heat_time_window = 15 machine_nozzle_heat_up_speed = 1.5 +machine_nozzle_type = BB machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 material_print_temperature = =default_material_print_temperature + 10 diff --git a/resources/variants/ultimaker3_extended_bb04.inst.cfg b/resources/variants/ultimaker3_extended_bb04.inst.cfg index abeaf69db2..5c4ae3284c 100644 --- a/resources/variants/ultimaker3_extended_bb04.inst.cfg +++ b/resources/variants/ultimaker3_extended_bb04.inst.cfg @@ -17,6 +17,7 @@ jerk_support = =math.ceil(jerk_print * 15 / 25) jerk_support_interface = =math.ceil(jerk_support * 10 / 15) jerk_support_bottom = =math.ceil(jerk_support_interface * 1 / 10) machine_nozzle_heat_up_speed = 1.5 +machine_nozzle_type = BB material_print_temperature = 215 raft_base_speed = 20 raft_interface_speed = 20 From 293c1690c66f6cb854ebef3835b66cf71a874470 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 22 Jun 2017 13:58:42 +0200 Subject: [PATCH 07/72] Change to use machine_nozzle_id CURA-3872 We cannot assume that all nozzles will have IDs like " " such as "AA 0.4", so we should use a complete string as the nozzle IDs. --- resources/definitions/fdmextruder.def.json | 6 +++--- resources/definitions/fdmprinter.def.json | 6 +++--- resources/variants/ultimaker3_aa0.8.inst.cfg | 2 +- resources/variants/ultimaker3_aa04.inst.cfg | 2 +- resources/variants/ultimaker3_bb0.8.inst.cfg | 2 +- resources/variants/ultimaker3_bb04.inst.cfg | 2 +- resources/variants/ultimaker3_extended_aa0.8.inst.cfg | 2 +- resources/variants/ultimaker3_extended_aa04.inst.cfg | 2 +- resources/variants/ultimaker3_extended_bb0.8.inst.cfg | 2 +- resources/variants/ultimaker3_extended_bb04.inst.cfg | 2 +- 10 files changed, 14 insertions(+), 14 deletions(-) diff --git a/resources/definitions/fdmextruder.def.json b/resources/definitions/fdmextruder.def.json index 4ee1ff515a..bf235d76eb 100644 --- a/resources/definitions/fdmextruder.def.json +++ b/resources/definitions/fdmextruder.def.json @@ -30,10 +30,10 @@ "settable_per_meshgroup": false, "settable_globally": false }, - "machine_nozzle_type": + "machine_nozzle_id": { - "label": "Nozzle Type", - "description": "The nozzle type for an extruder train, such as \"AA\" and \"BB\".", + "label": "Nozzle ID", + "description": "The nozzle ID for an extruder train, such as \"AA 0.4\" and \"BB 0.8\".", "type": "str", "default_value": "unknown", "settable_per_mesh": false, diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index fd526e6378..40f224a98a 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -407,10 +407,10 @@ "settable_per_extruder": false, "settable_per_meshgroup": false }, - "machine_nozzle_type": + "machine_nozzle_id": { - "label": "Nozzle Type", - "description": "The nozzle type for an extruder train, such as \"AA\" and \"BB\".", + "label": "Nozzle ID", + "description": "The nozzle ID for an extruder train, such as \"AA 0.4\" and \"BB 0.8\".", "type": "str", "default_value": "unknown", "settable_per_mesh": false, diff --git a/resources/variants/ultimaker3_aa0.8.inst.cfg b/resources/variants/ultimaker3_aa0.8.inst.cfg index 7ce43a0a1a..41d6191883 100644 --- a/resources/variants/ultimaker3_aa0.8.inst.cfg +++ b/resources/variants/ultimaker3_aa0.8.inst.cfg @@ -31,7 +31,7 @@ line_width = =machine_nozzle_size machine_min_cool_heat_time_window = 15 machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 -machine_nozzle_type = AA +machine_nozzle_id = AA 0.8 machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 material_final_print_temperature = =material_print_temperature - 10 diff --git a/resources/variants/ultimaker3_aa04.inst.cfg b/resources/variants/ultimaker3_aa04.inst.cfg index 16f7bf2317..ff380197ea 100644 --- a/resources/variants/ultimaker3_aa04.inst.cfg +++ b/resources/variants/ultimaker3_aa04.inst.cfg @@ -11,7 +11,7 @@ setting_version = 1 [values] brim_width = 7 machine_nozzle_cool_down_speed = 0.9 -machine_nozzle_type = AA +machine_nozzle_id = AA 0.4 raft_acceleration = =acceleration_print raft_airgap = 0.3 raft_base_thickness = =resolveOrValue('layer_height_0') * 1.2 diff --git a/resources/variants/ultimaker3_bb0.8.inst.cfg b/resources/variants/ultimaker3_bb0.8.inst.cfg index ac451866c2..c9a8c5a945 100644 --- a/resources/variants/ultimaker3_bb0.8.inst.cfg +++ b/resources/variants/ultimaker3_bb0.8.inst.cfg @@ -29,7 +29,7 @@ jerk_support_bottom = =math.ceil(jerk_support_interface * 1 / 10) layer_height = 0.2 machine_min_cool_heat_time_window = 15 machine_nozzle_heat_up_speed = 1.5 -machine_nozzle_type = BB +machine_nozzle_id = BB 0.8 machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 material_print_temperature = =default_material_print_temperature + 10 diff --git a/resources/variants/ultimaker3_bb04.inst.cfg b/resources/variants/ultimaker3_bb04.inst.cfg index cb30142de7..5a4b39f68a 100644 --- a/resources/variants/ultimaker3_bb04.inst.cfg +++ b/resources/variants/ultimaker3_bb04.inst.cfg @@ -17,7 +17,7 @@ jerk_support = =math.ceil(jerk_print * 15 / 25) jerk_support_interface = =math.ceil(jerk_support * 10 / 15) jerk_support_bottom = =math.ceil(jerk_support_interface * 1 / 10) machine_nozzle_heat_up_speed = 1.5 -machine_nozzle_type = BB +machine_nozzle_id = BB 0.4 material_print_temperature = 215 raft_base_speed = 20 raft_interface_speed = 20 diff --git a/resources/variants/ultimaker3_extended_aa0.8.inst.cfg b/resources/variants/ultimaker3_extended_aa0.8.inst.cfg index e2f5d50c0c..c2ecbcdf49 100644 --- a/resources/variants/ultimaker3_extended_aa0.8.inst.cfg +++ b/resources/variants/ultimaker3_extended_aa0.8.inst.cfg @@ -31,7 +31,7 @@ line_width = =machine_nozzle_size machine_min_cool_heat_time_window = 15 machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 -machine_nozzle_type = AA +machine_nozzle_id = AA 0.8 machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 material_final_print_temperature = =material_print_temperature - 10 diff --git a/resources/variants/ultimaker3_extended_aa04.inst.cfg b/resources/variants/ultimaker3_extended_aa04.inst.cfg index 5e97ec11e0..f66be12d49 100644 --- a/resources/variants/ultimaker3_extended_aa04.inst.cfg +++ b/resources/variants/ultimaker3_extended_aa04.inst.cfg @@ -11,7 +11,7 @@ setting_version = 1 [values] brim_width = 7 machine_nozzle_cool_down_speed = 0.9 -machine_nozzle_type = AA +machine_nozzle_id = AA 0.4 machine_nozzle_size = 0.4 raft_airgap = 0.3 raft_base_speed = 15 diff --git a/resources/variants/ultimaker3_extended_bb0.8.inst.cfg b/resources/variants/ultimaker3_extended_bb0.8.inst.cfg index 90d0a34d09..8a4dcfee09 100644 --- a/resources/variants/ultimaker3_extended_bb0.8.inst.cfg +++ b/resources/variants/ultimaker3_extended_bb0.8.inst.cfg @@ -29,7 +29,7 @@ jerk_support_bottom = =math.ceil(jerk_support_interface * 1 / 10) layer_height = 0.2 machine_min_cool_heat_time_window = 15 machine_nozzle_heat_up_speed = 1.5 -machine_nozzle_type = BB +machine_nozzle_id = BB 0.8 machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 material_print_temperature = =default_material_print_temperature + 10 diff --git a/resources/variants/ultimaker3_extended_bb04.inst.cfg b/resources/variants/ultimaker3_extended_bb04.inst.cfg index 5c4ae3284c..e35ab82d9f 100644 --- a/resources/variants/ultimaker3_extended_bb04.inst.cfg +++ b/resources/variants/ultimaker3_extended_bb04.inst.cfg @@ -17,7 +17,7 @@ jerk_support = =math.ceil(jerk_print * 15 / 25) jerk_support_interface = =math.ceil(jerk_support * 10 / 15) jerk_support_bottom = =math.ceil(jerk_support_interface * 1 / 10) machine_nozzle_heat_up_speed = 1.5 -machine_nozzle_type = BB +machine_nozzle_id = BB 0.4 material_print_temperature = 215 raft_base_speed = 20 raft_interface_speed = 20 From 29e152582fbc9f039eb586543147cd71ad732f4e Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Thu, 22 Jun 2017 14:30:26 +0200 Subject: [PATCH 08/72] Make layerview panel hug the bottom of small windows Fixes https://github.com/Ultimaker/Cura/issues/2013 --- resources/qml/Cura.qml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 3addb72bed..d4a6a90b6b 100755 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -306,9 +306,12 @@ UM.MainWindow { id: view_panel - anchors.top: viewModeButton.bottom - anchors.topMargin: UM.Theme.getSize("default_margin").height; + property bool hugBottom: parent.height < viewModeButton.y + viewModeButton.height + height + UM.Theme.getSize("default_margin").height + + anchors.bottom: parent.bottom + anchors.bottomMargin: hugBottom ? 0 : parent.height - (viewModeButton.y + viewModeButton.height + height + UM.Theme.getSize("default_margin").height) anchors.left: viewModeButton.left; + anchors.leftMargin: hugBottom ? viewModeButton.width + UM.Theme.getSize("default_margin").width : 0 height: childrenRect.height; From b9e863a953a77fb812b1e343c8a7f11128784f2e Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 22 Jun 2017 14:39:46 +0200 Subject: [PATCH 09/72] Added PluginBrowser stub CURA-3856 --- plugins/PluginBrowser/PluginBrowser.py | 18 ++++++++++++++++++ plugins/PluginBrowser/__init__.py | 12 ++++++++++++ plugins/PluginBrowser/plugin.json | 7 +++++++ 3 files changed, 37 insertions(+) create mode 100644 plugins/PluginBrowser/PluginBrowser.py create mode 100644 plugins/PluginBrowser/__init__.py create mode 100644 plugins/PluginBrowser/plugin.json diff --git a/plugins/PluginBrowser/PluginBrowser.py b/plugins/PluginBrowser/PluginBrowser.py new file mode 100644 index 0000000000..56833ed44e --- /dev/null +++ b/plugins/PluginBrowser/PluginBrowser.py @@ -0,0 +1,18 @@ +# Copyright (c) 2017 Ultimaker B.V. +# PluginBrowser is released under the terms of the AGPLv3 or higher. + + +from UM.Extension import Extension +from UM.i18n import i18nCatalog + + +i18n_catalog = i18nCatalog("cura") + + +class PluginBrowser(Extension): + def __init__(self): + super().__init__() + self.addMenuItem(i18n_catalog.i18n("Browse plugins"), self.browsePlugins) + + def browsePlugins(self): + pass \ No newline at end of file diff --git a/plugins/PluginBrowser/__init__.py b/plugins/PluginBrowser/__init__.py new file mode 100644 index 0000000000..19013bd06d --- /dev/null +++ b/plugins/PluginBrowser/__init__.py @@ -0,0 +1,12 @@ +# Copyright (c) 2017 Ultimaker B.V. +# PluginBrowser is released under the terms of the AGPLv3 or higher. + +from . import PluginBrowser + + +def getMetaData(): + return {} + + +def register(app): + return {"extension": PluginBrowser.PluginBrowser()} diff --git a/plugins/PluginBrowser/plugin.json b/plugins/PluginBrowser/plugin.json new file mode 100644 index 0000000000..1447445e95 --- /dev/null +++ b/plugins/PluginBrowser/plugin.json @@ -0,0 +1,7 @@ +{ + "name": "Plugin Browser", + "author": "Ultimaker", + "version": "1.0.0", + "api": 4, + "description": "Find, manage and install new plugins." +} \ No newline at end of file From fad78c20b53c17033e75493f848d4c57e0e3abfb Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Thu, 22 Jun 2017 14:38:59 +0200 Subject: [PATCH 10/72] fix: copy global settings into extruder msessage for SE (CURA-3930) --- plugins/CuraEngineBackend/StartSliceJob.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index b262080872..bb834324a8 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -154,6 +154,8 @@ class StartSliceJob(Job): if stack.getProperty("machine_extruder_count", "value") > 1: for extruder_stack in ExtruderManager.getInstance().getMachineExtruders(stack.getId()): self._buildExtruderMessage(extruder_stack) + else: + self._buildExtruderMessageFromGlobalStack(stack) for group in object_groups: group_message = self._slice_message.addRepeatedMessage("object_lists") @@ -226,6 +228,19 @@ class StartSliceJob(Job): setting.value = str(stack.getProperty(key, "value")).encode("utf-8") Job.yieldThread() + ## Create extruder message from global stack + def _buildExtruderMessageFromGlobalStack(self, stack): + message = self._slice_message.addRepeatedMessage("extruders") + + for key in stack.getAllKeys(): + # Do not send settings that are not settable_per_extruder. + if stack.getProperty(key, "settable_per_extruder") == False: + continue + setting = message.getMessage("settings").addRepeatedMessage("settings") + setting.name = key + setting.value = str(stack.getProperty(key, "value")).encode("utf-8") + Job.yieldThread() + ## Sends all global settings to the engine. # # The settings are taken from the global stack. This does not include any From 48efcdf6e4733b1cae6195c1a3475ab553b0b2b2 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Thu, 22 Jun 2017 14:59:15 +0200 Subject: [PATCH 11/72] Use a PointingRectangle for the LayerView pane --- plugins/LayerView/LayerView.qml | 10 +++++++++- resources/qml/Cura.qml | 4 +++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/plugins/LayerView/LayerView.qml b/plugins/LayerView/LayerView.qml index 9dc038fe70..46268a784d 100755 --- a/plugins/LayerView/LayerView.qml +++ b/plugins/LayerView/LayerView.qml @@ -11,6 +11,7 @@ import Cura 1.0 as Cura Item { + id: base width: { if (UM.LayerView.compatibilityMode) { return UM.Theme.getSize("layerview_menu_size_compatibility").width; @@ -25,8 +26,12 @@ Item return UM.Theme.getSize("layerview_menu_size").height + UM.LayerView.extruderCount * (UM.Theme.getSize("layerview_row").height + UM.Theme.getSize("layerview_row_spacing").height) } } + property var buttonTarget: { + var force_binding = parent.y; // ensure this gets reevaluated when the panel moves + return base.mapFromItem(parent.parent, parent.buttonTarget.x, parent.buttonTarget.y); + } - Rectangle { + UM.PointingRectangle { id: layerViewMenu anchors.left: parent.left anchors.top: parent.top @@ -35,6 +40,9 @@ Item z: slider.z - 1 color: UM.Theme.getColor("tool_panel_background") + target: parent.buttonTarget + arrowSize: UM.Theme.getSize("default_arrow").width + ColumnLayout { id: view_settings diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index d4a6a90b6b..612ef6b41b 100755 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -308,11 +308,13 @@ UM.MainWindow property bool hugBottom: parent.height < viewModeButton.y + viewModeButton.height + height + UM.Theme.getSize("default_margin").height - anchors.bottom: parent.bottom + anchors.bottom: parent.bottom // panel is always anchored to the bottom only, because dynamically switching between bottom and top results in stretching the height anchors.bottomMargin: hugBottom ? 0 : parent.height - (viewModeButton.y + viewModeButton.height + height + UM.Theme.getSize("default_margin").height) anchors.left: viewModeButton.left; anchors.leftMargin: hugBottom ? viewModeButton.width + UM.Theme.getSize("default_margin").width : 0 + property var buttonTarget: Qt.point(viewModeButton.x + viewModeButton.width / 2, viewModeButton.y + viewModeButton.height / 2) + height: childrenRect.height; source: UM.ActiveView.valid ? UM.ActiveView.activeViewPanel : ""; From b9241e807028f51310d10d25c86a0d97733ad6e6 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 22 Jun 2017 16:13:33 +0200 Subject: [PATCH 12/72] PluginBrowser now retrieves list of plugins from the server CURA-3856 --- plugins/PluginBrowser/PluginBrowser.py | 44 ++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 3 deletions(-) diff --git a/plugins/PluginBrowser/PluginBrowser.py b/plugins/PluginBrowser/PluginBrowser.py index 56833ed44e..b8ef535034 100644 --- a/plugins/PluginBrowser/PluginBrowser.py +++ b/plugins/PluginBrowser/PluginBrowser.py @@ -1,10 +1,13 @@ # Copyright (c) 2017 Ultimaker B.V. # PluginBrowser is released under the terms of the AGPLv3 or higher. - - from UM.Extension import Extension from UM.i18n import i18nCatalog +from UM.Logger import Logger +from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest +from PyQt5.QtCore import QUrl + +import json i18n_catalog = i18nCatalog("cura") @@ -13,6 +16,41 @@ class PluginBrowser(Extension): def __init__(self): super().__init__() self.addMenuItem(i18n_catalog.i18n("Browse plugins"), self.browsePlugins) + self._api_version = 1 + self._api_url = "http://software.ultimaker.com/cura/v%s/" % self._api_version + + self._plugin_list_request = None + self._network_manager = None + + self._plugins_metadata = [] def browsePlugins(self): - pass \ No newline at end of file + self._createNetworkManager() + self.requestPluginList() + #TODO: Show popup with populated plugin data. + + def requestPluginList(self): + url = QUrl(self._api_url + "plugins") + self._plugin_list_request = QNetworkRequest(url) + self._network_manager.get(self._plugin_list_request) + + def _onRequestFinished(self, reply): + reply_url = reply.url().toString() + if reply.operation() == QNetworkAccessManager.GetOperation: + if reply_url == self._api_url + "plugins": + try: + json_data = json.loads(bytes(reply.readAll()).decode("utf-8")) + self._plugins_metadata = json_data + except json.decoder.JSONDecodeError: + Logger.log("w", "Received an invalid print job state message: Not valid JSON.") + return + else: + # Ignore any operation that is not a get operation + pass + + def _createNetworkManager(self): + if self._network_manager: + self._network_manager.finished.disconnect(self._onRequestFinished) + + self._network_manager = QNetworkAccessManager() + self._network_manager.finished.connect(self._onRequestFinished) \ No newline at end of file From 8f1608bc3bf3817e7a416b37fb4b37f59d7fae6b Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 22 Jun 2017 17:25:48 +0200 Subject: [PATCH 13/72] Added model to PluginBrowser We need the model to display items in the popup view. CURA-3856 --- plugins/PluginBrowser/PluginBrowser.py | 36 +++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/plugins/PluginBrowser/PluginBrowser.py b/plugins/PluginBrowser/PluginBrowser.py index b8ef535034..cd1c30aaff 100644 --- a/plugins/PluginBrowser/PluginBrowser.py +++ b/plugins/PluginBrowser/PluginBrowser.py @@ -3,17 +3,19 @@ from UM.Extension import Extension from UM.i18n import i18nCatalog from UM.Logger import Logger +from UM.Qt.ListModel import ListModel +from UM.PluginRegistry import PluginRegistry from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest -from PyQt5.QtCore import QUrl +from PyQt5.QtCore import QUrl, QObject, Qt, pyqtProperty, pyqtSignal import json i18n_catalog = i18nCatalog("cura") -class PluginBrowser(Extension): - def __init__(self): +class PluginBrowser(QObject, Extension): + def __init__(self, parent = None): super().__init__() self.addMenuItem(i18n_catalog.i18n("Browse plugins"), self.browsePlugins) self._api_version = 1 @@ -23,6 +25,9 @@ class PluginBrowser(Extension): self._network_manager = None self._plugins_metadata = [] + self._plugins_model = None + + pluginsMetadataChanged = pyqtSignal() def browsePlugins(self): self._createNetworkManager() @@ -34,6 +39,30 @@ class PluginBrowser(Extension): self._plugin_list_request = QNetworkRequest(url) self._network_manager.get(self._plugin_list_request) + @pyqtProperty(QObject, notify=pluginsMetadataChanged) + def pluginsModel(self): + if self._plugins_model is None: + self._plugins_model = ListModel() + self._plugins_model.addRoleName(Qt.UserRole + 1, "name") + self._plugins_model.addRoleName(Qt.UserRole + 2, "version") + self._plugins_model.addRoleName(Qt.UserRole + 3, "short_description") + self._plugins_model.addRoleName(Qt.UserRole + 4, "author") + self._plugins_model.addRoleName(Qt.UserRole + 5, "already_installed") + else: + self._plugins_model.clear() + items = [] + plugin_registry = PluginRegistry.getInstance() + for metadata in self._plugins_metadata: + items.append({ + "name": metadata["label"], + "version": metadata["version"], + "short_description": metadata["short_description"], + "author": metadata["author"], + "already_installed": plugin_registry.getMetaData(metadata["id"]) != {} + }) + self._plugins_model.setItems(items) + return self._plugins_model + def _onRequestFinished(self, reply): reply_url = reply.url().toString() if reply.operation() == QNetworkAccessManager.GetOperation: @@ -41,6 +70,7 @@ class PluginBrowser(Extension): try: json_data = json.loads(bytes(reply.readAll()).decode("utf-8")) self._plugins_metadata = json_data + self.pluginsMetadataChanged.emit() except json.decoder.JSONDecodeError: Logger.log("w", "Received an invalid print job state message: Not valid JSON.") return From 503aa00137790bce39d53f13fcd72b722f8ca14e Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 22 Jun 2017 17:55:45 +0200 Subject: [PATCH 14/72] Added rough dialog for the PluginBrowser CURA-3856 --- plugins/PluginBrowser/PluginBrowser.py | 29 ++++++++++++++++++-- plugins/PluginBrowser/PluginBrowser.qml | 36 +++++++++++++++++++++++++ 2 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 plugins/PluginBrowser/PluginBrowser.qml diff --git a/plugins/PluginBrowser/PluginBrowser.py b/plugins/PluginBrowser/PluginBrowser.py index cd1c30aaff..9fd75a92fc 100644 --- a/plugins/PluginBrowser/PluginBrowser.py +++ b/plugins/PluginBrowser/PluginBrowser.py @@ -5,18 +5,21 @@ from UM.i18n import i18nCatalog from UM.Logger import Logger from UM.Qt.ListModel import ListModel from UM.PluginRegistry import PluginRegistry +from UM.Application import Application from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest from PyQt5.QtCore import QUrl, QObject, Qt, pyqtProperty, pyqtSignal +from PyQt5.QtQml import QQmlComponent, QQmlContext import json +import os i18n_catalog = i18nCatalog("cura") class PluginBrowser(QObject, Extension): def __init__(self, parent = None): - super().__init__() + super().__init__(parent) self.addMenuItem(i18n_catalog.i18n("Browse plugins"), self.browsePlugins) self._api_version = 1 self._api_url = "http://software.ultimaker.com/cura/v%s/" % self._api_version @@ -27,18 +30,40 @@ class PluginBrowser(QObject, Extension): self._plugins_metadata = [] self._plugins_model = None + self._qml_component = None + self._qml_context = None + self._dialog = None + pluginsMetadataChanged = pyqtSignal() def browsePlugins(self): self._createNetworkManager() self.requestPluginList() - #TODO: Show popup with populated plugin data. + + if not self._dialog: + self._createDialog() + self._dialog.show() def requestPluginList(self): url = QUrl(self._api_url + "plugins") self._plugin_list_request = QNetworkRequest(url) self._network_manager.get(self._plugin_list_request) + def _createDialog(self): + Logger.log("d", "PluginBrowser") + + path = QUrl.fromLocalFile(os.path.join(PluginRegistry.getInstance().getPluginPath(self.getPluginId()), "PluginBrowser.qml")) + self._qml_component = QQmlComponent(Application.getInstance()._engine, path) + + # We need access to engine (although technically we can't) + self._qml_context = QQmlContext(Application.getInstance()._engine.rootContext()) + self._qml_context.setContextProperty("manager", self) + self._dialog = self._qml_component.create(self._qml_context) + if self._dialog is None: + Logger.log("e", "QQmlComponent status %s", self._qml_component.status()) + Logger.log("e", "QQmlComponent errorString %s", self._qml_component.errorString()) + + @pyqtProperty(QObject, notify=pluginsMetadataChanged) def pluginsModel(self): if self._plugins_model is None: diff --git a/plugins/PluginBrowser/PluginBrowser.qml b/plugins/PluginBrowser/PluginBrowser.qml new file mode 100644 index 0000000000..5f666a0148 --- /dev/null +++ b/plugins/PluginBrowser/PluginBrowser.qml @@ -0,0 +1,36 @@ +import UM 1.1 as UM +import QtQuick 2.2 +import QtQuick.Dialogs 1.1 +import QtQuick.Window 2.2 +import QtQuick.Controls 1.1 + +UM.Dialog +{ + id: base + + title: "YAY" + width: 450 + height: 150 + ListView + { + model: manager.pluginsModel + anchors.fill: parent + delegate: Row + { + width: parent.width + Button + { + text: model.name + } + Button + { + text: model.author + } + + Label + { + text: model.short_description + } + } + } +} \ No newline at end of file From 8a887915ac778479daf8034f65295e151ba5c258 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Thu, 22 Jun 2017 18:07:34 +0200 Subject: [PATCH 15/72] Add tab navigation to sidebar --- resources/qml/Settings/SettingCheckBox.qml | 7 +++++++ resources/qml/Settings/SettingTextField.qml | 1 + 2 files changed, 8 insertions(+) diff --git a/resources/qml/Settings/SettingCheckBox.qml b/resources/qml/Settings/SettingCheckBox.qml index 97a72a026e..2a41f80d2c 100644 --- a/resources/qml/Settings/SettingCheckBox.qml +++ b/resources/qml/Settings/SettingCheckBox.qml @@ -17,6 +17,7 @@ SettingItem id: control anchors.fill: parent hoverEnabled: true + activeFocusOnTab: true property bool checked: { @@ -49,6 +50,12 @@ SettingItem } } + Keys.onSpacePressed: + { + forceActiveFocus(); + propertyProvider.setPropertyValue("value", !checked); + } + onClicked: { forceActiveFocus(); diff --git a/resources/qml/Settings/SettingTextField.qml b/resources/qml/Settings/SettingTextField.qml index 059980bba2..9ab23ad7c8 100644 --- a/resources/qml/Settings/SettingTextField.qml +++ b/resources/qml/Settings/SettingTextField.qml @@ -82,6 +82,7 @@ SettingItem right: parent.right verticalCenter: parent.verticalCenter } + activeFocusOnTab: true Keys.onReleased: { From fc96dfec4e741b0f59da6072fd2c8363e7ea5f18 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 22 Jun 2017 11:17:34 +0200 Subject: [PATCH 16/72] Expose approximateMaterialDiameter of the definition This way we can request that from QML. Contributes to issue CURA-2822. --- cura/Settings/GlobalStack.py | 15 +++++++++++++++ tests/Settings/TestGlobalStack.py | 22 ++++++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/cura/Settings/GlobalStack.py b/cura/Settings/GlobalStack.py index 9dfb8523b3..964551f263 100755 --- a/cura/Settings/GlobalStack.py +++ b/cura/Settings/GlobalStack.py @@ -107,6 +107,21 @@ class GlobalStack(CuraContainerStack): def setNextStack(self, next_stack: ContainerStack) -> None: raise Exceptions.InvalidOperationError("Global stack cannot have a next stack!") + ## Gets the approximate filament diameter that the machine requires. + # + # The approximate material diameter is the material diameter rounded to + # the nearest millimetre. + # + # If the machine has no requirement for the diameter, -1 is returned. + # + # \return The approximate filament diameter for the printer, as a string. + @pyqtProperty(str) + def approximateMaterialDiameter(self) -> str: + material_diameter = self.definition.getMetaDataEntry("material_diameter") + if material_diameter is None: + return "-1" + return str(round(float(self.definition.getMetaDataEntry("material_diameter")))) #Round, then convert back to string. + # protected: # Determine whether or not we should try to get the "resolve" property instead of the diff --git a/tests/Settings/TestGlobalStack.py b/tests/Settings/TestGlobalStack.py index 6dab02b220..3cac17fa3a 100755 --- a/tests/Settings/TestGlobalStack.py +++ b/tests/Settings/TestGlobalStack.py @@ -86,6 +86,28 @@ def test_addExtruder(global_stack): # global_stack.addExtruder(unittest.mock.MagicMock()) assert len(global_stack.extruders) == 2 #Didn't add the faulty extruder. +## Tests getting the approximate material diameter. +@pytest.mark.parametrize("diameter, approximate_diameter", [ + #Some real-life cases that are common in printers. + (2.85, 3), + (1.75, 2), + (3.0, 3), + (2.0, 2), + #Exceptional cases. + (0, 0), + (-10.1, -10), + (-1, -1) +]) +def test_approximateMaterialDiameter(diameter, approximate_diameter, global_stack): + global_stack.definition = DefinitionContainer(container_id = "TestDefinition") + global_stack.definition._metadata["material_diameter"] = str(diameter) + assert float(global_stack.approximateMaterialDiameter) == approximate_diameter + +## Tests getting the material diameter when there is no material diameter. +def test_approximateMaterialDiameterNoDiameter(global_stack): + global_stack.definition = DefinitionContainer(container_id = "TestDefinition") + assert global_stack.approximateMaterialDiameter == "-1" + #Tests setting user changes profiles to invalid containers. @pytest.mark.parametrize("container", [ getInstanceContainer(container_type = "wrong container type"), From 121bf5897d1c4462a5142b345302bf992f0da4cf Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 22 Jun 2017 11:20:50 +0200 Subject: [PATCH 17/72] Deprecate _updateMaterialContainer There are better alternatives nowadays. Discovered during CURA-2822. --- cura/Settings/MachineManager.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index d0c04cd26a..a150e94e76 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -11,6 +11,7 @@ from UM.Application import Application from UM.Preferences import Preferences from UM.Logger import Logger from UM.Message import Message +from UM.Decorators import deprecated from UM.Settings.ContainerRegistry import ContainerRegistry from UM.Settings.ContainerStack import ContainerStack @@ -1121,6 +1122,7 @@ class MachineManager(QObject): def createMachineManager(engine=None, script_engine=None): return MachineManager() + @deprecated #Use ExtruderStack.material = ... and it won't be necessary. def _updateMaterialContainer(self, definition: "DefinitionContainer", stack: "ContainerStack", variant_container: Optional["InstanceContainer"] = None, preferred_material_name: Optional[str] = None): if not definition.getMetaDataEntry("has_materials"): return self._empty_material_container From b37fa6f7184e75c373dea734918bd71baa56e821 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 22 Jun 2017 12:01:42 +0200 Subject: [PATCH 18/72] Implement warning message when you change material diameter The undo functionality currently gives an error though. Investigating... Contributes to issue CURA-2822. --- cura/CuraApplication.py | 11 ++++- cura/Settings/MaterialManager.py | 56 ++++++++++++++++++++++ resources/qml/Preferences/MaterialView.qml | 9 +++- 3 files changed, 73 insertions(+), 3 deletions(-) create mode 100644 cura/Settings/MaterialManager.py diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 7995c77fce..332b103502 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -1,5 +1,6 @@ -# Copyright (c) 2015 Ultimaker B.V. +# Copyright (c) 2017 Ultimaker B.V. # Cura is released under the terms of the AGPLv3 or higher. + from PyQt5.QtNetwork import QLocalServer from PyQt5.QtNetwork import QLocalSocket @@ -62,6 +63,7 @@ from . import CameraImageProvider from . import MachineActionManager from cura.Settings.MachineManager import MachineManager +from cura.Settings.MaterialManager import MaterialManager from cura.Settings.ExtruderManager import ExtruderManager from cura.Settings.UserChangesModel import UserChangesModel from cura.Settings.ExtrudersModel import ExtrudersModel @@ -189,6 +191,7 @@ class CuraApplication(QtApplication): self._machine_action_manager = MachineActionManager.MachineActionManager() self._machine_manager = None # This is initialized on demand. + self._material_manager = None self._setting_inheritance_manager = None self._additional_components = {} # Components to add to certain areas in the interface @@ -640,6 +643,7 @@ class CuraApplication(QtApplication): # Initialise extruder so as to listen to global container stack changes before the first global container stack is set. ExtruderManager.getInstance() qmlRegisterSingletonType(MachineManager, "Cura", 1, 0, "MachineManager", self.getMachineManager) + qmlRegisterSingletonType(MaterialManager, "Cura", 1, 0, "MaterialManager", self.getMaterialManager) qmlRegisterSingletonType(SettingInheritanceManager, "Cura", 1, 0, "SettingInheritanceManager", self.getSettingInheritanceManager) @@ -665,6 +669,11 @@ class CuraApplication(QtApplication): self._machine_manager = MachineManager.createMachineManager() return self._machine_manager + def getMaterialManager(self, *args): + if self._material_manager is None: + self._material_manager = MaterialManager.createMaterialManager() + return self._material_manager + def getSettingInheritanceManager(self, *args): if self._setting_inheritance_manager is None: self._setting_inheritance_manager = SettingInheritanceManager.createSettingInheritanceManager() diff --git a/cura/Settings/MaterialManager.py b/cura/Settings/MaterialManager.py new file mode 100644 index 0000000000..88baf9419b --- /dev/null +++ b/cura/Settings/MaterialManager.py @@ -0,0 +1,56 @@ +# Copyright (c) 2017 Ultimaker B.V. +# Cura is released under the terms of the AGPLv3 or higher. + +from PyQt5.QtCore import QObject, pyqtSlot #To expose data to QML. + +from UM.Logger import Logger +from UM.Message import Message #To create a warning message about material diameter. +from UM.i18n import i18nCatalog #Translated strings. +from UM.Settings.ContainerRegistry import ContainerRegistry #To find the material containers we need. + +catalog = i18nCatalog("cura") + +## Handles material-related data, processing requests to change them and +# providing data for the GUI. +# +# TODO: Move material-related managing over from the machine manager to here. +class MaterialManager(QObject): + ## Creates the global values for the material manager to use. + def __init__(self, parent = None): + super().__init__(parent) + + #Material diameter changed warning message. + self._material_diameter_warning_message = Message(catalog.i18nc("@info:status Has a cancel button next to it.", + "The selected material diameter causes the material to become incompatible with the current printer.")) + self._material_diameter_warning_message.addAction("Undo", catalog.i18nc("@action:button", "Undo"), None, catalog.i18nc("@action", "Undo changing the material diameter.")) + self._material_diameter_warning_message.actionTriggered = self._materialWarningMessageAction + + ## Creates an instance of the MaterialManager. + # + # This should only be called by PyQt to create the singleton instance of + # this class. + @staticmethod + def createMaterialManager(engine = None, script_engine = None): + return MaterialManager() + + @pyqtSlot(str, str) + def showMaterialWarningMessage(self, material_id, previous_diameter): + self._material_diameter_warning_message.previous_diameter = previous_diameter #Make sure that the undo button can properly undo the action. + self._material_diameter_warning_message.material_id = material_id + self._material_diameter_warning_message.show() + + ## Called when clicking "undo" on the warning dialogue for disappeared + # materials. + # + # This executes the undo action, restoring the material diameter. + # + # \param button The identifier of the button that was pressed. + def _materialWarningMessageAction(self, button): + if button == "Undo": + container_registry = ContainerRegistry.getInstance() + matches = container_registry.findInstanceContainers(type = "material", id = self._material_diameter_warning_message.material_id) + if matches: + matches[0].setMetaDataEntry("diameter", self._material_diameter_warning_message.previous_diameter) + #No matches? Then the material has been deleted in the meanwhile. + else: + Logger.log("w", "Unknown button action for material diameter warning message: {action}".format(action = button)) \ No newline at end of file diff --git a/resources/qml/Preferences/MaterialView.qml b/resources/qml/Preferences/MaterialView.qml index 30edb063c1..8942549265 100644 --- a/resources/qml/Preferences/MaterialView.qml +++ b/resources/qml/Preferences/MaterialView.qml @@ -1,5 +1,5 @@ -// Copyright (c) 2016 Ultimaker B.V. -// Uranium is released under the terms of the AGPLv3 or higher. +// Copyright (c) 2017 Ultimaker B.V. +// Cura is released under the terms of the AGPLv3 or higher. import QtQuick 2.1 import QtQuick.Controls 1.3 @@ -168,8 +168,13 @@ TabView { // This does not use a SettingPropertyProvider, because we need to make the change to all containers // which derive from the same base_file + var old_diameter = Cura.ContainerManager.getContainerMetaDataEntry(base.containerId, "properties/diameter"); base.setMetaDataEntry("approximate_diameter", properties.approximate_diameter, Math.round(value).toString()); base.setMetaDataEntry("properties/diameter", properties.diameter, value); + if (Cura.MachineManager.filterMaterialsByMachine && properties.approximate_diameter != Math.round(Cura.MachineManager.activeMachine.approximateMaterialDiameter).toString()) + { + Cura.MaterialManager.showMaterialWarningMessage(base.containerId, old_diameter); + } Cura.ContainerManager.setContainerProperty(base.containerId, "material_diameter", "value", value); } onValueChanged: updateCostPerMeter() From c192d37daaf3ed656754703c55b4634de6fcf817 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 22 Jun 2017 12:28:00 +0200 Subject: [PATCH 19/72] Fix connecting undo action to undo button Also hiding the message afterwards. Apparently that's not done automatically. Contributes to issue CURA-2822. --- cura/Settings/MaterialManager.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cura/Settings/MaterialManager.py b/cura/Settings/MaterialManager.py index 88baf9419b..c204847fff 100644 --- a/cura/Settings/MaterialManager.py +++ b/cura/Settings/MaterialManager.py @@ -23,7 +23,7 @@ class MaterialManager(QObject): self._material_diameter_warning_message = Message(catalog.i18nc("@info:status Has a cancel button next to it.", "The selected material diameter causes the material to become incompatible with the current printer.")) self._material_diameter_warning_message.addAction("Undo", catalog.i18nc("@action:button", "Undo"), None, catalog.i18nc("@action", "Undo changing the material diameter.")) - self._material_diameter_warning_message.actionTriggered = self._materialWarningMessageAction + self._material_diameter_warning_message.actionTriggered.connect(self._materialWarningMessageAction) ## Creates an instance of the MaterialManager. # @@ -45,12 +45,13 @@ class MaterialManager(QObject): # This executes the undo action, restoring the material diameter. # # \param button The identifier of the button that was pressed. - def _materialWarningMessageAction(self, button): + def _materialWarningMessageAction(self, message, button): if button == "Undo": container_registry = ContainerRegistry.getInstance() matches = container_registry.findInstanceContainers(type = "material", id = self._material_diameter_warning_message.material_id) if matches: matches[0].setMetaDataEntry("diameter", self._material_diameter_warning_message.previous_diameter) #No matches? Then the material has been deleted in the meanwhile. + message.hide() else: Logger.log("w", "Unknown button action for material diameter warning message: {action}".format(action = button)) \ No newline at end of file From f0414734656a32f76b4938ced046d27d37618d75 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 22 Jun 2017 12:40:45 +0200 Subject: [PATCH 20/72] Fix applying material diameter undo Somehow it seems to get the wrong value there though. Debugging that next... Contributes to issue CURA-2822. --- cura/Settings/MaterialManager.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/cura/Settings/MaterialManager.py b/cura/Settings/MaterialManager.py index c204847fff..abfafc5f9f 100644 --- a/cura/Settings/MaterialManager.py +++ b/cura/Settings/MaterialManager.py @@ -3,10 +3,10 @@ from PyQt5.QtCore import QObject, pyqtSlot #To expose data to QML. +from cura.Settings.ContainerManager import ContainerManager from UM.Logger import Logger from UM.Message import Message #To create a warning message about material diameter. from UM.i18n import i18nCatalog #Translated strings. -from UM.Settings.ContainerRegistry import ContainerRegistry #To find the material containers we need. catalog = i18nCatalog("cura") @@ -47,11 +47,8 @@ class MaterialManager(QObject): # \param button The identifier of the button that was pressed. def _materialWarningMessageAction(self, message, button): if button == "Undo": - container_registry = ContainerRegistry.getInstance() - matches = container_registry.findInstanceContainers(type = "material", id = self._material_diameter_warning_message.material_id) - if matches: - matches[0].setMetaDataEntry("diameter", self._material_diameter_warning_message.previous_diameter) - #No matches? Then the material has been deleted in the meanwhile. + container_manager = ContainerManager.getInstance() + container_manager.setContainerMetaDataEntry(self._material_diameter_warning_message.material_id, "properties/diameter", self._material_diameter_warning_message.previous_diameter) message.hide() else: Logger.log("w", "Unknown button action for material diameter warning message: {action}".format(action = button)) \ No newline at end of file From 7ea1d4cc5a07840c08d130180e217ea1e360226d Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 22 Jun 2017 13:50:35 +0200 Subject: [PATCH 21/72] Add getContainerProperty function The opposite of setContainerProperty. Contributes to issue CURA-2822. --- cura/Settings/ContainerManager.py | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/cura/Settings/ContainerManager.py b/cura/Settings/ContainerManager.py index 1fcdbc5a20..9a2282c8c0 100644 --- a/cura/Settings/ContainerManager.py +++ b/cura/Settings/ContainerManager.py @@ -235,7 +235,7 @@ class ContainerManager(QObject): return True - ## Set a setting property value of the specified container. + ## Set a setting property of the specified container. # # This will set the specified property of the specified setting of the container # and all containers that share the same base_file (if any). The latter only @@ -269,6 +269,29 @@ class ContainerManager(QObject): return True + ## Get a setting property of the specified container. + # + # This will get the specified property of the specified setting of the + # specified container. + # + # \param container_id The ID of the container to get the setting property + # of. + # \param setting_key The key of the setting to get the property of. + # \param property_name The property to obtain. + # \return The value of the specified property. The type of this property + # value depends on the type of the property. For instance, the "value" + # property of an integer setting will be a Python int, but the "value" + # property of an enum setting will be a Python str. + @pyqtSlot(str, str, str, result = QVariant) + def getContainerProperty(self, container_id: str, setting_key: str, property_name: str): + containers = self._container_registry.findContainers(id = container_id) + if not containers: + Logger.log("w", "Could not get properties of container %s because it was not found.", container_id) + return "" + container = containers[0] + + return container.getProperty(setting_key, property_name) + ## Set the name of the specified container. @pyqtSlot(str, str, result = bool) def setContainerName(self, container_id, new_name): From 1d048f39db189954bf2f74c40028fbeff28b1269 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 22 Jun 2017 13:51:40 +0200 Subject: [PATCH 22/72] Fix getting old material diameter This diameter works. I still don't know why the properties/diameter one didn't work, but this is good too since they are now equal. Contributes to issue CURA-2822. --- resources/qml/Preferences/MaterialView.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Preferences/MaterialView.qml b/resources/qml/Preferences/MaterialView.qml index 8942549265..990f03b5cc 100644 --- a/resources/qml/Preferences/MaterialView.qml +++ b/resources/qml/Preferences/MaterialView.qml @@ -168,7 +168,7 @@ TabView { // This does not use a SettingPropertyProvider, because we need to make the change to all containers // which derive from the same base_file - var old_diameter = Cura.ContainerManager.getContainerMetaDataEntry(base.containerId, "properties/diameter"); + var old_diameter = Cura.ContainerManager.getContainerProperty(base.containerId, "material_diameter", "value").toString(); base.setMetaDataEntry("approximate_diameter", properties.approximate_diameter, Math.round(value).toString()); base.setMetaDataEntry("properties/diameter", properties.diameter, value); if (Cura.MachineManager.filterMaterialsByMachine && properties.approximate_diameter != Math.round(Cura.MachineManager.activeMachine.approximateMaterialDiameter).toString()) From 0e23930bfefd7ac4df5de6a0db917200b08816d4 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 22 Jun 2017 14:43:45 +0200 Subject: [PATCH 23/72] Fix checking whether the old material diameter was the same Getting the old material diameter wasn't working properly. Contributes to issue CURA-2822. --- cura/Settings/GlobalStack.py | 4 ++-- resources/qml/Preferences/MaterialView.qml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cura/Settings/GlobalStack.py b/cura/Settings/GlobalStack.py index 964551f263..4e7bcdf486 100755 --- a/cura/Settings/GlobalStack.py +++ b/cura/Settings/GlobalStack.py @@ -117,10 +117,10 @@ class GlobalStack(CuraContainerStack): # \return The approximate filament diameter for the printer, as a string. @pyqtProperty(str) def approximateMaterialDiameter(self) -> str: - material_diameter = self.definition.getMetaDataEntry("material_diameter") + material_diameter = self.definition.getProperty("material_diameter", "value") if material_diameter is None: return "-1" - return str(round(float(self.definition.getMetaDataEntry("material_diameter")))) #Round, then convert back to string. + return str(round(float(material_diameter))) #Round, then convert back to string. # protected: diff --git a/resources/qml/Preferences/MaterialView.qml b/resources/qml/Preferences/MaterialView.qml index 990f03b5cc..39f2db0695 100644 --- a/resources/qml/Preferences/MaterialView.qml +++ b/resources/qml/Preferences/MaterialView.qml @@ -171,7 +171,7 @@ TabView var old_diameter = Cura.ContainerManager.getContainerProperty(base.containerId, "material_diameter", "value").toString(); base.setMetaDataEntry("approximate_diameter", properties.approximate_diameter, Math.round(value).toString()); base.setMetaDataEntry("properties/diameter", properties.diameter, value); - if (Cura.MachineManager.filterMaterialsByMachine && properties.approximate_diameter != Math.round(Cura.MachineManager.activeMachine.approximateMaterialDiameter).toString()) + if (Cura.MachineManager.filterMaterialsByMachine && properties.approximate_diameter != Cura.MachineManager.activeMachine.approximateMaterialDiameter) { Cura.MaterialManager.showMaterialWarningMessage(base.containerId, old_diameter); } From bc219a06fec6141609e6a4bd1530369aaabffbab Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 22 Jun 2017 17:21:11 +0200 Subject: [PATCH 24/72] Add MaterialsModel to make material list update upon metadata change This new model inherits from InstanceContainersModel. The only change is that it updates when the metadata of a material container changes. This is needed to make the list of materials update when the material diameter changes. Contributes to issue CURA-2822. --- cura/CuraApplication.py | 2 ++ cura/Settings/MaterialsModel.py | 21 +++++++++++++++++++++ resources/qml/Preferences/MaterialsPage.qml | 2 +- 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 cura/Settings/MaterialsModel.py diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 332b103502..a1f5aaa6de 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -48,6 +48,7 @@ from UM.Settings.ContainerRegistry import ContainerRegistry from UM.Settings.SettingFunction import SettingFunction from cura.Settings.MachineNameValidator import MachineNameValidator from cura.Settings.ProfilesModel import ProfilesModel +from cura.Settings.MaterialsModel import MaterialsModel from cura.Settings.QualityAndUserProfilesModel import QualityAndUserProfilesModel from cura.Settings.SettingInheritanceManager import SettingInheritanceManager from cura.Settings.UserProfilesModel import UserProfilesModel @@ -717,6 +718,7 @@ class CuraApplication(QtApplication): qmlRegisterType(ContainerSettingsModel, "Cura", 1, 0, "ContainerSettingsModel") qmlRegisterSingletonType(ProfilesModel, "Cura", 1, 0, "ProfilesModel", ProfilesModel.createProfilesModel) + qmlRegisterType(MaterialsModel, "Cura", 1, 0, "MaterialsModel") qmlRegisterType(QualityAndUserProfilesModel, "Cura", 1, 0, "QualityAndUserProfilesModel") qmlRegisterType(UserProfilesModel, "Cura", 1, 0, "UserProfilesModel") qmlRegisterType(MaterialSettingsVisibilityHandler, "Cura", 1, 0, "MaterialSettingsVisibilityHandler") diff --git a/cura/Settings/MaterialsModel.py b/cura/Settings/MaterialsModel.py new file mode 100644 index 0000000000..75eeb6c281 --- /dev/null +++ b/cura/Settings/MaterialsModel.py @@ -0,0 +1,21 @@ +# Copyright (c) 2017 Ultimaker B.V. +# Cura is released under the terms of the AGPLv3 or higher. + +from UM.Settings.ContainerRegistry import ContainerRegistry #To listen for changes to the materials. +from UM.Settings.Models.InstanceContainersModel import InstanceContainersModel #We're extending this class. + +## A model that shows a list of currently valid materials. +class MaterialsModel(InstanceContainersModel): + def __init__(self, parent = None): + super().__init__(parent) + + ContainerRegistry.getInstance().containerMetaDataChanged.connect(self._onContainerMetaDataChanged) + + ## Called when the metadata of the container was changed. + # + # This makes sure that we only update when it was a material that changed. + # + # \param container The container whose metadata was changed. + def _onContainerMetaDataChanged(self, container): + if container.getMetaDataEntry("type") == "material": #Only need to update if a material was changed. + self._update() \ No newline at end of file diff --git a/resources/qml/Preferences/MaterialsPage.qml b/resources/qml/Preferences/MaterialsPage.qml index 0921b8c7c2..e5051dd5d3 100644 --- a/resources/qml/Preferences/MaterialsPage.qml +++ b/resources/qml/Preferences/MaterialsPage.qml @@ -20,7 +20,7 @@ UM.ManagementPage objectList.positionViewAtBeginning(); } - model: UM.InstanceContainersModel + model: Cura.MaterialsModel { filter: { From b324e90ba5468b19070d4d1536d288572d276df1 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Thu, 22 Jun 2017 18:33:30 +0200 Subject: [PATCH 25/72] Show hover state on active focus --- resources/qml/Settings/SettingCheckBox.qml | 20 +++++++++++----- resources/qml/Settings/SettingComboBox.qml | 24 ++++++++++++------- resources/qml/Settings/SettingExtruder.qml | 14 ++++------- .../qml/Settings/SettingOptionalExtruder.qml | 16 +++++-------- resources/qml/Settings/SettingTextField.qml | 15 ++++++++++-- resources/themes/cura/styles.qml | 6 ++--- 6 files changed, 57 insertions(+), 38 deletions(-) diff --git a/resources/qml/Settings/SettingCheckBox.qml b/resources/qml/Settings/SettingCheckBox.qml index 2a41f80d2c..07b1f865be 100644 --- a/resources/qml/Settings/SettingCheckBox.qml +++ b/resources/qml/Settings/SettingCheckBox.qml @@ -74,7 +74,7 @@ SettingItem color: { - if (!enabled) + if(!enabled) { return UM.Theme.getColor("setting_control_disabled") } @@ -82,14 +82,22 @@ SettingItem { return UM.Theme.getColor("setting_control_highlight") } - else - { - return UM.Theme.getColor("setting_control") - } + return UM.Theme.getColor("setting_control") } border.width: UM.Theme.getSize("default_lining").width - border.color: !enabled ? UM.Theme.getColor("setting_control_disabled_border") : control.containsMouse ? UM.Theme.getColor("setting_control_border_highlight") : UM.Theme.getColor("setting_control_border") + border.color: + { + if(!enabled) + { + return UM.Theme.getColor("setting_control_disabled_border") + } + if(control.containsMouse || control.activeFocus) + { + return UM.Theme.getColor("setting_control_border_highlight") + } + return UM.Theme.getColor("setting_control_border") + } UM.RecolorImage { anchors.verticalCenter: parent.verticalCenter diff --git a/resources/qml/Settings/SettingComboBox.qml b/resources/qml/Settings/SettingComboBox.qml index c655630a8e..4c14d2032b 100644 --- a/resources/qml/Settings/SettingComboBox.qml +++ b/resources/qml/Settings/SettingComboBox.qml @@ -33,21 +33,29 @@ SettingItem { color: { - if (!enabled) + if(!enabled) { return UM.Theme.getColor("setting_control_disabled") } - if(control.hovered || base.activeFocus) + if(control.hovered || control.activeFocus) { return UM.Theme.getColor("setting_control_highlight") } - else - { - return UM.Theme.getColor("setting_control") - } + return UM.Theme.getColor("setting_control") + } + border.width: UM.Theme.getSize("default_lining").width + border.color: + { + if(!enabled) + { + return UM.Theme.getColor("setting_control_disabled_border") + } + if(control.hovered || control.activeFocus) + { + return UM.Theme.getColor("setting_control_border_highlight") + } + return UM.Theme.getColor("setting_control_border") } - border.width: UM.Theme.getSize("default_lining").width; - border.color: !enabled ? UM.Theme.getColor("setting_control_disabled_border") : control.hovered ? UM.Theme.getColor("setting_control_border_highlight") : UM.Theme.getColor("setting_control_border"); } label: Item { diff --git a/resources/qml/Settings/SettingExtruder.qml b/resources/qml/Settings/SettingExtruder.qml index 4a946d16f8..b00b6774be 100644 --- a/resources/qml/Settings/SettingExtruder.qml +++ b/resources/qml/Settings/SettingExtruder.qml @@ -53,7 +53,7 @@ SettingItem { color: { - if (!enabled) + if(!enabled) { return UM.Theme.getColor("setting_control_disabled"); } @@ -61,23 +61,19 @@ SettingItem { return UM.Theme.getColor("setting_control_highlight"); } - else - { - return UM.Theme.getColor("setting_control"); - } + return UM.Theme.getColor("setting_control"); } border.width: UM.Theme.getSize("default_lining").width border.color: { if(!enabled) { - return UM.Theme.getColor("setting_control_disabled_border"); + return UM.Theme.getColor("setting_control_disabled_border") } - if(control.hovered || base.activeFocus) + if(control.hovered || control.activeFocus) { - UM.Theme.getColor("setting_control_border_highlight") + return UM.Theme.getColor("setting_control_border_highlight") } - return UM.Theme.getColor("setting_control_border") } } diff --git a/resources/qml/Settings/SettingOptionalExtruder.qml b/resources/qml/Settings/SettingOptionalExtruder.qml index 1f546b518c..e2ca20571c 100644 --- a/resources/qml/Settings/SettingOptionalExtruder.qml +++ b/resources/qml/Settings/SettingOptionalExtruder.qml @@ -72,31 +72,27 @@ SettingItem { color: { - if (!enabled) + if(!enabled) { return UM.Theme.getColor("setting_control_disabled"); } - if(control.hovered || base.activeFocus) + if(control.hovered || control.activeFocus) { return UM.Theme.getColor("setting_control_highlight"); } - else - { - return UM.Theme.getColor("setting_control"); - } + return UM.Theme.getColor("setting_control"); } border.width: UM.Theme.getSize("default_lining").width border.color: { if(!enabled) { - return UM.Theme.getColor("setting_control_disabled_border"); + return UM.Theme.getColor("setting_control_disabled_border") } - if(control.hovered || base.activeFocus) + if(control.hovered || control.activeFocus) { - UM.Theme.getColor("setting_control_border_highlight") + return UM.Theme.getColor("setting_control_border_highlight") } - return UM.Theme.getColor("setting_control_border") } } diff --git a/resources/qml/Settings/SettingTextField.qml b/resources/qml/Settings/SettingTextField.qml index 9ab23ad7c8..b9f11ea80d 100644 --- a/resources/qml/Settings/SettingTextField.qml +++ b/resources/qml/Settings/SettingTextField.qml @@ -17,10 +17,21 @@ SettingItem anchors.fill: parent border.width: UM.Theme.getSize("default_lining").width - border.color: !enabled ? UM.Theme.getColor("setting_control_disabled_border") : hovered ? UM.Theme.getColor("setting_control_border_highlight") : UM.Theme.getColor("setting_control_border") + border.color: + { + if(!enabled) + { + return UM.Theme.getColor("setting_control_disabled_border") + } + if(hovered || input.activeFocus) + { + return UM.Theme.getColor("setting_control_border_highlight") + } + return UM.Theme.getColor("setting_control_border") + } color: { - if (!enabled) + if(!enabled) { return UM.Theme.getColor("setting_control_disabled") } diff --git a/resources/themes/cura/styles.qml b/resources/themes/cura/styles.qml index 496cc8e489..c4c441da43 100755 --- a/resources/themes/cura/styles.qml +++ b/resources/themes/cura/styles.qml @@ -368,11 +368,11 @@ QtObject { color: { if(!control.enabled) { return Theme.getColor("setting_category_disabled_border"); - } else if(control.hovered && control.checkable && control.checked) { + } else if((control.hovered || control.activeFocus) && control.checkable && control.checked) { return Theme.getColor("setting_category_active_hover_border"); } else if(control.pressed || (control.checkable && control.checked)) { return Theme.getColor("setting_category_active_border"); - } else if(control.hovered) { + } else if(control.hovered || control.activeFocus) { return Theme.getColor("setting_category_hover_border"); } else { return Theme.getColor("setting_category_border"); @@ -508,7 +508,7 @@ QtObject { { color: { - if (!enabled) + if(!enabled) { return UM.Theme.getColor("setting_control_disabled"); } From 67a4ec2a9e56ba6df31fa06efe49a69aa1b2d20f Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Thu, 22 Jun 2017 18:56:55 +0200 Subject: [PATCH 26/72] dark layer view --- resources/themes/cura-dark/theme.json | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/resources/themes/cura-dark/theme.json b/resources/themes/cura-dark/theme.json index 559671dfeb..23cc30579e 100644 --- a/resources/themes/cura-dark/theme.json +++ b/resources/themes/cura-dark/theme.json @@ -181,6 +181,19 @@ "convex_hull": [35, 35, 35, 127], "disallowed_area": [0, 0, 0, 40], - "error_area": [255, 0, 0, 127] + "error_area": [255, 0, 0, 127], + + "layerview_ghost": [32, 32, 32, 96], + "layerview_none": [255, 255, 255, 255], + "layerview_inset_0": [155, 0, 0, 255], + "layerview_inset_x": [0, 155, 0, 255], + "layerview_skin": [155, 155, 0, 255], + "layerview_support": [0, 155, 155, 255], + "layerview_skirt": [0, 155, 155, 255], + "layerview_infill": [155, 117, 0, 255], + "layerview_support_infill": [0, 155, 155, 255], + "layerview_move_combing": [0, 0, 155, 255], + "layerview_move_retraction": [77, 77, 155, 255], + "layerview_support_interface": [39, 117, 155, 255] } } From b958e30fe6b5f175af85055250c563c49e2535f0 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Wed, 21 Jun 2017 14:50:40 +0200 Subject: [PATCH 27/72] Add machine_disallowed_areas and turn off nozzle offsetting for disallowed areas calculation CURA-3663 We don't need to calculate the disallowed areas for certain machines because they have taken into account the nozzle offsets. This commit does the following: - Add machine_disallowed_areas - Add a flag in definition so that disallowed areas calculation with nozzle offsets becomes optional in Cura. Update documentation for no offsetting for nozzles Contributes to issue CURA-3663. --- cura/BuildVolume.py | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/cura/BuildVolume.py b/cura/BuildVolume.py index ff5888b722..4963df65cd 100755 --- a/cura/BuildVolume.py +++ b/cura/BuildVolume.py @@ -716,6 +716,11 @@ class BuildVolume(SceneNode): polygon = polygon.getMinkowskiHull(Polygon.approximatedCircle(border_size)) machine_disallowed_polygons.append(polygon) + # For certain machines we don't need to compute disallowed areas for each nozzle. + # So we check here and only do the nozzle offsetting if needed. + no_nozzle_offsetting_for_disallowed_areas = self._global_container_stack.getMetaDataEntry( + "no_nozzle_offsetting_for_disallowed_areas", False) + result = {} for extruder in used_extruders: extruder_id = extruder.getId() @@ -735,14 +740,17 @@ class BuildVolume(SceneNode): right_unreachable_border = 0 top_unreachable_border = 0 bottom_unreachable_border = 0 - #The build volume is defined as the union of the area that all extruders can reach, so we need to know the relative offset to all extruders. - for other_extruder in ExtruderManager.getInstance().getActiveExtruderStacks(): - other_offset_x = other_extruder.getProperty("machine_nozzle_offset_x", "value") - other_offset_y = other_extruder.getProperty("machine_nozzle_offset_y", "value") - left_unreachable_border = min(left_unreachable_border, other_offset_x - offset_x) - right_unreachable_border = max(right_unreachable_border, other_offset_x - offset_x) - top_unreachable_border = min(top_unreachable_border, other_offset_y - offset_y) - bottom_unreachable_border = max(bottom_unreachable_border, other_offset_y - offset_y) + + # Only do nozzle offsetting if needed + if not no_nozzle_offsetting_for_disallowed_areas: + #The build volume is defined as the union of the area that all extruders can reach, so we need to know the relative offset to all extruders. + for other_extruder in ExtruderManager.getInstance().getActiveExtruderStacks(): + other_offset_x = other_extruder.getProperty("machine_nozzle_offset_x", "value") + other_offset_y = other_extruder.getProperty("machine_nozzle_offset_y", "value") + left_unreachable_border = min(left_unreachable_border, other_offset_x - offset_x) + right_unreachable_border = max(right_unreachable_border, other_offset_x - offset_x) + top_unreachable_border = min(top_unreachable_border, other_offset_y - offset_y) + bottom_unreachable_border = max(bottom_unreachable_border, other_offset_y - offset_y) half_machine_width = self._global_container_stack.getProperty("machine_width", "value") / 2 half_machine_depth = self._global_container_stack.getProperty("machine_depth", "value") / 2 From 13c9519a7c7cec619b4d36275193f706bfb37e8c Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 23 Jun 2017 09:42:08 +0200 Subject: [PATCH 28/72] Fix deprecated decorator Contributes to issue CURA-2822. --- cura/Settings/MachineManager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index a150e94e76..8aa060896a 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -1122,7 +1122,7 @@ class MachineManager(QObject): def createMachineManager(engine=None, script_engine=None): return MachineManager() - @deprecated #Use ExtruderStack.material = ... and it won't be necessary. + @deprecated("Use ExtruderStack.material = ... and it won't be necessary", "2.7") def _updateMaterialContainer(self, definition: "DefinitionContainer", stack: "ContainerStack", variant_container: Optional["InstanceContainer"] = None, preferred_material_name: Optional[str] = None): if not definition.getMetaDataEntry("has_materials"): return self._empty_material_container From 3049fb4da2068ed1a7ecd6c480ec9c3718d6c211 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 23 Jun 2017 09:57:07 +0200 Subject: [PATCH 29/72] Made setting warning colors for dark theme a bit darker. --- resources/themes/cura-dark/theme.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/themes/cura-dark/theme.json b/resources/themes/cura-dark/theme.json index 559671dfeb..5855b59d04 100644 --- a/resources/themes/cura-dark/theme.json +++ b/resources/themes/cura-dark/theme.json @@ -114,8 +114,8 @@ "setting_control_disabled_text": [127, 127, 127, 255], "setting_control_disabled_border": [127, 127, 127, 255], "setting_unit": [127, 127, 127, 255], - "setting_validation_error": [255, 57, 14, 255], - "setting_validation_warning": [255, 186, 15, 255], + "setting_validation_error": [204, 37, 0, 255], + "setting_validation_warning": [204, 146, 0, 255], "setting_validation_ok": [83, 83, 83, 255], "progressbar_background": [66, 66, 66, 255], From 85bcc56a64cd747ec97ee8ab7ba59387cf9d7fb8 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 23 Jun 2017 11:05:33 +0200 Subject: [PATCH 30/72] Update TPU profiles These profiles are improved by the materials team. This is directly copied from them and should now be optimised for our use. Contributes to issue CURA-3960. --- .../ultimaker3/um3_aa0.4_TPU_Draft_Print.inst.cfg | 14 +++++++------- .../ultimaker3/um3_aa0.4_TPU_Fast_Print.inst.cfg | 14 +++++++------- .../um3_aa0.4_TPU_Normal_Quality.inst.cfg | 14 +++++++------- .../ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg | 10 +++++++--- .../um3_aa0.8_TPU_Superdraft_Print.inst.cfg | 10 +++++++--- .../um3_aa0.8_TPU_Verydraft_Print.inst.cfg | 10 +++++++--- 6 files changed, 42 insertions(+), 30 deletions(-) diff --git a/resources/quality/ultimaker3/um3_aa0.4_TPU_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_TPU_Draft_Print.inst.cfg index 3f815fac3d..8c6318a698 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_TPU_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_TPU_Draft_Print.inst.cfg @@ -29,11 +29,11 @@ jerk_print = 25 layer_height = 0.2 line_width = =machine_nozzle_size * 0.95 machine_min_cool_heat_time_window = 15 -machine_nozzle_cool_down_speed = 0.85 -machine_nozzle_heat_up_speed = 1.5 -material_final_print_temperature = =material_print_temperature - 10 +machine_nozzle_cool_down_speed = 0.5 +machine_nozzle_heat_up_speed = 2.5 +material_final_print_temperature = =material_print_temperature - 21 material_flow = 106 -material_initial_print_temperature = =material_print_temperature - 5 +material_initial_print_temperature = =material_print_temperature - 16 material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =default_material_print_temperature + 2 material_standby_temperature = 100 @@ -43,8 +43,8 @@ prime_tower_wipe_enabled = True retraction_count_max = 12 retraction_extra_prime_amount = 0.8 retraction_extrusion_window = 1 -retraction_hop = 2 -retraction_hop_enabled = False +retraction_hop = 1.5 +retraction_hop_enabled = True retraction_hop_only_when_collides = True retraction_min_travel = 0.8 retraction_prime_speed = 15 @@ -61,7 +61,7 @@ switch_extruder_prime_speed = 15 switch_extruder_retraction_amount = 20 switch_extruder_retraction_speeds = 35 top_bottom_thickness = 0.7 -travel_avoid_distance = 0.5 +travel_avoid_distance = 1.5 wall_0_inset = 0 wall_line_width_x = =line_width wall_thickness = 0.76 diff --git a/resources/quality/ultimaker3/um3_aa0.4_TPU_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_TPU_Fast_Print.inst.cfg index e45ec15dec..129135f6a1 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_TPU_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_TPU_Fast_Print.inst.cfg @@ -29,11 +29,11 @@ jerk_print = 25 layer_height = 0.15 line_width = =machine_nozzle_size * 0.95 machine_min_cool_heat_time_window = 15 -machine_nozzle_cool_down_speed = 0.85 -machine_nozzle_heat_up_speed = 1.5 -material_final_print_temperature = =material_print_temperature - 10 +machine_nozzle_cool_down_speed = 0.5 +machine_nozzle_heat_up_speed = 2.5 +material_final_print_temperature = =material_print_temperature - 21 material_flow = 106 -material_initial_print_temperature = =material_print_temperature - 5 +material_initial_print_temperature = =material_print_temperature - 16 material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =default_material_print_temperature + 2 material_standby_temperature = 100 @@ -44,8 +44,8 @@ retraction_amount = 7 retraction_count_max = 12 retraction_extra_prime_amount = 0.8 retraction_extrusion_window = 1 -retraction_hop = 2 -retraction_hop_enabled = False +retraction_hop = 1.5 +retraction_hop_enabled = True retraction_hop_only_when_collides = True retraction_min_travel = 0.8 retraction_prime_speed = 15 @@ -62,7 +62,7 @@ switch_extruder_prime_speed = 15 switch_extruder_retraction_amount = 20 switch_extruder_retraction_speeds = 35 top_bottom_thickness = 0.7 -travel_avoid_distance = 0.5 +travel_avoid_distance = 1.5 wall_0_inset = 0 wall_line_width_x = =line_width wall_thickness = 0.76 diff --git a/resources/quality/ultimaker3/um3_aa0.4_TPU_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_TPU_Normal_Quality.inst.cfg index 707e535947..eb71f1ef3f 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_TPU_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_TPU_Normal_Quality.inst.cfg @@ -28,11 +28,11 @@ jerk_enabled = True jerk_print = 25 line_width = =machine_nozzle_size * 0.95 machine_min_cool_heat_time_window = 15 -machine_nozzle_cool_down_speed = 0.85 -machine_nozzle_heat_up_speed = 1.5 -material_final_print_temperature = =material_print_temperature - 10 +machine_nozzle_cool_down_speed = 0.5 +machine_nozzle_heat_up_speed = 2.5 +material_final_print_temperature = =material_print_temperature - 21 material_flow = 106 -material_initial_print_temperature = =material_print_temperature - 10 +material_initial_print_temperature = =material_print_temperature - 16 material_print_temperature_layer_0 = =default_material_print_temperature material_standby_temperature = 100 multiple_mesh_overlap = 0 @@ -41,8 +41,8 @@ prime_tower_wipe_enabled = True retraction_count_max = 12 retraction_extra_prime_amount = 0.8 retraction_extrusion_window = 1 -retraction_hop = 2 -retraction_hop_enabled = False +retraction_hop = 1.5 +retraction_hop_enabled = True retraction_hop_only_when_collides = True retraction_min_travel = 0.8 retraction_prime_speed = 15 @@ -59,7 +59,7 @@ switch_extruder_prime_speed = 15 switch_extruder_retraction_amount = 20 switch_extruder_retraction_speeds = 35 top_bottom_thickness = 0.7 -travel_avoid_distance = 0.5 +travel_avoid_distance = 1.5 wall_0_inset = 0 wall_line_width_x = =line_width wall_thickness = 0.76 diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg index 41ac43a840..33f1b7952a 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg @@ -25,8 +25,12 @@ infill_sparse_density = 80 jerk_prime_tower = =math.ceil(jerk_print * 25 / 25) jerk_support = =math.ceil(jerk_print * 25 / 25) jerk_wall_0 = =math.ceil(jerk_wall * 15 / 25) +machine_nozzle_cool_down_speed = 0.5 +machine_nozzle_heat_up_speed = 2.5 material_bed_temperature_layer_0 = 0 +material_final_print_temperature = =material_print_temperature - 21 material_flow = 105 +material_initial_print_temperature = =material_print_temperature - 16 material_print_temperature = =default_material_print_temperature - 2 material_print_temperature_layer_0 = =default_material_print_temperature + 2 material_standby_temperature = 100 @@ -37,8 +41,8 @@ prime_tower_wall_thickness = =prime_tower_line_width * 2 retract_at_layer_change = False retraction_count_max = 12 retraction_extra_prime_amount = 0.5 -retraction_hop = 0.5 -retraction_hop_enabled = False +retraction_hop = 1.5 +retraction_hop_enabled = True retraction_hop_only_when_collides = False retraction_min_travel = 0.8 retraction_prime_speed = 15 @@ -56,7 +60,7 @@ switch_extruder_prime_speed = 15 switch_extruder_retraction_amount = 20 switch_extruder_retraction_speeds = 45 top_bottom_thickness = 1.2 -travel_avoid_distance = 0.5 +travel_avoid_distance = 1.5 travel_compensate_overlapping_walls_0_enabled = False wall_0_wipe_dist = =line_width * 2 wall_line_width_x = =round(line_width * 0.6 / 0.8, 2) diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg index 66c0281b78..42a819ec82 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg @@ -26,8 +26,12 @@ jerk_prime_tower = =math.ceil(jerk_print * 25 / 25) jerk_support = =math.ceil(jerk_print * 25 / 25) jerk_wall_0 = =math.ceil(jerk_wall * 15 / 25) layer_height = 0.4 +machine_nozzle_cool_down_speed = 0.5 +machine_nozzle_heat_up_speed = 2.5 material_bed_temperature_layer_0 = 0 +material_final_print_temperature = =material_print_temperature - 21 material_flow = 105 +material_initial_print_temperature = =material_print_temperature - 16 material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =default_material_print_temperature + 2 material_standby_temperature = 100 @@ -38,8 +42,8 @@ prime_tower_wall_thickness = =prime_tower_line_width * 2 retract_at_layer_change = False retraction_count_max = 12 retraction_extra_prime_amount = 0.5 -retraction_hop = 0.5 -retraction_hop_enabled = False +retraction_hop = 1.5 +retraction_hop_enabled = True retraction_hop_only_when_collides = False retraction_min_travel = 0.8 retraction_prime_speed = 15 @@ -57,7 +61,7 @@ switch_extruder_prime_speed = 15 switch_extruder_retraction_amount = 20 switch_extruder_retraction_speeds = 45 top_bottom_thickness = 1.2 -travel_avoid_distance = 0.5 +travel_avoid_distance = 1.5 travel_compensate_overlapping_walls_0_enabled = False wall_0_wipe_dist = =line_width * 2 wall_line_width_x = =round(line_width * 0.6 / 0.8, 2) diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg index 1274f43eea..dd3cc8fa68 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg @@ -26,8 +26,12 @@ jerk_prime_tower = =math.ceil(jerk_print * 25 / 25) jerk_support = =math.ceil(jerk_print * 25 / 25) jerk_wall_0 = =math.ceil(jerk_wall * 15 / 25) layer_height = 0.3 +machine_nozzle_cool_down_speed = 0.5 +machine_nozzle_heat_up_speed = 2.5 material_bed_temperature_layer_0 = 0 +material_final_print_temperature = =material_print_temperature - 21 material_flow = 105 +material_initial_print_temperature = =material_print_temperature - 16 material_print_temperature_layer_0 = =default_material_print_temperature + 2 material_standby_temperature = 100 multiple_mesh_overlap = 0.2 @@ -37,8 +41,8 @@ prime_tower_wall_thickness = =prime_tower_line_width * 2 retract_at_layer_change = False retraction_count_max = 12 retraction_extra_prime_amount = 0.5 -retraction_hop = 0.5 -retraction_hop_enabled = False +retraction_hop = 1.5 +retraction_hop_enabled = True retraction_hop_only_when_collides = False retraction_min_travel = 0.8 retraction_prime_speed = 15 @@ -56,7 +60,7 @@ switch_extruder_prime_speed = 15 switch_extruder_retraction_amount = 20 switch_extruder_retraction_speeds = 45 top_bottom_thickness = 1.2 -travel_avoid_distance = 0.5 +travel_avoid_distance = 1.5 travel_compensate_overlapping_walls_0_enabled = False wall_0_wipe_dist = =line_width * 2 wall_line_width_x = =round(line_width * 0.6 / 0.8, 2) From 8ffc3eabdb7efc663aea6a9588a00ef0a4bd7689 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 23 Jun 2017 11:06:46 +0200 Subject: [PATCH 31/72] Add 0.8mm profiles for CPE+ and PC These are copied directly from the materials team and should now be optimised. Contributes to issue CURA-3960. --- .../um3_aa0.8_CPEP_Draft_Print.inst.cfg | 98 +++++++++++++++++ .../um3_aa0.8_CPEP_Superdraft_Print.inst.cfg | 98 +++++++++++++++++ .../um3_aa0.8_CPEP_Verydraft_Print.inst.cfg | 98 +++++++++++++++++ .../um3_aa0.8_PC_Draft_Print.inst.cfg | 101 ++++++++++++++++++ .../um3_aa0.8_PC_Superdraft_Print.inst.cfg | 101 ++++++++++++++++++ .../um3_aa0.8_PC_Verydraft_Print.inst.cfg | 101 ++++++++++++++++++ 6 files changed, 597 insertions(+) create mode 100644 resources/quality/ultimaker3/um3_aa0.8_CPEP_Draft_Print.inst.cfg create mode 100644 resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg create mode 100644 resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg create mode 100644 resources/quality/ultimaker3/um3_aa0.8_PC_Draft_Print.inst.cfg create mode 100644 resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg create mode 100644 resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Draft_Print.inst.cfg new file mode 100644 index 0000000000..a40339e9c9 --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Draft_Print.inst.cfg @@ -0,0 +1,98 @@ +[general] +version = 2 +name = Normal Print 0.8 +definition = ultimaker3 + +[metadata] +type = quality +quality_type = draft +material = generic_cpe_plus_ultimaker3_AA_0.8 +weight = -2 +setting_version = 1 + +[values] +acceleration_enabled = True +acceleration_infill = =acceleration_print +acceleration_layer_0 = =acceleration_topbottom +acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_print = 4000 +acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_support_infill = =acceleration_support +acceleration_support_interface = =acceleration_topbottom +acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) +acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) +acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) +acceleration_wall_x = =acceleration_wall +adhesion_type = brim +brim_width = 14 +cool_fan_full_at_height = =layer_height_0 + 14 * layer_height +cool_fan_speed = 8 +cool_fan_speed_max = 100 +cool_min_layer_time = 5 +cool_min_speed = 5 +infill_before_walls = True +infill_line_width = =round(line_width * 0.6 / 0.7, 2) +infill_overlap = 0 +infill_pattern = triangles +infill_sparse_density = 20 +infill_wipe_dist = 0 +jerk_enabled = True +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_topbottom +jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) +jerk_print = 25 +jerk_support = =math.ceil(jerk_print * 15 / 25) +jerk_support_infill = =jerk_support +jerk_support_interface = =jerk_topbottom +jerk_topbottom = =math.ceil(jerk_print * 25 / 25) +jerk_wall = =math.ceil(jerk_print * 25 / 25) +jerk_wall_0 = =math.ceil(jerk_wall * 25 / 25) +jerk_wall_x = =jerk_wall +layer_height = 0.2 +layer_height_0 = =round(machine_nozzle_size / 1.5, 2) +line_width = =machine_nozzle_size * 0.9375 +machine_min_cool_heat_time_window = 15 +machine_nozzle_cool_down_speed = 0.9 +machine_nozzle_heat_up_speed = 1.4 +material_bed_temperature = 107 +material_print_temperature = =default_material_print_temperature - 10 +material_print_temperature_layer_0 = =material_print_temperature +material_initial_print_temperature = =material_print_temperature - 5 +material_final_print_temperature = =material_print_temperature - 10 +material_standby_temperature = 100 +multiple_mesh_overlap = 0 +prime_tower_enable = False +prime_tower_wipe_enabled = True +retraction_amount = 6.5 +retraction_combing = off +retraction_count_max = 25 +retraction_extrusion_window = 1 +retraction_hop = 0.1 +retraction_hop_enabled = False +retraction_hop_only_when_collides = True +skin_overlap = 0 +speed_infill = =speed_print +speed_layer_0 = 15 +speed_prime_tower = =speed_topbottom +speed_print = 50 +speed_slowdown_layers = 15 +speed_support = =speed_wall_0 +speed_support_interface = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 35 / 50) +speed_wall = =math.ceil(speed_print * 40 / 50) +speed_wall_0 = =math.ceil(speed_wall * 35 / 40) +speed_wall_x = =speed_wall +support_angle = 60 +support_bottom_distance = =support_z_distance +support_line_width = =round(line_width * 0.6 / 0.7, 2) +support_top_distance = =support_z_distance +support_xy_distance = =wall_line_width_0 * 2.5 +support_xy_distance_overhang = =wall_line_width_0 +support_z_distance = =layer_height +switch_extruder_retraction_amount = 16.5 +top_bottom_thickness = 1.2 +travel_avoid_distance = 1.5 +travel_compensate_overlapping_walls_enabled = True +wall_0_inset = 0 +wall_line_width_x = =wall_line_width +wall_thickness = 2 diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg new file mode 100644 index 0000000000..8b1fbabea8 --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg @@ -0,0 +1,98 @@ +[general] +version = 2 +name = Draft Print 0.8 +definition = ultimaker3 + +[metadata] +type = quality +quality_type = superdraft +material = generic_cpe_plus_ultimaker3_AA_0.8 +weight = -2 +setting_version = 1 + +[values] +acceleration_enabled = True +acceleration_infill = =acceleration_print +acceleration_layer_0 = =acceleration_topbottom +acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_print = 4000 +acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_support_infill = =acceleration_support +acceleration_support_interface = =acceleration_topbottom +acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) +acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) +acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) +acceleration_wall_x = =acceleration_wall +adhesion_type = brim +brim_width = 14 +cool_fan_full_at_height = =layer_height_0 + 7 * layer_height +cool_fan_speed = 8 +cool_fan_speed_max = 100 +cool_min_layer_time = 5 +cool_min_speed = 5 +infill_before_walls = True +infill_line_width = =round(line_width * 0.6 / 0.7, 2) +infill_overlap = 0 +infill_pattern = triangles +infill_sparse_density = 20 +infill_wipe_dist = 0 +jerk_enabled = True +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_topbottom +jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) +jerk_print = 25 +jerk_support = =math.ceil(jerk_print * 15 / 25) +jerk_support_infill = =jerk_support +jerk_support_interface = =jerk_topbottom +jerk_topbottom = =math.ceil(jerk_print * 25 / 25) +jerk_wall = =math.ceil(jerk_print * 25 / 25) +jerk_wall_0 = =math.ceil(jerk_wall * 25 / 25) +jerk_wall_x = =jerk_wall +layer_height = 0.4 +layer_height_0 = =round(machine_nozzle_size / 1.5, 2) +line_width = =machine_nozzle_size * 0.9375 +machine_min_cool_heat_time_window = 15 +machine_nozzle_cool_down_speed = 0.9 +machine_nozzle_heat_up_speed = 1.4 +material_bed_temperature = 107 +material_print_temperature = =default_material_print_temperature - 5 +material_print_temperature_layer_0 = =material_print_temperature +material_initial_print_temperature = =material_print_temperature - 5 +material_final_print_temperature = =material_print_temperature - 10 +material_standby_temperature = 100 +multiple_mesh_overlap = 0 +prime_tower_enable = True +prime_tower_wipe_enabled = True +retraction_amount = 6.5 +retraction_combing = off +retraction_count_max = 25 +retraction_extrusion_window = 1 +retraction_hop = 0.1 +retraction_hop_enabled = False +retraction_hop_only_when_collides = True +skin_overlap = 0 +speed_infill = =speed_print +speed_layer_0 = 15 +speed_prime_tower = =speed_topbottom +speed_print = 50 +speed_slowdown_layers = 8 +speed_support = =speed_wall_0 +speed_support_interface = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 35 / 50) +speed_wall = =math.ceil(speed_print * 40 / 50) +speed_wall_0 = =math.ceil(speed_wall * 35 / 40) +speed_wall_x = =speed_wall +support_angle = 60 +support_bottom_distance = =support_z_distance +support_line_width = =round(line_width * 0.6 / 0.7, 2) +support_top_distance = =support_z_distance +support_xy_distance = =wall_line_width_0 * 2.5 +support_xy_distance_overhang = =wall_line_width_0 +support_z_distance = =layer_height +switch_extruder_retraction_amount = 16.5 +top_bottom_thickness = 1.2 +travel_avoid_distance = 1.5 +travel_compensate_overlapping_walls_enabled = True +wall_0_inset = 0 +wall_line_width_x = =wall_line_width +wall_thickness = 2 diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg new file mode 100644 index 0000000000..a478ea8b8a --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg @@ -0,0 +1,98 @@ +[general] +version = 2 +name = Fasr Print 0.8 +definition = ultimaker3 + +[metadata] +type = quality +quality_type = verydraft +material = generic_cpe_plus_ultimaker3_AA_0.8 +weight = -1 +setting_version = 1 + +[values] +acceleration_enabled = True +acceleration_infill = =acceleration_print +acceleration_layer_0 = =acceleration_topbottom +acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_print = 4000 +acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_support_infill = =acceleration_support +acceleration_support_interface = =acceleration_topbottom +acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) +acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) +acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) +acceleration_wall_x = =acceleration_wall +adhesion_type = brim +brim_width = 14 +cool_fan_full_at_height = =layer_height_0 + 9 * layer_height +cool_fan_speed = 8 +cool_fan_speed_max = 100 +cool_min_layer_time = 5 +cool_min_speed = 5 +infill_before_walls = True +infill_line_width = =round(line_width * 0.6 / 0.7, 2) +infill_overlap = 0 +infill_pattern = triangles +infill_sparse_density = 20 +infill_wipe_dist = 0 +jerk_enabled = True +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_topbottom +jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) +jerk_print = 25 +jerk_support = =math.ceil(jerk_print * 15 / 25) +jerk_support_infill = =jerk_support +jerk_support_interface = =jerk_topbottom +jerk_topbottom = =math.ceil(jerk_print * 25 / 25) +jerk_wall = =math.ceil(jerk_print * 25 / 25) +jerk_wall_0 = =math.ceil(jerk_wall * 25 / 25) +jerk_wall_x = =jerk_wall +layer_height = 0.3 +layer_height_0 = =round(machine_nozzle_size / 1.5, 2) +line_width = =machine_nozzle_size * 0.9375 +machine_min_cool_heat_time_window = 15 +machine_nozzle_cool_down_speed = 0.9 +machine_nozzle_heat_up_speed = 1.4 +material_bed_temperature = 107 +material_print_temperature = =default_material_print_temperature - 7 +material_print_temperature_layer_0 = =material_print_temperature +material_initial_print_temperature = =material_print_temperature - 5 +material_final_print_temperature = =material_print_temperature - 10 +material_standby_temperature = 100 +multiple_mesh_overlap = 0 +prime_tower_enable = True +prime_tower_wipe_enabled = True +retraction_amount = 6.5 +retraction_combing = off +retraction_count_max = 25 +retraction_extrusion_window = 1 +retraction_hop = 0.1 +retraction_hop_enabled = False +retraction_hop_only_when_collides = True +skin_overlap = 0 +speed_infill = =speed_print +speed_layer_0 = 15 +speed_prime_tower = =speed_topbottom +speed_print = 50 +speed_slowdown_layers = 10 +speed_support = =speed_wall_0 +speed_support_interface = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 35 / 50) +speed_wall = =math.ceil(speed_print * 40 / 50) +speed_wall_0 = =math.ceil(speed_wall * 35 / 40) +speed_wall_x = =speed_wall +support_angle = 60 +support_bottom_distance = =support_z_distance +support_line_width = =round(line_width * 0.6 / 0.7, 2) +support_top_distance = =support_z_distance +support_xy_distance = =wall_line_width_0 * 2.5 +support_xy_distance_overhang = =wall_line_width_0 +support_z_distance = =layer_height +switch_extruder_retraction_amount = 16.5 +top_bottom_thickness = 1.2 +travel_avoid_distance = 1.5 +travel_compensate_overlapping_walls_enabled = True +wall_0_inset = 0 +wall_line_width_x = =wall_line_width +wall_thickness = 2 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PC_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PC_Draft_Print.inst.cfg new file mode 100644 index 0000000000..c03e7bc385 --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.8_PC_Draft_Print.inst.cfg @@ -0,0 +1,101 @@ +[general] +version = 2 +name = Normal 0.8 Print +definition = ultimaker3 + +[metadata] +type = quality +quality_type = draft +material = generic_pc_ultimaker3_AA_0.8 +weight = 0 +setting_version = 1 + +[values] +acceleration_enabled = True +acceleration_infill = =acceleration_print +acceleration_layer_0 = =acceleration_topbottom +acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_print = 4000 +acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_support_infill = =acceleration_support +acceleration_support_interface = =acceleration_topbottom +acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) +acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) +acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) +acceleration_wall_x = =acceleration_wall +adhesion_type = brim +brim_width = 14 +cool_fan_full_at_height = =layer_height_0 + 14 * layer_height +cool_fan_speed = 5 +cool_fan_speed_max = 100 +cool_min_layer_time = 5 +cool_min_speed = 5 +infill_before_walls = True +infill_line_width = =round(line_width * 0.6 / 0.7, 2) +infill_overlap = 0 +infill_pattern = triangles +infill_sparse_density = 20 +infill_wipe_dist = 0 +jerk_enabled = True +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_topbottom +jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) +jerk_print = 25 +jerk_support = =math.ceil(jerk_print * 15 / 25) +jerk_support_infill = =jerk_support +jerk_support_interface = =jerk_topbottom +jerk_topbottom = =math.ceil(jerk_print * 25 / 25) +jerk_wall = =math.ceil(jerk_print * 25 / 25) +jerk_wall_0 = =math.ceil(jerk_wall * 25 / 25) +jerk_wall_x = =jerk_wall +layer_height = 0.2 +layer_height_0 = =round(machine_nozzle_size / 1.5, 2) +line_width = =machine_nozzle_size * 0.875 +machine_min_cool_heat_time_window = 15 +machine_nozzle_cool_down_speed = 0.85 +machine_nozzle_heat_up_speed = 1.5 +material_bed_temperature = 107 +material_print_temperature = =default_material_print_temperature - 5 +material_print_temperature_layer_0 = =material_print_temperature +material_initial_print_temperature = =material_print_temperature - 5 +material_final_print_temperature = =material_print_temperature - 10 +material_standby_temperature = 100 +multiple_mesh_overlap = 0 +prime_tower_enable = False +prime_tower_wipe_enabled = True +raft_airgap = 0.5 +raft_margin = 15 +retract_at_layer_change = True +retraction_amount = 6.5 +retraction_count_max = 25 +retraction_extrusion_window = 1 +retraction_hop = 2 +retraction_hop_enabled = True +retraction_hop_only_when_collides = True +skin_overlap = 0 +speed_infill = =speed_print +speed_layer_0 = 15 +speed_prime_tower = =speed_topbottom +speed_print = 50 +speed_slowdown_layers = 15 +speed_support = =speed_wall_0 +speed_support_interface = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 25 / 50) +speed_wall = =math.ceil(speed_print * 40 / 50) +speed_wall_0 = =math.ceil(speed_wall * 30 / 40) +speed_wall_x = =speed_wall +support_angle = 60 +support_bottom_distance = =support_z_distance / 2 +support_line_width = =round(line_width * 0.6 / 0.7, 2) +support_pattern = zigzag +support_top_distance = =support_z_distance +support_xy_distance = =wall_line_width_0 * 2.5 +support_xy_distance_overhang = =wall_line_width_0 +support_z_distance = =layer_height * 2 +switch_extruder_retraction_amount = 16.5 +top_bottom_thickness = 1.4 +travel_avoid_distance = 3 +travel_compensate_overlapping_walls_enabled = True +wall_0_inset = 0 +wall_line_width_x = =wall_line_width +wall_thickness = 2 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg new file mode 100644 index 0000000000..eed4fbf3a6 --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg @@ -0,0 +1,101 @@ +[general] +version = 2 +name = Draft 0.8 Print +definition = ultimaker3 + +[metadata] +type = quality +quality_type = superdraft +material = generic_pc_ultimaker3_AA_0.8 +weight = -2 +setting_version = 1 + +[values] +acceleration_enabled = True +acceleration_infill = =acceleration_print +acceleration_layer_0 = =acceleration_topbottom +acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_print = 4000 +acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_support_infill = =acceleration_support +acceleration_support_interface = =acceleration_topbottom +acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) +acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) +acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) +acceleration_wall_x = =acceleration_wall +adhesion_type = brim +brim_width = 14 +cool_fan_full_at_height = =layer_height_0 + 7 * layer_height +cool_fan_speed = 5 +cool_fan_speed_max = 100 +cool_min_layer_time = 5 +cool_min_speed = 5 +infill_before_walls = True +infill_line_width = =round(line_width * 0.6 / 0.7, 2) +infill_overlap = 0 +infill_pattern = triangles +infill_sparse_density = 20 +infill_wipe_dist = 0 +jerk_enabled = True +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_topbottom +jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) +jerk_print = 25 +jerk_support = =math.ceil(jerk_print * 15 / 25) +jerk_support_infill = =jerk_support +jerk_support_interface = =jerk_topbottom +jerk_topbottom = =math.ceil(jerk_print * 25 / 25) +jerk_wall = =math.ceil(jerk_print * 25 / 25) +jerk_wall_0 = =math.ceil(jerk_wall * 25 / 25) +jerk_wall_x = =jerk_wall +layer_height = 0.4 +layer_height_0 = =round(machine_nozzle_size / 1.5, 2) +line_width = =machine_nozzle_size * 0.875 +machine_min_cool_heat_time_window = 15 +machine_nozzle_cool_down_speed = 0.85 +machine_nozzle_heat_up_speed = 1.5 +material_bed_temperature = 107 +material_print_temperature = =default_material_print_temperature +material_print_temperature_layer_0 = =material_print_temperature +material_initial_print_temperature = =material_print_temperature - 5 +material_final_print_temperature = =material_print_temperature - 10 +material_standby_temperature = 100 +multiple_mesh_overlap = 0 +prime_tower_enable = False +prime_tower_wipe_enabled = True +raft_airgap = 0.5 +raft_margin = 15 +retract_at_layer_change = True +retraction_amount = 6.5 +retraction_count_max = 25 +retraction_extrusion_window = 1 +retraction_hop = 2 +retraction_hop_enabled = True +retraction_hop_only_when_collides = True +skin_overlap = 0 +speed_infill = =speed_print +speed_layer_0 = 15 +speed_prime_tower = =speed_topbottom +speed_print = 50 +speed_slowdown_layers = 8 +speed_support = =speed_wall_0 +speed_support_interface = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 25 / 50) +speed_wall = =math.ceil(speed_print * 40 / 50) +speed_wall_0 = =math.ceil(speed_wall * 30 / 40) +speed_wall_x = =speed_wall +support_angle = 60 +support_bottom_distance = =support_z_distance / 2 +support_line_width = =round(line_width * 0.6 / 0.7, 2) +support_pattern = zigzag +support_top_distance = =support_z_distance +support_xy_distance = =wall_line_width_0 * 2.5 +support_xy_distance_overhang = =wall_line_width_0 +support_z_distance = =layer_height * 2 +switch_extruder_retraction_amount = 16.5 +top_bottom_thickness = 1.4 +travel_avoid_distance = 3 +travel_compensate_overlapping_walls_enabled = True +wall_0_inset = 0 +wall_line_width_x = =wall_line_width +wall_thickness = 2 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg new file mode 100644 index 0000000000..c1a15d3ddc --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg @@ -0,0 +1,101 @@ +[general] +version = 2 +name = Fast 0.8 Print +definition = ultimaker3 + +[metadata] +type = quality +quality_type = verydraft +material = generic_pc_ultimaker3_AA_0.8 +weight = -1 +setting_version = 1 + +[values] +acceleration_enabled = True +acceleration_infill = =acceleration_print +acceleration_layer_0 = =acceleration_topbottom +acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_print = 4000 +acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_support_infill = =acceleration_support +acceleration_support_interface = =acceleration_topbottom +acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) +acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) +acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) +acceleration_wall_x = =acceleration_wall +adhesion_type = brim +brim_width = 14 +cool_fan_full_at_height = =layer_height_0 + 9 * layer_height +cool_fan_speed = 5 +cool_fan_speed_max = 100 +cool_min_layer_time = 5 +cool_min_speed = 5 +infill_before_walls = True +infill_line_width = =round(line_width * 0.6 / 0.7, 2) +infill_overlap = 0 +infill_pattern = triangles +infill_sparse_density = 20 +infill_wipe_dist = 0 +jerk_enabled = True +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_topbottom +jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) +jerk_print = 25 +jerk_support = =math.ceil(jerk_print * 15 / 25) +jerk_support_infill = =jerk_support +jerk_support_interface = =jerk_topbottom +jerk_topbottom = =math.ceil(jerk_print * 25 / 25) +jerk_wall = =math.ceil(jerk_print * 25 / 25) +jerk_wall_0 = =math.ceil(jerk_wall * 25 / 25) +jerk_wall_x = =jerk_wall +layer_height = 0.3 +layer_height_0 = =round(machine_nozzle_size / 1.5, 2) +line_width = =machine_nozzle_size * 0.875 +machine_min_cool_heat_time_window = 15 +machine_nozzle_cool_down_speed = 0.85 +machine_nozzle_heat_up_speed = 1.5 +material_bed_temperature = 107 +material_print_temperature = =default_material_print_temperature - 2 +material_print_temperature_layer_0 = =material_print_temperature +material_initial_print_temperature = =material_print_temperature - 5 +material_final_print_temperature = =material_print_temperature - 10 +material_standby_temperature = 100 +multiple_mesh_overlap = 0 +prime_tower_enable = False +prime_tower_wipe_enabled = True +raft_airgap = 0.5 +raft_margin = 15 +retract_at_layer_change = True +retraction_amount = 6.5 +retraction_count_max = 25 +retraction_extrusion_window = 1 +retraction_hop = 2 +retraction_hop_enabled = True +retraction_hop_only_when_collides = True +skin_overlap = 0 +speed_infill = =speed_print +speed_layer_0 = 15 +speed_prime_tower = =speed_topbottom +speed_print = 50 +speed_slowdown_layers = 10 +speed_support = =speed_wall_0 +speed_support_interface = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 25 / 50) +speed_wall = =math.ceil(speed_print * 40 / 50) +speed_wall_0 = =math.ceil(speed_wall * 30 / 40) +speed_wall_x = =speed_wall +support_angle = 60 +support_bottom_distance = =support_z_distance / 2 +support_line_width = =round(line_width * 0.6 / 0.7, 2) +support_pattern = zigzag +support_top_distance = =support_z_distance +support_xy_distance = =wall_line_width_0 * 2.5 +support_xy_distance_overhang = =wall_line_width_0 +support_z_distance = =layer_height * 2 +switch_extruder_retraction_amount = 16.5 +top_bottom_thickness = 1.4 +travel_avoid_distance = 3 +travel_compensate_overlapping_walls_enabled = True +wall_0_inset = 0 +wall_line_width_x = =wall_line_width +wall_thickness = 2 From a8f2f6560fb4327a3e78820d80bfc33dfcd0964e Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 23 Jun 2017 11:07:25 +0200 Subject: [PATCH 32/72] Add PP profiles These are copied from the materials team and should now be optimised. Contributes to issue CURA-3960. --- .../um3_aa0.4_PP_Draft_Print.inst.cfg | 107 ++++++++++++++++++ .../um3_aa0.4_PP_Fast_Print.inst.cfg | 107 ++++++++++++++++++ .../um3_aa0.4_PP_Normal_Quality.inst.cfg | 107 ++++++++++++++++++ .../um3_aa0.8_PP_Draft_Print.inst.cfg | 63 +++++++++++ .../um3_aa0.8_PP_Superdraft_Print.inst.cfg | 63 +++++++++++ .../um3_aa0.8_PP_Verydraft_Print.inst.cfg | 63 +++++++++++ 6 files changed, 510 insertions(+) create mode 100644 resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg create mode 100644 resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg create mode 100644 resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg create mode 100644 resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg create mode 100644 resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg create mode 100644 resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg diff --git a/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg new file mode 100644 index 0000000000..3a559df3e8 --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg @@ -0,0 +1,107 @@ +[general] +version = 2 +name = Fast +definition = ultimaker3 + +[metadata] +type = quality +quality_type = draft +material = generic_pp_ultimaker3_AA_0.4 +weight = -2 +setting_version = 1 + +[values] +acceleration_enabled = True +acceleration_infill = =acceleration_print +acceleration_layer_0 = =acceleration_topbottom +acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_print = 4000 +acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_support_infill = =acceleration_support +acceleration_support_interface = =acceleration_topbottom +acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) +acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) +acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) +acceleration_wall_x = =acceleration_wall +adhesion_type = brim +brim_width = 20 +cool_fan_full_at_height = =layer_height_0 + 4 * layer_height +cool_fan_speed = 20 +cool_fan_speed_max = 100 +cool_min_layer_time = 7 +cool_min_layer_time_fan_speed_max = 7 +cool_min_speed = 2.5 +infill_line_width = =round(line_width * 0.38 / 0.38, 2) +infill_overlap = 0 +infill_pattern = tetrahedral +infill_sparse_density = 20 +infill_wipe_dist = 0.1 +jerk_enabled = True +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_topbottom +jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) +jerk_print = 25 +jerk_support = =math.ceil(jerk_print * 15 / 25) +jerk_support_infill = =jerk_support +jerk_support_interface = =jerk_topbottom +jerk_topbottom = =math.ceil(jerk_print * 5 / 25) +jerk_wall = =math.ceil(jerk_print * 10 / 25) +jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10) +jerk_wall_x = =jerk_wall +layer_height = 0.2 +layer_height_0 = =round(machine_nozzle_size / 1.5, 2) +line_width = =machine_nozzle_size * 0.95 +machine_min_cool_heat_time_window = 15 +machine_nozzle_cool_down_speed = 0.85 +machine_nozzle_heat_up_speed = 1.5 +material_bed_temperature = 85 +material_bed_temperature_layer_0 = 90 +material_final_print_temperature = 205 +material_flow = 100 +material_initial_print_temperature = 210 +material_print_temperature = 215 +material_print_temperature_layer_0 = 220 +material_standby_temperature = 100 +multiple_mesh_overlap = 0 +prime_tower_enable = False +prime_tower_size = 16 +prime_tower_wipe_enabled = True +retraction_amount = 6.5 +retraction_count_max = 12 +retraction_extra_prime_amount = 0.8 +retraction_extrusion_window = 1 +retraction_hop = 2 +retraction_hop_enabled = True +retraction_hop_only_when_collides = True +retraction_min_travel = 0.8 +retraction_prime_speed = 18 +retraction_speed = 35 +skin_overlap = 15 +speed_equalize_flow_enabled = True +speed_infill = =speed_print +speed_layer_0 = 15 +speed_prime_tower = =speed_topbottom +speed_print = 25 +speed_support = =speed_wall_0 +speed_support_interface = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 25 / 25) +speed_travel = 300 +speed_travel_layer_0 = 50 +speed_wall = =math.ceil(speed_print * 25 / 25) +speed_wall_0 = =math.ceil(speed_wall * 25 / 25) +speed_wall_x = =speed_wall +support_angle = 50 +support_bottom_distance = =support_z_distance / 2 +support_top_distance = =support_z_distance +support_xy_distance = =wall_line_width_0 * 2.5 +support_xy_distance_overhang = =wall_line_width_0 +support_z_distance = =layer_height * 2 +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 35 +top_bottom_thickness = 1.2 +travel_avoid_distance = 3 +travel_compensate_overlapping_walls_enabled = True +wall_0_inset = 0 +wall_line_width_x = =line_width +wall_thickness = =line_width * 3 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg new file mode 100644 index 0000000000..23bbce605c --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg @@ -0,0 +1,107 @@ +[general] +version = 2 +name = Normal +definition = ultimaker3 + +[metadata] +type = quality +quality_type = fast +material = generic_pp_ultimaker3_AA_0.4 +weight = -1 +setting_version = 1 + +[values] +acceleration_enabled = True +acceleration_infill = =acceleration_print +acceleration_layer_0 = =acceleration_topbottom +acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_print = 4000 +acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_support_infill = =acceleration_support +acceleration_support_interface = =acceleration_topbottom +acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) +acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) +acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) +acceleration_wall_x = =acceleration_wall +adhesion_type = brim +brim_width = 20 +cool_fan_full_at_height = =layer_height_0 + 4 * layer_height +cool_fan_speed = 20 +cool_fan_speed_max = 100 +cool_min_layer_time = 7 +cool_min_layer_time_fan_speed_max = 7 +cool_min_speed = 2.5 +infill_line_width = =round(line_width * 0.38 / 0.38, 2) +infill_overlap = 0 +infill_pattern = tetrahedral +infill_sparse_density = 20 +infill_wipe_dist = 0.1 +jerk_enabled = True +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_topbottom +jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) +jerk_print = 25 +jerk_support = =math.ceil(jerk_print * 15 / 25) +jerk_support_infill = =jerk_support +jerk_support_interface = =jerk_topbottom +jerk_topbottom = =math.ceil(jerk_print * 5 / 25) +jerk_wall = =math.ceil(jerk_print * 10 / 25) +jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10) +jerk_wall_x = =jerk_wall +layer_height = 0.15 +layer_height_0 = =round(machine_nozzle_size / 1.5, 2) +line_width = =machine_nozzle_size * 0.95 +machine_min_cool_heat_time_window = 15 +machine_nozzle_cool_down_speed = 0.85 +machine_nozzle_heat_up_speed = 1.5 +material_bed_temperature = 85 +material_bed_temperature_layer_0 = 90 +material_final_print_temperature = 195 +material_flow = 100 +material_initial_print_temperature = 205 +material_print_temperature = 207 +material_print_temperature_layer_0 = 210 +material_standby_temperature = 100 +multiple_mesh_overlap = 0 +prime_tower_enable = False +prime_tower_size = 16 +prime_tower_wipe_enabled = True +retraction_amount = 7 +retraction_count_max = 12 +retraction_extra_prime_amount = 0.8 +retraction_extrusion_window = 1 +retraction_hop = 2 +retraction_hop_enabled = True +retraction_hop_only_when_collides = True +retraction_min_travel = 0.8 +retraction_prime_speed = 18 +retraction_speed = 35 +skin_overlap = 15 +speed_equalize_flow_enabled = True +speed_infill = =speed_print +speed_layer_0 = 15 +speed_prime_tower = =speed_topbottom +speed_print = 25 +speed_support = =speed_wall_0 +speed_support_interface = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 25 / 25) +speed_travel = 300 +speed_travel_layer_0 = 50 +speed_wall = =math.ceil(speed_print * 25 / 25) +speed_wall_0 = =math.ceil(speed_wall * 25 / 25) +speed_wall_x = =speed_wall +support_angle = 50 +support_bottom_distance = =support_z_distance / 2 +support_top_distance = =support_z_distance +support_xy_distance = =wall_line_width_0 * 2.5 +support_xy_distance_overhang = =wall_line_width_0 +support_z_distance = =layer_height * 2 +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 35 +top_bottom_thickness = 1.1 +travel_avoid_distance = 3 +travel_compensate_overlapping_walls_enabled = True +wall_0_inset = 0 +wall_line_width_x = =line_width +wall_thickness = =line_width * 3 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg new file mode 100644 index 0000000000..e0e9fd3234 --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg @@ -0,0 +1,107 @@ +[general] +version = 2 +name = Fine +definition = ultimaker3 + +[metadata] +type = quality +quality_type = normal +material = generic_pp_ultimaker3_AA_0.4 +weight = 0 +setting_version = 1 + +[values] +acceleration_enabled = True +acceleration_infill = =acceleration_print +acceleration_layer_0 = =acceleration_topbottom +acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_print = 4000 +acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_support_infill = =acceleration_support +acceleration_support_interface = =acceleration_topbottom +acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) +acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) +acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) +acceleration_wall_x = =acceleration_wall +adhesion_type = brim +brim_width = 20 +cool_fan_full_at_height = =layer_height_0 + 4 * layer_height +cool_fan_speed = 20 +cool_fan_speed_max = 100 +cool_min_layer_time = 7 +cool_min_layer_time_fan_speed_max = 7 +cool_min_speed = 2.5 +infill_line_width = =round(line_width * 0.38 / 0.38, 2) +infill_overlap = 0 +infill_pattern = tetrahedral +infill_sparse_density = 20 +infill_wipe_dist = 0.1 +jerk_enabled = True +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_topbottom +jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) +jerk_print = 25 +jerk_support = =math.ceil(jerk_print * 15 / 25) +jerk_support_infill = =jerk_support +jerk_support_interface = =jerk_topbottom +jerk_topbottom = =math.ceil(jerk_print * 5 / 25) +jerk_wall = =math.ceil(jerk_print * 10 / 25) +jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10) +jerk_wall_x = =jerk_wall +layer_height = 0.1 +layer_height_0 = =round(machine_nozzle_size / 1.5, 2) +line_width = =machine_nozzle_size * 0.95 +machine_min_cool_heat_time_window = 15 +machine_nozzle_cool_down_speed = 0.85 +machine_nozzle_heat_up_speed = 1.5 +material_bed_temperature = 85 +material_bed_temperature_layer_0 = 90 +material_final_print_temperature = 195 +material_flow = 100 +material_initial_print_temperature = 200 +material_print_temperature = 205 +material_print_temperature_layer_0 = 208 +material_standby_temperature = 100 +multiple_mesh_overlap = 0 +prime_tower_enable = False +prime_tower_size = 16 +prime_tower_wipe_enabled = True +retraction_amount = 7 +retraction_count_max = 12 +retraction_extra_prime_amount = 0.8 +retraction_extrusion_window = 1 +retraction_hop = 2 +retraction_hop_enabled = True +retraction_hop_only_when_collides = True +retraction_min_travel = 0.8 +retraction_prime_speed = 18 +retraction_speed = 35 +skin_overlap = 15 +speed_equalize_flow_enabled = True +speed_infill = =speed_print +speed_layer_0 = 15 +speed_prime_tower = =speed_topbottom +speed_print = 25 +speed_support = =speed_wall_0 +speed_support_interface = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 25 / 25) +speed_travel = 300 +speed_travel_layer_0 = 50 +speed_wall = =math.ceil(speed_print * 25 / 25) +speed_wall_0 = =math.ceil(speed_wall * 25 / 25) +speed_wall_x = =speed_wall +support_angle = 50 +support_bottom_distance = =support_z_distance / 2 +support_top_distance = =support_z_distance +support_xy_distance = =wall_line_width_0 * 2.5 +support_xy_distance_overhang = =wall_line_width_0 +support_z_distance = =layer_height * 2 +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 35 +top_bottom_thickness = 1 +travel_avoid_distance = 3 +travel_compensate_overlapping_walls_enabled = True +wall_0_inset = 0 +wall_line_width_x = =line_width +wall_thickness = =line_width * 3 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg new file mode 100644 index 0000000000..5c86daff89 --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg @@ -0,0 +1,63 @@ +[general] +version = 2 +name = Fast +definition = ultimaker3 + +[metadata] +type = quality +quality_type = draft +material = generic_pp_ultimaker3_AA_0.8 +weight = -2 +setting_version = 1 + +[values] +brim_width = 25 +cool_fan_speed = 10 +cool_min_layer_time_fan_speed_max = 6 +cool_min_speed = 17 +expand_skins_expand_distance = =line_width * 2 +expand_skins_into_infill = True +expand_upper_skins = True +infill_before_walls = True +infill_line_width = =round(line_width * 0.7 / 0.8, 2) +infill_pattern = tetrahedral +infill_sparse_density = 20 +jerk_prime_tower = =math.ceil(jerk_print * 25 / 25) +jerk_support = =math.ceil(jerk_print * 25 / 25) +jerk_wall_0 = =math.ceil(jerk_wall * 15 / 25) +material_bed_temperature_layer_0 = =material_bed_temperature +material_flow = 100 +material_print_temperature = =default_material_print_temperature - 2 +material_print_temperature_layer_0 = =default_material_print_temperature + 2 +material_standby_temperature = 100 +multiple_mesh_overlap = 0.2 +prime_tower_enable = True +prime_tower_flow = 100 +prime_tower_wall_thickness = =prime_tower_line_width * 2 +retract_at_layer_change = False +retraction_count_max = 12 +retraction_extra_prime_amount = 0.5 +retraction_hop = 0.5 +retraction_hop_only_when_collides = True +retraction_min_travel = 1.5 +retraction_prime_speed = 15 +skin_line_width = =round(line_width * 0.78 / 0.8, 2) +skin_overlap = 5 +speed_print = 35 +speed_topbottom = =math.ceil(speed_print * 25 / 35) +speed_travel = 300 +speed_wall = =math.ceil(speed_print * 30 / 35) +speed_wall_x = =math.ceil(speed_wall * 30 / 30) +support_angle = 60 +support_bottom_distance = =support_z_distance +support_line_width = =round(line_width * 0.7 / 0.8, 2) +support_offset = =line_width +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 45 +top_bottom_thickness = 1.6 +travel_compensate_overlapping_walls_0_enabled = False +wall_0_wipe_dist = =line_width * 2 +wall_line_width_x = =round(line_width * 0.8 / 0.8, 2) +wall_thickness = 1.6 + diff --git a/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg new file mode 100644 index 0000000000..7dd422b300 --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg @@ -0,0 +1,63 @@ +[general] +version = 2 +name = Sprint +definition = ultimaker3 + +[metadata] +type = quality +quality_type = superdraft +material = generic_pp_ultimaker3_AA_0.8 +weight = -4 +setting_version = 1 + +[values] +brim_width = 25 +cool_fan_speed = 10 +cool_min_layer_time_fan_speed_max = 6 +cool_min_speed = 17 +expand_skins_expand_distance = =line_width * 2 +expand_skins_into_infill = True +expand_upper_skins = True +infill_before_walls = True +infill_line_width = =round(line_width * 0.7 / 0.8, 2) +infill_pattern = tetrahedral +infill_sparse_density = 20 +jerk_prime_tower = =math.ceil(jerk_print * 25 / 25) +jerk_support = =math.ceil(jerk_print * 25 / 25) +jerk_wall_0 = =math.ceil(jerk_wall * 15 / 25) +material_bed_temperature_layer_0 = =material_bed_temperature +material_flow = 100 +material_print_temperature = =default_material_print_temperature + 2 +material_print_temperature_layer_0 = =default_material_print_temperature + 2 +material_standby_temperature = 100 +multiple_mesh_overlap = 0.2 +prime_tower_enable = True +prime_tower_flow = 100 +prime_tower_wall_thickness = =prime_tower_line_width * 2 +retract_at_layer_change = False +retraction_count_max = 12 +retraction_extra_prime_amount = 0.5 +retraction_hop = 0.5 +retraction_hop_only_when_collides = True +retraction_min_travel = 1.5 +retraction_prime_speed = 15 +skin_line_width = =round(line_width * 0.78 / 0.8, 2) +skin_overlap = 5 +speed_print = 35 +speed_topbottom = =math.ceil(speed_print * 25 / 35) +speed_travel = 300 +speed_wall = =math.ceil(speed_print * 30 / 35) +speed_wall_x = =math.ceil(speed_wall * 30 / 30) +support_angle = 60 +support_bottom_distance = =support_z_distance +support_line_width = =round(line_width * 0.7 / 0.8, 2) +support_offset = =line_width +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 45 +top_bottom_thickness = 1.6 +travel_compensate_overlapping_walls_0_enabled = False +wall_0_wipe_dist = =line_width * 2 +wall_line_width_x = =round(line_width * 0.8 / 0.8, 2) +wall_thickness = 1.6 + diff --git a/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg new file mode 100644 index 0000000000..00958e7381 --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg @@ -0,0 +1,63 @@ +[general] +version = 2 +name = Extra Fast +definition = ultimaker3 + +[metadata] +type = quality +quality_type = verydraft +material = generic_pp_ultimaker3_AA_0.8 +weight = -3 +setting_version = 1 + +[values] +brim_width = 25 +cool_fan_speed = 10 +cool_min_layer_time_fan_speed_max = 6 +cool_min_speed = 17 +expand_skins_expand_distance = =line_width * 2 +expand_skins_into_infill = True +expand_upper_skins = True +infill_before_walls = True +infill_line_width = =round(line_width * 0.7 / 0.8, 2) +infill_pattern = tetrahedral +infill_sparse_density = 20 +jerk_prime_tower = =math.ceil(jerk_print * 25 / 25) +jerk_support = =math.ceil(jerk_print * 25 / 25) +jerk_wall_0 = =math.ceil(jerk_wall * 15 / 25) +layer_height = 0.3 +material_bed_temperature_layer_0 = =material_bed_temperature +material_flow = 100 +material_print_temperature_layer_0 = =default_material_print_temperature + 2 +material_standby_temperature = 100 +multiple_mesh_overlap = 0.2 +prime_tower_enable = True +prime_tower_flow = 100 +prime_tower_wall_thickness = =prime_tower_line_width * 2 +retract_at_layer_change = False +retraction_count_max = 12 +retraction_extra_prime_amount = 0.5 +retraction_hop = 0.5 +retraction_hop_only_when_collides = True +retraction_min_travel = 1.5 +retraction_prime_speed = 15 +skin_line_width = =round(line_width * 0.78 / 0.8, 2) +skin_overlap = 5 +speed_print = 35 +speed_topbottom = =math.ceil(speed_print * 25 / 35) +speed_travel = 300 +speed_wall = =math.ceil(speed_print * 30 / 35) +speed_wall_x = =math.ceil(speed_wall * 30 / 30) +support_angle = 60 +support_bottom_distance = =support_z_distance +support_line_width = =round(line_width * 0.7 / 0.8, 2) +support_offset = =line_width +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 45 +top_bottom_thickness = 1.6 +travel_compensate_overlapping_walls_0_enabled = False +wall_0_wipe_dist = =line_width * 2 +wall_line_width_x = =round(line_width * 0.8 / 0.8, 2) +wall_thickness = 1.6 + From 5f6894c52341ea5339697e40e833abf17598077d Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 23 Jun 2017 11:14:21 +0200 Subject: [PATCH 33/72] Add PP profiles for UM2+ These new profiles are directly copied from what the material team provides. They should now be optimised. Contributes to issue CURA-3960. --- .../ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg | 93 ++++++++++++++++++ .../um2p_pp_0.4_normal.inst.cfg | 93 ++++++++++++++++++ .../um2p_pp_0.6_draft.inst.cfg | 95 +++++++++++++++++++ .../ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg | 95 +++++++++++++++++++ .../um2p_pp_0.8_draft.inst.cfg | 95 +++++++++++++++++++ .../ultimaker2_plus/um2p_pp_0.8_fast.inst.cfg | 95 +++++++++++++++++++ 6 files changed, 566 insertions(+) create mode 100644 resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg create mode 100644 resources/quality/ultimaker2_plus/um2p_pp_0.4_normal.inst.cfg create mode 100644 resources/quality/ultimaker2_plus/um2p_pp_0.6_draft.inst.cfg create mode 100644 resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg create mode 100644 resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg create mode 100644 resources/quality/ultimaker2_plus/um2p_pp_0.8_fast.inst.cfg diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg new file mode 100644 index 0000000000..2e5120b0d7 --- /dev/null +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg @@ -0,0 +1,93 @@ +[general] +version = 2 +name = Fast Quality +definition = ultimaker2_plus + +[metadata] +type = quality +material = generic_polypropylene_ultimaker2_plus_0.4_mm +weight = 0 +quality_type = fast + +[values] +acceleration_enabled = True +acceleration_infill = =acceleration_print +acceleration_layer_0 = =acceleration_topbottom +acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_print = 4000 +acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_support_infill = =acceleration_support +acceleration_support_interface = =acceleration_topbottom +acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) +acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) +acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) +acceleration_wall_x = =acceleration_wall +adhesion_type = brim +brim_width = 20 +cool_fan_full_at_height = =layer_height_0 + 4 * layer_height +cool_fan_speed = 20 +cool_fan_speed_max = 100 +cool_min_layer_time = 5 +cool_min_layer_time_fan_speed_max = 6 +cool_min_speed = 20 +gradual_infill_step_height = =layer_height * 2 +gradual_infill_steps = 3 +infill_line_width = =round(line_width * 0.4 / 0.38, 2) +infill_overlap = 0 +infill_pattern = cubic +infill_sparse_density = 96 +infill_wipe_dist = 0 +jerk_enabled = True +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_topbottom +jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) +jerk_print = 25 +jerk_support = =math.ceil(jerk_print * 15 / 25) +jerk_support_infill = =jerk_support +jerk_support_interface = =jerk_topbottom +jerk_topbottom = =math.ceil(jerk_print * 5 / 25) +jerk_wall = =math.ceil(jerk_print * 10 / 25) +jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10) +jerk_wall_x = =jerk_wall +layer_height = 0.15 +layer_height_0 = =round(machine_nozzle_size / 1.5, 2) +line_width = =machine_nozzle_size * 0.95 +multiple_mesh_overlap = 0 +retraction_amount = 8 +retraction_count_max = 12 +retraction_extra_prime_amount = 0 +retraction_extrusion_window = 1 +retraction_hop = 0.15 +retraction_hop_enabled = True +retraction_hop_only_when_collides = True +retraction_min_travel = 0.5 +retraction_prime_speed = 15 +retraction_speed = 35 +skin_overlap = 10 +speed_infill = =speed_print +speed_layer_0 = 25 +speed_prime_tower = =speed_topbottom +speed_print = 25 +speed_support = =speed_wall_0 +speed_support_interface = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 25 / 25) +speed_travel = 250 +speed_travel_layer_0 = 50 +speed_wall = =math.ceil(speed_print * 25 / 25) +speed_wall_0 = =math.ceil(speed_wall * 20 / 25) +speed_wall_x = =speed_wall +support_angle = 60 +support_bottom_distance = =support_z_distance / 2 +support_top_distance = =support_z_distance +support_xy_distance = =wall_line_width_0 * 2.5 +support_xy_distance_overhang = =wall_line_width_0 +support_z_distance = =layer_height * 2 +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 35 +top_bottom_thickness = 0.8 +travel_avoid_distance = 3 +travel_compensate_overlapping_walls_enabled = True +wall_0_inset = 0 +wall_line_width_x = =round(line_width * 0.38 / 0.38, 2) +wall_thickness = 0.76 diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.4_normal.inst.cfg new file mode 100644 index 0000000000..f311c28fc8 --- /dev/null +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.4_normal.inst.cfg @@ -0,0 +1,93 @@ +[general] +version = 2 +name = Normal Quality +definition = ultimaker2_plus + +[metadata] +type = quality +material = generic_polypropylene_ultimaker2_plus_0.4_mm +weight = 0 +quality_type = normal + +[values] +acceleration_enabled = True +acceleration_infill = =acceleration_print +acceleration_layer_0 = =acceleration_topbottom +acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_print = 4000 +acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_support_infill = =acceleration_support +acceleration_support_interface = =acceleration_topbottom +acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) +acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) +acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) +acceleration_wall_x = =acceleration_wall +adhesion_type = brim +brim_width = 20 +cool_fan_full_at_height = =layer_height_0 + 4 * layer_height +cool_fan_speed = 20 +cool_fan_speed_max = 100 +cool_min_layer_time = 5 +cool_min_layer_time_fan_speed_max = 6 +cool_min_speed = 20 +gradual_infill_step_height = =layer_height * 2 +gradual_infill_steps = 3 +infill_line_width = =round(line_width * 0.4 / 0.38, 2) +infill_overlap = 0 +infill_pattern = cubic +infill_sparse_density = 96 +infill_wipe_dist = 0 +jerk_enabled = True +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_topbottom +jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) +jerk_print = 25 +jerk_support = =math.ceil(jerk_print * 15 / 25) +jerk_support_infill = =jerk_support +jerk_support_interface = =jerk_topbottom +jerk_topbottom = =math.ceil(jerk_print * 5 / 25) +jerk_wall = =math.ceil(jerk_print * 10 / 25) +jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10) +jerk_wall_x = =jerk_wall +layer_height = 0.1 +layer_height_0 = =round(machine_nozzle_size / 1.5, 2) +line_width = =machine_nozzle_size * 0.95 +multiple_mesh_overlap = 0 +retraction_amount = 8 +retraction_count_max = 12 +retraction_extra_prime_amount = 0 +retraction_extrusion_window = 1 +retraction_hop = 0.15 +retraction_hop_enabled = True +retraction_hop_only_when_collides = True +retraction_min_travel = 0.5 +retraction_prime_speed = 15 +retraction_speed = 35 +skin_overlap = 10 +speed_infill = =speed_print +speed_layer_0 = 25 +speed_prime_tower = =speed_topbottom +speed_print = 25 +speed_support = =speed_wall_0 +speed_support_interface = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 25 / 25) +speed_travel = 250 +speed_travel_layer_0 = 50 +speed_wall = =math.ceil(speed_print * 25 / 25) +speed_wall_0 = =math.ceil(speed_wall * 20 / 25) +speed_wall_x = =speed_wall +support_angle = 60 +support_bottom_distance = =support_z_distance / 2 +support_top_distance = =support_z_distance +support_xy_distance = =wall_line_width_0 * 2.5 +support_xy_distance_overhang = =wall_line_width_0 +support_z_distance = =layer_height * 2 +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 35 +top_bottom_thickness = 0.8 +travel_avoid_distance = 3 +travel_compensate_overlapping_walls_enabled = True +wall_0_inset = 0 +wall_line_width_x = =round(line_width * 0.38 / 0.38, 2) +wall_thickness = 0.76 diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.6_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.6_draft.inst.cfg new file mode 100644 index 0000000000..341a35926a --- /dev/null +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.6_draft.inst.cfg @@ -0,0 +1,95 @@ +[general] +version = 2 +name = Draft Print +definition = ultimaker2_plus + +[metadata] +type = quality +material = generic_polypropylene_ultimaker2_plus_0.6_mm +weight = 0 +quality_type = draft + +[values] +layer_height = 0.2 +gradual_infill_steps = 3 +retraction_extra_prime_amount = 0 +skirt_brim_line_width = 0.6 +infill_overlap_mm = 0 +skin_overlap = 10 +acceleration_enabled = True +acceleration_infill = =acceleration_print +acceleration_layer_0 = =acceleration_topbottom +acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_print = 4000 +acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_support_infill = =acceleration_support +acceleration_support_interface = =acceleration_topbottom +acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) +acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) +acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) +acceleration_wall_x = =acceleration_wall +adhesion_type = brim +brim_width = 20 +cool_fan_full_at_height = =layer_height_0 + 4 * layer_height +cool_fan_speed = 20 +cool_fan_speed_max = 100 +cool_min_layer_time = 5 +cool_min_layer_time_fan_speed_max = 6 +cool_min_speed = 20 +gradual_infill_step_height = =layer_height * 2 +infill_line_width = =round(line_width * 0.6 / 0.57, 2) +infill_overlap = 0 +infill_pattern = cubic +infill_sparse_density = 96 +infill_wipe_dist = 0 +jerk_enabled = True +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_topbottom +jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) +jerk_print = 25 +jerk_support = =math.ceil(jerk_print * 15 / 25) +jerk_support_infill = =jerk_support +jerk_support_interface = =jerk_topbottom +jerk_topbottom = =math.ceil(jerk_print * 5 / 25) +jerk_wall = =math.ceil(jerk_print * 10 / 25) +jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10) +jerk_wall_x = =jerk_wall +layer_height_0 = =round(machine_nozzle_size / 1.5, 2) +line_width = =machine_nozzle_size * 0.95 +multiple_mesh_overlap = 0 +retraction_amount = 8 +retraction_count_max = 12 +retraction_extrusion_window = 1 +retraction_hop = 0.15 +retraction_hop_enabled = True +retraction_hop_only_when_collides = True +retraction_min_travel = 0.5 +retraction_prime_speed = 15 +retraction_speed = 35 +speed_infill = =speed_print +speed_layer_0 = 25 +speed_prime_tower = =speed_topbottom +speed_print = 25 +speed_support = =speed_wall_0 +speed_support_interface = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 25 / 25) +speed_travel = 250 +speed_travel_layer_0 = 50 +speed_wall = =math.ceil(speed_print * 25 / 25) +speed_wall_0 = =math.ceil(speed_wall * 20 / 25) +speed_wall_x = =speed_wall +support_angle = 60 +support_bottom_distance = =support_z_distance / 2 +support_top_distance = =support_z_distance +support_xy_distance = =wall_line_width_0 * 2.5 +support_xy_distance_overhang = =wall_line_width_0 +support_z_distance = =layer_height * 2 +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 35 +top_bottom_thickness = 1.1 +travel_avoid_distance = 3 +travel_compensate_overlapping_walls_enabled = True +wall_0_inset = 0 +wall_line_width_x = =round(line_width * 0.57 / 0.57, 2) +wall_thickness = 1.14 diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg new file mode 100644 index 0000000000..d1790dde47 --- /dev/null +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg @@ -0,0 +1,95 @@ +[general] +version = 2 +name = Fast Print +definition = ultimaker2_plus + +[metadata] +type = quality +material = generic_polypropylene_ultimaker2_plus_0.6_mm +weight = -1 +quality_type = fast + +[values] +layer_height = 0.15 +gradual_infill_steps = 3 +retraction_extra_prime_amount = 0 +skirt_brim_line_width = 0.6 +infill_overlap_mm = 0 +skin_overlap = 10 +acceleration_enabled = True +acceleration_infill = =acceleration_print +acceleration_layer_0 = =acceleration_topbottom +acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_print = 4000 +acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_support_infill = =acceleration_support +acceleration_support_interface = =acceleration_topbottom +acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) +acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) +acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) +acceleration_wall_x = =acceleration_wall +adhesion_type = brim +brim_width = 20 +cool_fan_full_at_height = =layer_height_0 + 4 * layer_height +cool_fan_speed = 20 +cool_fan_speed_max = 100 +cool_min_layer_time = 5 +cool_min_layer_time_fan_speed_max = 6 +cool_min_speed = 20 +gradual_infill_step_height = =layer_height * 2 +infill_line_width = =round(line_width * 0.6 / 0.57, 2) +infill_overlap = 0 +infill_pattern = cubic +infill_sparse_density = 96 +infill_wipe_dist = 0 +jerk_enabled = True +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_topbottom +jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) +jerk_print = 25 +jerk_support = =math.ceil(jerk_print * 15 / 25) +jerk_support_infill = =jerk_support +jerk_support_interface = =jerk_topbottom +jerk_topbottom = =math.ceil(jerk_print * 5 / 25) +jerk_wall = =math.ceil(jerk_print * 10 / 25) +jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10) +jerk_wall_x = =jerk_wall +layer_height_0 = =round(machine_nozzle_size / 1.5, 2) +line_width = =machine_nozzle_size * 0.95 +multiple_mesh_overlap = 0 +retraction_amount = 8 +retraction_count_max = 12 +retraction_extrusion_window = 1 +retraction_hop = 0.15 +retraction_hop_enabled = True +retraction_hop_only_when_collides = True +retraction_min_travel = 0.5 +retraction_prime_speed = 15 +retraction_speed = 35 +speed_infill = =speed_print +speed_layer_0 = 25 +speed_prime_tower = =speed_topbottom +speed_print = 25 +speed_support = =speed_wall_0 +speed_support_interface = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 25 / 25) +speed_travel = 250 +speed_travel_layer_0 = 50 +speed_wall = =math.ceil(speed_print * 25 / 25) +speed_wall_0 = =math.ceil(speed_wall * 20 / 25) +speed_wall_x = =speed_wall +support_angle = 60 +support_bottom_distance = =support_z_distance / 2 +support_top_distance = =support_z_distance +support_xy_distance = =wall_line_width_0 * 2.5 +support_xy_distance_overhang = =wall_line_width_0 +support_z_distance = =layer_height * 2 +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 35 +top_bottom_thickness = 1.1 +travel_avoid_distance = 3 +travel_compensate_overlapping_walls_enabled = True +wall_0_inset = 0 +wall_line_width_x = =round(line_width * 0.57 / 0.57, 2) +wall_thickness = 1.14 diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg new file mode 100644 index 0000000000..2a6397d2e8 --- /dev/null +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg @@ -0,0 +1,95 @@ +[general] +version = 2 +name = Draft Print +definition = ultimaker2_plus + +[metadata] +type = quality +material = generic_polypropylene_ultimaker2_plus_0.8_mm +weight = 0 +quality_type = draft + +[values] +layer_height = 0.3 +gradual_infill_steps = 3 +retraction_extra_prime_amount = 0 +skirt_brim_line_width = 0.8 +infill_overlap_mm = 0 +skin_overlap = 10 +acceleration_enabled = True +acceleration_infill = =acceleration_print +acceleration_layer_0 = =acceleration_topbottom +acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_print = 4000 +acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_support_infill = =acceleration_support +acceleration_support_interface = =acceleration_topbottom +acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) +acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) +acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) +acceleration_wall_x = =acceleration_wall +adhesion_type = brim +brim_width = 20 +cool_fan_full_at_height = =layer_height_0 + 4 * layer_height +cool_fan_speed = 20 +cool_fan_speed_max = 100 +cool_min_layer_time = 5 +cool_min_layer_time_fan_speed_max = 6 +cool_min_speed = 20 +gradual_infill_step_height = =layer_height * 2 +infill_line_width = =round(line_width * 0.8 / 0.76, 2) +infill_overlap = 0 +infill_pattern = cubic +infill_sparse_density = 96 +infill_wipe_dist = 0 +jerk_enabled = True +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_topbottom +jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) +jerk_print = 25 +jerk_support = =math.ceil(jerk_print * 15 / 25) +jerk_support_infill = =jerk_support +jerk_support_interface = =jerk_topbottom +jerk_topbottom = =math.ceil(jerk_print * 5 / 25) +jerk_wall = =math.ceil(jerk_print * 10 / 25) +jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10) +jerk_wall_x = =jerk_wall +layer_height_0 = =round(machine_nozzle_size / 1.5, 2) +line_width = =machine_nozzle_size * 0.95 +multiple_mesh_overlap = 0 +retraction_amount = 8 +retraction_count_max = 12 +retraction_extrusion_window = 1 +retraction_hop = 0.15 +retraction_hop_enabled = True +retraction_hop_only_when_collides = True +retraction_min_travel = 0.5 +retraction_prime_speed = 15 +retraction_speed = 35 +speed_infill = =speed_print +speed_layer_0 = 25 +speed_prime_tower = =speed_topbottom +speed_print = 25 +speed_support = =speed_wall_0 +speed_support_interface = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 25 / 25) +speed_travel = 250 +speed_travel_layer_0 = 50 +speed_wall = =math.ceil(speed_print * 25 / 25) +speed_wall_0 = =math.ceil(speed_wall * 20 / 25) +speed_wall_x = =speed_wall +support_angle = 60 +support_bottom_distance = =support_z_distance / 2 +support_top_distance = =support_z_distance +support_xy_distance = =wall_line_width_0 * 2.5 +support_xy_distance_overhang = =wall_line_width_0 +support_z_distance = =layer_height * 2 +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 35 +top_bottom_thickness = 1.5 +travel_avoid_distance = 3 +travel_compensate_overlapping_walls_enabled = True +wall_0_inset = 0 +wall_line_width_x = =round(line_width * 0.76 / 0.76, 2) +wall_thickness = 1.52 \ No newline at end of file diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.8_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.8_fast.inst.cfg new file mode 100644 index 0000000000..185597ef74 --- /dev/null +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.8_fast.inst.cfg @@ -0,0 +1,95 @@ +[general] +version = 2 +name = Fast Print +definition = ultimaker2_plus + +[metadata] +type = quality +material = generic_polypropylene_ultimaker2_plus_0.8_mm +weight = 0 +quality_type = fast + +[values] +layer_height = 0.2 +gradual_infill_steps = 3 +retraction_extra_prime_amount = 0 +skirt_brim_line_width = 0.8 +infill_overlap_mm = 0 +skin_overlap = 10 +acceleration_enabled = True +acceleration_infill = =acceleration_print +acceleration_layer_0 = =acceleration_topbottom +acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_print = 4000 +acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_support_infill = =acceleration_support +acceleration_support_interface = =acceleration_topbottom +acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) +acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) +acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) +acceleration_wall_x = =acceleration_wall +adhesion_type = brim +brim_width = 20 +cool_fan_full_at_height = =layer_height_0 + 4 * layer_height +cool_fan_speed = 20 +cool_fan_speed_max = 100 +cool_min_layer_time = 5 +cool_min_layer_time_fan_speed_max = 6 +cool_min_speed = 20 +gradual_infill_step_height = =layer_height * 3 +infill_line_width = =round(line_width * 0.8 / 0.76, 2) +infill_overlap = 0 +infill_pattern = cubic +infill_sparse_density = 96 +infill_wipe_dist = 0 +jerk_enabled = True +jerk_infill = =jerk_print +jerk_layer_0 = =jerk_topbottom +jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) +jerk_print = 25 +jerk_support = =math.ceil(jerk_print * 15 / 25) +jerk_support_infill = =jerk_support +jerk_support_interface = =jerk_topbottom +jerk_topbottom = =math.ceil(jerk_print * 5 / 25) +jerk_wall = =math.ceil(jerk_print * 10 / 25) +jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10) +jerk_wall_x = =jerk_wall +layer_height_0 = =round(machine_nozzle_size / 1.5, 2) +line_width = =machine_nozzle_size * 0.95 +multiple_mesh_overlap = 0 +retraction_amount = 8 +retraction_count_max = 12 +retraction_extrusion_window = 1 +retraction_hop = 0.15 +retraction_hop_enabled = True +retraction_hop_only_when_collides = True +retraction_min_travel = 0.5 +retraction_prime_speed = 15 +retraction_speed = 35 +speed_infill = =speed_print +speed_layer_0 = 25 +speed_prime_tower = =speed_topbottom +speed_print = 25 +speed_support = =speed_wall_0 +speed_support_interface = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 25 / 25) +speed_travel = 250 +speed_travel_layer_0 = 50 +speed_wall = =math.ceil(speed_print * 25 / 25) +speed_wall_0 = =math.ceil(speed_wall * 20 / 25) +speed_wall_x = =speed_wall +support_angle = 60 +support_bottom_distance = =support_z_distance / 2 +support_top_distance = =support_z_distance +support_xy_distance = =wall_line_width_0 * 2.5 +support_xy_distance_overhang = =wall_line_width_0 +support_z_distance = =layer_height * 2 +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 35 +top_bottom_thickness = 1.5 +travel_avoid_distance = 3 +travel_compensate_overlapping_walls_enabled = True +wall_0_inset = 0 +wall_line_width_x = =round(line_width * 0.76 / 0.76, 2) +wall_thickness = 1.52 \ No newline at end of file From e3dffd6610204fb40743f1cafefcfd1b3915fce3 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 23 Jun 2017 11:18:10 +0200 Subject: [PATCH 34/72] Plugin browser can now download & install plugins --- plugins/PluginBrowser/PluginBrowser.py | 29 +++++++++++++- plugins/PluginBrowser/PluginBrowser.qml | 51 ++++++++++++++++++------- 2 files changed, 64 insertions(+), 16 deletions(-) diff --git a/plugins/PluginBrowser/PluginBrowser.py b/plugins/PluginBrowser/PluginBrowser.py index 9fd75a92fc..a68ce75d8d 100644 --- a/plugins/PluginBrowser/PluginBrowser.py +++ b/plugins/PluginBrowser/PluginBrowser.py @@ -8,11 +8,12 @@ from UM.PluginRegistry import PluginRegistry from UM.Application import Application from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest -from PyQt5.QtCore import QUrl, QObject, Qt, pyqtProperty, pyqtSignal +from PyQt5.QtCore import QUrl, QObject, Qt, pyqtProperty, pyqtSignal, pyqtSlot from PyQt5.QtQml import QQmlComponent, QQmlContext import json import os +import tempfile i18n_catalog = i18nCatalog("cura") @@ -25,6 +26,10 @@ class PluginBrowser(QObject, Extension): self._api_url = "http://software.ultimaker.com/cura/v%s/" % self._api_version self._plugin_list_request = None + self._download_plugin_request = None + + self._download_plugin_reply = None + self._network_manager = None self._plugins_metadata = [] @@ -63,6 +68,24 @@ class PluginBrowser(QObject, Extension): Logger.log("e", "QQmlComponent status %s", self._qml_component.status()) Logger.log("e", "QQmlComponent errorString %s", self._qml_component.errorString()) + def _onDownloadPluginProgress(self, bytes_sent, bytes_total): + if bytes_total > 0: + new_progress = bytes_sent / bytes_total * 100 + + if new_progress == 100.0: + self._download_plugin_reply.downloadProgress.disconnect(self._onDownloadPluginProgress) + self._temp_plugin_file = tempfile.NamedTemporaryFile(suffix = ".curaplugin") + self._temp_plugin_file.write(self._download_plugin_reply.readAll()) + result = PluginRegistry.getInstance().installPlugin("file://" + self._temp_plugin_file.name) + self._temp_plugin_file.close() # Plugin was installed, delete temp file + + @pyqtSlot(str) + def downloadAndInstallPlugin(self, url): + Logger.log("i", "Attempting to download & install plugin from %s", url) + url = QUrl(url) + self._download_plugin_request = QNetworkRequest(url) + self._download_plugin_reply = self._network_manager.get(self._download_plugin_request) + self._download_plugin_reply.downloadProgress.connect(self._onDownloadPluginProgress) @pyqtProperty(QObject, notify=pluginsMetadataChanged) def pluginsModel(self): @@ -73,6 +96,7 @@ class PluginBrowser(QObject, Extension): self._plugins_model.addRoleName(Qt.UserRole + 3, "short_description") self._plugins_model.addRoleName(Qt.UserRole + 4, "author") self._plugins_model.addRoleName(Qt.UserRole + 5, "already_installed") + self._plugins_model.addRoleName(Qt.UserRole + 6, "file_location") else: self._plugins_model.clear() items = [] @@ -83,7 +107,8 @@ class PluginBrowser(QObject, Extension): "version": metadata["version"], "short_description": metadata["short_description"], "author": metadata["author"], - "already_installed": plugin_registry.getMetaData(metadata["id"]) != {} + "already_installed": plugin_registry.getMetaData(metadata["id"]) != {}, + "file_location": metadata["file_location"] }) self._plugins_model.setItems(items) return self._plugins_model diff --git a/plugins/PluginBrowser/PluginBrowser.qml b/plugins/PluginBrowser/PluginBrowser.qml index 5f666a0148..0e2129d7ef 100644 --- a/plugins/PluginBrowser/PluginBrowser.qml +++ b/plugins/PluginBrowser/PluginBrowser.qml @@ -11,25 +11,48 @@ UM.Dialog title: "YAY" width: 450 height: 150 - ListView + ScrollView { - model: manager.pluginsModel anchors.fill: parent - delegate: Row + frameVisible: true + ListView { - width: parent.width - Button - { - text: model.name - } - Button - { - text: model.author - } + id: pluginList + model: manager.pluginsModel + anchors.fill: parent - Label + delegate: pluginDelegate + } + } + Item + { + SystemPalette { id: palette } + Component + { + id: pluginDelegate + Rectangle { - text: model.short_description + width: pluginList.width; + height: childrenRect.height; + color: index % 2 ? palette.base : palette.alternateBase + Row + { + width: parent.width + height: childrenRect.height; + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("default_margin").width + Label + { + + text: model.name + width: contentWidth + } + Button + { + text: "Download" + onClicked: manager.downloadAndInstallPlugin(model.file_location) + } + } } } } From e6a3577e9d9f8cc13211f861ce67cf5f651f215d Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 23 Jun 2017 11:25:53 +0200 Subject: [PATCH 35/72] Plugin browser now also uses version to check if plugin is already installed CURA-3856 --- plugins/PluginBrowser/PluginBrowser.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/plugins/PluginBrowser/PluginBrowser.py b/plugins/PluginBrowser/PluginBrowser.py index a68ce75d8d..cdee651e71 100644 --- a/plugins/PluginBrowser/PluginBrowser.py +++ b/plugins/PluginBrowser/PluginBrowser.py @@ -6,6 +6,7 @@ from UM.Logger import Logger from UM.Qt.ListModel import ListModel from UM.PluginRegistry import PluginRegistry from UM.Application import Application +from UM.Version import Version from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest from PyQt5.QtCore import QUrl, QObject, Qt, pyqtProperty, pyqtSignal, pyqtSlot @@ -100,19 +101,29 @@ class PluginBrowser(QObject, Extension): else: self._plugins_model.clear() items = [] - plugin_registry = PluginRegistry.getInstance() for metadata in self._plugins_metadata: items.append({ "name": metadata["label"], "version": metadata["version"], "short_description": metadata["short_description"], "author": metadata["author"], - "already_installed": plugin_registry.getMetaData(metadata["id"]) != {}, + "already_installed": self._checkAlreadyInstalled(metadata["id"], metadata["version"]), "file_location": metadata["file_location"] }) self._plugins_model.setItems(items) return self._plugins_model + def _checkAlreadyInstalled(self, id, version): + plugin_registry = PluginRegistry.getInstance() + metadata = plugin_registry.getMetaData(id) + if metadata != {}: + current_version = Version(metadata["plugin"]["version"]) + new_version = Version(version) + if new_version > current_version: + return False + return True + + def _onRequestFinished(self, reply): reply_url = reply.url().toString() if reply.operation() == QNetworkAccessManager.GetOperation: From d815c2afcf92ac22a0afde815c00936f74e8c0e6 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 23 Jun 2017 11:48:13 +0200 Subject: [PATCH 36/72] Added download progress bar to plugin browser CURA-3856 --- plugins/PluginBrowser/PluginBrowser.py | 13 ++++++++++- plugins/PluginBrowser/PluginBrowser.qml | 30 ++++++++++++++++++------- 2 files changed, 34 insertions(+), 9 deletions(-) diff --git a/plugins/PluginBrowser/PluginBrowser.py b/plugins/PluginBrowser/PluginBrowser.py index cdee651e71..251ed92d2f 100644 --- a/plugins/PluginBrowser/PluginBrowser.py +++ b/plugins/PluginBrowser/PluginBrowser.py @@ -39,8 +39,10 @@ class PluginBrowser(QObject, Extension): self._qml_component = None self._qml_context = None self._dialog = None + self._download_progress = 0 pluginsMetadataChanged = pyqtSignal() + onDownloadProgressChanged = pyqtSignal() def browsePlugins(self): self._createNetworkManager() @@ -72,7 +74,10 @@ class PluginBrowser(QObject, Extension): def _onDownloadPluginProgress(self, bytes_sent, bytes_total): if bytes_total > 0: new_progress = bytes_sent / bytes_total * 100 - + if new_progress > self._download_progress: + self._download_progress = new_progress + self.onDownloadProgressChanged.emit() + self._download_progress = new_progress if new_progress == 100.0: self._download_plugin_reply.downloadProgress.disconnect(self._onDownloadPluginProgress) self._temp_plugin_file = tempfile.NamedTemporaryFile(suffix = ".curaplugin") @@ -80,12 +85,18 @@ class PluginBrowser(QObject, Extension): result = PluginRegistry.getInstance().installPlugin("file://" + self._temp_plugin_file.name) self._temp_plugin_file.close() # Plugin was installed, delete temp file + @pyqtProperty(int, notify = onDownloadProgressChanged) + def downloadProgress(self): + return self._download_progress + @pyqtSlot(str) def downloadAndInstallPlugin(self, url): Logger.log("i", "Attempting to download & install plugin from %s", url) url = QUrl(url) self._download_plugin_request = QNetworkRequest(url) self._download_plugin_reply = self._network_manager.get(self._download_plugin_request) + self._download_progress = 0 + self.onDownloadProgressChanged.emit() self._download_plugin_reply.downloadProgress.connect(self._onDownloadPluginProgress) @pyqtProperty(QObject, notify=pluginsMetadataChanged) diff --git a/plugins/PluginBrowser/PluginBrowser.qml b/plugins/PluginBrowser/PluginBrowser.qml index 0e2129d7ef..477bf45ea0 100644 --- a/plugins/PluginBrowser/PluginBrowser.qml +++ b/plugins/PluginBrowser/PluginBrowser.qml @@ -13,7 +13,8 @@ UM.Dialog height: 150 ScrollView { - anchors.fill: parent + width: parent.width + height: parent.height - progressbar.height - UM.Theme.getSize("default_margin").height frameVisible: true ListView { @@ -24,6 +25,17 @@ UM.Dialog delegate: pluginDelegate } } + ProgressBar + { + id: progressbar + anchors.bottom: parent.bottom + style: UM.Theme.styles.progressbar + minimumValue: 0; + maximumValue: 100 + width: parent.width + height: 20 + value: manager.downloadProgress + } Item { SystemPalette { id: palette } @@ -37,23 +49,25 @@ UM.Dialog color: index % 2 ? palette.base : palette.alternateBase Row { - width: parent.width + width: childrenRect.width height: childrenRect.height; anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("default_margin").width Label { - text: model.name width: contentWidth } - Button - { - text: "Download" - onClicked: manager.downloadAndInstallPlugin(model.file_location) - } + + } + Button + { + text: "Download" + onClicked: manager.downloadAndInstallPlugin(model.file_location) + anchors.right: parent.right } } + } } } \ No newline at end of file From 051ce5e9f4998ccd7a2988e490026690e7e7e6c7 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 23 Jun 2017 11:51:00 +0200 Subject: [PATCH 37/72] Disabled download button on pluginbrowser for plugins that are already installed CURA-3856 --- plugins/PluginBrowser/PluginBrowser.qml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/PluginBrowser/PluginBrowser.qml b/plugins/PluginBrowser/PluginBrowser.qml index 477bf45ea0..849d2b4a8b 100644 --- a/plugins/PluginBrowser/PluginBrowser.qml +++ b/plugins/PluginBrowser/PluginBrowser.qml @@ -36,6 +36,7 @@ UM.Dialog height: 20 value: manager.downloadProgress } + Item { SystemPalette { id: palette } @@ -62,9 +63,10 @@ UM.Dialog } Button { - text: "Download" + text: enabled ? "Download" : "Already Installed" onClicked: manager.downloadAndInstallPlugin(model.file_location) anchors.right: parent.right + enabled: !model.already_installed } } From a4e353c830e0d2d6d014698c6b252ef2ef856dbb Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 23 Jun 2017 12:42:39 +0200 Subject: [PATCH 38/72] Download buttons are now disabled when another plugin is being downloaded CURA-3856 --- plugins/PluginBrowser/PluginBrowser.py | 16 +++++++++++++++- plugins/PluginBrowser/PluginBrowser.qml | 6 +++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/plugins/PluginBrowser/PluginBrowser.py b/plugins/PluginBrowser/PluginBrowser.py index 251ed92d2f..eeaebdae4c 100644 --- a/plugins/PluginBrowser/PluginBrowser.py +++ b/plugins/PluginBrowser/PluginBrowser.py @@ -41,8 +41,16 @@ class PluginBrowser(QObject, Extension): self._dialog = None self._download_progress = 0 + self._is_downloading = False + + pluginsMetadataChanged = pyqtSignal() onDownloadProgressChanged = pyqtSignal() + onIsDownloadingChanged = pyqtSignal() + + @pyqtProperty(bool, notify = onIsDownloadingChanged) + def isDownloading(self): + return self._is_downloading def browsePlugins(self): self._createNetworkManager() @@ -71,6 +79,11 @@ class PluginBrowser(QObject, Extension): Logger.log("e", "QQmlComponent status %s", self._qml_component.status()) Logger.log("e", "QQmlComponent errorString %s", self._qml_component.errorString()) + def setIsDownloading(self, is_downloading): + if self._is_downloading != is_downloading: + self._is_downloading = is_downloading + self.onIsDownloadingChanged.emit() + def _onDownloadPluginProgress(self, bytes_sent, bytes_total): if bytes_total > 0: new_progress = bytes_sent / bytes_total * 100 @@ -79,6 +92,7 @@ class PluginBrowser(QObject, Extension): self.onDownloadProgressChanged.emit() self._download_progress = new_progress if new_progress == 100.0: + self.setIsDownloading(False) self._download_plugin_reply.downloadProgress.disconnect(self._onDownloadPluginProgress) self._temp_plugin_file = tempfile.NamedTemporaryFile(suffix = ".curaplugin") self._temp_plugin_file.write(self._download_plugin_reply.readAll()) @@ -96,6 +110,7 @@ class PluginBrowser(QObject, Extension): self._download_plugin_request = QNetworkRequest(url) self._download_plugin_reply = self._network_manager.get(self._download_plugin_request) self._download_progress = 0 + self.setIsDownloading(True) self.onDownloadProgressChanged.emit() self._download_plugin_reply.downloadProgress.connect(self._onDownloadPluginProgress) @@ -134,7 +149,6 @@ class PluginBrowser(QObject, Extension): return False return True - def _onRequestFinished(self, reply): reply_url = reply.url().toString() if reply.operation() == QNetworkAccessManager.GetOperation: diff --git a/plugins/PluginBrowser/PluginBrowser.qml b/plugins/PluginBrowser/PluginBrowser.qml index 849d2b4a8b..0258763a19 100644 --- a/plugins/PluginBrowser/PluginBrowser.qml +++ b/plugins/PluginBrowser/PluginBrowser.qml @@ -8,7 +8,7 @@ UM.Dialog { id: base - title: "YAY" + title: "Find & Update plugins" width: 450 height: 150 ScrollView @@ -63,10 +63,10 @@ UM.Dialog } Button { - text: enabled ? "Download" : "Already Installed" + text: !model.already_installed ? "Download" : "Already Installed" onClicked: manager.downloadAndInstallPlugin(model.file_location) anchors.right: parent.right - enabled: !model.already_installed + enabled: !model.already_installed && !manager.isDownloading } } From 71197e9101ed596be301a0f5ab32d13119d1fa04 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 23 Jun 2017 12:45:40 +0200 Subject: [PATCH 39/72] Optimise new profiles This removes all settings that are equal to the defaults. Some settings are 'common' between all profiles of the same material. I've let those settings bubble up to the material profiles but that change is then obviously only apparent in the fdm_materials repository. Contributes to issue CURA-3960. --- .../um3_aa0.4_PP_Draft_Print.inst.cfg | 42 ----------- .../um3_aa0.4_PP_Fast_Print.inst.cfg | 42 ----------- .../um3_aa0.4_PP_Normal_Quality.inst.cfg | 43 ----------- .../um3_aa0.4_TPU_Draft_Print.inst.cfg | 6 +- .../um3_aa0.4_TPU_Fast_Print.inst.cfg | 4 +- .../um3_aa0.4_TPU_Normal_Quality.inst.cfg | 4 +- .../um3_aa0.8_CPEP_Draft_Print.inst.cfg | 64 +--------------- .../um3_aa0.8_CPEP_Superdraft_Print.inst.cfg | 64 +--------------- .../um3_aa0.8_CPEP_Verydraft_Print.inst.cfg | 62 +--------------- .../um3_aa0.8_PC_Draft_Print.inst.cfg | 73 +------------------ .../um3_aa0.8_PC_Superdraft_Print.inst.cfg | 73 +------------------ .../um3_aa0.8_PC_Verydraft_Print.inst.cfg | 72 +----------------- .../um3_aa0.8_PP_Draft_Print.inst.cfg | 13 +--- .../um3_aa0.8_PP_Superdraft_Print.inst.cfg | 13 +--- .../um3_aa0.8_PP_Verydraft_Print.inst.cfg | 13 +--- .../um3_aa0.8_TPU_Draft_Print.inst.cfg | 5 +- .../um3_aa0.8_TPU_Superdraft_Print.inst.cfg | 5 +- .../um3_aa0.8_TPU_Verydraft_Print.inst.cfg | 5 +- 18 files changed, 17 insertions(+), 586 deletions(-) diff --git a/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg index 3a559df3e8..8de84ae586 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg @@ -12,21 +12,8 @@ setting_version = 1 [values] acceleration_enabled = True -acceleration_infill = =acceleration_print -acceleration_layer_0 = =acceleration_topbottom -acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) acceleration_print = 4000 -acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) -acceleration_support_infill = =acceleration_support -acceleration_support_interface = =acceleration_topbottom -acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) -acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) -acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) -acceleration_wall_x = =acceleration_wall -adhesion_type = brim brim_width = 20 -cool_fan_full_at_height = =layer_height_0 + 4 * layer_height -cool_fan_speed = 20 cool_fan_speed_max = 100 cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 7 @@ -34,34 +21,19 @@ cool_min_speed = 2.5 infill_line_width = =round(line_width * 0.38 / 0.38, 2) infill_overlap = 0 infill_pattern = tetrahedral -infill_sparse_density = 20 infill_wipe_dist = 0.1 jerk_enabled = True -jerk_infill = =jerk_print -jerk_layer_0 = =jerk_topbottom -jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) jerk_print = 25 -jerk_support = =math.ceil(jerk_print * 15 / 25) -jerk_support_infill = =jerk_support -jerk_support_interface = =jerk_topbottom -jerk_topbottom = =math.ceil(jerk_print * 5 / 25) -jerk_wall = =math.ceil(jerk_print * 10 / 25) -jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10) -jerk_wall_x = =jerk_wall layer_height = 0.2 -layer_height_0 = =round(machine_nozzle_size / 1.5, 2) line_width = =machine_nozzle_size * 0.95 machine_min_cool_heat_time_window = 15 machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 -material_bed_temperature = 85 material_bed_temperature_layer_0 = 90 material_final_print_temperature = 205 -material_flow = 100 material_initial_print_temperature = 210 material_print_temperature = 215 material_print_temperature_layer_0 = 220 -material_standby_temperature = 100 multiple_mesh_overlap = 0 prime_tower_enable = False prime_tower_size = 16 @@ -75,33 +47,19 @@ retraction_hop_enabled = True retraction_hop_only_when_collides = True retraction_min_travel = 0.8 retraction_prime_speed = 18 -retraction_speed = 35 -skin_overlap = 15 speed_equalize_flow_enabled = True -speed_infill = =speed_print speed_layer_0 = 15 -speed_prime_tower = =speed_topbottom speed_print = 25 -speed_support = =speed_wall_0 -speed_support_interface = =speed_topbottom speed_topbottom = =math.ceil(speed_print * 25 / 25) speed_travel = 300 speed_travel_layer_0 = 50 speed_wall = =math.ceil(speed_print * 25 / 25) speed_wall_0 = =math.ceil(speed_wall * 25 / 25) -speed_wall_x = =speed_wall support_angle = 50 -support_bottom_distance = =support_z_distance / 2 -support_top_distance = =support_z_distance -support_xy_distance = =wall_line_width_0 * 2.5 -support_xy_distance_overhang = =wall_line_width_0 -support_z_distance = =layer_height * 2 switch_extruder_prime_speed = 15 switch_extruder_retraction_amount = 20 switch_extruder_retraction_speeds = 35 -top_bottom_thickness = 1.2 travel_avoid_distance = 3 -travel_compensate_overlapping_walls_enabled = True wall_0_inset = 0 wall_line_width_x = =line_width wall_thickness = =line_width * 3 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg index 23bbce605c..81e018a742 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg @@ -12,21 +12,8 @@ setting_version = 1 [values] acceleration_enabled = True -acceleration_infill = =acceleration_print -acceleration_layer_0 = =acceleration_topbottom -acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) acceleration_print = 4000 -acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) -acceleration_support_infill = =acceleration_support -acceleration_support_interface = =acceleration_topbottom -acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) -acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) -acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) -acceleration_wall_x = =acceleration_wall -adhesion_type = brim brim_width = 20 -cool_fan_full_at_height = =layer_height_0 + 4 * layer_height -cool_fan_speed = 20 cool_fan_speed_max = 100 cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 7 @@ -34,39 +21,23 @@ cool_min_speed = 2.5 infill_line_width = =round(line_width * 0.38 / 0.38, 2) infill_overlap = 0 infill_pattern = tetrahedral -infill_sparse_density = 20 infill_wipe_dist = 0.1 jerk_enabled = True -jerk_infill = =jerk_print -jerk_layer_0 = =jerk_topbottom -jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) jerk_print = 25 -jerk_support = =math.ceil(jerk_print * 15 / 25) -jerk_support_infill = =jerk_support -jerk_support_interface = =jerk_topbottom -jerk_topbottom = =math.ceil(jerk_print * 5 / 25) -jerk_wall = =math.ceil(jerk_print * 10 / 25) -jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10) -jerk_wall_x = =jerk_wall layer_height = 0.15 -layer_height_0 = =round(machine_nozzle_size / 1.5, 2) line_width = =machine_nozzle_size * 0.95 machine_min_cool_heat_time_window = 15 machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 -material_bed_temperature = 85 material_bed_temperature_layer_0 = 90 material_final_print_temperature = 195 -material_flow = 100 material_initial_print_temperature = 205 material_print_temperature = 207 material_print_temperature_layer_0 = 210 -material_standby_temperature = 100 multiple_mesh_overlap = 0 prime_tower_enable = False prime_tower_size = 16 prime_tower_wipe_enabled = True -retraction_amount = 7 retraction_count_max = 12 retraction_extra_prime_amount = 0.8 retraction_extrusion_window = 1 @@ -75,33 +46,20 @@ retraction_hop_enabled = True retraction_hop_only_when_collides = True retraction_min_travel = 0.8 retraction_prime_speed = 18 -retraction_speed = 35 -skin_overlap = 15 speed_equalize_flow_enabled = True -speed_infill = =speed_print speed_layer_0 = 15 -speed_prime_tower = =speed_topbottom speed_print = 25 -speed_support = =speed_wall_0 -speed_support_interface = =speed_topbottom speed_topbottom = =math.ceil(speed_print * 25 / 25) speed_travel = 300 speed_travel_layer_0 = 50 speed_wall = =math.ceil(speed_print * 25 / 25) speed_wall_0 = =math.ceil(speed_wall * 25 / 25) -speed_wall_x = =speed_wall support_angle = 50 -support_bottom_distance = =support_z_distance / 2 -support_top_distance = =support_z_distance -support_xy_distance = =wall_line_width_0 * 2.5 -support_xy_distance_overhang = =wall_line_width_0 -support_z_distance = =layer_height * 2 switch_extruder_prime_speed = 15 switch_extruder_retraction_amount = 20 switch_extruder_retraction_speeds = 35 top_bottom_thickness = 1.1 travel_avoid_distance = 3 -travel_compensate_overlapping_walls_enabled = True wall_0_inset = 0 wall_line_width_x = =line_width wall_thickness = =line_width * 3 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg index e0e9fd3234..62cc558ff6 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg @@ -12,21 +12,8 @@ setting_version = 1 [values] acceleration_enabled = True -acceleration_infill = =acceleration_print -acceleration_layer_0 = =acceleration_topbottom -acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) acceleration_print = 4000 -acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) -acceleration_support_infill = =acceleration_support -acceleration_support_interface = =acceleration_topbottom -acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) -acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) -acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) -acceleration_wall_x = =acceleration_wall -adhesion_type = brim brim_width = 20 -cool_fan_full_at_height = =layer_height_0 + 4 * layer_height -cool_fan_speed = 20 cool_fan_speed_max = 100 cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 7 @@ -34,39 +21,22 @@ cool_min_speed = 2.5 infill_line_width = =round(line_width * 0.38 / 0.38, 2) infill_overlap = 0 infill_pattern = tetrahedral -infill_sparse_density = 20 infill_wipe_dist = 0.1 jerk_enabled = True -jerk_infill = =jerk_print -jerk_layer_0 = =jerk_topbottom -jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) jerk_print = 25 -jerk_support = =math.ceil(jerk_print * 15 / 25) -jerk_support_infill = =jerk_support -jerk_support_interface = =jerk_topbottom -jerk_topbottom = =math.ceil(jerk_print * 5 / 25) -jerk_wall = =math.ceil(jerk_print * 10 / 25) -jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10) -jerk_wall_x = =jerk_wall -layer_height = 0.1 -layer_height_0 = =round(machine_nozzle_size / 1.5, 2) line_width = =machine_nozzle_size * 0.95 machine_min_cool_heat_time_window = 15 machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 -material_bed_temperature = 85 material_bed_temperature_layer_0 = 90 material_final_print_temperature = 195 -material_flow = 100 material_initial_print_temperature = 200 material_print_temperature = 205 material_print_temperature_layer_0 = 208 -material_standby_temperature = 100 multiple_mesh_overlap = 0 prime_tower_enable = False prime_tower_size = 16 prime_tower_wipe_enabled = True -retraction_amount = 7 retraction_count_max = 12 retraction_extra_prime_amount = 0.8 retraction_extrusion_window = 1 @@ -75,33 +45,20 @@ retraction_hop_enabled = True retraction_hop_only_when_collides = True retraction_min_travel = 0.8 retraction_prime_speed = 18 -retraction_speed = 35 -skin_overlap = 15 speed_equalize_flow_enabled = True -speed_infill = =speed_print speed_layer_0 = 15 -speed_prime_tower = =speed_topbottom speed_print = 25 -speed_support = =speed_wall_0 -speed_support_interface = =speed_topbottom speed_topbottom = =math.ceil(speed_print * 25 / 25) speed_travel = 300 speed_travel_layer_0 = 50 speed_wall = =math.ceil(speed_print * 25 / 25) speed_wall_0 = =math.ceil(speed_wall * 25 / 25) -speed_wall_x = =speed_wall support_angle = 50 -support_bottom_distance = =support_z_distance / 2 -support_top_distance = =support_z_distance -support_xy_distance = =wall_line_width_0 * 2.5 -support_xy_distance_overhang = =wall_line_width_0 -support_z_distance = =layer_height * 2 switch_extruder_prime_speed = 15 switch_extruder_retraction_amount = 20 switch_extruder_retraction_speeds = 35 top_bottom_thickness = 1 travel_avoid_distance = 3 -travel_compensate_overlapping_walls_enabled = True wall_0_inset = 0 wall_line_width_x = =line_width wall_thickness = =line_width * 3 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.4_TPU_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_TPU_Draft_Print.inst.cfg index 8c6318a698..59600a00ae 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_TPU_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_TPU_Draft_Print.inst.cfg @@ -36,9 +36,7 @@ material_flow = 106 material_initial_print_temperature = =material_print_temperature - 16 material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =default_material_print_temperature + 2 -material_standby_temperature = 100 multiple_mesh_overlap = 0 -prime_tower_enable = True prime_tower_wipe_enabled = True retraction_count_max = 12 retraction_extra_prime_amount = 0.8 @@ -48,6 +46,7 @@ retraction_hop_enabled = True retraction_hop_only_when_collides = True retraction_min_travel = 0.8 retraction_prime_speed = 15 +skin_overlap = 5 speed_equalize_flow_enabled = True speed_layer_0 = 18 speed_print = 25 @@ -56,7 +55,6 @@ speed_travel = 300 speed_wall = =math.ceil(speed_print * 25 / 25) speed_wall_0 = =math.ceil(speed_wall * 25 / 25) support_angle = 50 -skin_overlap = 5 switch_extruder_prime_speed = 15 switch_extruder_retraction_amount = 20 switch_extruder_retraction_speeds = 35 @@ -64,4 +62,4 @@ top_bottom_thickness = 0.7 travel_avoid_distance = 1.5 wall_0_inset = 0 wall_line_width_x = =line_width -wall_thickness = 0.76 +wall_thickness = 0.76 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.4_TPU_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_TPU_Fast_Print.inst.cfg index 129135f6a1..3cae3e53c9 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_TPU_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_TPU_Fast_Print.inst.cfg @@ -36,9 +36,7 @@ material_flow = 106 material_initial_print_temperature = =material_print_temperature - 16 material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =default_material_print_temperature + 2 -material_standby_temperature = 100 multiple_mesh_overlap = 0 -prime_tower_enable = True prime_tower_wipe_enabled = True retraction_amount = 7 retraction_count_max = 12 @@ -65,4 +63,4 @@ top_bottom_thickness = 0.7 travel_avoid_distance = 1.5 wall_0_inset = 0 wall_line_width_x = =line_width -wall_thickness = 0.76 +wall_thickness = 0.76 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.4_TPU_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_TPU_Normal_Quality.inst.cfg index eb71f1ef3f..96146c5b68 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_TPU_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_TPU_Normal_Quality.inst.cfg @@ -34,9 +34,7 @@ material_final_print_temperature = =material_print_temperature - 21 material_flow = 106 material_initial_print_temperature = =material_print_temperature - 16 material_print_temperature_layer_0 = =default_material_print_temperature -material_standby_temperature = 100 multiple_mesh_overlap = 0 -prime_tower_enable = True prime_tower_wipe_enabled = True retraction_count_max = 12 retraction_extra_prime_amount = 0.8 @@ -62,4 +60,4 @@ top_bottom_thickness = 0.7 travel_avoid_distance = 1.5 wall_0_inset = 0 wall_line_width_x = =line_width -wall_thickness = 0.76 +wall_thickness = 0.76 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Draft_Print.inst.cfg index a40339e9c9..31a900dfb6 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Draft_Print.inst.cfg @@ -11,88 +11,26 @@ weight = -2 setting_version = 1 [values] -acceleration_enabled = True -acceleration_infill = =acceleration_print -acceleration_layer_0 = =acceleration_topbottom -acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) -acceleration_print = 4000 -acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) -acceleration_support_infill = =acceleration_support -acceleration_support_interface = =acceleration_topbottom -acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) -acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) -acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) -acceleration_wall_x = =acceleration_wall -adhesion_type = brim brim_width = 14 cool_fan_full_at_height = =layer_height_0 + 14 * layer_height -cool_fan_speed = 8 -cool_fan_speed_max = 100 -cool_min_layer_time = 5 -cool_min_speed = 5 infill_before_walls = True -infill_line_width = =round(line_width * 0.6 / 0.7, 2) -infill_overlap = 0 -infill_pattern = triangles -infill_sparse_density = 20 -infill_wipe_dist = 0 -jerk_enabled = True -jerk_infill = =jerk_print -jerk_layer_0 = =jerk_topbottom -jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) -jerk_print = 25 -jerk_support = =math.ceil(jerk_print * 15 / 25) -jerk_support_infill = =jerk_support -jerk_support_interface = =jerk_topbottom -jerk_topbottom = =math.ceil(jerk_print * 25 / 25) -jerk_wall = =math.ceil(jerk_print * 25 / 25) -jerk_wall_0 = =math.ceil(jerk_wall * 25 / 25) -jerk_wall_x = =jerk_wall -layer_height = 0.2 -layer_height_0 = =round(machine_nozzle_size / 1.5, 2) line_width = =machine_nozzle_size * 0.9375 -machine_min_cool_heat_time_window = 15 machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 -material_bed_temperature = 107 material_print_temperature = =default_material_print_temperature - 10 material_print_temperature_layer_0 = =material_print_temperature -material_initial_print_temperature = =material_print_temperature - 5 -material_final_print_temperature = =material_print_temperature - 10 -material_standby_temperature = 100 -multiple_mesh_overlap = 0 -prime_tower_enable = False -prime_tower_wipe_enabled = True -retraction_amount = 6.5 retraction_combing = off -retraction_count_max = 25 -retraction_extrusion_window = 1 retraction_hop = 0.1 retraction_hop_enabled = False -retraction_hop_only_when_collides = True skin_overlap = 0 -speed_infill = =speed_print speed_layer_0 = 15 -speed_prime_tower = =speed_topbottom speed_print = 50 speed_slowdown_layers = 15 -speed_support = =speed_wall_0 -speed_support_interface = =speed_topbottom speed_topbottom = =math.ceil(speed_print * 35 / 50) speed_wall = =math.ceil(speed_print * 40 / 50) speed_wall_0 = =math.ceil(speed_wall * 35 / 40) -speed_wall_x = =speed_wall -support_angle = 60 support_bottom_distance = =support_z_distance support_line_width = =round(line_width * 0.6 / 0.7, 2) -support_top_distance = =support_z_distance -support_xy_distance = =wall_line_width_0 * 2.5 -support_xy_distance_overhang = =wall_line_width_0 support_z_distance = =layer_height -switch_extruder_retraction_amount = 16.5 top_bottom_thickness = 1.2 -travel_avoid_distance = 1.5 -travel_compensate_overlapping_walls_enabled = True -wall_0_inset = 0 -wall_line_width_x = =wall_line_width -wall_thickness = 2 +travel_avoid_distance = 1.5 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg index 8b1fbabea8..ca43a195aa 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg @@ -11,88 +11,28 @@ weight = -2 setting_version = 1 [values] -acceleration_enabled = True -acceleration_infill = =acceleration_print -acceleration_layer_0 = =acceleration_topbottom -acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) -acceleration_print = 4000 -acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) -acceleration_support_infill = =acceleration_support -acceleration_support_interface = =acceleration_topbottom -acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) -acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) -acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) -acceleration_wall_x = =acceleration_wall -adhesion_type = brim brim_width = 14 cool_fan_full_at_height = =layer_height_0 + 7 * layer_height -cool_fan_speed = 8 -cool_fan_speed_max = 100 -cool_min_layer_time = 5 -cool_min_speed = 5 infill_before_walls = True -infill_line_width = =round(line_width * 0.6 / 0.7, 2) -infill_overlap = 0 -infill_pattern = triangles -infill_sparse_density = 20 -infill_wipe_dist = 0 -jerk_enabled = True -jerk_infill = =jerk_print -jerk_layer_0 = =jerk_topbottom -jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) -jerk_print = 25 -jerk_support = =math.ceil(jerk_print * 15 / 25) -jerk_support_infill = =jerk_support -jerk_support_interface = =jerk_topbottom -jerk_topbottom = =math.ceil(jerk_print * 25 / 25) -jerk_wall = =math.ceil(jerk_print * 25 / 25) -jerk_wall_0 = =math.ceil(jerk_wall * 25 / 25) -jerk_wall_x = =jerk_wall layer_height = 0.4 -layer_height_0 = =round(machine_nozzle_size / 1.5, 2) line_width = =machine_nozzle_size * 0.9375 -machine_min_cool_heat_time_window = 15 machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 -material_bed_temperature = 107 -material_print_temperature = =default_material_print_temperature - 5 +material_print_temperature = =default_material_print_temperature - 5 material_print_temperature_layer_0 = =material_print_temperature -material_initial_print_temperature = =material_print_temperature - 5 -material_final_print_temperature = =material_print_temperature - 10 -material_standby_temperature = 100 -multiple_mesh_overlap = 0 prime_tower_enable = True -prime_tower_wipe_enabled = True -retraction_amount = 6.5 retraction_combing = off -retraction_count_max = 25 -retraction_extrusion_window = 1 retraction_hop = 0.1 retraction_hop_enabled = False -retraction_hop_only_when_collides = True skin_overlap = 0 -speed_infill = =speed_print speed_layer_0 = 15 -speed_prime_tower = =speed_topbottom speed_print = 50 speed_slowdown_layers = 8 -speed_support = =speed_wall_0 -speed_support_interface = =speed_topbottom speed_topbottom = =math.ceil(speed_print * 35 / 50) speed_wall = =math.ceil(speed_print * 40 / 50) speed_wall_0 = =math.ceil(speed_wall * 35 / 40) -speed_wall_x = =speed_wall -support_angle = 60 support_bottom_distance = =support_z_distance support_line_width = =round(line_width * 0.6 / 0.7, 2) -support_top_distance = =support_z_distance -support_xy_distance = =wall_line_width_0 * 2.5 -support_xy_distance_overhang = =wall_line_width_0 support_z_distance = =layer_height -switch_extruder_retraction_amount = 16.5 top_bottom_thickness = 1.2 -travel_avoid_distance = 1.5 -travel_compensate_overlapping_walls_enabled = True -wall_0_inset = 0 -wall_line_width_x = =wall_line_width -wall_thickness = 2 +travel_avoid_distance = 1.5 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg index a478ea8b8a..f38bef84c1 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg @@ -11,88 +11,28 @@ weight = -1 setting_version = 1 [values] -acceleration_enabled = True -acceleration_infill = =acceleration_print -acceleration_layer_0 = =acceleration_topbottom -acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) -acceleration_print = 4000 -acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) -acceleration_support_infill = =acceleration_support -acceleration_support_interface = =acceleration_topbottom -acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) -acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) -acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) -acceleration_wall_x = =acceleration_wall -adhesion_type = brim brim_width = 14 cool_fan_full_at_height = =layer_height_0 + 9 * layer_height -cool_fan_speed = 8 -cool_fan_speed_max = 100 -cool_min_layer_time = 5 -cool_min_speed = 5 infill_before_walls = True -infill_line_width = =round(line_width * 0.6 / 0.7, 2) -infill_overlap = 0 -infill_pattern = triangles -infill_sparse_density = 20 -infill_wipe_dist = 0 -jerk_enabled = True -jerk_infill = =jerk_print -jerk_layer_0 = =jerk_topbottom -jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) -jerk_print = 25 -jerk_support = =math.ceil(jerk_print * 15 / 25) -jerk_support_infill = =jerk_support -jerk_support_interface = =jerk_topbottom -jerk_topbottom = =math.ceil(jerk_print * 25 / 25) -jerk_wall = =math.ceil(jerk_print * 25 / 25) -jerk_wall_0 = =math.ceil(jerk_wall * 25 / 25) -jerk_wall_x = =jerk_wall layer_height = 0.3 -layer_height_0 = =round(machine_nozzle_size / 1.5, 2) line_width = =machine_nozzle_size * 0.9375 -machine_min_cool_heat_time_window = 15 machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 -material_bed_temperature = 107 material_print_temperature = =default_material_print_temperature - 7 material_print_temperature_layer_0 = =material_print_temperature -material_initial_print_temperature = =material_print_temperature - 5 -material_final_print_temperature = =material_print_temperature - 10 -material_standby_temperature = 100 -multiple_mesh_overlap = 0 prime_tower_enable = True -prime_tower_wipe_enabled = True -retraction_amount = 6.5 retraction_combing = off -retraction_count_max = 25 -retraction_extrusion_window = 1 retraction_hop = 0.1 retraction_hop_enabled = False -retraction_hop_only_when_collides = True skin_overlap = 0 -speed_infill = =speed_print speed_layer_0 = 15 -speed_prime_tower = =speed_topbottom speed_print = 50 speed_slowdown_layers = 10 -speed_support = =speed_wall_0 -speed_support_interface = =speed_topbottom speed_topbottom = =math.ceil(speed_print * 35 / 50) speed_wall = =math.ceil(speed_print * 40 / 50) speed_wall_0 = =math.ceil(speed_wall * 35 / 40) -speed_wall_x = =speed_wall -support_angle = 60 support_bottom_distance = =support_z_distance support_line_width = =round(line_width * 0.6 / 0.7, 2) -support_top_distance = =support_z_distance -support_xy_distance = =wall_line_width_0 * 2.5 -support_xy_distance_overhang = =wall_line_width_0 support_z_distance = =layer_height -switch_extruder_retraction_amount = 16.5 top_bottom_thickness = 1.2 -travel_avoid_distance = 1.5 -travel_compensate_overlapping_walls_enabled = True -wall_0_inset = 0 -wall_line_width_x = =wall_line_width -wall_thickness = 2 +travel_avoid_distance = 1.5 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.8_PC_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PC_Draft_Print.inst.cfg index c03e7bc385..b262aeef34 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PC_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PC_Draft_Print.inst.cfg @@ -11,91 +11,20 @@ weight = 0 setting_version = 1 [values] -acceleration_enabled = True -acceleration_infill = =acceleration_print -acceleration_layer_0 = =acceleration_topbottom -acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) -acceleration_print = 4000 -acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) -acceleration_support_infill = =acceleration_support -acceleration_support_interface = =acceleration_topbottom -acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) -acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) -acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) -acceleration_wall_x = =acceleration_wall -adhesion_type = brim brim_width = 14 cool_fan_full_at_height = =layer_height_0 + 14 * layer_height -cool_fan_speed = 5 -cool_fan_speed_max = 100 -cool_min_layer_time = 5 -cool_min_speed = 5 infill_before_walls = True -infill_line_width = =round(line_width * 0.6 / 0.7, 2) -infill_overlap = 0 -infill_pattern = triangles -infill_sparse_density = 20 -infill_wipe_dist = 0 -jerk_enabled = True -jerk_infill = =jerk_print -jerk_layer_0 = =jerk_topbottom -jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) -jerk_print = 25 -jerk_support = =math.ceil(jerk_print * 15 / 25) -jerk_support_infill = =jerk_support -jerk_support_interface = =jerk_topbottom -jerk_topbottom = =math.ceil(jerk_print * 25 / 25) -jerk_wall = =math.ceil(jerk_print * 25 / 25) -jerk_wall_0 = =math.ceil(jerk_wall * 25 / 25) -jerk_wall_x = =jerk_wall -layer_height = 0.2 -layer_height_0 = =round(machine_nozzle_size / 1.5, 2) line_width = =machine_nozzle_size * 0.875 -machine_min_cool_heat_time_window = 15 -machine_nozzle_cool_down_speed = 0.85 -machine_nozzle_heat_up_speed = 1.5 -material_bed_temperature = 107 material_print_temperature = =default_material_print_temperature - 5 material_print_temperature_layer_0 = =material_print_temperature -material_initial_print_temperature = =material_print_temperature - 5 -material_final_print_temperature = =material_print_temperature - 10 -material_standby_temperature = 100 -multiple_mesh_overlap = 0 -prime_tower_enable = False -prime_tower_wipe_enabled = True raft_airgap = 0.5 raft_margin = 15 -retract_at_layer_change = True -retraction_amount = 6.5 -retraction_count_max = 25 -retraction_extrusion_window = 1 -retraction_hop = 2 -retraction_hop_enabled = True -retraction_hop_only_when_collides = True skin_overlap = 0 -speed_infill = =speed_print speed_layer_0 = 15 -speed_prime_tower = =speed_topbottom speed_print = 50 speed_slowdown_layers = 15 -speed_support = =speed_wall_0 -speed_support_interface = =speed_topbottom speed_topbottom = =math.ceil(speed_print * 25 / 50) speed_wall = =math.ceil(speed_print * 40 / 50) speed_wall_0 = =math.ceil(speed_wall * 30 / 40) -speed_wall_x = =speed_wall -support_angle = 60 -support_bottom_distance = =support_z_distance / 2 support_line_width = =round(line_width * 0.6 / 0.7, 2) -support_pattern = zigzag -support_top_distance = =support_z_distance -support_xy_distance = =wall_line_width_0 * 2.5 -support_xy_distance_overhang = =wall_line_width_0 -support_z_distance = =layer_height * 2 -switch_extruder_retraction_amount = 16.5 -top_bottom_thickness = 1.4 -travel_avoid_distance = 3 -travel_compensate_overlapping_walls_enabled = True -wall_0_inset = 0 -wall_line_width_x = =wall_line_width -wall_thickness = 2 +travel_avoid_distance = 3 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg index eed4fbf3a6..0285d492da 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg @@ -11,91 +11,20 @@ weight = -2 setting_version = 1 [values] -acceleration_enabled = True -acceleration_infill = =acceleration_print -acceleration_layer_0 = =acceleration_topbottom -acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) -acceleration_print = 4000 -acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) -acceleration_support_infill = =acceleration_support -acceleration_support_interface = =acceleration_topbottom -acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) -acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) -acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) -acceleration_wall_x = =acceleration_wall -adhesion_type = brim brim_width = 14 cool_fan_full_at_height = =layer_height_0 + 7 * layer_height -cool_fan_speed = 5 -cool_fan_speed_max = 100 -cool_min_layer_time = 5 -cool_min_speed = 5 infill_before_walls = True -infill_line_width = =round(line_width * 0.6 / 0.7, 2) -infill_overlap = 0 -infill_pattern = triangles -infill_sparse_density = 20 -infill_wipe_dist = 0 -jerk_enabled = True -jerk_infill = =jerk_print -jerk_layer_0 = =jerk_topbottom -jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) -jerk_print = 25 -jerk_support = =math.ceil(jerk_print * 15 / 25) -jerk_support_infill = =jerk_support -jerk_support_interface = =jerk_topbottom -jerk_topbottom = =math.ceil(jerk_print * 25 / 25) -jerk_wall = =math.ceil(jerk_print * 25 / 25) -jerk_wall_0 = =math.ceil(jerk_wall * 25 / 25) -jerk_wall_x = =jerk_wall layer_height = 0.4 -layer_height_0 = =round(machine_nozzle_size / 1.5, 2) line_width = =machine_nozzle_size * 0.875 -machine_min_cool_heat_time_window = 15 -machine_nozzle_cool_down_speed = 0.85 -machine_nozzle_heat_up_speed = 1.5 -material_bed_temperature = 107 -material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature -material_initial_print_temperature = =material_print_temperature - 5 -material_final_print_temperature = =material_print_temperature - 10 -material_standby_temperature = 100 -multiple_mesh_overlap = 0 -prime_tower_enable = False -prime_tower_wipe_enabled = True raft_airgap = 0.5 raft_margin = 15 -retract_at_layer_change = True -retraction_amount = 6.5 -retraction_count_max = 25 -retraction_extrusion_window = 1 -retraction_hop = 2 -retraction_hop_enabled = True -retraction_hop_only_when_collides = True skin_overlap = 0 -speed_infill = =speed_print speed_layer_0 = 15 -speed_prime_tower = =speed_topbottom speed_print = 50 speed_slowdown_layers = 8 -speed_support = =speed_wall_0 -speed_support_interface = =speed_topbottom speed_topbottom = =math.ceil(speed_print * 25 / 50) speed_wall = =math.ceil(speed_print * 40 / 50) speed_wall_0 = =math.ceil(speed_wall * 30 / 40) -speed_wall_x = =speed_wall -support_angle = 60 -support_bottom_distance = =support_z_distance / 2 support_line_width = =round(line_width * 0.6 / 0.7, 2) -support_pattern = zigzag -support_top_distance = =support_z_distance -support_xy_distance = =wall_line_width_0 * 2.5 -support_xy_distance_overhang = =wall_line_width_0 -support_z_distance = =layer_height * 2 -switch_extruder_retraction_amount = 16.5 -top_bottom_thickness = 1.4 -travel_avoid_distance = 3 -travel_compensate_overlapping_walls_enabled = True -wall_0_inset = 0 -wall_line_width_x = =wall_line_width -wall_thickness = 2 +travel_avoid_distance = 3 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg index c1a15d3ddc..96609d7bda 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg @@ -11,91 +11,21 @@ weight = -1 setting_version = 1 [values] -acceleration_enabled = True -acceleration_infill = =acceleration_print -acceleration_layer_0 = =acceleration_topbottom -acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) -acceleration_print = 4000 -acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) -acceleration_support_infill = =acceleration_support -acceleration_support_interface = =acceleration_topbottom -acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) -acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) -acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) -acceleration_wall_x = =acceleration_wall -adhesion_type = brim brim_width = 14 cool_fan_full_at_height = =layer_height_0 + 9 * layer_height -cool_fan_speed = 5 -cool_fan_speed_max = 100 -cool_min_layer_time = 5 -cool_min_speed = 5 infill_before_walls = True -infill_line_width = =round(line_width * 0.6 / 0.7, 2) -infill_overlap = 0 -infill_pattern = triangles -infill_sparse_density = 20 -infill_wipe_dist = 0 -jerk_enabled = True -jerk_infill = =jerk_print -jerk_layer_0 = =jerk_topbottom -jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) -jerk_print = 25 -jerk_support = =math.ceil(jerk_print * 15 / 25) -jerk_support_infill = =jerk_support -jerk_support_interface = =jerk_topbottom -jerk_topbottom = =math.ceil(jerk_print * 25 / 25) -jerk_wall = =math.ceil(jerk_print * 25 / 25) -jerk_wall_0 = =math.ceil(jerk_wall * 25 / 25) -jerk_wall_x = =jerk_wall layer_height = 0.3 -layer_height_0 = =round(machine_nozzle_size / 1.5, 2) line_width = =machine_nozzle_size * 0.875 -machine_min_cool_heat_time_window = 15 -machine_nozzle_cool_down_speed = 0.85 -machine_nozzle_heat_up_speed = 1.5 -material_bed_temperature = 107 material_print_temperature = =default_material_print_temperature - 2 material_print_temperature_layer_0 = =material_print_temperature -material_initial_print_temperature = =material_print_temperature - 5 -material_final_print_temperature = =material_print_temperature - 10 -material_standby_temperature = 100 -multiple_mesh_overlap = 0 -prime_tower_enable = False -prime_tower_wipe_enabled = True raft_airgap = 0.5 raft_margin = 15 -retract_at_layer_change = True -retraction_amount = 6.5 -retraction_count_max = 25 -retraction_extrusion_window = 1 -retraction_hop = 2 -retraction_hop_enabled = True -retraction_hop_only_when_collides = True skin_overlap = 0 -speed_infill = =speed_print speed_layer_0 = 15 -speed_prime_tower = =speed_topbottom speed_print = 50 speed_slowdown_layers = 10 -speed_support = =speed_wall_0 -speed_support_interface = =speed_topbottom speed_topbottom = =math.ceil(speed_print * 25 / 50) speed_wall = =math.ceil(speed_print * 40 / 50) speed_wall_0 = =math.ceil(speed_wall * 30 / 40) -speed_wall_x = =speed_wall -support_angle = 60 -support_bottom_distance = =support_z_distance / 2 support_line_width = =round(line_width * 0.6 / 0.7, 2) -support_pattern = zigzag -support_top_distance = =support_z_distance -support_xy_distance = =wall_line_width_0 * 2.5 -support_xy_distance_overhang = =wall_line_width_0 -support_z_distance = =layer_height * 2 -switch_extruder_retraction_amount = 16.5 -top_bottom_thickness = 1.4 -travel_avoid_distance = 3 -travel_compensate_overlapping_walls_enabled = True -wall_0_inset = 0 -wall_line_width_x = =wall_line_width -wall_thickness = 2 +travel_avoid_distance = 3 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg index 5c86daff89..a9ad0a58bd 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg @@ -12,7 +12,6 @@ setting_version = 1 [values] brim_width = 25 -cool_fan_speed = 10 cool_min_layer_time_fan_speed_max = 6 cool_min_speed = 17 expand_skins_expand_distance = =line_width * 2 @@ -21,15 +20,12 @@ expand_upper_skins = True infill_before_walls = True infill_line_width = =round(line_width * 0.7 / 0.8, 2) infill_pattern = tetrahedral -infill_sparse_density = 20 jerk_prime_tower = =math.ceil(jerk_print * 25 / 25) jerk_support = =math.ceil(jerk_print * 25 / 25) jerk_wall_0 = =math.ceil(jerk_wall * 15 / 25) material_bed_temperature_layer_0 = =material_bed_temperature -material_flow = 100 material_print_temperature = =default_material_print_temperature - 2 material_print_temperature_layer_0 = =default_material_print_temperature + 2 -material_standby_temperature = 100 multiple_mesh_overlap = 0.2 prime_tower_enable = True prime_tower_flow = 100 @@ -38,17 +34,11 @@ retract_at_layer_change = False retraction_count_max = 12 retraction_extra_prime_amount = 0.5 retraction_hop = 0.5 -retraction_hop_only_when_collides = True retraction_min_travel = 1.5 retraction_prime_speed = 15 skin_line_width = =round(line_width * 0.78 / 0.8, 2) -skin_overlap = 5 -speed_print = 35 -speed_topbottom = =math.ceil(speed_print * 25 / 35) speed_travel = 300 -speed_wall = =math.ceil(speed_print * 30 / 35) speed_wall_x = =math.ceil(speed_wall * 30 / 30) -support_angle = 60 support_bottom_distance = =support_z_distance support_line_width = =round(line_width * 0.7 / 0.8, 2) support_offset = =line_width @@ -59,5 +49,4 @@ top_bottom_thickness = 1.6 travel_compensate_overlapping_walls_0_enabled = False wall_0_wipe_dist = =line_width * 2 wall_line_width_x = =round(line_width * 0.8 / 0.8, 2) -wall_thickness = 1.6 - +wall_thickness = 1.6 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg index 7dd422b300..74ab389d56 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg @@ -12,7 +12,6 @@ setting_version = 1 [values] brim_width = 25 -cool_fan_speed = 10 cool_min_layer_time_fan_speed_max = 6 cool_min_speed = 17 expand_skins_expand_distance = =line_width * 2 @@ -21,15 +20,12 @@ expand_upper_skins = True infill_before_walls = True infill_line_width = =round(line_width * 0.7 / 0.8, 2) infill_pattern = tetrahedral -infill_sparse_density = 20 jerk_prime_tower = =math.ceil(jerk_print * 25 / 25) jerk_support = =math.ceil(jerk_print * 25 / 25) jerk_wall_0 = =math.ceil(jerk_wall * 15 / 25) material_bed_temperature_layer_0 = =material_bed_temperature -material_flow = 100 material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =default_material_print_temperature + 2 -material_standby_temperature = 100 multiple_mesh_overlap = 0.2 prime_tower_enable = True prime_tower_flow = 100 @@ -38,17 +34,11 @@ retract_at_layer_change = False retraction_count_max = 12 retraction_extra_prime_amount = 0.5 retraction_hop = 0.5 -retraction_hop_only_when_collides = True retraction_min_travel = 1.5 retraction_prime_speed = 15 skin_line_width = =round(line_width * 0.78 / 0.8, 2) -skin_overlap = 5 -speed_print = 35 -speed_topbottom = =math.ceil(speed_print * 25 / 35) speed_travel = 300 -speed_wall = =math.ceil(speed_print * 30 / 35) speed_wall_x = =math.ceil(speed_wall * 30 / 30) -support_angle = 60 support_bottom_distance = =support_z_distance support_line_width = =round(line_width * 0.7 / 0.8, 2) support_offset = =line_width @@ -59,5 +49,4 @@ top_bottom_thickness = 1.6 travel_compensate_overlapping_walls_0_enabled = False wall_0_wipe_dist = =line_width * 2 wall_line_width_x = =round(line_width * 0.8 / 0.8, 2) -wall_thickness = 1.6 - +wall_thickness = 1.6 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg index 00958e7381..f51e116cac 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg @@ -12,7 +12,6 @@ setting_version = 1 [values] brim_width = 25 -cool_fan_speed = 10 cool_min_layer_time_fan_speed_max = 6 cool_min_speed = 17 expand_skins_expand_distance = =line_width * 2 @@ -21,15 +20,12 @@ expand_upper_skins = True infill_before_walls = True infill_line_width = =round(line_width * 0.7 / 0.8, 2) infill_pattern = tetrahedral -infill_sparse_density = 20 jerk_prime_tower = =math.ceil(jerk_print * 25 / 25) jerk_support = =math.ceil(jerk_print * 25 / 25) jerk_wall_0 = =math.ceil(jerk_wall * 15 / 25) layer_height = 0.3 material_bed_temperature_layer_0 = =material_bed_temperature -material_flow = 100 material_print_temperature_layer_0 = =default_material_print_temperature + 2 -material_standby_temperature = 100 multiple_mesh_overlap = 0.2 prime_tower_enable = True prime_tower_flow = 100 @@ -38,17 +34,11 @@ retract_at_layer_change = False retraction_count_max = 12 retraction_extra_prime_amount = 0.5 retraction_hop = 0.5 -retraction_hop_only_when_collides = True retraction_min_travel = 1.5 retraction_prime_speed = 15 skin_line_width = =round(line_width * 0.78 / 0.8, 2) -skin_overlap = 5 -speed_print = 35 -speed_topbottom = =math.ceil(speed_print * 25 / 35) speed_travel = 300 -speed_wall = =math.ceil(speed_print * 30 / 35) speed_wall_x = =math.ceil(speed_wall * 30 / 30) -support_angle = 60 support_bottom_distance = =support_z_distance support_line_width = =round(line_width * 0.7 / 0.8, 2) support_offset = =line_width @@ -59,5 +49,4 @@ top_bottom_thickness = 1.6 travel_compensate_overlapping_walls_0_enabled = False wall_0_wipe_dist = =line_width * 2 wall_line_width_x = =round(line_width * 0.8 / 0.8, 2) -wall_thickness = 1.6 - +wall_thickness = 1.6 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg index 33f1b7952a..4f5a8f99dd 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg @@ -33,7 +33,6 @@ material_flow = 105 material_initial_print_temperature = =material_print_temperature - 16 material_print_temperature = =default_material_print_temperature - 2 material_print_temperature_layer_0 = =default_material_print_temperature + 2 -material_standby_temperature = 100 multiple_mesh_overlap = 0.2 prime_tower_enable = True prime_tower_flow = 100 @@ -42,7 +41,6 @@ retract_at_layer_change = False retraction_count_max = 12 retraction_extra_prime_amount = 0.5 retraction_hop = 1.5 -retraction_hop_enabled = True retraction_hop_only_when_collides = False retraction_min_travel = 0.8 retraction_prime_speed = 15 @@ -64,5 +62,4 @@ travel_avoid_distance = 1.5 travel_compensate_overlapping_walls_0_enabled = False wall_0_wipe_dist = =line_width * 2 wall_line_width_x = =round(line_width * 0.6 / 0.8, 2) -wall_thickness = 1.3 - +wall_thickness = 1.3 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg index 42a819ec82..c91bf4c107 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg @@ -34,7 +34,6 @@ material_flow = 105 material_initial_print_temperature = =material_print_temperature - 16 material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =default_material_print_temperature + 2 -material_standby_temperature = 100 multiple_mesh_overlap = 0.2 prime_tower_enable = True prime_tower_flow = 100 @@ -43,7 +42,6 @@ retract_at_layer_change = False retraction_count_max = 12 retraction_extra_prime_amount = 0.5 retraction_hop = 1.5 -retraction_hop_enabled = True retraction_hop_only_when_collides = False retraction_min_travel = 0.8 retraction_prime_speed = 15 @@ -65,5 +63,4 @@ travel_avoid_distance = 1.5 travel_compensate_overlapping_walls_0_enabled = False wall_0_wipe_dist = =line_width * 2 wall_line_width_x = =round(line_width * 0.6 / 0.8, 2) -wall_thickness = 1.3 - +wall_thickness = 1.3 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg index dd3cc8fa68..78094b33b4 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg @@ -33,7 +33,6 @@ material_final_print_temperature = =material_print_temperature - 21 material_flow = 105 material_initial_print_temperature = =material_print_temperature - 16 material_print_temperature_layer_0 = =default_material_print_temperature + 2 -material_standby_temperature = 100 multiple_mesh_overlap = 0.2 prime_tower_enable = True prime_tower_flow = 100 @@ -42,7 +41,6 @@ retract_at_layer_change = False retraction_count_max = 12 retraction_extra_prime_amount = 0.5 retraction_hop = 1.5 -retraction_hop_enabled = True retraction_hop_only_when_collides = False retraction_min_travel = 0.8 retraction_prime_speed = 15 @@ -64,5 +62,4 @@ travel_avoid_distance = 1.5 travel_compensate_overlapping_walls_0_enabled = False wall_0_wipe_dist = =line_width * 2 wall_line_width_x = =round(line_width * 0.6 / 0.8, 2) -wall_thickness = 1.3 - +wall_thickness = 1.3 \ No newline at end of file From b2a21f04434b4dd56423d5f73af8e2018ad40a1c Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 23 Jun 2017 12:49:36 +0200 Subject: [PATCH 40/72] Uninstalled plugins are now correctly marked as such again CURA-3856 --- plugins/PluginBrowser/PluginBrowser.py | 2 ++ plugins/PluginBrowser/PluginBrowser.qml | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/PluginBrowser/PluginBrowser.py b/plugins/PluginBrowser/PluginBrowser.py index eeaebdae4c..ac00316313 100644 --- a/plugins/PluginBrowser/PluginBrowser.py +++ b/plugins/PluginBrowser/PluginBrowser.py @@ -147,6 +147,8 @@ class PluginBrowser(QObject, Extension): new_version = Version(version) if new_version > current_version: return False + else: + return False return True def _onRequestFinished(self, reply): diff --git a/plugins/PluginBrowser/PluginBrowser.qml b/plugins/PluginBrowser/PluginBrowser.qml index 0258763a19..bac4f076db 100644 --- a/plugins/PluginBrowser/PluginBrowser.qml +++ b/plugins/PluginBrowser/PluginBrowser.qml @@ -10,7 +10,7 @@ UM.Dialog title: "Find & Update plugins" width: 450 - height: 150 + height: 450 ScrollView { width: parent.width From fa394a0171eaab429c2c84cf0511849458f7937b Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 23 Jun 2017 12:58:33 +0200 Subject: [PATCH 41/72] Remove Not-Supported profiles for CPE+ and PC They are now supported. This breaks the stacks of people who had these profiles active when they upgraded from 2.6.0 to 2.6.1, which causes them to get a screen of which printer they want to add, and they lose their current settings. But we decided that this use case is too slim to make an entire version upgrade for this patch-version release. Contributes to issue CURA-3960. --- .../um3_aa0.8_CPEP_Not_Supported_Quality.inst.cfg | 14 -------------- ..._CPEP_Not_Supported_Superdraft_Quality.inst.cfg | 14 -------------- .../um3_aa0.8_PC_Not_Supported_Quality.inst.cfg | 14 -------------- ....8_PC_Not_Supported_Superdraft_Quality.inst.cfg | 14 -------------- 4 files changed, 56 deletions(-) delete mode 100755 resources/quality/ultimaker3/um3_aa0.8_CPEP_Not_Supported_Quality.inst.cfg delete mode 100755 resources/quality/ultimaker3/um3_aa0.8_CPEP_Not_Supported_Superdraft_Quality.inst.cfg delete mode 100755 resources/quality/ultimaker3/um3_aa0.8_PC_Not_Supported_Quality.inst.cfg delete mode 100755 resources/quality/ultimaker3/um3_aa0.8_PC_Not_Supported_Superdraft_Quality.inst.cfg diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Not_Supported_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Not_Supported_Quality.inst.cfg deleted file mode 100755 index ddde16205e..0000000000 --- a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Not_Supported_Quality.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = normal -material = generic_cpe_plus_ultimaker3_AA_0.8 -weight = 0 -supported = False -setting_version = 1 - -[values] diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Not_Supported_Superdraft_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Not_Supported_Superdraft_Quality.inst.cfg deleted file mode 100755 index 8d65a8a653..0000000000 --- a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Not_Supported_Superdraft_Quality.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = superdraft -material = generic_cpe_plus_ultimaker3_AA_0.8 -weight = 0 -supported = False -setting_version = 1 - -[values] diff --git a/resources/quality/ultimaker3/um3_aa0.8_PC_Not_Supported_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PC_Not_Supported_Quality.inst.cfg deleted file mode 100755 index a047bc4496..0000000000 --- a/resources/quality/ultimaker3/um3_aa0.8_PC_Not_Supported_Quality.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -weight = 0 -type = quality -quality_type = normal -material = generic_pc_ultimaker3_AA_0.8 -supported = False -setting_version = 1 - -[values] diff --git a/resources/quality/ultimaker3/um3_aa0.8_PC_Not_Supported_Superdraft_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PC_Not_Supported_Superdraft_Quality.inst.cfg deleted file mode 100755 index a73c5a121a..0000000000 --- a/resources/quality/ultimaker3/um3_aa0.8_PC_Not_Supported_Superdraft_Quality.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -weight = 0 -type = quality -quality_type = superdraft -material = generic_pc_ultimaker3_AA_0.8 -supported = False -setting_version = 1 - -[values] From 68b4d8d4992d4fb4559bcbb051c8a7915cc1940b Mon Sep 17 00:00:00 2001 From: Mark Date: Fri, 23 Jun 2017 13:01:38 +0200 Subject: [PATCH 42/72] Remove beta from changelog --- plugins/ChangeLogPlugin/ChangeLog.txt | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/plugins/ChangeLogPlugin/ChangeLog.txt b/plugins/ChangeLogPlugin/ChangeLog.txt index d647ec6dbd..36ac5d3424 100755 --- a/plugins/ChangeLogPlugin/ChangeLog.txt +++ b/plugins/ChangeLogPlugin/ChangeLog.txt @@ -1,6 +1,6 @@ [2.6.0] *Cura versions -Cura 2.6 beta has local version folders, which means the new version won’t overwrite the existing configuration and profiles from older versions, but can create a new folder instead. You can now safely check out new beta versions and, if necessary, start up an older version without the danger of losing your profiles. +Cura 2.6 has local version folders, which means the new version won’t overwrite the existing configuration and profiles from older versions, but can create a new folder instead. You can now safely check out new beta versions and, if necessary, start up an older version without the danger of losing your profiles. *Better support adhesion We’ve added extra support settings to allow the creation of improved support profiles with better PVA/PLA adhesion. The Support Interface settings, such as speed and density, are now split up into Support Roof and Support Floor settings. @@ -9,7 +9,7 @@ We’ve added extra support settings to allow the creation of improved support p Custom third-party printers and Ultimaker modifications now have multi-extrusion support. Thanks to Aldo Hoeben for this feature. *Model auto-arrange -We’ve improved placing multiple models or multiplying the same ones, making it easier to arrange your build plate. If there’s not enough build plate space or the model is placed beyond the build plate, you can rectify this by selecting ‘Arrange all models’ in the context menu or by pressing Command+R (MacOS) or Ctrl+R (Windows and Linux). Cura 2.6 beta will then find a better solution for model positioning. +We’ve improved placing multiple models or multiplying the same ones, making it easier to arrange your build plate. If there’s not enough build plate space or the model is placed beyond the build plate, you can rectify this by selecting ‘Arrange all models’ in the context menu or by pressing Command+R (MacOS) or Ctrl+R (Windows and Linux). Cura 2.6 will then find a better solution for model positioning. *Gradual infill You can now find the Gradual Infill button in Recommended mode. This setting makes the infill concentrated near the top of the model – so that we can save time and material for the lower parts of the model. This functionality is especially useful when printing with flexible materials. @@ -42,27 +42,16 @@ It’s a lot simpler to save and open files, and Cura will know if it’s a proj If you have a custom theme, you can now apply it more easily in the preferences screen. *Time estimates per feature -<<<<<<< HEAD -You can hover over the print time estimate in the lower right corner to see how the printing time is divided over the printing features (walls, infill, etc.). -======= You can hover over the print time estimate in the lower right corner to see how the printing time is divided over the printing features (walls, infill, etc.). Thanks to 14bitVoid for this feature. ->>>>>>> 2.6 *Invert the direction of camera zoom We’ve added an option to invert mouse direction for a better user experience. *Olsson block upgrade -<<<<<<< HEAD -Ultimaker 2 users can now specify if they have the Olsson block installed on their machine. - -*OctoPrint plugin -Cura 2.6 beta allows users to send prints to OctoPrint. -======= Ultimaker 2 users can now specify if they have the Olsson block installed on their machine. Thanks to Aldo Hoeben for this feature. *OctoPrint plugin -Cura 2.6 beta allows users to send prints to OctoPrint. Thanks to Aldo Hoeben for this feature. ->>>>>>> 2.6 +Cura 2.6 allows users to send prints to OctoPrint. Thanks to Aldo Hoeben for this feature. *Bug fixes - Post Processing plugin From 68663b27896cbec0c5a6e32296a3e1888a1486df Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 23 Jun 2017 13:03:30 +0200 Subject: [PATCH 43/72] Plugin browser now shows difference between new & upgradable plugins CURA-3856 --- plugins/PluginBrowser/PluginBrowser.py | 17 +++++++++++++---- plugins/PluginBrowser/PluginBrowser.qml | 5 ++--- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/plugins/PluginBrowser/PluginBrowser.py b/plugins/PluginBrowser/PluginBrowser.py index ac00316313..4a9041d835 100644 --- a/plugins/PluginBrowser/PluginBrowser.py +++ b/plugins/PluginBrowser/PluginBrowser.py @@ -124,6 +124,7 @@ class PluginBrowser(QObject, Extension): self._plugins_model.addRoleName(Qt.UserRole + 4, "author") self._plugins_model.addRoleName(Qt.UserRole + 5, "already_installed") self._plugins_model.addRoleName(Qt.UserRole + 6, "file_location") + self._plugins_model.addRoleName(Qt.UserRole + 7, "can_upgrade") else: self._plugins_model.clear() items = [] @@ -134,22 +135,30 @@ class PluginBrowser(QObject, Extension): "short_description": metadata["short_description"], "author": metadata["author"], "already_installed": self._checkAlreadyInstalled(metadata["id"], metadata["version"]), - "file_location": metadata["file_location"] + "file_location": metadata["file_location"], + "can_upgrade": self._checkCanUpgrade(metadata["id"], metadata["version"]) }) + print(items) self._plugins_model.setItems(items) return self._plugins_model - def _checkAlreadyInstalled(self, id, version): + def _checkCanUpgrade(self, id, version): plugin_registry = PluginRegistry.getInstance() metadata = plugin_registry.getMetaData(id) if metadata != {}: current_version = Version(metadata["plugin"]["version"]) new_version = Version(version) if new_version > current_version: - return False + return True + return False + + def _checkAlreadyInstalled(self, id, version): + plugin_registry = PluginRegistry.getInstance() + metadata = plugin_registry.getMetaData(id) + if metadata != {}: + return True else: return False - return True def _onRequestFinished(self, reply): reply_url = reply.url().toString() diff --git a/plugins/PluginBrowser/PluginBrowser.qml b/plugins/PluginBrowser/PluginBrowser.qml index bac4f076db..10f20b7343 100644 --- a/plugins/PluginBrowser/PluginBrowser.qml +++ b/plugins/PluginBrowser/PluginBrowser.qml @@ -59,14 +59,13 @@ UM.Dialog text: model.name width: contentWidth } - } Button { - text: !model.already_installed ? "Download" : "Already Installed" + text: !model.already_installed ? "Download" : model.can_upgrade ? "Upgrade" : "Download" onClicked: manager.downloadAndInstallPlugin(model.file_location) anchors.right: parent.right - enabled: !model.already_installed && !manager.isDownloading + enabled: (!model.already_installed || model.can_upgrade) && !manager.isDownloading } } From 4c8015f17f2b285d330fa6b30781501ebbc9e8d2 Mon Sep 17 00:00:00 2001 From: Mark Date: Fri, 23 Jun 2017 13:01:38 +0200 Subject: [PATCH 44/72] Remove beta from changelog --- plugins/ChangeLogPlugin/ChangeLog.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/ChangeLogPlugin/ChangeLog.txt b/plugins/ChangeLogPlugin/ChangeLog.txt index 869dc69f82..36ac5d3424 100755 --- a/plugins/ChangeLogPlugin/ChangeLog.txt +++ b/plugins/ChangeLogPlugin/ChangeLog.txt @@ -1,6 +1,6 @@ [2.6.0] *Cura versions -Cura 2.6 beta has local version folders, which means the new version won’t overwrite the existing configuration and profiles from older versions, but can create a new folder instead. You can now safely check out new beta versions and, if necessary, start up an older version without the danger of losing your profiles. +Cura 2.6 has local version folders, which means the new version won’t overwrite the existing configuration and profiles from older versions, but can create a new folder instead. You can now safely check out new beta versions and, if necessary, start up an older version without the danger of losing your profiles. *Better support adhesion We’ve added extra support settings to allow the creation of improved support profiles with better PVA/PLA adhesion. The Support Interface settings, such as speed and density, are now split up into Support Roof and Support Floor settings. @@ -9,7 +9,7 @@ We’ve added extra support settings to allow the creation of improved support p Custom third-party printers and Ultimaker modifications now have multi-extrusion support. Thanks to Aldo Hoeben for this feature. *Model auto-arrange -We’ve improved placing multiple models or multiplying the same ones, making it easier to arrange your build plate. If there’s not enough build plate space or the model is placed beyond the build plate, you can rectify this by selecting ‘Arrange all models’ in the context menu or by pressing Command+R (MacOS) or Ctrl+R (Windows and Linux). Cura 2.6 beta will then find a better solution for model positioning. +We’ve improved placing multiple models or multiplying the same ones, making it easier to arrange your build plate. If there’s not enough build plate space or the model is placed beyond the build plate, you can rectify this by selecting ‘Arrange all models’ in the context menu or by pressing Command+R (MacOS) or Ctrl+R (Windows and Linux). Cura 2.6 will then find a better solution for model positioning. *Gradual infill You can now find the Gradual Infill button in Recommended mode. This setting makes the infill concentrated near the top of the model – so that we can save time and material for the lower parts of the model. This functionality is especially useful when printing with flexible materials. @@ -51,7 +51,7 @@ We’ve added an option to invert mouse direction for a better user experience. Ultimaker 2 users can now specify if they have the Olsson block installed on their machine. Thanks to Aldo Hoeben for this feature. *OctoPrint plugin -Cura 2.6 beta allows users to send prints to OctoPrint. Thanks to Aldo Hoeben for this feature. +Cura 2.6 allows users to send prints to OctoPrint. Thanks to Aldo Hoeben for this feature. *Bug fixes - Post Processing plugin From 4b6f9be4ed21547835114627fc35824c6a6bde43 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 23 Jun 2017 13:05:58 +0200 Subject: [PATCH 45/72] Correct names The old names are what the materials team uses internally, and sorta old names too. Contributes to issue CURA-3960. --- .../quality/ultimaker3/um3_aa0.8_CPEP_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.8_PC_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Draft_Print.inst.cfg index 31a900dfb6..b58210badf 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Draft_Print.inst.cfg @@ -1,6 +1,6 @@ [general] version = 2 -name = Normal Print 0.8 +name = Fast definition = ultimaker3 [metadata] diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg index ca43a195aa..f29b630f48 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg @@ -1,6 +1,6 @@ [general] version = 2 -name = Draft Print 0.8 +name = Sprint definition = ultimaker3 [metadata] diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg index f38bef84c1..589892f11b 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg @@ -1,6 +1,6 @@ [general] version = 2 -name = Fasr Print 0.8 +name = Extra Fast definition = ultimaker3 [metadata] diff --git a/resources/quality/ultimaker3/um3_aa0.8_PC_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PC_Draft_Print.inst.cfg index b262aeef34..5617be141d 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PC_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PC_Draft_Print.inst.cfg @@ -1,6 +1,6 @@ [general] version = 2 -name = Normal 0.8 Print +name = Fast definition = ultimaker3 [metadata] diff --git a/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg index 0285d492da..3f6dadbb73 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg @@ -1,6 +1,6 @@ [general] version = 2 -name = Draft 0.8 Print +name = Sprint definition = ultimaker3 [metadata] diff --git a/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg index 96609d7bda..ff5d6a0a5f 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg @@ -1,6 +1,6 @@ [general] version = 2 -name = Fast 0.8 Print +name = Extra Fast definition = ultimaker3 [metadata] From 83b3dcbb2f68f5b4852ee15a34e499285f8f670c Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 23 Jun 2017 13:32:19 +0200 Subject: [PATCH 46/72] Freshly installed plugins can't be downloaded again anymore CURA-3856 --- plugins/PluginBrowser/PluginBrowser.py | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/plugins/PluginBrowser/PluginBrowser.py b/plugins/PluginBrowser/PluginBrowser.py index 4a9041d835..36b41a074b 100644 --- a/plugins/PluginBrowser/PluginBrowser.py +++ b/plugins/PluginBrowser/PluginBrowser.py @@ -43,6 +43,10 @@ class PluginBrowser(QObject, Extension): self._is_downloading = False + # Installed plugins are really installed after reboot. In order to prevent the user from downloading the + # same file over and over again, we keep track of the upgraded plugins. + self._newly_installed_plugin_ids = [] + pluginsMetadataChanged = pyqtSignal() onDownloadProgressChanged = pyqtSignal() @@ -97,6 +101,12 @@ class PluginBrowser(QObject, Extension): self._temp_plugin_file = tempfile.NamedTemporaryFile(suffix = ".curaplugin") self._temp_plugin_file.write(self._download_plugin_reply.readAll()) result = PluginRegistry.getInstance().installPlugin("file://" + self._temp_plugin_file.name) + if result["status"] == "ok": + self._newly_installed_plugin_ids.append(result["id"]) + self.pluginsMetadataChanged.emit() + else: + # TODO; Handle cases where, for some reason, we could not install the plugin + pass self._temp_plugin_file.close() # Plugin was installed, delete temp file @pyqtProperty(int, notify = onDownloadProgressChanged) @@ -134,11 +144,10 @@ class PluginBrowser(QObject, Extension): "version": metadata["version"], "short_description": metadata["short_description"], "author": metadata["author"], - "already_installed": self._checkAlreadyInstalled(metadata["id"], metadata["version"]), + "already_installed": self._checkAlreadyInstalled(metadata["id"]), "file_location": metadata["file_location"], "can_upgrade": self._checkCanUpgrade(metadata["id"], metadata["version"]) }) - print(items) self._plugins_model.setItems(items) return self._plugins_model @@ -146,18 +155,22 @@ class PluginBrowser(QObject, Extension): plugin_registry = PluginRegistry.getInstance() metadata = plugin_registry.getMetaData(id) if metadata != {}: + if id in self._newly_installed_plugin_ids: + return False # We already updated this plugin. current_version = Version(metadata["plugin"]["version"]) new_version = Version(version) if new_version > current_version: return True return False - def _checkAlreadyInstalled(self, id, version): + def _checkAlreadyInstalled(self, id): plugin_registry = PluginRegistry.getInstance() metadata = plugin_registry.getMetaData(id) if metadata != {}: return True else: + if id in self._newly_installed_plugin_ids: + return True # We already installed this plugin, but the registry just doesn't know it yet. return False def _onRequestFinished(self, reply): From 867dd04681c5a71b240573ac7fde9c91bdb77207 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 23 Jun 2017 13:43:08 +0200 Subject: [PATCH 47/72] PluginBrowser strings are now translatable CURA-3856 --- plugins/PluginBrowser/PluginBrowser.qml | 112 +++++++++++++----------- 1 file changed, 63 insertions(+), 49 deletions(-) diff --git a/plugins/PluginBrowser/PluginBrowser.qml b/plugins/PluginBrowser/PluginBrowser.qml index 10f20b7343..e53a7847fd 100644 --- a/plugins/PluginBrowser/PluginBrowser.qml +++ b/plugins/PluginBrowser/PluginBrowser.qml @@ -8,67 +8,81 @@ UM.Dialog { id: base - title: "Find & Update plugins" + title: catalog.i18nc("@title:window", "Find & Update plugins") width: 450 height: 450 - ScrollView - { - width: parent.width - height: parent.height - progressbar.height - UM.Theme.getSize("default_margin").height - frameVisible: true - ListView - { - id: pluginList - model: manager.pluginsModel - anchors.fill: parent - - delegate: pluginDelegate - } - } - ProgressBar - { - id: progressbar - anchors.bottom: parent.bottom - style: UM.Theme.styles.progressbar - minimumValue: 0; - maximumValue: 100 - width: parent.width - height: 20 - value: manager.downloadProgress - } - Item { - SystemPalette { id: palette } - Component + anchors.fill: parent + Label { - id: pluginDelegate - Rectangle + id: introText + text: catalog.i18nc("@label", "Here you can find a list of Third Party plugins.") + width: parent.width + height: 30 + } + ScrollView + { + width: parent.width + anchors.top: introText.bottom + anchors.bottom: progressbar.top + anchors.bottomMargin: UM.Theme.getSize("default_margin").height + frameVisible: true + ListView { - width: pluginList.width; - height: childrenRect.height; - color: index % 2 ? palette.base : palette.alternateBase - Row + id: pluginList + model: manager.pluginsModel + anchors.fill: parent + + delegate: pluginDelegate + } + } + ProgressBar + { + id: progressbar + anchors.bottom: parent.bottom + style: UM.Theme.styles.progressbar + minimumValue: 0; + maximumValue: 100 + width: parent.width + height: 20 + value: manager.downloadProgress + } + + Item + { + SystemPalette { id: palette } + Component + { + id: pluginDelegate + Rectangle { - width: childrenRect.width + width: pluginList.width; height: childrenRect.height; - anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("default_margin").width - Label + color: index % 2 ? palette.base : palette.alternateBase + Row { - text: model.name - width: contentWidth + width: childrenRect.width + height: childrenRect.height; + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("default_margin").width + Label + { + text: model.name + width: contentWidth + } + } + Button + { + text: !model.already_installed ? catalog.i18nc("@action:button", "Download") : model.can_upgrade ? catalog.i18nc("@action:button", "Upgrade") : catalog.i18nc("@action:button", "Download") + onClicked: manager.downloadAndInstallPlugin(model.file_location) + anchors.right: parent.right + enabled: (!model.already_installed || model.can_upgrade) && !manager.isDownloading } } - Button - { - text: !model.already_installed ? "Download" : model.can_upgrade ? "Upgrade" : "Download" - onClicked: manager.downloadAndInstallPlugin(model.file_location) - anchors.right: parent.right - enabled: (!model.already_installed || model.can_upgrade) && !manager.isDownloading - } - } + } } + UM.I18nCatalog { id: catalog; name:"cura" } } } \ No newline at end of file From 37162683e5c15d9f31e304bb615d0f016889dc6f Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 23 Jun 2017 13:51:13 +0200 Subject: [PATCH 48/72] Show result message after installing / upgrading plugin with the browser CURA-3856 --- plugins/PluginBrowser/PluginBrowser.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/plugins/PluginBrowser/PluginBrowser.py b/plugins/PluginBrowser/PluginBrowser.py index 36b41a074b..3da805c5b8 100644 --- a/plugins/PluginBrowser/PluginBrowser.py +++ b/plugins/PluginBrowser/PluginBrowser.py @@ -100,13 +100,14 @@ class PluginBrowser(QObject, Extension): self._download_plugin_reply.downloadProgress.disconnect(self._onDownloadPluginProgress) self._temp_plugin_file = tempfile.NamedTemporaryFile(suffix = ".curaplugin") self._temp_plugin_file.write(self._download_plugin_reply.readAll()) + result = PluginRegistry.getInstance().installPlugin("file://" + self._temp_plugin_file.name) - if result["status"] == "ok": - self._newly_installed_plugin_ids.append(result["id"]) - self.pluginsMetadataChanged.emit() - else: - # TODO; Handle cases where, for some reason, we could not install the plugin - pass + + self._newly_installed_plugin_ids.append(result["id"]) + self.pluginsMetadataChanged.emit() + + Application.getInstance().messageBox(i18n_catalog.i18nc("@window:title", "Plugin browser"), result["message"]) + self._temp_plugin_file.close() # Plugin was installed, delete temp file @pyqtProperty(int, notify = onDownloadProgressChanged) From dbf0cf347cfc50baf7baf8ba48851c6f69399e31 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Fri, 23 Jun 2017 13:58:14 +0200 Subject: [PATCH 49/72] Default to 0 if we cannot find the theme CURA-3873 --- resources/qml/Preferences/GeneralPage.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/qml/Preferences/GeneralPage.qml b/resources/qml/Preferences/GeneralPage.qml index f1a18e2829..c1b112cefc 100755 --- a/resources/qml/Preferences/GeneralPage.qml +++ b/resources/qml/Preferences/GeneralPage.qml @@ -237,6 +237,7 @@ UM.PreferencesPage return i } } + return 0; } onActivated: UM.Preferences.setValue("general/theme", model.get(index).code) From 25d2c10548391eeab016379f2a998dd9df77063d Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 23 Jun 2017 14:15:27 +0200 Subject: [PATCH 50/72] Optimise Ultimaker 2+ polypropylene profiles These are optimised to the level of the materials: Anything that is common between quality profiles with the same material and nozzle gets bubbled to the profile for that material (per nozzle). It doesn't bubble any further (to the variant) because that could have an impact on the other profiles. This basically only removes settings because where these settings then bubble to is the material profile in the fdm_materials repository. And a lot of settings are just removed because they are equal to the default. Contributes to issue CURA-3960. --- .../ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg | 20 +------------ .../um2p_pp_0.4_normal.inst.cfg | 21 +------------- .../um2p_pp_0.6_draft.inst.cfg | 29 ++++--------------- .../ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg | 29 ++++--------------- .../um2p_pp_0.8_draft.inst.cfg | 27 ++++------------- .../ultimaker2_plus/um2p_pp_0.8_fast.inst.cfg | 27 ++++------------- 6 files changed, 24 insertions(+), 129 deletions(-) diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg index 2e5120b0d7..92f5ffd308 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg @@ -11,23 +11,17 @@ quality_type = fast [values] acceleration_enabled = True -acceleration_infill = =acceleration_print acceleration_layer_0 = =acceleration_topbottom acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) acceleration_print = 4000 acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) -acceleration_support_infill = =acceleration_support acceleration_support_interface = =acceleration_topbottom acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) -acceleration_wall_x = =acceleration_wall -adhesion_type = brim brim_width = 20 cool_fan_full_at_height = =layer_height_0 + 4 * layer_height -cool_fan_speed = 20 cool_fan_speed_max = 100 -cool_min_layer_time = 5 cool_min_layer_time_fan_speed_max = 6 cool_min_speed = 20 gradual_infill_step_height = =layer_height * 2 @@ -38,44 +32,34 @@ infill_pattern = cubic infill_sparse_density = 96 infill_wipe_dist = 0 jerk_enabled = True -jerk_infill = =jerk_print jerk_layer_0 = =jerk_topbottom jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) jerk_print = 25 jerk_support = =math.ceil(jerk_print * 15 / 25) -jerk_support_infill = =jerk_support jerk_support_interface = =jerk_topbottom jerk_topbottom = =math.ceil(jerk_print * 5 / 25) jerk_wall = =math.ceil(jerk_print * 10 / 25) jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10) -jerk_wall_x = =jerk_wall layer_height = 0.15 -layer_height_0 = =round(machine_nozzle_size / 1.5, 2) line_width = =machine_nozzle_size * 0.95 multiple_mesh_overlap = 0 -retraction_amount = 8 retraction_count_max = 12 -retraction_extra_prime_amount = 0 retraction_extrusion_window = 1 retraction_hop = 0.15 retraction_hop_enabled = True retraction_hop_only_when_collides = True retraction_min_travel = 0.5 retraction_prime_speed = 15 -retraction_speed = 35 skin_overlap = 10 -speed_infill = =speed_print speed_layer_0 = 25 speed_prime_tower = =speed_topbottom speed_print = 25 -speed_support = =speed_wall_0 speed_support_interface = =speed_topbottom speed_topbottom = =math.ceil(speed_print * 25 / 25) speed_travel = 250 speed_travel_layer_0 = 50 speed_wall = =math.ceil(speed_print * 25 / 25) speed_wall_0 = =math.ceil(speed_wall * 20 / 25) -speed_wall_x = =speed_wall support_angle = 60 support_bottom_distance = =support_z_distance / 2 support_top_distance = =support_z_distance @@ -85,9 +69,7 @@ support_z_distance = =layer_height * 2 switch_extruder_prime_speed = 15 switch_extruder_retraction_amount = 20 switch_extruder_retraction_speeds = 35 -top_bottom_thickness = 0.8 travel_avoid_distance = 3 -travel_compensate_overlapping_walls_enabled = True wall_0_inset = 0 wall_line_width_x = =round(line_width * 0.38 / 0.38, 2) -wall_thickness = 0.76 +wall_thickness = 0.76 \ No newline at end of file diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.4_normal.inst.cfg index f311c28fc8..f7bd19e3e2 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.4_normal.inst.cfg @@ -11,23 +11,17 @@ quality_type = normal [values] acceleration_enabled = True -acceleration_infill = =acceleration_print acceleration_layer_0 = =acceleration_topbottom acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) acceleration_print = 4000 acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) -acceleration_support_infill = =acceleration_support acceleration_support_interface = =acceleration_topbottom acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) -acceleration_wall_x = =acceleration_wall -adhesion_type = brim brim_width = 20 cool_fan_full_at_height = =layer_height_0 + 4 * layer_height -cool_fan_speed = 20 cool_fan_speed_max = 100 -cool_min_layer_time = 5 cool_min_layer_time_fan_speed_max = 6 cool_min_speed = 20 gradual_infill_step_height = =layer_height * 2 @@ -38,44 +32,33 @@ infill_pattern = cubic infill_sparse_density = 96 infill_wipe_dist = 0 jerk_enabled = True -jerk_infill = =jerk_print jerk_layer_0 = =jerk_topbottom jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) jerk_print = 25 jerk_support = =math.ceil(jerk_print * 15 / 25) -jerk_support_infill = =jerk_support jerk_support_interface = =jerk_topbottom jerk_topbottom = =math.ceil(jerk_print * 5 / 25) jerk_wall = =math.ceil(jerk_print * 10 / 25) jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10) -jerk_wall_x = =jerk_wall -layer_height = 0.1 -layer_height_0 = =round(machine_nozzle_size / 1.5, 2) line_width = =machine_nozzle_size * 0.95 multiple_mesh_overlap = 0 -retraction_amount = 8 retraction_count_max = 12 -retraction_extra_prime_amount = 0 retraction_extrusion_window = 1 retraction_hop = 0.15 retraction_hop_enabled = True retraction_hop_only_when_collides = True retraction_min_travel = 0.5 retraction_prime_speed = 15 -retraction_speed = 35 skin_overlap = 10 -speed_infill = =speed_print speed_layer_0 = 25 speed_prime_tower = =speed_topbottom speed_print = 25 -speed_support = =speed_wall_0 speed_support_interface = =speed_topbottom speed_topbottom = =math.ceil(speed_print * 25 / 25) speed_travel = 250 speed_travel_layer_0 = 50 speed_wall = =math.ceil(speed_print * 25 / 25) speed_wall_0 = =math.ceil(speed_wall * 20 / 25) -speed_wall_x = =speed_wall support_angle = 60 support_bottom_distance = =support_z_distance / 2 support_top_distance = =support_z_distance @@ -85,9 +68,7 @@ support_z_distance = =layer_height * 2 switch_extruder_prime_speed = 15 switch_extruder_retraction_amount = 20 switch_extruder_retraction_speeds = 35 -top_bottom_thickness = 0.8 travel_avoid_distance = 3 -travel_compensate_overlapping_walls_enabled = True wall_0_inset = 0 wall_line_width_x = =round(line_width * 0.38 / 0.38, 2) -wall_thickness = 0.76 +wall_thickness = 0.76 \ No newline at end of file diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.6_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.6_draft.inst.cfg index 341a35926a..314ed8ace8 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.6_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.6_draft.inst.cfg @@ -10,54 +10,40 @@ weight = 0 quality_type = draft [values] -layer_height = 0.2 -gradual_infill_steps = 3 -retraction_extra_prime_amount = 0 -skirt_brim_line_width = 0.6 -infill_overlap_mm = 0 -skin_overlap = 10 acceleration_enabled = True -acceleration_infill = =acceleration_print acceleration_layer_0 = =acceleration_topbottom acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) acceleration_print = 4000 acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) -acceleration_support_infill = =acceleration_support acceleration_support_interface = =acceleration_topbottom acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) -acceleration_wall_x = =acceleration_wall -adhesion_type = brim brim_width = 20 cool_fan_full_at_height = =layer_height_0 + 4 * layer_height -cool_fan_speed = 20 cool_fan_speed_max = 100 -cool_min_layer_time = 5 cool_min_layer_time_fan_speed_max = 6 cool_min_speed = 20 gradual_infill_step_height = =layer_height * 2 +gradual_infill_steps = 3 infill_line_width = =round(line_width * 0.6 / 0.57, 2) infill_overlap = 0 +infill_overlap_mm = 0 infill_pattern = cubic infill_sparse_density = 96 infill_wipe_dist = 0 jerk_enabled = True -jerk_infill = =jerk_print jerk_layer_0 = =jerk_topbottom jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) jerk_print = 25 jerk_support = =math.ceil(jerk_print * 15 / 25) -jerk_support_infill = =jerk_support jerk_support_interface = =jerk_topbottom jerk_topbottom = =math.ceil(jerk_print * 5 / 25) jerk_wall = =math.ceil(jerk_print * 10 / 25) jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10) -jerk_wall_x = =jerk_wall -layer_height_0 = =round(machine_nozzle_size / 1.5, 2) +layer_height = 0.2 line_width = =machine_nozzle_size * 0.95 multiple_mesh_overlap = 0 -retraction_amount = 8 retraction_count_max = 12 retraction_extrusion_window = 1 retraction_hop = 0.15 @@ -65,19 +51,17 @@ retraction_hop_enabled = True retraction_hop_only_when_collides = True retraction_min_travel = 0.5 retraction_prime_speed = 15 -retraction_speed = 35 -speed_infill = =speed_print +skin_overlap = 10 +skirt_brim_line_width = 0.6 speed_layer_0 = 25 speed_prime_tower = =speed_topbottom speed_print = 25 -speed_support = =speed_wall_0 speed_support_interface = =speed_topbottom speed_topbottom = =math.ceil(speed_print * 25 / 25) speed_travel = 250 speed_travel_layer_0 = 50 speed_wall = =math.ceil(speed_print * 25 / 25) speed_wall_0 = =math.ceil(speed_wall * 20 / 25) -speed_wall_x = =speed_wall support_angle = 60 support_bottom_distance = =support_z_distance / 2 support_top_distance = =support_z_distance @@ -89,7 +73,6 @@ switch_extruder_retraction_amount = 20 switch_extruder_retraction_speeds = 35 top_bottom_thickness = 1.1 travel_avoid_distance = 3 -travel_compensate_overlapping_walls_enabled = True wall_0_inset = 0 wall_line_width_x = =round(line_width * 0.57 / 0.57, 2) -wall_thickness = 1.14 +wall_thickness = 1.14 \ No newline at end of file diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg index d1790dde47..89e21dadce 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg @@ -10,54 +10,40 @@ weight = -1 quality_type = fast [values] -layer_height = 0.15 -gradual_infill_steps = 3 -retraction_extra_prime_amount = 0 -skirt_brim_line_width = 0.6 -infill_overlap_mm = 0 -skin_overlap = 10 acceleration_enabled = True -acceleration_infill = =acceleration_print acceleration_layer_0 = =acceleration_topbottom acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) acceleration_print = 4000 acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) -acceleration_support_infill = =acceleration_support acceleration_support_interface = =acceleration_topbottom acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) -acceleration_wall_x = =acceleration_wall -adhesion_type = brim brim_width = 20 cool_fan_full_at_height = =layer_height_0 + 4 * layer_height -cool_fan_speed = 20 cool_fan_speed_max = 100 -cool_min_layer_time = 5 cool_min_layer_time_fan_speed_max = 6 cool_min_speed = 20 gradual_infill_step_height = =layer_height * 2 +gradual_infill_steps = 3 infill_line_width = =round(line_width * 0.6 / 0.57, 2) infill_overlap = 0 +infill_overlap_mm = 0 infill_pattern = cubic infill_sparse_density = 96 infill_wipe_dist = 0 jerk_enabled = True -jerk_infill = =jerk_print jerk_layer_0 = =jerk_topbottom jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) jerk_print = 25 jerk_support = =math.ceil(jerk_print * 15 / 25) -jerk_support_infill = =jerk_support jerk_support_interface = =jerk_topbottom jerk_topbottom = =math.ceil(jerk_print * 5 / 25) jerk_wall = =math.ceil(jerk_print * 10 / 25) jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10) -jerk_wall_x = =jerk_wall -layer_height_0 = =round(machine_nozzle_size / 1.5, 2) +layer_height = 0.15 line_width = =machine_nozzle_size * 0.95 multiple_mesh_overlap = 0 -retraction_amount = 8 retraction_count_max = 12 retraction_extrusion_window = 1 retraction_hop = 0.15 @@ -65,19 +51,17 @@ retraction_hop_enabled = True retraction_hop_only_when_collides = True retraction_min_travel = 0.5 retraction_prime_speed = 15 -retraction_speed = 35 -speed_infill = =speed_print +skin_overlap = 10 +skirt_brim_line_width = 0.6 speed_layer_0 = 25 speed_prime_tower = =speed_topbottom speed_print = 25 -speed_support = =speed_wall_0 speed_support_interface = =speed_topbottom speed_topbottom = =math.ceil(speed_print * 25 / 25) speed_travel = 250 speed_travel_layer_0 = 50 speed_wall = =math.ceil(speed_print * 25 / 25) speed_wall_0 = =math.ceil(speed_wall * 20 / 25) -speed_wall_x = =speed_wall support_angle = 60 support_bottom_distance = =support_z_distance / 2 support_top_distance = =support_z_distance @@ -89,7 +73,6 @@ switch_extruder_retraction_amount = 20 switch_extruder_retraction_speeds = 35 top_bottom_thickness = 1.1 travel_avoid_distance = 3 -travel_compensate_overlapping_walls_enabled = True wall_0_inset = 0 wall_line_width_x = =round(line_width * 0.57 / 0.57, 2) -wall_thickness = 1.14 +wall_thickness = 1.14 \ No newline at end of file diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg index 2a6397d2e8..926f75066d 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg @@ -10,54 +10,40 @@ weight = 0 quality_type = draft [values] -layer_height = 0.3 -gradual_infill_steps = 3 -retraction_extra_prime_amount = 0 -skirt_brim_line_width = 0.8 -infill_overlap_mm = 0 -skin_overlap = 10 acceleration_enabled = True -acceleration_infill = =acceleration_print acceleration_layer_0 = =acceleration_topbottom acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) acceleration_print = 4000 acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) -acceleration_support_infill = =acceleration_support acceleration_support_interface = =acceleration_topbottom acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) -acceleration_wall_x = =acceleration_wall -adhesion_type = brim brim_width = 20 cool_fan_full_at_height = =layer_height_0 + 4 * layer_height -cool_fan_speed = 20 cool_fan_speed_max = 100 -cool_min_layer_time = 5 cool_min_layer_time_fan_speed_max = 6 cool_min_speed = 20 gradual_infill_step_height = =layer_height * 2 +gradual_infill_steps = 3 infill_line_width = =round(line_width * 0.8 / 0.76, 2) infill_overlap = 0 +infill_overlap_mm = 0 infill_pattern = cubic infill_sparse_density = 96 infill_wipe_dist = 0 jerk_enabled = True -jerk_infill = =jerk_print jerk_layer_0 = =jerk_topbottom jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) jerk_print = 25 jerk_support = =math.ceil(jerk_print * 15 / 25) -jerk_support_infill = =jerk_support jerk_support_interface = =jerk_topbottom jerk_topbottom = =math.ceil(jerk_print * 5 / 25) jerk_wall = =math.ceil(jerk_print * 10 / 25) jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10) -jerk_wall_x = =jerk_wall -layer_height_0 = =round(machine_nozzle_size / 1.5, 2) +layer_height = 0.3 line_width = =machine_nozzle_size * 0.95 multiple_mesh_overlap = 0 -retraction_amount = 8 retraction_count_max = 12 retraction_extrusion_window = 1 retraction_hop = 0.15 @@ -65,19 +51,17 @@ retraction_hop_enabled = True retraction_hop_only_when_collides = True retraction_min_travel = 0.5 retraction_prime_speed = 15 -retraction_speed = 35 -speed_infill = =speed_print +skin_overlap = 10 +skirt_brim_line_width = 0.8 speed_layer_0 = 25 speed_prime_tower = =speed_topbottom speed_print = 25 -speed_support = =speed_wall_0 speed_support_interface = =speed_topbottom speed_topbottom = =math.ceil(speed_print * 25 / 25) speed_travel = 250 speed_travel_layer_0 = 50 speed_wall = =math.ceil(speed_print * 25 / 25) speed_wall_0 = =math.ceil(speed_wall * 20 / 25) -speed_wall_x = =speed_wall support_angle = 60 support_bottom_distance = =support_z_distance / 2 support_top_distance = =support_z_distance @@ -89,7 +73,6 @@ switch_extruder_retraction_amount = 20 switch_extruder_retraction_speeds = 35 top_bottom_thickness = 1.5 travel_avoid_distance = 3 -travel_compensate_overlapping_walls_enabled = True wall_0_inset = 0 wall_line_width_x = =round(line_width * 0.76 / 0.76, 2) wall_thickness = 1.52 \ No newline at end of file diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.8_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.8_fast.inst.cfg index 185597ef74..1891f57644 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.8_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.8_fast.inst.cfg @@ -10,54 +10,40 @@ weight = 0 quality_type = fast [values] -layer_height = 0.2 -gradual_infill_steps = 3 -retraction_extra_prime_amount = 0 -skirt_brim_line_width = 0.8 -infill_overlap_mm = 0 -skin_overlap = 10 acceleration_enabled = True -acceleration_infill = =acceleration_print acceleration_layer_0 = =acceleration_topbottom acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) acceleration_print = 4000 acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) -acceleration_support_infill = =acceleration_support acceleration_support_interface = =acceleration_topbottom acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) -acceleration_wall_x = =acceleration_wall -adhesion_type = brim brim_width = 20 cool_fan_full_at_height = =layer_height_0 + 4 * layer_height -cool_fan_speed = 20 cool_fan_speed_max = 100 -cool_min_layer_time = 5 cool_min_layer_time_fan_speed_max = 6 cool_min_speed = 20 gradual_infill_step_height = =layer_height * 3 +gradual_infill_steps = 3 infill_line_width = =round(line_width * 0.8 / 0.76, 2) infill_overlap = 0 +infill_overlap_mm = 0 infill_pattern = cubic infill_sparse_density = 96 infill_wipe_dist = 0 jerk_enabled = True -jerk_infill = =jerk_print jerk_layer_0 = =jerk_topbottom jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) jerk_print = 25 jerk_support = =math.ceil(jerk_print * 15 / 25) -jerk_support_infill = =jerk_support jerk_support_interface = =jerk_topbottom jerk_topbottom = =math.ceil(jerk_print * 5 / 25) jerk_wall = =math.ceil(jerk_print * 10 / 25) jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10) -jerk_wall_x = =jerk_wall -layer_height_0 = =round(machine_nozzle_size / 1.5, 2) +layer_height = 0.2 line_width = =machine_nozzle_size * 0.95 multiple_mesh_overlap = 0 -retraction_amount = 8 retraction_count_max = 12 retraction_extrusion_window = 1 retraction_hop = 0.15 @@ -65,19 +51,17 @@ retraction_hop_enabled = True retraction_hop_only_when_collides = True retraction_min_travel = 0.5 retraction_prime_speed = 15 -retraction_speed = 35 -speed_infill = =speed_print +skin_overlap = 10 +skirt_brim_line_width = 0.8 speed_layer_0 = 25 speed_prime_tower = =speed_topbottom speed_print = 25 -speed_support = =speed_wall_0 speed_support_interface = =speed_topbottom speed_topbottom = =math.ceil(speed_print * 25 / 25) speed_travel = 250 speed_travel_layer_0 = 50 speed_wall = =math.ceil(speed_print * 25 / 25) speed_wall_0 = =math.ceil(speed_wall * 20 / 25) -speed_wall_x = =speed_wall support_angle = 60 support_bottom_distance = =support_z_distance / 2 support_top_distance = =support_z_distance @@ -89,7 +73,6 @@ switch_extruder_retraction_amount = 20 switch_extruder_retraction_speeds = 35 top_bottom_thickness = 1.5 travel_avoid_distance = 3 -travel_compensate_overlapping_walls_enabled = True wall_0_inset = 0 wall_line_width_x = =round(line_width * 0.76 / 0.76, 2) wall_thickness = 1.52 \ No newline at end of file From 32c699e4a1102a2f98e30cc3cdf481043329cd31 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 23 Jun 2017 14:17:22 +0200 Subject: [PATCH 51/72] Updated layout --- plugins/PluginBrowser/PluginBrowser.qml | 27 ++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/plugins/PluginBrowser/PluginBrowser.qml b/plugins/PluginBrowser/PluginBrowser.qml index e53a7847fd..f8b7abe975 100644 --- a/plugins/PluginBrowser/PluginBrowser.qml +++ b/plugins/PluginBrowser/PluginBrowser.qml @@ -9,7 +9,7 @@ UM.Dialog id: base title: catalog.i18nc("@title:window", "Find & Update plugins") - width: 450 + width: 600 height: 450 Item { @@ -60,24 +60,41 @@ UM.Dialog width: pluginList.width; height: childrenRect.height; color: index % 2 ? palette.base : palette.alternateBase - Row + Column { - width: childrenRect.width - height: childrenRect.height; + width: parent.width + height: childrenRect.height anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("default_margin").width + anchors.right: downloadButton.left + anchors.rightMargin: UM.Theme.getSize("default_margin").width Label { - text: model.name + text: "" + model.name + " - " + model.author width: contentWidth + height: contentHeight + UM.Theme.getSize("default_margin").height + verticalAlignment: Text.AlignVCenter + } + + Label + { + text: model.short_description + width: parent.width + height: contentHeight + UM.Theme.getSize("default_margin").height + wrapMode: Text.WordWrap + verticalAlignment: Text.AlignVCenter } } Button { + id: downloadButton text: !model.already_installed ? catalog.i18nc("@action:button", "Download") : model.can_upgrade ? catalog.i18nc("@action:button", "Upgrade") : catalog.i18nc("@action:button", "Download") onClicked: manager.downloadAndInstallPlugin(model.file_location) anchors.right: parent.right + anchors.rightMargin: UM.Theme.getSize("default_margin").width + anchors.verticalCenter: parent.verticalCenter enabled: (!model.already_installed || model.can_upgrade) && !manager.isDownloading + } } From 504bf5067c492124bd370c2d6846053a2f7981df Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 23 Jun 2017 14:24:14 +0200 Subject: [PATCH 52/72] Fix metadata of Ultimaker 2+ propylene profiles Note that Git says that Fast was renamed to Verydraft, but in reality Fast was renamed to Draft and Draft was renamed to Verydraft. Contributes to issue CURA-3960. --- .../quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg | 4 ++-- .../ultimaker2_plus/um2p_pp_0.4_normal.inst.cfg | 2 +- .../quality/ultimaker2_plus/um2p_pp_0.6_draft.inst.cfg | 4 ++-- .../quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg | 2 +- .../quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg | 10 +++++----- ....8_fast.inst.cfg => um2p_pp_0.8_verydraft.inst.cfg} | 10 +++++----- 6 files changed, 16 insertions(+), 16 deletions(-) rename resources/quality/ultimaker2_plus/{um2p_pp_0.8_fast.inst.cfg => um2p_pp_0.8_verydraft.inst.cfg} (94%) diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg index 92f5ffd308..0126c9c2f2 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg @@ -1,12 +1,12 @@ [general] version = 2 -name = Fast Quality +name = Normal definition = ultimaker2_plus [metadata] type = quality material = generic_polypropylene_ultimaker2_plus_0.4_mm -weight = 0 +weight = -1 quality_type = fast [values] diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.4_normal.inst.cfg index f7bd19e3e2..380c5c0a53 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.4_normal.inst.cfg @@ -1,6 +1,6 @@ [general] version = 2 -name = Normal Quality +name = Fine definition = ultimaker2_plus [metadata] diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.6_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.6_draft.inst.cfg index 314ed8ace8..b968b08ad2 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.6_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.6_draft.inst.cfg @@ -1,12 +1,12 @@ [general] version = 2 -name = Draft Print +name = Fast definition = ultimaker2_plus [metadata] type = quality material = generic_polypropylene_ultimaker2_plus_0.6_mm -weight = 0 +weight = -2 quality_type = draft [values] diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg index 89e21dadce..f54040463c 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg @@ -1,6 +1,6 @@ [general] version = 2 -name = Fast Print +name = Fast definition = ultimaker2_plus [metadata] diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg index 926f75066d..a7ba848950 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg @@ -1,13 +1,13 @@ [general] version = 2 -name = Draft Print +name = Fast Print definition = ultimaker2_plus [metadata] type = quality material = generic_polypropylene_ultimaker2_plus_0.8_mm -weight = 0 -quality_type = draft +weight = -2 +quality_type = fast [values] acceleration_enabled = True @@ -24,7 +24,7 @@ cool_fan_full_at_height = =layer_height_0 + 4 * layer_height cool_fan_speed_max = 100 cool_min_layer_time_fan_speed_max = 6 cool_min_speed = 20 -gradual_infill_step_height = =layer_height * 2 +gradual_infill_step_height = =layer_height * 3 gradual_infill_steps = 3 infill_line_width = =round(line_width * 0.8 / 0.76, 2) infill_overlap = 0 @@ -41,7 +41,7 @@ jerk_support_interface = =jerk_topbottom jerk_topbottom = =math.ceil(jerk_print * 5 / 25) jerk_wall = =math.ceil(jerk_print * 10 / 25) jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10) -layer_height = 0.3 +layer_height = 0.2 line_width = =machine_nozzle_size * 0.95 multiple_mesh_overlap = 0 retraction_count_max = 12 diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.8_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.8_verydraft.inst.cfg similarity index 94% rename from resources/quality/ultimaker2_plus/um2p_pp_0.8_fast.inst.cfg rename to resources/quality/ultimaker2_plus/um2p_pp_0.8_verydraft.inst.cfg index 1891f57644..7277ba8363 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.8_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.8_verydraft.inst.cfg @@ -1,13 +1,13 @@ [general] version = 2 -name = Fast Print +name = Extra Fast definition = ultimaker2_plus [metadata] type = quality material = generic_polypropylene_ultimaker2_plus_0.8_mm -weight = 0 -quality_type = fast +weight = -3 +quality_type = draft [values] acceleration_enabled = True @@ -24,7 +24,7 @@ cool_fan_full_at_height = =layer_height_0 + 4 * layer_height cool_fan_speed_max = 100 cool_min_layer_time_fan_speed_max = 6 cool_min_speed = 20 -gradual_infill_step_height = =layer_height * 3 +gradual_infill_step_height = =layer_height * 2 gradual_infill_steps = 3 infill_line_width = =round(line_width * 0.8 / 0.76, 2) infill_overlap = 0 @@ -41,7 +41,7 @@ jerk_support_interface = =jerk_topbottom jerk_topbottom = =math.ceil(jerk_print * 5 / 25) jerk_wall = =math.ceil(jerk_print * 10 / 25) jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10) -layer_height = 0.2 +layer_height = 0.3 line_width = =machine_nozzle_size * 0.95 multiple_mesh_overlap = 0 retraction_count_max = 12 From 269bc5f61fde291ff98c7bd6fa40e57553603730 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 23 Jun 2017 14:34:52 +0200 Subject: [PATCH 53/72] Correct setting version of UM2+ polypropylene profiles Missed that one, but thankfully the Cura log reminds us. Contributes to issue CURA-3960. --- resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg | 1 + resources/quality/ultimaker2_plus/um2p_pp_0.4_normal.inst.cfg | 1 + resources/quality/ultimaker2_plus/um2p_pp_0.6_draft.inst.cfg | 1 + resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg | 1 + resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg | 1 + resources/quality/ultimaker2_plus/um2p_pp_0.8_verydraft.inst.cfg | 1 + 6 files changed, 6 insertions(+) diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg index 0126c9c2f2..53cc10468d 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg @@ -8,6 +8,7 @@ type = quality material = generic_polypropylene_ultimaker2_plus_0.4_mm weight = -1 quality_type = fast +setting_version = 1 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.4_normal.inst.cfg index 380c5c0a53..9805becd93 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.4_normal.inst.cfg @@ -8,6 +8,7 @@ type = quality material = generic_polypropylene_ultimaker2_plus_0.4_mm weight = 0 quality_type = normal +setting_version = 1 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.6_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.6_draft.inst.cfg index b968b08ad2..3060cd3a0f 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.6_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.6_draft.inst.cfg @@ -8,6 +8,7 @@ type = quality material = generic_polypropylene_ultimaker2_plus_0.6_mm weight = -2 quality_type = draft +setting_version = 1 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg index f54040463c..b1194693ac 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg @@ -8,6 +8,7 @@ type = quality material = generic_polypropylene_ultimaker2_plus_0.6_mm weight = -1 quality_type = fast +setting_version = 1 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg index a7ba848950..039f24bfe0 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg @@ -8,6 +8,7 @@ type = quality material = generic_polypropylene_ultimaker2_plus_0.8_mm weight = -2 quality_type = fast +setting_version = 1 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.8_verydraft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.8_verydraft.inst.cfg index 7277ba8363..9bcd29dfa4 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.8_verydraft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.8_verydraft.inst.cfg @@ -8,6 +8,7 @@ type = quality material = generic_polypropylene_ultimaker2_plus_0.8_mm weight = -3 quality_type = draft +setting_version = 1 [values] acceleration_enabled = True From 8a8123a021ca0b570483473b9fe65511cee71322 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 23 Jun 2017 14:35:15 +0200 Subject: [PATCH 54/72] Correctly set User-Agent header --- plugins/PluginBrowser/PluginBrowser.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugins/PluginBrowser/PluginBrowser.py b/plugins/PluginBrowser/PluginBrowser.py index 3da805c5b8..02f50e7a02 100644 --- a/plugins/PluginBrowser/PluginBrowser.py +++ b/plugins/PluginBrowser/PluginBrowser.py @@ -43,6 +43,8 @@ class PluginBrowser(QObject, Extension): self._is_downloading = False + self._request_header = [b"User-Agent", str.encode("%s - %s" % (Application.getInstance().getApplicationName(), Application.getInstance().getVersion()))] + # Installed plugins are really installed after reboot. In order to prevent the user from downloading the # same file over and over again, we keep track of the upgraded plugins. self._newly_installed_plugin_ids = [] @@ -67,6 +69,7 @@ class PluginBrowser(QObject, Extension): def requestPluginList(self): url = QUrl(self._api_url + "plugins") self._plugin_list_request = QNetworkRequest(url) + self._plugin_list_request.setRawHeader(*self._request_header) self._network_manager.get(self._plugin_list_request) def _createDialog(self): @@ -119,6 +122,7 @@ class PluginBrowser(QObject, Extension): Logger.log("i", "Attempting to download & install plugin from %s", url) url = QUrl(url) self._download_plugin_request = QNetworkRequest(url) + self._download_plugin_request.setRawHeader(*self._request_header) self._download_plugin_reply = self._network_manager.get(self._download_plugin_request) self._download_progress = 0 self.setIsDownloading(True) From 31dcb6f41f958ea2818473f26b7c9dfd4658073e Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 23 Jun 2017 14:41:23 +0200 Subject: [PATCH 55/72] Decreased height of progress bar CURA-3856 --- plugins/PluginBrowser/PluginBrowser.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/PluginBrowser/PluginBrowser.qml b/plugins/PluginBrowser/PluginBrowser.qml index f8b7abe975..be44ab854a 100644 --- a/plugins/PluginBrowser/PluginBrowser.qml +++ b/plugins/PluginBrowser/PluginBrowser.qml @@ -45,7 +45,7 @@ UM.Dialog minimumValue: 0; maximumValue: 100 width: parent.width - height: 20 + height: 10 value: manager.downloadProgress } From ccb3f225ff7e435c5903b94644ae08da19b6adf9 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 23 Jun 2017 15:49:46 +0200 Subject: [PATCH 56/72] Preheat now shows error color like all other input fields --- resources/qml/PrintMonitor.qml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/resources/qml/PrintMonitor.qml b/resources/qml/PrintMonitor.qml index eacdc17883..41e8794014 100644 --- a/resources/qml/PrintMonitor.qml +++ b/resources/qml/PrintMonitor.qml @@ -320,7 +320,17 @@ Column Rectangle //Input field for pre-heat temperature. { id: preheatTemperatureControl - color: !enabled ? UM.Theme.getColor("setting_control_disabled") : UM.Theme.getColor("setting_validation_ok") + color: !enabled ? UM.Theme.getColor("setting_control_disabled") : showError ? UM.Theme.getColor("setting_validation_error") : UM.Theme.getColor("setting_validation_ok") + property var showError: + { + if(bedTemperature.properties.maximum_value != "None" && bedTemperature.properties.maximum_value < parseInt(preheatTemperatureInput.text)) + { + return true; + } else + { + return false; + } + } enabled: { if (connectedPrinter == null) From dc638fecbf2d91ddbaf62da42a20aa65192e391b Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 23 Jun 2017 16:04:06 +0200 Subject: [PATCH 57/72] Mark 0.8mm CPE+ and PC profiles as experimental These profiles have been tested and they are in the process of optimising them, but there is still some room for improvement there so this is supposed to lower the expectations of our users. Contributes to issue CURA-3960. --- .../quality/ultimaker3/um3_aa0.8_CPEP_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.8_PC_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Draft_Print.inst.cfg index b58210badf..fbcde6cdeb 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Draft_Print.inst.cfg @@ -1,6 +1,6 @@ [general] version = 2 -name = Fast +name = Fast - Experimental definition = ultimaker3 [metadata] diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg index f29b630f48..128dbe5ca5 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg @@ -1,6 +1,6 @@ [general] version = 2 -name = Sprint +name = Sprint - Experimental definition = ultimaker3 [metadata] diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg index 589892f11b..7d8dc79748 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg @@ -1,6 +1,6 @@ [general] version = 2 -name = Extra Fast +name = Extra Fast - Experimental definition = ultimaker3 [metadata] diff --git a/resources/quality/ultimaker3/um3_aa0.8_PC_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PC_Draft_Print.inst.cfg index 5617be141d..7cff30cdb2 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PC_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PC_Draft_Print.inst.cfg @@ -1,6 +1,6 @@ [general] version = 2 -name = Fast +name = Fast - Experimental definition = ultimaker3 [metadata] diff --git a/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg index 3f6dadbb73..8ca95994e4 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg @@ -1,6 +1,6 @@ [general] version = 2 -name = Sprint +name = Sprint - Experimental definition = ultimaker3 [metadata] diff --git a/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg index ff5d6a0a5f..62b06e7df7 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg @@ -1,6 +1,6 @@ [general] version = 2 -name = Extra Fast +name = Extra Fast - Experimental definition = ultimaker3 [metadata] From b68d8d98bec8cc4846cd1dd662d7775973480cd9 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 23 Jun 2017 16:36:53 +0200 Subject: [PATCH 58/72] Update Korean translations These files are directly copied from our Korean translator. Contributes to issue CURA-3950. --- resources/i18n/ko/fdmextruder.def.json.po | 73 +- resources/i18n/ko/fdmprinter.def.json.po | 799 +++++++++++----------- 2 files changed, 437 insertions(+), 435 deletions(-) diff --git a/resources/i18n/ko/fdmextruder.def.json.po b/resources/i18n/ko/fdmextruder.def.json.po index 6b3ff3996e..4286843f2b 100644 --- a/resources/i18n/ko/fdmextruder.def.json.po +++ b/resources/i18n/ko/fdmextruder.def.json.po @@ -8,183 +8,184 @@ msgstr "" "Project-Id-Version: Cura 2.6\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-05-30 15:32+0000\n" -"PO-Revision-Date: 2017-03-27 17:27+0000\n" +"PO-Revision-Date: 2017-06-19 17:36+0900\n" "Last-Translator: None\n" "Language-Team: None\n" -"Language: Korean\n" +"Language: ko\n" "Lang-Code: ko\n" "Country-Code: KR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.0.1\n" #: fdmextruder.def.json msgctxt "machine_settings label" msgid "Machine" -msgstr "" +msgstr "장비 " #: fdmextruder.def.json msgctxt "machine_settings description" msgid "Machine specific settings" -msgstr "" +msgstr "장비 별 설정 " #: fdmextruder.def.json msgctxt "extruder_nr label" msgid "Extruder" -msgstr "" +msgstr "압출기 " #: fdmextruder.def.json msgctxt "extruder_nr description" msgid "The extruder train used for printing. This is used in multi-extrusion." -msgstr "" +msgstr "인쇄에 사용되는 압출기 트레인. 이것은 다중 압출에 사용됩니다. " #: fdmextruder.def.json msgctxt "machine_nozzle_size label" msgid "Nozzle Diameter" -msgstr "" +msgstr "노즐 지름" #: fdmextruder.def.json msgctxt "machine_nozzle_size description" msgid "The inner diameter of the nozzle. Change this setting when using a non-standard nozzle size." -msgstr "" +msgstr "노즐의 내경. 비표준 노즐 크기를 사용할 때, 본 설정을 변경하십시오. " #: fdmextruder.def.json msgctxt "machine_nozzle_offset_x label" msgid "Nozzle X Offset" -msgstr "" +msgstr "노즐 X 오프셋 " #: fdmextruder.def.json msgctxt "machine_nozzle_offset_x description" msgid "The x-coordinate of the offset of the nozzle." -msgstr "" +msgstr "노즐 오프셋의 x 좌표입니다. " #: fdmextruder.def.json msgctxt "machine_nozzle_offset_y label" msgid "Nozzle Y Offset" -msgstr "" +msgstr "노즐 Y 오프셋" #: fdmextruder.def.json msgctxt "machine_nozzle_offset_y description" msgid "The y-coordinate of the offset of the nozzle." -msgstr "" +msgstr "노즐 오프셋의 y 좌표입니다. " #: fdmextruder.def.json msgctxt "machine_extruder_start_code label" msgid "Extruder Start G-Code" -msgstr "" +msgstr "압출기 시작 G 코드" #: fdmextruder.def.json msgctxt "machine_extruder_start_code description" msgid "Start g-code to execute whenever turning the extruder on." -msgstr "" +msgstr "압출기를 켤 때마다 실행할 g 코드를 시작하십시오. " #: fdmextruder.def.json msgctxt "machine_extruder_start_pos_abs label" msgid "Extruder Start Position Absolute" -msgstr "" +msgstr "압출기 시작 위치의 절대 값 " #: fdmextruder.def.json msgctxt "machine_extruder_start_pos_abs description" msgid "Make the extruder starting position absolute rather than relative to the last-known location of the head." -msgstr "" +msgstr "압출기 시작 위치를 헤드의 마지막으로 알려진 위치에 상대적이 아닌 절대 위치로 만듭니다." #: fdmextruder.def.json msgctxt "machine_extruder_start_pos_x label" msgid "Extruder Start Position X" -msgstr "" +msgstr "압출기 시작 X의 위치 " #: fdmextruder.def.json msgctxt "machine_extruder_start_pos_x description" msgid "The x-coordinate of the starting position when turning the extruder on." -msgstr "" +msgstr "압출기를 켤 때 시작 위치의 x 좌표. " #: fdmextruder.def.json msgctxt "machine_extruder_start_pos_y label" msgid "Extruder Start Position Y" -msgstr "" +msgstr "압출기 시작 위치 Y " #: fdmextruder.def.json msgctxt "machine_extruder_start_pos_y description" msgid "The y-coordinate of the starting position when turning the extruder on." -msgstr "" +msgstr "압출기를 켤 때 시작 위치의 y 좌표입니다. " #: fdmextruder.def.json msgctxt "machine_extruder_end_code label" msgid "Extruder End G-Code" -msgstr "" +msgstr "압출기 최종 G 코드 " #: fdmextruder.def.json msgctxt "machine_extruder_end_code description" msgid "End g-code to execute whenever turning the extruder off." -msgstr "" +msgstr "압출기를 끌 때마다 실행할 g 코드를 종료하십시오. " #: fdmextruder.def.json msgctxt "machine_extruder_end_pos_abs label" msgid "Extruder End Position Absolute" -msgstr "" +msgstr "압출기 끝 절대 위치 " #: fdmextruder.def.json msgctxt "machine_extruder_end_pos_abs description" msgid "Make the extruder ending position absolute rather than relative to the last-known location of the head." -msgstr "" +msgstr "압출 성형기가 헤드의 마지막으로 알려진 위치에 상대적이 아닌 절대 위치로 끝나도록하십시오. " #: fdmextruder.def.json msgctxt "machine_extruder_end_pos_x label" msgid "Extruder End Position X" -msgstr "" +msgstr "압출기 끝 X 위치 " #: fdmextruder.def.json msgctxt "machine_extruder_end_pos_x description" msgid "The x-coordinate of the ending position when turning the extruder off." -msgstr "" +msgstr "압출기를 끌 때 끝 위치의 x 좌표." #: fdmextruder.def.json msgctxt "machine_extruder_end_pos_y label" msgid "Extruder End Position Y" -msgstr "" +msgstr "압출기 끝 Y 위치 " #: fdmextruder.def.json msgctxt "machine_extruder_end_pos_y description" msgid "The y-coordinate of the ending position when turning the extruder off." -msgstr "" +msgstr "압출기를 끌 때 종료 위치의 y 좌표입니다. " #: fdmextruder.def.json msgctxt "extruder_prime_pos_z label" msgid "Extruder Prime Z Position" -msgstr "" +msgstr "압출기 프라임 Z 위치 " #: fdmextruder.def.json msgctxt "extruder_prime_pos_z description" msgid "The Z coordinate of the position where the nozzle primes at the start of printing." -msgstr "" +msgstr "인쇄가 시작될 때 노즐이 끝나는 위치의 Z 좌표입니다. " #: fdmextruder.def.json msgctxt "platform_adhesion label" msgid "Build Plate Adhesion" -msgstr "" +msgstr "플레이트 접착력 강화 " #: fdmextruder.def.json msgctxt "platform_adhesion description" msgid "Adhesion" -msgstr "" +msgstr "부착 " #: fdmextruder.def.json msgctxt "extruder_prime_pos_x label" msgid "Extruder Prime X Position" -msgstr "" +msgstr "압출기 프라임 X 위치 " #: fdmextruder.def.json msgctxt "extruder_prime_pos_x description" msgid "The X coordinate of the position where the nozzle primes at the start of printing." -msgstr "" +msgstr "인쇄가 시작될 때 노즐이 끝내는 위치의 X 좌표입니다. " #: fdmextruder.def.json msgctxt "extruder_prime_pos_y label" msgid "Extruder Prime Y Position" -msgstr "" +msgstr "압출기 프라임 Y 위치 " #: fdmextruder.def.json msgctxt "extruder_prime_pos_y description" msgid "The Y coordinate of the position where the nozzle primes at the start of printing." -msgstr "" +msgstr "인쇄가 시작될 때 노즐이 끝내는 위치의 Y 좌표입니다. " diff --git a/resources/i18n/ko/fdmprinter.def.json.po b/resources/i18n/ko/fdmprinter.def.json.po index 20286de71c..bf3fb5159c 100644 --- a/resources/i18n/ko/fdmprinter.def.json.po +++ b/resources/i18n/ko/fdmprinter.def.json.po @@ -8,14 +8,15 @@ msgstr "" "Project-Id-Version: Cura 2.6\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-05-30 15:32+0000\n" -"PO-Revision-Date: 2017-03-27 17:27+0000\n" +"PO-Revision-Date: 2017-06-23 16:16+0900\n" "Last-Translator: None\n" "Language-Team: None\n" -"Language: Korean\n" +"Language: ko\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.0.2\n" #: fdmprinter.def.json msgctxt "machine_settings label" @@ -25,7 +26,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_settings description" msgid "Machine specific settings" -msgstr "" +msgstr "기계 별 설정 " #: fdmprinter.def.json msgctxt "machine_name label" @@ -35,7 +36,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_name description" msgid "The name of your 3D printer model." -msgstr "" +msgstr "3D 프린터 모델의 이름입니다. " #: fdmprinter.def.json msgctxt "machine_show_variants label" @@ -45,7 +46,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_show_variants description" msgid "Whether to show the different variants of this machine, which are described in separate json files." -msgstr "" +msgstr "별도의 json 파일에 설명 된이 기계의 다양한 변형을 표시할지 여부 " #: fdmprinter.def.json msgctxt "machine_start_gcode label" @@ -57,7 +58,7 @@ msgctxt "machine_start_gcode description" msgid "" "Gcode commands to be executed at the very start - separated by \n" "." -msgstr "" +msgstr "G 시작과 동시에 실행될 코드 명령어 " #: fdmprinter.def.json msgctxt "machine_end_gcode label" @@ -69,7 +70,7 @@ msgctxt "machine_end_gcode description" msgid "" "Gcode commands to be executed at the very end - separated by \n" "." -msgstr "" +msgstr "G 맨 마지막에 실행될 코드 명령 " #: fdmprinter.def.json msgctxt "material_guid label" @@ -79,7 +80,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "material_guid description" msgid "GUID of the material. This is set automatically. " -msgstr "" +msgstr "재료의 GUID. 자동으로 설정됩니다. " #: fdmprinter.def.json msgctxt "material_bed_temp_wait label" @@ -89,7 +90,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "material_bed_temp_wait description" msgid "Whether to insert a command to wait until the build plate temperature is reached at the start." -msgstr "" +msgstr "시작 시, 빌드 플레이트 온도에 도달 할 때까지 대기하라는 명령을 삽입할지 여부 " #: fdmprinter.def.json msgctxt "material_print_temp_wait label" @@ -99,7 +100,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "material_print_temp_wait description" msgid "Whether to wait until the nozzle temperature is reached at the start." -msgstr "" +msgstr "시작 시, 노즐 온도에 도달 할 때까지 대기할지 여부 " #: fdmprinter.def.json msgctxt "material_print_temp_prepend label" @@ -109,7 +110,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "material_print_temp_prepend description" msgid "Whether to include nozzle temperature commands at the start of the gcode. When the start_gcode already contains nozzle temperature commands Cura frontend will automatically disable this setting." -msgstr "" +msgstr "gcode의 시작 부분에 노즐 온도 명령을 포함할지 여부. start_gcode에 이미 노즐 온도 명령이 포함되어있을 때 Cura 프론트 엔드는이 설정을 자동으로 비활성화합니다. " #: fdmprinter.def.json msgctxt "material_bed_temp_prepend label" @@ -119,7 +120,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "material_bed_temp_prepend description" msgid "Whether to include build plate temperature commands at the start of the gcode. When the start_gcode already contains build plate temperature commands Cura frontend will automatically disable this setting." -msgstr "" +msgstr "gcode가 시작될 때 빌드 플레이트 온도 명령을 포함할지 여부. start_gcode에 빌드 플레이트 온도 명령이 이미 있으면 Cura 프론트는이 설정을 자동으로 비활성화합니다. " #: fdmprinter.def.json msgctxt "machine_width label" @@ -129,7 +130,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_width description" msgid "The width (X-direction) of the printable area." -msgstr "" +msgstr "인쇄 가능 영역의 폭 (X 방향) " #: fdmprinter.def.json msgctxt "machine_depth label" @@ -139,7 +140,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_depth description" msgid "The depth (Y-direction) of the printable area." -msgstr "" +msgstr "인쇄 가능 영역의 깊이 (Y 방향) " #: fdmprinter.def.json msgctxt "machine_shape label" @@ -149,7 +150,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_shape description" msgid "The shape of the build plate without taking unprintable areas into account." -msgstr "" +msgstr "인쇄 할 수없는 영역을 고려하지 않고 빌드 플레이트의 모양 " #: fdmprinter.def.json msgctxt "machine_shape option rectangular" @@ -169,7 +170,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_height description" msgid "The height (Z-direction) of the printable area." -msgstr "" +msgstr "인쇄 가능 영역의 높이 (Z 방향)입니다. " #: fdmprinter.def.json msgctxt "machine_heated_bed label" @@ -179,7 +180,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_heated_bed description" msgid "Whether the machine has a heated build plate present." -msgstr "" +msgstr "기계에 가열 된 빌드 플레이트가 있는지 여부 " #: fdmprinter.def.json msgctxt "machine_center_is_zero label" @@ -189,7 +190,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_center_is_zero description" msgid "Whether the X/Y coordinates of the zero position of the printer is at the center of the printable area." -msgstr "" +msgstr "프린터의 \"0\" 위치의 X / Y 좌표가 인쇄 가능 영역의 중앙에 있는지 여부 " #: fdmprinter.def.json msgctxt "machine_extruder_count label" @@ -199,7 +200,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_extruder_count description" msgid "Number of extruder trains. An extruder train is the combination of a feeder, bowden tube, and nozzle." -msgstr "" +msgstr "압출기 열차의 수. 압출기 트레인은 피더, 보우 덴 튜브 및 노즐의 조합입니다. " #: fdmprinter.def.json msgctxt "machine_nozzle_tip_outer_diameter label" @@ -209,7 +210,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_nozzle_tip_outer_diameter description" msgid "The outer diameter of the tip of the nozzle." -msgstr "" +msgstr "노즐 끝의 외경 " #: fdmprinter.def.json msgctxt "machine_nozzle_head_distance label" @@ -219,7 +220,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_nozzle_head_distance description" msgid "The height difference between the tip of the nozzle and the lowest part of the print head." -msgstr "" +msgstr "노즐의 끝과 프린트 헤드의 가장 낮은 부분 사이의 높이 차이입니다. " #: fdmprinter.def.json msgctxt "machine_nozzle_expansion_angle label" @@ -229,7 +230,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_nozzle_expansion_angle description" msgid "The angle between the horizontal plane and the conical part right above the tip of the nozzle." -msgstr "" +msgstr "노즐 끝 바로 위의 수평면과 원뿔 부분 사이의 각도입니다. " #: fdmprinter.def.json msgctxt "machine_heat_zone_length label" @@ -239,7 +240,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_heat_zone_length description" msgid "The distance from the tip of the nozzle in which heat from the nozzle is transferred to the filament." -msgstr "" +msgstr "노즐의 열이 필라멘트로 전달되는 노즐의 끝에서부터의 거리 " #: fdmprinter.def.json msgctxt "machine_filament_park_distance label" @@ -249,7 +250,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_filament_park_distance description" msgid "The distance from the tip of the nozzle where to park the filament when an extruder is no longer used." -msgstr "" +msgstr "압출기가 더 이상 사용되지 않을 때 필라멘트를 파킹 할 노즐의 끝에서부터의 거리 " #: fdmprinter.def.json msgctxt "machine_nozzle_temp_enabled label" @@ -259,7 +260,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_nozzle_temp_enabled description" msgid "Whether to control temperature from Cura. Turn this off to control nozzle temperature from outside of Cura." -msgstr "" +msgstr "Cura에서 온도를 제어할지 여부. Cura 외부에서 노즐 온도를 제어하려면이 기능을 끄십시오 " #: fdmprinter.def.json msgctxt "machine_nozzle_heat_up_speed label" @@ -269,7 +270,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_nozzle_heat_up_speed description" msgid "The speed (°C/s) by which the nozzle heats up averaged over the window of normal printing temperatures and the standby temperature." -msgstr "" +msgstr "노즐이 가열되는 속도 (° C / s)는 일반적인 인쇄 온도와 대기 온도의 창에서 평균을냅니다. " #: fdmprinter.def.json msgctxt "machine_nozzle_cool_down_speed label" @@ -279,7 +280,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_nozzle_cool_down_speed description" msgid "The speed (°C/s) by which the nozzle cools down averaged over the window of normal printing temperatures and the standby temperature." -msgstr "" +msgstr "노즐이 냉각되는 속도 (° C / s)는 일반적인 인쇄 온도 및 대기 온도의 창에서 평균화됩니다. " #: fdmprinter.def.json msgctxt "machine_min_cool_heat_time_window label" @@ -289,7 +290,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_min_cool_heat_time_window description" msgid "The minimal time an extruder has to be inactive before the nozzle is cooled. Only when an extruder is not used for longer than this time will it be allowed to cool down to the standby temperature." -msgstr "" +msgstr "노즐이 냉각되기 전에 압출기가 비활성이어야하는 최소 시간. 이 시간보다 오래 압출기를 사용하지 않을 경우에만 대기 온도로 냉각시킬 수 있습니다. " #: fdmprinter.def.json msgctxt "machine_gcode_flavor label" @@ -299,7 +300,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_gcode_flavor description" msgid "The type of gcode to be generated." -msgstr "" +msgstr "생성 될 gcode 유형입니다. " #: fdmprinter.def.json msgctxt "machine_gcode_flavor option RepRap (Marlin/Sprinter)" @@ -349,7 +350,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_disallowed_areas description" msgid "A list of polygons with areas the print head is not allowed to enter." -msgstr "" +msgstr "인쇄 헤드가있는 영역이있는 다각형 목록입니다. " #: fdmprinter.def.json msgctxt "nozzle_disallowed_areas label" @@ -359,7 +360,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "nozzle_disallowed_areas description" msgid "A list of polygons with areas the nozzle is not allowed to enter." -msgstr "" +msgstr "노즐이 들어갈 수없는 영역이있는 다각형 목록입니다. " #: fdmprinter.def.json msgctxt "machine_head_polygon label" @@ -369,7 +370,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_head_polygon description" msgid "A 2D silhouette of the print head (fan caps excluded)." -msgstr "" +msgstr "프린트 헤드의 2D 실루엣 (팬 캡 제외). " #: fdmprinter.def.json msgctxt "machine_head_with_fans_polygon label" @@ -379,7 +380,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_head_with_fans_polygon description" msgid "A 2D silhouette of the print head (fan caps included)." -msgstr "" +msgstr "프린트 헤드의 2D 실루엣 (팬 뚜껑 포함). " #: fdmprinter.def.json msgctxt "gantry_height label" @@ -389,7 +390,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "gantry_height description" msgid "The height difference between the tip of the nozzle and the gantry system (X and Y axes)." -msgstr "" +msgstr "노즐 끝과 갠트리 시스템 사이의 높이 차이 (X 및 Y 축). " #: fdmprinter.def.json msgctxt "machine_nozzle_size label" @@ -399,7 +400,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_nozzle_size description" msgid "The inner diameter of the nozzle. Change this setting when using a non-standard nozzle size." -msgstr "" +msgstr "노즐의 내경. 비표준 노즐 크기를 사용할 때이 설정을 변경하십시오. " #: fdmprinter.def.json msgctxt "machine_use_extruder_offset_to_offset_coords label" @@ -409,7 +410,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_use_extruder_offset_to_offset_coords description" msgid "Apply the extruder offset to the coordinate system." -msgstr "" +msgstr "압출기 오프셋을 좌표계에 적용하십시오. " #: fdmprinter.def.json msgctxt "extruder_prime_pos_z label" @@ -419,7 +420,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "extruder_prime_pos_z description" msgid "The Z coordinate of the position where the nozzle primes at the start of printing." -msgstr "" +msgstr "인쇄가 시작될 때 노즐이 끝나는 위치의 Z 좌표입니다. " #: fdmprinter.def.json msgctxt "extruder_prime_pos_abs label" @@ -429,7 +430,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "extruder_prime_pos_abs description" msgid "Make the extruder prime position absolute rather than relative to the last-known location of the head." -msgstr "" +msgstr "헤드의 마지막으로 알려진 위치에 상대적이 아닌 압출기의 주요 위치를 절대 위치로 만듭니다. " #: fdmprinter.def.json msgctxt "machine_max_feedrate_x label" @@ -439,7 +440,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_max_feedrate_x description" msgid "The maximum speed for the motor of the X-direction." -msgstr "" +msgstr "X 방향의 모터 최대 속도입니다." #: fdmprinter.def.json msgctxt "machine_max_feedrate_y label" @@ -449,7 +450,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_max_feedrate_y description" msgid "The maximum speed for the motor of the Y-direction." -msgstr "" +msgstr "Y 방향 모터의 최대 속도입니다." #: fdmprinter.def.json msgctxt "machine_max_feedrate_z label" @@ -459,7 +460,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_max_feedrate_z description" msgid "The maximum speed for the motor of the Z-direction." -msgstr "" +msgstr "Z 방향의 모터 최대 속도입니다. " #: fdmprinter.def.json msgctxt "machine_max_feedrate_e label" @@ -469,7 +470,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_max_feedrate_e description" msgid "The maximum speed of the filament." -msgstr "" +msgstr "필라멘트의 최대 속도. " #: fdmprinter.def.json msgctxt "machine_max_acceleration_x label" @@ -479,7 +480,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_max_acceleration_x description" msgid "Maximum acceleration for the motor of the X-direction" -msgstr "" +msgstr "X 방향 모터의 최대 가속도. " #: fdmprinter.def.json msgctxt "machine_max_acceleration_y label" @@ -489,7 +490,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_max_acceleration_y description" msgid "Maximum acceleration for the motor of the Y-direction." -msgstr "" +msgstr "Y 방향 모터의 최대 가속도. " #: fdmprinter.def.json msgctxt "machine_max_acceleration_z label" @@ -499,7 +500,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_max_acceleration_z description" msgid "Maximum acceleration for the motor of the Z-direction." -msgstr "" +msgstr "Z 방향 모터의 최대 가속도. " #: fdmprinter.def.json msgctxt "machine_max_acceleration_e label" @@ -509,7 +510,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_max_acceleration_e description" msgid "Maximum acceleration for the motor of the filament." -msgstr "" +msgstr "필라멘트의 모터에 대한 최대 가속도. " #: fdmprinter.def.json msgctxt "machine_acceleration label" @@ -519,7 +520,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_acceleration description" msgid "The default acceleration of print head movement." -msgstr "" +msgstr "프린트 헤드 이동의 기본 가속. " #: fdmprinter.def.json msgctxt "machine_max_jerk_xy label" @@ -529,7 +530,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_max_jerk_xy description" msgid "Default jerk for movement in the horizontal plane." -msgstr "" +msgstr "수평면에서의 이동을위한 기본 저크. " #: fdmprinter.def.json msgctxt "machine_max_jerk_z label" @@ -539,7 +540,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_max_jerk_z description" msgid "Default jerk for the motor of the Z-direction." -msgstr "" +msgstr "Z 방향 모터의 기본 저크. " #: fdmprinter.def.json msgctxt "machine_max_jerk_e label" @@ -549,7 +550,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_max_jerk_e description" msgid "Default jerk for the motor of the filament." -msgstr "" +msgstr "필라멘트 모터의 기본 저크. " #: fdmprinter.def.json msgctxt "machine_minimum_feedrate label" @@ -559,7 +560,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_minimum_feedrate description" msgid "The minimal movement speed of the print head." -msgstr "" +msgstr "프린트 헤드의 최소 이동 속도. " #: fdmprinter.def.json msgctxt "resolution label" @@ -569,7 +570,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "resolution description" msgid "All settings that influence the resolution of the print. These settings have a large impact on the quality (and print time)" -msgstr "" +msgstr "인쇄물의 해상도에 영향을 미치는 모든 설정. 이러한 설정은 품질 (및 인쇄 시간)에 큰 영향을 미칩니다. " #: fdmprinter.def.json msgctxt "layer_height label" @@ -579,7 +580,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "layer_height description" msgid "The height of each layer in mm. Higher values produce faster prints in lower resolution, lower values produce slower prints in higher resolution." -msgstr "" +msgstr "각 층의 높이 (mm)입니다. 값이 높을수록 해상도가 낮을수록 인쇄 속도가 빨라지고 값이 낮을수록 해상도가 높을수록 인쇄 속도가 느려집니다. " #: fdmprinter.def.json msgctxt "layer_height_0 label" @@ -589,7 +590,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "layer_height_0 description" msgid "The height of the initial layer in mm. A thicker initial layer makes adhesion to the build plate easier." -msgstr "" +msgstr "초기 레이어의 높이 (mm)입니다. 두꺼운 초기 레이어는 빌드 플레이트에 쉽게 접착합니다. " #: fdmprinter.def.json msgctxt "line_width label" @@ -599,7 +600,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "line_width description" msgid "Width of a single line. Generally, the width of each line should correspond to the width of the nozzle. However, slightly reducing this value could produce better prints." -msgstr "" +msgstr "한 줄의 너비. 일반적으로 각 라인의 너비는 노즐 폭과 일치해야합니다. 그러나이 값을 약간 줄이면 더 좋은 인 쇄를 생성 할 수 있습니다. " #: fdmprinter.def.json msgctxt "wall_line_width label" @@ -609,7 +610,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wall_line_width description" msgid "Width of a single wall line." -msgstr "" +msgstr "단일 벽 선의 너비입니다. " #: fdmprinter.def.json msgctxt "wall_line_width_0 label" @@ -619,7 +620,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wall_line_width_0 description" msgid "Width of the outermost wall line. By lowering this value, higher levels of detail can be printed." -msgstr "" +msgstr "가장 바깥 쪽 벽 선의 너비. 이 값을 낮춤으로써 높은 수준의 디테일을 인쇄 할 수 있습니다. " #: fdmprinter.def.json msgctxt "wall_line_width_x label" @@ -629,7 +630,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wall_line_width_x description" msgid "Width of a single wall line for all wall lines except the outermost one." -msgstr "" +msgstr "가장 바깥 쪽 벽 선을 제외한 모든 벽 선에 대해 단일 벽 선의 폭입니다. " #: fdmprinter.def.json msgctxt "skin_line_width label" @@ -639,7 +640,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "skin_line_width description" msgid "Width of a single top/bottom line." -msgstr "" +msgstr "단일 위쪽 / 아래쪽 선의 너비입니다. " #: fdmprinter.def.json msgctxt "infill_line_width label" @@ -649,7 +650,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "infill_line_width description" msgid "Width of a single infill line." -msgstr "" +msgstr "단일 infill 라인의 너비. " #: fdmprinter.def.json msgctxt "skirt_brim_line_width label" @@ -659,7 +660,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "skirt_brim_line_width description" msgid "Width of a single skirt or brim line." -msgstr "" +msgstr "단일 스커트 또는 고리 선의 너비. " #: fdmprinter.def.json msgctxt "support_line_width label" @@ -669,7 +670,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_line_width description" msgid "Width of a single support structure line." -msgstr "" +msgstr "단일 지원 구조 선의 너비입니다. " #: fdmprinter.def.json msgctxt "support_interface_line_width label" @@ -679,7 +680,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_interface_line_width description" msgid "Width of a single line of support roof or floor." -msgstr "" +msgstr "지붕 또는 바닥을지지하는 한 줄의 폭. " #: fdmprinter.def.json msgctxt "support_roof_line_width label" @@ -689,7 +690,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_roof_line_width description" msgid "Width of a single support roof line." -msgstr "" +msgstr "단일 지원 지붕 선의 너비. " #: fdmprinter.def.json msgctxt "support_bottom_line_width label" @@ -699,7 +700,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_bottom_line_width description" msgid "Width of a single support floor line." -msgstr "" +msgstr "단일 지원 플로어 라인의 너비. " #: fdmprinter.def.json msgctxt "prime_tower_line_width label" @@ -709,7 +710,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "prime_tower_line_width description" msgid "Width of a single prime tower line." -msgstr "" +msgstr "단일 주요 타워 선의 너비. " #: fdmprinter.def.json msgctxt "shell label" @@ -719,7 +720,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "shell description" msgid "Shell" -msgstr "" +msgstr "껍질 " #: fdmprinter.def.json msgctxt "wall_thickness label" @@ -729,7 +730,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wall_thickness description" msgid "The thickness of the outside walls in the horizontal direction. This value divided by the wall line width defines the number of walls." -msgstr "" +msgstr "외벽의 수평 방향의 두께. 이 값을 벽 선 너비로 나눈 값은 벽의 수를 정의합니다. " #: fdmprinter.def.json msgctxt "wall_line_count label" @@ -739,7 +740,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wall_line_count description" msgid "The number of walls. When calculated by the wall thickness, this value is rounded to a whole number." -msgstr "" +msgstr "벽의 수. 벽 두께로 계산할 때이 값은 정수로 반올림됩니다. " #: fdmprinter.def.json msgctxt "wall_0_wipe_dist label" @@ -749,7 +750,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wall_0_wipe_dist description" msgid "Distance of a travel move inserted after the outer wall, to hide the Z seam better." -msgstr "" +msgstr "바깥 쪽 벽 뒤에 삽입 된 이동 거리. Z 솔기를 더 잘 숨 깁니다. " #: fdmprinter.def.json msgctxt "top_bottom_thickness label" @@ -759,7 +760,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "top_bottom_thickness description" msgid "The thickness of the top/bottom layers in the print. This value divided by the layer height defines the number of top/bottom layers." -msgstr "" +msgstr "인쇄물의 상단 / 하단 레이어의 두께. 이 값을 레이어 높이로 나눈 값은 위쪽 / 아래쪽 레이어의 수를 정의합니다. " #: fdmprinter.def.json msgctxt "top_thickness label" @@ -769,7 +770,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "top_thickness description" msgid "The thickness of the top layers in the print. This value divided by the layer height defines the number of top layers." -msgstr "" +msgstr "인쇄물의 상단 레이어의 두께입니다. 이 값을 레이어 높이로 나눈 값은 최상위 레이어 수를 정의합니다. " #: fdmprinter.def.json msgctxt "top_layers label" @@ -779,7 +780,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "top_layers description" msgid "The number of top layers. When calculated by the top thickness, this value is rounded to a whole number." -msgstr "" +msgstr "인쇄물의 상단 레이어의 두께입니다. 이 값과 레이어 값을 최상위 레이어로 정의하십시오. " #: fdmprinter.def.json msgctxt "bottom_thickness label" @@ -789,7 +790,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "bottom_thickness description" msgid "The thickness of the bottom layers in the print. This value divided by the layer height defines the number of bottom layers." -msgstr "" +msgstr "인쇄물의 아래쪽 레이어의 두께입니다. 이 값을 레이어 높이로 나눈 값은 맨 아래 레이어의 수를 정의합니다. " #: fdmprinter.def.json msgctxt "bottom_layers label" @@ -799,7 +800,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "bottom_layers description" msgid "The number of bottom layers. When calculated by the bottom thickness, this value is rounded to a whole number." -msgstr "" +msgstr "아래층의 수. 바닥 두께로 계산할 때이 값은 정수로 반올림됩니다. " #: fdmprinter.def.json msgctxt "top_bottom_pattern label" @@ -809,7 +810,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "top_bottom_pattern description" msgid "The pattern of the top/bottom layers." -msgstr "" +msgstr "상단 / 하단 레이어의 패턴. " #: fdmprinter.def.json msgctxt "top_bottom_pattern option lines" @@ -834,7 +835,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "top_bottom_pattern_0 description" msgid "The pattern on the bottom of the print on the first layer." -msgstr "" +msgstr "첫 번째 레이어의 인쇄 아래쪽에있는 패턴입니다. " #: fdmprinter.def.json msgctxt "top_bottom_pattern_0 option lines" @@ -859,7 +860,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "skin_angles description" msgid "A list of integer line directions to use when the top/bottom layers use the lines or zig zag pattern. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the traditional default angles (45 and 135 degrees)." -msgstr "" +msgstr "상단 / 하단 레이어가 선 또는 지그재그 패턴을 사용할 때 사용할 정수선 방향 목록입니다. 목록의 요소는 레이어가 진행됨에 따라 순차적으로 사용되며 목록의 끝에 도달하면 처음부터 다시 시작됩니다. 목록 항목은 쉼표로 구분되며 전체 목록은 대괄호 안에 들어 있습니다. 기본값은 전통적인 기본 각도 (45도 및 135도)를 사용하는 빈 목록입니다. " #: fdmprinter.def.json msgctxt "wall_0_inset label" @@ -869,7 +870,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wall_0_inset description" msgid "Inset applied to the path of the outer wall. If the outer wall is smaller than the nozzle, and printed after the inner walls, use this offset to get the hole in the nozzle to overlap with the inner walls instead of the outside of the model." -msgstr "" +msgstr "외벽의 경로에 삽입이 적용됩니다. 외벽이 노즐보다 작고 내벽 다음에 인쇄 된 경우이 옵셋을 사용하여 노즐의 구멍이 모델 외부가 아닌 내벽과 겹치도록하십시오. " #: fdmprinter.def.json msgctxt "outer_inset_first label" @@ -879,7 +880,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "outer_inset_first description" msgid "Prints walls in order of outside to inside when enabled. This can help improve dimensional accuracy in X and Y when using a high viscosity plastic like ABS; however it can decrease outer surface print quality, especially on overhangs." -msgstr "" +msgstr "사용 가능한 경우 외부에서 내부로 벽을 인쇄합니다. 이것은 ABS와 같은 고점도 플라스틱을 사용할 때 X와 Y의 치수 정확도를 향상시키는 데 도움이됩니다. 그러나 외 표면 인쇄 품질을 떨어 뜨릴 수 있습니다 (특히 오버행시). " #: fdmprinter.def.json msgctxt "alternate_extra_perimeter label" @@ -889,7 +890,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "alternate_extra_perimeter description" msgid "Prints an extra wall at every other layer. This way infill gets caught between these extra walls, resulting in stronger prints." -msgstr "" +msgstr "다른 모든 레이어에 여분의 벽을 인쇄합니다. 이렇게하면 충전물이이 여분의 벽 사이에 끼어 더 강하게 인쇄됩니다. " #: fdmprinter.def.json msgctxt "travel_compensate_overlapping_walls_enabled label" @@ -899,7 +900,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "travel_compensate_overlapping_walls_enabled description" msgid "Compensate the flow for parts of a wall being printed where there is already a wall in place." -msgstr "" +msgstr "이미 벽이있는 곳에 인쇄중인 벽의 부분에 대한 흐름을 보정하십시오. " #: fdmprinter.def.json msgctxt "travel_compensate_overlapping_walls_0_enabled label" @@ -909,7 +910,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "travel_compensate_overlapping_walls_0_enabled description" msgid "Compensate the flow for parts of an outer wall being printed where there is already a wall in place." -msgstr "" +msgstr "이미 벽이있는 곳에 인쇄되는 외벽 부분에 대한 흐름을 보정합니다. " #: fdmprinter.def.json msgctxt "travel_compensate_overlapping_walls_x_enabled label" @@ -919,7 +920,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "travel_compensate_overlapping_walls_x_enabled description" msgid "Compensate the flow for parts of an inner wall being printed where there is already a wall in place." -msgstr "" +msgstr "이미 벽이있는 곳에 인쇄되는 내부 벽 부분에 대한 흐름을 보정하십시오. " #: fdmprinter.def.json msgctxt "fill_perimeter_gaps label" @@ -929,7 +930,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "fill_perimeter_gaps description" msgid "Fills the gaps between walls where no walls fit." -msgstr "" +msgstr "벽이 딱 맞지 않는 벽 사이의 간격을 채 웁니다. " #: fdmprinter.def.json msgctxt "fill_perimeter_gaps option nowhere" @@ -949,7 +950,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "xy_offset description" msgid "Amount of offset applied to all polygons in each layer. Positive values can compensate for too big holes; negative values can compensate for too small holes." -msgstr "" +msgstr "각 레이어의 모든 다각형에 적용된 오프셋의 양입니다. 양수 값은 너무 큰 구멍을 보완 할 수 있습니다. 음수 값은 너무 작은 구멍을 보완 할 수 있습니다. " #: fdmprinter.def.json msgctxt "z_seam_type label" @@ -959,7 +960,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "z_seam_type description" msgid "Starting point of each path in a layer. When paths in consecutive layers start at the same point a vertical seam may show on the print. When aligning these near a user specified location, the seam is easiest to remove. When placed randomly the inaccuracies at the paths' start will be less noticeable. When taking the shortest path the print will be quicker." -msgstr "" +msgstr "레이어의 각 패스의 시작점입니다. 연속 레이어의 패스가 같은 지점에서 시작되면 세로 솔기가 인쇄물에 표시 될 수 있습니다. 사용자 지정 위치 근처에서 이들을 정렬 할 때 이음선을 제거하는 것이 가장 쉽습니다. 무작위로 배치 될 때 경로 시작시 부정확성은 눈에 띄지 않습니다. 최단 경로를 취할 때 인쇄가 빨라집니다. " #: fdmprinter.def.json msgctxt "z_seam_type option back" @@ -984,7 +985,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "z_seam_x description" msgid "The X coordinate of the position near where to start printing each part in a layer." -msgstr "" +msgstr "레이어의 각 파트 인쇄를 시작할 위치 근처의 X 좌표입니다. " #: fdmprinter.def.json msgctxt "z_seam_y label" @@ -994,7 +995,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "z_seam_y description" msgid "The Y coordinate of the position near where to start printing each part in a layer." -msgstr "" +msgstr "레이어의 각 부분을 인쇄 할 위치 근처의 위치에 대한 Y 좌표입니다. " #: fdmprinter.def.json msgctxt "skin_no_small_gaps_heuristic label" @@ -1004,7 +1005,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "skin_no_small_gaps_heuristic description" msgid "When the model has small vertical gaps, about 5% extra computation time can be spent on generating top and bottom skin in these narrow spaces. In such case, disable the setting." -msgstr "" +msgstr "모델에 수직 간격이 작 으면이 좁은 공간에서 상단 및 하단 스킨을 생성하는 데 약 5 %의 추가 계산 시간을 소비 할 수 있습니다. 이 경우 설정을 해제하십시오. " #: fdmprinter.def.json msgctxt "infill label" @@ -1014,7 +1015,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "infill description" msgid "Infill" -msgstr "" +msgstr "충진 " #: fdmprinter.def.json msgctxt "infill_sparse_density label" @@ -1024,7 +1025,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "infill_sparse_density description" msgid "Adjusts the density of infill of the print." -msgstr "" +msgstr "인쇄물의 충진율를 조절합니다." #: fdmprinter.def.json msgctxt "infill_line_distance label" @@ -1034,7 +1035,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "infill_line_distance description" msgid "Distance between the printed infill lines. This setting is calculated by the infill density and the infill line width." -msgstr "" +msgstr "인쇄 된 충진 선 사이의 거리. 이 설정은 충전 밀도 및 충전 선 너비로 계산됩니다. " #: fdmprinter.def.json msgctxt "infill_pattern label" @@ -1044,7 +1045,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "infill_pattern description" msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, tetrahedral and concentric patterns are fully printed every layer. Cubic and tetrahedral infill change with every layer to provide a more equal distribution of strength over each direction." -msgstr "" +msgstr "프린트의 충전재 패턴. 라인과 지그는 대체 층에서 스필 방향을 바꾸어 재료비를 줄입니다. 그리드, 삼각형, 큐빅, 사면체 및 동심원 패턴은 모든 레이어에 완전히 인쇄됩니다. 입방체 및 사면체 충전재는 각 방향마다 강도가 균등하게 분포되도록 모든 층을 변경합니다. " #: fdmprinter.def.json msgctxt "infill_pattern option grid" @@ -1099,7 +1100,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "infill_angles description" msgid "A list of integer line directions to use. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the traditional default angles (45 and 135 degrees for the lines and zig zag patterns and 45 degrees for all other patterns)." -msgstr "" +msgstr "사용할 정수선 방향 목록. 목록의 요소는 레이어가 진행됨에 따라 순차적으로 사용되며 목록의 끝에 도달하면 처음부터 다시 시작됩니다. 목록 항목은 쉼표로 구분되며 전체 목록은 대괄호 안에 들어 있습니다. 기본값은 전통적인 기본 각도 (선 및 지그재그 패턴의 경우 45 및 135도, 다른 모든 패턴의 경우 45도)를 사용한다는 의미의 빈 목록입니다. " #: fdmprinter.def.json msgctxt "spaghetti_infill_enabled label" @@ -1109,7 +1110,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "spaghetti_infill_enabled description" msgid "Print the infill every so often, so that the filament will curl up chaotically inside the object. This reduces print time, but the behaviour is rather unpredictable." -msgstr "" +msgstr "필라멘트가 물체 내부에서 혼란스럽게 뒤 틀릴 수 있도록 필러를 너무 자주 인쇄하십시오. 이렇게하면 인쇄 시간이 줄어들지 만 예측할 수없는 행동입니다. " #: fdmprinter.def.json msgctxt "spaghetti_max_infill_angle label" @@ -1119,7 +1120,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "spaghetti_max_infill_angle description" msgid "The maximum angle w.r.t. the Z axis of the inside of the print for areas which are to be filled with spaghetti infill afterwards. Lowering this value causes more angled parts in your model to be filled on each layer." -msgstr "" +msgstr "최대 각도 w.r.t. 나중에 스파게티가 채워질 영역에 대한 인쇄 내부의 Z 축. 이 값을 낮추면 모델의 각진 부분이 각 레이어에 채워집니다. " #: fdmprinter.def.json msgctxt "spaghetti_max_height label" @@ -1129,7 +1130,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "spaghetti_max_height description" msgid "The maximum height of inside space which can be combined and filled from the top." -msgstr "" +msgstr "상단에서 결합하여 채울 수있는 내부 공간의 최대 높이입니다. " #: fdmprinter.def.json msgctxt "spaghetti_inset label" @@ -1139,7 +1140,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "spaghetti_inset description" msgid "The offset from the walls from where the spaghetti infill will be printed." -msgstr "" +msgstr "스파게티가 채워지는 벽의 오프셋. " #: fdmprinter.def.json msgctxt "spaghetti_flow label" @@ -1149,7 +1150,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "spaghetti_flow description" msgid "Adjusts the density of the spaghetti infill. Note that the Infill Density only controls the line spacing of the filling pattern, not the amount of extrusion for spaghetti infill." -msgstr "" +msgstr "스파게티 주입 물의 밀도를 조정합니다. Infill Density는 스파게티 필링의 돌출 량이 아니라 채우기 패턴의 줄 간격 만 제어합니다. " #: fdmprinter.def.json msgctxt "sub_div_rad_add label" @@ -1159,7 +1160,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "sub_div_rad_add description" msgid "An addition to the radius from the center of each cube to check for the boundary of the model, as to decide whether this cube should be subdivided. Larger values lead to a thicker shell of small cubes near the boundary of the model." -msgstr "" +msgstr "모델의 경계를 확인하기 위해 각 큐브의 중심에서 반경을 더하여이 큐브를 세분화할지 여부를 결정합니다. 값이 클수록 모델의 경계 근처에 작은 큐브가 더 두껍게 나옵니다. " #: fdmprinter.def.json msgctxt "infill_overlap label" @@ -1169,7 +1170,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "infill_overlap description" msgid "The amount of overlap between the infill and the walls. A slight overlap allows the walls to connect firmly to the infill." -msgstr "" +msgstr "충진재와 벽 사이의 겹침 정도. 약간 겹치면 벽이 충전재에 단단히 연결됩니다." #: fdmprinter.def.json msgctxt "infill_overlap_mm label" @@ -1179,7 +1180,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "infill_overlap_mm description" msgid "The amount of overlap between the infill and the walls. A slight overlap allows the walls to connect firmly to the infill." -msgstr "" +msgstr "충진재와 벽 사이의 겹침 정도. 약간 겹치면 벽이 충전재에 단단히 연결됩니다. " #: fdmprinter.def.json msgctxt "skin_overlap label" @@ -1189,7 +1190,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "skin_overlap description" msgid "The amount of overlap between the skin and the walls. A slight overlap allows the walls to connect firmly to the skin." -msgstr "" +msgstr "피부와 벽 사이의 겹침 정도입니다. 약간 겹치면 벽이 피부에 단단히 연결됩니다. " #: fdmprinter.def.json msgctxt "skin_overlap_mm label" @@ -1199,7 +1200,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "skin_overlap_mm description" msgid "The amount of overlap between the skin and the walls. A slight overlap allows the walls to connect firmly to the skin." -msgstr "" +msgstr "피부와 벽 사이의 겹침 정도입니다. 약간 겹치면 벽이 피부에 단단히 연결됩니다. " #: fdmprinter.def.json msgctxt "infill_wipe_dist label" @@ -1209,7 +1210,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "infill_wipe_dist description" msgid "Distance of a travel move inserted after every infill line, to make the infill stick to the walls better. This option is similar to infill overlap, but without extrusion and only on one end of the infill line." -msgstr "" +msgstr "각 충진 라인 다음에 삽입 된 이동 이동 거리. infill 스틱을 벽에 더 잘 붙이게합니다. 이 옵션은 충전재 겹침과 유사하지만 압출이없고 충전 선의 한쪽 끝에서만 사용됩니다." #: fdmprinter.def.json msgctxt "infill_sparse_thickness label" @@ -1219,7 +1220,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "infill_sparse_thickness description" msgid "The thickness per layer of infill material. This value should always be a multiple of the layer height and is otherwise rounded." -msgstr "" +msgstr "충진물 층의 두께. 이 값은 항상 레이어 높이의 배수 여야하며 반올림됩니다. " #: fdmprinter.def.json msgctxt "gradual_infill_steps label" @@ -1229,7 +1230,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "gradual_infill_steps description" msgid "Number of times to reduce the infill density by half when getting further below top surfaces. Areas which are closer to top surfaces get a higher density, up to the Infill Density." -msgstr "" +msgstr "상면 아래로 갈 때 충진 밀도를 반으로 줄이는 횟수입니다. 상단면에 더 가까운 영역은 충진율 농도가 더 높은 밀도를 갖습니다. " #: fdmprinter.def.json msgctxt "gradual_infill_step_height label" @@ -1239,7 +1240,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "gradual_infill_step_height description" msgid "The height of infill of a given density before switching to half the density." -msgstr "" +msgstr "밀도의 절반으로 전환하기 전에 주어진 밀도의 infill 높이. " #: fdmprinter.def.json msgctxt "infill_before_walls label" @@ -1249,7 +1250,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "infill_before_walls description" msgid "Print the infill before printing the walls. Printing the walls first may lead to more accurate walls, but overhangs print worse. Printing the infill first leads to sturdier walls, but the infill pattern might sometimes show through the surface." -msgstr "" +msgstr "벽을 인쇄하기 전에 충진물을 인쇄하십시오. 벽을 먼저 인쇄하면 벽이 더 정확해질 수 있지만 돌출이 더 많이 인쇄됩니다. 충진재를 먼저 인쇄하면 더 튼튼한 벽이 생기지 만 충전물 패턴이 때로 표면을 통해 보일 수 있습니다. " #: fdmprinter.def.json msgctxt "min_infill_area label" @@ -1259,7 +1260,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "min_infill_area description" msgid "Don't generate areas of infill smaller than this (use skin instead)." -msgstr "" +msgstr "이보다 작은 충진물 영역을 생성하지 마십시오 (대신 스킨 사용). " #: fdmprinter.def.json msgctxt "expand_skins_into_infill label" @@ -1269,7 +1270,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "expand_skins_into_infill description" msgid "Expand skin areas of top and/or bottom skin of flat surfaces. By default, skins stop under the wall lines that surround infill but this can lead to holes appearing when the infill density is low. This setting extends the skins beyond the wall lines so that the infill on the next layer rests on skin." -msgstr "" +msgstr "평면의 상단 및 / 또는 하단 스킨 영역을 확장합니다. 기본적으로 스필은 충진을 둘러싸는 벽 선 아래에서 멈 춥니 다. 그러나 이는 충진 밀도가 낮을 때 나타나는 구멍으로 이어질 수 있습니다. 이 설정은 스킨을 벽 선 너머로 확장하여 다음 레이어의 필이 피부에 놓 이도록합니다. " #: fdmprinter.def.json msgctxt "expand_upper_skins label" @@ -1279,7 +1280,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "expand_upper_skins description" msgid "Expand the top skin areas (areas with air above) so that they support infill above." -msgstr "" +msgstr "상단 피부 영역 (위의 공기가있는 영역)을 확장하여 위의 충진물을 지탱하도록하십시오. " #: fdmprinter.def.json msgctxt "expand_lower_skins label" @@ -1289,7 +1290,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "expand_lower_skins description" msgid "Expand the bottom skin areas (areas with air below) so that they are anchored by the infill layers above and below." -msgstr "" +msgstr "아래 피부 영역 (공기가있는 부분)을 확장하여 위와 아래의 충진층으로 고정시킵니다. " #: fdmprinter.def.json msgctxt "expand_skins_expand_distance label" @@ -1299,7 +1300,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "expand_skins_expand_distance description" msgid "The distance the skins are expanded into the infill. The default distance is enough to bridge the gap between the infill lines and will stop holes appearing in the skin where it meets the wall when the infill density is low. A smaller distance will often be sufficient." -msgstr "" +msgstr "스킨이 충진 될 거리입니다. 기본 거리는 충진 선 사이의 간격을 메우기에 충분하며 충진 밀도가 낮을 때 벽과 만나는 스킨에 나타나는 구멍을 막습니다. 거리가 짧으면 충분합니다. " #: fdmprinter.def.json msgctxt "max_skin_angle_for_expansion label" @@ -1309,7 +1310,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "max_skin_angle_for_expansion description" msgid "Top and/or bottom surfaces of your object with an angle larger than this setting, won't have their top/bottom skin expanded. This avoids expanding the narrow skin areas that are created when the model surface has a near vertical slope. An angle of 0° is horizontal, while an angle of 90° is vertical." -msgstr "" +msgstr "이 설정보다 큰 각도로 객체의 상단 및 / 또는 하단 표면은 위쪽 / 아래쪽 스킨이 확장되지 않습니다. 이렇게하면 모델 표면이 수직 경사가 거의 없을 때 생성되는 좁은 스킨 영역을 확장하지 않아도됩니다. \"0\" 도의 각도는 수평이며, 90 도의 각도는 수직입니다. " #: fdmprinter.def.json msgctxt "min_skin_width_for_expansion label" @@ -1319,17 +1320,17 @@ msgstr "" #: fdmprinter.def.json msgctxt "min_skin_width_for_expansion description" msgid "Skin areas narrower than this are not expanded. This avoids expanding the narrow skin areas that are created when the model surface has a slope close to the vertical." -msgstr "" +msgstr "이보다 좁은 스킨 영역은 확장되지 않습니다. 이렇게하면 모델 표면이 수직에 가까운 기울기를 가질 때 생성되는 좁은 스킨 영역을 확장하지 않아도됩니다. " #: fdmprinter.def.json msgctxt "material label" msgid "Material" -msgstr "" +msgstr "재료 " #: fdmprinter.def.json msgctxt "material description" msgid "Material" -msgstr "" +msgstr "재료 " #: fdmprinter.def.json msgctxt "material_flow_dependent_temperature label" @@ -1339,7 +1340,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "material_flow_dependent_temperature description" msgid "Change the temperature for each layer automatically with the average flow speed of that layer." -msgstr "" +msgstr "해당 레이어의 평균 유속으로 각 레이어의 온도를 자동으로 변경하십시오. " #: fdmprinter.def.json msgctxt "default_material_print_temperature label" @@ -1349,7 +1350,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "default_material_print_temperature description" msgid "The default temperature used for printing. This should be the \"base\" temperature of a material. All other print temperatures should use offsets based on this value" -msgstr "" +msgstr "인쇄에 사용되는 기본 온도입니다. 이것은 재료의 \"기본\"온도 여야합니다. 다른 모든 인쇄 온도는이 값을 기준으로 오프셋을 사용해야합니다. " #: fdmprinter.def.json msgctxt "material_print_temperature label" @@ -1359,7 +1360,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "material_print_temperature description" msgid "The temperature used for printing." -msgstr "" +msgstr "인쇄에 사용되는 온도. " #: fdmprinter.def.json msgctxt "material_print_temperature_layer_0 label" @@ -1369,7 +1370,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "material_print_temperature_layer_0 description" msgid "The temperature used for printing the first layer. Set at 0 to disable special handling of the initial layer." -msgstr "" +msgstr "첫 번째 레이어 인쇄에 사용되는 온도입니다. 초기 레이어의 특수 처리를 사용하지 않으려면 \"0\"으로 설정합니다. " #: fdmprinter.def.json msgctxt "material_initial_print_temperature label" @@ -1379,7 +1380,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "material_initial_print_temperature description" msgid "The minimal temperature while heating up to the Printing Temperature at which printing can already start." -msgstr "" +msgstr "인쇄가 이미 시작될 수있는 인쇄 온도까지 가열하는 동안 최소 온도. " #: fdmprinter.def.json msgctxt "material_final_print_temperature label" @@ -1389,7 +1390,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "material_final_print_temperature description" msgid "The temperature to which to already start cooling down just before the end of printing." -msgstr "" +msgstr "인쇄 종료 직전에 이미 냉각이 시작될 온도입니다. " #: fdmprinter.def.json msgctxt "material_flow_temp_graph label" @@ -1399,7 +1400,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "material_flow_temp_graph description" msgid "Data linking material flow (in mm3 per second) to temperature (degrees Celsius)." -msgstr "" +msgstr "데이터 흐름 (mm3 / 초) - 온도 (섭씨). " #: fdmprinter.def.json msgctxt "material_extrusion_cool_down_speed label" @@ -1409,7 +1410,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "material_extrusion_cool_down_speed description" msgid "The extra speed by which the nozzle cools while extruding. The same value is used to signify the heat up speed lost when heating up while extruding." -msgstr "" +msgstr "압출하는 동안 노즐이 냉각되는 추가 속도. 압출하는 동안 가열 될 때 상실되는 열 상승 속도를 나타 내기 위해 동일한 값이 사용됩니다. " #: fdmprinter.def.json msgctxt "material_bed_temperature label" @@ -1419,7 +1420,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "material_bed_temperature description" msgid "The temperature used for the heated build plate. If this is 0, the bed will not heat up for this print." -msgstr "" +msgstr "가열 된 빌드 플레이트에 사용되는 온도. 이 값이 0이면이 인쇄물에 침대가 가열되지 않습니다. " #: fdmprinter.def.json msgctxt "material_bed_temperature_layer_0 label" @@ -1429,7 +1430,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "material_bed_temperature_layer_0 description" msgid "The temperature used for the heated build plate at the first layer." -msgstr "" +msgstr "첫 번째 레이어에서 가열 된 빌드 플레이트에 사용되는 온도. " #: fdmprinter.def.json msgctxt "material_diameter label" @@ -1439,7 +1440,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "material_diameter description" msgid "Adjusts the diameter of the filament used. Match this value with the diameter of the used filament." -msgstr "" +msgstr "사용 된 필라멘트의 직경을 조정합니다. 이 값을 사용 필라멘트의 직경과 일치시킵니다. " #: fdmprinter.def.json msgctxt "material_flow label" @@ -1449,7 +1450,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "material_flow description" msgid "Flow compensation: the amount of material extruded is multiplied by this value." -msgstr "" +msgstr "유량 보상 : 압출 된 재료의 양에이 값을 곱합니다. " #: fdmprinter.def.json msgctxt "retraction_enable label" @@ -1459,7 +1460,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "retraction_enable description" msgid "Retract the filament when the nozzle is moving over a non-printed area. " -msgstr "" +msgstr "노즐이 인쇄되지 않은 영역 위로 움직일 때 필라멘트를 잡아 당깁니다. " #: fdmprinter.def.json msgctxt "retract_at_layer_change label" @@ -1469,7 +1470,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "retract_at_layer_change description" msgid "Retract the filament when the nozzle is moving to the next layer." -msgstr "" +msgstr "노즐이 다음 층으로 이동할 때 필라멘트를 후퇴시킵니다. " #: fdmprinter.def.json msgctxt "retraction_amount label" @@ -1479,7 +1480,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "retraction_amount description" msgid "The length of material retracted during a retraction move." -msgstr "" +msgstr "후퇴 이동 중에 수축 된 재료의 길이입니다. " #: fdmprinter.def.json msgctxt "retraction_speed label" @@ -1489,7 +1490,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "retraction_speed description" msgid "The speed at which the filament is retracted and primed during a retraction move." -msgstr "" +msgstr "후퇴 이동 중에 필라멘트가 수축되고 프라이밍되는 속도입니다. " #: fdmprinter.def.json msgctxt "retraction_retract_speed label" @@ -1499,7 +1500,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "retraction_retract_speed description" msgid "The speed at which the filament is retracted during a retraction move." -msgstr "" +msgstr "후퇴 이동 중에 필라멘트가 후퇴하는 속도입니다. " #: fdmprinter.def.json msgctxt "retraction_prime_speed label" @@ -1509,7 +1510,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "retraction_prime_speed description" msgid "The speed at which the filament is primed during a retraction move." -msgstr "" +msgstr "후퇴 이동 중에 필라멘트가 프라이밍되는 속도입니다. " #: fdmprinter.def.json msgctxt "retraction_extra_prime_amount label" @@ -1519,7 +1520,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "retraction_extra_prime_amount description" msgid "Some material can ooze away during a travel move, which can be compensated for here." -msgstr "" +msgstr "여행 중에 이동할 수있는 물질이 있습니다.이 물질은 여기에서 보상받을 수 있습니다. " #: fdmprinter.def.json msgctxt "retraction_min_travel label" @@ -1529,7 +1530,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "retraction_min_travel description" msgid "The minimum distance of travel needed for a retraction to happen at all. This helps to get fewer retractions in a small area." -msgstr "" +msgstr "수축이 일어나기 위해 필요한 최소한의 이동 거리. 이렇게하면 작은 영역에서 더 적은 수축을 얻을 수 있습니다. " #: fdmprinter.def.json msgctxt "retraction_count_max label" @@ -1539,7 +1540,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "retraction_count_max description" msgid "This setting limits the number of retractions occurring within the minimum extrusion distance window. Further retractions within this window will be ignored. This avoids retracting repeatedly on the same piece of filament, as that can flatten the filament and cause grinding issues." -msgstr "" +msgstr "이 설정은 최소 돌출 거리 창 내에서 발생하는 후퇴 수를 제한합니다. 이 창 내에서 더 이상의 철회는 무시됩니다. 이렇게하면 필라멘트를 평평하게하고 연삭 문제를 일으킬 수 있으므로 동일한 필라멘트에서 반복적으로 후퇴하지 않습니다. " #: fdmprinter.def.json msgctxt "retraction_extrusion_window label" @@ -1549,7 +1550,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "retraction_extrusion_window description" msgid "The window in which the maximum retraction count is enforced. This value should be approximately the same as the retraction distance, so that effectively the number of times a retraction passes the same patch of material is limited." -msgstr "" +msgstr "최대 후퇴 횟수가 시행되는 창입니다. 이 값은 수축 거리와 거의 같아야하므로 같은 수축 패치가 통과하는 횟수가 효과적으로 제한됩니다. " #: fdmprinter.def.json msgctxt "material_standby_temperature label" @@ -1559,7 +1560,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "material_standby_temperature description" msgid "The temperature of the nozzle when another nozzle is currently used for printing." -msgstr "" +msgstr "다른 노즐이 현재 인쇄에 사용되는 경우의 노즐 온도. " #: fdmprinter.def.json msgctxt "switch_extruder_retraction_amount label" @@ -1569,7 +1570,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "switch_extruder_retraction_amount description" msgid "The amount of retraction: Set at 0 for no retraction at all. This should generally be the same as the length of the heat zone." -msgstr "" +msgstr "수축 양 : 수축이 전혀없는 경우 0으로 설정합니다. 일반적으로 열 영역의 길이와 같아야합니다. " #: fdmprinter.def.json msgctxt "switch_extruder_retraction_speeds label" @@ -1579,7 +1580,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "switch_extruder_retraction_speeds description" msgid "The speed at which the filament is retracted. A higher retraction speed works better, but a very high retraction speed can lead to filament grinding." -msgstr "" +msgstr "필라멘트가 수축되는 속도입니다. 후퇴 속도가 빠르면 빠르지 만 후퇴 속도가 높으면 필라멘트 연삭으로 이어질 수 있습니다. " #: fdmprinter.def.json msgctxt "switch_extruder_retraction_speed label" @@ -1589,7 +1590,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "switch_extruder_retraction_speed description" msgid "The speed at which the filament is retracted during a nozzle switch retract." -msgstr "" +msgstr "노즐 스위치가 들어갈 때 필라멘트가 후퇴하는 속도. " #: fdmprinter.def.json msgctxt "switch_extruder_prime_speed label" @@ -1599,7 +1600,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "switch_extruder_prime_speed description" msgid "The speed at which the filament is pushed back after a nozzle switch retraction." -msgstr "" +msgstr "노즐 스위치 수축 후 필라멘트가 뒤로 밀리는 속도. " #: fdmprinter.def.json msgctxt "speed label" @@ -1609,7 +1610,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed description" msgid "Speed" -msgstr "" +msgstr "속도 " #: fdmprinter.def.json msgctxt "speed_print label" @@ -1619,7 +1620,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_print description" msgid "The speed at which printing happens." -msgstr "" +msgstr "인쇄 속도. " #: fdmprinter.def.json msgctxt "speed_infill label" @@ -1629,7 +1630,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_infill description" msgid "The speed at which infill is printed." -msgstr "" +msgstr "충진물이 인쇄되는 속도. " #: fdmprinter.def.json msgctxt "speed_wall label" @@ -1639,7 +1640,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_wall description" msgid "The speed at which the walls are printed." -msgstr "" +msgstr "벽이 인쇄되는 속도입니다. " #: fdmprinter.def.json msgctxt "speed_wall_0 label" @@ -1649,7 +1650,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_wall_0 description" msgid "The speed at which the outermost walls are printed. Printing the outer wall at a lower speed improves the final skin quality. However, having a large difference between the inner wall speed and the outer wall speed will affect quality in a negative way." -msgstr "" +msgstr "가장 바깥 쪽 벽이 인쇄되는 속도입니다. 외벽을 더 낮은 속도로 인쇄하면 최종 피부 품질이 향상됩니다. 그러나 내벽 속도와 외벽 속도 사이에 큰 차이가있을 경우 부정적인 방식으로 품질에 영향을 미칩니다. " #: fdmprinter.def.json msgctxt "speed_wall_x label" @@ -1659,7 +1660,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_wall_x description" msgid "The speed at which all inner walls are printed. Printing the inner wall faster than the outer wall will reduce printing time. It works well to set this in between the outer wall speed and the infill speed." -msgstr "" +msgstr "모든 내부 벽이 인쇄되는 속도입니다. 내벽을 외벽보다 빠르게 인쇄하면 인쇄 시간이 단축됩니다. 외벽 속도와 충전 속도 사이에서 이것을 설정하는 것이 효과적입니다. " #: fdmprinter.def.json msgctxt "speed_topbottom label" @@ -1669,7 +1670,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_topbottom description" msgid "The speed at which top/bottom layers are printed." -msgstr "" +msgstr "위쪽 / 아래쪽 레이어가 인쇄되는 속도입니다. " #: fdmprinter.def.json msgctxt "speed_support label" @@ -1679,7 +1680,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_support description" msgid "The speed at which the support structure is printed. Printing support at higher speeds can greatly reduce printing time. The surface quality of the support structure is not important since it is removed after printing." -msgstr "" +msgstr "지지 구조가 인쇄되는 속도입니다. 고속 인쇄 지원은 인쇄 시간을 크게 단축시킵니다. 지지 구조체의 표면 품질은 인쇄 후에 제거되므로 중요하지 않습니다. " #: fdmprinter.def.json msgctxt "speed_support_infill label" @@ -1689,7 +1690,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_support_infill description" msgid "The speed at which the infill of support is printed. Printing the infill at lower speeds improves stability." -msgstr "" +msgstr "지지대의 충전물이 인쇄되는 속도. infill을 저속으로 인쇄하면 안정성이 향상됩니다. " #: fdmprinter.def.json msgctxt "speed_support_interface label" @@ -1699,7 +1700,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_support_interface description" msgid "The speed at which the roofs and floors of support are printed. Printing them at lower speeds can improve overhang quality." -msgstr "" +msgstr "지지대의 지붕과 바닥이 인쇄되는 속도. 인쇄 속도를 느리게하면 돌출 품질이 향상 될 수 있습니다. " #: fdmprinter.def.json msgctxt "speed_support_roof label" @@ -1709,7 +1710,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_support_roof description" msgid "The speed at which the roofs of support are printed. Printing them at lower speeds can improve overhang quality." -msgstr "" +msgstr "지지대의 지붕이 인쇄되는 속도입니다. 인쇄 속도를 느리게하면 돌출 품질이 향상 될 수 있습니다. " #: fdmprinter.def.json msgctxt "speed_support_bottom label" @@ -1719,7 +1720,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_support_bottom description" msgid "The speed at which the floor of support is printed. Printing it at lower speed can improve adhesion of support on top of your model." -msgstr "" +msgstr "지지대 바닥 인쇄 속도. 더 낮은 속도로 인쇄하면 모델 상단의 지지력이 향상됩니다. " #: fdmprinter.def.json msgctxt "speed_prime_tower label" @@ -1729,7 +1730,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_prime_tower description" msgid "The speed at which the prime tower is printed. Printing the prime tower slower can make it more stable when the adhesion between the different filaments is suboptimal." -msgstr "" +msgstr "프라임 타워가 인쇄되는 속도. 프라임 타워를 더 천천히 인쇄하면 다른 필라멘트 사이의 접착력이 차선적일 때보다 안정적으로 만들 수 있습니다. " #: fdmprinter.def.json msgctxt "speed_travel label" @@ -1739,7 +1740,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_travel description" msgid "The speed at which travel moves are made." -msgstr "" +msgstr "움직일때의 이동 속도." #: fdmprinter.def.json msgctxt "speed_layer_0 label" @@ -1749,7 +1750,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_layer_0 description" msgid "The speed for the initial layer. A lower value is advised to improve adhesion to the build plate." -msgstr "" +msgstr "초기 레이어의 속도입니다. 빌드 플레이트에 대한 접착력을 향상 시키려면 낮은 값을 권합니다. " #: fdmprinter.def.json msgctxt "speed_print_layer_0 label" @@ -1759,7 +1760,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_print_layer_0 description" msgid "The speed of printing for the initial layer. A lower value is advised to improve adhesion to the build plate." -msgstr "" +msgstr "초기 레이어의 인쇄 속도입니다. 빌드 플레이트에 대한 접착력을 향상 시키려면 낮은 값을 권합니다. " #: fdmprinter.def.json msgctxt "speed_travel_layer_0 label" @@ -1769,7 +1770,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_travel_layer_0 description" msgid "The speed of travel moves in the initial layer. A lower value is advised to prevent pulling previously printed parts away from the build plate. The value of this setting can automatically be calculated from the ratio between the Travel Speed and the Print Speed." -msgstr "" +msgstr "이동 속도는 초기 레이어에서 이동합니다. 이전에 인쇄 된 부품을 빌드 플레이트에서 빼내는 것을 방지하려면 더 낮은 값을 권합니다. 이 설정의 값은 이동 속도와 인쇄 속도 사이의 비율로부터 자동으로 계산 될 수 있습니다. " #: fdmprinter.def.json msgctxt "skirt_brim_speed label" @@ -1779,7 +1780,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "skirt_brim_speed description" msgid "The speed at which the skirt and brim are printed. Normally this is done at the initial layer speed, but sometimes you might want to print the skirt or brim at a different speed." -msgstr "" +msgstr "스커트와 가장자리가 인쇄되는 속도입니다. 일반적으로 이것은 초기 레이어 속도에서 수행되지만 때로는 스커트 나 가장자리를 다른 속도로 인쇄하려고 할 수 있습니다. " #: fdmprinter.def.json msgctxt "max_feedrate_z_override label" @@ -1789,7 +1790,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "max_feedrate_z_override description" msgid "The maximum speed with which the build plate is moved. Setting this to zero causes the print to use the firmware defaults for the maximum z speed." -msgstr "" +msgstr "빌드 플레이트가 움직이는 최대 속도. 이 값을 0으로 설정하면 인쇄시 최대 z 속도의 펌웨어 기본값이 사용됩니다. " #: fdmprinter.def.json msgctxt "speed_slowdown_layers label" @@ -1799,7 +1800,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_slowdown_layers description" msgid "The first few layers are printed slower than the rest of the model, to get better adhesion to the build plate and improve the overall success rate of prints. The speed is gradually increased over these layers." -msgstr "" +msgstr "처음 몇 개의 레이어는 모델의 나머지 부분보다 느리게 인쇄되어 빌드 플레이트에 대한보다 나은 접착력을 얻고 인쇄물의 전체 성공률을 향상시킵니다. 속도는이 층 위로 점진적으로 증가합니다. " #: fdmprinter.def.json msgctxt "speed_equalize_flow_enabled label" @@ -1809,7 +1810,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_equalize_flow_enabled description" msgid "Print thinner than normal lines faster so that the amount of material extruded per second remains the same. Thin pieces in your model might require lines printed with smaller line width than provided in the settings. This setting controls the speed changes for such lines." -msgstr "" +msgstr "일반 라인보다 얇게 인쇄하여 초당 압출되는 재료의 양이 동일하게 유지되도록하십시오. 모델의 얇은 부분에는 설정에서 제공 한 것보다 작은 선 너비로 선이 인쇄되어야 할 수 있습니다. 이 설정은 이러한 선의 속도 변경을 제어합니다. " #: fdmprinter.def.json msgctxt "speed_equalize_flow_max label" @@ -1819,7 +1820,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_equalize_flow_max description" msgid "Maximum print speed when adjusting the print speed in order to equalize flow." -msgstr "" +msgstr "인쇄 속도를 조정할 때 최대 인쇄 속도로 흐름을 균등하게 유지합니다. " #: fdmprinter.def.json msgctxt "acceleration_enabled label" @@ -1829,7 +1830,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_enabled description" msgid "Enables adjusting the print head acceleration. Increasing the accelerations can reduce printing time at the cost of print quality." -msgstr "" +msgstr "프린트 헤드 가속도를 조정할 수 있습니다. 가속도를 높이면 인쇄 품질을 저하시키면서 인쇄 시간을 줄일 수 있습니다. " #: fdmprinter.def.json msgctxt "acceleration_print label" @@ -1839,7 +1840,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_print description" msgid "The acceleration with which printing happens." -msgstr "" +msgstr "인쇄 속도가 빨라집니다. " #: fdmprinter.def.json msgctxt "acceleration_infill label" @@ -1849,7 +1850,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_infill description" msgid "The acceleration with which infill is printed." -msgstr "" +msgstr "충진물이 인쇄되는 가속도. " #: fdmprinter.def.json msgctxt "acceleration_wall label" @@ -1859,7 +1860,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_wall description" msgid "The acceleration with which the walls are printed." -msgstr "" +msgstr "벽이 가속되는 가속도. " #: fdmprinter.def.json msgctxt "acceleration_wall_0 label" @@ -1869,7 +1870,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_wall_0 description" msgid "The acceleration with which the outermost walls are printed." -msgstr "" +msgstr "가장 바깥 쪽 벽이 인쇄되는 가속도입니다. " #: fdmprinter.def.json msgctxt "acceleration_wall_x label" @@ -1879,7 +1880,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_wall_x description" msgid "The acceleration with which all inner walls are printed." -msgstr "" +msgstr "모든 내부 벽이 인쇄되는 가속도입니다. " #: fdmprinter.def.json msgctxt "acceleration_topbottom label" @@ -1889,7 +1890,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_topbottom description" msgid "The acceleration with which top/bottom layers are printed." -msgstr "" +msgstr "위쪽 / 아래쪽 레이어가 인쇄되는 가속도입니다. " #: fdmprinter.def.json msgctxt "acceleration_support label" @@ -1899,7 +1900,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_support description" msgid "The acceleration with which the support structure is printed." -msgstr "" +msgstr "지지 구조가 인쇄되는 가속도. " #: fdmprinter.def.json msgctxt "acceleration_support_infill label" @@ -1909,7 +1910,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_support_infill description" msgid "The acceleration with which the infill of support is printed." -msgstr "" +msgstr "지지대의 충전물이 인쇄되는 가속도. " #: fdmprinter.def.json msgctxt "acceleration_support_interface label" @@ -1919,7 +1920,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_support_interface description" msgid "The acceleration with which the roofs and floors of support are printed. Printing them at lower acceleration can improve overhang quality." -msgstr "" +msgstr "지지대의 지붕과 바닥이 인쇄되는 가속도. 낮은 가속도로 인쇄하면 돌출 품질이 향상 될 수 있습니다. " #: fdmprinter.def.json msgctxt "acceleration_support_roof label" @@ -1929,7 +1930,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_support_roof description" msgid "The acceleration with which the roofs of support are printed. Printing them at lower acceleration can improve overhang quality." -msgstr "" +msgstr "지지대의 지붕이 인쇄되는 가속도. 낮은 가속도로 인쇄하면 돌출 품질이 향상 될 수 있습니다. " #: fdmprinter.def.json msgctxt "acceleration_support_bottom label" @@ -1939,7 +1940,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_support_bottom description" msgid "The acceleration with which the floors of support are printed. Printing them at lower acceleration can improve adhesion of support on top of your model." -msgstr "" +msgstr "지면의 가속도가 인쇄됩니다. 보다 낮은 가속도로 인쇄하면 모델 상단에 지지력을 향상시킬 수 있습니다. " #: fdmprinter.def.json msgctxt "acceleration_prime_tower label" @@ -1949,7 +1950,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_prime_tower description" msgid "The acceleration with which the prime tower is printed." -msgstr "" +msgstr "프라임 타워가 인쇄되는 가속도. " #: fdmprinter.def.json msgctxt "acceleration_travel label" @@ -1959,7 +1960,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_travel description" msgid "The acceleration with which travel moves are made." -msgstr "" +msgstr "여행이 움직이는 가속도가 만들어집니다. " #: fdmprinter.def.json msgctxt "acceleration_layer_0 label" @@ -1969,7 +1970,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_layer_0 description" msgid "The acceleration for the initial layer." -msgstr "" +msgstr "초기 레이어의 가속도입니다. " #: fdmprinter.def.json msgctxt "acceleration_print_layer_0 label" @@ -1979,7 +1980,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_print_layer_0 description" msgid "The acceleration during the printing of the initial layer." -msgstr "" +msgstr "초기 레이어 인쇄 중 가속도. " #: fdmprinter.def.json msgctxt "acceleration_travel_layer_0 label" @@ -1989,7 +1990,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_travel_layer_0 description" msgid "The acceleration for travel moves in the initial layer." -msgstr "" +msgstr "이동 가속도는 초기 레이어에서 이동합니다. " #: fdmprinter.def.json msgctxt "acceleration_skirt_brim label" @@ -1999,7 +2000,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_skirt_brim description" msgid "The acceleration with which the skirt and brim are printed. Normally this is done with the initial layer acceleration, but sometimes you might want to print the skirt or brim at a different acceleration." -msgstr "" +msgstr "치마와 가장자리가 인쇄되는 가속도. 일반적으로 이것은 초기 레이어 가속으로 이루어 지지만 때로는 스커트 나 테두리를 다른 가속으로 인쇄하려고 할 수 있습니다. " #: fdmprinter.def.json msgctxt "jerk_enabled label" @@ -2009,7 +2010,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_enabled description" msgid "Enables adjusting the jerk of print head when the velocity in the X or Y axis changes. Increasing the jerk can reduce printing time at the cost of print quality." -msgstr "" +msgstr "X 또는 Y 축의 속도가 변경 될 때 프린트 헤드의 속도를 조정할 수 있습니다. 저크를 높이면 인쇄 품질을 저하시키면서 인쇄 시간을 줄일 수 있습니다. " #: fdmprinter.def.json msgctxt "jerk_print label" @@ -2019,7 +2020,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_print description" msgid "The maximum instantaneous velocity change of the print head." -msgstr "" +msgstr "프린트 헤드의 최대 순간 속도 변화. " #: fdmprinter.def.json msgctxt "jerk_infill label" @@ -2029,7 +2030,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_infill description" msgid "The maximum instantaneous velocity change with which infill is printed." -msgstr "" +msgstr "충진물이 인쇄되는 최대 순간 속도 변화. " #: fdmprinter.def.json msgctxt "jerk_wall label" @@ -2039,7 +2040,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_wall description" msgid "The maximum instantaneous velocity change with which the walls are printed." -msgstr "" +msgstr "벽이 인쇄되는 최대 순간 속도 변화. " #: fdmprinter.def.json msgctxt "jerk_wall_0 label" @@ -2049,7 +2050,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_wall_0 description" msgid "The maximum instantaneous velocity change with which the outermost walls are printed." -msgstr "" +msgstr "가장 바깥 쪽 벽이 인쇄되는 최대 순간 속도 변화. " #: fdmprinter.def.json msgctxt "jerk_wall_x label" @@ -2059,7 +2060,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_wall_x description" msgid "The maximum instantaneous velocity change with which all inner walls are printed." -msgstr "" +msgstr "모든 내부 벽이 인쇄되는 최대 순간 속도 변화. " #: fdmprinter.def.json msgctxt "jerk_topbottom label" @@ -2069,7 +2070,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_topbottom description" msgid "The maximum instantaneous velocity change with which top/bottom layers are printed." -msgstr "" +msgstr "상단 / 하단 레이어가 인쇄되는 최대 순간 속도 변화. " #: fdmprinter.def.json msgctxt "jerk_support label" @@ -2079,7 +2080,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_support description" msgid "The maximum instantaneous velocity change with which the support structure is printed." -msgstr "" +msgstr "지지 구조가 인쇄되는 최대 순간 속도 변화. " #: fdmprinter.def.json msgctxt "jerk_support_infill label" @@ -2089,7 +2090,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_support_infill description" msgid "The maximum instantaneous velocity change with which the infill of support is printed." -msgstr "" +msgstr "지지대가 채워지는 최대 순간 속도 변화. " #: fdmprinter.def.json msgctxt "jerk_support_interface label" @@ -2099,7 +2100,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_support_interface description" msgid "The maximum instantaneous velocity change with which the roofs and floors of support are printed." -msgstr "" +msgstr "지지대의 지붕과 바닥이 인쇄되는 최대 순간 속도 변화. " #: fdmprinter.def.json msgctxt "jerk_support_roof label" @@ -2109,7 +2110,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_support_roof description" msgid "The maximum instantaneous velocity change with which the roofs of support are printed." -msgstr "" +msgstr "지지대의 지붕이 인쇄되는 최대 순간 속도 변화. " #: fdmprinter.def.json msgctxt "jerk_support_bottom label" @@ -2119,7 +2120,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_support_bottom description" msgid "The maximum instantaneous velocity change with which the floors of support are printed." -msgstr "" +msgstr "지지대의 바닥이 인쇄되는 최대 순간 속도 변화. " #: fdmprinter.def.json msgctxt "jerk_prime_tower label" @@ -2129,7 +2130,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_prime_tower description" msgid "The maximum instantaneous velocity change with which the prime tower is printed." -msgstr "" +msgstr "프라임 타워가 인쇄되는 최대 순간 속도 변화. " #: fdmprinter.def.json msgctxt "jerk_travel label" @@ -2139,7 +2140,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_travel description" msgid "The maximum instantaneous velocity change with which travel moves are made." -msgstr "" +msgstr "이동이 이동하는 최대 순간 속도 변화. " #: fdmprinter.def.json msgctxt "jerk_layer_0 label" @@ -2149,7 +2150,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_layer_0 description" msgid "The print maximum instantaneous velocity change for the initial layer." -msgstr "" +msgstr "초기 레이어의 인쇄 최대 순간 속도 변화. " #: fdmprinter.def.json msgctxt "jerk_print_layer_0 label" @@ -2159,7 +2160,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_print_layer_0 description" msgid "The maximum instantaneous velocity change during the printing of the initial layer." -msgstr "" +msgstr "초기 층의 인쇄 중 최대 순간 속도 변화. " #: fdmprinter.def.json msgctxt "jerk_travel_layer_0 label" @@ -2169,7 +2170,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_travel_layer_0 description" msgid "The acceleration for travel moves in the initial layer." -msgstr "" +msgstr "이동 가속도는 초기 레이어에서 이동합니다. " #: fdmprinter.def.json msgctxt "jerk_skirt_brim label" @@ -2179,7 +2180,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_skirt_brim description" msgid "The maximum instantaneous velocity change with which the skirt and brim are printed." -msgstr "" +msgstr "스커트와 고리가 인쇄되는 최대 순간 속도 변화. " #: fdmprinter.def.json msgctxt "travel label" @@ -2189,7 +2190,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "travel description" msgid "travel" -msgstr "" +msgstr "이동 " #: fdmprinter.def.json msgctxt "retraction_combing label" @@ -2199,7 +2200,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "retraction_combing description" msgid "Combing keeps the nozzle within already printed areas when traveling. This results in slightly longer travel moves but reduces the need for retractions. If combing is off, the material will retract and the nozzle moves in a straight line to the next point. It is also possible to avoid combing over top/bottom skin areas by combing within the infill only." -msgstr "" +msgstr "빗질은 여행 할 때 이미 인쇄 된 영역 내에 노즐을 유지합니다. 이로 인해 여행 이동이 약간 더 길어 지지만 수축의 필요성은 줄어 듭니다. 빗질이 꺼져 있으면 재료가 후퇴하고 노즐이 직선으로 다음 점으로 이동합니다. 또한 infill 내에서만 빗질하여 상 / 하 피부 영역을 빗질하는 것을 피할 수 있습니다. " #: fdmprinter.def.json msgctxt "retraction_combing option off" @@ -2224,7 +2225,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "travel_retract_before_outer_wall description" msgid "Always retract when moving to start an outer wall." -msgstr "" +msgstr "외벽을 시작하기 위해 이동할 때 항상 후퇴합니다. " #: fdmprinter.def.json msgctxt "travel_avoid_other_parts label" @@ -2234,7 +2235,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "travel_avoid_other_parts description" msgid "The nozzle avoids already printed parts when traveling. This option is only available when combing is enabled." -msgstr "" +msgstr "노즐은 여행 할 때 이미 인쇄 된 부품을 피합니다. 이 옵션은 빗질이 활성화 된 경우에만 사용할 수 있습니다. " #: fdmprinter.def.json msgctxt "travel_avoid_distance label" @@ -2244,7 +2245,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "travel_avoid_distance description" msgid "The distance between the nozzle and already printed parts when avoiding during travel moves." -msgstr "" +msgstr "이동 중에 피할 때 노즐과 이미 인쇄 된 부분 사이의 거리. " #: fdmprinter.def.json msgctxt "start_layers_at_same_position label" @@ -2254,7 +2255,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "start_layers_at_same_position description" msgid "In each layer start with printing the object near the same point, so that we don't start a new layer with printing the piece which the previous layer ended with. This makes for better overhangs and small parts, but increases printing time." -msgstr "" +msgstr "각 레이어에서 같은 지점 근처에 개체를 인쇄하는 것으로 시작하여 이전 레이어가 끝난 부분을 인쇄하여 새 레이어를 시작하지 마십시오. 이것은 오버행 (overhangs) 및 작은 부품을 개선하지만 인쇄 시간을 증가시킵니다. " #: fdmprinter.def.json msgctxt "layer_start_x label" @@ -2264,7 +2265,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "layer_start_x description" msgid "The X coordinate of the position near where to find the part to start printing each layer." -msgstr "" +msgstr "각 레이어의 인쇄를 시작할 부분을 찾을 위치 근처의 X 좌표입니다. " #: fdmprinter.def.json msgctxt "layer_start_y label" @@ -2274,7 +2275,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "layer_start_y description" msgid "The Y coordinate of the position near where to find the part to start printing each layer." -msgstr "" +msgstr "각 레이어 인쇄를 시작할 부분을 찾을 위치 근처의 위치에 대한 Y 좌표입니다. " #: fdmprinter.def.json msgctxt "retraction_hop_enabled label" @@ -2284,7 +2285,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "retraction_hop_enabled description" msgid "Whenever a retraction is done, the build plate is lowered to create clearance between the nozzle and the print. It prevents the nozzle from hitting the print during travel moves, reducing the chance to knock the print from the build plate." -msgstr "" +msgstr "수축이 완료 될 때마다 빌드 플레이트가 내려져 노즐과 인쇄물 사이에 여유 공간이 생깁니다. 이동 이동 중에 노즐이 인쇄물에 부딪치지 않도록하여 인쇄판을 노크 할 기회를 줄입니다. " #: fdmprinter.def.json msgctxt "retraction_hop_only_when_collides label" @@ -2294,7 +2295,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "retraction_hop_only_when_collides description" msgid "Only perform a Z Hop when moving over printed parts which cannot be avoided by horizontal motion by Avoid Printed Parts when Traveling." -msgstr "" +msgstr "이동 시, 인쇄물을 피함으로써 수평 이동으로 피할 수없는 인쇄물 위로 이동할 때만 Z 홉을 수행하십시오." #: fdmprinter.def.json msgctxt "retraction_hop label" @@ -2304,7 +2305,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "retraction_hop description" msgid "The height difference when performing a Z Hop." -msgstr "" +msgstr "Z 홉을 수행 할 때의 높이 차이. " #: fdmprinter.def.json msgctxt "retraction_hop_after_extruder_switch label" @@ -2314,7 +2315,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "retraction_hop_after_extruder_switch description" msgid "After the machine switched from one extruder to the other, the build plate is lowered to create clearance between the nozzle and the print. This prevents the nozzle from leaving oozed material on the outside of a print." -msgstr "" +msgstr "기계가 하나의 압출기에서 다른 압출기로 전환 된 후, 빌드 플레이트가 하강되어 노즐과 인쇄물 사이에 간극이 생깁니다. 이렇게하면 노즐이 인쇄물의 외부에 흘러 나올 수 있습니다. " #: fdmprinter.def.json msgctxt "cooling label" @@ -2324,7 +2325,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "cooling description" msgid "Cooling" -msgstr "" +msgstr "냉각 " #: fdmprinter.def.json msgctxt "cool_fan_enabled label" @@ -2334,7 +2335,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "cool_fan_enabled description" msgid "Enables the print cooling fans while printing. The fans improve print quality on layers with short layer times and bridging / overhangs." -msgstr "" +msgstr "인쇄 중에 인쇄 냉각 팬을 활성화합니다. 팬은 짧은 레이어 시간 및 브리징 / 오버행으로 레이어의 인쇄 품질을 향상시킵니다. " #: fdmprinter.def.json msgctxt "cool_fan_speed label" @@ -2344,7 +2345,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "cool_fan_speed description" msgid "The speed at which the print cooling fans spin." -msgstr "" +msgstr "인쇄 냉각 팬이 회전하는 속도입니다. " #: fdmprinter.def.json msgctxt "cool_fan_speed_min label" @@ -2354,7 +2355,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "cool_fan_speed_min description" msgid "The speed at which the fans spin before hitting the threshold. When a layer prints faster than the threshold, the fan speed gradually inclines towards the maximum fan speed." -msgstr "" +msgstr "팬이 임계 값에 도달하기 전에 회전하는 속도입니다. 레이어가 임계 값보다 빠르게 인쇄되면 팬 속도가 최대 팬 속도쪽으로 점차 기울어집니다. " #: fdmprinter.def.json msgctxt "cool_fan_speed_max label" @@ -2364,7 +2365,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "cool_fan_speed_max description" msgid "The speed at which the fans spin on the minimum layer time. The fan speed gradually increases between the regular fan speed and maximum fan speed when the threshold is hit." -msgstr "" +msgstr "최소 레이어 시간에 팬이 회전하는 속도입니다. 임계 값에 도달하면 일반 팬 속도와 최대 팬 속도 사이에서 팬 속도가 서서히 증가합니다. " #: fdmprinter.def.json msgctxt "cool_min_layer_time_fan_speed_max label" @@ -2374,7 +2375,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "cool_min_layer_time_fan_speed_max description" msgid "The layer time which sets the threshold between regular fan speed and maximum fan speed. Layers that print slower than this time use regular fan speed. For faster layers the fan speed gradually increases towards the maximum fan speed." -msgstr "" +msgstr "정규 팬 속도와 최대 팬 속도 사이의 임계 값을 설정하는 레이어 시간입니다. 이 시간보다 느리게 인쇄되는 레이어는 일반 팬 속도를 사용합니다. 빠른 레이어의 경우 팬 속도가 최대 팬 속도쪽으로 점차 증가합니다. " #: fdmprinter.def.json msgctxt "cool_fan_speed_0 label" @@ -2384,7 +2385,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "cool_fan_speed_0 description" msgid "The speed at which the fans spin at the start of the print. In subsequent layers the fan speed is gradually increased up to the layer corresponding to Regular Fan Speed at Height." -msgstr "" +msgstr "인쇄 시작시 팬이 회전하는 속도입니다. 후속 레이어에서는 팬 속도가 높이의 일반 팬 속도에 해당하는 레이어까지 점차 증가합니다. " #: fdmprinter.def.json msgctxt "cool_fan_full_at_height label" @@ -2394,7 +2395,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "cool_fan_full_at_height description" msgid "The height at which the fans spin on regular fan speed. At the layers below the fan speed gradually increases from Initial Fan Speed to Regular Fan Speed." -msgstr "" +msgstr "일반 팬 속도로 팬이 회전하는 높이입니다. 아래의 레이어에서 팬 속도는 초기 팬 속도에서 정규 팬 속도로 점차 증가합니다. " #: fdmprinter.def.json msgctxt "cool_fan_full_layer label" @@ -2404,7 +2405,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "cool_fan_full_layer description" msgid "The layer at which the fans spin on regular fan speed. If regular fan speed at height is set, this value is calculated and rounded to a whole number." -msgstr "" +msgstr "팬이 일반 팬 속도로 회전하는 레이어입니다. 높이의 일반 팬 속도를 설정하면이 값이 계산되고 정수로 반올림됩니다. " #: fdmprinter.def.json msgctxt "cool_min_layer_time label" @@ -2414,7 +2415,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "cool_min_layer_time description" msgid "The minimum time spent in a layer. This forces the printer to slow down, to at least spend the time set here in one layer. This allows the printed material to cool down properly before printing the next layer. Layers may still take shorter than the minimal layer time if Lift Head is disabled and if the Minimum Speed would otherwise be violated." -msgstr "" +msgstr "레이어에 소요 된 최소 시간입니다. 이렇게하면 프린터가 느려지고 적어도 한 번에 여기에 설정된 시간을 소비하게됩니다. 이렇게하면 다음 레이어를 인쇄하기 전에 인쇄물을 적절히 냉각시킬 수 있습니다. 리프트 헤드가 비활성화되고 최소 속도가 위반되는 경우 레이어가 최소 레이어 시간보다 짧게 걸릴 수 있습니다. " #: fdmprinter.def.json msgctxt "cool_min_speed label" @@ -2424,7 +2425,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "cool_min_speed description" msgid "The minimum print speed, despite slowing down due to the minimum layer time. When the printer would slow down too much, the pressure in the nozzle would be too low and result in bad print quality." -msgstr "" +msgstr "최소 레이어 시간으로 인해 속도가 느려지 긴하지만 최소 인쇄 속도. 프린터의 속도가 너무 느려지면 노즐의 압력이 너무 낮아 인쇄 품질이 나빠질 수 있습니다. " #: fdmprinter.def.json msgctxt "cool_lift_head label" @@ -2434,7 +2435,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "cool_lift_head description" msgid "When the minimum speed is hit because of minimum layer time, lift the head away from the print and wait the extra time until the minimum layer time is reached." -msgstr "" +msgstr "최소한의 레이어 시간으로 인해 최소 속도에 도달하면 헤드를 인쇄물에서 들어 올려 최소 레이어 시간에 도달 할 때까지 여분의 시간을 기다리십시오. " #: fdmprinter.def.json msgctxt "support label" @@ -2444,7 +2445,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support description" msgid "Support" -msgstr "" +msgstr "지지구조 " #: fdmprinter.def.json msgctxt "support_enable label" @@ -2454,7 +2455,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_enable description" msgid "Generate structures to support parts of the model which have overhangs. Without these structures, such parts would collapse during printing." -msgstr "" +msgstr "돌출부가있는 모델 부분을 지원하는 구조를 생성합니다. 이러한 구조가 없으면 이러한 부분이 인쇄 중에 붕괴됩니다. " #: fdmprinter.def.json msgctxt "support_extruder_nr label" @@ -2464,7 +2465,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_extruder_nr description" msgid "The extruder train to use for printing the support. This is used in multi-extrusion." -msgstr "" +msgstr "지지체 인쇄에 사용할 압출기 트레인. 이것은 다중 압출에 사용됩니다. " #: fdmprinter.def.json msgctxt "support_infill_extruder_nr label" @@ -2474,7 +2475,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_infill_extruder_nr description" msgid "The extruder train to use for printing the infill of the support. This is used in multi-extrusion." -msgstr "" +msgstr "지지대의 충전물을 인쇄하는 데 사용할 압출기 트레인. 이것은 다중 압출에 사용됩니다. " #: fdmprinter.def.json msgctxt "support_extruder_nr_layer_0 label" @@ -2484,7 +2485,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_extruder_nr_layer_0 description" msgid "The extruder train to use for printing the first layer of support infill. This is used in multi-extrusion." -msgstr "" +msgstr "제 1 층의 지지체 충전 용 인쇄에 사용되는 압출기 트레인. 이것은 다중 압출에 사용됩니다. " #: fdmprinter.def.json msgctxt "support_interface_extruder_nr label" @@ -2494,7 +2495,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_interface_extruder_nr description" msgid "The extruder train to use for printing the roofs and floors of the support. This is used in multi-extrusion." -msgstr "" +msgstr "지지대의 지붕과 바닥을 인쇄 할 때 사용하는 압출기 트레인. 이것은 다중 압출에 사용됩니다. " #: fdmprinter.def.json msgctxt "support_roof_extruder_nr label" @@ -2504,7 +2505,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_roof_extruder_nr description" msgid "The extruder train to use for printing the roofs of the support. This is used in multi-extrusion." -msgstr "" +msgstr "지지대의 지붕을 인쇄 할 때 사용하는 압출기 트레인. 이것은 다중 압출에 사용됩니다. " #: fdmprinter.def.json msgctxt "support_bottom_extruder_nr label" @@ -2514,7 +2515,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_bottom_extruder_nr description" msgid "The extruder train to use for printing the floors of the support. This is used in multi-extrusion." -msgstr "" +msgstr "지지대의 바닥을 인쇄하는 데 사용할 압출기 트레인. 이것은 다중 압출에 사용됩니다. " #: fdmprinter.def.json msgctxt "support_type label" @@ -2524,7 +2525,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_type description" msgid "Adjusts the placement of the support structures. The placement can be set to touching build plate or everywhere. When set to everywhere the support structures will also be printed on the model." -msgstr "" +msgstr "지지 구조의 배치를 조정합니다. 배치는 빌드 플레이트 또는 모든 곳을 터치하도록 설정할 수 있습니다. 모든 곳에 설정하면 모델에 지원 구조가 인쇄됩니다. " #: fdmprinter.def.json msgctxt "support_type option buildplate" @@ -2544,7 +2545,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_angle description" msgid "The minimum angle of overhangs for which support is added. At a value of 0° all overhangs are supported, 90° will not provide any support." -msgstr "" +msgstr "지원이 추가 된 오버행 각도의 최소값입니다. 0 °의 값에서 모든 돌출부가 지원되며 90 °는 지원하지 않습니다. " #: fdmprinter.def.json msgctxt "support_pattern label" @@ -2554,7 +2555,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_pattern description" msgid "The pattern of the support structures of the print. The different options available result in sturdy or easy to remove support." -msgstr "" +msgstr "프린트의지지 구조의 패턴. 사용 가능한 여러 가지 옵션을 사용하면 튼튼하고 쉽게 제거 할 수 있습니다. " #: fdmprinter.def.json msgctxt "support_pattern option lines" @@ -2594,7 +2595,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_connect_zigzags description" msgid "Connect the ZigZags. This will increase the strength of the zig zag support structure." -msgstr "" +msgstr "지그재그를 연결하십시오. 이것은 지그재그지지 구조의 강도를 증가시킵니다. " #: fdmprinter.def.json msgctxt "support_infill_rate label" @@ -2604,7 +2605,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_infill_rate description" msgid "Adjusts the density of the support structure. A higher value results in better overhangs, but the supports are harder to remove." -msgstr "" +msgstr "지지 구조의 밀도를 조정합니다. 값이 높을수록 오버행이 좋아 지지만 지지체를 제거하기가 더 어렵습니다. " #: fdmprinter.def.json msgctxt "support_line_distance label" @@ -2614,7 +2615,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_line_distance description" msgid "Distance between the printed support structure lines. This setting is calculated by the support density." -msgstr "" +msgstr "인쇄 된지지 구조 선 사이의 거리. 이 설정은 지원 밀도로 계산됩니다. " #: fdmprinter.def.json msgctxt "support_z_distance label" @@ -2624,7 +2625,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_z_distance description" msgid "Distance from the top/bottom of the support structure to the print. This gap provides clearance to remove the supports after the model is printed. This value is rounded up to a multiple of the layer height." -msgstr "" +msgstr "지지 구조의 위 / 아래에서 인쇄까지의 거리. 이 틈새는 모형 인쇄 후 지지대를 제거하기위한 공간을 제공합니다. 이 값은 레이어 높이의 배수로 반올림됩니다. " #: fdmprinter.def.json msgctxt "support_top_distance label" @@ -2634,7 +2635,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_top_distance description" msgid "Distance from the top of the support to the print." -msgstr "" +msgstr "지원 상단에서 인쇄까지의 거리. " #: fdmprinter.def.json msgctxt "support_bottom_distance label" @@ -2644,7 +2645,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_bottom_distance description" msgid "Distance from the print to the bottom of the support." -msgstr "" +msgstr "인쇄물에서 지지대의 바닥까지의 거리. " #: fdmprinter.def.json msgctxt "support_xy_distance label" @@ -2654,7 +2655,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_xy_distance description" msgid "Distance of the support structure from the print in the X/Y directions." -msgstr "" +msgstr "X / Y 방향에서 인쇄물로부터지지 구조까지의 거리. " #: fdmprinter.def.json msgctxt "support_xy_overrides_z label" @@ -2664,7 +2665,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_xy_overrides_z description" msgid "Whether the Support X/Y Distance overrides the Support Z Distance or vice versa. When X/Y overrides Z the X/Y distance can push away the support from the model, influencing the actual Z distance to the overhang. We can disable this by not applying the X/Y distance around overhangs." -msgstr "" +msgstr "지원 X / Y 거리가지지 Z 거리를 무시하는지 여부를 나타냅니다. X / Y가 Z를 오버라이드하면 X / Y 거리는 모델에서 지지점을 밀어내어 돌출부까지의 실제 Z 거리에 영향을 줄 수 있습니다. 오버행 주위에 X / Y 거리를 적용하지 않음으로써이 기능을 비활성화 할 수 있습니다. " #: fdmprinter.def.json msgctxt "support_xy_overrides_z option xy_overrides_z" @@ -2684,7 +2685,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_xy_distance_overhang description" msgid "Distance of the support structure from the overhang in the X/Y directions. " -msgstr "" +msgstr "X / Y 방향에서 오버행으로부터지지 구조까지의 거리. " #: fdmprinter.def.json msgctxt "support_bottom_stair_step_height label" @@ -2694,7 +2695,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_bottom_stair_step_height description" msgid "The height of the steps of the stair-like bottom of support resting on the model. A low value makes the support harder to remove, but too high values can lead to unstable support structures. Set to zero to turn off the stair-like behaviour." -msgstr "" +msgstr "모델에있는 지지대의 계단 모양 바닥의 계단 높이. 값이 낮 으면 지원을 제거하기가 어려워 지지만 값이 너무 높으면 불안정한 지원 구조가 생길 수 있습니다. 계단 모양의 동작을 해제하려면 0으로 설정하십시오. " #: fdmprinter.def.json msgctxt "support_bottom_stair_step_width label" @@ -2704,7 +2705,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_bottom_stair_step_width description" msgid "The maximum width of the steps of the stair-like bottom of support resting on the model. A low value makes the support harder to remove, but too high values can lead to unstable support structures." -msgstr "" +msgstr "모델에있는 지지대의 계단 모양 바닥의 최대 폭. 값이 낮 으면 지원을 제거하기가 어려워 지지만 값이 너무 높으면 불안정한 지원 구조가 생길 수 있습니다. " #: fdmprinter.def.json msgctxt "support_join_distance label" @@ -2714,7 +2715,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_join_distance description" msgid "The maximum distance between support structures in the X/Y directions. When seperate structures are closer together than this value, the structures merge into one." -msgstr "" +msgstr "X / Y 방향으로지지 구조물 사이의 최대 거리. 별도의 구조가이 값보다 가깝게 있으면 구조가 하나로 합쳐집니다. " #: fdmprinter.def.json msgctxt "support_offset label" @@ -2724,7 +2725,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_offset description" msgid "Amount of offset applied to all support polygons in each layer. Positive values can smooth out the support areas and result in more sturdy support." -msgstr "" +msgstr "각 레이어의 모든 지원 다각형에 적용된 오프셋의 양입니다. 양수 값을 사용하면 지원 영역이 원활 해지며보다 견고한 지원을받을 수 있습니다. " #: fdmprinter.def.json msgctxt "support_interface_enable label" @@ -2734,7 +2735,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_interface_enable description" msgid "Generate a dense interface between the model and the support. This will create a skin at the top of the support on which the model is printed and at the bottom of the support, where it rests on the model." -msgstr "" +msgstr "모델과 지원 사이에 조밀 한 인터페이스를 생성하십시오. 이렇게하면 모델이 인쇄 된 지원 맨 위의 스킨과 모델의 위에있는 지원 맨 아래에 스킨이 만들어집니다. " #: fdmprinter.def.json msgctxt "support_roof_enable label" @@ -2744,7 +2745,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_roof_enable description" msgid "Generate a dense slab of material between the top of support and the model. This will create a skin between the model and support." -msgstr "" +msgstr "지지대 상단과 모델 사이에 조밀 한 슬래브를 생성하십시오. 그러면 모델과 지원 사이에 스킨이 만들어집니다. " #: fdmprinter.def.json msgctxt "support_bottom_enable label" @@ -2754,7 +2755,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_bottom_enable description" msgid "Generate a dense slab of material between the bottom of the support and the model. This will create a skin between the model and support." -msgstr "" +msgstr "지지대 바닥과 모델 사이에 조밀 한 슬래브를 생성하십시오. 그러면 모델과 지원 사이에 스킨이 만들어집니다. " #: fdmprinter.def.json msgctxt "support_interface_height label" @@ -2764,7 +2765,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_interface_height description" msgid "The thickness of the interface of the support where it touches with the model on the bottom or the top." -msgstr "" +msgstr "밑면 또는 상단의 모델과 접촉하는 지지점의 인터페이스 두께입니다. " #: fdmprinter.def.json msgctxt "support_roof_height label" @@ -2774,7 +2775,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_roof_height description" msgid "The thickness of the support roofs. This controls the amount of dense layers at the top of the support on which the model rests." -msgstr "" +msgstr "받침 지붕의 두께. 이것은 모델이 놓이는 받침대 상단의 조밀 한 층의 양을 제어합니다. " #: fdmprinter.def.json msgctxt "support_bottom_height label" @@ -2784,7 +2785,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_bottom_height description" msgid "The thickness of the support floors. This controls the number of dense layers that are printed on top of places of a model on which support rests." -msgstr "" +msgstr "지지 층의 두께. 이것은 지지대가 놓여있는 모델의 상단에 인쇄되는 조밀 한 층의 수를 제어합니다. " #: fdmprinter.def.json msgctxt "support_interface_skip_height label" @@ -2794,7 +2795,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_interface_skip_height description" msgid "When checking where there's model above and below the support, take steps of the given height. Lower values will slice slower, while higher values may cause normal support to be printed in some places where there should have been support interface." -msgstr "" +msgstr "지원 모델의 위와 아래에 모델이 있는지 확인하려면 주어진 높이의 단계를 수행하십시오. 값이 낮을수록 슬라이스가 느려지고, 값이 높을수록 지원 인터페이스가 있어야하는 곳에서는 정상적인 지원이 인쇄 될 수 있습니다. " #: fdmprinter.def.json msgctxt "support_interface_density label" @@ -2804,7 +2805,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_interface_density description" msgid "Adjusts the density of the roofs and floors of the support structure. A higher value results in better overhangs, but the supports are harder to remove." -msgstr "" +msgstr "지지 구조의 지붕 및 바닥 밀도를 조정합니다. 값이 높을수록 오버행이 좋아 지지만 지지체를 제거하기가 더 어렵습니다. " #: fdmprinter.def.json msgctxt "support_roof_density label" @@ -2814,7 +2815,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_roof_density description" msgid "The density of the roofs of the support structure. A higher value results in better overhangs, but the supports are harder to remove." -msgstr "" +msgstr "지지 구조의 지붕의 밀도. 값이 높을수록 오버행이 좋아 지지만 지지체를 제거하기가 더 어렵습니다. " #: fdmprinter.def.json msgctxt "support_roof_line_distance label" @@ -2824,7 +2825,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_roof_line_distance description" msgid "Distance between the printed support roof lines. This setting is calculated by the Support Roof Density, but can be adjusted separately." -msgstr "" +msgstr "인쇄 된 지붕 루프 사이의 거리. 이 설정은지지 지붕 밀도에 의해 계산되지만 별도로 조정할 수 있습니다. " #: fdmprinter.def.json msgctxt "support_bottom_density label" @@ -2834,7 +2835,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_bottom_density description" msgid "The density of the floors of the support structure. A higher value results in better adhesion of the support on top of the model." -msgstr "" +msgstr "지지 구조체의 바닥 밀도. 값이 높을수록 지지대가 모델 위에 더 잘 접착됩니다. " #: fdmprinter.def.json msgctxt "support_bottom_line_distance label" @@ -2844,7 +2845,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_bottom_line_distance description" msgid "Distance between the printed support floor lines. This setting is calculated by the Support Floor Density, but can be adjusted separately." -msgstr "" +msgstr "인쇄 된지지 플로어 사이의 거리. 이 설정은 Support Floor Density로 계산되지만 별도로 조정할 수 있습니다. " #: fdmprinter.def.json msgctxt "support_interface_pattern label" @@ -2854,7 +2855,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_interface_pattern description" msgid "The pattern with which the interface of the support with the model is printed." -msgstr "" +msgstr "모델과 지원 인터페이스를 인쇄하는 패턴입니다. " #: fdmprinter.def.json msgctxt "support_interface_pattern option lines" @@ -2894,7 +2895,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_roof_pattern description" msgid "The pattern with which the roofs of the support are printed." -msgstr "" +msgstr "지지대의 지붕이 인쇄되는 패턴. " #: fdmprinter.def.json msgctxt "support_roof_pattern option lines" @@ -2934,7 +2935,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_bottom_pattern description" msgid "The pattern with which the floors of the support are printed." -msgstr "" +msgstr "받침대의 바닥이 인쇄되는 패턴. " #: fdmprinter.def.json msgctxt "support_bottom_pattern option lines" @@ -2974,7 +2975,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_use_towers description" msgid "Use specialized towers to support tiny overhang areas. These towers have a larger diameter than the region they support. Near the overhang the towers' diameter decreases, forming a roof." -msgstr "" +msgstr "작은 돌출 부분을 지원하기 위해 특수한 탑을 사용하십시오. 이 타워들은 그들이 지원하는 지역보다 더 큰 지름을 가지고 있습니다. 오버행 부근에서 타워의 직경이 감소하여 지붕을 형성합니다. " #: fdmprinter.def.json msgctxt "support_tower_diameter label" @@ -2984,7 +2985,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_tower_diameter description" msgid "The diameter of a special tower." -msgstr "" +msgstr "특수 타워의 지름. " #: fdmprinter.def.json msgctxt "support_minimal_diameter label" @@ -2994,7 +2995,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_minimal_diameter description" msgid "Minimum diameter in the X/Y directions of a small area which is to be supported by a specialized support tower." -msgstr "" +msgstr "특수 지지대에 의해지지 될 작은 영역의 X / Y 방향의 최소 직경. " #: fdmprinter.def.json msgctxt "support_tower_roof_angle label" @@ -3004,7 +3005,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_tower_roof_angle description" msgid "The angle of a rooftop of a tower. A higher value results in pointed tower roofs, a lower value results in flattened tower roofs." -msgstr "" +msgstr "타워 옥상의 각도입니다. 높은 값을 지정하면 뾰족한 타워 지붕이되고, 값이 낮을수록 평평한 타워 지붕이됩니다. " #: fdmprinter.def.json msgctxt "platform_adhesion label" @@ -3014,7 +3015,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "platform_adhesion description" msgid "Adhesion" -msgstr "" +msgstr "부착 " #: fdmprinter.def.json msgctxt "prime_blob_enable label" @@ -3024,7 +3025,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "prime_blob_enable description" msgid "Whether to prime the filament with a blob before printing. Turning this setting on will ensure that the extruder will have material ready at the nozzle before printing. Printing Brim or Skirt can act like priming too, in which case turning this setting off saves some time." -msgstr "" +msgstr "인쇄하기 전에 얼룩으로 필라멘트를 프라이밍할지 여부. 이 설정을 켜면 인쇄하기 전에 압출기가 노즐에서 재료를 준비 할 수 있습니다. 가장자리 또는 스커트 인쇄는 프라이밍처럼 작동 할 수 있습니다.이 경우이 설정을 해제하면 시간이 절약됩니다. " #: fdmprinter.def.json msgctxt "extruder_prime_pos_x label" @@ -3034,7 +3035,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "extruder_prime_pos_x description" msgid "The X coordinate of the position where the nozzle primes at the start of printing." -msgstr "" +msgstr "인쇄가 시작될 때 노즐이 끝내는 위치의 X 좌표입니다. " #: fdmprinter.def.json msgctxt "extruder_prime_pos_y label" @@ -3044,7 +3045,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "extruder_prime_pos_y description" msgid "The Y coordinate of the position where the nozzle primes at the start of printing." -msgstr "" +msgstr "인쇄가 시작될 때 노즐이 끝내는 위치의 Y 좌표입니다. " #: fdmprinter.def.json msgctxt "adhesion_type label" @@ -3054,7 +3055,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "adhesion_type description" msgid "Different options that help to improve both priming your extrusion and adhesion to the build plate. Brim adds a single layer flat area around the base of your model to prevent warping. Raft adds a thick grid with a roof below the model. Skirt is a line printed around the model, but not connected to the model." -msgstr "" +msgstr "귀하의 압출 및 빌드 플레이트에 대한 접착력을 향상시키는 데 도움이되는 다양한 옵션. 브림은 뒤틀림을 방지하기 위해 모델 바닥 주위에 단층 평면 영역을 추가합니다. 래프트는 모델 아래에 지붕이있는 두꺼운 격자를 추가합니다. 치마는 모델 주변에 인쇄 된 선이지만 모델에는 연결되어 있지 않습니다. " #: fdmprinter.def.json msgctxt "adhesion_type option skirt" @@ -3084,7 +3085,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "adhesion_extruder_nr description" msgid "The extruder train to use for printing the skirt/brim/raft. This is used in multi-extrusion." -msgstr "" +msgstr "스커트 / 가장자리 / 래프트 인쇄에 사용하는 압출기 트레인. 이것은 다중 압출에 사용됩니다. " #: fdmprinter.def.json msgctxt "skirt_line_count label" @@ -3094,7 +3095,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "skirt_line_count description" msgid "Multiple skirt lines help to prime your extrusion better for small models. Setting this to 0 will disable the skirt." -msgstr "" +msgstr "여러 개의 스커트 라인을 사용하여 작은 모델에 더 잘 압출 성형 할 수 있습니다. 이것을 \"0\"으로 설정하면 스커트가 비활성화됩니다. " #: fdmprinter.def.json msgctxt "skirt_gap label" @@ -3106,7 +3107,7 @@ msgctxt "skirt_gap description" msgid "" "The horizontal distance between the skirt and the first layer of the print.\n" "This is the minimum distance, multiple skirt lines will extend outwards from this distance." -msgstr "" +msgstr "스커트와 인쇄물의 첫 번째 레이어 사이의 수평 거리입니다. 이것은 최소 거리이며, 여러 스커트 라인이이 거리에서 바깥쪽으로 확장됩니다. " #: fdmprinter.def.json msgctxt "skirt_brim_minimal_length label" @@ -3116,7 +3117,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "skirt_brim_minimal_length description" msgid "The minimum length of the skirt or brim. If this length is not reached by all skirt or brim lines together, more skirt or brim lines will be added until the minimum length is reached. Note: If the line count is set to 0 this is ignored." -msgstr "" +msgstr "스커트 또는 고리의 최소 길이. 이 길이에 모든 스커트 또는 브림 선이 모두 도달하지 않으면 최소 길이에 도달 할 때까지 더 많은 스커트 또는 브림 선이 추가됩니다. 참고 : 줄 수를 \"0\"으로 설정하면 무시됩니다." #: fdmprinter.def.json msgctxt "brim_width label" @@ -3126,7 +3127,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "brim_width description" msgid "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." -msgstr "" +msgstr "모델에서 가장 바깥 쪽 가장자리까지의 거리입니다. 큰 테두리는 빌드 플레이트에 대한 접착력을 향상 시키지만 효과적인 인쇄 영역도 감소시킵니다. " #: fdmprinter.def.json msgctxt "brim_line_count label" @@ -3136,7 +3137,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "brim_line_count description" msgid "The number of lines used for a brim. More brim lines enhance adhesion to the build plate, but also reduces the effective print area." -msgstr "" +msgstr "가장자리에 사용되는 선의 수입니다. 더 많은 브림 선이 빌드 플레이트에 대한 접착력을 향상 시키지만 유효 프린트 영역도 감소시킵니다. " #: fdmprinter.def.json msgctxt "brim_outside_only label" @@ -3146,7 +3147,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "brim_outside_only description" msgid "Only print the brim on the outside of the model. This reduces the amount of brim you need to remove afterwards, while it doesn't reduce the bed adhesion that much." -msgstr "" +msgstr "모델 바깥 쪽 가장자리에만 인쇄하십시오. 이렇게하면 나중에 제거해야하는 가장자리의 양이 줄어들지 만 침대 접착력은 그렇게 많이 줄어들지 않습니다. " #: fdmprinter.def.json msgctxt "raft_margin label" @@ -3156,7 +3157,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_margin description" msgid "If the raft is enabled, this is the extra raft area around the model which is also given a raft. Increasing this margin will create a stronger raft while using more material and leaving less area for your print." -msgstr "" +msgstr "래프트가 활성화 된 경우 래프트가 주어진 모델 주변의 추가 뗏목 지역입니다. 이 여백을 늘리면 재료를 더 많이 사용하고 인쇄물을 적게 차지하면서 더 강력한 래프트가 만들어집니다. " #: fdmprinter.def.json msgctxt "raft_airgap label" @@ -3166,7 +3167,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_airgap description" msgid "The gap between the final raft layer and the first layer of the model. Only the first layer is raised by this amount to lower the bonding between the raft layer and the model. Makes it easier to peel off the raft." -msgstr "" +msgstr "최종 래프트 층과 모델의 첫 번째 층 사이의 틈새. 래프트 층과 모델 사이의 결합을 낮추기 위해이 양만큼 첫 번째 층만 올립니다. 래프트를 쉽게 떼어 낼 수 있습니다. " #: fdmprinter.def.json msgctxt "layer_0_z_overlap label" @@ -3176,7 +3177,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "layer_0_z_overlap description" msgid "Make the first and second layer of the model overlap in the Z direction to compensate for the filament lost in the airgap. All models above the first model layer will be shifted down by this amount." -msgstr "" +msgstr "에어 갭에서 손실 된 필라멘트를 보완하기 위해 Z 방향으로 모델의 첫 번째와 두 번째 레이어가 중첩되도록하십시오. 첫 번째 모델 레이어 위의 모든 모델은이 양만큼 아래로 이동합니다 " #: fdmprinter.def.json msgctxt "raft_surface_layers label" @@ -3186,7 +3187,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_surface_layers description" msgid "The number of top layers on top of the 2nd raft layer. These are fully filled layers that the model sits on. 2 layers result in a smoother top surface than 1." -msgstr "" +msgstr "두 번째 래프트 레이어 맨 위에있는 최상위 레이어의 수입니다. 이것들은 모델이 위치하는 완전히 채워진 레이어입니다. 2 층은 1보다 부드러운 표면을 만듭니다. " #: fdmprinter.def.json msgctxt "raft_surface_thickness label" @@ -3196,7 +3197,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_surface_thickness description" msgid "Layer thickness of the top raft layers." -msgstr "" +msgstr "상단 래프트 레이어의 레이어 두께. " #: fdmprinter.def.json msgctxt "raft_surface_line_width label" @@ -3206,7 +3207,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_surface_line_width description" msgid "Width of the lines in the top surface of the raft. These can be thin lines so that the top of the raft becomes smooth." -msgstr "" +msgstr "래프트의 윗면에있는 선의 폭. 래프트의 상단이 매끄럽도록 얇은 선으로 구성 될 수 있습니다. " #: fdmprinter.def.json msgctxt "raft_surface_line_spacing label" @@ -3216,7 +3217,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_surface_line_spacing description" msgid "The distance between the raft lines for the top raft layers. The spacing should be equal to the line width, so that the surface is solid." -msgstr "" +msgstr "상단 래프트 레이어에 대한 래프트 사이의 거리. 간격은 선 너비와 동일해야 표면이 단색입니다. " #: fdmprinter.def.json msgctxt "raft_interface_thickness label" @@ -3226,7 +3227,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_interface_thickness description" msgid "Layer thickness of the middle raft layer." -msgstr "" +msgstr "중간 래프트 층의 층 두께. " #: fdmprinter.def.json msgctxt "raft_interface_line_width label" @@ -3236,7 +3237,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_interface_line_width description" msgid "Width of the lines in the middle raft layer. Making the second layer extrude more causes the lines to stick to the build plate." -msgstr "" +msgstr "중간 래프트 층의 선폭. 두 번째 레이어를 더 돌출 시키면 선이 빌드 플레이트에 달라 붙습니다. " #: fdmprinter.def.json msgctxt "raft_interface_line_spacing label" @@ -3246,7 +3247,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_interface_line_spacing description" msgid "The distance between the raft lines for the middle raft layer. The spacing of the middle should be quite wide, while being dense enough to support the top raft layers." -msgstr "" +msgstr "중간 래프트 층에 대한 래프트 사이의 거리. 중간 틈새는 매우 넓어야하며 래프트 상부 층을지지 할만큼 충분히 촘촘해야합니다. " #: fdmprinter.def.json msgctxt "raft_base_thickness label" @@ -3256,7 +3257,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_base_thickness description" msgid "Layer thickness of the base raft layer. This should be a thick layer which sticks firmly to the printer build plate." -msgstr "" +msgstr "기본 래프트 레이어의 레이어 두께. 이것은 프린터 빌드 플레이트에 단단히 붙어있는 두꺼운 층이어야합니다. " #: fdmprinter.def.json msgctxt "raft_base_line_width label" @@ -3266,7 +3267,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_base_line_width description" msgid "Width of the lines in the base raft layer. These should be thick lines to assist in build plate adhesion." -msgstr "" +msgstr "기본 래프트 층에있는 선의 너비. 이것은 빌드 플레이트 접착을 돕기 위해 두꺼운 선이어야합니다. " #: fdmprinter.def.json msgctxt "raft_base_line_spacing label" @@ -3276,7 +3277,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_base_line_spacing description" msgid "The distance between the raft lines for the base raft layer. Wide spacing makes for easy removal of the raft from the build plate." -msgstr "" +msgstr "기본 래프트 층에 대한 래프트 사이의 거리. 넓은 간격으로 빌드 플레이트에서 래프트를 쉽게 제거 할 수 있습니다. " #: fdmprinter.def.json msgctxt "raft_speed label" @@ -3286,7 +3287,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_speed description" msgid "The speed at which the raft is printed." -msgstr "" +msgstr "래프트가 인쇄되는 속도. " #: fdmprinter.def.json msgctxt "raft_surface_speed label" @@ -3296,7 +3297,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_surface_speed description" msgid "The speed at which the top raft layers are printed. These should be printed a bit slower, so that the nozzle can slowly smooth out adjacent surface lines." -msgstr "" +msgstr "상단 래프트 레이어가 인쇄되는 속도입니다. 이 노즐은 조금 더 느리게 인쇄해야 노즐이 인접한 표면 선을 천천히 부드럽게 할 수 있습니다. " #: fdmprinter.def.json msgctxt "raft_interface_speed label" @@ -3306,7 +3307,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_interface_speed description" msgid "The speed at which the middle raft layer is printed. This should be printed quite slowly, as the volume of material coming out of the nozzle is quite high." -msgstr "" +msgstr "중간 래프트 층이 인쇄되는 속도. 이것은 노즐에서 나오는 재료의 양이 상당히 많기 때문에 아주 천천히 인쇄되어야합니다. " #: fdmprinter.def.json msgctxt "raft_base_speed label" @@ -3316,7 +3317,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_base_speed description" msgid "The speed at which the base raft layer is printed. This should be printed quite slowly, as the volume of material coming out of the nozzle is quite high." -msgstr "" +msgstr "기본 래프트 레이어가 인쇄되는 속도입니다. 이것은 노즐에서 나오는 재료의 양이 상당히 많기 때문에 아주 천천히 인쇄되어야합니다. " #: fdmprinter.def.json msgctxt "raft_acceleration label" @@ -3326,7 +3327,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_acceleration description" msgid "The acceleration with which the raft is printed." -msgstr "" +msgstr "래프트가 인쇄되는 가속도. " #: fdmprinter.def.json msgctxt "raft_surface_acceleration label" @@ -3336,7 +3337,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_surface_acceleration description" msgid "The acceleration with which the top raft layers are printed." -msgstr "" +msgstr "상단 래프트 레이어가 인쇄되는 가속도입니다. " #: fdmprinter.def.json msgctxt "raft_interface_acceleration label" @@ -3346,7 +3347,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_interface_acceleration description" msgid "The acceleration with which the middle raft layer is printed." -msgstr "" +msgstr "중간 래프트 층이 인쇄되는 가속도. " #: fdmprinter.def.json msgctxt "raft_base_acceleration label" @@ -3356,7 +3357,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_base_acceleration description" msgid "The acceleration with which the base raft layer is printed." -msgstr "" +msgstr "기본 래프트 레이어가 인쇄되는 가속도입니다. " #: fdmprinter.def.json msgctxt "raft_jerk label" @@ -3366,7 +3367,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_jerk description" msgid "The jerk with which the raft is printed." -msgstr "" +msgstr "래프트와 함께 인쇄되는 저크. " #: fdmprinter.def.json msgctxt "raft_surface_jerk label" @@ -3376,7 +3377,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_surface_jerk description" msgid "The jerk with which the top raft layers are printed." -msgstr "" +msgstr "상단 래프트 레이어가 인쇄되는 저크. " #: fdmprinter.def.json msgctxt "raft_interface_jerk label" @@ -3386,7 +3387,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_interface_jerk description" msgid "The jerk with which the middle raft layer is printed." -msgstr "" +msgstr "중간 래프트 층이 인쇄되는 저크. " #: fdmprinter.def.json msgctxt "raft_base_jerk label" @@ -3396,7 +3397,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_base_jerk description" msgid "The jerk with which the base raft layer is printed." -msgstr "" +msgstr "기본 래프트 레이어가 인쇄되는 저크. " #: fdmprinter.def.json msgctxt "raft_fan_speed label" @@ -3406,7 +3407,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_fan_speed description" msgid "The fan speed for the raft." -msgstr "" +msgstr "래프트의 팬 속도. " #: fdmprinter.def.json msgctxt "raft_surface_fan_speed label" @@ -3416,7 +3417,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_surface_fan_speed description" msgid "The fan speed for the top raft layers." -msgstr "" +msgstr "상단 래프트 레이어의 팬 속도입니다. " #: fdmprinter.def.json msgctxt "raft_interface_fan_speed label" @@ -3426,7 +3427,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_interface_fan_speed description" msgid "The fan speed for the middle raft layer." -msgstr "" +msgstr "중간 래프트 레이어의 팬 속도입니다. " #: fdmprinter.def.json msgctxt "raft_base_fan_speed label" @@ -3436,7 +3437,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_base_fan_speed description" msgid "The fan speed for the base raft layer." -msgstr "" +msgstr "기본 래프트 레이어의 팬 속도입니다. " #: fdmprinter.def.json msgctxt "dual label" @@ -3446,7 +3447,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "dual description" msgid "Settings used for printing with multiple extruders." -msgstr "" +msgstr "여러 압출기로 인쇄 할 때 사용되는 설정입니다. " #: fdmprinter.def.json msgctxt "prime_tower_enable label" @@ -3456,7 +3457,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "prime_tower_enable description" msgid "Print a tower next to the print which serves to prime the material after each nozzle switch." -msgstr "" +msgstr "각 노즐을 교체 한 후에 재료를 프라이밍(Priming)하는 인쇄 옆에 타워를 인쇄하십시오. " #: fdmprinter.def.json msgctxt "prime_tower_size label" @@ -3466,7 +3467,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "prime_tower_size description" msgid "The width of the prime tower." -msgstr "" +msgstr "프라임 타워의 너비." #: fdmprinter.def.json msgctxt "prime_tower_min_volume label" @@ -3476,7 +3477,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "prime_tower_min_volume description" msgid "The minimum volume for each layer of the prime tower in order to purge enough material." -msgstr "" +msgstr "충분한 재료를 퍼지하기 위해 프라임 타워 각 층의 최소 부피. " #: fdmprinter.def.json msgctxt "prime_tower_wall_thickness label" @@ -3486,7 +3487,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "prime_tower_wall_thickness description" msgid "The thickness of the hollow prime tower. A thickness larger than half the Prime Tower Minimum Volume will result in a dense prime tower." -msgstr "" +msgstr "속이 빈 프라임 타워의 두께. 프라임 타워의 최소 볼륨의 절반보다 큰 두께는 조밀 한 소수 타워가됩니다. " #: fdmprinter.def.json msgctxt "prime_tower_position_x label" @@ -3496,7 +3497,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "prime_tower_position_x description" msgid "The x coordinate of the position of the prime tower." -msgstr "" +msgstr "프라임 타워 위치의 x 좌표입니다. " #: fdmprinter.def.json msgctxt "prime_tower_position_y label" @@ -3506,7 +3507,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "prime_tower_position_y description" msgid "The y coordinate of the position of the prime tower." -msgstr "" +msgstr "프라임 타워 위치의 y 좌표입니다. " #: fdmprinter.def.json msgctxt "prime_tower_flow label" @@ -3516,7 +3517,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "prime_tower_flow description" msgid "Flow compensation: the amount of material extruded is multiplied by this value." -msgstr "" +msgstr "유량 보상 : 압출 된 재료의 양에이 값을 곱합니다. " #: fdmprinter.def.json msgctxt "prime_tower_wipe_enabled label" @@ -3526,7 +3527,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "prime_tower_wipe_enabled description" msgid "After printing the prime tower with one nozzle, wipe the oozed material from the other nozzle off on the prime tower." -msgstr "" +msgstr "하나의 노즐로 프라임 타워를 인쇄 한 후, 다른 타워의 흙먼지 물질을 프라임 타워에서 닦아냅니다. " #: fdmprinter.def.json msgctxt "dual_pre_wipe label" @@ -3536,7 +3537,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "dual_pre_wipe description" msgid "After switching extruder, wipe the oozed material off of the nozzle on the first thing printed. This performs a safe slow wipe move at a place where the oozed material causes least harm to the surface quality of your print." -msgstr "" +msgstr "압출기를 전환 한 후, 인쇄 된 첫 번째 것을 노즐에서 닦아 낸 물질을 닦아냅니다. 이렇게하면 흘러 나온 물질이 인쇄물의 표면 품질에 가장 해를 입히는 곳에서 안전한 천천히 닦아줍니다. " #: fdmprinter.def.json msgctxt "ooze_shield_enabled label" @@ -3546,7 +3547,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "ooze_shield_enabled description" msgid "Enable exterior ooze shield. This will create a shell around the model which is likely to wipe a second nozzle if it's at the same height as the first nozzle." -msgstr "" +msgstr "외장 방음 장치를 사용하십시오. 이렇게하면 첫 번째 노즐과 동일한 높이에 두 번째 노즐을 닦을 가능성이있는 모델 주위에 쉘이 생깁니다. " #: fdmprinter.def.json msgctxt "ooze_shield_angle label" @@ -3556,7 +3557,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "ooze_shield_angle description" msgid "The maximum angle a part in the ooze shield will have. With 0 degrees being vertical, and 90 degrees being horizontal. A smaller angle leads to less failed ooze shields, but more material." -msgstr "" +msgstr "방패망의 한 부분이 가질 최대 각도입니다. \"0\"도가 수직이고 \"90\"도가 수평입니다. 각도가 작 으면 방풍망이 덜 파손되지만 재료는 더 많습니다. " #: fdmprinter.def.json msgctxt "ooze_shield_dist label" @@ -3566,7 +3567,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "ooze_shield_dist description" msgid "Distance of the ooze shield from the print, in the X/Y directions." -msgstr "" +msgstr "X / Y 방향으로 인쇄물에서 방패망까지의 거리. " #: fdmprinter.def.json msgctxt "meshfix label" @@ -3576,7 +3577,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "meshfix description" msgid "category_fixes" -msgstr "" +msgstr "카테고리 수정 " #: fdmprinter.def.json msgctxt "meshfix_union_all label" @@ -3586,7 +3587,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "meshfix_union_all description" msgid "Ignore the internal geometry arising from overlapping volumes within a mesh and print the volumes as one. This may cause unintended internal cavities to disappear." -msgstr "" +msgstr "메쉬 내의 겹치는 볼륨으로 인해 발생하는 내부 지오메트리를 무시하고 볼륨을 하나로 인쇄하십시오. 이로 인해 의도하지 않은 내부 공동이 사라질 수 있습니다. " #: fdmprinter.def.json msgctxt "meshfix_union_all_remove_holes label" @@ -3596,7 +3597,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "meshfix_union_all_remove_holes description" msgid "Remove the holes in each layer and keep only the outside shape. This will ignore any invisible internal geometry. However, it also ignores layer holes which can be viewed from above or below." -msgstr "" +msgstr "각 레이어의 구멍을 제거하고 바깥 쪽 모양 만 유지합니다. 이것은 보이지 않는 내부 지오메트리를 무시합니다. 그러나 위 또는 아래에서 볼 수있는 레이어 구멍도 무시합니다. " #: fdmprinter.def.json msgctxt "meshfix_extensive_stitching label" @@ -3606,7 +3607,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "meshfix_extensive_stitching description" msgid "Extensive stitching tries to stitch up open holes in the mesh by closing the hole with touching polygons. This option can introduce a lot of processing time." -msgstr "" +msgstr "광범위한 스티칭은 다각형을 만지면서 구멍을 닫음으로써 메쉬의 열린 구멍을 꿰매려합니다. 이 옵션은 많은 처리 시간을 초래할 수 있습니다. " #: fdmprinter.def.json msgctxt "meshfix_keep_open_polygons label" @@ -3616,7 +3617,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "meshfix_keep_open_polygons description" msgid "Normally Cura tries to stitch up small holes in the mesh and remove parts of a layer with big holes. Enabling this option keeps those parts which cannot be stitched. This option should be used as a last resort option when everything else fails to produce proper GCode." -msgstr "" +msgstr "일반적으로 큐라(Cura)는 메쉬의 작은 구멍을 꿰매 붙이고 큰 구멍이있는 레이어의 부분을 제거하려고합니다. 이 옵션을 활성화하면 스티칭 할 수없는 파트가 유지됩니다. 이 옵션은 다른 모든 것이 올바른 GCode를 생성하지 못할 때 최후의 수단으로 사용해야합니다. " #: fdmprinter.def.json msgctxt "multiple_mesh_overlap label" @@ -3626,7 +3627,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "multiple_mesh_overlap description" msgid "Make meshes which are touching each other overlap a bit. This makes them bond together better." -msgstr "" +msgstr "서로 닿는 메쉬가 조금 겹치게 만듭니다. 이것은 그들을 더 잘 묶는 것입니다. " #: fdmprinter.def.json msgctxt "carve_multiple_volumes label" @@ -3636,7 +3637,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "carve_multiple_volumes description" msgid "Remove areas where multiple meshes are overlapping with each other. This may be used if merged dual material objects overlap with each other." -msgstr "" +msgstr "여러 메시가 서로 겹치는 영역을 제거하십시오. 병합 된 이중 물체가 서로 중첩되는 경우이 값이 사용될 수 있습니다. " #: fdmprinter.def.json msgctxt "alternate_carve_order label" @@ -3646,7 +3647,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "alternate_carve_order description" msgid "Switch to which mesh intersecting volumes will belong with every layer, so that the overlapping meshes become interwoven. Turning this setting off will cause one of the meshes to obtain all of the volume in the overlap, while it is removed from the other meshes." -msgstr "" +msgstr "교차하는 메쉬로 교차하는 볼륨으로 전환하면 겹치는 메쉬가 서로 얽 히게됩니다. 이 설정을 해제하면 메시 중 하나가 다른 메시에서 제거되는 동안 오버랩의 모든 볼륨을 가져옵니다. " #: fdmprinter.def.json msgctxt "blackmagic label" @@ -3656,7 +3657,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "blackmagic description" msgid "category_blackmagic" -msgstr "" +msgstr "블랙매직 카테고리 " #: fdmprinter.def.json msgctxt "print_sequence label" @@ -3666,7 +3667,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "print_sequence description" msgid "Whether to print all models one layer at a time or to wait for one model to finish, before moving on to the next. One at a time mode is only possible if all models are separated in such a way that the whole print head can move in between and all models are lower than the distance between the nozzle and the X/Y axes." -msgstr "" +msgstr "한 번에 한 레이어 씩 모든 모델을 인쇄할지 또는 한 모델이 완료 될 때까지 기다렸다가 다음 모델로 넘어갈 지 여부. 한 번에 한 가지 모드는 모든 모델이 분리되어 전체 프린트 헤드가 중간에서 움직일 수 있고 모든 모델이 노즐과 X / Y 축 사이의 거리보다 낮은 경우에만 가능합니다. " #: fdmprinter.def.json msgctxt "print_sequence option all_at_once" @@ -3686,7 +3687,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "infill_mesh description" msgid "Use this mesh to modify the infill of other meshes with which it overlaps. Replaces infill regions of other meshes with regions for this mesh. It's suggested to only print one Wall and no Top/Bottom Skin for this mesh." -msgstr "" +msgstr "관련 메쉬를 사용하여 겹치는 다른 메쉬의 충진율을 수정하십시오. 다른 메쉬의 충진 영역을 본 메쉬의 영역으로 대체합니다. 본 메쉬에 하나의 벽과 상단 / 밑바닥 스킨만을 인쇄하는 것이 좋습니다. " #: fdmprinter.def.json msgctxt "infill_mesh_order label" @@ -3696,7 +3697,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "infill_mesh_order description" msgid "Determines which infill mesh is inside the infill of another infill mesh. An infill mesh with a higher order will modify the infill of infill meshes with lower order and normal meshes." -msgstr "" +msgstr "어떤 충진 메쉬가 다른 충진 메쉬의 충진 내부에 있는지 결정합니다. 더 높은 차수의 충진 메쉬는 더 낮은 차수와 일반적인 메쉬로 충진 메쉬의 충진을 수정합니다. " #: fdmprinter.def.json msgctxt "cutting_mesh label" @@ -3706,7 +3707,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "cutting_mesh description" msgid "Limit the volume of this mesh to within other meshes. You can use this to make certain areas of one mesh print with different settings and with a whole different extruder." -msgstr "" +msgstr "이 메쉬의 볼륨을 다른 메쉬 내로 제한하십시오. 이 기능을 사용하면 다른 설정과 전체 압출기로 하나의 메쉬 인쇄 영역을 만들 수 있습니다. " #: fdmprinter.def.json msgctxt "mold_enabled label" @@ -3716,7 +3717,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "mold_enabled description" msgid "Print models as a mold, which can be cast in order to get a model which resembles the models on the build plate." -msgstr "" +msgstr "모형을 모형으로 인쇄하여 모형에 모형과 유사한 모형을 만들 수 있습니다. " #: fdmprinter.def.json msgctxt "mold_width label" @@ -3726,7 +3727,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "mold_width description" msgid "The minimal distance between the ouside of the mold and the outside of the model." -msgstr "" +msgstr "몰드의 바깥 쪽과 모델의 바깥 쪽 사이의 최소 거리입니다. " #: fdmprinter.def.json msgctxt "mold_roof_height label" @@ -3736,7 +3737,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "mold_roof_height description" msgid "The height above horizontal parts in your model which to print mold." -msgstr "" +msgstr "모델의 수평 부분 위의 높이로 금형을 인쇄합니다. " #: fdmprinter.def.json msgctxt "mold_angle label" @@ -3746,7 +3747,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "mold_angle description" msgid "The angle of overhang of the outer walls created for the mold. 0° will make the outer shell of the mold vertical, while 90° will make the outside of the model follow the contour of the model." -msgstr "" +msgstr "몰드에 대해 생성 된 외벽의 돌출 각도입니다. \"0\"도의 각은 금형의 외각을 수직으로 만들고 \"90\"도의 각은 모형의 외형을 모델의 외형으로 만듭니다. " #: fdmprinter.def.json msgctxt "support_mesh label" @@ -3756,7 +3757,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_mesh description" msgid "Use this mesh to specify support areas. This can be used to generate support structure." -msgstr "" +msgstr "본 메시를 사용하여 지원 영역을 지정하십시오. 이것은 지원 구조를 생성하는 데 사용할 수 있습니다. " #: fdmprinter.def.json msgctxt "support_mesh_drop_down label" @@ -3766,7 +3767,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_mesh_drop_down description" msgid "Make support everywhere below the support mesh, so that there's no overhang in the support mesh." -msgstr "" +msgstr "지지 메쉬 아래의 모든 부분을 지원하여지지 메쉬에 돌출이 없어야 합니다. " #: fdmprinter.def.json msgctxt "anti_overhang_mesh label" @@ -3776,7 +3777,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "anti_overhang_mesh description" msgid "Use this mesh to specify where no part of the model should be detected as overhang. This can be used to remove unwanted support structure." -msgstr "" +msgstr "본 메쉬를 사용하여 모델에서 돌출부로 감지 할 부분을 지정합니다. 이것은 원하지 않는 지원 구조를 제거하는 데 사용될 수 있습니다. " #: fdmprinter.def.json msgctxt "magic_mesh_surface_mode label" @@ -3786,7 +3787,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "magic_mesh_surface_mode description" msgid "Treat the model as a surface only, a volume, or volumes with loose surfaces. The normal print mode only prints enclosed volumes. \"Surface\" prints a single wall tracing the mesh surface with no infill and no top/bottom skin. \"Both\" prints enclosed volumes like normal and any remaining polygons as surfaces." -msgstr "" +msgstr "모델을 표면 만, 볼륨 또는 느슨한 표면이있는 볼륨으로 취급하십시오. 일반 인쇄 모드는 동봉 된 볼륨 만 인쇄합니다. \"표면\"은 아무런 충전물없이 상단 / 하단 스킨없이 메쉬 표면을 추적하는 단일 벽을 인쇄합니다. \"둘 다\"는 정상 및 나머지 폴리곤과 같은 닫힌 볼륨을 서피스로 인쇄합니다. " #: fdmprinter.def.json msgctxt "magic_mesh_surface_mode option normal" @@ -3811,7 +3812,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "magic_spiralize description" msgid "Spiralize smooths out the Z move of the outer edge. This will create a steady Z increase over the whole print. This feature turns a solid model into a single walled print with a solid bottom. This feature should only be enabled when each layer only contains a single part." -msgstr "" +msgstr "스파이럴 라이즈는 바깥 쪽 가장자리의 Z 이동을 부드럽게합니다. 이렇게하면 인쇄물 전체에 걸쳐 꾸준히 Z가 증가합니다. 이 기능은 솔리드 모델을 단단한 바닥이있는 단일 벽으로 인쇄합니다. 이 기능은 각 레이어에 단일 부품 만 포함되어있을 때만 활성화 해야 합니다. " #: fdmprinter.def.json msgctxt "smooth_spiralized_contours label" @@ -3821,7 +3822,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "smooth_spiralized_contours description" msgid "Smooth the spiralized contours to reduce the visibility of the Z seam (the Z-seam should be barely visible on the print but will still be visible in the layer view). Note that smoothing will tend to blur fine surface details." -msgstr "" +msgstr "나선형 윤곽선을 부드럽게하여 Z 솔기의 가시성을 줄이십시오 (Z- 솔기는 인쇄물에서는 거의 보이지 않지만 레이어 뷰에서는 여전히 보임). 매끄러움은 표면의 세부 묘사를 흐릿하게하는 경향이 있습니다. " #: fdmprinter.def.json msgctxt "experimental label" @@ -3831,7 +3832,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "experimental description" msgid "experimental!" -msgstr "" +msgstr "실험적인 " #: fdmprinter.def.json msgctxt "draft_shield_enabled label" @@ -3841,7 +3842,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "draft_shield_enabled description" msgid "This will create a wall around the model, which traps (hot) air and shields against exterior airflow. Especially useful for materials which warp easily." -msgstr "" +msgstr "이렇게하면 모델 주위에 벽이 생겨 외부 공기 흐름을 막아 (뜨거운) 공기와 차폐를 막을 수 있습니다. 왜곡이 쉬운 소재에 특히 유용합니다. " #: fdmprinter.def.json msgctxt "draft_shield_dist label" @@ -3851,7 +3852,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "draft_shield_dist description" msgid "Distance of the draft shield from the print, in the X/Y directions." -msgstr "" +msgstr "X / Y 방향으로 인쇄에서 드래프트 쉴드까지의 거리입니다. " #: fdmprinter.def.json msgctxt "draft_shield_height_limitation label" @@ -3861,7 +3862,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "draft_shield_height_limitation description" msgid "Set the height of the draft shield. Choose to print the draft shield at the full height of the model or at a limited height." -msgstr "" +msgstr "드래프트 쉴드의 높이를 설정하십시오. 모델의 전체 높이 또는 제한된 높이에서 드래프트 쉴드를 인쇄하도록 선택하십시오. " #: fdmprinter.def.json msgctxt "draft_shield_height_limitation option full" @@ -3881,7 +3882,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "draft_shield_height description" msgid "Height limitation of the draft shield. Above this height no draft shield will be printed." -msgstr "" +msgstr "드래프트 쉴드의 높이 제한. 이 높이 이상에서는 드래프트 쉴드가 인쇄되지 않습니다. " #: fdmprinter.def.json msgctxt "conical_overhang_enabled label" @@ -3891,7 +3892,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "conical_overhang_enabled description" msgid "Change the geometry of the printed model such that minimal support is required. Steep overhangs will become shallow overhangs. Overhanging areas will drop down to become more vertical." -msgstr "" +msgstr "최소 지원이 필요하도록 인쇄 된 모델의 형상을 변경하십시오. 가파른 오버행은 얕은 오버행이됩니다. 오버행 영역이 더 수직으로 떨어집니다. " #: fdmprinter.def.json msgctxt "conical_overhang_angle label" @@ -3901,7 +3902,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "conical_overhang_angle description" msgid "The maximum angle of overhangs after the they have been made printable. At a value of 0° all overhangs are replaced by a piece of model connected to the build plate, 90° will not change the model in any way." -msgstr "" +msgstr "오버행 각도가 인쇄 가능하게 된 후 최대 각도. \"0\"도 각의 값에서 모든 오버행은 빌드 플레이트에 연결된 모델로 대체됩니다. \"90\"도 각은 모델을 변경하지 않습니다. " #: fdmprinter.def.json msgctxt "coasting_enable label" @@ -3911,7 +3912,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "coasting_enable description" msgid "Coasting replaces the last part of an extrusion path with a travel path. The oozed material is used to print the last piece of the extrusion path in order to reduce stringing." -msgstr "" +msgstr "코스팅(Coasting)은 돌출 경로의 마지막 부분을 이동 경로로 바꿉니다. 누출 된 재료는 스트링을 줄이기 위해 압출 경로의 마지막 부분을 인쇄하는 데 사용됩니다. " #: fdmprinter.def.json msgctxt "coasting_volume label" @@ -3921,7 +3922,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "coasting_volume description" msgid "The volume otherwise oozed. This value should generally be close to the nozzle diameter cubed." -msgstr "" +msgstr "그렇지 않으면 볼륨이 흘러 나옵니다. 이 값은 일반적으로 노즐 직경 입방체에 가깝습니다. " #: fdmprinter.def.json msgctxt "coasting_min_volume label" @@ -3931,7 +3932,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "coasting_min_volume description" msgid "The smallest volume an extrusion path should have before allowing coasting. For smaller extrusion paths, less pressure has been built up in the bowden tube and so the coasted volume is scaled linearly. This value should always be larger than the Coasting Volume." -msgstr "" +msgstr "코스팅(Coasting)을 허용하기 전에 압출 경로에 있어야하는 최소 볼륨. 작은 압출 경로의 경우 보우 덴 튜브에 가해지는 압력이 적기 때문에 연안 부피가 선형 적으로 조정됩니다. 이 값은 항상 Coasting Volume보다 커야합니다. " #: fdmprinter.def.json msgctxt "coasting_speed label" @@ -3941,7 +3942,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "coasting_speed description" msgid "The speed by which to move during coasting, relative to the speed of the extrusion path. A value slightly under 100% is advised, since during the coasting move the pressure in the bowden tube drops." -msgstr "" +msgstr "코스팅(Coasting) 시, 이동 속도. 돌출 경로의 속도에 상대적입니다. 해안 이동 중에 보우 덴 튜브의 압력이 떨어지기 때문에 100 %보다 약간 작은 값을 권합니다. " #: fdmprinter.def.json msgctxt "skin_outline_count label" @@ -3951,7 +3952,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "skin_outline_count description" msgid "Replaces the outermost part of the top/bottom pattern with a number of concentric lines. Using one or two lines improves roofs that start on infill material." -msgstr "" +msgstr "위쪽 / 아래쪽 패턴의 가장 바깥 쪽 부분을 여러 동심 선으로 바꿉니다. 하나 또는 두 개의 선을 사용하면 충진재로 시작하는 지붕이 향상됩니다. " #: fdmprinter.def.json msgctxt "skin_alternate_rotation label" @@ -3961,7 +3962,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "skin_alternate_rotation description" msgid "Alternate the direction in which the top/bottom layers are printed. Normally they are printed diagonally only. This setting adds the X-only and Y-only directions." -msgstr "" +msgstr "위쪽 / 아래쪽 레이어가 인쇄되는 방향을 바꿉니다. 보통 대각선으로 만 인쇄됩니다. 이 설정은 X 전용 및 Y 전용 방향을 추가합니다. " #: fdmprinter.def.json msgctxt "support_conical_enabled label" @@ -3971,7 +3972,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_conical_enabled description" msgid "Experimental feature: Make support areas smaller at the bottom than at the overhang." -msgstr "" +msgstr "실험적 기능 : 오버행보다 하단에서 지원 영역을 작게 만듭니다. " #: fdmprinter.def.json msgctxt "support_conical_angle label" @@ -3981,7 +3982,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_conical_angle description" msgid "The angle of the tilt of conical support. With 0 degrees being vertical, and 90 degrees being horizontal. Smaller angles cause the support to be more sturdy, but consist of more material. Negative angles cause the base of the support to be wider than the top." -msgstr "" +msgstr "원추형 지지점의 기울기 각도입니다. \"0\"도가 수직이고 \"90\"도가 수평입니다. 각도가 작 으면 지지대가 더 튼튼 해지지 만 더 많은 재질로 구성됩니다. 음수 각도는 받침대의 받침대가 상단보다 넓게 만듭니다. " #: fdmprinter.def.json msgctxt "support_conical_min_width label" @@ -3991,7 +3992,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_conical_min_width description" msgid "Minimum width to which the base of the conical support area is reduced. Small widths can lead to unstable support structures." -msgstr "" +msgstr "원추형지지 영역의베이스가 축소되는 최소 너비. 폭이 좁 으면 불안정한지지 구조가 생길 수 있습니다. " #: fdmprinter.def.json msgctxt "infill_hollow label" @@ -4001,7 +4002,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "infill_hollow description" msgid "Remove all infill and make the inside of the object eligible for support." -msgstr "" +msgstr "모든 충진재를 제거하고 물체의 내부를 지탱할 수있게하십시오. " #: fdmprinter.def.json msgctxt "magic_fuzzy_skin_enabled label" @@ -4011,7 +4012,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "magic_fuzzy_skin_enabled description" msgid "Randomly jitter while printing the outer wall, so that the surface has a rough and fuzzy look." -msgstr "" +msgstr "외벽을 인쇄하는 동안 무작위로 지터가 발생하여 표면이 거칠고 흐릿 해 보입니다. " #: fdmprinter.def.json msgctxt "magic_fuzzy_skin_thickness label" @@ -4021,7 +4022,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "magic_fuzzy_skin_thickness description" msgid "The width within which to jitter. It's advised to keep this below the outer wall width, since the inner walls are unaltered." -msgstr "" +msgstr "지터가 발생할 너비. 내벽이 변경되지 않으므로이를 외벽 너비 아래로 유지하는 것이 좋습니다. " #: fdmprinter.def.json msgctxt "magic_fuzzy_skin_point_density label" @@ -4031,7 +4032,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "magic_fuzzy_skin_point_density description" msgid "The average density of points introduced on each polygon in a layer. Note that the original points of the polygon are discarded, so a low density results in a reduction of the resolution." -msgstr "" +msgstr "레이어의 각 다각형에 도입 된 점의 평균 밀도입니다. 다각형의 원래 점은 버려지므로 밀도가 낮으면 해상도가 감소합니다. " #: fdmprinter.def.json msgctxt "magic_fuzzy_skin_point_dist label" @@ -4041,7 +4042,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "magic_fuzzy_skin_point_dist description" msgid "The average distance between the random points introduced on each line segment. Note that the original points of the polygon are discarded, so a high smoothness results in a reduction of the resolution. This value must be higher than half the Fuzzy Skin Thickness." -msgstr "" +msgstr "각 선분에 도입 된 임의의 점 사이의 평균 거리입니다. 다각형의 원래 점은 버려 지므로 높은 부드러움으로 인해 해상도가 감소합니다. 이 값은 퍼지 스킨 두께의 절반보다 커야합니다. " #: fdmprinter.def.json msgctxt "wireframe_enabled label" @@ -4051,7 +4052,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_enabled description" msgid "Print only the outside surface with a sparse webbed structure, printing 'in thin air'. This is realized by horizontally printing the contours of the model at given Z intervals which are connected via upward and diagonally downward lines." -msgstr "" +msgstr "얇은 공기 중에서 인쇄하는 스파 스 웨브 구조로 외부 표면 만 인쇄하십시오. 이것은 상향 및 대각선 방향으로 연결되어있는 주어진 Z 간격으로 모델의 윤곽을 수평으로 인쇄함으로써 실현됩니다. " #: fdmprinter.def.json msgctxt "wireframe_height label" @@ -4061,7 +4062,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_height description" msgid "The height of the upward and diagonally downward lines between two horizontal parts. This determines the overall density of the net structure. Only applies to Wire Printing." -msgstr "" +msgstr "두 개의 수평 부분 사이의 상향 및 대각선 방향의 높이입니다. 이것은 네트 구조의 전체 밀도를 결정합니다. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_roof_inset label" @@ -4071,7 +4072,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_roof_inset description" msgid "The distance covered when making a connection from a roof outline inward. Only applies to Wire Printing." -msgstr "" +msgstr "지붕에서 연결을 할 때 안쪽까지 윤곽선을 그립니다. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_printspeed label" @@ -4081,7 +4082,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_printspeed description" msgid "Speed at which the nozzle moves when extruding material. Only applies to Wire Printing." -msgstr "" +msgstr "재료를 압출 할 때 노즐이 움직이는 속도. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_printspeed_bottom label" @@ -4091,7 +4092,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_printspeed_bottom description" msgid "Speed of printing the first layer, which is the only layer touching the build platform. Only applies to Wire Printing." -msgstr "" +msgstr "빌드 플랫폼을 만지는 유일한 레이어 인 첫 번째 레이어 인쇄 속도. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_printspeed_up label" @@ -4101,7 +4102,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_printspeed_up description" msgid "Speed of printing a line upward 'in thin air'. Only applies to Wire Printing." -msgstr "" +msgstr "얇은 공기 속에서 위쪽으로 선을 인쇄하는 속도. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_printspeed_down label" @@ -4111,7 +4112,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_printspeed_down description" msgid "Speed of printing a line diagonally downward. Only applies to Wire Printing." -msgstr "" +msgstr "대각선 방향으로 선을 인쇄하는 속도. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_printspeed_flat label" @@ -4121,7 +4122,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_printspeed_flat description" msgid "Speed of printing the horizontal contours of the model. Only applies to Wire Printing." -msgstr "" +msgstr "모델의 수평 윤곽 인쇄 속도입니다. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_flow label" @@ -4131,7 +4132,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_flow description" msgid "Flow compensation: the amount of material extruded is multiplied by this value. Only applies to Wire Printing." -msgstr "" +msgstr "유량 보상 : 압출 된 재료의 양에이 값을 곱합니다. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_flow_connection label" @@ -4141,7 +4142,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_flow_connection description" msgid "Flow compensation when going up or down. Only applies to Wire Printing." -msgstr "" +msgstr "위 또는 아래로 이동할 때 유량 보정. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_flow_flat label" @@ -4151,7 +4152,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_flow_flat description" msgid "Flow compensation when printing flat lines. Only applies to Wire Printing." -msgstr "" +msgstr "평평한 선을 인쇄 할 때 유량 보정. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_top_delay label" @@ -4161,7 +4162,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_top_delay description" msgid "Delay time after an upward move, so that the upward line can harden. Only applies to Wire Printing." -msgstr "" +msgstr "상향 라인이 강화 될 수 있도록 상향 이동 후 지연 시간. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_bottom_delay label" @@ -4171,7 +4172,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_bottom_delay description" msgid "Delay time after a downward move. Only applies to Wire Printing." -msgstr "" +msgstr "하강 후 지연 시간. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_flat_delay label" @@ -4181,7 +4182,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_flat_delay description" msgid "Delay time between two horizontal segments. Introducing such a delay can cause better adhesion to previous layers at the connection points, while too long delays cause sagging. Only applies to Wire Printing." -msgstr "" +msgstr "두 개의 수평 세그먼트 사이의 지연 시간. 이러한 지연을 도입하면 연결 지점에서 이전 레이어와의 접착력이 향상 될 수 있으며 너무 긴 지연으로 인해 처짐이 발생할 수 있습니다. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_up_half_speed label" @@ -4193,7 +4194,7 @@ msgctxt "wireframe_up_half_speed description" msgid "" "Distance of an upward move which is extruded with half speed.\n" "This can cause better adhesion to previous layers, while not heating the material in those layers too much. Only applies to Wire Printing." -msgstr "" +msgstr "기본 속도의 반으로 돌출 된 상향 이동 거리. 이로 인해 이전 레이어에 더 나은 접착력을 유발할 수 있지만 레이어에있는 소재는 너무 많이 가열하지 않습니다. 와이어 인쇄에만 적용됩니다." #: fdmprinter.def.json msgctxt "wireframe_top_jump label" @@ -4203,7 +4204,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_top_jump description" msgid "Creates a small knot at the top of an upward line, so that the consecutive horizontal layer has a better chance to connect to it. Only applies to Wire Printing." -msgstr "" +msgstr "상향 선의 상단에 작은 매듭을 만들어 연속적인 수평 레이어에 연결할 수있는 기회를 얻습니다. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_fall_down label" @@ -4213,7 +4214,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_fall_down description" msgid "Distance with which the material falls down after an upward extrusion. This distance is compensated for. Only applies to Wire Printing." -msgstr "" +msgstr "위쪽으로 밀어 낸 후 재료가 떨어지는 거리. 이 거리는 보상됩니다. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_drag_along label" @@ -4223,7 +4224,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_drag_along description" msgid "Distance with which the material of an upward extrusion is dragged along with the diagonally downward extrusion. This distance is compensated for. Only applies to Wire Printing." -msgstr "" +msgstr "대각선 방향으로 돌출 된 돌출부의 재료가 위쪽으로 밀어내는 거리. 이 거리는 보상됩니다. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_strategy label" @@ -4233,7 +4234,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_strategy description" msgid "Strategy for making sure two consecutive layers connect at each connection point. Retraction lets the upward lines harden in the right position, but may cause filament grinding. A knot can be made at the end of an upward line to heighten the chance of connecting to it and to let the line cool; however, it may require slow printing speeds. Another strategy is to compensate for the sagging of the top of an upward line; however, the lines won't always fall down as predicted." -msgstr "" +msgstr "각 연결 지점에서 두 개의 연속 된 레이어가 연결되도록하는 전략입니다. 후퇴를하면 상향 선이 올바른 위치에서 경화되지만 필라멘트 연삭이 발생할 수 있습니다. 상향 선의 끝에 매듭을 만들어 연결 기회를 높이고 선을 차게 할 수 있습니다. 그러나 느린 인쇄 속도가 필요할 수 있습니다. 또 다른 전략은 상향 라인의 윗부분의 처짐을 보충하는 것입니다. 그러나 선은 항상 예측대로 떨어지지는 않습니다. " #: fdmprinter.def.json msgctxt "wireframe_strategy option compensate" @@ -4258,7 +4259,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_straight_before_down description" msgid "Percentage of a diagonally downward line which is covered by a horizontal line piece. This can prevent sagging of the top most point of upward lines. Only applies to Wire Printing." -msgstr "" +msgstr "수평선 조각에 의해 덮여있는 비스듬히 하향 선의 백분율. 이렇게하면 상향 선의 맨 위 지점이 처지는 것을 방지 할 수 있습니다. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_roof_fall_down label" @@ -4268,7 +4269,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_roof_fall_down description" msgid "The distance which horizontal roof lines printed 'in thin air' fall down when being printed. This distance is compensated for. Only applies to Wire Printing." -msgstr "" +msgstr "수평 지붕 라인이 '얇은 공기 안에'인쇄 된 거리는 인쇄 될 때 떨어집니다. 이 거리는 보상됩니다. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_roof_drag_along label" @@ -4278,7 +4279,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_roof_drag_along description" msgid "The distance of the end piece of an inward line which gets dragged along when going back to the outer outline of the roof. This distance is compensated for. Only applies to Wire Printing." -msgstr "" +msgstr "루프의 외곽 윤곽으로 돌아갈 때 끌린 내향 선의 끝 부분 거리. 이 거리는 보상됩니다. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_roof_outer_delay label" @@ -4288,7 +4289,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_roof_outer_delay description" msgid "Time spent at the outer perimeters of hole which is to become a roof. Longer times can ensure a better connection. Only applies to Wire Printing." -msgstr "" +msgstr "지붕이 될 구멍의 바깥 둘레에서 보낸 시간. 긴 시간은 더 나은 연결을 보장 할 수 있습니다. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_nozzle_clearance label" @@ -4298,7 +4299,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_nozzle_clearance description" msgid "Distance between the nozzle and horizontally downward lines. Larger clearance results in diagonally downward lines with a less steep angle, which in turn results in less upward connections with the next layer. Only applies to Wire Printing." -msgstr "" +msgstr "노즐과 수평 아래쪽 라인 사이의 거리. 클리어런스가 클수록 비스듬한 각도에서 비스듬히 아래쪽으로 선이 그어져 다음 층과의 연결이보다 적어집니다. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "command_line_settings label" @@ -4308,7 +4309,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "command_line_settings description" msgid "Settings which are only used if CuraEngine isn't called from the Cura frontend." -msgstr "" +msgstr "큐라(Cura) 프론트 엔드에서 큐라엔진(CuraEngine)이 호출되지 않은 경우에만 사용되는 설정입니다. " #: fdmprinter.def.json msgctxt "center_object label" @@ -4318,7 +4319,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "center_object description" msgid "Whether to center the object on the middle of the build platform (0,0), instead of using the coordinate system in which the object was saved." -msgstr "" +msgstr "객체가 저장된 좌표계를 사용하는 대신 빌드 플랫폼 중간, (0,0)에 객체를 중심에 맞출어야 할지의 여부 " #: fdmprinter.def.json msgctxt "mesh_position_x label" @@ -4328,7 +4329,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "mesh_position_x description" msgid "Offset applied to the object in the x direction." -msgstr "" +msgstr "x 방향으로 객체에 적용된 오프셋입니다. " #: fdmprinter.def.json msgctxt "mesh_position_y label" @@ -4338,7 +4339,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "mesh_position_y description" msgid "Offset applied to the object in the y direction." -msgstr "" +msgstr "y 방향으로 객체에 적용된 오프셋입니다. " #: fdmprinter.def.json msgctxt "mesh_position_z label" @@ -4348,7 +4349,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "mesh_position_z description" msgid "Offset applied to the object in the z direction. With this you can perform what was used to be called 'Object Sink'." -msgstr "" +msgstr "z 방향으로 객체에 적용된 오프셋입니다. 이것을 사용하여 '오프젝 싱크(Object Sink)'라고 불렀던 것을 수행 할 수 있습니다. " #: fdmprinter.def.json msgctxt "mesh_rotation_matrix label" @@ -4358,4 +4359,4 @@ msgstr "" #: fdmprinter.def.json msgctxt "mesh_rotation_matrix description" msgid "Transformation matrix to be applied to the model when loading it from file." -msgstr "" +msgstr "파일로부터 로드 하는 경유, 모델에 적용될 변환 행렬입니다. " From 8c9d051479df024a34c4b6c57c8a5885ca55a8e9 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 23 Jun 2017 16:42:47 +0200 Subject: [PATCH 59/72] Re-enable Korean translations They are complete now, as far as we agreed on (only the setting descriptions). They may now be re-enabled. Contributes to issue CURA-3950. --- resources/qml/Preferences/GeneralPage.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Preferences/GeneralPage.qml b/resources/qml/Preferences/GeneralPage.qml index 4abb7942bc..7168aa78a8 100755 --- a/resources/qml/Preferences/GeneralPage.qml +++ b/resources/qml/Preferences/GeneralPage.qml @@ -153,7 +153,7 @@ UM.PreferencesPage append({ text: "Français", code: "fr" }) append({ text: "Italiano", code: "it" }) append({ text: "日本語", code: "jp" }) - //append({ text: "한국어", code: "ko" }) + append({ text: "한국어", code: "ko" }) append({ text: "Nederlands", code: "nl" }) append({ text: "Português do Brasil", code: "ptbr" }) append({ text: "Русский", code: "ru" }) From 7386b0bcedb6b07188f929207a928ef380e35f4b Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 23 Jun 2017 16:50:36 +0200 Subject: [PATCH 60/72] Remove translation for Material category It looks very wierd to have the Material category label translated but not the rest of the categories. I don't know the proper translations for the rest, so I must remove this one. The label is left intact though. Contributes to issue CURA-3950. --- resources/i18n/ko/fdmprinter.def.json.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/i18n/ko/fdmprinter.def.json.po b/resources/i18n/ko/fdmprinter.def.json.po index bf3fb5159c..d430226aa4 100644 --- a/resources/i18n/ko/fdmprinter.def.json.po +++ b/resources/i18n/ko/fdmprinter.def.json.po @@ -1325,7 +1325,7 @@ msgstr "이보다 좁은 스킨 영역은 확장되지 않습니다. 이렇게 #: fdmprinter.def.json msgctxt "material label" msgid "Material" -msgstr "재료 " +msgstr "" #: fdmprinter.def.json msgctxt "material description" From 49e53c2cda41986a1b0fa204a7b2dc30617c51dd Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Fri, 23 Jun 2017 17:25:53 +0200 Subject: [PATCH 61/72] Revert "dark layer view" This reverts commit 67a4ec2a9e56ba6df31fa06efe49a69aa1b2d20f. --- resources/themes/cura-dark/theme.json | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/resources/themes/cura-dark/theme.json b/resources/themes/cura-dark/theme.json index 89f12cc772..5855b59d04 100644 --- a/resources/themes/cura-dark/theme.json +++ b/resources/themes/cura-dark/theme.json @@ -181,19 +181,6 @@ "convex_hull": [35, 35, 35, 127], "disallowed_area": [0, 0, 0, 40], - "error_area": [255, 0, 0, 127], - - "layerview_ghost": [32, 32, 32, 96], - "layerview_none": [255, 255, 255, 255], - "layerview_inset_0": [155, 0, 0, 255], - "layerview_inset_x": [0, 155, 0, 255], - "layerview_skin": [155, 155, 0, 255], - "layerview_support": [0, 155, 155, 255], - "layerview_skirt": [0, 155, 155, 255], - "layerview_infill": [155, 117, 0, 255], - "layerview_support_infill": [0, 155, 155, 255], - "layerview_move_combing": [0, 0, 155, 255], - "layerview_move_retraction": [77, 77, 155, 255], - "layerview_support_interface": [39, 117, 155, 255] + "error_area": [255, 0, 0, 127] } } From f7a1c8dbb20243fb465fb84be8726b6bc6a4810e Mon Sep 17 00:00:00 2001 From: Cyrille Meichel Date: Mon, 26 Jun 2017 01:02:52 +0200 Subject: [PATCH 62/72] Add DiscoEasy printer (dagoma.fr) --- .../definitions/dagoma_discoeasy200.def.json | 60 ++++++++++++++++++ resources/meshes/discoeasy200.stl | Bin 0 -> 1751784 bytes 2 files changed, 60 insertions(+) create mode 100755 resources/definitions/dagoma_discoeasy200.def.json create mode 100644 resources/meshes/discoeasy200.stl diff --git a/resources/definitions/dagoma_discoeasy200.def.json b/resources/definitions/dagoma_discoeasy200.def.json new file mode 100755 index 0000000000..cc0dca2918 --- /dev/null +++ b/resources/definitions/dagoma_discoeasy200.def.json @@ -0,0 +1,60 @@ +{ + "id": "Dagoma_discoeasy200", + "name": "Dagoma DiscoEasy200", + "version": 2, + "inherits": "fdmprinter", + "metadata": { + "visible": true, + "author": "Dagoma", + "manufacturer": "Dagoma", + "category": "Other", + "file_formats": "text/x-gcode", + "icon": "icon_ultimaker2.png", + "platform": "discoeasy200.stl", + "platform_offset": [ 105, -59, 280] + }, + "overrides": { + "machine_width": { + "default_value": 211 + }, + "machine_height": { + "default_value": 205 + }, + "machine_depth": { + "default_value": 211 + }, + "machine_center_is_zero": { + "default_value": false + }, + "machine_nozzle_size": { + "default_value": 0.4 + }, + "machine_head_with_fans_polygon": { + "default_value": [ + [16, 37], + [16, -65], + [-16, -65], + [16, 37] + ] + }, + "machine_nozzle_gantry_distance": { + "default_value": 55 + }, + "machine_nozzle_offset_x_1": { + "default_value": 18 + }, + "machine_nozzle_offset_y_1": { + "default_value": 0 + }, + "machine_gcode_flavor": { + "default_value": "RepRap" + }, + "machine_start_gcode": { + "default_value": ";Gcode by Cura-by-dagoma for DiscoEASY200 V2.6\nG90 ;absolute positioning\nM106 S250 ;fan on for the palpeur\nG28 X Y\nG1 X50\nM109 S180\nG28\nM104 S{print_temperature}\n;Activation palpeur\n;bloc palpeur\nG29 ;Auto level\nM107 ;start with the fan off\nG1 X100 Y20 F3000\nG1 Z0.5\nM109 S{print_temperature}\nM140 S{material_bed_temperature}\nM82 ;set extruder to absolute mode\nG92 E0 ;zero the extruded length\nG1 F200 E10 ;extrude 10mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 Z3\nG1 F3000\n" + }, + "machine_end_gcode": { + "default_value": "\nM104 S0\nM106 S255 ;start fan full power\nM140 S0 ;heated bed heater off (if you have it)\n;Home machine\nG91 ;relative positioning\nG1 E-1 F{retraction_speed} ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+3 F3000 ;move Z up a bit and retract filament even more\nG90\nG28 X Y\n;Ventilation forcee\nM107 ;stop fan\n;Shut down motor\nM84 ;shut down motors\n" + } + } +} + diff --git a/resources/meshes/discoeasy200.stl b/resources/meshes/discoeasy200.stl new file mode 100644 index 0000000000000000000000000000000000000000..f23051230327be45b412989dd3fa9e27d92b3ab8 GIT binary patch literal 1751784 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�Bw`flj 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�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�JPFq?j)Wlo;-}D~m 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%0AX?`*y=PfJ(SY=7d1y|MD^d&?bd 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

XT#%{V%q+7Es*EgfVb#~ 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 Wf6x4HP5VDF>;ErUv-q#pwEqtq*k*44 literal 0 HcmV?d00001 From 6d6fec46b2103b1b79741e9dfa6926989cd55d79 Mon Sep 17 00:00:00 2001 From: Mark Burton Date: Mon, 26 Jun 2017 08:18:12 +0100 Subject: [PATCH 63/72] In geometry41core, take the line width/depth from the second vertex rather than the first. This change fixes a problem where a sequence of lines that have different widths are displayed with the widths shifted by 1, i.e. line 1 had the width of line 2 and so on. --- plugins/LayerView/layers3d.shader | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/LayerView/layers3d.shader b/plugins/LayerView/layers3d.shader index 6f5e986eec..e8fe425c70 100755 --- a/plugins/LayerView/layers3d.shader +++ b/plugins/LayerView/layers3d.shader @@ -130,9 +130,9 @@ geometry41core = // fixed size for movements size_x = 0.05; } else { - size_x = v_line_dim[0].x / 2 + 0.01; // radius, and make it nicely overlapping + size_x = v_line_dim[1].x / 2 + 0.01; // radius, and make it nicely overlapping } - size_y = v_line_dim[0].y / 2 + 0.01; + size_y = v_line_dim[1].y / 2 + 0.01; g_vertex_delta = gl_in[1].gl_Position - gl_in[0].gl_Position; g_vertex_normal_horz_head = normalize(vec3(-g_vertex_delta.x, -g_vertex_delta.y, -g_vertex_delta.z)); From 35e0d1e607096418487876e228e0b6ef77c3b6d4 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 26 Jun 2017 09:24:44 +0200 Subject: [PATCH 64/72] Add entry for new materials in 2.6.1 Contributes to issue CURA-3960. --- plugins/ChangeLogPlugin/ChangeLog.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugins/ChangeLogPlugin/ChangeLog.txt b/plugins/ChangeLogPlugin/ChangeLog.txt index 36ac5d3424..b7ed1e8da0 100755 --- a/plugins/ChangeLogPlugin/ChangeLog.txt +++ b/plugins/ChangeLogPlugin/ChangeLog.txt @@ -1,3 +1,7 @@ +[2.6.1] +*New profiles +The Polypropylene material is added and supported with the Ultimaker 3. Support for CPE+ and PC with 0.8mm nozzles is added as well. + [2.6.0] *Cura versions Cura 2.6 has local version folders, which means the new version won’t overwrite the existing configuration and profiles from older versions, but can create a new folder instead. You can now safely check out new beta versions and, if necessary, start up an older version without the danger of losing your profiles. From 9cc2b0fc82044c5192bdc799b92c94cdae6d8b25 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 26 Jun 2017 09:55:52 +0200 Subject: [PATCH 65/72] Fix link to material name The material was named generic_polypropylene, not generic_pp. Contributes to issue CURA-3960. --- resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg index 8de84ae586..3d508e334f 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker3 [metadata] type = quality quality_type = draft -material = generic_pp_ultimaker3_AA_0.4 +material = generic_polypropylene_ultimaker3_AA_0.4 weight = -2 setting_version = 1 diff --git a/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg index 81e018a742..264299f20d 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker3 [metadata] type = quality quality_type = fast -material = generic_pp_ultimaker3_AA_0.4 +material = generic_polypropylene_ultimaker3_AA_0.4 weight = -1 setting_version = 1 diff --git a/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg index 62cc558ff6..d70eddf2a7 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker3 [metadata] type = quality quality_type = normal -material = generic_pp_ultimaker3_AA_0.4 +material = generic_polypropylene_ultimaker3_AA_0.4 weight = 0 setting_version = 1 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg index a9ad0a58bd..661ac6c2ad 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker3 [metadata] type = quality quality_type = draft -material = generic_pp_ultimaker3_AA_0.8 +material = generic_polypropylene_ultimaker3_AA_0.8 weight = -2 setting_version = 1 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg index 74ab389d56..cd2d5bd3db 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker3 [metadata] type = quality quality_type = superdraft -material = generic_pp_ultimaker3_AA_0.8 +material = generic_polypropylene_ultimaker3_AA_0.8 weight = -4 setting_version = 1 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg index f51e116cac..0610b606fd 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker3 [metadata] type = quality quality_type = verydraft -material = generic_pp_ultimaker3_AA_0.8 +material = generic_polypropylene_ultimaker3_AA_0.8 weight = -3 setting_version = 1 From ffd17664d05e1c36ce88abc876b15d6e8e677fae Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 26 Jun 2017 11:49:18 +0200 Subject: [PATCH 66/72] Fixed names of 2 pp profiles CURA-3960 --- resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg index b1194693ac..d3a6dc3b2f 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg @@ -1,6 +1,6 @@ [general] version = 2 -name = Fast +name = Normal definition = ultimaker2_plus [metadata] diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg index 039f24bfe0..42745b51f8 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg @@ -1,6 +1,6 @@ [general] version = 2 -name = Fast Print +name = Fast definition = ultimaker2_plus [metadata] From bc65cc1102cc9d702d31f36d5a481e8546608e13 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 26 Jun 2017 12:49:31 +0200 Subject: [PATCH 67/72] Fix code style CURA-3930 --- plugins/CuraEngineBackend/StartSliceJob.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index bb834324a8..fdbee36a57 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -234,7 +234,7 @@ class StartSliceJob(Job): for key in stack.getAllKeys(): # Do not send settings that are not settable_per_extruder. - if stack.getProperty(key, "settable_per_extruder") == False: + if not stack.getProperty(key, "settable_per_extruder"): continue setting = message.getMessage("settings").addRepeatedMessage("settings") setting.name = key From edee53b0b16950436878cc0be994744b9e943ae4 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 26 Jun 2017 13:00:59 +0200 Subject: [PATCH 68/72] Scroll setting with active focus into view --- resources/qml/Settings/SettingCategory.qml | 24 ++++++++++++++++--- resources/qml/Settings/SettingCheckBox.qml | 8 +++++++ resources/qml/Settings/SettingComboBox.qml | 14 ++++++++++- resources/qml/Settings/SettingExtruder.qml | 8 +++++++ resources/qml/Settings/SettingItem.qml | 5 ++-- .../qml/Settings/SettingOptionalExtruder.qml | 8 +++++++ resources/qml/Settings/SettingTextField.qml | 8 +++++++ resources/qml/Settings/SettingView.qml | 4 ++++ 8 files changed, 73 insertions(+), 6 deletions(-) diff --git a/resources/qml/Settings/SettingCategory.qml b/resources/qml/Settings/SettingCategory.qml index 75514e7c1b..6220d6429e 100644 --- a/resources/qml/Settings/SettingCategory.qml +++ b/resources/qml/Settings/SettingCategory.qml @@ -14,10 +14,11 @@ Button { style: UM.Theme.styles.sidebar_category; - signal showTooltip(string text); - signal hideTooltip(); + signal showTooltip(string text) + signal hideTooltip() signal contextMenuRequested() signal showAllHiddenInheritedSettings(string category_id) + signal focusReceived() text: definition.label iconSource: UM.Theme.getIcon(definition.icon) @@ -25,7 +26,24 @@ Button { checkable: true checked: definition.expanded - onClicked: { forceActiveFocus(); definition.expanded ? settingDefinitionsModel.collapse(definition.key) : settingDefinitionsModel.expandAll(definition.key) } + onClicked: + { + forceActiveFocus(); + if(definition.expanded) + { + settingDefinitionsModel.collapse(definition.key); + } else { + settingDefinitionsModel.expandAll(definition.key); + } + } + onActiveFocusChanged: + { + if(activeFocus) + { + base.focusReceived(); + } + } + UM.SimpleButton { id: settingsButton diff --git a/resources/qml/Settings/SettingCheckBox.qml b/resources/qml/Settings/SettingCheckBox.qml index 07b1f865be..8f21e19713 100644 --- a/resources/qml/Settings/SettingCheckBox.qml +++ b/resources/qml/Settings/SettingCheckBox.qml @@ -62,6 +62,14 @@ SettingItem propertyProvider.setPropertyValue("value", !checked); } + onActiveFocusChanged: + { + if(activeFocus) + { + base.focusReceived(); + } + } + Rectangle { anchors diff --git a/resources/qml/Settings/SettingComboBox.qml b/resources/qml/Settings/SettingComboBox.qml index 4c14d2032b..5d1cc287b3 100644 --- a/resources/qml/Settings/SettingComboBox.qml +++ b/resources/qml/Settings/SettingComboBox.qml @@ -94,7 +94,19 @@ SettingItem } } - onActivated: { forceActiveFocus(); propertyProvider.setPropertyValue("value", definition.options[index].key) } + onActivated: + { + forceActiveFocus(); + propertyProvider.setPropertyValue("value", definition.options[index].key); + } + + onActiveFocusChanged: + { + if(activeFocus) + { + base.focusReceived(); + } + } Binding { diff --git a/resources/qml/Settings/SettingExtruder.qml b/resources/qml/Settings/SettingExtruder.qml index b00b6774be..f4b85bdd99 100644 --- a/resources/qml/Settings/SettingExtruder.qml +++ b/resources/qml/Settings/SettingExtruder.qml @@ -27,6 +27,14 @@ SettingItem propertyProvider.setPropertyValue("value", model.getItem(index).index); } + onActiveFocusChanged: + { + if(activeFocus) + { + base.focusReceived(); + } + } + currentIndex: propertyProvider.properties.value MouseArea diff --git a/resources/qml/Settings/SettingItem.qml b/resources/qml/Settings/SettingItem.qml index 7108d2a04c..dca8f63076 100644 --- a/resources/qml/Settings/SettingItem.qml +++ b/resources/qml/Settings/SettingItem.qml @@ -32,9 +32,10 @@ Item { property var stackLevels: propertyProvider.stackLevels property var stackLevel: stackLevels[0] + signal focusReceived() signal contextMenuRequested() - signal showTooltip(string text); - signal hideTooltip(); + signal showTooltip(string text) + signal hideTooltip() signal showAllHiddenInheritedSettings(string category_id) property string tooltipText: { diff --git a/resources/qml/Settings/SettingOptionalExtruder.qml b/resources/qml/Settings/SettingOptionalExtruder.qml index e2ca20571c..f7f86a77c0 100644 --- a/resources/qml/Settings/SettingOptionalExtruder.qml +++ b/resources/qml/Settings/SettingOptionalExtruder.qml @@ -31,6 +31,14 @@ SettingItem propertyProvider.setPropertyValue("value", model.getItem(index).index); } + onActiveFocusChanged: + { + if(activeFocus) + { + base.focusReceived(); + } + } + Binding { target: control diff --git a/resources/qml/Settings/SettingTextField.qml b/resources/qml/Settings/SettingTextField.qml index b9f11ea80d..7f495aea02 100644 --- a/resources/qml/Settings/SettingTextField.qml +++ b/resources/qml/Settings/SettingTextField.qml @@ -105,6 +105,14 @@ SettingItem propertyProvider.setPropertyValue("value", text) } + onActiveFocusChanged: + { + if(activeFocus) + { + base.focusReceived(); + } + } + color: !enabled ? UM.Theme.getColor("setting_control_disabled_text") : UM.Theme.getColor("setting_control_text") font: UM.Theme.getFont("default"); diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index 7cb45ff75f..752665f2b7 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -298,6 +298,10 @@ Item } Cura.SettingInheritanceManager.manualRemoveOverride(category_id) } + onFocusReceived: + { + contents.positionViewAtIndex(index, ListView.Contain); + } } } From 8917762ed506079929de3a1ca6ebf487f5185af2 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 26 Jun 2017 13:03:28 +0200 Subject: [PATCH 69/72] Animate scrolling focussed item into view --- resources/qml/Settings/SettingView.qml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index 752665f2b7..c4477460e4 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -300,13 +300,23 @@ Item } onFocusReceived: { + animateContentY.from = contents.contentY; contents.positionViewAtIndex(index, ListView.Contain); + animateContentY.to = contents.contentY; + animateContentY.running = true; } } } UM.I18nCatalog { id: catalog; name: "cura"; } + NumberAnimation { + id: animateContentY + target: contents + property: "contentY" + duration: 50 + } + add: Transition { SequentialAnimation { NumberAnimation { properties: "height"; from: 0; duration: 100 } From 7813bfc543a9d56ecc9715d47b0cda024d3452ce Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 26 Jun 2017 13:16:14 +0200 Subject: [PATCH 70/72] No longer crash when trying to get non existing extruder stacks CURA-3953 --- cura/Settings/ExtruderManager.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cura/Settings/ExtruderManager.py b/cura/Settings/ExtruderManager.py index 3baa2f5dce..70f95caae5 100755 --- a/cura/Settings/ExtruderManager.py +++ b/cura/Settings/ExtruderManager.py @@ -78,8 +78,9 @@ class ExtruderManager(QObject): def extruderIds(self): map = {} global_stack_id = Application.getInstance().getGlobalContainerStack().getId() - for position in self._extruder_trains[global_stack_id]: - map[position] = self._extruder_trains[global_stack_id][position].getId() + if global_stack_id in self._extruder_trains: + for position in self._extruder_trains[global_stack_id]: + map[position] = self._extruder_trains[global_stack_id][position].getId() return map @pyqtSlot(str, result = str) From 0f9cfa0304474cce481316ddfa2b4ab4cad2b5b8 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 26 Jun 2017 14:35:37 +0200 Subject: [PATCH 71/72] Fix tab order after expanding categories or using search This reimplements the behavior of pressing tab/backtab to force the correct order of items in the listview. --- resources/qml/Settings/SettingCategory.qml | 12 ++++++++ resources/qml/Settings/SettingCheckBox.qml | 11 ++++++- resources/qml/Settings/SettingComboBox.qml | 10 +++++++ resources/qml/Settings/SettingExtruder.qml | 10 +++++++ resources/qml/Settings/SettingItem.qml | 1 + .../qml/Settings/SettingOptionalExtruder.qml | 10 +++++++ resources/qml/Settings/SettingTextField.qml | 11 ++++++- resources/qml/Settings/SettingView.qml | 30 +++++++++++++++++++ 8 files changed, 93 insertions(+), 2 deletions(-) diff --git a/resources/qml/Settings/SettingCategory.qml b/resources/qml/Settings/SettingCategory.qml index 6220d6429e..e8c0983398 100644 --- a/resources/qml/Settings/SettingCategory.qml +++ b/resources/qml/Settings/SettingCategory.qml @@ -19,6 +19,9 @@ Button { signal contextMenuRequested() signal showAllHiddenInheritedSettings(string category_id) signal focusReceived() + signal setActiveFocusToNextSetting(bool forward) + + property var focusItem: base text: definition.label iconSource: UM.Theme.getIcon(definition.icon) @@ -44,6 +47,15 @@ Button { } } + Keys.onTabPressed: + { + base.setActiveFocusToNextSetting(true) + } + Keys.onBacktabPressed: + { + base.setActiveFocusToNextSetting(false) + } + UM.SimpleButton { id: settingsButton diff --git a/resources/qml/Settings/SettingCheckBox.qml b/resources/qml/Settings/SettingCheckBox.qml index 8f21e19713..4ef7f59a77 100644 --- a/resources/qml/Settings/SettingCheckBox.qml +++ b/resources/qml/Settings/SettingCheckBox.qml @@ -11,13 +11,13 @@ import UM 1.2 as UM SettingItem { id: base + property var focusItem: control contents: MouseArea { id: control anchors.fill: parent hoverEnabled: true - activeFocusOnTab: true property bool checked: { @@ -62,6 +62,15 @@ SettingItem propertyProvider.setPropertyValue("value", !checked); } + Keys.onTabPressed: + { + base.setActiveFocusToNextSetting(true) + } + Keys.onBacktabPressed: + { + base.setActiveFocusToNextSetting(false) + } + onActiveFocusChanged: { if(activeFocus) diff --git a/resources/qml/Settings/SettingComboBox.qml b/resources/qml/Settings/SettingComboBox.qml index 5d1cc287b3..c29ac123d6 100644 --- a/resources/qml/Settings/SettingComboBox.qml +++ b/resources/qml/Settings/SettingComboBox.qml @@ -10,6 +10,7 @@ import UM 1.1 as UM SettingItem { id: base + property var focusItem: control contents: ComboBox { @@ -108,6 +109,15 @@ SettingItem } } + Keys.onTabPressed: + { + base.setActiveFocusToNextSetting(true) + } + Keys.onBacktabPressed: + { + base.setActiveFocusToNextSetting(false) + } + Binding { target: control diff --git a/resources/qml/Settings/SettingExtruder.qml b/resources/qml/Settings/SettingExtruder.qml index f4b85bdd99..15496eaa8b 100644 --- a/resources/qml/Settings/SettingExtruder.qml +++ b/resources/qml/Settings/SettingExtruder.qml @@ -11,6 +11,7 @@ import Cura 1.0 as Cura SettingItem { id: base + property var focusItem: control contents: ComboBox { @@ -35,6 +36,15 @@ SettingItem } } + Keys.onTabPressed: + { + base.setActiveFocusToNextSetting(true) + } + Keys.onBacktabPressed: + { + base.setActiveFocusToNextSetting(false) + } + currentIndex: propertyProvider.properties.value MouseArea diff --git a/resources/qml/Settings/SettingItem.qml b/resources/qml/Settings/SettingItem.qml index dca8f63076..112edb5049 100644 --- a/resources/qml/Settings/SettingItem.qml +++ b/resources/qml/Settings/SettingItem.qml @@ -33,6 +33,7 @@ Item { property var stackLevel: stackLevels[0] signal focusReceived() + signal setActiveFocusToNextSetting(bool forward) signal contextMenuRequested() signal showTooltip(string text) signal hideTooltip() diff --git a/resources/qml/Settings/SettingOptionalExtruder.qml b/resources/qml/Settings/SettingOptionalExtruder.qml index f7f86a77c0..0fd36564a1 100644 --- a/resources/qml/Settings/SettingOptionalExtruder.qml +++ b/resources/qml/Settings/SettingOptionalExtruder.qml @@ -11,6 +11,7 @@ import Cura 1.0 as Cura SettingItem { id: base + property var focusItem: control contents: ComboBox { @@ -39,6 +40,15 @@ SettingItem } } + Keys.onTabPressed: + { + base.setActiveFocusToNextSetting(true) + } + Keys.onBacktabPressed: + { + base.setActiveFocusToNextSetting(false) + } + Binding { target: control diff --git a/resources/qml/Settings/SettingTextField.qml b/resources/qml/Settings/SettingTextField.qml index 7f495aea02..2991c24d57 100644 --- a/resources/qml/Settings/SettingTextField.qml +++ b/resources/qml/Settings/SettingTextField.qml @@ -9,6 +9,7 @@ import UM 1.1 as UM SettingItem { id: base + property var focusItem: input contents: Rectangle { @@ -93,7 +94,15 @@ SettingItem right: parent.right verticalCenter: parent.verticalCenter } - activeFocusOnTab: true + + Keys.onTabPressed: + { + base.setActiveFocusToNextSetting(true) + } + Keys.onBacktabPressed: + { + base.setActiveFocusToNextSetting(false) + } Keys.onReleased: { diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index c4477460e4..06e53cc03b 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -168,6 +168,8 @@ Item onVisibilityChanged: Cura.SettingInheritanceManager.forceUpdate() } + property var indexWithFocus: -1 + delegate: Loader { id: delegate @@ -300,11 +302,39 @@ Item } onFocusReceived: { + contents.indexWithFocus = index; animateContentY.from = contents.contentY; contents.positionViewAtIndex(index, ListView.Contain); animateContentY.to = contents.contentY; animateContentY.running = true; } + onSetActiveFocusToNextSetting: + { + if(forward == undefined || forward) + { + contents.currentIndex = contents.indexWithFocus + 1; + while(contents.currentItem && contents.currentItem.height <= 0) + { + contents.currentIndex++; + } + if(contents.currentItem) + { + contents.currentItem.item.focusItem.forceActiveFocus(); + } + } + else + { + contents.currentIndex = contents.indexWithFocus - 1; + while(contents.currentItem && contents.currentItem.height <= 0) + { + contents.currentIndex--; + } + if(contents.currentItem) + { + contents.currentItem.item.focusItem.forceActiveFocus(); + } + } + } } } From 568b0c2285b76a00ebc7f761469260957c03c527 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 26 Jun 2017 15:02:24 +0200 Subject: [PATCH 72/72] Changed start code of Dagoma printer to indicate it's created by cura. Originally it said it was created by Cura-by-dagoma, which is not the case. CURA-3966 --- resources/definitions/dagoma_discoeasy200.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/dagoma_discoeasy200.def.json b/resources/definitions/dagoma_discoeasy200.def.json index cc0dca2918..3408c917a6 100755 --- a/resources/definitions/dagoma_discoeasy200.def.json +++ b/resources/definitions/dagoma_discoeasy200.def.json @@ -50,7 +50,7 @@ "default_value": "RepRap" }, "machine_start_gcode": { - "default_value": ";Gcode by Cura-by-dagoma for DiscoEASY200 V2.6\nG90 ;absolute positioning\nM106 S250 ;fan on for the palpeur\nG28 X Y\nG1 X50\nM109 S180\nG28\nM104 S{print_temperature}\n;Activation palpeur\n;bloc palpeur\nG29 ;Auto level\nM107 ;start with the fan off\nG1 X100 Y20 F3000\nG1 Z0.5\nM109 S{print_temperature}\nM140 S{material_bed_temperature}\nM82 ;set extruder to absolute mode\nG92 E0 ;zero the extruded length\nG1 F200 E10 ;extrude 10mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 Z3\nG1 F3000\n" + "default_value": ";Gcode by Cura\nG90 ;absolute positioning\nM106 S250 ;fan on for the palpeur\nG28 X Y\nG1 X50\nM109 S180\nG28\nM104 S{print_temperature}\n;Activation palpeur\n;bloc palpeur\nG29 ;Auto level\nM107 ;start with the fan off\nG1 X100 Y20 F3000\nG1 Z0.5\nM109 S{print_temperature}\nM140 S{material_bed_temperature}\nM82 ;set extruder to absolute mode\nG92 E0 ;zero the extruded length\nG1 F200 E10 ;extrude 10mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 Z3\nG1 F3000\n" }, "machine_end_gcode": { "default_value": "\nM104 S0\nM106 S255 ;start fan full power\nM140 S0 ;heated bed heater off (if you have it)\n;Home machine\nG91 ;relative positioning\nG1 E-1 F{retraction_speed} ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+3 F3000 ;move Z up a bit and retract filament even more\nG90\nG28 X Y\n;Ventilation forcee\nM107 ;stop fan\n;Shut down motor\nM84 ;shut down motors\n"