From bc0a53c15a51c3c4f6476f41c053cccd84bef1b8 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Mon, 6 Aug 2018 10:38:21 +0200 Subject: [PATCH 01/22] JSON fix: only enable skin settings when there is skin --- resources/definitions/fdmprinter.def.json | 29 ++++++++++++++++------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index b767aac7b9..4b04e520b9 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -831,6 +831,7 @@ "default_value": 0.4, "type": "float", "value": "line_width", + "enabled": "top_layers > 0 or bottom_layers > 0", "limit_to_extruder": "top_bottom_extruder_nr", "settable_per_mesh": true }, @@ -1177,6 +1178,7 @@ "zigzag": "Zig Zag" }, "default_value": "lines", + "enabled": "top_layers > 0 or bottom_layers > 0", "limit_to_extruder": "top_bottom_extruder_nr", "settable_per_mesh": true }, @@ -1192,6 +1194,7 @@ "zigzag": "Zig Zag" }, "default_value": "lines", + "enabled": "top_layers > 0 or bottom_layers > 0", "value": "top_bottom_pattern", "limit_to_extruder": "top_bottom_extruder_nr", "settable_per_mesh": true @@ -1202,7 +1205,7 @@ "description": "Connect top/bottom skin paths where they run next to each other. For the concentric pattern enabling this setting greatly reduces the travel time, but because the connections can happend midway over infill this feature can reduce the top surface quality.", "type": "bool", "default_value": false, - "enabled": "top_bottom_pattern == 'concentric'", + "enabled": "(top_layers > 0 or bottom_layers > 0) and top_bottom_pattern == 'concentric'", "limit_to_extruder": "infill_extruder_nr", "settable_per_mesh": true }, @@ -1212,7 +1215,7 @@ "description": "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).", "type": "[int]", "default_value": "[ ]", - "enabled": "top_bottom_pattern != 'concentric'", + "enabled": "(top_layers > 0 or bottom_layers > 0) and top_bottom_pattern != 'concentric'", "limit_to_extruder": "top_bottom_extruder_nr", "settable_per_mesh": true }, @@ -1439,6 +1442,7 @@ "description": "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.", "type": "bool", "default_value": true, + "enabled": "top_layers > 0 or bottom_layers > 0", "limit_to_extruder": "top_bottom_extruder_nr", "settable_per_mesh": true }, @@ -1450,6 +1454,7 @@ "minimum_value": "0", "maximum_value_warning": "10", "type": "int", + "enabled": "top_layers > 0 or bottom_layers > 0", "limit_to_extruder": "top_bottom_extruder_nr", "settable_per_mesh": true }, @@ -1778,7 +1783,7 @@ "minimum_value_warning": "-50", "maximum_value_warning": "100", "value": "5 if top_bottom_pattern != 'concentric' else 0", - "enabled": "top_bottom_pattern != 'concentric'", + "enabled": "(top_layers > 0 or bottom_layers > 0) and top_bottom_pattern != 'concentric'", "limit_to_extruder": "top_bottom_extruder_nr", "settable_per_mesh": true, "children": @@ -1793,7 +1798,7 @@ "minimum_value_warning": "-0.5 * machine_nozzle_size", "maximum_value_warning": "machine_nozzle_size", "value": "0.5 * (skin_line_width + (wall_line_width_x if wall_line_count > 1 else wall_line_width_0)) * skin_overlap / 100 if top_bottom_pattern != 'concentric' else 0", - "enabled": "top_bottom_pattern != 'concentric'", + "enabled": "(top_layers > 0 or bottom_layers > 0) and top_bottom_pattern != 'concentric'", "settable_per_mesh": true } } @@ -1906,6 +1911,7 @@ "default_value": 0, "value": "wall_line_width_0 + (wall_line_count - 1) * wall_line_width_x", "minimum_value": "0", + "enabled": "top_layers > 0 or bottom_layers > 0", "limit_to_extruder": "top_bottom_extruder_nr", "settable_per_mesh": true, "children": @@ -1919,6 +1925,7 @@ "default_value": 0, "value": "skin_preshrink", "minimum_value": "0", + "enabled": "top_layers > 0 or bottom_layers > 0", "limit_to_extruder": "top_bottom_extruder_nr", "settable_per_mesh": true }, @@ -1931,6 +1938,7 @@ "default_value": 0, "value": "skin_preshrink", "minimum_value": "0", + "enabled": "top_layers > 0 or bottom_layers > 0", "limit_to_extruder": "top_bottom_extruder_nr", "settable_per_mesh": true } @@ -1946,6 +1954,7 @@ "value": "wall_line_width_0 + (wall_line_count - 1) * wall_line_width_x", "minimum_value": "-skin_preshrink", "limit_to_extruder": "top_bottom_extruder_nr", + "enabled": "top_layers > 0 or bottom_layers > 0", "settable_per_mesh": true, "children": { @@ -1958,6 +1967,7 @@ "default_value": 2.8, "value": "expand_skins_expand_distance", "minimum_value": "-top_skin_preshrink", + "enabled": "top_layers > 0 or bottom_layers > 0", "limit_to_extruder": "top_bottom_extruder_nr", "settable_per_mesh": true }, @@ -1970,6 +1980,7 @@ "default_value": 2.8, "value": "expand_skins_expand_distance", "minimum_value": "-bottom_skin_preshrink", + "enabled": "top_layers > 0 or bottom_layers > 0", "limit_to_extruder": "top_bottom_extruder_nr", "settable_per_mesh": true } @@ -1985,7 +1996,7 @@ "minimum_value_warning": "2", "maximum_value": "90", "default_value": 90, - "enabled": "top_skin_expand_distance > 0 or bottom_skin_expand_distance > 0", + "enabled": "(top_layers > 0 or bottom_layers > 0) and (top_skin_expand_distance > 0 or bottom_skin_expand_distance > 0)", "limit_to_extruder": "top_bottom_extruder_nr", "settable_per_mesh": true, "children": @@ -1999,7 +2010,7 @@ "default_value": 2.24, "value": "top_layers * layer_height / math.tan(math.radians(max_skin_angle_for_expansion))", "minimum_value": "0", - "enabled": "top_skin_expand_distance > 0 or bottom_skin_expand_distance > 0", + "enabled": "(top_layers > 0 or bottom_layers > 0) and (top_skin_expand_distance > 0 or bottom_skin_expand_distance > 0)", "limit_to_extruder": "top_bottom_extruder_nr", "settable_per_mesh": true } @@ -2548,6 +2559,7 @@ "default_value": 30, "value": "speed_print / 2", "limit_to_extruder": "top_bottom_extruder_nr", + "enabled": "top_layers > 0 or bottom_layers > 0", "settable_per_mesh": true }, "speed_support": @@ -2872,6 +2884,7 @@ "default_value": 3000, "value": "acceleration_topbottom", "enabled": "resolveOrValue('acceleration_enabled') and roofing_layer_count > 0 and top_layers > 0", + "enabled": "top_layers > 0 or bottom_layers > 0", "limit_to_extruder": "roofing_extruder_nr", "settable_per_mesh": true }, @@ -3172,7 +3185,7 @@ "maximum_value_warning": "50", "default_value": 20, "value": "jerk_print", - "enabled": "resolveOrValue('jerk_enabled')", + "enabled": "(top_layers > 0 or bottom_layers > 0) and resolveOrValue('jerk_enabled')", "limit_to_extruder": "top_bottom_extruder_nr", "settable_per_mesh": true }, @@ -5819,7 +5832,7 @@ "description": "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.", "type": "bool", "default_value": false, - "enabled": "top_bottom_pattern != 'concentric'", + "enabled": "(top_layers > 0 or bottom_layers > 0) and top_bottom_pattern != 'concentric'", "limit_to_extruder": "top_bottom_extruder_nr", "settable_per_mesh": true }, From b66558f97a913e38c1dcdf6f0ecbe69eaea681d2 Mon Sep 17 00:00:00 2001 From: paukstelis Date: Sun, 19 Aug 2018 22:52:17 -0400 Subject: [PATCH 02/22] Initial commit for passing mesh names to CuraEngine --- cura/ObjectsModel.py | 18 ++++++++++++++++++ plugins/CuraEngineBackend/Cura.proto | 2 ++ plugins/CuraEngineBackend/StartSliceJob.py | 4 ++-- 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/cura/ObjectsModel.py b/cura/ObjectsModel.py index f3c703d424..10d8e16f98 100644 --- a/cura/ObjectsModel.py +++ b/cura/ObjectsModel.py @@ -40,6 +40,9 @@ class ObjectsModel(ListModel): filter_current_build_plate = Application.getInstance().getPreferences().getValue("view/filter_current_build_plate") active_build_plate_number = self._build_plate_number group_nr = 1 + instance = 1 + namecount = [] + for node in DepthFirstIterator(Application.getInstance().getController().getScene().getRoot()): if not isinstance(node, SceneNode): continue @@ -55,6 +58,7 @@ class ObjectsModel(ListModel): if not node.callDecoration("isGroup"): name = node.getName() + else: name = catalog.i18nc("@label", "Group #{group_nr}").format(group_nr = str(group_nr)) group_nr += 1 @@ -63,6 +67,18 @@ class ObjectsModel(ListModel): is_outside_build_area = node.isOutsideBuildArea() else: is_outside_build_area = False + + #check if we already have an instance of the object based on name + duplicate = False + for n in namecount: + if name == n["name"]: + name = "{0}({1})".format(name, n["count"]) + node.setName(name) + n["count"] = n["count"]+1 + duplicate = True + + if not duplicate: + namecount.append({"name" : name, "count" : 1}) nodes.append({ "name": name, @@ -71,8 +87,10 @@ class ObjectsModel(ListModel): "buildPlateNumber": node_build_plate_number, "node": node }) + nodes = sorted(nodes, key=lambda n: n["name"]) self.setItems(nodes) + print(nodes) self.itemsChanged.emit() diff --git a/plugins/CuraEngineBackend/Cura.proto b/plugins/CuraEngineBackend/Cura.proto index 69612210ec..5e0f88f075 100644 --- a/plugins/CuraEngineBackend/Cura.proto +++ b/plugins/CuraEngineBackend/Cura.proto @@ -29,6 +29,8 @@ message Object bytes normals = 3; //An array of 3 floats. bytes indices = 4; //An array of ints. repeated Setting settings = 5; // Setting override per object, overruling the global settings. + //PJP + string name = 6; } message Progress diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index 0ebcafdbb2..4e6c53c4fb 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -256,7 +256,7 @@ class StartSliceJob(Job): mesh_data = object.getMeshData() rot_scale = object.getWorldTransformation().getTransposed().getData()[0:3, 0:3] translate = object.getWorldTransformation().getData()[:3, 3] - + # This effectively performs a limited form of MeshData.getTransformed that ignores normals. verts = mesh_data.getVertices() verts = verts.dot(rot_scale) @@ -268,7 +268,7 @@ class StartSliceJob(Job): obj = group_message.addRepeatedMessage("objects") obj.id = id(object) - + obj.name = object.getName() indices = mesh_data.getIndices() if indices is not None: flat_verts = numpy.take(verts, indices.flatten(), axis=0) From fc9c1045c97a857627c93254a5006e8753fa5d4a Mon Sep 17 00:00:00 2001 From: paukstelis Date: Mon, 20 Aug 2018 07:40:28 -0400 Subject: [PATCH 03/22] Basic cleanup --- cura/ObjectsModel.py | 1 - plugins/CuraEngineBackend/Cura.proto | 1 - 2 files changed, 2 deletions(-) diff --git a/cura/ObjectsModel.py b/cura/ObjectsModel.py index 10d8e16f98..1ac0c6247a 100644 --- a/cura/ObjectsModel.py +++ b/cura/ObjectsModel.py @@ -90,7 +90,6 @@ class ObjectsModel(ListModel): nodes = sorted(nodes, key=lambda n: n["name"]) self.setItems(nodes) - print(nodes) self.itemsChanged.emit() diff --git a/plugins/CuraEngineBackend/Cura.proto b/plugins/CuraEngineBackend/Cura.proto index 5e0f88f075..292330576b 100644 --- a/plugins/CuraEngineBackend/Cura.proto +++ b/plugins/CuraEngineBackend/Cura.proto @@ -29,7 +29,6 @@ message Object bytes normals = 3; //An array of 3 floats. bytes indices = 4; //An array of ints. repeated Setting settings = 5; // Setting override per object, overruling the global settings. - //PJP string name = 6; } From e36f78dd355fba6c9935a2184051f78c770bf30e Mon Sep 17 00:00:00 2001 From: paukstelis Date: Fri, 24 Aug 2018 07:27:34 -0400 Subject: [PATCH 04/22] Clean up whitespace --- cura/ObjectsModel.py | 12 ++++++------ plugins/CuraEngineBackend/StartSliceJob.py | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/cura/ObjectsModel.py b/cura/ObjectsModel.py index 1ac0c6247a..4f3d42e7fe 100644 --- a/cura/ObjectsModel.py +++ b/cura/ObjectsModel.py @@ -71,12 +71,12 @@ class ObjectsModel(ListModel): #check if we already have an instance of the object based on name duplicate = False for n in namecount: - if name == n["name"]: - name = "{0}({1})".format(name, n["count"]) - node.setName(name) - n["count"] = n["count"]+1 - duplicate = True - + if name == n["name"]: + name = "{0}({1})".format(name, n["count"]) + node.setName(name) + n["count"] = n["count"]+1 + duplicate = True + if not duplicate: namecount.append({"name" : name, "count" : 1}) diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index 4e6c53c4fb..2430485e30 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -256,7 +256,7 @@ class StartSliceJob(Job): mesh_data = object.getMeshData() rot_scale = object.getWorldTransformation().getTransposed().getData()[0:3, 0:3] translate = object.getWorldTransformation().getData()[:3, 3] - + # This effectively performs a limited form of MeshData.getTransformed that ignores normals. verts = mesh_data.getVertices() verts = verts.dot(rot_scale) From 6dbf0a5fb705f36547c794c42ea7d8c3c69a4fa0 Mon Sep 17 00:00:00 2001 From: Amanda de Castilho Date: Wed, 29 Aug 2018 00:39:13 -0700 Subject: [PATCH 05/22] Create DisplayFilenameAndLayerOnLCD This plugin inserts M117 into the g-code so that the filename is displayed on the LCD and updates at each layer to display the current layer --- .../scripts/DisplayFilenameAndLayerOnLCD | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 plugins/PostProcessingPlugin/scripts/DisplayFilenameAndLayerOnLCD diff --git a/plugins/PostProcessingPlugin/scripts/DisplayFilenameAndLayerOnLCD b/plugins/PostProcessingPlugin/scripts/DisplayFilenameAndLayerOnLCD new file mode 100644 index 0000000000..f7ddd01e1e --- /dev/null +++ b/plugins/PostProcessingPlugin/scripts/DisplayFilenameAndLayerOnLCD @@ -0,0 +1,50 @@ +# Cura PostProcessingPlugin +# Author: Amanda de Castilho +# Date: August 28, 2018 + +# Description: This plugin inserts a line at the start of each layer, +# M117 displays the filename and layer height to the LCD +# ** user must enter 'filename' +# ** future update: include actual filename + +from ..Script import Script + +class DisplayFilenameAndLayerOnLCD(Script): + def __init__(self): + super().__init__() + + def getSettingDataString(self): + return """{ + "name": "Display filename and layer on LCD", + "key": "DisplayFilenameAndLayerOnLCD", + "metadata": {}, + "version": 2, + "settings": + { + "name": + { + "label": "filename", + "description": "Enter filename", + "type": "str", + "default_value": "default" + } + } + }""" + + def execute(self, data): + name = self.getSettingValueByKey("name") + lcd_text = "M117 " + name + " layer: " + i = 0 + for layer in data: + display_text = lcd_text + str(i) + layer_index = data.index(layer) + lines = layer.split("\n") + for line in lines: + if line.startswith(";LAYER:"): + line_index = lines.index(line) + lines.insert(line_index + 1, display_text) + i += 1 + final_lines = "\n".join(lines) + data[layer_index] = final_lines + + return data From a5baa9008637b7f28a9c5c198671f8bb492c2930 Mon Sep 17 00:00:00 2001 From: Amanda de Castilho Date: Wed, 29 Aug 2018 08:09:57 -0700 Subject: [PATCH 06/22] Rename DisplayFilenameAndLayerOnLCD to DisplayFilenameAndLayerOnLCD.py added the .py extention --- ...splayFilenameAndLayerOnLCD => DisplayFilenameAndLayerOnLCD.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename plugins/PostProcessingPlugin/scripts/{DisplayFilenameAndLayerOnLCD => DisplayFilenameAndLayerOnLCD.py} (100%) diff --git a/plugins/PostProcessingPlugin/scripts/DisplayFilenameAndLayerOnLCD b/plugins/PostProcessingPlugin/scripts/DisplayFilenameAndLayerOnLCD.py similarity index 100% rename from plugins/PostProcessingPlugin/scripts/DisplayFilenameAndLayerOnLCD rename to plugins/PostProcessingPlugin/scripts/DisplayFilenameAndLayerOnLCD.py From f7fbc685d8ffa8ebebc7aa887e4045a6a373d2d8 Mon Sep 17 00:00:00 2001 From: Amanda de Castilho Date: Wed, 29 Aug 2018 08:43:16 -0700 Subject: [PATCH 07/22] Update DisplayFilenameAndLayerOnLCD.py changed so that actual filename is displayed (or alternatively user can enter text to display) to LCD during print --- .../scripts/DisplayFilenameAndLayerOnLCD.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/plugins/PostProcessingPlugin/scripts/DisplayFilenameAndLayerOnLCD.py b/plugins/PostProcessingPlugin/scripts/DisplayFilenameAndLayerOnLCD.py index f7ddd01e1e..2ae07f914c 100644 --- a/plugins/PostProcessingPlugin/scripts/DisplayFilenameAndLayerOnLCD.py +++ b/plugins/PostProcessingPlugin/scripts/DisplayFilenameAndLayerOnLCD.py @@ -3,11 +3,11 @@ # Date: August 28, 2018 # Description: This plugin inserts a line at the start of each layer, -# M117 displays the filename and layer height to the LCD -# ** user must enter 'filename' -# ** future update: include actual filename +# M117 - displays the filename and layer height to the LCD +# Alternatively, user can override the filename to display alt text + layer height -from ..Script import Script +..Script import Script +from UM.Application import Application class DisplayFilenameAndLayerOnLCD(Script): def __init__(self): @@ -23,16 +23,19 @@ class DisplayFilenameAndLayerOnLCD(Script): { "name": { - "label": "filename", - "description": "Enter filename", + "label": "text to display:", + "description": "By default the current filename will be displayed on the LCD. Enter text here to override the filename and display something else.", "type": "str", - "default_value": "default" + "default_value": "" } } }""" def execute(self, data): - name = self.getSettingValueByKey("name") + if self.getSettingValueByKey("name") != "": + name = self.getSettingValueByKey("name") + else: + name = Application.getInstance().getPrintInformation().jobName lcd_text = "M117 " + name + " layer: " i = 0 for layer in data: From 7e7f2aab6b9846ca9235d302250308c50c94a10c Mon Sep 17 00:00:00 2001 From: Amanda de Castilho Date: Wed, 29 Aug 2018 09:48:37 -0700 Subject: [PATCH 08/22] Update DisplayFilenameAndLayerOnLCD.py --- .../scripts/DisplayFilenameAndLayerOnLCD.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/PostProcessingPlugin/scripts/DisplayFilenameAndLayerOnLCD.py b/plugins/PostProcessingPlugin/scripts/DisplayFilenameAndLayerOnLCD.py index 2ae07f914c..9fd9e08d7d 100644 --- a/plugins/PostProcessingPlugin/scripts/DisplayFilenameAndLayerOnLCD.py +++ b/plugins/PostProcessingPlugin/scripts/DisplayFilenameAndLayerOnLCD.py @@ -6,7 +6,7 @@ # M117 - displays the filename and layer height to the LCD # Alternatively, user can override the filename to display alt text + layer height -..Script import Script +from ..Script import Script from UM.Application import Application class DisplayFilenameAndLayerOnLCD(Script): From 53a0abd230fb4db97ba3e86556d843185d3794bc Mon Sep 17 00:00:00 2001 From: paukstelis Date: Wed, 29 Aug 2018 17:43:22 -0400 Subject: [PATCH 09/22] Convert name check to defaultdict --- cura/ObjectsModel.py | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/cura/ObjectsModel.py b/cura/ObjectsModel.py index 4f3d42e7fe..8354540783 100644 --- a/cura/ObjectsModel.py +++ b/cura/ObjectsModel.py @@ -9,6 +9,7 @@ from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator from UM.Scene.SceneNode import SceneNode from UM.Scene.Selection import Selection from UM.i18n import i18nCatalog +from collections import defaultdict catalog = i18nCatalog("cura") @@ -40,9 +41,8 @@ class ObjectsModel(ListModel): filter_current_build_plate = Application.getInstance().getPreferences().getValue("view/filter_current_build_plate") active_build_plate_number = self._build_plate_number group_nr = 1 - instance = 1 - namecount = [] - + name_count_dict = defaultdict(int) + for node in DepthFirstIterator(Application.getInstance().getController().getScene().getRoot()): if not isinstance(node, SceneNode): continue @@ -69,16 +69,12 @@ class ObjectsModel(ListModel): is_outside_build_area = False #check if we already have an instance of the object based on name - duplicate = False - for n in namecount: - if name == n["name"]: - name = "{0}({1})".format(name, n["count"]) - node.setName(name) - n["count"] = n["count"]+1 - duplicate = True - - if not duplicate: - namecount.append({"name" : name, "count" : 1}) + name_count_dict[name] += 1 + name_count = name_count_dict[name] + + if name_count > 1: + name = "{0}({1})".format(name, name_count-1) + node.setName(name) nodes.append({ "name": name, @@ -87,7 +83,7 @@ class ObjectsModel(ListModel): "buildPlateNumber": node_build_plate_number, "node": node }) - + nodes = sorted(nodes, key=lambda n: n["name"]) self.setItems(nodes) From 6068ed10c14ffde7dbb62f301cb413a1b0cf309e Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Thu, 13 Sep 2018 13:06:50 +0200 Subject: [PATCH 10/22] JSON fix: connect_infill_polygons by default only when polygons can be connected via the outline. Also let the user be able to edit the setting in some more situations, for example when choosing concentric infill when the infill_line_distance = nozzle_size --- resources/definitions/fdmprinter.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 4c87a3bcf0..83f633b775 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1664,8 +1664,8 @@ "description": "Connect infill paths where they run next to each other. For infill patterns which consist of several closed polygons, enabling this setting greatly reduces the travel time.", "type": "bool", "default_value": true, - "value": "infill_pattern == 'cross' or infill_pattern == 'cross_3d' or infill_multiplier % 2 == 0", - "enabled": "infill_pattern == 'cross' or infill_pattern == 'cross_3d' or infill_multiplier % 2 == 0", + "value": "(infill_pattern == 'cross' or infill_pattern == 'cross_3d' or infill_multiplier % 2 == 0) and infill_wall_line_count > 0", + "enabled": "infill_pattern == 'cross' or infill_pattern == 'cross_3d' or infill_pattern == 'concentric' or infill_multiplier % 2 == 0 or infill_wall_line_count > 1", "limit_to_extruder": "infill_extruder_nr", "settable_per_mesh": true }, From 3ee9ed0cf3cb809e10f2454c072357e988a85a2b Mon Sep 17 00:00:00 2001 From: Mark Burton Date: Thu, 13 Sep 2018 15:15:29 +0100 Subject: [PATCH 11/22] Add gyroid infill pattern. --- resources/definitions/fdmprinter.def.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 4c87a3bcf0..a4141e9c1a 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1624,7 +1624,7 @@ "infill_pattern": { "label": "Infill Pattern", - "description": "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, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction.", + "description": "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, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction.", "type": "enum", "options": { @@ -1639,7 +1639,8 @@ "concentric": "Concentric", "zigzag": "Zig Zag", "cross": "Cross", - "cross_3d": "Cross 3D" + "cross_3d": "Cross 3D", + "gyroid": "Gyroid" }, "default_value": "grid", "enabled": "infill_sparse_density > 0", From 8efc5fe345e837d00d9b64f96363cfde46efe9f2 Mon Sep 17 00:00:00 2001 From: Mark Burton Date: Fri, 14 Sep 2018 18:05:33 +0100 Subject: [PATCH 12/22] Now zig_zaggify_infill is enabled for gyroid infill. --- resources/definitions/fdmprinter.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index a4141e9c1a..cbc7f19f2f 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1655,7 +1655,7 @@ "type": "bool", "default_value": false, "value": "infill_pattern == 'cross' or infill_pattern == 'cross_3d'", - "enabled": "infill_pattern == 'lines' or infill_pattern == 'grid' or infill_pattern == 'triangles' or infill_pattern == 'trihexagon' or infill_pattern == 'cubic' or infill_pattern == 'tetrahedral' or infill_pattern == 'quarter_cubic' or infill_pattern == 'cross' or infill_pattern == 'cross_3d'", + "enabled": "infill_pattern == 'lines' or infill_pattern == 'grid' or infill_pattern == 'triangles' or infill_pattern == 'trihexagon' or infill_pattern == 'cubic' or infill_pattern == 'tetrahedral' or infill_pattern == 'quarter_cubic' or infill_pattern == 'cross' or infill_pattern == 'cross_3d' or infill_pattern == 'gyroid'", "limit_to_extruder": "infill_extruder_nr", "settable_per_mesh": true }, From c29d38361b754d1acbbf4391b5b333a0b5ef2edd Mon Sep 17 00:00:00 2001 From: Cherubim Date: Sun, 23 Sep 2018 00:27:50 +0200 Subject: [PATCH 13/22] Fix initial start-up when providing model parameter If you're adding a model file as command line argument to Cura, it should auto-load this file upon start-up. However when adding this command line argument upon first launch of Cura, there is no printer yet so Cura would crash because it tries to load a model before there is a build volume. This prevents that crash and instead doesn't load the model at all. --- cura/CuraApplication.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index dbaef4df34..65e95f1c11 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -1580,6 +1580,11 @@ class CuraApplication(QtApplication): job.start() def _readMeshFinished(self, job): + global_container_stack = self.getGlobalContainerStack() + if not global_container_stack: + Logger.log("w", "Can't load meshes before a printer is added.") + return + nodes = job.getResult() file_name = job.getFileName() file_name_lower = file_name.lower() @@ -1594,7 +1599,6 @@ class CuraApplication(QtApplication): for node_ in DepthFirstIterator(root): if node_.callDecoration("isSliceable") and node_.callDecoration("getBuildPlateNumber") == target_build_plate: fixed_nodes.append(node_) - global_container_stack = self.getGlobalContainerStack() machine_width = global_container_stack.getProperty("machine_width", "value") machine_depth = global_container_stack.getProperty("machine_depth", "value") arranger = Arrange.create(x = machine_width, y = machine_depth, fixed_nodes = fixed_nodes) From 8c6f2dc86a7c6df973d14ff6cf42da1260b2f60b Mon Sep 17 00:00:00 2001 From: drzejkopf <41212609+drzejkopf@users.noreply.github.com> Date: Sun, 23 Sep 2018 15:21:14 +0200 Subject: [PATCH 14/22] Complete Polish translation for version 3.5 --- resources/i18n/pl_PL/cura.po | 256 ++++++++++++++++++----------------- 1 file changed, 130 insertions(+), 126 deletions(-) diff --git a/resources/i18n/pl_PL/cura.po b/resources/i18n/pl_PL/cura.po index bab972db8c..5003eee692 100644 --- a/resources/i18n/pl_PL/cura.po +++ b/resources/i18n/pl_PL/cura.po @@ -8,15 +8,15 @@ msgstr "" "Project-Id-Version: Cura 3.5\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2018-09-19 17:07+0200\n" -"PO-Revision-Date: 2018-04-14 14:35+0200\n" -"Last-Translator: 'Jaguś' Paweł Jagusiak and Andrzej 'anraf1001' Rafalski\n" +"PO-Revision-Date: 2018-09-21 20:52+0200\n" +"Last-Translator: 'Jaguś' Paweł Jagusiak, Andrzej 'anraf1001' Rafalski and Jakub 'drzejkopf' Świeciński\n" "Language-Team: reprapy.pl\n" "Language: pl_PL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 2.0.6\n" +"X-Generator: Poedit 2.1.1\n" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:22 msgctxt "@action" @@ -43,18 +43,18 @@ msgstr "Pliki G-code" #: /home/ruben/Projects/Cura/plugins/GCodeWriter/GCodeWriter.py:67 msgctxt "@error:not supported" msgid "GCodeWriter does not support non-text mode." -msgstr "" +msgstr "Zapisywacz G-code nie obsługuje trybu nietekstowego." #: /home/ruben/Projects/Cura/plugins/GCodeWriter/GCodeWriter.py:73 #: /home/ruben/Projects/Cura/plugins/GCodeWriter/GCodeWriter.py:89 msgctxt "@warning:status" msgid "Please generate G-code before saving." -msgstr "" +msgstr "Wygeneruj G-code przed zapisem." #: /home/ruben/Projects/Cura/plugins/ModelChecker/ModelChecker.py:30 msgctxt "@info:title" msgid "3D Model Assistant" -msgstr "" +msgstr "Asystent Modelu 3D" #: /home/ruben/Projects/Cura/plugins/ModelChecker/ModelChecker.py:80 #, python-brace-format @@ -65,6 +65,10 @@ msgid "" "

Find out how to ensure the best possible print quality and reliability.

\n" "

View print quality guide

" msgstr "" +"

Jeden lub więcej modeli 3D może nie zostać wydrukowanych optymalnie ze względu na wymiary modelu oraz konfigurację materiału:

\n" +"

{model_names}

\n" +"

Dowiedz się, jak zapewnić najlepszą możliwą jakość oraz niezawodnośc wydruku.

\n" +"

Zobacz przewodnik po jakości wydruku (strona w języku angielskim)

" #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.py:32 msgctxt "@item:inmenu" @@ -104,7 +108,7 @@ msgstr "Połączono przez USB" #: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:103 msgctxt "@label" msgid "A USB print is in progress, closing Cura will stop this print. Are you sure?" -msgstr "" +msgstr "Trwa drukowanie przez USB, zamknięcie Cura spowoduje jego zatrzymanie. Jesteś pewien?" #: /home/ruben/Projects/Cura/plugins/X3GWriter/build/install/X3GWriter/__init__.py:15 #: /home/ruben/Projects/Cura/plugins/X3GWriter/__init__.py:15 @@ -115,12 +119,12 @@ msgstr "Plik X3G" #: /home/ruben/Projects/Cura/plugins/X3GWriter/build/GPX-prefix/src/GPX/slicerplugins/cura15.06/X3gWriter/__init__.py:16 msgctxt "X3g Writer Plugin Description" msgid "Writes X3g to files" -msgstr "" +msgstr "Zapisuje do plików X3g" #: /home/ruben/Projects/Cura/plugins/X3GWriter/build/GPX-prefix/src/GPX/slicerplugins/cura15.06/X3gWriter/__init__.py:21 msgctxt "X3g Writer File Description" msgid "X3g File" -msgstr "" +msgstr "Plik X3g" #: /home/ruben/Projects/Cura/plugins/GCodeGzWriter/__init__.py:17 #: /home/ruben/Projects/Cura/plugins/GCodeGzReader/__init__.py:17 @@ -131,7 +135,7 @@ msgstr "Skompresowany Plik G-code" #: /home/ruben/Projects/Cura/plugins/GCodeGzWriter/GCodeGzWriter.py:38 msgctxt "@error:not supported" msgid "GCodeGzWriter does not support text mode." -msgstr "" +msgstr "Zapisywacz skompresowanego G-code nie obsługuje trybu tekstowego." #: /home/ruben/Projects/Cura/plugins/UFPWriter/__init__.py:38 msgctxt "@item:inlistbox" @@ -501,7 +505,7 @@ msgstr "Jak zaktualizować" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py:91 msgctxt "@info" msgid "Could not access update information." -msgstr "Nie można uzyskać dostępu do informacji o aktualizacji" +msgstr "Nie można uzyskać dostępu do informacji o aktualizacji." #: /home/ruben/Projects/Cura/plugins/SimulationView/__init__.py:14 msgctxt "@item:inlistbox" @@ -545,12 +549,12 @@ msgstr "Zbieranie Danych" #: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:48 msgctxt "@action:button" msgid "More info" -msgstr "" +msgstr "Więcej informacji" #: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:49 msgctxt "@action:tooltip" msgid "See more information on what data Cura sends." -msgstr "" +msgstr "Zobacz więcej informacji o tym, jakie dane przesyła Cura." #: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:51 msgctxt "@action:button" @@ -565,7 +569,7 @@ msgstr "Zezwól Cura na wysyłanie anonimowych danych statystycznych, aby pomóc #: /home/ruben/Projects/Cura/plugins/LegacyProfileReader/__init__.py:14 msgctxt "@item:inlistbox" msgid "Cura 15.04 profiles" -msgstr "Profile Cura 15.04 " +msgstr "Profile Cura 15.04" #: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:14 msgctxt "@item:inlistbox" @@ -628,7 +632,7 @@ msgstr "Nie można pociąć, ponieważ wieża czyszcząca lub jej pozycja(e) są #, python-format msgctxt "@info:status" msgid "Unable to slice because there are objects associated with disabled Extruder %s." -msgstr "" +msgstr "Nie można pociąć, ponieważ obecne są obiekty powiązane z wyłączonym ekstruderem %s." #: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:414 msgctxt "@info:status" @@ -684,12 +688,12 @@ msgstr "Dysza" #, python-brace-format msgctxt "@info:status Don't translate the XML tags or !" msgid "Project file {0} contains an unknown machine type {1}. Cannot import the machine. Models will be imported instead." -msgstr "" +msgstr "Plik projektu {0} zawiera nieznany typ maszyny {1}. Nie można zaimportować maszyny. Zostaną zaimportowane modele." #: /home/ruben/Projects/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:471 msgctxt "@info:title" msgid "Open Project File" -msgstr "" +msgstr "Otwórz Plik Projektu" #: /home/ruben/Projects/Cura/plugins/SolidView/__init__.py:12 msgctxt "@item:inmenu" @@ -746,7 +750,7 @@ msgstr "Plik Cura Project 3MF" #: /home/ruben/Projects/Cura/plugins/3MFWriter/ThreeMFWriter.py:179 msgctxt "@error:zip" msgid "Error writing 3mf file." -msgstr "" +msgstr "Błąd zapisu pliku 3mf." #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelection.py:17 #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelection.py:18 @@ -802,7 +806,7 @@ msgstr "Łączenie podpory" #: /home/ruben/Projects/Cura/cura/PrintInformation.py:104 msgctxt "@tooltip" msgid "Support" -msgstr "Podpory " +msgstr "Podpory" #: /home/ruben/Projects/Cura/cura/PrintInformation.py:105 msgctxt "@tooltip" @@ -1008,22 +1012,22 @@ msgstr "Obszar Roboczy" #: /home/ruben/Projects/Cura/cura/Backups/Backup.py:97 msgctxt "@info:backup_failed" msgid "Could not create archive from user data directory: {}" -msgstr "" +msgstr "Nie można utworzyć archiwum z folderu danych użytkownika: {}" #: /home/ruben/Projects/Cura/cura/Backups/Backup.py:102 msgctxt "@info:title" msgid "Backup" -msgstr "" +msgstr "Kopia zapasowa" #: /home/ruben/Projects/Cura/cura/Backups/Backup.py:112 msgctxt "@info:backup_failed" msgid "Tried to restore a Cura backup without having proper data or meta data." -msgstr "" +msgstr "Podjęto próbę przywrócenia kopii zapasowej Cura na podstawie niepoprawnych danych lub metadanych." #: /home/ruben/Projects/Cura/cura/Backups/Backup.py:122 msgctxt "@info:backup_failed" msgid "Tried to restore a Cura backup that does not match your current version." -msgstr "" +msgstr "Podjęto próbę przywrócenia kopii zapasowej Cura, która nie odpowiada obecnej wersji programu." #: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:27 msgctxt "@info:status" @@ -1429,7 +1433,7 @@ msgstr "Zainstalowane" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxErrorPage.qml:16 msgctxt "@info" msgid "Could not connect to the Cura Package database. Please check your connection." -msgstr "" +msgstr "Nie można połączyć się z bazą danych pakietów Cura. Sprawdź swoje połączenie z internetem." #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxInstalledPage.qml:38 #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxHeader.qml:26 @@ -1447,22 +1451,22 @@ msgstr "Materiał" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml:80 msgctxt "@label" msgid "Version" -msgstr "" +msgstr "Wersja" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml:86 msgctxt "@label" msgid "Last updated" -msgstr "" +msgstr "Ostatnia aktualizacja" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml:92 msgctxt "@label" msgid "Author" -msgstr "" +msgstr "Autor" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml:98 msgctxt "@label" msgid "Downloads" -msgstr "" +msgstr "Pobrań" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml:117 #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml:159 @@ -1481,93 +1485,93 @@ msgstr "Aktualizuj" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxInstalledTileActions.qml:31 msgctxt "@action:button" msgid "Updating" -msgstr "" +msgstr "Aktualizowanie" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxDetailTileActions.qml:46 #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxInstalledTileActions.qml:32 msgctxt "@action:button" msgid "Updated" -msgstr "" +msgstr "Zaktualizowano" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/Toolbox.qml:13 msgctxt "@title" msgid "Toolbox" -msgstr "" +msgstr "Narzędzia" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxBackColumn.qml:25 msgctxt "@action:button" msgid "Back" -msgstr "" +msgstr "Powrót" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxConfirmUninstallResetDialog.qml:20 msgctxt "@title:window" msgid "Confirm uninstall " -msgstr "" +msgstr "Potwierdź odinstalowanie " #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxConfirmUninstallResetDialog.qml:50 msgctxt "@text:window" msgid "You are uninstalling materials and/or profiles that are still in use. Confirming will reset the following materials/profiles to their defaults." -msgstr "" +msgstr "Odinstalowujesz materiały i/lub profile, które są aktualnie używane. Zatwierdzenie spowoduje przywrócenie bieżących ustawień materiału/profilu do ustawień domyślnych." #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxConfirmUninstallResetDialog.qml:51 msgctxt "@text:window" msgid "Materials" -msgstr "" +msgstr "Materiały" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxConfirmUninstallResetDialog.qml:52 msgctxt "@text:window" msgid "Profiles" -msgstr "" +msgstr "Profile" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxConfirmUninstallResetDialog.qml:89 msgctxt "@action:button" msgid "Confirm" -msgstr "" +msgstr "Potwierdź" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxFooter.qml:17 msgctxt "@info" msgid "You will need to restart Cura before changes in packages have effect." -msgstr "" +msgstr "Należy uruchomić ponownie Cura, aby zmiany w pakietach przyniosły efekt." #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxFooter.qml:34 msgctxt "@info:button" msgid "Quit Cura" -msgstr "" +msgstr "Zakończ Cura" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxDownloadsPage.qml:34 msgctxt "@label" msgid "Community Contributions" -msgstr "" +msgstr "Udział Społeczności" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxDownloadsPage.qml:34 msgctxt "@label" msgid "Community Plugins" -msgstr "" +msgstr "Wtyczki Społeczności" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxDownloadsPage.qml:43 msgctxt "@label" msgid "Generic Materials" -msgstr "" +msgstr "Materiały Podstawowe" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxHeader.qml:54 msgctxt "@title:tab" msgid "Installed" -msgstr "" +msgstr "Zainstalowano" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxInstalledTileActions.qml:19 msgctxt "@label" msgid "Will install upon restarting" -msgstr "" +msgstr "Zostanie zainstalowane po ponownym uruchomieniu" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxInstalledTileActions.qml:51 msgctxt "@action:button" msgid "Downgrade" -msgstr "" +msgstr "Zainstaluj poprzednią wersję" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxInstalledTileActions.qml:51 msgctxt "@action:button" msgid "Uninstall" -msgstr "" +msgstr "Odinstaluj" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxLicenseDialog.qml:16 msgctxt "@title:window" @@ -1598,27 +1602,27 @@ msgstr "Odrzuć" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcase.qml:23 msgctxt "@label" msgid "Featured" -msgstr "" +msgstr "Polecane" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml:31 msgctxt "@label" msgid "Compatibility" -msgstr "" +msgstr "Zgodność" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxLoadingPage.qml:16 msgctxt "@info" msgid "Fetching packages..." -msgstr "" +msgstr "Uzyskiwanie pakietów..." #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxAuthorPage.qml:88 msgctxt "@label" msgid "Website" -msgstr "" +msgstr "Strona internetowa" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxAuthorPage.qml:94 msgctxt "@label" msgid "Email" -msgstr "" +msgstr "E-mail" #: /home/ruben/Projects/Cura/plugins/ModelChecker/ModelChecker.qml:22 msgctxt "@info:tooltip" @@ -1755,12 +1759,12 @@ msgstr "Adres" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml:302 msgctxt "@label" msgid "This printer is not set up to host a group of printers." -msgstr "" +msgstr "Ta drukarka nie jest skonfigurowana jako host dla grupy drukarek." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml:306 msgctxt "@label" msgid "This printer is the host for a group of %1 printers." -msgstr "" +msgstr "Ta drukarka jest hostem grupy %1 drukarek." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml:316 msgctxt "@label" @@ -1808,52 +1812,52 @@ msgstr "Drukuj" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:142 msgctxt "@label" msgid "Waiting for: Unavailable printer" -msgstr "" +msgstr "Oczekiwanie na: Niedostępną drukarkę" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:144 msgctxt "@label" msgid "Waiting for: First available" -msgstr "" +msgstr "Oczekiwanie na: Pierwszą dostępną" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:148 msgctxt "@label" msgid "Waiting for: " -msgstr "" +msgstr "Oczekiwanie na: " #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:213 msgctxt "@label" msgid "Move to top" -msgstr "" +msgstr "Przesuń na początek" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:234 msgctxt "@window:title" msgid "Move print job to top" -msgstr "" +msgstr "Przesuń zadanie drukowania na początek" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:236 msgctxt "@label %1 is the name of a print job." msgid "Are you sure you want to move %1 to the top of the queue?" -msgstr "" +msgstr "Czy jesteś pewien, że chcesz przesunąć %1 na początek kolejki?" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:245 msgctxt "@label" msgid "Delete" -msgstr "" +msgstr "Usuń" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:264 msgctxt "@window:title" msgid "Delete print job" -msgstr "" +msgstr "Usuń zadanie drukowania" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:266 msgctxt "@label %1 is the name of a print job." msgid "Are you sure you want to delete %1?" -msgstr "" +msgstr "Czy jesteś pewien, że chcesz usunąć %1?" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml:32 msgctxt "@label link to connect manager" msgid "Manage queue" -msgstr "" +msgstr "Zarządzaj kolejką" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml:54 msgctxt "@label" @@ -1868,57 +1872,57 @@ msgstr "Drukowanie" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/ClusterControlItem.qml:54 msgctxt "@label link to connect manager" msgid "Manage printers" -msgstr "" +msgstr "Zarządzaj drukarkami" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/ClusterControlItem.qml:212 msgctxt "@label" msgid "Not available" -msgstr "" +msgstr "Niedostępny" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/ClusterControlItem.qml:215 msgctxt "@label" msgid "Unreachable" -msgstr "" +msgstr "Nieosiągalny" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/ClusterControlItem.qml:221 msgctxt "@label" msgid "Available" -msgstr "" +msgstr "Dostępny" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/ClusterControlItem.qml:416 #: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:289 msgctxt "@label" msgid "Resume" -msgstr "" +msgstr "Ponów" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/ClusterControlItem.qml:416 #: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:284 #: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:293 msgctxt "@label" msgid "Pause" -msgstr "" +msgstr "Wstrzymaj" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/ClusterControlItem.qml:444 msgctxt "@label" msgid "Abort" -msgstr "" +msgstr "Anuluj" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/ClusterControlItem.qml:464 #: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:335 msgctxt "@window:title" msgid "Abort print" -msgstr "Przerwij wydruk" +msgstr "Anuluj wydruk" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/ClusterControlItem.qml:466 msgctxt "@label %1 is the name of a print job." msgid "Are you sure you want to abort %1?" -msgstr "" +msgstr "Czy jesteś pewien, że chcesz anulować %1?" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/ClusterControlItem.qml:665 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/ClusterControlItem.qml:673 msgctxt "@label:status" msgid "Aborted" -msgstr "" +msgstr "Anulowano" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/ClusterControlItem.qml:667 msgctxt "@label:status" @@ -1933,7 +1937,7 @@ msgstr "Przygotowywanie" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/ClusterControlItem.qml:675 msgctxt "@label:status" msgid "Pausing" -msgstr "" +msgstr "Wstrzymywanie" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/ClusterControlItem.qml:677 msgctxt "@label:status" @@ -2073,22 +2077,22 @@ msgstr "Zmień aktywne skrypty post-processingu" #: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:16 msgctxt "@title:window" msgid "More information on anonymous data collection" -msgstr "" +msgstr "Wiećej informacji o zbieraniu anonimowych danych" #: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:66 msgctxt "@text:window" msgid "Cura sends anonymous data to Ultimaker in order to improve the print quality and user experience. Below is an example of all the data that is sent." -msgstr "" +msgstr "Cura wysyła anonimowe dane do Ultimaker w celu polepszenia jakości wydruków oraz interakcji z użytkownikiem. Poniżej podano przykład wszystkich danych, jakie mogą być przesyłane." #: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:101 msgctxt "@text:window" msgid "I don't want to send these data" -msgstr "" +msgstr "Nie chcę przesyłać tych danych" #: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:111 msgctxt "@text:window" msgid "Allow sending these data to Ultimaker and help us improve Cura" -msgstr "" +msgstr "Zezwól na przesyłanie tych danych do Ultimaker i pomóż nam ulepszać Cura" #: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:19 msgctxt "@title:window" @@ -2351,7 +2355,7 @@ msgstr "Otwórz" #: /home/ruben/Projects/Cura/plugins/CuraPrintProfileCreator/components/ProfileCreatorTabControls.qml:34 msgctxt "@action:button" msgid "Previous" -msgstr "" +msgstr "Poprzedni" #: /home/ruben/Projects/Cura/plugins/CuraPrintProfileCreator/components/ProfileCreatorTabControls.qml:138 #: /home/ruben/Projects/Cura/resources/qml/Preferences/Materials/MaterialsPage.qml:154 @@ -2363,12 +2367,12 @@ msgstr "Eksportuj" #: /home/ruben/Projects/Cura/plugins/CuraPrintProfileCreator/components/ProfileCreatorTabControls.qml:140 msgctxt "@action:button" msgid "Next" -msgstr "" +msgstr "Następny" #: /home/ruben/Projects/Cura/plugins/CuraPrintProfileCreator/components/ProfileCreatorPageCategoryView.qml:163 msgctxt "@label" msgid "Tip" -msgstr "" +msgstr "Końcówka" #: /home/ruben/Projects/Cura/plugins/CuraPrintProfileCreator/components/CuraPrintProfileCreatorView.qml:80 #: /home/ruben/Projects/Cura/resources/qml/PrepareSidebar.qml:341 @@ -2417,12 +2421,12 @@ msgstr "%1m / ~ %2g" #: /home/ruben/Projects/Cura/plugins/CuraPrintProfileCreator/components/ProfileCreatorPage.qml:143 msgctxt "@label" msgid "Print experiment" -msgstr "" +msgstr "Próbny wydruk" #: /home/ruben/Projects/Cura/plugins/CuraPrintProfileCreator/components/ProfileCreatorPageValidation.qml:26 msgctxt "@label" msgid "Checklist" -msgstr "" +msgstr "Lista kontrolna" #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelectionMachineAction.qml:26 #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:25 @@ -2645,7 +2649,7 @@ msgstr "Usuń wydruk" #: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:325 msgctxt "@label" msgid "Abort Print" -msgstr "" +msgstr "Anuluj Wydruk" #: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:337 msgctxt "@label" @@ -2725,7 +2729,7 @@ msgstr "Potwierdź Zmianę Średnicy" #: /home/ruben/Projects/Cura/resources/qml/Preferences/Materials/MaterialsView.qml:101 msgctxt "@label (%1 is a number)" msgid "The new filament diameter is set to %1 mm, which is not compatible with the current extruder. Do you wish to continue?" -msgstr "" +msgstr "Średnica nowego filamentu została ustawiona na %1mm, i nie jest kompatybilna z bieżącym ekstruderem. Czy chcesz kontynuować?" #: /home/ruben/Projects/Cura/resources/qml/Preferences/Materials/MaterialsView.qml:133 msgctxt "@label" @@ -3068,12 +3072,12 @@ msgstr "Skaluj bardzo małe modele" #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:507 msgctxt "@info:tooltip" msgid "Should models be selected after they are loaded?" -msgstr "" +msgstr "Czy modele powinny zostać zaznaczone po załadowaniu?" #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:512 msgctxt "@option:check" msgid "Select models when loaded" -msgstr "" +msgstr "Zaznaczaj modele po załadowaniu" #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:522 msgctxt "@info:tooltip" @@ -3108,7 +3112,7 @@ msgstr "Domyślne zachowanie podczas otwierania pliku projektu: " #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:573 msgctxt "@option:openProject" msgid "Always ask me this" -msgstr "" +msgstr "Zawsze pytaj" #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:574 msgctxt "@option:openProject" @@ -3128,22 +3132,22 @@ msgstr "Kiedy dokonasz zmian w profilu i przełączysz się na inny, zostanie wy #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:620 msgctxt "@label" msgid "Profiles" -msgstr "" +msgstr "Profile" #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:625 msgctxt "@window:text" msgid "Default behavior for changed setting values when switching to a different profile: " -msgstr "" +msgstr "Domyślne zachowanie dla zmienionych ustawień podczas zmiany profilu na inny: " #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:640 msgctxt "@option:discardOrKeep" msgid "Always discard changed settings" -msgstr "" +msgstr "Zawsze odrzucaj wprowadzone zmiany" #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:641 msgctxt "@option:discardOrKeep" msgid "Always transfer changed settings to new profile" -msgstr "" +msgstr "Zawsze przenoś wprowadzone zmiany do nowego profilu" #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:675 msgctxt "@label" @@ -3173,7 +3177,7 @@ msgstr "Wyślij (anonimowe) informacje o drukowaniu" #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:713 msgctxt "@action:button" msgid "More information" -msgstr "" +msgstr "Więcej informacji" #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:731 msgctxt "@label" @@ -3338,7 +3342,7 @@ msgstr "Dodaj drukarkę" #: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:84 msgctxt "@text Print job name" msgid "Untitled" -msgstr "" +msgstr "Bez tytułu" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:15 msgctxt "@title:window" @@ -3519,12 +3523,12 @@ msgstr "Skonfiguruj widoczność ustawień ..." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:643 msgctxt "@action:inmenu" msgid "Collapse All" -msgstr "" +msgstr "Schowaj wszystkie" #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:648 msgctxt "@action:inmenu" msgid "Expand All" -msgstr "" +msgstr "Rozwiń wszystkie" #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingCategory.qml:249 msgctxt "@label" @@ -3696,17 +3700,17 @@ msgstr "Przed drukowaniem podgrzej stół. W dalszym ciągu można dostosowywać #: /home/ruben/Projects/Cura/resources/qml/Menus/MaterialMenu.qml:13 msgctxt "@label:category menu label" msgid "Material" -msgstr "" +msgstr "Materiał" #: /home/ruben/Projects/Cura/resources/qml/Menus/MaterialMenu.qml:37 msgctxt "@label:category menu label" msgid "Favorites" -msgstr "" +msgstr "Ulubione" #: /home/ruben/Projects/Cura/resources/qml/Menus/MaterialMenu.qml:61 msgctxt "@label:category menu label" msgid "Generic" -msgstr "" +msgstr "Podstawowe" #: /home/ruben/Projects/Cura/resources/qml/Menus/PrinterMenu.qml:25 msgctxt "@label:category menu label" @@ -3780,12 +3784,12 @@ msgstr "Ekstruder" #: /home/ruben/Projects/Cura/resources/qml/Menus/ConfigurationMenu/SyncButton.qml:16 msgctxt "@label:extruder label" msgid "Yes" -msgstr "" +msgstr "Tak" #: /home/ruben/Projects/Cura/resources/qml/Menus/ConfigurationMenu/SyncButton.qml:16 msgctxt "@label:extruder label" msgid "No" -msgstr "" +msgstr "Nie" #: /home/ruben/Projects/Cura/resources/qml/Menus/RecentFilesMenu.qml:13 msgctxt "@title:menu menubar:file" @@ -3980,7 +3984,7 @@ msgstr "&Grupuj modele" #: /home/ruben/Projects/Cura/resources/qml/Actions.qml:294 msgctxt "@action:inmenu menubar:edit" msgid "Ungroup Models" -msgstr "Rozgrupuj modele " +msgstr "Rozgrupuj modele" #: /home/ruben/Projects/Cura/resources/qml/Actions.qml:304 msgctxt "@action:inmenu menubar:edit" @@ -4010,7 +4014,7 @@ msgstr "Przeładuj wszystkie modele" #: /home/ruben/Projects/Cura/resources/qml/Actions.qml:350 msgctxt "@action:inmenu menubar:edit" msgid "Arrange All Models To All Build Plates" -msgstr "Rozłóż Wszystkie Modele na Wszystkie Platformy Robocze." +msgstr "Rozłóż Wszystkie Modele na Wszystkie Platformy Robocze" #: /home/ruben/Projects/Cura/resources/qml/Actions.qml:357 msgctxt "@action:inmenu menubar:edit" @@ -4055,7 +4059,7 @@ msgstr "Pokaż folder konfiguracji" #: /home/ruben/Projects/Cura/resources/qml/Actions.qml:423 msgctxt "@action:menu" msgid "Browse packages..." -msgstr "" +msgstr "Przeglądaj pakiety..." #: /home/ruben/Projects/Cura/resources/qml/Actions.qml:430 msgctxt "@action:inmenu menubar:view" @@ -4146,17 +4150,17 @@ msgstr "&Plik" #: /home/ruben/Projects/Cura/resources/qml/Cura.qml:120 msgctxt "@title:menu menubar:file" msgid "&Save..." -msgstr "" +msgstr "&Zapisz..." #: /home/ruben/Projects/Cura/resources/qml/Cura.qml:141 msgctxt "@title:menu menubar:file" msgid "&Export..." -msgstr "" +msgstr "&Eksportuj..." #: /home/ruben/Projects/Cura/resources/qml/Cura.qml:151 msgctxt "@action:inmenu menubar:file" msgid "Export Selection..." -msgstr "" +msgstr "Eksportuj Zaznaczenie..." #: /home/ruben/Projects/Cura/resources/qml/Cura.qml:168 msgctxt "@title:menu menubar:toplevel" @@ -4218,7 +4222,7 @@ msgstr "&Rozszerzenia" #: /home/ruben/Projects/Cura/resources/qml/Cura.qml:280 msgctxt "@title:menu menubar:toplevel" msgid "&Toolbox" -msgstr "" +msgstr "&Narzędzia" #: /home/ruben/Projects/Cura/resources/qml/Cura.qml:287 msgctxt "@title:menu menubar:toplevel" @@ -4233,7 +4237,7 @@ msgstr "P&omoc" #: /home/ruben/Projects/Cura/resources/qml/Cura.qml:341 msgctxt "@label" msgid "This package will be installed after restarting." -msgstr "" +msgstr "Ten pakiet zostanie zainstalowany po ponownym uruchomieniu." #: /home/ruben/Projects/Cura/resources/qml/Cura.qml:370 msgctxt "@action:button" @@ -4258,18 +4262,18 @@ msgstr "Czy na pewno chcesz rozpocząć nowy projekt? Spowoduje to wyczyszczenie #: /home/ruben/Projects/Cura/resources/qml/Cura.qml:715 msgctxt "@title:window" msgid "Closing Cura" -msgstr "" +msgstr "Zamykanie Cura" #: /home/ruben/Projects/Cura/resources/qml/Cura.qml:716 #: /home/ruben/Projects/Cura/resources/qml/Cura.qml:728 msgctxt "@label" msgid "Are you sure you want to exit Cura?" -msgstr "" +msgstr "Czy jesteś pewien, że chcesz zakończyć Cura?" #: /home/ruben/Projects/Cura/resources/qml/Cura.qml:861 msgctxt "@window:title" msgid "Install Package" -msgstr "" +msgstr "Instaluj pakiety" #: /home/ruben/Projects/Cura/resources/qml/Cura.qml:868 msgctxt "@title:window" @@ -4446,7 +4450,7 @@ msgstr "Materiał" #: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:543 msgctxt "@label" msgid "Use glue with this material combination" -msgstr "" +msgstr "Użyj kleju z tą kombinacją materiałów" #: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:575 msgctxt "@label" @@ -4476,7 +4480,7 @@ msgstr "Rozłóż na obecnej platformie roboczej" #: MachineSettingsAction/plugin.json msgctxt "description" msgid "Provides a way to change machine settings (such as build volume, nozzle size, etc.)." -msgstr "" +msgstr "Zapewnia możliwość zmiany ustawień maszyny (takich jak objętość robocza, rozmiar dyszy itp.)." #: MachineSettingsAction/plugin.json msgctxt "name" @@ -4486,12 +4490,12 @@ msgstr "Ustawienia Maszyny" #: Toolbox/plugin.json msgctxt "description" msgid "Find, manage and install new Cura packages." -msgstr "" +msgstr "Znajdź, zarządzaj i instaluj nowe pakiety Cura." #: Toolbox/plugin.json msgctxt "name" msgid "Toolbox" -msgstr "" +msgstr "Narzędzia" #: XRayView/plugin.json msgctxt "description" @@ -4521,7 +4525,7 @@ msgstr "Zapisuje g-code do pliku." #: GCodeWriter/plugin.json msgctxt "name" msgid "G-code Writer" -msgstr "Pisarz G-code" +msgstr "Zapisywacz G-code" #: ModelChecker/plugin.json msgctxt "description" @@ -4576,7 +4580,7 @@ msgstr "Drukowanie USB" #: UserAgreement/plugin.json msgctxt "description" msgid "Ask the user once if he/she agrees with our license." -msgstr "" +msgstr "Zapytaj użytkownika jednokrotnie, czy zgadza się z warunkami naszej licencji." #: UserAgreement/plugin.json msgctxt "name" @@ -4586,12 +4590,12 @@ msgstr "ZgodaUżytkownika" #: X3GWriter/plugin.json msgctxt "description" msgid "Allows saving the resulting slice as an X3G file, to support printers that read this format (Malyan, Makerbot and other Sailfish-based printers)." -msgstr "" +msgstr "Umożliwia zapisanie wyników cięcia jako plik X3G, aby wspierać drukarki obsługujące ten format (Malyan, Makerbot oraz inne oparte o oprogramowanie Sailfish)." #: X3GWriter/plugin.json msgctxt "name" msgid "X3GWriter" -msgstr "" +msgstr "Zapisywacz X3G" #: GCodeGzWriter/plugin.json msgctxt "description" @@ -4636,7 +4640,7 @@ msgstr "Wtyczka Urządzenia Wyjścia Dysku Zewn." #: UM3NetworkPrinting/plugin.json msgctxt "description" msgid "Manages network connections to Ultimaker 3 printers." -msgstr "" +msgstr "Zarządza ustawieniami połączenia sieciowego z drukarkami Ultimaker 3." #: UM3NetworkPrinting/plugin.json msgctxt "name" @@ -4756,12 +4760,12 @@ msgstr "Ulepszenie Wersji z 3.2 do 3.3" #: VersionUpgrade/VersionUpgrade33to34/plugin.json msgctxt "description" msgid "Upgrades configurations from Cura 3.3 to Cura 3.4." -msgstr "" +msgstr "Ulepsza konfigurację z Cura 3.3 do Cura 3.4." #: VersionUpgrade/VersionUpgrade33to34/plugin.json msgctxt "name" msgid "Version Upgrade 3.3 to 3.4" -msgstr "" +msgstr "Ulepszenie Wersji z 3.3 do 3.4" #: VersionUpgrade/VersionUpgrade25to26/plugin.json msgctxt "description" @@ -4786,12 +4790,12 @@ msgstr "Ulepszenie Wersji 2.7 do 3.0" #: VersionUpgrade/VersionUpgrade34to35/plugin.json msgctxt "description" msgid "Upgrades configurations from Cura 3.4 to Cura 3.5." -msgstr "" +msgstr "Ulepsza konfigurację z Cura 3.4 do Cura 3.5." #: VersionUpgrade/VersionUpgrade34to35/plugin.json msgctxt "name" msgid "Version Upgrade 3.4 to 3.5" -msgstr "" +msgstr "Ulepszenie Wersji z 3.4 do 3.5" #: VersionUpgrade/VersionUpgrade30to31/plugin.json msgctxt "description" @@ -4926,7 +4930,7 @@ msgstr "3MF Writer" #: UltimakerMachineActions/plugin.json msgctxt "description" msgid "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc.)." -msgstr "" +msgstr "Zapewnia czynności maszyny dla urządzeń Ultimaker (na przykład kreator poziomowania stołu, wybór ulepszeń itp.)." #: UltimakerMachineActions/plugin.json msgctxt "name" From 79cd9f332d0b4ae2b6c5931bc60dd3b4de1722ea Mon Sep 17 00:00:00 2001 From: drzejkopf <41212609+drzejkopf@users.noreply.github.com> Date: Sun, 23 Sep 2018 15:28:14 +0200 Subject: [PATCH 15/22] Update fdmprinter.def.json.po --- resources/i18n/pl_PL/fdmprinter.def.json.po | 127 ++++++++++---------- 1 file changed, 66 insertions(+), 61 deletions(-) diff --git a/resources/i18n/pl_PL/fdmprinter.def.json.po b/resources/i18n/pl_PL/fdmprinter.def.json.po index caff3d9438..53aa32009e 100644 --- a/resources/i18n/pl_PL/fdmprinter.def.json.po +++ b/resources/i18n/pl_PL/fdmprinter.def.json.po @@ -6,16 +6,17 @@ msgid "" msgstr "" "Project-Id-Version: Cura 3.5\n" -"Report-Msgid-Bugs-To: r.dulek@ultimaker.com" +"Report-Msgid-Bugs-To: r.dulek@ultimaker.com "POT-Creation-Date: 2018-09-19 17:07+0000\n" -"PO-Revision-Date: 2018-04-17 16:45+0200\n" -"Last-Translator: 'Jaguś' Paweł Jagusiak and Andrzej 'anraf1001' Rafalski\n" +"PO-Revision-Date: 2018-09-21 21:52+0200\n" +"Last-Translator: 'Jaguś' Paweł Jagusiak, Andrzej 'anraf1001' Rafalski and Jakub 'drzejkopf' Świeciński\n" "Language-Team: reprapy.pl\n" "Language: pl_PL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.6\n" +"X-Generator: Poedit 2.1.1\n" +"POT-Creation-Date: \n" #: fdmprinter.def.json msgctxt "machine_settings label" @@ -1073,12 +1074,12 @@ msgstr "Zygzak" #: fdmprinter.def.json msgctxt "connect_skin_polygons label" msgid "Connect Top/Bottom Polygons" -msgstr "" +msgstr "Połącz Górne/Dolne Wieloboki" #: fdmprinter.def.json msgctxt "connect_skin_polygons description" msgid "Connect top/bottom skin paths where they run next to each other. For the concentric pattern enabling this setting greatly reduces the travel time, but because the connections can happend midway over infill this feature can reduce the top surface quality." -msgstr "" +msgstr "Łączy górne/dolne ścieżki powłoki, gdy są one prowadzone obok siebie. Przy wzorze koncentrycznym, załączenie tego ustawienia znacznie zredukuje czas ruchów jałowych, ale ze względu na to, że połączenie może nastąpić w połowie drogi ponad wypełnieniem, ta fukncja może pogorszyć jakość górnej powierzchni." #: fdmprinter.def.json msgctxt "skin_angles label" @@ -1108,7 +1109,7 @@ msgstr "Optymalizuj Kolejność Drukowania Ścian" #: fdmprinter.def.json msgctxt "optimize_wall_printing_order description" msgid "Optimize the order in which walls are printed so as to reduce the number of retractions and the distance travelled. Most parts will benefit from this being enabled but some may actually take longer so please compare the print time estimates with and without optimization. First layer is not optimized when choosing brim as build plate adhesion type." -msgstr "" +msgstr "Optymalizuje kolejność, w jakiej będą drukowane ścianki w celu zredukowania ilości retrakcji oraz dystansu ruchów jałowych. Większość części skorzysta na załączeniu tej funkcji, jednak w niektórych przypadkach czas druku może się wydłużyć, proszę więc o porównanie oszacowanego czasu z funkcją załączoną oraz wyłączoną. Pierwsza warstwa nie zostanie zoptymalizowana, jeżeli jako poprawa przyczepności stołu zostanie wybrany obrys." #: fdmprinter.def.json msgctxt "outer_inset_first label" @@ -1163,22 +1164,22 @@ msgstr "Kompensuje przepływ dla części, których wewnętrzna ściana jest dru #: fdmprinter.def.json msgctxt "wall_min_flow label" msgid "Minimum Wall Flow" -msgstr "" +msgstr "Minimalny Przepływ Dla Ścianek" #: fdmprinter.def.json msgctxt "wall_min_flow description" msgid "Minimum allowed percentage flow for a wall line. The wall overlap compensation reduces a wall's flow when it lies close to an existing wall. Walls whose flow is less than this value will be replaced with a travel move. When using this setting, you must enable the wall overlap compensation and print the outer wall before inner walls." -msgstr "" +msgstr "Minimalny dopuszczalny przepływ procentowy dla linii ścianki. Kompensacja nakładania się ścianek redukuje przepływ, gdy dana ścianka znajduje się blisko wydrukowanej już ścianki. Ścianki, których przepływ powinien być mniejszy, niż ta wartość, będą zastąpione ruchami jałowymi. Aby używać tego ustawienia należy załączyć kompensację nakładających się ścianek oraz drukowanie ścianek zewnętrznych przed wewnętrznymi." #: fdmprinter.def.json msgctxt "wall_min_flow_retract label" msgid "Prefer Retract" -msgstr "" +msgstr "Preferuj Retrakcję" #: fdmprinter.def.json msgctxt "wall_min_flow_retract description" msgid "If enabled, retraction is used rather than combing for travel moves that replace walls whose flow is below the minimum flow threshold." -msgstr "" +msgstr "Gdy załączone, retrakcja jest używana zamiast kombinowanego ruchu jałowego, który zastępuje ściankę, której przepływ jest mniejszy od minimalnego." #: fdmprinter.def.json msgctxt "fill_perimeter_gaps label" @@ -1478,7 +1479,7 @@ msgstr "Gęstość Wypełn." #: fdmprinter.def.json msgctxt "infill_sparse_density description" msgid "Adjusts the density of infill of the print." -msgstr "Dostosowuje gęstość wypełnienia wydruku" +msgstr "Dostosowuje gęstość wypełnienia wydruku." #: fdmprinter.def.json msgctxt "infill_line_distance label" @@ -1573,12 +1574,12 @@ msgstr "Łączy końce gdzie wzór wypełnienia spotyka się z wewn. ścianą u #: fdmprinter.def.json msgctxt "connect_infill_polygons label" msgid "Connect Infill Polygons" -msgstr "" +msgstr "Połącz Wieloboki Wypełnienia" #: fdmprinter.def.json msgctxt "connect_infill_polygons description" msgid "Connect infill paths where they run next to each other. For infill patterns which consist of several closed polygons, enabling this setting greatly reduces the travel time." -msgstr "" +msgstr "Łączy ścieżki wypełnienia, gdy są one prowadzone obok siebie. Dla wzorów wypełnienia zawierających kilka zamkniętych wieloboków, załączenie tego ustawienia znacznie skróci czas ruchów jałowych." #: fdmprinter.def.json msgctxt "infill_angles label" @@ -1613,17 +1614,17 @@ msgstr "Wzór wypełnienia jest przesunięty o tę odległość wzdłuż osi Y." #: fdmprinter.def.json msgctxt "infill_multiplier label" msgid "Infill Line Multiplier" -msgstr "" +msgstr "Mnożnik Linii Wypełnienia" #: fdmprinter.def.json msgctxt "infill_multiplier description" msgid "Convert each infill line to this many lines. The extra lines do not cross over each other, but avoid each other. This makes the infill stiffer, but increases print time and material usage." -msgstr "" +msgstr "Zmienia pojedynczą linię wypełnienia na zadaną ilość linii. Dodatkowe linie wypełnienia nie będą nad sobą przechodzić, ale będą się unikać. Sprawi to, że wypełnienie będzie sztywniejsze, ale czas druku oraz zużycie materiału zwiększą się." #: fdmprinter.def.json msgctxt "infill_wall_line_count label" msgid "Extra Infill Wall Count" -msgstr "" +msgstr "Ilość Dodatkowych Ścianek Wypełnienia" #: fdmprinter.def.json msgctxt "infill_wall_line_count description" @@ -1631,6 +1632,8 @@ msgid "" "Add extra walls around the infill area. Such walls can make top/bottom skin lines sag down less which means you need less top/bottom skin layers for the same quality at the cost of some extra material.\n" "This feature can combine with the Connect Infill Polygons to connect all the infill into a single extrusion path without the need for travels or retractions if configured right." msgstr "" +"Dodaje ścianki naokoło wypełnienia. Takie ścianki mogą spowodować, że linie górnej/dolnej powłoki będą zwisać mniej, co pozwoli na zastosowanie mniejszej ilości górnych/dolnych warstw przy zachowaniu takiej samej jakości kosztem dodatkowego materiału.\n" +"Ta funkcja może być używana razem z funkcją \"Połącz Wieloboki Wypełnienia\", aby połączyć całe wypełnienie w pojedynczą ścieżkę, co przy poprawnej konfiguracji wyelinimuje potrzebę wykonywania ruchów jałowych lub retrakcji." #: fdmprinter.def.json msgctxt "sub_div_rad_add label" @@ -1745,22 +1748,22 @@ msgstr "Nie generuj obszarów wypełnienia mniejszych niż to (zamiast tego uży #: fdmprinter.def.json msgctxt "infill_support_enabled label" msgid "Infill Support" -msgstr "" +msgstr "Wypełnienie Podporowe" #: fdmprinter.def.json msgctxt "infill_support_enabled description" msgid "Print infill structures only where tops of the model should be supported. Enabling this reduces print time and material usage, but leads to ununiform object strength." -msgstr "" +msgstr "Drukuj wypełnienie tylko w miejscach, w których górna część modelu powinna być podparta strukturą wewnętrzną. Załączenie tej funkcji skutkuje redukcją czasu druku, ale prowadzi do niejednolitej wytrzymałości obiektu." #: fdmprinter.def.json msgctxt "infill_support_angle label" msgid "Infill Overhang Angle" -msgstr "" +msgstr "Kąt Zwisu dla Wypełnienia" #: fdmprinter.def.json msgctxt "infill_support_angle description" msgid "The minimum angle of internal overhangs for which infill is added. At a value of 0° objects are totally filled with infill, 90° will not provide any infill." -msgstr "" +msgstr "Minimalny kąt zwisu wewnętrznego, dla którego zostanie dodane wypełnienie. Przy wartości 0° obiekty zostaną wypełnione całkowicie, natomiast przy 90° wypełnienie nie zostanie wygenerowane." #: fdmprinter.def.json msgctxt "skin_preshrink label" @@ -2095,12 +2098,12 @@ msgstr "Okno, w którym wymuszona jest maksymalna liczba retrakcji. Wartość ta #: fdmprinter.def.json msgctxt "limit_support_retractions label" msgid "Limit Support Retractions" -msgstr "" +msgstr "Ogranicz Retrakcje Pomiędzy Podporami" #: fdmprinter.def.json msgctxt "limit_support_retractions description" msgid "Omit retraction when moving from support to support in a straight line. Enabling this setting saves print time, but can lead to excesive stringing within the support structure." -msgstr "" +msgstr "Unikaj retrakcji podczas poruszania się od podpory do podpory w linii prostej. Załączenie tej funkcji spowoduje skrócenie czasu druku, lecz może prowadzić do nadmiernego nitkowania wewnątrz struktur podporowych." #: fdmprinter.def.json msgctxt "material_standby_temperature label" @@ -2210,7 +2213,7 @@ msgstr "Prędkość Wewn. Ściany" #: 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 "Szybkość, z jaką drukowane są ściany wewnętrzne. Drukowanie wewnętrznej ściany szybciej niż zewn. pozwoli skrócić czas druku. Zaleca się, aby ustawić to pomiędzy prędkością zewn. ściany, a prędkością wypełnienia" +msgstr "Szybkość, z jaką drukowane są ściany wewnętrzne. Drukowanie wewnętrznej ściany szybciej niż zewn. pozwoli skrócić czas druku. Zaleca się, aby ustawić to pomiędzy prędkością zewn. ściany, a prędkością wypełnienia." #: fdmprinter.def.json msgctxt "speed_roofing label" @@ -2781,6 +2784,8 @@ msgstr "Tryb Kombinowania" 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 and also to only comb within the infill. Note that the 'Within Infill' option behaves exactly like the 'Not in Skin' option in earlier Cura releases." msgstr "" +"Kombinowanie utrzymuje dyszę w już zadrukowanych obszarach podczas ruchu jałowego. Powoduje to nieco dłuższe ruchy jałowe, ale zmniejsza potrzebę retrakcji. Jeśli kombinowanie jest wyłączone, materiał się cofa, a dysza przemieszcza się w linii prostej do następnego punktu. Można też unikać kombinowania na górnych/dolnych obszarach powłoki, a także kombinować tylko wewnątrz wypełnienia. Opcja \"Wewnątrz Wypełnienia\" wymusza takie samo zachowanie, jak opcja \"Nie w Powłoce\" we wcześniejszych " +"wydaniach Cura." #: fdmprinter.def.json msgctxt "retraction_combing option off" @@ -2795,22 +2800,22 @@ msgstr "Wszędzie" #: fdmprinter.def.json msgctxt "retraction_combing option noskin" msgid "Not in Skin" -msgstr "" +msgstr "Nie w Powłoce" #: fdmprinter.def.json msgctxt "retraction_combing option infill" msgid "Within Infill" -msgstr "" +msgstr "Wewnątrz Wypełnienia" #: fdmprinter.def.json msgctxt "retraction_combing_max_distance label" msgid "Max Comb Distance With No Retract" -msgstr "" +msgstr "Max. Dystans Kombinowania Bez Retrakcji" #: fdmprinter.def.json msgctxt "retraction_combing_max_distance description" msgid "When non-zero, combing travel moves that are longer than this distance will use retraction." -msgstr "" +msgstr "Przy wartości niezerowej, kombinowane ruchy jałowe o dystansie większym niż zadany bedą używały retrakcji." #: fdmprinter.def.json msgctxt "travel_retract_before_outer_wall label" @@ -2835,12 +2840,12 @@ msgstr "Dysza unika już wydrukowanych części podczas ruchu jałowego. Ta opcj #: fdmprinter.def.json msgctxt "travel_avoid_supports label" msgid "Avoid Supports When Traveling" -msgstr "" +msgstr "Unikaj Podpór Podczas Ruchu Jałowego" #: fdmprinter.def.json msgctxt "travel_avoid_supports description" msgid "The nozzle avoids already printed supports when traveling. This option is only available when combing is enabled." -msgstr "" +msgstr "Dysza będzie omijała już wydrukowane podpory podczas ruchu jałowego. Ta opcja jest dostępna jedynie, gdy kombinowanie jest włączone." #: fdmprinter.def.json msgctxt "travel_avoid_distance label" @@ -3195,12 +3200,12 @@ msgstr "Krzyż" #: fdmprinter.def.json msgctxt "support_wall_count label" msgid "Support Wall Line Count" -msgstr "" +msgstr "Ilość Ścianek Podpory" #: fdmprinter.def.json msgctxt "support_wall_count description" msgid "The number of walls with which to surround support infill. Adding a wall can make support print more reliably and can support overhangs better, but increases print time and material used." -msgstr "" +msgstr "Liczba ścianek otaczających wypełnienie podpory. Dodanie ścianki może sprawić, że podpory będą drukowane solidniej i będą mogły lepiej podpierać nawisy, ale wydłuży to czas druku i zwiększy ilość użytego materiału." #: fdmprinter.def.json msgctxt "zig_zaggify_support label" @@ -3245,22 +3250,22 @@ msgstr "Odległość między drukowanymi liniami struktury podpory. To ustawieni #: fdmprinter.def.json msgctxt "support_initial_layer_line_distance label" msgid "Initial Layer Support Line Distance" -msgstr "" +msgstr "Odstęp Między Liniami Podpory w Pocz. Warstwie" #: fdmprinter.def.json msgctxt "support_initial_layer_line_distance description" msgid "Distance between the printed initial layer support structure lines. This setting is calculated by the support density." -msgstr "" +msgstr "Odległość między drukowanymi liniami struktury podpory w początkowej warstwie. To ustawienie jest obliczane na podstawie gęstości podpory." #: fdmprinter.def.json msgctxt "support_infill_angle label" msgid "Support Infill Line Direction" -msgstr "" +msgstr "Kierunek Linii Wypełnienia Podpory" #: fdmprinter.def.json msgctxt "support_infill_angle description" msgid "Orientation of the infill pattern for supports. The support infill pattern is rotated in the horizontal plane." -msgstr "" +msgstr "Orientacja wzoru wypełnienia dla podpór. Wzór podpory jest obracany w płaszczyźnie poziomej." #: fdmprinter.def.json msgctxt "support_z_distance label" @@ -3630,22 +3635,22 @@ msgstr "Zygzak" #: fdmprinter.def.json msgctxt "support_fan_enable label" msgid "Fan Speed Override" -msgstr "" +msgstr "Nadpisanie Prędkości Wentylatora" #: fdmprinter.def.json msgctxt "support_fan_enable description" msgid "When enabled, the print cooling fan speed is altered for the skin regions immediately above the support." -msgstr "" +msgstr "Gdy załączone, prędkość wentylatora chłodzącego wydruk jest zmieniana dla obszarów leżących bezpośrednio ponad podporami," #: fdmprinter.def.json msgctxt "support_supported_skin_fan_speed label" msgid "Supported Skin Fan Speed" -msgstr "" +msgstr "Prędkość Wentylatora Podpartej Powłoki" #: fdmprinter.def.json msgctxt "support_supported_skin_fan_speed description" msgid "Percentage fan speed to use when printing the skin regions immediately above the support. Using a high fan speed can make the support easier to remove." -msgstr "" +msgstr "Procentowa prędkść wentylatora, która zostanie użyta podczas drukowania obszarów powłoki leżących bezpośrednio nad podstawami. Użycie wysokiej prędkości może ułatwić usuwanie podpór." #: fdmprinter.def.json msgctxt "support_use_towers label" @@ -3974,7 +3979,7 @@ msgstr "Szerokość linii na podstawowej warstwie tratwy. Powinny być to grube #: fdmprinter.def.json msgctxt "raft_base_line_spacing label" msgid "Raft Base Line Spacing" -msgstr "" +msgstr "Rozstaw Linii Podstawy Tratwy" #: fdmprinter.def.json msgctxt "raft_base_line_spacing description" @@ -4069,7 +4074,7 @@ msgstr "Zryw Tratwy" #: fdmprinter.def.json msgctxt "raft_jerk description" msgid "The jerk with which the raft is printed." -msgstr "Zryw, z jakim drukowana jest tratwa" +msgstr "Zryw, z jakim drukowana jest tratwa." #: fdmprinter.def.json msgctxt "raft_surface_jerk label" @@ -4719,12 +4724,12 @@ msgstr "Dane łączące przepływ materiału (w mm3 na sekundę) z temperaturą #: fdmprinter.def.json msgctxt "minimum_polygon_circumference label" msgid "Minimum Polygon Circumference" -msgstr "" +msgstr "Minimalny Obwód Wieloboku" #: fdmprinter.def.json msgctxt "minimum_polygon_circumference description" msgid "Polygons in sliced layers that have a circumference smaller than this amount will be filtered out. Lower values lead to higher resolution mesh at the cost of slicing time. It is meant mostly for high resolution SLA printers and very tiny 3D models with a lot of details." -msgstr "" +msgstr "Wieloboki w pociętych warstwach mające obwód mniejszy, niż podany, będą odfiltrowane. Mniejsze wartości dają wyższą rozdzielczość siatki kosztem czasu cięcia. Funkcja ta jest przeznaczona głównie dla drukarek wysokiej rozdzielczości SLA oraz bardzo małych modeli z dużą ilością detali." #: fdmprinter.def.json msgctxt "meshfix_maximum_resolution label" @@ -4739,12 +4744,12 @@ msgstr "Minimalny rozmiar linii segmentu po pocięciu. Jeżeli to zwiększysz, s #: fdmprinter.def.json msgctxt "meshfix_maximum_travel_resolution label" msgid "Maximum Travel Resolution" -msgstr "" +msgstr "Maksymalna Rozdzielczość Ruchów Jałowych" #: fdmprinter.def.json msgctxt "meshfix_maximum_travel_resolution description" msgid "The minimum size of a travel line segment after slicing. If you increase this, the travel moves will have less smooth corners. This may allow the printer to keep up with the speed it has to process g-code, but it may cause model avoidance to become less accurate." -msgstr "" +msgstr "Minimalny rozmiar segmentu linii ruchu jałowego po pocięciu. Jeżeli ta wartość zostanie zwiększona, ruch jałowy będzie miał mniej gładkie zakręty. Może to spowodować przyspieszenie prędkości przetwarzania g-code, ale unikanie modelu może być mniej dokładne." #: fdmprinter.def.json msgctxt "support_skip_some_zags label" @@ -4909,22 +4914,22 @@ msgstr "Rozmiar kieszeni na czterostronnych skrzyżowaniach we wzorze krzyż 3D #: fdmprinter.def.json msgctxt "cross_infill_density_image label" msgid "Cross Infill Density Image" -msgstr "" +msgstr "Gęstośc Wypełnienia Krzyżowego Według Obrazu" #: fdmprinter.def.json msgctxt "cross_infill_density_image description" msgid "The file location of an image of which the brightness values determine the minimal density at the corresponding location in the infill of the print." -msgstr "" +msgstr "Lokalizacja pliku obrazu, którego jasność będzie determinowała minimalną gęstość wypełnienia wydruku w danym punkcie." #: fdmprinter.def.json msgctxt "cross_support_density_image label" msgid "Cross Fill Density Image for Support" -msgstr "" +msgstr "Gęstości Wypełnienia Krzyżowego Podstaw Według Obrazu" #: fdmprinter.def.json msgctxt "cross_support_density_image description" msgid "The file location of an image of which the brightness values determine the minimal density at the corresponding location in the support." -msgstr "" +msgstr "Lokalizacja pliku obrazu, którego jasność będzie determinowała minimalną gęstość wypełnienia podstawy w danym punkcie." #: fdmprinter.def.json msgctxt "spaghetti_infill_enabled label" @@ -5174,7 +5179,7 @@ msgstr "DD Przepływ" #: 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 "Kompensacja przepływu: ilość wytłaczanego materiału jest mnożona przez tę wartość. Odnosi się tylko do Drukowania Drutu. " +msgstr "Kompensacja przepływu: ilość wytłaczanego materiału jest mnożona przez tę wartość. Odnosi się tylko do Drukowania Drutu." #: fdmprinter.def.json msgctxt "wireframe_flow_connection label" @@ -5258,7 +5263,7 @@ msgstr "DD Spadek" #: 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 "Odległość o jaką spada materiału przez wytłaczanie w górę. Długość ta jest kompensowana. Odnosi się tylko do Drukowania Drutu" +msgstr "Odległość o jaką spada materiału przez wytłaczanie w górę. Długość ta jest kompensowana. Odnosi się tylko do Drukowania Drutu." #: fdmprinter.def.json msgctxt "wireframe_drag_along label" @@ -5363,7 +5368,7 @@ msgstr "Maks. zmiana zmiennych warstw" #: fdmprinter.def.json msgctxt "adaptive_layer_height_variation description" msgid "The maximum allowed height different from the base layer height." -msgstr "" +msgstr "Maksymalna dozwolona różnica wysokości względem bazowej wysokości warstwy." #: fdmprinter.def.json msgctxt "adaptive_layer_height_variation_step label" @@ -5388,22 +5393,22 @@ msgstr "Opóźnienie w wyborze, czy użyć mniejszej warstwy, czy nie. Ta liczba #: fdmprinter.def.json msgctxt "wall_overhang_angle label" msgid "Overhanging Wall Angle" -msgstr "" +msgstr "Kąt Nawisającej Ścianki" #: fdmprinter.def.json msgctxt "wall_overhang_angle description" msgid "Walls that overhang more than this angle will be printed using overhanging wall settings. When the value is 90, no walls will be treated as overhanging." -msgstr "" +msgstr "Ścianka o większym kącie nawisu niż podany będzie drukowana z użyciem ustawień nawisającej ścianki. Przy wartości 90°, żadna ścianka nie będzie traktowana jako ścianka nawisająca." #: fdmprinter.def.json msgctxt "wall_overhang_speed_factor label" msgid "Overhanging Wall Speed" -msgstr "" +msgstr "Prędkość Ścianki Nawisającej" #: fdmprinter.def.json msgctxt "wall_overhang_speed_factor description" msgid "Overhanging walls will be printed at this percentage of their normal print speed." -msgstr "" +msgstr "Nawisające ścianki będą drukowane z taką procentową wartością względem normalnej prędkości druku." #: fdmprinter.def.json msgctxt "bridge_settings_enabled label" @@ -5608,7 +5613,7 @@ msgstr "Ustawienia, które są używane tylko wtedy, gdy CuraEngine nie jest wyw #: fdmprinter.def.json msgctxt "center_object label" msgid "Center Object" -msgstr "" +msgstr "Wyśrodkuj obiekt" #: fdmprinter.def.json msgctxt "center_object description" @@ -5618,7 +5623,7 @@ msgstr "Czy wyśrodkować obiekt na środku stołu (0,0), zamiast używać ukła #: fdmprinter.def.json msgctxt "mesh_position_x label" msgid "Mesh Position X" -msgstr "" +msgstr "Pozycja Siatki w X" #: fdmprinter.def.json msgctxt "mesh_position_x description" @@ -5628,7 +5633,7 @@ msgstr "Przesunięcie zastosowane dla obiektu w kierunku X." #: fdmprinter.def.json msgctxt "mesh_position_y label" msgid "Mesh Position Y" -msgstr "" +msgstr "Pozycja Siatki w Y" #: fdmprinter.def.json msgctxt "mesh_position_y description" @@ -5638,7 +5643,7 @@ msgstr "Przesunięcie zastosowane dla obiektu w kierunku Y." #: fdmprinter.def.json msgctxt "mesh_position_z label" msgid "Mesh Position Z" -msgstr "" +msgstr "Pozycja Siatki w Z" #: fdmprinter.def.json msgctxt "mesh_position_z description" From d5c86365f86a7eee90539a25ebc8613cb9b5dc8f Mon Sep 17 00:00:00 2001 From: THeijmans Date: Wed, 26 Sep 2018 15:02:25 +0200 Subject: [PATCH 16/22] S5 profile optimizations Removing the prime blob, equalizing flows and avoiding supports. --- resources/definitions/ultimaker_s5.def.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/resources/definitions/ultimaker_s5.def.json b/resources/definitions/ultimaker_s5.def.json index 115c84c0db..2024acdf73 100644 --- a/resources/definitions/ultimaker_s5.def.json +++ b/resources/definitions/ultimaker_s5.def.json @@ -63,7 +63,7 @@ "machine_end_gcode": { "default_value": "" }, "prime_tower_position_x": { "default_value": 345 }, "prime_tower_position_y": { "default_value": 222.5 }, - "prime_blob_enable": { "enabled": true }, + "prime_blob_enable": { "enabled": false }, "speed_travel": { @@ -127,6 +127,7 @@ "retraction_min_travel": { "value": "5" }, "retraction_prime_speed": { "value": "15" }, "skin_overlap": { "value": "10" }, + "speed_equalize_flow_enabled": { "value": "True" }, "speed_layer_0": { "value": "20" }, "speed_prime_tower": { "value": "speed_topbottom" }, "speed_print": { "value": "35" }, @@ -145,6 +146,7 @@ "switch_extruder_prime_speed": { "value": "15" }, "switch_extruder_retraction_amount": { "value": "8" }, "top_bottom_thickness": { "value": "1" }, + "travel_avoid_supports": { "value": "True" }, "travel_avoid_distance": { "value": "3 if extruders_enabled_count > 1 else machine_nozzle_tip_outer_diameter / 2 * 1.5" }, "wall_0_inset": { "value": "0" }, "wall_line_width_x": { "value": "round(line_width * 0.3 / 0.35, 2)" }, From 9bd4ab2faa1065c91d87b33cf9cd90bc74301975 Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Fri, 28 Sep 2018 10:46:14 +0200 Subject: [PATCH 17/22] Added unittest for PrintInformation class --- cura/PrintInformation.py | 12 ++-- tests/TestPrintInformation.py | 107 ++++++++++++++++++++++++++++++++++ 2 files changed, 114 insertions(+), 5 deletions(-) create mode 100644 tests/TestPrintInformation.py diff --git a/cura/PrintInformation.py b/cura/PrintInformation.py index 8527da1b8a..85cf6651fa 100644 --- a/cura/PrintInformation.py +++ b/cura/PrintInformation.py @@ -10,7 +10,6 @@ from typing import Dict from PyQt5.QtCore import QObject, pyqtSignal, pyqtProperty, pyqtSlot -from UM.i18n import i18nCatalog from UM.Logger import Logger from UM.Qt.Duration import Duration from UM.Scene.SceneNode import SceneNode @@ -52,6 +51,8 @@ class PrintInformation(QObject): super().__init__(parent) self._application = application + self.UNTITLED_JOB_NAME = "Untitled" + self.initializeCuraMessagePrintTimeProperties() self._material_lengths = {} # indexed by build plate number @@ -70,12 +71,13 @@ class PrintInformation(QObject): self._base_name = "" self._abbr_machine = "" self._job_name = "" - self._project_name = "" self._active_build_plate = 0 self._initVariablesWithBuildPlate(self._active_build_plate) self._multi_build_plate_model = self._application.getMultiBuildPlateModel() + ss = self._multi_build_plate_model.maxBuildPlate + self._application.globalContainerStackChanged.connect(self._updateJobName) self._application.globalContainerStackChanged.connect(self.setToZeroPrintInformation) self._application.fileLoaded.connect(self.setBaseName) @@ -300,13 +302,13 @@ class PrintInformation(QObject): def _updateJobName(self): if self._base_name == "": - self._job_name = "Untitled" + self._job_name = self.UNTITLED_JOB_NAME self._is_user_specified_job_name = False self.jobNameChanged.emit() return base_name = self._stripAccents(self._base_name) - self._setAbbreviatedMachineName() + self._defineAbbreviatedMachineName() # Only update the job name when it's not user-specified. if not self._is_user_specified_job_name: @@ -382,7 +384,7 @@ class PrintInformation(QObject): ## Created an acronym-like abbreviated machine name from the currently # active machine name. # Called each time the global stack is switched. - def _setAbbreviatedMachineName(self): + def _defineAbbreviatedMachineName(self): global_container_stack = self._application.getGlobalContainerStack() if not global_container_stack: self._abbr_machine = "" diff --git a/tests/TestPrintInformation.py b/tests/TestPrintInformation.py new file mode 100644 index 0000000000..a226a437c6 --- /dev/null +++ b/tests/TestPrintInformation.py @@ -0,0 +1,107 @@ + +from cura import PrintInformation + +from unittest.mock import MagicMock, patch +from UM.Application import Application +from UM.MimeTypeDatabase import MimeTypeDatabase, MimeType + + +def getPrintInformation(printer_name) -> PrintInformation: + + mock_application = MagicMock() + + global_container_stack = MagicMock() + global_container_stack.definition.getName = MagicMock(return_value=printer_name) + mock_application.getGlobalContainerStack = MagicMock(return_value=global_container_stack) + + multiBuildPlateModel = MagicMock() + multiBuildPlateModel.maxBuildPlate = 0 + mock_application.getMultiBuildPlateModel = MagicMock(return_value=multiBuildPlateModel) + + Application.getInstance = MagicMock(return_type=mock_application) + + with patch("json.loads", lambda x: {}): + print_information = PrintInformation.PrintInformation(mock_application) + + return print_information + +def setup_module(): + MimeTypeDatabase.addMimeType( + MimeType( + name="application/vnd.ms-package.3dmanufacturing-3dmodel+xml", + comment="3MF", + suffixes=["3mf"] + ) + ) + + MimeTypeDatabase.addMimeType( + MimeType( + name="application/x-cura-gcode-file", + comment="Cura GCode File", + suffixes=["gcode"] + ) + ) + + + +def test_setProjectName(): + + print_information = getPrintInformation("ultimaker") + + # Test simple name + project_name = ["HelloWorld",".3mf"] + print_information.setProjectName(project_name[0] + project_name[1]) + assert "UM_" + project_name[0] == print_information._job_name + + # Test the name with one dot + project_name = ["Hello.World",".3mf"] + print_information.setProjectName(project_name[0] + project_name[1]) + assert "UM_" + project_name[0] == print_information._job_name + + # Test the name with two dot + project_name = ["Hello.World.World",".3mf"] + print_information.setProjectName(project_name[0] + project_name[1]) + assert "UM_" + project_name[0] == print_information._job_name + + # Test the name with dot at the beginning + project_name = [".Hello.World",".3mf"] + print_information.setProjectName(project_name[0] + project_name[1]) + assert "UM_" + project_name[0] == print_information._job_name + + # Test the name with underline + project_name = ["Hello_World",".3mf"] + print_information.setProjectName(project_name[0] + project_name[1]) + assert "UM_" + project_name[0] == print_information._job_name + + # Test gcode extension + project_name = ["Hello_World",".gcode"] + print_information.setProjectName(project_name[0] + project_name[1]) + assert "UM_" + project_name[0] == print_information._job_name + + # Test empty project name + project_name = ["",""] + print_information.setProjectName(project_name[0] + project_name[1]) + assert print_information.UNTITLED_JOB_NAME == print_information._job_name + + # Test wrong file extension + project_name = ["Hello_World",".test"] + print_information.setProjectName(project_name[0] + project_name[1]) + assert "UM_" + project_name[0] != print_information._job_name + +def test_setJobName(): + + print_information = getPrintInformation("ultimaker") + + print_information._abbr_machine = "UM" + print_information.setJobName("UM_HelloWorld", is_user_specified_job_name=False) + + +def test_defineAbbreviatedMachineName(): + printer_name = "Test" + + print_information = getPrintInformation(printer_name) + + # Test not ultimaker printer, name suffix should have first letter from the printer name + project_name = ["HelloWorld",".3mf"] + print_information.setProjectName(project_name[0] + project_name[1]) + assert printer_name[0] + "_" + project_name[0] == print_information._job_name \ No newline at end of file From 4a4b0960520de86f538f7848fed16385740b6881 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 28 Sep 2018 11:53:03 +0200 Subject: [PATCH 18/22] Only send uppercase g-code via custom commands Because most printers don't understand anything other than uppercase. Fixes #4178. --- cura/PrinterOutput/GenericOutputController.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/PrinterOutput/GenericOutputController.py b/cura/PrinterOutput/GenericOutputController.py index e6310e5bff..95e65b2f0b 100644 --- a/cura/PrinterOutput/GenericOutputController.py +++ b/cura/PrinterOutput/GenericOutputController.py @@ -66,7 +66,7 @@ class GenericOutputController(PrinterOutputController): self._output_device.sendCommand("G28 Z") def sendRawCommand(self, printer: "PrinterOutputModel", command: str): - self._output_device.sendCommand(command) + self._output_device.sendCommand(command.upper()) #Most printers only understand uppercase g-code commands. def setJobState(self, job: "PrintJobOutputModel", state: str): if state == "pause": From ef5f9bb0d45d4a8972b5b975873d0400fce9f794 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 28 Sep 2018 12:01:20 +0200 Subject: [PATCH 19/22] Improve warning when saving g-code before slicing This terminology is more consistent with what the rest of the interface uses. Discovered during work on #4112. --- plugins/GCodeWriter/GCodeWriter.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/GCodeWriter/GCodeWriter.py b/plugins/GCodeWriter/GCodeWriter.py index 5d5e3578cd..3e5bf59e73 100644 --- a/plugins/GCodeWriter/GCodeWriter.py +++ b/plugins/GCodeWriter/GCodeWriter.py @@ -70,7 +70,7 @@ class GCodeWriter(MeshWriter): active_build_plate = Application.getInstance().getMultiBuildPlateModel().activeBuildPlate scene = Application.getInstance().getController().getScene() if not hasattr(scene, "gcode_dict"): - self.setInformation(catalog.i18nc("@warning:status", "Please generate G-code before saving.")) + self.setInformation(catalog.i18nc("@warning:status", "Please prepare G-code before exporting.")) return False gcode_dict = getattr(scene, "gcode_dict") gcode_list = gcode_dict.get(active_build_plate, None) @@ -86,7 +86,7 @@ class GCodeWriter(MeshWriter): stream.write(settings) return True - self.setInformation(catalog.i18nc("@warning:status", "Please generate G-code before saving.")) + self.setInformation(catalog.i18nc("@warning:status", "Please prepare G-code before exporting.")) return False ## Create a new container with container 2 as base and container 1 written over it. From a68a591c18c68ab5e8271a4628e5a1f23d7883b1 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Fri, 28 Sep 2018 13:07:18 +0200 Subject: [PATCH 20/22] Correct typo leading to infinite recursion. --- cura/Scene/ConvexHullDecorator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/Scene/ConvexHullDecorator.py b/cura/Scene/ConvexHullDecorator.py index 31e21df6bf..aca5d866be 100644 --- a/cura/Scene/ConvexHullDecorator.py +++ b/cura/Scene/ConvexHullDecorator.py @@ -241,7 +241,7 @@ class ConvexHullDecorator(SceneNodeDecorator): return Polygon() def _compute2DConvexHeadFull(self) -> Optional[Polygon]: - convex_hull = self._compute2DConvexHeadFull() + convex_hull = self._compute2DConvexHull() if convex_hull: return convex_hull.getMinkowskiHull(self._getHeadAndFans()) return None From 046fca5d0faa8af26bf886fb1a765be20a37d22d Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 27 Sep 2018 19:31:45 +0200 Subject: [PATCH 21/22] Align the "Enable Gradual" text with the corresponding checkbox. --- resources/qml/SidebarSimple.qml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index e962d7fc8f..ec673f2823 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -784,8 +784,10 @@ Item Label { id: gradualInfillLabel + height: parent.height anchors.left: enableGradualInfillCheckBox.right anchors.leftMargin: Math.round(UM.Theme.getSize("sidebar_margin").width / 2) + verticalAlignment: Text.AlignVCenter; text: catalog.i18nc("@label", "Enable gradual") font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") From 3f8b7fb6aff9b0e3afa1fe0598becf639c2e604a Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Mon, 1 Oct 2018 11:30:21 +0200 Subject: [PATCH 22/22] Fix: Switches to 'Prepare' always go through 'Recomended' mode CURA-5731 --- resources/qml/PrepareSidebar.qml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/resources/qml/PrepareSidebar.qml b/resources/qml/PrepareSidebar.qml index 78b6a22ef9..fe0fb033f7 100644 --- a/resources/qml/PrepareSidebar.qml +++ b/resources/qml/PrepareSidebar.qml @@ -14,7 +14,7 @@ Rectangle { id: base - property int currentModeIndex + property int currentModeIndex: -1 property bool hideSettings: PrintInformation.preSliced property bool hideView: Cura.MachineManager.activeMachineName == "" @@ -262,7 +262,6 @@ Rectangle ListView { id: modesList - property var index: 0 model: modesListModel delegate: wizardDelegate anchors.top: parent.top @@ -582,13 +581,17 @@ Rectangle tooltipText: catalog.i18nc("@tooltip", "Custom Print Setup

Print with finegrained control over every last bit of the slicing process."), item: sidebarAdvanced }) - sidebarContents.replace(modesListModel.get(base.currentModeIndex).item, { "immediate": true }) var index = Math.round(UM.Preferences.getValue("cura/active_mode")) - if(index) + + if(index != null && !isNaN(index)) { currentModeIndex = index; } + else + { + currentModeIndex = 0; + } } UM.SettingPropertyProvider