diff --git a/.gitignore b/.gitignore index 1db07180c0..3ee62405a2 100644 --- a/.gitignore +++ b/.gitignore @@ -30,9 +30,6 @@ cura.desktop .pydevproject .settings -# Debian packaging -debian* - #Externally located plug-ins. plugins/Doodle3D-cura-plugin plugins/GodMode diff --git a/README.md b/README.md index 08d7647893..b843be9a66 100644 --- a/README.md +++ b/README.md @@ -14,10 +14,12 @@ For crashes and similar issues, please attach the following information: * (On Windows) The log as produced by dxdiag (start -> run -> dxdiag -> save output) * The Cura GUI log file, located at - * $User/AppData/Roaming/cura/``/cura.log (Windows) + * %APPDATA%\cura\\``\cura.log (Windows), or usually C:\Users\\``\AppData\Roaming\cura\\``\cura.log * $User/Library/Application Support/cura/``/cura.log (OSX) * $USER/.local/share/cura/``/cura.log (Ubuntu/Linux) +If the Cura user interface still starts, you can also reach this directory from the application menu in Help -> Show settings folder + Dependencies ------------ @@ -43,7 +45,6 @@ Please checkout [cura-build](https://github.com/Ultimaker/cura-build) Third party plugins ------------- -* [Print Cost Calculator](https://github.com/nallath/PrintCostCalculator): Calculates weight and monetary cost of your print. * [Post Processing Plugin](https://github.com/nallath/PostProcessingPlugin): Allows for post-processing scripts to run on g-code. * [Barbarian Plugin](https://github.com/nallath/BarbarianPlugin): Simple scale tool for imperial to metric. * [X3G Writer](https://github.com/Ghostkeeper/X3GWriter): Adds support for exporting X3G files. @@ -62,8 +63,30 @@ There are two ways of doing it. You can either use the generator [here](http://q * Set your machine's dimensions with machine_width, machine_depth, and machine_height * If your printer's origin is in the center of the bed, set machine_center_is_zero to true. * Set your print head dimensions with the machine_head_shape parameters -* Set the nozzle offset with machine_nozzle_offset_x_1 and machine_nozzle_offset_y1 +* Set the nozzle offset with machine_nozzle_offset_x and machine_nozzle_offset_y * Set the start and end gcode in machine_start_gcode and machine_end_gcode * If your printer has a heated bed, set visible to true under material_bed_temperature Once you are done, put the profile you have made into resources/definitions, or in definitions in your cura profile folder. + +Translating Cura +---------------- +If you'd like to contribute a translation of Cura, please first look for [any existing translation](https://github.com/Ultimaker/Cura/tree/master/resources/i18n). If your language is already there in the source code but not in Cura's interface, it may be partially translated. + +There are four files that need to be translated for Cura: +1. https://github.com/Ultimaker/Cura/blob/master/resources/i18n/cura.pot +2. https://github.com/Ultimaker/Cura/blob/master/resources/i18n/fdmextruder.def.json.pot +3. https://github.com/Ultimaker/Cura/blob/master/resources/i18n/fdmprinter.def.json.pot (This one is the most work.) +4. https://github.com/Ultimaker/Uranium/blob/master/resources/i18n/uranium.pot + +Copy these files and rename them to `*.po` (remove the `t`). Then create the actual translations by filling in the empty `msgstr` entries. These are gettext files, which are plain text so you can open them with any text editor such as Notepad or GEdit, but it is probably easier with a specialised tool such as [POEdit](https://poedit.net/) or [Virtaal](http://virtaal.translatehouse.org/). + +Do not hestiate to ask us about a translation or the meaning of some text via Github Issues. + +Once the translation is complete, it's probably best to test them in Cura. Use your favourite software to convert the .po file to a .mo file (such as [GetText](https://www.gnu.org/software/gettext/)). Then put the .mo files in the `.../resources/i18n//LC_MESSAGES` folder in your Cura installation. Then find your Cura configuration file (next to the log as described above, except on Linux where it is located in `~/.config/cura`) and change the language preference to the name of the folder you just created. Then start Cura. If working correctly, your Cura should now be translated. + +To submit your translation, ideally you would make two pull requests where all `*.po` files are located in that same `` folder in the resources of both the Cura and Uranium repositories. Put `cura.po`, `fdmprinter.def.json.po` and `fdmextruder.def.json.po` in the Cura repository, and put `uranium.po` in the Uranium repository. Then submit the pull requests to Github. For people with less experience with Git, you can also e-mail the translations to the e-mail address listed at the top of the [cura.pot](https://github.com/Ultimaker/Cura/blob/master/resources/i18n/cura.pot) file as the `Report-Msgid-Bugs-To` entry and we'll make sure it gets checked and included. + +After the translation is submitted, the Cura maintainers will check for its completeness and check whether it is consistent. We will take special care to look for common mistakes, such as translating mark-up `` code and such. We are often not fluent in every language, so we expect the translator and the international users to make corrections where necessary. Of course, there will always be some mistakes in every translation. + +When the next Cura release comes around, some of the texts will have changed and some new texts will have been added. Around the time when the beta is released we will invoke a string freeze, meaning that no developer is allowed to make changes to the texts. Then we will update the translation template `.pot` files and ask all our translators to update their translations. If you are unable to update the translation in time for the actual release, we will remove the language from the drop-down menu in the Preferences window. The translation stays in Cura however, so that someone might pick it up again later and update it with the newest texts. Also, users who had previously selected the language can still continue Cura in their language but English text will appear among the original text. \ No newline at end of file diff --git a/cura/BuildVolume.py b/cura/BuildVolume.py index 290b8ee2de..7c965c6cdf 100755 --- a/cura/BuildVolume.py +++ b/cura/BuildVolume.py @@ -104,7 +104,6 @@ class BuildVolume(SceneNode): # but it does not update the disallowed areas after material change Application.getInstance().getMachineManager().activeStackChanged.connect(self._onStackChanged) - def _onSceneChanged(self, source): if self._global_container_stack: self._change_timer.start() @@ -528,6 +527,10 @@ class BuildVolume(SceneNode): self._updateExtraZClearance() rebuild_me = True + if setting_key in self._limit_to_extruder_settings: + self._updateDisallowedAreas() + rebuild_me = True + if rebuild_me: self.rebuild() @@ -637,7 +640,7 @@ class BuildVolume(SceneNode): result[extruder.getId()] = [] #Currently, the only normally printed object is the prime tower. - if ExtruderManager.getInstance().getResolveOrValue("prime_tower_enable") == True: + if ExtruderManager.getInstance().getResolveOrValue("prime_tower_enable"): prime_tower_size = self._global_container_stack.getProperty("prime_tower_size", "value") machine_width = self._global_container_stack.getProperty("machine_width", "value") machine_depth = self._global_container_stack.getProperty("machine_depth", "value") @@ -678,7 +681,7 @@ class BuildVolume(SceneNode): for extruder in used_extruders: prime_blob_enabled = extruder.getProperty("prime_blob_enable", "value") prime_x = extruder.getProperty("extruder_prime_pos_x", "value") - prime_y = - extruder.getProperty("extruder_prime_pos_y", "value") + prime_y = -extruder.getProperty("extruder_prime_pos_y", "value") #Ignore extruder prime position if it is not set or if blob is disabled if (prime_x == 0 and prime_y == 0) or not prime_blob_enabled: @@ -717,6 +720,11 @@ class BuildVolume(SceneNode): polygon = polygon.getMinkowskiHull(Polygon.approximatedCircle(border_size)) machine_disallowed_polygons.append(polygon) + # For certain machines we don't need to compute disallowed areas for each nozzle. + # So we check here and only do the nozzle offsetting if needed. + nozzle_offsetting_for_disallowed_areas = self._global_container_stack.getMetaDataEntry( + "nozzle_offsetting_for_disallowed_areas", True) + result = {} for extruder in used_extruders: extruder_id = extruder.getId() @@ -736,14 +744,22 @@ class BuildVolume(SceneNode): right_unreachable_border = 0 top_unreachable_border = 0 bottom_unreachable_border = 0 - #The build volume is defined as the union of the area that all extruders can reach, so we need to know the relative offset to all extruders. - for other_extruder in ExtruderManager.getInstance().getActiveExtruderStacks(): - other_offset_x = other_extruder.getProperty("machine_nozzle_offset_x", "value") - other_offset_y = other_extruder.getProperty("machine_nozzle_offset_y", "value") - left_unreachable_border = min(left_unreachable_border, other_offset_x - offset_x) - right_unreachable_border = max(right_unreachable_border, other_offset_x - offset_x) - top_unreachable_border = min(top_unreachable_border, other_offset_y - offset_y) - bottom_unreachable_border = max(bottom_unreachable_border, other_offset_y - offset_y) + + # Only do nozzle offsetting if needed + if nozzle_offsetting_for_disallowed_areas: + #The build volume is defined as the union of the area that all extruders can reach, so we need to know the relative offset to all extruders. + for other_extruder in ExtruderManager.getInstance().getActiveExtruderStacks(): + other_offset_x = other_extruder.getProperty("machine_nozzle_offset_x", "value") + if other_offset_x is None: + other_offset_x = 0 + other_offset_y = other_extruder.getProperty("machine_nozzle_offset_y", "value") + if other_offset_y is None: + other_offset_y = 0 + other_offset_y = -other_offset_y + left_unreachable_border = min(left_unreachable_border, other_offset_x - offset_x) + right_unreachable_border = max(right_unreachable_border, other_offset_x - offset_x) + top_unreachable_border = min(top_unreachable_border, other_offset_y - offset_y) + bottom_unreachable_border = max(bottom_unreachable_border, other_offset_y - offset_y) half_machine_width = self._global_container_stack.getProperty("machine_width", "value") / 2 half_machine_depth = self._global_container_stack.getProperty("machine_depth", "value") / 2 @@ -892,6 +908,7 @@ class BuildVolume(SceneNode): if not self._global_container_stack: return 0 container_stack = self._global_container_stack + used_extruders = ExtruderManager.getInstance().getUsedExtruderStacks() # If we are printing one at a time, we need to add the bed adhesion size to the disallowed areas of the objects if container_stack.getProperty("print_sequence", "value") == "one_at_a_time": @@ -901,21 +918,19 @@ class BuildVolume(SceneNode): if adhesion_type == "skirt": skirt_distance = self._getSettingFromAdhesionExtruder("skirt_gap") skirt_line_count = self._getSettingFromAdhesionExtruder("skirt_line_count") - bed_adhesion_size = skirt_distance + (skirt_line_count * self._getSettingFromAdhesionExtruder("skirt_brim_line_width")) - if len(ExtruderManager.getInstance().getUsedExtruderStacks()) > 1: - adhesion_extruder_nr = int(self._global_container_stack.getProperty("adhesion_extruder_nr", "value")) - extruder_values = ExtruderManager.getInstance().getAllExtruderValues("skirt_brim_line_width") - del extruder_values[adhesion_extruder_nr] # Remove the value of the adhesion extruder nr. - for value in extruder_values: - bed_adhesion_size += value + bed_adhesion_size = skirt_distance + (skirt_line_count * self._getSettingFromAdhesionExtruder("skirt_brim_line_width")) * self._getSettingFromAdhesionExtruder("initial_layer_line_width_factor") / 100.0 + if len(used_extruders) > 1: + for extruder_stack in used_extruders: + bed_adhesion_size += extruder_stack.getProperty("skirt_brim_line_width", "value") * extruder_stack.getProperty("initial_layer_line_width_factor", "value") / 100.0 + #We don't create an additional line for the extruder we're printing the skirt with. + bed_adhesion_size -= self._getSettingFromAdhesionExtruder("skirt_brim_line_width", "value") * self._getSettingFromAdhesionExtruder("initial_layer_line_width_factor", "value") / 100.0 elif adhesion_type == "brim": - bed_adhesion_size = self._getSettingFromAdhesionExtruder("brim_line_count") * self._getSettingFromAdhesionExtruder("skirt_brim_line_width") + bed_adhesion_size = self._getSettingFromAdhesionExtruder("brim_line_count") * self._getSettingFromAdhesionExtruder("skirt_brim_line_width") * self._getSettingFromAdhesionExtruder("initial_layer_line_width_factor") / 100.0 if self._global_container_stack.getProperty("machine_extruder_count", "value") > 1: - adhesion_extruder_nr = int(self._global_container_stack.getProperty("adhesion_extruder_nr", "value")) - extruder_values = ExtruderManager.getInstance().getAllExtruderValues("skirt_brim_line_width") - del extruder_values[adhesion_extruder_nr] # Remove the value of the adhesion extruder nr. - for value in extruder_values: - bed_adhesion_size += value + for extruder_stack in used_extruders: + bed_adhesion_size += extruder_stack.getProperty("skirt_brim_line_width", "value") * extruder_stack.getProperty("initial_layer_line_width_factor", "value") / 100.0 + #We don't create an additional line for the extruder we're printing the brim with. + bed_adhesion_size -= self._getSettingFromAdhesionExtruder("skirt_brim_line_width", "value") * self._getSettingFromAdhesionExtruder("initial_layer_line_width_factor", "value") / 100.0 elif adhesion_type == "raft": bed_adhesion_size = self._getSettingFromAdhesionExtruder("raft_margin") elif adhesion_type == "none": @@ -935,7 +950,6 @@ class BuildVolume(SceneNode): move_from_wall_radius = 0 # Moves that start from outer wall. move_from_wall_radius = max(move_from_wall_radius, max(self._getSettingFromAllExtruders("infill_wipe_dist"))) - used_extruders = ExtruderManager.getInstance().getUsedExtruderStacks() avoid_enabled_per_extruder = [stack.getProperty("travel_avoid_other_parts","value") for stack in used_extruders] travel_avoid_distance_per_extruder = [stack.getProperty("travel_avoid_distance", "value") for stack in used_extruders] for avoid_other_parts_enabled, avoid_distance in zip(avoid_enabled_per_extruder, travel_avoid_distance_per_extruder): #For each extruder (or just global). @@ -951,7 +965,7 @@ class BuildVolume(SceneNode): def _clamp(self, value, min_value, max_value): return max(min(value, max_value), min_value) - _skirt_settings = ["adhesion_type", "skirt_gap", "skirt_line_count", "skirt_brim_line_width", "brim_width", "brim_line_count", "raft_margin", "draft_shield_enabled", "draft_shield_dist"] + _skirt_settings = ["adhesion_type", "skirt_gap", "skirt_line_count", "skirt_brim_line_width", "brim_width", "brim_line_count", "raft_margin", "draft_shield_enabled", "draft_shield_dist", "initial_layer_line_width_factor"] _raft_settings = ["adhesion_type", "raft_base_thickness", "raft_interface_thickness", "raft_surface_layers", "raft_surface_thickness", "raft_airgap", "layer_0_z_overlap"] _extra_z_settings = ["retraction_hop_enabled", "retraction_hop"] _prime_settings = ["extruder_prime_pos_x", "extruder_prime_pos_y", "extruder_prime_pos_z", "prime_blob_enable"] @@ -959,3 +973,4 @@ class BuildVolume(SceneNode): _ooze_shield_settings = ["ooze_shield_enabled", "ooze_shield_dist"] _distance_settings = ["infill_wipe_dist", "travel_avoid_distance", "support_offset", "support_enable", "travel_avoid_other_parts"] _extruder_settings = ["support_enable", "support_bottom_enable", "support_roof_enable", "support_infill_extruder_nr", "support_extruder_nr_layer_0", "support_bottom_extruder_nr", "support_roof_extruder_nr", "brim_line_count", "adhesion_extruder_nr", "adhesion_type"] #Settings that can affect which extruders are used. + _limit_to_extruder_settings = ["wall_extruder_nr", "wall_0_extruder_nr", "wall_x_extruder_nr", "top_bottom_extruder_nr", "infill_extruder_nr", "support_infill_extruder_nr", "support_extruder_nr_layer_0", "support_bottom_extruder_nr", "support_roof_extruder_nr", "adhesion_extruder_nr"] diff --git a/cura/ConvexHullDecorator.py b/cura/ConvexHullDecorator.py index 51b22755dd..70f77d9712 100644 --- a/cura/ConvexHullDecorator.py +++ b/cura/ConvexHullDecorator.py @@ -257,7 +257,11 @@ class ConvexHullDecorator(SceneNodeDecorator): # \return New Polygon instance that is offset with everything that # influences the collision area. def _offsetHull(self, convex_hull): - horizontal_expansion = self._getSettingProperty("xy_offset", "value") + horizontal_expansion = max( + self._getSettingProperty("xy_offset", "value"), + self._getSettingProperty("xy_offset_layer_0", "value") + ) + mold_width = 0 if self._getSettingProperty("mold_enabled", "value"): mold_width = self._getSettingProperty("mold_width", "value") @@ -332,4 +336,4 @@ class ConvexHullDecorator(SceneNodeDecorator): ## Settings that change the convex hull. # # If these settings change, the convex hull should be recalculated. - _influencing_settings = {"xy_offset", "mold_enabled", "mold_width"} + _influencing_settings = {"xy_offset", "xy_offset_layer_0", "mold_enabled", "mold_width"} diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 7995c77fce..9ffd7010d9 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -1,5 +1,6 @@ -# Copyright (c) 2015 Ultimaker B.V. +# Copyright (c) 2017 Ultimaker B.V. # Cura is released under the terms of the AGPLv3 or higher. + from PyQt5.QtNetwork import QLocalServer from PyQt5.QtNetwork import QLocalSocket @@ -25,7 +26,6 @@ from UM.Settings.Validator import Validator from UM.Message import Message from UM.i18n import i18nCatalog from UM.Workspace.WorkspaceReader import WorkspaceReader -from UM.Platform import Platform from UM.Decorators import deprecated from UM.Operations.AddSceneNodeOperation import AddSceneNodeOperation @@ -47,6 +47,7 @@ from UM.Settings.ContainerRegistry import ContainerRegistry from UM.Settings.SettingFunction import SettingFunction from cura.Settings.MachineNameValidator import MachineNameValidator from cura.Settings.ProfilesModel import ProfilesModel +from cura.Settings.MaterialsModel import MaterialsModel from cura.Settings.QualityAndUserProfilesModel import QualityAndUserProfilesModel from cura.Settings.SettingInheritanceManager import SettingInheritanceManager from cura.Settings.UserProfilesModel import UserProfilesModel @@ -62,6 +63,7 @@ from . import CameraImageProvider from . import MachineActionManager from cura.Settings.MachineManager import MachineManager +from cura.Settings.MaterialManager import MaterialManager from cura.Settings.ExtruderManager import ExtruderManager from cura.Settings.UserChangesModel import UserChangesModel from cura.Settings.ExtrudersModel import ExtrudersModel @@ -102,7 +104,7 @@ class CuraApplication(QtApplication): # SettingVersion represents the set of settings available in the machine/extruder definitions. # You need to make sure that this version number needs to be increased if there is any non-backwards-compatible # changes of the settings. - SettingVersion = 1 + SettingVersion = 2 class ResourceTypes: QmlFiles = Resources.UserType + 1 @@ -117,6 +119,12 @@ class CuraApplication(QtApplication): Q_ENUMS(ResourceTypes) + # FIXME: This signal belongs to the MachineManager, but the CuraEngineBackend plugin requires on it. + # Because plugins are initialized before the ContainerRegistry, putting this signal in MachineManager + # will make it initialized before ContainerRegistry does, and it won't find the active machine, thus + # Cura will always show the Add Machine Dialog upon start. + stacksValidationFinished = pyqtSignal() # Emitted whenever a validation is finished + def __init__(self): # this list of dir names will be used by UM to detect an old cura directory for dir_name in ["extruders", "machine_instances", "materials", "plugins", "quality", "user", "variants"]: @@ -176,9 +184,9 @@ class CuraApplication(QtApplication): UM.VersionUpgradeManager.VersionUpgradeManager.getInstance().setCurrentVersions( { ("quality_changes", InstanceContainer.Version * 1000000 + self.SettingVersion): (self.ResourceTypes.QualityInstanceContainer, "application/x-uranium-instancecontainer"), - ("machine_stack", ContainerStack.Version): (self.ResourceTypes.MachineStack, "application/x-uranium-containerstack"), - ("extruder_train", ContainerStack.Version): (self.ResourceTypes.ExtruderStack, "application/x-uranium-extruderstack"), - ("preferences", Preferences.Version): (Resources.Preferences, "application/x-uranium-preferences"), + ("machine_stack", ContainerStack.Version * 1000000 + self.SettingVersion): (self.ResourceTypes.MachineStack, "application/x-cura-globalstack"), + ("extruder_train", ContainerStack.Version * 1000000 + self.SettingVersion): (self.ResourceTypes.ExtruderStack, "application/x-cura-extruderstack"), + ("preferences", Preferences.Version * 1000000 + self.SettingVersion): (Resources.Preferences, "application/x-uranium-preferences"), ("user", InstanceContainer.Version * 1000000 + self.SettingVersion): (self.ResourceTypes.UserInstanceContainer, "application/x-uranium-instancecontainer"), ("definition_changes", InstanceContainer.Version * 1000000 + self.SettingVersion): (self.ResourceTypes.DefinitionChangesContainer, "application/x-uranium-instancecontainer"), } @@ -189,6 +197,7 @@ class CuraApplication(QtApplication): self._machine_action_manager = MachineActionManager.MachineActionManager() self._machine_manager = None # This is initialized on demand. + self._material_manager = None self._setting_inheritance_manager = None self._additional_components = {} # Components to add to certain areas in the interface @@ -264,33 +273,38 @@ class CuraApplication(QtApplication): with ContainerRegistry.getInstance().lockFile(): ContainerRegistry.getInstance().load() - Preferences.getInstance().addPreference("cura/active_mode", "simple") + # set the setting version for Preferences + preferences = Preferences.getInstance() + preferences.addPreference("metadata/setting_version", 0) + preferences.setValue("metadata/setting_version", self.SettingVersion) #Don't make it equal to the default so that the setting version always gets written to the file. - Preferences.getInstance().addPreference("cura/categories_expanded", "") - Preferences.getInstance().addPreference("cura/jobname_prefix", True) - Preferences.getInstance().addPreference("view/center_on_select", True) - Preferences.getInstance().addPreference("mesh/scale_to_fit", False) - Preferences.getInstance().addPreference("mesh/scale_tiny_meshes", True) - Preferences.getInstance().addPreference("cura/dialog_on_project_save", True) - Preferences.getInstance().addPreference("cura/asked_dialog_on_project_save", False) - Preferences.getInstance().addPreference("cura/choice_on_profile_override", "always_ask") - Preferences.getInstance().addPreference("cura/choice_on_open_project", "always_ask") + preferences.addPreference("cura/active_mode", "simple") - Preferences.getInstance().addPreference("cura/currency", "€") - Preferences.getInstance().addPreference("cura/material_settings", "{}") + preferences.addPreference("cura/categories_expanded", "") + preferences.addPreference("cura/jobname_prefix", True) + preferences.addPreference("view/center_on_select", True) + preferences.addPreference("mesh/scale_to_fit", False) + preferences.addPreference("mesh/scale_tiny_meshes", True) + preferences.addPreference("cura/dialog_on_project_save", True) + preferences.addPreference("cura/asked_dialog_on_project_save", False) + preferences.addPreference("cura/choice_on_profile_override", "always_ask") + preferences.addPreference("cura/choice_on_open_project", "always_ask") - Preferences.getInstance().addPreference("view/invert_zoom", False) + preferences.addPreference("cura/currency", "€") + preferences.addPreference("cura/material_settings", "{}") + + preferences.addPreference("view/invert_zoom", False) for key in [ "dialog_load_path", # dialog_save_path is in LocalFileOutputDevicePlugin "dialog_profile_path", "dialog_material_path"]: - Preferences.getInstance().addPreference("local_file/%s" % key, os.path.expanduser("~/")) + preferences.addPreference("local_file/%s" % key, os.path.expanduser("~/")) - Preferences.getInstance().setDefault("local_file/last_used_type", "text/x-gcode") + preferences.setDefault("local_file/last_used_type", "text/x-gcode") - Preferences.getInstance().setDefault("general/visible_settings", """ + preferences.setDefault("general/visible_settings", """ machine_settings resolution layer_height @@ -640,6 +654,7 @@ class CuraApplication(QtApplication): # Initialise extruder so as to listen to global container stack changes before the first global container stack is set. ExtruderManager.getInstance() qmlRegisterSingletonType(MachineManager, "Cura", 1, 0, "MachineManager", self.getMachineManager) + qmlRegisterSingletonType(MaterialManager, "Cura", 1, 0, "MaterialManager", self.getMaterialManager) qmlRegisterSingletonType(SettingInheritanceManager, "Cura", 1, 0, "SettingInheritanceManager", self.getSettingInheritanceManager) @@ -665,6 +680,11 @@ class CuraApplication(QtApplication): self._machine_manager = MachineManager.createMachineManager() return self._machine_manager + def getMaterialManager(self, *args): + if self._material_manager is None: + self._material_manager = MaterialManager.createMaterialManager() + return self._material_manager + def getSettingInheritanceManager(self, *args): if self._setting_inheritance_manager is None: self._setting_inheritance_manager = SettingInheritanceManager.createSettingInheritanceManager() @@ -708,6 +728,7 @@ class CuraApplication(QtApplication): qmlRegisterType(ContainerSettingsModel, "Cura", 1, 0, "ContainerSettingsModel") qmlRegisterSingletonType(ProfilesModel, "Cura", 1, 0, "ProfilesModel", ProfilesModel.createProfilesModel) + qmlRegisterType(MaterialsModel, "Cura", 1, 0, "MaterialsModel") qmlRegisterType(QualityAndUserProfilesModel, "Cura", 1, 0, "QualityAndUserProfilesModel") qmlRegisterType(UserProfilesModel, "Cura", 1, 0, "UserProfilesModel") qmlRegisterType(MaterialSettingsVisibilityHandler, "Cura", 1, 0, "MaterialSettingsVisibilityHandler") @@ -791,7 +812,7 @@ class CuraApplication(QtApplication): @pyqtProperty(str, notify = sceneBoundingBoxChanged) def getSceneBoundingBoxString(self): - return self._i18n_catalog.i18nc("@info", "%(width).1f x %(depth).1f x %(height).1f mm") % {'width' : self._scene_bounding_box.width.item(), 'depth': self._scene_bounding_box.depth.item(), 'height' : self._scene_bounding_box.height.item()} + return self._i18n_catalog.i18nc("@info 'width', 'depth' and 'height' are variable names that must NOT be translated; just translate the format of ##x##x## mm.", "%(width).1f x %(depth).1f x %(height).1f mm") % {'width' : self._scene_bounding_box.width.item(), 'depth': self._scene_bounding_box.depth.item(), 'height' : self._scene_bounding_box.height.item()} def updatePlatformActivity(self, node = None): count = 0 diff --git a/cura/LayerDataBuilder.py b/cura/LayerDataBuilder.py index 2051d3a761..a5da57d42b 100755 --- a/cura/LayerDataBuilder.py +++ b/cura/LayerDataBuilder.py @@ -69,7 +69,7 @@ class LayerDataBuilder(MeshBuilder): vertex_offset = 0 index_offset = 0 - for layer, data in self._layers.items(): + for layer, data in sorted(self._layers.items()): ( vertex_offset, index_offset ) = data.build( vertex_offset, index_offset, vertices, colors, line_dimensions, extruders, line_types, indices) self._element_counts[layer] = data.elementCount diff --git a/cura/PrinterOutputDevice.py b/cura/PrinterOutputDevice.py index e23efc0f5a..bf013e4b9f 100644 --- a/cura/PrinterOutputDevice.py +++ b/cura/PrinterOutputDevice.py @@ -65,6 +65,11 @@ class PrinterOutputDevice(QObject, OutputDevice): self._monitor_view_qml_path = "" self._monitor_component = None self._monitor_item = None + + self._control_view_qml_path = "" + self._control_component = None + self._control_item = None + self._qml_context = None def requestWrite(self, nodes, file_name = None, filter_by_machine = False, file_handler = None): @@ -131,6 +136,29 @@ class PrinterOutputDevice(QObject, OutputDevice): return self._monitor_item + @pyqtProperty(QObject, constant=True) + def controlItem(self): + if not self._control_component: + self._createControlViewFromQML() + + return self._control_item + + def _createControlViewFromQML(self): + path = QUrl.fromLocalFile(self._control_view_qml_path) + + # Because of garbage collection we need to keep this referenced by python. + self._control_component = QQmlComponent(Application.getInstance()._engine, path) + + # Check if the context was already requested before (Printer output device might have multiple items in the future) + if self._qml_context is None: + self._qml_context = QQmlContext(Application.getInstance()._engine.rootContext()) + self._qml_context.setContextProperty("OutputDevice", self) + + self._control_item = self._control_component.create(self._qml_context) + if self._control_item is None: + Logger.log("e", "QQmlComponent status %s", self._control_component.status()) + Logger.log("e", "QQmlComponent error string %s", self._control_component.errorString()) + def _createMonitorViewFromQML(self): path = QUrl.fromLocalFile(self._monitor_view_qml_path) diff --git a/cura/Settings/ContainerManager.py b/cura/Settings/ContainerManager.py index 1fcdbc5a20..0d776aec20 100644 --- a/cura/Settings/ContainerManager.py +++ b/cura/Settings/ContainerManager.py @@ -218,24 +218,29 @@ class ContainerManager(QObject): entries = entry_name.split("/") entry_name = entries.pop() + sub_item_changed = False if entries: root_name = entries.pop(0) root = container.getMetaDataEntry(root_name) item = root - for entry in entries: + for _ in range(len(entries)): item = item.get(entries.pop(0), { }) + if item[entry_name] != entry_value: + sub_item_changed = True item[entry_name] = entry_value entry_name = root_name entry_value = root container.setMetaDataEntry(entry_name, entry_value) + if sub_item_changed: #If it was only a sub-item that has changed then the setMetaDataEntry won't correctly notice that something changed, and we must manually signal that the metadata changed. + container.metaDataChanged.emit(container) return True - ## Set a setting property value of the specified container. + ## Set a setting property of the specified container. # # This will set the specified property of the specified setting of the container # and all containers that share the same base_file (if any). The latter only @@ -269,6 +274,29 @@ class ContainerManager(QObject): return True + ## Get a setting property of the specified container. + # + # This will get the specified property of the specified setting of the + # specified container. + # + # \param container_id The ID of the container to get the setting property + # of. + # \param setting_key The key of the setting to get the property of. + # \param property_name The property to obtain. + # \return The value of the specified property. The type of this property + # value depends on the type of the property. For instance, the "value" + # property of an integer setting will be a Python int, but the "value" + # property of an enum setting will be a Python str. + @pyqtSlot(str, str, str, result = QVariant) + def getContainerProperty(self, container_id: str, setting_key: str, property_name: str): + containers = self._container_registry.findContainers(id = container_id) + if not containers: + Logger.log("w", "Could not get properties of container %s because it was not found.", container_id) + return "" + container = containers[0] + + return container.getProperty(setting_key, property_name) + ## Set the name of the specified container. @pyqtSlot(str, str, result = bool) def setContainerName(self, container_id, new_name): diff --git a/cura/Settings/CuraContainerRegistry.py b/cura/Settings/CuraContainerRegistry.py index a67b502b4a..52760d7782 100644 --- a/cura/Settings/CuraContainerRegistry.py +++ b/cura/Settings/CuraContainerRegistry.py @@ -282,7 +282,7 @@ class CuraContainerRegistry(ContainerRegistry): profile.setDefinition(self._activeQualityDefinition()) if self._machineHasOwnMaterials(): active_material_id = self._activeMaterialId() - if active_material_id: # only update if there is an active material + if active_material_id and active_material_id != "empty": # only update if there is an active material profile.addMetaDataEntry("material", active_material_id) quality_type_criteria["material"] = active_material_id @@ -340,10 +340,8 @@ class CuraContainerRegistry(ContainerRegistry): # \return the ID of the active material or the empty string def _activeMaterialId(self): global_container_stack = Application.getInstance().getGlobalContainerStack() - if global_container_stack: - material = global_container_stack.findContainer({"type": "material"}) - if material: - return material.getId() + if global_container_stack and global_container_stack.material: + return global_container_stack.material.getId() return "" ## Returns true if the current machien requires its own quality profiles diff --git a/cura/Settings/CuraContainerStack.py b/cura/Settings/CuraContainerStack.py index fc90e3b239..cdda14ee18 100755 --- a/cura/Settings/CuraContainerStack.py +++ b/cura/Settings/CuraContainerStack.py @@ -47,6 +47,9 @@ class CuraContainerStack(ContainerStack): self.containersChanged.connect(self._onContainersChanged) + import cura.CuraApplication #Here to prevent circular imports. + self.addMetaDataEntry("setting_version", cura.CuraApplication.CuraApplication.SettingVersion) + # This is emitted whenever the containersChanged signal from the ContainerStack base class is emitted. pyqtContainersChanged = pyqtSignal() diff --git a/cura/Settings/ExtruderManager.py b/cura/Settings/ExtruderManager.py index 3baa2f5dce..1c254f5cfc 100755 --- a/cura/Settings/ExtruderManager.py +++ b/cura/Settings/ExtruderManager.py @@ -78,8 +78,9 @@ class ExtruderManager(QObject): def extruderIds(self): map = {} global_stack_id = Application.getInstance().getGlobalContainerStack().getId() - for position in self._extruder_trains[global_stack_id]: - map[position] = self._extruder_trains[global_stack_id][position].getId() + if global_stack_id in self._extruder_trains: + for position in self._extruder_trains[global_stack_id]: + map[position] = self._extruder_trains[global_stack_id][position].getId() return map @pyqtSlot(str, result = str) @@ -433,19 +434,40 @@ class ExtruderManager(QObject): extruder_stack_id = self.extruderIds["0"] used_extruder_stack_ids.add(extruder_stack_id) - #Get whether any of them use support. - per_mesh_stack = mesh.callDecoration("getStack") - if per_mesh_stack: - support_enabled |= per_mesh_stack.getProperty("support_enable", "value") - support_bottom_enabled |= per_mesh_stack.getProperty("support_bottom_enable", "value") - support_roof_enabled |= per_mesh_stack.getProperty("support_roof_enable", "value") - else: #Take the setting from the build extruder stack. - extruder_stack = container_registry.findContainerStacks(id = extruder_stack_id)[0] - support_enabled |= extruder_stack.getProperty("support_enable", "value") - support_bottom_enabled |= extruder_stack.getProperty("support_bottom_enable", "value") - support_roof_enabled |= extruder_stack.getProperty("support_roof_enable", "value") + # Get whether any of them use support. + stack_to_use = mesh.callDecoration("getStack") # if there is a per-mesh stack, we use it + if not stack_to_use: + # if there is no per-mesh stack, we use the build extruder for this mesh + stack_to_use = container_registry.findContainerStacks(id = extruder_stack_id)[0] - #The support extruders. + support_enabled |= stack_to_use.getProperty("support_enable", "value") + support_bottom_enabled |= stack_to_use.getProperty("support_bottom_enable", "value") + support_roof_enabled |= stack_to_use.getProperty("support_roof_enable", "value") + + # Check limit to extruders + limit_to_extruder_feature_list = ["wall_extruder_nr", + "wall_0_extruder_nr", + "wall_x_extruder_nr", + "roofing_extruder_nr", + "top_bottom_extruder_nr", + "infill_extruder_nr", + ] + wall_extruder_nr = None + for extruder_nr_feature_name in limit_to_extruder_feature_list: + extruder_nr = int(global_stack.getProperty(extruder_nr_feature_name, "value")) + if extruder_nr == -1: + # outer and inner wall extruder numbers should first inherit from the wall extruder number + if extruder_nr_feature_name in ["wall_0_extruder_nr", "wall_x_extruder_nr"]: + extruder_nr = wall_extruder_nr + else: + extruder_nr = 0 + + used_extruder_stack_ids.add(self.extruderIds[str(extruder_nr)]) + + if extruder_nr_feature_name == "wall_extruder_nr": + wall_extruder_nr = extruder_nr + + # Check support extruders if support_enabled: used_extruder_stack_ids.add(self.extruderIds[str(global_stack.getProperty("support_infill_extruder_nr", "value"))]) used_extruder_stack_ids.add(self.extruderIds[str(global_stack.getProperty("support_extruder_nr_layer_0", "value"))]) diff --git a/cura/Settings/ExtruderStack.py b/cura/Settings/ExtruderStack.py index 002778038b..6484692439 100644 --- a/cura/Settings/ExtruderStack.py +++ b/cura/Settings/ExtruderStack.py @@ -20,11 +20,13 @@ if TYPE_CHECKING: # # class ExtruderStack(CuraContainerStack): - def __init__(self, container_id, *args, **kwargs): + def __init__(self, container_id: str, *args, **kwargs): super().__init__(container_id, *args, **kwargs) self.addMetaDataEntry("type", "extruder_train") # For backward compatibility + self.propertiesChanged.connect(self._onPropertiesChanged) + ## Overridden from ContainerStack # # This will set the next stack and ensure that we register this stack as an extruder. @@ -85,6 +87,22 @@ class ExtruderStack(CuraContainerStack): if stacks: self.setNextStack(stacks[0]) + def _onPropertiesChanged(self, key, properties): + # When there is a setting that is not settable per extruder that depends on a value from a setting that is, + # we do not always get properly informed that we should re-evaluate the setting. So make sure to indicate + # something changed for those settings. + definitions = self.getNextStack().definition.findDefinitions(key = key) + if definitions: + has_global_dependencies = False + for relation in definitions[0].relations: + if not getattr(relation.target, "settable_per_extruder", True): + has_global_dependencies = True + break + + if has_global_dependencies: + self.getNextStack().propertiesChanged.emit(key, properties) + + extruder_stack_mime = MimeType( name = "application/x-cura-extruderstack", comment = "Cura Extruder Stack", diff --git a/cura/Settings/GlobalStack.py b/cura/Settings/GlobalStack.py index 9dfb8523b3..e49b1a25de 100755 --- a/cura/Settings/GlobalStack.py +++ b/cura/Settings/GlobalStack.py @@ -1,7 +1,7 @@ # Copyright (c) 2017 Ultimaker B.V. # Cura is released under the terms of the AGPLv3 or higher. -from typing import Any, Dict +from typing import Any, Dict, Optional from PyQt5.QtCore import pyqtProperty @@ -42,6 +42,17 @@ class GlobalStack(CuraContainerStack): def getLoadingPriority(cls) -> int: return 2 + def getConfigurationTypeFromSerialized(self, serialized: str) -> Optional[str]: + configuration_type = None + try: + parser = self._readAndValidateSerialized(serialized) + configuration_type = parser["metadata"].get("type") + if configuration_type == "machine": + configuration_type = "machine_stack" + except Exception as e: + Logger.log("e", "Could not get configuration type: %s", e) + return configuration_type + ## Add an extruder to the list of extruders of this stack. # # \param extruder The extruder to add. @@ -107,6 +118,21 @@ class GlobalStack(CuraContainerStack): def setNextStack(self, next_stack: ContainerStack) -> None: raise Exceptions.InvalidOperationError("Global stack cannot have a next stack!") + ## Gets the approximate filament diameter that the machine requires. + # + # The approximate material diameter is the material diameter rounded to + # the nearest millimetre. + # + # If the machine has no requirement for the diameter, -1 is returned. + # + # \return The approximate filament diameter for the printer, as a string. + @pyqtProperty(str) + def approximateMaterialDiameter(self) -> str: + material_diameter = self.definition.getProperty("material_diameter", "value") + if material_diameter is None: + return "-1" + return str(round(float(material_diameter))) #Round, then convert back to string. + # protected: # Determine whether or not we should try to get the "resolve" property instead of the diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index d0c04cd26a..7fb9c3b0a2 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -11,6 +11,7 @@ from UM.Application import Application from UM.Preferences import Preferences from UM.Logger import Logger from UM.Message import Message +from UM.Decorators import deprecated from UM.Settings.ContainerRegistry import ContainerRegistry from UM.Settings.ContainerStack import ContainerStack @@ -90,8 +91,10 @@ class MachineManager(QObject): self._printer_output_devices = [] Application.getInstance().getOutputDeviceManager().outputDevicesChanged.connect(self._onOutputDevicesChanged) + # There might already be some output devices by the time the signal is connected + self._onOutputDevicesChanged() - if active_machine_id != "": + if active_machine_id != "" and ContainerRegistry.getInstance().findContainerStacks(id = active_machine_id): # An active machine was saved, so restore it. self.setActiveMachine(active_machine_id) if self._global_container_stack and self._global_container_stack.getProperty("machine_extruder_count", "value") > 1: @@ -156,7 +159,7 @@ class MachineManager(QObject): if str(index) == extruder.getMetaDataEntry("position"): matching_extruder = extruder break - if matching_extruder and matching_extruder.findContainer({"type": "variant"}).getName() != hotend_id: + if matching_extruder and matching_extruder.variant.getName() != hotend_id: # Save the material that needs to be changed. Multiple changes will be handled by the callback. self._auto_hotends_changed[str(index)] = containers[0].getId() self._printer_output_devices[0].materialHotendChangedMessage(self._materialHotendChangedCallback) @@ -180,11 +183,10 @@ class MachineManager(QObject): matching_extruder = extruder break - if matching_extruder and matching_extruder.findContainer({"type": "material"}).getMetaDataEntry("GUID") != material_id: + if matching_extruder and matching_extruder.material.getMetaDataEntry("GUID") != material_id: # Save the material that needs to be changed. Multiple changes will be handled by the callback. - variant_container = matching_extruder.findContainer({"type": "variant"}) - if self._global_container_stack.getBottom().getMetaDataEntry("has_variants") and variant_container: - variant_id = self.getQualityVariantId(self._global_container_stack.getBottom(), variant_container) + if self._global_container_stack.getBottom().getMetaDataEntry("has_variants") and matching_extruder.variant: + variant_id = self.getQualityVariantId(self._global_container_stack.getBottom(), matching_extruder.variant) for container in containers: if container.getMetaDataEntry("variant") == variant_id: self._auto_materials_changed[str(index)] = container.getId() @@ -305,6 +307,7 @@ class MachineManager(QObject): self._stacks_have_errors = self._checkStacksHaveErrors() if old_stacks_have_errors != self._stacks_have_errors: self.stacksValidationChanged.emit() + Application.getInstance().stacksValidationFinished.emit() def _onActiveExtruderStackChanged(self): self.blurSettings.emit() # Ensure no-one has focus. @@ -506,9 +509,8 @@ class MachineManager(QObject): result = [] if ExtruderManager.getInstance().getActiveGlobalAndExtruderStacks() is not None: for stack in ExtruderManager.getInstance().getActiveGlobalAndExtruderStacks(): - variant_container = stack.findContainer({"type": "variant"}) - if variant_container and variant_container != self._empty_variant_container: - result.append(variant_container.getId()) + if stack.variant and stack.variant != self._empty_variant_container: + result.append(stack.variant.getId()) return result @@ -1121,6 +1123,7 @@ class MachineManager(QObject): def createMachineManager(engine=None, script_engine=None): return MachineManager() + @deprecated("Use ExtruderStack.material = ... and it won't be necessary", "2.7") def _updateMaterialContainer(self, definition: "DefinitionContainer", stack: "ContainerStack", variant_container: Optional["InstanceContainer"] = None, preferred_material_name: Optional[str] = None): if not definition.getMetaDataEntry("has_materials"): return self._empty_material_container diff --git a/cura/Settings/MaterialManager.py b/cura/Settings/MaterialManager.py new file mode 100644 index 0000000000..5640d7af38 --- /dev/null +++ b/cura/Settings/MaterialManager.py @@ -0,0 +1,57 @@ +# Copyright (c) 2017 Ultimaker B.V. +# Cura is released under the terms of the AGPLv3 or higher. + +from PyQt5.QtCore import QObject, pyqtSlot #To expose data to QML. + +from cura.Settings.ContainerManager import ContainerManager +from UM.Logger import Logger +from UM.Message import Message #To create a warning message about material diameter. +from UM.i18n import i18nCatalog #Translated strings. + +catalog = i18nCatalog("cura") + +## Handles material-related data, processing requests to change them and +# providing data for the GUI. +# +# TODO: Move material-related managing over from the machine manager to here. +class MaterialManager(QObject): + ## Creates the global values for the material manager to use. + def __init__(self, parent = None): + super().__init__(parent) + + #Material diameter changed warning message. + self._material_diameter_warning_message = Message(catalog.i18nc("@info:status Has a cancel button next to it.", + "The selected material diameter causes the material to become incompatible with the current printer.")) + self._material_diameter_warning_message.addAction("Undo", catalog.i18nc("@action:button", "Undo"), None, catalog.i18nc("@action", "Undo changing the material diameter.")) + self._material_diameter_warning_message.actionTriggered.connect(self._materialWarningMessageAction) + + ## Creates an instance of the MaterialManager. + # + # This should only be called by PyQt to create the singleton instance of + # this class. + @staticmethod + def createMaterialManager(engine = None, script_engine = None): + return MaterialManager() + + @pyqtSlot(str, str) + def showMaterialWarningMessage(self, material_id, previous_diameter): + self._material_diameter_warning_message.previous_diameter = previous_diameter #Make sure that the undo button can properly undo the action. + self._material_diameter_warning_message.material_id = material_id + self._material_diameter_warning_message.show() + + ## Called when clicking "undo" on the warning dialogue for disappeared + # materials. + # + # This executes the undo action, restoring the material diameter. + # + # \param button The identifier of the button that was pressed. + def _materialWarningMessageAction(self, message, button): + if button == "Undo": + container_manager = ContainerManager.getInstance() + container_manager.setContainerMetaDataEntry(self._material_diameter_warning_message.material_id, "properties/diameter", self._material_diameter_warning_message.previous_diameter) + approximate_previous_diameter = str(round(float(self._material_diameter_warning_message.previous_diameter))) + container_manager.setContainerMetaDataEntry(self._material_diameter_warning_message.material_id, "approximate_diameter", approximate_previous_diameter) + container_manager.setContainerProperty(self._material_diameter_warning_message.material_id, "material_diameter", "value", self._material_diameter_warning_message.previous_diameter); + message.hide() + else: + Logger.log("w", "Unknown button action for material diameter warning message: {action}".format(action = button)) \ No newline at end of file diff --git a/cura/Settings/MaterialsModel.py b/cura/Settings/MaterialsModel.py new file mode 100644 index 0000000000..75eeb6c281 --- /dev/null +++ b/cura/Settings/MaterialsModel.py @@ -0,0 +1,21 @@ +# Copyright (c) 2017 Ultimaker B.V. +# Cura is released under the terms of the AGPLv3 or higher. + +from UM.Settings.ContainerRegistry import ContainerRegistry #To listen for changes to the materials. +from UM.Settings.Models.InstanceContainersModel import InstanceContainersModel #We're extending this class. + +## A model that shows a list of currently valid materials. +class MaterialsModel(InstanceContainersModel): + def __init__(self, parent = None): + super().__init__(parent) + + ContainerRegistry.getInstance().containerMetaDataChanged.connect(self._onContainerMetaDataChanged) + + ## Called when the metadata of the container was changed. + # + # This makes sure that we only update when it was a material that changed. + # + # \param container The container whose metadata was changed. + def _onContainerMetaDataChanged(self, container): + if container.getMetaDataEntry("type") == "material": #Only need to update if a material was changed. + self._update() \ No newline at end of file diff --git a/cura/Settings/ProfilesModel.py b/cura/Settings/ProfilesModel.py index 9056273216..18acb5e9e8 100644 --- a/cura/Settings/ProfilesModel.py +++ b/cura/Settings/ProfilesModel.py @@ -107,9 +107,9 @@ class ProfilesModel(InstanceContainersModel): continue #Quality has no value for layer height either. Get the layer height from somewhere lower in the stack. - skip_until_container = global_container_stack.findContainer({"type": "material"}) + skip_until_container = global_container_stack.material if not skip_until_container: #No material in stack. - skip_until_container = global_container_stack.findContainer({"type": "variant"}) + skip_until_container = global_container_stack.variant if not skip_until_container: #No variant in stack. skip_until_container = global_container_stack.getBottom() item["layer_height"] = str(global_container_stack.getRawProperty("layer_height", "value", skip_until_container = skip_until_container.getId())) + unit #Fall through to the currently loaded material. diff --git a/cura/Settings/QualityAndUserProfilesModel.py b/cura/Settings/QualityAndUserProfilesModel.py index db093126cc..b6ac3fb6d0 100644 --- a/cura/Settings/QualityAndUserProfilesModel.py +++ b/cura/Settings/QualityAndUserProfilesModel.py @@ -40,6 +40,6 @@ class QualityAndUserProfilesModel(ProfilesModel): # Filter the quality_change by the list of available quality_types quality_type_set = set([x.getMetaDataEntry("quality_type") for x in quality_list]) - filtered_quality_changes = [qc for qc in quality_changes_list if qc.getMetaDataEntry("quality_type") in quality_type_set] + filtered_quality_changes = [qc for qc in quality_changes_list if qc.getMetaDataEntry("quality_type") in quality_type_set and qc.getMetaDataEntry("extruder") is None] return quality_list + filtered_quality_changes diff --git a/cura/Settings/SettingOverrideDecorator.py b/cura/Settings/SettingOverrideDecorator.py index d754b6bc6d..503e0b2490 100644 --- a/cura/Settings/SettingOverrideDecorator.py +++ b/cura/Settings/SettingOverrideDecorator.py @@ -26,8 +26,7 @@ class SettingOverrideDecorator(SceneNodeDecorator): super().__init__() self._stack = ContainerStack(stack_id = id(self)) self._stack.setDirty(False) # This stack does not need to be saved. - self._instance = InstanceContainer(container_id = "SettingOverrideInstanceContainer") - self._stack.addContainer(self._instance) + self._stack.addContainer(InstanceContainer(container_id = "SettingOverrideInstanceContainer")) if ExtruderManager.getInstance().extruderCount > 1: self._extruder_stack = ExtruderManager.getInstance().getExtruderStack(0).getId() @@ -46,13 +45,14 @@ class SettingOverrideDecorator(SceneNodeDecorator): ## Create a fresh decorator object deep_copy = SettingOverrideDecorator() ## Copy the instance - deep_copy._instance = copy.deepcopy(self._instance, memo) + instance_container = copy.deepcopy(self._stack.getContainer(0), memo) + + ## Set the copied instance as the first (and only) instance container of the stack. + deep_copy._stack.replaceContainer(0, instance_container) # Properly set the right extruder on the copy deep_copy.setActiveExtruder(self._extruder_stack) - ## Set the copied instance as the first (and only) instance container of the stack. - deep_copy._stack.replaceContainer(0, deep_copy._instance) return deep_copy ## Gets the currently active extruder to print this object with. diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index 4d668b17ac..278e3030ec 100755 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -56,6 +56,9 @@ class ThreeMFWorkspaceReader(WorkspaceReader): self._id_mapping = {} + # In Cura 2.5 and 2.6, the empty profiles used to have those long names + self._old_empty_profile_id_dict = {"empty_%s" % k: "empty" for k in ["material", "variant"]} + ## Get a unique name based on the old_id. This is different from directly calling the registry in that it caches results. # This has nothing to do with speed, but with getting consistent new naming for instances & objects. def getNewId(self, old_id): @@ -129,6 +132,10 @@ class ThreeMFWorkspaceReader(WorkspaceReader): instance_container_list = [] material_container_list = [] + resolve_strategy_keys = ["machine", "material", "quality_changes"] + self._resolve_strategies = {k: None for k in resolve_strategy_keys} + containers_found_dict = {k: False for k in resolve_strategy_keys} + # # Read definition containers # @@ -176,8 +183,10 @@ class ThreeMFWorkspaceReader(WorkspaceReader): container_id = self._stripFileToId(material_container_file) materials = self._container_registry.findInstanceContainers(id=container_id) material_labels.append(self._getMaterialLabelFromSerialized(archive.open(material_container_file).read().decode("utf-8"))) - if materials and not materials[0].isReadOnly(): # Only non readonly materials can be in conflict - material_conflict = True + if materials: + containers_found_dict["material"] = True + if not materials[0].isReadOnly(): # Only non readonly materials can be in conflict + material_conflict = True Job.yieldThread() # Check if any quality_changes instance container is in conflict. @@ -205,6 +214,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader): # Check if quality changes already exists. quality_changes = self._container_registry.findInstanceContainers(id = container_id) if quality_changes: + containers_found_dict["quality_changes"] = True # Check if there really is a conflict by comparing the values if quality_changes[0] != instance_container: quality_changes_conflict = True @@ -227,21 +237,61 @@ class ThreeMFWorkspaceReader(WorkspaceReader): # Load ContainerStack files and ExtruderStack files global_stack_file, extruder_stack_files = self._determineGlobalAndExtruderStackFiles( file_name, cura_file_names) - self._resolve_strategies = {"machine": None, "quality_changes": None, "material": None} machine_conflict = False - for container_stack_file in [global_stack_file] + extruder_stack_files: - container_id = self._stripFileToId(container_stack_file) - serialized = archive.open(container_stack_file).read().decode("utf-8") - if machine_name == "": - machine_name = self._getMachineNameFromSerializedStack(serialized) - stacks = self._container_registry.findContainerStacks(id = container_id) - if stacks: - # Check if there are any changes at all in any of the container stacks. + # Because there can be cases as follows: + # - the global stack exists but some/all of the extruder stacks DON'T exist + # - the global stack DOESN'T exist but some/all of the extruder stacks exist + # To simplify this, only check if the global stack exists or not + container_id = self._stripFileToId(global_stack_file) + serialized = archive.open(global_stack_file).read().decode("utf-8") + machine_name = self._getMachineNameFromSerializedStack(serialized) + stacks = self._container_registry.findContainerStacks(id = container_id) + if stacks: + global_stack = stacks[0] + containers_found_dict["machine"] = True + # Check if there are any changes at all in any of the container stacks. + id_list = self._getContainerIdListFromSerialized(serialized) + for index, container_id in enumerate(id_list): + # take into account the old empty container IDs + container_id = self._old_empty_profile_id_dict.get(container_id, container_id) + if global_stack.getContainer(index).getId() != container_id: + machine_conflict = True + break + Job.yieldThread() + + # if the global stack is found, we check if there are conflicts in the extruder stacks + if containers_found_dict["machine"] and not machine_conflict: + for extruder_stack_file in extruder_stack_files: + container_id = self._stripFileToId(extruder_stack_file) + serialized = archive.open(extruder_stack_file).read().decode("utf-8") + parser = configparser.ConfigParser() + parser.read_string(serialized) + + # The check should be done for the extruder stack that's associated with the existing global stack, + # and those extruder stacks may have different IDs. + # So we check according to the positions + + position = str(parser["metadata"]["position"]) + if position not in global_stack.extruders: + # The extruder position defined in the project doesn't exist in this global stack. + # We can say that it is a machine conflict, but it is very hard to override the machine in this + # case because we need to override the existing extruders and add the non-existing extruders. + # + # HACK: + # To make this simple, we simply say that there is no machine conflict and create a new machine + # by default. + machine_conflict = False + break + + existing_extruder_stack = global_stack.extruders[position] + # check if there are any changes at all in any of the container stacks. id_list = self._getContainerIdListFromSerialized(serialized) for index, container_id in enumerate(id_list): - if stacks[0].getContainer(index).getId() != container_id: + # take into account the old empty container IDs + container_id = self._old_empty_profile_id_dict.get(container_id, container_id) + if existing_extruder_stack.getContainer(index).getId() != container_id: machine_conflict = True - Job.yieldThread() + break num_visible_settings = 0 try: @@ -301,13 +351,14 @@ class ThreeMFWorkspaceReader(WorkspaceReader): # - new: create a new container # - override: override the existing container # - None: There is no conflict, which means containers with the same IDs may or may not be there already. - # If they are there, there is no conflict between the them. - # In this case, you can either create a new one, or safely override the existing one. + # If there is an existing container, there is no conflict between the them, and default to "override" + # If there is no existing container, default to "new" # # Default values - for k, v in self._resolve_strategies.items(): - if v is None: - self._resolve_strategies[k] = "new" + for key, strategy in self._resolve_strategies.items(): + if key not in containers_found_dict or strategy is not None: + continue + self._resolve_strategies[key] = "override" if containers_found_dict[key] else "new" return WorkspaceReader.PreReadResult.accepted @@ -571,47 +622,43 @@ class ThreeMFWorkspaceReader(WorkspaceReader): # -- # load global stack file try: - # Check if a stack by this ID already exists; - container_stacks = self._container_registry.findContainerStacks(id = global_stack_id_original) - if container_stacks: + if self._resolve_strategies["machine"] == "override": + container_stacks = self._container_registry.findContainerStacks(id = global_stack_id_original) stack = container_stacks[0] - if self._resolve_strategies["machine"] == "override": - # TODO: HACK - # There is a machine, check if it has authentication data. If so, keep that data. - network_authentication_id = container_stacks[0].getMetaDataEntry("network_authentication_id") - network_authentication_key = container_stacks[0].getMetaDataEntry("network_authentication_key") - container_stacks[0].deserialize(archive.open(global_stack_file).read().decode("utf-8")) - if network_authentication_id: - container_stacks[0].addMetaDataEntry("network_authentication_id", network_authentication_id) - if network_authentication_key: - container_stacks[0].addMetaDataEntry("network_authentication_key", network_authentication_key) - elif self._resolve_strategies["machine"] == "new": - stack = GlobalStack(global_stack_id_new) - stack.deserialize(archive.open(global_stack_file).read().decode("utf-8")) + # HACK + # There is a machine, check if it has authentication data. If so, keep that data. + network_authentication_id = container_stacks[0].getMetaDataEntry("network_authentication_id") + network_authentication_key = container_stacks[0].getMetaDataEntry("network_authentication_key") + container_stacks[0].deserialize(archive.open(global_stack_file).read().decode("utf-8")) + if network_authentication_id: + container_stacks[0].addMetaDataEntry("network_authentication_id", network_authentication_id) + if network_authentication_key: + container_stacks[0].addMetaDataEntry("network_authentication_key", network_authentication_key) - # Ensure a unique ID and name - stack._id = global_stack_id_new - - # Extruder stacks are "bound" to a machine. If we add the machine as a new one, the id of the - # bound machine also needs to change. - if stack.getMetaDataEntry("machine", None): - stack.setMetaDataEntry("machine", global_stack_id_new) - - # Only machines need a new name, stacks may be non-unique - stack.setName(self._container_registry.uniqueName(stack.getName())) - container_stacks_added.append(stack) - self._container_registry.addContainer(stack) - else: - Logger.log("w", "Resolve strategy of %s for machine is not supported", self._resolve_strategies["machine"]) - else: - # no existing container stack, so we create a new one + elif self._resolve_strategies["machine"] == "new": + # create a new global stack stack = GlobalStack(global_stack_id_new) # Deserialize stack by converting read data from bytes to string stack.deserialize(archive.open(global_stack_file).read().decode("utf-8")) + + # Ensure a unique ID and name + stack._id = global_stack_id_new + + # Extruder stacks are "bound" to a machine. If we add the machine as a new one, the id of the + # bound machine also needs to change. + if stack.getMetaDataEntry("machine", None): + stack.setMetaDataEntry("machine", global_stack_id_new) + + # Only machines need a new name, stacks may be non-unique + stack.setName(global_stack_id_new) + container_stacks_added.append(stack) self._container_registry.addContainer(stack) containers_added.append(stack) + else: + Logger.log("e", "Resolve strategy of %s for machine is not supported", + self._resolve_strategies["machine"]) global_stack = stack Job.yieldThread() @@ -625,73 +672,40 @@ class ThreeMFWorkspaceReader(WorkspaceReader): # -- # load extruder stack files try: - for index, extruder_stack_file in enumerate(extruder_stack_files): + for extruder_stack_file in extruder_stack_files: container_id = self._stripFileToId(extruder_stack_file) extruder_file_content = archive.open(extruder_stack_file, "r").read().decode("utf-8") - container_stacks = self._container_registry.findContainerStacks(id = container_id) - if container_stacks: - # this container stack already exists, try to resolve - stack = container_stacks[0] + if self._resolve_strategies["machine"] == "override": + # deserialize new extruder stack over the current ones + stack = self._overrideExtruderStack(global_stack, extruder_file_content) - if self._resolve_strategies["machine"] == "override": - # NOTE: This is the same code as those in the lower part - # deserialize new extruder stack over the current ones - stack = self._overrideExtruderStack(global_stack, extruder_file_content) + elif self._resolve_strategies["machine"] == "new": + new_id = extruder_stack_id_map[container_id] + stack = ExtruderStack(new_id) - elif self._resolve_strategies["machine"] == "new": - # create a new extruder stack from this one - new_id = extruder_stack_id_map[container_id] - stack = ExtruderStack(new_id) + # HACK: the global stack can have a new name, so we need to make sure that this extruder stack + # references to the new name instead of the old one. Normally, this can be done after + # deserialize() by setting the metadata, but in the case of ExtruderStack, deserialize() + # also does addExtruder() to its machine stack, so we have to make sure that it's pointing + # to the right machine BEFORE deserialization. + extruder_config = configparser.ConfigParser() + extruder_config.read_string(extruder_file_content) + extruder_config.set("metadata", "machine", global_stack_id_new) + tmp_string_io = io.StringIO() + extruder_config.write(tmp_string_io) + extruder_file_content = tmp_string_io.getvalue() - # HACK: the global stack can have a new name, so we need to make sure that this extruder stack - # references to the new name instead of the old one. Normally, this can be done after - # deserialize() by setting the metadata, but in the case of ExtruderStack, deserialize() - # also does addExtruder() to its machine stack, so we have to make sure that it's pointing - # to the right machine BEFORE deserialization. - extruder_config = configparser.ConfigParser() - extruder_config.read_string(extruder_file_content) - extruder_config.set("metadata", "machine", global_stack_id_new) - tmp_string_io = io.StringIO() - extruder_config.write(tmp_string_io) - extruder_file_content = tmp_string_io.getvalue() + stack.deserialize(extruder_file_content) - stack.deserialize(extruder_file_content) + # Ensure a unique ID and name + stack._id = new_id - # Ensure a unique ID and name - stack._id = new_id - - self._container_registry.addContainer(stack) - extruder_stacks_added.append(stack) - containers_added.append(stack) + self._container_registry.addContainer(stack) + extruder_stacks_added.append(stack) + containers_added.append(stack) else: - # No extruder stack with the same ID can be found - if self._resolve_strategies["machine"] == "override": - # deserialize new extruder stack over the current ones - stack = self._overrideExtruderStack(global_stack, extruder_file_content) - - elif self._resolve_strategies["machine"] == "new": - # container not found, create a new one - stack = ExtruderStack(container_id) - - # HACK: the global stack can have a new name, so we need to make sure that this extruder stack - # references to the new name instead of the old one. Normally, this can be done after - # deserialize() by setting the metadata, but in the case of ExtruderStack, deserialize() - # also does addExtruder() to its machine stack, so we have to make sure that it's pointing - # to the right machine BEFORE deserialization. - extruder_config = configparser.ConfigParser() - extruder_config.read_string(extruder_file_content) - extruder_config.set("metadata", "machine", global_stack_id_new) - tmp_string_io = io.StringIO() - extruder_config.write(tmp_string_io) - extruder_file_content = tmp_string_io.getvalue() - - stack.deserialize(extruder_file_content) - self._container_registry.addContainer(stack) - extruder_stacks_added.append(stack) - containers_added.append(stack) - else: - Logger.log("w", "Unknown resolve strategy: %s" % str(self._resolve_strategies["machine"])) + Logger.log("w", "Unknown resolve strategy: %s", self._resolve_strategies["machine"]) extruder_stacks.append(stack) except: @@ -849,6 +863,12 @@ class ThreeMFWorkspaceReader(WorkspaceReader): container_list = container_string.split(",") container_ids = [container_id for container_id in container_list if container_id != ""] + # HACK: there used to be 6 containers numbering from 0 to 5 in a stack, + # now we have 7: index 5 becomes "definition_changes" + if len(container_ids) == 6: + # Hack; We used to not save the definition changes. Fix this. + container_ids.insert(5, "empty") + return container_ids def _getMachineNameFromSerializedStack(self, serialized): @@ -861,5 +881,3 @@ class ThreeMFWorkspaceReader(WorkspaceReader): metadata = data.iterfind("./um:metadata/um:name/um:label", {"um": "http://www.ultimaker.com/material"}) for entry in metadata: return entry.text - pass - diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index 72f1f950f0..05941530ca 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -87,18 +87,18 @@ UM.Dialog { text: catalog.i18nc("@action:label", "Printer settings") font.bold: true - width: parent.width / 3 + width: (parent.width / 3) | 0 } Item { // spacer height: spacerHeight - width: parent.width / 3 + width: (parent.width / 3) | 0 } UM.TooltipArea { id: machineResolveTooltip - width: parent.width / 3 + width: (parent.width / 3) | 0 height: visible ? comboboxHeight : 0 visible: manager.machineConflict text: catalog.i18nc("@info:tooltip", "How should the conflict in the machine be resolved?") @@ -122,12 +122,12 @@ UM.Dialog Label { text: catalog.i18nc("@action:label", "Type") - width: parent.width / 3 + width: (parent.width / 3) | 0 } Label { text: manager.machineType - width: parent.width / 3 + width: (parent.width / 3) | 0 } } @@ -138,12 +138,12 @@ UM.Dialog Label { text: catalog.i18nc("@action:label", "Name") - width: parent.width / 3 + width: (parent.width / 3) | 0 } Label { text: manager.machineName - width: parent.width / 3 + width: (parent.width / 3) | 0 } } @@ -160,18 +160,18 @@ UM.Dialog { text: catalog.i18nc("@action:label", "Profile settings") font.bold: true - width: parent.width / 3 + width: (parent.width / 3) | 0 } Item { // spacer height: spacerHeight - width: parent.width / 3 + width: (parent.width / 3) | 0 } UM.TooltipArea { id: qualityChangesResolveTooltip - width: parent.width / 3 + width: (parent.width / 3) | 0 height: visible ? comboboxHeight : 0 visible: manager.qualityChangesConflict text: catalog.i18nc("@info:tooltip", "How should the conflict in the profile be resolved?") @@ -195,12 +195,12 @@ UM.Dialog Label { text: catalog.i18nc("@action:label", "Name") - width: parent.width / 3 + width: (parent.width / 3) | 0 } Label { text: manager.qualityName - width: parent.width / 3 + width: (parent.width / 3) | 0 } } Row @@ -210,12 +210,12 @@ UM.Dialog Label { text: catalog.i18nc("@action:label", "Not in profile") - width: parent.width / 3 + width: (parent.width / 3) | 0 } Label { text: catalog.i18ncp("@action:label", "%1 override", "%1 overrides", manager.numUserSettings).arg(manager.numUserSettings) - width: parent.width / 3 + width: (parent.width / 3) | 0 } visible: manager.numUserSettings != 0 } @@ -226,12 +226,12 @@ UM.Dialog Label { text: catalog.i18nc("@action:label", "Derivative from") - width: parent.width / 3 + width: (parent.width / 3) | 0 } Label { text: catalog.i18ncp("@action:label", "%1, %2 override", "%1, %2 overrides", manager.numSettingsOverridenByQualityChanges).arg(manager.qualityType).arg(manager.numSettingsOverridenByQualityChanges) - width: parent.width / 3 + width: (parent.width / 3) | 0 } visible: manager.numSettingsOverridenByQualityChanges != 0 } @@ -248,18 +248,18 @@ UM.Dialog { text: catalog.i18nc("@action:label", "Material settings") font.bold: true - width: parent.width / 3 + width: (parent.width / 3) | 0 } Item { // spacer height: spacerHeight - width: parent.width / 3 + width: (parent.width / 3) | 0 } UM.TooltipArea { id: materialResolveTooltip - width: parent.width / 3 + width: (parent.width / 3) | 0 height: visible ? comboboxHeight : 0 visible: manager.materialConflict text: catalog.i18nc("@info:tooltip", "How should the conflict in the material be resolved?") @@ -287,12 +287,12 @@ UM.Dialog Label { text: catalog.i18nc("@action:label", "Name") - width: parent.width / 3 + width: (parent.width / 3) | 0 } Label { text: modelData - width: parent.width / 3 + width: (parent.width / 3) | 0 } } } @@ -315,12 +315,12 @@ UM.Dialog Label { text: catalog.i18nc("@action:label", "Mode") - width: parent.width / 3 + width: (parent.width / 3) | 0 } Label { text: manager.activeMode - width: parent.width / 3 + width: (parent.width / 3) | 0 } } Row @@ -330,12 +330,12 @@ UM.Dialog Label { text: catalog.i18nc("@action:label", "Visible settings:") - width: parent.width / 3 + width: (parent.width / 3) | 0 } Label { text: catalog.i18nc("@action:label", "%1 out of %2" ).arg(manager.numVisibleSettings).arg(manager.totalNumberOfSettings) - width: parent.width / 3 + width: (parent.width / 3) | 0 } } Item // Spacer diff --git a/plugins/3MFReader/__init__.py b/plugins/3MFReader/__init__.py index 7453c8cb0a..9ed15cf43f 100644 --- a/plugins/3MFReader/__init__.py +++ b/plugins/3MFReader/__init__.py @@ -22,15 +22,7 @@ def getMetaData() -> Dict: else: workspace_extension = "curaproject.3mf" - metaData = { - "plugin": { - "name": catalog.i18nc("@label", "3MF Reader"), - "author": "Ultimaker", - "version": "1.0", - "description": catalog.i18nc("@info:whatsthis", "Provides support for reading 3MF files."), - "api": 3 - } - } + metaData = {} if "3MFReader.ThreeMFReader" in sys.modules: metaData["mesh_reader"] = [ { diff --git a/plugins/3MFReader/plugin.json b/plugins/3MFReader/plugin.json new file mode 100644 index 0000000000..5d15123017 --- /dev/null +++ b/plugins/3MFReader/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "3MF Reader", + "author": "Ultimaker B.V.", + "version": "1.0.0", + "description": "Provides support for reading 3MF files.", + "api": 4, + "i18n-catalog": "cura" +} diff --git a/plugins/3MFWriter/ThreeMFWorkspaceWriter.py b/plugins/3MFWriter/ThreeMFWorkspaceWriter.py index 326cd87845..f805936ab5 100644 --- a/plugins/3MFWriter/ThreeMFWorkspaceWriter.py +++ b/plugins/3MFWriter/ThreeMFWorkspaceWriter.py @@ -69,7 +69,7 @@ class ThreeMFWorkspaceWriter(WorkspaceWriter): # \param archive The archive to write to. @staticmethod def _writeContainerToArchive(container, archive): - if type(container) == type(ContainerRegistry.getInstance().getEmptyInstanceContainer()): + if isinstance(container, type(ContainerRegistry.getInstance().getEmptyInstanceContainer())): return # Empty file, do nothing. file_suffix = ContainerRegistry.getMimeTypeForContainer(type(container)).preferredSuffix @@ -87,14 +87,9 @@ class ThreeMFWorkspaceWriter(WorkspaceWriter): file_in_archive = zipfile.ZipInfo(file_name) # For some reason we have to set the compress type of each file as well (it doesn't keep the type of the entire archive) file_in_archive.compress_type = zipfile.ZIP_DEFLATED - if type(container) == ContainerStack and (container.getMetaDataEntry("network_authentication_id") or container.getMetaDataEntry("network_authentication_key")): - # TODO: Hack - # Create a shallow copy of the container, so we can filter out the network auth (if any) - container_copy = copy.deepcopy(container) - container_copy.removeMetaDataEntry("network_authentication_id") - container_copy.removeMetaDataEntry("network_authentication_key") - serialized_data = container_copy.serialize() - else: - serialized_data = container.serialize() + + # Do not include the network authentication keys + ignore_keys = ["network_authentication_id", "network_authentication_key"] + serialized_data = container.serialize(ignored_metadata_keys = ignore_keys) archive.writestr(file_in_archive, serialized_data) diff --git a/plugins/3MFWriter/__init__.py b/plugins/3MFWriter/__init__.py index b811fb41b5..7395e54502 100644 --- a/plugins/3MFWriter/__init__.py +++ b/plugins/3MFWriter/__init__.py @@ -21,15 +21,7 @@ def getMetaData(): else: workspace_extension = "curaproject.3mf" - metaData = { - "plugin": { - "name": i18n_catalog.i18nc("@label", "3MF Writer"), - "author": "Ultimaker", - "version": "1.0", - "description": i18n_catalog.i18nc("@info:whatsthis", "Provides support for writing 3MF files."), - "api": 3 - } - } + metaData = {} if "3MFWriter.ThreeMFWriter" in sys.modules: metaData["mesh_writer"] = { diff --git a/plugins/3MFWriter/plugin.json b/plugins/3MFWriter/plugin.json new file mode 100644 index 0000000000..22d18b2cf1 --- /dev/null +++ b/plugins/3MFWriter/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "3MF Writer", + "author": "Ultimaker B.V.", + "version": "1.0.0", + "description": "Provides support for writing 3MF files.", + "api": 4, + "i18n-catalog": "cura" +} diff --git a/plugins/AutoSave/__init__.py b/plugins/AutoSave/__init__.py index 7e70ebe0a2..dbf39e08cf 100644 --- a/plugins/AutoSave/__init__.py +++ b/plugins/AutoSave/__init__.py @@ -7,15 +7,7 @@ from UM.i18n import i18nCatalog catalog = i18nCatalog("cura") def getMetaData(): - return { - "plugin": { - "name": catalog.i18nc("@label", "Auto Save"), - "author": "Ultimaker", - "version": "1.0", - "description": catalog.i18nc("@info:whatsthis", "Automatically saves Preferences, Machines and Profiles after changes."), - "api": 3 - }, - } + return {} def register(app): return { "extension": AutoSave.AutoSave() } diff --git a/plugins/AutoSave/plugin.json b/plugins/AutoSave/plugin.json new file mode 100644 index 0000000000..32e07a1062 --- /dev/null +++ b/plugins/AutoSave/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "Auto Save", + "author": "Ultimaker B.V.", + "version": "1.0.0", + "description": "Automatically saves Preferences, Machines and Profiles after changes.", + "api": 4, + "i18n-catalog": "cura" +} diff --git a/plugins/ChangeLogPlugin/ChangeLog.qml b/plugins/ChangeLogPlugin/ChangeLog.qml index 6d679ffe29..c9d3eb32ba 100644 --- a/plugins/ChangeLogPlugin/ChangeLog.qml +++ b/plugins/ChangeLogPlugin/ChangeLog.qml @@ -11,8 +11,8 @@ import UM 1.1 as UM UM.Dialog { id: base - minimumWidth: UM.Theme.getSize("modal_window_minimum").width * 0.75 - minimumHeight: UM.Theme.getSize("modal_window_minimum").height * 0.75 + minimumWidth: (UM.Theme.getSize("modal_window_minimum").width * 0.75) | 0 + minimumHeight: (UM.Theme.getSize("modal_window_minimum").height * 0.75) | 0 width: minimumWidth height: minimumHeight title: catalog.i18nc("@label", "Changelog") diff --git a/plugins/ChangeLogPlugin/ChangeLog.txt b/plugins/ChangeLogPlugin/ChangeLog.txt index d647ec6dbd..b7ed1e8da0 100755 --- a/plugins/ChangeLogPlugin/ChangeLog.txt +++ b/plugins/ChangeLogPlugin/ChangeLog.txt @@ -1,6 +1,10 @@ +[2.6.1] +*New profiles +The Polypropylene material is added and supported with the Ultimaker 3. Support for CPE+ and PC with 0.8mm nozzles is added as well. + [2.6.0] *Cura versions -Cura 2.6 beta has local version folders, which means the new version won’t overwrite the existing configuration and profiles from older versions, but can create a new folder instead. You can now safely check out new beta versions and, if necessary, start up an older version without the danger of losing your profiles. +Cura 2.6 has local version folders, which means the new version won’t overwrite the existing configuration and profiles from older versions, but can create a new folder instead. You can now safely check out new beta versions and, if necessary, start up an older version without the danger of losing your profiles. *Better support adhesion We’ve added extra support settings to allow the creation of improved support profiles with better PVA/PLA adhesion. The Support Interface settings, such as speed and density, are now split up into Support Roof and Support Floor settings. @@ -9,7 +13,7 @@ We’ve added extra support settings to allow the creation of improved support p Custom third-party printers and Ultimaker modifications now have multi-extrusion support. Thanks to Aldo Hoeben for this feature. *Model auto-arrange -We’ve improved placing multiple models or multiplying the same ones, making it easier to arrange your build plate. If there’s not enough build plate space or the model is placed beyond the build plate, you can rectify this by selecting ‘Arrange all models’ in the context menu or by pressing Command+R (MacOS) or Ctrl+R (Windows and Linux). Cura 2.6 beta will then find a better solution for model positioning. +We’ve improved placing multiple models or multiplying the same ones, making it easier to arrange your build plate. If there’s not enough build plate space or the model is placed beyond the build plate, you can rectify this by selecting ‘Arrange all models’ in the context menu or by pressing Command+R (MacOS) or Ctrl+R (Windows and Linux). Cura 2.6 will then find a better solution for model positioning. *Gradual infill You can now find the Gradual Infill button in Recommended mode. This setting makes the infill concentrated near the top of the model – so that we can save time and material for the lower parts of the model. This functionality is especially useful when printing with flexible materials. @@ -42,27 +46,16 @@ It’s a lot simpler to save and open files, and Cura will know if it’s a proj If you have a custom theme, you can now apply it more easily in the preferences screen. *Time estimates per feature -<<<<<<< HEAD -You can hover over the print time estimate in the lower right corner to see how the printing time is divided over the printing features (walls, infill, etc.). -======= You can hover over the print time estimate in the lower right corner to see how the printing time is divided over the printing features (walls, infill, etc.). Thanks to 14bitVoid for this feature. ->>>>>>> 2.6 *Invert the direction of camera zoom We’ve added an option to invert mouse direction for a better user experience. *Olsson block upgrade -<<<<<<< HEAD -Ultimaker 2 users can now specify if they have the Olsson block installed on their machine. - -*OctoPrint plugin -Cura 2.6 beta allows users to send prints to OctoPrint. -======= Ultimaker 2 users can now specify if they have the Olsson block installed on their machine. Thanks to Aldo Hoeben for this feature. *OctoPrint plugin -Cura 2.6 beta allows users to send prints to OctoPrint. Thanks to Aldo Hoeben for this feature. ->>>>>>> 2.6 +Cura 2.6 allows users to send prints to OctoPrint. Thanks to Aldo Hoeben for this feature. *Bug fixes - Post Processing plugin diff --git a/plugins/ChangeLogPlugin/__init__.py b/plugins/ChangeLogPlugin/__init__.py index 8466bfaa1b..dbeac8cb2d 100644 --- a/plugins/ChangeLogPlugin/__init__.py +++ b/plugins/ChangeLogPlugin/__init__.py @@ -7,15 +7,7 @@ from UM.i18n import i18nCatalog catalog = i18nCatalog("cura") def getMetaData(): - return { - "plugin": { - "name": catalog.i18nc("@label", "Changelog"), - "author": "Ultimaker", - "version": "1.0", - "description": catalog.i18nc("@info:whatsthis", "Shows changes since latest checked version."), - "api": 3 - } - } + return {} def register(app): return {"extension": ChangeLog.ChangeLog()} diff --git a/plugins/ChangeLogPlugin/plugin.json b/plugins/ChangeLogPlugin/plugin.json new file mode 100644 index 0000000000..e9414b9b71 --- /dev/null +++ b/plugins/ChangeLogPlugin/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "Changelog", + "author": "Ultimaker B.V.", + "version": "1.0.0", + "description": "Shows changes since latest checked version.", + "api": 4, + "i18n-catalog": "cura" +} diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 9c9c9a1b90..98f8473225 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -76,7 +76,14 @@ class CuraEngineBackend(QObject, Backend): self._scene = Application.getInstance().getController().getScene() self._scene.sceneChanged.connect(self._onSceneChanged) - # Triggers for when to (re)start slicing: + # Triggers for auto-slicing. Auto-slicing is triggered as follows: + # - auto-slicing is started with a timer + # - whenever there is a value change, we start the timer + # - sometimes an error check can get scheduled for a value change, in that case, we ONLY want to start the + # auto-slicing timer when that error check is finished + # If there is an error check, it will set the "_is_error_check_scheduled" flag, stop the auto-slicing timer, + # and only wait for the error check to be finished to start the auto-slicing timer again. + # self._global_container_stack = None Application.getInstance().globalContainerStackChanged.connect(self._onGlobalStackChanged) self._onGlobalStackChanged() @@ -85,6 +92,12 @@ class CuraEngineBackend(QObject, Backend): ExtruderManager.getInstance().activeExtruderChanged.connect(self._onActiveExtruderChanged) self._onActiveExtruderChanged() + Application.getInstance().stacksValidationFinished.connect(self._onStackErrorCheckFinished) + + # A flag indicating if an error check was scheduled + # If so, we will stop the auto-slice timer and start upon the error check + self._is_error_check_scheduled = False + # Listeners for receiving messages from the back-end. self._message_handlers["cura.proto.Layer"] = self._onLayerMessage self._message_handlers["cura.proto.LayerOptimized"] = self._onOptimizedLayerMessage @@ -426,11 +439,21 @@ class CuraEngineBackend(QObject, Backend): self._clearLayerData() ## A setting has changed, so check if we must reslice. - # - # \param instance The setting instance that has changed. - # \param property The property of the setting instance that has changed. + # \param instance The setting instance that has changed. + # \param property The property of the setting instance that has changed. def _onSettingChanged(self, instance, property): - if property == "value": # Only reslice if the value has changed. + if property == "value": # Only reslice if the value has changed. + self.needsSlicing() + self._onChanged() + + elif property == "validationState": + if self._use_timer: + self._is_error_check_scheduled = True + self._change_timer.stop() + + def _onStackErrorCheckFinished(self): + self._is_error_check_scheduled = False + if self._need_slicing: self.needsSlicing() self._onChanged() @@ -525,7 +548,12 @@ class CuraEngineBackend(QObject, Backend): def _onChanged(self, *args, **kwargs): self.needsSlicing() if self._use_timer: - self._change_timer.start() + # if the error check is scheduled, wait for the error check finish signal to trigger auto-slice, + # otherwise business as usual + if self._is_error_check_scheduled: + self._change_timer.stop() + else: + self._change_timer.start() ## Called when the back-end connects to the front-end. def _onBackendConnected(self): @@ -591,9 +619,9 @@ class CuraEngineBackend(QObject, Backend): self._global_container_stack.propertyChanged.disconnect(self._onSettingChanged) self._global_container_stack.containersChanged.disconnect(self._onChanged) extruders = list(ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId())) - if extruders: - for extruder in extruders: - extruder.propertyChanged.disconnect(self._onSettingChanged) + + for extruder in extruders: + extruder.propertyChanged.disconnect(self._onSettingChanged) self._global_container_stack = Application.getInstance().getGlobalContainerStack() @@ -601,9 +629,8 @@ class CuraEngineBackend(QObject, Backend): self._global_container_stack.propertyChanged.connect(self._onSettingChanged) # Note: Only starts slicing when the value changed. self._global_container_stack.containersChanged.connect(self._onChanged) extruders = list(ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId())) - if extruders: - for extruder in extruders: - extruder.propertyChanged.connect(self._onSettingChanged) + for extruder in extruders: + extruder.propertyChanged.connect(self._onSettingChanged) self._onActiveExtruderChanged() self._onChanged() @@ -612,9 +639,8 @@ class CuraEngineBackend(QObject, Backend): # Connect all extruders of the active machine. This might cause a few connects that have already happend, # but that shouldn't cause issues as only new / unique connections are added. extruders = list(ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId())) - if extruders: - for extruder in extruders: - extruder.propertyChanged.connect(self._onSettingChanged) + for extruder in extruders: + extruder.propertyChanged.connect(self._onSettingChanged) if self._active_extruder_stack: self._active_extruder_stack.containersChanged.disconnect(self._onChanged) diff --git a/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py b/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py index ecaebb816d..1fe537622f 100644 --- a/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py +++ b/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py @@ -1,5 +1,5 @@ -# Copyright (c) 2016 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. +#Copyright (c) 2017 Ultimaker B.V. +#Cura is released under the terms of the AGPLv3 or higher. import gc @@ -24,6 +24,7 @@ from cura import LayerPolygon import numpy from time import time +from cura.Settings.ExtrudersModel import ExtrudersModel catalog = i18nCatalog("cura") @@ -173,19 +174,18 @@ class ProcessSlicedLayersJob(Job): if extruders: material_color_map = numpy.zeros((len(extruders), 4), dtype=numpy.float32) for extruder in extruders: - material = extruder.findContainer({"type": "material"}) position = int(extruder.getMetaDataEntry("position", default="0")) # Get the position - color_code = material.getMetaDataEntry("color_code", default="#e0e000") + try: + default_color = ExtrudersModel.defaultColors[position] + except IndexError: + default_color = "#e0e000" + color_code = extruder.material.getMetaDataEntry("color_code", default=default_color) color = colorCodeToRGBA(color_code) material_color_map[position, :] = color else: # Single extruder via global stack. material_color_map = numpy.zeros((1, 4), dtype=numpy.float32) - material = global_container_stack.findContainer({"type": "material"}) - color_code = "#e0e000" - if material: - if material.getMetaDataEntry("color_code") is not None: - color_code = material.getMetaDataEntry("color_code") + color_code = global_container_stack.material.getMetaDataEntry("color_code", default="#e0e000") color = colorCodeToRGBA(color_code) material_color_map[0, :] = color diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index 8abb72fa92..f2e9cb7db2 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -44,6 +44,14 @@ class GcodeStartEndFormatter(Formatter): ## Job class that builds up the message of scene data to send to CuraEngine. class StartSliceJob(Job): + ## Meshes that are sent to the engine regardless of being outside of the + # build volume. + # + # If these settings are True for any mesh, the build volume is ignored. + # Note that Support Mesh is not in here because it actually generates + # g-code in the volume of the mesh. + _not_printed_mesh_settings = {"anti_overhang_mesh", "infill_mesh", "cutting_mesh"} + def __init__(self, slice_message): super().__init__() @@ -132,7 +140,8 @@ class StartSliceJob(Job): temp_list = [] for node in DepthFirstIterator(self._scene.getRoot()): if type(node) is SceneNode and node.getMeshData() and node.getMeshData().getVertices() is not None: - if not getattr(node, "_outside_buildarea", False): + if not getattr(node, "_outside_buildarea", False)\ + or (node.callDecoration("getStack") and any(node.callDecoration("getStack").getProperty(setting, "value") for setting in self._not_printed_mesh_settings)): temp_list.append(node) Job.yieldThread() @@ -149,8 +158,13 @@ class StartSliceJob(Job): self._buildGlobalSettingsMessage(stack) self._buildGlobalInheritsStackMessage(stack) - for extruder_stack in ExtruderManager.getInstance().getMachineExtruders(stack.getId()): - self._buildExtruderMessage(extruder_stack) + # Only add extruder stacks if there are multiple extruders + # Single extruder machines only use the global stack to store setting values + if stack.getProperty("machine_extruder_count", "value") > 1: + for extruder_stack in ExtruderManager.getInstance().getMachineExtruders(stack.getId()): + self._buildExtruderMessage(extruder_stack) + else: + self._buildExtruderMessageFromGlobalStack(stack) for group in object_groups: group_message = self._slice_message.addRepeatedMessage("object_lists") @@ -212,7 +226,7 @@ class StartSliceJob(Job): for key in stack.getAllKeys(): # Do not send settings that are not settable_per_extruder. - if stack.getProperty(key, "settable_per_extruder") == False: + if not stack.getProperty(key, "settable_per_extruder"): continue setting = message.getMessage("settings").addRepeatedMessage("settings") setting.name = key @@ -223,6 +237,19 @@ class StartSliceJob(Job): setting.value = str(stack.getProperty(key, "value")).encode("utf-8") Job.yieldThread() + ## Create extruder message from global stack + def _buildExtruderMessageFromGlobalStack(self, stack): + message = self._slice_message.addRepeatedMessage("extruders") + + for key in stack.getAllKeys(): + # Do not send settings that are not settable_per_extruder. + if not stack.getProperty(key, "settable_per_extruder"): + continue + setting = message.getMessage("settings").addRepeatedMessage("settings") + setting.name = key + setting.value = str(stack.getProperty(key, "value")).encode("utf-8") + Job.yieldThread() + ## Sends all global settings to the engine. # # The settings are taken from the global stack. This does not include any diff --git a/plugins/CuraEngineBackend/__init__.py b/plugins/CuraEngineBackend/__init__.py index 2e652ae845..a5269d03cd 100644 --- a/plugins/CuraEngineBackend/__init__.py +++ b/plugins/CuraEngineBackend/__init__.py @@ -8,14 +8,7 @@ from UM.i18n import i18nCatalog catalog = i18nCatalog("cura") def getMetaData(): - return { - "plugin": { - "name": catalog.i18nc("@label", "CuraEngine Backend"), - "author": "Ultimaker", - "description": catalog.i18nc("@info:whatsthis", "Provides the link to the CuraEngine slicing backend."), - "api": 3 - } - } + return {} def register(app): return { "backend": CuraEngineBackend.CuraEngineBackend() } diff --git a/plugins/CuraEngineBackend/plugin.json b/plugins/CuraEngineBackend/plugin.json new file mode 100644 index 0000000000..e5df06f228 --- /dev/null +++ b/plugins/CuraEngineBackend/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "CuraEngine Backend", + "author": "Ultimaker B.V.", + "description": "Provides the link to the CuraEngine slicing backend.", + "api": 4, + "version": "1.0.0", + "i18n-catalog": "cura" +} diff --git a/plugins/CuraProfileReader/__init__.py b/plugins/CuraProfileReader/__init__.py index c4206ab763..bbf446fc5f 100644 --- a/plugins/CuraProfileReader/__init__.py +++ b/plugins/CuraProfileReader/__init__.py @@ -8,13 +8,6 @@ catalog = i18nCatalog("cura") def getMetaData(): return { - "plugin": { - "name": catalog.i18nc("@label", "Cura Profile Reader"), - "author": "Ultimaker", - "version": "1.0", - "description": catalog.i18nc("@info:whatsthis", "Provides support for importing Cura profiles."), - "api": 3 - }, "profile_reader": [ { "extension": "curaprofile", diff --git a/plugins/CuraProfileReader/plugin.json b/plugins/CuraProfileReader/plugin.json new file mode 100644 index 0000000000..004a1ade4d --- /dev/null +++ b/plugins/CuraProfileReader/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "Cura Profile Reader", + "author": "Ultimaker B.V.", + "version": "1.0.0", + "description": "Provides support for importing Cura profiles.", + "api": 4, + "i18n-catalog": "cura" +} diff --git a/plugins/CuraProfileWriter/__init__.py b/plugins/CuraProfileWriter/__init__.py index 30528b8167..244ba580cd 100644 --- a/plugins/CuraProfileWriter/__init__.py +++ b/plugins/CuraProfileWriter/__init__.py @@ -8,13 +8,6 @@ catalog = i18nCatalog("cura") def getMetaData(): return { - "plugin": { - "name": catalog.i18nc("@label", "Cura Profile Writer"), - "author": "Ultimaker", - "version": "1.0", - "description": catalog.i18nc("@info:whatsthis", "Provides support for exporting Cura profiles."), - "api": 3 - }, "profile_writer": [ { "extension": "curaprofile", diff --git a/plugins/CuraProfileWriter/plugin.json b/plugins/CuraProfileWriter/plugin.json new file mode 100644 index 0000000000..d9accce770 --- /dev/null +++ b/plugins/CuraProfileWriter/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "Cura Profile Writer", + "author": "Ultimaker B.V.", + "version": "1.0.0", + "description": "Provides support for exporting Cura profiles.", + "api": 4, + "i18n-catalog":"cura" +} diff --git a/plugins/GCodeProfileReader/__init__.py b/plugins/GCodeProfileReader/__init__.py index 690ef69376..a5912e3cb3 100644 --- a/plugins/GCodeProfileReader/__init__.py +++ b/plugins/GCodeProfileReader/__init__.py @@ -8,13 +8,6 @@ catalog = i18nCatalog("cura") def getMetaData(): return { - "plugin": { - "name": catalog.i18nc("@label", "GCode Profile Reader"), - "author": "Ultimaker", - "version": "1.0", - "description": catalog.i18nc("@info:whatsthis", "Provides support for importing profiles from g-code files."), - "api": 3 - }, "profile_reader": [ { "extension": "gcode", diff --git a/plugins/GCodeProfileReader/plugin.json b/plugins/GCodeProfileReader/plugin.json new file mode 100644 index 0000000000..8111bc687c --- /dev/null +++ b/plugins/GCodeProfileReader/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "GCode Profile Reader", + "author": "Ultimaker B.V.", + "version": "1.0.0", + "description": "Provides support for importing profiles from g-code files.", + "api": 4, + "i18n-catalog": "cura" +} diff --git a/plugins/GCodeReader/__init__.py b/plugins/GCodeReader/__init__.py index 2ff412e757..7cabeaf5a8 100644 --- a/plugins/GCodeReader/__init__.py +++ b/plugins/GCodeReader/__init__.py @@ -8,13 +8,6 @@ i18n_catalog = i18nCatalog("cura") def getMetaData(): return { - "plugin": { - "name": i18n_catalog.i18nc("@label", "G-code Reader"), - "author": "Victor Larchenko", - "version": "1.0", - "description": i18n_catalog.i18nc("@info:whatsthis", "Allows loading and displaying G-code files."), - "api": 3 - }, "mesh_reader": [ { "extension": "gcode", diff --git a/plugins/GCodeReader/plugin.json b/plugins/GCodeReader/plugin.json new file mode 100644 index 0000000000..f72a8cc12c --- /dev/null +++ b/plugins/GCodeReader/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "G-code Reader", + "author": "Victor Larchenko", + "version": "1.0.0", + "description": "Allows loading and displaying G-code files.", + "api": 4, + "i18n-catalog": "cura" +} diff --git a/plugins/GCodeWriter/GCodeWriter.py b/plugins/GCodeWriter/GCodeWriter.py index 47ccc21bcd..61bd682de0 100644 --- a/plugins/GCodeWriter/GCodeWriter.py +++ b/plugins/GCodeWriter/GCodeWriter.py @@ -1,4 +1,4 @@ -# Copyright (c) 2016 Ultimaker B.V. +# Copyright (c) 2017 Ultimaker B.V. # Cura is released under the terms of the AGPLv3 or higher. from UM.Mesh.MeshWriter import MeshWriter @@ -113,7 +113,7 @@ class GCodeWriter(MeshWriter): # Ensure that quality_type is set. (Can happen if we have empty quality changes). if flat_global_container.getMetaDataEntry("quality_type", None) is None: - flat_global_container.addMetaDataEntry("quality_type", stack.findContainer({"type": "quality"}).getMetaDataEntry("quality_type", "normal")) + flat_global_container.addMetaDataEntry("quality_type", stack.quality.getMetaDataEntry("quality_type", "normal")) serialized = flat_global_container.serialize() data = {"global_quality": serialized} @@ -134,7 +134,7 @@ class GCodeWriter(MeshWriter): # Ensure that quality_type is set. (Can happen if we have empty quality changes). if flat_extruder_quality.getMetaDataEntry("quality_type", None) is None: - flat_extruder_quality.addMetaDataEntry("quality_type", extruder.findContainer({"type": "quality"}).getMetaDataEntry("quality_type", "normal")) + flat_extruder_quality.addMetaDataEntry("quality_type", extruder.quality.getMetaDataEntry("quality_type", "normal")) extruder_serialized = flat_extruder_quality.serialize() data.setdefault("extruder_quality", []).append(extruder_serialized) diff --git a/plugins/GCodeWriter/__init__.py b/plugins/GCodeWriter/__init__.py index efe3368c61..904deb1c19 100644 --- a/plugins/GCodeWriter/__init__.py +++ b/plugins/GCodeWriter/__init__.py @@ -8,13 +8,7 @@ catalog = i18nCatalog("cura") def getMetaData(): return { - "plugin": { - "name": catalog.i18nc("@label", "GCode Writer"), - "author": "Ultimaker", - "version": "1.0", - "description": catalog.i18nc("@info:whatsthis", "Writes GCode to a file."), - "api": 3 - }, + "mesh_writer": { "output": [{ diff --git a/plugins/GCodeWriter/plugin.json b/plugins/GCodeWriter/plugin.json new file mode 100644 index 0000000000..5788b01375 --- /dev/null +++ b/plugins/GCodeWriter/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "GCode Writer", + "author": "Ultimaker B.V.", + "version": "1.0.0", + "description": "Writes GCode to a file.", + "api": 4, + "i18n-catalog": "cura" +} diff --git a/plugins/ImageReader/__init__.py b/plugins/ImageReader/__init__.py index 7ebdc31e57..d1fb77859e 100644 --- a/plugins/ImageReader/__init__.py +++ b/plugins/ImageReader/__init__.py @@ -8,13 +8,6 @@ i18n_catalog = i18nCatalog("cura") def getMetaData(): return { - "plugin": { - "name": i18n_catalog.i18nc("@label", "Image Reader"), - "author": "Ultimaker", - "version": "1.0", - "description": i18n_catalog.i18nc("@info:whatsthis", "Enables ability to generate printable geometry from 2D image files."), - "api": 3 - }, "mesh_reader": [ { "extension": "jpg", diff --git a/plugins/ImageReader/plugin.json b/plugins/ImageReader/plugin.json new file mode 100644 index 0000000000..2752c6e8f4 --- /dev/null +++ b/plugins/ImageReader/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "Image Reader", + "author": "Ultimaker B.V.", + "version": "1.0.0", + "description": "Enables ability to generate printable geometry from 2D image files.", + "api": 4, + "i18n-catalog": "cura" +} diff --git a/plugins/LayerView/LayerPass.py b/plugins/LayerView/LayerPass.py index b706f21877..51a35fb48a 100755 --- a/plugins/LayerView/LayerPass.py +++ b/plugins/LayerView/LayerPass.py @@ -82,12 +82,12 @@ class LayerPass(RenderPass): start = 0 end = 0 element_counts = layer_data.getElementCounts() - for layer, counts in element_counts.items(): + for layer in sorted(element_counts.keys()): if layer > self._layer_view._current_layer_num: break if self._layer_view._minimum_layer_num > layer: - start += counts - end += counts + start += element_counts[layer] + end += element_counts[layer] # This uses glDrawRangeElements internally to only draw a certain range of lines. batch = RenderBatch(self._layer_shader, type = RenderBatch.RenderType.Solid, mode = RenderBatch.RenderMode.Lines, range = (start, end)) diff --git a/plugins/LayerView/LayerView.qml b/plugins/LayerView/LayerView.qml index 9dc038fe70..5971798f58 100755 --- a/plugins/LayerView/LayerView.qml +++ b/plugins/LayerView/LayerView.qml @@ -11,6 +11,7 @@ import Cura 1.0 as Cura Item { + id: base width: { if (UM.LayerView.compatibilityMode) { return UM.Theme.getSize("layerview_menu_size_compatibility").width; @@ -25,8 +26,12 @@ Item return UM.Theme.getSize("layerview_menu_size").height + UM.LayerView.extruderCount * (UM.Theme.getSize("layerview_row").height + UM.Theme.getSize("layerview_row_spacing").height) } } + property var buttonTarget: { + var force_binding = parent.y; // ensure this gets reevaluated when the panel moves + return base.mapFromItem(parent.parent, parent.buttonTarget.x, parent.buttonTarget.y); + } - Rectangle { + UM.PointingRectangle { id: layerViewMenu anchors.left: parent.left anchors.top: parent.top @@ -34,6 +39,11 @@ Item height: parent.height z: slider.z - 1 color: UM.Theme.getColor("tool_panel_background") + borderWidth: UM.Theme.getSize("default_lining").width + borderColor: UM.Theme.getColor("lining") + + target: parent.buttonTarget + arrowSize: UM.Theme.getSize("default_arrow").width ColumnLayout { id: view_settings @@ -132,6 +142,7 @@ Item id: compatibilityModeLabel anchors.left: parent.left text: catalog.i18nc("@label","Compatibility Mode") + color: UM.Theme.getColor("text") visible: UM.LayerView.compatibilityMode Layout.fillWidth: true Layout.preferredHeight: UM.Theme.getSize("layerview_row").height @@ -522,26 +533,19 @@ Item target: Qt.point(0, slider.activeHandle.y + slider.activeHandle.height / 2) arrowSize: UM.Theme.getSize("default_arrow").width - height: (Math.floor(UM.Theme.getSize("slider_handle").height + UM.Theme.getSize("default_margin").height) / 2) * 2 // Make sure height has an integer middle so drawing a pointy border is easier + height: UM.Theme.getSize("slider_handle").height + UM.Theme.getSize("default_margin").height width: valueLabel.width + UM.Theme.getSize("default_margin").width Behavior on height { NumberAnimation { duration: 50; } } - color: UM.Theme.getColor("lining"); + color: UM.Theme.getColor("tool_panel_background") + borderColor: UM.Theme.getColor("lining") + borderWidth: UM.Theme.getSize("default_lining").width visible: slider.layersVisible - UM.PointingRectangle + MouseArea //Catch all mouse events (so scene doesnt handle them) { - color: UM.Theme.getColor("tool_panel_background") - target: Qt.point(0, height / 2 + UM.Theme.getSize("default_lining").width) - arrowSize: UM.Theme.getSize("default_arrow").width anchors.fill: parent - anchors.margins: UM.Theme.getSize("default_lining").width - - MouseArea //Catch all mouse events (so scene doesnt handle them) - { - anchors.fill: parent - } } TextField diff --git a/plugins/LayerView/__init__.py b/plugins/LayerView/__init__.py index 67750fb562..0f6b43698a 100644 --- a/plugins/LayerView/__init__.py +++ b/plugins/LayerView/__init__.py @@ -9,13 +9,6 @@ catalog = i18nCatalog("cura") def getMetaData(): return { - "plugin": { - "name": catalog.i18nc("@label", "Layer View"), - "author": "Ultimaker", - "version": "1.0", - "description": catalog.i18nc("@info:whatsthis", "Provides the Layer view."), - "api": 3 - }, "view": { "name": catalog.i18nc("@item:inlistbox", "Layers"), "view_panel": "LayerView.qml", diff --git a/plugins/LayerView/layers3d.shader b/plugins/LayerView/layers3d.shader index 6f5e986eec..e8fe425c70 100755 --- a/plugins/LayerView/layers3d.shader +++ b/plugins/LayerView/layers3d.shader @@ -130,9 +130,9 @@ geometry41core = // fixed size for movements size_x = 0.05; } else { - size_x = v_line_dim[0].x / 2 + 0.01; // radius, and make it nicely overlapping + size_x = v_line_dim[1].x / 2 + 0.01; // radius, and make it nicely overlapping } - size_y = v_line_dim[0].y / 2 + 0.01; + size_y = v_line_dim[1].y / 2 + 0.01; g_vertex_delta = gl_in[1].gl_Position - gl_in[0].gl_Position; g_vertex_normal_horz_head = normalize(vec3(-g_vertex_delta.x, -g_vertex_delta.y, -g_vertex_delta.z)); diff --git a/plugins/LayerView/plugin.json b/plugins/LayerView/plugin.json new file mode 100644 index 0000000000..232fe9c361 --- /dev/null +++ b/plugins/LayerView/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "Layer View", + "author": "Ultimaker B.V.", + "version": "1.0.0", + "description": "Provides the Layer view.", + "api": 4, + "i18n-catalog": "cura" +} diff --git a/plugins/LegacyProfileReader/__init__.py b/plugins/LegacyProfileReader/__init__.py index f8b1f5c156..10dd298864 100644 --- a/plugins/LegacyProfileReader/__init__.py +++ b/plugins/LegacyProfileReader/__init__.py @@ -8,13 +8,6 @@ catalog = i18nCatalog("cura") def getMetaData(): return { - "plugin": { - "name": catalog.i18nc("@label", "Legacy Cura Profile Reader"), - "author": "Ultimaker", - "version": "1.0", - "description": catalog.i18nc("@info:whatsthis", "Provides support for importing profiles from legacy Cura versions."), - "api": 3 - }, "profile_reader": [ { "extension": "ini", diff --git a/plugins/LegacyProfileReader/plugin.json b/plugins/LegacyProfileReader/plugin.json new file mode 100644 index 0000000000..2dc71511a9 --- /dev/null +++ b/plugins/LegacyProfileReader/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "Legacy Cura Profile Reader", + "author": "Ultimaker B.V.", + "version": "1.0.0", + "description": "Provides support for importing profiles from legacy Cura versions.", + "api": 4, + "i18n-catalog": "cura" +} diff --git a/plugins/MachineSettingsAction/MachineSettingsAction.py b/plugins/MachineSettingsAction/MachineSettingsAction.py index 950c97a4e2..5c6df6defe 100755 --- a/plugins/MachineSettingsAction/MachineSettingsAction.py +++ b/plugins/MachineSettingsAction/MachineSettingsAction.py @@ -30,7 +30,6 @@ class MachineSettingsAction(MachineAction): self._global_container_stack = None self._container_index = 0 - self._extruder_container_index = 0 self._container_registry = ContainerRegistry.getInstance() self._container_registry.containerAdded.connect(self._onContainerAdded) @@ -38,6 +37,8 @@ class MachineSettingsAction(MachineAction): Application.getInstance().globalContainerStackChanged.connect(self._onGlobalContainerChanged) ExtruderManager.getInstance().activeExtruderChanged.connect(self._onActiveExtruderStackChanged) + self._empty_container = self._container_registry.getEmptyInstanceContainer() + self._backend = Application.getInstance().getBackend() def _onContainerAdded(self, container): @@ -48,8 +49,8 @@ class MachineSettingsAction(MachineAction): def _onContainerRemoved(self, container): # Remove definition_changes containers when a stack is removed if container.getMetaDataEntry("type") in ["machine", "extruder_train"]: - definition_changes_container = container.findContainer({"type": "definition_changes"}) - if not definition_changes_container: + definition_changes_container = container.definitionChanges + if definition_changes_container == self._empty_container: return self._container_registry.removeContainer(definition_changes_container.getId()) @@ -59,8 +60,8 @@ class MachineSettingsAction(MachineAction): return # Make sure there is a definition_changes container to store the machine settings - definition_changes_container = self._global_container_stack.findContainer({"type": "definition_changes"}) - if not definition_changes_container: + definition_changes_container = self._global_container_stack.definitionChanges + if definition_changes_container == self._empty_container: definition_changes_container = self._createDefinitionChangesContainer(self._global_container_stack, self._global_container_stack.getName() + "_settings") # Notify the UI in which container to store the machine settings data @@ -85,16 +86,10 @@ class MachineSettingsAction(MachineAction): return # Make sure there is a definition_changes container to store the machine settings - definition_changes_container = extruder_container_stack.findContainer({"type": "definition_changes"}) - if not definition_changes_container: + definition_changes_container = extruder_container_stack.definitionChanges + if definition_changes_container == self._empty_container: definition_changes_container = self._createDefinitionChangesContainer(extruder_container_stack, extruder_container_stack.getId() + "_settings") - # Notify the UI in which container to store the machine settings data - container_index = extruder_container_stack.getContainerIndex(definition_changes_container) - if container_index != self._extruder_container_index: - self._extruder_container_index = container_index - self.extruderContainerIndexChanged.emit() - def _createDefinitionChangesContainer(self, container_stack, container_name, container_index = None): definition_changes_container = InstanceContainer(container_name) definition = container_stack.getBottom() @@ -113,13 +108,6 @@ class MachineSettingsAction(MachineAction): def containerIndex(self): return self._container_index - extruderContainerIndexChanged = pyqtSignal() - - @pyqtProperty(int, notify = extruderContainerIndexChanged) - def extruderContainerIndex(self): - return self._extruder_container_index - - def _onGlobalContainerChanged(self): self._global_container_stack = Application.getInstance().getGlobalContainerStack() @@ -140,8 +128,8 @@ class MachineSettingsAction(MachineAction): machine_manager = Application.getInstance().getMachineManager() extruder_manager = ExtruderManager.getInstance() - definition_changes_container = self._global_container_stack.findContainer({"type": "definition_changes"}) - if not self._global_container_stack or not definition_changes_container: + definition_changes_container = self._global_container_stack.definitionChanges + if not self._global_container_stack or definition_changes_container == self._empty_container: return previous_extruder_count = self._global_container_stack.getProperty("machine_extruder_count", "value") @@ -250,30 +238,115 @@ class MachineSettingsAction(MachineAction): return definition = self._global_container_stack.getBottom() - if definition.getProperty("machine_gcode_flavor", "value") == "UltiGCode" and not definition.getMetaDataEntry("has_materials", False): - has_materials = self._global_container_stack.getProperty("machine_gcode_flavor", "value") != "UltiGCode" + if definition.getProperty("machine_gcode_flavor", "value") != "UltiGCode" or definition.getMetaDataEntry("has_materials", False): + # In other words: only continue for the UM2 (extended), but not for the UM2+ + return - material_container = self._global_container_stack.material - material_index = self._global_container_stack.getContainerIndex(material_container) + has_materials = self._global_container_stack.getProperty("machine_gcode_flavor", "value") != "UltiGCode" - if has_materials: - if "has_materials" in self._global_container_stack.getMetaData(): - self._global_container_stack.setMetaDataEntry("has_materials", True) - else: - self._global_container_stack.addMetaDataEntry("has_materials", True) + material_container = self._global_container_stack.material - # Set the material container to a sane default - if material_container.getId() == "empty_material": - search_criteria = { "type": "material", "definition": "fdmprinter", "id": "*pla*"} - containers = self._container_registry.findInstanceContainers(**search_criteria) - if containers: - self._global_container_stack.replaceContainer(material_index, containers[0]) + if has_materials: + if "has_materials" in self._global_container_stack.getMetaData(): + self._global_container_stack.setMetaDataEntry("has_materials", True) else: - # The metadata entry is stored in an ini, and ini files are parsed as strings only. - # Because any non-empty string evaluates to a boolean True, we have to remove the entry to make it False. - if "has_materials" in self._global_container_stack.getMetaData(): - self._global_container_stack.removeMetaDataEntry("has_materials") + self._global_container_stack.addMetaDataEntry("has_materials", True) - self._global_container_stack.material = ContainerRegistry.getInstance().getEmptyInstanceContainer() + # Set the material container to a sane default + if material_container == self._empty_container: + search_criteria = { "type": "material", "definition": "fdmprinter", "id": self._global_container_stack.getMetaDataEntry("preferred_material")} + materials = self._container_registry.findInstanceContainers(**search_criteria) + if materials: + self._global_container_stack.material = materials[0] + else: + # The metadata entry is stored in an ini, and ini files are parsed as strings only. + # Because any non-empty string evaluates to a boolean True, we have to remove the entry to make it False. + if "has_materials" in self._global_container_stack.getMetaData(): + self._global_container_stack.removeMetaDataEntry("has_materials") - Application.getInstance().globalContainerStackChanged.emit() + self._global_container_stack.material = ContainerRegistry.getInstance().getEmptyInstanceContainer() + + Application.getInstance().globalContainerStackChanged.emit() + + @pyqtSlot() + def updateMaterialForDiameter(self): + # Updates the material container to a material that matches the material diameter set for the printer + if not self._global_container_stack: + return + + if not self._global_container_stack.getMetaDataEntry("has_materials", False): + return + + machine_extruder_count = self._global_container_stack.getProperty("machine_extruder_count", "value") + if machine_extruder_count > 1: + material = ExtruderManager.getInstance().getActiveExtruderStack().material + else: + material = self._global_container_stack.material + material_diameter = material.getProperty("material_diameter", "value") + if not material_diameter: # in case of "empty" material + material_diameter = 0 + material_approximate_diameter = str(round(material_diameter)) + + definition_changes = self._global_container_stack.definitionChanges + machine_diameter = definition_changes.getProperty("material_diameter", "value") + if not machine_diameter: + machine_diameter = self._global_container_stack.definition.getProperty("material_diameter", "value") + machine_approximate_diameter = str(round(machine_diameter)) + + if material_approximate_diameter != machine_approximate_diameter: + Logger.log("i", "The the currently active material(s) do not match the diameter set for the printer. Finding alternatives.") + + if machine_extruder_count > 1: + stacks = ExtruderManager.getInstance().getExtruderStacks() + else: + stacks = [self._global_container_stack] + + if self._global_container_stack.getMetaDataEntry("has_machine_materials", False): + materials_definition = self._global_container_stack.definition.getId() + has_material_variants = self._global_container_stack.getMetaDataEntry("has_variants", False) + else: + materials_definition = "fdmprinter" + has_material_variants = False + + for stack in stacks: + old_material = stack.material + search_criteria = { + "type": "material", + "approximate_diameter": machine_approximate_diameter, + "material": old_material.getMetaDataEntry("material", "value"), + "supplier": old_material.getMetaDataEntry("supplier", "value"), + "color_name": old_material.getMetaDataEntry("color_name", "value"), + "definition": materials_definition + } + if has_material_variants: + search_criteria["variant"] = stack.variant.getId() + + if old_material == self._empty_container: + search_criteria.pop("material", None) + search_criteria.pop("supplier", None) + search_criteria.pop("definition", None) + search_criteria["id"] = stack.getMetaDataEntry("preferred_material") + + materials = self._container_registry.findInstanceContainers(**search_criteria) + if not materials: + # Same material with new diameter is not found, search for generic version of the same material type + search_criteria.pop("supplier", None) + search_criteria["color_name"] = "Generic" + materials = self._container_registry.findInstanceContainers(**search_criteria) + if not materials: + # Generic material with new diameter is not found, search for preferred material + search_criteria.pop("color_name", None) + search_criteria.pop("material", None) + search_criteria["id"] = stack.getMetaDataEntry("preferred_material") + materials = self._container_registry.findInstanceContainers(**search_criteria) + if not materials: + # Preferrd material with new diameter is not found, search for any material + search_criteria.pop("id", None) + materials = self._container_registry.findInstanceContainers(**search_criteria) + if not materials: + # Just use empty material as a final fallback + materials = [self._empty_container] + + Logger.log("i", "Selecting new material: %s" % materials[0].getId()) + + stack.material = materials[0] diff --git a/plugins/MachineSettingsAction/MachineSettingsAction.qml b/plugins/MachineSettingsAction/MachineSettingsAction.qml index 23dc7f073f..b5d6a6e649 100644 --- a/plugins/MachineSettingsAction/MachineSettingsAction.qml +++ b/plugins/MachineSettingsAction/MachineSettingsAction.qml @@ -31,17 +31,23 @@ Cura.MachineAction target: dialog ? dialog : null ignoreUnknownSignals: true // Any which way this action dialog is dismissed, make sure it is properly finished - onNextClicked: manager.onFinishAction() - onBackClicked: manager.onFinishAction() - onAccepted: manager.onFinishAction() - onRejected: manager.onFinishAction() - onClosing: manager.onFinishAction() + onNextClicked: finishAction() + onBackClicked: finishAction() + onAccepted: finishAction() + onRejected: finishAction() + onClosing: finishAction() + } + + function finishAction() + { + forceActiveFocus(); + manager.onFinishAction(); } anchors.fill: parent; Item { - id: bedLevelMachineAction + id: machineSettingsAction anchors.fill: parent; UM.I18nCatalog { id: catalog; name: "cura"; } @@ -64,7 +70,7 @@ Cura.MachineAction anchors.top: pageTitle.bottom anchors.topMargin: UM.Theme.getSize("default_margin").height - property real columnWidth: Math.floor((width - 3 * UM.Theme.getSize("default_margin").width) / 2) + property real columnWidth: ((width - 3 * UM.Theme.getSize("default_margin").width) / 2) | 0 Tab { @@ -83,7 +89,7 @@ Cura.MachineAction Column { width: settingsTabs.columnWidth - spacing: UM.Theme.getSize("default_margin").height + spacing: UM.Theme.getSize("default_lining").height Label { @@ -91,182 +97,83 @@ Cura.MachineAction font.bold: true } - Grid + Item { width: UM.Theme.getSize("default_margin").width; height: UM.Theme.getSize("default_margin").height } + + Loader { - columns: 2 - columnSpacing: UM.Theme.getSize("default_margin").width - rowSpacing: UM.Theme.getSize("default_lining").width - - Label - { - text: catalog.i18nc("@label", "X (Width)") - } - Loader - { - id: buildAreaWidthField - sourceComponent: numericTextFieldWithUnit - property var propertyProvider: machineWidthProvider - property string unit: catalog.i18nc("@label", "mm") - property bool forceUpdateOnChange: true - } - - Label - { - text: catalog.i18nc("@label", "Y (Depth)") - } - Loader - { - id: buildAreaDepthField - sourceComponent: numericTextFieldWithUnit - property var propertyProvider: machineDepthProvider - property string unit: catalog.i18nc("@label", "mm") - property bool forceUpdateOnChange: true - } - - Label - { - text: catalog.i18nc("@label", "Z (Height)") - } - Loader - { - id: buildAreaHeightField - sourceComponent: numericTextFieldWithUnit - property var propertyProvider: machineHeightProvider - property string unit: catalog.i18nc("@label", "mm") - property bool forceUpdateOnChange: true - } + id: buildAreaWidthField + sourceComponent: numericTextFieldWithUnit + property string settingKey: "machine_width" + property string label: catalog.i18nc("@label", "X (Width)") + property string unit: catalog.i18nc("@label", "mm") + property bool forceUpdateOnChange: true } - Column + Loader { - Row - { - spacing: UM.Theme.getSize("default_margin").width - - Label - { - text: catalog.i18nc("@label", "Build Plate Shape") - } - - ComboBox - { - id: shapeComboBox - model: ListModel - { - id: shapesModel - Component.onCompleted: - { - // Options come in as a string-representation of an OrderedDict - var options = machineShapeProvider.properties.options.match(/^OrderedDict\(\[\((.*)\)\]\)$/); - if(options) - { - options = options[1].split("), (") - for(var i = 0; i < options.length; i++) - { - var option = options[i].substring(1, options[i].length - 1).split("', '") - shapesModel.append({text: option[1], value: option[0]}); - } - } - } - } - currentIndex: - { - var currentValue = machineShapeProvider.properties.value; - var index = 0; - for(var i = 0; i < shapesModel.count; i++) - { - if(shapesModel.get(i).value == currentValue) { - index = i; - break; - } - } - return index - } - onActivated: - { - if(machineShapeProvider.properties.value != shapesModel.get(index).value) - { - machineShapeProvider.setPropertyValue("value", shapesModel.get(index).value); - manager.forceUpdate(); - } - } - } - } - CheckBox - { - id: centerIsZeroCheckBox - text: catalog.i18nc("@option:check", "Machine Center is Zero") - checked: String(machineCenterIsZeroProvider.properties.value).toLowerCase() != 'false' - onClicked: - { - machineCenterIsZeroProvider.setPropertyValue("value", checked); - manager.forceUpdate(); - } - } - CheckBox - { - id: heatedBedCheckBox - text: catalog.i18nc("@option:check", "Heated Bed") - checked: String(machineHeatedBedProvider.properties.value).toLowerCase() != 'false' - onClicked: machineHeatedBedProvider.setPropertyValue("value", checked) - } + id: buildAreaDepthField + sourceComponent: numericTextFieldWithUnit + property string settingKey: "machine_depth" + property string label: catalog.i18nc("@label", "Y (Depth)") + property string unit: catalog.i18nc("@label", "mm") + property bool forceUpdateOnChange: true } - Row + Loader { - spacing: UM.Theme.getSize("default_margin").width + id: buildAreaHeightField + sourceComponent: numericTextFieldWithUnit + property string settingKey: "machine_height" + property string label: catalog.i18nc("@label", "Z (Height)") + property string unit: catalog.i18nc("@label", "mm") + property bool forceUpdateOnChange: true + } - Label - { - text: catalog.i18nc("@label", "GCode Flavor") - } + Item { width: UM.Theme.getSize("default_margin").width; height: UM.Theme.getSize("default_margin").height } - ComboBox - { - model: ListModel - { - id: flavorModel - Component.onCompleted: - { - // Options come in as a string-representation of an OrderedDict - var options = machineGCodeFlavorProvider.properties.options.match(/^OrderedDict\(\[\((.*)\)\]\)$/); - if(options) - { - options = options[1].split("), (") - for(var i = 0; i < options.length; i++) - { - var option = options[i].substring(1, options[i].length - 1).split("', '") - flavorModel.append({text: option[1], value: option[0]}); - } - } - } - } - currentIndex: - { - var currentValue = machineGCodeFlavorProvider.properties.value; - var index = 0; - for(var i = 0; i < flavorModel.count; i++) - { - if(flavorModel.get(i).value == currentValue) { - index = i; - break; - } - } - return index - } - onActivated: - { - machineGCodeFlavorProvider.setPropertyValue("value", flavorModel.get(index).value); - manager.updateHasMaterialsMetadata(); - } - } + Loader + { + id: shapeComboBox + sourceComponent: comboBoxWithOptions + property string settingKey: "machine_shape" + property string label: catalog.i18nc("@label", "Build plate shape") + property bool forceUpdateOnChange: true + } + + Loader + { + id: centerIsZeroCheckBox + sourceComponent: simpleCheckBox + property string settingKey: "machine_center_is_zero" + property string label: catalog.i18nc("@option:check", "Origin at center") + property bool forceUpdateOnChange: true + } + Loader + { + id: heatedBedCheckBox + sourceComponent: simpleCheckBox + property var settingKey: "machine_heated_bed" + property string label: catalog.i18nc("@option:check", "Heated bed") + property bool forceUpdateOnChange: true + } + + Item { width: UM.Theme.getSize("default_margin").width; height: UM.Theme.getSize("default_margin").height } + + Loader + { + id: gcodeFlavorComboBox + sourceComponent: comboBoxWithOptions + property string settingKey: "machine_gcode_flavor" + property string label: catalog.i18nc("@label", "Gcode flavor") + property bool forceUpdateOnChange: true + property var afterOnActivate: manager.updateHasMaterialsMetadata } } Column { width: settingsTabs.columnWidth - spacing: UM.Theme.getSize("default_margin").height + spacing: UM.Theme.getSize("default_lining").height Label { @@ -274,130 +181,121 @@ Cura.MachineAction font.bold: true } - Grid + Item { width: UM.Theme.getSize("default_margin").width; height: UM.Theme.getSize("default_margin").height } + + Loader { - columns: 2 - columnSpacing: UM.Theme.getSize("default_margin").width - rowSpacing: UM.Theme.getSize("default_lining").width + id: printheadXMinField + sourceComponent: headPolygonTextField + property string label: catalog.i18nc("@label", "X min") + property string tooltip: catalog.i18nc("@tooltip", "Distance from the left of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\".") + property string axis: "x" + property string side: "min" + } - Label - { - text: catalog.i18nc("@label", "X min") - } - TextField - { - id: printheadXMinField - text: getHeadPolygonCoord("x", "min") - validator: RegExpValidator { regExp: /[0-9\.]{0,6}/ } - onEditingFinished: setHeadPolygon() - } + Loader + { + id: printheadYMinField + sourceComponent: headPolygonTextField + property string label: catalog.i18nc("@label", "Y min") + property string tooltip: catalog.i18nc("@tooltip", "Distance from the front of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\".") + property string axis: "y" + property string side: "min" + } - Label - { - text: catalog.i18nc("@label", "Y min") - } - TextField - { - id: printheadYMinField - text: getHeadPolygonCoord("y", "min") - validator: RegExpValidator { regExp: /[0-9\.]{0,6}/ } - onEditingFinished: setHeadPolygon() - } + Loader + { + id: printheadXMaxField + sourceComponent: headPolygonTextField + property string label: catalog.i18nc("@label", "X max") + property string tooltip: catalog.i18nc("@tooltip", "Distance from the right of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\".") + property string axis: "x" + property string side: "max" + } - Label - { - text: catalog.i18nc("@label", "X max") - } - TextField - { - id: printheadXMaxField - text: getHeadPolygonCoord("x", "max") - validator: RegExpValidator { regExp: /[0-9\.]{0,6}/ } - onEditingFinished: setHeadPolygon() - } + Loader + { + id: printheadYMaxField + sourceComponent: headPolygonTextField + property string label: catalog.i18nc("@label", "Y max") + property string tooltip: catalog.i18nc("@tooltip", "Distance from the rear of the printhead to the center of the nozzle. Used to prevent colissions between previous prints and the printhead when printing \"One at a Time\".") + property string axis: "y" + property string side: "max" + } - Label - { - text: catalog.i18nc("@label", "Y max") - } - TextField - { - id: printheadYMaxField - text: getHeadPolygonCoord("y", "max") - validator: RegExpValidator { regExp: /[0-9\.]{0,6}/ } - onEditingFinished: setHeadPolygon() - } + Item { width: UM.Theme.getSize("default_margin").width; height: UM.Theme.getSize("default_margin").height } - Item { width: UM.Theme.getSize("default_margin").width; height: UM.Theme.getSize("default_margin").height } - Item { width: UM.Theme.getSize("default_margin").width; height: UM.Theme.getSize("default_margin").height } + Loader + { + id: gantryHeightField + sourceComponent: numericTextFieldWithUnit + property string settingKey: "gantry_height" + property string label: catalog.i18nc("@label", "Gantry height") + property string unit: catalog.i18nc("@label", "mm") + property string tooltip: catalog.i18nc("@tooltip", "The height difference between the tip of the nozzle and the gantry system (X and Y axes). Used to prevent collisions between previous prints and the gantry when printing \"One at a Time\".") + } - Label - { - text: catalog.i18nc("@label", "Gantry height") - } - Loader - { - id: gantryHeightField - sourceComponent: numericTextFieldWithUnit - property var propertyProvider: gantryHeightProvider - property string unit: catalog.i18nc("@label", "mm") - } + Item { width: UM.Theme.getSize("default_margin").width; height: UM.Theme.getSize("default_margin").height } - Item { width: UM.Theme.getSize("default_margin").width; height: UM.Theme.getSize("default_margin").height } - Item { width: UM.Theme.getSize("default_margin").width; height: UM.Theme.getSize("default_margin").height } + UM.TooltipArea + { + visible: manager.definedExtruderCount > 1 + height: childrenRect.height + width: childrenRect.width + text: machineExtruderCountProvider.properties.description - Label + Row { - text: catalog.i18nc("@label", "Number of Extruders") - visible: extruderCountComboBox.visible - } + spacing: UM.Theme.getSize("default_margin").width - ComboBox - { - id: extruderCountComboBox - visible: manager.definedExtruderCount > 1 - model: ListModel + Label { - id: extruderCountModel - Component.onCompleted: + text: catalog.i18nc("@label", "Number of Extruders") + elide: Text.ElideRight + width: Math.max(0, settingsTabs.columnWidth - 2 * UM.Theme.getSize("default_margin").width - extruderCountComboBox.width) + anchors.verticalCenter: extruderCountComboBox.verticalCenter + } + ComboBox + { + id: extruderCountComboBox + model: ListModel { - for(var i = 0; i < manager.definedExtruderCount; i++) + id: extruderCountModel + Component.onCompleted: { - extruderCountModel.append({text: String(i + 1), value: i}); + for(var i = 0; i < manager.definedExtruderCount; i++) + { + extruderCountModel.append({text: String(i + 1), value: i}); + } } } - } - currentIndex: machineExtruderCountProvider.properties.value - 1 - onActivated: - { - manager.setMachineExtruderCount(index + 1); + currentIndex: machineExtruderCountProvider.properties.value - 1 + onActivated: + { + manager.setMachineExtruderCount(index + 1); + } } } + } - Label - { - text: catalog.i18nc("@label", "Material Diameter") - } - Loader - { - id: materialDiameterField - sourceComponent: numericTextFieldWithUnit - property var propertyProvider: materialDiameterProvider - property string unit: catalog.i18nc("@label", "mm") - } - Label - { - text: catalog.i18nc("@label", "Nozzle size") - visible: nozzleSizeField.visible - } - Loader - { - id: nozzleSizeField - visible: !Cura.MachineManager.hasVariants && machineExtruderCountProvider.properties.value == 1 - sourceComponent: numericTextFieldWithUnit - property var propertyProvider: machineNozzleSizeProvider - property string unit: catalog.i18nc("@label", "mm") - } + Loader + { + id: materialDiameterField + sourceComponent: numericTextFieldWithUnit + property string settingKey: "material_diameter" + property string unit: catalog.i18nc("@label", "mm") + property string tooltip: catalog.i18nc("@tooltip", "The nominal diameter of filament supported by the printer. The exact diameter will be overridden by the material and/or the profile.") + property var afterOnEditingFinished: manager.updateMaterialForDiameter + property string label: catalog.i18nc("@label", "Material diameter") + } + Loader + { + id: nozzleSizeField + visible: !Cura.MachineManager.hasVariants && machineExtruderCountProvider.properties.value == 1 + sourceComponent: numericTextFieldWithUnit + property string settingKey: "machine_nozzle_size" + property string label: catalog.i18nc("@label", "Nozzle size") + property string unit: catalog.i18nc("@label", "mm") } } } @@ -417,24 +315,14 @@ Cura.MachineAction text: catalog.i18nc("@label", "Start Gcode") font.bold: true } - TextArea + Loader { id: machineStartGcodeField - width: parent.width - height: parent.height - y - font: UM.Theme.getFont("fixed") - text: machineStartGcodeProvider.properties.value - onActiveFocusChanged: - { - if(!activeFocus) - { - machineStartGcodeProvider.setPropertyValue("value", machineStartGcodeField.text) - } - } - Component.onCompleted: - { - wrapMode = TextEdit.NoWrap; - } + sourceComponent: gcodeTextArea + property int areaWidth: parent.width + property int areaHeight: parent.height - y + property string settingKey: "machine_start_gcode" + property string tooltip: catalog.i18nc("@tooltip", "Gcode commands to be executed at the very start.") } } @@ -446,57 +334,17 @@ Cura.MachineAction text: catalog.i18nc("@label", "End Gcode") font.bold: true } - TextArea + Loader { id: machineEndGcodeField - width: parent.width - height: parent.height - y - font: UM.Theme.getFont("fixed") - text: machineEndGcodeProvider.properties.value - onActiveFocusChanged: - { - if(!activeFocus) - { - machineEndGcodeProvider.setPropertyValue("value", machineEndGcodeField.text) - } - } - Component.onCompleted: - { - wrapMode = TextEdit.NoWrap; - } + sourceComponent: gcodeTextArea + property int areaWidth: parent.width + property int areaHeight: parent.height - y + property string settingKey: "machine_end_gcode" + property string tooltip: catalog.i18nc("@tooltip", "Gcode commands to be executed at the very end.") } } } - - function getHeadPolygonCoord(axis, minMax) - { - var polygon = JSON.parse(machineHeadPolygonProvider.properties.value); - var item = (axis == "x") ? 0 : 1 - var result = polygon[0][item]; - for(var i = 1; i < polygon.length; i++) { - if (minMax == "min") { - result = Math.min(result, polygon[i][item]); - } else { - result = Math.max(result, polygon[i][item]); - } - } - return Math.abs(result); - } - - function setHeadPolygon() - { - var polygon = []; - polygon.push([-parseFloat(printheadXMinField.text), parseFloat(printheadYMaxField.text)]); - polygon.push([-parseFloat(printheadXMinField.text),-parseFloat(printheadYMinField.text)]); - polygon.push([ parseFloat(printheadXMaxField.text), parseFloat(printheadYMaxField.text)]); - polygon.push([ parseFloat(printheadXMaxField.text),-parseFloat(printheadYMinField.text)]); - var polygon_string = JSON.stringify(polygon); - if(polygon != machineHeadPolygonProvider.properties.value) - { - machineHeadPolygonProvider.setPropertyValue("value", polygon_string); - manager.forceUpdate(); - } - } } } @@ -521,7 +369,7 @@ Cura.MachineAction Column { - spacing: UM.Theme.getSize("default_margin").width + spacing: UM.Theme.getSize("default_lining").width Label { @@ -529,54 +377,45 @@ Cura.MachineAction font.bold: true } - Grid + Item { width: UM.Theme.getSize("default_margin").width; height: UM.Theme.getSize("default_margin").height } + + Loader { - columns: 2 - columnSpacing: UM.Theme.getSize("default_margin").width - rowSpacing: UM.Theme.getSize("default_lining").width - - Label - { - text: catalog.i18nc("@label", "Nozzle size") - visible: extruderNozzleSizeField.visible - } - Loader - { - id: extruderNozzleSizeField - visible: !Cura.MachineManager.hasVariants - sourceComponent: numericTextFieldWithUnit - property var propertyProvider: extruderNozzleSizeProvider - property string unit: catalog.i18nc("@label", "mm") - } - - Label - { - text: catalog.i18nc("@label", "Nozzle offset X") - } - Loader - { - id: extruderOffsetXField - sourceComponent: numericTextFieldWithUnit - property var propertyProvider: extruderOffsetXProvider - property string unit: catalog.i18nc("@label", "mm") - property bool forceUpdateOnChange: true - property bool allowNegative: true - } - Label - { - text: catalog.i18nc("@label", "Nozzle offset Y") - } - Loader - { - id: extruderOffsetYField - sourceComponent: numericTextFieldWithUnit - property var propertyProvider: extruderOffsetYProvider - property string unit: catalog.i18nc("@label", "mm") - property bool forceUpdateOnChange: true - property bool allowNegative: true - } + id: extruderNozzleSizeField + visible: !Cura.MachineManager.hasVariants + sourceComponent: numericTextFieldWithUnit + property string settingKey: "machine_nozzle_size" + property string label: catalog.i18nc("@label", "Nozzle size") + property string unit: catalog.i18nc("@label", "mm") + property bool isExtruderSetting: true } + Loader + { + id: extruderOffsetXField + sourceComponent: numericTextFieldWithUnit + property string settingKey: "machine_nozzle_offset_x" + property string label: catalog.i18nc("@label", "Nozzle offset X") + property string unit: catalog.i18nc("@label", "mm") + property bool isExtruderSetting: true + property bool forceUpdateOnChange: true + property bool allowNegative: true + } + + Loader + { + id: extruderOffsetYField + sourceComponent: numericTextFieldWithUnit + property string settingKey: "machine_nozzle_offset_y" + property string label: catalog.i18nc("@label", "Nozzle offset Y") + property string unit: catalog.i18nc("@label", "mm") + property bool isExtruderSetting: true + property bool forceUpdateOnChange: true + property bool allowNegative: true + } + + Item { width: UM.Theme.getSize("default_margin").width; height: UM.Theme.getSize("default_margin").height } + Row { spacing: UM.Theme.getSize("default_margin").width @@ -592,25 +431,15 @@ Cura.MachineAction text: catalog.i18nc("@label", "Extruder Start Gcode") font.bold: true } - TextArea + Loader { id: extruderStartGcodeField - width: parent.width - height: parent.height - y - font: UM.Theme.getFont("fixed") - text: (extruderStartGcodeProvider.properties.value) ? extruderStartGcodeProvider.properties.value : "" - onActiveFocusChanged: - { - if(!activeFocus) - { - extruderStartGcodeProvider.setPropertyValue("value", extruderStartGcodeField.text) - } - } - Component.onCompleted: - { - wrapMode = TextEdit.NoWrap; - } - } + sourceComponent: gcodeTextArea + property int areaWidth: parent.width + property int areaHeight: parent.height - y + property string settingKey: "machine_extruder_start_code" + property bool isExtruderSetting: true + } } Column { height: parent.height @@ -620,24 +449,14 @@ Cura.MachineAction text: catalog.i18nc("@label", "Extruder End Gcode") font.bold: true } - TextArea + Loader { id: extruderEndGcodeField - width: parent.width - height: parent.height - y - font: UM.Theme.getFont("fixed") - text: (extruderEndGcodeProvider.properties.value) ? extruderEndGcodeProvider.properties.value : "" - onActiveFocusChanged: - { - if(!activeFocus) - { - extruderEndGcodeProvider.setPropertyValue("value", extruderEndGcodeField.text) - } - } - Component.onCompleted: - { - wrapMode = TextEdit.NoWrap; - } + sourceComponent: gcodeTextArea + property int areaWidth: parent.width + property int areaHeight: parent.height - y + property string settingKey: "machine_extruder_end_code" + property bool isExtruderSetting: true } } } @@ -649,136 +468,395 @@ Cura.MachineAction Component { - id: numericTextFieldWithUnit - Item { - height: textField.height - width: textField.width + id: simpleCheckBox + UM.TooltipArea + { + height: checkBox.height + width: checkBox.width + text: _tooltip - property bool _allowNegative: (typeof(allowNegative) === 'undefined') ? false : allowNegative + property bool _isExtruderSetting: (typeof(isExtruderSetting) === 'undefined') ? false: isExtruderSetting property bool _forceUpdateOnChange: (typeof(forceUpdateOnChange) === 'undefined') ? false: forceUpdateOnChange + property string _tooltip: (typeof(tooltip) === 'undefined') ? propertyProvider.properties.description : tooltip - TextField + UM.SettingPropertyProvider { - id: textField - text: (propertyProvider.properties.value) ? propertyProvider.properties.value : "" - validator: RegExpValidator { regExp: _allowNegative ? /-?[0-9\.]{0,6}/ : /[0-9\.]{0,6}/ } - onEditingFinished: - { - if (propertyProvider && text != propertyProvider.properties.value) + id: propertyProvider + + containerStackId: { + if(_isExtruderSetting) { - propertyProvider.setPropertyValue("value", text); + if(settingsTabs.currentIndex > 0) + { + return Cura.MachineManager.activeStackId; + } + return ""; + } + return Cura.MachineManager.activeMachineId; + } + key: settingKey + watchedProperties: [ "value", "description" ] + storeIndex: manager.containerIndex + } + + CheckBox + { + id: checkBox + text: label + checked: String(propertyProvider.properties.value).toLowerCase() != 'false' + onClicked: + { + propertyProvider.setPropertyValue("value", checked); if(_forceUpdateOnChange) { - var extruderIndex = ExtruderManager.activeExtruderIndex; manager.forceUpdate(); - if(ExtruderManager.activeExtruderIndex != extruderIndex) + } + } + } + } + } + + Component + { + id: numericTextFieldWithUnit + UM.TooltipArea + { + height: childrenRect.height + width: childrenRect.width + text: _tooltip + + property bool _isExtruderSetting: (typeof(isExtruderSetting) === 'undefined') ? false: isExtruderSetting + property bool _allowNegative: (typeof(allowNegative) === 'undefined') ? false : allowNegative + property var _afterOnEditingFinished: (typeof(afterOnEditingFinished) === 'undefined') ? undefined : afterOnEditingFinished + property bool _forceUpdateOnChange: (typeof(forceUpdateOnChange) === 'undefined') ? false : forceUpdateOnChange + property string _label: (typeof(label) === 'undefined') ? "" : label + property string _tooltip: (typeof(tooltip) === 'undefined') ? propertyProvider.properties.description : tooltip + + UM.SettingPropertyProvider + { + id: propertyProvider + + containerStackId: { + if(_isExtruderSetting) + { + if(settingsTabs.currentIndex > 0) + { + return Cura.MachineManager.activeStackId; + } + return ""; + } + return Cura.MachineManager.activeMachineId; + } + key: settingKey + watchedProperties: [ "value", "description" ] + storeIndex: manager.containerIndex + } + + Row + { + spacing: UM.Theme.getSize("default_margin").width + + Label + { + text: _label + visible: _label != "" + elide: Text.ElideRight + width: Math.max(0, settingsTabs.columnWidth - 2 * UM.Theme.getSize("default_margin").width - textFieldWithUnit.width) + anchors.verticalCenter: textFieldWithUnit.verticalCenter + } + + Item + { + width: textField.width + height: textField.height + + id: textFieldWithUnit + TextField + { + id: textField + text: (propertyProvider.properties.value) ? propertyProvider.properties.value : "" + validator: RegExpValidator { regExp: _allowNegative ? /-?[0-9\.]{0,6}/ : /[0-9\.]{0,6}/ } + onEditingFinished: + { + if (propertyProvider && text != propertyProvider.properties.value) { - ExtruderManager.setActiveExtruderIndex(extruderIndex) + propertyProvider.setPropertyValue("value", text); + if(_forceUpdateOnChange) + { + var extruderIndex = ExtruderManager.activeExtruderIndex; + manager.forceUpdate(); + if(ExtruderManager.activeExtruderIndex != extruderIndex) + { + ExtruderManager.setActiveExtruderIndex(extruderIndex) + } + } + if(_afterOnEditingFinished) + { + _afterOnEditingFinished(); + } + } + } + } + + Label + { + text: unit + anchors.right: textField.right + anchors.rightMargin: y - textField.y + anchors.verticalCenter: textField.verticalCenter + } + } + } + } + } + + Component + { + id: comboBoxWithOptions + UM.TooltipArea + { + height: childrenRect.height + width: childrenRect.width + text: _tooltip + + property bool _isExtruderSetting: (typeof(isExtruderSetting) === 'undefined') ? false : isExtruderSetting + property bool _forceUpdateOnChange: (typeof(forceUpdateOnChange) === 'undefined') ? false : forceUpdateOnChange + property var _afterOnActivate: (typeof(afterOnActivate) === 'undefined') ? undefined : afterOnActivate + property string _label: (typeof(label) === 'undefined') ? "" : label + property string _tooltip: (typeof(tooltip) === 'undefined') ? propertyProvider.properties.description : tooltip + + UM.SettingPropertyProvider + { + id: propertyProvider + + containerStackId: { + if(_isExtruderSetting) + { + if(settingsTabs.currentIndex > 0) + { + return Cura.MachineManager.activeStackId; + } + return ""; + } + return Cura.MachineManager.activeMachineId; + } + key: settingKey + watchedProperties: [ "value", "options", "description" ] + storeIndex: manager.containerIndex + } + + Row + { + spacing: UM.Theme.getSize("default_margin").width + + Label + { + text: _label + visible: _label != "" + elide: Text.ElideRight + width: Math.max(0, settingsTabs.columnWidth - 2 * UM.Theme.getSize("default_margin").width - comboBox.width) + anchors.verticalCenter: comboBox.verticalCenter + } + ComboBox + { + id: comboBox + model: ListModel + { + id: optionsModel + Component.onCompleted: + { + // Options come in as a string-representation of an OrderedDict + var options = propertyProvider.properties.options.match(/^OrderedDict\(\[\((.*)\)\]\)$/); + if(options) + { + options = options[1].split("), (") + for(var i = 0; i < options.length; i++) + { + var option = options[i].substring(1, options[i].length - 1).split("', '") + optionsModel.append({text: option[1], value: option[0]}); + } + } + } + } + currentIndex: + { + var currentValue = propertyProvider.properties.value; + var index = 0; + for(var i = 0; i < optionsModel.count; i++) + { + if(optionsModel.get(i).value == currentValue) { + index = i; + break; + } + } + return index + } + onActivated: + { + if(propertyProvider.properties.value != optionsModel.get(index).value) + { + propertyProvider.setPropertyValue("value", optionsModel.get(index).value); + if(_forceUpdateOnChange) + { + manager.forceUpdate(); + } + if(_afterOnActivate) + { + _afterOnActivate(); } } } } } + } + } - Label + Component + { + id: gcodeTextArea + + UM.TooltipArea + { + height: gcodeArea.height + width: gcodeArea.width + text: _tooltip + + property bool _isExtruderSetting: (typeof(isExtruderSetting) === 'undefined') ? false: isExtruderSetting + property string _tooltip: (typeof(tooltip) === 'undefined') ? propertyProvider.properties.description : tooltip + + UM.SettingPropertyProvider { - text: unit - anchors.right: textField.right - anchors.rightMargin: y - textField.y - anchors.verticalCenter: textField.verticalCenter + id: propertyProvider + + containerStackId: { + if(_isExtruderSetting) + { + if(settingsTabs.currentIndex > 0) + { + return Cura.MachineManager.activeStackId; + } + return ""; + } + return Cura.MachineManager.activeMachineId; + } + key: settingKey + watchedProperties: [ "value", "description" ] + storeIndex: manager.containerIndex + } + + TextArea + { + id: gcodeArea + width: areaWidth + height: areaHeight + font: UM.Theme.getFont("fixed") + text: (propertyProvider.properties.value) ? propertyProvider.properties.value : "" + onActiveFocusChanged: + { + if(!activeFocus) + { + propertyProvider.setPropertyValue("value", gcodeArea.text) + } + } + Component.onCompleted: + { + wrapMode = TextEdit.NoWrap; + } } } } - UM.SettingPropertyProvider + Component { - id: machineWidthProvider + id: headPolygonTextField + UM.TooltipArea + { + height: textField.height + width: textField.width + text: tooltip - containerStackId: Cura.MachineManager.activeMachineId - key: "machine_width" - watchedProperties: [ "value" ] - storeIndex: manager.containerIndex + property string _label: (typeof(label) === 'undefined') ? "" : label + + Row + { + spacing: UM.Theme.getSize("default_margin").width + + Label + { + text: _label + visible: _label != "" + elide: Text.ElideRight + width: Math.max(0, settingsTabs.columnWidth - 2 * UM.Theme.getSize("default_margin").width - textFieldWithUnit.width) + anchors.verticalCenter: textFieldWithUnit.verticalCenter + } + + Item + { + id: textFieldWithUnit + width: textField.width + height: textField.height + + TextField + { + id: textField + text: + { + var polygon = JSON.parse(machineHeadPolygonProvider.properties.value); + var item = (axis == "x") ? 0 : 1 + var result = polygon[0][item]; + for(var i = 1; i < polygon.length; i++) { + if (side == "min") { + result = Math.min(result, polygon[i][item]); + } else { + result = Math.max(result, polygon[i][item]); + } + } + result = Math.abs(result); + printHeadPolygon[axis][side] = result; + return result; + } + validator: RegExpValidator { regExp: /[0-9\.]{0,6}/ } + onEditingFinished: + { + printHeadPolygon[axis][side] = parseFloat(textField.text); + var polygon = []; + polygon.push([-printHeadPolygon["x"]["min"], printHeadPolygon["y"]["max"]]); + polygon.push([-printHeadPolygon["x"]["min"],-printHeadPolygon["y"]["min"]]); + polygon.push([ printHeadPolygon["x"]["max"], printHeadPolygon["y"]["max"]]); + polygon.push([ printHeadPolygon["x"]["max"],-printHeadPolygon["y"]["mìn"]]); + var polygon_string = JSON.stringify(polygon); + if(polygon_string != machineHeadPolygonProvider.properties.value) + { + machineHeadPolygonProvider.setPropertyValue("value", polygon_string); + manager.forceUpdate(); + } + } + } + + Label + { + text: catalog.i18nc("@label", "mm") + anchors.right: textField.right + anchors.rightMargin: y - textField.y + anchors.verticalCenter: textField.verticalCenter + } + } + } + } } - UM.SettingPropertyProvider + property var printHeadPolygon: { - id: machineDepthProvider - - containerStackId: Cura.MachineManager.activeMachineId - key: "machine_depth" - watchedProperties: [ "value" ] - storeIndex: manager.containerIndex + "x": { + "min": 0, + "max": 0, + }, + "y": { + "min": 0, + "max": 0, + }, } - UM.SettingPropertyProvider - { - id: machineHeightProvider - - containerStackId: Cura.MachineManager.activeMachineId - key: "machine_height" - watchedProperties: [ "value" ] - storeIndex: manager.containerIndex - } - - UM.SettingPropertyProvider - { - id: machineShapeProvider - - containerStackId: Cura.MachineManager.activeMachineId - key: "machine_shape" - watchedProperties: [ "value", "options" ] - storeIndex: manager.containerIndex - } - - UM.SettingPropertyProvider - { - id: machineHeatedBedProvider - - containerStackId: Cura.MachineManager.activeMachineId - key: "machine_heated_bed" - watchedProperties: [ "value" ] - storeIndex: manager.containerIndex - } - - UM.SettingPropertyProvider - { - id: machineCenterIsZeroProvider - - containerStackId: Cura.MachineManager.activeMachineId - key: "machine_center_is_zero" - watchedProperties: [ "value" ] - storeIndex: manager.containerIndex - } - - UM.SettingPropertyProvider - { - id: machineGCodeFlavorProvider - - containerStackId: Cura.MachineManager.activeMachineId - key: "machine_gcode_flavor" - watchedProperties: [ "value", "options" ] - storeIndex: manager.containerIndex - } - - UM.SettingPropertyProvider - { - id: materialDiameterProvider - - containerStackId: Cura.MachineManager.activeMachineId - key: "material_diameter" - watchedProperties: [ "value" ] - storeIndex: manager.containerIndex - } - - UM.SettingPropertyProvider - { - id: machineNozzleSizeProvider - - containerStackId: Cura.MachineManager.activeMachineId - key: "machine_nozzle_size" - watchedProperties: [ "value" ] - storeIndex: manager.containerIndex - } UM.SettingPropertyProvider { @@ -786,17 +864,7 @@ Cura.MachineAction containerStackId: Cura.MachineManager.activeMachineId key: "machine_extruder_count" - watchedProperties: [ "value" ] - storeIndex: manager.containerIndex - } - - UM.SettingPropertyProvider - { - id: gantryHeightProvider - - containerStackId: Cura.MachineManager.activeMachineId - key: "gantry_height" - watchedProperties: [ "value" ] + watchedProperties: [ "value", "description" ] storeIndex: manager.containerIndex } @@ -809,75 +877,4 @@ Cura.MachineAction watchedProperties: [ "value" ] storeIndex: manager.containerIndex } - - - UM.SettingPropertyProvider - { - id: machineStartGcodeProvider - - containerStackId: Cura.MachineManager.activeMachineId - key: "machine_start_gcode" - watchedProperties: [ "value" ] - storeIndex: manager.containerIndex - } - - UM.SettingPropertyProvider - { - id: machineEndGcodeProvider - - containerStackId: Cura.MachineManager.activeMachineId - key: "machine_end_gcode" - watchedProperties: [ "value" ] - storeIndex: manager.containerIndex - } - - UM.SettingPropertyProvider - { - id: extruderNozzleSizeProvider - - containerStackId: settingsTabs.currentIndex > 0 ? Cura.MachineManager.activeStackId : "" - key: "machine_nozzle_size" - watchedProperties: [ "value" ] - storeIndex: manager.containerIndex - } - - UM.SettingPropertyProvider - { - id: extruderOffsetXProvider - - containerStackId: settingsTabs.currentIndex > 0 ? Cura.MachineManager.activeStackId : "" - key: "machine_nozzle_offset_x" - watchedProperties: [ "value" ] - storeIndex: manager.containerIndex - } - - UM.SettingPropertyProvider - { - id: extruderOffsetYProvider - - containerStackId: settingsTabs.currentIndex > 0 ? Cura.MachineManager.activeStackId : "" - key: "machine_nozzle_offset_y" - watchedProperties: [ "value" ] - storeIndex: manager.containerIndex - } - - UM.SettingPropertyProvider - { - id: extruderStartGcodeProvider - - containerStackId: settingsTabs.currentIndex > 0 ? Cura.MachineManager.activeStackId : "" - key: "machine_extruder_start_code" - watchedProperties: [ "value" ] - storeIndex: manager.containerIndex - } - - UM.SettingPropertyProvider - { - id: extruderEndGcodeProvider - - containerStackId: settingsTabs.currentIndex > 0 ? Cura.MachineManager.activeStackId : "" - key: "machine_extruder_end_code" - watchedProperties: [ "value" ] - storeIndex: manager.containerIndex - } } \ No newline at end of file diff --git a/plugins/MachineSettingsAction/__init__.py b/plugins/MachineSettingsAction/__init__.py index 7d8b253d33..1c4464e9b2 100644 --- a/plugins/MachineSettingsAction/__init__.py +++ b/plugins/MachineSettingsAction/__init__.py @@ -7,15 +7,7 @@ from UM.i18n import i18nCatalog catalog = i18nCatalog("cura") def getMetaData(): - return { - "plugin": { - "name": catalog.i18nc("@label", "Machine Settings action"), - "author": "fieldOfView", - "version": "1.0", - "description": catalog.i18nc("@info:whatsthis", "Provides a way to change machine settings (such as build volume, nozzle size, etc)"), - "api": 3 - } - } + return {} def register(app): return { "machine_action": MachineSettingsAction.MachineSettingsAction() } diff --git a/plugins/MachineSettingsAction/plugin.json b/plugins/MachineSettingsAction/plugin.json new file mode 100644 index 0000000000..af63e3a9c8 --- /dev/null +++ b/plugins/MachineSettingsAction/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "Machine Settings action", + "author": "fieldOfView", + "version": "1.0.0", + "description": "Provides a way to change machine settings (such as build volume, nozzle size, etc)", + "api": 4, + "i18n-catalog": "cura" +} diff --git a/plugins/PerObjectSettingsTool/PerObjectCategory.qml b/plugins/PerObjectSettingsTool/PerObjectCategory.qml index d248d24bee..be7af3256d 100644 --- a/plugins/PerObjectSettingsTool/PerObjectCategory.qml +++ b/plugins/PerObjectSettingsTool/PerObjectCategory.qml @@ -22,7 +22,7 @@ Button { UM.RecolorImage { anchors.verticalCenter: parent.verticalCenter - height: label.height / 2 + height: (label.height / 2) | 0 width: height source: control.checked ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_right"); color: control.hovered ? palette.highlight : palette.buttonText diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml index 878eaddae5..a306dd1540 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml +++ b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml @@ -110,10 +110,10 @@ Item { Button { - width: UM.Theme.getSize("setting").height / 2; - height: UM.Theme.getSize("setting").height; + width: (UM.Theme.getSize("setting").height / 2) | 0 + height: UM.Theme.getSize("setting").height - onClicked: addedSettingsModel.setVisible(model.key, false); + onClicked: addedSettingsModel.setVisible(model.key, false) style: ButtonStyle { diff --git a/plugins/PerObjectSettingsTool/__init__.py b/plugins/PerObjectSettingsTool/__init__.py index 08b8de1452..eb102fde5d 100644 --- a/plugins/PerObjectSettingsTool/__init__.py +++ b/plugins/PerObjectSettingsTool/__init__.py @@ -10,13 +10,6 @@ i18n_catalog = i18nCatalog("cura") def getMetaData(): return { - "plugin": { - "name": i18n_catalog.i18nc("@label", "Per Model Settings Tool"), - "author": "Ultimaker", - "version": "1.0", - "description": i18n_catalog.i18nc("@info:whatsthis", "Provides the Per Model Settings."), - "api": 3 - }, "tool": { "name": i18n_catalog.i18nc("@label", "Per Model Settings"), "description": i18n_catalog.i18nc("@info:tooltip", "Configure Per Model Settings"), diff --git a/plugins/PerObjectSettingsTool/plugin.json b/plugins/PerObjectSettingsTool/plugin.json new file mode 100644 index 0000000000..3254662d33 --- /dev/null +++ b/plugins/PerObjectSettingsTool/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "Per Model Settings Tool", + "author": "Ultimaker B.V.", + "version": "1.0.0", + "description": "Provides the Per Model Settings.", + "api": 4, + "i18n-catalog": "cura" +} diff --git a/plugins/PluginBrowser/PluginBrowser.py b/plugins/PluginBrowser/PluginBrowser.py new file mode 100644 index 0000000000..76d4b4d284 --- /dev/null +++ b/plugins/PluginBrowser/PluginBrowser.py @@ -0,0 +1,249 @@ +# Copyright (c) 2017 Ultimaker B.V. +# PluginBrowser is released under the terms of the AGPLv3 or higher. +from UM.Extension import Extension +from UM.i18n import i18nCatalog +from UM.Logger import Logger +from UM.Qt.ListModel import ListModel +from UM.PluginRegistry import PluginRegistry +from UM.Application import Application +from UM.Version import Version + +from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest, QNetworkReply +from PyQt5.QtCore import QUrl, QObject, Qt, pyqtProperty, pyqtSignal, pyqtSlot +from PyQt5.QtQml import QQmlComponent, QQmlContext + +import json +import os +import tempfile + +i18n_catalog = i18nCatalog("cura") + + +class PluginBrowser(QObject, Extension): + def __init__(self, parent = None): + super().__init__(parent) + self.addMenuItem(i18n_catalog.i18n("Browse plugins"), self.browsePlugins) + self._api_version = 1 + self._api_url = "http://software.ultimaker.com/cura/v%s/" % self._api_version + + self._plugin_list_request = None + self._download_plugin_request = None + + self._download_plugin_reply = None + + self._network_manager = None + + self._plugins_metadata = [] + self._plugins_model = None + + self._qml_component = None + self._qml_context = None + self._dialog = None + self._download_progress = 0 + + self._is_downloading = False + + self._request_header = [b"User-Agent", str.encode("%s - %s" % (Application.getInstance().getApplicationName(), Application.getInstance().getVersion()))] + + # Installed plugins are really installed after reboot. In order to prevent the user from downloading the + # same file over and over again, we keep track of the upgraded plugins. + self._newly_installed_plugin_ids = [] + + + pluginsMetadataChanged = pyqtSignal() + onDownloadProgressChanged = pyqtSignal() + onIsDownloadingChanged = pyqtSignal() + + @pyqtProperty(bool, notify = onIsDownloadingChanged) + def isDownloading(self): + return self._is_downloading + + def browsePlugins(self): + self._createNetworkManager() + self.requestPluginList() + + if not self._dialog: + self._createDialog() + self._dialog.show() + + @pyqtSlot() + def requestPluginList(self): + Logger.log("i", "Requesting plugin list") + url = QUrl(self._api_url + "plugins") + self._plugin_list_request = QNetworkRequest(url) + self._plugin_list_request.setRawHeader(*self._request_header) + self._network_manager.get(self._plugin_list_request) + + def _createDialog(self): + Logger.log("d", "PluginBrowser") + + path = QUrl.fromLocalFile(os.path.join(PluginRegistry.getInstance().getPluginPath(self.getPluginId()), "PluginBrowser.qml")) + self._qml_component = QQmlComponent(Application.getInstance()._engine, path) + + # We need access to engine (although technically we can't) + self._qml_context = QQmlContext(Application.getInstance()._engine.rootContext()) + self._qml_context.setContextProperty("manager", self) + self._dialog = self._qml_component.create(self._qml_context) + if self._dialog is None: + Logger.log("e", "QQmlComponent status %s", self._qml_component.status()) + Logger.log("e", "QQmlComponent errorString %s", self._qml_component.errorString()) + + def setIsDownloading(self, is_downloading): + if self._is_downloading != is_downloading: + self._is_downloading = is_downloading + self.onIsDownloadingChanged.emit() + + def _onDownloadPluginProgress(self, bytes_sent, bytes_total): + if bytes_total > 0: + new_progress = bytes_sent / bytes_total * 100 + self.setDownloadProgress(new_progress) + if new_progress == 100.0: + self.setIsDownloading(False) + self._download_plugin_reply.downloadProgress.disconnect(self._onDownloadPluginProgress) + + # must not delete the temporary file on Windows + self._temp_plugin_file = tempfile.NamedTemporaryFile(mode = "w+b", suffix = ".curaplugin", delete = False) + location = self._temp_plugin_file.name + + # write first and close, otherwise on Windows, it cannot read the file + self._temp_plugin_file.write(self._download_plugin_reply.readAll()) + self._temp_plugin_file.close() + + # open as read + if not location.startswith("/"): + location = "/" + location # Ensure that it starts with a /, as otherwise it doesn't work on windows. + result = PluginRegistry.getInstance().installPlugin("file://" + location) + + self._newly_installed_plugin_ids.append(result["id"]) + self.pluginsMetadataChanged.emit() + + Application.getInstance().messageBox(i18n_catalog.i18nc("@window:title", "Plugin browser"), result["message"]) + + self._temp_plugin_file.close() # Plugin was installed, delete temp file + + @pyqtProperty(int, notify = onDownloadProgressChanged) + def downloadProgress(self): + return self._download_progress + + def setDownloadProgress(self, progress): + if progress != self._download_progress: + self._download_progress = progress + self.onDownloadProgressChanged.emit() + + @pyqtSlot(str) + def downloadAndInstallPlugin(self, url): + Logger.log("i", "Attempting to download & install plugin from %s", url) + url = QUrl(url) + self._download_plugin_request = QNetworkRequest(url) + self._download_plugin_request.setRawHeader(*self._request_header) + self._download_plugin_reply = self._network_manager.get(self._download_plugin_request) + self.setDownloadProgress(0) + self.setIsDownloading(True) + self._download_plugin_reply.downloadProgress.connect(self._onDownloadPluginProgress) + + @pyqtSlot() + def cancelDownload(self): + Logger.log("i", "user cancelled the download of a plugin") + self._download_plugin_reply.abort() + self._download_plugin_reply.downloadProgress.disconnect(self._onDownloadPluginProgress) + self._download_plugin_reply = None + self._download_plugin_request = None + + self.setDownloadProgress(0) + self.setIsDownloading(False) + + @pyqtProperty(QObject, notify=pluginsMetadataChanged) + def pluginsModel(self): + if self._plugins_model is None: + self._plugins_model = ListModel() + self._plugins_model.addRoleName(Qt.UserRole + 1, "name") + self._plugins_model.addRoleName(Qt.UserRole + 2, "version") + self._plugins_model.addRoleName(Qt.UserRole + 3, "short_description") + self._plugins_model.addRoleName(Qt.UserRole + 4, "author") + self._plugins_model.addRoleName(Qt.UserRole + 5, "already_installed") + self._plugins_model.addRoleName(Qt.UserRole + 6, "file_location") + self._plugins_model.addRoleName(Qt.UserRole + 7, "can_upgrade") + else: + self._plugins_model.clear() + items = [] + for metadata in self._plugins_metadata: + items.append({ + "name": metadata["label"], + "version": metadata["version"], + "short_description": metadata["short_description"], + "author": metadata["author"], + "already_installed": self._checkAlreadyInstalled(metadata["id"]), + "file_location": metadata["file_location"], + "can_upgrade": self._checkCanUpgrade(metadata["id"], metadata["version"]) + }) + self._plugins_model.setItems(items) + return self._plugins_model + + def _checkCanUpgrade(self, id, version): + plugin_registry = PluginRegistry.getInstance() + metadata = plugin_registry.getMetaData(id) + if metadata != {}: + if id in self._newly_installed_plugin_ids: + return False # We already updated this plugin. + current_version = Version(metadata["plugin"]["version"]) + new_version = Version(version) + if new_version > current_version: + return True + return False + + def _checkAlreadyInstalled(self, id): + plugin_registry = PluginRegistry.getInstance() + metadata = plugin_registry.getMetaData(id) + if metadata != {}: + return True + else: + if id in self._newly_installed_plugin_ids: + return True # We already installed this plugin, but the registry just doesn't know it yet. + return False + + def _onRequestFinished(self, reply): + reply_url = reply.url().toString() + if reply.error() == QNetworkReply.TimeoutError: + Logger.log("w", "Got a timeout.") + # Reset everything. + self.setDownloadProgress(0) + self.setIsDownloading(False) + if self._download_plugin_reply: + self._download_plugin_reply.downloadProgress.disconnect(self._onDownloadPluginProgress) + self._download_plugin_reply.abort() + self._download_plugin_reply = None + return + elif reply.error() == QNetworkReply.HostNotFoundError: + Logger.log("w", "Unable to reach server.") + return + + if reply.operation() == QNetworkAccessManager.GetOperation: + if reply_url == self._api_url + "plugins": + try: + json_data = json.loads(bytes(reply.readAll()).decode("utf-8")) + self._plugins_metadata = json_data + self.pluginsMetadataChanged.emit() + except json.decoder.JSONDecodeError: + Logger.log("w", "Received an invalid print job state message: Not valid JSON.") + return + else: + # Ignore any operation that is not a get operation + pass + + def _onNetworkAccesibleChanged(self, accessible): + if accessible == 0: + self.setDownloadProgress(0) + self.setIsDownloading(False) + if self._download_plugin_reply: + self._download_plugin_reply.downloadProgress.disconnect(self._onDownloadPluginProgress) + self._download_plugin_reply.abort() + self._download_plugin_reply = None + + def _createNetworkManager(self): + if self._network_manager: + self._network_manager.finished.disconnect(self._onRequestFinished) + self._network_manager.networkAccessibleChanged.disconnect(self._onNetworkAccesibleChanged) + + self._network_manager = QNetworkAccessManager() + self._network_manager.finished.connect(self._onRequestFinished) + self._network_manager.networkAccessibleChanged.connect(self._onNetworkAccesibleChanged) \ No newline at end of file diff --git a/plugins/PluginBrowser/PluginBrowser.qml b/plugins/PluginBrowser/PluginBrowser.qml new file mode 100644 index 0000000000..7d7ade5d95 --- /dev/null +++ b/plugins/PluginBrowser/PluginBrowser.qml @@ -0,0 +1,182 @@ +import UM 1.1 as UM +import QtQuick 2.2 +import QtQuick.Dialogs 1.1 +import QtQuick.Window 2.2 +import QtQuick.Controls 1.1 + +UM.Dialog +{ + id: base + + title: catalog.i18nc("@title:window", "Find & Update plugins") + width: 600 + height: 450 + Item + { + anchors.fill: parent + Item + { + id: topBar + height: childrenRect.height; + width: parent.width + Label + { + id: introText + text: catalog.i18nc("@label", "Here you can find a list of Third Party plugins.") + width: parent.width + height: 30 + } + + Button + { + id: refresh + text: catalog.i18nc("@action:button", "Refresh") + onClicked: manager.requestPluginList() + anchors.right: parent.right + enabled: !manager.isDownloading + } + } + ScrollView + { + width: parent.width + anchors.top: topBar.bottom + anchors.bottom: bottomBar.top + anchors.bottomMargin: UM.Theme.getSize("default_margin").height + frameVisible: true + ListView + { + id: pluginList + model: manager.pluginsModel + anchors.fill: parent + + property var activePlugin + delegate: pluginDelegate + } + } + Item + { + id: bottomBar + width: parent.width + height: closeButton.height + anchors.bottom:parent.bottom + anchors.left: parent.left + ProgressBar + { + id: progressbar + anchors.bottom: parent.bottom + minimumValue: 0; + maximumValue: 100 + anchors.left:parent.left + anchors.right: closeButton.left + anchors.rightMargin: UM.Theme.getSize("default_margin").width + value: manager.isDownloading ? manager.downloadProgress : 0 + } + + Button + { + id: closeButton + text: catalog.i18nc("@action:button", "Close") + iconName: "dialog-close" + onClicked: + { + if (manager.isDownloading) + { + manager.cancelDownload() + } + base.close(); + } + anchors.bottom: parent.bottom + anchors.right: parent.right + } + } + + Item + { + SystemPalette { id: palette } + Component + { + id: pluginDelegate + Rectangle + { + width: pluginList.width; + height: texts.height; + color: index % 2 ? palette.base : palette.alternateBase + Column + { + id: texts + width: parent.width + height: childrenRect.height + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("default_margin").width + anchors.right: downloadButton.left + anchors.rightMargin: UM.Theme.getSize("default_margin").width + Label + { + text: "" + model.name + " - " + model.author + width: contentWidth + height: contentHeight + UM.Theme.getSize("default_margin").height + verticalAlignment: Text.AlignVCenter + } + + Label + { + text: model.short_description + width: parent.width + height: contentHeight + UM.Theme.getSize("default_margin").height + wrapMode: Text.WordWrap + verticalAlignment: Text.AlignVCenter + } + } + Button + { + id: downloadButton + text: + { + if (manager.isDownloading && pluginList.activePlugin == model) + { + return catalog.i18nc("@action:button", "Cancel"); + } + else if (model.already_installed) + { + if (model.can_upgrade) + { + return catalog.i18nc("@action:button", "Upgrade"); + } + return catalog.i18nc("@action:button", "Installed"); + } + return catalog.i18nc("@action:button", "Download"); + } + onClicked: + { + if(!manager.isDownloading) + { + pluginList.activePlugin = model; + manager.downloadAndInstallPlugin(model.file_location); + } + else + { + manager.cancelDownload(); + } + } + anchors.right: parent.right + anchors.rightMargin: UM.Theme.getSize("default_margin").width + anchors.verticalCenter: parent.verticalCenter + enabled: + { + if (manager.isDownloading) + { + return (pluginList.activePlugin == model); + } + else + { + return (!model.already_installed || model.can_upgrade); + } + } + } + } + + } + } + UM.I18nCatalog { id: catalog; name:"cura" } + } +} \ No newline at end of file diff --git a/plugins/PluginBrowser/__init__.py b/plugins/PluginBrowser/__init__.py new file mode 100644 index 0000000000..19013bd06d --- /dev/null +++ b/plugins/PluginBrowser/__init__.py @@ -0,0 +1,12 @@ +# Copyright (c) 2017 Ultimaker B.V. +# PluginBrowser is released under the terms of the AGPLv3 or higher. + +from . import PluginBrowser + + +def getMetaData(): + return {} + + +def register(app): + return {"extension": PluginBrowser.PluginBrowser()} diff --git a/plugins/PluginBrowser/plugin.json b/plugins/PluginBrowser/plugin.json new file mode 100644 index 0000000000..491e21f506 --- /dev/null +++ b/plugins/PluginBrowser/plugin.json @@ -0,0 +1,7 @@ +{ + "name": "Plugin Browser", + "author": "Ultimaker B.V.", + "version": "1.0.0", + "api": 4, + "description": "Find, manage and install new plugins." +} \ No newline at end of file diff --git a/plugins/RemovableDriveOutputDevice/WindowsRemovableDrivePlugin.py b/plugins/RemovableDriveOutputDevice/WindowsRemovableDrivePlugin.py index 42f3935f65..1c15990bf1 100644 --- a/plugins/RemovableDriveOutputDevice/WindowsRemovableDrivePlugin.py +++ b/plugins/RemovableDriveOutputDevice/WindowsRemovableDrivePlugin.py @@ -1,19 +1,18 @@ # Copyright (c) 2015 Ultimaker B.V. # Copyright (c) 2013 David Braam # Uranium is released under the terms of the AGPLv3 or higher. - -from UM.i18n import i18nCatalog -catalog = i18nCatalog("cura") - from . import RemovableDrivePlugin import string -import ctypes # type: ignore -from ctypes import wintypes # Using ctypes.wintypes in the code below does not seem to work +import ctypes +from ctypes import wintypes # Using ctypes.wintypes in the code below does not seem to work from UM.i18n import i18nCatalog catalog = i18nCatalog("cura") +# Ignore windows error popups. Fixes the whole "Can't open drive X" when user has an SD card reader. +ctypes.windll.kernel32.SetErrorMode(1) + # WinAPI Constants that we need # Hardcoded here due to stupid WinDLL stuff that does not give us access to these values. DRIVE_REMOVABLE = 2 # [CodeStyle: Windows Enum value] diff --git a/plugins/RemovableDriveOutputDevice/__init__.py b/plugins/RemovableDriveOutputDevice/__init__.py index b00214d425..8b46074066 100644 --- a/plugins/RemovableDriveOutputDevice/__init__.py +++ b/plugins/RemovableDriveOutputDevice/__init__.py @@ -8,13 +8,6 @@ catalog = i18nCatalog("cura") def getMetaData(): return { - "plugin": { - "name": catalog.i18nc("@label", "Removable Drive Output Device Plugin"), - "author": "Ultimaker B.V.", - "description": catalog.i18nc("@info:whatsthis", "Provides removable drive hotplugging and writing support."), - "version": "1.0", - "api": 3 - } } def register(app): diff --git a/plugins/RemovableDriveOutputDevice/plugin.json b/plugins/RemovableDriveOutputDevice/plugin.json new file mode 100644 index 0000000000..df11644256 --- /dev/null +++ b/plugins/RemovableDriveOutputDevice/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "Removable Drive Output Device Plugin", + "author": "Ultimaker B.V.", + "description": "Provides removable drive hotplugging and writing support.", + "version": "1.0.0", + "api": 4, + "i18n-catalog": "cura" +} diff --git a/plugins/SliceInfoPlugin/SliceInfo.py b/plugins/SliceInfoPlugin/SliceInfo.py index 50ca1dbd06..0af9c85607 100755 --- a/plugins/SliceInfoPlugin/SliceInfo.py +++ b/plugins/SliceInfoPlugin/SliceInfo.py @@ -1,69 +1,37 @@ # Copyright (c) 2015 Ultimaker B.V. # Cura is released under the terms of the AGPLv3 or higher. -from typing import Any from cura.CuraApplication import CuraApplication +from cura.Settings.ExtruderManager import ExtruderManager from UM.Extension import Extension from UM.Application import Application from UM.Preferences import Preferences from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator -from UM.Scene.SceneNode import SceneNode from UM.Message import Message from UM.i18n import i18nCatalog from UM.Logger import Logger -from UM.Platform import Platform + +import time + from UM.Qt.Duration import DurationFormat -from UM.Job import Job + +from .SliceInfoJob import SliceInfoJob import platform import math import urllib.request import urllib.parse -import ssl -import hashlib import json catalog = i18nCatalog("cura") -class SliceInfoJob(Job): - data = None # type: Any - url = None # type: str - - def __init__(self, url, data): - super().__init__() - self.url = url - self.data = data - - def run(self): - if not self.url or not self.data: - Logger.log("e", "URL or DATA for sending slice info was not set!") - return - - # Submit data - kwoptions = {"data" : self.data, - "timeout" : 5 - } - - if Platform.isOSX(): - kwoptions["context"] = ssl._create_unverified_context() - - Logger.log("d", "Sending anonymous slice info to [%s]...", self.url) - - try: - f = urllib.request.urlopen(self.url, **kwoptions) - Logger.log("i", "Sent anonymous slice info.") - f.close() - except urllib.error.HTTPError as http_exception: - Logger.log("e", "An HTTP error occurred while trying to send slice information: %s" % http_exception) - except Exception as e: # We don't want any exception to cause problems - Logger.log("e", "An exception occurred while trying to send slice information: %s" % e) ## This Extension runs in the background and sends several bits of information to the Ultimaker servers. # The data is only sent when the user in question gave permission to do so. All data is anonymous and # no model files are being sent (Just a SHA256 hash of the model). class SliceInfo(Extension): - info_url = "https://stats.youmagine.com/curastats/slice" + info_url = "https://stats.ultimaker.com/api/cura" def __init__(self): super().__init__() @@ -72,7 +40,7 @@ class SliceInfo(Extension): Preferences.getInstance().addPreference("info/asked_send_slice_info", False) if not Preferences.getInstance().getValue("info/asked_send_slice_info"): - self.send_slice_info_message = Message(catalog.i18nc("@info", "Cura collects anonymised slicing statistics. You can disable this in preferences"), lifetime = 0, dismissable = False) + self.send_slice_info_message = Message(catalog.i18nc("@info", "Cura collects anonymised slicing statistics. You can disable this in the preferences."), lifetime = 0, dismissable = False) self.send_slice_info_message.addAction("Dismiss", catalog.i18nc("@action:button", "Dismiss"), None, "") self.send_slice_info_message.actionTriggered.connect(self.messageActionTriggered) self.send_slice_info_message.show() @@ -85,61 +53,139 @@ class SliceInfo(Extension): try: if not Preferences.getInstance().getValue("info/send_slice_info"): Logger.log("d", "'info/send_slice_info' is turned off.") - return # Do nothing, user does not want to send data - - # Listing all files placed on the buildplate - modelhashes = [] - for node in DepthFirstIterator(CuraApplication.getInstance().getController().getScene().getRoot()): - if node.callDecoration("isSliceable"): - modelhashes.append(node.getMeshData().getHash()) - - # Creating md5sums and formatting them as discussed on JIRA - modelhash_formatted = ",".join(modelhashes) + return # Do nothing, user does not want to send data global_container_stack = Application.getInstance().getGlobalContainerStack() - - # Get total material used (in mm^3) print_information = Application.getInstance().getPrintInformation() - material_radius = 0.5 * global_container_stack.getProperty("material_diameter", "value") - # Send material per extruder - material_used = [str(math.pi * material_radius * material_radius * material_length) for material_length in print_information.materialLengths] - material_used = ",".join(material_used) + data = dict() # The data that we're going to submit. + data["time_stamp"] = time.time() + data["schema_version"] = 0 + data["cura_version"] = Application.getInstance().getVersion() - containers = { "": global_container_stack.serialize() } - for container in global_container_stack.getContainers(): - container_id = container.getId() - try: - container_serialized = container.serialize() - except NotImplementedError: - Logger.log("w", "Container %s could not be serialized!", container_id) - continue - if container_serialized: - containers[container_id] = container_serialized - else: - Logger.log("i", "No data found in %s to be serialized!", container_id) + active_mode = Preferences.getInstance().getValue("cura/active_mode") + if active_mode == 0: + data["active_mode"] = "recommended" + else: + data["active_mode"] = "custom" - # Bundle the collected data - submitted_data = { - "processor": platform.processor(), - "machine": platform.machine(), - "platform": platform.platform(), - "settings": json.dumps(containers), # bundle of containers with their serialized contents - "version": Application.getInstance().getVersion(), - "modelhash": modelhash_formatted, - "printtime": print_information.currentPrintTime.getDisplayString(DurationFormat.Format.ISO8601), - "filament": material_used, - "language": Preferences.getInstance().getValue("general/language"), - } + data["machine_settings_changed_by_user"] = global_container_stack.definitionChanges.getId() != "empty" + data["language"] = Preferences.getInstance().getValue("general/language") + data["os"] = {"type": platform.system(), "version": platform.version()} + + data["active_machine"] = {"definition_id": global_container_stack.definition.getId(), "manufacturer": global_container_stack.definition.getMetaData().get("manufacturer","")} + + data["extruders"] = [] + extruders = list(ExtruderManager.getInstance().getMachineExtruders(global_container_stack.getId())) + extruders = sorted(extruders, key = lambda extruder: extruder.getMetaDataEntry("position")) + + if not extruders: + extruders = [global_container_stack] + + for extruder in extruders: + extruder_dict = dict() + extruder_dict["active"] = ExtruderManager.getInstance().getActiveExtruderStack() == extruder + extruder_dict["material"] = {"GUID": extruder.material.getMetaData().get("GUID", ""), + "type": extruder.material.getMetaData().get("material", ""), + "brand": extruder.material.getMetaData().get("brand", "") + } + extruder_dict["material_used"] = print_information.materialLengths[int(extruder.getMetaDataEntry("position", "0"))] + extruder_dict["variant"] = extruder.variant.getName() + extruder_dict["nozzle_size"] = extruder.getProperty("machine_nozzle_size", "value") + + extruder_settings = dict() + extruder_settings["wall_line_count"] = extruder.getProperty("wall_line_count", "value") + extruder_settings["retraction_enable"] = extruder.getProperty("retraction_enable", "value") + extruder_settings["infill_sparse_density"] = extruder.getProperty("infill_sparse_density", "value") + extruder_settings["infill_pattern"] = extruder.getProperty("infill_pattern", "value") + extruder_settings["gradual_infill_steps"] = extruder.getProperty("gradual_infill_steps", "value") + extruder_settings["default_material_print_temperature"] = extruder.getProperty("default_material_print_temperature", "value") + extruder_settings["material_print_temperature"] = extruder.getProperty("material_print_temperature", "value") + extruder_dict["extruder_settings"] = extruder_settings + data["extruders"].append(extruder_dict) + + data["quality_profile"] = global_container_stack.quality.getMetaData().get("quality_type") + + data["models"] = [] + # Listing all files placed on the build plate + for node in DepthFirstIterator(CuraApplication.getInstance().getController().getScene().getRoot()): + if node.callDecoration("isSliceable"): + model = dict() + model["hash"] = node.getMeshData().getHash() + bounding_box = node.getBoundingBox() + model["bounding_box"] = {"minimum": {"x": bounding_box.minimum.x, + "y": bounding_box.minimum.y, + "z": bounding_box.minimum.z}, + "maximum": {"x": bounding_box.maximum.x, + "y": bounding_box.maximum.y, + "z": bounding_box.maximum.z}} + model["transformation"] = {"data": str(node.getWorldTransformation().getData()).replace("\n", "")} + extruder_position = node.callDecoration("getActiveExtruderPosition") + model["extruder"] = 0 if extruder_position is None else int(extruder_position) + + model_settings = dict() + model_stack = node.callDecoration("getStack") + if model_stack: + model_settings["support_enabled"] = model_stack.getProperty("support_enable", "value") + model_settings["support_extruder_nr"] = int(model_stack.getProperty("support_extruder_nr", "value")) + + # Mesh modifiers; + model_settings["infill_mesh"] = model_stack.getProperty("infill_mesh", "value") + model_settings["cutting_mesh"] = model_stack.getProperty("cutting_mesh", "value") + model_settings["support_mesh"] = model_stack.getProperty("support_mesh", "value") + model_settings["anti_overhang_mesh"] = model_stack.getProperty("anti_overhang_mesh", "value") + + model_settings["wall_line_count"] = model_stack.getProperty("wall_line_count", "value") + model_settings["retraction_enable"] = model_stack.getProperty("retraction_enable", "value") + + # Infill settings + model_settings["infill_sparse_density"] = model_stack.getProperty("infill_sparse_density", "value") + model_settings["infill_pattern"] = model_stack.getProperty("infill_pattern", "value") + model_settings["gradual_infill_steps"] = model_stack.getProperty("gradual_infill_steps", "value") + + model["model_settings"] = model_settings + + data["models"].append(model) + + print_times = print_information.printTimesPerFeature + data["print_times"] = {"travel": int(print_times["travel"].getDisplayString(DurationFormat.Format.Seconds)), + "support": int(print_times["support"].getDisplayString(DurationFormat.Format.Seconds)), + "infill": int(print_times["infill"].getDisplayString(DurationFormat.Format.Seconds)), + "total": int(print_information.currentPrintTime.getDisplayString(DurationFormat.Format.Seconds))} + + print_settings = dict() + print_settings["layer_height"] = global_container_stack.getProperty("layer_height", "value") + + # Support settings + print_settings["support_enabled"] = global_container_stack.getProperty("support_enable", "value") + print_settings["support_extruder_nr"] = int(global_container_stack.getProperty("support_extruder_nr", "value")) + + # Platform adhesion settings + print_settings["adhesion_type"] = global_container_stack.getProperty("adhesion_type", "value") + + # Shell settings + print_settings["wall_line_count"] = global_container_stack.getProperty("wall_line_count", "value") + print_settings["retraction_enable"] = global_container_stack.getProperty("retraction_enable", "value") + + # Prime tower settings + print_settings["prime_tower_enable"] = global_container_stack.getProperty("prime_tower_enable", "value") + + # Infill settings + print_settings["infill_sparse_density"] = global_container_stack.getProperty("infill_sparse_density", "value") + print_settings["infill_pattern"] = global_container_stack.getProperty("infill_pattern", "value") + print_settings["gradual_infill_steps"] = global_container_stack.getProperty("gradual_infill_steps", "value") + + print_settings["print_sequence"] = global_container_stack.getProperty("print_sequence", "value") + + data["print_settings"] = print_settings # Convert data to bytes - submitted_data = urllib.parse.urlencode(submitted_data) - binary_data = submitted_data.encode("utf-8") + binary_data = json.dumps(data).encode("utf-8") # Sending slice info non-blocking reportJob = SliceInfoJob(self.info_url, binary_data) reportJob.start() - except Exception as e: + except Exception: # We really can't afford to have a mistake here, as this would break the sending of g-code to a device # (Either saving or directly to a printer). The functionality of the slice data is not *that* important. - Logger.log("e", "Exception raised while sending slice info: %s" %(repr(e))) # But we should be notified about these problems of course. + Logger.logException("e", "Exception raised while sending slice info.") # But we should be notified about these problems of course. diff --git a/plugins/SliceInfoPlugin/SliceInfoJob.py b/plugins/SliceInfoPlugin/SliceInfoJob.py new file mode 100644 index 0000000000..0ef390d058 --- /dev/null +++ b/plugins/SliceInfoPlugin/SliceInfoJob.py @@ -0,0 +1,38 @@ +# Copyright (c) 2017 Ultimaker B.V. +# Cura is released under the terms of the AGPLv3 or higher. +from UM.Job import Job +from UM.Logger import Logger +from UM.Platform import Platform + +import ssl +import urllib.request +import urllib.error + + +class SliceInfoJob(Job): + def __init__(self, url, data): + super().__init__() + self._url = url + self._data = data + + def run(self): + if not self._url or not self._data: + Logger.log("e", "URL or DATA for sending slice info was not set!") + return + + # Submit data + kwoptions = {"data" : self._data, "timeout" : 5} + + if Platform.isOSX(): + kwoptions["context"] = ssl._create_unverified_context() + + Logger.log("i", "Sending anonymous slice info to [%s]...", self._url) + + try: + f = urllib.request.urlopen(self._url, **kwoptions) + Logger.log("i", "Sent anonymous slice info.") + f.close() + except urllib.error.HTTPError: + Logger.logException("e", "An HTTP error occurred while trying to send slice information") + except Exception: # We don't want any exception to cause problems + Logger.logException("e", "An exception occurred while trying to send slice information") \ No newline at end of file diff --git a/plugins/SliceInfoPlugin/__init__.py b/plugins/SliceInfoPlugin/__init__.py index f6e77fbf22..90ecfcef17 100644 --- a/plugins/SliceInfoPlugin/__init__.py +++ b/plugins/SliceInfoPlugin/__init__.py @@ -6,13 +6,6 @@ catalog = i18nCatalog("cura") def getMetaData(): return { - "plugin": { - "name": catalog.i18nc("@label", "Slice info"), - "author": "Ultimaker", - "version": "1.0", - "description": catalog.i18nc("@info:whatsthis", "Submits anonymous slice info. Can be disabled through preferences."), - "api": 3 - } } def register(app): diff --git a/plugins/SliceInfoPlugin/plugin.json b/plugins/SliceInfoPlugin/plugin.json new file mode 100644 index 0000000000..d1c643266b --- /dev/null +++ b/plugins/SliceInfoPlugin/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "Slice info", + "author": "Ultimaker B.V.", + "version": "1.0.0", + "description": "Submits anonymous slice info. Can be disabled through preferences.", + "api": 4, + "i18n-catalog": "cura" +} diff --git a/plugins/SolidView/SolidView.py b/plugins/SolidView/SolidView.py index 60c01670b1..04a0afd77b 100644 --- a/plugins/SolidView/SolidView.py +++ b/plugins/SolidView/SolidView.py @@ -7,7 +7,7 @@ from UM.Scene.Selection import Selection from UM.Resources import Resources from UM.Application import Application from UM.Preferences import Preferences -from UM.View.Renderer import Renderer +from UM.View.RenderBatch import RenderBatch from UM.Settings.Validator import ValidatorState from UM.Math.Color import Color from UM.View.GL.OpenGL import OpenGL @@ -118,7 +118,7 @@ class SolidView(View): else: renderer.queueNode(node, material = self._enabled_shader, uniforms = uniforms) if node.callDecoration("isGroup") and Selection.isSelected(node): - renderer.queueNode(scene.getRoot(), mesh = node.getBoundingBoxMesh(), mode = Renderer.RenderLines) + renderer.queueNode(scene.getRoot(), mesh = node.getBoundingBoxMesh(), mode = RenderBatch.RenderMode.LineLoop) def endRendering(self): pass diff --git a/plugins/SolidView/__init__.py b/plugins/SolidView/__init__.py index 945ccba8f6..67b15eb617 100644 --- a/plugins/SolidView/__init__.py +++ b/plugins/SolidView/__init__.py @@ -8,13 +8,6 @@ i18n_catalog = i18nCatalog("cura") def getMetaData(): return { - "plugin": { - "name": i18n_catalog.i18nc("@label", "Solid View"), - "author": "Ultimaker", - "version": "1.0", - "description": i18n_catalog.i18nc("@info:whatsthis", "Provides a normal solid mesh view."), - "api": 3 - }, "view": { "name": i18n_catalog.i18nc("@item:inmenu", "Solid"), "weight": 0 diff --git a/plugins/SolidView/plugin.json b/plugins/SolidView/plugin.json new file mode 100644 index 0000000000..6d6bda96f0 --- /dev/null +++ b/plugins/SolidView/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "Solid View", + "author": "Ultimaker B.V.", + "version": "1.0.0", + "description": "Provides a normal solid mesh view.", + "api": 4, + "i18n-catalog": "cura" +} \ No newline at end of file diff --git a/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml b/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml index f9af47fc7a..58f155533f 100644 --- a/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +++ b/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml @@ -114,7 +114,7 @@ Cura.MachineAction Column { - width: parent.width * 0.5 + width: (parent.width * 0.5) | 0 spacing: UM.Theme.getSize("default_margin").height ScrollView @@ -193,14 +193,14 @@ Cura.MachineAction wrapMode: Text.WordWrap //: Tips label //TODO: get actual link from webteam - text: catalog.i18nc("@label", "If your printer is not listed, read the network-printing troubleshooting guide").arg("https://ultimaker.com/en/troubleshooting"); + text: catalog.i18nc("@label", "If your printer is not listed, read the network printing troubleshooting guide").arg("https://ultimaker.com/en/troubleshooting"); onLinkActivated: Qt.openUrlExternally(link) } } Column { - width: parent.width * 0.5 + width: (parent.width * 0.5) | 0 visible: base.selectedPrinter ? true : false spacing: UM.Theme.getSize("default_margin").height Label @@ -218,13 +218,13 @@ Cura.MachineAction columns: 2 Label { - width: parent.width * 0.5 + width: (parent.width * 0.5) | 0 wrapMode: Text.WordWrap text: catalog.i18nc("@label", "Type") } Label { - width: parent.width * 0.5 + width: (parent.width * 0.5) | 0 wrapMode: Text.WordWrap text: { @@ -249,25 +249,25 @@ Cura.MachineAction } Label { - width: parent.width * 0.5 + width: (parent.width * 0.5) | 0 wrapMode: Text.WordWrap text: catalog.i18nc("@label", "Firmware version") } Label { - width: parent.width * 0.5 + width: (parent.width * 0.5) | 0 wrapMode: Text.WordWrap text: base.selectedPrinter ? base.selectedPrinter.firmwareVersion : "" } Label { - width: parent.width * 0.5 + width: (parent.width * 0.5) | 0 wrapMode: Text.WordWrap text: catalog.i18nc("@label", "Address") } Label { - width: parent.width * 0.5 + width: (parent.width * 0.5) | 0 wrapMode: Text.WordWrap text: base.selectedPrinter ? base.selectedPrinter.ipAddress : "" } diff --git a/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py b/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py index 18bf22d18d..373521b4e9 100755 --- a/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py +++ b/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py @@ -179,7 +179,6 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): self._compressing_print = False self._monitor_view_qml_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "MonitorItem.qml") - printer_type = self._properties.get(b"machine", b"").decode("utf-8") if printer_type.startswith("9511"): self._updatePrinterType("ultimaker3_extended") @@ -188,9 +187,18 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): else: self._updatePrinterType("unknown") + Application.getInstance().getOutputDeviceManager().outputDevicesChanged.connect(self._onOutputDevicesChanged) + def _onNetworkAccesibleChanged(self, accessible): Logger.log("d", "Network accessible state changed to: %s", accessible) + ## Triggered when the output device manager changes devices. + # + # This is how we can detect that our device is no longer active now. + def _onOutputDevicesChanged(self): + if self.getId() not in Application.getInstance().getOutputDeviceManager().getOutputDeviceIds(): + self.stopCamera() + def _onAuthenticationTimer(self): self._authentication_counter += 1 self._authentication_requested_message.setProgress(self._authentication_counter / self._max_authentication_counter * 100) @@ -305,15 +313,16 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): return True def _stopCamera(self): - self._camera_timer.stop() - if self._image_reply: - try: - self._image_reply.abort() - self._image_reply.downloadProgress.disconnect(self._onStreamDownloadProgress) - except RuntimeError: - pass # It can happen that the wrapped c++ object is already deleted. - self._image_reply = None - self._image_request = None + if self._camera_timer.isActive(): + self._camera_timer.stop() + if self._image_reply: + try: + self._image_reply.abort() + self._image_reply.downloadProgress.disconnect(self._onStreamDownloadProgress) + except RuntimeError: + pass # It can happen that the wrapped c++ object is already deleted. + self._image_reply = None + self._image_request = None def _startCamera(self): if self._use_stream: @@ -616,7 +625,7 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): # is ignored. # \param kwargs Keyword arguments. def requestWrite(self, nodes, file_name = None, filter_by_machine = False, file_handler = None, **kwargs): - if self._printer_state != "idle": + if self._printer_state not in ["idle", ""]: self._error_message = Message( i18n_catalog.i18nc("@info:status", "Unable to start a new print job, printer is busy. Current printer status is %s.") % self._printer_state) self._error_message.show() @@ -636,7 +645,7 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): # Only check for mistakes if there is material length information. if print_information.materialLengths: - # Check if print cores / materials are loaded at all. Any failure in these results in an Error. + # Check if PrintCores / materials are loaded at all. Any failure in these results in an Error. for index in range(0, self._num_extruders): if index < len(print_information.materialLengths) and print_information.materialLengths[index] != 0: if self._json_printer_state["heads"][0]["extruders"][index]["hotend"]["id"] == "": @@ -668,7 +677,7 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): if variant: if variant.getName() != core_name: Logger.log("w", "Extruder %s has a different Cartridge (%s) as Cura (%s)", index + 1, core_name, variant.getName()) - warnings.append(i18n_catalog.i18nc("@label", "Different print core (Cura: {0}, Printer: {1}) selected for extruder {2}".format(variant.getName(), core_name, index + 1))) + warnings.append(i18n_catalog.i18nc("@label", "Different PrintCore (Cura: {0}, Printer: {1}) selected for extruder {2}".format(variant.getName(), core_name, index + 1))) material = extruder_manager.getExtruderStack(index).findContainer({"type": "material"}) if material: @@ -690,7 +699,7 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): is_offset_calibrated = True if not is_offset_calibrated: - warnings.append(i18n_catalog.i18nc("@label", "Print core {0} is not properly calibrated. XY calibration needs to be performed on the printer.").format(index + 1)) + warnings.append(i18n_catalog.i18nc("@label", "PrintCore {0} is not properly calibrated. XY calibration needs to be performed on the printer.").format(index + 1)) else: Logger.log("w", "There was no material usage found. No check to match used material with machine is done.") @@ -1167,7 +1176,7 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): i18n_catalog.i18nc("@label", "Would you like to use your current printer configuration in Cura?"), i18n_catalog.i18nc("@label", - "The print cores and/or materials on your printer differ from those within your current project. For the best result, always slice for the print cores and materials that are inserted in your printer."), + "The PrintCores and/or materials on your printer differ from those within your current project. For the best result, always slice for the PrintCores and materials that are inserted in your printer."), buttons=QMessageBox.Yes + QMessageBox.No, icon=QMessageBox.Question, callback=callback diff --git a/plugins/UM3NetworkPrinting/__init__.py b/plugins/UM3NetworkPrinting/__init__.py index be9f1195ec..667733649b 100644 --- a/plugins/UM3NetworkPrinting/__init__.py +++ b/plugins/UM3NetworkPrinting/__init__.py @@ -6,15 +6,7 @@ from UM.i18n import i18nCatalog catalog = i18nCatalog("cura") def getMetaData(): - return { - "plugin": { - "name": "UM3 Network Connection", - "author": "Ultimaker", - "description": catalog.i18nc("@info:whatsthis", "Manages network connections to Ultimaker 3 printers"), - "version": "1.0", - "api": 3 - } - } + return {} def register(app): return { "output_device": NetworkPrinterOutputDevicePlugin.NetworkPrinterOutputDevicePlugin(), "machine_action": DiscoverUM3Action.DiscoverUM3Action()} \ No newline at end of file diff --git a/plugins/UM3NetworkPrinting/plugin.json b/plugins/UM3NetworkPrinting/plugin.json new file mode 100644 index 0000000000..5a845a0516 --- /dev/null +++ b/plugins/UM3NetworkPrinting/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "UM3 Network Connection", + "author": "Ultimaker B.V.", + "description": "Manages network connections to Ultimaker 3 printers", + "version": "1.0.0", + "api": 4, + "i18n-catalog": "cura" +} diff --git a/plugins/USBPrinting/FirmwareUpdateWindow.qml b/plugins/USBPrinting/FirmwareUpdateWindow.qml index b42cff114f..f55aa4c56e 100644 --- a/plugins/USBPrinting/FirmwareUpdateWindow.qml +++ b/plugins/USBPrinting/FirmwareUpdateWindow.qml @@ -12,7 +12,9 @@ UM.Dialog id: base; width: 500 * Screen.devicePixelRatio; + minimumWidth: 500 * Screen.devicePixelRatio; height: 100 * Screen.devicePixelRatio; + minimumHeight: 100 * Screen.devicePixelRatio; visible: true; modality: Qt.ApplicationModal; diff --git a/plugins/USBPrinting/USBPrinterOutputDevice.py b/plugins/USBPrinting/USBPrinterOutputDevice.py index 0100874eab..8ecb503ed8 100644 --- a/plugins/USBPrinting/USBPrinterOutputDevice.py +++ b/plugins/USBPrinting/USBPrinterOutputDevice.py @@ -622,6 +622,8 @@ class USBPrinterOutputDevice(PrinterOutputDevice): self._sendCommand("M140 S0") self._sendCommand("M104 S0") self._sendCommand("M107") + self.homeHead() + self.homeBed() self._sendCommand("M84") self._is_printing = False self._is_paused = False diff --git a/plugins/USBPrinting/USBPrinterOutputDeviceManager.py b/plugins/USBPrinting/USBPrinterOutputDeviceManager.py index 7a62a59a45..26cf5f3942 100644 --- a/plugins/USBPrinting/USBPrinterOutputDeviceManager.py +++ b/plugins/USBPrinting/USBPrinterOutputDeviceManager.py @@ -19,6 +19,7 @@ import platform import glob import time import os.path +import serial.tools.list_ports from UM.Extension import Extension from PyQt5.QtQml import QQmlComponent, QQmlContext @@ -252,24 +253,13 @@ class USBPrinterOutputDeviceManager(QObject, OutputDevicePlugin, Extension): # \param only_list_usb If true, only usb ports are listed def getSerialPortList(self, only_list_usb = False): base_list = [] - if platform.system() == "Windows": - import winreg # type: ignore @UnresolvedImport - try: - key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,"HARDWARE\\DEVICEMAP\\SERIALCOMM") - i = 0 - while True: - values = winreg.EnumValue(key, i) - if not only_list_usb or "USBSER" or "VCP" in values[0]: - base_list += [values[1]] - i += 1 - except Exception as e: - pass - else: - if only_list_usb: - base_list = base_list + glob.glob("/dev/ttyUSB*") + glob.glob("/dev/ttyACM*") + glob.glob("/dev/cu.usb*") + glob.glob("/dev/tty.wchusb*") + glob.glob("/dev/cu.wchusb*") - base_list = filter(lambda s: "Bluetooth" not in s, base_list) # Filter because mac sometimes puts them in the list - else: - base_list = base_list + glob.glob("/dev/ttyUSB*") + glob.glob("/dev/ttyACM*") + glob.glob("/dev/cu.*") + glob.glob("/dev/tty.usb*") + glob.glob("/dev/tty.wchusb*") + glob.glob("/dev/cu.wchusb*") + glob.glob("/dev/rfcomm*") + glob.glob("/dev/serial/by-id/*") + for port in serial.tools.list_ports.comports(): + if not isinstance(port, tuple): + port = (port.device, port.description, port.hwid) + if only_list_usb and not port[2].startswith("USB"): + continue + base_list += [port[0]] + return list(base_list) _instance = None # type: "USBPrinterOutputDeviceManager" diff --git a/plugins/USBPrinting/__init__.py b/plugins/USBPrinting/__init__.py index b8581586d8..990a59fdf3 100644 --- a/plugins/USBPrinting/__init__.py +++ b/plugins/USBPrinting/__init__.py @@ -8,14 +8,6 @@ i18n_catalog = i18nCatalog("cura") def getMetaData(): return { - "type": "extension", - "plugin": { - "name": i18n_catalog.i18nc("@label", "USB printing"), - "author": "Ultimaker", - "version": "1.0", - "api": 3, - "description": i18n_catalog.i18nc("@info:whatsthis","Accepts G-Code and sends them to a printer. Plugin can also update firmware.") - } } def register(app): diff --git a/plugins/USBPrinting/plugin.json b/plugins/USBPrinting/plugin.json new file mode 100644 index 0000000000..27e07c45b2 --- /dev/null +++ b/plugins/USBPrinting/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "USB printing", + "author": "Ultimaker B.V.", + "version": "1.0.0", + "api": 4, + "description": "Accepts G-Code and sends them to a printer. Plugin can also update firmware.", + "i18n-catalog": "cura" +} diff --git a/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml b/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml index 6832883c79..5a1f8f26a7 100644 --- a/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml +++ b/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml @@ -13,8 +13,8 @@ Cura.MachineAction { id: checkupMachineAction anchors.fill: parent; - property int leftRow: checkupMachineAction.width * 0.40 - property int rightRow: checkupMachineAction.width * 0.60 + property int leftRow: (checkupMachineAction.width * 0.40) | 0 + property int rightRow: (checkupMachineAction.width * 0.60) | 0 property bool heatupHotendStarted: false property bool heatupBedStarted: false property bool usbConnected: Cura.USBPrinterManager.connectedPrinterList.rowCount() > 0 @@ -166,7 +166,7 @@ Cura.MachineAction Label { id: nozzleTempStatus - width: checkupMachineAction.rightRow * 0.4 + width: (checkupMachineAction.rightRow * 0.4) | 0 anchors.top: nozzleTempLabel.top anchors.left: nozzleTempLabel.right wrapMode: Text.WordWrap @@ -176,7 +176,7 @@ Cura.MachineAction Item { id: nozzleTempButton - width: checkupMachineAction.rightRow * 0.3 + width: (checkupMachineAction.rightRow * 0.3) | 0 height: childrenRect.height anchors.top: nozzleTempLabel.top anchors.left: bedTempStatus.right @@ -205,7 +205,7 @@ Cura.MachineAction anchors.top: nozzleTempLabel.top anchors.left: nozzleTempButton.right anchors.leftMargin: UM.Theme.getSize("default_margin").width - width: checkupMachineAction.rightRow * 0.2 + width: (checkupMachineAction.rightRow * 0.2) | 0 wrapMode: Text.WordWrap text: manager.hotendTemperature + "°C" font.bold: true @@ -227,7 +227,7 @@ Cura.MachineAction Label { id: bedTempStatus - width: checkupMachineAction.rightRow * 0.4 + width: (checkupMachineAction.rightRow * 0.4) | 0 anchors.top: bedTempLabel.top anchors.left: bedTempLabel.right wrapMode: Text.WordWrap @@ -237,7 +237,7 @@ Cura.MachineAction Item { id: bedTempButton - width: checkupMachineAction.rightRow * 0.3 + width: (checkupMachineAction.rightRow * 0.3) | 0 height: childrenRect.height anchors.top: bedTempLabel.top anchors.left: bedTempStatus.right @@ -263,7 +263,7 @@ Cura.MachineAction Label { id: bedTemp - width: checkupMachineAction.rightRow * 0.2 + width: (checkupMachineAction.rightRow * 0.2) | 0 anchors.top: bedTempLabel.top anchors.left: bedTempButton.right anchors.leftMargin: UM.Theme.getSize("default_margin").width diff --git a/plugins/UltimakerMachineActions/UMOUpgradeSelection.py b/plugins/UltimakerMachineActions/UMOUpgradeSelection.py index 70a9d3fa0e..aa711e09cf 100644 --- a/plugins/UltimakerMachineActions/UMOUpgradeSelection.py +++ b/plugins/UltimakerMachineActions/UMOUpgradeSelection.py @@ -36,8 +36,8 @@ class UMOUpgradeSelection(MachineAction): global_container_stack = Application.getInstance().getGlobalContainerStack() if global_container_stack: # Make sure there is a definition_changes container to store the machine settings - definition_changes_container = global_container_stack.findContainer({"type": "definition_changes"}) - if not definition_changes_container: + definition_changes_container = global_container_stack.definitionChanges + if definition_changes_container == ContainerRegistry.getInstance().getEmptyInstanceContainer(): definition_changes_container = self._createDefinitionChangesContainer(global_container_stack) definition_changes_container.setProperty("machine_heated_bed", "value", heated_bed) @@ -51,7 +51,7 @@ class UMOUpgradeSelection(MachineAction): definition_changes_container.addMetaDataEntry("type", "definition_changes") definition_changes_container.addMetaDataEntry("setting_version", CuraApplication.SettingVersion) - UM.Settings.ContainerRegistry.ContainerRegistry.getInstance().addContainer(definition_changes_container) + ContainerRegistry.getInstance().addContainer(definition_changes_container) global_container_stack.definitionChanges = definition_changes_container return definition_changes_container diff --git a/plugins/UltimakerMachineActions/__init__.py b/plugins/UltimakerMachineActions/__init__.py index 996026ace2..33b85387a4 100644 --- a/plugins/UltimakerMachineActions/__init__.py +++ b/plugins/UltimakerMachineActions/__init__.py @@ -12,13 +12,6 @@ catalog = i18nCatalog("cura") def getMetaData(): return { - "plugin": { - "name": catalog.i18nc("@label", "Ultimaker machine actions"), - "author": "Ultimaker", - "version": "1.0", - "description": catalog.i18nc("@info:whatsthis", "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc)"), - "api": 3 - } } def register(app): diff --git a/plugins/UltimakerMachineActions/plugin.json b/plugins/UltimakerMachineActions/plugin.json new file mode 100644 index 0000000000..c9bb1a89e4 --- /dev/null +++ b/plugins/UltimakerMachineActions/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "Ultimaker machine actions", + "author": "Ultimaker B.V.", + "version": "1.0.0", + "description": "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc)", + "api": 4, + "i18n-catalog": "cura" +} diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/__init__.py b/plugins/VersionUpgrade/VersionUpgrade21to22/__init__.py index 74d74e61ae..b153bcf3ce 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/__init__.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/__init__.py @@ -10,13 +10,6 @@ upgrade = VersionUpgrade21to22.VersionUpgrade21to22() def getMetaData(): return { - "plugin": { - "name": catalog.i18nc("@label", "Version Upgrade 2.1 to 2.2"), - "author": "Ultimaker", - "version": "1.0", - "description": catalog.i18nc("@info:whatsthis", "Upgrades configurations from Cura 2.1 to Cura 2.2."), - "api": 3 - }, "version_upgrade": { # From To Upgrade function ("profile", 1000000): ("quality", 2000000, upgrade.upgradeProfile), diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/plugin.json b/plugins/VersionUpgrade/VersionUpgrade21to22/plugin.json new file mode 100644 index 0000000000..79115f931e --- /dev/null +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "Version Upgrade 2.1 to 2.2", + "author": "Ultimaker B.V.", + "version": "1.0.0", + "description": "Upgrades configurations from Cura 2.1 to Cura 2.2.", + "api": 4, + "i18n-catalog": "cura" +} diff --git a/plugins/VersionUpgrade/VersionUpgrade22to24/__init__.py b/plugins/VersionUpgrade/VersionUpgrade22to24/__init__.py index 0ff121f35e..d7ac4ef452 100644 --- a/plugins/VersionUpgrade/VersionUpgrade22to24/__init__.py +++ b/plugins/VersionUpgrade/VersionUpgrade22to24/__init__.py @@ -10,13 +10,6 @@ upgrade = VersionUpgrade.VersionUpgrade22to24() def getMetaData(): return { - "plugin": { - "name": catalog.i18nc("@label", "Version Upgrade 2.2 to 2.4"), - "author": "Ultimaker", - "version": "1.0", - "description": catalog.i18nc("@info:whatsthis", "Upgrades configurations from Cura 2.2 to Cura 2.4."), - "api": 3 - }, "version_upgrade": { # From To Upgrade function ("machine_instance", 2000000): ("machine_stack", 3000000, upgrade.upgradeMachineInstance), diff --git a/plugins/VersionUpgrade/VersionUpgrade22to24/plugin.json b/plugins/VersionUpgrade/VersionUpgrade22to24/plugin.json new file mode 100644 index 0000000000..d213042ad2 --- /dev/null +++ b/plugins/VersionUpgrade/VersionUpgrade22to24/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "Version Upgrade 2.2 to 2.4", + "author": "Ultimaker B.V.", + "version": "1.0.0", + "description": "Upgrades configurations from Cura 2.2 to Cura 2.4.", + "api": 4, + "i18n-catalog": "cura" +} diff --git a/plugins/VersionUpgrade/VersionUpgrade25to26/VersionUpgrade25to26.py b/plugins/VersionUpgrade/VersionUpgrade25to26/VersionUpgrade25to26.py index 85f54dd654..7d728884cb 100644 --- a/plugins/VersionUpgrade/VersionUpgrade25to26/VersionUpgrade25to26.py +++ b/plugins/VersionUpgrade/VersionUpgrade25to26/VersionUpgrade25to26.py @@ -5,7 +5,6 @@ import configparser #To parse the files we need to upgrade and write the new fil import io #To serialise configparser output to a string. from UM.VersionUpgrade import VersionUpgrade -from cura.CuraApplication import CuraApplication _removed_settings = { #Settings that were removed in 2.5. "start_layers_at_same_position", @@ -62,8 +61,13 @@ class VersionUpgrade25to26(VersionUpgrade): parser["general"]["visible_settings"] = ";".join(new_visible_settings) #Change the version number in the file. - if parser.has_section("general"): #It better have! - parser["general"]["version"] = "5" + if "general" not in parser: + parser["general"] = {} + parser.set("general", "version", "4") + + if "metadata" not in parser: + parser["metadata"] = {} + parser.set("metadata", "setting_version", "1") #Re-serialise the file. output = io.StringIO() @@ -91,11 +95,9 @@ class VersionUpgrade25to26(VersionUpgrade): if not parser.has_section(each_section): parser.add_section(each_section) - # Change the version number in the file. - parser["metadata"]["setting_version"] = str(CuraApplication.SettingVersion) - - # Update version + # Update version numbers parser["general"]["version"] = "2" + parser["metadata"]["setting_version"] = "1" #Re-serialise the file. output = io.StringIO() diff --git a/plugins/VersionUpgrade/VersionUpgrade25to26/__init__.py b/plugins/VersionUpgrade/VersionUpgrade25to26/__init__.py index 5ff589c4e3..a3d2b274da 100644 --- a/plugins/VersionUpgrade/VersionUpgrade25to26/__init__.py +++ b/plugins/VersionUpgrade/VersionUpgrade25to26/__init__.py @@ -10,13 +10,6 @@ upgrade = VersionUpgrade25to26.VersionUpgrade25to26() def getMetaData(): return { - "plugin": { - "name": catalog.i18nc("@label", "Version Upgrade 2.5 to 2.6"), - "author": "Ultimaker", - "version": "1.0", - "description": catalog.i18nc("@info:whatsthis", "Upgrades configurations from Cura 2.5 to Cura 2.6."), - "api": 3 - }, "version_upgrade": { # From To Upgrade function ("preferences", 4000000): ("preferences", 4000001, upgrade.upgradePreferences), diff --git a/plugins/VersionUpgrade/VersionUpgrade25to26/plugin.json b/plugins/VersionUpgrade/VersionUpgrade25to26/plugin.json new file mode 100644 index 0000000000..759b6368fd --- /dev/null +++ b/plugins/VersionUpgrade/VersionUpgrade25to26/plugin.json @@ -0,0 +1,8 @@ + { + "name": "Version Upgrade 2.5 to 2.6", + "author": "Ultimaker B.V.", + "version": "1.0.0", + "description": "Upgrades configurations from Cura 2.5 to Cura 2.6.", + "api": 4, + "i18n-catalog": "cura" +} diff --git a/plugins/VersionUpgrade/VersionUpgrade26to27/VersionUpgrade26to27.py b/plugins/VersionUpgrade/VersionUpgrade26to27/VersionUpgrade26to27.py new file mode 100644 index 0000000000..4df64af95b --- /dev/null +++ b/plugins/VersionUpgrade/VersionUpgrade26to27/VersionUpgrade26to27.py @@ -0,0 +1,172 @@ +# Copyright (c) 2017 Ultimaker B.V. +# Cura is released under the terms of the AGPLv3 or higher. + +import configparser #To parse the files we need to upgrade and write the new files. +import io #To serialise configparser output to a string. + +from UM.VersionUpgrade import VersionUpgrade +from cura.CuraApplication import CuraApplication + +# a dict of renamed quality profiles: : +_renamed_quality_profiles = { + "um3_aa0.4_PVA_Not_Supported_Quality": "um3_aa0.4_PVA_Fast_Print", + + "um3_aa0.8_CPEP_Not_Supported_Quality": "um3_aa0.8_CPEP_Fast_Print", + "um3_aa0.8_CPEP_Not_Supported_Superdraft_Quality": "um3_aa0.8_CPEP_Superdraft_Print", + "um3_aa0.8_CPEP_Not_Supported_Verydraft_Quality": "um3_aa0.8_CPEP_Verydraft_Print", + + "um3_aa0.8_PC_Not_Supported_Quality": "um3_aa0.8_PC_Fast_Print", + "um3_aa0.8_PC_Not_Supported_Superdraft_Quality": "um3_aa0.8_PC_Superdraft_Print", + "um3_aa0.8_PC_Not_Supported_Verydraft_Quality": "um3_aa0.8_PC_Verydraft_Print", + + "um3_aa0.8_PVA_Not_Supported_Quality": "um3_aa0.8_PVA_Fast_Print", + "um3_aa0.8_PVA_Not_Supported_Superdraft_Quality": "um3_aa0.8_PVA_Superdraft_Print", + + "um3_bb0.4_ABS_Not_Supported_Quality": "um3_bb0.4_ABS_Fast_print", + "um3_bb0.4_ABS_Not_Supported_Superdraft_Quality": "um3_bb0.4_ABS_Superdraft_Print", + + "um3_bb0.4_CPE_Not_Supported_Quality": "um3_bb0.4_CPE_Fast_Print", + "um3_bb0.4_CPE_Not_Supported_Superdraft_Quality": "um3_bb0.4_CPE_Superdraft_Print", + + "um3_bb0.4_CPEP_Not_Supported_Quality": "um3_bb0.4_CPEP_Fast_Print", + "um3_bb0.4_CPEP_Not_Supported_Superdraft_Quality": "um3_bb0.4_CPEP_Superdraft_Print", + + "um3_bb0.4_Nylon_Not_Supported_Quality": "um3_bb0.4_Nylon_Fast_Print", + "um3_bb0.4_Nylon_Not_Supported_Superdraft_Quality": "um3_bb0.4_Nylon_Superdraft_Print", + + "um3_bb0.4_PC_Not_Supported_Quality": "um3_bb0.4_PC_Fast_Print", + + "um3_bb0.4_PLA_Not_Supported_Quality": "um3_bb0.4_PLA_Fast_Print", + "um3_bb0.4_PLA_Not_Supported_Superdraft_Quality": "um3_bb0.4_PLA_Superdraft_Print", + + "um3_bb0.4_TPU_Not_Supported_Quality": "um3_bb0.4_TPU_Fast_Print", + "um3_bb0.4_TPU_Not_Supported_Superdraft_Quality": "um3_bb0.4_TPU_Superdraft_Print", + + "um3_bb0.8_ABS_Not_Supported_Quality": "um3_bb0.8_ABS_Fast_Print", + "um3_bb0.8_ABS_Not_Supported_Superdraft_Quality": "um3_bb0.8_ABS_Superdraft_Print", + + "um3_bb0.8_CPE_Not_Supported_Quality": "um3_bb0.8_CPE_Fast_Print", + "um3_bb0.8_CPE_Not_Supported_Superdraft_Quality": "um3_bb0.8_CPE_Superdraft_Print", + + "um3_bb0.8_CPEP_Not_Supported_Quality": "um3_bb0.um3_bb0.8_CPEP_Fast_Print", + "um3_bb0.8_CPEP_Not_Supported_Superdraft_Quality": "um3_bb0.8_CPEP_Superdraft_Print", + + "um3_bb0.8_Nylon_Not_Supported_Quality": "um3_bb0.8_Nylon_Fast_Print", + "um3_bb0.8_Nylon_Not_Supported_Superdraft_Quality": "um3_bb0.8_Nylon_Superdraft_Print", + + "um3_bb0.8_PC_Not_Supported_Quality": "um3_bb0.8_PC_Fast_Print", + "um3_bb0.8_PC_Not_Supported_Superdraft_Quality": "um3_bb0.8_PC_Superdraft_Print", + + "um3_bb0.8_PLA_Not_Supported_Quality": "um3_bb0.8_PLA_Fast_Print", + "um3_bb0.8_PLA_Not_Supported_Superdraft_Quality": "um3_bb0.8_PLA_Superdraft_Print", + + "um3_bb0.8_TPU_Not_Supported_Quality": "um3_bb0.8_TPU_Fast_print", + "um3_bb0.8_TPU_Not_Supported_Superdraft_Quality": "um3_bb0.8_TPU_Superdraft_Print", +} + +## A collection of functions that convert the configuration of the user in Cura +# 2.6 to a configuration for Cura 2.7. +# +# All of these methods are essentially stateless. +class VersionUpgrade26to27(VersionUpgrade): + ## Gets the version number from a CFG file in Uranium's 2.6 format. + # + # Since the format may change, this is implemented for the 2.6 format only + # and needs to be included in the version upgrade system rather than + # globally in Uranium. + # + # \param serialised The serialised form of a CFG file. + # \return The version number stored in the CFG file. + # \raises ValueError The format of the version number in the file is + # incorrect. + # \raises KeyError The format of the file is incorrect. + def getCfgVersion(self, serialised): + parser = configparser.ConfigParser(interpolation = None) + parser.read_string(serialised) + format_version = int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised. + setting_version = int(parser.get("metadata", "setting_version", fallback = 0)) + return format_version * 1000000 + setting_version + + ## Upgrades a preferences file from version 2.6 to 2.7. + # + # \param serialised The serialised form of a preferences file. + # \param filename The name of the file to upgrade. + def upgradePreferences(self, serialised, filename): + parser = configparser.ConfigParser(interpolation=None) + parser.read_string(serialised) + + # Update version numbers + if "general" not in parser: + parser["general"] = {} + parser["general"]["version"] = "4" + + if "metadata" not in parser: + parser["metadata"] = {} + parser["metadata"]["setting_version"] = "2" + + #Renamed setting value for g-code flavour. + if "values" in parser and "machine_gcode_flavor" in parser["values"]: + if parser["values"]["machine_gcode_flavor"] == "RepRap (Volumatric)": + parser["values"]["machine_gcode_flavor"] = "RepRap (Volumetric)" + + # Re-serialise the file. + output = io.StringIO() + parser.write(output) + return [filename], [output.getvalue()] + + ## Upgrades a container file other than a container stack file from version 2.6 to 2.7. + # + # \param serialised The serialised form of a container file. + # \param filename The name of the file to upgrade. + def upgradeOtherContainer(self, serialised, filename): + parser = configparser.ConfigParser(interpolation=None) + parser.read_string(serialised) + + # Update version numbers + if "general" not in parser: + parser["general"] = {} + parser["general"]["version"] = "2" + + if "metadata" not in parser: + parser["metadata"] = {} + parser["metadata"]["setting_version"] = "2" + + # Re-serialise the file. + output = io.StringIO() + parser.write(output) + return [filename], [output.getvalue()] + + ## Upgrades a container stack from version 2.6 to 2.7. + # + # \param serialised The serialised form of a container stack. + # \param filename The name of the file to upgrade. + def upgradeStack(self, serialised, filename): + parser = configparser.ConfigParser(interpolation = None) + parser.read_string(serialised) + + # Update IDs of the renamed quality profiles + if parser.has_section("containers"): + key_list = [key for key in parser["containers"].keys()] + for key in key_list: + container_id = parser.get("containers", key) + new_id = _renamed_quality_profiles.get(container_id) + if new_id is not None: + parser.set("containers", key, new_id) + + for each_section in ("general", "metadata"): + if not parser.has_section(each_section): + parser.add_section(each_section) + + # Update version numbers + if "general" not in parser: + parser["general"] = {} + parser["general"]["version"] = "3" + + if "metadata" not in parser: + parser["metadata"] = {} + parser["metadata"]["setting_version"] = "2" + + # Re-serialise the file. + output = io.StringIO() + parser.write(output) + return [filename], [output.getvalue()] diff --git a/plugins/VersionUpgrade/VersionUpgrade26to27/__init__.py b/plugins/VersionUpgrade/VersionUpgrade26to27/__init__.py new file mode 100644 index 0000000000..c309142c8f --- /dev/null +++ b/plugins/VersionUpgrade/VersionUpgrade26to27/__init__.py @@ -0,0 +1,62 @@ +# Copyright (c) 2017 Ultimaker B.V. +# Cura is released under the terms of the AGPLv3 or higher. + +from . import VersionUpgrade26to27 + +from UM.i18n import i18nCatalog +catalog = i18nCatalog("cura") + +upgrade = VersionUpgrade26to27.VersionUpgrade26to27() + +def getMetaData(): + return { + "version_upgrade": { + # From To Upgrade function + ("machine_stack", 3000000): ("machine_stack", 3000002, upgrade.upgradeStack), + ("extruder_train", 3000000): ("extruder_train", 3000002, upgrade.upgradeStack), + + # In 2.6.x, Preferences are saved with "version = 4" and no setting_version. + # This means those Preferences files will still be treated as "4.0" as defined in VersionUpgrade25to26, + # so the 25to26 upgrade routine will be called again. + # + # To fix this, we first fix the upgrade routine for 25to26 so it actually upgrades to "4.1", and then + # here we can upgrade from "4.1" to "4.2" safely. + # + ("preferences", 4000001): ("preferences", 4000002, upgrade.upgradePreferences), + # NOTE: All the instance containers share the same general/version, so we have to update all of them + # if any is updated. + ("quality_changes", 2000001): ("quality_changes", 2000002, upgrade.upgradeOtherContainer), + ("user", 2000001): ("user", 2000002, upgrade.upgradeOtherContainer), + ("quality", 2000001): ("quality", 2000002, upgrade.upgradeOtherContainer), + ("definition_changes", 2000001): ("definition_changes", 2000002, upgrade.upgradeOtherContainer), + }, + "sources": { + "machine_stack": { + "get_version": upgrade.getCfgVersion, + "location": {"./machine_instances"} + }, + "extruder_train": { + "get_version": upgrade.getCfgVersion, + "location": {"./extruders"} + }, + "preferences": { + "get_version": upgrade.getCfgVersion, + "location": {"."} + }, + "quality_changes": { + "get_version": upgrade.getCfgVersion, + "location": {"./quality"} + }, + "user": { + "get_version": upgrade.getCfgVersion, + "location": {"./user"} + }, + "definition_changes": { + "get_version": upgrade.getCfgVersion, + "location": {"./definition_changes"} + } + } + } + +def register(app): + return { "version_upgrade": upgrade } diff --git a/plugins/VersionUpgrade/VersionUpgrade26to27/plugin.json b/plugins/VersionUpgrade/VersionUpgrade26to27/plugin.json new file mode 100644 index 0000000000..3c3d7fff8c --- /dev/null +++ b/plugins/VersionUpgrade/VersionUpgrade26to27/plugin.json @@ -0,0 +1,8 @@ + { + "name": "Version Upgrade 2.6 to 2.7", + "author": "Ultimaker B.V.", + "version": "1.0.0", + "description": "Upgrades configurations from Cura 2.6 to Cura 2.7.", + "api": 4, + "i18n-catalog": "cura" +} diff --git a/plugins/VersionUpgrade/VersionUpgrade26to27/tests/TestVersionUpgrade26to27.py b/plugins/VersionUpgrade/VersionUpgrade26to27/tests/TestVersionUpgrade26to27.py new file mode 100644 index 0000000000..f8e3561b38 --- /dev/null +++ b/plugins/VersionUpgrade/VersionUpgrade26to27/tests/TestVersionUpgrade26to27.py @@ -0,0 +1,191 @@ +# Copyright (c) 2017 Ultimaker B.V. +# Cura is released under the terms of the AGPLv3 or higher. + +import configparser #To check whether the appropriate exceptions are raised. +import pytest #To register tests with. + +import VersionUpgrade26to27 #The module we're testing. + +## Creates an instance of the upgrader to test with. +@pytest.fixture +def upgrader(): + return VersionUpgrade26to27.VersionUpgrade26to27() + +test_cfg_version_good_data = [ + { + "test_name": "Simple", + "file_data": """[general] +version = 1 +""", + "version": 1000000 + }, + { + "test_name": "Other Data Around", + "file_data": """[nonsense] +life = good + +[general] +version = 3 + +[values] +layer_height = 0.12 +infill_sparse_density = 42 +""", + "version": 3000000 + }, + { + "test_name": "Negative Version", #Why not? + "file_data": """[general] +version = -20 +""", + "version": -20000000 + }, + { + "test_name": "Setting Version", + "file_data": """[general] +version = 1 +[metadata] +setting_version = 1 +""", + "version": 1000001 + }, + { + "test_name": "Negative Setting Version", + "file_data": """[general] +version = 1 +[metadata] +setting_version = -3 +""", + "version": 999997 + } +] + +## Tests the technique that gets the version number from CFG files. +# +# \param data The parametrised data to test with. It contains a test name +# to debug with, the serialised contents of a CFG file and the correct +# version number in that CFG file. +# \param upgrader The instance of the upgrade class to test. +@pytest.mark.parametrize("data", test_cfg_version_good_data) +def test_cfgVersionGood(data, upgrader): + version = upgrader.getCfgVersion(data["file_data"]) + assert version == data["version"] + +test_cfg_version_bad_data = [ + { + "test_name": "Empty", + "file_data": "", + "exception": configparser.Error #Explicitly not specified further which specific error we're getting, because that depends on the implementation of configparser. + }, + { + "test_name": "No General", + "file_data": """[values] +layer_height = 0.1337 +""", + "exception": configparser.Error + }, + { + "test_name": "No Version", + "file_data": """[general] +true = false +""", + "exception": configparser.Error + }, + { + "test_name": "Not a Number", + "file_data": """[general] +version = not-a-text-version-number +""", + "exception": ValueError + }, + { + "test_name": "Setting Value NaN", + "file_data": """[general] +version = 4 +[metadata] +setting_version = latest_or_something +""", + "exception": ValueError + }, + { + "test_name": "Major-Minor", + "file_data": """[general] +version = 1.2 +""", + "exception": ValueError + } +] + +## Tests whether getting a version number from bad CFG files gives an +# exception. +# +# \param data The parametrised data to test with. It contains a test name +# to debug with, the serialised contents of a CFG file and the class of +# exception it needs to throw. +# \param upgrader The instance of the upgrader to test. +@pytest.mark.parametrize("data", test_cfg_version_bad_data) +def test_cfgVersionBad(data, upgrader): + with pytest.raises(data["exception"]): + upgrader.getCfgVersion(data["file_data"]) + +test_upgrade_stacks_with_not_supported_data = [ + { + "test_name": "Global stack with Not Supported quality profile", + "file_data": """[general] +version = 3 +name = Ultimaker 3 +id = Ultimaker 3 + +[metadata] +type = machine + +[containers] +0 = Ultimaker 3_user +1 = empty +2 = um3_global_Normal_Quality +3 = empty +4 = empty +5 = empty +6 = ultimaker3 +""" + }, + { + "test_name": "Extruder stack left with Not Supported quality profile", + "file_data": """[general] +version = 3 +name = Extruder 1 +id = ultimaker3_extruder_left #2 + +[metadata] +position = 0 +machine = Ultimaker 3 +type = extruder_train + +[containers] +0 = ultimaker3_extruder_left #2_user +1 = empty +2 = um3_aa0.4_PVA_Not_Supported_Quality +3 = generic_pva_ultimaker3_AA_0.4 +4 = ultimaker3_aa04 +5 = ultimaker3_extruder_left #2_settings +6 = ultimaker3_extruder_left +""" + } +] + +## Tests whether the "Not Supported" quality profiles in the global and extruder stacks are renamed for the 2.7 +# version of preferences. +@pytest.mark.parametrize("data", test_upgrade_stacks_with_not_supported_data) +def test_upgradeStacksWithNotSupportedQuality(data, upgrader): + # Read old file + original_parser = configparser.ConfigParser(interpolation = None) + original_parser.read_string(data["file_data"]) + + # Perform the upgrade. + _, upgraded_stacks = upgrader.upgradeStack(data["file_data"], "") + upgraded_stack = upgraded_stacks[0] + + # Find whether the not supported profile has been renamed + parser = configparser.ConfigParser(interpolation = None) + parser.read_string(upgraded_stack) + assert("Not_Supported" not in parser.get("containers", "2")) diff --git a/plugins/X3DReader/__init__.py b/plugins/X3DReader/__init__.py index 84922f627f..9e0e2df91c 100644 --- a/plugins/X3DReader/__init__.py +++ b/plugins/X3DReader/__init__.py @@ -7,13 +7,6 @@ catalog = i18nCatalog("cura") def getMetaData(): return { - "plugin": { - "name": catalog.i18nc("@label", "X3D Reader"), - "author": "Seva Alekseyev", - "version": "0.5", - "description": catalog.i18nc("@info:whatsthis", "Provides support for reading X3D files."), - "api": 3 - }, "mesh_reader": [ { "extension": "x3d", diff --git a/plugins/X3DReader/plugin.json b/plugins/X3DReader/plugin.json new file mode 100644 index 0000000000..f18c7f033d --- /dev/null +++ b/plugins/X3DReader/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "X3D Reader", + "author": "Seva Alekseyev", + "version": "0.5.0", + "description": "Provides support for reading X3D files.", + "api": 4, + "i18n-catalog": "cura" +} diff --git a/plugins/XRayView/__init__.py b/plugins/XRayView/__init__.py index 34e4761863..e726001216 100644 --- a/plugins/XRayView/__init__.py +++ b/plugins/XRayView/__init__.py @@ -8,13 +8,6 @@ catalog = i18nCatalog("cura") def getMetaData(): return { - "plugin": { - "name": catalog.i18nc("@label", "X-Ray View"), - "author": "Ultimaker", - "version": "1.0", - "description": catalog.i18nc("@info:whatsthis", "Provides the X-Ray view."), - "api": 3 - }, "view": { "name": catalog.i18nc("@item:inlistbox", "X-Ray"), "weight": 1 diff --git a/plugins/XRayView/plugin.json b/plugins/XRayView/plugin.json new file mode 100644 index 0000000000..4e89690c13 --- /dev/null +++ b/plugins/XRayView/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "X-Ray View", + "author": "Ultimaker B.V.", + "version": "1.0.0", + "description": "Provides the X-Ray view.", + "api": 4, + "i18n-catalog": "cura" +} diff --git a/plugins/XmlMaterialProfile/XmlMaterialProfile.py b/plugins/XmlMaterialProfile/XmlMaterialProfile.py index 04fc09019b..f920a6bd49 100644 --- a/plugins/XmlMaterialProfile/XmlMaterialProfile.py +++ b/plugins/XmlMaterialProfile/XmlMaterialProfile.py @@ -3,18 +3,16 @@ import copy import io -from typing import Optional +from typing import List, Optional import xml.etree.ElementTree as ET from UM.Resources import Resources from UM.Logger import Logger -from UM.Util import parseBool from cura.CuraApplication import CuraApplication import UM.Dictionary -from UM.Settings.InstanceContainer import InstanceContainer, InvalidInstanceError +from UM.Settings.InstanceContainer import InstanceContainer from UM.Settings.ContainerRegistry import ContainerRegistry -from cura.Settings.CuraContainerRegistry import CuraContainerRegistry ## Handles serializing and deserializing material containers from an XML file @@ -37,7 +35,7 @@ class XmlMaterialProfile(InstanceContainer): # \return The corresponding setting_version. def xmlVersionToSettingVersion(self, xml_version: str) -> int: if xml_version == "1.3": - return 1 + return 2 return 0 #Older than 1.3. def getInheritedFiles(self): @@ -111,7 +109,7 @@ class XmlMaterialProfile(InstanceContainer): ## Overridden from InstanceContainer # base file: common settings + supported machines # machine / variant combination: only changes for itself. - def serialize(self): + def serialize(self, ignored_metadata_keys: Optional[List] = None): registry = ContainerRegistry.getInstance() base_file = self.getMetaDataEntry("base_file", "") @@ -131,6 +129,14 @@ class XmlMaterialProfile(InstanceContainer): builder.start("metadata") metadata = copy.deepcopy(self.getMetaData()) + # setting_version is derived from the "version" tag in the schema, so don't serialize it into a file + if ignored_metadata_keys is None: + ignored_metadata_keys = [] + ignored_metadata_keys = ignored_metadata_keys + ["setting_version"] + # remove the keys that we want to ignore in the metadata + for key in ignored_metadata_keys: + if key in metadata: + del metadata[key] properties = metadata.pop("properties", {}) # Metadata properties that should not be serialized. @@ -422,7 +428,7 @@ class XmlMaterialProfile(InstanceContainer): meta_data = {} meta_data["type"] = "material" meta_data["base_file"] = self.id - meta_data["status"] = "unknown" # TODO: Add material verfication + meta_data["status"] = "unknown" # TODO: Add material verification common_setting_values = {} @@ -431,10 +437,12 @@ class XmlMaterialProfile(InstanceContainer): inherited = self._resolveInheritance(inherits.text) data = self._mergeXML(inherited, data) + # set setting_version in metadata if "version" in data.attrib: meta_data["setting_version"] = self.xmlVersionToSettingVersion(data.attrib["version"]) else: meta_data["setting_version"] = self.xmlVersionToSettingVersion("1.2") #1.2 and lower didn't have that version number there yet. + metadata = data.iterfind("./um:metadata/*", self.__namespaces) for entry in metadata: tag_name = _tag_without_namespace(entry) @@ -453,6 +461,11 @@ class XmlMaterialProfile(InstanceContainer): meta_data["material"] = material.text meta_data["color_name"] = color.text continue + + # setting_version is derived from the "version" tag in the schema earlier, so don't set it here + if tag_name == "setting_version": + continue + meta_data[tag_name] = entry.text if tag_name in self.__material_metadata_setting_map: @@ -486,7 +499,7 @@ class XmlMaterialProfile(InstanceContainer): common_setting_values[self.__material_settings_setting_map[key]] = entry.text elif key in self.__unmapped_settings: if key == "hardware compatible": - common_compatibility = parseBool(entry.text) + common_compatibility = self._parseCompatibleValue(entry.text) else: Logger.log("d", "Unsupported material setting %s", key) self._cached_values = common_setting_values # from InstanceContainer ancestor @@ -506,7 +519,7 @@ class XmlMaterialProfile(InstanceContainer): machine_setting_values[self.__material_settings_setting_map[key]] = entry.text elif key in self.__unmapped_settings: if key == "hardware compatible": - machine_compatibility = parseBool(entry.text) + machine_compatibility = self._parseCompatibleValue(entry.text) else: Logger.log("d", "Unsupported material setting %s", key) @@ -569,7 +582,7 @@ class XmlMaterialProfile(InstanceContainer): hotend_setting_values[self.__material_settings_setting_map[key]] = entry.text elif key in self.__unmapped_settings: if key == "hardware compatible": - hotend_compatibility = parseBool(entry.text) + hotend_compatibility = self._parseCompatibleValue(entry.text) else: Logger.log("d", "Unsupported material setting %s", key) @@ -610,6 +623,10 @@ class XmlMaterialProfile(InstanceContainer): else: return material_name + ## Parse the value of the "material compatible" property. + def _parseCompatibleValue(self, value: str): + return value in {"yes", "unknown"} + # Map XML file setting names to internal names __material_settings_setting_map = { "print temperature": "default_material_print_temperature", @@ -671,4 +688,4 @@ def _indent(elem, level = 0): # We are only interested in the actual tag name, so discard everything # before the last } def _tag_without_namespace(element): - return element.tag[element.tag.rfind("}") + 1:] + return element.tag[element.tag.rfind("}") + 1:] \ No newline at end of file diff --git a/plugins/XmlMaterialProfile/XmlMaterialUpgrader.py b/plugins/XmlMaterialProfile/XmlMaterialUpgrader.py index ad20a44c28..c93c476c2e 100644 --- a/plugins/XmlMaterialProfile/XmlMaterialUpgrader.py +++ b/plugins/XmlMaterialProfile/XmlMaterialUpgrader.py @@ -21,7 +21,7 @@ class XmlMaterialUpgrader(VersionUpgrade): def _xmlVersionToSettingVersion(self, xml_version: str) -> int: if xml_version == "1.3": - return 1 + return 2 return 0 #Older than 1.3. def upgradeMaterial(self, serialised, filename): diff --git a/plugins/XmlMaterialProfile/__init__.py b/plugins/XmlMaterialProfile/__init__.py index d98f2efb3d..6ad4a279d0 100644 --- a/plugins/XmlMaterialProfile/__init__.py +++ b/plugins/XmlMaterialProfile/__init__.py @@ -14,19 +14,12 @@ upgrader = XmlMaterialUpgrader.XmlMaterialUpgrader() def getMetaData(): return { - "plugin": { - "name": catalog.i18nc("@label", "Material Profiles"), - "author": "Ultimaker", - "version": "1.0", - "description": catalog.i18nc("@info:whatsthis", "Provides capabilities to read and write XML-based material profiles."), - "api": 3 - }, "settings_container": { "type": "material", "mimetype": "application/x-ultimaker-material-profile" }, "version_upgrade": { - ("materials", 1000000): ("materials", 1000001, upgrader.upgradeMaterial), + ("materials", 1000000): ("materials", 1000002, upgrader.upgradeMaterial), }, "sources": { "materials": { @@ -51,7 +44,7 @@ def register(app): from UM.VersionUpgradeManager import VersionUpgradeManager VersionUpgradeManager.getInstance().registerCurrentVersion( ("materials", XmlMaterialProfile.XmlMaterialProfile.Version * 1000000 + CuraApplication.SettingVersion), - (CuraApplication.ResourceTypes.MaterialInstanceContainer, "application/x-uranium-instancecontainer") + (CuraApplication.ResourceTypes.MaterialInstanceContainer, "application/x-ultimaker-material-profile") ) return {"version_upgrade": upgrader, diff --git a/plugins/XmlMaterialProfile/plugin.json b/plugins/XmlMaterialProfile/plugin.json new file mode 100644 index 0000000000..17056dcb3e --- /dev/null +++ b/plugins/XmlMaterialProfile/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "Material Profiles", + "author": "Ultimaker B.V.", + "version": "1.0.0", + "description": "Provides capabilities to read and write XML-based material profiles.", + "api": 4, + "i18n-catalog": "cura" +} diff --git a/resources/definitions/101Hero.def.json b/resources/definitions/101Hero.def.json index f6e920c8d4..205696c450 100644 --- a/resources/definitions/101Hero.def.json +++ b/resources/definitions/101Hero.def.json @@ -13,6 +13,7 @@ "0": "fdmextruder" }, "file_formats": "text/x-gcode", + "platform": "101hero-platform.stl", "supports_usb_connection": true }, diff --git a/resources/definitions/alya3dp.def.json b/resources/definitions/alya3dp.def.json index 1ea16773d6..8d1eb6730c 100644 --- a/resources/definitions/alya3dp.def.json +++ b/resources/definitions/alya3dp.def.json @@ -27,19 +27,15 @@ "machine_nozzle_size": { "default_value": 0.4 }, - "machine_head_shape_min_x": { - "default_value": 75 + "machine_head_polygon": { + "default_value": [ + [75, 18], + [18, 18], + [18, 35], + [75, 35] + ] }, - "machine_head_shape_min_y": { - "default_value": 18 - }, - "machine_head_shape_max_x": { - "default_value": 18 - }, - "machine_head_shape_max_y": { - "default_value": 35 - }, - "machine_nozzle_gantry_distance": { + "gantry_height": { "default_value": 55 }, "machine_gcode_flavor": { diff --git a/resources/definitions/cartesio.def.json b/resources/definitions/cartesio.def.json index f14f6572e4..e5253f3b75 100644 --- a/resources/definitions/cartesio.def.json +++ b/resources/definitions/cartesio.def.json @@ -48,13 +48,18 @@ "material_bed_temp_wait": { "default_value": false }, "prime_tower_enable": { "default_value": true }, "prime_tower_wall_thickness": { "resolve": 0.7 }, - "prime_tower_position_x": { "default_value": 50 }, - "prime_tower_position_y": { "default_value": 150 }, + "prime_tower_position_x": { "value": "50" }, + "prime_tower_position_y": { "value": "150" }, + "prime_blob_enable": { "default_value": false }, + "machine_max_feedrate_z": { "default_value": 20 }, + "machine_disallowed_areas": { "default_value": [ + [[215, 135], [-215, 135], [-215, 75], [215, 75]] + ]}, "machine_start_gcode": { - "default_value": "\nM104 S120 T1\nM104 S120 T2\nM104 S120 T3\n\nM92 E159\n\nG21\nG90\nM42 S255 P13;chamber lights\nM42 S255 P12;fume extraction\n\nM117 Homing Y ......\nG28 Y\nM117 Homing X ......\nG28 X\nM117 Homing Z ......\nG28 Z F100\nG1 Z10 F600\nG1 X70 Y20 F9000;go to wipe point\n\nM190 S{material_bed_temperature_layer_0}\n\nM117 Heating for 50 sec.\nG4 S20\nM117 Heating for 30 sec.\nG4 S20\nM117 Heating for 10 sec.\nM300 S1200 P1000\nG4 S9\n\nM117 purging nozzle....\nT0\nG92 E0;set E\nG1 E10 F100\nG92 E0\nG1 E-1 F600\n\nM117 wiping nozzle....\nG1 X1 Y24 F3000\nG1 X70 F9000\nG1 Z10 F900\n\nM104 S21 T1\nM104 S21 T2\nM104 S21 T3\n\nM117 Printing .....\n" + "default_value": "\nM92 E159 ;2288 for V5 extruder\n\nM104 S120 T1\nM104 S120 T2\nM104 S120 T3\n\nG21\nG90\nM42 S255 P13 ;chamber lights\nM42 S255 P12 ;fume extraction\nM204 S300 ;default acceleration\nM205 X10 ;default jerk\n\nM117 Homing Y ......\nG28 Y\nM117 Homing X ......\nG28 X\nM117 Homing Z ......\nG28 Z F100\nG1 Z10 F600\nG1 X70 Y20 F9000;go to wipe point\n\nM190 S{material_bed_temperature_layer_0}\n\nM117 Heating for 50 sec.\nG4 S20\nM117 Heating for 30 sec.\nG4 S20\nM117 Heating for 10 sec.\nM300 S1200 P1000\nG4 S9\n\nM117 purging nozzle....\nT0\nG92 E0;set E\nG1 E10 F100\nG92 E0\nG1 E-1 F600\n\nM117 wiping nozzle....\nG1 X1 Y24 F3000\nG1 X70 F9000\nG1 Z10 F900\n\nM104 S21 T1\nM104 S21 T2\nM104 S21 T3\n\nM117 Printing .....\n" }, "machine_end_gcode": { - "default_value": "; -- END GCODE --\nM106 S255\nM140 S5\nM104 S5 T0\nM104 S5 T1\nM104 S5 T2\nM104 S5 T3\n\nG91\nG1 Z1 F900\nG90\n\nG1 X20.0 Y260.0 F6000\nG4 S7\nM84\nG4 S90\nM107\nM42 P12 S0\nM42 P13 S0\nM84\nT0\n; -- end of GCODE --" + "default_value": "; -- END GCODE --\nM117 cooling down....\nM106 S255\nM140 S5\nM104 S5 T0\nM104 S5 T1\nM104 S5 T2\nM104 S5 T3\n\nG91\nG1 Z1 F900\nG90\n\nG1 X20.0 Y260.0 F6000\nG4 S7\nM84\nG4 S90\nM107\nM42 P12 S0\nM42 P13 S0\nM84\nT0\nM117 Finished.\n; -- end of GCODE --" }, "layer_height": { "maximum_value": "(0.8 * min(extruderValues('machine_nozzle_size')))" }, "layer_height_0": { "maximum_value": "(0.8 * min(extruderValues('machine_nozzle_size')))" }, diff --git a/resources/definitions/dagoma_discoeasy200.def.json b/resources/definitions/dagoma_discoeasy200.def.json new file mode 100755 index 0000000000..718c5b0873 --- /dev/null +++ b/resources/definitions/dagoma_discoeasy200.def.json @@ -0,0 +1,54 @@ +{ + "id": "Dagoma_discoeasy200", + "name": "Dagoma DiscoEasy200", + "version": 2, + "inherits": "fdmprinter", + "metadata": { + "visible": true, + "author": "Dagoma", + "manufacturer": "Dagoma", + "category": "Other", + "file_formats": "text/x-gcode", + "icon": "icon_ultimaker2.png", + "platform": "discoeasy200.stl", + "platform_offset": [ 105, -59, 280] + }, + "overrides": { + "machine_width": { + "default_value": 211 + }, + "machine_height": { + "default_value": 205 + }, + "machine_depth": { + "default_value": 211 + }, + "machine_center_is_zero": { + "default_value": false + }, + "machine_nozzle_size": { + "default_value": 0.4 + }, + "machine_head_with_fans_polygon": { + "default_value": [ + [16, 37], + [16, -65], + [-16, -65], + [16, 37] + ] + }, + "gantry_height": { + "default_value": 55 + }, + "machine_gcode_flavor": { + "default_value": "RepRap" + }, + "machine_start_gcode": { + "default_value": ";Gcode by Cura\nG90 ;absolute positioning\nM106 S250 ;fan on for the palpeur\nG28 X Y\nG1 X50\nM109 S180\nG28\nM104 S{print_temperature}\n;Activation palpeur\n;bloc palpeur\nG29 ;Auto level\nM107 ;start with the fan off\nG1 X100 Y20 F3000\nG1 Z0.5\nM109 S{print_temperature}\nM140 S{material_bed_temperature}\nM82 ;set extruder to absolute mode\nG92 E0 ;zero the extruded length\nG1 F200 E10 ;extrude 10mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 Z3\nG1 F3000\n" + }, + "machine_end_gcode": { + "default_value": "\nM104 S0\nM106 S255 ;start fan full power\nM140 S0 ;heated bed heater off (if you have it)\n;Home machine\nG91 ;relative positioning\nG1 E-1 F{retraction_speed} ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+3 F3000 ;move Z up a bit and retract filament even more\nG90\nG28 X Y\n;Ventilation forcee\nM107 ;stop fan\n;Shut down motor\nM84 ;shut down motors\n" + } + } +} + diff --git a/resources/definitions/fdmextruder.def.json b/resources/definitions/fdmextruder.def.json index be006dfe59..bf235d76eb 100644 --- a/resources/definitions/fdmextruder.def.json +++ b/resources/definitions/fdmextruder.def.json @@ -30,6 +30,15 @@ "settable_per_meshgroup": false, "settable_globally": false }, + "machine_nozzle_id": + { + "label": "Nozzle ID", + "description": "The nozzle ID for an extruder train, such as \"AA 0.4\" and \"BB 0.8\".", + "type": "str", + "default_value": "unknown", + "settable_per_mesh": false, + "settable_per_extruder": true + }, "machine_nozzle_size": { "label": "Nozzle Diameter", diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 3117d0be46..81321096fd 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -215,7 +215,7 @@ "default_value": 3, "type": "float", "settable_per_mesh": false, - "settable_per_extruder": false, + "settable_per_extruder": true, "settable_per_meshgroup": false }, "machine_nozzle_expansion_angle": @@ -303,8 +303,9 @@ "type": "enum", "options": { - "RepRap (Marlin/Sprinter)": "RepRap (Marlin/Sprinter)", - "RepRap (Volumatric)": "RepRap (Volumetric)", + "RepRap (Marlin/Sprinter)": "Marlin", + "RepRap (Volumetric)": "Marlin (Volumetric)", + "RepRap (RepRap)": "RepRap", "UltiGCode": "Ultimaker 2", "Griffin": "Griffin", "Makerbot": "Makerbot", @@ -407,6 +408,15 @@ "settable_per_extruder": false, "settable_per_meshgroup": false }, + "machine_nozzle_id": + { + "label": "Nozzle ID", + "description": "The nozzle ID for an extruder train, such as \"AA 0.4\" and \"BB 0.8\".", + "type": "str", + "default_value": "unknown", + "settable_per_mesh": false, + "settable_per_extruder": true + }, "machine_nozzle_size": { "label": "Nozzle Diameter", @@ -668,7 +678,7 @@ "minimum_value_warning": "(0.1 + 0.4 * machine_nozzle_size) if outer_inset_first else 0.1 * machine_nozzle_size", "maximum_value_warning": "2 * machine_nozzle_size", "default_value": 0.4, - "value": "wall_line_width", + "value": "extruderValue(wall_0_extruder_nr, 'wall_line_width')", "type": "float", "limit_to_extruder": "wall_0_extruder_nr", "settable_per_mesh": true @@ -689,6 +699,21 @@ } } }, + "roofing_line_width": + { + "label": "Top Surface Skin Line Width", + "description": "Width of a single line of the areas at the top of the print.", + "unit": "mm", + "minimum_value": "0.001", + "minimum_value_warning": "0.1 + 0.4 * machine_nozzle_size", + "maximum_value_warning": "2 * machine_nozzle_size", + "default_value": 0.4, + "type": "float", + "value": "skin_line_width", + "limit_to_extruder": "roofing_extruder_nr", + "settable_per_mesh": true, + "enabled": "roofing_layer_count > 0 and top_layers > 0" + }, "skin_line_width": { "label": "Top/Bottom Line Width", @@ -814,6 +839,18 @@ "maximum_value_warning": "2 * machine_nozzle_size", "settable_per_mesh": false, "settable_per_extruder": true + }, + "initial_layer_line_width_factor": + { + "label": "Initial Layer Line Width", + "description": "Multiplier of the line width on the first layer. Increasing this could improve bed adhesion.", + "type": "float", + "unit": "%", + "default_value": 100.0, + "minimum_value": "0.001", + "maximum_value_warning": "150", + "settable_per_mesh": false, + "settable_per_extruder": true } } } @@ -833,7 +870,6 @@ "description": "The extruder train used for printing the walls. This is used in multi-extrusion.", "type": "optional_extruder", "default_value": "-1", - "value": "-1", "settable_per_mesh": true, "settable_per_extruder": false, "settable_per_meshgroup": true, @@ -907,17 +943,70 @@ "default_value": 0.2, "value": "machine_nozzle_size / 2", "minimum_value": "0", - "maximum_value_warning": "machine_nozzle_size", + "maximum_value_warning": "machine_nozzle_size * 2", "limit_to_extruder": "wall_0_extruder_nr", "settable_per_mesh": true }, + "roofing_extruder_nr": + { + "label": "Top Surface Skin Extruder", + "description": "The extruder train used for printing the top most skin. This is used in multi-extrusion.", + "type": "optional_extruder", + "default_value": "-1", + "value": "top_bottom_extruder_nr", + "settable_per_mesh": true, + "settable_per_extruder": false, + "settable_per_meshgroup": true, + "settable_globally": true, + "enabled": "machine_extruder_count > 1 and roofing_layer_count > 0 and top_layers > 0" + }, + "roofing_layer_count": + { + "label": "Top Surface Skin Layers", + "description": "The number of top most skin layers. Usually only one top most layer is sufficient to generate higher quality top surfaces.", + "default_value": 0, + "minimum_value": "0", + "maximum_value_warning": "top_layers - 1", + "type": "int", + "value": "0", + "limit_to_extruder": "roofing_extruder_nr", + "settable_per_mesh": true, + "enabled": "top_layers > 0" + }, + "roofing_pattern": + { + "label": "Top Surface Skin Pattern", + "description": "The pattern of the top most layers.", + "type": "enum", + "options": + { + "lines": "Lines", + "concentric": "Concentric", + "zigzag": "Zig Zag" + }, + "default_value": "lines", + "value": "top_bottom_pattern", + "limit_to_extruder": "roofing_extruder_nr", + "settable_per_mesh": true, + "enabled": "roofing_layer_count > 0 and top_layers > 0" + }, + "roofing_angles": + { + "label": "Top Surface Skin Line Directions", + "description": "A list of integer line directions to use when the top surface skin 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": "[ ]", + "value": "skin_angles", + "enabled": "roofing_pattern != 'concentric'", + "limit_to_extruder": "roofing_extruder_nr", + "settable_per_mesh": true + }, "top_bottom_extruder_nr": { "label": "Top/Bottom Extruder", "description": "The extruder train used for printing the top and bottom skin. This is used in multi-extrusion.", "type": "optional_extruder", "default_value": "-1", - "value": "-1", "settable_per_mesh": true, "settable_per_extruder": false, "settable_per_meshgroup": true, @@ -999,6 +1088,29 @@ } } }, + "top_reference_wall": + { + "label": "Top Reference Wall", + "description": "The number of the wall of the layers above a layer to consider as infill for that layer. Reducing this number reduces the skin on slanted top faces of the input model. Increasing this number causes walls on consecutive layers to be supported better. Zero means the outline of the layer is used.", + "minimum_value": "0", + "maximum_value": "wall_line_count", + "default_value": 2, + "type": "int", + "value": "wall_line_count", + "limit_to_extruder": "top_bottom_extruder_nr", + "settable_per_mesh": true + }, + "bottom_reference_wall": + { + "label": "Bottom Reference Wall", + "description": "The number of the wall of the layers below a layer to consider as infill for that layer. Reducing this number reduces the skin on overhanging faces of the input model. Increasing this number causes bridges to attach better to the walls of the previous layer. Zero means the outline of the layer is used.", + "minimum_value": "0", + "maximum_value": "wall_line_count", + "default_value": 0, + "type": "int", + "limit_to_extruder": "top_bottom_extruder_nr", + "settable_per_mesh": true + }, "top_bottom_pattern": { "label": "Top/Bottom Pattern", @@ -1123,6 +1235,14 @@ "limit_to_extruder": "wall_0_extruder_nr", "settable_per_mesh": true }, + "fill_outline_gaps": { + "label": "Print Thin Walls", + "description": "Print pieces of the model which are horizontally thinner than the nozzle size.", + "type": "bool", + "default_value": false, + "limit_to_extruder": "wall_0_extruder_nr", + "settable_per_mesh": true + }, "xy_offset": { "label": "Horizontal Expansion", @@ -1135,6 +1255,19 @@ "limit_to_extruder": "wall_0_extruder_nr", "settable_per_mesh": true }, + "xy_offset_layer_0": + { + "label": "Initial Layer Horizontal Expansion", + "description": "Amount of offset applied to all polygons in the first layer. A negative value can compensate for squishing of the first layer known as \"elephant's foot\".", + "unit": "mm", + "type": "float", + "minimum_value_warning": "-1", + "maximum_value_warning": "1", + "default_value": 0, + "value": "xy_offset", + "limit_to_extruder": "wall_0_extruder_nr", + "settable_per_mesh": true + }, "z_seam_type": { "label": "Z Seam Alignment", @@ -1174,6 +1307,17 @@ "limit_to_extruder": "wall_0_extruder_nr", "settable_per_mesh": true }, + "z_seam_relative": + { + "label": "Z Seam Relative", + "description": "When enabled, the z seam coordinates are relative to each part's centre. When disabled, the coordinates define an absolute position on the build plate.", + "unit": "mm", + "type": "bool", + "default_value": false, + "enabled": "z_seam_type == 'back'", + "limit_to_extruder": "wall_0_extruder_nr", + "settable_per_mesh": true + }, "skin_no_small_gaps_heuristic": { "label": "Ignore Small Z Gaps", @@ -1199,7 +1343,6 @@ "description": "The extruder train used for printing infill. This is used in multi-extrusion.", "type": "optional_extruder", "default_value": "-1", - "value": "-1", "settable_per_mesh": true, "settable_per_extruder": false, "settable_per_meshgroup": true, @@ -1314,7 +1457,7 @@ "skin_overlap": { "label": "Skin Overlap Percentage", - "description": "The amount of overlap between the skin and the walls. A slight overlap allows the walls to connect firmly to the skin.", + "description": "The amount of overlap between the skin and the walls as a percentage of the line width. A slight overlap allows the walls to connect firmly to the skin. This is a percentage of the average line widths of the skin lines and the innermost wall.", "unit": "%", "type": "float", "default_value": 5, @@ -1392,7 +1535,6 @@ "default_value": 1.5, "minimum_value": "0.0001", "minimum_value_warning": "3 * resolveOrValue('layer_height')", - "maximum_value_warning": "100", "enabled": "infill_sparse_density > 0 and gradual_infill_steps > 0 and infill_pattern != 'cubicsubdiv'", "limit_to_extruder": "infill_extruder_nr", "settable_per_mesh": true @@ -1444,6 +1586,7 @@ "type": "bool", "default_value": false, "limit_to_extruder": "top_bottom_extruder_nr", + "value": "expand_skins_into_infill", "settable_per_mesh": true } } @@ -1523,6 +1666,7 @@ "maximum_value_warning": "285", "enabled": "machine_nozzle_temp_enabled", "settable_per_extruder": true, + "settable_per_mesh": false, "minimum_value": "-273.15" }, "material_print_temperature": @@ -1964,6 +2108,21 @@ } } }, + "speed_roofing": + { + "label": "Top Surface Skin Speed", + "description": "The speed at which top surface skin layers are printed.", + "unit": "mm/s", + "type": "float", + "minimum_value": "0.1", + "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", + "maximum_value_warning": "150", + "default_value": 25, + "value": "speed_topbottom", + "limit_to_extruder": "roofing_extruder_nr", + "settable_per_mesh": true, + "enabled": "roofing_layer_count > 0 and top_layers > 0" + }, "speed_topbottom": { "label": "Top/Bottom Speed", @@ -1985,7 +2144,7 @@ "type": "float", "unit": "mm/s", "default_value": 20.0, - "value": "speed_topbottom * 20 / 30", + "value": "speed_roofing * 20 / 30", "minimum_value": "0.001", "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", "maximum_value_warning": "100", @@ -2188,9 +2347,9 @@ "description": "The first few layers are printed slower than the rest of the model, to get better adhesion to the build plate and improve the overall success rate of prints. The speed is gradually increased over these layers.", "type": "int", "default_value": 2, - "resolve": "sum(extruderValues('speed_slowdown_layers')) / len(extruderValues('speed_slowdown_layers'))", + "resolve": "round(sum(extruderValues('speed_slowdown_layers')) / len(extruderValues('speed_slowdown_layers')))", "minimum_value": "0", - "maximum_value_warning": "1.0 / resolveOrValue('layer_height')", + "maximum_value_warning": "3.2 / resolveOrValue('layer_height')", "settable_per_mesh": false, "settable_per_extruder": false }, @@ -2304,6 +2463,21 @@ } } }, + "acceleration_roofing": + { + "label": "Top Surface Skin Acceleration", + "description": "The acceleration with which top surface skin layers are printed.", + "unit": "mm/s²", + "type": "float", + "minimum_value": "0.1", + "minimum_value_warning": "100", + "maximum_value_warning": "10000", + "default_value": 3000, + "value": "acceleration_topbottom", + "enabled": "resolveOrValue('acceleration_enabled') and roofing_layer_count > 0 and top_layers > 0", + "limit_to_extruder": "roofing_extruder_nr", + "settable_per_mesh": true + }, "acceleration_topbottom": { "label": "Top/Bottom Acceleration", @@ -2329,7 +2503,7 @@ "minimum_value_warning": "100", "maximum_value_warning": "10000", "default_value": 3000, - "value": "acceleration_topbottom", + "value": "acceleration_roofing", "enabled": "resolveOrValue('acceleration_enabled') and ironing_enabled", "limit_to_extruder": "top_bottom_extruder_nr", "settable_per_mesh": true @@ -2593,6 +2767,20 @@ } } }, + "jerk_roofing": + { + "label": "Top Surface Skin Jerk", + "description": "The maximum instantaneous velocity change with which top surface skin layers are printed.", + "unit": "mm/s", + "type": "float", + "minimum_value": "0.1", + "maximum_value_warning": "50", + "default_value": 20, + "value": "jerk_topbottom", + "enabled": "resolveOrValue('jerk_enabled') and roofing_layer_count > 0 and top_layers > 0", + "limit_to_extruder": "roofing_extruder_nr", + "settable_per_mesh": true + }, "jerk_topbottom": { "label": "Top/Bottom Jerk", @@ -2616,7 +2804,7 @@ "minimum_value": "0.1", "maximum_value_warning": "50", "default_value": 20, - "value": "jerk_topbottom", + "value": "jerk_roofing", "enabled": "resolveOrValue('jerk_enabled') and ironing_enabled", "limit_to_extruder": "top_bottom_extruder_nr", "settable_per_mesh": true @@ -2907,7 +3095,7 @@ "unit": "mm", "type": "float", "default_value": 1, - "minimum_value_warning": "0.75 * machine_nozzle_size", + "minimum_value_warning": "0", "maximum_value_warning": "10", "enabled": "retraction_enable and retraction_hop_enabled", "settable_per_mesh": false, @@ -3392,6 +3580,47 @@ "enabled": "support_enable", "settable_per_mesh": true }, + "support_infill_sparse_thickness": + { + "label": "Support Infill Layer Thickness", + "description": "The thickness per layer of support infill material. This value should always be a multiple of the layer height and is otherwise rounded.", + "unit": "mm", + "type": "float", + "default_value": 0.1, + "minimum_value": "resolveOrValue('layer_height')", + "maximum_value_warning": "0.75 * machine_nozzle_size", + "maximum_value": "resolveOrValue('layer_height') * 8", + "value": "resolveOrValue('layer_height')", + "enabled": "support_enable and support_infill_rate > 0", + "limit_to_extruder": "support_infill_extruder_nr", + "settable_per_mesh": false + }, + "gradual_support_infill_steps": + { + "label": "Gradual Support Infill Steps", + "description": "Number of times to reduce the support infill density by half when getting further below top surfaces. Areas which are closer to top surfaces get a higher density, up to the Support Infill Density.", + "default_value": 0, + "type": "int", + "minimum_value": "0", + "maximum_value_warning": "5", + "maximum_value": "999999 if support_line_distance == 0 else (20 - math.log(support_line_distance) / math.log(2))", + "enabled": "support_enable and support_infill_rate > 0", + "limit_to_extruder": "support_infill_extruder_nr", + "settable_per_mesh": false + }, + "gradual_support_infill_step_height": + { + "label": "Gradual Support Infill Step Height", + "description": "The height of support infill of a given density before switching to half the density.", + "unit": "mm", + "type": "float", + "default_value": 1, + "minimum_value": "0.0001", + "minimum_value_warning": "3 * resolveOrValue('layer_height')", + "enabled": "support_enable and support_infill_rate > 0 and gradual_support_infill_steps > 0", + "limit_to_extruder": "support_infill_extruder_nr", + "settable_per_mesh": false + }, "support_interface_enable": { "label": "Enable Support Interface", @@ -3824,7 +4053,7 @@ "default_value": 20, "minimum_value": "0", "maximum_value_warning": "50 / skirt_brim_line_width", - "value": "math.ceil(brim_width / skirt_brim_line_width)", + "value": "math.ceil(brim_width / (skirt_brim_line_width * initial_layer_line_width_factor / 100.0))", "enabled": "resolveOrValue('adhesion_type') == 'brim'", "settable_per_mesh": false, "settable_per_extruder": true, @@ -4356,12 +4585,12 @@ "unit": "mm", "type": "float", "default_value": 2, - "value": "round(max(2 * max(extruderValues('prime_tower_line_width')), 0.5 * (resolveOrValue('prime_tower_size') - math.sqrt(max(0, resolveOrValue('prime_tower_size') ** 2 - max(extruderValues('prime_tower_min_volume')) / resolveOrValue('layer_height'))))), 3)", + "value": "round(max(2 * prime_tower_line_width, 0.5 * (prime_tower_size - math.sqrt(max(0, prime_tower_size ** 2 - prime_tower_min_volume / layer_height)))), 3)", "resolve": "max(extruderValues('prime_tower_wall_thickness'))", "minimum_value": "0.001", "minimum_value_warning": "2 * min(extruderValues('prime_tower_line_width')) - 0.0001", - "maximum_value_warning": "resolveOrValue('prime_tower_size') / 2", - "enabled": "resolveOrValue('prime_tower_enable')", + "maximum_value_warning": "prime_tower_size / 2", + "enabled": "prime_tower_enable", "settable_per_mesh": false, "settable_per_extruder": false } @@ -4375,8 +4604,7 @@ "unit": "mm", "enabled": "resolveOrValue('prime_tower_enable')", "default_value": 200, - "minimum_value_warning": "-1000", - "maximum_value_warning": "1000", + "value": "machine_width - max(extruderValue(adhesion_extruder_nr, 'brim_width') * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 if adhesion_type == 'brim' else (extruderValue(adhesion_extruder_nr, 'raft_margin') if adhesion_type == 'raft' else (extruderValue(adhesion_extruder_nr, 'skirt_gap') if adhesion_type == 'skirt' else 0)), max(extruderValues('travel_avoid_distance'))) - max(extruderValues('support_offset')) - sum(extruderValues('skirt_brim_line_width')) * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 - 1", "maximum_value": "machine_width / 2 if machine_center_is_zero else machine_width", "minimum_value": "resolveOrValue('prime_tower_size') - machine_width / 2 if machine_center_is_zero else resolveOrValue('prime_tower_size')", "settable_per_mesh": false, @@ -4390,8 +4618,7 @@ "unit": "mm", "enabled": "resolveOrValue('prime_tower_enable')", "default_value": 200, - "minimum_value_warning": "-1000", - "maximum_value_warning": "1000", + "value": "machine_depth - prime_tower_size - max(extruderValue(adhesion_extruder_nr, 'brim_width') * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 if adhesion_type == 'brim' else (extruderValue(adhesion_extruder_nr, 'raft_margin') if adhesion_type == 'raft' else (extruderValue(adhesion_extruder_nr, 'skirt_gap') if adhesion_type == 'skirt' else 0)), max(extruderValues('travel_avoid_distance'))) - max(extruderValues('support_offset')) - sum(extruderValues('skirt_brim_line_width')) * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 - 1", "maximum_value": "machine_depth / 2 - resolveOrValue('prime_tower_size') if machine_center_is_zero else machine_depth - resolveOrValue('prime_tower_size')", "minimum_value": "machine_depth / -2 if machine_center_is_zero else 0", "settable_per_mesh": false, @@ -4432,6 +4659,19 @@ "settable_per_mesh": false, "settable_per_extruder": true }, + "prime_tower_purge_volume": + { + "label": "Prime Tower Purge Volume", + "description": "Amount of filament to be purged when wiping on the prime tower. Purging is useful for compensating the filament lost by oozing during inactivity of the nozzle.", + "type": "float", + "enabled": "resolveOrValue('prime_tower_enable') and dual_pre_wipe", + "unit": "mm³", + "default_value": 0, + "minimum_value": "0", + "maximum_value_warning": "0.5", + "settable_per_mesh": false, + "settable_per_extruder": true + }, "ooze_shield_enabled": { "label": "Enable Ooze Shield", @@ -4883,6 +5123,16 @@ "limit_to_extruder": "infill_extruder_nr", "settable_per_mesh": true }, + "spaghetti_infill_stepped": + { + "label": "Spaghetti Infill Stepping", + "description": "Whether to print spaghetti infill in steps or extrude all the infill filament at the end of the print.", + "type": "bool", + "default_value": true, + "enabled": "infill_sparse_density > 0 and spaghetti_infill_enabled", + "limit_to_extruder": "infill_extruder_nr", + "settable_per_mesh": true + }, "spaghetti_max_infill_angle": { "label": "Spaghetti Maximum Infill Angle", @@ -4893,7 +5143,7 @@ "minimum_value": "0", "maximum_value": "90", "maximum_value_warning": "45", - "enabled": "infill_sparse_density > 0 and spaghetti_infill_enabled", + "enabled": "infill_sparse_density > 0 and spaghetti_infill_enabled and spaghetti_infill_stepped", "limit_to_extruder": "infill_extruder_nr", "settable_per_mesh": true }, @@ -4906,7 +5156,7 @@ "default_value": 2.0, "minimum_value": "layer_height", "maximum_value_warning": "10.0", - "enabled": "infill_sparse_density > 0 and spaghetti_infill_enabled", + "enabled": "infill_sparse_density > 0 and spaghetti_infill_enabled and spaghetti_infill_stepped", "limit_to_extruder": "infill_extruder_nr", "settable_per_mesh": true }, @@ -4936,6 +5186,19 @@ "limit_to_extruder": "infill_extruder_nr", "settable_per_mesh": true }, + "spaghetti_infill_extra_volume": + { + "label": "Spaghetti Infill Extra Volume", + "description": "A correction term to adjust the total volume being extruded each time when filling spaghetti.", + "unit": "mm³", + "type": "float", + "default_value": 0, + "minimum_value_warning": "0", + "maximum_value_warning": "100", + "enabled": "infill_sparse_density > 0 and spaghetti_infill_enabled", + "limit_to_extruder": "infill_extruder_nr", + "settable_per_mesh": true + }, "support_conical_enabled": { "label": "Enable Conical Support", diff --git a/resources/definitions/helloBEEprusa.def.json b/resources/definitions/helloBEEprusa.def.json old mode 100644 new mode 100755 index 90c0fc7e27..0fee04f2e9 --- a/resources/definitions/helloBEEprusa.def.json +++ b/resources/definitions/helloBEEprusa.def.json @@ -10,21 +10,28 @@ "category": "Other", "platform": "BEEVERYCREATIVE-helloBEEprusa.stl", "platform_offset": [-226, -75, -196], - "file_formats": "text/x-gcode" + "file_formats": "text/x-gcode", + "machine_extruder_trains": + { + "0": "hBp_extruder_left", + "1": "hBp_extruder_right" + } }, "overrides": { + "machine_extruder_count": { "default_value": 2 }, "machine_name": { "default_value": "hello BEE prusa" }, - "machine_start_gcode": { "default_value": "; -- START GCODE --\nG21 ;set units to millimetres\nG90 ;set to absolute positioning\nM107 ;set fan speed to zero (turned off)\nG28 X0 Y0 ;move to the X/Y origin (Home)\nG28 Z0 ;move to the Z origin (Home)\nG92 E0 ;zero the extruded length\nG1 F3600 ;set feedrate to 60 mm/sec\n; -- end of START GCODE --" }, + "machine_start_gcode": { "default_value": "; -- START GCODE --\nG21 ;set units to millimetres\nG90 ;set to absolute positioning\nM107 ;set fan speed to zero (turned off)\nG28 X0 Y0 ;move to the X/Y origin (Home)\nG28 Z0 ;move to the Z origin (Home)\nG92 E0 ;zero the extruded length\nG1 F3600 ;set feedrate to 60 mm/sec\nM420 S1 \n; -- end of START GCODE --" }, "machine_end_gcode": { "default_value": "; -- END GCODE --\nM104 S0 ;set extruder temperature to zero (turned off)\nM140 S0 ;set bed temperature to zero (turned off)\nG28 X0 Y0 ;move to the X/Y origin (Home)\nM84 ;turn off steppers\n; -- end of END GCODE --" }, "machine_width": { "default_value": 185 }, "machine_depth": { "default_value": 200 }, "machine_height": { "default_value": 190 }, "machine_heated_bed": { "default_value": true }, "machine_center_is_zero": { "default_value": false }, - "material_print_temperature": { "default_value": 220 }, + "material_print_temperature": { "default_value": 200 }, "material_bed_temperature": { "default_value": 60 }, "material_diameter": { "default_value": 1.75 }, + "line_width": { "default_value": 0.48 }, "layer_height": { "default_value": 0.2 }, "layer_height_0": { "default_value": 0.2 }, "wall_line_count": { "default_value": 3 }, @@ -44,7 +51,7 @@ "skirt_brim_minimal_length": { "default_value": 30 }, "skirt_gap": { "default_value": 6 }, "cool_fan_full_at_height": { "default_value": 0.4 }, - "retraction_speed": { "default_value": 50.0}, - "retraction_amount": { "default_value": 5.2} + "retraction_speed": { "default_value": 15.0}, + "retraction_amount": { "default_value": 1.5} } } \ No newline at end of file diff --git a/resources/definitions/makeit_pro_l.def.json b/resources/definitions/makeit_pro_l.def.json index 79dab33fc1..32f65d2b99 100644 --- a/resources/definitions/makeit_pro_l.def.json +++ b/resources/definitions/makeit_pro_l.def.json @@ -72,10 +72,10 @@ "enabled": true }, "prime_tower_position_x": { - "default_value": 185 + "value": "185" }, "prime_tower_position_y": { - "default_value": 160 + "value": "160" }, "material_diameter": { "default_value": 1.75 diff --git a/resources/definitions/makeit_pro_m.def.json b/resources/definitions/makeit_pro_m.def.json index 0d9dab7073..7cae1d12ae 100644 --- a/resources/definitions/makeit_pro_m.def.json +++ b/resources/definitions/makeit_pro_m.def.json @@ -72,10 +72,10 @@ "enabled": false }, "prime_tower_position_x": { - "default_value": 185 + "value": "185" }, "prime_tower_position_y": { - "default_value": 160 + "value": "160" }, "material_diameter": { "default_value": 1.75 diff --git a/resources/definitions/peopoly_moai.def.json b/resources/definitions/peopoly_moai.def.json index 9c01ca95e4..4bbb033fb7 100644 --- a/resources/definitions/peopoly_moai.def.json +++ b/resources/definitions/peopoly_moai.def.json @@ -114,6 +114,12 @@ "speed_slowdown_layers": { "value": "2" }, + "infill_overlap": { + "value": "15" + }, + "adhesion_type": { + "value": "\"none\"" + }, "acceleration_enabled": { "value": "False" diff --git a/resources/definitions/rigid3d_zero2.def.json b/resources/definitions/rigid3d_zero2.def.json index 41cd2c18db..ddb98b0eb2 100644 --- a/resources/definitions/rigid3d_zero2.def.json +++ b/resources/definitions/rigid3d_zero2.def.json @@ -64,8 +64,7 @@ "default_value": 15 }, "infill_pattern": { - "default_value": "lines", - "value": "lines" + "value": "'lines'" }, "retraction_amount": { "default_value": 1 @@ -121,7 +120,7 @@ "default_value": "grid" }, "machine_start_gcode": { - "default_value": "G21\nG28 ; Home extruder\nM107 ; Turn off fan\nG91 ; Relative positioning\nG1 Z5 F180;\nG1 X100 Y100 F3000;\nG1 Z-5 F180;\nG90 ; Absolute positioning\nM82 ; Extruder in absolute mode\nG92 E0 ; Reset extruder position\n" + "default_value": "G21\nG28 ; Home extruder\nM420 S1 ; Enable MBL\nM107 ; Turn off fan\nG91 ; Relative positioning\nG1 Z5 F180;\nG1 X30 Y30 F3000;\nG1 Z-5 F180;\nG90 ; Absolute positioning\nM82 ; Extruder in absolute mode\nG92 E0 ; Reset extruder position\n" }, "machine_end_gcode": { "default_value": "G1 X0 Y180 ; Get extruder out of way.\nM107 ; Turn off fan\nG91 ; Relative positioning\nG0 Z20 ; Lift extruder up\nT0\nG1 E-1 ; Reduce filament pressure\nM104 T0 S0 ; Turn extruder heater off\nG90 ; Absolute positioning\nG92 E0 ; Reset extruder position\nM140 S0 ; Disable heated bed\nM84 ; Turn steppers off\n" diff --git a/resources/definitions/ultimaker3.def.json b/resources/definitions/ultimaker3.def.json index 43f1453d72..06f0fe3a89 100644 --- a/resources/definitions/ultimaker3.def.json +++ b/resources/definitions/ultimaker3.def.json @@ -69,8 +69,7 @@ "extruder_prime_pos_abs": { "default_value": true }, "machine_start_gcode": { "default_value": "" }, "machine_end_gcode": { "default_value": "" }, - "prime_tower_position_x": { "default_value": 175 }, - "prime_tower_position_y": { "default_value": 177 }, + "prime_tower_position_x": { "value": "machine_depth - max(extruderValue(adhesion_extruder_nr, 'brim_width') * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 if adhesion_type == 'brim' else (extruderValue(adhesion_extruder_nr, 'raft_margin') if adhesion_type == 'raft' else (extruderValue(adhesion_extruder_nr, 'skirt_gap') if adhesion_type == 'skirt' else 0)), max(extruderValues('travel_avoid_distance'))) - max(extruderValues('support_offset')) - sum(extruderValues('skirt_brim_line_width')) - 30" }, "prime_tower_wipe_enabled": { "default_value": false }, "prime_blob_enable": { "enabled": true }, diff --git a/resources/definitions/ultimaker_original_dual.def.json b/resources/definitions/ultimaker_original_dual.def.json index d133a3853f..e219a5ecb5 100644 --- a/resources/definitions/ultimaker_original_dual.def.json +++ b/resources/definitions/ultimaker_original_dual.def.json @@ -73,10 +73,10 @@ "default_value": 2 }, "prime_tower_position_x": { - "default_value": 195 + "value": "195" }, "prime_tower_position_y": { - "default_value": 149 + "value": "149" } } } diff --git a/resources/extruders/cartesio_extruder_0.def.json b/resources/extruders/cartesio_extruder_0.def.json index 9b25b366f7..f1423f3530 100644 --- a/resources/extruders/cartesio_extruder_0.def.json +++ b/resources/extruders/cartesio_extruder_0.def.json @@ -16,10 +16,17 @@ "machine_nozzle_offset_x": { "default_value": 0.0 }, "machine_nozzle_offset_y": { "default_value": 0.0 }, "machine_extruder_start_code": { - "default_value": "\n;start extruder_0\n\nM117 printing\n" + "default_value": "\n;start extruder_0\n\nM117 printing...\n" }, "machine_extruder_end_code": { - "default_value": "\nM104 T0 S160\nG91\nG1 Z5 F900\nG90\nG1 X1 Y260 F9000\n;end extruder_0\nM117 temp is {material_print_temp}" - } + "default_value": "\nM104 T0 S120\n;end extruder_0\nM117 temp is {material_print_temp}\n" + }, + + "machine_extruder_start_pos_abs": { "default_value": true }, + "machine_extruder_start_pos_x": { "default_value": 24 }, + "machine_extruder_start_pos_y": { "default_value": 16 }, + "machine_extruder_end_pos_abs": { "default_value": true }, + "machine_extruder_end_pos_x": { "default_value": 48 }, + "machine_extruder_end_pos_y": { "default_value": 16 } } } diff --git a/resources/extruders/cartesio_extruder_1.def.json b/resources/extruders/cartesio_extruder_1.def.json index 939b1fd7c8..402553ff96 100644 --- a/resources/extruders/cartesio_extruder_1.def.json +++ b/resources/extruders/cartesio_extruder_1.def.json @@ -16,10 +16,17 @@ "machine_nozzle_offset_x": { "default_value": 24.0 }, "machine_nozzle_offset_y": { "default_value": 0.0 }, "machine_extruder_start_code": { - "default_value": "\n;start extruder_1\n\nM117 printing\n" + "default_value": "\n;start extruder_1\n\nM117 printing...\n" }, "machine_extruder_end_code": { - "default_value": "\nM104 T1 S160\nG91\nG1 Z5 F900\nG90\nG1 X1 Y260 F9000\n;end extruder_1\n" - } + "default_value": "\nM104 T1 S120\n;end extruder_1\n" + }, + + "machine_extruder_start_pos_abs": { "default_value": true }, + "machine_extruder_start_pos_x": { "default_value": 48 }, + "machine_extruder_start_pos_y": { "default_value": 16 }, + "machine_extruder_end_pos_abs": { "default_value": true }, + "machine_extruder_end_pos_x": { "default_value": 24 }, + "machine_extruder_end_pos_y": { "default_value": 16 } } } diff --git a/resources/extruders/cartesio_extruder_2.def.json b/resources/extruders/cartesio_extruder_2.def.json index ce07502943..e8f47772cb 100644 --- a/resources/extruders/cartesio_extruder_2.def.json +++ b/resources/extruders/cartesio_extruder_2.def.json @@ -14,12 +14,19 @@ "maximum_value": "3" }, "machine_nozzle_offset_x": { "default_value": 0.0 }, - "machine_nozzle_offset_y": { "default_value": 60.0 }, + "machine_nozzle_offset_y": { "default_value": 0.0 }, "machine_extruder_start_code": { - "default_value": "\n;start extruder_2\n\nM117 printing\n" + "default_value": "\n;start extruder_2\n\nM117 printing...\n" }, "machine_extruder_end_code": { - "default_value": "\nM104 T2 S160\nG91\nG1 Z5 F900\nG90\nG1 X1 Y260 F9000\n;end extruder_2\n" - } + "default_value": "\nM104 T2 S120\n;end extruder_2\n" + }, + + "machine_extruder_start_pos_abs": { "default_value": true }, + "machine_extruder_start_pos_x": { "default_value": 24 }, + "machine_extruder_start_pos_y": { "default_value": 309 }, + "machine_extruder_end_pos_abs": { "default_value": true }, + "machine_extruder_end_pos_x": { "default_value": 48 }, + "machine_extruder_end_pos_y": { "default_value": 309 } } } diff --git a/resources/extruders/cartesio_extruder_3.def.json b/resources/extruders/cartesio_extruder_3.def.json index dea3467daa..a3e435470a 100644 --- a/resources/extruders/cartesio_extruder_3.def.json +++ b/resources/extruders/cartesio_extruder_3.def.json @@ -13,13 +13,20 @@ "default_value": 3, "maximum_value": "3" }, - "machine_nozzle_offset_x": { "default_value": 24.0 }, - "machine_nozzle_offset_y": { "default_value": 60.0 }, + "machine_nozzle_offset_x": { "default_value": 0.0 }, + "machine_nozzle_offset_y": { "default_value": 0.0 }, "machine_extruder_start_code": { - "default_value": "\n;start extruder_3\n\nM117 printing\n" + "default_value": "\n;start extruder_3\n\nM117 printing...\n" }, "machine_extruder_end_code": { - "default_value": "\nM104 T3 S160\nG91\nG1 Z5 F900\nG90\nG1 X1 Y260 F9000\n;end extruder_3\n" - } + "default_value": "\nM104 T3 S120\n;end extruder_3\n" + }, + + "machine_extruder_start_pos_abs": { "default_value": true }, + "machine_extruder_start_pos_x": { "default_value": 48 }, + "machine_extruder_start_pos_y": { "default_value": 309 }, + "machine_extruder_end_pos_abs": { "default_value": true }, + "machine_extruder_end_pos_x": { "default_value": 24 }, + "machine_extruder_end_pos_y": { "default_value": 309} } } diff --git a/resources/extruders/hBp_extruder_left.def.json b/resources/extruders/hBp_extruder_left.def.json new file mode 100755 index 0000000000..f250ab2d55 --- /dev/null +++ b/resources/extruders/hBp_extruder_left.def.json @@ -0,0 +1,24 @@ +{ + "id": "hBp_extruder_left", + "version": 2, + "name": "Extruder 1", + "inherits": "fdmextruder", + "metadata": { + "machine": "helloBEEprusa", + "position": "0" + }, + + "overrides": { + "extruder_nr": { + "default_value": 0, + "maximum_value": "1" + }, + "machine_nozzle_offset_x": { "default_value": 0 }, + "machine_nozzle_offset_y": { "default_value": 0 }, + + + "extruder_prime_pos_x": { "default_value": 0 }, + "extruder_prime_pos_y": { "default_value": 0 }, + "extruder_prime_pos_z": { "default_value": 2 } + } +} diff --git a/resources/extruders/hBp_extruder_right.def.json b/resources/extruders/hBp_extruder_right.def.json new file mode 100755 index 0000000000..aa963cc35b --- /dev/null +++ b/resources/extruders/hBp_extruder_right.def.json @@ -0,0 +1,24 @@ +{ + "id": "hBp_extruder_right", + "version": 2, + "name": "Extruder 2", + "inherits": "fdmextruder", + "metadata": { + "machine": "helloBEEprusa", + "position": "1" + }, + + "overrides": { + "extruder_nr": { + "default_value": 1, + "maximum_value": "1" + }, + "machine_nozzle_offset_x": { "default_value": 0 }, + "machine_nozzle_offset_y": { "default_value": 0 }, + + + "extruder_prime_pos_x": { "default_value": 185 }, + "extruder_prime_pos_y": { "default_value": 0 }, + "extruder_prime_pos_z": { "default_value": 2 } + } +} diff --git a/resources/i18n/jp/fdmextruder.def.json.po b/resources/i18n/jp/fdmextruder.def.json.po index 6d9b5b348b..6a29057028 100644 --- a/resources/i18n/jp/fdmextruder.def.json.po +++ b/resources/i18n/jp/fdmextruder.def.json.po @@ -8,65 +8,66 @@ msgstr "" "Project-Id-Version: Cura 2.6\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-05-30 15:32+0000\n" -"PO-Revision-Date: 2017-03-27 17:27+0000\n" +"PO-Revision-Date: 2017-06-26 17:30+0900\n" "Last-Translator: None\n" "Language-Team: None\n" -"Language: Japanese\n" +"Language: ja\n" "Lang-Code: ja\n" "Country-Code: JP\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.2\n" #: fdmextruder.def.json msgctxt "machine_settings label" msgid "Machine" -msgstr "" +msgstr "プリンター" #: fdmextruder.def.json msgctxt "machine_settings description" msgid "Machine specific settings" -msgstr "" +msgstr "プリンター詳細設定" #: fdmextruder.def.json msgctxt "extruder_nr label" msgid "Extruder" -msgstr "" +msgstr "エクストルーダー" #: fdmextruder.def.json msgctxt "extruder_nr description" msgid "The extruder train used for printing. This is used in multi-extrusion." -msgstr "" +msgstr "エクストルーダーの列。デュアルノズル印刷時に使用。" #: fdmextruder.def.json msgctxt "machine_nozzle_size label" msgid "Nozzle Diameter" -msgstr "" +msgstr "ノズル径" #: fdmextruder.def.json msgctxt "machine_nozzle_size description" msgid "The inner diameter of the nozzle. Change this setting when using a non-standard nozzle size." -msgstr "" +msgstr "ノズルの内径。規格外のノズルを使用する際は設定を変更してください。" #: fdmextruder.def.json msgctxt "machine_nozzle_offset_x label" msgid "Nozzle X Offset" -msgstr "" +msgstr "Xノズルオフセット" #: fdmextruder.def.json msgctxt "machine_nozzle_offset_x description" msgid "The x-coordinate of the offset of the nozzle." -msgstr "" +msgstr "ノズルのX軸のオフセット" #: fdmextruder.def.json msgctxt "machine_nozzle_offset_y label" msgid "Nozzle Y Offset" -msgstr "" +msgstr "Yノズルオフセット" #: fdmextruder.def.json msgctxt "machine_nozzle_offset_y description" msgid "The y-coordinate of the offset of the nozzle." -msgstr "" +msgstr "ノズルのY軸のオフセット" #: fdmextruder.def.json msgctxt "machine_extruder_start_code label" @@ -76,7 +77,7 @@ msgstr "" #: fdmextruder.def.json msgctxt "machine_extruder_start_code description" msgid "Start g-code to execute whenever turning the extruder on." -msgstr "" +msgstr "エクストルーダーを使う度にGコードを展開します。" #: fdmextruder.def.json msgctxt "machine_extruder_start_pos_abs label" @@ -86,7 +87,7 @@ msgstr "" #: fdmextruder.def.json msgctxt "machine_extruder_start_pos_abs description" msgid "Make the extruder starting position absolute rather than relative to the last-known location of the head." -msgstr "" +msgstr "ヘッドの最後の既知位置からではなく、エクストルーダーのスタート位置を絶対位置にします。" #: fdmextruder.def.json msgctxt "machine_extruder_start_pos_x label" @@ -96,7 +97,7 @@ msgstr "" #: fdmextruder.def.json msgctxt "machine_extruder_start_pos_x description" msgid "The x-coordinate of the starting position when turning the extruder on." -msgstr "" +msgstr "エクストルーダーのX座標のスタート位置" #: fdmextruder.def.json msgctxt "machine_extruder_start_pos_y label" @@ -106,7 +107,7 @@ msgstr "" #: fdmextruder.def.json msgctxt "machine_extruder_start_pos_y description" msgid "The y-coordinate of the starting position when turning the extruder on." -msgstr "" +msgstr "エクストルーダーのY座標のスタート位置" #: fdmextruder.def.json msgctxt "machine_extruder_end_code label" @@ -116,7 +117,7 @@ msgstr "" #: fdmextruder.def.json msgctxt "machine_extruder_end_code description" msgid "End g-code to execute whenever turning the extruder off." -msgstr "" +msgstr "エクストルーダーを使用しないときにGコードを終了します。" #: fdmextruder.def.json msgctxt "machine_extruder_end_pos_abs label" @@ -126,7 +127,7 @@ msgstr "" #: fdmextruder.def.json msgctxt "machine_extruder_end_pos_abs description" msgid "Make the extruder ending position absolute rather than relative to the last-known location of the head." -msgstr "" +msgstr "ヘッドの既存の認識位置よりもエクストルーダーの最終位置を絶対位置とする。" #: fdmextruder.def.json msgctxt "machine_extruder_end_pos_x label" @@ -136,7 +137,7 @@ msgstr "" #: fdmextruder.def.json msgctxt "machine_extruder_end_pos_x description" msgid "The x-coordinate of the ending position when turning the extruder off." -msgstr "" +msgstr "エクストルーダーを切った際のX座標の最終位置" #: fdmextruder.def.json msgctxt "machine_extruder_end_pos_y label" @@ -146,7 +147,7 @@ msgstr "" #: fdmextruder.def.json msgctxt "machine_extruder_end_pos_y description" msgid "The y-coordinate of the ending position when turning the extruder off." -msgstr "" +msgstr "エクストルーダーを切った際のY座標の最終位置" #: fdmextruder.def.json msgctxt "extruder_prime_pos_z label" @@ -156,7 +157,7 @@ msgstr "" #: fdmextruder.def.json msgctxt "extruder_prime_pos_z description" msgid "The Z coordinate of the position where the nozzle primes at the start of printing." -msgstr "" +msgstr "印刷開始時にノズルがポジションを確認するZ座標。" #: fdmextruder.def.json msgctxt "platform_adhesion label" @@ -166,7 +167,7 @@ msgstr "" #: fdmextruder.def.json msgctxt "platform_adhesion description" msgid "Adhesion" -msgstr "" +msgstr "密着" #: fdmextruder.def.json msgctxt "extruder_prime_pos_x label" @@ -176,7 +177,7 @@ msgstr "" #: fdmextruder.def.json msgctxt "extruder_prime_pos_x description" msgid "The X coordinate of the position where the nozzle primes at the start of printing." -msgstr "" +msgstr "印刷開始時にノズルがポジションを確認するX座標。" #: fdmextruder.def.json msgctxt "extruder_prime_pos_y label" @@ -186,4 +187,4 @@ msgstr "" #: fdmextruder.def.json msgctxt "extruder_prime_pos_y description" msgid "The Y coordinate of the position where the nozzle primes at the start of printing." -msgstr "" +msgstr "印刷開始時にノズルがポジションを確認するY座標。" diff --git a/resources/i18n/jp/fdmprinter.def.json.po b/resources/i18n/jp/fdmprinter.def.json.po index 06b60a76c4..33eabe895c 100644 --- a/resources/i18n/jp/fdmprinter.def.json.po +++ b/resources/i18n/jp/fdmprinter.def.json.po @@ -8,64 +8,66 @@ msgstr "" "Project-Id-Version: Cura 2.6\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-05-30 15:32+0000\n" -"PO-Revision-Date: 2017-03-27 17:27+0000\n" +"PO-Revision-Date: 2017-06-26 17:52+0900\n" "Last-Translator: None\n" "Language-Team: None\n" -"Language: Japanese\n" +"Language: ja\n" "Lang-Code: ja\n" "Country-Code: JP\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Poedit 2.0.1\n" +"X-Generator: Poedit 2.0.2\n" #: fdmprinter.def.json msgctxt "machine_settings label" msgid "Machine" -msgstr "Machine" +msgstr "プリンター" #: fdmprinter.def.json msgctxt "machine_settings description" msgid "Machine specific settings" -msgstr "マシーン固有設定" +msgstr "プリンター詳細設定" #: fdmprinter.def.json msgctxt "machine_name label" msgid "Machine Type" -msgstr "Machine Type" +msgstr "プリンタータイプ" #: fdmprinter.def.json msgctxt "machine_name description" msgid "The name of your 3D printer model." -msgstr "3Dプリンタのモデル" +msgstr "3Dプリンターの機種名" #: fdmprinter.def.json msgctxt "machine_show_variants label" msgid "Show machine variants" -msgstr "Show machine variants" +msgstr "プリンターのバリエーションを表示する" #: fdmprinter.def.json msgctxt "machine_show_variants description" msgid "Whether to show the different variants of this machine, which are described in separate json files." -msgstr "このマシーンの形式を表示するかどうかは、別のjsonファイルに記述されています。" +msgstr "このプリンターのバリエーションを表示するかどうかは、別のjsonファイルに記述されています。" #: fdmprinter.def.json msgctxt "machine_start_gcode label" msgid "Start GCode" -msgstr "Start GCode" +msgstr "GCodeを開始する" #: fdmprinter.def.json msgctxt "machine_start_gcode description" msgid "" "Gcode commands to be executed at the very start - separated by \n" "." -msgstr "開始時に実行されるGcodeのコマンドは −で区切られています。" +msgstr "" +"Gcodeのコマンドは −で始まり\n" +"で区切られます。" #: fdmprinter.def.json msgctxt "machine_end_gcode label" msgid "End GCode" -msgstr "End GCode" +msgstr "GCodeを終了する" #: fdmprinter.def.json msgctxt "machine_end_gcode description" @@ -73,13 +75,13 @@ msgid "" "Gcode commands to be executed at the very end - separated by \n" "." msgstr "" -"開始時に実行されるGcodeのコマンドは \n" -"で区切られています。" +"Gcodeのコマンドは −で始まり\n" +"で区切られます。" #: fdmprinter.def.json msgctxt "material_guid label" msgid "Material GUID" -msgstr "Material GUID" +msgstr "マテリアルGUID" #: fdmprinter.def.json msgctxt "material_guid description" @@ -89,7 +91,7 @@ msgstr "マテリアルのGUID。これは自動的に設定されます。" #: fdmprinter.def.json msgctxt "material_bed_temp_wait label" msgid "Wait for build plate heatup" -msgstr "Wait for build plate heatup" +msgstr "ビルドプレート加熱時の待機" #: fdmprinter.def.json msgctxt "material_bed_temp_wait description" @@ -99,7 +101,7 @@ msgstr "開始時にビルドプレートが温度に達するまで待つコマ #: fdmprinter.def.json msgctxt "material_print_temp_wait label" msgid "Wait for nozzle heatup" -msgstr "Wait for nozzle heatup" +msgstr "ノズル加熱時の待機" #: fdmprinter.def.json msgctxt "material_print_temp_wait description" @@ -109,27 +111,27 @@ msgstr "開始時にノズルの温度が達するまで待つかどうか。" #: fdmprinter.def.json msgctxt "material_print_temp_prepend label" msgid "Include material temperatures" -msgstr "Include material temperatures" +msgstr "ノズル温度設定の挿入" #: fdmprinter.def.json msgctxt "material_print_temp_prepend description" msgid "Whether to include nozzle temperature commands at the start of the gcode. When the start_gcode already contains nozzle temperature commands Cura frontend will automatically disable this setting." -msgstr "gcodeの開始時にノズル温度設定を含めるかどうか。 既に最初のgcodeにノズル温度設定が含まれている場合、Curaフロントエンドは自動的にこの設定を無効にします。" +msgstr "GCodeの開始時にノズル温度設定を含めるかどうか。 既に最初のGCodeにノズル温度設定が含まれている場合、Curaフロントエンドは自動的にこの設定を無効にします。" #: fdmprinter.def.json msgctxt "material_bed_temp_prepend label" msgid "Include build plate temperature" -msgstr "Include build plate temperature" +msgstr "ビルドプレート温度設定の挿入" #: fdmprinter.def.json msgctxt "material_bed_temp_prepend description" msgid "Whether to include build plate temperature commands at the start of the gcode. When the start_gcode already contains build plate temperature commands Cura frontend will automatically disable this setting." -msgstr "gcodeの開始時にビルドプレート温度設定を含めるかどうか。 既に最初のgcodeにビルドプレート温度設定が含まれている場合、Curaフロントエンドは自動的にこの設定を無効にします。" +msgstr "GCodeの開始時にビルドプレート温度設定を含めるかどうか。 既に最初のGCodeにビルドプレート温度設定が含まれている場合、Curaフロントエンドは自動的にこの設定を無効にします。" #: fdmprinter.def.json msgctxt "machine_width label" msgid "Machine width" -msgstr "Machine width" +msgstr "造形サイズ(X)" #: fdmprinter.def.json msgctxt "machine_width description" @@ -139,57 +141,57 @@ msgstr "造形可能領域の幅(X方向)。" #: fdmprinter.def.json msgctxt "machine_depth label" msgid "Machine depth" -msgstr "Machine depth" +msgstr "造形サイズ(Y)" #: fdmprinter.def.json msgctxt "machine_depth description" msgid "The depth (Y-direction) of the printable area." -msgstr "造形可能領域の幅(X方向)。" +msgstr "造形可能領域の幅(Y方向)。" #: fdmprinter.def.json msgctxt "machine_shape label" msgid "Build plate shape" -msgstr "Build plate shape" +msgstr "ビルドプレートの形" #: fdmprinter.def.json msgctxt "machine_shape description" msgid "The shape of the build plate without taking unprintable areas into account." -msgstr "造形不能領域を考慮しないビルドプレートの形状。" +msgstr "造形不可領域を考慮しないビルドプレートの形状。" #: fdmprinter.def.json msgctxt "machine_shape option rectangular" msgid "Rectangular" -msgstr "Rectangular" +msgstr "長方形" #: fdmprinter.def.json msgctxt "machine_shape option elliptic" msgid "Elliptic" -msgstr "Elliptic" +msgstr "楕円形" #: fdmprinter.def.json msgctxt "machine_height label" msgid "Machine height" -msgstr "Machine height" +msgstr "造形サイズ(Z)" #: fdmprinter.def.json msgctxt "machine_height description" msgid "The height (Z-direction) of the printable area." -msgstr "造形可能領域の幅(X方向)。" +msgstr "造形可能領域の幅(Z方向)。" #: fdmprinter.def.json msgctxt "machine_heated_bed label" msgid "Has heated build plate" -msgstr "Has heated build plate" +msgstr "ヒートベッドの有無" #: fdmprinter.def.json msgctxt "machine_heated_bed description" msgid "Whether the machine has a heated build plate present." -msgstr "マシーンに加熱式ビルドプレートが付属しているかどうか。" +msgstr "プリンターに加熱式ビルドプレートが付属しているかどうか。" #: fdmprinter.def.json msgctxt "machine_center_is_zero label" msgid "Is center origin" -msgstr "Is center origin" +msgstr "原点" #: fdmprinter.def.json msgctxt "machine_center_is_zero description" @@ -199,17 +201,17 @@ msgstr "プリンタのゼロポジションのX / Y座標が印刷可能領域 #: fdmprinter.def.json msgctxt "machine_extruder_count label" msgid "Number of Extruders" -msgstr "Number of Extruders" +msgstr "エクストルーダーの数" #: fdmprinter.def.json msgctxt "machine_extruder_count description" msgid "Number of extruder trains. An extruder train is the combination of a feeder, bowden tube, and nozzle." -msgstr "エクストルーダーの数。エクストルーダーの数は、フィーダー、ボーデンチューブ、およびノズルの組合せである。" +msgstr "エクストルーダーの数。エクストルーダーの単位は、フィーダー、ボーデンチューブ、およびノズルを組合せたもの。" #: fdmprinter.def.json msgctxt "machine_nozzle_tip_outer_diameter label" msgid "Outer nozzle diameter" -msgstr "Outer nozzle diameter" +msgstr "ノズル外径" #: fdmprinter.def.json msgctxt "machine_nozzle_tip_outer_diameter description" @@ -219,7 +221,7 @@ msgstr "ノズルの外径。" #: fdmprinter.def.json msgctxt "machine_nozzle_head_distance label" msgid "Nozzle length" -msgstr "Nozzle length" +msgstr "ノズルの長さ" #: fdmprinter.def.json msgctxt "machine_nozzle_head_distance description" @@ -229,17 +231,17 @@ msgstr "ノズル先端とプリントヘッドの最下部との高さの差。 #: fdmprinter.def.json msgctxt "machine_nozzle_expansion_angle label" msgid "Nozzle angle" -msgstr "Nozzle angle" +msgstr "ノズル角度" #: fdmprinter.def.json msgctxt "machine_nozzle_expansion_angle description" msgid "The angle between the horizontal plane and the conical part right above the tip of the nozzle." -msgstr "水平面とノズルの真上の円錐部分との間の角度。" +msgstr "水平面とノズル直上の円錐部分との間の角度。" #: fdmprinter.def.json msgctxt "machine_heat_zone_length label" msgid "Heat zone length" -msgstr "Heat zone length" +msgstr "加熱範囲" #: fdmprinter.def.json msgctxt "machine_heat_zone_length description" @@ -684,7 +686,7 @@ msgstr "Support Interface Line Width" #: fdmprinter.def.json msgctxt "support_interface_line_width description" msgid "Width of a single line of support roof or floor." -msgstr "" +msgstr "サポートのルーフ、フロアのライン幅" #: fdmprinter.def.json msgctxt "support_roof_line_width label" @@ -694,7 +696,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_roof_line_width description" msgid "Width of a single support roof line." -msgstr "" +msgstr "サポートルーフのライン幅。" #: fdmprinter.def.json msgctxt "support_bottom_line_width label" @@ -704,7 +706,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_bottom_line_width description" msgid "Width of a single support floor line." -msgstr "" +msgstr "サポートのフロアのラインの幅。" #: fdmprinter.def.json msgctxt "prime_tower_line_width label" @@ -1001,7 +1003,7 @@ msgstr "Z Seam Y" #: fdmprinter.def.json msgctxt "z_seam_y description" msgid "The Y coordinate of the position near where to start printing each part in a layer." -msgstr "The Y coordinate of the position near where to start printing each part in a layer." +msgstr "レイヤー内の各パーツの印刷を開始する場所の近くのY座標。" #: fdmprinter.def.json msgctxt "skin_no_small_gaps_heuristic label" @@ -1116,7 +1118,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "spaghetti_infill_enabled description" msgid "Print the infill every so often, so that the filament will curl up chaotically inside the object. This reduces print time, but the behaviour is rather unpredictable." -msgstr "" +msgstr "時々インフィルを印刷してください、オブジェクト内でフィラメントがぐちゃぐちゃに巻き上がります。印刷時間は短縮できるが、フィラメントの動きは予想不可能となります。" #: fdmprinter.def.json msgctxt "spaghetti_max_infill_angle label" @@ -1126,7 +1128,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "spaghetti_max_infill_angle description" msgid "The maximum angle w.r.t. the Z axis of the inside of the print for areas which are to be filled with spaghetti infill afterwards. Lowering this value causes more angled parts in your model to be filled on each layer." -msgstr "" +msgstr "最大角度 w.r.t.-印刷範囲内がスパゲッティ・インフィルで埋まるZ軸。この値を下げることでモデルの斜め部分にインフィルが各レイヤーに付着します。" #: fdmprinter.def.json msgctxt "spaghetti_max_height label" @@ -1136,7 +1138,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "spaghetti_max_height description" msgid "The maximum height of inside space which can be combined and filled from the top." -msgstr "" +msgstr "内部空間の上から結合して埋め込むことができる最大の高さ" #: fdmprinter.def.json msgctxt "spaghetti_inset label" @@ -1146,7 +1148,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "spaghetti_inset description" msgid "The offset from the walls from where the spaghetti infill will be printed." -msgstr "" +msgstr "スパゲッティ・インフィルがプリントされる壁からのオフセット。" #: fdmprinter.def.json msgctxt "spaghetti_flow label" @@ -1156,7 +1158,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "spaghetti_flow description" msgid "Adjusts the density of the spaghetti infill. Note that the Infill Density only controls the line spacing of the filling pattern, not the amount of extrusion for spaghetti infill." -msgstr "" +msgstr "スパゲッティ・インフィルの密度を調整します。インフィルの密度は、行間枠のパターンを決めるだけで、スパゲッティ・インフィルの押出量は制御しないことにご注意ください。" #: fdmprinter.def.json msgctxt "sub_div_rad_add label" @@ -1288,7 +1290,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "expand_upper_skins description" msgid "Expand the top skin areas (areas with air above) so that they support infill above." -msgstr "" +msgstr "インフィルをトップの面部分 (空気に触れる領域) を広げることで、上のインフィルを支えます。" #: fdmprinter.def.json msgctxt "expand_lower_skins label" @@ -1298,7 +1300,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "expand_lower_skins description" msgid "Expand the bottom skin areas (areas with air below) so that they are anchored by the infill layers above and below." -msgstr "" +msgstr "下面(下に空気がある領域)を拡大して、上と下のインフィルによって支えるようにします。" #: fdmprinter.def.json msgctxt "expand_skins_expand_distance label" @@ -1711,7 +1713,7 @@ msgstr "Support Interface Speed" #: fdmprinter.def.json msgctxt "speed_support_interface description" msgid "The speed at which the roofs and floors of support are printed. Printing them at lower speeds can improve overhang quality." -msgstr "" +msgstr "ルーフとフロアのサポート材をプリントする速度。低速でプリントするとオーバーハングの品質を向上できます。" #: fdmprinter.def.json msgctxt "speed_support_roof label" @@ -1721,7 +1723,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_support_roof description" msgid "The speed at which the roofs of support are printed. Printing them at lower speeds can improve overhang quality." -msgstr "" +msgstr "ルーフとフロアのサポート材をプリントする速度 これらを低速でプリントするとオーバーハングの品質を向上できます" #: fdmprinter.def.json msgctxt "speed_support_bottom label" @@ -1731,7 +1733,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_support_bottom description" msgid "The speed at which the floor of support is printed. Printing it at lower speed can improve adhesion of support on top of your model." -msgstr "" +msgstr "フロアのサポートがプリントされる速度。低速で印刷することで、サポートの接着性を向上させることができます。" #: fdmprinter.def.json msgctxt "speed_prime_tower label" @@ -1931,7 +1933,7 @@ msgstr "Support Interface Acceleration" #: fdmprinter.def.json msgctxt "acceleration_support_interface description" msgid "The acceleration with which the roofs and floors of support are printed. Printing them at lower acceleration can improve overhang quality." -msgstr "" +msgstr "サポートの上面と下面が印刷される加速度。低加速度で印刷するとオーバーハングの品質が向上します" #: fdmprinter.def.json msgctxt "acceleration_support_roof label" @@ -1941,7 +1943,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_support_roof description" msgid "The acceleration with which the roofs of support are printed. Printing them at lower acceleration can improve overhang quality." -msgstr "" +msgstr "サポートの上面がプリントされる加速度、低加速度で印刷するとオーバーハングの品質が向上します。" #: fdmprinter.def.json msgctxt "acceleration_support_bottom label" @@ -1951,7 +1953,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_support_bottom description" msgid "The acceleration with which the floors of support are printed. Printing them at lower acceleration can improve adhesion of support on top of your model." -msgstr "" +msgstr "サポートのフロアが印刷される加速度。より低い加速度で印刷すると、モデル上のサポートの接着性を向上させることができます。" #: fdmprinter.def.json msgctxt "acceleration_prime_tower label" @@ -2111,7 +2113,7 @@ msgstr "Support Interface Jerk" #: fdmprinter.def.json msgctxt "jerk_support_interface description" msgid "The maximum instantaneous velocity change with which the roofs and floors of support are printed." -msgstr "" +msgstr "どのルーフとフロアのサポート部分を印刷するかによって最大瞬間速度は変化します。" #: fdmprinter.def.json msgctxt "jerk_support_roof label" @@ -2121,7 +2123,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_support_roof description" msgid "The maximum instantaneous velocity change with which the roofs of support are printed." -msgstr "" +msgstr "どのサポートのルーフ部分を印刷するかによって最大瞬間速度は変化します。" #: fdmprinter.def.json msgctxt "jerk_support_bottom label" @@ -2131,7 +2133,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_support_bottom description" msgid "The maximum instantaneous velocity change with which the floors of support are printed." -msgstr "" +msgstr "どのサポートのフロア部分を印刷するかによって最大瞬間速度は変化します。" #: fdmprinter.def.json msgctxt "jerk_prime_tower label" @@ -2469,7 +2471,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_enable description" msgid "Generate structures to support parts of the model which have overhangs. Without these structures, such parts would collapse during printing." -msgstr "" +msgstr "オーバーハングするモデルのサポートパーツの構造を形成します。これらのサポートがなければ、印刷は失敗します。" #: fdmprinter.def.json msgctxt "support_extruder_nr label" @@ -2509,7 +2511,7 @@ msgstr "Support Interface Extruder" #: fdmprinter.def.json msgctxt "support_interface_extruder_nr description" msgid "The extruder train to use for printing the roofs and floors of the support. This is used in multi-extrusion." -msgstr "" +msgstr "サポートのルーフおよび底面を印刷するために使用するエクストルーダーの列。デュアルノズル時に使用されます。" #: fdmprinter.def.json msgctxt "support_roof_extruder_nr label" @@ -2519,7 +2521,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_roof_extruder_nr description" msgid "The extruder train to use for printing the roofs of the support. This is used in multi-extrusion." -msgstr "" +msgstr "サポートのルーフ面をプリントする際のエクストルーダー列。デュアルノズル時に使用します。" #: fdmprinter.def.json msgctxt "support_bottom_extruder_nr label" @@ -2529,7 +2531,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_bottom_extruder_nr description" msgid "The extruder train to use for printing the floors of the support. This is used in multi-extrusion." -msgstr "" +msgstr "サポートのフロア面をプリントする際に使用するエクストルーダーの列。デュアルノズル時に使用します。" #: fdmprinter.def.json msgctxt "support_type label" @@ -2709,7 +2711,7 @@ msgstr "Support Stair Step Height" #: fdmprinter.def.json msgctxt "support_bottom_stair_step_height description" msgid "The height of the steps of the stair-like bottom of support resting on the model. A low value makes the support harder to remove, but too high values can lead to unstable support structures. Set to zero to turn off the stair-like behaviour." -msgstr "" +msgstr "モデルにのっている階段状のサポートの底のステップの高さ。値を小さくするとサポートを除去するのが困難になりますが、値が大きすぎるとサポートの構造が不安定になる可能性があります。ゼロに設定すると、階段状の動作をオフにします。" #: fdmprinter.def.json msgctxt "support_bottom_stair_step_width label" @@ -2719,7 +2721,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_bottom_stair_step_width description" msgid "The maximum width of the steps of the stair-like bottom of support resting on the model. A low value makes the support harder to remove, but too high values can lead to unstable support structures." -msgstr "" +msgstr "モデルにのっている階段のような下部のサポートのステップの最大幅。低い値にするサポートの除去が困難になり、高すぎる値は不安定なサポート構造につながります。" #: fdmprinter.def.json msgctxt "support_join_distance label" @@ -2759,7 +2761,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_roof_enable description" msgid "Generate a dense slab of material between the top of support and the model. This will create a skin between the model and support." -msgstr "" +msgstr "サポートの上部とモデルの間に高密度の厚板を形成します。モデルとサポート材の間にスキンが作成されます。" #: fdmprinter.def.json msgctxt "support_bottom_enable label" @@ -2769,7 +2771,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_bottom_enable description" msgid "Generate a dense slab of material between the bottom of the support and the model. This will create a skin between the model and support." -msgstr "" +msgstr "サポートの上部とモデルの間に高密度の厚板を形成します。モデルとサポート材の間にスキンが作成されます。" #: fdmprinter.def.json msgctxt "support_interface_height label" @@ -2789,7 +2791,7 @@ msgstr "Support Roof Thickness" #: fdmprinter.def.json msgctxt "support_roof_height description" msgid "The thickness of the support roofs. This controls the amount of dense layers at the top of the support on which the model rests." -msgstr "サポートの屋根の厚さ。これは、モデルの下につくサポートの上部にある密度の量を制御します。" +msgstr "サポートのルーフの厚さ。これは、モデルの下につくサポートの上部にある密度の量を制御します。" #: fdmprinter.def.json msgctxt "support_bottom_height label" @@ -2799,7 +2801,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_bottom_height description" msgid "The thickness of the support floors. This controls the number of dense layers that are printed on top of places of a model on which support rests." -msgstr "" +msgstr "サポート材の底部の厚さ。これは、サポートが置かれるモデル上の積層密度を制御します。" #: fdmprinter.def.json msgctxt "support_interface_skip_height label" @@ -2809,7 +2811,7 @@ msgstr "Support Interface Resolution" #: fdmprinter.def.json msgctxt "support_interface_skip_height description" msgid "When checking where there's model above and below the support, take steps of the given height. Lower values will slice slower, while higher values may cause normal support to be printed in some places where there should have been support interface." -msgstr "" +msgstr "サポートの上下にモデルがあるかどうか確認するには、特定のサポートの高さを見ます。低い値はスライスに時間がかかり、高い値にするとサポートのインターフェイスがある場所に通常のサポートを印刷する可能性があります。" #: fdmprinter.def.json msgctxt "support_interface_density label" @@ -2819,7 +2821,7 @@ msgstr "Support Interface Density" #: fdmprinter.def.json msgctxt "support_interface_density description" msgid "Adjusts the density of the roofs and floors of the support structure. A higher value results in better overhangs, but the supports are harder to remove." -msgstr "" +msgstr "サポート材のルーフとフロアの密度を調整します 大きな値ではオーバーハングでの成功率があがりますが、サポート材が除去しにくくなります" #: fdmprinter.def.json msgctxt "support_roof_density label" @@ -2829,7 +2831,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_roof_density description" msgid "The density of the roofs of the support structure. A higher value results in better overhangs, but the supports are harder to remove." -msgstr "" +msgstr "サポート材のルーフの部分の密度を調整します 大きな値ではオーバーハングの成功率があがりますが、サポート材が除去しにくくなります。" #: fdmprinter.def.json msgctxt "support_roof_line_distance label" @@ -2839,7 +2841,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_roof_line_distance description" msgid "Distance between the printed support roof lines. This setting is calculated by the Support Roof Density, but can be adjusted separately." -msgstr "" +msgstr "印刷されたサポートルーフ線間の距離。この設定は、サポート密度によって計算されますが、個別に調整することもできます。" #: fdmprinter.def.json msgctxt "support_bottom_density label" @@ -2849,7 +2851,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_bottom_density description" msgid "The density of the floors of the support structure. A higher value results in better adhesion of the support on top of the model." -msgstr "" +msgstr "サポート構造のフロアの密度です。高い値は、サポートのよりよい接着を促します。" #: fdmprinter.def.json msgctxt "support_bottom_line_distance label" @@ -2859,7 +2861,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_bottom_line_distance description" msgid "Distance between the printed support floor lines. This setting is calculated by the Support Floor Density, but can be adjusted separately." -msgstr "" +msgstr "印刷されたサポートのフロアのライン間の距離。この設定は、密度によって計算されますが、個別に調整することもできます。" #: fdmprinter.def.json msgctxt "support_interface_pattern label" @@ -2909,7 +2911,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_roof_pattern description" msgid "The pattern with which the roofs of the support are printed." -msgstr "" +msgstr "サポートのルーフが印刷されるパターン" #: fdmprinter.def.json msgctxt "support_roof_pattern option lines" @@ -2949,7 +2951,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_bottom_pattern description" msgid "The pattern with which the floors of the support are printed." -msgstr "" +msgstr "サポートのフロアが印刷されるパターン。" #: fdmprinter.def.json msgctxt "support_bottom_pattern option lines" @@ -2989,7 +2991,7 @@ msgstr "Use Towers" #: fdmprinter.def.json msgctxt "support_use_towers description" msgid "Use specialized towers to support tiny overhang areas. These towers have a larger diameter than the region they support. Near the overhang the towers' diameter decreases, forming a roof." -msgstr "特殊なタワーを使用して、小さなオーバーハングしているエリアをサポートします。これらの塔は、サポートできる領域より大きな直径を支えれます。オーバーハング付近では塔の直径が減少し、屋根を形成します。" +msgstr "特殊なタワーを使用して、小さなオーバーハングしているエリアをサポートします。これらの塔は、サポートできる領域より大きな直径を支えれます。オーバーハング付近では塔の直径が減少し、ルーフを形成します。" #: fdmprinter.def.json msgctxt "support_tower_diameter label" @@ -3039,7 +3041,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "prime_blob_enable description" msgid "Whether to prime the filament with a blob before printing. Turning this setting on will ensure that the extruder will have material ready at the nozzle before printing. Printing Brim or Skirt can act like priming too, in which case turning this setting off saves some time." -msgstr "" +msgstr "印刷する前にフィラメントの小さな塊を作るかどうか。この設定をオンにすると、エクストルーダーがノズルにおいて印刷予定のマテリアルの下準備をします。印刷後ブリムまたはスカートも、上記と同じような意味を持ちます。この設定をオフにすると時間の節約にはなります。" #: fdmprinter.def.json msgctxt "extruder_prime_pos_x label" @@ -3721,7 +3723,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "cutting_mesh description" msgid "Limit the volume of this mesh to within other meshes. You can use this to make certain areas of one mesh print with different settings and with a whole different extruder." -msgstr "" +msgstr "このメッシュの大きさをを他のメッシュ内に制限します。この設定を使用することで、1つの特定のメッシュ領域の設定を、、全く別のエクストルーダーで作成することができます。" #: fdmprinter.def.json msgctxt "mold_enabled label" @@ -3731,7 +3733,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "mold_enabled description" msgid "Print models as a mold, which can be cast in order to get a model which resembles the models on the build plate." -msgstr "" +msgstr "型を取るため印刷し、ビルドプレート上の同じようなモデルを得るためにキャスト用の印刷をします。" #: fdmprinter.def.json msgctxt "mold_width label" @@ -3741,7 +3743,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "mold_width description" msgid "The minimal distance between the ouside of the mold and the outside of the model." -msgstr "" +msgstr "型用とモデルの外側の最短距離。" #: fdmprinter.def.json msgctxt "mold_roof_height label" @@ -3751,7 +3753,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "mold_roof_height description" msgid "The height above horizontal parts in your model which to print mold." -msgstr "" +msgstr "型を印刷するためのモデルの水平部分上の高さ。" #: fdmprinter.def.json msgctxt "mold_angle label" @@ -3761,7 +3763,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "mold_angle description" msgid "The angle of overhang of the outer walls created for the mold. 0° will make the outer shell of the mold vertical, while 90° will make the outside of the model follow the contour of the model." -msgstr "" +msgstr "型の外側の壁のオーバーハングの角度です。0度にすると垂直の外殻をつくります。 90度は輪郭に従いモデルの外側の外殻をつくります。" #: fdmprinter.def.json msgctxt "support_mesh label" @@ -3781,7 +3783,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_mesh_drop_down description" msgid "Make support everywhere below the support mesh, so that there's no overhang in the support mesh." -msgstr "" +msgstr "サポートメッシュの下のサポート材を全箇所に作ります、これはサポートメッシュ下にてオーバーハングしないようにするためです。" #: fdmprinter.def.json msgctxt "anti_overhang_mesh label" @@ -3826,7 +3828,7 @@ msgstr "Spiralize Outer Contour" #: fdmprinter.def.json msgctxt "magic_spiralize description" msgid "Spiralize smooths out the Z move of the outer edge. This will create a steady Z increase over the whole print. This feature turns a solid model into a single walled print with a solid bottom. This feature should only be enabled when each layer only contains a single part." -msgstr "" +msgstr "Z軸の外側のエッジの動きを滑らかにします。全体の印刷に安定したZの動きを促し、この機能によりソリッドのモデルを固定した底辺と単一のウォールの印刷にします。この機能は各レイヤーが単一の部品を含んでいる場合のみに有効です。" #: fdmprinter.def.json msgctxt "smooth_spiralized_contours label" @@ -3836,7 +3838,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "smooth_spiralized_contours description" msgid "Smooth the spiralized contours to reduce the visibility of the Z seam (the Z-seam should be barely visible on the print but will still be visible in the layer view). Note that smoothing will tend to blur fine surface details." -msgstr "" +msgstr "らせん状の輪郭を滑らかにしてZシームの視認性を低下させます(Zシームは印刷物上でほとんどみえませんが、レイヤービューでは確認できます。)スムージングは​​細かいサーフェスの詳細をぼかす傾向があることに注意してください。" #: fdmprinter.def.json msgctxt "experimental label" @@ -4086,7 +4088,7 @@ msgstr "WP Roof Inset Distance" #: fdmprinter.def.json msgctxt "wireframe_roof_inset description" msgid "The distance covered when making a connection from a roof outline inward. Only applies to Wire Printing." -msgstr "屋根から内側に輪郭を描くときの距離。ワイヤ印刷のみに適用されます。" +msgstr "ルーフから内側に輪郭を描くときの距離。ワイヤ印刷のみに適用されます。" #: fdmprinter.def.json msgctxt "wireframe_printspeed label" @@ -4283,7 +4285,7 @@ msgstr "WP Roof Fall Down" #: fdmprinter.def.json msgctxt "wireframe_roof_fall_down description" msgid "The distance which horizontal roof lines printed 'in thin air' fall down when being printed. This distance is compensated for. Only applies to Wire Printing." -msgstr "水平屋根が ”薄い空気”に印刷され落ちる距離。この距離は補正されています。ワイヤ印刷に適用されます。" +msgstr "水平ルーフが ”薄い空気”に印刷され落ちる距離。この距離は補正されています。ワイヤ印刷に適用されます。" #: fdmprinter.def.json msgctxt "wireframe_roof_drag_along label" @@ -4293,7 +4295,7 @@ msgstr "WP Roof Drag Along" #: fdmprinter.def.json msgctxt "wireframe_roof_drag_along description" msgid "The distance of the end piece of an inward line which gets dragged along when going back to the outer outline of the roof. This distance is compensated for. Only applies to Wire Printing." -msgstr "屋根の外側の輪郭に戻る際に引きずる内側ラインの終わり部分の距離。この距離は補正されていてワイヤ印刷のみ適用されます。" +msgstr "ルーフの外側の輪郭に戻る際に引きずる内側ラインの終わり部分の距離。この距離は補正されていてワイヤ印刷のみ適用されます。" #: fdmprinter.def.json msgctxt "wireframe_roof_outer_delay label" diff --git a/resources/i18n/ko/fdmextruder.def.json.po b/resources/i18n/ko/fdmextruder.def.json.po index 6b3ff3996e..4286843f2b 100644 --- a/resources/i18n/ko/fdmextruder.def.json.po +++ b/resources/i18n/ko/fdmextruder.def.json.po @@ -8,183 +8,184 @@ msgstr "" "Project-Id-Version: Cura 2.6\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-05-30 15:32+0000\n" -"PO-Revision-Date: 2017-03-27 17:27+0000\n" +"PO-Revision-Date: 2017-06-19 17:36+0900\n" "Last-Translator: None\n" "Language-Team: None\n" -"Language: Korean\n" +"Language: ko\n" "Lang-Code: ko\n" "Country-Code: KR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.0.1\n" #: fdmextruder.def.json msgctxt "machine_settings label" msgid "Machine" -msgstr "" +msgstr "장비 " #: fdmextruder.def.json msgctxt "machine_settings description" msgid "Machine specific settings" -msgstr "" +msgstr "장비 별 설정 " #: fdmextruder.def.json msgctxt "extruder_nr label" msgid "Extruder" -msgstr "" +msgstr "압출기 " #: fdmextruder.def.json msgctxt "extruder_nr description" msgid "The extruder train used for printing. This is used in multi-extrusion." -msgstr "" +msgstr "인쇄에 사용되는 압출기 트레인. 이것은 다중 압출에 사용됩니다. " #: fdmextruder.def.json msgctxt "machine_nozzle_size label" msgid "Nozzle Diameter" -msgstr "" +msgstr "노즐 지름" #: fdmextruder.def.json msgctxt "machine_nozzle_size description" msgid "The inner diameter of the nozzle. Change this setting when using a non-standard nozzle size." -msgstr "" +msgstr "노즐의 내경. 비표준 노즐 크기를 사용할 때, 본 설정을 변경하십시오. " #: fdmextruder.def.json msgctxt "machine_nozzle_offset_x label" msgid "Nozzle X Offset" -msgstr "" +msgstr "노즐 X 오프셋 " #: fdmextruder.def.json msgctxt "machine_nozzle_offset_x description" msgid "The x-coordinate of the offset of the nozzle." -msgstr "" +msgstr "노즐 오프셋의 x 좌표입니다. " #: fdmextruder.def.json msgctxt "machine_nozzle_offset_y label" msgid "Nozzle Y Offset" -msgstr "" +msgstr "노즐 Y 오프셋" #: fdmextruder.def.json msgctxt "machine_nozzle_offset_y description" msgid "The y-coordinate of the offset of the nozzle." -msgstr "" +msgstr "노즐 오프셋의 y 좌표입니다. " #: fdmextruder.def.json msgctxt "machine_extruder_start_code label" msgid "Extruder Start G-Code" -msgstr "" +msgstr "압출기 시작 G 코드" #: fdmextruder.def.json msgctxt "machine_extruder_start_code description" msgid "Start g-code to execute whenever turning the extruder on." -msgstr "" +msgstr "압출기를 켤 때마다 실행할 g 코드를 시작하십시오. " #: fdmextruder.def.json msgctxt "machine_extruder_start_pos_abs label" msgid "Extruder Start Position Absolute" -msgstr "" +msgstr "압출기 시작 위치의 절대 값 " #: fdmextruder.def.json msgctxt "machine_extruder_start_pos_abs description" msgid "Make the extruder starting position absolute rather than relative to the last-known location of the head." -msgstr "" +msgstr "압출기 시작 위치를 헤드의 마지막으로 알려진 위치에 상대적이 아닌 절대 위치로 만듭니다." #: fdmextruder.def.json msgctxt "machine_extruder_start_pos_x label" msgid "Extruder Start Position X" -msgstr "" +msgstr "압출기 시작 X의 위치 " #: fdmextruder.def.json msgctxt "machine_extruder_start_pos_x description" msgid "The x-coordinate of the starting position when turning the extruder on." -msgstr "" +msgstr "압출기를 켤 때 시작 위치의 x 좌표. " #: fdmextruder.def.json msgctxt "machine_extruder_start_pos_y label" msgid "Extruder Start Position Y" -msgstr "" +msgstr "압출기 시작 위치 Y " #: fdmextruder.def.json msgctxt "machine_extruder_start_pos_y description" msgid "The y-coordinate of the starting position when turning the extruder on." -msgstr "" +msgstr "압출기를 켤 때 시작 위치의 y 좌표입니다. " #: fdmextruder.def.json msgctxt "machine_extruder_end_code label" msgid "Extruder End G-Code" -msgstr "" +msgstr "압출기 최종 G 코드 " #: fdmextruder.def.json msgctxt "machine_extruder_end_code description" msgid "End g-code to execute whenever turning the extruder off." -msgstr "" +msgstr "압출기를 끌 때마다 실행할 g 코드를 종료하십시오. " #: fdmextruder.def.json msgctxt "machine_extruder_end_pos_abs label" msgid "Extruder End Position Absolute" -msgstr "" +msgstr "압출기 끝 절대 위치 " #: fdmextruder.def.json msgctxt "machine_extruder_end_pos_abs description" msgid "Make the extruder ending position absolute rather than relative to the last-known location of the head." -msgstr "" +msgstr "압출 성형기가 헤드의 마지막으로 알려진 위치에 상대적이 아닌 절대 위치로 끝나도록하십시오. " #: fdmextruder.def.json msgctxt "machine_extruder_end_pos_x label" msgid "Extruder End Position X" -msgstr "" +msgstr "압출기 끝 X 위치 " #: fdmextruder.def.json msgctxt "machine_extruder_end_pos_x description" msgid "The x-coordinate of the ending position when turning the extruder off." -msgstr "" +msgstr "압출기를 끌 때 끝 위치의 x 좌표." #: fdmextruder.def.json msgctxt "machine_extruder_end_pos_y label" msgid "Extruder End Position Y" -msgstr "" +msgstr "압출기 끝 Y 위치 " #: fdmextruder.def.json msgctxt "machine_extruder_end_pos_y description" msgid "The y-coordinate of the ending position when turning the extruder off." -msgstr "" +msgstr "압출기를 끌 때 종료 위치의 y 좌표입니다. " #: fdmextruder.def.json msgctxt "extruder_prime_pos_z label" msgid "Extruder Prime Z Position" -msgstr "" +msgstr "압출기 프라임 Z 위치 " #: fdmextruder.def.json msgctxt "extruder_prime_pos_z description" msgid "The Z coordinate of the position where the nozzle primes at the start of printing." -msgstr "" +msgstr "인쇄가 시작될 때 노즐이 끝나는 위치의 Z 좌표입니다. " #: fdmextruder.def.json msgctxt "platform_adhesion label" msgid "Build Plate Adhesion" -msgstr "" +msgstr "플레이트 접착력 강화 " #: fdmextruder.def.json msgctxt "platform_adhesion description" msgid "Adhesion" -msgstr "" +msgstr "부착 " #: fdmextruder.def.json msgctxt "extruder_prime_pos_x label" msgid "Extruder Prime X Position" -msgstr "" +msgstr "압출기 프라임 X 위치 " #: fdmextruder.def.json msgctxt "extruder_prime_pos_x description" msgid "The X coordinate of the position where the nozzle primes at the start of printing." -msgstr "" +msgstr "인쇄가 시작될 때 노즐이 끝내는 위치의 X 좌표입니다. " #: fdmextruder.def.json msgctxt "extruder_prime_pos_y label" msgid "Extruder Prime Y Position" -msgstr "" +msgstr "압출기 프라임 Y 위치 " #: fdmextruder.def.json msgctxt "extruder_prime_pos_y description" msgid "The Y coordinate of the position where the nozzle primes at the start of printing." -msgstr "" +msgstr "인쇄가 시작될 때 노즐이 끝내는 위치의 Y 좌표입니다. " diff --git a/resources/i18n/ko/fdmprinter.def.json.po b/resources/i18n/ko/fdmprinter.def.json.po index 20286de71c..d430226aa4 100644 --- a/resources/i18n/ko/fdmprinter.def.json.po +++ b/resources/i18n/ko/fdmprinter.def.json.po @@ -8,14 +8,15 @@ msgstr "" "Project-Id-Version: Cura 2.6\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2017-05-30 15:32+0000\n" -"PO-Revision-Date: 2017-03-27 17:27+0000\n" +"PO-Revision-Date: 2017-06-23 16:16+0900\n" "Last-Translator: None\n" "Language-Team: None\n" -"Language: Korean\n" +"Language: ko\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.0.2\n" #: fdmprinter.def.json msgctxt "machine_settings label" @@ -25,7 +26,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_settings description" msgid "Machine specific settings" -msgstr "" +msgstr "기계 별 설정 " #: fdmprinter.def.json msgctxt "machine_name label" @@ -35,7 +36,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_name description" msgid "The name of your 3D printer model." -msgstr "" +msgstr "3D 프린터 모델의 이름입니다. " #: fdmprinter.def.json msgctxt "machine_show_variants label" @@ -45,7 +46,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_show_variants description" msgid "Whether to show the different variants of this machine, which are described in separate json files." -msgstr "" +msgstr "별도의 json 파일에 설명 된이 기계의 다양한 변형을 표시할지 여부 " #: fdmprinter.def.json msgctxt "machine_start_gcode label" @@ -57,7 +58,7 @@ msgctxt "machine_start_gcode description" msgid "" "Gcode commands to be executed at the very start - separated by \n" "." -msgstr "" +msgstr "G 시작과 동시에 실행될 코드 명령어 " #: fdmprinter.def.json msgctxt "machine_end_gcode label" @@ -69,7 +70,7 @@ msgctxt "machine_end_gcode description" msgid "" "Gcode commands to be executed at the very end - separated by \n" "." -msgstr "" +msgstr "G 맨 마지막에 실행될 코드 명령 " #: fdmprinter.def.json msgctxt "material_guid label" @@ -79,7 +80,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "material_guid description" msgid "GUID of the material. This is set automatically. " -msgstr "" +msgstr "재료의 GUID. 자동으로 설정됩니다. " #: fdmprinter.def.json msgctxt "material_bed_temp_wait label" @@ -89,7 +90,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "material_bed_temp_wait description" msgid "Whether to insert a command to wait until the build plate temperature is reached at the start." -msgstr "" +msgstr "시작 시, 빌드 플레이트 온도에 도달 할 때까지 대기하라는 명령을 삽입할지 여부 " #: fdmprinter.def.json msgctxt "material_print_temp_wait label" @@ -99,7 +100,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "material_print_temp_wait description" msgid "Whether to wait until the nozzle temperature is reached at the start." -msgstr "" +msgstr "시작 시, 노즐 온도에 도달 할 때까지 대기할지 여부 " #: fdmprinter.def.json msgctxt "material_print_temp_prepend label" @@ -109,7 +110,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "material_print_temp_prepend description" msgid "Whether to include nozzle temperature commands at the start of the gcode. When the start_gcode already contains nozzle temperature commands Cura frontend will automatically disable this setting." -msgstr "" +msgstr "gcode의 시작 부분에 노즐 온도 명령을 포함할지 여부. start_gcode에 이미 노즐 온도 명령이 포함되어있을 때 Cura 프론트 엔드는이 설정을 자동으로 비활성화합니다. " #: fdmprinter.def.json msgctxt "material_bed_temp_prepend label" @@ -119,7 +120,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "material_bed_temp_prepend description" msgid "Whether to include build plate temperature commands at the start of the gcode. When the start_gcode already contains build plate temperature commands Cura frontend will automatically disable this setting." -msgstr "" +msgstr "gcode가 시작될 때 빌드 플레이트 온도 명령을 포함할지 여부. start_gcode에 빌드 플레이트 온도 명령이 이미 있으면 Cura 프론트는이 설정을 자동으로 비활성화합니다. " #: fdmprinter.def.json msgctxt "machine_width label" @@ -129,7 +130,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_width description" msgid "The width (X-direction) of the printable area." -msgstr "" +msgstr "인쇄 가능 영역의 폭 (X 방향) " #: fdmprinter.def.json msgctxt "machine_depth label" @@ -139,7 +140,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_depth description" msgid "The depth (Y-direction) of the printable area." -msgstr "" +msgstr "인쇄 가능 영역의 깊이 (Y 방향) " #: fdmprinter.def.json msgctxt "machine_shape label" @@ -149,7 +150,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_shape description" msgid "The shape of the build plate without taking unprintable areas into account." -msgstr "" +msgstr "인쇄 할 수없는 영역을 고려하지 않고 빌드 플레이트의 모양 " #: fdmprinter.def.json msgctxt "machine_shape option rectangular" @@ -169,7 +170,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_height description" msgid "The height (Z-direction) of the printable area." -msgstr "" +msgstr "인쇄 가능 영역의 높이 (Z 방향)입니다. " #: fdmprinter.def.json msgctxt "machine_heated_bed label" @@ -179,7 +180,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_heated_bed description" msgid "Whether the machine has a heated build plate present." -msgstr "" +msgstr "기계에 가열 된 빌드 플레이트가 있는지 여부 " #: fdmprinter.def.json msgctxt "machine_center_is_zero label" @@ -189,7 +190,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_center_is_zero description" msgid "Whether the X/Y coordinates of the zero position of the printer is at the center of the printable area." -msgstr "" +msgstr "프린터의 \"0\" 위치의 X / Y 좌표가 인쇄 가능 영역의 중앙에 있는지 여부 " #: fdmprinter.def.json msgctxt "machine_extruder_count label" @@ -199,7 +200,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_extruder_count description" msgid "Number of extruder trains. An extruder train is the combination of a feeder, bowden tube, and nozzle." -msgstr "" +msgstr "압출기 열차의 수. 압출기 트레인은 피더, 보우 덴 튜브 및 노즐의 조합입니다. " #: fdmprinter.def.json msgctxt "machine_nozzle_tip_outer_diameter label" @@ -209,7 +210,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_nozzle_tip_outer_diameter description" msgid "The outer diameter of the tip of the nozzle." -msgstr "" +msgstr "노즐 끝의 외경 " #: fdmprinter.def.json msgctxt "machine_nozzle_head_distance label" @@ -219,7 +220,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_nozzle_head_distance description" msgid "The height difference between the tip of the nozzle and the lowest part of the print head." -msgstr "" +msgstr "노즐의 끝과 프린트 헤드의 가장 낮은 부분 사이의 높이 차이입니다. " #: fdmprinter.def.json msgctxt "machine_nozzle_expansion_angle label" @@ -229,7 +230,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_nozzle_expansion_angle description" msgid "The angle between the horizontal plane and the conical part right above the tip of the nozzle." -msgstr "" +msgstr "노즐 끝 바로 위의 수평면과 원뿔 부분 사이의 각도입니다. " #: fdmprinter.def.json msgctxt "machine_heat_zone_length label" @@ -239,7 +240,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_heat_zone_length description" msgid "The distance from the tip of the nozzle in which heat from the nozzle is transferred to the filament." -msgstr "" +msgstr "노즐의 열이 필라멘트로 전달되는 노즐의 끝에서부터의 거리 " #: fdmprinter.def.json msgctxt "machine_filament_park_distance label" @@ -249,7 +250,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_filament_park_distance description" msgid "The distance from the tip of the nozzle where to park the filament when an extruder is no longer used." -msgstr "" +msgstr "압출기가 더 이상 사용되지 않을 때 필라멘트를 파킹 할 노즐의 끝에서부터의 거리 " #: fdmprinter.def.json msgctxt "machine_nozzle_temp_enabled label" @@ -259,7 +260,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_nozzle_temp_enabled description" msgid "Whether to control temperature from Cura. Turn this off to control nozzle temperature from outside of Cura." -msgstr "" +msgstr "Cura에서 온도를 제어할지 여부. Cura 외부에서 노즐 온도를 제어하려면이 기능을 끄십시오 " #: fdmprinter.def.json msgctxt "machine_nozzle_heat_up_speed label" @@ -269,7 +270,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_nozzle_heat_up_speed description" msgid "The speed (°C/s) by which the nozzle heats up averaged over the window of normal printing temperatures and the standby temperature." -msgstr "" +msgstr "노즐이 가열되는 속도 (° C / s)는 일반적인 인쇄 온도와 대기 온도의 창에서 평균을냅니다. " #: fdmprinter.def.json msgctxt "machine_nozzle_cool_down_speed label" @@ -279,7 +280,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_nozzle_cool_down_speed description" msgid "The speed (°C/s) by which the nozzle cools down averaged over the window of normal printing temperatures and the standby temperature." -msgstr "" +msgstr "노즐이 냉각되는 속도 (° C / s)는 일반적인 인쇄 온도 및 대기 온도의 창에서 평균화됩니다. " #: fdmprinter.def.json msgctxt "machine_min_cool_heat_time_window label" @@ -289,7 +290,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_min_cool_heat_time_window description" msgid "The minimal time an extruder has to be inactive before the nozzle is cooled. Only when an extruder is not used for longer than this time will it be allowed to cool down to the standby temperature." -msgstr "" +msgstr "노즐이 냉각되기 전에 압출기가 비활성이어야하는 최소 시간. 이 시간보다 오래 압출기를 사용하지 않을 경우에만 대기 온도로 냉각시킬 수 있습니다. " #: fdmprinter.def.json msgctxt "machine_gcode_flavor label" @@ -299,7 +300,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_gcode_flavor description" msgid "The type of gcode to be generated." -msgstr "" +msgstr "생성 될 gcode 유형입니다. " #: fdmprinter.def.json msgctxt "machine_gcode_flavor option RepRap (Marlin/Sprinter)" @@ -349,7 +350,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_disallowed_areas description" msgid "A list of polygons with areas the print head is not allowed to enter." -msgstr "" +msgstr "인쇄 헤드가있는 영역이있는 다각형 목록입니다. " #: fdmprinter.def.json msgctxt "nozzle_disallowed_areas label" @@ -359,7 +360,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "nozzle_disallowed_areas description" msgid "A list of polygons with areas the nozzle is not allowed to enter." -msgstr "" +msgstr "노즐이 들어갈 수없는 영역이있는 다각형 목록입니다. " #: fdmprinter.def.json msgctxt "machine_head_polygon label" @@ -369,7 +370,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_head_polygon description" msgid "A 2D silhouette of the print head (fan caps excluded)." -msgstr "" +msgstr "프린트 헤드의 2D 실루엣 (팬 캡 제외). " #: fdmprinter.def.json msgctxt "machine_head_with_fans_polygon label" @@ -379,7 +380,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_head_with_fans_polygon description" msgid "A 2D silhouette of the print head (fan caps included)." -msgstr "" +msgstr "프린트 헤드의 2D 실루엣 (팬 뚜껑 포함). " #: fdmprinter.def.json msgctxt "gantry_height label" @@ -389,7 +390,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "gantry_height description" msgid "The height difference between the tip of the nozzle and the gantry system (X and Y axes)." -msgstr "" +msgstr "노즐 끝과 갠트리 시스템 사이의 높이 차이 (X 및 Y 축). " #: fdmprinter.def.json msgctxt "machine_nozzle_size label" @@ -399,7 +400,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_nozzle_size description" msgid "The inner diameter of the nozzle. Change this setting when using a non-standard nozzle size." -msgstr "" +msgstr "노즐의 내경. 비표준 노즐 크기를 사용할 때이 설정을 변경하십시오. " #: fdmprinter.def.json msgctxt "machine_use_extruder_offset_to_offset_coords label" @@ -409,7 +410,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_use_extruder_offset_to_offset_coords description" msgid "Apply the extruder offset to the coordinate system." -msgstr "" +msgstr "압출기 오프셋을 좌표계에 적용하십시오. " #: fdmprinter.def.json msgctxt "extruder_prime_pos_z label" @@ -419,7 +420,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "extruder_prime_pos_z description" msgid "The Z coordinate of the position where the nozzle primes at the start of printing." -msgstr "" +msgstr "인쇄가 시작될 때 노즐이 끝나는 위치의 Z 좌표입니다. " #: fdmprinter.def.json msgctxt "extruder_prime_pos_abs label" @@ -429,7 +430,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "extruder_prime_pos_abs description" msgid "Make the extruder prime position absolute rather than relative to the last-known location of the head." -msgstr "" +msgstr "헤드의 마지막으로 알려진 위치에 상대적이 아닌 압출기의 주요 위치를 절대 위치로 만듭니다. " #: fdmprinter.def.json msgctxt "machine_max_feedrate_x label" @@ -439,7 +440,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_max_feedrate_x description" msgid "The maximum speed for the motor of the X-direction." -msgstr "" +msgstr "X 방향의 모터 최대 속도입니다." #: fdmprinter.def.json msgctxt "machine_max_feedrate_y label" @@ -449,7 +450,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_max_feedrate_y description" msgid "The maximum speed for the motor of the Y-direction." -msgstr "" +msgstr "Y 방향 모터의 최대 속도입니다." #: fdmprinter.def.json msgctxt "machine_max_feedrate_z label" @@ -459,7 +460,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_max_feedrate_z description" msgid "The maximum speed for the motor of the Z-direction." -msgstr "" +msgstr "Z 방향의 모터 최대 속도입니다. " #: fdmprinter.def.json msgctxt "machine_max_feedrate_e label" @@ -469,7 +470,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_max_feedrate_e description" msgid "The maximum speed of the filament." -msgstr "" +msgstr "필라멘트의 최대 속도. " #: fdmprinter.def.json msgctxt "machine_max_acceleration_x label" @@ -479,7 +480,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_max_acceleration_x description" msgid "Maximum acceleration for the motor of the X-direction" -msgstr "" +msgstr "X 방향 모터의 최대 가속도. " #: fdmprinter.def.json msgctxt "machine_max_acceleration_y label" @@ -489,7 +490,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_max_acceleration_y description" msgid "Maximum acceleration for the motor of the Y-direction." -msgstr "" +msgstr "Y 방향 모터의 최대 가속도. " #: fdmprinter.def.json msgctxt "machine_max_acceleration_z label" @@ -499,7 +500,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_max_acceleration_z description" msgid "Maximum acceleration for the motor of the Z-direction." -msgstr "" +msgstr "Z 방향 모터의 최대 가속도. " #: fdmprinter.def.json msgctxt "machine_max_acceleration_e label" @@ -509,7 +510,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_max_acceleration_e description" msgid "Maximum acceleration for the motor of the filament." -msgstr "" +msgstr "필라멘트의 모터에 대한 최대 가속도. " #: fdmprinter.def.json msgctxt "machine_acceleration label" @@ -519,7 +520,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_acceleration description" msgid "The default acceleration of print head movement." -msgstr "" +msgstr "프린트 헤드 이동의 기본 가속. " #: fdmprinter.def.json msgctxt "machine_max_jerk_xy label" @@ -529,7 +530,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_max_jerk_xy description" msgid "Default jerk for movement in the horizontal plane." -msgstr "" +msgstr "수평면에서의 이동을위한 기본 저크. " #: fdmprinter.def.json msgctxt "machine_max_jerk_z label" @@ -539,7 +540,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_max_jerk_z description" msgid "Default jerk for the motor of the Z-direction." -msgstr "" +msgstr "Z 방향 모터의 기본 저크. " #: fdmprinter.def.json msgctxt "machine_max_jerk_e label" @@ -549,7 +550,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_max_jerk_e description" msgid "Default jerk for the motor of the filament." -msgstr "" +msgstr "필라멘트 모터의 기본 저크. " #: fdmprinter.def.json msgctxt "machine_minimum_feedrate label" @@ -559,7 +560,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_minimum_feedrate description" msgid "The minimal movement speed of the print head." -msgstr "" +msgstr "프린트 헤드의 최소 이동 속도. " #: fdmprinter.def.json msgctxt "resolution label" @@ -569,7 +570,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "resolution description" msgid "All settings that influence the resolution of the print. These settings have a large impact on the quality (and print time)" -msgstr "" +msgstr "인쇄물의 해상도에 영향을 미치는 모든 설정. 이러한 설정은 품질 (및 인쇄 시간)에 큰 영향을 미칩니다. " #: fdmprinter.def.json msgctxt "layer_height label" @@ -579,7 +580,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "layer_height description" msgid "The height of each layer in mm. Higher values produce faster prints in lower resolution, lower values produce slower prints in higher resolution." -msgstr "" +msgstr "각 층의 높이 (mm)입니다. 값이 높을수록 해상도가 낮을수록 인쇄 속도가 빨라지고 값이 낮을수록 해상도가 높을수록 인쇄 속도가 느려집니다. " #: fdmprinter.def.json msgctxt "layer_height_0 label" @@ -589,7 +590,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "layer_height_0 description" msgid "The height of the initial layer in mm. A thicker initial layer makes adhesion to the build plate easier." -msgstr "" +msgstr "초기 레이어의 높이 (mm)입니다. 두꺼운 초기 레이어는 빌드 플레이트에 쉽게 접착합니다. " #: fdmprinter.def.json msgctxt "line_width label" @@ -599,7 +600,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "line_width description" msgid "Width of a single line. Generally, the width of each line should correspond to the width of the nozzle. However, slightly reducing this value could produce better prints." -msgstr "" +msgstr "한 줄의 너비. 일반적으로 각 라인의 너비는 노즐 폭과 일치해야합니다. 그러나이 값을 약간 줄이면 더 좋은 인 쇄를 생성 할 수 있습니다. " #: fdmprinter.def.json msgctxt "wall_line_width label" @@ -609,7 +610,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wall_line_width description" msgid "Width of a single wall line." -msgstr "" +msgstr "단일 벽 선의 너비입니다. " #: fdmprinter.def.json msgctxt "wall_line_width_0 label" @@ -619,7 +620,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wall_line_width_0 description" msgid "Width of the outermost wall line. By lowering this value, higher levels of detail can be printed." -msgstr "" +msgstr "가장 바깥 쪽 벽 선의 너비. 이 값을 낮춤으로써 높은 수준의 디테일을 인쇄 할 수 있습니다. " #: fdmprinter.def.json msgctxt "wall_line_width_x label" @@ -629,7 +630,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wall_line_width_x description" msgid "Width of a single wall line for all wall lines except the outermost one." -msgstr "" +msgstr "가장 바깥 쪽 벽 선을 제외한 모든 벽 선에 대해 단일 벽 선의 폭입니다. " #: fdmprinter.def.json msgctxt "skin_line_width label" @@ -639,7 +640,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "skin_line_width description" msgid "Width of a single top/bottom line." -msgstr "" +msgstr "단일 위쪽 / 아래쪽 선의 너비입니다. " #: fdmprinter.def.json msgctxt "infill_line_width label" @@ -649,7 +650,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "infill_line_width description" msgid "Width of a single infill line." -msgstr "" +msgstr "단일 infill 라인의 너비. " #: fdmprinter.def.json msgctxt "skirt_brim_line_width label" @@ -659,7 +660,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "skirt_brim_line_width description" msgid "Width of a single skirt or brim line." -msgstr "" +msgstr "단일 스커트 또는 고리 선의 너비. " #: fdmprinter.def.json msgctxt "support_line_width label" @@ -669,7 +670,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_line_width description" msgid "Width of a single support structure line." -msgstr "" +msgstr "단일 지원 구조 선의 너비입니다. " #: fdmprinter.def.json msgctxt "support_interface_line_width label" @@ -679,7 +680,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_interface_line_width description" msgid "Width of a single line of support roof or floor." -msgstr "" +msgstr "지붕 또는 바닥을지지하는 한 줄의 폭. " #: fdmprinter.def.json msgctxt "support_roof_line_width label" @@ -689,7 +690,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_roof_line_width description" msgid "Width of a single support roof line." -msgstr "" +msgstr "단일 지원 지붕 선의 너비. " #: fdmprinter.def.json msgctxt "support_bottom_line_width label" @@ -699,7 +700,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_bottom_line_width description" msgid "Width of a single support floor line." -msgstr "" +msgstr "단일 지원 플로어 라인의 너비. " #: fdmprinter.def.json msgctxt "prime_tower_line_width label" @@ -709,7 +710,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "prime_tower_line_width description" msgid "Width of a single prime tower line." -msgstr "" +msgstr "단일 주요 타워 선의 너비. " #: fdmprinter.def.json msgctxt "shell label" @@ -719,7 +720,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "shell description" msgid "Shell" -msgstr "" +msgstr "껍질 " #: fdmprinter.def.json msgctxt "wall_thickness label" @@ -729,7 +730,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wall_thickness description" msgid "The thickness of the outside walls in the horizontal direction. This value divided by the wall line width defines the number of walls." -msgstr "" +msgstr "외벽의 수평 방향의 두께. 이 값을 벽 선 너비로 나눈 값은 벽의 수를 정의합니다. " #: fdmprinter.def.json msgctxt "wall_line_count label" @@ -739,7 +740,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wall_line_count description" msgid "The number of walls. When calculated by the wall thickness, this value is rounded to a whole number." -msgstr "" +msgstr "벽의 수. 벽 두께로 계산할 때이 값은 정수로 반올림됩니다. " #: fdmprinter.def.json msgctxt "wall_0_wipe_dist label" @@ -749,7 +750,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wall_0_wipe_dist description" msgid "Distance of a travel move inserted after the outer wall, to hide the Z seam better." -msgstr "" +msgstr "바깥 쪽 벽 뒤에 삽입 된 이동 거리. Z 솔기를 더 잘 숨 깁니다. " #: fdmprinter.def.json msgctxt "top_bottom_thickness label" @@ -759,7 +760,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "top_bottom_thickness description" msgid "The thickness of the top/bottom layers in the print. This value divided by the layer height defines the number of top/bottom layers." -msgstr "" +msgstr "인쇄물의 상단 / 하단 레이어의 두께. 이 값을 레이어 높이로 나눈 값은 위쪽 / 아래쪽 레이어의 수를 정의합니다. " #: fdmprinter.def.json msgctxt "top_thickness label" @@ -769,7 +770,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "top_thickness description" msgid "The thickness of the top layers in the print. This value divided by the layer height defines the number of top layers." -msgstr "" +msgstr "인쇄물의 상단 레이어의 두께입니다. 이 값을 레이어 높이로 나눈 값은 최상위 레이어 수를 정의합니다. " #: fdmprinter.def.json msgctxt "top_layers label" @@ -779,7 +780,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "top_layers description" msgid "The number of top layers. When calculated by the top thickness, this value is rounded to a whole number." -msgstr "" +msgstr "인쇄물의 상단 레이어의 두께입니다. 이 값과 레이어 값을 최상위 레이어로 정의하십시오. " #: fdmprinter.def.json msgctxt "bottom_thickness label" @@ -789,7 +790,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "bottom_thickness description" msgid "The thickness of the bottom layers in the print. This value divided by the layer height defines the number of bottom layers." -msgstr "" +msgstr "인쇄물의 아래쪽 레이어의 두께입니다. 이 값을 레이어 높이로 나눈 값은 맨 아래 레이어의 수를 정의합니다. " #: fdmprinter.def.json msgctxt "bottom_layers label" @@ -799,7 +800,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "bottom_layers description" msgid "The number of bottom layers. When calculated by the bottom thickness, this value is rounded to a whole number." -msgstr "" +msgstr "아래층의 수. 바닥 두께로 계산할 때이 값은 정수로 반올림됩니다. " #: fdmprinter.def.json msgctxt "top_bottom_pattern label" @@ -809,7 +810,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "top_bottom_pattern description" msgid "The pattern of the top/bottom layers." -msgstr "" +msgstr "상단 / 하단 레이어의 패턴. " #: fdmprinter.def.json msgctxt "top_bottom_pattern option lines" @@ -834,7 +835,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "top_bottom_pattern_0 description" msgid "The pattern on the bottom of the print on the first layer." -msgstr "" +msgstr "첫 번째 레이어의 인쇄 아래쪽에있는 패턴입니다. " #: fdmprinter.def.json msgctxt "top_bottom_pattern_0 option lines" @@ -859,7 +860,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "skin_angles description" msgid "A list of integer line directions to use when the top/bottom layers use the lines or zig zag pattern. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the traditional default angles (45 and 135 degrees)." -msgstr "" +msgstr "상단 / 하단 레이어가 선 또는 지그재그 패턴을 사용할 때 사용할 정수선 방향 목록입니다. 목록의 요소는 레이어가 진행됨에 따라 순차적으로 사용되며 목록의 끝에 도달하면 처음부터 다시 시작됩니다. 목록 항목은 쉼표로 구분되며 전체 목록은 대괄호 안에 들어 있습니다. 기본값은 전통적인 기본 각도 (45도 및 135도)를 사용하는 빈 목록입니다. " #: fdmprinter.def.json msgctxt "wall_0_inset label" @@ -869,7 +870,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wall_0_inset description" msgid "Inset applied to the path of the outer wall. If the outer wall is smaller than the nozzle, and printed after the inner walls, use this offset to get the hole in the nozzle to overlap with the inner walls instead of the outside of the model." -msgstr "" +msgstr "외벽의 경로에 삽입이 적용됩니다. 외벽이 노즐보다 작고 내벽 다음에 인쇄 된 경우이 옵셋을 사용하여 노즐의 구멍이 모델 외부가 아닌 내벽과 겹치도록하십시오. " #: fdmprinter.def.json msgctxt "outer_inset_first label" @@ -879,7 +880,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "outer_inset_first description" msgid "Prints walls in order of outside to inside when enabled. This can help improve dimensional accuracy in X and Y when using a high viscosity plastic like ABS; however it can decrease outer surface print quality, especially on overhangs." -msgstr "" +msgstr "사용 가능한 경우 외부에서 내부로 벽을 인쇄합니다. 이것은 ABS와 같은 고점도 플라스틱을 사용할 때 X와 Y의 치수 정확도를 향상시키는 데 도움이됩니다. 그러나 외 표면 인쇄 품질을 떨어 뜨릴 수 있습니다 (특히 오버행시). " #: fdmprinter.def.json msgctxt "alternate_extra_perimeter label" @@ -889,7 +890,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "alternate_extra_perimeter description" msgid "Prints an extra wall at every other layer. This way infill gets caught between these extra walls, resulting in stronger prints." -msgstr "" +msgstr "다른 모든 레이어에 여분의 벽을 인쇄합니다. 이렇게하면 충전물이이 여분의 벽 사이에 끼어 더 강하게 인쇄됩니다. " #: fdmprinter.def.json msgctxt "travel_compensate_overlapping_walls_enabled label" @@ -899,7 +900,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "travel_compensate_overlapping_walls_enabled description" msgid "Compensate the flow for parts of a wall being printed where there is already a wall in place." -msgstr "" +msgstr "이미 벽이있는 곳에 인쇄중인 벽의 부분에 대한 흐름을 보정하십시오. " #: fdmprinter.def.json msgctxt "travel_compensate_overlapping_walls_0_enabled label" @@ -909,7 +910,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "travel_compensate_overlapping_walls_0_enabled description" msgid "Compensate the flow for parts of an outer wall being printed where there is already a wall in place." -msgstr "" +msgstr "이미 벽이있는 곳에 인쇄되는 외벽 부분에 대한 흐름을 보정합니다. " #: fdmprinter.def.json msgctxt "travel_compensate_overlapping_walls_x_enabled label" @@ -919,7 +920,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "travel_compensate_overlapping_walls_x_enabled description" msgid "Compensate the flow for parts of an inner wall being printed where there is already a wall in place." -msgstr "" +msgstr "이미 벽이있는 곳에 인쇄되는 내부 벽 부분에 대한 흐름을 보정하십시오. " #: fdmprinter.def.json msgctxt "fill_perimeter_gaps label" @@ -929,7 +930,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "fill_perimeter_gaps description" msgid "Fills the gaps between walls where no walls fit." -msgstr "" +msgstr "벽이 딱 맞지 않는 벽 사이의 간격을 채 웁니다. " #: fdmprinter.def.json msgctxt "fill_perimeter_gaps option nowhere" @@ -949,7 +950,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "xy_offset description" msgid "Amount of offset applied to all polygons in each layer. Positive values can compensate for too big holes; negative values can compensate for too small holes." -msgstr "" +msgstr "각 레이어의 모든 다각형에 적용된 오프셋의 양입니다. 양수 값은 너무 큰 구멍을 보완 할 수 있습니다. 음수 값은 너무 작은 구멍을 보완 할 수 있습니다. " #: fdmprinter.def.json msgctxt "z_seam_type label" @@ -959,7 +960,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "z_seam_type description" msgid "Starting point of each path in a layer. When paths in consecutive layers start at the same point a vertical seam may show on the print. When aligning these near a user specified location, the seam is easiest to remove. When placed randomly the inaccuracies at the paths' start will be less noticeable. When taking the shortest path the print will be quicker." -msgstr "" +msgstr "레이어의 각 패스의 시작점입니다. 연속 레이어의 패스가 같은 지점에서 시작되면 세로 솔기가 인쇄물에 표시 될 수 있습니다. 사용자 지정 위치 근처에서 이들을 정렬 할 때 이음선을 제거하는 것이 가장 쉽습니다. 무작위로 배치 될 때 경로 시작시 부정확성은 눈에 띄지 않습니다. 최단 경로를 취할 때 인쇄가 빨라집니다. " #: fdmprinter.def.json msgctxt "z_seam_type option back" @@ -984,7 +985,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "z_seam_x description" msgid "The X coordinate of the position near where to start printing each part in a layer." -msgstr "" +msgstr "레이어의 각 파트 인쇄를 시작할 위치 근처의 X 좌표입니다. " #: fdmprinter.def.json msgctxt "z_seam_y label" @@ -994,7 +995,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "z_seam_y description" msgid "The Y coordinate of the position near where to start printing each part in a layer." -msgstr "" +msgstr "레이어의 각 부분을 인쇄 할 위치 근처의 위치에 대한 Y 좌표입니다. " #: fdmprinter.def.json msgctxt "skin_no_small_gaps_heuristic label" @@ -1004,7 +1005,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "skin_no_small_gaps_heuristic description" msgid "When the model has small vertical gaps, about 5% extra computation time can be spent on generating top and bottom skin in these narrow spaces. In such case, disable the setting." -msgstr "" +msgstr "모델에 수직 간격이 작 으면이 좁은 공간에서 상단 및 하단 스킨을 생성하는 데 약 5 %의 추가 계산 시간을 소비 할 수 있습니다. 이 경우 설정을 해제하십시오. " #: fdmprinter.def.json msgctxt "infill label" @@ -1014,7 +1015,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "infill description" msgid "Infill" -msgstr "" +msgstr "충진 " #: fdmprinter.def.json msgctxt "infill_sparse_density label" @@ -1024,7 +1025,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "infill_sparse_density description" msgid "Adjusts the density of infill of the print." -msgstr "" +msgstr "인쇄물의 충진율를 조절합니다." #: fdmprinter.def.json msgctxt "infill_line_distance label" @@ -1034,7 +1035,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "infill_line_distance description" msgid "Distance between the printed infill lines. This setting is calculated by the infill density and the infill line width." -msgstr "" +msgstr "인쇄 된 충진 선 사이의 거리. 이 설정은 충전 밀도 및 충전 선 너비로 계산됩니다. " #: fdmprinter.def.json msgctxt "infill_pattern label" @@ -1044,7 +1045,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "infill_pattern description" msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, tetrahedral and concentric patterns are fully printed every layer. Cubic and tetrahedral infill change with every layer to provide a more equal distribution of strength over each direction." -msgstr "" +msgstr "프린트의 충전재 패턴. 라인과 지그는 대체 층에서 스필 방향을 바꾸어 재료비를 줄입니다. 그리드, 삼각형, 큐빅, 사면체 및 동심원 패턴은 모든 레이어에 완전히 인쇄됩니다. 입방체 및 사면체 충전재는 각 방향마다 강도가 균등하게 분포되도록 모든 층을 변경합니다. " #: fdmprinter.def.json msgctxt "infill_pattern option grid" @@ -1099,7 +1100,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "infill_angles description" msgid "A list of integer line directions to use. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the traditional default angles (45 and 135 degrees for the lines and zig zag patterns and 45 degrees for all other patterns)." -msgstr "" +msgstr "사용할 정수선 방향 목록. 목록의 요소는 레이어가 진행됨에 따라 순차적으로 사용되며 목록의 끝에 도달하면 처음부터 다시 시작됩니다. 목록 항목은 쉼표로 구분되며 전체 목록은 대괄호 안에 들어 있습니다. 기본값은 전통적인 기본 각도 (선 및 지그재그 패턴의 경우 45 및 135도, 다른 모든 패턴의 경우 45도)를 사용한다는 의미의 빈 목록입니다. " #: fdmprinter.def.json msgctxt "spaghetti_infill_enabled label" @@ -1109,7 +1110,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "spaghetti_infill_enabled description" msgid "Print the infill every so often, so that the filament will curl up chaotically inside the object. This reduces print time, but the behaviour is rather unpredictable." -msgstr "" +msgstr "필라멘트가 물체 내부에서 혼란스럽게 뒤 틀릴 수 있도록 필러를 너무 자주 인쇄하십시오. 이렇게하면 인쇄 시간이 줄어들지 만 예측할 수없는 행동입니다. " #: fdmprinter.def.json msgctxt "spaghetti_max_infill_angle label" @@ -1119,7 +1120,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "spaghetti_max_infill_angle description" msgid "The maximum angle w.r.t. the Z axis of the inside of the print for areas which are to be filled with spaghetti infill afterwards. Lowering this value causes more angled parts in your model to be filled on each layer." -msgstr "" +msgstr "최대 각도 w.r.t. 나중에 스파게티가 채워질 영역에 대한 인쇄 내부의 Z 축. 이 값을 낮추면 모델의 각진 부분이 각 레이어에 채워집니다. " #: fdmprinter.def.json msgctxt "spaghetti_max_height label" @@ -1129,7 +1130,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "spaghetti_max_height description" msgid "The maximum height of inside space which can be combined and filled from the top." -msgstr "" +msgstr "상단에서 결합하여 채울 수있는 내부 공간의 최대 높이입니다. " #: fdmprinter.def.json msgctxt "spaghetti_inset label" @@ -1139,7 +1140,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "spaghetti_inset description" msgid "The offset from the walls from where the spaghetti infill will be printed." -msgstr "" +msgstr "스파게티가 채워지는 벽의 오프셋. " #: fdmprinter.def.json msgctxt "spaghetti_flow label" @@ -1149,7 +1150,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "spaghetti_flow description" msgid "Adjusts the density of the spaghetti infill. Note that the Infill Density only controls the line spacing of the filling pattern, not the amount of extrusion for spaghetti infill." -msgstr "" +msgstr "스파게티 주입 물의 밀도를 조정합니다. Infill Density는 스파게티 필링의 돌출 량이 아니라 채우기 패턴의 줄 간격 만 제어합니다. " #: fdmprinter.def.json msgctxt "sub_div_rad_add label" @@ -1159,7 +1160,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "sub_div_rad_add description" msgid "An addition to the radius from the center of each cube to check for the boundary of the model, as to decide whether this cube should be subdivided. Larger values lead to a thicker shell of small cubes near the boundary of the model." -msgstr "" +msgstr "모델의 경계를 확인하기 위해 각 큐브의 중심에서 반경을 더하여이 큐브를 세분화할지 여부를 결정합니다. 값이 클수록 모델의 경계 근처에 작은 큐브가 더 두껍게 나옵니다. " #: fdmprinter.def.json msgctxt "infill_overlap label" @@ -1169,7 +1170,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "infill_overlap description" msgid "The amount of overlap between the infill and the walls. A slight overlap allows the walls to connect firmly to the infill." -msgstr "" +msgstr "충진재와 벽 사이의 겹침 정도. 약간 겹치면 벽이 충전재에 단단히 연결됩니다." #: fdmprinter.def.json msgctxt "infill_overlap_mm label" @@ -1179,7 +1180,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "infill_overlap_mm description" msgid "The amount of overlap between the infill and the walls. A slight overlap allows the walls to connect firmly to the infill." -msgstr "" +msgstr "충진재와 벽 사이의 겹침 정도. 약간 겹치면 벽이 충전재에 단단히 연결됩니다. " #: fdmprinter.def.json msgctxt "skin_overlap label" @@ -1189,7 +1190,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "skin_overlap description" msgid "The amount of overlap between the skin and the walls. A slight overlap allows the walls to connect firmly to the skin." -msgstr "" +msgstr "피부와 벽 사이의 겹침 정도입니다. 약간 겹치면 벽이 피부에 단단히 연결됩니다. " #: fdmprinter.def.json msgctxt "skin_overlap_mm label" @@ -1199,7 +1200,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "skin_overlap_mm description" msgid "The amount of overlap between the skin and the walls. A slight overlap allows the walls to connect firmly to the skin." -msgstr "" +msgstr "피부와 벽 사이의 겹침 정도입니다. 약간 겹치면 벽이 피부에 단단히 연결됩니다. " #: fdmprinter.def.json msgctxt "infill_wipe_dist label" @@ -1209,7 +1210,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "infill_wipe_dist description" msgid "Distance of a travel move inserted after every infill line, to make the infill stick to the walls better. This option is similar to infill overlap, but without extrusion and only on one end of the infill line." -msgstr "" +msgstr "각 충진 라인 다음에 삽입 된 이동 이동 거리. infill 스틱을 벽에 더 잘 붙이게합니다. 이 옵션은 충전재 겹침과 유사하지만 압출이없고 충전 선의 한쪽 끝에서만 사용됩니다." #: fdmprinter.def.json msgctxt "infill_sparse_thickness label" @@ -1219,7 +1220,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "infill_sparse_thickness description" msgid "The thickness per layer of infill material. This value should always be a multiple of the layer height and is otherwise rounded." -msgstr "" +msgstr "충진물 층의 두께. 이 값은 항상 레이어 높이의 배수 여야하며 반올림됩니다. " #: fdmprinter.def.json msgctxt "gradual_infill_steps label" @@ -1229,7 +1230,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "gradual_infill_steps description" msgid "Number of times to reduce the infill density by half when getting further below top surfaces. Areas which are closer to top surfaces get a higher density, up to the Infill Density." -msgstr "" +msgstr "상면 아래로 갈 때 충진 밀도를 반으로 줄이는 횟수입니다. 상단면에 더 가까운 영역은 충진율 농도가 더 높은 밀도를 갖습니다. " #: fdmprinter.def.json msgctxt "gradual_infill_step_height label" @@ -1239,7 +1240,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "gradual_infill_step_height description" msgid "The height of infill of a given density before switching to half the density." -msgstr "" +msgstr "밀도의 절반으로 전환하기 전에 주어진 밀도의 infill 높이. " #: fdmprinter.def.json msgctxt "infill_before_walls label" @@ -1249,7 +1250,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "infill_before_walls description" msgid "Print the infill before printing the walls. Printing the walls first may lead to more accurate walls, but overhangs print worse. Printing the infill first leads to sturdier walls, but the infill pattern might sometimes show through the surface." -msgstr "" +msgstr "벽을 인쇄하기 전에 충진물을 인쇄하십시오. 벽을 먼저 인쇄하면 벽이 더 정확해질 수 있지만 돌출이 더 많이 인쇄됩니다. 충진재를 먼저 인쇄하면 더 튼튼한 벽이 생기지 만 충전물 패턴이 때로 표면을 통해 보일 수 있습니다. " #: fdmprinter.def.json msgctxt "min_infill_area label" @@ -1259,7 +1260,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "min_infill_area description" msgid "Don't generate areas of infill smaller than this (use skin instead)." -msgstr "" +msgstr "이보다 작은 충진물 영역을 생성하지 마십시오 (대신 스킨 사용). " #: fdmprinter.def.json msgctxt "expand_skins_into_infill label" @@ -1269,7 +1270,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "expand_skins_into_infill description" msgid "Expand skin areas of top and/or bottom skin of flat surfaces. By default, skins stop under the wall lines that surround infill but this can lead to holes appearing when the infill density is low. This setting extends the skins beyond the wall lines so that the infill on the next layer rests on skin." -msgstr "" +msgstr "평면의 상단 및 / 또는 하단 스킨 영역을 확장합니다. 기본적으로 스필은 충진을 둘러싸는 벽 선 아래에서 멈 춥니 다. 그러나 이는 충진 밀도가 낮을 때 나타나는 구멍으로 이어질 수 있습니다. 이 설정은 스킨을 벽 선 너머로 확장하여 다음 레이어의 필이 피부에 놓 이도록합니다. " #: fdmprinter.def.json msgctxt "expand_upper_skins label" @@ -1279,7 +1280,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "expand_upper_skins description" msgid "Expand the top skin areas (areas with air above) so that they support infill above." -msgstr "" +msgstr "상단 피부 영역 (위의 공기가있는 영역)을 확장하여 위의 충진물을 지탱하도록하십시오. " #: fdmprinter.def.json msgctxt "expand_lower_skins label" @@ -1289,7 +1290,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "expand_lower_skins description" msgid "Expand the bottom skin areas (areas with air below) so that they are anchored by the infill layers above and below." -msgstr "" +msgstr "아래 피부 영역 (공기가있는 부분)을 확장하여 위와 아래의 충진층으로 고정시킵니다. " #: fdmprinter.def.json msgctxt "expand_skins_expand_distance label" @@ -1299,7 +1300,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "expand_skins_expand_distance description" msgid "The distance the skins are expanded into the infill. The default distance is enough to bridge the gap between the infill lines and will stop holes appearing in the skin where it meets the wall when the infill density is low. A smaller distance will often be sufficient." -msgstr "" +msgstr "스킨이 충진 될 거리입니다. 기본 거리는 충진 선 사이의 간격을 메우기에 충분하며 충진 밀도가 낮을 때 벽과 만나는 스킨에 나타나는 구멍을 막습니다. 거리가 짧으면 충분합니다. " #: fdmprinter.def.json msgctxt "max_skin_angle_for_expansion label" @@ -1309,7 +1310,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "max_skin_angle_for_expansion description" msgid "Top and/or bottom surfaces of your object with an angle larger than this setting, won't have their top/bottom skin expanded. This avoids expanding the narrow skin areas that are created when the model surface has a near vertical slope. An angle of 0° is horizontal, while an angle of 90° is vertical." -msgstr "" +msgstr "이 설정보다 큰 각도로 객체의 상단 및 / 또는 하단 표면은 위쪽 / 아래쪽 스킨이 확장되지 않습니다. 이렇게하면 모델 표면이 수직 경사가 거의 없을 때 생성되는 좁은 스킨 영역을 확장하지 않아도됩니다. \"0\" 도의 각도는 수평이며, 90 도의 각도는 수직입니다. " #: fdmprinter.def.json msgctxt "min_skin_width_for_expansion label" @@ -1319,7 +1320,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "min_skin_width_for_expansion description" msgid "Skin areas narrower than this are not expanded. This avoids expanding the narrow skin areas that are created when the model surface has a slope close to the vertical." -msgstr "" +msgstr "이보다 좁은 스킨 영역은 확장되지 않습니다. 이렇게하면 모델 표면이 수직에 가까운 기울기를 가질 때 생성되는 좁은 스킨 영역을 확장하지 않아도됩니다. " #: fdmprinter.def.json msgctxt "material label" @@ -1329,7 +1330,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "material description" msgid "Material" -msgstr "" +msgstr "재료 " #: fdmprinter.def.json msgctxt "material_flow_dependent_temperature label" @@ -1339,7 +1340,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "material_flow_dependent_temperature description" msgid "Change the temperature for each layer automatically with the average flow speed of that layer." -msgstr "" +msgstr "해당 레이어의 평균 유속으로 각 레이어의 온도를 자동으로 변경하십시오. " #: fdmprinter.def.json msgctxt "default_material_print_temperature label" @@ -1349,7 +1350,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "default_material_print_temperature description" msgid "The default temperature used for printing. This should be the \"base\" temperature of a material. All other print temperatures should use offsets based on this value" -msgstr "" +msgstr "인쇄에 사용되는 기본 온도입니다. 이것은 재료의 \"기본\"온도 여야합니다. 다른 모든 인쇄 온도는이 값을 기준으로 오프셋을 사용해야합니다. " #: fdmprinter.def.json msgctxt "material_print_temperature label" @@ -1359,7 +1360,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "material_print_temperature description" msgid "The temperature used for printing." -msgstr "" +msgstr "인쇄에 사용되는 온도. " #: fdmprinter.def.json msgctxt "material_print_temperature_layer_0 label" @@ -1369,7 +1370,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "material_print_temperature_layer_0 description" msgid "The temperature used for printing the first layer. Set at 0 to disable special handling of the initial layer." -msgstr "" +msgstr "첫 번째 레이어 인쇄에 사용되는 온도입니다. 초기 레이어의 특수 처리를 사용하지 않으려면 \"0\"으로 설정합니다. " #: fdmprinter.def.json msgctxt "material_initial_print_temperature label" @@ -1379,7 +1380,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "material_initial_print_temperature description" msgid "The minimal temperature while heating up to the Printing Temperature at which printing can already start." -msgstr "" +msgstr "인쇄가 이미 시작될 수있는 인쇄 온도까지 가열하는 동안 최소 온도. " #: fdmprinter.def.json msgctxt "material_final_print_temperature label" @@ -1389,7 +1390,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "material_final_print_temperature description" msgid "The temperature to which to already start cooling down just before the end of printing." -msgstr "" +msgstr "인쇄 종료 직전에 이미 냉각이 시작될 온도입니다. " #: fdmprinter.def.json msgctxt "material_flow_temp_graph label" @@ -1399,7 +1400,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "material_flow_temp_graph description" msgid "Data linking material flow (in mm3 per second) to temperature (degrees Celsius)." -msgstr "" +msgstr "데이터 흐름 (mm3 / 초) - 온도 (섭씨). " #: fdmprinter.def.json msgctxt "material_extrusion_cool_down_speed label" @@ -1409,7 +1410,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "material_extrusion_cool_down_speed description" msgid "The extra speed by which the nozzle cools while extruding. The same value is used to signify the heat up speed lost when heating up while extruding." -msgstr "" +msgstr "압출하는 동안 노즐이 냉각되는 추가 속도. 압출하는 동안 가열 될 때 상실되는 열 상승 속도를 나타 내기 위해 동일한 값이 사용됩니다. " #: fdmprinter.def.json msgctxt "material_bed_temperature label" @@ -1419,7 +1420,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "material_bed_temperature description" msgid "The temperature used for the heated build plate. If this is 0, the bed will not heat up for this print." -msgstr "" +msgstr "가열 된 빌드 플레이트에 사용되는 온도. 이 값이 0이면이 인쇄물에 침대가 가열되지 않습니다. " #: fdmprinter.def.json msgctxt "material_bed_temperature_layer_0 label" @@ -1429,7 +1430,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "material_bed_temperature_layer_0 description" msgid "The temperature used for the heated build plate at the first layer." -msgstr "" +msgstr "첫 번째 레이어에서 가열 된 빌드 플레이트에 사용되는 온도. " #: fdmprinter.def.json msgctxt "material_diameter label" @@ -1439,7 +1440,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "material_diameter description" msgid "Adjusts the diameter of the filament used. Match this value with the diameter of the used filament." -msgstr "" +msgstr "사용 된 필라멘트의 직경을 조정합니다. 이 값을 사용 필라멘트의 직경과 일치시킵니다. " #: fdmprinter.def.json msgctxt "material_flow label" @@ -1449,7 +1450,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "material_flow description" msgid "Flow compensation: the amount of material extruded is multiplied by this value." -msgstr "" +msgstr "유량 보상 : 압출 된 재료의 양에이 값을 곱합니다. " #: fdmprinter.def.json msgctxt "retraction_enable label" @@ -1459,7 +1460,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "retraction_enable description" msgid "Retract the filament when the nozzle is moving over a non-printed area. " -msgstr "" +msgstr "노즐이 인쇄되지 않은 영역 위로 움직일 때 필라멘트를 잡아 당깁니다. " #: fdmprinter.def.json msgctxt "retract_at_layer_change label" @@ -1469,7 +1470,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "retract_at_layer_change description" msgid "Retract the filament when the nozzle is moving to the next layer." -msgstr "" +msgstr "노즐이 다음 층으로 이동할 때 필라멘트를 후퇴시킵니다. " #: fdmprinter.def.json msgctxt "retraction_amount label" @@ -1479,7 +1480,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "retraction_amount description" msgid "The length of material retracted during a retraction move." -msgstr "" +msgstr "후퇴 이동 중에 수축 된 재료의 길이입니다. " #: fdmprinter.def.json msgctxt "retraction_speed label" @@ -1489,7 +1490,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "retraction_speed description" msgid "The speed at which the filament is retracted and primed during a retraction move." -msgstr "" +msgstr "후퇴 이동 중에 필라멘트가 수축되고 프라이밍되는 속도입니다. " #: fdmprinter.def.json msgctxt "retraction_retract_speed label" @@ -1499,7 +1500,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "retraction_retract_speed description" msgid "The speed at which the filament is retracted during a retraction move." -msgstr "" +msgstr "후퇴 이동 중에 필라멘트가 후퇴하는 속도입니다. " #: fdmprinter.def.json msgctxt "retraction_prime_speed label" @@ -1509,7 +1510,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "retraction_prime_speed description" msgid "The speed at which the filament is primed during a retraction move." -msgstr "" +msgstr "후퇴 이동 중에 필라멘트가 프라이밍되는 속도입니다. " #: fdmprinter.def.json msgctxt "retraction_extra_prime_amount label" @@ -1519,7 +1520,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "retraction_extra_prime_amount description" msgid "Some material can ooze away during a travel move, which can be compensated for here." -msgstr "" +msgstr "여행 중에 이동할 수있는 물질이 있습니다.이 물질은 여기에서 보상받을 수 있습니다. " #: fdmprinter.def.json msgctxt "retraction_min_travel label" @@ -1529,7 +1530,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "retraction_min_travel description" msgid "The minimum distance of travel needed for a retraction to happen at all. This helps to get fewer retractions in a small area." -msgstr "" +msgstr "수축이 일어나기 위해 필요한 최소한의 이동 거리. 이렇게하면 작은 영역에서 더 적은 수축을 얻을 수 있습니다. " #: fdmprinter.def.json msgctxt "retraction_count_max label" @@ -1539,7 +1540,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "retraction_count_max description" msgid "This setting limits the number of retractions occurring within the minimum extrusion distance window. Further retractions within this window will be ignored. This avoids retracting repeatedly on the same piece of filament, as that can flatten the filament and cause grinding issues." -msgstr "" +msgstr "이 설정은 최소 돌출 거리 창 내에서 발생하는 후퇴 수를 제한합니다. 이 창 내에서 더 이상의 철회는 무시됩니다. 이렇게하면 필라멘트를 평평하게하고 연삭 문제를 일으킬 수 있으므로 동일한 필라멘트에서 반복적으로 후퇴하지 않습니다. " #: fdmprinter.def.json msgctxt "retraction_extrusion_window label" @@ -1549,7 +1550,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "retraction_extrusion_window description" msgid "The window in which the maximum retraction count is enforced. This value should be approximately the same as the retraction distance, so that effectively the number of times a retraction passes the same patch of material is limited." -msgstr "" +msgstr "최대 후퇴 횟수가 시행되는 창입니다. 이 값은 수축 거리와 거의 같아야하므로 같은 수축 패치가 통과하는 횟수가 효과적으로 제한됩니다. " #: fdmprinter.def.json msgctxt "material_standby_temperature label" @@ -1559,7 +1560,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "material_standby_temperature description" msgid "The temperature of the nozzle when another nozzle is currently used for printing." -msgstr "" +msgstr "다른 노즐이 현재 인쇄에 사용되는 경우의 노즐 온도. " #: fdmprinter.def.json msgctxt "switch_extruder_retraction_amount label" @@ -1569,7 +1570,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "switch_extruder_retraction_amount description" msgid "The amount of retraction: Set at 0 for no retraction at all. This should generally be the same as the length of the heat zone." -msgstr "" +msgstr "수축 양 : 수축이 전혀없는 경우 0으로 설정합니다. 일반적으로 열 영역의 길이와 같아야합니다. " #: fdmprinter.def.json msgctxt "switch_extruder_retraction_speeds label" @@ -1579,7 +1580,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "switch_extruder_retraction_speeds description" msgid "The speed at which the filament is retracted. A higher retraction speed works better, but a very high retraction speed can lead to filament grinding." -msgstr "" +msgstr "필라멘트가 수축되는 속도입니다. 후퇴 속도가 빠르면 빠르지 만 후퇴 속도가 높으면 필라멘트 연삭으로 이어질 수 있습니다. " #: fdmprinter.def.json msgctxt "switch_extruder_retraction_speed label" @@ -1589,7 +1590,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "switch_extruder_retraction_speed description" msgid "The speed at which the filament is retracted during a nozzle switch retract." -msgstr "" +msgstr "노즐 스위치가 들어갈 때 필라멘트가 후퇴하는 속도. " #: fdmprinter.def.json msgctxt "switch_extruder_prime_speed label" @@ -1599,7 +1600,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "switch_extruder_prime_speed description" msgid "The speed at which the filament is pushed back after a nozzle switch retraction." -msgstr "" +msgstr "노즐 스위치 수축 후 필라멘트가 뒤로 밀리는 속도. " #: fdmprinter.def.json msgctxt "speed label" @@ -1609,7 +1610,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed description" msgid "Speed" -msgstr "" +msgstr "속도 " #: fdmprinter.def.json msgctxt "speed_print label" @@ -1619,7 +1620,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_print description" msgid "The speed at which printing happens." -msgstr "" +msgstr "인쇄 속도. " #: fdmprinter.def.json msgctxt "speed_infill label" @@ -1629,7 +1630,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_infill description" msgid "The speed at which infill is printed." -msgstr "" +msgstr "충진물이 인쇄되는 속도. " #: fdmprinter.def.json msgctxt "speed_wall label" @@ -1639,7 +1640,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_wall description" msgid "The speed at which the walls are printed." -msgstr "" +msgstr "벽이 인쇄되는 속도입니다. " #: fdmprinter.def.json msgctxt "speed_wall_0 label" @@ -1649,7 +1650,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_wall_0 description" msgid "The speed at which the outermost walls are printed. Printing the outer wall at a lower speed improves the final skin quality. However, having a large difference between the inner wall speed and the outer wall speed will affect quality in a negative way." -msgstr "" +msgstr "가장 바깥 쪽 벽이 인쇄되는 속도입니다. 외벽을 더 낮은 속도로 인쇄하면 최종 피부 품질이 향상됩니다. 그러나 내벽 속도와 외벽 속도 사이에 큰 차이가있을 경우 부정적인 방식으로 품질에 영향을 미칩니다. " #: fdmprinter.def.json msgctxt "speed_wall_x label" @@ -1659,7 +1660,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_wall_x description" msgid "The speed at which all inner walls are printed. Printing the inner wall faster than the outer wall will reduce printing time. It works well to set this in between the outer wall speed and the infill speed." -msgstr "" +msgstr "모든 내부 벽이 인쇄되는 속도입니다. 내벽을 외벽보다 빠르게 인쇄하면 인쇄 시간이 단축됩니다. 외벽 속도와 충전 속도 사이에서 이것을 설정하는 것이 효과적입니다. " #: fdmprinter.def.json msgctxt "speed_topbottom label" @@ -1669,7 +1670,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_topbottom description" msgid "The speed at which top/bottom layers are printed." -msgstr "" +msgstr "위쪽 / 아래쪽 레이어가 인쇄되는 속도입니다. " #: fdmprinter.def.json msgctxt "speed_support label" @@ -1679,7 +1680,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_support description" msgid "The speed at which the support structure is printed. Printing support at higher speeds can greatly reduce printing time. The surface quality of the support structure is not important since it is removed after printing." -msgstr "" +msgstr "지지 구조가 인쇄되는 속도입니다. 고속 인쇄 지원은 인쇄 시간을 크게 단축시킵니다. 지지 구조체의 표면 품질은 인쇄 후에 제거되므로 중요하지 않습니다. " #: fdmprinter.def.json msgctxt "speed_support_infill label" @@ -1689,7 +1690,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_support_infill description" msgid "The speed at which the infill of support is printed. Printing the infill at lower speeds improves stability." -msgstr "" +msgstr "지지대의 충전물이 인쇄되는 속도. infill을 저속으로 인쇄하면 안정성이 향상됩니다. " #: fdmprinter.def.json msgctxt "speed_support_interface label" @@ -1699,7 +1700,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_support_interface description" msgid "The speed at which the roofs and floors of support are printed. Printing them at lower speeds can improve overhang quality." -msgstr "" +msgstr "지지대의 지붕과 바닥이 인쇄되는 속도. 인쇄 속도를 느리게하면 돌출 품질이 향상 될 수 있습니다. " #: fdmprinter.def.json msgctxt "speed_support_roof label" @@ -1709,7 +1710,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_support_roof description" msgid "The speed at which the roofs of support are printed. Printing them at lower speeds can improve overhang quality." -msgstr "" +msgstr "지지대의 지붕이 인쇄되는 속도입니다. 인쇄 속도를 느리게하면 돌출 품질이 향상 될 수 있습니다. " #: fdmprinter.def.json msgctxt "speed_support_bottom label" @@ -1719,7 +1720,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_support_bottom description" msgid "The speed at which the floor of support is printed. Printing it at lower speed can improve adhesion of support on top of your model." -msgstr "" +msgstr "지지대 바닥 인쇄 속도. 더 낮은 속도로 인쇄하면 모델 상단의 지지력이 향상됩니다. " #: fdmprinter.def.json msgctxt "speed_prime_tower label" @@ -1729,7 +1730,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_prime_tower description" msgid "The speed at which the prime tower is printed. Printing the prime tower slower can make it more stable when the adhesion between the different filaments is suboptimal." -msgstr "" +msgstr "프라임 타워가 인쇄되는 속도. 프라임 타워를 더 천천히 인쇄하면 다른 필라멘트 사이의 접착력이 차선적일 때보다 안정적으로 만들 수 있습니다. " #: fdmprinter.def.json msgctxt "speed_travel label" @@ -1739,7 +1740,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_travel description" msgid "The speed at which travel moves are made." -msgstr "" +msgstr "움직일때의 이동 속도." #: fdmprinter.def.json msgctxt "speed_layer_0 label" @@ -1749,7 +1750,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_layer_0 description" msgid "The speed for the initial layer. A lower value is advised to improve adhesion to the build plate." -msgstr "" +msgstr "초기 레이어의 속도입니다. 빌드 플레이트에 대한 접착력을 향상 시키려면 낮은 값을 권합니다. " #: fdmprinter.def.json msgctxt "speed_print_layer_0 label" @@ -1759,7 +1760,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_print_layer_0 description" msgid "The speed of printing for the initial layer. A lower value is advised to improve adhesion to the build plate." -msgstr "" +msgstr "초기 레이어의 인쇄 속도입니다. 빌드 플레이트에 대한 접착력을 향상 시키려면 낮은 값을 권합니다. " #: fdmprinter.def.json msgctxt "speed_travel_layer_0 label" @@ -1769,7 +1770,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_travel_layer_0 description" msgid "The speed of travel moves in the initial layer. A lower value is advised to prevent pulling previously printed parts away from the build plate. The value of this setting can automatically be calculated from the ratio between the Travel Speed and the Print Speed." -msgstr "" +msgstr "이동 속도는 초기 레이어에서 이동합니다. 이전에 인쇄 된 부품을 빌드 플레이트에서 빼내는 것을 방지하려면 더 낮은 값을 권합니다. 이 설정의 값은 이동 속도와 인쇄 속도 사이의 비율로부터 자동으로 계산 될 수 있습니다. " #: fdmprinter.def.json msgctxt "skirt_brim_speed label" @@ -1779,7 +1780,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "skirt_brim_speed description" msgid "The speed at which the skirt and brim are printed. Normally this is done at the initial layer speed, but sometimes you might want to print the skirt or brim at a different speed." -msgstr "" +msgstr "스커트와 가장자리가 인쇄되는 속도입니다. 일반적으로 이것은 초기 레이어 속도에서 수행되지만 때로는 스커트 나 가장자리를 다른 속도로 인쇄하려고 할 수 있습니다. " #: fdmprinter.def.json msgctxt "max_feedrate_z_override label" @@ -1789,7 +1790,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "max_feedrate_z_override description" msgid "The maximum speed with which the build plate is moved. Setting this to zero causes the print to use the firmware defaults for the maximum z speed." -msgstr "" +msgstr "빌드 플레이트가 움직이는 최대 속도. 이 값을 0으로 설정하면 인쇄시 최대 z 속도의 펌웨어 기본값이 사용됩니다. " #: fdmprinter.def.json msgctxt "speed_slowdown_layers label" @@ -1799,7 +1800,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_slowdown_layers description" msgid "The first few layers are printed slower than the rest of the model, to get better adhesion to the build plate and improve the overall success rate of prints. The speed is gradually increased over these layers." -msgstr "" +msgstr "처음 몇 개의 레이어는 모델의 나머지 부분보다 느리게 인쇄되어 빌드 플레이트에 대한보다 나은 접착력을 얻고 인쇄물의 전체 성공률을 향상시킵니다. 속도는이 층 위로 점진적으로 증가합니다. " #: fdmprinter.def.json msgctxt "speed_equalize_flow_enabled label" @@ -1809,7 +1810,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_equalize_flow_enabled description" msgid "Print thinner than normal lines faster so that the amount of material extruded per second remains the same. Thin pieces in your model might require lines printed with smaller line width than provided in the settings. This setting controls the speed changes for such lines." -msgstr "" +msgstr "일반 라인보다 얇게 인쇄하여 초당 압출되는 재료의 양이 동일하게 유지되도록하십시오. 모델의 얇은 부분에는 설정에서 제공 한 것보다 작은 선 너비로 선이 인쇄되어야 할 수 있습니다. 이 설정은 이러한 선의 속도 변경을 제어합니다. " #: fdmprinter.def.json msgctxt "speed_equalize_flow_max label" @@ -1819,7 +1820,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "speed_equalize_flow_max description" msgid "Maximum print speed when adjusting the print speed in order to equalize flow." -msgstr "" +msgstr "인쇄 속도를 조정할 때 최대 인쇄 속도로 흐름을 균등하게 유지합니다. " #: fdmprinter.def.json msgctxt "acceleration_enabled label" @@ -1829,7 +1830,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_enabled description" msgid "Enables adjusting the print head acceleration. Increasing the accelerations can reduce printing time at the cost of print quality." -msgstr "" +msgstr "프린트 헤드 가속도를 조정할 수 있습니다. 가속도를 높이면 인쇄 품질을 저하시키면서 인쇄 시간을 줄일 수 있습니다. " #: fdmprinter.def.json msgctxt "acceleration_print label" @@ -1839,7 +1840,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_print description" msgid "The acceleration with which printing happens." -msgstr "" +msgstr "인쇄 속도가 빨라집니다. " #: fdmprinter.def.json msgctxt "acceleration_infill label" @@ -1849,7 +1850,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_infill description" msgid "The acceleration with which infill is printed." -msgstr "" +msgstr "충진물이 인쇄되는 가속도. " #: fdmprinter.def.json msgctxt "acceleration_wall label" @@ -1859,7 +1860,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_wall description" msgid "The acceleration with which the walls are printed." -msgstr "" +msgstr "벽이 가속되는 가속도. " #: fdmprinter.def.json msgctxt "acceleration_wall_0 label" @@ -1869,7 +1870,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_wall_0 description" msgid "The acceleration with which the outermost walls are printed." -msgstr "" +msgstr "가장 바깥 쪽 벽이 인쇄되는 가속도입니다. " #: fdmprinter.def.json msgctxt "acceleration_wall_x label" @@ -1879,7 +1880,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_wall_x description" msgid "The acceleration with which all inner walls are printed." -msgstr "" +msgstr "모든 내부 벽이 인쇄되는 가속도입니다. " #: fdmprinter.def.json msgctxt "acceleration_topbottom label" @@ -1889,7 +1890,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_topbottom description" msgid "The acceleration with which top/bottom layers are printed." -msgstr "" +msgstr "위쪽 / 아래쪽 레이어가 인쇄되는 가속도입니다. " #: fdmprinter.def.json msgctxt "acceleration_support label" @@ -1899,7 +1900,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_support description" msgid "The acceleration with which the support structure is printed." -msgstr "" +msgstr "지지 구조가 인쇄되는 가속도. " #: fdmprinter.def.json msgctxt "acceleration_support_infill label" @@ -1909,7 +1910,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_support_infill description" msgid "The acceleration with which the infill of support is printed." -msgstr "" +msgstr "지지대의 충전물이 인쇄되는 가속도. " #: fdmprinter.def.json msgctxt "acceleration_support_interface label" @@ -1919,7 +1920,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_support_interface description" msgid "The acceleration with which the roofs and floors of support are printed. Printing them at lower acceleration can improve overhang quality." -msgstr "" +msgstr "지지대의 지붕과 바닥이 인쇄되는 가속도. 낮은 가속도로 인쇄하면 돌출 품질이 향상 될 수 있습니다. " #: fdmprinter.def.json msgctxt "acceleration_support_roof label" @@ -1929,7 +1930,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_support_roof description" msgid "The acceleration with which the roofs of support are printed. Printing them at lower acceleration can improve overhang quality." -msgstr "" +msgstr "지지대의 지붕이 인쇄되는 가속도. 낮은 가속도로 인쇄하면 돌출 품질이 향상 될 수 있습니다. " #: fdmprinter.def.json msgctxt "acceleration_support_bottom label" @@ -1939,7 +1940,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_support_bottom description" msgid "The acceleration with which the floors of support are printed. Printing them at lower acceleration can improve adhesion of support on top of your model." -msgstr "" +msgstr "지면의 가속도가 인쇄됩니다. 보다 낮은 가속도로 인쇄하면 모델 상단에 지지력을 향상시킬 수 있습니다. " #: fdmprinter.def.json msgctxt "acceleration_prime_tower label" @@ -1949,7 +1950,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_prime_tower description" msgid "The acceleration with which the prime tower is printed." -msgstr "" +msgstr "프라임 타워가 인쇄되는 가속도. " #: fdmprinter.def.json msgctxt "acceleration_travel label" @@ -1959,7 +1960,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_travel description" msgid "The acceleration with which travel moves are made." -msgstr "" +msgstr "여행이 움직이는 가속도가 만들어집니다. " #: fdmprinter.def.json msgctxt "acceleration_layer_0 label" @@ -1969,7 +1970,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_layer_0 description" msgid "The acceleration for the initial layer." -msgstr "" +msgstr "초기 레이어의 가속도입니다. " #: fdmprinter.def.json msgctxt "acceleration_print_layer_0 label" @@ -1979,7 +1980,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_print_layer_0 description" msgid "The acceleration during the printing of the initial layer." -msgstr "" +msgstr "초기 레이어 인쇄 중 가속도. " #: fdmprinter.def.json msgctxt "acceleration_travel_layer_0 label" @@ -1989,7 +1990,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_travel_layer_0 description" msgid "The acceleration for travel moves in the initial layer." -msgstr "" +msgstr "이동 가속도는 초기 레이어에서 이동합니다. " #: fdmprinter.def.json msgctxt "acceleration_skirt_brim label" @@ -1999,7 +2000,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "acceleration_skirt_brim description" msgid "The acceleration with which the skirt and brim are printed. Normally this is done with the initial layer acceleration, but sometimes you might want to print the skirt or brim at a different acceleration." -msgstr "" +msgstr "치마와 가장자리가 인쇄되는 가속도. 일반적으로 이것은 초기 레이어 가속으로 이루어 지지만 때로는 스커트 나 테두리를 다른 가속으로 인쇄하려고 할 수 있습니다. " #: fdmprinter.def.json msgctxt "jerk_enabled label" @@ -2009,7 +2010,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_enabled description" msgid "Enables adjusting the jerk of print head when the velocity in the X or Y axis changes. Increasing the jerk can reduce printing time at the cost of print quality." -msgstr "" +msgstr "X 또는 Y 축의 속도가 변경 될 때 프린트 헤드의 속도를 조정할 수 있습니다. 저크를 높이면 인쇄 품질을 저하시키면서 인쇄 시간을 줄일 수 있습니다. " #: fdmprinter.def.json msgctxt "jerk_print label" @@ -2019,7 +2020,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_print description" msgid "The maximum instantaneous velocity change of the print head." -msgstr "" +msgstr "프린트 헤드의 최대 순간 속도 변화. " #: fdmprinter.def.json msgctxt "jerk_infill label" @@ -2029,7 +2030,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_infill description" msgid "The maximum instantaneous velocity change with which infill is printed." -msgstr "" +msgstr "충진물이 인쇄되는 최대 순간 속도 변화. " #: fdmprinter.def.json msgctxt "jerk_wall label" @@ -2039,7 +2040,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_wall description" msgid "The maximum instantaneous velocity change with which the walls are printed." -msgstr "" +msgstr "벽이 인쇄되는 최대 순간 속도 변화. " #: fdmprinter.def.json msgctxt "jerk_wall_0 label" @@ -2049,7 +2050,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_wall_0 description" msgid "The maximum instantaneous velocity change with which the outermost walls are printed." -msgstr "" +msgstr "가장 바깥 쪽 벽이 인쇄되는 최대 순간 속도 변화. " #: fdmprinter.def.json msgctxt "jerk_wall_x label" @@ -2059,7 +2060,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_wall_x description" msgid "The maximum instantaneous velocity change with which all inner walls are printed." -msgstr "" +msgstr "모든 내부 벽이 인쇄되는 최대 순간 속도 변화. " #: fdmprinter.def.json msgctxt "jerk_topbottom label" @@ -2069,7 +2070,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_topbottom description" msgid "The maximum instantaneous velocity change with which top/bottom layers are printed." -msgstr "" +msgstr "상단 / 하단 레이어가 인쇄되는 최대 순간 속도 변화. " #: fdmprinter.def.json msgctxt "jerk_support label" @@ -2079,7 +2080,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_support description" msgid "The maximum instantaneous velocity change with which the support structure is printed." -msgstr "" +msgstr "지지 구조가 인쇄되는 최대 순간 속도 변화. " #: fdmprinter.def.json msgctxt "jerk_support_infill label" @@ -2089,7 +2090,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_support_infill description" msgid "The maximum instantaneous velocity change with which the infill of support is printed." -msgstr "" +msgstr "지지대가 채워지는 최대 순간 속도 변화. " #: fdmprinter.def.json msgctxt "jerk_support_interface label" @@ -2099,7 +2100,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_support_interface description" msgid "The maximum instantaneous velocity change with which the roofs and floors of support are printed." -msgstr "" +msgstr "지지대의 지붕과 바닥이 인쇄되는 최대 순간 속도 변화. " #: fdmprinter.def.json msgctxt "jerk_support_roof label" @@ -2109,7 +2110,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_support_roof description" msgid "The maximum instantaneous velocity change with which the roofs of support are printed." -msgstr "" +msgstr "지지대의 지붕이 인쇄되는 최대 순간 속도 변화. " #: fdmprinter.def.json msgctxt "jerk_support_bottom label" @@ -2119,7 +2120,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_support_bottom description" msgid "The maximum instantaneous velocity change with which the floors of support are printed." -msgstr "" +msgstr "지지대의 바닥이 인쇄되는 최대 순간 속도 변화. " #: fdmprinter.def.json msgctxt "jerk_prime_tower label" @@ -2129,7 +2130,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_prime_tower description" msgid "The maximum instantaneous velocity change with which the prime tower is printed." -msgstr "" +msgstr "프라임 타워가 인쇄되는 최대 순간 속도 변화. " #: fdmprinter.def.json msgctxt "jerk_travel label" @@ -2139,7 +2140,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_travel description" msgid "The maximum instantaneous velocity change with which travel moves are made." -msgstr "" +msgstr "이동이 이동하는 최대 순간 속도 변화. " #: fdmprinter.def.json msgctxt "jerk_layer_0 label" @@ -2149,7 +2150,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_layer_0 description" msgid "The print maximum instantaneous velocity change for the initial layer." -msgstr "" +msgstr "초기 레이어의 인쇄 최대 순간 속도 변화. " #: fdmprinter.def.json msgctxt "jerk_print_layer_0 label" @@ -2159,7 +2160,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_print_layer_0 description" msgid "The maximum instantaneous velocity change during the printing of the initial layer." -msgstr "" +msgstr "초기 층의 인쇄 중 최대 순간 속도 변화. " #: fdmprinter.def.json msgctxt "jerk_travel_layer_0 label" @@ -2169,7 +2170,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_travel_layer_0 description" msgid "The acceleration for travel moves in the initial layer." -msgstr "" +msgstr "이동 가속도는 초기 레이어에서 이동합니다. " #: fdmprinter.def.json msgctxt "jerk_skirt_brim label" @@ -2179,7 +2180,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "jerk_skirt_brim description" msgid "The maximum instantaneous velocity change with which the skirt and brim are printed." -msgstr "" +msgstr "스커트와 고리가 인쇄되는 최대 순간 속도 변화. " #: fdmprinter.def.json msgctxt "travel label" @@ -2189,7 +2190,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "travel description" msgid "travel" -msgstr "" +msgstr "이동 " #: fdmprinter.def.json msgctxt "retraction_combing label" @@ -2199,7 +2200,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "retraction_combing description" msgid "Combing keeps the nozzle within already printed areas when traveling. This results in slightly longer travel moves but reduces the need for retractions. If combing is off, the material will retract and the nozzle moves in a straight line to the next point. It is also possible to avoid combing over top/bottom skin areas by combing within the infill only." -msgstr "" +msgstr "빗질은 여행 할 때 이미 인쇄 된 영역 내에 노즐을 유지합니다. 이로 인해 여행 이동이 약간 더 길어 지지만 수축의 필요성은 줄어 듭니다. 빗질이 꺼져 있으면 재료가 후퇴하고 노즐이 직선으로 다음 점으로 이동합니다. 또한 infill 내에서만 빗질하여 상 / 하 피부 영역을 빗질하는 것을 피할 수 있습니다. " #: fdmprinter.def.json msgctxt "retraction_combing option off" @@ -2224,7 +2225,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "travel_retract_before_outer_wall description" msgid "Always retract when moving to start an outer wall." -msgstr "" +msgstr "외벽을 시작하기 위해 이동할 때 항상 후퇴합니다. " #: fdmprinter.def.json msgctxt "travel_avoid_other_parts label" @@ -2234,7 +2235,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "travel_avoid_other_parts description" msgid "The nozzle avoids already printed parts when traveling. This option is only available when combing is enabled." -msgstr "" +msgstr "노즐은 여행 할 때 이미 인쇄 된 부품을 피합니다. 이 옵션은 빗질이 활성화 된 경우에만 사용할 수 있습니다. " #: fdmprinter.def.json msgctxt "travel_avoid_distance label" @@ -2244,7 +2245,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "travel_avoid_distance description" msgid "The distance between the nozzle and already printed parts when avoiding during travel moves." -msgstr "" +msgstr "이동 중에 피할 때 노즐과 이미 인쇄 된 부분 사이의 거리. " #: fdmprinter.def.json msgctxt "start_layers_at_same_position label" @@ -2254,7 +2255,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "start_layers_at_same_position description" msgid "In each layer start with printing the object near the same point, so that we don't start a new layer with printing the piece which the previous layer ended with. This makes for better overhangs and small parts, but increases printing time." -msgstr "" +msgstr "각 레이어에서 같은 지점 근처에 개체를 인쇄하는 것으로 시작하여 이전 레이어가 끝난 부분을 인쇄하여 새 레이어를 시작하지 마십시오. 이것은 오버행 (overhangs) 및 작은 부품을 개선하지만 인쇄 시간을 증가시킵니다. " #: fdmprinter.def.json msgctxt "layer_start_x label" @@ -2264,7 +2265,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "layer_start_x description" msgid "The X coordinate of the position near where to find the part to start printing each layer." -msgstr "" +msgstr "각 레이어의 인쇄를 시작할 부분을 찾을 위치 근처의 X 좌표입니다. " #: fdmprinter.def.json msgctxt "layer_start_y label" @@ -2274,7 +2275,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "layer_start_y description" msgid "The Y coordinate of the position near where to find the part to start printing each layer." -msgstr "" +msgstr "각 레이어 인쇄를 시작할 부분을 찾을 위치 근처의 위치에 대한 Y 좌표입니다. " #: fdmprinter.def.json msgctxt "retraction_hop_enabled label" @@ -2284,7 +2285,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "retraction_hop_enabled description" msgid "Whenever a retraction is done, the build plate is lowered to create clearance between the nozzle and the print. It prevents the nozzle from hitting the print during travel moves, reducing the chance to knock the print from the build plate." -msgstr "" +msgstr "수축이 완료 될 때마다 빌드 플레이트가 내려져 노즐과 인쇄물 사이에 여유 공간이 생깁니다. 이동 이동 중에 노즐이 인쇄물에 부딪치지 않도록하여 인쇄판을 노크 할 기회를 줄입니다. " #: fdmprinter.def.json msgctxt "retraction_hop_only_when_collides label" @@ -2294,7 +2295,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "retraction_hop_only_when_collides description" msgid "Only perform a Z Hop when moving over printed parts which cannot be avoided by horizontal motion by Avoid Printed Parts when Traveling." -msgstr "" +msgstr "이동 시, 인쇄물을 피함으로써 수평 이동으로 피할 수없는 인쇄물 위로 이동할 때만 Z 홉을 수행하십시오." #: fdmprinter.def.json msgctxt "retraction_hop label" @@ -2304,7 +2305,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "retraction_hop description" msgid "The height difference when performing a Z Hop." -msgstr "" +msgstr "Z 홉을 수행 할 때의 높이 차이. " #: fdmprinter.def.json msgctxt "retraction_hop_after_extruder_switch label" @@ -2314,7 +2315,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "retraction_hop_after_extruder_switch description" msgid "After the machine switched from one extruder to the other, the build plate is lowered to create clearance between the nozzle and the print. This prevents the nozzle from leaving oozed material on the outside of a print." -msgstr "" +msgstr "기계가 하나의 압출기에서 다른 압출기로 전환 된 후, 빌드 플레이트가 하강되어 노즐과 인쇄물 사이에 간극이 생깁니다. 이렇게하면 노즐이 인쇄물의 외부에 흘러 나올 수 있습니다. " #: fdmprinter.def.json msgctxt "cooling label" @@ -2324,7 +2325,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "cooling description" msgid "Cooling" -msgstr "" +msgstr "냉각 " #: fdmprinter.def.json msgctxt "cool_fan_enabled label" @@ -2334,7 +2335,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "cool_fan_enabled description" msgid "Enables the print cooling fans while printing. The fans improve print quality on layers with short layer times and bridging / overhangs." -msgstr "" +msgstr "인쇄 중에 인쇄 냉각 팬을 활성화합니다. 팬은 짧은 레이어 시간 및 브리징 / 오버행으로 레이어의 인쇄 품질을 향상시킵니다. " #: fdmprinter.def.json msgctxt "cool_fan_speed label" @@ -2344,7 +2345,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "cool_fan_speed description" msgid "The speed at which the print cooling fans spin." -msgstr "" +msgstr "인쇄 냉각 팬이 회전하는 속도입니다. " #: fdmprinter.def.json msgctxt "cool_fan_speed_min label" @@ -2354,7 +2355,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "cool_fan_speed_min description" msgid "The speed at which the fans spin before hitting the threshold. When a layer prints faster than the threshold, the fan speed gradually inclines towards the maximum fan speed." -msgstr "" +msgstr "팬이 임계 값에 도달하기 전에 회전하는 속도입니다. 레이어가 임계 값보다 빠르게 인쇄되면 팬 속도가 최대 팬 속도쪽으로 점차 기울어집니다. " #: fdmprinter.def.json msgctxt "cool_fan_speed_max label" @@ -2364,7 +2365,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "cool_fan_speed_max description" msgid "The speed at which the fans spin on the minimum layer time. The fan speed gradually increases between the regular fan speed and maximum fan speed when the threshold is hit." -msgstr "" +msgstr "최소 레이어 시간에 팬이 회전하는 속도입니다. 임계 값에 도달하면 일반 팬 속도와 최대 팬 속도 사이에서 팬 속도가 서서히 증가합니다. " #: fdmprinter.def.json msgctxt "cool_min_layer_time_fan_speed_max label" @@ -2374,7 +2375,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "cool_min_layer_time_fan_speed_max description" msgid "The layer time which sets the threshold between regular fan speed and maximum fan speed. Layers that print slower than this time use regular fan speed. For faster layers the fan speed gradually increases towards the maximum fan speed." -msgstr "" +msgstr "정규 팬 속도와 최대 팬 속도 사이의 임계 값을 설정하는 레이어 시간입니다. 이 시간보다 느리게 인쇄되는 레이어는 일반 팬 속도를 사용합니다. 빠른 레이어의 경우 팬 속도가 최대 팬 속도쪽으로 점차 증가합니다. " #: fdmprinter.def.json msgctxt "cool_fan_speed_0 label" @@ -2384,7 +2385,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "cool_fan_speed_0 description" msgid "The speed at which the fans spin at the start of the print. In subsequent layers the fan speed is gradually increased up to the layer corresponding to Regular Fan Speed at Height." -msgstr "" +msgstr "인쇄 시작시 팬이 회전하는 속도입니다. 후속 레이어에서는 팬 속도가 높이의 일반 팬 속도에 해당하는 레이어까지 점차 증가합니다. " #: fdmprinter.def.json msgctxt "cool_fan_full_at_height label" @@ -2394,7 +2395,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "cool_fan_full_at_height description" msgid "The height at which the fans spin on regular fan speed. At the layers below the fan speed gradually increases from Initial Fan Speed to Regular Fan Speed." -msgstr "" +msgstr "일반 팬 속도로 팬이 회전하는 높이입니다. 아래의 레이어에서 팬 속도는 초기 팬 속도에서 정규 팬 속도로 점차 증가합니다. " #: fdmprinter.def.json msgctxt "cool_fan_full_layer label" @@ -2404,7 +2405,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "cool_fan_full_layer description" msgid "The layer at which the fans spin on regular fan speed. If regular fan speed at height is set, this value is calculated and rounded to a whole number." -msgstr "" +msgstr "팬이 일반 팬 속도로 회전하는 레이어입니다. 높이의 일반 팬 속도를 설정하면이 값이 계산되고 정수로 반올림됩니다. " #: fdmprinter.def.json msgctxt "cool_min_layer_time label" @@ -2414,7 +2415,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "cool_min_layer_time description" msgid "The minimum time spent in a layer. This forces the printer to slow down, to at least spend the time set here in one layer. This allows the printed material to cool down properly before printing the next layer. Layers may still take shorter than the minimal layer time if Lift Head is disabled and if the Minimum Speed would otherwise be violated." -msgstr "" +msgstr "레이어에 소요 된 최소 시간입니다. 이렇게하면 프린터가 느려지고 적어도 한 번에 여기에 설정된 시간을 소비하게됩니다. 이렇게하면 다음 레이어를 인쇄하기 전에 인쇄물을 적절히 냉각시킬 수 있습니다. 리프트 헤드가 비활성화되고 최소 속도가 위반되는 경우 레이어가 최소 레이어 시간보다 짧게 걸릴 수 있습니다. " #: fdmprinter.def.json msgctxt "cool_min_speed label" @@ -2424,7 +2425,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "cool_min_speed description" msgid "The minimum print speed, despite slowing down due to the minimum layer time. When the printer would slow down too much, the pressure in the nozzle would be too low and result in bad print quality." -msgstr "" +msgstr "최소 레이어 시간으로 인해 속도가 느려지 긴하지만 최소 인쇄 속도. 프린터의 속도가 너무 느려지면 노즐의 압력이 너무 낮아 인쇄 품질이 나빠질 수 있습니다. " #: fdmprinter.def.json msgctxt "cool_lift_head label" @@ -2434,7 +2435,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "cool_lift_head description" msgid "When the minimum speed is hit because of minimum layer time, lift the head away from the print and wait the extra time until the minimum layer time is reached." -msgstr "" +msgstr "최소한의 레이어 시간으로 인해 최소 속도에 도달하면 헤드를 인쇄물에서 들어 올려 최소 레이어 시간에 도달 할 때까지 여분의 시간을 기다리십시오. " #: fdmprinter.def.json msgctxt "support label" @@ -2444,7 +2445,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support description" msgid "Support" -msgstr "" +msgstr "지지구조 " #: fdmprinter.def.json msgctxt "support_enable label" @@ -2454,7 +2455,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_enable description" msgid "Generate structures to support parts of the model which have overhangs. Without these structures, such parts would collapse during printing." -msgstr "" +msgstr "돌출부가있는 모델 부분을 지원하는 구조를 생성합니다. 이러한 구조가 없으면 이러한 부분이 인쇄 중에 붕괴됩니다. " #: fdmprinter.def.json msgctxt "support_extruder_nr label" @@ -2464,7 +2465,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_extruder_nr description" msgid "The extruder train to use for printing the support. This is used in multi-extrusion." -msgstr "" +msgstr "지지체 인쇄에 사용할 압출기 트레인. 이것은 다중 압출에 사용됩니다. " #: fdmprinter.def.json msgctxt "support_infill_extruder_nr label" @@ -2474,7 +2475,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_infill_extruder_nr description" msgid "The extruder train to use for printing the infill of the support. This is used in multi-extrusion." -msgstr "" +msgstr "지지대의 충전물을 인쇄하는 데 사용할 압출기 트레인. 이것은 다중 압출에 사용됩니다. " #: fdmprinter.def.json msgctxt "support_extruder_nr_layer_0 label" @@ -2484,7 +2485,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_extruder_nr_layer_0 description" msgid "The extruder train to use for printing the first layer of support infill. This is used in multi-extrusion." -msgstr "" +msgstr "제 1 층의 지지체 충전 용 인쇄에 사용되는 압출기 트레인. 이것은 다중 압출에 사용됩니다. " #: fdmprinter.def.json msgctxt "support_interface_extruder_nr label" @@ -2494,7 +2495,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_interface_extruder_nr description" msgid "The extruder train to use for printing the roofs and floors of the support. This is used in multi-extrusion." -msgstr "" +msgstr "지지대의 지붕과 바닥을 인쇄 할 때 사용하는 압출기 트레인. 이것은 다중 압출에 사용됩니다. " #: fdmprinter.def.json msgctxt "support_roof_extruder_nr label" @@ -2504,7 +2505,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_roof_extruder_nr description" msgid "The extruder train to use for printing the roofs of the support. This is used in multi-extrusion." -msgstr "" +msgstr "지지대의 지붕을 인쇄 할 때 사용하는 압출기 트레인. 이것은 다중 압출에 사용됩니다. " #: fdmprinter.def.json msgctxt "support_bottom_extruder_nr label" @@ -2514,7 +2515,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_bottom_extruder_nr description" msgid "The extruder train to use for printing the floors of the support. This is used in multi-extrusion." -msgstr "" +msgstr "지지대의 바닥을 인쇄하는 데 사용할 압출기 트레인. 이것은 다중 압출에 사용됩니다. " #: fdmprinter.def.json msgctxt "support_type label" @@ -2524,7 +2525,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_type description" msgid "Adjusts the placement of the support structures. The placement can be set to touching build plate or everywhere. When set to everywhere the support structures will also be printed on the model." -msgstr "" +msgstr "지지 구조의 배치를 조정합니다. 배치는 빌드 플레이트 또는 모든 곳을 터치하도록 설정할 수 있습니다. 모든 곳에 설정하면 모델에 지원 구조가 인쇄됩니다. " #: fdmprinter.def.json msgctxt "support_type option buildplate" @@ -2544,7 +2545,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_angle description" msgid "The minimum angle of overhangs for which support is added. At a value of 0° all overhangs are supported, 90° will not provide any support." -msgstr "" +msgstr "지원이 추가 된 오버행 각도의 최소값입니다. 0 °의 값에서 모든 돌출부가 지원되며 90 °는 지원하지 않습니다. " #: fdmprinter.def.json msgctxt "support_pattern label" @@ -2554,7 +2555,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_pattern description" msgid "The pattern of the support structures of the print. The different options available result in sturdy or easy to remove support." -msgstr "" +msgstr "프린트의지지 구조의 패턴. 사용 가능한 여러 가지 옵션을 사용하면 튼튼하고 쉽게 제거 할 수 있습니다. " #: fdmprinter.def.json msgctxt "support_pattern option lines" @@ -2594,7 +2595,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_connect_zigzags description" msgid "Connect the ZigZags. This will increase the strength of the zig zag support structure." -msgstr "" +msgstr "지그재그를 연결하십시오. 이것은 지그재그지지 구조의 강도를 증가시킵니다. " #: fdmprinter.def.json msgctxt "support_infill_rate label" @@ -2604,7 +2605,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_infill_rate description" msgid "Adjusts the density of the support structure. A higher value results in better overhangs, but the supports are harder to remove." -msgstr "" +msgstr "지지 구조의 밀도를 조정합니다. 값이 높을수록 오버행이 좋아 지지만 지지체를 제거하기가 더 어렵습니다. " #: fdmprinter.def.json msgctxt "support_line_distance label" @@ -2614,7 +2615,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_line_distance description" msgid "Distance between the printed support structure lines. This setting is calculated by the support density." -msgstr "" +msgstr "인쇄 된지지 구조 선 사이의 거리. 이 설정은 지원 밀도로 계산됩니다. " #: fdmprinter.def.json msgctxt "support_z_distance label" @@ -2624,7 +2625,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_z_distance description" msgid "Distance from the top/bottom of the support structure to the print. This gap provides clearance to remove the supports after the model is printed. This value is rounded up to a multiple of the layer height." -msgstr "" +msgstr "지지 구조의 위 / 아래에서 인쇄까지의 거리. 이 틈새는 모형 인쇄 후 지지대를 제거하기위한 공간을 제공합니다. 이 값은 레이어 높이의 배수로 반올림됩니다. " #: fdmprinter.def.json msgctxt "support_top_distance label" @@ -2634,7 +2635,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_top_distance description" msgid "Distance from the top of the support to the print." -msgstr "" +msgstr "지원 상단에서 인쇄까지의 거리. " #: fdmprinter.def.json msgctxt "support_bottom_distance label" @@ -2644,7 +2645,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_bottom_distance description" msgid "Distance from the print to the bottom of the support." -msgstr "" +msgstr "인쇄물에서 지지대의 바닥까지의 거리. " #: fdmprinter.def.json msgctxt "support_xy_distance label" @@ -2654,7 +2655,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_xy_distance description" msgid "Distance of the support structure from the print in the X/Y directions." -msgstr "" +msgstr "X / Y 방향에서 인쇄물로부터지지 구조까지의 거리. " #: fdmprinter.def.json msgctxt "support_xy_overrides_z label" @@ -2664,7 +2665,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_xy_overrides_z description" msgid "Whether the Support X/Y Distance overrides the Support Z Distance or vice versa. When X/Y overrides Z the X/Y distance can push away the support from the model, influencing the actual Z distance to the overhang. We can disable this by not applying the X/Y distance around overhangs." -msgstr "" +msgstr "지원 X / Y 거리가지지 Z 거리를 무시하는지 여부를 나타냅니다. X / Y가 Z를 오버라이드하면 X / Y 거리는 모델에서 지지점을 밀어내어 돌출부까지의 실제 Z 거리에 영향을 줄 수 있습니다. 오버행 주위에 X / Y 거리를 적용하지 않음으로써이 기능을 비활성화 할 수 있습니다. " #: fdmprinter.def.json msgctxt "support_xy_overrides_z option xy_overrides_z" @@ -2684,7 +2685,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_xy_distance_overhang description" msgid "Distance of the support structure from the overhang in the X/Y directions. " -msgstr "" +msgstr "X / Y 방향에서 오버행으로부터지지 구조까지의 거리. " #: fdmprinter.def.json msgctxt "support_bottom_stair_step_height label" @@ -2694,7 +2695,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_bottom_stair_step_height description" msgid "The height of the steps of the stair-like bottom of support resting on the model. A low value makes the support harder to remove, but too high values can lead to unstable support structures. Set to zero to turn off the stair-like behaviour." -msgstr "" +msgstr "모델에있는 지지대의 계단 모양 바닥의 계단 높이. 값이 낮 으면 지원을 제거하기가 어려워 지지만 값이 너무 높으면 불안정한 지원 구조가 생길 수 있습니다. 계단 모양의 동작을 해제하려면 0으로 설정하십시오. " #: fdmprinter.def.json msgctxt "support_bottom_stair_step_width label" @@ -2704,7 +2705,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_bottom_stair_step_width description" msgid "The maximum width of the steps of the stair-like bottom of support resting on the model. A low value makes the support harder to remove, but too high values can lead to unstable support structures." -msgstr "" +msgstr "모델에있는 지지대의 계단 모양 바닥의 최대 폭. 값이 낮 으면 지원을 제거하기가 어려워 지지만 값이 너무 높으면 불안정한 지원 구조가 생길 수 있습니다. " #: fdmprinter.def.json msgctxt "support_join_distance label" @@ -2714,7 +2715,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_join_distance description" msgid "The maximum distance between support structures in the X/Y directions. When seperate structures are closer together than this value, the structures merge into one." -msgstr "" +msgstr "X / Y 방향으로지지 구조물 사이의 최대 거리. 별도의 구조가이 값보다 가깝게 있으면 구조가 하나로 합쳐집니다. " #: fdmprinter.def.json msgctxt "support_offset label" @@ -2724,7 +2725,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_offset description" msgid "Amount of offset applied to all support polygons in each layer. Positive values can smooth out the support areas and result in more sturdy support." -msgstr "" +msgstr "각 레이어의 모든 지원 다각형에 적용된 오프셋의 양입니다. 양수 값을 사용하면 지원 영역이 원활 해지며보다 견고한 지원을받을 수 있습니다. " #: fdmprinter.def.json msgctxt "support_interface_enable label" @@ -2734,7 +2735,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_interface_enable description" msgid "Generate a dense interface between the model and the support. This will create a skin at the top of the support on which the model is printed and at the bottom of the support, where it rests on the model." -msgstr "" +msgstr "모델과 지원 사이에 조밀 한 인터페이스를 생성하십시오. 이렇게하면 모델이 인쇄 된 지원 맨 위의 스킨과 모델의 위에있는 지원 맨 아래에 스킨이 만들어집니다. " #: fdmprinter.def.json msgctxt "support_roof_enable label" @@ -2744,7 +2745,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_roof_enable description" msgid "Generate a dense slab of material between the top of support and the model. This will create a skin between the model and support." -msgstr "" +msgstr "지지대 상단과 모델 사이에 조밀 한 슬래브를 생성하십시오. 그러면 모델과 지원 사이에 스킨이 만들어집니다. " #: fdmprinter.def.json msgctxt "support_bottom_enable label" @@ -2754,7 +2755,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_bottom_enable description" msgid "Generate a dense slab of material between the bottom of the support and the model. This will create a skin between the model and support." -msgstr "" +msgstr "지지대 바닥과 모델 사이에 조밀 한 슬래브를 생성하십시오. 그러면 모델과 지원 사이에 스킨이 만들어집니다. " #: fdmprinter.def.json msgctxt "support_interface_height label" @@ -2764,7 +2765,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_interface_height description" msgid "The thickness of the interface of the support where it touches with the model on the bottom or the top." -msgstr "" +msgstr "밑면 또는 상단의 모델과 접촉하는 지지점의 인터페이스 두께입니다. " #: fdmprinter.def.json msgctxt "support_roof_height label" @@ -2774,7 +2775,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_roof_height description" msgid "The thickness of the support roofs. This controls the amount of dense layers at the top of the support on which the model rests." -msgstr "" +msgstr "받침 지붕의 두께. 이것은 모델이 놓이는 받침대 상단의 조밀 한 층의 양을 제어합니다. " #: fdmprinter.def.json msgctxt "support_bottom_height label" @@ -2784,7 +2785,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_bottom_height description" msgid "The thickness of the support floors. This controls the number of dense layers that are printed on top of places of a model on which support rests." -msgstr "" +msgstr "지지 층의 두께. 이것은 지지대가 놓여있는 모델의 상단에 인쇄되는 조밀 한 층의 수를 제어합니다. " #: fdmprinter.def.json msgctxt "support_interface_skip_height label" @@ -2794,7 +2795,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_interface_skip_height description" msgid "When checking where there's model above and below the support, take steps of the given height. Lower values will slice slower, while higher values may cause normal support to be printed in some places where there should have been support interface." -msgstr "" +msgstr "지원 모델의 위와 아래에 모델이 있는지 확인하려면 주어진 높이의 단계를 수행하십시오. 값이 낮을수록 슬라이스가 느려지고, 값이 높을수록 지원 인터페이스가 있어야하는 곳에서는 정상적인 지원이 인쇄 될 수 있습니다. " #: fdmprinter.def.json msgctxt "support_interface_density label" @@ -2804,7 +2805,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_interface_density description" msgid "Adjusts the density of the roofs and floors of the support structure. A higher value results in better overhangs, but the supports are harder to remove." -msgstr "" +msgstr "지지 구조의 지붕 및 바닥 밀도를 조정합니다. 값이 높을수록 오버행이 좋아 지지만 지지체를 제거하기가 더 어렵습니다. " #: fdmprinter.def.json msgctxt "support_roof_density label" @@ -2814,7 +2815,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_roof_density description" msgid "The density of the roofs of the support structure. A higher value results in better overhangs, but the supports are harder to remove." -msgstr "" +msgstr "지지 구조의 지붕의 밀도. 값이 높을수록 오버행이 좋아 지지만 지지체를 제거하기가 더 어렵습니다. " #: fdmprinter.def.json msgctxt "support_roof_line_distance label" @@ -2824,7 +2825,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_roof_line_distance description" msgid "Distance between the printed support roof lines. This setting is calculated by the Support Roof Density, but can be adjusted separately." -msgstr "" +msgstr "인쇄 된 지붕 루프 사이의 거리. 이 설정은지지 지붕 밀도에 의해 계산되지만 별도로 조정할 수 있습니다. " #: fdmprinter.def.json msgctxt "support_bottom_density label" @@ -2834,7 +2835,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_bottom_density description" msgid "The density of the floors of the support structure. A higher value results in better adhesion of the support on top of the model." -msgstr "" +msgstr "지지 구조체의 바닥 밀도. 값이 높을수록 지지대가 모델 위에 더 잘 접착됩니다. " #: fdmprinter.def.json msgctxt "support_bottom_line_distance label" @@ -2844,7 +2845,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_bottom_line_distance description" msgid "Distance between the printed support floor lines. This setting is calculated by the Support Floor Density, but can be adjusted separately." -msgstr "" +msgstr "인쇄 된지지 플로어 사이의 거리. 이 설정은 Support Floor Density로 계산되지만 별도로 조정할 수 있습니다. " #: fdmprinter.def.json msgctxt "support_interface_pattern label" @@ -2854,7 +2855,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_interface_pattern description" msgid "The pattern with which the interface of the support with the model is printed." -msgstr "" +msgstr "모델과 지원 인터페이스를 인쇄하는 패턴입니다. " #: fdmprinter.def.json msgctxt "support_interface_pattern option lines" @@ -2894,7 +2895,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_roof_pattern description" msgid "The pattern with which the roofs of the support are printed." -msgstr "" +msgstr "지지대의 지붕이 인쇄되는 패턴. " #: fdmprinter.def.json msgctxt "support_roof_pattern option lines" @@ -2934,7 +2935,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_bottom_pattern description" msgid "The pattern with which the floors of the support are printed." -msgstr "" +msgstr "받침대의 바닥이 인쇄되는 패턴. " #: fdmprinter.def.json msgctxt "support_bottom_pattern option lines" @@ -2974,7 +2975,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_use_towers description" msgid "Use specialized towers to support tiny overhang areas. These towers have a larger diameter than the region they support. Near the overhang the towers' diameter decreases, forming a roof." -msgstr "" +msgstr "작은 돌출 부분을 지원하기 위해 특수한 탑을 사용하십시오. 이 타워들은 그들이 지원하는 지역보다 더 큰 지름을 가지고 있습니다. 오버행 부근에서 타워의 직경이 감소하여 지붕을 형성합니다. " #: fdmprinter.def.json msgctxt "support_tower_diameter label" @@ -2984,7 +2985,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_tower_diameter description" msgid "The diameter of a special tower." -msgstr "" +msgstr "특수 타워의 지름. " #: fdmprinter.def.json msgctxt "support_minimal_diameter label" @@ -2994,7 +2995,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_minimal_diameter description" msgid "Minimum diameter in the X/Y directions of a small area which is to be supported by a specialized support tower." -msgstr "" +msgstr "특수 지지대에 의해지지 될 작은 영역의 X / Y 방향의 최소 직경. " #: fdmprinter.def.json msgctxt "support_tower_roof_angle label" @@ -3004,7 +3005,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_tower_roof_angle description" msgid "The angle of a rooftop of a tower. A higher value results in pointed tower roofs, a lower value results in flattened tower roofs." -msgstr "" +msgstr "타워 옥상의 각도입니다. 높은 값을 지정하면 뾰족한 타워 지붕이되고, 값이 낮을수록 평평한 타워 지붕이됩니다. " #: fdmprinter.def.json msgctxt "platform_adhesion label" @@ -3014,7 +3015,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "platform_adhesion description" msgid "Adhesion" -msgstr "" +msgstr "부착 " #: fdmprinter.def.json msgctxt "prime_blob_enable label" @@ -3024,7 +3025,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "prime_blob_enable description" msgid "Whether to prime the filament with a blob before printing. Turning this setting on will ensure that the extruder will have material ready at the nozzle before printing. Printing Brim or Skirt can act like priming too, in which case turning this setting off saves some time." -msgstr "" +msgstr "인쇄하기 전에 얼룩으로 필라멘트를 프라이밍할지 여부. 이 설정을 켜면 인쇄하기 전에 압출기가 노즐에서 재료를 준비 할 수 있습니다. 가장자리 또는 스커트 인쇄는 프라이밍처럼 작동 할 수 있습니다.이 경우이 설정을 해제하면 시간이 절약됩니다. " #: fdmprinter.def.json msgctxt "extruder_prime_pos_x label" @@ -3034,7 +3035,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "extruder_prime_pos_x description" msgid "The X coordinate of the position where the nozzle primes at the start of printing." -msgstr "" +msgstr "인쇄가 시작될 때 노즐이 끝내는 위치의 X 좌표입니다. " #: fdmprinter.def.json msgctxt "extruder_prime_pos_y label" @@ -3044,7 +3045,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "extruder_prime_pos_y description" msgid "The Y coordinate of the position where the nozzle primes at the start of printing." -msgstr "" +msgstr "인쇄가 시작될 때 노즐이 끝내는 위치의 Y 좌표입니다. " #: fdmprinter.def.json msgctxt "adhesion_type label" @@ -3054,7 +3055,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "adhesion_type description" msgid "Different options that help to improve both priming your extrusion and adhesion to the build plate. Brim adds a single layer flat area around the base of your model to prevent warping. Raft adds a thick grid with a roof below the model. Skirt is a line printed around the model, but not connected to the model." -msgstr "" +msgstr "귀하의 압출 및 빌드 플레이트에 대한 접착력을 향상시키는 데 도움이되는 다양한 옵션. 브림은 뒤틀림을 방지하기 위해 모델 바닥 주위에 단층 평면 영역을 추가합니다. 래프트는 모델 아래에 지붕이있는 두꺼운 격자를 추가합니다. 치마는 모델 주변에 인쇄 된 선이지만 모델에는 연결되어 있지 않습니다. " #: fdmprinter.def.json msgctxt "adhesion_type option skirt" @@ -3084,7 +3085,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "adhesion_extruder_nr description" msgid "The extruder train to use for printing the skirt/brim/raft. This is used in multi-extrusion." -msgstr "" +msgstr "스커트 / 가장자리 / 래프트 인쇄에 사용하는 압출기 트레인. 이것은 다중 압출에 사용됩니다. " #: fdmprinter.def.json msgctxt "skirt_line_count label" @@ -3094,7 +3095,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "skirt_line_count description" msgid "Multiple skirt lines help to prime your extrusion better for small models. Setting this to 0 will disable the skirt." -msgstr "" +msgstr "여러 개의 스커트 라인을 사용하여 작은 모델에 더 잘 압출 성형 할 수 있습니다. 이것을 \"0\"으로 설정하면 스커트가 비활성화됩니다. " #: fdmprinter.def.json msgctxt "skirt_gap label" @@ -3106,7 +3107,7 @@ msgctxt "skirt_gap description" msgid "" "The horizontal distance between the skirt and the first layer of the print.\n" "This is the minimum distance, multiple skirt lines will extend outwards from this distance." -msgstr "" +msgstr "스커트와 인쇄물의 첫 번째 레이어 사이의 수평 거리입니다. 이것은 최소 거리이며, 여러 스커트 라인이이 거리에서 바깥쪽으로 확장됩니다. " #: fdmprinter.def.json msgctxt "skirt_brim_minimal_length label" @@ -3116,7 +3117,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "skirt_brim_minimal_length description" msgid "The minimum length of the skirt or brim. If this length is not reached by all skirt or brim lines together, more skirt or brim lines will be added until the minimum length is reached. Note: If the line count is set to 0 this is ignored." -msgstr "" +msgstr "스커트 또는 고리의 최소 길이. 이 길이에 모든 스커트 또는 브림 선이 모두 도달하지 않으면 최소 길이에 도달 할 때까지 더 많은 스커트 또는 브림 선이 추가됩니다. 참고 : 줄 수를 \"0\"으로 설정하면 무시됩니다." #: fdmprinter.def.json msgctxt "brim_width label" @@ -3126,7 +3127,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "brim_width description" msgid "The distance from the model to the outermost brim line. A larger brim enhances adhesion to the build plate, but also reduces the effective print area." -msgstr "" +msgstr "모델에서 가장 바깥 쪽 가장자리까지의 거리입니다. 큰 테두리는 빌드 플레이트에 대한 접착력을 향상 시키지만 효과적인 인쇄 영역도 감소시킵니다. " #: fdmprinter.def.json msgctxt "brim_line_count label" @@ -3136,7 +3137,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "brim_line_count description" msgid "The number of lines used for a brim. More brim lines enhance adhesion to the build plate, but also reduces the effective print area." -msgstr "" +msgstr "가장자리에 사용되는 선의 수입니다. 더 많은 브림 선이 빌드 플레이트에 대한 접착력을 향상 시키지만 유효 프린트 영역도 감소시킵니다. " #: fdmprinter.def.json msgctxt "brim_outside_only label" @@ -3146,7 +3147,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "brim_outside_only description" msgid "Only print the brim on the outside of the model. This reduces the amount of brim you need to remove afterwards, while it doesn't reduce the bed adhesion that much." -msgstr "" +msgstr "모델 바깥 쪽 가장자리에만 인쇄하십시오. 이렇게하면 나중에 제거해야하는 가장자리의 양이 줄어들지 만 침대 접착력은 그렇게 많이 줄어들지 않습니다. " #: fdmprinter.def.json msgctxt "raft_margin label" @@ -3156,7 +3157,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_margin description" msgid "If the raft is enabled, this is the extra raft area around the model which is also given a raft. Increasing this margin will create a stronger raft while using more material and leaving less area for your print." -msgstr "" +msgstr "래프트가 활성화 된 경우 래프트가 주어진 모델 주변의 추가 뗏목 지역입니다. 이 여백을 늘리면 재료를 더 많이 사용하고 인쇄물을 적게 차지하면서 더 강력한 래프트가 만들어집니다. " #: fdmprinter.def.json msgctxt "raft_airgap label" @@ -3166,7 +3167,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_airgap description" msgid "The gap between the final raft layer and the first layer of the model. Only the first layer is raised by this amount to lower the bonding between the raft layer and the model. Makes it easier to peel off the raft." -msgstr "" +msgstr "최종 래프트 층과 모델의 첫 번째 층 사이의 틈새. 래프트 층과 모델 사이의 결합을 낮추기 위해이 양만큼 첫 번째 층만 올립니다. 래프트를 쉽게 떼어 낼 수 있습니다. " #: fdmprinter.def.json msgctxt "layer_0_z_overlap label" @@ -3176,7 +3177,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "layer_0_z_overlap description" msgid "Make the first and second layer of the model overlap in the Z direction to compensate for the filament lost in the airgap. All models above the first model layer will be shifted down by this amount." -msgstr "" +msgstr "에어 갭에서 손실 된 필라멘트를 보완하기 위해 Z 방향으로 모델의 첫 번째와 두 번째 레이어가 중첩되도록하십시오. 첫 번째 모델 레이어 위의 모든 모델은이 양만큼 아래로 이동합니다 " #: fdmprinter.def.json msgctxt "raft_surface_layers label" @@ -3186,7 +3187,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_surface_layers description" msgid "The number of top layers on top of the 2nd raft layer. These are fully filled layers that the model sits on. 2 layers result in a smoother top surface than 1." -msgstr "" +msgstr "두 번째 래프트 레이어 맨 위에있는 최상위 레이어의 수입니다. 이것들은 모델이 위치하는 완전히 채워진 레이어입니다. 2 층은 1보다 부드러운 표면을 만듭니다. " #: fdmprinter.def.json msgctxt "raft_surface_thickness label" @@ -3196,7 +3197,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_surface_thickness description" msgid "Layer thickness of the top raft layers." -msgstr "" +msgstr "상단 래프트 레이어의 레이어 두께. " #: fdmprinter.def.json msgctxt "raft_surface_line_width label" @@ -3206,7 +3207,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_surface_line_width description" msgid "Width of the lines in the top surface of the raft. These can be thin lines so that the top of the raft becomes smooth." -msgstr "" +msgstr "래프트의 윗면에있는 선의 폭. 래프트의 상단이 매끄럽도록 얇은 선으로 구성 될 수 있습니다. " #: fdmprinter.def.json msgctxt "raft_surface_line_spacing label" @@ -3216,7 +3217,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_surface_line_spacing description" msgid "The distance between the raft lines for the top raft layers. The spacing should be equal to the line width, so that the surface is solid." -msgstr "" +msgstr "상단 래프트 레이어에 대한 래프트 사이의 거리. 간격은 선 너비와 동일해야 표면이 단색입니다. " #: fdmprinter.def.json msgctxt "raft_interface_thickness label" @@ -3226,7 +3227,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_interface_thickness description" msgid "Layer thickness of the middle raft layer." -msgstr "" +msgstr "중간 래프트 층의 층 두께. " #: fdmprinter.def.json msgctxt "raft_interface_line_width label" @@ -3236,7 +3237,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_interface_line_width description" msgid "Width of the lines in the middle raft layer. Making the second layer extrude more causes the lines to stick to the build plate." -msgstr "" +msgstr "중간 래프트 층의 선폭. 두 번째 레이어를 더 돌출 시키면 선이 빌드 플레이트에 달라 붙습니다. " #: fdmprinter.def.json msgctxt "raft_interface_line_spacing label" @@ -3246,7 +3247,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_interface_line_spacing description" msgid "The distance between the raft lines for the middle raft layer. The spacing of the middle should be quite wide, while being dense enough to support the top raft layers." -msgstr "" +msgstr "중간 래프트 층에 대한 래프트 사이의 거리. 중간 틈새는 매우 넓어야하며 래프트 상부 층을지지 할만큼 충분히 촘촘해야합니다. " #: fdmprinter.def.json msgctxt "raft_base_thickness label" @@ -3256,7 +3257,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_base_thickness description" msgid "Layer thickness of the base raft layer. This should be a thick layer which sticks firmly to the printer build plate." -msgstr "" +msgstr "기본 래프트 레이어의 레이어 두께. 이것은 프린터 빌드 플레이트에 단단히 붙어있는 두꺼운 층이어야합니다. " #: fdmprinter.def.json msgctxt "raft_base_line_width label" @@ -3266,7 +3267,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_base_line_width description" msgid "Width of the lines in the base raft layer. These should be thick lines to assist in build plate adhesion." -msgstr "" +msgstr "기본 래프트 층에있는 선의 너비. 이것은 빌드 플레이트 접착을 돕기 위해 두꺼운 선이어야합니다. " #: fdmprinter.def.json msgctxt "raft_base_line_spacing label" @@ -3276,7 +3277,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_base_line_spacing description" msgid "The distance between the raft lines for the base raft layer. Wide spacing makes for easy removal of the raft from the build plate." -msgstr "" +msgstr "기본 래프트 층에 대한 래프트 사이의 거리. 넓은 간격으로 빌드 플레이트에서 래프트를 쉽게 제거 할 수 있습니다. " #: fdmprinter.def.json msgctxt "raft_speed label" @@ -3286,7 +3287,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_speed description" msgid "The speed at which the raft is printed." -msgstr "" +msgstr "래프트가 인쇄되는 속도. " #: fdmprinter.def.json msgctxt "raft_surface_speed label" @@ -3296,7 +3297,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_surface_speed description" msgid "The speed at which the top raft layers are printed. These should be printed a bit slower, so that the nozzle can slowly smooth out adjacent surface lines." -msgstr "" +msgstr "상단 래프트 레이어가 인쇄되는 속도입니다. 이 노즐은 조금 더 느리게 인쇄해야 노즐이 인접한 표면 선을 천천히 부드럽게 할 수 있습니다. " #: fdmprinter.def.json msgctxt "raft_interface_speed label" @@ -3306,7 +3307,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_interface_speed description" msgid "The speed at which the middle raft layer is printed. This should be printed quite slowly, as the volume of material coming out of the nozzle is quite high." -msgstr "" +msgstr "중간 래프트 층이 인쇄되는 속도. 이것은 노즐에서 나오는 재료의 양이 상당히 많기 때문에 아주 천천히 인쇄되어야합니다. " #: fdmprinter.def.json msgctxt "raft_base_speed label" @@ -3316,7 +3317,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_base_speed description" msgid "The speed at which the base raft layer is printed. This should be printed quite slowly, as the volume of material coming out of the nozzle is quite high." -msgstr "" +msgstr "기본 래프트 레이어가 인쇄되는 속도입니다. 이것은 노즐에서 나오는 재료의 양이 상당히 많기 때문에 아주 천천히 인쇄되어야합니다. " #: fdmprinter.def.json msgctxt "raft_acceleration label" @@ -3326,7 +3327,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_acceleration description" msgid "The acceleration with which the raft is printed." -msgstr "" +msgstr "래프트가 인쇄되는 가속도. " #: fdmprinter.def.json msgctxt "raft_surface_acceleration label" @@ -3336,7 +3337,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_surface_acceleration description" msgid "The acceleration with which the top raft layers are printed." -msgstr "" +msgstr "상단 래프트 레이어가 인쇄되는 가속도입니다. " #: fdmprinter.def.json msgctxt "raft_interface_acceleration label" @@ -3346,7 +3347,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_interface_acceleration description" msgid "The acceleration with which the middle raft layer is printed." -msgstr "" +msgstr "중간 래프트 층이 인쇄되는 가속도. " #: fdmprinter.def.json msgctxt "raft_base_acceleration label" @@ -3356,7 +3357,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_base_acceleration description" msgid "The acceleration with which the base raft layer is printed." -msgstr "" +msgstr "기본 래프트 레이어가 인쇄되는 가속도입니다. " #: fdmprinter.def.json msgctxt "raft_jerk label" @@ -3366,7 +3367,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_jerk description" msgid "The jerk with which the raft is printed." -msgstr "" +msgstr "래프트와 함께 인쇄되는 저크. " #: fdmprinter.def.json msgctxt "raft_surface_jerk label" @@ -3376,7 +3377,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_surface_jerk description" msgid "The jerk with which the top raft layers are printed." -msgstr "" +msgstr "상단 래프트 레이어가 인쇄되는 저크. " #: fdmprinter.def.json msgctxt "raft_interface_jerk label" @@ -3386,7 +3387,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_interface_jerk description" msgid "The jerk with which the middle raft layer is printed." -msgstr "" +msgstr "중간 래프트 층이 인쇄되는 저크. " #: fdmprinter.def.json msgctxt "raft_base_jerk label" @@ -3396,7 +3397,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_base_jerk description" msgid "The jerk with which the base raft layer is printed." -msgstr "" +msgstr "기본 래프트 레이어가 인쇄되는 저크. " #: fdmprinter.def.json msgctxt "raft_fan_speed label" @@ -3406,7 +3407,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_fan_speed description" msgid "The fan speed for the raft." -msgstr "" +msgstr "래프트의 팬 속도. " #: fdmprinter.def.json msgctxt "raft_surface_fan_speed label" @@ -3416,7 +3417,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_surface_fan_speed description" msgid "The fan speed for the top raft layers." -msgstr "" +msgstr "상단 래프트 레이어의 팬 속도입니다. " #: fdmprinter.def.json msgctxt "raft_interface_fan_speed label" @@ -3426,7 +3427,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_interface_fan_speed description" msgid "The fan speed for the middle raft layer." -msgstr "" +msgstr "중간 래프트 레이어의 팬 속도입니다. " #: fdmprinter.def.json msgctxt "raft_base_fan_speed label" @@ -3436,7 +3437,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "raft_base_fan_speed description" msgid "The fan speed for the base raft layer." -msgstr "" +msgstr "기본 래프트 레이어의 팬 속도입니다. " #: fdmprinter.def.json msgctxt "dual label" @@ -3446,7 +3447,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "dual description" msgid "Settings used for printing with multiple extruders." -msgstr "" +msgstr "여러 압출기로 인쇄 할 때 사용되는 설정입니다. " #: fdmprinter.def.json msgctxt "prime_tower_enable label" @@ -3456,7 +3457,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "prime_tower_enable description" msgid "Print a tower next to the print which serves to prime the material after each nozzle switch." -msgstr "" +msgstr "각 노즐을 교체 한 후에 재료를 프라이밍(Priming)하는 인쇄 옆에 타워를 인쇄하십시오. " #: fdmprinter.def.json msgctxt "prime_tower_size label" @@ -3466,7 +3467,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "prime_tower_size description" msgid "The width of the prime tower." -msgstr "" +msgstr "프라임 타워의 너비." #: fdmprinter.def.json msgctxt "prime_tower_min_volume label" @@ -3476,7 +3477,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "prime_tower_min_volume description" msgid "The minimum volume for each layer of the prime tower in order to purge enough material." -msgstr "" +msgstr "충분한 재료를 퍼지하기 위해 프라임 타워 각 층의 최소 부피. " #: fdmprinter.def.json msgctxt "prime_tower_wall_thickness label" @@ -3486,7 +3487,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "prime_tower_wall_thickness description" msgid "The thickness of the hollow prime tower. A thickness larger than half the Prime Tower Minimum Volume will result in a dense prime tower." -msgstr "" +msgstr "속이 빈 프라임 타워의 두께. 프라임 타워의 최소 볼륨의 절반보다 큰 두께는 조밀 한 소수 타워가됩니다. " #: fdmprinter.def.json msgctxt "prime_tower_position_x label" @@ -3496,7 +3497,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "prime_tower_position_x description" msgid "The x coordinate of the position of the prime tower." -msgstr "" +msgstr "프라임 타워 위치의 x 좌표입니다. " #: fdmprinter.def.json msgctxt "prime_tower_position_y label" @@ -3506,7 +3507,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "prime_tower_position_y description" msgid "The y coordinate of the position of the prime tower." -msgstr "" +msgstr "프라임 타워 위치의 y 좌표입니다. " #: fdmprinter.def.json msgctxt "prime_tower_flow label" @@ -3516,7 +3517,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "prime_tower_flow description" msgid "Flow compensation: the amount of material extruded is multiplied by this value." -msgstr "" +msgstr "유량 보상 : 압출 된 재료의 양에이 값을 곱합니다. " #: fdmprinter.def.json msgctxt "prime_tower_wipe_enabled label" @@ -3526,7 +3527,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "prime_tower_wipe_enabled description" msgid "After printing the prime tower with one nozzle, wipe the oozed material from the other nozzle off on the prime tower." -msgstr "" +msgstr "하나의 노즐로 프라임 타워를 인쇄 한 후, 다른 타워의 흙먼지 물질을 프라임 타워에서 닦아냅니다. " #: fdmprinter.def.json msgctxt "dual_pre_wipe label" @@ -3536,7 +3537,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "dual_pre_wipe description" msgid "After switching extruder, wipe the oozed material off of the nozzle on the first thing printed. This performs a safe slow wipe move at a place where the oozed material causes least harm to the surface quality of your print." -msgstr "" +msgstr "압출기를 전환 한 후, 인쇄 된 첫 번째 것을 노즐에서 닦아 낸 물질을 닦아냅니다. 이렇게하면 흘러 나온 물질이 인쇄물의 표면 품질에 가장 해를 입히는 곳에서 안전한 천천히 닦아줍니다. " #: fdmprinter.def.json msgctxt "ooze_shield_enabled label" @@ -3546,7 +3547,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "ooze_shield_enabled description" msgid "Enable exterior ooze shield. This will create a shell around the model which is likely to wipe a second nozzle if it's at the same height as the first nozzle." -msgstr "" +msgstr "외장 방음 장치를 사용하십시오. 이렇게하면 첫 번째 노즐과 동일한 높이에 두 번째 노즐을 닦을 가능성이있는 모델 주위에 쉘이 생깁니다. " #: fdmprinter.def.json msgctxt "ooze_shield_angle label" @@ -3556,7 +3557,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "ooze_shield_angle description" msgid "The maximum angle a part in the ooze shield will have. With 0 degrees being vertical, and 90 degrees being horizontal. A smaller angle leads to less failed ooze shields, but more material." -msgstr "" +msgstr "방패망의 한 부분이 가질 최대 각도입니다. \"0\"도가 수직이고 \"90\"도가 수평입니다. 각도가 작 으면 방풍망이 덜 파손되지만 재료는 더 많습니다. " #: fdmprinter.def.json msgctxt "ooze_shield_dist label" @@ -3566,7 +3567,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "ooze_shield_dist description" msgid "Distance of the ooze shield from the print, in the X/Y directions." -msgstr "" +msgstr "X / Y 방향으로 인쇄물에서 방패망까지의 거리. " #: fdmprinter.def.json msgctxt "meshfix label" @@ -3576,7 +3577,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "meshfix description" msgid "category_fixes" -msgstr "" +msgstr "카테고리 수정 " #: fdmprinter.def.json msgctxt "meshfix_union_all label" @@ -3586,7 +3587,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "meshfix_union_all description" msgid "Ignore the internal geometry arising from overlapping volumes within a mesh and print the volumes as one. This may cause unintended internal cavities to disappear." -msgstr "" +msgstr "메쉬 내의 겹치는 볼륨으로 인해 발생하는 내부 지오메트리를 무시하고 볼륨을 하나로 인쇄하십시오. 이로 인해 의도하지 않은 내부 공동이 사라질 수 있습니다. " #: fdmprinter.def.json msgctxt "meshfix_union_all_remove_holes label" @@ -3596,7 +3597,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "meshfix_union_all_remove_holes description" msgid "Remove the holes in each layer and keep only the outside shape. This will ignore any invisible internal geometry. However, it also ignores layer holes which can be viewed from above or below." -msgstr "" +msgstr "각 레이어의 구멍을 제거하고 바깥 쪽 모양 만 유지합니다. 이것은 보이지 않는 내부 지오메트리를 무시합니다. 그러나 위 또는 아래에서 볼 수있는 레이어 구멍도 무시합니다. " #: fdmprinter.def.json msgctxt "meshfix_extensive_stitching label" @@ -3606,7 +3607,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "meshfix_extensive_stitching description" msgid "Extensive stitching tries to stitch up open holes in the mesh by closing the hole with touching polygons. This option can introduce a lot of processing time." -msgstr "" +msgstr "광범위한 스티칭은 다각형을 만지면서 구멍을 닫음으로써 메쉬의 열린 구멍을 꿰매려합니다. 이 옵션은 많은 처리 시간을 초래할 수 있습니다. " #: fdmprinter.def.json msgctxt "meshfix_keep_open_polygons label" @@ -3616,7 +3617,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "meshfix_keep_open_polygons description" msgid "Normally Cura tries to stitch up small holes in the mesh and remove parts of a layer with big holes. Enabling this option keeps those parts which cannot be stitched. This option should be used as a last resort option when everything else fails to produce proper GCode." -msgstr "" +msgstr "일반적으로 큐라(Cura)는 메쉬의 작은 구멍을 꿰매 붙이고 큰 구멍이있는 레이어의 부분을 제거하려고합니다. 이 옵션을 활성화하면 스티칭 할 수없는 파트가 유지됩니다. 이 옵션은 다른 모든 것이 올바른 GCode를 생성하지 못할 때 최후의 수단으로 사용해야합니다. " #: fdmprinter.def.json msgctxt "multiple_mesh_overlap label" @@ -3626,7 +3627,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "multiple_mesh_overlap description" msgid "Make meshes which are touching each other overlap a bit. This makes them bond together better." -msgstr "" +msgstr "서로 닿는 메쉬가 조금 겹치게 만듭니다. 이것은 그들을 더 잘 묶는 것입니다. " #: fdmprinter.def.json msgctxt "carve_multiple_volumes label" @@ -3636,7 +3637,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "carve_multiple_volumes description" msgid "Remove areas where multiple meshes are overlapping with each other. This may be used if merged dual material objects overlap with each other." -msgstr "" +msgstr "여러 메시가 서로 겹치는 영역을 제거하십시오. 병합 된 이중 물체가 서로 중첩되는 경우이 값이 사용될 수 있습니다. " #: fdmprinter.def.json msgctxt "alternate_carve_order label" @@ -3646,7 +3647,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "alternate_carve_order description" msgid "Switch to which mesh intersecting volumes will belong with every layer, so that the overlapping meshes become interwoven. Turning this setting off will cause one of the meshes to obtain all of the volume in the overlap, while it is removed from the other meshes." -msgstr "" +msgstr "교차하는 메쉬로 교차하는 볼륨으로 전환하면 겹치는 메쉬가 서로 얽 히게됩니다. 이 설정을 해제하면 메시 중 하나가 다른 메시에서 제거되는 동안 오버랩의 모든 볼륨을 가져옵니다. " #: fdmprinter.def.json msgctxt "blackmagic label" @@ -3656,7 +3657,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "blackmagic description" msgid "category_blackmagic" -msgstr "" +msgstr "블랙매직 카테고리 " #: fdmprinter.def.json msgctxt "print_sequence label" @@ -3666,7 +3667,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "print_sequence description" msgid "Whether to print all models one layer at a time or to wait for one model to finish, before moving on to the next. One at a time mode is only possible if all models are separated in such a way that the whole print head can move in between and all models are lower than the distance between the nozzle and the X/Y axes." -msgstr "" +msgstr "한 번에 한 레이어 씩 모든 모델을 인쇄할지 또는 한 모델이 완료 될 때까지 기다렸다가 다음 모델로 넘어갈 지 여부. 한 번에 한 가지 모드는 모든 모델이 분리되어 전체 프린트 헤드가 중간에서 움직일 수 있고 모든 모델이 노즐과 X / Y 축 사이의 거리보다 낮은 경우에만 가능합니다. " #: fdmprinter.def.json msgctxt "print_sequence option all_at_once" @@ -3686,7 +3687,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "infill_mesh description" msgid "Use this mesh to modify the infill of other meshes with which it overlaps. Replaces infill regions of other meshes with regions for this mesh. It's suggested to only print one Wall and no Top/Bottom Skin for this mesh." -msgstr "" +msgstr "관련 메쉬를 사용하여 겹치는 다른 메쉬의 충진율을 수정하십시오. 다른 메쉬의 충진 영역을 본 메쉬의 영역으로 대체합니다. 본 메쉬에 하나의 벽과 상단 / 밑바닥 스킨만을 인쇄하는 것이 좋습니다. " #: fdmprinter.def.json msgctxt "infill_mesh_order label" @@ -3696,7 +3697,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "infill_mesh_order description" msgid "Determines which infill mesh is inside the infill of another infill mesh. An infill mesh with a higher order will modify the infill of infill meshes with lower order and normal meshes." -msgstr "" +msgstr "어떤 충진 메쉬가 다른 충진 메쉬의 충진 내부에 있는지 결정합니다. 더 높은 차수의 충진 메쉬는 더 낮은 차수와 일반적인 메쉬로 충진 메쉬의 충진을 수정합니다. " #: fdmprinter.def.json msgctxt "cutting_mesh label" @@ -3706,7 +3707,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "cutting_mesh description" msgid "Limit the volume of this mesh to within other meshes. You can use this to make certain areas of one mesh print with different settings and with a whole different extruder." -msgstr "" +msgstr "이 메쉬의 볼륨을 다른 메쉬 내로 제한하십시오. 이 기능을 사용하면 다른 설정과 전체 압출기로 하나의 메쉬 인쇄 영역을 만들 수 있습니다. " #: fdmprinter.def.json msgctxt "mold_enabled label" @@ -3716,7 +3717,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "mold_enabled description" msgid "Print models as a mold, which can be cast in order to get a model which resembles the models on the build plate." -msgstr "" +msgstr "모형을 모형으로 인쇄하여 모형에 모형과 유사한 모형을 만들 수 있습니다. " #: fdmprinter.def.json msgctxt "mold_width label" @@ -3726,7 +3727,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "mold_width description" msgid "The minimal distance between the ouside of the mold and the outside of the model." -msgstr "" +msgstr "몰드의 바깥 쪽과 모델의 바깥 쪽 사이의 최소 거리입니다. " #: fdmprinter.def.json msgctxt "mold_roof_height label" @@ -3736,7 +3737,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "mold_roof_height description" msgid "The height above horizontal parts in your model which to print mold." -msgstr "" +msgstr "모델의 수평 부분 위의 높이로 금형을 인쇄합니다. " #: fdmprinter.def.json msgctxt "mold_angle label" @@ -3746,7 +3747,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "mold_angle description" msgid "The angle of overhang of the outer walls created for the mold. 0° will make the outer shell of the mold vertical, while 90° will make the outside of the model follow the contour of the model." -msgstr "" +msgstr "몰드에 대해 생성 된 외벽의 돌출 각도입니다. \"0\"도의 각은 금형의 외각을 수직으로 만들고 \"90\"도의 각은 모형의 외형을 모델의 외형으로 만듭니다. " #: fdmprinter.def.json msgctxt "support_mesh label" @@ -3756,7 +3757,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_mesh description" msgid "Use this mesh to specify support areas. This can be used to generate support structure." -msgstr "" +msgstr "본 메시를 사용하여 지원 영역을 지정하십시오. 이것은 지원 구조를 생성하는 데 사용할 수 있습니다. " #: fdmprinter.def.json msgctxt "support_mesh_drop_down label" @@ -3766,7 +3767,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_mesh_drop_down description" msgid "Make support everywhere below the support mesh, so that there's no overhang in the support mesh." -msgstr "" +msgstr "지지 메쉬 아래의 모든 부분을 지원하여지지 메쉬에 돌출이 없어야 합니다. " #: fdmprinter.def.json msgctxt "anti_overhang_mesh label" @@ -3776,7 +3777,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "anti_overhang_mesh description" msgid "Use this mesh to specify where no part of the model should be detected as overhang. This can be used to remove unwanted support structure." -msgstr "" +msgstr "본 메쉬를 사용하여 모델에서 돌출부로 감지 할 부분을 지정합니다. 이것은 원하지 않는 지원 구조를 제거하는 데 사용될 수 있습니다. " #: fdmprinter.def.json msgctxt "magic_mesh_surface_mode label" @@ -3786,7 +3787,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "magic_mesh_surface_mode description" msgid "Treat the model as a surface only, a volume, or volumes with loose surfaces. The normal print mode only prints enclosed volumes. \"Surface\" prints a single wall tracing the mesh surface with no infill and no top/bottom skin. \"Both\" prints enclosed volumes like normal and any remaining polygons as surfaces." -msgstr "" +msgstr "모델을 표면 만, 볼륨 또는 느슨한 표면이있는 볼륨으로 취급하십시오. 일반 인쇄 모드는 동봉 된 볼륨 만 인쇄합니다. \"표면\"은 아무런 충전물없이 상단 / 하단 스킨없이 메쉬 표면을 추적하는 단일 벽을 인쇄합니다. \"둘 다\"는 정상 및 나머지 폴리곤과 같은 닫힌 볼륨을 서피스로 인쇄합니다. " #: fdmprinter.def.json msgctxt "magic_mesh_surface_mode option normal" @@ -3811,7 +3812,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "magic_spiralize description" msgid "Spiralize smooths out the Z move of the outer edge. This will create a steady Z increase over the whole print. This feature turns a solid model into a single walled print with a solid bottom. This feature should only be enabled when each layer only contains a single part." -msgstr "" +msgstr "스파이럴 라이즈는 바깥 쪽 가장자리의 Z 이동을 부드럽게합니다. 이렇게하면 인쇄물 전체에 걸쳐 꾸준히 Z가 증가합니다. 이 기능은 솔리드 모델을 단단한 바닥이있는 단일 벽으로 인쇄합니다. 이 기능은 각 레이어에 단일 부품 만 포함되어있을 때만 활성화 해야 합니다. " #: fdmprinter.def.json msgctxt "smooth_spiralized_contours label" @@ -3821,7 +3822,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "smooth_spiralized_contours description" msgid "Smooth the spiralized contours to reduce the visibility of the Z seam (the Z-seam should be barely visible on the print but will still be visible in the layer view). Note that smoothing will tend to blur fine surface details." -msgstr "" +msgstr "나선형 윤곽선을 부드럽게하여 Z 솔기의 가시성을 줄이십시오 (Z- 솔기는 인쇄물에서는 거의 보이지 않지만 레이어 뷰에서는 여전히 보임). 매끄러움은 표면의 세부 묘사를 흐릿하게하는 경향이 있습니다. " #: fdmprinter.def.json msgctxt "experimental label" @@ -3831,7 +3832,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "experimental description" msgid "experimental!" -msgstr "" +msgstr "실험적인 " #: fdmprinter.def.json msgctxt "draft_shield_enabled label" @@ -3841,7 +3842,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "draft_shield_enabled description" msgid "This will create a wall around the model, which traps (hot) air and shields against exterior airflow. Especially useful for materials which warp easily." -msgstr "" +msgstr "이렇게하면 모델 주위에 벽이 생겨 외부 공기 흐름을 막아 (뜨거운) 공기와 차폐를 막을 수 있습니다. 왜곡이 쉬운 소재에 특히 유용합니다. " #: fdmprinter.def.json msgctxt "draft_shield_dist label" @@ -3851,7 +3852,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "draft_shield_dist description" msgid "Distance of the draft shield from the print, in the X/Y directions." -msgstr "" +msgstr "X / Y 방향으로 인쇄에서 드래프트 쉴드까지의 거리입니다. " #: fdmprinter.def.json msgctxt "draft_shield_height_limitation label" @@ -3861,7 +3862,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "draft_shield_height_limitation description" msgid "Set the height of the draft shield. Choose to print the draft shield at the full height of the model or at a limited height." -msgstr "" +msgstr "드래프트 쉴드의 높이를 설정하십시오. 모델의 전체 높이 또는 제한된 높이에서 드래프트 쉴드를 인쇄하도록 선택하십시오. " #: fdmprinter.def.json msgctxt "draft_shield_height_limitation option full" @@ -3881,7 +3882,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "draft_shield_height description" msgid "Height limitation of the draft shield. Above this height no draft shield will be printed." -msgstr "" +msgstr "드래프트 쉴드의 높이 제한. 이 높이 이상에서는 드래프트 쉴드가 인쇄되지 않습니다. " #: fdmprinter.def.json msgctxt "conical_overhang_enabled label" @@ -3891,7 +3892,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "conical_overhang_enabled description" msgid "Change the geometry of the printed model such that minimal support is required. Steep overhangs will become shallow overhangs. Overhanging areas will drop down to become more vertical." -msgstr "" +msgstr "최소 지원이 필요하도록 인쇄 된 모델의 형상을 변경하십시오. 가파른 오버행은 얕은 오버행이됩니다. 오버행 영역이 더 수직으로 떨어집니다. " #: fdmprinter.def.json msgctxt "conical_overhang_angle label" @@ -3901,7 +3902,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "conical_overhang_angle description" msgid "The maximum angle of overhangs after the they have been made printable. At a value of 0° all overhangs are replaced by a piece of model connected to the build plate, 90° will not change the model in any way." -msgstr "" +msgstr "오버행 각도가 인쇄 가능하게 된 후 최대 각도. \"0\"도 각의 값에서 모든 오버행은 빌드 플레이트에 연결된 모델로 대체됩니다. \"90\"도 각은 모델을 변경하지 않습니다. " #: fdmprinter.def.json msgctxt "coasting_enable label" @@ -3911,7 +3912,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "coasting_enable description" msgid "Coasting replaces the last part of an extrusion path with a travel path. The oozed material is used to print the last piece of the extrusion path in order to reduce stringing." -msgstr "" +msgstr "코스팅(Coasting)은 돌출 경로의 마지막 부분을 이동 경로로 바꿉니다. 누출 된 재료는 스트링을 줄이기 위해 압출 경로의 마지막 부분을 인쇄하는 데 사용됩니다. " #: fdmprinter.def.json msgctxt "coasting_volume label" @@ -3921,7 +3922,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "coasting_volume description" msgid "The volume otherwise oozed. This value should generally be close to the nozzle diameter cubed." -msgstr "" +msgstr "그렇지 않으면 볼륨이 흘러 나옵니다. 이 값은 일반적으로 노즐 직경 입방체에 가깝습니다. " #: fdmprinter.def.json msgctxt "coasting_min_volume label" @@ -3931,7 +3932,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "coasting_min_volume description" msgid "The smallest volume an extrusion path should have before allowing coasting. For smaller extrusion paths, less pressure has been built up in the bowden tube and so the coasted volume is scaled linearly. This value should always be larger than the Coasting Volume." -msgstr "" +msgstr "코스팅(Coasting)을 허용하기 전에 압출 경로에 있어야하는 최소 볼륨. 작은 압출 경로의 경우 보우 덴 튜브에 가해지는 압력이 적기 때문에 연안 부피가 선형 적으로 조정됩니다. 이 값은 항상 Coasting Volume보다 커야합니다. " #: fdmprinter.def.json msgctxt "coasting_speed label" @@ -3941,7 +3942,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "coasting_speed description" msgid "The speed by which to move during coasting, relative to the speed of the extrusion path. A value slightly under 100% is advised, since during the coasting move the pressure in the bowden tube drops." -msgstr "" +msgstr "코스팅(Coasting) 시, 이동 속도. 돌출 경로의 속도에 상대적입니다. 해안 이동 중에 보우 덴 튜브의 압력이 떨어지기 때문에 100 %보다 약간 작은 값을 권합니다. " #: fdmprinter.def.json msgctxt "skin_outline_count label" @@ -3951,7 +3952,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "skin_outline_count description" msgid "Replaces the outermost part of the top/bottom pattern with a number of concentric lines. Using one or two lines improves roofs that start on infill material." -msgstr "" +msgstr "위쪽 / 아래쪽 패턴의 가장 바깥 쪽 부분을 여러 동심 선으로 바꿉니다. 하나 또는 두 개의 선을 사용하면 충진재로 시작하는 지붕이 향상됩니다. " #: fdmprinter.def.json msgctxt "skin_alternate_rotation label" @@ -3961,7 +3962,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "skin_alternate_rotation description" msgid "Alternate the direction in which the top/bottom layers are printed. Normally they are printed diagonally only. This setting adds the X-only and Y-only directions." -msgstr "" +msgstr "위쪽 / 아래쪽 레이어가 인쇄되는 방향을 바꿉니다. 보통 대각선으로 만 인쇄됩니다. 이 설정은 X 전용 및 Y 전용 방향을 추가합니다. " #: fdmprinter.def.json msgctxt "support_conical_enabled label" @@ -3971,7 +3972,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_conical_enabled description" msgid "Experimental feature: Make support areas smaller at the bottom than at the overhang." -msgstr "" +msgstr "실험적 기능 : 오버행보다 하단에서 지원 영역을 작게 만듭니다. " #: fdmprinter.def.json msgctxt "support_conical_angle label" @@ -3981,7 +3982,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_conical_angle description" msgid "The angle of the tilt of conical support. With 0 degrees being vertical, and 90 degrees being horizontal. Smaller angles cause the support to be more sturdy, but consist of more material. Negative angles cause the base of the support to be wider than the top." -msgstr "" +msgstr "원추형 지지점의 기울기 각도입니다. \"0\"도가 수직이고 \"90\"도가 수평입니다. 각도가 작 으면 지지대가 더 튼튼 해지지 만 더 많은 재질로 구성됩니다. 음수 각도는 받침대의 받침대가 상단보다 넓게 만듭니다. " #: fdmprinter.def.json msgctxt "support_conical_min_width label" @@ -3991,7 +3992,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_conical_min_width description" msgid "Minimum width to which the base of the conical support area is reduced. Small widths can lead to unstable support structures." -msgstr "" +msgstr "원추형지지 영역의베이스가 축소되는 최소 너비. 폭이 좁 으면 불안정한지지 구조가 생길 수 있습니다. " #: fdmprinter.def.json msgctxt "infill_hollow label" @@ -4001,7 +4002,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "infill_hollow description" msgid "Remove all infill and make the inside of the object eligible for support." -msgstr "" +msgstr "모든 충진재를 제거하고 물체의 내부를 지탱할 수있게하십시오. " #: fdmprinter.def.json msgctxt "magic_fuzzy_skin_enabled label" @@ -4011,7 +4012,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "magic_fuzzy_skin_enabled description" msgid "Randomly jitter while printing the outer wall, so that the surface has a rough and fuzzy look." -msgstr "" +msgstr "외벽을 인쇄하는 동안 무작위로 지터가 발생하여 표면이 거칠고 흐릿 해 보입니다. " #: fdmprinter.def.json msgctxt "magic_fuzzy_skin_thickness label" @@ -4021,7 +4022,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "magic_fuzzy_skin_thickness description" msgid "The width within which to jitter. It's advised to keep this below the outer wall width, since the inner walls are unaltered." -msgstr "" +msgstr "지터가 발생할 너비. 내벽이 변경되지 않으므로이를 외벽 너비 아래로 유지하는 것이 좋습니다. " #: fdmprinter.def.json msgctxt "magic_fuzzy_skin_point_density label" @@ -4031,7 +4032,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "magic_fuzzy_skin_point_density description" msgid "The average density of points introduced on each polygon in a layer. Note that the original points of the polygon are discarded, so a low density results in a reduction of the resolution." -msgstr "" +msgstr "레이어의 각 다각형에 도입 된 점의 평균 밀도입니다. 다각형의 원래 점은 버려지므로 밀도가 낮으면 해상도가 감소합니다. " #: fdmprinter.def.json msgctxt "magic_fuzzy_skin_point_dist label" @@ -4041,7 +4042,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "magic_fuzzy_skin_point_dist description" msgid "The average distance between the random points introduced on each line segment. Note that the original points of the polygon are discarded, so a high smoothness results in a reduction of the resolution. This value must be higher than half the Fuzzy Skin Thickness." -msgstr "" +msgstr "각 선분에 도입 된 임의의 점 사이의 평균 거리입니다. 다각형의 원래 점은 버려 지므로 높은 부드러움으로 인해 해상도가 감소합니다. 이 값은 퍼지 스킨 두께의 절반보다 커야합니다. " #: fdmprinter.def.json msgctxt "wireframe_enabled label" @@ -4051,7 +4052,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_enabled description" msgid "Print only the outside surface with a sparse webbed structure, printing 'in thin air'. This is realized by horizontally printing the contours of the model at given Z intervals which are connected via upward and diagonally downward lines." -msgstr "" +msgstr "얇은 공기 중에서 인쇄하는 스파 스 웨브 구조로 외부 표면 만 인쇄하십시오. 이것은 상향 및 대각선 방향으로 연결되어있는 주어진 Z 간격으로 모델의 윤곽을 수평으로 인쇄함으로써 실현됩니다. " #: fdmprinter.def.json msgctxt "wireframe_height label" @@ -4061,7 +4062,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_height description" msgid "The height of the upward and diagonally downward lines between two horizontal parts. This determines the overall density of the net structure. Only applies to Wire Printing." -msgstr "" +msgstr "두 개의 수평 부분 사이의 상향 및 대각선 방향의 높이입니다. 이것은 네트 구조의 전체 밀도를 결정합니다. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_roof_inset label" @@ -4071,7 +4072,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_roof_inset description" msgid "The distance covered when making a connection from a roof outline inward. Only applies to Wire Printing." -msgstr "" +msgstr "지붕에서 연결을 할 때 안쪽까지 윤곽선을 그립니다. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_printspeed label" @@ -4081,7 +4082,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_printspeed description" msgid "Speed at which the nozzle moves when extruding material. Only applies to Wire Printing." -msgstr "" +msgstr "재료를 압출 할 때 노즐이 움직이는 속도. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_printspeed_bottom label" @@ -4091,7 +4092,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_printspeed_bottom description" msgid "Speed of printing the first layer, which is the only layer touching the build platform. Only applies to Wire Printing." -msgstr "" +msgstr "빌드 플랫폼을 만지는 유일한 레이어 인 첫 번째 레이어 인쇄 속도. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_printspeed_up label" @@ -4101,7 +4102,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_printspeed_up description" msgid "Speed of printing a line upward 'in thin air'. Only applies to Wire Printing." -msgstr "" +msgstr "얇은 공기 속에서 위쪽으로 선을 인쇄하는 속도. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_printspeed_down label" @@ -4111,7 +4112,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_printspeed_down description" msgid "Speed of printing a line diagonally downward. Only applies to Wire Printing." -msgstr "" +msgstr "대각선 방향으로 선을 인쇄하는 속도. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_printspeed_flat label" @@ -4121,7 +4122,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_printspeed_flat description" msgid "Speed of printing the horizontal contours of the model. Only applies to Wire Printing." -msgstr "" +msgstr "모델의 수평 윤곽 인쇄 속도입니다. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_flow label" @@ -4131,7 +4132,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_flow description" msgid "Flow compensation: the amount of material extruded is multiplied by this value. Only applies to Wire Printing." -msgstr "" +msgstr "유량 보상 : 압출 된 재료의 양에이 값을 곱합니다. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_flow_connection label" @@ -4141,7 +4142,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_flow_connection description" msgid "Flow compensation when going up or down. Only applies to Wire Printing." -msgstr "" +msgstr "위 또는 아래로 이동할 때 유량 보정. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_flow_flat label" @@ -4151,7 +4152,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_flow_flat description" msgid "Flow compensation when printing flat lines. Only applies to Wire Printing." -msgstr "" +msgstr "평평한 선을 인쇄 할 때 유량 보정. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_top_delay label" @@ -4161,7 +4162,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_top_delay description" msgid "Delay time after an upward move, so that the upward line can harden. Only applies to Wire Printing." -msgstr "" +msgstr "상향 라인이 강화 될 수 있도록 상향 이동 후 지연 시간. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_bottom_delay label" @@ -4171,7 +4172,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_bottom_delay description" msgid "Delay time after a downward move. Only applies to Wire Printing." -msgstr "" +msgstr "하강 후 지연 시간. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_flat_delay label" @@ -4181,7 +4182,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_flat_delay description" msgid "Delay time between two horizontal segments. Introducing such a delay can cause better adhesion to previous layers at the connection points, while too long delays cause sagging. Only applies to Wire Printing." -msgstr "" +msgstr "두 개의 수평 세그먼트 사이의 지연 시간. 이러한 지연을 도입하면 연결 지점에서 이전 레이어와의 접착력이 향상 될 수 있으며 너무 긴 지연으로 인해 처짐이 발생할 수 있습니다. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_up_half_speed label" @@ -4193,7 +4194,7 @@ msgctxt "wireframe_up_half_speed description" msgid "" "Distance of an upward move which is extruded with half speed.\n" "This can cause better adhesion to previous layers, while not heating the material in those layers too much. Only applies to Wire Printing." -msgstr "" +msgstr "기본 속도의 반으로 돌출 된 상향 이동 거리. 이로 인해 이전 레이어에 더 나은 접착력을 유발할 수 있지만 레이어에있는 소재는 너무 많이 가열하지 않습니다. 와이어 인쇄에만 적용됩니다." #: fdmprinter.def.json msgctxt "wireframe_top_jump label" @@ -4203,7 +4204,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_top_jump description" msgid "Creates a small knot at the top of an upward line, so that the consecutive horizontal layer has a better chance to connect to it. Only applies to Wire Printing." -msgstr "" +msgstr "상향 선의 상단에 작은 매듭을 만들어 연속적인 수평 레이어에 연결할 수있는 기회를 얻습니다. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_fall_down label" @@ -4213,7 +4214,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_fall_down description" msgid "Distance with which the material falls down after an upward extrusion. This distance is compensated for. Only applies to Wire Printing." -msgstr "" +msgstr "위쪽으로 밀어 낸 후 재료가 떨어지는 거리. 이 거리는 보상됩니다. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_drag_along label" @@ -4223,7 +4224,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_drag_along description" msgid "Distance with which the material of an upward extrusion is dragged along with the diagonally downward extrusion. This distance is compensated for. Only applies to Wire Printing." -msgstr "" +msgstr "대각선 방향으로 돌출 된 돌출부의 재료가 위쪽으로 밀어내는 거리. 이 거리는 보상됩니다. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_strategy label" @@ -4233,7 +4234,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_strategy description" msgid "Strategy for making sure two consecutive layers connect at each connection point. Retraction lets the upward lines harden in the right position, but may cause filament grinding. A knot can be made at the end of an upward line to heighten the chance of connecting to it and to let the line cool; however, it may require slow printing speeds. Another strategy is to compensate for the sagging of the top of an upward line; however, the lines won't always fall down as predicted." -msgstr "" +msgstr "각 연결 지점에서 두 개의 연속 된 레이어가 연결되도록하는 전략입니다. 후퇴를하면 상향 선이 올바른 위치에서 경화되지만 필라멘트 연삭이 발생할 수 있습니다. 상향 선의 끝에 매듭을 만들어 연결 기회를 높이고 선을 차게 할 수 있습니다. 그러나 느린 인쇄 속도가 필요할 수 있습니다. 또 다른 전략은 상향 라인의 윗부분의 처짐을 보충하는 것입니다. 그러나 선은 항상 예측대로 떨어지지는 않습니다. " #: fdmprinter.def.json msgctxt "wireframe_strategy option compensate" @@ -4258,7 +4259,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_straight_before_down description" msgid "Percentage of a diagonally downward line which is covered by a horizontal line piece. This can prevent sagging of the top most point of upward lines. Only applies to Wire Printing." -msgstr "" +msgstr "수평선 조각에 의해 덮여있는 비스듬히 하향 선의 백분율. 이렇게하면 상향 선의 맨 위 지점이 처지는 것을 방지 할 수 있습니다. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_roof_fall_down label" @@ -4268,7 +4269,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_roof_fall_down description" msgid "The distance which horizontal roof lines printed 'in thin air' fall down when being printed. This distance is compensated for. Only applies to Wire Printing." -msgstr "" +msgstr "수평 지붕 라인이 '얇은 공기 안에'인쇄 된 거리는 인쇄 될 때 떨어집니다. 이 거리는 보상됩니다. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_roof_drag_along label" @@ -4278,7 +4279,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_roof_drag_along description" msgid "The distance of the end piece of an inward line which gets dragged along when going back to the outer outline of the roof. This distance is compensated for. Only applies to Wire Printing." -msgstr "" +msgstr "루프의 외곽 윤곽으로 돌아갈 때 끌린 내향 선의 끝 부분 거리. 이 거리는 보상됩니다. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_roof_outer_delay label" @@ -4288,7 +4289,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_roof_outer_delay description" msgid "Time spent at the outer perimeters of hole which is to become a roof. Longer times can ensure a better connection. Only applies to Wire Printing." -msgstr "" +msgstr "지붕이 될 구멍의 바깥 둘레에서 보낸 시간. 긴 시간은 더 나은 연결을 보장 할 수 있습니다. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "wireframe_nozzle_clearance label" @@ -4298,7 +4299,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "wireframe_nozzle_clearance description" msgid "Distance between the nozzle and horizontally downward lines. Larger clearance results in diagonally downward lines with a less steep angle, which in turn results in less upward connections with the next layer. Only applies to Wire Printing." -msgstr "" +msgstr "노즐과 수평 아래쪽 라인 사이의 거리. 클리어런스가 클수록 비스듬한 각도에서 비스듬히 아래쪽으로 선이 그어져 다음 층과의 연결이보다 적어집니다. 와이어 인쇄에만 적용됩니다. " #: fdmprinter.def.json msgctxt "command_line_settings label" @@ -4308,7 +4309,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "command_line_settings description" msgid "Settings which are only used if CuraEngine isn't called from the Cura frontend." -msgstr "" +msgstr "큐라(Cura) 프론트 엔드에서 큐라엔진(CuraEngine)이 호출되지 않은 경우에만 사용되는 설정입니다. " #: fdmprinter.def.json msgctxt "center_object label" @@ -4318,7 +4319,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "center_object description" msgid "Whether to center the object on the middle of the build platform (0,0), instead of using the coordinate system in which the object was saved." -msgstr "" +msgstr "객체가 저장된 좌표계를 사용하는 대신 빌드 플랫폼 중간, (0,0)에 객체를 중심에 맞출어야 할지의 여부 " #: fdmprinter.def.json msgctxt "mesh_position_x label" @@ -4328,7 +4329,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "mesh_position_x description" msgid "Offset applied to the object in the x direction." -msgstr "" +msgstr "x 방향으로 객체에 적용된 오프셋입니다. " #: fdmprinter.def.json msgctxt "mesh_position_y label" @@ -4338,7 +4339,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "mesh_position_y description" msgid "Offset applied to the object in the y direction." -msgstr "" +msgstr "y 방향으로 객체에 적용된 오프셋입니다. " #: fdmprinter.def.json msgctxt "mesh_position_z label" @@ -4348,7 +4349,7 @@ msgstr "" #: fdmprinter.def.json msgctxt "mesh_position_z description" msgid "Offset applied to the object in the z direction. With this you can perform what was used to be called 'Object Sink'." -msgstr "" +msgstr "z 방향으로 객체에 적용된 오프셋입니다. 이것을 사용하여 '오프젝 싱크(Object Sink)'라고 불렀던 것을 수행 할 수 있습니다. " #: fdmprinter.def.json msgctxt "mesh_rotation_matrix label" @@ -4358,4 +4359,4 @@ msgstr "" #: fdmprinter.def.json msgctxt "mesh_rotation_matrix description" msgid "Transformation matrix to be applied to the model when loading it from file." -msgstr "" +msgstr "파일로부터 로드 하는 경유, 모델에 적용될 변환 행렬입니다. " diff --git a/resources/i18n/pl/cura.po b/resources/i18n/pl/cura.po new file mode 100644 index 0000000000..c6140946f9 --- /dev/null +++ b/resources/i18n/pl/cura.po @@ -0,0 +1,3543 @@ +# Cura +# Copyright (C) 2017 Ultimaker +# This file is distributed under the same license as the Cura package. +# Ruben Dulek , 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: Cura 2.6\n" +"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" +"POT-Creation-Date: 2017-05-30 15:32+0200\n" +"PO-Revision-Date: 2017-07-26 6:39+0200\n" +"Last-Translator: 'Jaguś' Paweł Jagusiak and Andrzej 'anraf1001' Rafalski\n" +"Language-Team: reprapy.pl\n" +"Language: Polish\n" +"Lang-Code: pl\n" +"Country-Code: 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.2\n" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/__init__.py:12 +msgctxt "@label" +msgid "Machine Settings action" +msgstr "Czynność ustawienia drukarki" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/__init__.py:15 +msgctxt "@info:whatsthis" +msgid "Provides a way to change machine settings (such as build volume, nozzle size, etc)" +msgstr "Zapewnia sposób zmiany ustawień maszyn (takich jak objętość robocza, rozmiar dyszy itd.)" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:28 +msgctxt "@action" +msgid "Machine Settings" +msgstr "Ustawienia drukarki" + +#: /home/ruben/Projects/Cura/plugins/XRayView/__init__.py:12 +msgctxt "@label" +msgid "X-Ray View" +msgstr "Widok rentgenowski" + +#: /home/ruben/Projects/Cura/plugins/XRayView/__init__.py:15 +msgctxt "@info:whatsthis" +msgid "Provides the X-Ray view." +msgstr "Zapewnia widok rentgenowski." + +#: /home/ruben/Projects/Cura/plugins/XRayView/__init__.py:19 +msgctxt "@item:inlistbox" +msgid "X-Ray" +msgstr "Prześwietlenie" + +#: /home/ruben/Projects/Cura/plugins/X3DReader/__init__.py:11 +msgctxt "@label" +msgid "X3D Reader" +msgstr "Czytnik X3D" + +#: /home/ruben/Projects/Cura/plugins/X3DReader/__init__.py:14 +msgctxt "@info:whatsthis" +msgid "Provides support for reading X3D files." +msgstr "Zapewnia obsługę czytania plików X3D." + +#: /home/ruben/Projects/Cura/plugins/X3DReader/__init__.py:20 +msgctxt "@item:inlistbox" +msgid "X3D File" +msgstr "X3D Plik" + +#: /home/ruben/Projects/Cura/plugins/GCodeWriter/__init__.py:12 +msgctxt "@label" +msgid "GCode Writer" +msgstr "GCode Autor" + +#: /home/ruben/Projects/Cura/plugins/GCodeWriter/__init__.py:15 +msgctxt "@info:whatsthis" +msgid "Writes GCode to a file." +msgstr "Zapisuje kod GCode do pliku." + +#: /home/ruben/Projects/Cura/plugins/GCodeWriter/__init__.py:22 +msgctxt "@item:inlistbox" +msgid "GCode File" +msgstr "Plik GCode" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/__init__.py:13 +msgctxt "@label" +msgid "Doodle3D" +msgstr "Doodle3D" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/__init__.py:17 +msgctxt "@info:whatsthis" +msgid "Accepts G-Code and sends them over WiFi to a Doodle3D WiFi-Box." +msgstr "Akceptuje G-code i wysyła je przez WiFi do Doodle3D WiFi-Box." + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:36 +msgctxt "@item:inmenu" +msgid "Doodle3D printing" +msgstr "Doodle3D drukowanie" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:37 +msgctxt "@action:button Preceded by 'Ready to'." +msgid "Print with Doodle3D" +msgstr "Drukuj z Doodle3D" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/PrinterConnection.py:38 +msgctxt "@info:tooltip" +msgid "Print with " +msgstr "Drukuj z " + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D.py:49 +msgctxt "@title:menu" +msgid "Doodle3D" +msgstr "Doodle3D" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/Doodle3D.py:50 +msgctxt "@item:inlistbox" +msgid "Enable Scan devices..." +msgstr "Włącz skanowanie urządzeń ..." + +#: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/__init__.py:12 +#: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.qml:18 +msgctxt "@label" +msgid "Changelog" +msgstr "Dziennik" + +#: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/__init__.py:15 +msgctxt "@info:whatsthis" +msgid "Shows changes since latest checked version." +msgstr "Pokazuje zmiany od ostatniej sprawdzonej wersji." + +#: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.py:35 +msgctxt "@item:inmenu" +msgid "Show Changelog" +msgstr "Pokaż Dziennik" + +#: /home/ruben/Projects/Cura/plugins/ProfileFlattener/__init__.py:12 +msgctxt "@label" +msgid "Profile flatener" +msgstr "Charakterystyka Profila" + +#: /home/ruben/Projects/Cura/plugins/ProfileFlattener/__init__.py:15 +msgctxt "@info:whatsthis" +msgid "Create a flattend quality changes profile." +msgstr "Utwórz charakterystyczny profil jakości" + +#: /home/ruben/Projects/Cura/plugins/ProfileFlattener/ProfileFlattener.py:20 +msgctxt "@item:inmenu" +msgid "Flatten active settings" +msgstr "Spłaszczyć aktywne ustawienia" + +#: /home/ruben/Projects/Cura/plugins/ProfileFlattener/ProfileFlattener.py:32 +msgctxt "@info:status" +msgid "Profile has been flattened & activated." +msgstr "Profil został spłaszczony i aktywowany." + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/__init__.py:13 +msgctxt "@label" +msgid "USB printing" +msgstr "Drukowanie USB" + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/__init__.py:17 +msgctxt "@info:whatsthis" +msgid "Accepts G-Code and sends them to a printer. Plugin can also update firmware." +msgstr "Akceptuje G-code i wysyła je do drukarki. Wtyczka może również aktualizować oprogramowanie układowe." + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:26 +msgctxt "@item:inmenu" +msgid "USB printing" +msgstr "Drukowanie USB" + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:27 +msgctxt "@action:button Preceded by 'Ready to'." +msgid "Print via USB" +msgstr "Drukuj przez USB" + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:28 +msgctxt "@info:tooltip" +msgid "Print via USB" +msgstr "Drukuj przez USB" + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:30 +msgctxt "@info:status" +msgid "Connected via USB" +msgstr "Połączono przez USB" + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:153 +msgctxt "@info:status" +msgid "Unable to start a new job because the printer is busy or not connected." +msgstr "Nie można uruchomić nowego zadania, ponieważ drukarka jest zajęta lub nie jest podłączona." + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:456 +msgctxt "@info:status" +msgid "This printer does not support USB printing because it uses UltiGCode flavor." +msgstr "Ta drukarka nie obsługuje drukowania USB, ponieważ korzysta z UltiGCode." + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:460 +msgctxt "@info:status" +msgid "Unable to start a new job because the printer does not support usb printing." +msgstr "Nie można uruchomić nowego zadania, ponieważ drukarka nie obsługuje drukowania poprzez USB." + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:107 +msgctxt "@info" +msgid "Unable to update firmware because there are no printers connected." +msgstr "Nie można zaktualizować oprogramowania, ponieważ nie ma podłączonych drukarek." + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDeviceManager.py:121 +#, python-format +msgctxt "@info" +msgid "Could not find firmware required for the printer at %s." +msgstr "Nie znaleziono oprogramowania wymaganego dla drukarki w %s." + +#: /home/ruben/Projects/Cura/plugins/X3GWriter/__init__.py:15 +msgctxt "X3G Writer Plugin Description" +msgid "Writes X3G to a file" +msgstr "Zapisuje do pliku X3G" + +#: /home/ruben/Projects/Cura/plugins/X3GWriter/__init__.py:22 +msgctxt "X3G Writer File Description" +msgid "X3G File" +msgstr "Plik X3G" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:23 +msgctxt "@action:button Preceded by 'Ready to'." +msgid "Save to Removable Drive" +msgstr "Zapisz na dysk wymienny" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:24 +#, python-brace-format +msgctxt "@item:inlistbox" +msgid "Save to Removable Drive {0}" +msgstr "Zapisz na dysk wymienny {0}" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:89 +#, python-brace-format +msgctxt "@info:progress" +msgid "Saving to Removable Drive {0}" +msgstr "Zapisywanie na dysk wymienny {0}" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:99 +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:102 +#, python-brace-format +msgctxt "@info:status" +msgid "Could not save to {0}: {1}" +msgstr "Nie udało się zapisać do {0}: {1}" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:132 +#, python-brace-format +msgctxt "@info:status" +msgid "Saved to Removable Drive {0} as {1}" +msgstr "Zapisano na dysk wymienny {0} jako {1}" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:133 +msgctxt "@action:button" +msgid "Eject" +msgstr "Wyjmij" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:133 +#, python-brace-format +msgctxt "@action" +msgid "Eject removable device {0}" +msgstr "Wyjmij urządzenie wymienne {0}" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:138 +#, python-brace-format +msgctxt "@info:status" +msgid "Could not save to removable drive {0}: {1}" +msgstr "Nie można zapisać na wymiennym dysku {0}: {1}" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:148 +#, python-brace-format +msgctxt "@info:status" +msgid "Ejected {0}. You can now safely remove the drive." +msgstr "Wyjęto {0}. Możesz teraz bezpiecznie wyjąć dysk." + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:150 +#, python-brace-format +msgctxt "@info:status" +msgid "Failed to eject {0}. Another program may be using the drive." +msgstr "Nie można wysunąć {0}. Inny program może używać dysku." + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/__init__.py:12 +msgctxt "@label" +msgid "Removable Drive Output Device Plugin" +msgstr "Usuwana wtyczka urządzenia wyjściowego napędu" + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/__init__.py:14 +msgctxt "@info:whatsthis" +msgid "Provides removable drive hotplugging and writing support." +msgstr "Zapewnia podłączanie wymiennego dysku i zapisywania na bieżąco." + +#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/WindowsRemovableDrivePlugin.py:69 +msgctxt "@item:intext" +msgid "Removable Drive" +msgstr "Dysk wymienny" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/__init__.py:13 +msgctxt "@info:whatsthis" +msgid "Manages network connections to Ultimaker 3 printers" +msgstr "Zarządza połączeniami sieciowymi z drukarkami Ultimaker 3" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:106 +msgctxt "@action:button Preceded by 'Ready to'." +msgid "Print over network" +msgstr "Drukuj przez sieć" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:107 +msgctxt "@properties:tooltip" +msgid "Print over network" +msgstr "Drukuj przez sieć" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:156 +msgctxt "@info:status" +msgid "Access to the printer requested. Please approve the request on the printer" +msgstr "Wymagany dostęp do drukarki. Proszę zatwierdzić prośbę na drukarce" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:157 +msgctxt "@info:status" +msgid "" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 +msgctxt "@action:button" +msgid "Retry" +msgstr "Spróbuj ponownie" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:158 +msgctxt "@info:tooltip" +msgid "Re-send the access request" +msgstr "Prześlij ponownie żądanie dostępu" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:160 +msgctxt "@info:status" +msgid "Access to the printer accepted" +msgstr "Dostęp do drukarki został zaakceptowany" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:161 +msgctxt "@info:status" +msgid "No access to print with this printer. Unable to send print job." +msgstr "Brak dostępu do tej drukarki. Nie można wysłać zadania drukowania." + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:28 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:72 +msgctxt "@action:button" +msgid "Request Access" +msgstr "Poproś o dostęp" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:162 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:27 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:71 +msgctxt "@info:tooltip" +msgid "Send access request to the printer" +msgstr "Wyślij żądanie dostępu do drukarki" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:348 +msgctxt "@info:status" +msgid "Connected over the network. Please approve the access request on the printer." +msgstr "Połączono przez sieć. Proszę zatwierdzić żądanie dostępu na drukarce." + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:355 +msgctxt "@info:status" +msgid "Connected over the network." +msgstr "Połączono przez sieć." + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:368 +msgctxt "@info:status" +msgid "Connected over the network. No access to control the printer." +msgstr "Połączono przez sieć. Brak dostępu do sterowania drukarką." + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:373 +msgctxt "@info:status" +msgid "Access request was denied on the printer." +msgstr "Żądanie dostępu zostało odrzucone na drukarce." + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:376 +msgctxt "@info:status" +msgid "Access request failed due to a timeout." +msgstr "Żądanie dostępu nie powiodło się z powodu limitu czasu." + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:440 +msgctxt "@info:status" +msgid "The connection with the network was lost." +msgstr "Połączenie z siecią zostało utracone." + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:471 +msgctxt "@info:status" +msgid "The connection with the printer was lost. Check your printer to see if it is connected." +msgstr "Połączenie z drukarką zostało utracone. Sprawdź, czy drukarka jest podłączona." + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:620 +#, python-format +msgctxt "@info:status" +msgid "Unable to start a new print job, printer is busy. Current printer status is %s." +msgstr "Nie można uruchomić nowego zadania, drukarka jest zajęta. Aktualny stan drukarki to %s." + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:644 +#, python-brace-format +msgctxt "@info:status" +msgid "Unable to start a new print job. No Printcore loaded in slot {0}" +msgstr "Nie można uruchomić nowego zadania. Brak Printcore w slocie {0}" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:651 +#, python-brace-format +msgctxt "@info:status" +msgid "Unable to start a new print job. No material loaded in slot {0}" +msgstr "Nie można uruchomić nowego zadania. Brak materiału w slocie {0}" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:660 +#, python-brace-format +msgctxt "@label" +msgid "Not enough material for spool {0}." +msgstr "Nie ma wystarczającej ilości materiału na szpuli {0}." + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:670 +#, python-brace-format +msgctxt "@label" +msgid "Different print core (Cura: {0}, Printer: {1}) selected for extruder {2}" +msgstr "Różne Print core (Cura: {0}, Drukarka: {1}) wybrane dla dyszy {2}" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:684 +#, python-brace-format +msgctxt "@label" +msgid "Different material (Cura: {0}, Printer: {1}) selected for extruder {2}" +msgstr "Różne materiały (Cura: {0}, Drukarka: {1}) wybrane do dzyszy {2}" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:692 +#, python-brace-format +msgctxt "@label" +msgid "Print core {0} is not properly calibrated. XY calibration needs to be performed on the printer." +msgstr "Print core {0} nie jest poprawnie skalibrowany. Na drukarce powinna zostać przeprowadzona Kalibracja XY." + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:697 +msgctxt "@label" +msgid "Are you sure you wish to print with the selected configuration?" +msgstr "Czy na pewno chcesz drukować z wybraną konfiguracją?" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:698 +msgctxt "@label" +msgid "There is a mismatch between the configuration or calibration of the printer and Cura. For the best result, always slice for the PrintCores and materials that are inserted in your printer." +msgstr "Występuje niezgodność między konfiguracją lub kalibracją drukarki a Curą. Aby uzyskać najlepszy rezultat, zawsze tnij dla Print core'ów i materiałów włożonych do drukarki." + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:704 +msgctxt "@window:title" +msgid "Mismatched configuration" +msgstr "Niedopasowana konfiguracja" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:805 +msgctxt "@info:status" +msgid "Sending data to printer" +msgstr "Wysyłanie danych do drukarki" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:806 +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:46 +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:73 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:350 +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:188 +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:374 +#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:87 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:251 +msgctxt "@action:button" +msgid "Cancel" +msgstr "Anuluj" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:874 +msgctxt "@info:status" +msgid "Unable to send data to printer. Is another job still active?" +msgstr "Nie można wysłać danych do drukarki. Czy inna praca jest nadal aktywna?" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1008 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:198 +msgctxt "@label:MonitorStatus" +msgid "Aborting print..." +msgstr "Przerywanie drukowania..." + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1014 +msgctxt "@label:MonitorStatus" +msgid "Print aborted. Please check the printer" +msgstr "Wydruk został przerwany. Sprawdź drukarkę" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1020 +msgctxt "@label:MonitorStatus" +msgid "Pausing print..." +msgstr "Wstrzymywanie drukowania..." + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1022 +msgctxt "@label:MonitorStatus" +msgid "Resuming print..." +msgstr "Wznawianie drukowania ..." + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1165 +msgctxt "@window:title" +msgid "Sync with your printer" +msgstr "Synchronizuj się z drukarką" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1167 +msgctxt "@label" +msgid "Would you like to use your current printer configuration in Cura?" +msgstr "Czy chcesz używać bieżącej konfiguracji drukarki w programie Cura?" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py:1169 +msgctxt "@label" +msgid "The print cores and/or materials on your printer differ from those within your current project. For the best result, always slice for the print cores and materials that are inserted in your printer." +msgstr "Print core'y i/lub materiały w twojej drukarce różnią się od tych, które zostały wybrane w obecnym projekcie. Dla najlepszego rezultatu, zawsze tnij modele dla pint core'ów i materiałów, które są umieszczone w twojej drukarce." + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.py:19 +msgctxt "@action" +msgid "Connect via Network" +msgstr "Połącz przez sieć" + +#: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.py:24 +msgid "Modify G-Code" +msgstr "Modyfikuj G-Code" + +#: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/__init__.py:12 +msgctxt "@label" +msgid "Post Processing" +msgstr "Przetwarzanie " + +#: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/__init__.py:16 +msgctxt "Description of plugin" +msgid "Extension that allows for user created scripts for post processing" +msgstr "Rozszerzenie, które pozwala tworzyć skrypty dla użytkowników po przetworzeniu" + +#: /home/ruben/Projects/Cura/plugins/AutoSave/__init__.py:12 +msgctxt "@label" +msgid "Auto Save" +msgstr "Automatyczne zapisywanie" + +#: /home/ruben/Projects/Cura/plugins/AutoSave/__init__.py:15 +msgctxt "@info:whatsthis" +msgid "Automatically saves Preferences, Machines and Profiles after changes." +msgstr "Automatycznie zapisuje ustawienia, maszyny i profile po zmianach." + +#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/__init__.py:10 +msgctxt "@label" +msgid "Slice info" +msgstr "Cura informacja" + +#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/__init__.py:13 +msgctxt "@info:whatsthis" +msgid "Submits anonymous slice info. Can be disabled through preferences." +msgstr "Składa anonimową listę cięc. Można wyłączyć przez preferencje." + +#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:75 +msgctxt "@info" +msgid "Cura collects anonymised slicing statistics. You can disable this in preferences" +msgstr "Cura zbiera anonimowe statystyki. Możesz wyłączyć to w preferencjach" + +#: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:76 +msgctxt "@action:button" +msgid "Dismiss" +msgstr "Anuluj" + +#: /home/ruben/Projects/Cura/plugins/XmlMaterialProfile/__init__.py:18 +msgctxt "@label" +msgid "Material Profiles" +msgstr "Profile materiałów" + +#: /home/ruben/Projects/Cura/plugins/XmlMaterialProfile/__init__.py:21 +msgctxt "@info:whatsthis" +msgid "Provides capabilities to read and write XML-based material profiles." +msgstr "Zapewnia możliwość odczytu i zapisu profili materiałów opartych na XML." + +#: /home/ruben/Projects/Cura/plugins/LegacyProfileReader/__init__.py:12 +msgctxt "@label" +msgid "Legacy Cura Profile Reader" +msgstr "Starszy czytnik Cura" + +#: /home/ruben/Projects/Cura/plugins/LegacyProfileReader/__init__.py:15 +msgctxt "@info:whatsthis" +msgid "Provides support for importing profiles from legacy Cura versions." +msgstr "Zapewnia obsługę importowania profili w starszych wersjach Cura." + +#: /home/ruben/Projects/Cura/plugins/LegacyProfileReader/__init__.py:21 +msgctxt "@item:inlistbox" +msgid "Cura 15.04 profiles" +msgstr "Profile Cura 15.04 " + +#: /home/ruben/Projects/Cura/plugins/GCodeProfileReader/__init__.py:12 +msgctxt "@label" +msgid "GCode Profile Reader" +msgstr "Czytnik profilu GCode" + +#: /home/ruben/Projects/Cura/plugins/GCodeProfileReader/__init__.py:15 +msgctxt "@info:whatsthis" +msgid "Provides support for importing profiles from g-code files." +msgstr "Zapewnia obsługę importowania profili z plików g-code." + +#: /home/ruben/Projects/Cura/plugins/GCodeProfileReader/__init__.py:21 +#: /home/ruben/Projects/Cura/plugins/GCodeReader/__init__.py:21 +msgctxt "@item:inlistbox" +msgid "G-code File" +msgstr "Pliki G-code" + +#: /home/ruben/Projects/Cura/plugins/LayerView/__init__.py:13 +msgctxt "@label" +msgid "Layer View" +msgstr "Widok warstwy" + +#: /home/ruben/Projects/Cura/plugins/LayerView/__init__.py:16 +msgctxt "@info:whatsthis" +msgid "Provides the Layer view." +msgstr "Zapewnia widok warstwy." + +#: /home/ruben/Projects/Cura/plugins/LayerView/__init__.py:20 +msgctxt "@item:inlistbox" +msgid "Layers" +msgstr "Warstwy" + +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.py:93 +msgctxt "@info:status" +msgid "Cura does not accurately display layers when Wire Printing is enabled" +msgstr "Cura nie wyświetla dokładnie warstw kiedy drukowanie przewodowe jest włączone" + +#: /home/ruben/Projects/Cura/plugins/VersionUpgrade/VersionUpgrade25to26/__init__.py:14 +msgctxt "@label" +msgid "Version Upgrade 2.5 to 2.6" +msgstr "Aktualizacja wersji 2.5 do 2.6" + +#: /home/ruben/Projects/Cura/plugins/VersionUpgrade/VersionUpgrade25to26/__init__.py:17 +msgctxt "@info:whatsthis" +msgid "Upgrades configurations from Cura 2.5 to Cura 2.6." +msgstr "Uaktualnia konfiguracji z Cura 2.5 do Cura 2.6." + +#: /home/ruben/Projects/Cura/plugins/VersionUpgrade/VersionUpgrade21to22/__init__.py:14 +msgctxt "@label" +msgid "Version Upgrade 2.1 to 2.2" +msgstr "Aktualizacja wersji 2.1 do 2.2" + +#: /home/ruben/Projects/Cura/plugins/VersionUpgrade/VersionUpgrade21to22/__init__.py:17 +msgctxt "@info:whatsthis" +msgid "Upgrades configurations from Cura 2.1 to Cura 2.2." +msgstr "Uaktualnia konfiguracji z Cura 2.1 do Cura 2.2." + +#: /home/ruben/Projects/Cura/plugins/VersionUpgrade/VersionUpgrade22to24/__init__.py:14 +msgctxt "@label" +msgid "Version Upgrade 2.2 to 2.4" +msgstr "Aktualizacja wersji 2.2 do 2.4" + +#: /home/ruben/Projects/Cura/plugins/VersionUpgrade/VersionUpgrade22to24/__init__.py:17 +msgctxt "@info:whatsthis" +msgid "Upgrades configurations from Cura 2.2 to Cura 2.4." +msgstr "Uaktualnia konfiguracji z Cura 2.2 do Cura 2.4." + +#: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:12 +msgctxt "@label" +msgid "Image Reader" +msgstr "Czytnik Obrazów" + +#: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:15 +msgctxt "@info:whatsthis" +msgid "Enables ability to generate printable geometry from 2D image files." +msgstr "Umożliwia generowanie drukowanej geometrii z plików obrazów 2D." + +#: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:21 +msgctxt "@item:inlistbox" +msgid "JPG Image" +msgstr "Obraz JPG" + +#: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:25 +msgctxt "@item:inlistbox" +msgid "JPEG Image" +msgstr "Obraz JPEG" + +#: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:29 +msgctxt "@item:inlistbox" +msgid "PNG Image" +msgstr "Obraz PNG" + +#: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:33 +msgctxt "@item:inlistbox" +msgid "BMP Image" +msgstr "Obraz BMP" + +#: /home/ruben/Projects/Cura/plugins/ImageReader/__init__.py:37 +msgctxt "@item:inlistbox" +msgid "GIF Image" +msgstr "Obraz GIF" + +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:272 +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:105 +msgctxt "@info:status" +msgid "The selected material is incompatible with the selected machine or configuration." +msgstr "Wybrany materiał jest niezgodny z wybranym urządzeniem lub konfiguracją." + +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:299 +#, python-brace-format +msgctxt "@info:status" +msgid "Unable to slice with the current settings. The following settings have errors: {0}" +msgstr "Nie można pociąć z bieżącymi ustawieniami. Następujące ustawienia mają błędy: {0}" + +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:308 +msgctxt "@info:status" +msgid "Unable to slice because the prime tower or prime position(s) are invalid." +msgstr "Nie można pociąć, ponieważ wieża czyszcząca lub jej pozycja(e) są niewłaściwe." + +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:316 +msgctxt "@info:status" +msgid "Nothing to slice because none of the models fit the build volume. Please scale or rotate models to fit." +msgstr "Nic do pocięcia, ponieważ żaden z modeli nie pasuje do obszaru roboczego. Proszę o przeskalowanie lub obrócenie modelu, żeby pasował." + +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/__init__.py:13 +msgctxt "@label" +msgid "CuraEngine Backend" +msgstr "CuraEngine Backend" + +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/__init__.py:15 +msgctxt "@info:whatsthis" +msgid "Provides the link to the CuraEngine slicing backend." +msgstr "Zapewnia połączenie do narzędzi cięcia CuraEngine." + +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py:64 +#: /home/ruben/Projects/Cura/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py:238 +msgctxt "@info:status" +msgid "Processing Layers" +msgstr "Przetwarzanie warstw" + +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/__init__.py:14 +msgctxt "@label" +msgid "Per Model Settings Tool" +msgstr "Narzędzie ustawień osobno dla każdego modelu" + +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/__init__.py:17 +msgctxt "@info:whatsthis" +msgid "Provides the Per Model Settings." +msgstr "Zapewnia ustawienia każdego modelu osobno." + +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/__init__.py:21 +msgctxt "@label" +msgid "Per Model Settings" +msgstr "Ustawienia każdego modelu osobno" + +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/__init__.py:22 +msgctxt "@info:tooltip" +msgid "Configure Per Model Settings" +msgstr "Konfiguruj ustawienia każdego modelu z osobna" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.py:165 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:643 +msgctxt "@title:tab" +msgid "Recommended" +msgstr "Zalecane" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.py:167 +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:648 +msgctxt "@title:tab" +msgid "Custom" +msgstr "Niestandardowe" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/__init__.py:27 +msgctxt "@label" +msgid "3MF Reader" +msgstr "Czytnik 3MF" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/__init__.py:30 +msgctxt "@info:whatsthis" +msgid "Provides support for reading 3MF files." +msgstr "Zapewnia obsługę czytania plików 3MF." + +#: /home/ruben/Projects/Cura/plugins/3MFReader/__init__.py:38 +#: /home/ruben/Projects/Cura/plugins/3MFReader/__init__.py:44 +msgctxt "@item:inlistbox" +msgid "3MF File" +msgstr "Plik 3MF" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:119 +#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:1047 +msgctxt "@label" +msgid "Nozzle" +msgstr "Dysza" + +#: /home/ruben/Projects/Cura/plugins/SolidView/__init__.py:12 +msgctxt "@label" +msgid "Solid View" +msgstr "Widok bryły" + +#: /home/ruben/Projects/Cura/plugins/SolidView/__init__.py:15 +msgctxt "@info:whatsthis" +msgid "Provides a normal solid mesh view." +msgstr "Zapewnia normalny widok siatki." + +#: /home/ruben/Projects/Cura/plugins/SolidView/__init__.py:19 +msgctxt "@item:inmenu" +msgid "Solid" +msgstr "Bryła" + +#: /home/ruben/Projects/Cura/plugins/GCodeReader/__init__.py:12 +msgctxt "@label" +msgid "G-code Reader" +msgstr "Czytnik G-code" + +#: /home/ruben/Projects/Cura/plugins/GCodeReader/__init__.py:15 +msgctxt "@info:whatsthis" +msgid "Allows loading and displaying G-code files." +msgstr "Umożliwia ładowanie i wyświetlanie plików G-code." + +#: /home/ruben/Projects/Cura/plugins/GCodeReader/__init__.py:25 +msgctxt "@item:inlistbox" +msgid "G File" +msgstr "Plik G-code" + +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:254 +msgctxt "@info:status" +msgid "Parsing G-code" +msgstr "Analizowanie G-code" + +#: /home/ruben/Projects/Cura/plugins/GCodeReader/GCodeReader.py:365 +msgctxt "@info:generic" +msgid "Make sure the g-code is suitable for your printer and printer configuration before sending the file to it. The g-code representation may not be accurate." +msgstr "Przed wysłaniem pliku upewnij się, że G-code jest odpowiedni do konfiguracji drukarki. Przedstawienie G-kodu może nie być dokładne." + +#: /home/ruben/Projects/Cura/plugins/CuraProfileWriter/__init__.py:12 +msgctxt "@label" +msgid "Cura Profile Writer" +msgstr "Pisarz Profili Cura" + +#: /home/ruben/Projects/Cura/plugins/CuraProfileWriter/__init__.py:15 +msgctxt "@info:whatsthis" +msgid "Provides support for exporting Cura profiles." +msgstr "Zapewnia obsługę eksportowania profili Cura." + +#: /home/ruben/Projects/Cura/plugins/CuraProfileWriter/__init__.py:21 +#: /home/ruben/Projects/Cura/plugins/CuraProfileReader/__init__.py:21 +msgctxt "@item:inlistbox" +msgid "Cura Profile" +msgstr "Profile Cura" + +#: /home/ruben/Projects/Cura/plugins/3MFWriter/__init__.py:19 +msgctxt "@label" +msgid "3MF Writer" +msgstr "3MF Writer" + +#: /home/ruben/Projects/Cura/plugins/3MFWriter/__init__.py:22 +msgctxt "@info:whatsthis" +msgid "Provides support for writing 3MF files." +msgstr "Zapewnia obsługę pisania plików 3MF." + +#: /home/ruben/Projects/Cura/plugins/3MFWriter/__init__.py:31 +msgctxt "@item:inlistbox" +msgid "3MF file" +msgstr "Plik 3MF" + +#: /home/ruben/Projects/Cura/plugins/3MFWriter/__init__.py:39 +msgctxt "@item:inlistbox" +msgid "Cura Project 3MF file" +msgstr "Plik Cura Project 3MF" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelection.py:20 +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelection.py:20 +msgctxt "@action" +msgid "Select upgrades" +msgstr "Wybierz aktualizacje" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/__init__.py:16 +msgctxt "@label" +msgid "Ultimaker machine actions" +msgstr "Działania maszyny Ultimaker" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/__init__.py:19 +msgctxt "@info:whatsthis" +msgid "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc)" +msgstr "Zapewnia działania maszyny Ultimaker (takie jak kreator poziomowania stołu, wybierania ulepszeń itd.)" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.py:12 +msgctxt "@action" +msgid "Upgrade Firmware" +msgstr "Uaktualnij oprogramowanie układowe" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.py:14 +msgctxt "@action" +msgid "Checkup" +msgstr "Sprawdzanie" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/BedLevelMachineAction.py:15 +msgctxt "@action" +msgid "Level build plate" +msgstr "Wypoziomuj stół" + +#: /home/ruben/Projects/Cura/plugins/CuraProfileReader/__init__.py:12 +msgctxt "@label" +msgid "Cura Profile Reader" +msgstr "Czytnik profilu Cura" + +#: /home/ruben/Projects/Cura/plugins/CuraProfileReader/__init__.py:15 +msgctxt "@info:whatsthis" +msgid "Provides support for importing Cura profiles." +msgstr "Zapewnia wsparcie dla importowania profili Cura." + +#: /home/ruben/Projects/Cura/cura/PrintInformation.py:247 +#, python-brace-format +msgctxt "@label" +msgid "Pre-sliced file {0}" +msgstr "Plik pocięty wcześniej {0}" + +#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:376 +msgctxt "@item:material" +msgid "No material loaded" +msgstr "Nie załadowano materiału" + +#: /home/ruben/Projects/Cura/cura/PrinterOutputDevice.py:383 +msgctxt "@item:material" +msgid "Unknown material" +msgstr "Nieznany materiał" + +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:30 +msgctxt "@info:status" +msgid "Finding new location for objects" +msgstr "Znajdowanie nowej lokalizacji obiektów" + +#: /home/ruben/Projects/Cura/cura/ArrangeObjectsJob.py:85 +#: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:83 +msgctxt "@info:status" +msgid "Unable to find a location within the build volume for all objects" +msgstr "Nie można znaleźć lokalizacji w obrębie obszaru roboczego dla wszystkich obiektów" + +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:355 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:112 +msgctxt "@title:window" +msgid "File Already Exists" +msgstr "Plik już istnieje" + +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:356 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:113 +#, python-brace-format +msgctxt "@label" +msgid "The file {0} already exists. Are you sure you want to overwrite it?" +msgstr "Plik {0} już istnieje. Czy na pewno chcesz go nadpisać?" + +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:739 +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:740 +msgctxt "@label" +msgid "Custom" +msgstr "Niestandardowy" + +#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:741 +msgctxt "@label" +msgid "Custom Material" +msgstr "Niestandardowy materiał" + +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:143 +#, python-brace-format +msgctxt "@info:status" +msgid "Failed to export profile to {0}: {1}" +msgstr "Nie można wyeksportować profilu do {0}: {1}" + +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:148 +#, python-brace-format +msgctxt "@info:status" +msgid "Failed to export profile to {0}: Writer plugin reported failure." +msgstr "Nie można wyeksportować profilu do {0}: Wtyczka Cura zgłosiła błąd." + +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:151 +#, python-brace-format +msgctxt "@info:status" +msgid "Exported profile to {0}" +msgstr "Wyeksportowano profil do {0}" + +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:177 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:199 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:208 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:242 +#, python-brace-format +msgctxt "@info:status" +msgid "Failed to import profile from {0}: {1}" +msgstr "Nie można zaimportować profilu z {0}: {1}" + +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:210 +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:246 +#, python-brace-format +msgctxt "@info:status" +msgid "Successfully imported profile {0}" +msgstr "Profil zaimportowany {0}" + +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:249 +#, python-brace-format +msgctxt "@info:status" +msgid "Profile {0} has an unknown file type or is corrupted." +msgstr "Profil {0} ma nieznany typ pliku lub jest uszkodzony." + +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:267 +msgctxt "@label" +msgid "Custom profile" +msgstr "Niestandardowy profil" + +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:278 +msgctxt "@info:status" +msgid "Profile is missing a quality type." +msgstr "Profilowi brakuje typu jakości." + +#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:300 +#, python-brace-format +msgctxt "@info:status" +msgid "Could not find a quality type {0} for the current configuration." +msgstr "Nie można znaleźć typu jakości {0} dla bieżącej konfiguracji." + +#: /home/ruben/Projects/Cura/cura/BuildVolume.py:95 +msgctxt "@info:status" +msgid "The build volume height has been reduced due to the value of the \"Print Sequence\" setting to prevent the gantry from colliding with printed models." +msgstr "Wysokość obszaru roboczego została zmniejszona ze względu na wartość ustawienia Print Sequence (Sekwencja wydruku), aby zapobiec kolizji z wydrukowanymi modelami." + +#: /home/ruben/Projects/Cura/cura/MultiplyObjectsJob.py:34 +msgctxt "@info:status" +msgid "Multiplying and placing objects" +msgstr "Zwielokrotnienie i umieszczanie przedmiotów" + +#: /home/ruben/Projects/Cura/cura/CrashHandler.py:54 +msgctxt "@title:window" +msgid "Crash Report" +msgstr "Raport awarii" + +#: /home/ruben/Projects/Cura/cura/CrashHandler.py:79 +msgctxt "@label" +msgid "" +"

A fatal exception has occurred that we could not recover from!

\n" +"

Please use the information below to post a bug report at http://github.com/Ultimaker/Cura/issues

\n" +" " +msgstr "" +"

Pojawił się fatalny wyjątek, z którego nie możemy odzyskać!

\n" +"

Aby przesłać zgłoszenie błędu, skorzystaj z poniższych informacji http://github.com/Ultimaker/Cura/issues

\n" +" " + +#: /home/ruben/Projects/Cura/cura/CrashHandler.py:112 +msgctxt "@action:button" +msgid "Open Web Page" +msgstr "Otwórz stronę sieci Web" + +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:238 +msgctxt "@info:progress" +msgid "Loading machines..." +msgstr "Ładowanie drukarek..." + +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:594 +msgctxt "@info:progress" +msgid "Setting up scene..." +msgstr "Ustawianie sceny ..." + +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:636 +msgctxt "@info:progress" +msgid "Loading interface..." +msgstr "Ładowanie interfejsu ..." + +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:793 +#, python-format +msgctxt "@info" +msgid "%(width).1f x %(depth).1f x %(height).1f mm" +msgstr "%(width).1f x %(depth).1f x %(height).1f mm" + +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1263 +#, python-brace-format +msgctxt "@info:status" +msgid "Only one G-code file can be loaded at a time. Skipped importing {0}" +msgstr "Jednocześnie można załadować tylko jeden plik G-code. Pominięto importowanie {0}" + +#: /home/ruben/Projects/Cura/cura/CuraApplication.py:1272 +#, python-brace-format +msgctxt "@info:status" +msgid "Can't open any other file if G-code is loading. Skipped importing {0}" +msgstr "Nie można otworzyć żadnego innego pliku, jeśli ładuje się G-code. Pominięto importowanie {0}" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:53 +msgctxt "@title" +msgid "Machine Settings" +msgstr "Ustawienia Drukarki" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:71 +msgctxt "@title:tab" +msgid "Printer" +msgstr "Drukarka" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:90 +msgctxt "@label" +msgid "Printer Settings" +msgstr "Ustawienia drukarki" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:102 +msgctxt "@label" +msgid "X (Width)" +msgstr "X (Szerokość)" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:109 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:122 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:135 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:343 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:386 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:399 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:549 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:561 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:574 +msgctxt "@label" +msgid "mm" +msgstr "mm" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:115 +msgctxt "@label" +msgid "Y (Depth)" +msgstr "Y (Głębokość)" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:128 +msgctxt "@label" +msgid "Z (Height)" +msgstr "Z (Wysokość)" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:148 +msgctxt "@label" +msgid "Build Plate Shape" +msgstr "Kształt stołu" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:198 +msgctxt "@option:check" +msgid "Machine Center is Zero" +msgstr "Środek drukarki to zero" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:209 +msgctxt "@option:check" +msgid "Heated Bed" +msgstr "Stół podgrzewany" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:221 +msgctxt "@label" +msgid "GCode Flavor" +msgstr "GCode Flavor" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:273 +msgctxt "@label" +msgid "Printhead Settings" +msgstr "Ustawienia głowic drukujących" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:285 +msgctxt "@label" +msgid "X min" +msgstr "X min" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:297 +msgctxt "@label" +msgid "Y min" +msgstr "Y min" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:309 +msgctxt "@label" +msgid "X max" +msgstr "X max" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:321 +msgctxt "@label" +msgid "Y max" +msgstr "Y max" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:336 +msgctxt "@label" +msgid "Gantry height" +msgstr "Wysokość ramy" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:351 +msgctxt "@label" +msgid "Number of Extruders" +msgstr "Liczba ekstruderów" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:379 +msgctxt "@label" +msgid "Material Diameter" +msgstr "Średnica filamentu" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:390 +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:540 +msgctxt "@label" +msgid "Nozzle size" +msgstr "Rozmiar dyszy" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:417 +msgctxt "@label" +msgid "Start Gcode" +msgstr "Rozpocznij Gcode" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:446 +msgctxt "@label" +msgid "End Gcode" +msgstr "Koniec Gcode'u" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:528 +msgctxt "@label" +msgid "Nozzle Settings" +msgstr "Ustawienia dyszy" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:554 +msgctxt "@label" +msgid "Nozzle offset X" +msgstr "Korekcja dyszy X" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:567 +msgctxt "@label" +msgid "Nozzle offset Y" +msgstr "Korekcja dyszy Y" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:592 +msgctxt "@label" +msgid "Extruder Start Gcode" +msgstr "Początkowy Gcode ekstrudera" + +#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:620 +msgctxt "@label" +msgid "Extruder End Gcode" +msgstr "Końcowy Gcode ekstrudera" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:20 +msgctxt "@title:window" +msgid "Doodle3D Settings" +msgstr "Ustawienia Doodle3D" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/SettingsWindow.qml:53 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:262 +msgctxt "@action:button" +msgid "Save" +msgstr "Zapisz" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:23 +msgctxt "@title:window" +msgid "Print to: %1" +msgstr "Drukuj do: %1" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:40 +msgctxt "@label" +msgid "Extruder Temperature: %1/%2°C" +msgstr "Temperatura dyszy: %1/%2°C" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:45 +msgctxt "@label" +msgid "" +msgstr "" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:46 +msgctxt "@label" +msgid "Bed Temperature: %1/%2°C" +msgstr "Temperatura stołu: %1/%2°C" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:64 +msgctxt "@label" +msgid "%1" +msgstr "%1" + +#: /home/ruben/Projects/Cura/plugins/Doodle3D-cura-plugin/ControlWindow.qml:82 +msgctxt "@action:button" +msgid "Print" +msgstr "Drukuj" + +#: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.qml:37 +#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:105 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:55 +#: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:446 +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:304 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:125 +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:146 +#: /home/ruben/Projects/Cura/resources/qml/EngineLog.qml:38 +msgctxt "@action:button" +msgid "Close" +msgstr "Zamknij" + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:20 +msgctxt "@title:window" +msgid "Firmware Update" +msgstr "Aktualizacja oprogramowania układowego" + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:40 +msgctxt "@label" +msgid "Firmware update completed." +msgstr "Aktualizacja oprogramowania zakończona." + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:45 +msgctxt "@label" +msgid "Starting firmware update, this may take a while." +msgstr "Uruchamianie aktualizacji oprogramowania, to może potrwać chwilę." + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:50 +msgctxt "@label" +msgid "Updating firmware." +msgstr "Aktualizowanie oprogramowania." + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:59 +msgctxt "@label" +msgid "Firmware update failed due to an unknown error." +msgstr "Aktualizacja oprogramowania nie powiodła się z powodu nieznanego błędu." + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:62 +msgctxt "@label" +msgid "Firmware update failed due to an communication error." +msgstr "Aktualizacja oprogramowania nie powiodła się z powodu błędu komunikacji." + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:65 +msgctxt "@label" +msgid "Firmware update failed due to an input/output error." +msgstr "Aktualizacja oprogramowania nie powiodła się z powodu błędu wejścia / wyjścia." + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:68 +msgctxt "@label" +msgid "Firmware update failed due to missing firmware." +msgstr "Aktualizacja oprogramowania nie powiodła się z powodu utraconego oprogramowania." + +#: /home/ruben/Projects/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:71 +msgctxt "@label" +msgid "Unknown error code: %1" +msgstr "Nieznany kod błędu: %1" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:55 +msgctxt "@title:window" +msgid "Connect to Networked Printer" +msgstr "Połącz się z drukarką sieciową" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:65 +msgctxt "@label" +msgid "" +"To print directly to your printer over the network, please make sure your printer is connected to the network using a network cable or by connecting your printer to your WIFI network. If you don't connect Cura with your printer, you can still use a USB drive to transfer g-code files to your printer.\n" +"\n" +"Select your printer from the list below:" +msgstr "" +"Aby drukować bezpośrednio w drukarce w sieci, upewnij się, że drukarka jest podłączona do sieci przy użyciu kabla sieciowego lub sieci WIFI. Jeśli nie podłączasz Cury do drukarki, możesz nadal używać dysku USB do przesyłania plików g-code do drukarki.\n" +"\n" +"Wybierz drukarkę z poniższej listy:" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:75 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:44 +msgctxt "@action:button" +msgid "Add" +msgstr "Dodaj" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:85 +msgctxt "@action:button" +msgid "Edit" +msgstr "Edycja" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:96 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:50 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:95 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:187 +msgctxt "@action:button" +msgid "Remove" +msgstr "Usunąć" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:104 +msgctxt "@action:button" +msgid "Refresh" +msgstr "Odśwież" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:196 +msgctxt "@label" +msgid "If your printer is not listed, read the network-printing troubleshooting guide" +msgstr "Jeśli drukarka nie ma na liście, przeczytaj przewodnik o rozwiązywaniu problemów z drukowaniem sieciowym" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:223 +msgctxt "@label" +msgid "Type" +msgstr "Rodzaj" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:235 +msgctxt "@label" +msgid "Ultimaker 3" +msgstr "Ultimaker 3" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:238 +msgctxt "@label" +msgid "Ultimaker 3 Extended" +msgstr "Ultimaker 3 Extended" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:241 +msgctxt "@label" +msgid "Unknown" +msgstr "Nieznany" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:254 +msgctxt "@label" +msgid "Firmware version" +msgstr "Wersja oprogramowania" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:266 +msgctxt "@label" +msgid "Address" +msgstr "Adres" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:280 +msgctxt "@label" +msgid "The printer at this address has not yet responded." +msgstr "Drukarka pod tym adresem jeszcze nie odpowiedziała." + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:285 +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:38 +msgctxt "@action:button" +msgid "Connect" +msgstr "Połącz" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:299 +msgctxt "@title:window" +msgid "Printer Address" +msgstr "Adres drukarki" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:329 +msgctxt "@alabel" +msgid "Enter the IP address or hostname of your printer on the network." +msgstr "Wpisz adres IP lub nazwę hosta drukarki w sieci." + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml:359 +msgctxt "@action:button" +msgid "Ok" +msgstr "Ok" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:37 +msgctxt "@info:tooltip" +msgid "Connect to a printer" +msgstr "Podłącz do drukarki" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:116 +msgctxt "@info:tooltip" +msgid "Load the configuration of the printer into Cura" +msgstr "Załaduj konfigurację drukarki do Cura" + +#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/UM3InfoComponents.qml:117 +msgctxt "@action:button" +msgid "Activate Configuration" +msgstr "Uaktywnij konfigurację" + +#: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:18 +msgctxt "@title:window" +msgid "Post Processing Plugin" +msgstr "Plugin post-processingu" + +#: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:49 +msgctxt "@label" +msgid "Post Processing Scripts" +msgstr "Skrypty post-processingu" + +#: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:218 +msgctxt "@action" +msgid "Add a script" +msgstr "Dodaj skrypt" + +#: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:264 +msgctxt "@label" +msgid "Settings" +msgstr "Ustawienia" + +#: /home/ruben/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:456 +msgctxt "@info:tooltip" +msgid "Change active post-processing scripts" +msgstr "Zmień aktywne skrypty post-processingu" + +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:61 +msgctxt "@label" +msgid "View Mode: Layers" +msgstr "Tryb widoku: warstwy" + +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:78 +msgctxt "@label" +msgid "Color scheme" +msgstr "Schemat kolorów" + +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:92 +msgctxt "@label:listbox" +msgid "Material Color" +msgstr "Kolor materiału" + +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:96 +msgctxt "@label:listbox" +msgid "Line Type" +msgstr "Rodzaj linii" + +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:134 +msgctxt "@label" +msgid "Compatibility Mode" +msgstr "Tryb zgodności" + +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:199 +msgctxt "@label" +msgid "Show Travels" +msgstr "Pokaż ruch jałowy" + +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:205 +msgctxt "@label" +msgid "Show Helpers" +msgstr "Pokaż pomocnik" + +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:211 +msgctxt "@label" +msgid "Show Shell" +msgstr "Pokaż powłokę" + +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:217 +msgctxt "@label" +msgid "Show Infill" +msgstr "Pokaż wypełnienie" + +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:253 +msgctxt "@label" +msgid "Only Show Top Layers" +msgstr "Pokaż tylko najwyższe warstwy" + +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:262 +msgctxt "@label" +msgid "Show 5 Detailed Layers On Top" +msgstr "Pokaż 5 Szczegółowych Warstw" + +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:273 +msgctxt "@label" +msgid "Top / Bottom" +msgstr "Góra/ Dół" + +#: /home/ruben/Projects/Cura/plugins/LayerView/LayerView.qml:277 +msgctxt "@label" +msgid "Inner Wall" +msgstr "Wewnętrzna ściana" + +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:19 +msgctxt "@title:window" +msgid "Convert Image..." +msgstr "Konwertuj obraz ..." + +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:33 +msgctxt "@info:tooltip" +msgid "The maximum distance of each pixel from \"Base.\"" +msgstr "Maksymalna odległość każdego piksela od \"Bazy\"." + +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:38 +msgctxt "@action:label" +msgid "Height (mm)" +msgstr "Wysokość (mm)" + +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:56 +msgctxt "@info:tooltip" +msgid "The base height from the build plate in millimeters." +msgstr "Wysokość podstawy od stołu w milimetrach." + +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:61 +msgctxt "@action:label" +msgid "Base (mm)" +msgstr "Baza (mm)" + +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:79 +msgctxt "@info:tooltip" +msgid "The width in millimeters on the build plate." +msgstr "Szerokość w milimetrach na stole." + +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:84 +msgctxt "@action:label" +msgid "Width (mm)" +msgstr "Szerokość (mm)" + +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:103 +msgctxt "@info:tooltip" +msgid "The depth in millimeters on the build plate" +msgstr "Głębokość w milimetrach na stole" + +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:108 +msgctxt "@action:label" +msgid "Depth (mm)" +msgstr "Głębokość (mm)" + +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:126 +msgctxt "@info:tooltip" +msgid "By default, white pixels represent high points on the mesh and black pixels represent low points on the mesh. Change this option to reverse the behavior such that black pixels represent high points on the mesh and white pixels represent low points on the mesh." +msgstr "Domyślnie białe piksele przedstawiają wysokie punkty na siatce, a czarne piksele przedstawiają niskie punkty na siatce. Zmień tę opcję, aby odwrócić takie zachowanie, tak żeby czarne piksele przedstawiają wysokie punkty na siatce, a białe piksele przedstawiają niskie punkty na siatce." + +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:139 +msgctxt "@item:inlistbox" +msgid "Lighter is higher" +msgstr "Jaśniejszy jest wyższy" + +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:139 +msgctxt "@item:inlistbox" +msgid "Darker is higher" +msgstr "Ciemniejsze jest wyższe" + +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:149 +msgctxt "@info:tooltip" +msgid "The amount of smoothing to apply to the image." +msgstr "Ilość wygładzania do zastosowania do obrazu." + +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:154 +msgctxt "@action:label" +msgid "Smoothing" +msgstr "Wygładzanie" + +#: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:181 +msgctxt "@action:button" +msgid "OK" +msgstr "OK" + +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:155 +msgctxt "@action:button" +msgid "Select settings" +msgstr "Wybierz ustawienia" + +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:195 +msgctxt "@title:window" +msgid "Select Settings to Customize for this model" +msgstr "Wybierz Ustawienia, aby dostosować ten model" + +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:219 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/SettingVisibilityPage.qml:91 +msgctxt "@label:textbox" +msgid "Filter..." +msgstr "Filtr..." + +#: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:243 +msgctxt "@label:checkbox" +msgid "Show all" +msgstr "Pokaż wszystko" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:13 +msgctxt "@title:window" +msgid "Open Project" +msgstr "Otwórz projekt" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:57 +msgctxt "@action:ComboBox option" +msgid "Update existing" +msgstr "Zaktualizuj istniejące" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:58 +msgctxt "@action:ComboBox option" +msgid "Create new" +msgstr "Utwórz nowy" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:69 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:70 +msgctxt "@action:title" +msgid "Summary - Cura Project" +msgstr "Podsumowanie - Projekt Cura" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:91 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:88 +msgctxt "@action:label" +msgid "Printer settings" +msgstr "Ustawienia drukarki" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:107 +msgctxt "@info:tooltip" +msgid "How should the conflict in the machine be resolved?" +msgstr "Jak powinny być rozwiązywane błędy w maszynie?" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:127 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:97 +msgctxt "@action:label" +msgid "Type" +msgstr "Typ" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:143 +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:200 +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:292 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:112 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:188 +msgctxt "@action:label" +msgid "Name" +msgstr "Nazwa" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:164 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:164 +msgctxt "@action:label" +msgid "Profile settings" +msgstr "Ustawienia profilu" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:180 +msgctxt "@info:tooltip" +msgid "How should the conflict in the profile be resolved?" +msgstr "Jak powinien zostać rozwiązany problem z profilem?" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:215 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:172 +msgctxt "@action:label" +msgid "Not in profile" +msgstr "Nie w profilu" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:220 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:177 +msgctxt "@action:label" +msgid "%1 override" +msgid_plural "%1 overrides" +msgstr[0] "%1 nadpisanie" +msgstr[1] "%1 Zastępuje" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:231 +msgctxt "@action:label" +msgid "Derivative from" +msgstr "Pochodna z:" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:236 +msgctxt "@action:label" +msgid "%1, %2 override" +msgid_plural "%1, %2 overrides" +msgstr[0] "%1, %2 nadpisanie" +msgstr[1] "%1, %2 zastępuje" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:252 +msgctxt "@action:label" +msgid "Material settings" +msgstr "Ustawienia materiału" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:268 +msgctxt "@info:tooltip" +msgid "How should the conflict in the material be resolved?" +msgstr "Jak powinien zostać rozwiązany problem z materiałem?" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:311 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:207 +msgctxt "@action:label" +msgid "Setting visibility" +msgstr "Ustawienie widoczności" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:320 +msgctxt "@action:label" +msgid "Mode" +msgstr "Tryb" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:335 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:216 +msgctxt "@action:label" +msgid "Visible settings:" +msgstr "Widoczne ustawienie:" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:340 +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:221 +msgctxt "@action:label" +msgid "%1 out of %2" +msgstr "%1 poza %2" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:366 +msgctxt "@action:warning" +msgid "Loading a project will clear all models on the buildplate" +msgstr "Załadowanie projektu spowoduje usunięcie wszystkich modeli ze stołu" + +#: /home/ruben/Projects/Cura/plugins/3MFReader/WorkspaceDialog.qml:385 +msgctxt "@action:button" +msgid "Open" +msgstr "Otwórz" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelectionMachineAction.qml:25 +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:25 +msgctxt "@title" +msgid "Select Printer Upgrades" +msgstr "Wybierz ulepszenia drukarki" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelectionMachineAction.qml:37 +msgctxt "@label" +msgid "Please select any upgrades made to this Ultimaker 2." +msgstr "Proszę wybrać ulepszenia w tym Ultimaker 2." + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelectionMachineAction.qml:45 +msgctxt "@label" +msgid "Olsson Block" +msgstr "Olsson Block" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/BedLevelMachineAction.qml:27 +msgctxt "@title" +msgid "Build Plate Leveling" +msgstr "Poziomowanie stołu" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/BedLevelMachineAction.qml:38 +msgctxt "@label" +msgid "To make sure your prints will come out great, you can now adjust your buildplate. When you click 'Move to Next Position' the nozzle will move to the different positions that can be adjusted." +msgstr "Aby upewnić się, że wydruki będą wychodziły świetne, możesz teraz wyregulować stół. Po kliknięciu przycisku \"Przejdź do następnego położenia\" dysza będzie się poruszać do różnych pozycji, które można wyregulować." + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/BedLevelMachineAction.qml:47 +msgctxt "@label" +msgid "For every position; insert a piece of paper under the nozzle and adjust the print build plate height. The print build plate height is right when the paper is slightly gripped by the tip of the nozzle." +msgstr "Dla każdej pozycji; Włóż kartkę papieru pod dyszę i wyreguluj wysokość stołu roboczego. Wysokość stołu jest prawidłowa, gdy papier stawia lekki opór." + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/BedLevelMachineAction.qml:62 +msgctxt "@action:button" +msgid "Start Build Plate Leveling" +msgstr "Rozpocznij poziomowanie stołu roboczego" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/BedLevelMachineAction.qml:74 +msgctxt "@action:button" +msgid "Move to Next Position" +msgstr "Przejdź do następnego położenia" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml:27 +msgctxt "@title" +msgid "Upgrade Firmware" +msgstr "Uaktualnij oprogramowanie" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml:38 +msgctxt "@label" +msgid "Firmware is the piece of software running directly on your 3D printer. This firmware controls the step motors, regulates the temperature and ultimately makes your printer work." +msgstr "Oprogramowanie ukłądowe jest częścią oprogramowania działającego bezpośrednio na drukarce 3D. Oprogramowanie to steruje silnikami krokowymi, reguluje temperaturę i ostatecznie sprawia, że drukarka działa." + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml:48 +msgctxt "@label" +msgid "The firmware shipping with new printers works, but new versions tend to have more features and improvements." +msgstr "Oprogramowanie ukłądowe dostarczane z nowymi drukarkami działa, ale nowe wersje mają zazwyczaj więcej funkcji i ulepszeń." + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml:62 +msgctxt "@action:button" +msgid "Automatically upgrade Firmware" +msgstr "Automatycznie uaktualnij oprogramowanie" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml:72 +msgctxt "@action:button" +msgid "Upload custom Firmware" +msgstr "Prześlij niestandardowe oprogramowanie" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml:83 +msgctxt "@title:window" +msgid "Select custom firmware" +msgstr "Wybierz niestandardowe oprogramowanie" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:37 +msgctxt "@label" +msgid "Please select any upgrades made to this Ultimaker Original" +msgstr "Proszę wybrać ulepszenia wykonane w tym Ultimaker Original" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:45 +msgctxt "@label" +msgid "Heated Build Plate (official kit or self-built)" +msgstr "Płyta grzewcza (zestaw oficjalny lub własnej roboty)" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:27 +msgctxt "@title" +msgid "Check Printer" +msgstr "Sprawdź drukarkę" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:39 +msgctxt "@label" +msgid "It's a good idea to do a few sanity checks on your Ultimaker. You can skip this step if you know your machine is functional" +msgstr "Dobrym pomysłem jest zrobienie kilku testów na swoim Ultimakera. Możesz pominąć ten krok, jeśli wiesz, że urządzenie jest funkcjonalne" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:53 +msgctxt "@action:button" +msgid "Start Printer Check" +msgstr "Rozpocznij sprawdzanie drukarki" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:80 +msgctxt "@label" +msgid "Connection: " +msgstr "Połączenie: " + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:89 +msgctxt "@info:status" +msgid "Connected" +msgstr "Połączono" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:89 +msgctxt "@info:status" +msgid "Not connected" +msgstr "Nie połączono" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:99 +msgctxt "@label" +msgid "Min endstop X: " +msgstr "Krańcówka min. X: " + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:109 +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:130 +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:151 +msgctxt "@info:status" +msgid "Works" +msgstr "Pracuje" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:109 +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:130 +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:151 +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:173 +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:234 +msgctxt "@info:status" +msgid "Not checked" +msgstr "Niesprawdzone" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:120 +msgctxt "@label" +msgid "Min endstop Y: " +msgstr "Krańcówka min. Y: " + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:141 +msgctxt "@label" +msgid "Min endstop Z: " +msgstr "Krańcówka min. Z: " + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:163 +msgctxt "@label" +msgid "Nozzle temperature check: " +msgstr "Sprawdzanie temperatury dyszy: " + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:187 +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:248 +msgctxt "@action:button" +msgid "Stop Heating" +msgstr "Zatrzymaj ogrzewanie" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:187 +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:248 +msgctxt "@action:button" +msgid "Start Heating" +msgstr "Rozpocznij ogrzewanie" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:223 +msgctxt "@label" +msgid "Build plate temperature check:" +msgstr "Kontrola temperatury płyty konstrukcyjnej:" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:234 +msgctxt "@info:status" +msgid "Checked" +msgstr "Sprawdzone" + +#: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:284 +msgctxt "@label" +msgid "Everything is in order! You're done with your CheckUp." +msgstr "Wszystko w porządku! Skończono sprawdzenie." + +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:89 +msgctxt "@label:MonitorStatus" +msgid "Not connected to a printer" +msgstr "Nie podłączono do drukarki" + +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:91 +msgctxt "@label:MonitorStatus" +msgid "Printer does not accept commands" +msgstr "Drukarka nie akceptuje poleceń" + +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:97 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:196 +msgctxt "@label:MonitorStatus" +msgid "In maintenance. Please check the printer" +msgstr "W naprawie. Sprawdź drukarkę" + +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:102 +msgctxt "@label:MonitorStatus" +msgid "Lost connection with the printer" +msgstr "Utracone połączenie z drukarką" + +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:104 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:186 +msgctxt "@label:MonitorStatus" +msgid "Printing..." +msgstr "Drukowanie..." + +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:107 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:188 +msgctxt "@label:MonitorStatus" +msgid "Paused" +msgstr "Wstrzymano" + +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:110 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:190 +msgctxt "@label:MonitorStatus" +msgid "Preparing..." +msgstr "Przygotowywanie ..." + +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:112 +msgctxt "@label:MonitorStatus" +msgid "Please remove the print" +msgstr "Usuń wydruk" + +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:238 +msgctxt "@label:" +msgid "Resume" +msgstr "Wznów" + +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:242 +msgctxt "@label:" +msgid "Pause" +msgstr "Wstrzymaj" + +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:271 +msgctxt "@label:" +msgid "Abort Print" +msgstr "Przerwij wydruk" + +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:281 +msgctxt "@window:title" +msgid "Abort print" +msgstr "Przerwij wydruk" + +#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:283 +msgctxt "@label" +msgid "Are you sure you want to abort the print?" +msgstr "Czy na pewno chcesz przerwać drukowanie?" + +#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:15 +msgctxt "@title:window" +msgid "Discard or Keep changes" +msgstr "Odrzuć lub zachowaj zmiany" + +#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:57 +msgctxt "@text:window" +msgid "" +"You have customized some profile settings.\n" +"Would you like to keep or discard those settings?" +msgstr "" +"Dostosowałeś ustawienia profilu.\n" +"Chcesz zachować, czy usunąć te ustawienia?" + +#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:110 +msgctxt "@title:column" +msgid "Profile settings" +msgstr "Ustawienia profilu" + +#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:117 +msgctxt "@title:column" +msgid "Default" +msgstr "Domyślne" + +#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:124 +msgctxt "@title:column" +msgid "Customized" +msgstr "Dostosowane" + +#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:157 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:564 +msgctxt "@option:discardOrKeep" +msgid "Always ask me this" +msgstr "Zawsze pytaj o to" + +#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:158 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:565 +msgctxt "@option:discardOrKeep" +msgid "Discard and never ask again" +msgstr "Odrzuć i nigdy nie pytaj" + +#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:159 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:566 +msgctxt "@option:discardOrKeep" +msgid "Keep and never ask again" +msgstr "Zachowaj i nigdy nie pytaj" + +#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:196 +msgctxt "@action:button" +msgid "Discard" +msgstr "Odrzuć" + +#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:209 +msgctxt "@action:button" +msgid "Keep" +msgstr "Zachowaj" + +#: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:222 +msgctxt "@action:button" +msgid "Create New Profile" +msgstr "Utwórz nowy profil" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:44 +msgctxt "@title" +msgid "Information" +msgstr "Informacja" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:68 +msgctxt "@label" +msgid "Display Name" +msgstr "Wyświetlana nazwa" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:78 +msgctxt "@label" +msgid "Brand" +msgstr "Marka" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:92 +msgctxt "@label" +msgid "Material Type" +msgstr "Typ Materiału" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:105 +msgctxt "@label" +msgid "Color" +msgstr "Kolor" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:139 +msgctxt "@label" +msgid "Properties" +msgstr "Właściwości" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:141 +msgctxt "@label" +msgid "Density" +msgstr "Gęstość" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:156 +msgctxt "@label" +msgid "Diameter" +msgstr "Średnica" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:171 +msgctxt "@label" +msgid "Filament Cost" +msgstr "Koszt Filamentu" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:187 +msgctxt "@label" +msgid "Filament weight" +msgstr "Waga filamentu" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:204 +msgctxt "@label" +msgid "Filament length" +msgstr "Długość Filamentu" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:213 +msgctxt "@label" +msgid "Cost per Meter" +msgstr "Koszt na metr" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:227 +msgctxt "@label" +msgid "This material is linked to %1 and shares some of its properties." +msgstr "Ten materiał jest powiązany z %1 i dzieli się niekórymi swoimi właściwościami." + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:234 +msgctxt "@label" +msgid "Unlink Material" +msgstr "Odłącz materiał" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:245 +msgctxt "@label" +msgid "Description" +msgstr "Opis" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:258 +msgctxt "@label" +msgid "Adhesion Information" +msgstr "Informacje dotyczące przyczepności" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialView.qml:284 +msgctxt "@label" +msgid "Print settings" +msgstr "Ustawienia druku" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/SettingVisibilityPage.qml:14 +msgctxt "@title:tab" +msgid "Setting Visibility" +msgstr "Widoczność ustawienia" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/SettingVisibilityPage.qml:44 +msgctxt "@label:textbox" +msgid "Check all" +msgstr "Zaznacz wszystko" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:53 +msgctxt "@title:column" +msgid "Setting" +msgstr "Ustawienie" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:60 +msgctxt "@title:column" +msgid "Profile" +msgstr "Profil" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:67 +msgctxt "@title:column" +msgid "Current" +msgstr "Aktualny" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:75 +msgctxt "@title:column" +msgid "Unit" +msgstr "Jednostka" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:14 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:461 +msgctxt "@title:tab" +msgid "General" +msgstr "Ogólny" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:126 +msgctxt "@label" +msgid "Interface" +msgstr "Interfejs" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:137 +msgctxt "@label" +msgid "Language:" +msgstr "Język:" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:194 +msgctxt "@label" +msgid "Currency:" +msgstr "Waluta:" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:208 +msgctxt "@label" +msgid "Theme:" +msgstr "Motyw:" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:221 +msgctxt "@item:inlistbox" +msgid "Ultimaker" +msgstr "Ultimaker" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:263 +msgctxt "@label" +msgid "You will need to restart the application for these changes to have effect." +msgstr "Musisz zrestartować aplikację, aby te zmiany zaczęły obowiązywać." + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:280 +msgctxt "@info:tooltip" +msgid "Slice automatically when changing settings." +msgstr "Tnij automatycznie podczas zmiany ustawień." + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:288 +msgctxt "@option:check" +msgid "Slice automatically" +msgstr "Automatyczne Cięcie" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:302 +msgctxt "@label" +msgid "Viewport behavior" +msgstr "Zachowanie okna edycji" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:310 +msgctxt "@info:tooltip" +msgid "Highlight unsupported areas of the model in red. Without support these areas will not print properly." +msgstr "Zaznacz nieobsługiwane obszary modelu na czerwono. Bez wsparcia te obszary nie będą drukowane prawidłowo." + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:319 +msgctxt "@option:check" +msgid "Display overhang" +msgstr "Wyświetl zwis" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:326 +msgctxt "@info:tooltip" +msgid "Moves the camera so the model is in the center of the view when a model is selected" +msgstr "Przenosi kamerę, aby model był w centrum widoku, gdy wybrano model" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:331 +msgctxt "@action:button" +msgid "Center camera when item is selected" +msgstr "Wyśrodkuj kamerę kiedy przedmiot jest zaznaczony" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:341 +msgctxt "@info:tooltip" +msgid "Should the default zoom behavior of cura be inverted?" +msgstr "Czy domyślne zachowanie zoomu powinno zostać odwrócone?" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:346 +msgctxt "@action:button" +msgid "Invert the direction of camera zoom." +msgstr "Odwróć kierunek zoomu kamery." + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:355 +msgctxt "@info:tooltip" +msgid "Should models on the platform be moved so that they no longer intersect?" +msgstr "Czy modele na platformie powinny być przenoszone w taki sposób, aby nie przecinały się?" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:360 +msgctxt "@option:check" +msgid "Ensure models are kept apart" +msgstr "Upewnij się, że modele są oddzielone" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:368 +msgctxt "@info:tooltip" +msgid "Should models on the platform be moved down to touch the build plate?" +msgstr "Czy modele na platformie powinny być przesunięte w dół, aby dotknęły stołu roboczego?" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:373 +msgctxt "@option:check" +msgid "Automatically drop models to the build plate" +msgstr "Automatycznie upuść modele na stół roboczy" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:385 +msgctxt "@info:tooltip" +msgid "Show caution message in gcode reader." +msgstr "Pokaż komunikat ostrzegawczy w tekście G-code." + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:394 +msgctxt "@option:check" +msgid "Caution message in gcode reader" +msgstr "Komunikat ostrzegawczy w tekście G-code" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:401 +msgctxt "@info:tooltip" +msgid "Should layer be forced into compatibility mode?" +msgstr "Czy warstwa powinna być wymuszona w trybie zgodności?" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:406 +msgctxt "@option:check" +msgid "Force layer view compatibility mode (restart required)" +msgstr "Wymuszenie widoku warstw w trybie zgodności (wymaga ponownego uruchomienia)" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:422 +msgctxt "@label" +msgid "Opening and saving files" +msgstr "Otwieranie i zapisywanie plików" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:428 +msgctxt "@info:tooltip" +msgid "Should models be scaled to the build volume if they are too large?" +msgstr "Czy modele powinny być skalowane do wielkości obszaru roboczego, jeśli są zbyt duże?" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:433 +msgctxt "@option:check" +msgid "Scale large models" +msgstr "Skaluj duże modele" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:442 +msgctxt "@info:tooltip" +msgid "An model may appear extremely small if its unit is for example in meters rather than millimeters. Should these models be scaled up?" +msgstr "Model może wydawać się bardzo mały, jeśli jego jednostka jest na przykład w metrach, a nie w milimetrach. Czy takie modele powinny być skalowane?" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:447 +msgctxt "@option:check" +msgid "Scale extremely small models" +msgstr "Skaluj bardzo małe modele" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:456 +msgctxt "@info:tooltip" +msgid "Should a prefix based on the printer name be added to the print job name automatically?" +msgstr "Czy przedrostek oparty na nazwie drukarki powinien być automatycznie dodawany do nazwy zadania?" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:461 +msgctxt "@option:check" +msgid "Add machine prefix to job name" +msgstr "Dodaj przedrostek maszyny do nazwy zadania" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:470 +msgctxt "@info:tooltip" +msgid "Should a summary be shown when saving a project file?" +msgstr "Czy podsumowanie powinno być wyświetlane podczas zapisu projektu?" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:474 +msgctxt "@option:check" +msgid "Show summary dialog when saving project" +msgstr "Pokaż okno podsumowania podczas zapisywaniu projektu" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:483 +msgctxt "@info:tooltip" +msgid "Default behavior when opening a project file" +msgstr "Domyślne zachowanie podczas otwierania pliku projektu" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:491 +msgctxt "@window:text" +msgid "Default behavior when opening a project file: " +msgstr "Domyślne zachowanie podczas otwierania pliku projektu: " + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:504 +msgctxt "@option:openProject" +msgid "Always ask" +msgstr "Zawsze pytaj" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:505 +msgctxt "@option:openProject" +msgid "Always open as a project" +msgstr "Zawsze otwieraj jako projekt" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:506 +msgctxt "@option:openProject" +msgid "Always import models" +msgstr "Zawsze importuj modele" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:542 +msgctxt "@info:tooltip" +msgid "When you have made changes to a profile and switched to a different one, a dialog will be shown asking whether you want to keep your modifications or not, or you can choose a default behaviour and never show that dialog again." +msgstr "Kiedy dokonasz zmian w profilu i przełączysz się na inny, zostanie wyświetlone okno z pytaniem, czy chcesz zachować twoje zmiany, czy nie. Możesz też wybrać domyślne zachowanie, żeby to okno już nigdy nie było pokazywane." + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:551 +msgctxt "@label" +msgid "Override Profile" +msgstr "Nadpisz profil" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:600 +msgctxt "@label" +msgid "Privacy" +msgstr "Prywatność" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:607 +msgctxt "@info:tooltip" +msgid "Should Cura check for updates when the program is started?" +msgstr "Czy Cura ma sprawdzać dostępność aktualizacji podczas uruchamiania programu?" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:612 +msgctxt "@option:check" +msgid "Check for updates on start" +msgstr "Sprawdź, dostępność aktualizacji podczas uruchamiania" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:622 +msgctxt "@info:tooltip" +msgid "Should anonymous data about your print be sent to Ultimaker? Note, no models, IP addresses or other personally identifiable information is sent or stored." +msgstr "Czy anonimowe dane na temat wydruku mają być wysyłane do Ultimaker? Uwaga. Żadne modele, adresy IP, ani żadne inne dane osobiste nie będą wysyłane i/lub przechowywane." + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:627 +msgctxt "@option:check" +msgid "Send (anonymous) print information" +msgstr "Wyślij (anonimowe) informacje o drukowaniu" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:15 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:466 +msgctxt "@title:tab" +msgid "Printers" +msgstr "Drukarki" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:37 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:51 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:137 +msgctxt "@action:button" +msgid "Activate" +msgstr "Aktywuj" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:57 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:102 +msgctxt "@action:button" +msgid "Rename" +msgstr "Zmień nazwę" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:151 +msgctxt "@label" +msgid "Printer type:" +msgstr "Typ drukarki:" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:160 +msgctxt "@label" +msgid "Connection:" +msgstr "Połączenie:" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:166 +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:52 +msgctxt "@info:status" +msgid "The printer is not connected." +msgstr "Drukarka nie jest podłączona." + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:172 +msgctxt "@label" +msgid "State:" +msgstr "Stan:" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:192 +msgctxt "@label:MonitorStatus" +msgid "Waiting for someone to clear the build plate" +msgstr "Oczekiwanie na wyczyszczenie stołu roboczego" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:201 +msgctxt "@label:MonitorStatus" +msgid "Waiting for a printjob" +msgstr "Oczekiwanie na zadanie drukowania" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:15 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:470 +msgctxt "@title:tab" +msgid "Profiles" +msgstr "Profile" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:29 +msgctxt "@label" +msgid "Protected profiles" +msgstr "Chronione profile" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:29 +msgctxt "@label" +msgid "Custom profiles" +msgstr "Profile niestandardowe" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:64 +msgctxt "@label" +msgid "Create" +msgstr "Stwórz" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:80 +msgctxt "@label" +msgid "Duplicate" +msgstr "Duplikuj" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:113 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:194 +msgctxt "@action:button" +msgid "Import" +msgstr "Importuj" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:119 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:201 +msgctxt "@action:button" +msgid "Export" +msgstr "Eksportuj" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:126 +msgctxt "@label %1 is printer name" +msgid "Printer: %1" +msgstr "Drukarka: %1" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:165 +msgctxt "@action:button" +msgid "Update profile with current settings/overrides" +msgstr "Aktualizuj profil z bieżącymi ustawieniami" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:173 +msgctxt "@action:button" +msgid "Discard current changes" +msgstr "Odrzuć bieżące zmiany" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:190 +msgctxt "@action:label" +msgid "This profile uses the defaults specified by the printer, so it has no settings/overrides in the list below." +msgstr "Ten profil używa ustawień domyślnych określonych przez drukarkę, dlatego nie ma żadnych ustawień z poniższej liście." + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:197 +msgctxt "@action:label" +msgid "Your current settings match the selected profile." +msgstr "Aktualne ustawienia odpowiadają wybranemu profilowi." + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:215 +msgctxt "@title:tab" +msgid "Global Settings" +msgstr "Ustawienia ogólne" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:258 +msgctxt "@title:window" +msgid "Rename Profile" +msgstr "Zmień nazwę profilu" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:271 +msgctxt "@title:window" +msgid "Create Profile" +msgstr "Stwórz profil" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:285 +msgctxt "@title:window" +msgid "Duplicate Profile" +msgstr "Duplikuj profil" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:299 +msgctxt "@window:title" +msgid "Import Profile" +msgstr "Importuj Profil" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:307 +msgctxt "@title:window" +msgid "Import Profile" +msgstr "Importuj Profil" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:335 +msgctxt "@title:window" +msgid "Export Profile" +msgstr "Eksportuj Profil" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:15 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:468 +msgctxt "@title:tab" +msgid "Materials" +msgstr "Materiał" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:116 +msgctxt "@action:label %1 is printer name, %2 is how this printer names variants, %3 is variant name" +msgid "Printer: %1, %2: %3" +msgstr "Drukarka: %1, %2: %3" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:120 +msgctxt "@action:label %1 is printer name" +msgid "Printer: %1" +msgstr "Drukarka: %1" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:148 +msgctxt "@action:button" +msgid "Create" +msgstr "Stwórz" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:166 +msgctxt "@action:button" +msgid "Duplicate" +msgstr "Duplikuj" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:295 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:303 +msgctxt "@title:window" +msgid "Import Material" +msgstr "Importuj Materiał" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:304 +msgctxt "@info:status" +msgid "Could not import material %1: %2" +msgstr "Nie można zaimportować materiału %1: %2" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:308 +msgctxt "@info:status" +msgid "Successfully imported material %1" +msgstr "Pomyślnie zaimportowano materiał %1" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:327 +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:342 +msgctxt "@title:window" +msgid "Export Material" +msgstr "Eksportuj Materiał" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:346 +msgctxt "@info:status" +msgid "Failed to export material to %1: %2" +msgstr "Nie udało się wyeksportować materiału do %1: %2" + +#: /home/ruben/Projects/Cura/resources/qml/Preferences/MaterialsPage.qml:352 +msgctxt "@info:status" +msgid "Successfully exported material to %1" +msgstr "Udało się wyeksportować materiał do %1" + +#: /home/ruben/Projects/Cura/resources/qml/AddMachineDialog.qml:18 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:783 +msgctxt "@title:window" +msgid "Add Printer" +msgstr "Dodaj drukarkę" + +#: /home/ruben/Projects/Cura/resources/qml/AddMachineDialog.qml:185 +msgctxt "@label" +msgid "Printer Name:" +msgstr "Nazwa drukarki:" + +#: /home/ruben/Projects/Cura/resources/qml/AddMachineDialog.qml:208 +msgctxt "@action:button" +msgid "Add Printer" +msgstr "Dodaj drukarkę" + +#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:179 +msgctxt "@tooltip" +msgid "Outer Wall" +msgstr "Zewnętrzna ściana" + +#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:180 +msgctxt "@tooltip" +msgid "Inner Walls" +msgstr "Ściany wewnętrzne" + +#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:181 +msgctxt "@tooltip" +msgid "Skin" +msgstr "Skin" + +#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:182 +msgctxt "@tooltip" +msgid "Infill" +msgstr "Wypełnienie" + +#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:183 +msgctxt "@tooltip" +msgid "Support Infill" +msgstr "Wypełnienie podpór" + +#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:184 +msgctxt "@tooltip" +msgid "Support Interface" +msgstr "Łączenie podpory" + +#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:185 +msgctxt "@tooltip" +msgid "Support" +msgstr "Podpory " + +#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:186 +msgctxt "@tooltip" +msgid "Travel" +msgstr "Ruch jałowy" + +#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:187 +msgctxt "@tooltip" +msgid "Retractions" +msgstr "Retrakcja" + +#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:188 +msgctxt "@tooltip" +msgid "Other" +msgstr "Inny" + +#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:215 +msgctxt "@label" +msgid "00h 00min" +msgstr "00h 00min" + +#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:268 +msgctxt "@label" +msgid "%1 m / ~ %2 g / ~ %4 %3" +msgstr "%1 m / ~ %2 g / ~ %4 %3" + +#: /home/ruben/Projects/Cura/resources/qml/JobSpecs.qml:273 +msgctxt "@label" +msgid "%1 m / ~ %2 g" +msgstr "%1 m / ~ %2 g" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:15 +msgctxt "@title:window" +msgid "About Cura" +msgstr "O Cura" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:56 +msgctxt "@label" +msgid "End-to-end solution for fused filament 3D printing." +msgstr "Kompletne rozwiązanie do druku przestrzennego." + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:69 +msgctxt "@info:credit" +msgid "" +"Cura is developed by Ultimaker B.V. in cooperation with the community.\n" +"Cura proudly uses the following open source projects:" +msgstr "" +"Cura jest rozwijana przez firmę Ultimaker B.V. we współpracy ze społecznością.\n" +"Cura z dumą korzysta z następujących projektów open source:" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:118 +msgctxt "@label" +msgid "Graphical user interface" +msgstr "Graficzny interfejs użytkownika" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:119 +msgctxt "@label" +msgid "Application framework" +msgstr "Struktura aplikacji" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:120 +msgctxt "@label" +msgid "GCode generator" +msgstr "Generator GCode" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:121 +msgctxt "@label" +msgid "Interprocess communication library" +msgstr "Biblioteka komunikacji międzyprocesowej" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:123 +msgctxt "@label" +msgid "Programming language" +msgstr "Język programowania" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:124 +msgctxt "@label" +msgid "GUI framework" +msgstr "Framework GUI" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:125 +msgctxt "@label" +msgid "GUI framework bindings" +msgstr "Powiązania Frameworka GUI" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:126 +msgctxt "@label" +msgid "C/C++ Binding library" +msgstr "Biblioteka Powiązań C/C++" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:127 +msgctxt "@label" +msgid "Data interchange format" +msgstr "Format wymiany danych" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:128 +msgctxt "@label" +msgid "Support library for scientific computing " +msgstr "Wsparcie biblioteki dla obliczeń naukowych " + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:129 +msgctxt "@label" +msgid "Support library for faster math" +msgstr "Wsparcie biblioteki dla szybszej matematyki" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:130 +msgctxt "@label" +msgid "Support library for handling STL files" +msgstr "Wsparcie biblioteki do obsługi plików STL" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:131 +msgctxt "@label" +msgid "Support library for handling 3MF files" +msgstr "Wsparcie biblioteki do obsługi plików 3MF" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:132 +msgctxt "@label" +msgid "Serial communication library" +msgstr "Biblioteka komunikacji szeregowej" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:133 +msgctxt "@label" +msgid "ZeroConf discovery library" +msgstr "Bilbiotek poszukująca Zeroconf" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:134 +msgctxt "@label" +msgid "Polygon clipping library" +msgstr "Biblioteka edytująca pola" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:136 +msgctxt "@label" +msgid "Font" +msgstr "Czcionka" + +#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:137 +msgctxt "@label" +msgid "SVG icons" +msgstr "Ikony SVG" + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:60 +msgctxt "@label:textbox" +msgid "Search..." +msgstr "Szukanie..." + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:337 +msgctxt "@action:menu" +msgid "Copy value to all extruders" +msgstr "Skopiuj wartość do wszystkich ekstruderów" + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:352 +msgctxt "@action:menu" +msgid "Hide this setting" +msgstr "Ukryj tę opcję" + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:362 +msgctxt "@action:menu" +msgid "Don't show this setting" +msgstr "Nie pokazuj tej opcji" + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:366 +msgctxt "@action:menu" +msgid "Keep this setting visible" +msgstr "Pozostaw tę opcję widoczną" + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:385 +msgctxt "@action:menu" +msgid "Configure setting visiblity..." +msgstr "Skonfiguruj widoczność ustawień..." + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingCategory.qml:93 +msgctxt "@label" +msgid "" +"Some hidden settings use values different from their normal calculated value.\n" +"\n" +"Click to make these settings visible." +msgstr "" +"Niektóre ukryte ustawienia używają wartości różniących się od ich normalnej, obliczonej wartości.\n" +"\n" +"Kliknij, aby te ustawienia były widoczne." + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:60 +msgctxt "@label Header for list of settings." +msgid "Affects" +msgstr "Wpływać" + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:65 +msgctxt "@label Header for list of settings." +msgid "Affected By" +msgstr "Pod wpływem" + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:155 +msgctxt "@label" +msgid "This setting is always shared between all extruders. Changing it here will change the value for all extruders" +msgstr "To ustawienie jest zawsze dzielone między wszystkie ekstrudery. Zmiana jego wartości tutaj spowoduje zmianę dla wszystkich ekstruderów" + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:158 +msgctxt "@label" +msgid "The value is resolved from per-extruder values " +msgstr "Wartość jest pobierana z osobna dla każdego ekstrudera " + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:184 +msgctxt "@label" +msgid "" +"This setting has a value that is different from the profile.\n" +"\n" +"Click to restore the value of the profile." +msgstr "" +"To ustawienie ma inną wartość niż w profilu.\n" +"\n" +"Kliknij, aby przywrócić wartość z profilu." + +#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:282 +msgctxt "@label" +msgid "" +"This setting is normally calculated, but it currently has an absolute value set.\n" +"\n" +"Click to restore the calculated value." +msgstr "" +"To ustawienie jest zwykle obliczane, ale obecnie ma wartość bezwzględną.\n" +"\n" +"Kliknij, aby przywrócić wartość obliczoną." + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:185 +msgctxt "@tooltip" +msgid "Print Setup

Edit or review the settings for the active print job." +msgstr "Ustawienia drukowania

Edytuj lub przejrzyj ustawienia dla aktywnego zadania." + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:284 +msgctxt "@tooltip" +msgid "Print Monitor

Monitor the state of the connected printer and the print job in progress." +msgstr "Monitor wydruku

Monitorowanie stanu podłączonej drukarki i aktualnego zadania." + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:337 +msgctxt "@label:listbox" +msgid "Print Setup" +msgstr "Ustawienia druku" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:337 +msgctxt "@label:listbox" +msgid "" +"Print Setup disabled\n" +"G-code files cannot be modified" +msgstr "" +"Konfiguracja wydruku jest wyłączona\n" +"Pliki G-code nie mogą zostać zmodyfikowane" + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:644 +msgctxt "@tooltip" +msgid "Recommended Print Setup

Print with the recommended settings for the selected printer, material and quality." +msgstr "Zalecana konfiguracja wydruku

Drukowanie z zalecanymi ustawieniami dla wybranej drukarki, materiału i jakości." + +#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:649 +msgctxt "@tooltip" +msgid "Custom Print Setup

Print with finegrained control over every last bit of the slicing process." +msgstr "Niestandardowa konfiguracja wydruku

Drukowanie z precyzyjną kontrolą nad każdym elementem procesu cięcia." + +#: /home/ruben/Projects/Cura/resources/qml/Menus/MaterialMenu.qml:35 +msgctxt "@title:menuitem %1 is the automatically selected material" +msgid "Automatic: %1" +msgstr "Automatyczny: %1" + +#: /home/ruben/Projects/Cura/resources/qml/Menus/ViewMenu.qml:12 +msgctxt "@title:menu menubar:toplevel" +msgid "&View" +msgstr "&Widok" + +#: /home/ruben/Projects/Cura/resources/qml/Menus/NozzleMenu.qml:26 +msgctxt "@title:menuitem %1 is the value from the printer" +msgid "Automatic: %1" +msgstr "Automatyczny: %1" + +#: /home/ruben/Projects/Cura/resources/qml/Menus/ContextMenu.qml:25 +msgctxt "@label" +msgid "Print Selected Model With:" +msgid_plural "Print Selected Models With:" +msgstr[0] "Wydrukuj wybrany model z:" +msgstr[1] "Wydrukuj wybrane modele z:" + +#: /home/ruben/Projects/Cura/resources/qml/Menus/ContextMenu.qml:82 +msgctxt "@title:window" +msgid "Multiply Selected Model" +msgid_plural "Multiply Selected Models" +msgstr[0] "Zduplikuj wybrany model" +msgstr[1] "Zduplikuj wybrane modele" + +#: /home/ruben/Projects/Cura/resources/qml/Menus/ContextMenu.qml:109 +msgctxt "@label" +msgid "Number of Copies" +msgstr "Liczba kopii" + +#: /home/ruben/Projects/Cura/resources/qml/Menus/RecentFilesMenu.qml:13 +msgctxt "@title:menu menubar:file" +msgid "Open &Recent" +msgstr "Otwórz &ostatnio używane" + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:33 +msgctxt "@info:status" +msgid "No printer connected" +msgstr "Nie podłączono drukarki" + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:90 +msgctxt "@label" +msgid "Hotend" +msgstr "Głowica" + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:119 +msgctxt "@tooltip" +msgid "The current temperature of this extruder." +msgstr "Bieżąca temperatura głowicy drukującej" + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:154 +msgctxt "@tooltip" +msgid "The colour of the material in this extruder." +msgstr "Kolor materiału w tym ekstruderze." + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:186 +msgctxt "@tooltip" +msgid "The material in this extruder." +msgstr "Materiał w głowicy drukującej." + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:218 +msgctxt "@tooltip" +msgid "The nozzle inserted in this extruder." +msgstr "Dysza włożona do tego ekstrudera." + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:249 +msgctxt "@label" +msgid "Build plate" +msgstr "Stół roboczy" + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:278 +msgctxt "@tooltip" +msgid "The target temperature of the heated bed. The bed will heat up or cool down towards this temperature. If this is 0, the bed heating is turned off." +msgstr "Temperatura docelowa podgrzewanego stołu. Stół rozgrzeje się lub schłodzi w kierunku tej temperatury. Jeśli ustawione jest 0, grzanie stołu jest wyłączone." + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:310 +msgctxt "@tooltip" +msgid "The current temperature of the heated bed." +msgstr "Bieżąca temperatura podgrzewanego stołu." + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:379 +msgctxt "@tooltip of temperature input" +msgid "The temperature to pre-heat the bed to." +msgstr "Temperatura do wstępnego podgrzewania stołu." + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:573 +msgctxt "@button Cancel pre-heating" +msgid "Cancel" +msgstr "Anuluj" + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:573 +msgctxt "@button" +msgid "Pre-heat" +msgstr "Podgrzewanie wstępne" + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:600 +msgctxt "@tooltip of pre-heat" +msgid "Heat the bed in advance before printing. You can continue adjusting your print while it is heating, and you won't have to wait for the bed to heat up when you're ready to print." +msgstr "Przed drukowaniem podgrzej stół. W dalszym ciągu można dostosowywać druk podczas nagrzewania, a nie będziesz musiał czekać na rozgrzanie stołu, gdy będziesz gotowy do drukowania." + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:633 +msgctxt "@label" +msgid "Active print" +msgstr "Aktywny wydruk" + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:638 +msgctxt "@label" +msgid "Job Name" +msgstr "Nazwa pracy" + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:644 +msgctxt "@label" +msgid "Printing Time" +msgstr "Czas druku" + +#: /home/ruben/Projects/Cura/resources/qml/PrintMonitor.qml:650 +msgctxt "@label" +msgid "Estimated time left" +msgstr "Szacowany czas pozostały" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:67 +msgctxt "@action:inmenu" +msgid "Toggle Fu&ll Screen" +msgstr "Przełącz tryb pełnoekranowy" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:74 +msgctxt "@action:inmenu menubar:edit" +msgid "&Undo" +msgstr "&Cofnij" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:84 +msgctxt "@action:inmenu menubar:edit" +msgid "&Redo" +msgstr "&Ponów" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:94 +msgctxt "@action:inmenu menubar:file" +msgid "&Quit" +msgstr "&Zamknij" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:102 +msgctxt "@action:inmenu" +msgid "Configure Cura..." +msgstr "Konfiguruj Cura..." + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:109 +msgctxt "@action:inmenu menubar:printer" +msgid "&Add Printer..." +msgstr "&Dodaj drukarkę..." + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:115 +msgctxt "@action:inmenu menubar:printer" +msgid "Manage Pr&inters..." +msgstr "Zarządzaj drukarkami..." + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:122 +msgctxt "@action:inmenu" +msgid "Manage Materials..." +msgstr "Zarządzaj materiałami..." + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:130 +msgctxt "@action:inmenu menubar:profile" +msgid "&Update profile with current settings/overrides" +msgstr "&Aktualizuj profil z bieżącymi ustawieniami" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:138 +msgctxt "@action:inmenu menubar:profile" +msgid "&Discard current changes" +msgstr "&Odrzuć bieżące zmiany" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:150 +msgctxt "@action:inmenu menubar:profile" +msgid "&Create profile from current settings/overrides..." +msgstr "&Utwórz profil z bieżących ustawień..." + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:156 +msgctxt "@action:inmenu menubar:profile" +msgid "Manage Profiles..." +msgstr "Zarządzaj profilami..." + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:163 +msgctxt "@action:inmenu menubar:help" +msgid "Show Online &Documentation" +msgstr "Pokaż dokumentację internetową" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:171 +msgctxt "@action:inmenu menubar:help" +msgid "Report a &Bug" +msgstr "Zgłoś błąd" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:179 +msgctxt "@action:inmenu menubar:help" +msgid "&About..." +msgstr "&O..." + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:186 +msgctxt "@action:inmenu menubar:edit" +msgid "Delete &Selected Model" +msgid_plural "Delete &Selected Models" +msgstr[0] "Usuń &wybrany model" +msgstr[1] "Usuń &wybrane modele" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:196 +msgctxt "@action:inmenu menubar:edit" +msgid "Center Selected Model" +msgid_plural "Center Selected Models" +msgstr[0] "Wyśrodkuj wybrany model" +msgstr[1] "Wyśrodkuj wybrane modele" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:205 +msgctxt "@action:inmenu menubar:edit" +msgid "Multiply Selected Model" +msgid_plural "Multiply Selected Models" +msgstr[0] "Rozmnóż wybrany model" +msgstr[1] "Rozmnóż wybrane modele" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:214 +msgctxt "@action:inmenu" +msgid "Delete Model" +msgstr "Usuń model" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:222 +msgctxt "@action:inmenu" +msgid "Ce&nter Model on Platform" +msgstr "Wyśrodkuj model na platformie" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:228 +msgctxt "@action:inmenu menubar:edit" +msgid "&Group Models" +msgstr "&Grupuj modele" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:238 +msgctxt "@action:inmenu menubar:edit" +msgid "Ungroup Models" +msgstr "Rozgrupuj modele " + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:248 +msgctxt "@action:inmenu menubar:edit" +msgid "&Merge Models" +msgstr "&Połącz modele" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:258 +msgctxt "@action:inmenu" +msgid "&Multiply Model..." +msgstr "&Powiel model..." + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:265 +msgctxt "@action:inmenu menubar:edit" +msgid "&Select All Models" +msgstr "&Wybierz wszystkie modele" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:275 +msgctxt "@action:inmenu menubar:edit" +msgid "&Clear Build Plate" +msgstr "&Wyczyść stół" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:285 +msgctxt "@action:inmenu menubar:file" +msgid "Re&load All Models" +msgstr "Przeładuj wszystkie modele" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:294 +msgctxt "@action:inmenu menubar:edit" +msgid "Arrange All Models" +msgstr "Ułóż wszystkie modele" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:302 +msgctxt "@action:inmenu menubar:edit" +msgid "Arrange Selection" +msgstr "Wybór ułożenia" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:309 +msgctxt "@action:inmenu menubar:edit" +msgid "Reset All Model Positions" +msgstr "Zresetuj wszystkie pozycje modelu" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:316 +msgctxt "@action:inmenu menubar:edit" +msgid "Reset All Model &Transformations" +msgstr "Zresetuj wszystkie przekształcenia modelu" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:323 +msgctxt "@action:inmenu menubar:file" +msgid "&Open File(s)..." +msgstr "&Otwórz plik(i)..." + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:331 +msgctxt "@action:inmenu menubar:file" +msgid "&New Project..." +msgstr "&Nowy projekt..." + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:338 +msgctxt "@action:inmenu menubar:help" +msgid "Show Engine &Log..." +msgstr "Pokaż &dziennik silnika..." + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:346 +msgctxt "@action:inmenu menubar:help" +msgid "Show Configuration Folder" +msgstr "Pokaż folder konfiguracji" + +#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:353 +msgctxt "@action:menu" +msgid "Configure setting visibility..." +msgstr "Skonfiguruj widoczność ustawień ..." + +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:27 +msgctxt "@label:PrintjobStatus" +msgid "Please load a 3d model" +msgstr "Proszę załaduj model 3d" + +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:33 +msgctxt "@label:PrintjobStatus" +msgid "Ready to slice" +msgstr "Gotowy do cięcia" + +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:35 +msgctxt "@label:PrintjobStatus" +msgid "Slicing..." +msgstr "Cięcie..." + +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:37 +msgctxt "@label:PrintjobStatus %1 is target operation" +msgid "Ready to %1" +msgstr "Gotowy do %1" + +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:39 +msgctxt "@label:PrintjobStatus" +msgid "Unable to Slice" +msgstr "Nie można pociąć" + +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:41 +msgctxt "@label:PrintjobStatus" +msgid "Slicing unavailable" +msgstr "Cięcie niedostępne" + +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:148 +msgctxt "@label:Printjob" +msgid "Prepare" +msgstr "Przygotuj" + +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:148 +msgctxt "@label:Printjob" +msgid "Cancel" +msgstr "Anuluj" + +#: /home/ruben/Projects/Cura/resources/qml/SaveButton.qml:288 +msgctxt "@info:tooltip" +msgid "Select the active output device" +msgstr "Wybierz aktywne urządzenie wyjściowe" + +#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:19 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:618 +msgctxt "@title:window" +msgid "Open file(s)" +msgstr "Otwórz plik(i)" + +#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:64 +msgctxt "@text:window" +msgid "We have found one or more project file(s) within the files you have selected. You can open only one project file at a time. We suggest to only import models from those files. Would you like to proceed?" +msgstr "Znaleziono jeden lub więcej plików projektu w wybranych plikach. Możesz otwierać tylko jeden plik projektu na raz. Proponujemy importowanie tylko modeli z tych plików. Czy chcesz kontynuować?" + +#: /home/ruben/Projects/Cura/resources/qml/OpenFilesIncludingProjectsDialog.qml:99 +msgctxt "@action:button" +msgid "Import all as models" +msgstr "Importuj wszystkie jako modele" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:19 +msgctxt "@title:window" +msgid "Cura" +msgstr "Cura" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:68 +msgctxt "@title:menu menubar:toplevel" +msgid "&File" +msgstr "&Plik" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:85 +msgctxt "@action:inmenu menubar:file" +msgid "&Save Selection to File" +msgstr "&Zapisz wybór w pliku" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:94 +msgctxt "@title:menu menubar:file" +msgid "Save &As..." +msgstr "Zapisz &jako..." + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:105 +msgctxt "@title:menu menubar:file" +msgid "Save project" +msgstr "Zapisz projekt" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:128 +msgctxt "@title:menu menubar:toplevel" +msgid "&Edit" +msgstr "&Edytuj" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:145 +msgctxt "@title:menu" +msgid "&View" +msgstr "&Widok" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:150 +msgctxt "@title:menu" +msgid "&Settings" +msgstr "&Ustawienia" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:152 +msgctxt "@title:menu menubar:toplevel" +msgid "&Printer" +msgstr "&Drukarka" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:162 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:174 +msgctxt "@title:menu" +msgid "&Material" +msgstr "&Materiał" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:163 +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:175 +msgctxt "@title:menu" +msgid "&Profile" +msgstr "&Profil" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:167 +msgctxt "@action:inmenu" +msgid "Set as Active Extruder" +msgstr "Ustaw jako aktywną głowicę" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:185 +msgctxt "@title:menu menubar:toplevel" +msgid "E&xtensions" +msgstr "&Rozszerzenia" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:218 +msgctxt "@title:menu menubar:toplevel" +msgid "P&references" +msgstr "Preferencje" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:226 +msgctxt "@title:menu menubar:toplevel" +msgid "&Help" +msgstr "&Pomoc" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:296 +msgctxt "@action:button" +msgid "Open File" +msgstr "Otwórz plik" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:369 +msgctxt "@action:button" +msgid "View Mode" +msgstr "Tryb podglądu" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:464 +msgctxt "@title:tab" +msgid "Settings" +msgstr "Ustawienia" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:500 +msgctxt "@title:window" +msgid "New project" +msgstr "Nowy projekt" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:501 +msgctxt "@info:question" +msgid "Are you sure you want to start a new project? This will clear the build plate and any unsaved settings." +msgstr "Czy na pewno chcesz rozpocząć nowy projekt? Spowoduje to wyczyszczenie stołu i niezapisanych ustawień." + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:718 +msgctxt "@title:window" +msgid "Open File(s)" +msgstr "Otwórz plik(i)" + +#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:721 +msgctxt "@text:window" +msgid "We have found one or more G-Code files within the files you have selected. You can only open one G-Code file at a time. If you want to open a G-Code file, please just select only one." +msgstr "Znaleziono jeden lub więcej plików G-code w wybranych plikach. Możesz otwierać tylko jeden plik G-code jednocześnie. Jeśli chcesz otworzyć plik G-code, proszę wybierz tylko jeden." + +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:14 +msgctxt "@title:window" +msgid "Save Project" +msgstr "Zapisz projekt" + +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:134 +msgctxt "@action:label" +msgid "Extruder %1" +msgstr "Ekstruder %1" + +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:144 +msgctxt "@action:label" +msgid "%1 & material" +msgstr "%1 & materiał" + +#: /home/ruben/Projects/Cura/resources/qml/WorkspaceSummaryDialog.qml:240 +msgctxt "@action:label" +msgid "Don't show project summary on save again" +msgstr "Nie pokazuj podsumowania projektu podczas ponownego zapisywania" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:41 +msgctxt "@label" +msgid "Infill" +msgstr "Wypełnienie" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:188 +msgctxt "@label" +msgid "0%" +msgstr "0%" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:195 +msgctxt "@label" +msgid "Empty infill will leave your model hollow with low strength." +msgstr "Puste wypełnienie pozostawi twój model pusty z niską wytrzymałością" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:199 +msgctxt "@label" +msgid "20%" +msgstr "20%" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:206 +msgctxt "@label" +msgid "Light (20%) infill will give your model an average strength." +msgstr "Lekkie (20%) wypełnienie sprawi, że model będzie średniej wytrzymałości." + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:210 +msgctxt "@label" +msgid "50%" +msgstr "50%" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:217 +msgctxt "@label" +msgid "Dense (50%) infill will give your model an above average strength." +msgstr "Gęste wypełnienie (50%) da modelowi wyższą niż średnia wytrzymałość." + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:221 +msgctxt "@label" +msgid "100%" +msgstr "100%" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:228 +msgctxt "@label" +msgid "Solid (100%) infill will make your model completely solid." +msgstr "Pełne (100%) wypełnienie sprawi, że model będzie całkowicie wypełniony." + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:232 +msgctxt "@label" +msgid "Gradual" +msgstr "Stopniowy" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:240 +msgctxt "@label" +msgid "Gradual infill will gradually increase the amount of infill towards the top." +msgstr "Stopniowe wypełnienie stopniowo zwiększa ilość wypełnień w górę." + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:263 +msgctxt "@label" +msgid "Generate Support" +msgstr "Generuj podpory" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:296 +msgctxt "@label" +msgid "Generate structures to support parts of the model which have overhangs. Without these structures, such parts would collapse during printing." +msgstr "Generuje podpory wspierające części modelu, które mają zwis. Bez tych podpór takie części mogłyby spaść podczas drukowania." + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:313 +msgctxt "@label" +msgid "Support Extruder" +msgstr "Ekstruder od podpór" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:387 +msgctxt "@label" +msgid "Select which extruder to use for support. This will build up supporting structures below the model to prevent the model from sagging or printing in mid air." +msgstr "Wybierz, który ekstruder ma służyć do drukowania podpór. Powoduje to tworzenie podpór poniżej modelu, aby zapobiec spadaniu lub drukowaniu modelu w powietrzu." + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:412 +msgctxt "@label" +msgid "Build Plate Adhesion" +msgstr "Popraw przycz. modelu" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:458 +msgctxt "@label" +msgid "Enable printing a brim or raft. This will add a flat area around or under your object which is easy to cut off afterwards." +msgstr "Włącz drukowanie obrysu lub tratwy. Spowoduje to dodanie płaskiej powierzchni wokół lub pod Twoim obiektem, która jest łatwa do usunięcia po wydruku." + +#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:511 +msgctxt "@label" +msgid "Need help improving your prints?
Read the Ultimaker Troubleshooting Guides" +msgstr "Potrzebujesz pomocy w ulepszaniu wydruków?
Przeczytaj instrukcje dotyczące rozwiązywania problemów" + +#: /home/ruben/Projects/Cura/resources/qml/ExtruderButton.qml:16 +msgctxt "@label" +msgid "Print Selected Model with %1" +msgid_plural "Print Selected Models With %1" +msgstr[0] "Wydrukuj wybrany model z %1" +msgstr[1] "Wydrukuj wybrane modele z %1" + +#: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:20 +msgctxt "@title:window" +msgid "Open project file" +msgstr "Otwórz plik projektu" + +#: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:71 +msgctxt "@text:window" +msgid "This is a Cura project file. Would you like to open it as a project or import the models from it?" +msgstr "Jest to plik projektu Cura. Czy chcesz otworzyć go jako projekt, czy zaimportować z niego modele?" + +#: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:81 +msgctxt "@text:window" +msgid "Remember my choice" +msgstr "Zapamiętaj mój wybór" + +#: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:95 +msgctxt "@action:button" +msgid "Open as project" +msgstr "Otwórz jako projekt" + +#: /home/ruben/Projects/Cura/resources/qml/AskOpenAsProjectOrModelsDialog.qml:114 +msgctxt "@action:button" +msgid "Import models" +msgstr "Importuj modele" + +#: /home/ruben/Projects/Cura/resources/qml/EngineLog.qml:15 +msgctxt "@title:window" +msgid "Engine Log" +msgstr "Dziennik silnika" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:185 +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:193 +msgctxt "@label" +msgid "Material" +msgstr "Materiał" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:234 +msgctxt "@tooltip" +msgid "Click to check the material compatibility on Ultimaker.com." +msgstr "Kliknij, aby sprawdzić zgodność materiału na Ultimaker.com." + +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:321 +msgctxt "@label" +msgid "Profile:" +msgstr "Profil:" + +#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:372 +msgctxt "@tooltip" +msgid "" +"Some setting/override values are different from the values stored in the profile.\n" +"\n" +"Click to open the profile manager." +msgstr "" +"Niektóre wartości ustawień różnią się od wartości zapisanych w profilu.\n" +"\n" +"Kliknij, aby otworzyć menedżer profili." diff --git a/resources/i18n/pl/fdmextruder.def.json.po b/resources/i18n/pl/fdmextruder.def.json.po new file mode 100644 index 0000000000..a18ab15ef8 --- /dev/null +++ b/resources/i18n/pl/fdmextruder.def.json.po @@ -0,0 +1,166 @@ +# Cura JSON setting files +# Copyright (C) 2017 Ultimaker +# This file is distributed under the same license as the Cura package. +# Ruben Dulek , 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: Cura 2.6\n" +"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" +"POT-Creation-Date: 2017-05-30 15:32+0000\n" +"PO-Revision-Date: 2017-07-20 16:49+0200\n" +"Last-Translator: 'Jaguś' Paweł Jagusiak and Andrzej 'anraf1001' Rafalski\n" +"Language-Team: reprapy.pl\n" +"Language: Polish\n" +"Lang-Code: pl\n" +"Country-Code: PL\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" +"X-Generator: Poedit 2.0.2\n" + +msgctxt "extruder_nr description" +msgid "The extruder train used for printing. This is used in multi-extrusion." +msgstr "" +"Ekstruder używany do drukowania. Ta opcja używana jest podczas multi-" +"ekstruzji." + +msgctxt "extruder_nr label" +msgid "Extruder" +msgstr "Ekstruder" + +msgctxt "extruder_prime_pos_x description" +msgid "" +"The X coordinate of the position where the nozzle primes at the start of " +"printing." +msgstr "Współrzędna X, w której dysza jest czyszczona na początku wydruku." + +msgctxt "extruder_prime_pos_x label" +msgid "Extruder Prime X Position" +msgstr "Pozycja X Czyszczenia Dyszy" + +msgctxt "extruder_prime_pos_y description" +msgid "" +"The Y coordinate of the position where the nozzle primes at the start of " +"printing." +msgstr "Współrzędna Y, w której dysza jest czyszczona na początku wydruku." + +msgctxt "extruder_prime_pos_y label" +msgid "Extruder Prime Y Position" +msgstr "Pozycja Y Czyszczenia Dyszy" + +msgctxt "extruder_prime_pos_z description" +msgid "" +"The Z coordinate of the position where the nozzle primes at the start of " +"printing." +msgstr "Współrzędna Z, w której dysza jest czyszczona na początku wydruku." + +msgctxt "extruder_prime_pos_z label" +msgid "Extruder Prime Z Position" +msgstr "Pozycja Z Czyszczenia Dyszy" + +msgctxt "machine_extruder_end_code description" +msgid "End g-code to execute whenever turning the extruder off." +msgstr "Końcowy G-code, który jest wywoływany, kiedy ekstruder jest wyłączany." + +msgctxt "machine_extruder_end_code label" +msgid "Extruder End G-Code" +msgstr "Końcowy G-code Ekstrudera" + +msgctxt "machine_extruder_end_pos_abs description" +msgid "" +"Make the extruder ending position absolute rather than relative to the last-" +"known location of the head." +msgstr "" +"Zmień pozycję końcową ekstrudera na bezwzględną, zamiast względem ostatniej " +"pozycji głowicy." + +msgctxt "machine_extruder_end_pos_abs label" +msgid "Extruder End Position Absolute" +msgstr "Bezwzgl. Końcowa Pozycja Ekstrudera" + +msgctxt "machine_extruder_end_pos_x description" +msgid "The x-coordinate of the ending position when turning the extruder off." +msgstr "Współrzędna X końcowej pozycji ekstrudera podczas jego wyłączania." + +msgctxt "machine_extruder_end_pos_x label" +msgid "Extruder End Position X" +msgstr "Końcowa Pozycja X Ekstrudera" + +msgctxt "machine_extruder_end_pos_y description" +msgid "The y-coordinate of the ending position when turning the extruder off." +msgstr "Współrzędna Y końcowej pozycji ekstrudera podczas jego wyłączania." + +msgctxt "machine_extruder_end_pos_y label" +msgid "Extruder End Position Y" +msgstr "Końcowa Pozycja Y Ekstrudera" + +msgctxt "machine_extruder_start_code description" +msgid "Start g-code to execute whenever turning the extruder on." +msgstr "Początkowy G-code wywoływany kiedy ekstruder uruchamia się." + +msgctxt "machine_extruder_start_code label" +msgid "Extruder Start G-Code" +msgstr "Początkowy G-code Ekstrudera" + +msgctxt "machine_extruder_start_pos_abs description" +msgid "" +"Make the extruder starting position absolute rather than relative to the " +"last-known location of the head." +msgstr "" +"Zmień pozycję początkową ekstrudera na bezwzględną, zamiast względem " +"ostatniej pozycji głowicy." + +msgctxt "machine_extruder_start_pos_abs label" +msgid "Extruder Start Position Absolute" +msgstr "Bezwzględna Pozycja Początkowa Ekstrudera" + +msgctxt "machine_extruder_start_pos_x description" +msgid "The x-coordinate of the starting position when turning the extruder on." +msgstr "Współrzędna X początkowej pozycji ekstrudera podczas jego włączania." + +msgctxt "machine_extruder_start_pos_x label" +msgid "Extruder Start Position X" +msgstr "Początkowa Pozycja X Ekstrudera" + +msgctxt "machine_extruder_start_pos_y description" +msgid "The y-coordinate of the starting position when turning the extruder on." +msgstr "Współrzędna Y początkowej pozycji ekstrudera podczas jego włączania." + +msgctxt "machine_extruder_start_pos_y label" +msgid "Extruder Start Position Y" +msgstr "Początkowa Pozycja Y Ekstrudera" + +msgctxt "machine_nozzle_offset_x description" +msgid "The x-coordinate of the offset of the nozzle." +msgstr "Współrzędna X przesunięcia dyszy." + +msgctxt "machine_nozzle_offset_x label" +msgid "Nozzle X Offset" +msgstr "Przesunięcie X Dyszy" + +msgctxt "machine_nozzle_offset_y description" +msgid "The y-coordinate of the offset of the nozzle." +msgstr "Współrzędna Y przesunięcia dyszy." + +msgctxt "machine_nozzle_offset_y label" +msgid "Nozzle Y Offset" +msgstr "Przesunięcie Y Dyszy" + +msgctxt "machine_settings description" +msgid "Machine specific settings" +msgstr "Specyficzne ustawienia maszyny" + +msgctxt "machine_settings label" +msgid "Machine" +msgstr "Maszyna" + +msgctxt "platform_adhesion description" +msgid "Adhesion" +msgstr "Przyczepność" + +msgctxt "platform_adhesion label" +msgid "Build Plate Adhesion" +msgstr "Przyczepność do stołu" diff --git a/resources/i18n/pl/fdmprinter.def.json.po b/resources/i18n/pl/fdmprinter.def.json.po new file mode 100644 index 0000000000..2fd16b3424 --- /dev/null +++ b/resources/i18n/pl/fdmprinter.def.json.po @@ -0,0 +1,4893 @@ +# Cura JSON setting files +# Copyright (C) 2017 Ultimaker +# This file is distributed under the same license as the Cura package. +# Ruben Dulek , 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: Cura 2.6\n" +"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" +"POT-Creation-Date: 2017-05-30 15:32+0000\n" +"PO-Revision-Date: 2017-07-24 11:51+0200\n" +"Last-Translator: 'Jaguś' Paweł Jagusiak and Andrzej 'anraf1001' Rafalski\n" +"Language-Team: reprapy.pl\n" +"Language: Polish\n" +"Lang-Code: pl\n" +"Country-Code: 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.3\n" + +msgctxt "acceleration_enabled description" +msgid "" +"Enables adjusting the print head acceleration. Increasing the accelerations " +"can reduce printing time at the cost of print quality." +msgstr "" +"Umożliwia regulację przyspieszenia głowicy drukującej. Wzrost przyspieszeń " +"może skrócić czas drukowania kosztem jakości druku." + +msgctxt "acceleration_enabled label" +msgid "Enable Acceleration Control" +msgstr "Włącz Sterowanie Przyspieszeniem" + +msgctxt "acceleration_infill description" +msgid "The acceleration with which infill is printed." +msgstr "Przyspieszenie, z którym drukowane jest wypełnienie." + +msgctxt "acceleration_infill label" +msgid "Infill Acceleration" +msgstr "Przyspieszenie Wypełnienia" + +msgctxt "acceleration_layer_0 description" +msgid "The acceleration for the initial layer." +msgstr "Przyspieszenie dla początkowej warstwy." + +msgctxt "acceleration_layer_0 label" +msgid "Initial Layer Acceleration" +msgstr "Pierwsza warstwa przyspieszenie" + +msgctxt "acceleration_prime_tower description" +msgid "The acceleration with which the prime tower is printed." +msgstr "Przyspieszenie, z którym drukowana jest wieża czyszcząca." + +msgctxt "acceleration_prime_tower label" +msgid "Prime Tower Acceleration" +msgstr "Przyspieszenie Wieży Czyszczącej" + +msgctxt "acceleration_print description" +msgid "The acceleration with which printing happens." +msgstr "Przyspieszenie, z jakim odbywa się drukowanie." + +msgctxt "acceleration_print label" +msgid "Print Acceleration" +msgstr "Przyspieszenie Druku" + +msgctxt "acceleration_print_layer_0 description" +msgid "The acceleration during the printing of the initial layer." +msgstr "Przyspieszenie podczas drukowania pierwszej warstwy." + +msgctxt "acceleration_print_layer_0 label" +msgid "Initial Layer Print Acceleration" +msgstr "Przysp. Druku 1. Warstwy" + +msgctxt "acceleration_skirt_brim description" +msgid "" +"The acceleration with which the skirt and brim are printed. Normally this is " +"done with the initial layer acceleration, but sometimes you might want to " +"print the skirt or brim at a different acceleration." +msgstr "" +"Przyspieszenie z jakim drukowane są obwódka i obrys. Normalnie są one " +"drukowane z przyspieszeniem pierwszej warstwy, ale czasami będziesz chciał " +"wydrukować obwódkę i obrys z innym przyspieszeniem." + +msgctxt "acceleration_skirt_brim label" +msgid "Skirt/Brim Acceleration" +msgstr "Przyspieszenie Obwódki/Obrysu" + +msgctxt "acceleration_support description" +msgid "The acceleration with which the support structure is printed." +msgstr "Przyspieszenie, z którym drukowane są podpory." + +msgctxt "acceleration_support label" +msgid "Support Acceleration" +msgstr "Przyspieszenie Podpór" + +msgctxt "acceleration_support_bottom description" +msgid "" +"The acceleration with which the floors of support are printed. Printing them " +"at lower acceleration can improve adhesion of support on top of your model." +msgstr "" +"Przyspieszenie, z jakim są drukowane podłoża podpór. Drukowanie przy niższym " +"przyspieszeniu może poprawić adhezję podpory na modelu." + +msgctxt "acceleration_support_bottom label" +msgid "Support Floor Acceleration" +msgstr "Przyspieszenie Podłoża Podpory" + +msgctxt "acceleration_support_infill description" +msgid "The acceleration with which the infill of support is printed." +msgstr "Przyspieszenie, z których drukowane jest wypełnienie podpory." + +msgctxt "acceleration_support_infill label" +msgid "Support Infill Acceleration" +msgstr "Przyspieszenie Wypełnienia Podpory" + +msgctxt "acceleration_support_interface description" +msgid "" +"The acceleration with which the roofs and floors of support are printed. " +"Printing them at lower acceleration can improve overhang quality." +msgstr "" +"Przyspieszenie, z jakim drukowane są dachy i podłoża podpory. Drukowanie " +"przy niższym przyspieszeniu może poprawić jakość zwisu." + +msgctxt "acceleration_support_interface label" +msgid "Support Interface Acceleration" +msgstr "Przyspieszenie Pow. Styku Podpory" + +msgctxt "acceleration_support_roof description" +msgid "" +"The acceleration with which the roofs of support are printed. Printing them " +"at lower acceleration can improve overhang quality." +msgstr "" +"Przyspieszenie, z jakim drukowane są dachy podpór. Drukowanie przy niższym " +"przyspieszeniu może poprawić jakość zwisu." + +msgctxt "acceleration_support_roof label" +msgid "Support Roof Acceleration" +msgstr "Przyspieszenie Dachu Podpory" + +msgctxt "acceleration_topbottom description" +msgid "The acceleration with which top/bottom layers are printed." +msgstr "Przyspieszenie, z jakim drukowane są górne/dolne warstwy." + +msgctxt "acceleration_topbottom label" +msgid "Top/Bottom Acceleration" +msgstr "Przysp. Górnych/Dolnych Warstw" + +msgctxt "acceleration_travel description" +msgid "The acceleration with which travel moves are made." +msgstr "Przyspieszenie, z jakim wykonywane są ruchy jałowe." + +msgctxt "acceleration_travel label" +msgid "Travel Acceleration" +msgstr "Przyspieszenie Ruchów Jałowych" + +msgctxt "acceleration_travel_layer_0 description" +msgid "The acceleration for travel moves in the initial layer." +msgstr "Przyspieszenie ruchów jałowych na pierwszej warstwie." + +msgctxt "acceleration_travel_layer_0 label" +msgid "Initial Layer Travel Acceleration" +msgstr "Przyspieszenie Ruchu Jał. 1. Warstwa" + +msgctxt "acceleration_wall description" +msgid "The acceleration with which the walls are printed." +msgstr "Przyspieszenie, z jakim drukowane są ściany." + +msgctxt "acceleration_wall label" +msgid "Wall Acceleration" +msgstr "Przyspieszenie Ścian" + +msgctxt "acceleration_wall_0 description" +msgid "The acceleration with which the outermost walls are printed." +msgstr "Przyspieszenia, z jakim drukowane są ściany zewn." + +msgctxt "acceleration_wall_0 label" +msgid "Outer Wall Acceleration" +msgstr "Przyspieszenie Ściany Zewn." + +msgctxt "acceleration_wall_x description" +msgid "The acceleration with which all inner walls are printed." +msgstr "Przyspieszenie, z jakim drukowane są ściany wewn." + +msgctxt "acceleration_wall_x label" +msgid "Inner Wall Acceleration" +msgstr "Przyspieszenie Ściany Wewn." + +msgctxt "adhesion_extruder_nr description" +msgid "" +"The extruder train to use for printing the skirt/brim/raft. This is used in " +"multi-extrusion." +msgstr "" +"Ekstruder używany do drukowania obwódki/obrysu/tratwy. Używane przy multi-" +"ekstruzji." + +msgctxt "adhesion_extruder_nr label" +msgid "Build Plate Adhesion Extruder" +msgstr "Ekstruder Drukujący Ułatw. Przyczep." + +msgctxt "adhesion_type description" +msgid "" +"Different options that help to improve both priming your extrusion and " +"adhesion to the build plate. Brim adds a single layer flat area around the " +"base of your model to prevent warping. Raft adds a thick grid with a roof " +"below the model. Skirt is a line printed around the model, but not connected " +"to the model." +msgstr "" +"Różne opcje, które pomagają na przyczepność do stołu. Obrys dodaje " +"jednowarstwową płaską powierzchnię wokół podstawy modelu, aby zapobiec " +"wypaczeniu. Tratwa dodaje grubą siatkę z dachem poniżej modelu. Obwódka to " +"linia nadrukowana wokół modelu, ale nie połączona z modelem." + +msgctxt "adhesion_type label" +msgid "Build Plate Adhesion Type" +msgstr "Typ Ulepszenia Przyczepności" + +msgctxt "adhesion_type option brim" +msgid "Brim" +msgstr "Obrys" + +msgctxt "adhesion_type option none" +msgid "None" +msgstr "Brak" + +msgctxt "adhesion_type option raft" +msgid "Raft" +msgstr "Tratwa" + +msgctxt "adhesion_type option skirt" +msgid "Skirt" +msgstr "Obwódka" + +msgctxt "alternate_carve_order description" +msgid "" +"Switch to which mesh intersecting volumes will belong with every layer, so " +"that the overlapping meshes become interwoven. Turning this setting off will " +"cause one of the meshes to obtain all of the volume in the overlap, while it " +"is removed from the other meshes." +msgstr "" +"Przełącz się, to której przecinającej się siatki będą należały z każdą " +"warstwą, tak że nakładające się siatki przeplatają się. Wyłączenie tej opcji " +"spowoduje, że jedna siatka uzyska całą objętość podczas nakładania się, " +"kiedy jest usunięta z pozostałych siatek." + +msgctxt "alternate_carve_order label" +msgid "Alternate Mesh Removal" +msgstr "Zastosuj Usuwanie Siatki" + +msgctxt "alternate_extra_perimeter description" +msgid "" +"Prints an extra wall at every other layer. This way infill gets caught " +"between these extra walls, resulting in stronger prints." +msgstr "" +"Drukuje dodatkową ścianę na każdej warstwie. W ten sposób wypełnienie jest " +"tworzone pomiędzy tymi dod. ścianami, co skutkuje mocniejszymi wydrukami." + +msgctxt "alternate_extra_perimeter label" +msgid "Alternate Extra Wall" +msgstr "Zastosuj Dodatkową Ścianę" + +msgctxt "anti_overhang_mesh description" +msgid "" +"Use this mesh to specify where no part of the model should be detected as " +"overhang. This can be used to remove unwanted support structure." +msgstr "" +"Użyj tej siatki, aby sprecyzować gdzie żadna z części modelu nie powinna być " +"wykrywana jako zwis. Ta opcja może być używana do usuwania niepotrzebnych " +"podpór." + +msgctxt "anti_overhang_mesh label" +msgid "Anti Overhang Mesh" +msgstr "Siatka Anty-zwisowa" + +msgctxt "blackmagic description" +msgid "category_blackmagic" +msgstr "category_blackmagic" + +msgctxt "blackmagic label" +msgid "Special Modes" +msgstr "Specjalne Tryby" + +msgctxt "bottom_layers description" +msgid "" +"The number of bottom layers. When calculated by the bottom thickness, this " +"value is rounded to a whole number." +msgstr "" +"Liczba dolnych warstw. Przy obliczaniu grubości dołu ta wartość jest " +"zaokrąglana do liczby całkowitej." + +msgctxt "bottom_layers label" +msgid "Bottom Layers" +msgstr "Dolne Warstwy" + +msgctxt "bottom_thickness description" +msgid "" +"The thickness of the bottom layers in the print. This value divided by the " +"layer height defines the number of bottom layers." +msgstr "" +"Grubość dolnych warstw w wydruku. Ta wartość podzielona przez wysokość " +"warstwy definiuje liczbę warstw dolnych." + +msgctxt "bottom_thickness label" +msgid "Bottom Thickness" +msgstr "Grubość Dołu" + +msgctxt "brim_line_count description" +msgid "" +"The number of lines used for a brim. More brim lines enhance adhesion to the " +"build plate, but also reduces the effective print area." +msgstr "" +"Liczba linii używana dla obrysu. Więcej linii obrysu poprawia przyczepność " +"do stołu, ale zmniejsza rzeczywiste pole wydruku." + +msgctxt "brim_line_count label" +msgid "Brim Line Count" +msgstr "Liczba Linii Obrysu" + +msgctxt "brim_outside_only description" +msgid "" +"Only print the brim on the outside of the model. This reduces the amount of " +"brim you need to remove afterwards, while it doesn't reduce the bed adhesion " +"that much." +msgstr "" +"Drukuj obrys tylko na zewnątrz modelu. Zmniejsza to liczbę obrysu, który " +"trzeba usunąć po wydruku, podczas gdy nie zmniejsza znacząco przyczepności " +"do stołu." + +msgctxt "brim_outside_only label" +msgid "Brim Only on Outside" +msgstr "Obrys Tylko na Zewn." + +msgctxt "brim_width description" +msgid "" +"The distance from the model to the outermost brim line. A larger brim " +"enhances adhesion to the build plate, but also reduces the effective print " +"area." +msgstr "" +"Odległość od modelu do najbardziej wysuniętej na zewnątrz linii obrysu. " +"Większy obrys zwiększa adhezję do stołu, ale również zmniejsza efektywny " +"obszar wydruku." + +msgctxt "brim_width label" +msgid "Brim Width" +msgstr "Szerokość Obrysu" + +msgctxt "carve_multiple_volumes description" +msgid "" +"Remove areas where multiple meshes are overlapping with each other. This may " +"be used if merged dual material objects overlap with each other." +msgstr "" +"Usuń obszary gdzie kilka siatek nakłada się na siebie. Może zostać użyte, " +"jeżeli dwa obiekty do druku 2 materiałami nachodzą na siebie." + +msgctxt "carve_multiple_volumes label" +msgid "Remove Mesh Intersection" +msgstr "Usuń Przecięcia Siatki" + +msgctxt "center_object description" +msgid "" +"Whether to center the object on the middle of the build platform (0,0), " +"instead of using the coordinate system in which the object was saved." +msgstr "" +"Czy wyśrodkować obiekt na środku stołu (0,0), zamiast używać układu " +"współrzędnych, w którym został zapisany obiekt." + +msgctxt "center_object label" +msgid "Center object" +msgstr "Wyśrodkuj Obiekt" + +msgctxt "coasting_enable description" +msgid "" +"Coasting replaces the last part of an extrusion path with a travel path. The " +"oozed material is used to print the last piece of the extrusion path in " +"order to reduce stringing." +msgstr "" +"Wypływanie zastępuje ostatnią część ścieżki ekstruzji, ścieżką ruchu " +"jałowego. Wyciekający materiał jest używany do wydrukowania ostatniego " +"fragmentu ekstruzji, aby zmniejszyć nitkowanie." + +msgctxt "coasting_enable label" +msgid "Enable Coasting" +msgstr "Włącz Wypływanie" + +msgctxt "coasting_min_volume description" +msgid "" +"The smallest volume an extrusion path should have before allowing coasting. " +"For smaller extrusion paths, less pressure has been built up in the bowden " +"tube and so the coasted volume is scaled linearly. This value should always " +"be larger than the Coasting Volume." +msgstr "" +"Najmniejsza objętość jaką powinna mieć ścieżka ekstruzji przed pozwoleniem " +"na Wypływanie. Dla mniejszych ścieżek ekstruzji pojawia się mniejsze " +"ciśnienie we wbudowanej rurce bowden dzięki czemu ilość wypływającego " +"materiału jest skalowana liniowo. Ta wartość powinna zawsze być większa niż " +"Objętość Wypływania." + +msgctxt "coasting_min_volume label" +msgid "Minimum Volume Before Coasting" +msgstr "Minimalna Objętość Przed Wypływaniem" + +msgctxt "coasting_speed description" +msgid "" +"The speed by which to move during coasting, relative to the speed of the " +"extrusion path. A value slightly under 100% is advised, since during the " +"coasting move the pressure in the bowden tube drops." +msgstr "" +"Prędkość poruszania się podczas Wypływania, w stosunku do prędkości ścieżki " +"ekstruzji. Zaleca się wartość nieco poniżej 100%, ponieważ podczas " +"Wypływania ciśnienie w rurce bowden spada." + +msgctxt "coasting_speed label" +msgid "Coasting Speed" +msgstr "Prędkość Wypływania" + +msgctxt "coasting_volume description" +msgid "" +"The volume otherwise oozed. This value should generally be close to the " +"nozzle diameter cubed." +msgstr "" +"Objętość materiału wyciekającego jest inna. Wartość ta powinna być " +"zasadniczo zbliżona do średnicy dyszy do sześcianu." + +msgctxt "coasting_volume label" +msgid "Coasting Volume" +msgstr "Objętość Wypływania" + +msgctxt "command_line_settings description" +msgid "" +"Settings which are only used if CuraEngine isn't called from the Cura " +"frontend." +msgstr "" +"Ustawienia, które są używane tylko wtedy, gdy CuraEngine nie jest wywoływana " +"przez frontend Cura." + +msgctxt "command_line_settings label" +msgid "Command Line Settings" +msgstr "Ustawienia Wiersza Polecenia" + +msgctxt "conical_overhang_angle description" +msgid "" +"The maximum angle of overhangs after the they have been made printable. At a " +"value of 0° all overhangs are replaced by a piece of model connected to the " +"build plate, 90° will not change the model in any way." +msgstr "" +"Maksymalny kąt zwisów po którym będą one drukowalne. Przy wartości 0 ° " +"wszystkie zwisy są zastępowane przez fragment modelu połączony ze stołem, a " +"90 ° w żaden sposób nie zmienia modelu." + +msgctxt "conical_overhang_angle label" +msgid "Maximum Model Angle" +msgstr "Maksymalny Kąt Modelu" + +msgctxt "conical_overhang_enabled description" +msgid "" +"Change the geometry of the printed model such that minimal support is " +"required. Steep overhangs will become shallow overhangs. Overhanging areas " +"will drop down to become more vertical." +msgstr "" +"Zmienia geometrię modelu tak, aby wymagał minimalnego podparcia. Strome " +"zwisy staną się mniej strome. Zwisające obszary zostaną opuszczone by być " +"bardziej pionowymi." + +msgctxt "conical_overhang_enabled label" +msgid "Make Overhang Printable" +msgstr "Drukowalne Zwisy" + +msgctxt "cool_fan_enabled description" +msgid "" +"Enables the print cooling fans while printing. The fans improve print " +"quality on layers with short layer times and bridging / overhangs." +msgstr "" +"Włącza wentylatory chłodzące wydruk. Wentylatory poprawiają jakość wydruku " +"na warstwach o krótkim czasie druku warstwy i mostów/zwisów." + +msgctxt "cool_fan_enabled label" +msgid "Enable Print Cooling" +msgstr "Włącz Chłodzenie Wydruku" + +msgctxt "cool_fan_full_at_height description" +msgid "" +"The height at which the fans spin on regular fan speed. At the layers below " +"the fan speed gradually increases from Initial Fan Speed to Regular Fan " +"Speed." +msgstr "" +"Wysokość na jakiej wentylatory będą obracać się z regularną prędkością. Na " +"niższych warstwach prędkość wentylatorów będzie stopniowo zwiększać się z " +"Początk. Pręd. Wentylatora do Regularnej Pręd. Wentylatora." + +msgctxt "cool_fan_full_at_height label" +msgid "Regular Fan Speed at Height" +msgstr "Regularna Pręd. Went. na Wysokości" + +msgctxt "cool_fan_full_layer description" +msgid "" +"The layer at which the fans spin on regular fan speed. If regular fan speed " +"at height is set, this value is calculated and rounded to a whole number." +msgstr "" +"Warstwa, na której wentylatory obracają się z normalną prędkością. Jeśli " +"ustawiona jest Regularna Pręd. Went. na Wysokości, wartość ta jest obliczana " +"i zaokrąglana do liczby całkowitej." + +msgctxt "cool_fan_full_layer label" +msgid "Regular Fan Speed at Layer" +msgstr "Regularna Pręd. Went. na Wartswie" + +msgctxt "cool_fan_speed description" +msgid "The speed at which the print cooling fans spin." +msgstr "Prędkość z jaką mają obracać się wentylatory." + +msgctxt "cool_fan_speed label" +msgid "Fan Speed" +msgstr "Prędkość Wentylatora" + +msgctxt "cool_fan_speed_0 description" +msgid "" +"The speed at which the fans spin at the start of the print. In subsequent " +"layers the fan speed is gradually increased up to the layer corresponding to " +"Regular Fan Speed at Height." +msgstr "" +"Prędkość, z jaką wentylatory obracają się na początku druku. W kolejnych " +"warstwach prędkość wentylatora stopniowo wzrasta do warstwy odpowiadającej " +"Regularnej Pręd. Went. na Wysokości." + +msgctxt "cool_fan_speed_0 label" +msgid "Initial Fan Speed" +msgstr "Początkowa Prędk. Wentylatora" + +msgctxt "cool_fan_speed_max description" +msgid "" +"The speed at which the fans spin on the minimum layer time. The fan speed " +"gradually increases between the regular fan speed and maximum fan speed when " +"the threshold is hit." +msgstr "" +"Prędkość, z jaką obracają się wentylatory w minimalnym czasie warstwy. " +"Prędkość wentylatora stopniowo wzrasta między regularną prędkością " +"wentylatora a maksymalną prędkością wentylatora, kiedy próg zostanie " +"przekroczony." + +msgctxt "cool_fan_speed_max label" +msgid "Maximum Fan Speed" +msgstr "Maksymalna Pręd. Wentylatora" + +msgctxt "cool_fan_speed_min description" +msgid "" +"The speed at which the fans spin before hitting the threshold. When a layer " +"prints faster than the threshold, the fan speed gradually inclines towards " +"the maximum fan speed." +msgstr "" +"Prędkość obrotowa wentylatorów przed osiągnięciem progu. Kiedy warstwa " +"drukowana jest szybciej niż próg, prędkość wentylatora stopniowo przybliża " +"się do maksymalnej prędkości wentylatora." + +msgctxt "cool_fan_speed_min label" +msgid "Regular Fan Speed" +msgstr "Normalna Pręd. Wentylatora" + +msgctxt "cool_lift_head description" +msgid "" +"When the minimum speed is hit because of minimum layer time, lift the head " +"away from the print and wait the extra time until the minimum layer time is " +"reached." +msgstr "" +"Jeśli zostanie osiągnięta minimalna prędkość ze względu na minimalny czas " +"warstwy, podnieś głowicę poza wydruk i poczekaj aż zostanie osiągnięty " +"minimalny czas warstwy." + +msgctxt "cool_lift_head label" +msgid "Lift Head" +msgstr "Unieś Głowicę" + +msgctxt "cool_min_layer_time description" +msgid "" +"The minimum time spent in a layer. This forces the printer to slow down, to " +"at least spend the time set here in one layer. This allows the printed " +"material to cool down properly before printing the next layer. Layers may " +"still take shorter than the minimal layer time if Lift Head is disabled and " +"if the Minimum Speed would otherwise be violated." +msgstr "" +"Minimalny czas spędzony na warstwie. Zmusza to drukarkę do spowolnienia, aby " +"spędzić przynajmniej ten czas na jednej warstwie. Pozwala to na właściwe " +"schłodzenie materiału przed wydrukowaniem następnej warstwy. Warstwy mogą " +"nadal trwać krócej niż minimalny czas warstwy, jeśli Unieś Głowicę jest " +"wyłączone, a jeśli Minimalna Prędkość zostanie w jakiś sposób zmieniona." + +msgctxt "cool_min_layer_time label" +msgid "Minimum Layer Time" +msgstr "Minimalny Czas Warstwy" + +msgctxt "cool_min_layer_time_fan_speed_max description" +msgid "" +"The layer time which sets the threshold between regular fan speed and " +"maximum fan speed. Layers that print slower than this time use regular fan " +"speed. For faster layers the fan speed gradually increases towards the " +"maximum fan speed." +msgstr "" +"Czas warstwy, który ustala próg pomiędzy regularną prędkością wentylatora a " +"maksymalną prędkością wentylatora. Warstwy, które są drukowane wolniej niż " +"ten czas, używają regularnej prędkości wentylatora. W przypadku szybszych " +"warstw prędkość wentylatora stopniowo wzrasta w kierunku maksymalnej " +"prędkości wentylatora." + +msgctxt "cool_min_layer_time_fan_speed_max label" +msgid "Regular/Maximum Fan Speed Threshold" +msgstr "Regularny/Maks. Próg Pręd. Wentylatora" + +msgctxt "cool_min_speed description" +msgid "" +"The minimum print speed, despite slowing down due to the minimum layer time. " +"When the printer would slow down too much, the pressure in the nozzle would " +"be too low and result in bad print quality." +msgstr "" +"Minimalna szybkość drukowania, pomimo spowolnienia z powodu minimalnego " +"czasu warstwy. Gdy drukarka spowolnia zbyt dużo, ciśnienie w dyszy jest zbyt " +"niskie co pogarsza jakość wydruków." + +msgctxt "cool_min_speed label" +msgid "Minimum Speed" +msgstr "Minimalna Prędkość" + +msgctxt "cooling description" +msgid "Cooling" +msgstr "Chłodzenie" + +msgctxt "cooling label" +msgid "Cooling" +msgstr "Chłodzenie" + +msgctxt "cutting_mesh description" +msgid "" +"Limit the volume of this mesh to within other meshes. You can use this to " +"make certain areas of one mesh print with different settings and with a " +"whole different extruder." +msgstr "" +"Potnij siatkę na części. Możesz to zrobić, aby stworzyć określone miejsca w " +"jednej siatce, które będą drukowane z innymi ustawieniami, a nawet innym " +"ekstruderem." + +msgctxt "cutting_mesh label" +msgid "Cutting Mesh" +msgstr "Cięcie Siatki" + +msgctxt "default_material_print_temperature description" +msgid "" +"The default temperature used for printing. This should be the \"base\" " +"temperature of a material. All other print temperatures should use offsets " +"based on this value" +msgstr "" +"Domyślna temperatura używana do drukowania. Powinno to być \"podstawowa\" " +"temperatura materiału. Wszystkie inne temperatury powinny wykorzystywać " +"przesunięcie względem tej wartości" + +msgctxt "default_material_print_temperature label" +msgid "Default Printing Temperature" +msgstr "Domyślna Temperatura Druku" + +msgctxt "draft_shield_dist description" +msgid "Distance of the draft shield from the print, in the X/Y directions." +msgstr "Odległość osłony przeciwwiatrowej od druku, we współrzędnych X/Y." + +msgctxt "draft_shield_dist label" +msgid "Draft Shield X/Y Distance" +msgstr "Odległość Osłony w X/Y" + +msgctxt "draft_shield_enabled description" +msgid "" +"This will create a wall around the model, which traps (hot) air and shields " +"against exterior airflow. Especially useful for materials which warp easily." +msgstr "" +"Powoduje to powstanie osłony wokół modelu, która wyłapuje (gorące) powietrze " +"i osłania przed ruchami powietrza. Szczególnie przydatna w przypadku " +"materiałów, które łatwo się rozwarstwiają." + +msgctxt "draft_shield_enabled label" +msgid "Enable Draft Shield" +msgstr "Włącz Osłonę Przeciwwiatrową" + +msgctxt "draft_shield_height description" +msgid "" +"Height limitation of the draft shield. Above this height no draft shield " +"will be printed." +msgstr "" +"Ograniczenie wysokości osłony przeciwwiatrowej. Powyżej tej wysokości nie " +"będzie drukowana żadna osłona." + +msgctxt "draft_shield_height label" +msgid "Draft Shield Height" +msgstr "Wysokość Osłony" + +msgctxt "draft_shield_height_limitation description" +msgid "" +"Set the height of the draft shield. Choose to print the draft shield at the " +"full height of the model or at a limited height." +msgstr "" +"Ustaw wysokość osłony przeciwwiatrowej. Wybierz czy drukować osłonę do " +"pełnej wysokości modelu czy do określonej wysokości." + +msgctxt "draft_shield_height_limitation label" +msgid "Draft Shield Limitation" +msgstr "Ograniczenie Osłony" + +msgctxt "draft_shield_height_limitation option full" +msgid "Full" +msgstr "Pełna" + +msgctxt "draft_shield_height_limitation option limited" +msgid "Limited" +msgstr "Ograniczona" + +msgctxt "dual description" +msgid "Settings used for printing with multiple extruders." +msgstr "Ustawienia używane do drukowania wieloma głowicami." + +msgctxt "dual label" +msgid "Dual Extrusion" +msgstr "Podwójna ekstruzja" + +msgctxt "dual_pre_wipe description" +msgid "" +"After switching extruder, wipe the oozed material off of the nozzle on the " +"first thing printed. This performs a safe slow wipe move at a place where " +"the oozed material causes least harm to the surface quality of your print." +msgstr "" +"Po przełączeniu ekstrudera, wytrzyj materiał wyciekający z dyszy na pierwszą " +"drukowaną część. powoduje to bezpieczny, powolny ruch wycierania w miejscu " +"gdzie wyciekający materiał nie spowoduje dużej szkody dla powierzchni modelu." + +msgctxt "dual_pre_wipe label" +msgid "Wipe Nozzle After Switch" +msgstr "Wytrzyj Dyszę po Przełączeniu" + +msgctxt "expand_lower_skins description" +msgid "" +"Expand the bottom skin areas (areas with air below) so that they are " +"anchored by the infill layers above and below." +msgstr "" +"Rozszerz dolną powłokę (obszary, pod którym jest powietrze) tak, aby zostały " +"zakotwiczone o warstwy wypełniające powyżej i poniżej." + +msgctxt "expand_lower_skins label" +msgid "Expand Bottom Skins Into Infill" +msgstr "Rozszerz Dolną Powłokę Do Wypełn." + +msgctxt "expand_skins_expand_distance description" +msgid "" +"The distance the skins are expanded into the infill. The default distance is " +"enough to bridge the gap between the infill lines and will stop holes " +"appearing in the skin where it meets the wall when the infill density is " +"low. A smaller distance will often be sufficient." +msgstr "" +"Odległość na jaką powłoki zostają rozszerzone do wypełnienia. Domyślna " +"odległość wystarcza, aby pokonać szczelinę między liniami wypełnienia i nie " +"dopuścić do powstania dziur, gdzie spotyka się z powłoką, gdy gęstość " +"wypełnienia jest niska. Mniejsza odległość będzie często wystarczająca." + +msgctxt "expand_skins_expand_distance label" +msgid "Skin Expand Distance" +msgstr "Odległość Rozsz. Powłoki" + +msgctxt "expand_skins_into_infill description" +msgid "" +"Expand skin areas of top and/or bottom skin of flat surfaces. By default, " +"skins stop under the wall lines that surround infill but this can lead to " +"holes appearing when the infill density is low. This setting extends the " +"skins beyond the wall lines so that the infill on the next layer rests on " +"skin." +msgstr "" +"Rozszerz obszary powłoki na górze i/lub dole powierzchni płaskich. " +"Domyślnie, powłoka kończy się na linii ściany otaczające wypełnienie, " +"chociaż może to prowadzić do powstawania dziur kiedy gęstość wypełnienia " +"jest niska. Ustawienie to rozciąga powłokę poza linię ściany, dzięki czemu " +"wypełnienie na kolejnej warstwie osiada na powłoce." + +msgctxt "expand_skins_into_infill label" +msgid "Expand Skins Into Infill" +msgstr "Rozszerz Powłokę Do Wypełn." + +msgctxt "expand_upper_skins description" +msgid "" +"Expand the top skin areas (areas with air above) so that they support infill " +"above." +msgstr "" +"Rozszerz górne obszary ścian (obszary, które mają ponad sobą powietrze) tak, " +"aby wspomagały wypełnienie powyżej." + +msgctxt "expand_upper_skins label" +msgid "Expand Top Skins Into Infill" +msgstr "Rozszerz Górną Powłokę Do Wypełn." + +msgctxt "experimental description" +msgid "experimental!" +msgstr "eksperymentalne!" + +msgctxt "experimental label" +msgid "Experimental" +msgstr "Eksperymentalne" + +msgctxt "extruder_prime_pos_abs description" +msgid "" +"Make the extruder prime position absolute rather than relative to the last-" +"known location of the head." +msgstr "" +"Zmień pozycję końcową ekstrudera na bezwzględną, zamiast względem ostatniej " +"pozycji głowicy." + +msgctxt "extruder_prime_pos_abs label" +msgid "Absolute Extruder Prime Position" +msgstr "Bezwzgl. Końcowa Pozycja Ekstrudera" + +msgctxt "extruder_prime_pos_x description" +msgid "" +"The X coordinate of the position where the nozzle primes at the start of " +"printing." +msgstr "Współrzędna X, w której dysza jest czyszczona na początku wydruku." + +msgctxt "extruder_prime_pos_x label" +msgid "Extruder Prime X Position" +msgstr "Pozycja X Czyszczenia Dyszy" + +msgctxt "extruder_prime_pos_y description" +msgid "" +"The Y coordinate of the position where the nozzle primes at the start of " +"printing." +msgstr "Współrzędna Y, w której dysza jest czyszczona na początku wydruku." + +msgctxt "extruder_prime_pos_y label" +msgid "Extruder Prime Y Position" +msgstr "Pozycja Y Czyszczenia Dyszy" + +msgctxt "extruder_prime_pos_z description" +msgid "" +"The Z coordinate of the position where the nozzle primes at the start of " +"printing." +msgstr "Współrzędna Z, w której dysza jest czyszczona na początku wydruku." + +msgctxt "extruder_prime_pos_z label" +msgid "Extruder Prime Z Position" +msgstr "Pozycja Z Czyszczenia Dyszy" + +msgctxt "fill_perimeter_gaps description" +msgid "Fills the gaps between walls where no walls fit." +msgstr "Wypełnia szczeliny pomiędzy ściany gdzie żadna ściana nie pasuje." + +msgctxt "fill_perimeter_gaps label" +msgid "Fill Gaps Between Walls" +msgstr "Wypełnij Szczeliny Między Ścianami" + +msgctxt "fill_perimeter_gaps option everywhere" +msgid "Everywhere" +msgstr "Wszędzie" + +msgctxt "fill_perimeter_gaps option nowhere" +msgid "Nowhere" +msgstr "Nigdzie" + +msgctxt "gantry_height description" +msgid "" +"The height difference between the tip of the nozzle and the gantry system (X " +"and Y axes)." +msgstr "" +"Różnica wysokości między wierzchołkiem dyszy a suwnicą (gantry) (osie X i Y)." + +msgctxt "gantry_height label" +msgid "Gantry height" +msgstr "Wysokość Suwnicy (Gantry)" + +msgctxt "gradual_infill_step_height description" +msgid "" +"The height of infill of a given density before switching to half the density." +msgstr "" +"Wysokość wypełnienia o danej gęstości przed przejściem na połowę gęstości." + +msgctxt "gradual_infill_step_height label" +msgid "Gradual Infill Step Height" +msgstr "Wys. Stopnia Stopniowego Wypełn." + +msgctxt "gradual_infill_steps description" +msgid "" +"Number of times to reduce the infill density by half when getting further " +"below top surfaces. Areas which are closer to top surfaces get a higher " +"density, up to the Infill Density." +msgstr "" +"Liczba redukcji wypełnienia o połowę podczas drukowania poniżej górnych " +"powierzchni. Obszary, które są bliżej górnej powierzchni, mają większą " +"gęstość, aż do Gęstości Wypełnienia." + +msgctxt "gradual_infill_steps label" +msgid "Gradual Infill Steps" +msgstr "Stopnie Stopniowego Wypełn." + +msgctxt "infill description" +msgid "Infill" +msgstr "Wypełnienie" + +msgctxt "infill label" +msgid "Infill" +msgstr "Wypełnienie" + +msgctxt "infill_angles description" +msgid "" +"A list of integer line directions to use. Elements from the list are used " +"sequentially as the layers progress and when the end of the list is reached, " +"it starts at the beginning again. The list items are separated by commas and " +"the whole list is contained in square brackets. Default is an empty list " +"which means use the traditional default angles (45 and 135 degrees for the " +"lines and zig zag patterns and 45 degrees for all other patterns)." +msgstr "" +"Lista całkowitych kierunków linii do użycia. Elementy z listy są używane " +"kolejno w miarę postępu warstw, a kiedy kończy się lista, zaczyna się od " +"początku. Elementy listy są oddzielone przecinkami, a cała lista znajduje " +"się w nawiasach kwadratowych. Domyślnie lista jest pusta, co oznacza " +"tradycyjne domyślne kąty (45 i 135 stopni dla linii i wzorów zygzakowych i " +"45 stopni dla wszystkich pozostałych wzorów)." + +msgctxt "infill_angles label" +msgid "Infill Line Directions" +msgstr "Kierunek Linii Wypełn." + +msgctxt "infill_before_walls description" +msgid "" +"Print the infill before printing the walls. Printing the walls first may " +"lead to more accurate walls, but overhangs print worse. Printing the infill " +"first leads to sturdier walls, but the infill pattern might sometimes show " +"through the surface." +msgstr "" +"Wydrukuj wypełnienie przed wydrukowaniem ścian. Drukowanie ścian jako " +"pierwsze może prowadzić do bardziej dokładnych ścian, ale pogorszy zwisy. " +"Drukowanie wypełnienia najpierw prowadzi do mocniejszych ścian, ale wzór " +"wypełnienia może czasem być widoczny przez powierzchnię." + +msgctxt "infill_before_walls label" +msgid "Infill Before Walls" +msgstr "Wypełn. przed Ścianami" + +msgctxt "infill_hollow description" +msgid "" +"Remove all infill and make the inside of the object eligible for support." +msgstr "" +"Usuń całe wypełnienie i spowoduj, aby środek modelu był wybieralny dla " +"podpór." + +msgctxt "infill_hollow label" +msgid "Hollow Out Objects" +msgstr "Wydrąż Model" + +msgctxt "infill_line_distance description" +msgid "" +"Distance between the printed infill lines. This setting is calculated by the " +"infill density and the infill line width." +msgstr "" +"Odległość między drukowanymi liniami wypełnienia. To ustawienie jest " +"obliczane za pomocą gęstości wypełnienia i szerokość linii wypełnienia." + +msgctxt "infill_line_distance label" +msgid "Infill Line Distance" +msgstr "Odstęp Linii Wypełn." + +msgctxt "infill_line_width description" +msgid "Width of a single infill line." +msgstr "Szerokość pojedynczej linii wypełniania." + +msgctxt "infill_line_width label" +msgid "Infill Line Width" +msgstr "Szerokość Linii Wypełn." + +msgctxt "infill_mesh description" +msgid "" +"Use this mesh to modify the infill of other meshes with which it overlaps. " +"Replaces infill regions of other meshes with regions for this mesh. It's " +"suggested to only print one Wall and no Top/Bottom Skin for this mesh." +msgstr "" +"Użyj tej siatki, aby zmodyfikować wypełnienie innych siatek, z którymi się " +"pokrywa. Zastępuje obszary wypełnienia innych siatek obszarami dla tej " +"siatki. Proponuje się wydrukować tylko jedną ścianę bez górnej/dolnej " +"powłoki dla tej siatki." + +msgctxt "infill_mesh label" +msgid "Infill Mesh" +msgstr "Siatka Wypełn." + +msgctxt "infill_mesh_order description" +msgid "" +"Determines which infill mesh is inside the infill of another infill mesh. An " +"infill mesh with a higher order will modify the infill of infill meshes with " +"lower order and normal meshes." +msgstr "" +"Określa, która siatka wypełnienia znajduje się wewnątrz wypełnienia innej " +"siatki wypełnienia. Siatka wypełniająca o wyższym porządku modyfikuje " +"wypełnienie siatki wypełnień o niższym porządku i normalnych siatek." + +msgctxt "infill_mesh_order label" +msgid "Infill Mesh Order" +msgstr "Porządek Siatki Wypełn." + +msgctxt "infill_overlap description" +msgid "" +"The amount of overlap between the infill and the walls. A slight overlap " +"allows the walls to connect firmly to the infill." +msgstr "" +"Ilość nałożenia pomiędzy wypełnieniem a ścianami. Nieznaczne nałożenie " +"pozwala ściśle łączyć się z wypełnieniem." + +msgctxt "infill_overlap label" +msgid "Infill Overlap Percentage" +msgstr "Procent Nałożenia Wypełn." + +msgctxt "infill_overlap_mm description" +msgid "" +"The amount of overlap between the infill and the walls. A slight overlap " +"allows the walls to connect firmly to the infill." +msgstr "" +"Ilość nałożenia pomiędzy wypełnieniem a ścianami. Nieznaczne nałożenie " +"pozwala ściśle łączyć się z wypełnieniem." + +msgctxt "infill_overlap_mm label" +msgid "Infill Overlap" +msgstr "Nałożenie Wypełn." + +msgctxt "infill_pattern description" +msgid "" +"The pattern of the infill material of the print. The line and zig zag infill " +"swap direction on alternate layers, reducing material cost. The grid, " +"triangle, cubic, tetrahedral and concentric patterns are fully printed every " +"layer. Cubic and tetrahedral infill change with every layer to provide a " +"more equal distribution of strength over each direction." +msgstr "" +"Wzór materiału wypełniającego. Linia i zygzakowy wypełnienie zmienia " +"kierunek na przemiennych warstwach zmniejszając koszt materiału. Wzory " +"siatki, trójkątne, sześcienne, czworościenne i koncentryczne są w pełni " +"drukowane na każdej warstwie. Wypełnienie sześcienne i czworościenne zmienia " +"się co każdą warstwę, aby zapewnić równe rozłożenie siły w każdym kierunku." + +msgctxt "infill_pattern label" +msgid "Infill Pattern" +msgstr "Wzór Wypełn." + +msgctxt "infill_pattern option concentric" +msgid "Concentric" +msgstr "Koncentryczny" + +msgctxt "infill_pattern option concentric_3d" +msgid "Concentric 3D" +msgstr "Koncentryczny 3D" + +msgctxt "infill_pattern option cubic" +msgid "Cubic" +msgstr "Sześcienny" + +msgctxt "infill_pattern option cubicsubdiv" +msgid "Cubic Subdivision" +msgstr "Podział sześcienny" + +msgctxt "infill_pattern option grid" +msgid "Grid" +msgstr "Kratka" + +msgctxt "infill_pattern option lines" +msgid "Lines" +msgstr "Linie" + +msgctxt "infill_pattern option tetrahedral" +msgid "Tetrahedral" +msgstr "Czworościenny" + +msgctxt "infill_pattern option triangles" +msgid "Triangles" +msgstr "Trójkąty" + +msgctxt "infill_pattern option zigzag" +msgid "Zig Zag" +msgstr "Zygzak" + +msgctxt "infill_sparse_density description" +msgid "Adjusts the density of infill of the print." +msgstr "Dostosowuje gęstość wypełnienia wydruku" + +msgctxt "infill_sparse_density label" +msgid "Infill Density" +msgstr "Gęstość Wypełn." + +msgctxt "infill_sparse_thickness description" +msgid "" +"The thickness per layer of infill material. This value should always be a " +"multiple of the layer height and is otherwise rounded." +msgstr "" +"Grubość na warstwe materiału wypełniającego. Ta wartość powinna zawsze być " +"wielokrotnością wysokości warstwy i być zaokrąglana." + +msgctxt "infill_sparse_thickness label" +msgid "Infill Layer Thickness" +msgstr "Grubość Warstwy Wypełn." + +msgctxt "infill_wipe_dist description" +msgid "" +"Distance of a travel move inserted after every infill line, to make the " +"infill stick to the walls better. This option is similar to infill overlap, " +"but without extrusion and only on one end of the infill line." +msgstr "" +"Odległość ruchu jałowego pomiędzy każdą linią wypełnienia, aby lepiej " +"przymocować linię wypełnienia do ścian. Ta opcja jest podobna do nakładania " +"się wypełnienia, ale bez ekstruzji i tylko na jednym końcu linii wypełnienia." + +msgctxt "infill_wipe_dist label" +msgid "Infill Wipe Distance" +msgstr "Dług. Czyszczenia Wypełn." + +msgctxt "jerk_enabled description" +msgid "" +"Enables adjusting the jerk of print head when the velocity in the X or Y " +"axis changes. Increasing the jerk can reduce printing time at the cost of " +"print quality." +msgstr "" +"Umożliwia dostosowanie zwrywu głowicy w przypadku zmiany prędkości w osi X " +"lub Y. Zwiększenie zrywu może skrócić czas drukowania kosztem jakości druku." + +msgctxt "jerk_enabled label" +msgid "Enable Jerk Control" +msgstr "Włącz Kontrole Zrywu" + +msgctxt "jerk_infill description" +msgid "The maximum instantaneous velocity change with which infill is printed." +msgstr "" +"Maksymalna zmiana prędkości chwilowej, z którą jest drukowane wypełnienie." + +msgctxt "jerk_infill label" +msgid "Infill Jerk" +msgstr "Zryw Wypełnienie" + +msgctxt "jerk_layer_0 description" +msgid "The print maximum instantaneous velocity change for the initial layer." +msgstr "Maksymalna zmiana chwilowej prędkości dla pierwszej warstwy." + +msgctxt "jerk_layer_0 label" +msgid "Initial Layer Jerk" +msgstr "Zryw Pierwsz. Warstwa" + +msgctxt "jerk_prime_tower description" +msgid "" +"The maximum instantaneous velocity change with which the prime tower is " +"printed." +msgstr "" +"Maksymalna zmiana chwilowej prędkości z jaką drukowana jest wieża czyszcząca." + +msgctxt "jerk_prime_tower label" +msgid "Prime Tower Jerk" +msgstr "Zryw Wieży Czyszczącej" + +msgctxt "jerk_print description" +msgid "The maximum instantaneous velocity change of the print head." +msgstr "Maksymalna zmiana prędkości chwilowej głowicy drukującej." + +msgctxt "jerk_print label" +msgid "Print Jerk" +msgstr "Zryw Druku" + +msgctxt "jerk_print_layer_0 description" +msgid "" +"The maximum instantaneous velocity change during the printing of the initial " +"layer." +msgstr "" +"Maksymalna zmiana prędkości chwilowej podczas drukowania pierwszej warstwy." + +msgctxt "jerk_print_layer_0 label" +msgid "Initial Layer Print Jerk" +msgstr "Zryw Początk. Warstwy" + +msgctxt "jerk_skirt_brim description" +msgid "" +"The maximum instantaneous velocity change with which the skirt and brim are " +"printed." +msgstr "" +"Maksymalna zmiana prędkości chwilowej z jaką drukowane są obwódka i obrys." + +msgctxt "jerk_skirt_brim label" +msgid "Skirt/Brim Jerk" +msgstr "Zryw Obwódki/Obrysu" + +msgctxt "jerk_support description" +msgid "" +"The maximum instantaneous velocity change with which the support structure " +"is printed." +msgstr "Maksymalna zmiana prędkości chwilowej z jaką drukowane są podpory." + +msgctxt "jerk_support label" +msgid "Support Jerk" +msgstr "Zryw Podpory" + +msgctxt "jerk_support_bottom description" +msgid "" +"The maximum instantaneous velocity change with which the floors of support " +"are printed." +msgstr "" +"Maksymalna zmiana prędkości chwilowej z jaką drukowane są podłoża podpór." + +msgctxt "jerk_support_bottom label" +msgid "Support Floor Jerk" +msgstr "Zryw Podł. Podpór" + +msgctxt "jerk_support_infill description" +msgid "" +"The maximum instantaneous velocity change with which the infill of support " +"is printed." +msgstr "" +"Maksymalna zmiana prędkości chwilowej z jaką drukowane jest wypełnienie " +"podpory." + +msgctxt "jerk_support_infill label" +msgid "Support Infill Jerk" +msgstr "Zryw Wypełnienia Podpory" + +msgctxt "jerk_support_interface description" +msgid "" +"The maximum instantaneous velocity change with which the roofs and floors of " +"support are printed." +msgstr "" +"Maksymalna zmiana prędkości chwilowej z jaką drukowane są podłoża i dachy " +"podpory." + +msgctxt "jerk_support_interface label" +msgid "Support Interface Jerk" +msgstr "Zryw Połączenia Podpory" + +msgctxt "jerk_support_roof description" +msgid "" +"The maximum instantaneous velocity change with which the roofs of support " +"are printed." +msgstr "" +"Maksymalna zmiana prędkości chwilowej z jaką drukowane są dachy podpory." + +msgctxt "jerk_support_roof label" +msgid "Support Roof Jerk" +msgstr "Zryw Dachu Podpory" + +msgctxt "jerk_topbottom description" +msgid "" +"The maximum instantaneous velocity change with which top/bottom layers are " +"printed." +msgstr "" +"Maksymalna zmiana prędkości chwilowej z jaką drukowane są górne/dolne " +"warstwy." + +msgctxt "jerk_topbottom label" +msgid "Top/Bottom Jerk" +msgstr "Zryw Góra/Dół" + +msgctxt "jerk_travel description" +msgid "" +"The maximum instantaneous velocity change with which travel moves are made." +msgstr "" +"Maksymalna zmiana prędkości chwilowej z jaką wykonywane są ruchy jałowe." + +msgctxt "jerk_travel label" +msgid "Travel Jerk" +msgstr "Zryw Ruch Jałowy" + +msgctxt "jerk_travel_layer_0 description" +msgid "The acceleration for travel moves in the initial layer." +msgstr "Przyspieszenie dla ruchów jałowych na początkowej warstwie." + +msgctxt "jerk_travel_layer_0 label" +msgid "Initial Layer Travel Jerk" +msgstr "Zryw Początk. Wartswa" + +msgctxt "jerk_wall description" +msgid "" +"The maximum instantaneous velocity change with which the walls are printed." +msgstr "Maksymalna zmiana prędkości chwilowej z jaką drukowane są ściany." + +msgctxt "jerk_wall label" +msgid "Wall Jerk" +msgstr "Zryw Ściany" + +msgctxt "jerk_wall_0 description" +msgid "" +"The maximum instantaneous velocity change with which the outermost walls are " +"printed." +msgstr "" +"Maksymalna zmiana prędkości chwilowej z jaką drukowane są zewnętrzne ściany." + +msgctxt "jerk_wall_0 label" +msgid "Outer Wall Jerk" +msgstr "Zryw Zewn. Ścian" + +msgctxt "jerk_wall_x description" +msgid "" +"The maximum instantaneous velocity change with which all inner walls are " +"printed." +msgstr "" +"Maksymalna zmiana prędkości chwilowej z jaką drukowane są wewnętrzne ściany." + +msgctxt "jerk_wall_x label" +msgid "Inner Wall Jerk" +msgstr "Zryw Wewn. Ścian" + +msgctxt "layer_0_z_overlap description" +msgid "" +"Make the first and second layer of the model overlap in the Z direction to " +"compensate for the filament lost in the airgap. All models above the first " +"model layer will be shifted down by this amount." +msgstr "" +"Niech pierwsza i druga warstwa nachodzą na siebie w osi Z, aby skompensować " +"stratę filamentu w szczelinie powietrznej. Wszystkie modele powyżej " +"pierwszej warstwy modelu będą obniżone o tą wartość." + +msgctxt "layer_0_z_overlap label" +msgid "Initial Layer Z Overlap" +msgstr "Pokryw. się Pierwsz. Warstwy w Z" + +msgctxt "layer_height description" +msgid "" +"The height of each layer in mm. Higher values produce faster prints in lower " +"resolution, lower values produce slower prints in higher resolution." +msgstr "" +"Grubość każdej warstwy w mm. Wyższe wartości powodują szybszy wydruk w " +"niskiej rozdzielczości, niższe wartości powodują wolniejszy wydruk w wyższej " +"rozdzielczości." + +msgctxt "layer_height label" +msgid "Layer Height" +msgstr "Wysokość Warstwy" + +msgctxt "layer_height_0 description" +msgid "" +"The height of the initial layer in mm. A thicker initial layer makes " +"adhesion to the build plate easier." +msgstr "" +"Wysokość początkowej warstwy w mm. Grubsza początkowa warstwa powoduje " +"lepszą przyczepność do stołu." + +msgctxt "layer_height_0 label" +msgid "Initial Layer Height" +msgstr "Wys. Początkowej Warstwy" + +msgctxt "layer_start_x description" +msgid "" +"The X coordinate of the position near where to find the part to start " +"printing each layer." +msgstr "" +"Współrzędna X pozycji blisko miejsca gdzie ma rozpoczynać się drukowanie " +"każdej warstwy." + +msgctxt "layer_start_x label" +msgid "Layer Start X" +msgstr "Początek Warstwy X" + +msgctxt "layer_start_y description" +msgid "" +"The Y coordinate of the position near where to find the part to start " +"printing each layer." +msgstr "" +"Współrzędna Y pozycji blisko miejsca gdzie ma rozpoczynać się drukowanie " +"każdej warstwy." + +msgctxt "layer_start_y label" +msgid "Layer Start Y" +msgstr "Początek Warstwy Y" + +msgctxt "line_width description" +msgid "" +"Width of a single line. Generally, the width of each line should correspond " +"to the width of the nozzle. However, slightly reducing this value could " +"produce better prints." +msgstr "" +"Szerokość jednej linii. Ogólnie, szerokość powinna być taka sama jak " +"średnica dyszy. Jednak nieznaczne zmniejszenie tej wartości może prowadzić " +"do lepszych wydruków." + +msgctxt "line_width label" +msgid "Line Width" +msgstr "Szerokość Linii" + +msgctxt "machine_acceleration description" +msgid "The default acceleration of print head movement." +msgstr "Domyślną przyspieszenie ruchu głowicy." + +msgctxt "machine_acceleration label" +msgid "Default Acceleration" +msgstr "Domyślne Przyspieszenie" + +msgctxt "machine_center_is_zero description" +msgid "" +"Whether the X/Y coordinates of the zero position of the printer is at the " +"center of the printable area." +msgstr "Określa, czy współrzędne zero X/Y znajdują się na środku pola wydruku." + +msgctxt "machine_center_is_zero label" +msgid "Is center origin" +msgstr "Począt. na Środku" + +msgctxt "machine_depth description" +msgid "The depth (Y-direction) of the printable area." +msgstr "Głębokość (w kierunku Y) obszaru drukowania." + +msgctxt "machine_depth label" +msgid "Machine depth" +msgstr "Głębokość Drukarki" + +msgctxt "machine_disallowed_areas description" +msgid "A list of polygons with areas the print head is not allowed to enter." +msgstr "Lista obszarów, we których głowica nie może się poruszać." + +msgctxt "machine_disallowed_areas label" +msgid "Disallowed areas" +msgstr "Zakazane obszary" + +msgctxt "machine_end_gcode description" +msgid "" +"Gcode commands to be executed at the very end - separated by \n" +"." +msgstr "" +"Polecenia G-code, które są wykonywane na samym końcu - oddzielone za " +"pomocą \n" +"." + +msgctxt "machine_end_gcode label" +msgid "End GCode" +msgstr "Końcowy G-code" + +msgctxt "machine_extruder_count description" +msgid "" +"Number of extruder trains. An extruder train is the combination of a feeder, " +"bowden tube, and nozzle." +msgstr "" +"Liczba wózków esktruderów. Wózek ekstrudera to kombinacja podajnika, rurki " +"Bowden i dyszy." + +msgctxt "machine_extruder_count label" +msgid "Number of Extruders" +msgstr "Liczba Ekstruderów" + +msgctxt "machine_filament_park_distance description" +msgid "" +"The distance from the tip of the nozzle where to park the filament when an " +"extruder is no longer used." +msgstr "" +"Odległość od końcówki dyszy, gdzie parkować głowicę gdy nie jest używana." + +msgctxt "machine_filament_park_distance label" +msgid "Filament Park Distance" +msgstr "Odległość Park. Filamentu" + +msgctxt "machine_gcode_flavor description" +msgid "The type of gcode to be generated." +msgstr "Typ G-code jaki ma być generowany." + +msgctxt "machine_gcode_flavor label" +msgid "Gcode flavour" +msgstr "Wersja G-code" + +msgctxt "machine_gcode_flavor option BFB" +msgid "Bits from Bytes" +msgstr "Bits from Bytes" + +msgctxt "machine_gcode_flavor option Griffin" +msgid "Griffin" +msgstr "Griffin" + +msgctxt "machine_gcode_flavor option MACH3" +msgid "Mach3" +msgstr "Mach3" + +msgctxt "machine_gcode_flavor option Makerbot" +msgid "Makerbot" +msgstr "Makerbot" + +msgctxt "machine_gcode_flavor option RepRap (Marlin/Sprinter)" +msgid "RepRap (Marlin/Sprinter)" +msgstr "RepRap (Marlin/Sprinter)" + +msgctxt "machine_gcode_flavor option RepRap (Volumatric)" +msgid "RepRap (Volumetric)" +msgstr "RepRap (Objętościowy)" + +msgctxt "machine_gcode_flavor option Repetier" +msgid "Repetier" +msgstr "Repetier" + +msgctxt "machine_gcode_flavor option UltiGCode" +msgid "Ultimaker 2" +msgstr "Ultimaker 2" + +msgctxt "machine_head_polygon description" +msgid "A 2D silhouette of the print head (fan caps excluded)." +msgstr "Sylwetka 2D głowicy drukującej (bez nasadki wentylatora)." + +msgctxt "machine_head_polygon label" +msgid "Machine head polygon" +msgstr "Obszar Głowicy Drukarki" + +msgctxt "machine_head_with_fans_polygon description" +msgid "A 2D silhouette of the print head (fan caps included)." +msgstr "Sylwetka 2D głowicy drukującej (z nasadką wentylatora)." + +msgctxt "machine_head_with_fans_polygon label" +msgid "Machine head & Fan polygon" +msgstr "Obszar Głowicy i Wentylatora Drukarki" + +msgctxt "machine_heat_zone_length description" +msgid "" +"The distance from the tip of the nozzle in which heat from the nozzle is " +"transferred to the filament." +msgstr "" +"Odległość od końcówki dyszy, z której ciepło dyszy przenoszone jest do " +"filamentu." + +msgctxt "machine_heat_zone_length label" +msgid "Heat zone length" +msgstr "Długość strefy cieplnej" + +msgctxt "machine_heated_bed description" +msgid "Whether the machine has a heated build plate present." +msgstr "Czy maszyna ma podgrzewany stół?" + +msgctxt "machine_heated_bed label" +msgid "Has heated build plate" +msgstr "Posiada podgrzewany stół" + +msgctxt "machine_height description" +msgid "The height (Z-direction) of the printable area." +msgstr "Wysokość (w kierunku Z) obszaru drukowania." + +msgctxt "machine_height label" +msgid "Machine height" +msgstr "Wysokość drukarki" + +msgctxt "machine_max_acceleration_e description" +msgid "Maximum acceleration for the motor of the filament." +msgstr "Maksymalne przyspieszenie dla silnika filamentu." + +msgctxt "machine_max_acceleration_e label" +msgid "Maximum Filament Acceleration" +msgstr "Maksymalna Przysp. Filamentu" + +msgctxt "machine_max_acceleration_x description" +msgid "Maximum acceleration for the motor of the X-direction" +msgstr "Maksymalne przyspieszenie dla silnika osi X" + +msgctxt "machine_max_acceleration_x label" +msgid "Maximum Acceleration X" +msgstr "Maksymalne Przyspieszenie X" + +msgctxt "machine_max_acceleration_y description" +msgid "Maximum acceleration for the motor of the Y-direction." +msgstr "Maksymalne przyspieszenie dla silnika osi Y." + +msgctxt "machine_max_acceleration_y label" +msgid "Maximum Acceleration Y" +msgstr "Maksymalne Przyspieszenie Y" + +msgctxt "machine_max_acceleration_z description" +msgid "Maximum acceleration for the motor of the Z-direction." +msgstr "Maksymalne przyspieszenie dla silnika osi Z." + +msgctxt "machine_max_acceleration_z label" +msgid "Maximum Acceleration Z" +msgstr "Maksymalnie Przyspieszenie Z" + +msgctxt "machine_max_feedrate_e description" +msgid "The maximum speed of the filament." +msgstr "Maksymalna prędkość filamentu." + +msgctxt "machine_max_feedrate_e label" +msgid "Maximum Feedrate" +msgstr "Maksymalna Prędk. Posuwu" + +msgctxt "machine_max_feedrate_x description" +msgid "The maximum speed for the motor of the X-direction." +msgstr "Maksymalna prędkość silnika osi X." + +msgctxt "machine_max_feedrate_x label" +msgid "Maximum Speed X" +msgstr "Maksymalna Prędkość X" + +msgctxt "machine_max_feedrate_y description" +msgid "The maximum speed for the motor of the Y-direction." +msgstr "Maksymalna prędkość silnika osi Y." + +msgctxt "machine_max_feedrate_y label" +msgid "Maximum Speed Y" +msgstr "Maksymalna Prędkość Y" + +msgctxt "machine_max_feedrate_z description" +msgid "The maximum speed for the motor of the Z-direction." +msgstr "Maksymalna prędkość silnika osi Z." + +msgctxt "machine_max_feedrate_z label" +msgid "Maximum Speed Z" +msgstr "Maksymalna Prędkość Z" + +msgctxt "machine_max_jerk_e description" +msgid "Default jerk for the motor of the filament." +msgstr "Domyślny zryw dla silnika filamentu." + +msgctxt "machine_max_jerk_e label" +msgid "Default Filament Jerk" +msgstr "Domyślny Zryw Filamentu" + +msgctxt "machine_max_jerk_xy description" +msgid "Default jerk for movement in the horizontal plane." +msgstr "Domyślny zryw dla ruchu w płaszczyźnie poziomej." + +msgctxt "machine_max_jerk_xy label" +msgid "Default X-Y Jerk" +msgstr "Domyślny Zryw X-Y" + +msgctxt "machine_max_jerk_z description" +msgid "Default jerk for the motor of the Z-direction." +msgstr "Domyślny zryw do silnika osi Z." + +msgctxt "machine_max_jerk_z label" +msgid "Default Z Jerk" +msgstr "Domyślny Zryw Z" + +msgctxt "machine_min_cool_heat_time_window description" +msgid "" +"The minimal time an extruder has to be inactive before the nozzle is cooled. " +"Only when an extruder is not used for longer than this time will it be " +"allowed to cool down to the standby temperature." +msgstr "" +"Minimalny czas, w jakim ekstruder musi być nieużywany, aby schłodzić dyszę. " +"Dopiero, gdy ekstruder nie jest używany dłużej niż przez ten czas, będzie " +"można schłodzić dyszę do temp. czuwania." + +msgctxt "machine_min_cool_heat_time_window label" +msgid "Minimal Time Standby Temperature" +msgstr "Minimalny Czas Temp. Czuwania" + +msgctxt "machine_minimum_feedrate description" +msgid "The minimal movement speed of the print head." +msgstr "Minimalna prędkość ruchu głowicy drukującej." + +msgctxt "machine_minimum_feedrate label" +msgid "Minimum Feedrate" +msgstr "Minimalna Prędk. Posuwu" + +msgctxt "machine_name description" +msgid "The name of your 3D printer model." +msgstr "Nazwa modelu twojej drukarki." + +msgctxt "machine_name label" +msgid "Machine Type" +msgstr "Typ drukarki" + +msgctxt "machine_nozzle_cool_down_speed description" +msgid "" +"The speed (°C/s) by which the nozzle cools down averaged over the window of " +"normal printing temperatures and the standby temperature." +msgstr "" +"Szybkość (° C/s.), z którą dysza chłodzi się - średnia z normlanej " +"temperatury druku i temperatury czuwania." + +msgctxt "machine_nozzle_cool_down_speed label" +msgid "Cool down speed" +msgstr "Prędkość Chłodzenia" + +msgctxt "machine_nozzle_expansion_angle description" +msgid "" +"The angle between the horizontal plane and the conical part right above the " +"tip of the nozzle." +msgstr "" +"Kąt pomiędzy poziomą powierzchnią a częścią stożkową bezpośrednio ponad " +"dyszą." + +msgctxt "machine_nozzle_expansion_angle label" +msgid "Nozzle angle" +msgstr "Kąt dyszy" + +msgctxt "machine_nozzle_head_distance description" +msgid "" +"The height difference between the tip of the nozzle and the lowest part of " +"the print head." +msgstr "" +"Różnica w wysokości pomiędzy końcówką dyszy a najniższą częścą głowicy " +"drukującej." + +msgctxt "machine_nozzle_head_distance label" +msgid "Nozzle length" +msgstr "Długość dyszy" + +msgctxt "machine_nozzle_heat_up_speed description" +msgid "" +"The speed (°C/s) by which the nozzle heats up averaged over the window of " +"normal printing temperatures and the standby temperature." +msgstr "" +"Szybkość (° C/s.), z którą dysza ogrzewa się - średnia z normlanej " +"temperatury druku i temperatury czuwania." + +msgctxt "machine_nozzle_heat_up_speed label" +msgid "Heat up speed" +msgstr "Prędkość nagrzewania" + +msgctxt "machine_nozzle_size description" +msgid "" +"The inner diameter of the nozzle. Change this setting when using a non-" +"standard nozzle size." +msgstr "" +"Wewnętrzna średnica dyszy. Użyj tego ustawienia, jeśli używasz dyszę o " +"niestandardowym rozmiarze." + +msgctxt "machine_nozzle_size label" +msgid "Nozzle Diameter" +msgstr "Średnica dyszy" + +msgctxt "machine_nozzle_temp_enabled description" +msgid "" +"Whether to control temperature from Cura. Turn this off to control nozzle " +"temperature from outside of Cura." +msgstr "" +"Czy kontrolować temperaturę przez Cura? Wyłącz tę funkcję, aby kontrolować " +"temperaturę dyszy poza Cura." + +msgctxt "machine_nozzle_temp_enabled label" +msgid "Enable Nozzle Temperature Control" +msgstr "Włącz Kontrolę Temp. Dyszy" + +msgctxt "machine_nozzle_tip_outer_diameter description" +msgid "The outer diameter of the tip of the nozzle." +msgstr "Zewnętrzna średnica końcówki dyszy." + +msgctxt "machine_nozzle_tip_outer_diameter label" +msgid "Outer nozzle diameter" +msgstr "Zewn. średnica dyszy" + +msgctxt "machine_settings description" +msgid "Machine specific settings" +msgstr "Specyficzne ustawienia drukarki" + +msgctxt "machine_settings label" +msgid "Machine" +msgstr "Drukarka" + +msgctxt "machine_shape description" +msgid "" +"The shape of the build plate without taking unprintable areas into account." +msgstr "Kształt stołu bez uwzględniania obszarów niedrukowalnych." + +msgctxt "machine_shape label" +msgid "Build plate shape" +msgstr "Kształt stołu" + +msgctxt "machine_shape option elliptic" +msgid "Elliptic" +msgstr "Eliptyczny" + +msgctxt "machine_shape option rectangular" +msgid "Rectangular" +msgstr "Prostokątny" + +msgctxt "machine_show_variants description" +msgid "" +"Whether to show the different variants of this machine, which are described " +"in separate json files." +msgstr "" +"Czy wyświetlać różna warianty drukarki, które są opisane w oddzielnych " +"plikach JSON?" + +msgctxt "machine_show_variants label" +msgid "Show machine variants" +msgstr "Pokaż warianty drukarki" + +msgctxt "machine_start_gcode description" +msgid "" +"Gcode commands to be executed at the very start - separated by \n" +"." +msgstr "" +"Polecenia G-code, które są wykonywane na samym początku - oddzielone za pomocą \n" +"." + +msgctxt "machine_start_gcode label" +msgid "Start GCode" +msgstr "Początk. G-code" + +msgctxt "machine_use_extruder_offset_to_offset_coords description" +msgid "Apply the extruder offset to the coordinate system." +msgstr "Zastosuj przesunięcie głowicy względem." + +msgctxt "machine_use_extruder_offset_to_offset_coords label" +msgid "Offset With Extruder" +msgstr "Przesunięcie Ekstrudera" + +msgctxt "machine_width description" +msgid "The width (X-direction) of the printable area." +msgstr "Szerokość (w kierunku X) obszaru roboczego." + +msgctxt "machine_width label" +msgid "Machine width" +msgstr "Szerokość drukarki" + +msgctxt "magic_fuzzy_skin_enabled description" +msgid "" +"Randomly jitter while printing the outer wall, so that the surface has a " +"rough and fuzzy look." +msgstr "" +"Losowe drgania podczas drukowania zewnętrznej ściany, dzięki czemu " +"powierzchnia ma szorstki i rozmyty wygląd." + +msgctxt "magic_fuzzy_skin_enabled label" +msgid "Fuzzy Skin" +msgstr "Nierówna Skóra" + +msgctxt "magic_fuzzy_skin_point_density description" +msgid "" +"The average density of points introduced on each polygon in a layer. Note " +"that the original points of the polygon are discarded, so a low density " +"results in a reduction of the resolution." +msgstr "" +"Średnia gęstość punktów wprowadzonych na każdy wielokąt na warstwie. Zauważ, " +"że oryginalne punkty wielokąta są odrzucane, a więc niska gęstość powoduje " +"zmniejszenie rozdzielczości." + +msgctxt "magic_fuzzy_skin_point_density label" +msgid "Fuzzy Skin Density" +msgstr "Gęstość Nierównej Skóry" + +msgctxt "magic_fuzzy_skin_point_dist description" +msgid "" +"The average distance between the random points introduced on each line " +"segment. Note that the original points of the polygon are discarded, so a " +"high smoothness results in a reduction of the resolution. This value must be " +"higher than half the Fuzzy Skin Thickness." +msgstr "" +"Średnia odległość między losowymi punktami wprowadzonymi w każdym segmencie " +"linii. Zwróć uwagę, że oryginalne punkty wielokąta są odrzucane, a zatem " +"duża gładkość powoduje zmniejszenie rozdzielczości. Wartość ta musi być " +"większa niż połowa Grubości Nierównej Skóry." + +msgctxt "magic_fuzzy_skin_point_dist label" +msgid "Fuzzy Skin Point Distance" +msgstr "Odległ. między Punkt. Nierównej Skóry" + +msgctxt "magic_fuzzy_skin_thickness description" +msgid "" +"The width within which to jitter. It's advised to keep this below the outer " +"wall width, since the inner walls are unaltered." +msgstr "" +"Szerokość, w której będą wykonywane drgania. Zaleca się zachować ją poniżej " +"zewnętrznej szerokości ścianki, ponieważ wewnętrzne ściany nie ulegają " +"zmianie." + +msgctxt "magic_fuzzy_skin_thickness label" +msgid "Fuzzy Skin Thickness" +msgstr "Grubości Nierównej Skóry" + +msgctxt "magic_mesh_surface_mode description" +msgid "" +"Treat the model as a surface only, a volume, or volumes with loose surfaces. " +"The normal print mode only prints enclosed volumes. \"Surface\" prints a " +"single wall tracing the mesh surface with no infill and no top/bottom skin. " +"\"Both\" prints enclosed volumes like normal and any remaining polygons as " +"surfaces." +msgstr "" +"Traktuj model tylko jako powierzchnię, bryłę lub bryłę z luźnymi " +"powierzchniami. Zwykły tryb drukowania drukuje tylko zamknięte bryły. " +"\"Powierzchnia\" drukuje pojedynczą ścianę śledząc powierzchnię siatki bez " +"wypełnienia i bez górnej/dolnej skóry. \"Oba\" drukuje zamknięte bryły takie " +"jak zwykłe i wszelkie pozostałe wielokąty jako powierzchnie." + +msgctxt "magic_mesh_surface_mode label" +msgid "Surface Mode" +msgstr "Tryb Powierzchni" + +msgctxt "magic_mesh_surface_mode option both" +msgid "Both" +msgstr "Oba" + +msgctxt "magic_mesh_surface_mode option normal" +msgid "Normal" +msgstr "Normalny" + +msgctxt "magic_mesh_surface_mode option surface" +msgid "Surface" +msgstr "Powierzchnia" + +msgctxt "magic_spiralize description" +msgid "" +"Spiralize smooths out the Z move of the outer edge. This will create a " +"steady Z increase over the whole print. This feature turns a solid model " +"into a single walled print with a solid bottom. This feature should only be " +"enabled when each layer only contains a single part." +msgstr "" +"Spirala wygładzająca ruch w Z na zewnętrznej krawędzi. Powoduje to stały " +"wzrost Z w całym druku. Ta funkcja zamienia pełny model w pojedynczo ścienny " +"wydruk z pełnym dnem. Ta funkcja powinna być włączona tylko wtedy, gdy każda " +"warstwa zawiera tylko jedną część." + +msgctxt "magic_spiralize label" +msgid "Spiralize Outer Contour" +msgstr "Spiralizuj Zewn. Kontur" + +msgctxt "material description" +msgid "Material" +msgstr "Materiał" + +msgctxt "material label" +msgid "Material" +msgstr "Materiał" + +msgctxt "material_bed_temp_prepend description" +msgid "" +"Whether to include build plate temperature commands at the start of the " +"gcode. When the start_gcode already contains build plate temperature " +"commands Cura frontend will automatically disable this setting." +msgstr "" +"Możliwość wstawienia poleceń temperatury stołu na początku G-code. Jeśli " +"start_gcode zawiera już polecenia dla temperatury stołu, program Cura " +"wyłącza to ustawienie automatycznie." + +msgctxt "material_bed_temp_prepend label" +msgid "Include build plate temperature" +msgstr "Należy uwzględnić temperaturę stołu" + +msgctxt "material_bed_temp_wait description" +msgid "" +"Whether to insert a command to wait until the build plate temperature is " +"reached at the start." +msgstr "" +"Czy wstawić na początku komendę, czekającą aż temperatura stołu zostanie " +"osiągnięta." + +msgctxt "material_bed_temp_wait label" +msgid "Wait for build plate heatup" +msgstr "Oczekiwanie na ogrzanie stołu" + +msgctxt "material_bed_temperature description" +msgid "" +"The temperature used for the heated build plate. If this is 0, the bed will " +"not heat up for this print." +msgstr "" +"Temperatura stosowana przy podgrzewanym stole. Jeśli jest to 0, stół nie " +"rozgrzeje się dla tego wydruku." + +msgctxt "material_bed_temperature label" +msgid "Build Plate Temperature" +msgstr "Temperatura Stołu" + +msgctxt "material_bed_temperature_layer_0 description" +msgid "The temperature used for the heated build plate at the first layer." +msgstr "Temperatura stosowana przy podgrzewanym stole na pierwszej warstwie." + +msgctxt "material_bed_temperature_layer_0 label" +msgid "Build Plate Temperature Initial Layer" +msgstr "Temp. Stołu na Pierw. Warstwie" + +msgctxt "material_diameter description" +msgid "" +"Adjusts the diameter of the filament used. Match this value with the " +"diameter of the used filament." +msgstr "" +"Dostosowuje średnicę stosowanego filamentu. Dopasuj tę wartość do średnicy " +"stosowanego filamentu." + +msgctxt "material_diameter label" +msgid "Diameter" +msgstr "Średnica" + +msgctxt "material_extrusion_cool_down_speed description" +msgid "" +"The extra speed by which the nozzle cools while extruding. The same value is " +"used to signify the heat up speed lost when heating up while extruding." +msgstr "" +"Dodatkowa szybkość, w wyniku której dysze chłodzą się podczas ekstruzji. Ta " +"sama wartość jest używana do oznaczania szybkości utraty ciepła podczas " +"nagrzewania w czasie ekstruzji." + +msgctxt "material_extrusion_cool_down_speed label" +msgid "Extrusion Cool Down Speed Modifier" +msgstr "Współczynnik chłodz. podczas Ekstruzji" + +msgctxt "material_final_print_temperature description" +msgid "" +"The temperature to which to already start cooling down just before the end " +"of printing." +msgstr "" +"Temperatura, od której zaczyna się chłodzenie tuż przed końcem drukowania." + +msgctxt "material_final_print_temperature label" +msgid "Final Printing Temperature" +msgstr "Końcowa Temp. Druku" + +msgctxt "material_flow description" +msgid "" +"Flow compensation: the amount of material extruded is multiplied by this " +"value." +msgstr "" +"Kompensacja przepływu: ilość ekstrudowanego materiału jest mnożona przez tę " +"wartość." + +msgctxt "material_flow label" +msgid "Flow" +msgstr "Przepływ" + +msgctxt "material_flow_dependent_temperature description" +msgid "" +"Change the temperature for each layer automatically with the average flow " +"speed of that layer." +msgstr "" +"Zmień temperaturę każdej warstwy automatycznie przy średniej prędkości " +"przepływu tej warstwy." + +msgctxt "material_flow_dependent_temperature label" +msgid "Auto Temperature" +msgstr "Auto Temperatura" + +msgctxt "material_flow_temp_graph description" +msgid "" +"Data linking material flow (in mm3 per second) to temperature (degrees " +"Celsius)." +msgstr "" +"Dane łączące przepływ materiału (w mm3 na sekundę) z temperaturą (stopnie " +"Celsjusza)." + +msgctxt "material_flow_temp_graph label" +msgid "Flow Temperature Graph" +msgstr "Wykres Temp. Przepływu" + +msgctxt "material_guid description" +msgid "GUID of the material. This is set automatically. " +msgstr "GUID materiału. To jest ustawiana automatycznie " + +msgctxt "material_guid label" +msgid "Material GUID" +msgstr "GUID Materiału" + +msgctxt "material_initial_print_temperature description" +msgid "" +"The minimal temperature while heating up to the Printing Temperature at " +"which printing can already start." +msgstr "" +"Minimalna temperatura podczas podgrzewania do temperatury drukowania, przy " +"której można rozpocząć drukowanie." + +msgctxt "material_initial_print_temperature label" +msgid "Initial Printing Temperature" +msgstr "Początkowa Temp. Druku" + +msgctxt "material_print_temp_prepend description" +msgid "" +"Whether to include nozzle temperature commands at the start of the gcode. " +"When the start_gcode already contains nozzle temperature commands Cura " +"frontend will automatically disable this setting." +msgstr "" +"Możliwość wstawienia polecenia temperatury dyszy na początku G-code. Jeżeli " +"start_gcode już zawiera polecenia temperatury dyszy, program Cura wyłączy " +"tego ustawienie automatycznie." + +msgctxt "material_print_temp_prepend label" +msgid "Include material temperatures" +msgstr "Uwzględnij temperaturę materiału" + +msgctxt "material_print_temp_wait description" +msgid "Whether to wait until the nozzle temperature is reached at the start." +msgstr "Poczekaj, aż temperatura dyszy zostanie osiągnięta na początku." + +msgctxt "material_print_temp_wait label" +msgid "Wait for nozzle heatup" +msgstr "Oczekiwanie na ogrzanie dyszy" + +msgctxt "material_print_temperature description" +msgid "The temperature used for printing." +msgstr "Temperatura stosowana do drukowania." + +msgctxt "material_print_temperature label" +msgid "Printing Temperature" +msgstr "Temperatura Druku" + +msgctxt "material_print_temperature_layer_0 description" +msgid "" +"The temperature used for printing the first layer. Set at 0 to disable " +"special handling of the initial layer." +msgstr "" +"Temperatura stosowana do drukowania pierwszej warstwy. Ustaw wartość 0, aby " +"wyłączyć szczególną obsługę początkowej warstwy." + +msgctxt "material_print_temperature_layer_0 label" +msgid "Printing Temperature Initial Layer" +msgstr "Temp. Druku Początk. Warstwy" + +msgctxt "material_standby_temperature description" +msgid "" +"The temperature of the nozzle when another nozzle is currently used for " +"printing." +msgstr "Temperatura dyszy, gdy inne dysze są obecnie używane do drukowania." + +msgctxt "material_standby_temperature label" +msgid "Standby Temperature" +msgstr "Temperatura Czuwania" + +msgctxt "max_feedrate_z_override description" +msgid "" +"The maximum speed with which the build plate is moved. Setting this to zero " +"causes the print to use the firmware defaults for the maximum z speed." +msgstr "" +"Maksymalna prędkość przesuwu stołu. Ustawienie na zero powoduje, że druk " +"używa domyślnych ustawień oprogramowania dla maksymalnej prędkości z." + +msgctxt "max_feedrate_z_override label" +msgid "Maximum Z Speed" +msgstr "Maksymalna Prędk. Z" + +msgctxt "max_skin_angle_for_expansion description" +msgid "" +"Top and/or bottom surfaces of your object with an angle larger than this " +"setting, won't have their top/bottom skin expanded. This avoids expanding " +"the narrow skin areas that are created when the model surface has a near " +"vertical slope. An angle of 0° is horizontal, while an angle of 90° is " +"vertical." +msgstr "" +"Górne i/lub dolne powierzchnie przedmiotu o kącie większym niż to ustawienie " +"nie będą miały rozszerzonego górnej/dolnej skóry. Pozwala to uniknąć " +"powiększania wąskich ścian, które powstają, gdy powierzchnia modelu ma " +"blisko pionowe nachylenie. Kąt 0 ° jest poziomy, a kąt 90 ° jest pionowy." + +msgctxt "max_skin_angle_for_expansion label" +msgid "Maximum Skin Angle for Expansion" +msgstr "Maks. Kąt Rozciągania Ścian" + +msgctxt "mesh_position_x description" +msgid "Offset applied to the object in the x direction." +msgstr "Przesunięcie zastosowane dla obiektu w kierunku X." + +msgctxt "mesh_position_x label" +msgid "Mesh position x" +msgstr "Pozycja siatki X" + +msgctxt "mesh_position_y description" +msgid "Offset applied to the object in the y direction." +msgstr "Przesunięcie zastosowane dla obiektu w kierunku Y." + +msgctxt "mesh_position_y label" +msgid "Mesh position y" +msgstr "Pozycja siatki Y" + +msgctxt "mesh_position_z description" +msgid "" +"Offset applied to the object in the z direction. With this you can perform " +"what was used to be called 'Object Sink'." +msgstr "" +"Przesunięcie zastosowane dla obiektu w kierunku Z. Za pomocą tego możesz " +"sprecyzować co nazywamy 'Zatopieniem Obiektu." + +msgctxt "mesh_position_z label" +msgid "Mesh position z" +msgstr "Pozycja siatki Z" + +msgctxt "mesh_rotation_matrix description" +msgid "" +"Transformation matrix to be applied to the model when loading it from file." +msgstr "" +"Forma przesunięcia, która ma być zastosowana do modelu podczas ładowania z " +"pliku." + +msgctxt "mesh_rotation_matrix label" +msgid "Mesh Rotation Matrix" +msgstr "Forma Obrotu Siatki" + +msgctxt "meshfix description" +msgid "category_fixes" +msgstr "poprawki_kategorii" + +msgctxt "meshfix label" +msgid "Mesh Fixes" +msgstr "Poprawki Siatki" + +msgctxt "meshfix_extensive_stitching description" +msgid "" +"Extensive stitching tries to stitch up open holes in the mesh by closing the " +"hole with touching polygons. This option can introduce a lot of processing " +"time." +msgstr "" +"Szerokie szwy próbują zszywać otwarte otwory w siatce przez zamknięcie " +"otworów stykającymi się wielokątami. Ta opcja może znacznie wydłużyć czas " +"przetwarzania." + +msgctxt "meshfix_extensive_stitching label" +msgid "Extensive Stitching" +msgstr "Poszerzające Zszywanie" + +msgctxt "meshfix_keep_open_polygons description" +msgid "" +"Normally Cura tries to stitch up small holes in the mesh and remove parts of " +"a layer with big holes. Enabling this option keeps those parts which cannot " +"be stitched. This option should be used as a last resort option when " +"everything else fails to produce proper GCode." +msgstr "" +"Zwykle Cura próbuje zszywać małe dziury w siatce i usunąć części warstwy z " +"dużymi otworami. Włączenie tej opcji powoduje zostawienie tych części, " +"których nie można zszywać. Ta opcja powinna być używana jako ostatnia deska " +"ratunku, gdy wszystko inne nie dostarczy właściwego G-code." + +msgctxt "meshfix_keep_open_polygons label" +msgid "Keep Disconnected Faces" +msgstr "Zachowaj Rozłączone Pow." + +msgctxt "meshfix_union_all description" +msgid "" +"Ignore the internal geometry arising from overlapping volumes within a mesh " +"and print the volumes as one. This may cause unintended internal cavities to " +"disappear." +msgstr "" +"Zignoruj geometrię wewnętrzną wynikającą z nakładania się brył w siatce i " +"wydrukuj ją jako jedną. Może to spowodować zniknięcie niezamierzonych " +"wewnętrznych ubytków." + +msgctxt "meshfix_union_all label" +msgid "Union Overlapping Volumes" +msgstr "Nakładanie się Związanych Brył" + +msgctxt "meshfix_union_all_remove_holes description" +msgid "" +"Remove the holes in each layer and keep only the outside shape. This will " +"ignore any invisible internal geometry. However, it also ignores layer holes " +"which can be viewed from above or below." +msgstr "" +"Usuń otwory w każdej warstwie i zachowuj tylko zewnętrzny kształt. Zignoruje " +"to niewidoczną wewnętrzną geometrię. Ignoruje jednak otwory warstw, które " +"można zobaczyć z góry lub do dołu." + +msgctxt "meshfix_union_all_remove_holes label" +msgid "Remove All Holes" +msgstr "Usuń Wszystkie Otwory" + +msgctxt "min_infill_area description" +msgid "Don't generate areas of infill smaller than this (use skin instead)." +msgstr "" +"Nie generuj obszarów wypełnienia mniejszych niż to (zamiast tego używaj " +"skóry)." + +msgctxt "min_infill_area label" +msgid "Minimum Infill Area" +msgstr "Min. Obszar Wypełn." + +msgctxt "min_skin_width_for_expansion description" +msgid "" +"Skin areas narrower than this are not expanded. This avoids expanding the " +"narrow skin areas that are created when the model surface has a slope close " +"to the vertical." +msgstr "" +"Obszary skóry, które są węższe niż to, nie zostaną poszerzone. W ten sposób " +"unikamy rozszerzania wąskich skór, które są tworzone, kiedy powierzchnia " +"jest blisko pionowi." + +msgctxt "min_skin_width_for_expansion label" +msgid "Minimum Skin Width for Expansion" +msgstr "Min. Szerok. Skóry do Poszerzenia" + +msgctxt "mold_angle description" +msgid "" +"The angle of overhang of the outer walls created for the mold. 0° will make " +"the outer shell of the mold vertical, while 90° will make the outside of the " +"model follow the contour of the model." +msgstr "" +"Kąt zwisania ścian zewnętrznych utworzonych dla formy. 0 ° spowoduje, że " +"powłoka zewnętrzna formy będzie pionowa, a 90 ° sprawi, że na zewnątrz " +"modelu podąży za konturem modelu." + +msgctxt "mold_angle label" +msgid "Mold Angle" +msgstr "Kąt Formy" + +msgctxt "mold_enabled description" +msgid "" +"Print models as a mold, which can be cast in order to get a model which " +"resembles the models on the build plate." +msgstr "" +"Wydrukuj modele jako formę, którą można wyrzucić w celu uzyskania odlewu, " +"który przypomina modele na płycie." + +msgctxt "mold_enabled label" +msgid "Mold" +msgstr "Forma" + +msgctxt "mold_roof_height description" +msgid "The height above horizontal parts in your model which to print mold." +msgstr "" +"Wysokość nad poziomymi częściami w modelu, które będą drukowanie jako formy." + +msgctxt "mold_roof_height label" +msgid "Mold Roof Height" +msgstr "Wysokość Dachu Formy" + +msgctxt "mold_width description" +msgid "" +"The minimal distance between the ouside of the mold and the outside of the " +"model." +msgstr "" +"Minimalna odległość między zewnętrzną stroną formy i zewnętrzną stroną " +"modelu." + +msgctxt "mold_width label" +msgid "Minimal Mold Width" +msgstr "Min. Szerokość Formy" + +msgctxt "multiple_mesh_overlap description" +msgid "" +"Make meshes which are touching each other overlap a bit. This makes them " +"bond together better." +msgstr "" +"Spowoduj, że siatki, które się dotykają będą na siebie trochę nachodzić. To " +"sprawia, że lepiej się łączą." + +msgctxt "multiple_mesh_overlap label" +msgid "Merged Meshes Overlap" +msgstr "Połączone Siatki Pokrywają się" + +msgctxt "nozzle_disallowed_areas description" +msgid "A list of polygons with areas the nozzle is not allowed to enter." +msgstr "Lista obszarów, w które dysze nie mogą wjeżdżać." + +msgctxt "nozzle_disallowed_areas label" +msgid "Nozzle Disallowed Areas" +msgstr "Niedozwolone Obszary Dyszy" + +msgctxt "ooze_shield_angle description" +msgid "" +"The maximum angle a part in the ooze shield will have. With 0 degrees being " +"vertical, and 90 degrees being horizontal. A smaller angle leads to less " +"failed ooze shields, but more material." +msgstr "" +"Maksymalny kąt, jaki będzie mieć część w tarczy wycierającej. Przy 0 " +"stopniach jest pionowa i 90 stopni jest pozioma. Mniejszy kąt prowadzi do " +"mniej nieudanych osłon, ale używa więcej materiału." + +msgctxt "ooze_shield_angle label" +msgid "Ooze Shield Angle" +msgstr "Kąt Osłony Wycierającej" + +msgctxt "ooze_shield_dist description" +msgid "Distance of the ooze shield from the print, in the X/Y directions." +msgstr "Odległość od osłony wycierającej do wydruku, w kierunkach X/Y." + +msgctxt "ooze_shield_dist label" +msgid "Ooze Shield Distance" +msgstr "Odległ. Osłony Wycierającej" + +msgctxt "ooze_shield_enabled description" +msgid "" +"Enable exterior ooze shield. This will create a shell around the model which " +"is likely to wipe a second nozzle if it's at the same height as the first " +"nozzle." +msgstr "" +"Włączyć zewnętrzną osłonę. Powstanie powłoka wokół modelu, która będzie " +"czyściła drugą dyszę, jeśli jest na tej samej wysokości, co pierwsza dysza." + +msgctxt "ooze_shield_enabled label" +msgid "Enable Ooze Shield" +msgstr "Włącz Osłonę Wycierającą" + +msgctxt "outer_inset_first description" +msgid "" +"Prints walls in order of outside to inside when enabled. This can help " +"improve dimensional accuracy in X and Y when using a high viscosity plastic " +"like ABS; however it can decrease outer surface print quality, especially on " +"overhangs." +msgstr "" +"Drukuje ściany w kolejności od zewnątrz do wewnątrz, gdy jest włączona. Może " +"to poprawić dokładność wymiarów w modelach X i Y przy użyciu plastiku o " +"wysokiej lepkości, takiego jak ABS; może jednak zmniejszyć jakość druku " +"zewnętrznego, zwłaszcza na zwisach." + +msgctxt "outer_inset_first label" +msgid "Outer Before Inner Walls" +msgstr "Zewn. Ściany przed Wewn." + +msgctxt "platform_adhesion description" +msgid "Adhesion" +msgstr "Przyczepność" + +msgctxt "platform_adhesion label" +msgid "Build Plate Adhesion" +msgstr "Popraw Przycz. Stołu" + +msgctxt "prime_blob_enable description" +msgid "" +"Whether to prime the filament with a blob before printing. Turning this " +"setting on will ensure that the extruder will have material ready at the " +"nozzle before printing. Printing Brim or Skirt can act like priming too, in " +"which case turning this setting off saves some time." +msgstr "" +"Czy wyczyścić filament z \"blobem\" przed drukowaniem? Włączenie tej opcji " +"powoduje, że upewni się czy w materiał jest gotowy w ekstruderze przed " +"drukowaniem. Drukowanie Obrysu lub Obwódki może działać także jako " +"czyszczenie, w takim przypadku wyłączenie tej opcji oszczędzi trochę czasu." + +msgctxt "prime_blob_enable label" +msgid "Enable Prime Blob" +msgstr "Włącz Czyszcz. \"Blob\"" + +msgctxt "prime_tower_enable description" +msgid "" +"Print a tower next to the print which serves to prime the material after " +"each nozzle switch." +msgstr "" +"Wydrukuj wieżę obok wydruku, która służy do zmiany materiału po każdym " +"przełączeniu dyszy." + +msgctxt "prime_tower_enable label" +msgid "Enable Prime Tower" +msgstr "Włącz Wieżę Czyszcz." + +msgctxt "prime_tower_flow description" +msgid "" +"Flow compensation: the amount of material extruded is multiplied by this " +"value." +msgstr "" +"Kompensacja przepływu: ilość ekstrudowanego materiału jest mnożona przez tę " +"wartość." + +msgctxt "prime_tower_flow label" +msgid "Prime Tower Flow" +msgstr "Przepływ Wieży Czyszcz." + +msgctxt "prime_tower_line_width description" +msgid "Width of a single prime tower line." +msgstr "Szerokość pojedynczej linii wieży." + +msgctxt "prime_tower_line_width label" +msgid "Prime Tower Line Width" +msgstr "Szerokość Linii Wieży Czyszcz." + +msgctxt "prime_tower_min_volume description" +msgid "" +"The minimum volume for each layer of the prime tower in order to purge " +"enough material." +msgstr "" +"Minimalna objętość każdej warstwy wieży czyszczącej w celu oczyszczenia " +"wystarczającej ilości materiału." + +msgctxt "prime_tower_min_volume label" +msgid "Prime Tower Minimum Volume" +msgstr "Min. Objętość Wieży Czyszcz." + +msgctxt "prime_tower_position_x description" +msgid "The x coordinate of the position of the prime tower." +msgstr "Współrzędna X położenia wieży czyszczącej." + +msgctxt "prime_tower_position_x label" +msgid "Prime Tower X Position" +msgstr "Pozycja Wieży Czyszcz. X" + +msgctxt "prime_tower_position_y description" +msgid "The y coordinate of the position of the prime tower." +msgstr "Współrzędna Y położenia wieży czyszczącej." + +msgctxt "prime_tower_position_y label" +msgid "Prime Tower Y Position" +msgstr "Pozycja Wieży Czyszcz. Y" + +msgctxt "prime_tower_size description" +msgid "The width of the prime tower." +msgstr "Szerokość wieży czyszczącej." + +msgctxt "prime_tower_size label" +msgid "Prime Tower Size" +msgstr "Rozmiar Wieży Czyszcz." + +msgctxt "prime_tower_wall_thickness description" +msgid "" +"The thickness of the hollow prime tower. A thickness larger than half the " +"Prime Tower Minimum Volume will result in a dense prime tower." +msgstr "" +"Grubość pustej wieży czyszczącej. Grubość większa niż połowa minimalnej " +"objętości wieży czyszczącej spowoduje, że wieża będzie miała dużą gęstość." + +msgctxt "prime_tower_wall_thickness label" +msgid "Prime Tower Thickness" +msgstr "Grubość Wieży Czyszcz." + +msgctxt "prime_tower_wipe_enabled description" +msgid "" +"After printing the prime tower with one nozzle, wipe the oozed material from " +"the other nozzle off on the prime tower." +msgstr "" +"Po wydrukowaniu podstawowej wieży jedną dyszą, wytrzyj wytłoczony materiał z " +"drugiej dyszy o wieżę czyszczącą." + +msgctxt "prime_tower_wipe_enabled label" +msgid "Wipe Inactive Nozzle on Prime Tower" +msgstr "Wytrzyj Nieuż. Dyszą o Wieże Czyszcz." + +msgctxt "print_sequence description" +msgid "" +"Whether to print all models one layer at a time or to wait for one model to " +"finish, before moving on to the next. One at a time mode is only possible if " +"all models are separated in such a way that the whole print head can move in " +"between and all models are lower than the distance between the nozzle and " +"the X/Y axes." +msgstr "" +"Czy drukować wszystkie modele po jednej warstwie, czy poczekać na " +"zakończenie jednego modelu, przed przejściem do następnego. Tryb Jeden na " +"raz jest możliwy, gdy wszystkie modele są oddzielone w taki sposób, aby cała " +"głowica drukująca mogła się poruszać między wszystkimi modelami i są one " +"niższe niż odległość pomiędzy dyszą i osiami X/Y." + +msgctxt "print_sequence label" +msgid "Print Sequence" +msgstr "Sekwencja Wydruku" + +msgctxt "print_sequence option all_at_once" +msgid "All at Once" +msgstr "Wszystko na raz" + +msgctxt "print_sequence option one_at_a_time" +msgid "One at a Time" +msgstr "Jeden na raz" + +msgctxt "raft_acceleration description" +msgid "The acceleration with which the raft is printed." +msgstr "Przyspieszenie, z jakim tratwa jest drukowana." + +msgctxt "raft_acceleration label" +msgid "Raft Print Acceleration" +msgstr "Przysp. Druku Tratwy" + +msgctxt "raft_airgap description" +msgid "" +"The gap between the final raft layer and the first layer of the model. Only " +"the first layer is raised by this amount to lower the bonding between the " +"raft layer and the model. Makes it easier to peel off the raft." +msgstr "" +"Przerwa pomiędzy ostatnią warstwą tratwy a pierwszą warstwą modelu. Tylko ta " +"pierwsza warstwa jest podnoszona o tę wartość w celu zmniejszenia wiązania " +"pomiędzy warstwą tratwy a modelem. Ułatwia to odrywanie tratwy." + +msgctxt "raft_airgap label" +msgid "Raft Air Gap" +msgstr "Przerwa Tratwy" + +msgctxt "raft_base_acceleration description" +msgid "The acceleration with which the base raft layer is printed." +msgstr "Przyspieszenie, z jakim drukowana jest podstawowa warstwa tratwy." + +msgctxt "raft_base_acceleration label" +msgid "Raft Base Print Acceleration" +msgstr "Przysp. Podst. Warstwy Tratwy" + +msgctxt "raft_base_fan_speed description" +msgid "The fan speed for the base raft layer." +msgstr "Prędkość wentylatora dla podstawowej warstwy tratwy." + +msgctxt "raft_base_fan_speed label" +msgid "Raft Base Fan Speed" +msgstr "Prędk. Went. Podst. Tratwy" + +msgctxt "raft_base_jerk description" +msgid "The jerk with which the base raft layer is printed." +msgstr "Zryw, z którym drukowana jest podstawowa warstwa tratwy." + +msgctxt "raft_base_jerk label" +msgid "Raft Base Print Jerk" +msgstr "Zryw Podst. Tratwy" + +msgctxt "raft_base_line_spacing description" +msgid "" +"The distance between the raft lines for the base raft layer. Wide spacing " +"makes for easy removal of the raft from the build plate." +msgstr "" +"Odległość pomiędzy linami tratwy na podstawowej warstwie tratwy. Szerokie " +"odstępy ułatwiają usuwanie tratwy ze stołu." + +msgctxt "raft_base_line_spacing label" +msgid "Raft Line Spacing" +msgstr "Rozstaw Linii Tratwy" + +msgctxt "raft_base_line_width description" +msgid "" +"Width of the lines in the base raft layer. These should be thick lines to " +"assist in build plate adhesion." +msgstr "" +"Szerokość linii na podstawowej warstwie tratwy. Powinny być to grube linie, " +"które pomogą w przyczepności do stołu." + +msgctxt "raft_base_line_width label" +msgid "Raft Base Line Width" +msgstr "Szerokość Linii Podst. Tratwy" + +msgctxt "raft_base_speed description" +msgid "" +"The speed at which the base raft layer is printed. This should be printed " +"quite slowly, as the volume of material coming out of the nozzle is quite " +"high." +msgstr "" +"Prędkość, z jaką drukowana jest podstawowa warstwa tratwy. Powinna być " +"drukowana dość wolno, ponieważ objętość materiału wydobywającego się z dyszy " +"jest dość duża." + +msgctxt "raft_base_speed label" +msgid "Raft Base Print Speed" +msgstr "Prędk. Druku Podst. Tratwy" + +msgctxt "raft_base_thickness description" +msgid "" +"Layer thickness of the base raft layer. This should be a thick layer which " +"sticks firmly to the printer build plate." +msgstr "" +"Grubość podstawowej warstwy tratwy. Powinna to być gruba warstwa, która " +"mocno przykleja się do stołu drukarki." + +msgctxt "raft_base_thickness label" +msgid "Raft Base Thickness" +msgstr "Grubość Podstawy Tratwy" + +msgctxt "raft_fan_speed description" +msgid "The fan speed for the raft." +msgstr "Prędkość wentylatora dla tratwy." + +msgctxt "raft_fan_speed label" +msgid "Raft Fan Speed" +msgstr "Prędk. Went. Tratwa" + +msgctxt "raft_interface_acceleration description" +msgid "The acceleration with which the middle raft layer is printed." +msgstr "Przyspieszenie, z jakim drukowana jest środkowa warstwa tratwy." + +msgctxt "raft_interface_acceleration label" +msgid "Raft Middle Print Acceleration" +msgstr "Przysp. Druku Środka Tratwy" + +msgctxt "raft_interface_fan_speed description" +msgid "The fan speed for the middle raft layer." +msgstr "Prędkość wentylatora dla środkowej warstwy tratwy." + +msgctxt "raft_interface_fan_speed label" +msgid "Raft Middle Fan Speed" +msgstr "Prędk. Went. Środek Tratwy" + +msgctxt "raft_interface_jerk description" +msgid "The jerk with which the middle raft layer is printed." +msgstr "Zryw, z którym drukowany jest środek tratwy." + +msgctxt "raft_interface_jerk label" +msgid "Raft Middle Print Jerk" +msgstr "Zryw Środek Tratwy" + +msgctxt "raft_interface_line_spacing description" +msgid "" +"The distance between the raft lines for the middle raft layer. The spacing " +"of the middle should be quite wide, while being dense enough to support the " +"top raft layers." +msgstr "" +"Odległość między liniami na środkowej warstwie tratwy. Odległość środkowa " +"powinna być dość szeroka, a jednocześnie wystarczająco gęsta, aby " +"podtrzymywać górne warstwy tratwy." + +msgctxt "raft_interface_line_spacing label" +msgid "Raft Middle Spacing" +msgstr "Przerwy Środka Tratwy" + +msgctxt "raft_interface_line_width description" +msgid "" +"Width of the lines in the middle raft layer. Making the second layer extrude " +"more causes the lines to stick to the build plate." +msgstr "" +"Szerokość linii na środkowej warstwie tratwy. Wytłaczanie drugiej warstwy " +"powoduje, że linie przyklejają się do stołu." + +msgctxt "raft_interface_line_width label" +msgid "Raft Middle Line Width" +msgstr "Szerokość Linii Środka Tratwy" + +msgctxt "raft_interface_speed description" +msgid "" +"The speed at which the middle raft layer is printed. This should be printed " +"quite slowly, as the volume of material coming out of the nozzle is quite " +"high." +msgstr "" +"Prędkość, z jaką drukowana jest środkowa warstwa tratwy. Powinno być " +"drukowane dość wolno, ponieważ objętość materiału wydobywającego się z dyszy " +"jest dość duża." + +msgctxt "raft_interface_speed label" +msgid "Raft Middle Print Speed" +msgstr "Prędk. Druku Środka Tratwy" + +msgctxt "raft_interface_thickness description" +msgid "Layer thickness of the middle raft layer." +msgstr "Grubość środkowej warstwy tratwy." + +msgctxt "raft_interface_thickness label" +msgid "Raft Middle Thickness" +msgstr "Grubość Środka Tratwy" + +msgctxt "raft_jerk description" +msgid "The jerk with which the raft is printed." +msgstr "Zryw, z jakim drukowana jest tratwa" + +msgctxt "raft_jerk label" +msgid "Raft Print Jerk" +msgstr "Zryw Tratwy" + +msgctxt "raft_margin description" +msgid "" +"If the raft is enabled, this is the extra raft area around the model which " +"is also given a raft. Increasing this margin will create a stronger raft " +"while using more material and leaving less area for your print." +msgstr "" +"Jeśli tratwa jest włączona, jest to dodatkowy obszar tratwy wokół modelu, " +"który ma również tratwę. Zwiększenie marginesu wzmocni tratwę przy " +"wykorzystaniu z większej ilości materiału i pozostawi mniej miejsca na " +"wydruk." + +msgctxt "raft_margin label" +msgid "Raft Extra Margin" +msgstr "Dod. Margines Tratwy" + +msgctxt "raft_speed description" +msgid "The speed at which the raft is printed." +msgstr "Prędkość, z jaką drukowana jest tratwa." + +msgctxt "raft_speed label" +msgid "Raft Print Speed" +msgstr "Prędk. Druku Tratwy" + +msgctxt "raft_surface_acceleration description" +msgid "The acceleration with which the top raft layers are printed." +msgstr "Przyspieszenie, z jakim drukowane są górne warstwy tratwy." + +msgctxt "raft_surface_acceleration label" +msgid "Raft Top Print Acceleration" +msgstr "Przysp. Druku Góry Tratwy" + +msgctxt "raft_surface_fan_speed description" +msgid "The fan speed for the top raft layers." +msgstr "Prędkość wentylatora dla górnych warstw tratwy." + +msgctxt "raft_surface_fan_speed label" +msgid "Raft Top Fan Speed" +msgstr "Prędk. Went. Góra Tratwy" + +msgctxt "raft_surface_jerk description" +msgid "The jerk with which the top raft layers are printed." +msgstr "Zryw, z jakim drukowane są górne warstwy tratwy." + +msgctxt "raft_surface_jerk label" +msgid "Raft Top Print Jerk" +msgstr "Zryw Góry Tratwy" + +msgctxt "raft_surface_layers description" +msgid "" +"The number of top layers on top of the 2nd raft layer. These are fully " +"filled layers that the model sits on. 2 layers result in a smoother top " +"surface than 1." +msgstr "" +"Liczba górnych warstw na górze drugiej warstwy tratwy. Są to w pełni " +"wypełnione warstwy, na których siedzi model. 2 warstwy tworzą gładszą górną " +"powierzchnię niż 1." + +msgctxt "raft_surface_layers label" +msgid "Raft Top Layers" +msgstr "Górne Warstwy Tartwy" + +msgctxt "raft_surface_line_spacing description" +msgid "" +"The distance between the raft lines for the top raft layers. The spacing " +"should be equal to the line width, so that the surface is solid." +msgstr "" +"Odległość między liniami na górnej warstwie tratwy. Rozstaw powinien być " +"równy szerokości linii, tak że powierzchnia jest pełna." + +msgctxt "raft_surface_line_spacing label" +msgid "Raft Top Spacing" +msgstr "Przerwy Góra Tratwy" + +msgctxt "raft_surface_line_width description" +msgid "" +"Width of the lines in the top surface of the raft. These can be thin lines " +"so that the top of the raft becomes smooth." +msgstr "" +"Szerokość linii na górnej powierzchni tratwy. Mogą to być cienkie linie tak, " +"aby góra tratwy była gładka." + +msgctxt "raft_surface_line_width label" +msgid "Raft Top Line Width" +msgstr "Szerokość Linii Góra Tratwy" + +msgctxt "raft_surface_speed description" +msgid "" +"The speed at which the top raft layers are printed. These should be printed " +"a bit slower, so that the nozzle can slowly smooth out adjacent surface " +"lines." +msgstr "" +"Prędkość, w jaką są drukowane górne warstwy tratwy. Powinny być drukowane " +"nieco wolniej, dzięki czemu dysza może powoli wypolerować sąsiednie linie " +"powierzchni." + +msgctxt "raft_surface_speed label" +msgid "Raft Top Print Speed" +msgstr "Prędk. Druku Góry Tratwy" + +msgctxt "raft_surface_thickness description" +msgid "Layer thickness of the top raft layers." +msgstr "Grubość warstwy górnych warstw tratwy." + +msgctxt "raft_surface_thickness label" +msgid "Raft Top Layer Thickness" +msgstr "Grubość Warstwy Góra Tratwy" + +msgctxt "resolution description" +msgid "" +"All settings that influence the resolution of the print. These settings have " +"a large impact on the quality (and print time)" +msgstr "" +"Wszystkie ustawienia, które wpływają na rozdzielczość druku. Ustawienia te " +"mają ogromny wpływ na jakość (i czas druku)" + +msgctxt "resolution label" +msgid "Quality" +msgstr "Jakość" + +msgctxt "retract_at_layer_change description" +msgid "Retract the filament when the nozzle is moving to the next layer." +msgstr "Cofnij filament, gdy dysza przesuwa się do następnej warstwy." + +msgctxt "retract_at_layer_change label" +msgid "Retract at Layer Change" +msgstr "Retrakcja podczas Zmiany Warstwy" + +msgctxt "retraction_amount description" +msgid "The length of material retracted during a retraction move." +msgstr "Długość materiału wycofanego podczas retrakcji." + +msgctxt "retraction_amount label" +msgid "Retraction Distance" +msgstr "Długość Retrakcji" + +msgctxt "retraction_combing description" +msgid "" +"Combing keeps the nozzle within already printed areas when traveling. This " +"results in slightly longer travel moves but reduces the need for " +"retractions. If combing is off, the material will retract and the nozzle " +"moves in a straight line to the next point. It is also possible to avoid " +"combing over top/bottom skin areas by combing within the infill only." +msgstr "" +"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 skóry przez kombinowanie tylko " +"wewnątrz wypełnienia." + +msgctxt "retraction_combing label" +msgid "Combing Mode" +msgstr "Tryb Kombinowania" + +msgctxt "retraction_combing option all" +msgid "All" +msgstr "Wszędzie" + +msgctxt "retraction_combing option noskin" +msgid "No Skin" +msgstr "Bez skóry" + +msgctxt "retraction_combing option off" +msgid "Off" +msgstr "Wyłącz" + +msgctxt "retraction_count_max description" +msgid "" +"This setting limits the number of retractions occurring within the minimum " +"extrusion distance window. Further retractions within this window will be " +"ignored. This avoids retracting repeatedly on the same piece of filament, as " +"that can flatten the filament and cause grinding issues." +msgstr "" +"To ustawienie ogranicza liczbę retrakcji występujących w oknie minimalnej " +"długości ekstruzji. Dalsze retrakcje w tym oknie zostaną zignorowane. " +"Pozwala to uniknąć wielokrotnych retrakcji na tym samym odcinku filamentu, " +"ponieważ może to spłaszczyć filament i spowodować problemy z wyciskaniem " +"filamentu." + +msgctxt "retraction_count_max label" +msgid "Maximum Retraction Count" +msgstr "Maksymalna Liczba Retrakcji" + +msgctxt "retraction_enable description" +msgid "" +"Retract the filament when the nozzle is moving over a non-printed area. " +msgstr "" +"Cofnij filament, gdy dysza porusza się nad obszarem, w którym nie ma " +"drukować. " + +msgctxt "retraction_enable label" +msgid "Enable Retraction" +msgstr "Włącz Retrakcję" + +msgctxt "retraction_extra_prime_amount description" +msgid "" +"Some material can ooze away during a travel move, which can be compensated " +"for here." +msgstr "" +"Trochę materiału może wypływać podczas ruchu jałowego co może zostać " +"skompensowane tutaj." + +msgctxt "retraction_extra_prime_amount label" +msgid "Retraction Extra Prime Amount" +msgstr "Dod. Czyszcz. Wart. Retrakcji" + +msgctxt "retraction_extrusion_window description" +msgid "" +"The window in which the maximum retraction count is enforced. This value " +"should be approximately the same as the retraction distance, so that " +"effectively the number of times a retraction passes the same patch of " +"material is limited." +msgstr "" +"Okno, w którym wymuszona jest maksymalna liczba retrakcji. Wartość ta " +"powinna być w przybliżeniu taka sama jak odległość retrakcji, dzięki czemu " +"skuteczna liczba retrakcji używająca tej samej cząstki materiału jest " +"limitowana." + +msgctxt "retraction_extrusion_window label" +msgid "Minimum Extrusion Distance Window" +msgstr "Okno Min. Dług. Ekstruzji" + +msgctxt "retraction_hop description" +msgid "The height difference when performing a Z Hop." +msgstr "Różnica w wysokości podczas przeprowadzania Skoku Z." + +msgctxt "retraction_hop label" +msgid "Z Hop Height" +msgstr "Wysokość Skoku Z" + +msgctxt "retraction_hop_after_extruder_switch description" +msgid "" +"After the machine switched from one extruder to the other, the build plate " +"is lowered to create clearance between the nozzle and the print. This " +"prevents the nozzle from leaving oozed material on the outside of a print." +msgstr "" +"Po przełączeniu maszyny z jednego ekstrudera na drugi, stół jest opuszczany, " +"aby utworzyć luz pomiędzy dyszą a drukiem. Zapobiega to pozostawianiu " +"wypływającego materiału na powierzchni wydruku." + +msgctxt "retraction_hop_after_extruder_switch label" +msgid "Z Hop After Extruder Switch" +msgstr "Skok Z po Zmianie Ekstrudera" + +msgctxt "retraction_hop_enabled description" +msgid "" +"Whenever a retraction is done, the build plate is lowered to create " +"clearance between the nozzle and the print. It prevents the nozzle from " +"hitting the print during travel moves, reducing the chance to knock the " +"print from the build plate." +msgstr "" +"Zawsze, gdy następuje retrakcja, stół roboczy jest opuszczany w celu " +"utworzenia luzu między dyszą a drukiem. Zapobiega to uderzeniu dyszy podczas " +"ruchu jałowego, co zmniejsza szanse uderzenia wydruku na stole." + +msgctxt "retraction_hop_enabled label" +msgid "Z Hop When Retracted" +msgstr "Skok Z Podczas Retrakcji" + +msgctxt "retraction_hop_only_when_collides description" +msgid "" +"Only perform a Z Hop when moving over printed parts which cannot be avoided " +"by horizontal motion by Avoid Printed Parts when Traveling." +msgstr "" +"Wykonuj Skok Z tylko podczas ruchu nad wydrukowanymi częściami, które nie " +"mogą być ominięte za pomocą Omijaj Częścipodczas Ruchu Jałowego." + +msgctxt "retraction_hop_only_when_collides label" +msgid "Z Hop Only Over Printed Parts" +msgstr "Skok Z Tylko nad Druk. Częściami" + +msgctxt "retraction_min_travel description" +msgid "" +"The minimum distance of travel needed for a retraction to happen at all. " +"This helps to get fewer retractions in a small area." +msgstr "" +"Minimalna odległość ruchu jałowego potrzebna do wykonania retrkacji. Pomaga " +"to uzyskać mniej retrakcji w małym obszarze." + +msgctxt "retraction_min_travel label" +msgid "Retraction Minimum Travel" +msgstr "Minimalny Przejazd dla Retrakcji" + +msgctxt "retraction_prime_speed description" +msgid "The speed at which the filament is primed during a retraction move." +msgstr "Prędkość, z jaką retrakcja jest dopełniana." + +msgctxt "retraction_prime_speed label" +msgid "Retraction Prime Speed" +msgstr "Prędk. Dopełn. Retrakcji" + +msgctxt "retraction_retract_speed description" +msgid "The speed at which the filament is retracted during a retraction move." +msgstr "Prędkość, z jaką wykonywana jest retrakcja." + +msgctxt "retraction_retract_speed label" +msgid "Retraction Retract Speed" +msgstr "Prędk. Wycofania Retrakcji" + +msgctxt "retraction_speed description" +msgid "" +"The speed at which the filament is retracted and primed during a retraction " +"move." +msgstr "Prędkość, z jaką jest wykonywana i dopełniana retrakcja." + +msgctxt "retraction_speed label" +msgid "Retraction Speed" +msgstr "Prędkość Retrakcji" + +msgctxt "shell description" +msgid "Shell" +msgstr "Powłoka" + +msgctxt "shell label" +msgid "Shell" +msgstr "Powłoka" + +msgctxt "skin_alternate_rotation description" +msgid "" +"Alternate the direction in which the top/bottom layers are printed. Normally " +"they are printed diagonally only. This setting adds the X-only and Y-only " +"directions." +msgstr "" +"Zmień kierunek, w jakim drukowane są górne/dolne warstwy. Zazwyczaj są one " +"drukowane na ukos. Ustawienie to dodaje kierunek \"tylko X\" i \"tylko Y\"." + +msgctxt "skin_alternate_rotation label" +msgid "Alternate Skin Rotation" +msgstr "Zmień Kierunek Skóry" + +msgctxt "skin_angles description" +msgid "" +"A list of integer line directions to use when the top/bottom layers use the " +"lines or zig zag pattern. Elements from the list are used sequentially as " +"the layers progress and when the end of the list is reached, it starts at " +"the beginning again. The list items are separated by commas and the whole " +"list is contained in square brackets. Default is an empty list which means " +"use the traditional default angles (45 and 135 degrees)." +msgstr "" +"Lista całkowitych kierunków linii używana kiedy górne/dolne warstwy używają " +"wzoru linii i zygzaka. Elementy z listy są używane kolejno w miarę postępu " +"warstw, a kiedy kończy się lista, zaczyna się od początku. Elementy listy są " +"oddzielone przecinkami, a cała lista znajduje się w nawiasach kwadratowych. " +"Domyślnie lista jest pusta, co oznacza tradycyjne, domyślne kąty (45 i 135 " +"stopni)." + +msgctxt "skin_angles label" +msgid "Top/Bottom Line Directions" +msgstr "Kierunki Linii Góra/Dół" + +msgctxt "skin_line_width description" +msgid "Width of a single top/bottom line." +msgstr "Szerokość pojedynczej górnej/dolnej linii." + +msgctxt "skin_line_width label" +msgid "Top/Bottom Line Width" +msgstr "Szerokość Górnej/Dolnej Linii" + +msgctxt "skin_no_small_gaps_heuristic description" +msgid "" +"When the model has small vertical gaps, about 5% extra computation time can " +"be spent on generating top and bottom skin in these narrow spaces. In such " +"case, disable the setting." +msgstr "" +"Jeśli model ma małe, pionowe szczeliny, to można wykorzystać dodatkowe 5% " +"mocy obliczeniowej do wygenerowania górnej i dolnej skóry w wąskich " +"przestrzeniach. W takim wypadku, wyłącz tę opcję." + +msgctxt "skin_no_small_gaps_heuristic label" +msgid "Ignore Small Z Gaps" +msgstr "Zignoruj Małe Luki Z" + +msgctxt "skin_outline_count description" +msgid "" +"Replaces the outermost part of the top/bottom pattern with a number of " +"concentric lines. Using one or two lines improves roofs that start on infill " +"material." +msgstr "" +"Zastępuje najbardziej zewnętrzną część wzoru górnego/dolnego za pomocą kilku " +"koncentrycznych linii. Korzystanie z jednej lub dwóch linii poprawia dachy, " +"które zaczynają się na wypełnieniu." + +msgctxt "skin_outline_count label" +msgid "Extra Skin Wall Count" +msgstr "Liczba Dod. Ścian na Skórze" + +msgctxt "skin_overlap description" +msgid "" +"The amount of overlap between the skin and the walls. A slight overlap " +"allows the walls to connect firmly to the skin." +msgstr "" +"Ilość nakładania się skóry i ścian. Lekkie nałożenie pozwala ściśle łączyć " +"się ze skórą." + +msgctxt "skin_overlap label" +msgid "Skin Overlap Percentage" +msgstr "Procent Nakładania się Skóry" + +msgctxt "skin_overlap_mm description" +msgid "" +"The amount of overlap between the skin and the walls. A slight overlap " +"allows the walls to connect firmly to the skin." +msgstr "" +"Ilość nakładania się skóry i ścian. Lekkie nałożenie pozwala ściśle łączyć " +"się ze skórą." + +msgctxt "skin_overlap_mm label" +msgid "Skin Overlap" +msgstr "Nakładanie się Skóry" + +msgctxt "skirt_brim_line_width description" +msgid "Width of a single skirt or brim line." +msgstr "Szerokość pojedynczej linii Obwódki i Obrysu." + +msgctxt "skirt_brim_line_width label" +msgid "Skirt/Brim Line Width" +msgstr "Szer. Linii Obwódki/Obrysu" + +msgctxt "skirt_brim_minimal_length description" +msgid "" +"The minimum length of the skirt or brim. If this length is not reached by " +"all skirt or brim lines together, more skirt or brim lines will be added " +"until the minimum length is reached. Note: If the line count is set to 0 " +"this is ignored." +msgstr "" +"Minimalna długość obwódki lub obrysu. Jeśli ta długość nie zostanie " +"osiągnięta przez całą linie obwódki lub obrysu, należy dodać więcej linii, " +"aż do osiągnięcia minimalnej długości. Uwaga: Jeśli liczba linii jest " +"ustawiona na 0, to opcja jest ignorowana." + +msgctxt "skirt_brim_minimal_length label" +msgid "Skirt/Brim Minimum Length" +msgstr "Min. Dł. Obwódki/Obrysu" + +msgctxt "skirt_brim_speed description" +msgid "" +"The speed at which the skirt and brim are printed. Normally this is done at " +"the initial layer speed, but sometimes you might want to print the skirt or " +"brim at a different speed." +msgstr "" +"Prędkość, z jaką jest drukowana obwódka i obrys. Zwykle jest to wykonywane " +"przy szybkości początkowej warstwy, ale czasami możesz chcieć drukować " +"obwódkę lub obrys z inną prędkością." + +msgctxt "skirt_brim_speed label" +msgid "Skirt/Brim Speed" +msgstr "Prędkość Obwódka/Obrys" + +msgctxt "skirt_gap description" +msgid "" +"The horizontal distance between the skirt and the first layer of the print.\n" +"This is the minimum distance, multiple skirt lines will extend outwards from " +"this distance." +msgstr "" +"Pozioma odległość między obwódką a pierwszą warstwą nadruku.\n" +"Jest to o minimalnej odległości. Z tej odległości linie będą nakładane w " +"kierunku zewnętrznym." + +msgctxt "skirt_gap label" +msgid "Skirt Distance" +msgstr "Odległ. Obwódki" + +msgctxt "skirt_line_count description" +msgid "" +"Multiple skirt lines help to prime your extrusion better for small models. " +"Setting this to 0 will disable the skirt." +msgstr "" +"Liczne linie pomagają w lepszym wytłaczaniu małych modeli. Ustawienie na 0 " +"spowoduje wyłączenie obwódki." + +msgctxt "skirt_line_count label" +msgid "Skirt Line Count" +msgstr "Liczba Linii Obwódki" + +msgctxt "smooth_spiralized_contours description" +msgid "" +"Smooth the spiralized contours to reduce the visibility of the Z seam (the Z-" +"seam should be barely visible on the print but will still be visible in the " +"layer view). Note that smoothing will tend to blur fine surface details." +msgstr "" +"Wygładź spiralny kontur, aby zmniejszyć widoczność szwu Z (szew Z powinien " +"być ledwo widoczny na wydruku, ale nadal będzie widoczny w widoku warstwy). " +"Należy pamiętać, że wygładzanie będzie miało tendencję do rozmycia drobnych " +"szczegółów powierzchni." + +msgctxt "smooth_spiralized_contours label" +msgid "Smooth Spiralized Contours" +msgstr "Wygładź Spiralne Kontury" + +msgctxt "spaghetti_flow description" +msgid "" +"Adjusts the density of the spaghetti infill. Note that the Infill Density " +"only controls the line spacing of the filling pattern, not the amount of " +"extrusion for spaghetti infill." +msgstr "" +"Dostosowuje gęstość wypełnienia spaghetti. Należy zauważyć, że Gęstość " +"Wypełnienia kontroluje tylko rozstaw linii wzoru napełniania, a nie ilość " +"wytłaczania wypełnienia spaghetti." + +msgctxt "spaghetti_flow label" +msgid "Spaghetti Flow" +msgstr "Przepływ Spaghetti" + +msgctxt "spaghetti_infill_enabled description" +msgid "" +"Print the infill every so often, so that the filament will curl up " +"chaotically inside the object. This reduces print time, but the behaviour is " +"rather unpredictable." +msgstr "" +"Drukowanie wypełnienia tak często, aby filament zwisał chaotycznie wewnątrz " +"przedmiotu. Zmniejsza to czas drukowania, ale zachowanie jest raczej " +"nieprzewidywalne." + +msgctxt "spaghetti_infill_enabled label" +msgid "Spaghetti Infill" +msgstr "Wypełnienie Spaghetti" + +msgctxt "spaghetti_inset description" +msgid "" +"The offset from the walls from where the spaghetti infill will be printed." +msgstr "Odsunięcie od ścian, z których będzie drukowane wypełnienie spaghetti." + +msgctxt "spaghetti_inset label" +msgid "Spaghetti Inset" +msgstr "Wkład Spaghetti" + +msgctxt "spaghetti_max_height description" +msgid "" +"The maximum height of inside space which can be combined and filled from the " +"top." +msgstr "" +"Maksymalna wysokość przestrzeni wewnętrznej, którą można łączyć i napełniać " +"od góry." + +msgctxt "spaghetti_max_height label" +msgid "Spaghetti Infill Maximum Height" +msgstr "Maks. Wys. Wypełn. Spaghetti" + +msgctxt "spaghetti_max_infill_angle description" +msgid "" +"The maximum angle w.r.t. the Z axis of the inside of the print for areas " +"which are to be filled with spaghetti infill afterwards. Lowering this value " +"causes more angled parts in your model to be filled on each layer." +msgstr "" +"Maksymalny kąt w odniesieniu do Osi Z wewnątrz wydruku dla obszarów, które " +"mają być wypełnione wypełnieniem spaghetti. Obniżenie tej wartości powoduje, " +"że więcej części modelu, które są pod kątem, będzie wypełnianych na każdej " +"warstwie." + +msgctxt "spaghetti_max_infill_angle label" +msgid "Spaghetti Maximum Infill Angle" +msgstr "Maks. Kąt Wypełn. Spaghetti" + +msgctxt "speed description" +msgid "Speed" +msgstr "Prędkość" + +msgctxt "speed label" +msgid "Speed" +msgstr "Prędkość" + +msgctxt "speed_equalize_flow_enabled description" +msgid "" +"Print thinner than normal lines faster so that the amount of material " +"extruded per second remains the same. Thin pieces in your model might " +"require lines printed with smaller line width than provided in the settings. " +"This setting controls the speed changes for such lines." +msgstr "" +"Wydrukuj cieńsze niż normalne linie szybciej, tak aby ilość materiału " +"wytłaczanego na sekundę pozostała taka sama. Cienkie części modelu mogą " +"wymagać drukowania linii o mniejszej szerokości linii niż podane w " +"ustawieniach. To ustawienie kontroluje zmiany prędkości dla takich linii." + +msgctxt "speed_equalize_flow_enabled label" +msgid "Equalize Filament Flow" +msgstr "Zrówn. Przepływ Filamentu" + +msgctxt "speed_equalize_flow_max description" +msgid "" +"Maximum print speed when adjusting the print speed in order to equalize flow." +msgstr "" +"Maksymalna prędkość drukowania podczas ustawiania prędkości druku w celu " +"zrównoważenia przepływu." + +msgctxt "speed_equalize_flow_max label" +msgid "Maximum Speed for Flow Equalization" +msgstr "Maks. Prędk. dla Zrówn. Przepływu" + +msgctxt "speed_infill description" +msgid "The speed at which infill is printed." +msgstr "Prędkość, z jaką drukowane jest wypełnienie." + +msgctxt "speed_infill label" +msgid "Infill Speed" +msgstr "Prędkość Wypełn." + +msgctxt "speed_layer_0 description" +msgid "" +"The speed for the initial layer. A lower value is advised to improve " +"adhesion to the build plate." +msgstr "" +"Prędkość dla pierwszej warstwy. Niższa wartość jest zalecane w celu poprawy " +"przyczepności do stołu." + +msgctxt "speed_layer_0 label" +msgid "Initial Layer Speed" +msgstr "Prędk. Początk. Warstwy" + +msgctxt "speed_prime_tower description" +msgid "" +"The speed at which the prime tower is printed. Printing the prime tower " +"slower can make it more stable when the adhesion between the different " +"filaments is suboptimal." +msgstr "" +"Prędkość, z jaką drukowana jest wieża czyszcząca. Drukowanie wieży " +"czyszczącej wolniej może sprawić, że będzie ona bardziej stabilna, gdy " +"adhezja między różnymi filamentami jest nieoptymalna." + +msgctxt "speed_prime_tower label" +msgid "Prime Tower Speed" +msgstr "Prędkość Wieży Czyszcz." + +msgctxt "speed_print description" +msgid "The speed at which printing happens." +msgstr "Prędkość druku." + +msgctxt "speed_print label" +msgid "Print Speed" +msgstr "Prędkość Druku" + +msgctxt "speed_print_layer_0 description" +msgid "" +"The speed of printing for the initial layer. A lower value is advised to " +"improve adhesion to the build plate." +msgstr "" +"Szybkość drukowania dla pierwszej warstwy. Niższa wartość jest zalecane w " +"celu poprawy przyczepności do stołu." + +msgctxt "speed_print_layer_0 label" +msgid "Initial Layer Print Speed" +msgstr "Prędk. Druku Początk. Warstwy" + +msgctxt "speed_slowdown_layers description" +msgid "" +"The first few layers are printed slower than the rest of the model, to get " +"better adhesion to the build plate and improve the overall success rate of " +"prints. The speed is gradually increased over these layers." +msgstr "" +"Pierwsze warstwy są drukowane wolniej niż w pozostałej części modelu, więc " +"lepiej przylegają do stołu i zwiększa się prawdopodobieństwo sukcesu. " +"Prędkość wzrasta stopniowo w czasie druku tych warstw." + +msgctxt "speed_slowdown_layers label" +msgid "Number of Slower Layers" +msgstr "Ilość Wolnych Warstw" + +msgctxt "speed_support description" +msgid "" +"The speed at which the support structure is printed. Printing support at " +"higher speeds can greatly reduce printing time. The surface quality of the " +"support structure is not important since it is removed after printing." +msgstr "" +"Szybkość, z jaką drukowane są podpory. Drukując podpory przy wyższych " +"prędkościach, całkowity czas drukowania może być znacznie zmniejszony. " +"Jakość powierzchni podpory nie ma znaczenia, ponieważ jest ona usuwana po " +"wydrukowaniu." + +msgctxt "speed_support label" +msgid "Support Speed" +msgstr "Prędkość Podpór" + +msgctxt "speed_support_bottom description" +msgid "" +"The speed at which the floor of support is printed. Printing it at lower " +"speed can improve adhesion of support on top of your model." +msgstr "" +"Prędkość, z jaką drukowane jest podłoże podpory. Drukowanie z niższą " +"prędkością może poprawić przyczepność podpory na modelu." + +msgctxt "speed_support_bottom label" +msgid "Support Floor Speed" +msgstr "Prędk. Podstawy Podpory" + +msgctxt "speed_support_infill description" +msgid "" +"The speed at which the infill of support is printed. Printing the infill at " +"lower speeds improves stability." +msgstr "" +"Prędkość, z jaką drukowane jest wypełnienie podstawy. Drukowanie wypełnień " +"przy niższych prędkościach poprawia stabilność." + +msgctxt "speed_support_infill label" +msgid "Support Infill Speed" +msgstr "Prędkość Wypełn. Podpór" + +msgctxt "speed_support_interface description" +msgid "" +"The speed at which the roofs and floors of support are printed. Printing " +"them at lower speeds can improve overhang quality." +msgstr "" +"Szybkość, z jaką drukowane są dachy i podłoża podpór. Drukując z mniejszą " +"prędkością, można poprawić jakość nawisów." + +msgctxt "speed_support_interface label" +msgid "Support Interface Speed" +msgstr "Prędk. Połączenia Podpór" + +msgctxt "speed_support_roof description" +msgid "" +"The speed at which the roofs of support are printed. Printing them at lower " +"speeds can improve overhang quality." +msgstr "" +"Prędkość, z jaką drukowane są dachy podpory. Drukowanie przy niższych " +"prędkościach może poprawić jakość nawisów." + +msgctxt "speed_support_roof label" +msgid "Support Roof Speed" +msgstr "Prędkość Dachu Podpory" + +msgctxt "speed_topbottom description" +msgid "The speed at which top/bottom layers are printed." +msgstr "Szybkość, z jaką drukowane są górne/dolne warstwy." + +msgctxt "speed_topbottom label" +msgid "Top/Bottom Speed" +msgstr "Prędkość Góra/Dół" + +msgctxt "speed_travel description" +msgid "The speed at which travel moves are made." +msgstr "Prędkość, z jaką wykonywane są ruchy jałowe." + +msgctxt "speed_travel label" +msgid "Travel Speed" +msgstr "Prędkość Ruchów Jałowych" + +msgctxt "speed_travel_layer_0 description" +msgid "" +"The speed of travel moves in the initial layer. A lower value is advised to " +"prevent pulling previously printed parts away from the build plate. The " +"value of this setting can automatically be calculated from the ratio between " +"the Travel Speed and the Print Speed." +msgstr "" +"Prędkość ruchów jałowych na pierwszej warstwie. Zaleca się niższą wartość, " +"aby zapobiec ściągnięciu wcześniej wydrukowanych części ze stołu. Wartość " +"tego ustawienia może być automatycznie obliczana na podstawie stosunku " +"Prędkości Ruchów Jałowych i Prędkości Druku." + +msgctxt "speed_travel_layer_0 label" +msgid "Initial Layer Travel Speed" +msgstr "Prędk. Ruchów Jał. na 1. Warstwie" + +msgctxt "speed_wall description" +msgid "The speed at which the walls are printed." +msgstr "Prędkość drukowania ścian." + +msgctxt "speed_wall label" +msgid "Wall Speed" +msgstr "Prędkość Ścian" + +msgctxt "speed_wall_0 description" +msgid "" +"The speed at which the outermost walls are printed. Printing the outer wall " +"at a lower speed improves the final skin quality. However, having a large " +"difference between the inner wall speed and the outer wall speed will affect " +"quality in a negative way." +msgstr "" +"Szybkość, z jaką drukowane są ściany zewnętrzne. Drukując zewnętrzną ściankę " +"z niższą prędkością, osiągana jest lepsza jakość skóry. Jednakże, posiadanie " +"dużej różnicy pomiędzy prędkością zewnętrznej ściany, a wewnętrznej może " +"skutkować negatywnie." + +msgctxt "speed_wall_0 label" +msgid "Outer Wall Speed" +msgstr "Prędkość Zewn. Ściany" + +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" + +msgctxt "speed_wall_x label" +msgid "Inner Wall Speed" +msgstr "Prędkość Wewn. Ściany" + +msgctxt "start_layers_at_same_position description" +msgid "" +"In each layer start with printing the object near the same point, so that we " +"don't start a new layer with printing the piece which the previous layer " +"ended with. This makes for better overhangs and small parts, but increases " +"printing time." +msgstr "" +"Na każdej warstwie rozpocznij drukowanie obiektu blisko tego samego punktu, " +"abyśmy nie rozpoczynali nowej warstwy w miejscu gdzie skończyła się " +"poprzednia warstwa. Powoduje to lepsze nawisy i małe elementy, ale wydłuża " +"czas druku." + +msgctxt "start_layers_at_same_position label" +msgid "Start Layers with the Same Part" +msgstr "Rozp. Warstwy w tym Samym Punkcie" + +msgctxt "sub_div_rad_add description" +msgid "" +"An addition to the radius from the center of each cube to check for the " +"boundary of the model, as to decide whether this cube should be subdivided. " +"Larger values lead to a thicker shell of small cubes near the boundary of " +"the model." +msgstr "" +"Dodatek do promienia od środka każdej kostki, aby sprawdzić granicę modelu i " +"podjąć decyzję, czy taka kostka powinna być podzielona. Większe wartości " +"prowadzą do grubszej powłoki małych kostek w pobliżu granicy modelu." + +msgctxt "sub_div_rad_add label" +msgid "Cubic Subdivision Shell" +msgstr "Sześcienny Podział Powłoki" + +msgctxt "support description" +msgid "Support" +msgstr "Podpory" + +msgctxt "support label" +msgid "Support" +msgstr "Podpory" + +msgctxt "support_angle description" +msgid "" +"The minimum angle of overhangs for which support is added. At a value of 0° " +"all overhangs are supported, 90° will not provide any support." +msgstr "" +"Minimalny kąt zwisu, dla którego dodaje się podporę. Przy wartości 0 ° " +"wszystkie zwisy są podparte, 90 ° nie zapewnia żadnego podparcia." + +msgctxt "support_angle label" +msgid "Support Overhang Angle" +msgstr "Kąt Zwisu dla Podpory" + +msgctxt "support_bottom_density description" +msgid "" +"The density of the floors of the support structure. A higher value results " +"in better adhesion of the support on top of the model." +msgstr "" +"Gęstość podłoża podpory. Wyższa wartość powoduje lepszą adhezję podpory na " +"górze modelu." + +msgctxt "support_bottom_density label" +msgid "Support Floor Density" +msgstr "Gęstość Podłoża Podpory" + +msgctxt "support_bottom_distance description" +msgid "Distance from the print to the bottom of the support." +msgstr "Odległość od wydruku do dolnej części podpory." + +msgctxt "support_bottom_distance label" +msgid "Support Bottom Distance" +msgstr "Odległ. na Dole Podpory" + +msgctxt "support_bottom_enable description" +msgid "" +"Generate a dense slab of material between the bottom of the support and the " +"model. This will create a skin between the model and support." +msgstr "" +"Generuj gęstą warstwę materiału pomiędzy spodem podpory a modelem. Tworzy to " +"skórę pomiędzy modelem a podporą." + +msgctxt "support_bottom_enable label" +msgid "Enable Support Floor" +msgstr "Włącz Podłoże Podpory" + +msgctxt "support_bottom_extruder_nr description" +msgid "" +"The extruder train to use for printing the floors of the support. This is " +"used in multi-extrusion." +msgstr "Ekstruder używany do druku podłoża podpory. Służy do multi-ekstruzji." + +msgctxt "support_bottom_extruder_nr label" +msgid "Support Floor Extruder" +msgstr "Ekstruder Podłoża Podpory" + +msgctxt "support_bottom_height description" +msgid "" +"The thickness of the support floors. This controls the number of dense " +"layers that are printed on top of places of a model on which support rests." +msgstr "" +"Grubość podłoża podpory. Steruje liczbę zwartych warstw, które są drukowane " +"na modelu, na którym spoczywa podpora." + +msgctxt "support_bottom_height label" +msgid "Support Floor Thickness" +msgstr "Grubość Podłoża Podpory" + +msgctxt "support_bottom_line_distance description" +msgid "" +"Distance between the printed support floor lines. This setting is calculated " +"by the Support Floor Density, but can be adjusted separately." +msgstr "" +"Odległość między drukowanymi liniami podłoża podpory. To ustawienie jest " +"obliczane za pomocą Gęstość Podłoża Podpory, ale można je wyregulować " +"oddzielnie." + +msgctxt "support_bottom_line_distance label" +msgid "Support Floor Line Distance" +msgstr "Odstęp między Liniami Podłoża Podpory" + +msgctxt "support_bottom_line_width description" +msgid "Width of a single support floor line." +msgstr "Szerokość pojedynczej linii podłoża podpory." + +msgctxt "support_bottom_line_width label" +msgid "Support Floor Line Width" +msgstr "Szerokość Linii Podłoża Podpory" + +msgctxt "support_bottom_pattern description" +msgid "The pattern with which the floors of the support are printed." +msgstr "Wzór, według którego drukowane są podłoża podpory." + +msgctxt "support_bottom_pattern label" +msgid "Support Floor Pattern" +msgstr "Wzór Podłoża Podpory" + +msgctxt "support_bottom_pattern option concentric" +msgid "Concentric" +msgstr "Koncentryczny" + +msgctxt "support_bottom_pattern option concentric_3d" +msgid "Concentric 3D" +msgstr "Koncentryczny 3D" + +msgctxt "support_bottom_pattern option grid" +msgid "Grid" +msgstr "Kratka" + +msgctxt "support_bottom_pattern option lines" +msgid "Lines" +msgstr "Linie" + +msgctxt "support_bottom_pattern option triangles" +msgid "Triangles" +msgstr "Trójkąty" + +msgctxt "support_bottom_pattern option zigzag" +msgid "Zig Zag" +msgstr "Zygzak" + +msgctxt "support_bottom_stair_step_height description" +msgid "" +"The height of the steps of the stair-like bottom of support resting on the " +"model. A low value makes the support harder to remove, but too high values " +"can lead to unstable support structures. Set to zero to turn off the stair-" +"like behaviour." +msgstr "" +"Wysokość stopni w schodkowym dole podpory spoczywającej na modelu. Niska " +"wartość utrudnia usunięcie podpory, ale zbyt duża wartość może prowadzić do " +"niestabilnej podpory. Ustaw na zero, aby wyłączyć zachowanie schodkowe." + +msgctxt "support_bottom_stair_step_height label" +msgid "Support Stair Step Height" +msgstr "Wysokość Stopnia Podpory" + +msgctxt "support_bottom_stair_step_width description" +msgid "" +"The maximum width of the steps of the stair-like bottom of support resting " +"on the model. A low value makes the support harder to remove, but too high " +"values can lead to unstable support structures." +msgstr "" +"Maksymalna szerokość stopni dołu schodkowego podpory opartej na modelu. " +"Niska wartość sprawia, że podpora jest trudniejsza do usunięcia, ale zbyt " +"wysokie wartości mogą prowadzić do niestabilnych podpór." + +msgctxt "support_bottom_stair_step_width label" +msgid "Support Stair Step Maximum Width" +msgstr "Maks. Szerokość Stopnia Podpory" + +msgctxt "support_conical_angle description" +msgid "" +"The angle of the tilt of conical support. With 0 degrees being vertical, and " +"90 degrees being horizontal. Smaller angles cause the support to be more " +"sturdy, but consist of more material. Negative angles cause the base of the " +"support to be wider than the top." +msgstr "" +"Kąt nachylenia podpory stożkowej. Przy 0 stopniach jest pionowa a przy 90 " +"stopniach jest pozioma. Mniejsze kąty sprawiają, że podparcie jest bardziej " +"wytrzymałe, ale składa się z większej ilości materiału. Kąty ujemne " +"powodują, że podstawa wspornika jest szersza niż góra." + +msgctxt "support_conical_angle label" +msgid "Conical Support Angle" +msgstr "Kąt Podpory Stożkowej" + +msgctxt "support_conical_enabled description" +msgid "" +"Experimental feature: Make support areas smaller at the bottom than at the " +"overhang." +msgstr "" +"Opcja eksperymentalna: W dolnym obszarze podpory powinny być mniejsze niż na " +"zwisie." + +msgctxt "support_conical_enabled label" +msgid "Enable Conical Support" +msgstr "Włącz Podpory Stożkowe" + +msgctxt "support_conical_min_width description" +msgid "" +"Minimum width to which the base of the conical support area is reduced. " +"Small widths can lead to unstable support structures." +msgstr "" +"Minimalna szerokość, do której można zmniejszyć bazę podpory stożkowej. Małe " +"szerokości mogą prowadzić do niestabilnych struktur nośnych." + +msgctxt "support_conical_min_width label" +msgid "Conical Support Minimum Width" +msgstr "Min. Szerokość Podpory Stożkowej" + +msgctxt "support_connect_zigzags description" +msgid "" +"Connect the ZigZags. This will increase the strength of the zig zag support " +"structure." +msgstr "Połącz Zygzaki. To zwiększa wytrzymałość zygzakowatej podpory." + +msgctxt "support_connect_zigzags label" +msgid "Connect Support ZigZags" +msgstr "Połącz Zygzaki Podpory" + +msgctxt "support_enable description" +msgid "" +"Generate structures to support parts of the model which have overhangs. " +"Without these structures, such parts would collapse during printing." +msgstr "" +"Generuj struktury wspierające części modelu, które zwisają. Bez tych " +"struktur takie części mogłyby spaść podczas drukowania." + +msgctxt "support_enable label" +msgid "Generate Support" +msgstr "Generuj Podpory" + +msgctxt "support_extruder_nr description" +msgid "" +"The extruder train to use for printing the support. This is used in multi-" +"extrusion." +msgstr "Ekstruder używany do drukowania podpory. Używane do multi-ekstruzji." + +msgctxt "support_extruder_nr label" +msgid "Support Extruder" +msgstr "Ekstruder Podpory" + +msgctxt "support_extruder_nr_layer_0 description" +msgid "" +"The extruder train to use for printing the first layer of support infill. " +"This is used in multi-extrusion." +msgstr "" +"Ekstruder wykorzystywany do drukowania pierwszej warstwy wypełnienia " +"podpory. Używane do multi-ekstruzji." + +msgctxt "support_extruder_nr_layer_0 label" +msgid "First Layer Support Extruder" +msgstr "Ekstruder Pierwszej Warstwy Podpory" + +msgctxt "support_infill_extruder_nr description" +msgid "" +"The extruder train to use for printing the infill of the support. This is " +"used in multi-extrusion." +msgstr "" +"Ekstruder wykorzystywany do drukowania wypełnienia podpory. Używane do multi-" +"ekstruzji." + +msgctxt "support_infill_extruder_nr label" +msgid "Support Infill Extruder" +msgstr "Ekstruder Wypełnienia Podpory" + +msgctxt "support_infill_rate description" +msgid "" +"Adjusts the density of the support structure. A higher value results in " +"better overhangs, but the supports are harder to remove." +msgstr "" +"Reguluje gęstość struktury podpory. Wyższa wartość powoduje lepsze zwisy, " +"ale podpory są trudniejsze do usunięcia." + +msgctxt "support_infill_rate label" +msgid "Support Density" +msgstr "Gęstość Podpory" + +msgctxt "support_interface_density description" +msgid "" +"Adjusts the density of the roofs and floors of the support structure. A " +"higher value results in better overhangs, but the supports are harder to " +"remove." +msgstr "" +"Dostosowuje gęstość dachów i podłoży podpory. Wyższa wartość powoduje lepsze " +"zwisy, ale podpory są trudniejsze do usunięcia." + +msgctxt "support_interface_density label" +msgid "Support Interface Density" +msgstr "Gęstość Połączenia Podpory" + +msgctxt "support_interface_enable description" +msgid "" +"Generate a dense interface between the model and the support. This will " +"create a skin at the top of the support on which the model is printed and at " +"the bottom of the support, where it rests on the model." +msgstr "" +"Generuje szczelne połączenie pomiędzy modelem a podporą. Tworzy to skórę na " +"górnej części podpory, na której model jest drukowany i na spodzie, gdzie " +"podpora spoczywa na modelu." + +msgctxt "support_interface_enable label" +msgid "Enable Support Interface" +msgstr "Włącz Połączenie Podpory" + +msgctxt "support_interface_extruder_nr description" +msgid "" +"The extruder train to use for printing the roofs and floors of the support. " +"This is used in multi-extrusion." +msgstr "" +"Ekstruder wykorzystywany do drukowania dachów i podłoży podpory. Używane do " +"multi-ekstruzji." + +msgctxt "support_interface_extruder_nr label" +msgid "Support Interface Extruder" +msgstr "Ekstruder Połączenia Podpory" + +msgctxt "support_interface_height description" +msgid "" +"The thickness of the interface of the support where it touches with the " +"model on the bottom or the top." +msgstr "" +"Grubość połączenia podpory, gdzie styka się ona z modelem na górze i na dole." + +msgctxt "support_interface_height label" +msgid "Support Interface Thickness" +msgstr "Grubość Połączenia Podpory" + +msgctxt "support_interface_line_width description" +msgid "Width of a single line of support roof or floor." +msgstr "Szerokość pojedynczej linii dachu lub podłogi podpory." + +msgctxt "support_interface_line_width label" +msgid "Support Interface Line Width" +msgstr "Szerokość Linii Połączenia Podpory" + +msgctxt "support_interface_pattern description" +msgid "" +"The pattern with which the interface of the support with the model is " +"printed." +msgstr "Wzór, z jakim drukowane jest połączenie podpory z modelem." + +msgctxt "support_interface_pattern label" +msgid "Support Interface Pattern" +msgstr "Wzór Połączenia Podpory" + +msgctxt "support_interface_pattern option concentric" +msgid "Concentric" +msgstr "Koncentryczny" + +msgctxt "support_interface_pattern option concentric_3d" +msgid "Concentric 3D" +msgstr "Koncentryczny 3D" + +msgctxt "support_interface_pattern option grid" +msgid "Grid" +msgstr "Kratka" + +msgctxt "support_interface_pattern option lines" +msgid "Lines" +msgstr "Linie" + +msgctxt "support_interface_pattern option triangles" +msgid "Triangles" +msgstr "Trójkąty" + +msgctxt "support_interface_pattern option zigzag" +msgid "Zig Zag" +msgstr "Zygzak" + +msgctxt "support_interface_skip_height description" +msgid "" +"When checking where there's model above and below the support, take steps of " +"the given height. Lower values will slice slower, while higher values may " +"cause normal support to be printed in some places where there should have " +"been support interface." +msgstr "" +"Sprawdzając, czy model znajduje się powyżej czy poniżej podpory, wykonaj " +"stopnie o danej wysokości. Niższe wartości będą cięte wolniej, podczas gdy " +"wyższe wartości mogą powodować drukowanie zwykłej podpory w niektórych " +"miejscach, w których powinno istnieć połączenie." + +msgctxt "support_interface_skip_height label" +msgid "Support Interface Resolution" +msgstr "Rozdzielczość Połączenia Podpory" + +msgctxt "support_join_distance description" +msgid "" +"The maximum distance between support structures in the X/Y directions. When " +"seperate structures are closer together than this value, the structures " +"merge into one." +msgstr "" +"Maksymalna odległość między podporami w kierunkach X/Y. Gdy oddzielne " +"struktury są bliżej siebie niż ta wartość, struktury łączą się w jedną." + +msgctxt "support_join_distance label" +msgid "Support Join Distance" +msgstr "Odległość Łączenia Podpór" + +msgctxt "support_line_distance description" +msgid "" +"Distance between the printed support structure lines. This setting is " +"calculated by the support density." +msgstr "" +"Odległość między drukowanymi liniami struktury podpory. To ustawienie jest " +"obliczane przez gęstość podpory." + +msgctxt "support_line_distance label" +msgid "Support Line Distance" +msgstr "Odstępy między Liniami Podpory" + +msgctxt "support_line_width description" +msgid "Width of a single support structure line." +msgstr "Szerokość jednej linii podpory." + +msgctxt "support_line_width label" +msgid "Support Line Width" +msgstr "Szerokość Linii Podpory" + +msgctxt "support_mesh description" +msgid "" +"Use this mesh to specify support areas. This can be used to generate support " +"structure." +msgstr "" +"Użyj tej siatki, aby określić obszary wsparcia. Można to wykorzystać do " +"generowania struktury podpory." + +msgctxt "support_mesh label" +msgid "Support Mesh" +msgstr "Siatka Podpory" + +msgctxt "support_mesh_drop_down description" +msgid "" +"Make support everywhere below the support mesh, so that there's no overhang " +"in the support mesh." +msgstr "" +"Twórz podpory wszędzie pod siatką podpory, tak aby nie było zwisu w siatce " +"podpory." + +msgctxt "support_mesh_drop_down label" +msgid "Drop Down Support Mesh" +msgstr "Upuść Siatkę Podpory" + +msgctxt "support_minimal_diameter description" +msgid "" +"Minimum diameter in the X/Y directions of a small area which is to be " +"supported by a specialized support tower." +msgstr "" +"Minimalna średnica w kierunkach X/Y o małej powierzchni, który jest " +"wspierana przez specjalną wieżę wspierającą." + +msgctxt "support_minimal_diameter label" +msgid "Minimum Diameter" +msgstr "Minimalna Średnica" + +msgctxt "support_offset description" +msgid "" +"Amount of offset applied to all support polygons in each layer. Positive " +"values can smooth out the support areas and result in more sturdy support." +msgstr "" +"Wartość nakładania się stosowana do wszystkich podpór na każdej warstwie. " +"Dodatnie wartości mogą wygładzić podpory co w rezultacie daje silne podpory." + +msgctxt "support_offset label" +msgid "Support Horizontal Expansion" +msgstr "Poszerzenie Podpór Poziome" + +msgctxt "support_pattern description" +msgid "" +"The pattern of the support structures of the print. The different options " +"available result in sturdy or easy to remove support." +msgstr "" +"Wzór struktury podpory wydruku. Różne opcje zapewniają trwałe lub łatwe do " +"usunięcia podpory." + +msgctxt "support_pattern label" +msgid "Support Pattern" +msgstr "Wzór Podpory" + +msgctxt "support_pattern option concentric" +msgid "Concentric" +msgstr "Koncentryczny" + +msgctxt "support_pattern option concentric_3d" +msgid "Concentric 3D" +msgstr "Koncentryczny 3D" + +msgctxt "support_pattern option grid" +msgid "Grid" +msgstr "Kratka" + +msgctxt "support_pattern option lines" +msgid "Lines" +msgstr "Linie" + +msgctxt "support_pattern option triangles" +msgid "Triangles" +msgstr "Trójkąty" + +msgctxt "support_pattern option zigzag" +msgid "Zig Zag" +msgstr "Zygzak" + +msgctxt "support_roof_density description" +msgid "" +"The density of the roofs of the support structure. A higher value results in " +"better overhangs, but the supports are harder to remove." +msgstr "" +"Gęstość dachów podpór. Wyższa wartość powoduje lepsze zwisy, ale podpory są " +"trudniejsze do usunięcia." + +msgctxt "support_roof_density label" +msgid "Support Roof Density" +msgstr "Gęstość Dachu Podpory" + +msgctxt "support_roof_enable description" +msgid "" +"Generate a dense slab of material between the top of support and the model. " +"This will create a skin between the model and support." +msgstr "" +"Wytwórz gęstą płytę materiału pomiędzy wierzchołkiem podpory a modelem. " +"Powoduje to powstanie skóry między modelem a podporą." + +msgctxt "support_roof_enable label" +msgid "Enable Support Roof" +msgstr "Włącz Dach Podpory" + +msgctxt "support_roof_extruder_nr description" +msgid "" +"The extruder train to use for printing the roofs of the support. This is " +"used in multi-extrusion." +msgstr "" +"Ekstruder wykorzystywany do drukowania dachów podpory. Używany do multi-" +"ekstruzji." + +msgctxt "support_roof_extruder_nr label" +msgid "Support Roof Extruder" +msgstr "Ekstruder Dachu Podpory" + +msgctxt "support_roof_height description" +msgid "" +"The thickness of the support roofs. This controls the amount of dense layers " +"at the top of the support on which the model rests." +msgstr "" +"Grubość dachu podpory. Steruje ilością gęstych warstw na górnej części " +"podpory, na której osiada model." + +msgctxt "support_roof_height label" +msgid "Support Roof Thickness" +msgstr "Grubość Dachu Podpory" + +msgctxt "support_roof_line_distance description" +msgid "" +"Distance between the printed support roof lines. This setting is calculated " +"by the Support Roof Density, but can be adjusted separately." +msgstr "" +"Odległość pomiędzy drukowanymi liniami dachu podpory. Ta opcja jest " +"obliczona na podstawie Gęstości Podpory, ale może być także ustawiona " +"oddzielnie." + +msgctxt "support_roof_line_distance label" +msgid "Support Roof Line Distance" +msgstr "Odległość Linii Dachu Podpory" + +msgctxt "support_roof_line_width description" +msgid "Width of a single support roof line." +msgstr "Szerokość pojedynczej linii dachu podpory." + +msgctxt "support_roof_line_width label" +msgid "Support Roof Line Width" +msgstr "Szerokość Linii Dachu Podpory" + +msgctxt "support_roof_pattern description" +msgid "The pattern with which the roofs of the support are printed." +msgstr "Wzór, z jakim drukowane są dachy podpory." + +msgctxt "support_roof_pattern label" +msgid "Support Roof Pattern" +msgstr "Wzór Dachu Podpory" + +msgctxt "support_roof_pattern option concentric" +msgid "Concentric" +msgstr "Koncentryczny" + +msgctxt "support_roof_pattern option concentric_3d" +msgid "Concentric 3D" +msgstr "Koncentryczny 3D" + +msgctxt "support_roof_pattern option grid" +msgid "Grid" +msgstr "Kratka" + +msgctxt "support_roof_pattern option lines" +msgid "Lines" +msgstr "Linie" + +msgctxt "support_roof_pattern option triangles" +msgid "Triangles" +msgstr "Trójkąty" + +msgctxt "support_roof_pattern option zigzag" +msgid "Zig Zag" +msgstr "Zygzak" + +msgctxt "support_top_distance description" +msgid "Distance from the top of the support to the print." +msgstr "Odległość od wierzchołka podpory do wydruku." + +msgctxt "support_top_distance label" +msgid "Support Top Distance" +msgstr "Odległość od Góry Podpory" + +msgctxt "support_tower_diameter description" +msgid "The diameter of a special tower." +msgstr "Średnica wieży specjalnej." + +msgctxt "support_tower_diameter label" +msgid "Tower Diameter" +msgstr "Średnica Wieży" + +msgctxt "support_tower_roof_angle description" +msgid "" +"The angle of a rooftop of a tower. A higher value results in pointed tower " +"roofs, a lower value results in flattened tower roofs." +msgstr "" +"Kąt dachu wieży. Wyższa wartość powoduje punktowy dach wieży, a niższa " +"wartość powoduje płaskie dachy wieży." + +msgctxt "support_tower_roof_angle label" +msgid "Tower Roof Angle" +msgstr "Kąt Dachu Wieży" + +msgctxt "support_type description" +msgid "" +"Adjusts the placement of the support structures. The placement can be set to " +"touching build plate or everywhere. When set to everywhere the support " +"structures will also be printed on the model." +msgstr "" +"Reguluje rozmieszczenie podpór. Umiejscowienie można dostosować tak, aby " +"dotykały tylko stołu roboczego lub były generowane wszędzie. Po ustawieniu " +"na wszędzie struktury wydruku będą również drukowane na modelu." + +msgctxt "support_type label" +msgid "Support Placement" +msgstr "Rozmieszczenie Podpór" + +msgctxt "support_type option buildplate" +msgid "Touching Buildplate" +msgstr "Dotykające Stołu" + +msgctxt "support_type option everywhere" +msgid "Everywhere" +msgstr "Wszędzie" + +msgctxt "support_use_towers description" +msgid "" +"Use specialized towers to support tiny overhang areas. These towers have a " +"larger diameter than the region they support. Near the overhang the towers' " +"diameter decreases, forming a roof." +msgstr "" +"Użyj specjalnych wież do wspierania malutkich nawisów. Te wieże mają " +"średnicę większą niż wspierany obszar. W pobliżu nawisu, średnica wież " +"zmniejsza się tworząc dach." + +msgctxt "support_use_towers label" +msgid "Use Towers" +msgstr "Używaj Wież" + +msgctxt "support_xy_distance description" +msgid "Distance of the support structure from the print in the X/Y directions." +msgstr "Odległość podpory od wydruku w kierunkach X/Y." + +msgctxt "support_xy_distance label" +msgid "Support X/Y Distance" +msgstr "Odległość X/Y Podpory" + +msgctxt "support_xy_distance_overhang description" +msgid "" +"Distance of the support structure from the overhang in the X/Y directions. " +msgstr "Odległość podpory od zwisu w kierunkach X/Y " + +msgctxt "support_xy_distance_overhang label" +msgid "Minimum Support X/Y Distance" +msgstr "Min. Odległość X/Y Podpory" + +msgctxt "support_xy_overrides_z description" +msgid "" +"Whether the Support X/Y Distance overrides the Support Z Distance or vice " +"versa. When X/Y overrides Z the X/Y distance can push away the support from " +"the model, influencing the actual Z distance to the overhang. We can disable " +"this by not applying the X/Y distance around overhangs." +msgstr "" +"Czy Odległość Podpory X/Y nadpisuje Odległość Podpory Z i vice versa. Kiedy " +"X/Y nadpisuje Z, odległość X/Y może odepchnąć podporę od modelu, wpływając " +"na rzeczywistą odległość Z do zwisu. Możemy to wyłączyć, nie stosując " +"odległości X/Y wokół zwisów." + +msgctxt "support_xy_overrides_z label" +msgid "Support Distance Priority" +msgstr "Priorytet Odległości Podpory" + +msgctxt "support_xy_overrides_z option xy_overrides_z" +msgid "X/Y overrides Z" +msgstr "X/Y nadpisuje Z" + +msgctxt "support_xy_overrides_z option z_overrides_xy" +msgid "Z overrides X/Y" +msgstr "Z nadpisuje X/Y" + +msgctxt "support_z_distance description" +msgid "" +"Distance from the top/bottom of the support structure to the print. This gap " +"provides clearance to remove the supports after the model is printed. This " +"value is rounded up to a multiple of the layer height." +msgstr "" +"Odległość od góry/dołu podpory do wydruku. Ta luka zapewnia luz, aby usunąć " +"wsporniki po wydrukowaniu modelu. Ta wartość jest zaokrąglana do " +"wielokrotności wysokości warstwy." + +msgctxt "support_z_distance label" +msgid "Support Z Distance" +msgstr "Odległość Podpory Z" + +msgctxt "switch_extruder_prime_speed description" +msgid "" +"The speed at which the filament is pushed back after a nozzle switch " +"retraction." +msgstr "" +"Prędkość, z jaką filament jest cofany podczas retrakcji po zmianie dyszy." + +msgctxt "switch_extruder_prime_speed label" +msgid "Nozzle Switch Prime Speed" +msgstr "Prędk. Czyszcz. przy Zmianie Dyszy" + +msgctxt "switch_extruder_retraction_amount description" +msgid "" +"The amount of retraction: Set at 0 for no retraction at all. This should " +"generally be the same as the length of the heat zone." +msgstr "" +"Długość retrakcji: Ustaw na 0, aby wyłączyć retrkację. To powinno ogólnie " +"być takie samo jak długość strefy grzewczej." + +msgctxt "switch_extruder_retraction_amount label" +msgid "Nozzle Switch Retraction Distance" +msgstr "Długość Retrakcji przy Zmianie Dyszy" + +msgctxt "switch_extruder_retraction_speed description" +msgid "" +"The speed at which the filament is retracted during a nozzle switch retract." +msgstr "" +"Prędkość, z jaką filament jest wycofywany podczas retrakcji przy zmianie " +"dyszy." + +msgctxt "switch_extruder_retraction_speed label" +msgid "Nozzle Switch Retract Speed" +msgstr "Prędk. Cofania przy Zmianie Dyszy" + +msgctxt "switch_extruder_retraction_speeds description" +msgid "" +"The speed at which the filament is retracted. A higher retraction speed " +"works better, but a very high retraction speed can lead to filament grinding." +msgstr "" +"Prędkość, z jaką filament jest wycofywany. Wyższa szybkość retrakcji działa " +"lepiej, ale bardzo duża szybkość retrakcji może prowadzić do złych efektów." + +msgctxt "switch_extruder_retraction_speeds label" +msgid "Nozzle Switch Retraction Speed" +msgstr "Prędk. Retrakcji przy Zmianie Dyszy" + +msgctxt "top_bottom_pattern description" +msgid "The pattern of the top/bottom layers." +msgstr "Wzór górnej/dolnej warstwy." + +msgctxt "top_bottom_pattern label" +msgid "Top/Bottom Pattern" +msgstr "Wzór Góra/Dół" + +msgctxt "top_bottom_pattern option concentric" +msgid "Concentric" +msgstr "Koncentryczny" + +msgctxt "top_bottom_pattern option lines" +msgid "Lines" +msgstr "Linie" + +msgctxt "top_bottom_pattern option zigzag" +msgid "Zig Zag" +msgstr "Zygzak" + +msgctxt "top_bottom_pattern_0 description" +msgid "The pattern on the bottom of the print on the first layer." +msgstr "Wzór na pierwszej warstwie na dole wydruku." + +msgctxt "top_bottom_pattern_0 label" +msgid "Bottom Pattern Initial Layer" +msgstr "Wzór Dolnej Początkowej Warstwy" + +msgctxt "top_bottom_pattern_0 option concentric" +msgid "Concentric" +msgstr "Koncentryczny" + +msgctxt "top_bottom_pattern_0 option lines" +msgid "Lines" +msgstr "Linie" + +msgctxt "top_bottom_pattern_0 option zigzag" +msgid "Zig Zag" +msgstr "Zygzak" + +msgctxt "top_bottom_thickness description" +msgid "" +"The thickness of the top/bottom layers in the print. This value divided by " +"the layer height defines the number of top/bottom layers." +msgstr "" +"Grubość górnej/dolnej warstwy wydruku. Ta wartość podzielona przez wysokość " +"warstwy definiuje liczbę warstw górnych/dolnych." + +msgctxt "top_bottom_thickness label" +msgid "Top/Bottom Thickness" +msgstr "Grubość Góra/Dół" + +msgctxt "top_layers description" +msgid "" +"The number of top layers. When calculated by the top thickness, this value " +"is rounded to a whole number." +msgstr "" +"Liczba górnych warstw. Przy obliczaniu górnej grubości wartość ta jest " +"zaokrąglana do liczby całkowitej." + +msgctxt "top_layers label" +msgid "Top Layers" +msgstr "Górne warstwy" + +msgctxt "top_thickness description" +msgid "" +"The thickness of the top layers in the print. This value divided by the " +"layer height defines the number of top layers." +msgstr "" +"Grubość górnych warstw na wydruku. Ta wartość podzielona przez wysokość " +"warstwy definiuje liczbę warstw górnych." + +msgctxt "top_thickness label" +msgid "Top Thickness" +msgstr "Grubość Góra" + +msgctxt "travel description" +msgid "travel" +msgstr "ruch jałowy" + +msgctxt "travel label" +msgid "Travel" +msgstr "Ruch Jałowy" + +msgctxt "travel_avoid_distance description" +msgid "" +"The distance between the nozzle and already printed parts when avoiding " +"during travel moves." +msgstr "" +"Odległość między dyszą a już wydrukowanym elementem, gdy są one omijane " +"podczas ruchu jałowego." + +msgctxt "travel_avoid_distance label" +msgid "Travel Avoid Distance" +msgstr "Odległość Omijania Ruchu Jałowego" + +msgctxt "travel_avoid_other_parts description" +msgid "" +"The nozzle avoids already printed parts when traveling. This option is only " +"available when combing is enabled." +msgstr "" +"Dysza unika już wydrukowanych części podczas ruchu jałowego. Ta opcja jest " +"dostępna tylko w przypadku włączonego trybu kombinowania." + +msgctxt "travel_avoid_other_parts label" +msgid "Avoid Printed Parts When Traveling" +msgstr "Unikaj Wydruk. Części Podczas Ruchu Jałowego" + +msgctxt "travel_compensate_overlapping_walls_0_enabled description" +msgid "" +"Compensate the flow for parts of an outer wall being printed where there is " +"already a wall in place." +msgstr "" +"Kompensuje przepływ dla części, których zewnętrzna ściana jest drukowana " +"kiedy jest już w tym miejscu ściana." + +msgctxt "travel_compensate_overlapping_walls_0_enabled label" +msgid "Compensate Outer Wall Overlaps" +msgstr "Komp. Zewn. Nakład. się Ścian" + +msgctxt "travel_compensate_overlapping_walls_enabled description" +msgid "" +"Compensate the flow for parts of a wall being printed where there is already " +"a wall in place." +msgstr "" +"Kompensuje przepływ dla części, których ściana jest drukowana kiedy jest już " +"w tym miejscu ściana." + +msgctxt "travel_compensate_overlapping_walls_enabled label" +msgid "Compensate Wall Overlaps" +msgstr "Kompensuj Nakładanie się Ścian" + +msgctxt "travel_compensate_overlapping_walls_x_enabled description" +msgid "" +"Compensate the flow for parts of an inner wall being printed where there is " +"already a wall in place." +msgstr "" +"Kompensuje przepływ dla części, których wewnętrzna ściana jest drukowana " +"kiedy jest już w tym miejscu ściana." + +msgctxt "travel_compensate_overlapping_walls_x_enabled label" +msgid "Compensate Inner Wall Overlaps" +msgstr "Komp. Wewn. Nakład. się Ścian" + +msgctxt "travel_retract_before_outer_wall description" +msgid "Always retract when moving to start an outer wall." +msgstr "" +"Zawsze cofaj podczas przemieszczania się do początku zewnętrznej ściany." + +msgctxt "travel_retract_before_outer_wall label" +msgid "Retract Before Outer Wall" +msgstr "Cofnij Przed Zewn. Ścianą" + +msgctxt "wall_0_inset description" +msgid "" +"Inset applied to the path of the outer wall. If the outer wall is smaller " +"than the nozzle, and printed after the inner walls, use this offset to get " +"the hole in the nozzle to overlap with the inner walls instead of the " +"outside of the model." +msgstr "" +"Wkład nałożony na ścieżkę zewnętrznej ściany. Jeśli zewnętrzna ścianka jest " +"mniejsza niż dysza i jest drukowana po wewnętrznych ściankach, użyj tego " +"przesunięcia, aby uzyskać otwór w dyszy, żeby nakładała się z wewnętrzną " +"ścianą zamiast być na zewnątrz modelu." + +msgctxt "wall_0_inset label" +msgid "Outer Wall Inset" +msgstr "Wkład Zewn. Ściany" + +msgctxt "wall_0_wipe_dist description" +msgid "" +"Distance of a travel move inserted after the outer wall, to hide the Z seam " +"better." +msgstr "" +"Długość ruchu jałowego umieszczonego po wydrukowaniu zewnętrznej ściany, aby " +"lepiej ukryć szew Z." + +msgctxt "wall_0_wipe_dist label" +msgid "Outer Wall Wipe Distance" +msgstr "Długość Czyszczenia Zewn. Ściana" + +msgctxt "wall_line_count description" +msgid "" +"The number of walls. When calculated by the wall thickness, this value is " +"rounded to a whole number." +msgstr "" +"Liczba ścian. Przy obliczaniu za pomocą grubości ściany, ta wartość jest " +"zaokrąglana do liczby całkowitej." + +msgctxt "wall_line_count label" +msgid "Wall Line Count" +msgstr "Ilość Ścian" + +msgctxt "wall_line_width description" +msgid "Width of a single wall line." +msgstr "Szerokość jednej linii ściany." + +msgctxt "wall_line_width label" +msgid "Wall Line Width" +msgstr "Szerokość Linii Ściany" + +msgctxt "wall_line_width_0 description" +msgid "" +"Width of the outermost wall line. By lowering this value, higher levels of " +"detail can be printed." +msgstr "" +"Szerokość zewnętrznej linii ściany. Przez obniżenie tej wartości wyższe " +"poziomy szczegółów mogą być drukowane." + +msgctxt "wall_line_width_0 label" +msgid "Outer Wall Line Width" +msgstr "Szerokość Linii Ściany Zewn." + +msgctxt "wall_line_width_x description" +msgid "" +"Width of a single wall line for all wall lines except the outermost one." +msgstr "" +"Szerokość jednej linii dla wszystkich linii ściany z wyjątkiem jednej " +"najbardziej zewnętrznej." + +msgctxt "wall_line_width_x label" +msgid "Inner Wall(s) Line Width" +msgstr "Szerokość Linii Ściany Wewn." + +msgctxt "wall_thickness description" +msgid "" +"The thickness of the outside walls in the horizontal direction. This value " +"divided by the wall line width defines the number of walls." +msgstr "" +"Grubość ścian zewnętrznych w kierunku poziomym. Ta wartość podzielona przez " +"szerokość linii ściany określa liczbę ścian." + +msgctxt "wall_thickness label" +msgid "Wall Thickness" +msgstr "Grubość Ściany" + +msgctxt "wireframe_bottom_delay description" +msgid "Delay time after a downward move. Only applies to Wire Printing." +msgstr "Opóźnienie po pochyłym ruchu. Dotyczy tylko Drukowania Drutu." + +msgctxt "wireframe_bottom_delay label" +msgid "WP Bottom Delay" +msgstr "DD Dolne Opóźnienie" + +msgctxt "wireframe_drag_along description" +msgid "" +"Distance with which the material of an upward extrusion is dragged along " +"with the diagonally downward extrusion. This distance is compensated for. " +"Only applies to Wire Printing." +msgstr "" +"Odległość, z jaką materiał wytłoczony z góry jest przeciągany równolegle do " +"dolnej ekstruzji. Ta odległość jest kompensowana. Dotyczy tylko Drukowania " +"Drutu." + +msgctxt "wireframe_drag_along label" +msgid "WP Drag Along" +msgstr "DD Przeciągnij Wzdłuż" + +msgctxt "wireframe_enabled description" +msgid "" +"Print only the outside surface with a sparse webbed structure, printing 'in " +"thin air'. This is realized by horizontally printing the contours of the " +"model at given Z intervals which are connected via upward and diagonally " +"downward lines." +msgstr "" +"Wydrukuj tylko zewnętrzną powierzchnię o słabej strukturze tkaniny, drukując " +"\"w cienkim powietrzu\". Jest to realizowane poprzez poziomy wydruk konturów " +"modelu w określonych przedziałach Z, które są połączone przez linie " +"skierowane w górę i w dół po porzekątnej." + +msgctxt "wireframe_enabled label" +msgid "Wire Printing" +msgstr "Drukowanie Drutu" + +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" + +msgctxt "wireframe_fall_down label" +msgid "WP Fall Down" +msgstr "DD Spadek" + +msgctxt "wireframe_flat_delay description" +msgid "" +"Delay time between two horizontal segments. Introducing such a delay can " +"cause better adhesion to previous layers at the connection points, while too " +"long delays cause sagging. Only applies to Wire Printing." +msgstr "" +"Czas opóźnienia pomiędzy dwoma poziomymi segmentami. Dzięki takiemu " +"opóźnieniu może powstać lepsza przyczepność do poprzedniej warstwy, przy " +"zbyt dużym opóźnieniu może jednak prowadzić do opadania. Odnosi się tylko do " +"Drukowania Drutu." + +msgctxt "wireframe_flat_delay label" +msgid "WP Flat Delay" +msgstr "DD Płaskie Opóźnienie" + +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. " + +msgctxt "wireframe_flow label" +msgid "WP Flow" +msgstr "DD Przepływ" + +msgctxt "wireframe_flow_connection description" +msgid "Flow compensation when going up or down. Only applies to Wire Printing." +msgstr "" +"Kompensacja przepływu w górę i w dół. Odnosi się tylko do Drukowania Drutu." + +msgctxt "wireframe_flow_connection label" +msgid "WP Connection Flow" +msgstr "DD Przepływ Połączenia" + +msgctxt "wireframe_flow_flat description" +msgid "" +"Flow compensation when printing flat lines. Only applies to Wire Printing." +msgstr "" +"Kompensacja przepływu podczas drukowania płaskich linii. Dotyczy tylko " +"Drukowania Drutu." + +msgctxt "wireframe_flow_flat label" +msgid "WP Flat Flow" +msgstr "DD Płaskie Przepływ" + +msgctxt "wireframe_height description" +msgid "" +"The height of the upward and diagonally downward lines between two " +"horizontal parts. This determines the overall density of the net structure. " +"Only applies to Wire Printing." +msgstr "" +"Wysokość linii w górę i po przekątnej w dół między dwiema częściami " +"poziomymi. Określa ona całkowitą gęstość struktury siatki. Dotyczy tylko " +"Drukowania Drutu." + +msgctxt "wireframe_height label" +msgid "WP Connection Height" +msgstr "DD Wysokość Połączenia" + +msgctxt "wireframe_nozzle_clearance description" +msgid "" +"Distance between the nozzle and horizontally downward lines. Larger " +"clearance results in diagonally downward lines with a less steep angle, " +"which in turn results in less upward connections with the next layer. Only " +"applies to Wire Printing." +msgstr "" +"Odległość między dyszą a liniami skierowanymi w dół. Większe prześwity " +"powodują ukośne linie skierowanie w dół o mniej stromym kącie, co z kolei " +"skutkuje mniejszymi połączeniami z następną warstwą. Dotyczy tylko " +"Drukowania Drutu." + +msgctxt "wireframe_nozzle_clearance label" +msgid "WP Nozzle Clearance" +msgstr "DD Prześwit Dyszy" + +msgctxt "wireframe_printspeed description" +msgid "" +"Speed at which the nozzle moves when extruding material. Only applies to " +"Wire Printing." +msgstr "" +"Prędkość, z jaką porusza się dysza podczas wytłaczania materiału. Dotyczy " +"tylko Drukowania Drutu." + +msgctxt "wireframe_printspeed label" +msgid "WP Speed" +msgstr "DD Prędkość" + +msgctxt "wireframe_printspeed_bottom description" +msgid "" +"Speed of printing the first layer, which is the only layer touching the " +"build platform. Only applies to Wire Printing." +msgstr "" +"Prędkość drukowania pierwszej warstwy, która jest jedyną warstwą dotykającą " +"stołu. Dotyczy tylko Drukowania Drutu." + +msgctxt "wireframe_printspeed_bottom label" +msgid "WP Bottom Printing Speed" +msgstr "WP Prędk. Drukowania Dołu" + +msgctxt "wireframe_printspeed_down description" +msgid "" +"Speed of printing a line diagonally downward. Only applies to Wire Printing." +msgstr "" +"Prędkość drukowania ukośnej linii w dół. Odnosi się tylko do Drukowania " +"Drutu." + +msgctxt "wireframe_printspeed_down label" +msgid "WP Downward Printing Speed" +msgstr "DD Prędkość Drukowania w Dół" + +msgctxt "wireframe_printspeed_flat description" +msgid "" +"Speed of printing the horizontal contours of the model. Only applies to Wire " +"Printing." +msgstr "" +"Prędkość drukowania poziomych konturów modelu. Odnosi się tylko do " +"Drukowania Drutu." + +msgctxt "wireframe_printspeed_flat label" +msgid "WP Horizontal Printing Speed" +msgstr "DD Prędkość Drukowania Poziomo" + +msgctxt "wireframe_printspeed_up description" +msgid "" +"Speed of printing a line upward 'in thin air'. Only applies to Wire Printing." +msgstr "" +"Szybkość drukowania linii do góry „w powietrzu”. Odnosi się tylko do " +"Drukowania Drutu." + +msgctxt "wireframe_printspeed_up label" +msgid "WP Upward Printing Speed" +msgstr "DD Prędkość Drukowania do Góry" + +msgctxt "wireframe_roof_drag_along description" +msgid "" +"The distance of the end piece of an inward line which gets dragged along " +"when going back to the outer outline of the roof. This distance is " +"compensated for. Only applies to Wire Printing." +msgstr "" +"Długość końcówki wewnętrznej linii, która jest rozciągana podczas powrotu do " +"zewnętrznej linii dachu. Trasa ta jest kompensowana. Odnosi się tylko do " +"Drukowania Drutu." + +msgctxt "wireframe_roof_drag_along label" +msgid "WP Roof Drag Along" +msgstr "DD Rozciągaj Dach" + +msgctxt "wireframe_roof_fall_down description" +msgid "" +"The distance which horizontal roof lines printed 'in thin air' fall down " +"when being printed. This distance is compensated for. Only applies to Wire " +"Printing." +msgstr "" +"Odległość, na jaką opadają linie dachu wydrukowane \"w powietrzu\" podczas " +"druku. Ta odległość jest kompensowana. Dotyczy tylko Drukowania Drutu." + +msgctxt "wireframe_roof_fall_down label" +msgid "WP Roof Fall Down" +msgstr "DD Spadek Dachu" + +msgctxt "wireframe_roof_inset description" +msgid "" +"The distance covered when making a connection from a roof outline inward. " +"Only applies to Wire Printing." +msgstr "" +"Odległość jaka zostaje pokryta podczas tworzenia połączenia z wewnętrznego " +"konturu dachu. Odnosi się tylko do Drukowania Drutu." + +msgctxt "wireframe_roof_inset label" +msgid "WP Roof Inset Distance" +msgstr "DD Długość Wkładu Dachu" + +msgctxt "wireframe_roof_outer_delay description" +msgid "" +"Time spent at the outer perimeters of hole which is to become a roof. Longer " +"times can ensure a better connection. Only applies to Wire Printing." +msgstr "" +"Czas, który poświęca się na zewnętrznych obrzeżach otworu, który ma stać się " +"dachem. Dłuższy czas może spowodować lepsze połączenie. Odnosi się tylko do " +"Drukowania Drutu." + +msgctxt "wireframe_roof_outer_delay label" +msgid "WP Roof Outer Delay" +msgstr "DD Opóźnienie Zewn. Dachu" + +msgctxt "wireframe_straight_before_down description" +msgid "" +"Percentage of a diagonally downward line which is covered by a horizontal " +"line piece. This can prevent sagging of the top most point of upward lines. " +"Only applies to Wire Printing." +msgstr "" +"Odsetek ukośnych linii ułożonych w dół, który jest przykryty poziomą linią. " +"Może to uniemożliwić zwisanie górnej krawędzi linii ułożonejw górę. Dotyczy " +"tylko Drukowania Drutu." + +msgctxt "wireframe_straight_before_down label" +msgid "WP Straighten Downward Lines" +msgstr "DD Prostuj Linie w Dół" + +msgctxt "wireframe_strategy description" +msgid "" +"Strategy for making sure two consecutive layers connect at each connection " +"point. Retraction lets the upward lines harden in the right position, but " +"may cause filament grinding. A knot can be made at the end of an upward line " +"to heighten the chance of connecting to it and to let the line cool; " +"however, it may require slow printing speeds. Another strategy is to " +"compensate for the sagging of the top of an upward line; however, the lines " +"won't always fall down as predicted." +msgstr "" +"Strategia zapewniająca podłączenie dwóch kolejnych warstw w każdym punkcie " +"połączenia. Wycofanie pozwala na utwardzenie linii idących w górę we " +"właściwej pozycji, ale może powodować \"mielenie\" filamentu. Węzeł może być " +"wykonany na końcu linii do góry, aby zwiększyć szanse na połączenie z nią i " +"pozostawić dobrą linię; może to jednak wymagać wolnych prędkości druku. Inną " +"strategią jest wyrównanie opadania górnej krawędzi. Jednak linie nie zawsze " +"spadają zgodnie z przewidywaniami." + +msgctxt "wireframe_strategy label" +msgid "WP Strategy" +msgstr "DD Strategia" + +msgctxt "wireframe_strategy option compensate" +msgid "Compensate" +msgstr "Kompensuj" + +msgctxt "wireframe_strategy option knot" +msgid "Knot" +msgstr "Węzeł" + +msgctxt "wireframe_strategy option retract" +msgid "Retract" +msgstr "Wycofanie" + +msgctxt "wireframe_top_delay description" +msgid "" +"Delay time after an upward move, so that the upward line can harden. Only " +"applies to Wire Printing." +msgstr "" +"Opóźnienie czasu po wzniesieniu w górę, tak aby linia idąca w górę mogła " +"zesztywniać. Dotyczy tylko Drukowania Drutu." + +msgctxt "wireframe_top_delay label" +msgid "WP Top Delay" +msgstr "DD Opóźnienie Góry" + +msgctxt "wireframe_top_jump description" +msgid "" +"Creates a small knot at the top of an upward line, so that the consecutive " +"horizontal layer has a better chance to connect to it. Only applies to Wire " +"Printing." +msgstr "" +"Tworzy mały węzeł u góry linii w górę, dzięki czemu kolejna pozioma warstwa " +"ma większą szansę połączenia się z nią. Dotyczy tylko Drukowania Drutu." + +msgctxt "wireframe_top_jump label" +msgid "WP Knot Size" +msgstr "DD Rozmiar Węzła" + +msgctxt "wireframe_up_half_speed description" +msgid "" +"Distance of an upward move which is extruded with half speed.\n" +"This can cause better adhesion to previous layers, while not heating the " +"material in those layers too much. Only applies to Wire Printing." +msgstr "" +"Dystans przemieszczania się ku górze, który jest wytłaczany z połową " +"szybkości.\n" +"Może to prowadzić do lepszej przyczepności do wcześniejszych warstw, bez " +"zbytniego podgrzewania materiału na tych warstwach. Odnosi się tylko do " +"Drukowania Drutu." + +msgctxt "wireframe_up_half_speed label" +msgid "WP Ease Upward" +msgstr "DD Łatwe Wzniesienie" + +msgctxt "xy_offset description" +msgid "" +"Amount of offset applied to all polygons in each layer. Positive values can " +"compensate for too big holes; negative values can compensate for too small " +"holes." +msgstr "" +"Wartość przesunięcia zastosowana do wszystkich wielokątów na każdej " +"warstwie. Dodatnie wartości mogą kompensować zbyt duże otwory; wartości " +"ujemne mogą kompensować zbyt małe otwory." + +msgctxt "xy_offset label" +msgid "Horizontal Expansion" +msgstr "Poziome Poszerzenie" + +msgctxt "z_seam_type description" +msgid "" +"Starting point of each path in a layer. When paths in consecutive layers " +"start at the same point a vertical seam may show on the print. When aligning " +"these near a user specified location, the seam is easiest to remove. When " +"placed randomly the inaccuracies at the paths' start will be less " +"noticeable. When taking the shortest path the print will be quicker." +msgstr "" +"Punkt początkowy każdej ścieżki w warstwie. Kiedy ścieżki w kolejnych " +"warstwach zaczynają się w tym samym punkcie, na wydruku może pojawić się " +"pionowy szew. Wyrównywanie ich w pobliżu określonej przez użytkownika " +"lokalizacji powoduje, że szew jest najprostszy do usunięcia. Po umieszczeniu " +"losowo niedokładności na początku ścieżki będzie mniej zauważalny. Podczas " +"najkrótszej ścieżki wydruk będzie szybszy." + +msgctxt "z_seam_type label" +msgid "Z Seam Alignment" +msgstr "Wyrównanie Szwu Z" + +msgctxt "z_seam_type option back" +msgid "User Specified" +msgstr "Określone przez Użytkownika" + +msgctxt "z_seam_type option random" +msgid "Random" +msgstr "Losowe" + +msgctxt "z_seam_type option shortest" +msgid "Shortest" +msgstr "Najkrótsze" + +msgctxt "z_seam_x description" +msgid "" +"The X coordinate of the position near where to start printing each part in a " +"layer." +msgstr "" +"Współrzędna X położenia, w pobliżu miejsca rozpoczęcia drukowania każdej " +"warstwy." + +msgctxt "z_seam_x label" +msgid "Z Seam X" +msgstr "Szew X" + +msgctxt "z_seam_y description" +msgid "" +"The Y coordinate of the position near where to start printing each part in a " +"layer." +msgstr "" +"Współrzędna Y położenia, w pobliżu miejsca rozpoczęcia drukowania każdej " +"warstwy." + +msgctxt "z_seam_y label" +msgid "Z Seam Y" +msgstr "Szew Y" diff --git a/resources/meshes/101hero-platform.stl b/resources/meshes/101hero-platform.stl new file mode 100644 index 0000000000..cd6f63c83c Binary files /dev/null and b/resources/meshes/101hero-platform.stl differ diff --git a/resources/meshes/BEEVERYCREATIVE-helloBEEprusa.stl b/resources/meshes/BEEVERYCREATIVE-helloBEEprusa.stl old mode 100644 new mode 100755 diff --git a/resources/meshes/discoeasy200.stl b/resources/meshes/discoeasy200.stl new file mode 100644 index 0000000000..f230512303 Binary files /dev/null and b/resources/meshes/discoeasy200.stl differ diff --git a/resources/qml/AboutDialog.qml b/resources/qml/AboutDialog.qml index 8c2d982b1d..7df5709654 100644 --- a/resources/qml/AboutDialog.qml +++ b/resources/qml/AboutDialog.qml @@ -22,15 +22,15 @@ UM.Dialog Image { id: logo - width: base.minimumWidth * 0.85 - height: width * (1/4.25) + width: (base.minimumWidth * 0.85) | 0 + height: (width * (1/4.25)) | 0 source: UM.Theme.getImage("logo") sourceSize.width: width sourceSize.height: height anchors.top: parent.top - anchors.topMargin: (base.minimumWidth - width) / 2 + anchors.topMargin: ((base.minimumWidth - width) / 2) | 0 anchors.horizontalCenter: parent.horizontalCenter UM.I18nCatalog{id: catalog; name:"cura"} @@ -44,7 +44,7 @@ UM.Dialog font: UM.Theme.getFont("large") anchors.right : logo.right anchors.top: logo.bottom - anchors.topMargin: UM.Theme.getSize("default_margin").height / 2 + anchors.topMargin: (UM.Theme.getSize("default_margin").height / 2) | 0 } Label @@ -125,7 +125,7 @@ UM.Dialog projectsModel.append({ name:"PyQt", description: catalog.i18nc("@label", "GUI framework bindings"), license: "GPL", url: "https://riverbankcomputing.com/software/pyqt" }); projectsModel.append({ name:"SIP", description: catalog.i18nc("@label", "C/C++ Binding library"), license: "GPL", url: "https://riverbankcomputing.com/software/sip" }); projectsModel.append({ name:"Protobuf", description: catalog.i18nc("@label", "Data interchange format"), license: "BSD", url: "https://developers.google.com/protocol-buffers" }); - projectsModel.append({ name:"SciPy", description: catalog.i18nc("@label", "Support library for scientific computing "), license: "BSD-new", url: "https://www.scipy.org/" }); + projectsModel.append({ name:"SciPy", description: catalog.i18nc("@label", "Support library for scientific computing"), license: "BSD-new", url: "https://www.scipy.org/" }); projectsModel.append({ name:"NumPy", description: catalog.i18nc("@label", "Support library for faster math"), license: "BSD", url: "http://www.numpy.org/" }); projectsModel.append({ name:"NumPy-STL", description: catalog.i18nc("@label", "Support library for handling STL files"), license: "BSD", url: "https://github.com/WoLpH/numpy-stl" }); projectsModel.append({ name:"libSavitar", description: catalog.i18nc("@label", "Support library for handling 3MF files"), license: "AGPLv3", url: "https://github.com/ultimaker/libsavitar" }); diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index bc77196b90..2c76bb0914 100755 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2015 Ultimaker B.V. +// Copyright (c) 2017 Ultimaker B.V. // Cura is released under the terms of the AGPLv3 or higher. import QtQuick 2.2 @@ -18,7 +18,24 @@ UM.MainWindow //: Cura application window title title: catalog.i18nc("@title:window","Cura"); viewportRect: Qt.rect(0, 0, (base.width - sidebar.width) / base.width, 1.0) - property bool monitoringPrint: false + property bool showPrintMonitor: false + + Connections + { + target: Printer + onShowPrintMonitor: + { + if (show) + { + topbar.startMonitoringPrint() + } + else + { + topbar.stopMonitoringPrint() + } + } + } + Component.onCompleted: { CuraApplication.setMinimumWindowSize(UM.Theme.getSize("window_minimum_size")) @@ -261,29 +278,28 @@ UM.MainWindow if (drop.urls.length > 0) { // As the drop area also supports plugins, first check if it's a plugin that was dropped. - if(drop.urls.length == 1) + if (drop.urls.length == 1) { - if(PluginRegistry.isPluginFile(drop.urls[0])) + if (PluginRegistry.isPluginFile(drop.urls[0])) { // Try to install plugin & close. var result = PluginRegistry.installPlugin(drop.urls[0]); - pluginInstallDialog.text = result.message - if(result.status == "ok") + pluginInstallDialog.text = result.message; + if (result.status == "ok") { - pluginInstallDialog.icon = StandardIcon.Information + pluginInstallDialog.icon = StandardIcon.Information; } - else if(result.status == "duplicate") + else if (result.status == "duplicate") { - pluginInstallDialog.icon = StandardIcon.Warning + pluginInstallDialog.icon = StandardIcon.Warning; } else { - pluginInstallDialog.icon = StandardIcon.Critical + pluginInstallDialog.icon = StandardIcon.Critical; } pluginInstallDialog.open(); return; } - } openDialog.handleOpenFileUrls(drop.urls); @@ -307,9 +323,14 @@ UM.MainWindow { id: view_panel - anchors.top: viewModeButton.bottom - anchors.topMargin: UM.Theme.getSize("default_margin").height; + property bool hugBottom: parent.height < viewModeButton.y + viewModeButton.height + height + UM.Theme.getSize("default_margin").height + + anchors.bottom: parent.bottom // panel is always anchored to the bottom only, because dynamically switching between bottom and top results in stretching the height + anchors.bottomMargin: hugBottom ? 0 : parent.height - (viewModeButton.y + viewModeButton.height + height + UM.Theme.getSize("default_margin").height) anchors.left: viewModeButton.left; + anchors.leftMargin: hugBottom ? viewModeButton.width + UM.Theme.getSize("default_margin").width : 0 + + property var buttonTarget: Qt.point(viewModeButton.x + viewModeButton.width / 2, viewModeButton.y + viewModeButton.height / 2) height: childrenRect.height; @@ -325,7 +346,8 @@ UM.MainWindow tooltip: ''; anchors { - top: parent.top; + top: topbar.bottom; + topMargin: UM.Theme.getSize("default_margin").height; left: parent.left; } action: Cura.Actions.open; @@ -367,19 +389,30 @@ UM.MainWindow } } + Topbar + { + id: topbar + anchors.left:parent.left + anchors.right: parent.right + anchors.top: parent.top + monitoringPrint: base.showPrintMonitor + onStartMonitoringPrint: base.showPrintMonitor = true + onStopMonitoringPrint: base.showPrintMonitor = false + } + Sidebar { id: sidebar; anchors { - top: parent.top; + top: topbar.bottom; bottom: parent.bottom; right: parent.right; } z: 1 - onMonitoringPrintChanged: base.monitoringPrint = monitoringPrint width: UM.Theme.getSize("sidebar").width; + monitoringPrint: base.showPrintMonitor } Button @@ -408,13 +441,13 @@ UM.MainWindow color: UM.Theme.getColor("viewport_overlay") anchors { - top: parent.top + top: topbar.bottom bottom: parent.bottom left:parent.left right: sidebar.left } visible: opacity > 0 - opacity: base.monitoringPrint ? 0.75 : 0 + opacity: base.showPrintMonitor ? 0.75 : 0 Behavior on opacity { NumberAnimation { duration: 100; } } @@ -429,12 +462,10 @@ UM.MainWindow Loader { sourceComponent: Cura.MachineManager.printerOutputDevices.length > 0 ? Cura.MachineManager.printerOutputDevices[0].monitorItem: null - visible: base.monitoringPrint + visible: base.showPrintMonitor anchors.horizontalCenter: parent.horizontalCenter anchors.verticalCenter: parent.verticalCenter anchors.horizontalCenterOffset: - UM.Theme.getSize("sidebar").width / 2 - - } UM.MessageStack diff --git a/resources/qml/DiscardOrKeepProfileChangesDialog.qml b/resources/qml/DiscardOrKeepProfileChangesDialog.qml index f3c790e416..74b313a6b5 100644 --- a/resources/qml/DiscardOrKeepProfileChangesDialog.qml +++ b/resources/qml/DiscardOrKeepProfileChangesDialog.qml @@ -109,20 +109,20 @@ UM.Dialog role: "label" title: catalog.i18nc("@title:column", "Profile settings") delegate: labelDelegate - width: tableView.width * 0.4 + width: (tableView.width * 0.4) | 0 } TableViewColumn { role: "original_value" title: catalog.i18nc("@title:column", "Default") - width: tableView.width * 0.3 + width: (tableView.width * 0.3) | 0 delegate: defaultDelegate } TableViewColumn { role: "user_value" title: catalog.i18nc("@title:column", "Customized") - width: tableView.width * 0.3 - 1 + width: (tableView.width * 0.3) | 0 } section.property: "category" section.delegate: Label diff --git a/resources/qml/JobSpecs.qml b/resources/qml/JobSpecs.qml index 13d855d993..fa0ca087b7 100644 --- a/resources/qml/JobSpecs.qml +++ b/resources/qml/JobSpecs.qml @@ -157,19 +157,6 @@ Item { width: parent.width height: parent.height - UM.RecolorImage - { - id: timeIcon - anchors.right: timeSpecPerFeatureTooltipArea.left - anchors.rightMargin: UM.Theme.getSize("default_margin").width/2 - anchors.verticalCenter: parent.verticalCenter - width: UM.Theme.getSize("save_button_specs_icons").width - height: UM.Theme.getSize("save_button_specs_icons").height - sourceSize.width: width - sourceSize.height: width - color: UM.Theme.getColor("text_subtext") - source: UM.Theme.getIcon("print_time") - } UM.TooltipArea { id: timeSpecPerFeatureTooltipArea @@ -205,10 +192,25 @@ Item { anchors.rightMargin: UM.Theme.getSize("default_margin").width anchors.verticalCenter: parent.verticalCenter + UM.RecolorImage + { + id: timeIcon + anchors.left: parent.left + anchors.top: parent.top + anchors.verticalCenter: parent.verticalCenter + width: UM.Theme.getSize("save_button_specs_icons").width + height: UM.Theme.getSize("save_button_specs_icons").height + sourceSize.width: width + sourceSize.height: width + color: UM.Theme.getColor("text_subtext") + source: UM.Theme.getIcon("print_time") + } + Text { id: timeSpec - anchors.left: parent.left + anchors.left: timeIcon.right + anchors.leftMargin: UM.Theme.getSize("default_margin").width / 2 anchors.top: parent.top font: UM.Theme.getFont("small") color: UM.Theme.getColor("text_subtext") diff --git a/resources/qml/Menus/ContextMenu.qml b/resources/qml/Menus/ContextMenu.qml index 915d320f41..86e146cb17 100755 --- a/resources/qml/Menus/ContextMenu.qml +++ b/resources/qml/Menus/ContextMenu.qml @@ -78,6 +78,7 @@ Menu Dialog { id: multiplyDialog + modality: Qt.ApplicationModal title: catalog.i18ncp("@title:window", "Multiply Selected Model", "Multiply Selected Models", UM.Selection.selectionCount) diff --git a/resources/qml/Menus/NozzleMenu.qml b/resources/qml/Menus/NozzleMenu.qml index 44f8cc8c85..a9fffc84ab 100644 --- a/resources/qml/Menus/NozzleMenu.qml +++ b/resources/qml/Menus/NozzleMenu.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2016 Ultimaker B.V. +// Copyright (c) 2017 Ultimaker B.V. // Cura is released under the terms of the AGPLv3 or higher. import QtQuick 2.2 @@ -23,7 +23,7 @@ Menu if(printerConnected && Cura.MachineManager.printerOutputDevices[0].hotendIds.length > extruderIndex) { var nozzleName = Cura.MachineManager.printerOutputDevices[0].hotendIds[extruderIndex]; - return catalog.i18nc("@title:menuitem %1 is the value from the printer", "Automatic: %1").arg(nozzleName); + return catalog.i18nc("@title:menuitem %1 is the nozzle currently loaded in the printer", "Automatic: %1").arg(nozzleName); } return ""; } diff --git a/resources/qml/OpenFilesIncludingProjectsDialog.qml b/resources/qml/OpenFilesIncludingProjectsDialog.qml index c817b03541..3c7275a2a4 100644 --- a/resources/qml/OpenFilesIncludingProjectsDialog.qml +++ b/resources/qml/OpenFilesIncludingProjectsDialog.qml @@ -59,7 +59,7 @@ UM.Dialog anchors.right: parent.right spacing: 10 - Text + Label { text: catalog.i18nc("@text:window", "We have found one or more project file(s) within the files you have selected. You can open only one project file at a time. We suggest to only import models from those files. Would you like to proceed?") anchors.left: parent.left diff --git a/resources/qml/Preferences/GeneralPage.qml b/resources/qml/Preferences/GeneralPage.qml index 9248752f70..7c4ad16e10 100755 --- a/resources/qml/Preferences/GeneralPage.qml +++ b/resources/qml/Preferences/GeneralPage.qml @@ -86,6 +86,8 @@ UM.PreferencesPage centerOnSelectCheckbox.checked = boolCheck(UM.Preferences.getValue("view/center_on_select")) UM.Preferences.resetPreference("view/invert_zoom"); invertZoomCheckbox.checked = boolCheck(UM.Preferences.getValue("view/invert_zoom")) + UM.Preferences.resetPreference("view/zoom_to_mouse"); + zoomToMouseCheckbox.checked = boolCheck(UM.Preferences.getValue("view/zoom_to_mouse")) UM.Preferences.resetPreference("view/top_layer_count"); topLayerCountCheckbox.checked = boolCheck(UM.Preferences.getValue("view/top_layer_count")) @@ -152,9 +154,10 @@ UM.PreferencesPage append({ text: "Suomi", code: "fi" }) append({ text: "Français", code: "fr" }) append({ text: "Italiano", code: "it" }) - //append({ text: "日本語", code: "jp" }) - //append({ text: "한국어", code: "ko" }) + append({ text: "日本語", code: "jp" }) + append({ text: "한국어", code: "ko" }) append({ text: "Nederlands", code: "nl" }) + append({ text: "Polski", code: "pl" }) append({ text: "Português do Brasil", code: "ptbr" }) append({ text: "Русский", code: "ru" }) append({ text: "Türkçe", code: "tr" }) @@ -219,7 +222,11 @@ UM.PreferencesPage id: themeList Component.onCompleted: { - append({ text: catalog.i18nc("@item:inlistbox", "Ultimaker"), code: "cura" }) + var themes = UM.Theme.getThemes() + for (var i = 0; i < themes.length; i++) + { + append({ text: themes[i].name.toString(), code: themes[i].id.toString() }); + } } } @@ -233,6 +240,7 @@ UM.PreferencesPage return i } } + return 0; } onActivated: UM.Preferences.setValue("general/theme", model.get(index).code) @@ -256,7 +264,7 @@ UM.PreferencesPage - Label + Label { id: languageCaption @@ -349,6 +357,20 @@ UM.PreferencesPage } } + UM.TooltipArea { + width: childrenRect.width; + height: childrenRect.height; + text: catalog.i18nc("@info:tooltip", "Should zooming move in the direction of the mouse?") + + CheckBox + { + id: zoomToMouseCheckbox + text: catalog.i18nc("@action:button", "Zoom toward mouse direction"); + checked: boolCheck(UM.Preferences.getValue("view/zoom_to_mouse")) + onClicked: UM.Preferences.setValue("view/zoom_to_mouse", checked) + } + } + UM.TooltipArea { width: childrenRect.width height: childrenRect.height diff --git a/resources/qml/Preferences/MachinesPage.qml b/resources/qml/Preferences/MachinesPage.qml index 11e82ea054..4a62027f66 100644 --- a/resources/qml/Preferences/MachinesPage.qml +++ b/resources/qml/Preferences/MachinesPage.qml @@ -66,7 +66,7 @@ UM.ManagementPage visible: base.currentItem != null anchors.fill: parent - Text + Label { id: machineName text: base.currentItem && base.currentItem.name ? base.currentItem.name : "" @@ -146,34 +146,34 @@ UM.ManagementPage property var connectedPrinter: printerConnected ? Cura.MachineManager.printerOutputDevices[0] : null property bool printerAcceptsCommands: printerConnected && Cura.MachineManager.printerOutputDevices[0].acceptsCommands - Text + Label { text: catalog.i18nc("@label", "Printer type:") visible: base.currentItem && "definition_name" in base.currentItem.metadata } - Text + Label { text: (base.currentItem && "definition_name" in base.currentItem.metadata) ? base.currentItem.metadata.definition_name : "" } - Text + Label { text: catalog.i18nc("@label", "Connection:") visible: base.currentItem && base.currentItem.id == Cura.MachineManager.activeMachineId } - Text + Label { - width: parent.width * 0.7 + width: (parent.width * 0.7) | 0 text: machineInfo.printerConnected ? machineInfo.connectedPrinter.connectionText : catalog.i18nc("@info:status", "The printer is not connected.") visible: base.currentItem && base.currentItem.id == Cura.MachineManager.activeMachineId wrapMode: Text.WordWrap } - Text + Label { text: catalog.i18nc("@label", "State:") visible: base.currentItem && base.currentItem.id == Cura.MachineManager.activeMachineId && machineInfo.printerAcceptsCommands } Label { - width: parent.width * 0.7 + width: (parent.width * 0.7) | 0 text: { if(!machineInfo.printerConnected || !machineInfo.printerAcceptsCommands) { diff --git a/resources/qml/Preferences/MaterialView.qml b/resources/qml/Preferences/MaterialView.qml index 30edb063c1..776c4c303e 100644 --- a/resources/qml/Preferences/MaterialView.qml +++ b/resources/qml/Preferences/MaterialView.qml @@ -1,5 +1,5 @@ -// Copyright (c) 2016 Ultimaker B.V. -// Uranium is released under the terms of the AGPLv3 or higher. +// Copyright (c) 2017 Ultimaker B.V. +// Cura is released under the terms of the AGPLv3 or higher. import QtQuick 2.1 import QtQuick.Controls 1.3 @@ -16,8 +16,8 @@ TabView property bool editingEnabled: false; property string currency: UM.Preferences.getValue("cura/currency") ? UM.Preferences.getValue("cura/currency") : "€" - property real firstColumnWidth: width * 0.45 - property real secondColumnWidth: width * 0.45 + property real firstColumnWidth: (width * 0.45) | 0 + property real secondColumnWidth: (width * 0.45) | 0 property string containerId: "" property var materialPreferenceValues: UM.Preferences.getValue("cura/material_settings") ? JSON.parse(UM.Preferences.getValue("cura/material_settings")) : {} @@ -53,7 +53,7 @@ TabView flickableItem.flickableDirection: Flickable.VerticalFlick frameVisible: true - property real columnWidth: Math.floor(viewport.width * 0.5) - UM.Theme.getSize("default_margin").width + property real columnWidth: (viewport.width * 0.5 - UM.Theme.getSize("default_margin").width) | 0 Flow { @@ -115,8 +115,8 @@ TabView id: colorSelector color: properties.color_code - width: colorLabel.height * 0.75 - height: colorLabel.height * 0.75 + width: (colorLabel.height * 0.75) | 0 + height: (colorLabel.height * 0.75) | 0 border.width: UM.Theme.getSize("default_lining").height anchors.verticalCenter: parent.verticalCenter @@ -168,8 +168,15 @@ TabView { // This does not use a SettingPropertyProvider, because we need to make the change to all containers // which derive from the same base_file - base.setMetaDataEntry("approximate_diameter", properties.approximate_diameter, Math.round(value).toString()); + var old_diameter = Cura.ContainerManager.getContainerProperty(base.containerId, "material_diameter", "value").toString(); + var old_approximate_diameter = Cura.ContainerManager.getContainerMetaDataEntry(base.containerId, "approximate_diameter"); + base.setMetaDataEntry("approximate_diameter", old_approximate_diameter, Math.round(value).toString()); base.setMetaDataEntry("properties/diameter", properties.diameter, value); + var new_approximate_diameter = Cura.ContainerManager.getContainerMetaDataEntry(base.containerId, "approximate_diameter"); + if (Cura.MachineManager.filterMaterialsByMachine && new_approximate_diameter != Cura.MachineManager.activeMachine.approximateMaterialDiameter) + { + Cura.MaterialManager.showMaterialWarningMessage(base.containerId, old_diameter); + } Cura.ContainerManager.setContainerProperty(base.containerId, "material_diameter", "value", value); } onValueChanged: updateCostPerMeter() diff --git a/resources/qml/Preferences/MaterialsPage.qml b/resources/qml/Preferences/MaterialsPage.qml index 0921b8c7c2..0f51c121fe 100644 --- a/resources/qml/Preferences/MaterialsPage.qml +++ b/resources/qml/Preferences/MaterialsPage.qml @@ -1,5 +1,5 @@ -// Copyright (c) 2016 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. +//Copyright (c) 2017 Ultimaker B.V. +//Cura is released under the terms of the AGPLv3 or higher. import QtQuick 2.1 import QtQuick.Controls 1.1 @@ -20,7 +20,7 @@ UM.ManagementPage objectList.positionViewAtBeginning(); } - model: UM.InstanceContainersModel + model: Cura.MaterialsModel { filter: { @@ -53,21 +53,21 @@ UM.ManagementPage Row { - spacing: UM.Theme.getSize("default_margin").width / 2; - anchors.left: parent.left; - anchors.leftMargin: UM.Theme.getSize("default_margin").width; - anchors.right: parent.right; + spacing: (UM.Theme.getSize("default_margin").width / 2) | 0 + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("default_margin").width + anchors.right: parent.right Rectangle { - width: parent.height * 0.8 - height: parent.height * 0.8 + width: (parent.height * 0.8) | 0 + height: (parent.height * 0.8) | 0 color: model.metadata.color_code border.color: isCurrentItem ? palette.highlightedText : palette.text; anchors.verticalCenter: parent.verticalCenter } Label { - width: parent.width * 0.3 + width: (parent.width * 0.3) | 0 text: model.metadata.material elide: Text.ElideRight font.italic: model.id == activeId @@ -139,6 +139,7 @@ UM.ManagementPage enabled: base.currentItem != null && base.currentItem.id != Cura.MachineManager.activeMaterialId && Cura.MachineManager.hasMaterials onClicked: { + forceActiveFocus(); Cura.MachineManager.setActiveMaterial(base.currentItem.id) currentItem = base.model.getItem(base.objectList.currentIndex) // Refresh the current item. } @@ -149,6 +150,7 @@ UM.ManagementPage iconName: "list-add" onClicked: { + forceActiveFocus(); var material_id = Cura.ContainerManager.createMaterial() if(material_id == "") { @@ -168,6 +170,7 @@ UM.ManagementPage enabled: base.currentItem != null onClicked: { + forceActiveFocus(); var base_file = Cura.ContainerManager.getContainerMetaDataEntry(base.currentItem.id, "base_file") // We need to copy the base container instead of the specific variant. var material_id = base_file == "" ? Cura.ContainerManager.duplicateMaterial(base.currentItem.id): Cura.ContainerManager.duplicateMaterial(base_file) @@ -187,20 +190,32 @@ UM.ManagementPage text: catalog.i18nc("@action:button", "Remove"); iconName: "list-remove"; enabled: base.currentItem != null && !base.currentItem.readOnly && !Cura.ContainerManager.isContainerUsed(base.currentItem.id) - onClicked: confirmDialog.open() + onClicked: + { + forceActiveFocus(); + confirmDialog.open(); + } }, Button { text: catalog.i18nc("@action:button", "Import"); iconName: "document-import"; - onClicked: importDialog.open(); + onClicked: + { + forceActiveFocus(); + importDialog.open(); + } visible: true; }, Button { text: catalog.i18nc("@action:button", "Export") iconName: "document-export" - onClicked: exportDialog.open() + onClicked: + { + forceActiveFocus(); + exportDialog.open(); + } enabled: currentItem != null } ] diff --git a/resources/qml/Preferences/ProfileTab.qml b/resources/qml/Preferences/ProfileTab.qml index 2c3bb0a2eb..8c56892c1d 100644 --- a/resources/qml/Preferences/ProfileTab.qml +++ b/resources/qml/Preferences/ProfileTab.qml @@ -37,7 +37,7 @@ Tab anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("default_margin").width anchors.right: parent.right - text: styleData.value + text: (styleData.value.substr(0,1) == "=") ? catalog.i18nc("@info:status", "Calculated") : styleData.value font.strikeout: styleData.column == 1 && quality == Cura.MachineManager.globalQualityId && setting.user_value != "" font.italic: setting.profile_value_source == "quality_changes" || (quality == Cura.MachineManager.globalQualityId && setting.user_value != "") opacity: font.strikeout ? 0.5 : 1 @@ -51,14 +51,14 @@ Tab { role: "label" title: catalog.i18nc("@title:column", "Setting") - width: parent.width * 0.4 + width: (parent.width * 0.4) | 0 delegate: itemDelegate } TableViewColumn { role: "profile_value" title: catalog.i18nc("@title:column", "Profile") - width: parent.width * 0.18 + width: (parent.width * 0.18) | 0 delegate: itemDelegate } TableViewColumn @@ -66,14 +66,14 @@ Tab role: "user_value" title: catalog.i18nc("@title:column", "Current"); visible: quality == Cura.MachineManager.globalQualityId - width: parent.width * 0.18 + width: (parent.width * 0.18) | 0 delegate: itemDelegate } TableViewColumn { role: "unit" title: catalog.i18nc("@title:column", "Unit") - width: parent.width * 0.14 + width: (parent.width * 0.14) | 0 delegate: itemDelegate } diff --git a/resources/qml/PrintMonitor.qml b/resources/qml/PrintMonitor.qml index eacdc17883..41e8794014 100644 --- a/resources/qml/PrintMonitor.qml +++ b/resources/qml/PrintMonitor.qml @@ -320,7 +320,17 @@ Column Rectangle //Input field for pre-heat temperature. { id: preheatTemperatureControl - color: !enabled ? UM.Theme.getColor("setting_control_disabled") : UM.Theme.getColor("setting_validation_ok") + color: !enabled ? UM.Theme.getColor("setting_control_disabled") : showError ? UM.Theme.getColor("setting_validation_error") : UM.Theme.getColor("setting_validation_ok") + property var showError: + { + if(bedTemperature.properties.maximum_value != "None" && bedTemperature.properties.maximum_value < parseInt(preheatTemperatureInput.text)) + { + return true; + } else + { + return false; + } + } enabled: { if (connectedPrinter == null) diff --git a/resources/qml/SaveButton.qml b/resources/qml/SaveButton.qml index 411da0c392..2ea7dafc91 100644 --- a/resources/qml/SaveButton.qml +++ b/resources/qml/SaveButton.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2015 Ultimaker B.V. +// Copyright (c) 2017 Ultimaker B.V. // Cura is released under the terms of the AGPLv3 or higher. import QtQuick 2.2 @@ -24,7 +24,7 @@ Item { { if(!activity) { - return catalog.i18nc("@label:PrintjobStatus", "Please load a 3d model"); + return catalog.i18nc("@label:PrintjobStatus", "Please load a 3D model"); } switch(base.backendState) diff --git a/resources/qml/Settings/SettingCategory.qml b/resources/qml/Settings/SettingCategory.qml index 75514e7c1b..e8c0983398 100644 --- a/resources/qml/Settings/SettingCategory.qml +++ b/resources/qml/Settings/SettingCategory.qml @@ -14,10 +14,14 @@ Button { style: UM.Theme.styles.sidebar_category; - signal showTooltip(string text); - signal hideTooltip(); + signal showTooltip(string text) + signal hideTooltip() signal contextMenuRequested() signal showAllHiddenInheritedSettings(string category_id) + signal focusReceived() + signal setActiveFocusToNextSetting(bool forward) + + property var focusItem: base text: definition.label iconSource: UM.Theme.getIcon(definition.icon) @@ -25,7 +29,33 @@ Button { checkable: true checked: definition.expanded - onClicked: { forceActiveFocus(); definition.expanded ? settingDefinitionsModel.collapse(definition.key) : settingDefinitionsModel.expandAll(definition.key) } + onClicked: + { + forceActiveFocus(); + if(definition.expanded) + { + settingDefinitionsModel.collapse(definition.key); + } else { + settingDefinitionsModel.expandAll(definition.key); + } + } + onActiveFocusChanged: + { + if(activeFocus) + { + base.focusReceived(); + } + } + + Keys.onTabPressed: + { + base.setActiveFocusToNextSetting(true) + } + Keys.onBacktabPressed: + { + base.setActiveFocusToNextSetting(false) + } + UM.SimpleButton { id: settingsButton diff --git a/resources/qml/Settings/SettingCheckBox.qml b/resources/qml/Settings/SettingCheckBox.qml index 97a72a026e..4ef7f59a77 100644 --- a/resources/qml/Settings/SettingCheckBox.qml +++ b/resources/qml/Settings/SettingCheckBox.qml @@ -11,6 +11,7 @@ import UM 1.2 as UM SettingItem { id: base + property var focusItem: control contents: MouseArea { @@ -49,12 +50,35 @@ SettingItem } } + Keys.onSpacePressed: + { + forceActiveFocus(); + propertyProvider.setPropertyValue("value", !checked); + } + onClicked: { forceActiveFocus(); propertyProvider.setPropertyValue("value", !checked); } + Keys.onTabPressed: + { + base.setActiveFocusToNextSetting(true) + } + Keys.onBacktabPressed: + { + base.setActiveFocusToNextSetting(false) + } + + onActiveFocusChanged: + { + if(activeFocus) + { + base.focusReceived(); + } + } + Rectangle { anchors @@ -67,7 +91,7 @@ SettingItem color: { - if (!enabled) + if(!enabled) { return UM.Theme.getColor("setting_control_disabled") } @@ -75,14 +99,22 @@ SettingItem { return UM.Theme.getColor("setting_control_highlight") } - else - { - return UM.Theme.getColor("setting_control") - } + return UM.Theme.getColor("setting_control") } border.width: UM.Theme.getSize("default_lining").width - border.color: !enabled ? UM.Theme.getColor("setting_control_disabled_border") : control.containsMouse ? UM.Theme.getColor("setting_control_border_highlight") : UM.Theme.getColor("setting_control_border") + border.color: + { + if(!enabled) + { + return UM.Theme.getColor("setting_control_disabled_border") + } + if(control.containsMouse || control.activeFocus) + { + return UM.Theme.getColor("setting_control_border_highlight") + } + return UM.Theme.getColor("setting_control_border") + } UM.RecolorImage { anchors.verticalCenter: parent.verticalCenter diff --git a/resources/qml/Settings/SettingComboBox.qml b/resources/qml/Settings/SettingComboBox.qml index c655630a8e..c29ac123d6 100644 --- a/resources/qml/Settings/SettingComboBox.qml +++ b/resources/qml/Settings/SettingComboBox.qml @@ -10,6 +10,7 @@ import UM 1.1 as UM SettingItem { id: base + property var focusItem: control contents: ComboBox { @@ -33,21 +34,29 @@ SettingItem { color: { - if (!enabled) + if(!enabled) { return UM.Theme.getColor("setting_control_disabled") } - if(control.hovered || base.activeFocus) + if(control.hovered || control.activeFocus) { return UM.Theme.getColor("setting_control_highlight") } - else - { - return UM.Theme.getColor("setting_control") - } + return UM.Theme.getColor("setting_control") + } + border.width: UM.Theme.getSize("default_lining").width + border.color: + { + if(!enabled) + { + return UM.Theme.getColor("setting_control_disabled_border") + } + if(control.hovered || control.activeFocus) + { + return UM.Theme.getColor("setting_control_border_highlight") + } + return UM.Theme.getColor("setting_control_border") } - border.width: UM.Theme.getSize("default_lining").width; - border.color: !enabled ? UM.Theme.getColor("setting_control_disabled_border") : control.hovered ? UM.Theme.getColor("setting_control_border_highlight") : UM.Theme.getColor("setting_control_border"); } label: Item { @@ -86,7 +95,28 @@ SettingItem } } - onActivated: { forceActiveFocus(); propertyProvider.setPropertyValue("value", definition.options[index].key) } + onActivated: + { + forceActiveFocus(); + propertyProvider.setPropertyValue("value", definition.options[index].key); + } + + onActiveFocusChanged: + { + if(activeFocus) + { + base.focusReceived(); + } + } + + Keys.onTabPressed: + { + base.setActiveFocusToNextSetting(true) + } + Keys.onBacktabPressed: + { + base.setActiveFocusToNextSetting(false) + } Binding { diff --git a/resources/qml/Settings/SettingExtruder.qml b/resources/qml/Settings/SettingExtruder.qml index 4a946d16f8..15496eaa8b 100644 --- a/resources/qml/Settings/SettingExtruder.qml +++ b/resources/qml/Settings/SettingExtruder.qml @@ -11,6 +11,7 @@ import Cura 1.0 as Cura SettingItem { id: base + property var focusItem: control contents: ComboBox { @@ -27,6 +28,23 @@ SettingItem propertyProvider.setPropertyValue("value", model.getItem(index).index); } + onActiveFocusChanged: + { + if(activeFocus) + { + base.focusReceived(); + } + } + + Keys.onTabPressed: + { + base.setActiveFocusToNextSetting(true) + } + Keys.onBacktabPressed: + { + base.setActiveFocusToNextSetting(false) + } + currentIndex: propertyProvider.properties.value MouseArea @@ -53,7 +71,7 @@ SettingItem { color: { - if (!enabled) + if(!enabled) { return UM.Theme.getColor("setting_control_disabled"); } @@ -61,23 +79,19 @@ SettingItem { return UM.Theme.getColor("setting_control_highlight"); } - else - { - return UM.Theme.getColor("setting_control"); - } + return UM.Theme.getColor("setting_control"); } border.width: UM.Theme.getSize("default_lining").width border.color: { if(!enabled) { - return UM.Theme.getColor("setting_control_disabled_border"); + return UM.Theme.getColor("setting_control_disabled_border") } - if(control.hovered || base.activeFocus) + if(control.hovered || control.activeFocus) { - UM.Theme.getColor("setting_control_border_highlight") + return UM.Theme.getColor("setting_control_border_highlight") } - return UM.Theme.getColor("setting_control_border") } } diff --git a/resources/qml/Settings/SettingItem.qml b/resources/qml/Settings/SettingItem.qml index 7108d2a04c..112edb5049 100644 --- a/resources/qml/Settings/SettingItem.qml +++ b/resources/qml/Settings/SettingItem.qml @@ -32,9 +32,11 @@ Item { property var stackLevels: propertyProvider.stackLevels property var stackLevel: stackLevels[0] + signal focusReceived() + signal setActiveFocusToNextSetting(bool forward) signal contextMenuRequested() - signal showTooltip(string text); - signal hideTooltip(); + signal showTooltip(string text) + signal hideTooltip() signal showAllHiddenInheritedSettings(string category_id) property string tooltipText: { diff --git a/resources/qml/Settings/SettingOptionalExtruder.qml b/resources/qml/Settings/SettingOptionalExtruder.qml index 1f546b518c..0fd36564a1 100644 --- a/resources/qml/Settings/SettingOptionalExtruder.qml +++ b/resources/qml/Settings/SettingOptionalExtruder.qml @@ -11,6 +11,7 @@ import Cura 1.0 as Cura SettingItem { id: base + property var focusItem: control contents: ComboBox { @@ -31,6 +32,23 @@ SettingItem propertyProvider.setPropertyValue("value", model.getItem(index).index); } + onActiveFocusChanged: + { + if(activeFocus) + { + base.focusReceived(); + } + } + + Keys.onTabPressed: + { + base.setActiveFocusToNextSetting(true) + } + Keys.onBacktabPressed: + { + base.setActiveFocusToNextSetting(false) + } + Binding { target: control @@ -72,31 +90,27 @@ SettingItem { color: { - if (!enabled) + if(!enabled) { return UM.Theme.getColor("setting_control_disabled"); } - if(control.hovered || base.activeFocus) + if(control.hovered || control.activeFocus) { return UM.Theme.getColor("setting_control_highlight"); } - else - { - return UM.Theme.getColor("setting_control"); - } + return UM.Theme.getColor("setting_control"); } border.width: UM.Theme.getSize("default_lining").width border.color: { if(!enabled) { - return UM.Theme.getColor("setting_control_disabled_border"); + return UM.Theme.getColor("setting_control_disabled_border") } - if(control.hovered || base.activeFocus) + if(control.hovered || control.activeFocus) { - UM.Theme.getColor("setting_control_border_highlight") + return UM.Theme.getColor("setting_control_border_highlight") } - return UM.Theme.getColor("setting_control_border") } } diff --git a/resources/qml/Settings/SettingTextField.qml b/resources/qml/Settings/SettingTextField.qml index 059980bba2..2991c24d57 100644 --- a/resources/qml/Settings/SettingTextField.qml +++ b/resources/qml/Settings/SettingTextField.qml @@ -9,6 +9,7 @@ import UM 1.1 as UM SettingItem { id: base + property var focusItem: input contents: Rectangle { @@ -17,10 +18,21 @@ SettingItem anchors.fill: parent border.width: UM.Theme.getSize("default_lining").width - border.color: !enabled ? UM.Theme.getColor("setting_control_disabled_border") : hovered ? UM.Theme.getColor("setting_control_border_highlight") : UM.Theme.getColor("setting_control_border") + border.color: + { + if(!enabled) + { + return UM.Theme.getColor("setting_control_disabled_border") + } + if(hovered || input.activeFocus) + { + return UM.Theme.getColor("setting_control_border_highlight") + } + return UM.Theme.getColor("setting_control_border") + } color: { - if (!enabled) + if(!enabled) { return UM.Theme.getColor("setting_control_disabled") } @@ -83,6 +95,15 @@ SettingItem verticalCenter: parent.verticalCenter } + Keys.onTabPressed: + { + base.setActiveFocusToNextSetting(true) + } + Keys.onBacktabPressed: + { + base.setActiveFocusToNextSetting(false) + } + Keys.onReleased: { propertyProvider.setPropertyValue("value", text) @@ -93,6 +114,14 @@ SettingItem propertyProvider.setPropertyValue("value", text) } + onActiveFocusChanged: + { + if(activeFocus) + { + base.focusReceived(); + } + } + color: !enabled ? UM.Theme.getColor("setting_control_disabled_text") : UM.Theme.getColor("setting_control_text") font: UM.Theme.getFont("default"); diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index 7cb45ff75f..822322ad2d 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -142,6 +142,7 @@ Item style: UM.Theme.styles.scrollview; flickableItem.flickableDirection: Flickable.VerticalFlick; + __wheelAreaScrollSpeed: 75; // Scroll three lines in one scroll event ListView { @@ -168,6 +169,8 @@ Item onVisibilityChanged: Cura.SettingInheritanceManager.forceUpdate() } + property var indexWithFocus: -1 + delegate: Loader { id: delegate @@ -298,11 +301,53 @@ Item } Cura.SettingInheritanceManager.manualRemoveOverride(category_id) } + onFocusReceived: + { + contents.indexWithFocus = index; + animateContentY.from = contents.contentY; + contents.positionViewAtIndex(index, ListView.Contain); + animateContentY.to = contents.contentY; + animateContentY.running = true; + } + onSetActiveFocusToNextSetting: + { + if(forward == undefined || forward) + { + contents.currentIndex = contents.indexWithFocus + 1; + while(contents.currentItem && contents.currentItem.height <= 0) + { + contents.currentIndex++; + } + if(contents.currentItem) + { + contents.currentItem.item.focusItem.forceActiveFocus(); + } + } + else + { + contents.currentIndex = contents.indexWithFocus - 1; + while(contents.currentItem && contents.currentItem.height <= 0) + { + contents.currentIndex--; + } + if(contents.currentItem) + { + contents.currentItem.item.focusItem.forceActiveFocus(); + } + } + } } } UM.I18nCatalog { id: catalog; name: "cura"; } + NumberAnimation { + id: animateContentY + target: contents + property: "contentY" + duration: 50 + } + add: Transition { SequentialAnimation { NumberAnimation { properties: "height"; from: 0; duration: 100 } diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml index ec187cef91..db5f60862d 100755 --- a/resources/qml/Sidebar.qml +++ b/resources/qml/Sidebar.qml @@ -15,24 +15,16 @@ Rectangle id: base; property int currentModeIndex; - property bool monitoringPrint: false; // When adding more "tabs", one want to replace this bool with a ListModel property bool hideSettings: PrintInformation.preSliced - Connections - { - target: Printer - onShowPrintMonitor: - { - base.monitoringPrint = show; - showSettings.checked = !show; - showMonitor.checked = show; - } - } // Is there an output device for this printer? property bool printerConnected: Cura.MachineManager.printerOutputDevices.length != 0 property bool printerAcceptsCommands: printerConnected && Cura.MachineManager.printerOutputDevices[0].acceptsCommands + property var connectedPrinter: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null property int backendState: UM.Backend.state; + property bool monitoringPrint: false + color: UM.Theme.getColor("sidebar") UM.I18nCatalog { id: catalog; name:"cura"} @@ -88,227 +80,10 @@ Rectangle } } - // Printer selection and mode selection buttons for changing between Setting & Monitor print mode - Rectangle - { - id: sidebarHeaderBar - anchors.left: parent.left - anchors.right: parent.right - height: childrenRect.height - color: UM.Theme.getColor("sidebar_header_bar") - - Row - { - anchors.left: parent.left - anchors.right: parent.right - anchors.rightMargin: UM.Theme.getSize("default_margin").width - spacing: UM.Theme.getSize("default_margin").width - - ToolButton - { - id: machineSelection - text: Cura.MachineManager.activeMachineName - - width: parent.width - (showSettings.width + showMonitor.width + 2 * UM.Theme.getSize("default_margin").width) - height: UM.Theme.getSize("sidebar_header").height - tooltip: Cura.MachineManager.activeMachineName - - anchors.verticalCenter: parent.verticalCenter - style: ButtonStyle { - background: Rectangle { - color: { - if(control.pressed) { - return UM.Theme.getColor("sidebar_header_active"); - } else if(control.hovered) { - return UM.Theme.getColor("sidebar_header_hover"); - } else { - return UM.Theme.getColor("sidebar_header_bar"); - } - } - Behavior on color { ColorAnimation { duration: 50; } } - - Rectangle { - id: underline; - - anchors.left: parent.left - anchors.right: parent.right - anchors.bottom: parent.bottom - height: UM.Theme.getSize("sidebar_header_highlight").height - color: UM.Theme.getColor("sidebar_header_highlight_hover") - visible: control.hovered || control.pressed - } - - UM.RecolorImage { - id: downArrow - anchors.verticalCenter: parent.verticalCenter - anchors.right: parent.right - anchors.rightMargin: UM.Theme.getSize("default_margin").width - width: UM.Theme.getSize("standard_arrow").width - height: UM.Theme.getSize("standard_arrow").height - sourceSize.width: width - sourceSize.height: width - color: UM.Theme.getColor("text_reversed") - source: UM.Theme.getIcon("arrow_bottom") - } - Label { - id: sidebarComboBoxLabel - color: UM.Theme.getColor("text_reversed") - text: control.text; - elide: Text.ElideRight; - anchors.left: parent.left; - anchors.leftMargin: UM.Theme.getSize("default_margin").width - anchors.right: downArrow.left; - anchors.rightMargin: control.rightMargin; - anchors.verticalCenter: parent.verticalCenter; - font: UM.Theme.getFont("large") - } - } - label: Label{} - } - - menu: PrinterMenu { } - } - - Button - { - id: showSettings - width: height - height: UM.Theme.getSize("sidebar_header").height - onClicked: monitoringPrint = false - iconSource: UM.Theme.getIcon("tab_settings"); - property color overlayColor: "transparent" - property string overlayIconSource: "" - - checkable: true - checked: !monitoringPrint - exclusiveGroup: sidebarHeaderBarGroup - property string tooltipText: catalog.i18nc("@tooltip", "Print Setup

Edit or review the settings for the active print job.") - - onHoveredChanged: { - if (hovered) - { - tooltipDelayTimer.item = showSettings - tooltipDelayTimer.text = tooltipText - tooltipDelayTimer.start(); - } - else - { - tooltipDelayTimer.stop(); - base.hideTooltip(); - } - } - - style: UM.Theme.styles.sidebar_header_tab - } - - Button - { - id: showMonitor - width: height - height: UM.Theme.getSize("sidebar_header").height - onClicked: monitoringPrint = true - iconSource: printerConnected ? UM.Theme.getIcon("tab_monitor_with_status") : UM.Theme.getIcon("tab_monitor") - property color overlayColor: - { - if(!printerAcceptsCommands) - { - return UM.Theme.getColor("status_unknown"); - } - - if(Cura.MachineManager.printerOutputDevices[0].printerState == "maintenance") - { - return UM.Theme.getColor("status_busy"); - } - switch(Cura.MachineManager.printerOutputDevices[0].jobState) - { - case "printing": - case "pre_print": - case "wait_cleanup": - case "pausing": - case "resuming": - return UM.Theme.getColor("status_busy"); - case "ready": - case "": - return UM.Theme.getColor("status_ready"); - case "paused": - return UM.Theme.getColor("status_paused"); - case "error": - return UM.Theme.getColor("status_stopped"); - case "offline": - return UM.Theme.getColor("status_offline"); - default: - return UM.Theme.getColor("text_reversed"); - } - } - property string overlayIconSource: - { - if(!printerConnected) - { - return ""; - } - else if(!printerAcceptsCommands) - { - return UM.Theme.getIcon("tab_status_unknown"); - } - - if(Cura.MachineManager.printerOutputDevices[0].printerState == "maintenance") - { - return UM.Theme.getIcon("tab_status_busy"); - } - - switch(Cura.MachineManager.printerOutputDevices[0].jobState) - { - case "printing": - case "pre_print": - case "wait_cleanup": - case "pausing": - case "resuming": - return UM.Theme.getIcon("tab_status_busy"); - case "ready": - case "": - return UM.Theme.getIcon("tab_status_connected") - case "paused": - return UM.Theme.getIcon("tab_status_paused") - case "error": - return UM.Theme.getIcon("tab_status_stopped") - case "offline": - return UM.Theme.getIcon("tab_status_offline") - default: - return "" - } - } - - checkable: true - checked: monitoringPrint - exclusiveGroup: sidebarHeaderBarGroup - property string tooltipText: catalog.i18nc("@tooltip", "Print Monitor

Monitor the state of the connected printer and the print job in progress.") - - onHoveredChanged: { - if (hovered) - { - tooltipDelayTimer.item = showMonitor - tooltipDelayTimer.text = tooltipText - tooltipDelayTimer.start(); - } - else - { - tooltipDelayTimer.stop(); - base.hideTooltip(); - } - } - - style: UM.Theme.styles.sidebar_header_tab - } - ExclusiveGroup { id: sidebarHeaderBarGroup } - } - } - SidebarHeader { id: header width: parent.width - anchors.top: sidebarHeaderBar.bottom - onShowTooltip: base.showTooltip(item, location, text) onHideTooltip: base.hideTooltip() } @@ -570,12 +345,48 @@ Rectangle Loader { + id: controlItem anchors.bottom: footerSeparator.top anchors.top: headerSeparator.bottom anchors.left: base.left anchors.right: base.right - source: monitoringPrint ? "PrintMonitor.qml": "SidebarContents.qml" - } + sourceComponent: + { + if(monitoringPrint && connectedPrinter != null) + { + if(connectedPrinter.controlItem != null) + { + return connectedPrinter.controlItem + } + } + return null + } + } + + Loader + { + anchors.bottom: footerSeparator.top + anchors.top: headerSeparator.bottom + anchors.left: base.left + anchors.right: base.right + source: + { + if(controlItem.sourceComponent == null) + { + if(monitoringPrint) + { + return "PrintMonitor.qml" + } else + { + return "SidebarContents.qml" + } + } + else + { + return "" + } + } + } Rectangle { diff --git a/resources/qml/Toolbar.qml b/resources/qml/Toolbar.qml index 5100a0dacb..0903c0555b 100644 --- a/resources/qml/Toolbar.qml +++ b/resources/qml/Toolbar.qml @@ -74,7 +74,8 @@ Item Repeater { id: extruders - model: Cura.ExtrudersModel { id: extrudersModel } + property var _model: Cura.ExtrudersModel { id: extrudersModel } + model: _model.items.length > 1 ? _model : 0 ExtruderButton { extruder: model } } } @@ -106,22 +107,13 @@ Item opacity: panel.item && panel.width > 0 ? 1 : 0 Behavior on opacity { NumberAnimation { duration: 100 } } - color: UM.Theme.getColor("lining"); + color: UM.Theme.getColor("tool_panel_background") + borderColor: UM.Theme.getColor("lining") + borderWidth: UM.Theme.getSize("default_lining").width - UM.PointingRectangle + MouseArea //Catch all mouse events (so scene doesnt handle them) { - id: panelBackground; - - color: UM.Theme.getColor("tool_panel_background"); anchors.fill: parent - anchors.margins: UM.Theme.getSize("default_lining").width - - target: Qt.point(-UM.Theme.getSize("default_margin").width, UM.Theme.getSize("button").height/2) - arrowSize: parent.arrowSize - MouseArea //Catch all mouse events (so scene doesnt handle them) - { - anchors.fill: parent - } } Loader diff --git a/resources/qml/Topbar.qml b/resources/qml/Topbar.qml new file mode 100644 index 0000000000..1b5792124e --- /dev/null +++ b/resources/qml/Topbar.qml @@ -0,0 +1,216 @@ +// Copyright (c) 2017 Ultimaker B.V. +// Cura is released under the terms of the AGPLv3 or higher. + +import QtQuick 2.2 +import QtQuick.Controls 1.1 +import QtQuick.Controls.Styles 1.1 +import QtQuick.Layouts 1.1 + +import UM 1.2 as UM +import Cura 1.0 as Cura +import "Menus" + +Rectangle +{ + id: base + anchors.left: parent.left + anchors.right: parent.right + height: UM.Theme.getSize("sidebar_header").height + color: UM.Theme.getColor("sidebar_header_bar") + + property bool printerConnected: Cura.MachineManager.printerOutputDevices.length != 0 + property bool printerAcceptsCommands: printerConnected && Cura.MachineManager.printerOutputDevices[0].acceptsCommands + property bool monitoringPrint: false + signal startMonitoringPrint() + signal stopMonitoringPrint() + UM.I18nCatalog + { + id: catalog + name:"cura" + } + + Row + { + anchors.left: parent.left + anchors.right: machineSelection.left + anchors.rightMargin: UM.Theme.getSize("default_margin").width + spacing: UM.Theme.getSize("default_margin").width + + Button + { + id: showSettings + height: UM.Theme.getSize("sidebar_header").height + onClicked: base.stopMonitoringPrint() + iconSource: UM.Theme.getIcon("tab_settings"); + property color overlayColor: "transparent" + property string overlayIconSource: "" + text: catalog.i18nc("@title:tab","Prepare") + checkable: true + checked: !base.monitoringPrint + exclusiveGroup: sidebarHeaderBarGroup + + style: UM.Theme.styles.topbar_header_tab + } + + Button + { + id: showMonitor + height: UM.Theme.getSize("sidebar_header").height + onClicked: base.startMonitoringPrint() + text: catalog.i18nc("@title:tab", "Print") + iconSource: printerConnected ? UM.Theme.getIcon("tab_monitor_with_status") : UM.Theme.getIcon("tab_monitor") + property color overlayColor: + { + if(!printerAcceptsCommands) + { + return UM.Theme.getColor("status_unknown"); + } + + if(Cura.MachineManager.printerOutputDevices[0].printerState == "maintenance") + { + return UM.Theme.getColor("status_busy"); + } + switch(Cura.MachineManager.printerOutputDevices[0].jobState) + { + case "printing": + case "pre_print": + case "wait_cleanup": + case "pausing": + case "resuming": + return UM.Theme.getColor("status_busy"); + case "ready": + case "": + return UM.Theme.getColor("status_ready"); + case "paused": + return UM.Theme.getColor("status_paused"); + case "error": + return UM.Theme.getColor("status_stopped"); + case "offline": + return UM.Theme.getColor("status_offline"); + default: + return UM.Theme.getColor("text_reversed"); + } + } + property string overlayIconSource: + { + if(!printerConnected) + { + return ""; + } + else if(!printerAcceptsCommands) + { + return UM.Theme.getIcon("tab_status_unknown"); + } + + if(Cura.MachineManager.printerOutputDevices[0].printerState == "maintenance") + { + return UM.Theme.getIcon("tab_status_busy"); + } + + switch(Cura.MachineManager.printerOutputDevices[0].jobState) + { + case "printing": + case "pre_print": + case "wait_cleanup": + case "pausing": + case "resuming": + return UM.Theme.getIcon("tab_status_busy"); + case "ready": + case "": + return UM.Theme.getIcon("tab_status_connected") + case "paused": + return UM.Theme.getIcon("tab_status_paused") + case "error": + return UM.Theme.getIcon("tab_status_stopped") + case "offline": + return UM.Theme.getIcon("tab_status_offline") + default: + return "" + } + } + + checkable: true + checked: base.monitoringPrint + exclusiveGroup: sidebarHeaderBarGroup + + style: UM.Theme.styles.topbar_header_tab + } + + ExclusiveGroup { id: sidebarHeaderBarGroup } + } + + ToolButton + { + id: machineSelection + text: Cura.MachineManager.activeMachineName + + width: UM.Theme.getSize("sidebar").width; + height: UM.Theme.getSize("sidebar_header").height + tooltip: Cura.MachineManager.activeMachineName + + anchors.verticalCenter: parent.verticalCenter + anchors.right: parent.right + style: ButtonStyle + { + background: Rectangle + { + color: + { + if(control.pressed) + { + return UM.Theme.getColor("sidebar_header_active"); + } else if(control.hovered) + { + return UM.Theme.getColor("sidebar_header_hover"); + } else + { + return UM.Theme.getColor("sidebar_header_bar"); + } + } + Behavior on color { ColorAnimation { duration: 50; } } + + Rectangle + { + id: underline; + + anchors.left: parent.left + anchors.right: parent.right + anchors.bottom: parent.bottom + height: UM.Theme.getSize("sidebar_header_highlight").height + color: UM.Theme.getColor("sidebar_header_highlight_hover") + visible: control.hovered || control.pressed + } + + UM.RecolorImage + { + id: downArrow + anchors.verticalCenter: parent.verticalCenter + anchors.right: parent.right + anchors.rightMargin: UM.Theme.getSize("default_margin").width + width: UM.Theme.getSize("standard_arrow").width + height: UM.Theme.getSize("standard_arrow").height + sourceSize.width: width + sourceSize.height: width + color: UM.Theme.getColor("text_reversed") + source: UM.Theme.getIcon("arrow_bottom") + } + Label + { + id: sidebarComboBoxLabel + color: UM.Theme.getColor("text_reversed") + text: control.text; + elide: Text.ElideRight; + anchors.left: parent.left; + anchors.leftMargin: UM.Theme.getSize("default_margin").width + anchors.right: downArrow.left; + anchors.rightMargin: control.rightMargin; + anchors.verticalCenter: parent.verticalCenter; + font: UM.Theme.getFont("large") + } + } + label: Label {} + } + + menu: PrinterMenu { } + } +} diff --git a/resources/qml/WorkspaceSummaryDialog.qml b/resources/qml/WorkspaceSummaryDialog.qml index 3a66d04625..5f8b7cce51 100644 --- a/resources/qml/WorkspaceSummaryDialog.qml +++ b/resources/qml/WorkspaceSummaryDialog.qml @@ -95,12 +95,12 @@ UM.Dialog Label { text: catalog.i18nc("@action:label", "Type") - width: parent.width / 3 + width: (parent.width / 3) | 0 } Label { text: Cura.MachineManager.activeDefinitionName - width: parent.width / 3 + width: (parent.width / 3) | 0 } } Row @@ -110,12 +110,12 @@ UM.Dialog Label { text: catalog.i18nc("@action:label", "Name") - width: parent.width / 3 + width: (parent.width / 3) | 0 } Label { text: Cura.MachineManager.activeMachineName - width: parent.width / 3 + width: (parent.width / 3) | 0 } } @@ -142,12 +142,12 @@ UM.Dialog Label { text: catalog.i18nc("@action:label", "%1 & material").arg(Cura.MachineManager.activeDefinitionVariantsName) - width: parent.width / 3 + width: (parent.width / 3) | 0 } Label { text: Cura.MachineManager.activeVariantNames[index] + ", " + modelData - width: parent.width / 3 + width: (parent.width / 3) | 0 } } } @@ -170,12 +170,12 @@ UM.Dialog Label { text: catalog.i18nc("@action:label", "Not in profile") - width: parent.width / 3 + width: (parent.width / 3) | 0 } Label { text: catalog.i18ncp("@action:label", "%1 override", "%1 overrides", Cura.MachineManager.numUserSettings).arg(Cura.MachineManager.numUserSettings) - width: parent.width / 3 + width: (parent.width / 3) | 0 } visible: Cura.MachineManager.numUserSettings } @@ -186,12 +186,12 @@ UM.Dialog Label { text: catalog.i18nc("@action:label", "Name") - width: parent.width / 3 + width: (parent.width / 3) | 0 } Label { text: Cura.MachineManager.activeQualityName - width: parent.width / 3 + width: (parent.width / 3) | 0 } } @@ -214,12 +214,12 @@ UM.Dialog Label { text: catalog.i18nc("@action:label", "Visible settings:") - width: parent.width / 3 + width: (parent.width / 3) | 0 } Label { text: catalog.i18nc("@action:label", "%1 out of %2" ).arg(definitionsModel.visibleCount).arg(Cura.MachineManager.totalNumberOfSettings) - width: parent.width / 3 + width: (parent.width / 3) | 0 } } diff --git a/resources/quality/abax_pri3/apri3_pla_fast.inst.cfg b/resources/quality/abax_pri3/apri3_pla_fast.inst.cfg index aa73d04f4a..b002ef1e4d 100644 --- a/resources/quality/abax_pri3/apri3_pla_fast.inst.cfg +++ b/resources/quality/abax_pri3/apri3_pla_fast.inst.cfg @@ -1,22 +1,22 @@ -[general] -version = 2 -name = Fine -definition = abax_pri3 - -[metadata] -type = quality -material = generic_pla -weight = 0 -quality_type = normal -setting_version = 1 - -[values] -layer_height = 0.2 -wall_thickness = 1.05 -top_bottom_thickness = 0.8 -infill_sparse_density = 20 -speed_print = 80 -speed_layer_0 = =round(speed_print * 30 / 50) -speed_topbottom = 20 -cool_min_layer_time = 5 +[general] +version = 2 +name = Fine +definition = abax_pri3 + +[metadata] +type = quality +material = generic_pla +weight = 0 +quality_type = normal +setting_version = 2 + +[values] +layer_height = 0.2 +wall_thickness = 1.05 +top_bottom_thickness = 0.8 +infill_sparse_density = 20 +speed_print = 80 +speed_layer_0 = =round(speed_print * 30 / 50) +speed_topbottom = 20 +cool_min_layer_time = 5 cool_min_speed = 10 \ No newline at end of file diff --git a/resources/quality/abax_pri3/apri3_pla_high.inst.cfg b/resources/quality/abax_pri3/apri3_pla_high.inst.cfg index 9b2af23ffc..38036404d9 100644 --- a/resources/quality/abax_pri3/apri3_pla_high.inst.cfg +++ b/resources/quality/abax_pri3/apri3_pla_high.inst.cfg @@ -1,22 +1,22 @@ -[general] -version = 2 -name = Extra Fine -definition = abax_pri3 - -[metadata] -type = quality -material = generic_pla -weight = 1 -quality_type = high -setting_version = 1 - -[values] -layer_height = 0.1 -wall_thickness = 1.05 -top_bottom_thickness = 0.8 -infill_sparse_density = 20 -speed_print = 50 -speed_layer_0 = =round(speed_print * 30 / 50) -speed_topbottom = 20 -cool_min_layer_time = 5 +[general] +version = 2 +name = Extra Fine +definition = abax_pri3 + +[metadata] +type = quality +material = generic_pla +weight = 1 +quality_type = high +setting_version = 2 + +[values] +layer_height = 0.1 +wall_thickness = 1.05 +top_bottom_thickness = 0.8 +infill_sparse_density = 20 +speed_print = 50 +speed_layer_0 = =round(speed_print * 30 / 50) +speed_topbottom = 20 +cool_min_layer_time = 5 cool_min_speed = 10 \ No newline at end of file diff --git a/resources/quality/abax_pri3/apri3_pla_normal.inst.cfg b/resources/quality/abax_pri3/apri3_pla_normal.inst.cfg index 0b566a7ae0..02d564e8cb 100644 --- a/resources/quality/abax_pri3/apri3_pla_normal.inst.cfg +++ b/resources/quality/abax_pri3/apri3_pla_normal.inst.cfg @@ -1,22 +1,22 @@ -[general] -version = 2 -name = Fine -definition = abax_pri3 - -[metadata] -type = quality -material = generic_pla -weight = 0 -quality_type = normal -setting_version = 1 - -[values] -layer_height = 0.2 -wall_thickness = 1.05 -top_bottom_thickness = 0.8 -infill_sparse_density = 20 -speed_print = 50 -speed_layer_0 = =round(speed_print * 30 / 50) -speed_topbottom = 20 -cool_min_layer_time = 5 +[general] +version = 2 +name = Fine +definition = abax_pri3 + +[metadata] +type = quality +material = generic_pla +weight = 0 +quality_type = normal +setting_version = 2 + +[values] +layer_height = 0.2 +wall_thickness = 1.05 +top_bottom_thickness = 0.8 +infill_sparse_density = 20 +speed_print = 50 +speed_layer_0 = =round(speed_print * 30 / 50) +speed_topbottom = 20 +cool_min_layer_time = 5 cool_min_speed = 10 \ No newline at end of file diff --git a/resources/quality/abax_pri5/apri5_pla_fast.inst.cfg b/resources/quality/abax_pri5/apri5_pla_fast.inst.cfg index 7729ae3772..23baec151b 100644 --- a/resources/quality/abax_pri5/apri5_pla_fast.inst.cfg +++ b/resources/quality/abax_pri5/apri5_pla_fast.inst.cfg @@ -1,22 +1,22 @@ -[general] -version = 2 -name = Fine -definition = abax_pri5 - -[metadata] -type = quality -material = generic_pla -weight = 0 -quality_type = normal -setting_version = 1 - -[values] -layer_height = 0.2 -wall_thickness = 1.05 -top_bottom_thickness = 0.8 -infill_sparse_density = 20 -speed_print = 80 -speed_layer_0 = =round(speed_print * 30 / 50) -speed_topbottom = 20 -cool_min_layer_time = 5 +[general] +version = 2 +name = Fine +definition = abax_pri5 + +[metadata] +type = quality +material = generic_pla +weight = 0 +quality_type = normal +setting_version = 2 + +[values] +layer_height = 0.2 +wall_thickness = 1.05 +top_bottom_thickness = 0.8 +infill_sparse_density = 20 +speed_print = 80 +speed_layer_0 = =round(speed_print * 30 / 50) +speed_topbottom = 20 +cool_min_layer_time = 5 cool_min_speed = 10 \ No newline at end of file diff --git a/resources/quality/abax_pri5/apri5_pla_high.inst.cfg b/resources/quality/abax_pri5/apri5_pla_high.inst.cfg index 04f4e82604..d7996f9578 100644 --- a/resources/quality/abax_pri5/apri5_pla_high.inst.cfg +++ b/resources/quality/abax_pri5/apri5_pla_high.inst.cfg @@ -1,22 +1,22 @@ -[general] -version = 2 -name = Extra Fine -definition = abax_pri5 - -[metadata] -type = quality -material = generic_pla -weight = 1 -quality_type = high -setting_version = 1 - -[values] -layer_height = 0.1 -wall_thickness = 1.05 -top_bottom_thickness = 0.8 -infill_sparse_density = 20 -speed_print = 50 -speed_layer_0 = =round(speed_print * 30 / 50) -speed_topbottom = 20 -cool_min_layer_time = 5 +[general] +version = 2 +name = Extra Fine +definition = abax_pri5 + +[metadata] +type = quality +material = generic_pla +weight = 1 +quality_type = high +setting_version = 2 + +[values] +layer_height = 0.1 +wall_thickness = 1.05 +top_bottom_thickness = 0.8 +infill_sparse_density = 20 +speed_print = 50 +speed_layer_0 = =round(speed_print * 30 / 50) +speed_topbottom = 20 +cool_min_layer_time = 5 cool_min_speed = 10 \ No newline at end of file diff --git a/resources/quality/abax_pri5/apri5_pla_normal.inst.cfg b/resources/quality/abax_pri5/apri5_pla_normal.inst.cfg index 3f3dd7a1e3..a0cc6dc00c 100644 --- a/resources/quality/abax_pri5/apri5_pla_normal.inst.cfg +++ b/resources/quality/abax_pri5/apri5_pla_normal.inst.cfg @@ -1,22 +1,22 @@ -[general] -version = 2 -name = Fine -definition = abax_pri5 - -[metadata] -type = quality -material = generic_pla -weight = 0 -quality_type = normal -setting_version = 1 - -[values] -layer_height = 0.2 -wall_thickness = 1.05 -top_bottom_thickness = 0.8 -infill_sparse_density = 20 -speed_print = 50 -speed_layer_0 = =round(speed_print * 30 / 50) -speed_topbottom = 20 -cool_min_layer_time = 5 +[general] +version = 2 +name = Fine +definition = abax_pri5 + +[metadata] +type = quality +material = generic_pla +weight = 0 +quality_type = normal +setting_version = 2 + +[values] +layer_height = 0.2 +wall_thickness = 1.05 +top_bottom_thickness = 0.8 +infill_sparse_density = 20 +speed_print = 50 +speed_layer_0 = =round(speed_print * 30 / 50) +speed_topbottom = 20 +cool_min_layer_time = 5 cool_min_speed = 10 \ No newline at end of file diff --git a/resources/quality/abax_titan/atitan_pla_fast.inst.cfg b/resources/quality/abax_titan/atitan_pla_fast.inst.cfg index 5fae85c117..2208ad2fb5 100644 --- a/resources/quality/abax_titan/atitan_pla_fast.inst.cfg +++ b/resources/quality/abax_titan/atitan_pla_fast.inst.cfg @@ -1,22 +1,22 @@ -[general] -version = 2 -name = Fine -definition = abax_titan - -[metadata] -type = quality -material = generic_pla -weight = 0 -quality_type = normal -setting_version = 1 - -[values] -layer_height = 0.2 -wall_thickness = 1.05 -top_bottom_thickness = 0.8 -infill_sparse_density = 20 -speed_print = 80 -speed_layer_0 = =round(speed_print * 30 / 50) -speed_topbottom = 20 -cool_min_layer_time = 5 +[general] +version = 2 +name = Fine +definition = abax_titan + +[metadata] +type = quality +material = generic_pla +weight = 0 +quality_type = normal +setting_version = 2 + +[values] +layer_height = 0.2 +wall_thickness = 1.05 +top_bottom_thickness = 0.8 +infill_sparse_density = 20 +speed_print = 80 +speed_layer_0 = =round(speed_print * 30 / 50) +speed_topbottom = 20 +cool_min_layer_time = 5 cool_min_speed = 10 \ No newline at end of file diff --git a/resources/quality/abax_titan/atitan_pla_high.inst.cfg b/resources/quality/abax_titan/atitan_pla_high.inst.cfg index 71c42fbdb7..91a3bffea6 100644 --- a/resources/quality/abax_titan/atitan_pla_high.inst.cfg +++ b/resources/quality/abax_titan/atitan_pla_high.inst.cfg @@ -1,21 +1,21 @@ -[general] -version = 2 -name = Extra Fine -definition = abax_titan -[metadata] -type = quality -material = generic_pla -weight = 1 -quality_type = high -setting_version = 1 - -[values] -layer_height = 0.1 -wall_thickness = 1.05 -top_bottom_thickness = 0.8 -infill_sparse_density = 20 -speed_print = 50 -speed_layer_0 = =round(speed_print * 30 / 50) -speed_topbottom = 20 -cool_min_layer_time = 5 +[general] +version = 2 +name = Extra Fine +definition = abax_titan +[metadata] +type = quality +material = generic_pla +weight = 1 +quality_type = high +setting_version = 2 + +[values] +layer_height = 0.1 +wall_thickness = 1.05 +top_bottom_thickness = 0.8 +infill_sparse_density = 20 +speed_print = 50 +speed_layer_0 = =round(speed_print * 30 / 50) +speed_topbottom = 20 +cool_min_layer_time = 5 cool_min_speed = 10 \ No newline at end of file diff --git a/resources/quality/abax_titan/atitan_pla_normal.inst.cfg b/resources/quality/abax_titan/atitan_pla_normal.inst.cfg index 2ae819ed50..4ff47e9c65 100644 --- a/resources/quality/abax_titan/atitan_pla_normal.inst.cfg +++ b/resources/quality/abax_titan/atitan_pla_normal.inst.cfg @@ -1,22 +1,22 @@ -[general] -version = 2 -name = Fine -definition = abax_titan - -[metadata] -type = quality -material = generic_pla -weight = 0 -quality_type = normal -setting_version = 1 - -[values] -layer_height = 0.2 -wall_thickness = 1.05 -top_bottom_thickness = 0.8 -infill_sparse_density = 20 -speed_print = 50 -speed_layer_0 = =round(speed_print * 30 / 50) -speed_topbottom = 20 -cool_min_layer_time = 5 +[general] +version = 2 +name = Fine +definition = abax_titan + +[metadata] +type = quality +material = generic_pla +weight = 0 +quality_type = normal +setting_version = 2 + +[values] +layer_height = 0.2 +wall_thickness = 1.05 +top_bottom_thickness = 0.8 +infill_sparse_density = 20 +speed_print = 50 +speed_layer_0 = =round(speed_print * 30 / 50) +speed_topbottom = 20 +cool_min_layer_time = 5 cool_min_speed = 10 \ No newline at end of file diff --git a/resources/quality/cartesio/abs/cartesio_0.25_abs_high.inst.cfg b/resources/quality/cartesio/abs/cartesio_0.25_abs_high.inst.cfg index 1c5a222dad..f6f461f73d 100644 --- a/resources/quality/cartesio/abs/cartesio_0.25_abs_high.inst.cfg +++ b/resources/quality/cartesio/abs/cartesio_0.25_abs_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_abs_175_cartesio_0.25_mm weight = 1 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.3 @@ -35,7 +35,7 @@ speed_print = 50 speed_infill = =speed_print speed_layer_0 = =round(speed_print / 5 * 4) speed_wall = =round(speed_print / 2) -speed_wall_0 = =10 if speed_wall < 11 else (speed_print / 5 *3) +speed_wall_0 = =10 if speed_wall < 11 else 15 speed_topbottom = =round(speed_print / 5 * 4) speed_travel = =round(speed_print if magic_spiralize else 150) speed_travel_layer_0 = =speed_travel diff --git a/resources/quality/cartesio/abs/cartesio_0.25_abs_normal.inst.cfg b/resources/quality/cartesio/abs/cartesio_0.25_abs_normal.inst.cfg index 2a7be1ac2b..a86f734c8a 100644 --- a/resources/quality/cartesio/abs/cartesio_0.25_abs_normal.inst.cfg +++ b/resources/quality/cartesio/abs/cartesio_0.25_abs_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_abs_175_cartesio_0.25_mm weight = 2 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.3 diff --git a/resources/quality/cartesio/abs/cartesio_0.4_abs_high.inst.cfg b/resources/quality/cartesio/abs/cartesio_0.4_abs_high.inst.cfg index 0a47ae7697..53e36c4a88 100644 --- a/resources/quality/cartesio/abs/cartesio_0.4_abs_high.inst.cfg +++ b/resources/quality/cartesio/abs/cartesio_0.4_abs_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_abs_175_cartesio_0.4_mm weight = 1 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.5 @@ -35,7 +35,7 @@ speed_print = 50 speed_infill = =speed_print speed_layer_0 = =round(speed_print / 5 * 4) speed_wall = =round(speed_print / 2) -speed_wall_0 = =10 if speed_wall < 11 else (speed_print / 5 *3) +speed_wall_0 = =10 if speed_wall < 11 else 15 speed_topbottom = =round(speed_print / 5 * 4) speed_travel = =round(speed_print if magic_spiralize else 150) speed_travel_layer_0 = =speed_travel diff --git a/resources/quality/cartesio/abs/cartesio_0.4_abs_normal.inst.cfg b/resources/quality/cartesio/abs/cartesio_0.4_abs_normal.inst.cfg index ccbb2224c7..1422663537 100644 --- a/resources/quality/cartesio/abs/cartesio_0.4_abs_normal.inst.cfg +++ b/resources/quality/cartesio/abs/cartesio_0.4_abs_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_abs_175_cartesio_0.4_mm weight = 2 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/abs/cartesio_0.8_abs_coarse.inst.cfg b/resources/quality/cartesio/abs/cartesio_0.8_abs_coarse.inst.cfg index 8d227fd862..edd337bb88 100644 --- a/resources/quality/cartesio/abs/cartesio_0.8_abs_coarse.inst.cfg +++ b/resources/quality/cartesio/abs/cartesio_0.8_abs_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = coarse material = generic_abs_175_cartesio_0.8_mm weight = 3 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/abs/cartesio_0.8_abs_extra_coarse.inst.cfg b/resources/quality/cartesio/abs/cartesio_0.8_abs_extra_coarse.inst.cfg index b8db42401d..78493a273b 100644 --- a/resources/quality/cartesio/abs/cartesio_0.8_abs_extra_coarse.inst.cfg +++ b/resources/quality/cartesio/abs/cartesio_0.8_abs_extra_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = extra coarse material = generic_abs_175_cartesio_0.8_mm weight = 4 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/abs/cartesio_0.8_abs_high.inst.cfg b/resources/quality/cartesio/abs/cartesio_0.8_abs_high.inst.cfg index 4025bc2cb2..0b7d6dd8d8 100644 --- a/resources/quality/cartesio/abs/cartesio_0.8_abs_high.inst.cfg +++ b/resources/quality/cartesio/abs/cartesio_0.8_abs_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_abs_175_cartesio_0.8_mm weight = 1 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.9 @@ -35,7 +35,7 @@ speed_print = 50 speed_infill = =speed_print speed_layer_0 = =round(speed_print / 5 * 4) speed_wall = =round(speed_print / 2) -speed_wall_0 = =10 if speed_wall < 11 else (speed_print / 5 *3) +speed_wall_0 = =10 if speed_wall < 11 else 15 speed_topbottom = =round(speed_print / 5 * 4) speed_travel = =round(speed_print if magic_spiralize else 150) speed_travel_layer_0 = =speed_travel diff --git a/resources/quality/cartesio/abs/cartesio_0.8_abs_normal.inst.cfg b/resources/quality/cartesio/abs/cartesio_0.8_abs_normal.inst.cfg index 1f38a69781..393a419cdc 100644 --- a/resources/quality/cartesio/abs/cartesio_0.8_abs_normal.inst.cfg +++ b/resources/quality/cartesio/abs/cartesio_0.8_abs_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_abs_175_cartesio_0.8_mm weight = 2 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/arnitel/cartesio_0.4_arnitel2045_high.inst.cfg b/resources/quality/cartesio/arnitel/cartesio_0.4_arnitel2045_high.inst.cfg index 03e850c2b0..7595ae104e 100644 --- a/resources/quality/cartesio/arnitel/cartesio_0.4_arnitel2045_high.inst.cfg +++ b/resources/quality/cartesio/arnitel/cartesio_0.4_arnitel2045_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = dsm_arnitel2045_175_cartesio_0.4_mm weight = 1 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.5 @@ -35,7 +35,7 @@ speed_print = 25 speed_infill = =speed_print speed_layer_0 = =round(speed_print / 5 * 4) speed_wall = =round(speed_print / 2) -speed_wall_0 = =10 if speed_wall < 11 else (speed_print / 5 *3) +speed_wall_0 = =10 if speed_wall < 11 else 15 speed_topbottom = =round(speed_print / 5 * 4) speed_travel = =round(speed_print if magic_spiralize else 150) speed_travel_layer_0 = =speed_travel @@ -45,7 +45,7 @@ speed_equalize_flow_max = =speed_print acceleration_enabled = True acceleration_print = 100 -acceleration_travel = 300 +jerk_enabled = True jerk_print = 5 retraction_hop_enabled = True diff --git a/resources/quality/cartesio/arnitel/cartesio_0.4_arnitel2045_normal.inst.cfg b/resources/quality/cartesio/arnitel/cartesio_0.4_arnitel2045_normal.inst.cfg index 9e753261d1..f899082e9c 100644 --- a/resources/quality/cartesio/arnitel/cartesio_0.4_arnitel2045_normal.inst.cfg +++ b/resources/quality/cartesio/arnitel/cartesio_0.4_arnitel2045_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = dsm_arnitel2045_175_cartesio_0.4_mm weight = 2 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.5 @@ -45,7 +45,7 @@ speed_equalize_flow_max = =speed_print acceleration_enabled = True acceleration_print = 100 -acceleration_travel = 300 +jerk_enabled = True jerk_print = 5 retraction_hop_enabled = True diff --git a/resources/quality/cartesio/cartesio_global_Coarse_Quality.inst.cfg b/resources/quality/cartesio/cartesio_global_Coarse_Quality.inst.cfg index 6c8b957a96..f44b33b1d1 100644 --- a/resources/quality/cartesio/cartesio_global_Coarse_Quality.inst.cfg +++ b/resources/quality/cartesio/cartesio_global_Coarse_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = coarse global_quality = True weight = 0 -setting_version = 1 +setting_version = 2 [values] layer_height = 0.4 @@ -20,6 +20,10 @@ infill_before_walls = False infill_angles = [0,90] speed_slowdown_layers = 1 +acceleration_print = 300 +acceleration_travel = 300 +jerk_print = 10 +jerk_travel = 10 retraction_combing = off diff --git a/resources/quality/cartesio/cartesio_global_Extra_Coarse_Quality.inst.cfg b/resources/quality/cartesio/cartesio_global_Extra_Coarse_Quality.inst.cfg index 49a484e99d..6b0a379eb2 100644 --- a/resources/quality/cartesio/cartesio_global_Extra_Coarse_Quality.inst.cfg +++ b/resources/quality/cartesio/cartesio_global_Extra_Coarse_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = extra coarse global_quality = True weight = 0 -setting_version = 1 +setting_version = 2 [values] layer_height = 0.6 @@ -20,6 +20,10 @@ infill_before_walls = False infill_angles = [0,90] speed_slowdown_layers = 1 +acceleration_print = 300 +acceleration_travel = 300 +jerk_print = 10 +jerk_travel = 10 retraction_combing = off diff --git a/resources/quality/cartesio/cartesio_global_High_Quality.inst.cfg b/resources/quality/cartesio/cartesio_global_High_Quality.inst.cfg index f16c866284..944f8a1d97 100644 --- a/resources/quality/cartesio/cartesio_global_High_Quality.inst.cfg +++ b/resources/quality/cartesio/cartesio_global_High_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high global_quality = True weight = 0 -setting_version = 1 +setting_version = 2 [values] layer_height = 0.1 @@ -20,6 +20,10 @@ infill_before_walls = False infill_angles = [0,90] speed_slowdown_layers = 1 +acceleration_print = 300 +acceleration_travel = 300 +jerk_print = 10 +jerk_travel = 10 retraction_combing = off diff --git a/resources/quality/cartesio/cartesio_global_Normal_Quality.inst.cfg b/resources/quality/cartesio/cartesio_global_Normal_Quality.inst.cfg index d649a7f379..c0d1a301f3 100644 --- a/resources/quality/cartesio/cartesio_global_Normal_Quality.inst.cfg +++ b/resources/quality/cartesio/cartesio_global_Normal_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal global_quality = True weight = 0 -setting_version = 1 +setting_version = 2 [values] layer_height = 0.2 @@ -20,6 +20,10 @@ infill_before_walls = False infill_angles = [0,90] speed_slowdown_layers = 1 +acceleration_print = 300 +acceleration_travel = 300 +jerk_print = 10 +jerk_travel = 10 retraction_combing = off diff --git a/resources/quality/cartesio/hips/cartesio_0.25_hips_high.inst.cfg b/resources/quality/cartesio/hips/cartesio_0.25_hips_high.inst.cfg index 184b097ee8..24610a3332 100644 --- a/resources/quality/cartesio/hips/cartesio_0.25_hips_high.inst.cfg +++ b/resources/quality/cartesio/hips/cartesio_0.25_hips_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_hips_175_cartesio_0.25_mm weight = 1 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.3 @@ -35,7 +35,7 @@ speed_print = 50 speed_infill = =speed_print speed_layer_0 = =round(speed_print / 5 * 4) speed_wall = =round(speed_print / 2) -speed_wall_0 = =10 if speed_wall < 11 else (speed_print / 5 *3) +speed_wall_0 = =10 if speed_wall < 11 else 15 speed_topbottom = =round(speed_print / 5 * 4) speed_travel = =round(speed_print if magic_spiralize else 150) speed_travel_layer_0 = =speed_travel diff --git a/resources/quality/cartesio/hips/cartesio_0.25_hips_normal.inst.cfg b/resources/quality/cartesio/hips/cartesio_0.25_hips_normal.inst.cfg index 3f5db2473a..af419719b1 100644 --- a/resources/quality/cartesio/hips/cartesio_0.25_hips_normal.inst.cfg +++ b/resources/quality/cartesio/hips/cartesio_0.25_hips_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_hips_175_cartesio_0.25_mm weight = 2 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.3 diff --git a/resources/quality/cartesio/hips/cartesio_0.4_hips_high.inst.cfg b/resources/quality/cartesio/hips/cartesio_0.4_hips_high.inst.cfg index ee21935f5b..cfc9c0e331 100644 --- a/resources/quality/cartesio/hips/cartesio_0.4_hips_high.inst.cfg +++ b/resources/quality/cartesio/hips/cartesio_0.4_hips_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_hips_175_cartesio_0.4_mm weight = 1 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.5 @@ -35,7 +35,7 @@ speed_print = 50 speed_infill = =speed_print speed_layer_0 = =round(speed_print / 5 * 4) speed_wall = =round(speed_print / 2) -speed_wall_0 = =10 if speed_wall < 11 else (speed_print / 5 *3) +speed_wall_0 = =10 if speed_wall < 11 else 15 speed_topbottom = =round(speed_print / 5 * 4) speed_travel = =round(speed_print if magic_spiralize else 150) speed_travel_layer_0 = =speed_travel diff --git a/resources/quality/cartesio/hips/cartesio_0.4_hips_normal.inst.cfg b/resources/quality/cartesio/hips/cartesio_0.4_hips_normal.inst.cfg index 3aace85864..e26fcaa037 100644 --- a/resources/quality/cartesio/hips/cartesio_0.4_hips_normal.inst.cfg +++ b/resources/quality/cartesio/hips/cartesio_0.4_hips_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_hips_175_cartesio_0.4_mm weight = 2 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/hips/cartesio_0.8_hips_coarse.inst.cfg b/resources/quality/cartesio/hips/cartesio_0.8_hips_coarse.inst.cfg index 3c40ebd38a..d7d1d8aa4d 100644 --- a/resources/quality/cartesio/hips/cartesio_0.8_hips_coarse.inst.cfg +++ b/resources/quality/cartesio/hips/cartesio_0.8_hips_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = coarse material = generic_hips_175_cartesio_0.8_mm weight = 3 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/hips/cartesio_0.8_hips_extra_coarse.inst.cfg b/resources/quality/cartesio/hips/cartesio_0.8_hips_extra_coarse.inst.cfg index 6fe684dde6..68c282fd7d 100644 --- a/resources/quality/cartesio/hips/cartesio_0.8_hips_extra_coarse.inst.cfg +++ b/resources/quality/cartesio/hips/cartesio_0.8_hips_extra_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = extra coarse material = generic_hips_175_cartesio_0.8_mm weight = 4 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/hips/cartesio_0.8_hips_high.inst.cfg b/resources/quality/cartesio/hips/cartesio_0.8_hips_high.inst.cfg index 90020ffa3e..33289e0cf2 100644 --- a/resources/quality/cartesio/hips/cartesio_0.8_hips_high.inst.cfg +++ b/resources/quality/cartesio/hips/cartesio_0.8_hips_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_hips_175_cartesio_0.8_mm weight = 1 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.9 @@ -35,7 +35,7 @@ speed_print = 50 speed_infill = =speed_print speed_layer_0 = =round(speed_print / 5 * 4) speed_wall = =round(speed_print / 2) -speed_wall_0 = =10 if speed_wall < 11 else (speed_print / 5 *3) +speed_wall_0 = =10 if speed_wall < 11 else 15 speed_topbottom = =round(speed_print / 5 * 4) speed_travel = =round(speed_print if magic_spiralize else 150) speed_travel_layer_0 = =speed_travel diff --git a/resources/quality/cartesio/hips/cartesio_0.8_hips_normal.inst.cfg b/resources/quality/cartesio/hips/cartesio_0.8_hips_normal.inst.cfg index 257389662a..1388e9bee1 100644 --- a/resources/quality/cartesio/hips/cartesio_0.8_hips_normal.inst.cfg +++ b/resources/quality/cartesio/hips/cartesio_0.8_hips_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_hips_175_cartesio_0.8_mm weight = 2 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/nylon/cartesio_0.25_nylon_high.inst.cfg b/resources/quality/cartesio/nylon/cartesio_0.25_nylon_high.inst.cfg index babe2ef7e9..f592894188 100644 --- a/resources/quality/cartesio/nylon/cartesio_0.25_nylon_high.inst.cfg +++ b/resources/quality/cartesio/nylon/cartesio_0.25_nylon_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_nylon_175_cartesio_0.25_mm weight = 1 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.3 @@ -35,7 +35,7 @@ speed_print = 50 speed_infill = =speed_print speed_layer_0 = =round(speed_print / 5 * 4) speed_wall = =round(speed_print / 2) -speed_wall_0 = =10 if speed_wall < 11 else (speed_print / 5 *3) +speed_wall_0 = =10 if speed_wall < 11 else 15 speed_topbottom = =round(speed_print / 5 * 4) speed_travel = =round(speed_print if magic_spiralize else 150) speed_travel_layer_0 = =speed_travel diff --git a/resources/quality/cartesio/nylon/cartesio_0.25_nylon_normal.inst.cfg b/resources/quality/cartesio/nylon/cartesio_0.25_nylon_normal.inst.cfg index e0380da0f0..73c1d7010b 100644 --- a/resources/quality/cartesio/nylon/cartesio_0.25_nylon_normal.inst.cfg +++ b/resources/quality/cartesio/nylon/cartesio_0.25_nylon_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_nylon_175_cartesio_0.25_mm weight = 2 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.3 diff --git a/resources/quality/cartesio/nylon/cartesio_0.4_nylon_high.inst.cfg b/resources/quality/cartesio/nylon/cartesio_0.4_nylon_high.inst.cfg index 6a99be39f8..8108a48c53 100644 --- a/resources/quality/cartesio/nylon/cartesio_0.4_nylon_high.inst.cfg +++ b/resources/quality/cartesio/nylon/cartesio_0.4_nylon_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_nylon_175_cartesio_0.4_mm weight = 1 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.5 @@ -35,7 +35,7 @@ speed_print = 50 speed_infill = =speed_print speed_layer_0 = =round(speed_print / 5 * 4) speed_wall = =round(speed_print / 2) -speed_wall_0 = =10 if speed_wall < 11 else (speed_print / 5 *3) +speed_wall_0 = =10 if speed_wall < 11 else 15 speed_topbottom = =round(speed_print / 5 * 4) speed_travel = =round(speed_print if magic_spiralize else 150) speed_travel_layer_0 = =speed_travel diff --git a/resources/quality/cartesio/nylon/cartesio_0.4_nylon_normal.inst.cfg b/resources/quality/cartesio/nylon/cartesio_0.4_nylon_normal.inst.cfg index fcb2ec7b45..89114b1a79 100644 --- a/resources/quality/cartesio/nylon/cartesio_0.4_nylon_normal.inst.cfg +++ b/resources/quality/cartesio/nylon/cartesio_0.4_nylon_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_nylon_175_cartesio_0.4_mm weight = 2 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/nylon/cartesio_0.8_nylon_coarse.inst.cfg b/resources/quality/cartesio/nylon/cartesio_0.8_nylon_coarse.inst.cfg index b54a087e2b..5a35735d11 100644 --- a/resources/quality/cartesio/nylon/cartesio_0.8_nylon_coarse.inst.cfg +++ b/resources/quality/cartesio/nylon/cartesio_0.8_nylon_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = coarse material = generic_nylon_175_cartesio_0.8_mm weight = 3 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/nylon/cartesio_0.8_nylon_extra_coarse.inst.cfg b/resources/quality/cartesio/nylon/cartesio_0.8_nylon_extra_coarse.inst.cfg index 845764a3de..4a20f2e0e7 100644 --- a/resources/quality/cartesio/nylon/cartesio_0.8_nylon_extra_coarse.inst.cfg +++ b/resources/quality/cartesio/nylon/cartesio_0.8_nylon_extra_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = extra coarse material = generic_nylon_175_cartesio_0.8_mm weight = 4 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/nylon/cartesio_0.8_nylon_high.inst.cfg b/resources/quality/cartesio/nylon/cartesio_0.8_nylon_high.inst.cfg index 8ac54aaca2..15e3834090 100644 --- a/resources/quality/cartesio/nylon/cartesio_0.8_nylon_high.inst.cfg +++ b/resources/quality/cartesio/nylon/cartesio_0.8_nylon_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_nylon_175_cartesio_0.8_mm weight = 1 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.9 @@ -35,7 +35,7 @@ speed_print = 50 speed_infill = =speed_print speed_layer_0 = =round(speed_print / 5 * 4) speed_wall = =round(speed_print / 2) -speed_wall_0 = =10 if speed_wall < 11 else (speed_print / 5 *3) +speed_wall_0 = =10 if speed_wall < 11 else 15 speed_topbottom = =round(speed_print / 5 * 4) speed_travel = =round(speed_print if magic_spiralize else 150) speed_travel_layer_0 = =speed_travel diff --git a/resources/quality/cartesio/nylon/cartesio_0.8_nylon_normal.inst.cfg b/resources/quality/cartesio/nylon/cartesio_0.8_nylon_normal.inst.cfg index 2635dc18a7..34c0d66899 100644 --- a/resources/quality/cartesio/nylon/cartesio_0.8_nylon_normal.inst.cfg +++ b/resources/quality/cartesio/nylon/cartesio_0.8_nylon_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_nylon_175_cartesio_0.8_mm weight = 2 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/pc/cartesio_0.25_pc_high.inst.cfg b/resources/quality/cartesio/pc/cartesio_0.25_pc_high.inst.cfg index 47db068af9..3de6c83fb8 100644 --- a/resources/quality/cartesio/pc/cartesio_0.25_pc_high.inst.cfg +++ b/resources/quality/cartesio/pc/cartesio_0.25_pc_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_pc_175_cartesio_0.25_mm weight = 1 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.3 @@ -35,7 +35,7 @@ speed_print = 50 speed_infill = =speed_print speed_layer_0 = =round(speed_print / 5 * 4) speed_wall = =round(speed_print / 2) -speed_wall_0 = =10 if speed_wall < 11 else (speed_print / 5 *3) +speed_wall_0 = =10 if speed_wall < 11 else 15 speed_topbottom = =round(speed_print / 5 * 4) speed_travel = =round(speed_print if magic_spiralize else 150) speed_travel_layer_0 = =speed_travel diff --git a/resources/quality/cartesio/pc/cartesio_0.25_pc_normal.inst.cfg b/resources/quality/cartesio/pc/cartesio_0.25_pc_normal.inst.cfg index 256f3237ea..0361b789ba 100644 --- a/resources/quality/cartesio/pc/cartesio_0.25_pc_normal.inst.cfg +++ b/resources/quality/cartesio/pc/cartesio_0.25_pc_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_pc_175_cartesio_0.25_mm weight = 2 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.3 diff --git a/resources/quality/cartesio/pc/cartesio_0.4_pc_high.inst.cfg b/resources/quality/cartesio/pc/cartesio_0.4_pc_high.inst.cfg index 345ecea394..94b3fe9278 100644 --- a/resources/quality/cartesio/pc/cartesio_0.4_pc_high.inst.cfg +++ b/resources/quality/cartesio/pc/cartesio_0.4_pc_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_pc_175_cartesio_0.4_mm weight = 1 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.5 @@ -35,7 +35,7 @@ speed_print = 50 speed_infill = =speed_print speed_layer_0 = =round(speed_print / 5 * 4) speed_wall = =round(speed_print / 2) -speed_wall_0 = =10 if speed_wall < 11 else (speed_print / 5 *3) +speed_wall_0 = =10 if speed_wall < 11 else 15 speed_topbottom = =round(speed_print / 5 * 4) speed_travel = =round(speed_print if magic_spiralize else 150) speed_travel_layer_0 = =speed_travel diff --git a/resources/quality/cartesio/pc/cartesio_0.4_pc_normal.inst.cfg b/resources/quality/cartesio/pc/cartesio_0.4_pc_normal.inst.cfg index ff3d5f2de2..11723cc92b 100644 --- a/resources/quality/cartesio/pc/cartesio_0.4_pc_normal.inst.cfg +++ b/resources/quality/cartesio/pc/cartesio_0.4_pc_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_pc_175_cartesio_0.4_mm weight = 2 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/pc/cartesio_0.8_pc_coarse.inst.cfg b/resources/quality/cartesio/pc/cartesio_0.8_pc_coarse.inst.cfg index e57f5eaca2..070f73fa0e 100644 --- a/resources/quality/cartesio/pc/cartesio_0.8_pc_coarse.inst.cfg +++ b/resources/quality/cartesio/pc/cartesio_0.8_pc_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = coarse material = generic_pc_175_cartesio_0.8_mm weight = 3 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/pc/cartesio_0.8_pc_extra_coarse.inst.cfg b/resources/quality/cartesio/pc/cartesio_0.8_pc_extra_coarse.inst.cfg index 73d2084610..26662accf5 100644 --- a/resources/quality/cartesio/pc/cartesio_0.8_pc_extra_coarse.inst.cfg +++ b/resources/quality/cartesio/pc/cartesio_0.8_pc_extra_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = extra coarse material = generic_pc_175_cartesio_0.8_mm weight = 4 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/pc/cartesio_0.8_pc_high.inst.cfg b/resources/quality/cartesio/pc/cartesio_0.8_pc_high.inst.cfg index d942415e64..64a137abf5 100644 --- a/resources/quality/cartesio/pc/cartesio_0.8_pc_high.inst.cfg +++ b/resources/quality/cartesio/pc/cartesio_0.8_pc_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_pc_175_cartesio_0.8_mm weight = 1 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.9 @@ -35,7 +35,7 @@ speed_print = 50 speed_infill = =speed_print speed_layer_0 = =round(speed_print / 5 * 4) speed_wall = =round(speed_print / 2) -speed_wall_0 = =10 if speed_wall < 11 else (speed_print / 5 *3) +speed_wall_0 = =10 if speed_wall < 11 else 15 speed_topbottom = =round(speed_print / 5 * 4) speed_travel = =round(speed_print if magic_spiralize else 150) speed_travel_layer_0 = =speed_travel diff --git a/resources/quality/cartesio/pc/cartesio_0.8_pc_normal.inst.cfg b/resources/quality/cartesio/pc/cartesio_0.8_pc_normal.inst.cfg index 2c1ddf6ec5..a30c4ea884 100644 --- a/resources/quality/cartesio/pc/cartesio_0.8_pc_normal.inst.cfg +++ b/resources/quality/cartesio/pc/cartesio_0.8_pc_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_pc_175_cartesio_0.8_mm weight = 2 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/petg/cartesio_0.25_petg_high.inst.cfg b/resources/quality/cartesio/petg/cartesio_0.25_petg_high.inst.cfg index 037456bc72..b8d2da9500 100644 --- a/resources/quality/cartesio/petg/cartesio_0.25_petg_high.inst.cfg +++ b/resources/quality/cartesio/petg/cartesio_0.25_petg_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_petg_175_cartesio_0.25_mm weight = 1 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.3 @@ -35,7 +35,7 @@ speed_print = 50 speed_infill = =speed_print speed_layer_0 = =round(speed_print / 5 * 4) speed_wall = =round(speed_print / 2) -speed_wall_0 = =10 if speed_wall < 11 else (speed_print / 5 *3) +speed_wall_0 = =10 if speed_wall < 11 else 15 speed_topbottom = =round(speed_print / 5 * 4) speed_travel = =round(speed_print if magic_spiralize else 150) speed_travel_layer_0 = =speed_travel diff --git a/resources/quality/cartesio/petg/cartesio_0.25_petg_normal.inst.cfg b/resources/quality/cartesio/petg/cartesio_0.25_petg_normal.inst.cfg index cbef9eb62a..11e55362ae 100644 --- a/resources/quality/cartesio/petg/cartesio_0.25_petg_normal.inst.cfg +++ b/resources/quality/cartesio/petg/cartesio_0.25_petg_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_petg_175_cartesio_0.25_mm weight = 2 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.3 diff --git a/resources/quality/cartesio/petg/cartesio_0.4_petg_high.inst.cfg b/resources/quality/cartesio/petg/cartesio_0.4_petg_high.inst.cfg index 4a4d8cf69f..85560ff953 100644 --- a/resources/quality/cartesio/petg/cartesio_0.4_petg_high.inst.cfg +++ b/resources/quality/cartesio/petg/cartesio_0.4_petg_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_petg_175_cartesio_0.4_mm weight = 1 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.5 @@ -35,7 +35,7 @@ speed_print = 50 speed_infill = =speed_print speed_layer_0 = =round(speed_print / 5 * 4) speed_wall = =round(speed_print / 2) -speed_wall_0 = =10 if speed_wall < 11 else (speed_print / 5 *3) +speed_wall_0 = =10 if speed_wall < 11 else 15 speed_topbottom = =round(speed_print / 5 * 4) speed_travel = =round(speed_print if magic_spiralize else 150) speed_travel_layer_0 = =speed_travel diff --git a/resources/quality/cartesio/petg/cartesio_0.4_petg_normal.inst.cfg b/resources/quality/cartesio/petg/cartesio_0.4_petg_normal.inst.cfg index f2c69bdb88..d1fa4d40ca 100644 --- a/resources/quality/cartesio/petg/cartesio_0.4_petg_normal.inst.cfg +++ b/resources/quality/cartesio/petg/cartesio_0.4_petg_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_petg_175_cartesio_0.4_mm weight = 2 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/petg/cartesio_0.8_petg_coarse.inst.cfg b/resources/quality/cartesio/petg/cartesio_0.8_petg_coarse.inst.cfg index 3fca8f0f72..f728848461 100644 --- a/resources/quality/cartesio/petg/cartesio_0.8_petg_coarse.inst.cfg +++ b/resources/quality/cartesio/petg/cartesio_0.8_petg_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = coarse material = generic_petg_175_cartesio_0.8_mm weight = 3 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/petg/cartesio_0.8_petg_extra_coarse.inst.cfg b/resources/quality/cartesio/petg/cartesio_0.8_petg_extra_coarse.inst.cfg index c2f86afbf3..851b893a96 100644 --- a/resources/quality/cartesio/petg/cartesio_0.8_petg_extra_coarse.inst.cfg +++ b/resources/quality/cartesio/petg/cartesio_0.8_petg_extra_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = extra coarse material = generic_petg_175_cartesio_0.8_mm weight = 4 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/petg/cartesio_0.8_petg_high.inst.cfg b/resources/quality/cartesio/petg/cartesio_0.8_petg_high.inst.cfg index 291cf071d7..9c9aa56dab 100644 --- a/resources/quality/cartesio/petg/cartesio_0.8_petg_high.inst.cfg +++ b/resources/quality/cartesio/petg/cartesio_0.8_petg_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_petg_175_cartesio_0.8_mm weight = 1 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.9 @@ -35,7 +35,7 @@ speed_print = 50 speed_infill = =speed_print speed_layer_0 = =round(speed_print / 5 * 4) speed_wall = =round(speed_print / 2) -speed_wall_0 = =10 if speed_wall < 11 else (speed_print / 5 *3) +speed_wall_0 = =10 if speed_wall < 11 else 15 speed_topbottom = =round(speed_print / 5 * 4) speed_travel = =round(speed_print if magic_spiralize else 150) speed_travel_layer_0 = =speed_travel diff --git a/resources/quality/cartesio/petg/cartesio_0.8_petg_normal.inst.cfg b/resources/quality/cartesio/petg/cartesio_0.8_petg_normal.inst.cfg index 1c8bd403c9..2e7d86c378 100644 --- a/resources/quality/cartesio/petg/cartesio_0.8_petg_normal.inst.cfg +++ b/resources/quality/cartesio/petg/cartesio_0.8_petg_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_petg_175_cartesio_0.8_mm weight = 2 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/pla/cartesio_0.25_pla_high.inst.cfg b/resources/quality/cartesio/pla/cartesio_0.25_pla_high.inst.cfg index c7d0432443..5f53ffe133 100644 --- a/resources/quality/cartesio/pla/cartesio_0.25_pla_high.inst.cfg +++ b/resources/quality/cartesio/pla/cartesio_0.25_pla_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_pla_175_cartesio_0.25_mm weight = 1 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.3 @@ -35,7 +35,7 @@ speed_print = 50 speed_infill = =speed_print speed_layer_0 = =round(speed_print / 5 * 4) speed_wall = =round(speed_print / 2) -speed_wall_0 = =10 if speed_wall < 11 else (speed_print / 5 *3) +speed_wall_0 = =10 if speed_wall < 11 else 15 speed_topbottom = =round(speed_print / 5 * 4) speed_travel = =round(speed_print if magic_spiralize else 150) speed_travel_layer_0 = =speed_travel diff --git a/resources/quality/cartesio/pla/cartesio_0.25_pla_normal.inst.cfg b/resources/quality/cartesio/pla/cartesio_0.25_pla_normal.inst.cfg index cf736a2d31..311d287cdc 100644 --- a/resources/quality/cartesio/pla/cartesio_0.25_pla_normal.inst.cfg +++ b/resources/quality/cartesio/pla/cartesio_0.25_pla_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_pla_175_cartesio_0.25_mm weight = 2 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.3 diff --git a/resources/quality/cartesio/pla/cartesio_0.4_pla_high.inst.cfg b/resources/quality/cartesio/pla/cartesio_0.4_pla_high.inst.cfg index 816d0f0304..e73581cdd6 100644 --- a/resources/quality/cartesio/pla/cartesio_0.4_pla_high.inst.cfg +++ b/resources/quality/cartesio/pla/cartesio_0.4_pla_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_pla_175_cartesio_0.4_mm weight = 1 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.5 @@ -35,7 +35,7 @@ speed_print = 50 speed_infill = =speed_print speed_layer_0 = =round(speed_print / 5 * 4) speed_wall = =round(speed_print / 2) -speed_wall_0 = =10 if speed_wall < 11 else (speed_print / 5 *3) +speed_wall_0 = =10 if speed_wall < 11 else 15 speed_topbottom = =round(speed_print / 5 * 4) speed_travel = =round(speed_print if magic_spiralize else 150) speed_travel_layer_0 = =speed_travel diff --git a/resources/quality/cartesio/pla/cartesio_0.4_pla_normal.inst.cfg b/resources/quality/cartesio/pla/cartesio_0.4_pla_normal.inst.cfg index cf78eafb6d..dfa47d2ebb 100644 --- a/resources/quality/cartesio/pla/cartesio_0.4_pla_normal.inst.cfg +++ b/resources/quality/cartesio/pla/cartesio_0.4_pla_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_pla_175_cartesio_0.4_mm weight = 2 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/pla/cartesio_0.8_pla_coarse.inst.cfg b/resources/quality/cartesio/pla/cartesio_0.8_pla_coarse.inst.cfg index fc8eec3fb5..a17454ba87 100644 --- a/resources/quality/cartesio/pla/cartesio_0.8_pla_coarse.inst.cfg +++ b/resources/quality/cartesio/pla/cartesio_0.8_pla_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = coarse material = generic_pla_175_cartesio_0.8_mm weight = 3 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/pla/cartesio_0.8_pla_extra_coarse.inst.cfg b/resources/quality/cartesio/pla/cartesio_0.8_pla_extra_coarse.inst.cfg index fccb15ee29..3f4db2d40a 100644 --- a/resources/quality/cartesio/pla/cartesio_0.8_pla_extra_coarse.inst.cfg +++ b/resources/quality/cartesio/pla/cartesio_0.8_pla_extra_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = extra coarse material = generic_pla_175_cartesio_0.8_mm weight = 4 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/pla/cartesio_0.8_pla_high.inst.cfg b/resources/quality/cartesio/pla/cartesio_0.8_pla_high.inst.cfg index da9515d387..5de8fd3aa8 100644 --- a/resources/quality/cartesio/pla/cartesio_0.8_pla_high.inst.cfg +++ b/resources/quality/cartesio/pla/cartesio_0.8_pla_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_pla_175_cartesio_0.8_mm weight = 1 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.9 @@ -35,7 +35,7 @@ speed_print = 50 speed_infill = =speed_print speed_layer_0 = =round(speed_print / 5 * 4) speed_wall = =round(speed_print / 2) -speed_wall_0 = =10 if speed_wall < 11 else (speed_print / 5 *3) +speed_wall_0 = =10 if speed_wall < 11 else 15 speed_topbottom = =round(speed_print / 5 * 4) speed_travel = =round(speed_print if magic_spiralize else 150) speed_travel_layer_0 = =speed_travel diff --git a/resources/quality/cartesio/pla/cartesio_0.8_pla_normal.inst.cfg b/resources/quality/cartesio/pla/cartesio_0.8_pla_normal.inst.cfg index 8992fc1e41..1071a139f9 100644 --- a/resources/quality/cartesio/pla/cartesio_0.8_pla_normal.inst.cfg +++ b/resources/quality/cartesio/pla/cartesio_0.8_pla_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_pla_175_cartesio_0.8_mm weight = 2 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/pva/cartesio_0.25_pva_high.inst.cfg b/resources/quality/cartesio/pva/cartesio_0.25_pva_high.inst.cfg index ddd097875b..222a3d7438 100644 --- a/resources/quality/cartesio/pva/cartesio_0.25_pva_high.inst.cfg +++ b/resources/quality/cartesio/pva/cartesio_0.25_pva_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_pva_175_cartesio_0.25_mm weight = 1 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.3 @@ -35,7 +35,7 @@ speed_print = 50 speed_infill = =speed_print speed_layer_0 = =round(speed_print / 5 * 4) speed_wall = =round(speed_print / 2) -speed_wall_0 = =10 if speed_wall < 11 else (speed_print / 5 *3) +speed_wall_0 = =10 if speed_wall < 11 else 15 speed_topbottom = =round(speed_print / 5 * 4) speed_travel = =round(speed_print if magic_spiralize else 150) speed_travel_layer_0 = =speed_travel diff --git a/resources/quality/cartesio/pva/cartesio_0.25_pva_normal.inst.cfg b/resources/quality/cartesio/pva/cartesio_0.25_pva_normal.inst.cfg index c83c6ca004..e074b1f1b7 100644 --- a/resources/quality/cartesio/pva/cartesio_0.25_pva_normal.inst.cfg +++ b/resources/quality/cartesio/pva/cartesio_0.25_pva_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_pva_175_cartesio_0.25_mm weight = 2 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.3 diff --git a/resources/quality/cartesio/pva/cartesio_0.4_pva_high.inst.cfg b/resources/quality/cartesio/pva/cartesio_0.4_pva_high.inst.cfg index 0c6f6813ea..a0df1df247 100644 --- a/resources/quality/cartesio/pva/cartesio_0.4_pva_high.inst.cfg +++ b/resources/quality/cartesio/pva/cartesio_0.4_pva_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_pva_175_cartesio_0.4_mm weight = 1 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.5 @@ -35,7 +35,7 @@ speed_print = 50 speed_infill = =speed_print speed_layer_0 = =round(speed_print / 5 * 4) speed_wall = =round(speed_print / 2) -speed_wall_0 = =10 if speed_wall < 11 else (speed_print / 5 *3) +speed_wall_0 = =10 if speed_wall < 11 else 15 speed_topbottom = =round(speed_print / 5 * 4) speed_travel = =round(speed_print if magic_spiralize else 150) speed_travel_layer_0 = =speed_travel diff --git a/resources/quality/cartesio/pva/cartesio_0.4_pva_normal.inst.cfg b/resources/quality/cartesio/pva/cartesio_0.4_pva_normal.inst.cfg index 6b68aacc53..1e69f794a8 100644 --- a/resources/quality/cartesio/pva/cartesio_0.4_pva_normal.inst.cfg +++ b/resources/quality/cartesio/pva/cartesio_0.4_pva_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_pva_175_cartesio_0.4_mm weight = 2 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/pva/cartesio_0.8_pva_coarse.inst.cfg b/resources/quality/cartesio/pva/cartesio_0.8_pva_coarse.inst.cfg index 69e66a0171..2ac1aff331 100644 --- a/resources/quality/cartesio/pva/cartesio_0.8_pva_coarse.inst.cfg +++ b/resources/quality/cartesio/pva/cartesio_0.8_pva_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = coarse material = generic_pva_175_cartesio_0.8_mm weight = 3 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/pva/cartesio_0.8_pva_extra_coarse.inst.cfg b/resources/quality/cartesio/pva/cartesio_0.8_pva_extra_coarse.inst.cfg index 1fb5c72cfc..14602d4e95 100644 --- a/resources/quality/cartesio/pva/cartesio_0.8_pva_extra_coarse.inst.cfg +++ b/resources/quality/cartesio/pva/cartesio_0.8_pva_extra_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = extra coarse material = generic_pva_175_cartesio_0.8_mm weight = 4 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/pva/cartesio_0.8_pva_high.inst.cfg b/resources/quality/cartesio/pva/cartesio_0.8_pva_high.inst.cfg index cfdfdbc708..b21d8b85f6 100644 --- a/resources/quality/cartesio/pva/cartesio_0.8_pva_high.inst.cfg +++ b/resources/quality/cartesio/pva/cartesio_0.8_pva_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_pva_175_cartesio_0.8_mm weight = 1 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.9 @@ -35,7 +35,7 @@ speed_print = 50 speed_infill = =speed_print speed_layer_0 = =round(speed_print / 5 * 4) speed_wall = =round(speed_print / 2) -speed_wall_0 = =10 if speed_wall < 11 else (speed_print / 5 *3) +speed_wall_0 = =10 if speed_wall < 11 else 15 speed_topbottom = =round(speed_print / 5 * 4) speed_travel = =round(speed_print if magic_spiralize else 150) speed_travel_layer_0 = =speed_travel diff --git a/resources/quality/cartesio/pva/cartesio_0.8_pva_normal.inst.cfg b/resources/quality/cartesio/pva/cartesio_0.8_pva_normal.inst.cfg index f146874fb4..61eb2f89d9 100644 --- a/resources/quality/cartesio/pva/cartesio_0.8_pva_normal.inst.cfg +++ b/resources/quality/cartesio/pva/cartesio_0.8_pva_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_pva_175_cartesio_0.8_mm weight = 2 -setting_version = 1 +setting_version = 2 [values] infill_line_width = 0.9 diff --git a/resources/quality/coarse.inst.cfg b/resources/quality/coarse.inst.cfg index 7722e9d0ae..bdeda58626 100644 --- a/resources/quality/coarse.inst.cfg +++ b/resources/quality/coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = coarse global_quality = True weight = -3 -setting_version = 1 +setting_version = 2 [values] layer_height = 0.4 diff --git a/resources/quality/draft.inst.cfg b/resources/quality/draft.inst.cfg index 21a7c81d6c..15df2f2f08 100644 --- a/resources/quality/draft.inst.cfg +++ b/resources/quality/draft.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = draft global_quality = True weight = -2 -setting_version = 1 +setting_version = 2 [values] layer_height = 0.2 diff --git a/resources/quality/extra_coarse.inst.cfg b/resources/quality/extra_coarse.inst.cfg index 4c2bced7d2..921cfbb981 100644 --- a/resources/quality/extra_coarse.inst.cfg +++ b/resources/quality/extra_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = Extra coarse global_quality = True weight = -4 -setting_version = 1 +setting_version = 2 [values] layer_height = 0.6 diff --git a/resources/quality/high.inst.cfg b/resources/quality/high.inst.cfg index d9965f0829..695d500198 100644 --- a/resources/quality/high.inst.cfg +++ b/resources/quality/high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high global_quality = True weight = 1 -setting_version = 1 +setting_version = 2 [values] layer_height = 0.06 diff --git a/resources/quality/imade3d_jellybox/generic_petg_0.4_coarse.inst.cfg b/resources/quality/imade3d_jellybox/generic_petg_0.4_coarse.inst.cfg index 674ed17e44..2c0dc434ee 100644 --- a/resources/quality/imade3d_jellybox/generic_petg_0.4_coarse.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_petg_0.4_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_petg_imade3d_jellybox_0.4_mm weight = -1 quality_type = fast -setting_version = 1 +setting_version = 2 [values] adhesion_type = skirt diff --git a/resources/quality/imade3d_jellybox/generic_petg_0.4_coarse_2-fans.inst.cfg b/resources/quality/imade3d_jellybox/generic_petg_0.4_coarse_2-fans.inst.cfg index e98c0a38ee..f9327873dd 100644 --- a/resources/quality/imade3d_jellybox/generic_petg_0.4_coarse_2-fans.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_petg_0.4_coarse_2-fans.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_petg_imade3d_jellybox_0.4_mm_2-fans weight = -1 quality_type = fast -setting_version = 1 +setting_version = 2 [values] adhesion_type = skirt diff --git a/resources/quality/imade3d_jellybox/generic_petg_0.4_medium.inst.cfg b/resources/quality/imade3d_jellybox/generic_petg_0.4_medium.inst.cfg index 2a947aceec..16ec2d9f1e 100644 --- a/resources/quality/imade3d_jellybox/generic_petg_0.4_medium.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_petg_0.4_medium.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_petg_imade3d_jellybox_0.4_mm weight = 0 quality_type = normal -setting_version = 1 +setting_version = 2 [values] adhesion_type = skirt diff --git a/resources/quality/imade3d_jellybox/generic_petg_0.4_medium_2-fans.inst.cfg b/resources/quality/imade3d_jellybox/generic_petg_0.4_medium_2-fans.inst.cfg index 67078b9cde..3302402233 100644 --- a/resources/quality/imade3d_jellybox/generic_petg_0.4_medium_2-fans.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_petg_0.4_medium_2-fans.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_petg_imade3d_jellybox_0.4_mm_2-fans weight = 0 quality_type = normal -setting_version = 1 +setting_version = 2 [values] adhesion_type = skirt diff --git a/resources/quality/imade3d_jellybox/generic_pla_0.4_coarse.inst.cfg b/resources/quality/imade3d_jellybox/generic_pla_0.4_coarse.inst.cfg index c82d42120d..8ed78edfed 100644 --- a/resources/quality/imade3d_jellybox/generic_pla_0.4_coarse.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_pla_0.4_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla_imade3d_jellybox_0.4_mm weight = -1 quality_type = fast -setting_version = 1 +setting_version = 2 [values] adhesion_type = skirt diff --git a/resources/quality/imade3d_jellybox/generic_pla_0.4_coarse_2-fans.inst.cfg b/resources/quality/imade3d_jellybox/generic_pla_0.4_coarse_2-fans.inst.cfg index 634b1219f7..845f03873d 100644 --- a/resources/quality/imade3d_jellybox/generic_pla_0.4_coarse_2-fans.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_pla_0.4_coarse_2-fans.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla_imade3d_jellybox_0.4_mm_2-fans weight = -1 quality_type = fast -setting_version = 1 +setting_version = 2 [values] adhesion_type = skirt diff --git a/resources/quality/imade3d_jellybox/generic_pla_0.4_fine.inst.cfg b/resources/quality/imade3d_jellybox/generic_pla_0.4_fine.inst.cfg index 9d1ece2ea9..b587b64fef 100644 --- a/resources/quality/imade3d_jellybox/generic_pla_0.4_fine.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_pla_0.4_fine.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla_imade3d_jellybox_0.4_mm weight = 1 quality_type = high -setting_version = 1 +setting_version = 2 [values] adhesion_type = skirt diff --git a/resources/quality/imade3d_jellybox/generic_pla_0.4_fine_2-fans.inst.cfg b/resources/quality/imade3d_jellybox/generic_pla_0.4_fine_2-fans.inst.cfg index 2cc8a57a73..c4a4b4f465 100644 --- a/resources/quality/imade3d_jellybox/generic_pla_0.4_fine_2-fans.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_pla_0.4_fine_2-fans.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla_imade3d_jellybox_0.4_mm_2-fans weight = 1 quality_type = high -setting_version = 1 +setting_version = 2 [values] adhesion_type = skirt diff --git a/resources/quality/imade3d_jellybox/generic_pla_0.4_medium.inst.cfg b/resources/quality/imade3d_jellybox/generic_pla_0.4_medium.inst.cfg index c30943b4f2..7f2c4ce316 100644 --- a/resources/quality/imade3d_jellybox/generic_pla_0.4_medium.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_pla_0.4_medium.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla_imade3d_jellybox_0.4_mm weight = 0 quality_type = normal -setting_version = 1 +setting_version = 2 [values] adhesion_type = skirt diff --git a/resources/quality/imade3d_jellybox/generic_pla_0.4_medium_2-fans.inst.cfg b/resources/quality/imade3d_jellybox/generic_pla_0.4_medium_2-fans.inst.cfg index 076d90334b..43bb14577b 100644 --- a/resources/quality/imade3d_jellybox/generic_pla_0.4_medium_2-fans.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_pla_0.4_medium_2-fans.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla_imade3d_jellybox_0.4_mm_2-fans weight = 0 quality_type = normal -setting_version = 1 +setting_version = 2 [values] adhesion_type = skirt diff --git a/resources/quality/imade3d_jellybox/generic_pla_0.4_ultrafine.inst.cfg b/resources/quality/imade3d_jellybox/generic_pla_0.4_ultrafine.inst.cfg index c8db03506a..253a3a2dc3 100644 --- a/resources/quality/imade3d_jellybox/generic_pla_0.4_ultrafine.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_pla_0.4_ultrafine.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla_imade3d_jellybox_0.4_mm weight = 2 quality_type = ultrahigh -setting_version = 1 +setting_version = 2 [values] adhesion_type = skirt diff --git a/resources/quality/imade3d_jellybox/generic_pla_0.4_ultrafine_2-fans.inst.cfg b/resources/quality/imade3d_jellybox/generic_pla_0.4_ultrafine_2-fans.inst.cfg index 01d5d601dd..8152b9a0c8 100644 --- a/resources/quality/imade3d_jellybox/generic_pla_0.4_ultrafine_2-fans.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_pla_0.4_ultrafine_2-fans.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla_imade3d_jellybox_0.4_mm_2-fans weight = 2 quality_type = ultrahigh -setting_version = 1 +setting_version = 2 [values] adhesion_type = skirt diff --git a/resources/quality/low.inst.cfg b/resources/quality/low.inst.cfg index 8c8200395b..466d741d5f 100644 --- a/resources/quality/low.inst.cfg +++ b/resources/quality/low.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = low global_quality = True weight = -1 -setting_version = 1 +setting_version = 2 [values] infill_sparse_density = 10 diff --git a/resources/quality/normal.inst.cfg b/resources/quality/normal.inst.cfg index b945e1e94f..0b4cec96d9 100644 --- a/resources/quality/normal.inst.cfg +++ b/resources/quality/normal.inst.cfg @@ -8,6 +8,6 @@ type = quality quality_type = normal global_quality = True weight = 0 -setting_version = 1 +setting_version = 2 [values] diff --git a/resources/quality/peopoly_moai/peopoly_moai_high.inst.cfg b/resources/quality/peopoly_moai/peopoly_moai_high.inst.cfg index 187462b4e5..d5e02e6c71 100644 --- a/resources/quality/peopoly_moai/peopoly_moai_high.inst.cfg +++ b/resources/quality/peopoly_moai/peopoly_moai_high.inst.cfg @@ -7,7 +7,7 @@ definition = peopoly_moai type = quality weight = 1 quality_type = high -setting_version = 1 +setting_version = 2 [values] infill_sparse_density = 70 diff --git a/resources/quality/peopoly_moai/peopoly_moai_max.inst.cfg b/resources/quality/peopoly_moai/peopoly_moai_max.inst.cfg index 720b98b1b0..a3c4913e5f 100644 --- a/resources/quality/peopoly_moai/peopoly_moai_max.inst.cfg +++ b/resources/quality/peopoly_moai/peopoly_moai_max.inst.cfg @@ -7,7 +7,7 @@ definition = peopoly_moai type = quality weight = 2 quality_type = extra_high -setting_version = 1 +setting_version = 2 [values] infill_sparse_density = 70 diff --git a/resources/quality/peopoly_moai/peopoly_moai_normal.inst.cfg b/resources/quality/peopoly_moai/peopoly_moai_normal.inst.cfg index faad40dc70..a9c52b0c27 100644 --- a/resources/quality/peopoly_moai/peopoly_moai_normal.inst.cfg +++ b/resources/quality/peopoly_moai/peopoly_moai_normal.inst.cfg @@ -7,7 +7,7 @@ definition = peopoly_moai type = quality weight = 0 quality_type = normal -setting_version = 1 +setting_version = 2 [values] infill_sparse_density = 70 diff --git a/resources/quality/ultimaker2_plus/pla_0.25_normal.inst.cfg b/resources/quality/ultimaker2_plus/pla_0.25_normal.inst.cfg index e17051a56d..1a7bbc79a9 100644 --- a/resources/quality/ultimaker2_plus/pla_0.25_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/pla_0.25_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla_ultimaker2_plus_0.25_mm weight = 1 quality_type = high -setting_version = 1 +setting_version = 2 [values] layer_height = 0.06 diff --git a/resources/quality/ultimaker2_plus/pla_0.4_fast.inst.cfg b/resources/quality/ultimaker2_plus/pla_0.4_fast.inst.cfg index 19d09b9e5c..4618a37d2f 100644 --- a/resources/quality/ultimaker2_plus/pla_0.4_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/pla_0.4_fast.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla_ultimaker2_plus_0.4_mm weight = -1 quality_type = fast -setting_version = 1 +setting_version = 2 [values] layer_height = 0.15 diff --git a/resources/quality/ultimaker2_plus/pla_0.4_high.inst.cfg b/resources/quality/ultimaker2_plus/pla_0.4_high.inst.cfg index 342629e87a..e5239e9a46 100644 --- a/resources/quality/ultimaker2_plus/pla_0.4_high.inst.cfg +++ b/resources/quality/ultimaker2_plus/pla_0.4_high.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla_ultimaker2_plus_0.4_mm weight = 1 quality_type = high -setting_version = 1 +setting_version = 2 [values] layer_height = 0.06 diff --git a/resources/quality/ultimaker2_plus/pla_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/pla_0.4_normal.inst.cfg index 9da2847b2a..2b4a47b99c 100644 --- a/resources/quality/ultimaker2_plus/pla_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/pla_0.4_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla_ultimaker2_plus_0.4_mm weight = 0 quality_type = normal -setting_version = 1 +setting_version = 2 [values] layer_height = 0.1 diff --git a/resources/quality/ultimaker2_plus/pla_0.6_normal.inst.cfg b/resources/quality/ultimaker2_plus/pla_0.6_normal.inst.cfg index 1c65c2acb1..b6b2f1392f 100644 --- a/resources/quality/ultimaker2_plus/pla_0.6_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/pla_0.6_normal.inst.cfg @@ -8,7 +8,7 @@ material = generic_pla_ultimaker2_plus_0.6_mm type = quality weight = 0 quality_type = normal -setting_version = 1 +setting_version = 2 [values] layer_height = 0.15 diff --git a/resources/quality/ultimaker2_plus/pla_0.8_normal.inst.cfg b/resources/quality/ultimaker2_plus/pla_0.8_normal.inst.cfg index 28de80d60f..23616e6b39 100644 --- a/resources/quality/ultimaker2_plus/pla_0.8_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/pla_0.8_normal.inst.cfg @@ -8,7 +8,7 @@ material = generic_pla_ultimaker2_plus_0.8_mm type = quality weight = -1 quality_type = fast -setting_version = 1 +setting_version = 2 [values] layer_height = 0.2 diff --git a/resources/quality/ultimaker2_plus/um2p_abs_0.25_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_abs_0.25_normal.inst.cfg index 946e524d87..20fa84d691 100644 --- a/resources/quality/ultimaker2_plus/um2p_abs_0.25_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_abs_0.25_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_abs_ultimaker2_plus_0.25_mm weight = 1 quality_type = high -setting_version = 1 +setting_version = 2 [values] layer_height = 0.06 diff --git a/resources/quality/ultimaker2_plus/um2p_abs_0.4_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_abs_0.4_fast.inst.cfg index 0e0235184d..88eed9f9e8 100644 --- a/resources/quality/ultimaker2_plus/um2p_abs_0.4_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_abs_0.4_fast.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_abs_ultimaker2_plus_0.4_mm weight = -1 quality_type = fast -setting_version = 1 +setting_version = 2 [values] layer_height = 0.15 diff --git a/resources/quality/ultimaker2_plus/um2p_abs_0.4_high.inst.cfg b/resources/quality/ultimaker2_plus/um2p_abs_0.4_high.inst.cfg index 302e3951d1..3af57d6a09 100644 --- a/resources/quality/ultimaker2_plus/um2p_abs_0.4_high.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_abs_0.4_high.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_abs_ultimaker2_plus_0.4_mm weight = 1 quality_type = high -setting_version = 1 +setting_version = 2 [values] layer_height = 0.06 diff --git a/resources/quality/ultimaker2_plus/um2p_abs_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_abs_0.4_normal.inst.cfg index 028ee1c0ea..ca57521636 100644 --- a/resources/quality/ultimaker2_plus/um2p_abs_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_abs_0.4_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_abs_ultimaker2_plus_0.4_mm weight = 0 quality_type = normal -setting_version = 1 +setting_version = 2 [values] layer_height = 0.1 diff --git a/resources/quality/ultimaker2_plus/um2p_abs_0.6_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_abs_0.6_normal.inst.cfg index 545b1e4776..b9232c850c 100644 --- a/resources/quality/ultimaker2_plus/um2p_abs_0.6_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_abs_0.6_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_abs_ultimaker2_plus_0.6_mm weight = 0 quality_type = normal -setting_version = 1 +setting_version = 2 [values] layer_height = 0.15 diff --git a/resources/quality/ultimaker2_plus/um2p_abs_0.8_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_abs_0.8_normal.inst.cfg index 772fe1f8c8..b3c4ed84c1 100644 --- a/resources/quality/ultimaker2_plus/um2p_abs_0.8_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_abs_0.8_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_abs_ultimaker2_plus_0.8_mm weight = -1 quality_type = fast -setting_version = 1 +setting_version = 2 [values] layer_height = 0.2 diff --git a/resources/quality/ultimaker2_plus/um2p_cpe_0.25_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpe_0.25_normal.inst.cfg index a9c64db3de..c8f82ea938 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpe_0.25_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpe_0.25_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_cpe_ultimaker2_plus_0.25_mm weight = -1 quality_type = high -setting_version = 1 +setting_version = 2 [values] layer_height = 0.06 diff --git a/resources/quality/ultimaker2_plus/um2p_cpe_0.4_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpe_0.4_fast.inst.cfg index d953b1e44b..e3bb676205 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpe_0.4_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpe_0.4_fast.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_cpe_ultimaker2_plus_0.4_mm weight = -1 quality_type = fast -setting_version = 1 +setting_version = 2 [values] layer_height = 0.15 diff --git a/resources/quality/ultimaker2_plus/um2p_cpe_0.4_high.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpe_0.4_high.inst.cfg index db295419a1..73c613fd85 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpe_0.4_high.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpe_0.4_high.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_cpe_ultimaker2_plus_0.4_mm weight = 1 quality_type = high -setting_version = 1 +setting_version = 2 [values] layer_height = 0.06 diff --git a/resources/quality/ultimaker2_plus/um2p_cpe_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpe_0.4_normal.inst.cfg index 0801789185..fa708fea78 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpe_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpe_0.4_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_cpe_ultimaker2_plus_0.4_mm weight = 0 quality_type = normal -setting_version = 1 +setting_version = 2 [values] layer_height = 0.1 diff --git a/resources/quality/ultimaker2_plus/um2p_cpe_0.6_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpe_0.6_normal.inst.cfg index f57b4acd75..268fb9571f 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpe_0.6_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpe_0.6_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_cpe_ultimaker2_plus_0.6_mm weight = 0 quality_type = normal -setting_version = 1 +setting_version = 2 [values] layer_height = 0.15 diff --git a/resources/quality/ultimaker2_plus/um2p_cpe_0.8_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpe_0.8_normal.inst.cfg index 0a5285dcf3..585680b387 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpe_0.8_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpe_0.8_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_cpe_ultimaker2_plus_0.8_mm weight = -1 quality_type = fast -setting_version = 1 +setting_version = 2 [values] layer_height = 0.2 diff --git a/resources/quality/ultimaker2_plus/um2p_cpep_0.4_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpep_0.4_draft.inst.cfg index 8e3ee22877..25e1190d16 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpep_0.4_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpep_0.4_draft.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_cpe_plus_ultimaker2_plus_0.4_mm weight = -2 quality_type = draft -setting_version = 1 +setting_version = 2 [values] speed_wall_x = 25 diff --git a/resources/quality/ultimaker2_plus/um2p_cpep_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpep_0.4_normal.inst.cfg index b43b6acbb1..f0dab0b80b 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpep_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpep_0.4_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_cpe_plus_ultimaker2_plus_0.4_mm weight = 0 quality_type = normal -setting_version = 1 +setting_version = 2 [values] speed_wall_x = 30 diff --git a/resources/quality/ultimaker2_plus/um2p_cpep_0.6_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpep_0.6_draft.inst.cfg index 9bd1597170..09f540395b 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpep_0.6_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpep_0.6_draft.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_cpe_plus_ultimaker2_plus_0.6_mm weight = -2 quality_type = draft -setting_version = 1 +setting_version = 2 [values] support_xy_distance = 0.6 diff --git a/resources/quality/ultimaker2_plus/um2p_cpep_0.6_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpep_0.6_normal.inst.cfg index a914f1f88a..055177e14e 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpep_0.6_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpep_0.6_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_cpe_plus_ultimaker2_plus_0.6_mm weight = 0 quality_type = normal -setting_version = 1 +setting_version = 2 [values] support_xy_distance = 0.6 diff --git a/resources/quality/ultimaker2_plus/um2p_cpep_0.8_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpep_0.8_draft.inst.cfg index 020b50b61a..795867c59c 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpep_0.8_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpep_0.8_draft.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_cpe_plus_ultimaker2_plus_0.8_mm weight = -2 quality_type = draft -setting_version = 1 +setting_version = 2 [values] support_z_distance = 0.26 diff --git a/resources/quality/ultimaker2_plus/um2p_cpep_0.8_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpep_0.8_normal.inst.cfg index ca84a137da..a40b30730d 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpep_0.8_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpep_0.8_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_cpe_plus_ultimaker2_plus_0.8_mm weight = 0 quality_type = normal -setting_version = 1 +setting_version = 2 [values] support_z_distance = 0.26 diff --git a/resources/quality/ultimaker2_plus/um2p_nylon_0.25_high.inst.cfg b/resources/quality/ultimaker2_plus/um2p_nylon_0.25_high.inst.cfg index ff517a6bc0..569ddb69bf 100644 --- a/resources/quality/ultimaker2_plus/um2p_nylon_0.25_high.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_nylon_0.25_high.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_nylon_ultimaker2_plus_0.25_mm weight = 1 quality_type = high -setting_version = 1 +setting_version = 2 [values] support_xy_distance = 0.6 diff --git a/resources/quality/ultimaker2_plus/um2p_nylon_0.25_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_nylon_0.25_normal.inst.cfg index 0dd6836896..740205d102 100644 --- a/resources/quality/ultimaker2_plus/um2p_nylon_0.25_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_nylon_0.25_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_nylon_ultimaker2_plus_0.25_mm weight = 0 quality_type = normal -setting_version = 1 +setting_version = 2 [values] support_xy_distance = 0.6 diff --git a/resources/quality/ultimaker2_plus/um2p_nylon_0.4_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_nylon_0.4_fast.inst.cfg index 3c4748ecf7..143f8c1a71 100644 --- a/resources/quality/ultimaker2_plus/um2p_nylon_0.4_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_nylon_0.4_fast.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_nylon_ultimaker2_plus_0.4_mm weight = -1 quality_type = fast -setting_version = 1 +setting_version = 2 [values] support_xy_distance = 0.6 diff --git a/resources/quality/ultimaker2_plus/um2p_nylon_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_nylon_0.4_normal.inst.cfg index 6d94746c18..d406a8fa7f 100644 --- a/resources/quality/ultimaker2_plus/um2p_nylon_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_nylon_0.4_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_nylon_ultimaker2_plus_0.4_mm weight = 0 quality_type = normal -setting_version = 1 +setting_version = 2 [values] support_xy_distance = 0.6 diff --git a/resources/quality/ultimaker2_plus/um2p_nylon_0.6_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_nylon_0.6_fast.inst.cfg index 6a00f13b8e..f3f9fddfbe 100644 --- a/resources/quality/ultimaker2_plus/um2p_nylon_0.6_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_nylon_0.6_fast.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_nylon_ultimaker2_plus_0.6_mm weight = -1 quality_type = fast -setting_version = 1 +setting_version = 2 [values] support_xy_distance = 0.7 diff --git a/resources/quality/ultimaker2_plus/um2p_nylon_0.6_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_nylon_0.6_normal.inst.cfg index 5a5c39fc2b..6810970eb5 100644 --- a/resources/quality/ultimaker2_plus/um2p_nylon_0.6_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_nylon_0.6_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_nylon_ultimaker2_plus_0.6_mm weight = 0 quality_type = normal -setting_version = 1 +setting_version = 2 [values] support_xy_distance = 0.7 diff --git a/resources/quality/ultimaker2_plus/um2p_nylon_0.8_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_nylon_0.8_draft.inst.cfg index 4c8aea5b29..aaba4b8a50 100644 --- a/resources/quality/ultimaker2_plus/um2p_nylon_0.8_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_nylon_0.8_draft.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_nylon_ultimaker2_plus_0.8_mm weight = -2 quality_type = draft -setting_version = 1 +setting_version = 2 [values] support_xy_distance = 0.75 diff --git a/resources/quality/ultimaker2_plus/um2p_nylon_0.8_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_nylon_0.8_normal.inst.cfg index b959cb3189..fae14c8266 100644 --- a/resources/quality/ultimaker2_plus/um2p_nylon_0.8_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_nylon_0.8_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_nylon_ultimaker2_plus_0.8_mm weight = 0 quality_type = normal -setting_version = 1 +setting_version = 2 [values] support_xy_distance = 0.75 diff --git a/resources/quality/ultimaker2_plus/um2p_pc_0.25_high.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pc_0.25_high.inst.cfg index d0b2daabb8..97b5446d10 100644 --- a/resources/quality/ultimaker2_plus/um2p_pc_0.25_high.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pc_0.25_high.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pc_ultimaker2_plus_0.25_mm weight = 1 quality_type = high -setting_version = 1 +setting_version = 2 [values] support_z_distance = 0.19 diff --git a/resources/quality/ultimaker2_plus/um2p_pc_0.25_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pc_0.25_normal.inst.cfg index 4b68931888..57101394b3 100644 --- a/resources/quality/ultimaker2_plus/um2p_pc_0.25_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pc_0.25_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pc_ultimaker2_plus_0.25_mm weight = 0 quality_type = normal -setting_version = 1 +setting_version = 2 [values] support_z_distance = 0.19 diff --git a/resources/quality/ultimaker2_plus/um2p_pc_0.4_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pc_0.4_fast.inst.cfg index 873fb92a37..334ca6fde2 100644 --- a/resources/quality/ultimaker2_plus/um2p_pc_0.4_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pc_0.4_fast.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pc_ultimaker2_plus_0.4_mm weight = -1 quality_type = fast -setting_version = 1 +setting_version = 2 [values] speed_wall_x = 30 diff --git a/resources/quality/ultimaker2_plus/um2p_pc_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pc_0.4_normal.inst.cfg index 1b7ecd58b8..0d815cfdc3 100644 --- a/resources/quality/ultimaker2_plus/um2p_pc_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pc_0.4_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pc_ultimaker2_plus_0.4_mm weight = 0 quality_type = normal -setting_version = 1 +setting_version = 2 [values] speed_wall_x = 30 diff --git a/resources/quality/ultimaker2_plus/um2p_pc_0.6_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pc_0.6_fast.inst.cfg index c062bc9900..0e5cacbeac 100644 --- a/resources/quality/ultimaker2_plus/um2p_pc_0.6_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pc_0.6_fast.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pc_ultimaker2_plus_0.6_mm weight = -1 quality_type = fast -setting_version = 1 +setting_version = 2 [values] speed_travel = 150 diff --git a/resources/quality/ultimaker2_plus/um2p_pc_0.6_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pc_0.6_normal.inst.cfg index d1edaa628b..3c7f0ef212 100644 --- a/resources/quality/ultimaker2_plus/um2p_pc_0.6_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pc_0.6_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pc_ultimaker2_plus_0.6_mm weight = 0 quality_type = normal -setting_version = 1 +setting_version = 2 [values] speed_travel = 150 diff --git a/resources/quality/ultimaker2_plus/um2p_pc_0.8_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pc_0.8_draft.inst.cfg index 4887d4ca43..280dafa128 100644 --- a/resources/quality/ultimaker2_plus/um2p_pc_0.8_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pc_0.8_draft.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pc_ultimaker2_plus_0.8_mm weight = -2 quality_type = draft -setting_version = 1 +setting_version = 2 [values] support_z_distance = 0.26 diff --git a/resources/quality/ultimaker2_plus/um2p_pc_0.8_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pc_0.8_normal.inst.cfg index 9719ebec64..e79d3339f2 100644 --- a/resources/quality/ultimaker2_plus/um2p_pc_0.8_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pc_0.8_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pc_ultimaker2_plus_0.8_mm weight = 0 quality_type = normal -setting_version = 1 +setting_version = 2 [values] support_z_distance = 0.26 diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Not_Supported_Quality.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.25_normal.inst.cfg old mode 100755 new mode 100644 similarity index 57% rename from resources/quality/ultimaker3/um3_aa0.8_CPEP_Not_Supported_Quality.inst.cfg rename to resources/quality/ultimaker2_plus/um2p_pp_0.25_normal.inst.cfg index ddde16205e..0aa08a65b8 --- a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Not_Supported_Quality.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.25_normal.inst.cfg @@ -1,14 +1,14 @@ [general] version = 2 name = Not Supported -definition = ultimaker3 +definition = ultimaker2_plus [metadata] type = quality -quality_type = normal -material = generic_cpe_plus_ultimaker3_AA_0.8 +material = generic_pp_ultimaker2_plus_0.25_mm weight = 0 +quality_type = normal +setting_version = 2 supported = False -setting_version = 1 [values] diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg new file mode 100644 index 0000000000..558e314581 --- /dev/null +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg @@ -0,0 +1,73 @@ +[general] +version = 2 +name = Normal +definition = ultimaker2_plus + +[metadata] +type = quality +material = generic_pp_ultimaker2_plus_0.4_mm +weight = -1 +quality_type = fast +setting_version = 2 + +[values] +acceleration_enabled = True +acceleration_layer_0 = =acceleration_topbottom +acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_print = 4000 +acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_support_interface = =acceleration_topbottom +acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) +acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) +acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) +brim_width = 20 +cool_fan_full_at_height = =layer_height_0 + 4 * layer_height +cool_fan_speed_max = 100 +cool_min_layer_time_fan_speed_max = 6 +cool_min_speed = 20 +infill_line_width = =round(line_width * 0.4 / 0.38, 2) +infill_overlap = 0 +infill_pattern = cubic +infill_wipe_dist = 0 +jerk_enabled = True +jerk_layer_0 = =jerk_topbottom +jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) +jerk_print = 25 +jerk_support = =math.ceil(jerk_print * 15 / 25) +jerk_support_interface = =jerk_topbottom +jerk_topbottom = =math.ceil(jerk_print * 5 / 25) +jerk_wall = =math.ceil(jerk_print * 10 / 25) +jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10) +layer_height = 0.15 +line_width = =machine_nozzle_size * 0.95 +multiple_mesh_overlap = 0 +retraction_count_max = 12 +retraction_extrusion_window = 1 +retraction_hop = 0.15 +retraction_hop_enabled = True +retraction_hop_only_when_collides = True +retraction_min_travel = 0.5 +retraction_prime_speed = 15 +skin_overlap = 10 +speed_layer_0 = 25 +speed_prime_tower = =speed_topbottom +speed_print = 25 +speed_support_interface = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 25 / 25) +speed_travel = 250 +speed_travel_layer_0 = 50 +speed_wall = =math.ceil(speed_print * 25 / 25) +speed_wall_0 = =math.ceil(speed_wall * 20 / 25) +support_angle = 60 +support_bottom_distance = =support_z_distance / 2 +support_top_distance = =support_z_distance +support_xy_distance = =wall_line_width_0 * 2.5 +support_xy_distance_overhang = =wall_line_width_0 +support_z_distance = =layer_height * 2 +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 35 +travel_avoid_distance = 3 +wall_0_inset = 0 +wall_line_width_x = =round(line_width * 0.38 / 0.38, 2) +wall_thickness = 0.76 \ No newline at end of file diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.4_normal.inst.cfg new file mode 100644 index 0000000000..668899184f --- /dev/null +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.4_normal.inst.cfg @@ -0,0 +1,72 @@ +[general] +version = 2 +name = Fine +definition = ultimaker2_plus + +[metadata] +type = quality +material = generic_pp_ultimaker2_plus_0.4_mm +weight = 0 +quality_type = normal +setting_version = 2 + +[values] +acceleration_enabled = True +acceleration_layer_0 = =acceleration_topbottom +acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_print = 4000 +acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_support_interface = =acceleration_topbottom +acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) +acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) +acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) +brim_width = 20 +cool_fan_full_at_height = =layer_height_0 + 4 * layer_height +cool_fan_speed_max = 100 +cool_min_layer_time_fan_speed_max = 6 +cool_min_speed = 20 +infill_line_width = =round(line_width * 0.4 / 0.38, 2) +infill_overlap = 0 +infill_pattern = cubic +infill_wipe_dist = 0 +jerk_enabled = True +jerk_layer_0 = =jerk_topbottom +jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) +jerk_print = 25 +jerk_support = =math.ceil(jerk_print * 15 / 25) +jerk_support_interface = =jerk_topbottom +jerk_topbottom = =math.ceil(jerk_print * 5 / 25) +jerk_wall = =math.ceil(jerk_print * 10 / 25) +jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10) +line_width = =machine_nozzle_size * 0.95 +multiple_mesh_overlap = 0 +retraction_count_max = 12 +retraction_extrusion_window = 1 +retraction_hop = 0.15 +retraction_hop_enabled = True +retraction_hop_only_when_collides = True +retraction_min_travel = 0.5 +retraction_prime_speed = 15 +skin_overlap = 10 +speed_layer_0 = 25 +speed_prime_tower = =speed_topbottom +speed_print = 25 +speed_support_interface = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 25 / 25) +speed_travel = 250 +speed_travel_layer_0 = 50 +speed_wall = =math.ceil(speed_print * 25 / 25) +speed_wall_0 = =math.ceil(speed_wall * 20 / 25) +support_angle = 60 +support_bottom_distance = =support_z_distance / 2 +support_top_distance = =support_z_distance +support_xy_distance = =wall_line_width_0 * 2.5 +support_xy_distance_overhang = =wall_line_width_0 +support_z_distance = =layer_height * 2 +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 35 +travel_avoid_distance = 3 +wall_0_inset = 0 +wall_line_width_x = =round(line_width * 0.38 / 0.38, 2) +wall_thickness = 0.76 \ No newline at end of file diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.6_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.6_draft.inst.cfg new file mode 100644 index 0000000000..f3db281962 --- /dev/null +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.6_draft.inst.cfg @@ -0,0 +1,75 @@ +[general] +version = 2 +name = Fast +definition = ultimaker2_plus + +[metadata] +type = quality +material = generic_pp_ultimaker2_plus_0.6_mm +weight = -2 +quality_type = draft +setting_version = 2 + +[values] +acceleration_enabled = True +acceleration_layer_0 = =acceleration_topbottom +acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_print = 4000 +acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_support_interface = =acceleration_topbottom +acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) +acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) +acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) +brim_width = 20 +cool_fan_full_at_height = =layer_height_0 + 4 * layer_height +cool_fan_speed_max = 100 +cool_min_layer_time_fan_speed_max = 6 +cool_min_speed = 20 +infill_line_width = =round(line_width * 0.6 / 0.57, 2) +infill_overlap = 0 +infill_pattern = cubic +infill_wipe_dist = 0 +jerk_enabled = True +jerk_layer_0 = =jerk_topbottom +jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) +jerk_print = 25 +jerk_support = =math.ceil(jerk_print * 15 / 25) +jerk_support_interface = =jerk_topbottom +jerk_topbottom = =math.ceil(jerk_print * 5 / 25) +jerk_wall = =math.ceil(jerk_print * 10 / 25) +jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10) +layer_height = 0.2 +line_width = =machine_nozzle_size * 0.95 +multiple_mesh_overlap = 0 +retraction_count_max = 12 +retraction_extrusion_window = 1 +retraction_hop = 0.15 +retraction_hop_enabled = True +retraction_hop_only_when_collides = True +retraction_min_travel = 0.5 +retraction_prime_speed = 15 +skin_overlap = 10 +skirt_brim_line_width = 0.6 +speed_layer_0 = 25 +speed_prime_tower = =speed_topbottom +speed_print = 25 +speed_support_interface = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 25 / 25) +speed_travel = 250 +speed_travel_layer_0 = 50 +speed_wall = =math.ceil(speed_print * 25 / 25) +speed_wall_0 = =math.ceil(speed_wall * 20 / 25) +support_angle = 60 +support_bottom_distance = =support_z_distance / 2 +support_top_distance = =support_z_distance +support_xy_distance = =wall_line_width_0 * 2.5 +support_xy_distance_overhang = =wall_line_width_0 +support_z_distance = =layer_height * 2 +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 35 +top_bottom_thickness = 1.1 +travel_avoid_distance = 3 +wall_0_inset = 0 +wall_line_width_x = =round(line_width * 0.57 / 0.57, 2) +wall_thickness = 1.14 \ No newline at end of file diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg new file mode 100644 index 0000000000..ffefbcf4c7 --- /dev/null +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg @@ -0,0 +1,75 @@ +[general] +version = 2 +name = Normal +definition = ultimaker2_plus + +[metadata] +type = quality +material = generic_pp_ultimaker2_plus_0.6_mm +weight = -1 +quality_type = fast +setting_version = 2 + +[values] +acceleration_enabled = True +acceleration_layer_0 = =acceleration_topbottom +acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_print = 4000 +acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_support_interface = =acceleration_topbottom +acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) +acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) +acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) +brim_width = 20 +cool_fan_full_at_height = =layer_height_0 + 4 * layer_height +cool_fan_speed_max = 100 +cool_min_layer_time_fan_speed_max = 6 +cool_min_speed = 20 +infill_line_width = =round(line_width * 0.6 / 0.57, 2) +infill_overlap = 0 +infill_pattern = cubic +infill_wipe_dist = 0 +jerk_enabled = True +jerk_layer_0 = =jerk_topbottom +jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) +jerk_print = 25 +jerk_support = =math.ceil(jerk_print * 15 / 25) +jerk_support_interface = =jerk_topbottom +jerk_topbottom = =math.ceil(jerk_print * 5 / 25) +jerk_wall = =math.ceil(jerk_print * 10 / 25) +jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10) +layer_height = 0.15 +line_width = =machine_nozzle_size * 0.95 +multiple_mesh_overlap = 0 +retraction_count_max = 12 +retraction_extrusion_window = 1 +retraction_hop = 0.15 +retraction_hop_enabled = True +retraction_hop_only_when_collides = True +retraction_min_travel = 0.5 +retraction_prime_speed = 15 +skin_overlap = 10 +skirt_brim_line_width = 0.6 +speed_layer_0 = 25 +speed_prime_tower = =speed_topbottom +speed_print = 25 +speed_support_interface = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 25 / 25) +speed_travel = 250 +speed_travel_layer_0 = 50 +speed_wall = =math.ceil(speed_print * 25 / 25) +speed_wall_0 = =math.ceil(speed_wall * 20 / 25) +support_angle = 60 +support_bottom_distance = =support_z_distance / 2 +support_top_distance = =support_z_distance +support_xy_distance = =wall_line_width_0 * 2.5 +support_xy_distance_overhang = =wall_line_width_0 +support_z_distance = =layer_height * 2 +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 35 +top_bottom_thickness = 1.1 +travel_avoid_distance = 3 +wall_0_inset = 0 +wall_line_width_x = =round(line_width * 0.57 / 0.57, 2) +wall_thickness = 1.14 \ No newline at end of file diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg new file mode 100644 index 0000000000..380c54cbc4 --- /dev/null +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg @@ -0,0 +1,75 @@ +[general] +version = 2 +name = Fast +definition = ultimaker2_plus + +[metadata] +type = quality +material = generic_pp_ultimaker2_plus_0.8_mm +weight = -2 +quality_type = fast +setting_version = 2 + +[values] +acceleration_enabled = True +acceleration_layer_0 = =acceleration_topbottom +acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_print = 4000 +acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_support_interface = =acceleration_topbottom +acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) +acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) +acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) +brim_width = 20 +cool_fan_full_at_height = =layer_height_0 + 4 * layer_height +cool_fan_speed_max = 100 +cool_min_layer_time_fan_speed_max = 6 +cool_min_speed = 20 +infill_line_width = =round(line_width * 0.8 / 0.76, 2) +infill_overlap = 0 +infill_pattern = cubic +infill_wipe_dist = 0 +jerk_enabled = True +jerk_layer_0 = =jerk_topbottom +jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) +jerk_print = 25 +jerk_support = =math.ceil(jerk_print * 15 / 25) +jerk_support_interface = =jerk_topbottom +jerk_topbottom = =math.ceil(jerk_print * 5 / 25) +jerk_wall = =math.ceil(jerk_print * 10 / 25) +jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10) +layer_height = 0.2 +line_width = =machine_nozzle_size * 0.95 +multiple_mesh_overlap = 0 +retraction_count_max = 12 +retraction_extrusion_window = 1 +retraction_hop = 0.15 +retraction_hop_enabled = True +retraction_hop_only_when_collides = True +retraction_min_travel = 0.5 +retraction_prime_speed = 15 +skin_overlap = 10 +skirt_brim_line_width = 0.8 +speed_layer_0 = 25 +speed_prime_tower = =speed_topbottom +speed_print = 25 +speed_support_interface = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 25 / 25) +speed_travel = 250 +speed_travel_layer_0 = 50 +speed_wall = =math.ceil(speed_print * 25 / 25) +speed_wall_0 = =math.ceil(speed_wall * 20 / 25) +support_angle = 60 +support_bottom_distance = =support_z_distance / 2 +support_top_distance = =support_z_distance +support_xy_distance = =wall_line_width_0 * 2.5 +support_xy_distance_overhang = =wall_line_width_0 +support_z_distance = =layer_height * 2 +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 35 +top_bottom_thickness = 1.5 +travel_avoid_distance = 3 +wall_0_inset = 0 +wall_line_width_x = =round(line_width * 0.76 / 0.76, 2) +wall_thickness = 1.52 \ No newline at end of file diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.8_verydraft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.8_verydraft.inst.cfg new file mode 100644 index 0000000000..84a95eab17 --- /dev/null +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.8_verydraft.inst.cfg @@ -0,0 +1,75 @@ +[general] +version = 2 +name = Extra Fast +definition = ultimaker2_plus + +[metadata] +type = quality +material = generic_pp_ultimaker2_plus_0.8_mm +weight = -3 +quality_type = draft +setting_version = 2 + +[values] +acceleration_enabled = True +acceleration_layer_0 = =acceleration_topbottom +acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_print = 4000 +acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_support_interface = =acceleration_topbottom +acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) +acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) +acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) +brim_width = 20 +cool_fan_full_at_height = =layer_height_0 + 4 * layer_height +cool_fan_speed_max = 100 +cool_min_layer_time_fan_speed_max = 6 +cool_min_speed = 20 +infill_line_width = =round(line_width * 0.8 / 0.76, 2) +infill_overlap = 0 +infill_pattern = cubic +infill_wipe_dist = 0 +jerk_enabled = True +jerk_layer_0 = =jerk_topbottom +jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) +jerk_print = 25 +jerk_support = =math.ceil(jerk_print * 15 / 25) +jerk_support_interface = =jerk_topbottom +jerk_topbottom = =math.ceil(jerk_print * 5 / 25) +jerk_wall = =math.ceil(jerk_print * 10 / 25) +jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10) +layer_height = 0.3 +line_width = =machine_nozzle_size * 0.95 +multiple_mesh_overlap = 0 +retraction_count_max = 12 +retraction_extrusion_window = 1 +retraction_hop = 0.15 +retraction_hop_enabled = True +retraction_hop_only_when_collides = True +retraction_min_travel = 0.5 +retraction_prime_speed = 15 +skin_overlap = 10 +skirt_brim_line_width = 0.8 +speed_layer_0 = 25 +speed_prime_tower = =speed_topbottom +speed_print = 25 +speed_support_interface = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 25 / 25) +speed_travel = 250 +speed_travel_layer_0 = 50 +speed_wall = =math.ceil(speed_print * 25 / 25) +speed_wall_0 = =math.ceil(speed_wall * 20 / 25) +support_angle = 60 +support_bottom_distance = =support_z_distance / 2 +support_top_distance = =support_z_distance +support_xy_distance = =wall_line_width_0 * 2.5 +support_xy_distance_overhang = =wall_line_width_0 +support_z_distance = =layer_height * 2 +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 35 +top_bottom_thickness = 1.5 +travel_avoid_distance = 3 +wall_0_inset = 0 +wall_line_width_x = =round(line_width * 0.76 / 0.76, 2) +wall_thickness = 1.52 \ No newline at end of file diff --git a/resources/quality/ultimaker2_plus/um2p_tpu_0.25_high.inst.cfg b/resources/quality/ultimaker2_plus/um2p_tpu_0.25_high.inst.cfg index ed526b705c..afa7c89fd5 100644 --- a/resources/quality/ultimaker2_plus/um2p_tpu_0.25_high.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_tpu_0.25_high.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_tpu_ultimaker2_plus_0.25_mm weight = 1 quality_type = high -setting_version = 1 +setting_version = 2 [values] support_xy_distance = 0.6 @@ -31,7 +31,7 @@ infill_sparse_density = 10 cool_fan_speed = 60 speed_travel = 150 speed_support = 40 -support_z_distance = 0.45 +support_z_distance = =layer_height * 2 cool_fan_speed_min = =cool_fan_speed * 35 / 60 brim_line_count = 8 retraction_hop_enabled = 0.2 diff --git a/resources/quality/ultimaker2_plus/um2p_tpu_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_tpu_0.4_normal.inst.cfg index 76f09c0db9..205cc25285 100644 --- a/resources/quality/ultimaker2_plus/um2p_tpu_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_tpu_0.4_normal.inst.cfg @@ -8,12 +8,12 @@ type = quality material = generic_tpu_ultimaker2_plus_0.4_mm weight = 0 quality_type = normal -setting_version = 1 +setting_version = 2 [values] support_xy_distance = 0.65 speed_travel = 150 -support_z_distance = 0.45 +support_z_distance = =layer_height * 2 speed_wall_x = 35 cool_min_speed = 15 cool_fan_speed = 60 @@ -37,4 +37,3 @@ speed_print = 40 support_angle = 45 cool_min_layer_time = 10 raft_base_line_width = 0.8 - diff --git a/resources/quality/ultimaker2_plus/um2p_tpu_0.6_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_tpu_0.6_fast.inst.cfg index 22fda17c62..ab696e84bb 100644 --- a/resources/quality/ultimaker2_plus/um2p_tpu_0.6_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_tpu_0.6_fast.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_tpu_ultimaker2_plus_0.6_mm weight = -1 quality_type = fast -setting_version = 1 +setting_version = 2 [values] support_xy_distance = 0.7 @@ -33,7 +33,7 @@ support_angle = 45 infill_sparse_density = 10 cool_fan_speed = 60 speed_support = 40 -support_z_distance = 0.45 +support_z_distance = =layer_height * 2 cool_fan_speed_min = =cool_fan_speed * 35 / 60 brim_line_count = 8 retraction_hop_enabled = 0.2 diff --git a/resources/quality/ultimaker3/um3_aa0.4_ABS_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_ABS_Draft_Print.inst.cfg index 15fdb08c92..e9a2667261 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_ABS_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_ABS_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_abs_ultimaker3_AA_0.4 weight = -2 -setting_version = 1 +setting_version = 2 [values] machine_nozzle_cool_down_speed = 0.85 diff --git a/resources/quality/ultimaker3/um3_aa0.4_ABS_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_ABS_Fast_Print.inst.cfg index ada4357f2b..96099347bd 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_ABS_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_ABS_Fast_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = fast material = generic_abs_ultimaker3_AA_0.4 weight = -1 -setting_version = 1 +setting_version = 2 [values] cool_min_speed = 7 diff --git a/resources/quality/ultimaker3/um3_aa0.4_ABS_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_ABS_High_Quality.inst.cfg index 3582df61e1..47c3602277 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_ABS_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_ABS_High_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_abs_ultimaker3_AA_0.4 weight = 1 -setting_version = 1 +setting_version = 2 [values] cool_min_speed = 12 diff --git a/resources/quality/ultimaker3/um3_aa0.4_ABS_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_ABS_Normal_Quality.inst.cfg index 25b9ed51b5..dcb29b48c6 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_ABS_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_ABS_Normal_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_abs_ultimaker3_AA_0.4 weight = 0 -setting_version = 1 +setting_version = 2 [values] machine_nozzle_cool_down_speed = 0.85 diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Draft_Print.inst.cfg index 44cd4540d5..2ae57b6333 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_cpe_plus_ultimaker3_AA_0.4 weight = -2 -setting_version = 1 +setting_version = 2 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Fast_Print.inst.cfg index a0d09c97c2..6fbc466b61 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Fast_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = fast material = generic_cpe_plus_ultimaker3_AA_0.4 weight = -1 -setting_version = 1 +setting_version = 2 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPEP_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPEP_High_Quality.inst.cfg index ebd7cd2d07..58719ca037 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPEP_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPEP_High_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_cpe_plus_ultimaker3_AA_0.4 weight = 1 -setting_version = 1 +setting_version = 2 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Normal_Quality.inst.cfg index 96cbc59a48..89dc4e5df5 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Normal_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_cpe_plus_ultimaker3_AA_0.4 weight = 0 -setting_version = 1 +setting_version = 2 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPE_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPE_Draft_Print.inst.cfg index 2c18b4baea..354efee6ef 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPE_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_cpe_ultimaker3_AA_0.4 weight = -2 -setting_version = 1 +setting_version = 2 [values] material_print_temperature = =default_material_print_temperature + 10 diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPE_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPE_Fast_Print.inst.cfg index 0d3321f0a8..ceab77fc4f 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPE_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPE_Fast_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = fast material = generic_cpe_ultimaker3_AA_0.4 weight = -1 -setting_version = 1 +setting_version = 2 [values] cool_min_speed = 7 diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPE_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPE_High_Quality.inst.cfg index baa1e2e785..edfe91c8a1 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPE_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPE_High_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_cpe_ultimaker3_AA_0.4 weight = 1 -setting_version = 1 +setting_version = 2 [values] cool_min_speed = 12 diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPE_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPE_Normal_Quality.inst.cfg index 4331fe5a0f..1487d476f0 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPE_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPE_Normal_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_cpe_ultimaker3_AA_0.4 weight = 0 -setting_version = 1 +setting_version = 2 [values] machine_nozzle_cool_down_speed = 0.85 diff --git a/resources/quality/ultimaker3/um3_aa0.4_Nylon_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_Nylon_Draft_Print.inst.cfg index b748fd50c7..6d33e4298a 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_Nylon_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_Nylon_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_nylon_ultimaker3_AA_0.4 weight = -2 -setting_version = 1 +setting_version = 2 [values] adhesion_type = brim diff --git a/resources/quality/ultimaker3/um3_aa0.4_Nylon_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_Nylon_Fast_Print.inst.cfg index b4e7b6ae83..189d8efbae 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_Nylon_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_Nylon_Fast_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = fast material = generic_nylon_ultimaker3_AA_0.4 weight = -1 -setting_version = 1 +setting_version = 2 [values] adhesion_type = brim diff --git a/resources/quality/ultimaker3/um3_aa0.4_Nylon_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_Nylon_High_Quality.inst.cfg index 488415a75c..70a72beb50 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_Nylon_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_Nylon_High_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_nylon_ultimaker3_AA_0.4 weight = 1 -setting_version = 1 +setting_version = 2 [values] adhesion_type = brim diff --git a/resources/quality/ultimaker3/um3_aa0.4_Nylon_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_Nylon_Normal_Quality.inst.cfg index ec6c409d19..324300d11f 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_Nylon_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_Nylon_Normal_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_nylon_ultimaker3_AA_0.4 weight = 0 -setting_version = 1 +setting_version = 2 [values] adhesion_type = brim diff --git a/resources/quality/ultimaker3/um3_aa0.4_PC_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PC_Draft_Print.inst.cfg index aca060286b..a88e38b560 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PC_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PC_Draft_Print.inst.cfg @@ -1,65 +1,65 @@ -[general] -version = 2 -name = Fast -definition = ultimaker3 - -[metadata] -type = quality -quality_type = draft -material = generic_pc_ultimaker3_AA_0.4 -weight = -2 -setting_version = 1 - -[values] -acceleration_enabled = True -acceleration_print = 4000 -adhesion_type = raft -brim_width = 20 -cool_fan_full_at_height = =layer_height_0 + layer_height -cool_fan_speed_max = 90 -cool_min_layer_time_fan_speed_max = 5 -cool_min_speed = 6 -infill_line_width = =round(line_width * 0.4 / 0.35, 2) -infill_overlap = 0 -infill_overlap_mm = 0.05 -infill_pattern = triangles -infill_wipe_dist = 0.1 -jerk_enabled = True -jerk_print = 25 -layer_height = 0.2 -machine_min_cool_heat_time_window = 15 -machine_nozzle_cool_down_speed = 0.85 -machine_nozzle_heat_up_speed = 1.5 -material_final_print_temperature = =material_print_temperature - 10 -material_initial_print_temperature = =material_print_temperature - 5 -material_print_temperature = =default_material_print_temperature + 10 -material_standby_temperature = 100 -multiple_mesh_overlap = 0 -ooze_shield_angle = 40 -prime_tower_enable = True -prime_tower_wipe_enabled = True -raft_airgap = 0.25 -raft_interface_thickness = =max(layer_height * 1.5, 0.225) -retraction_count_max = 80 -retraction_extrusion_window = 1 -retraction_hop = 2 -retraction_hop_enabled = True -retraction_hop_only_when_collides = True -retraction_min_travel = 0.8 -retraction_prime_speed = 15 -skin_overlap = 30 -speed_layer_0 = 25 -speed_print = 50 -speed_topbottom = 25 -speed_travel = 250 -speed_wall = =math.ceil(speed_print * 40 / 50) -speed_wall_0 = =math.ceil(speed_wall * 25 / 40) -support_bottom_distance = =support_z_distance -support_interface_density = 87.5 -support_interface_pattern = lines -switch_extruder_prime_speed = 15 -switch_extruder_retraction_amount = 20 -switch_extruder_retraction_speeds = 35 -wall_0_inset = 0 -wall_line_width_x = =round(line_width * 0.4 / 0.35, 2) -wall_thickness = 1.2 +[general] +version = 2 +name = Fast +definition = ultimaker3 + +[metadata] +type = quality +quality_type = draft +material = generic_pc_ultimaker3_AA_0.4 +weight = -2 +setting_version = 2 + +[values] +acceleration_enabled = True +acceleration_print = 4000 +adhesion_type = raft +brim_width = 20 +cool_fan_full_at_height = =layer_height_0 + layer_height +cool_fan_speed_max = 90 +cool_min_layer_time_fan_speed_max = 5 +cool_min_speed = 6 +infill_line_width = =round(line_width * 0.4 / 0.35, 2) +infill_overlap = 0 +infill_overlap_mm = 0.05 +infill_pattern = triangles +infill_wipe_dist = 0.1 +jerk_enabled = True +jerk_print = 25 +layer_height = 0.2 +machine_min_cool_heat_time_window = 15 +machine_nozzle_cool_down_speed = 0.85 +machine_nozzle_heat_up_speed = 1.5 +material_final_print_temperature = =material_print_temperature - 10 +material_initial_print_temperature = =material_print_temperature - 5 +material_print_temperature = =default_material_print_temperature + 10 +material_standby_temperature = 100 +multiple_mesh_overlap = 0 +ooze_shield_angle = 40 +prime_tower_enable = True +prime_tower_wipe_enabled = True +raft_airgap = 0.25 +raft_interface_thickness = =max(layer_height * 1.5, 0.225) +retraction_count_max = 80 +retraction_extrusion_window = 1 +retraction_hop = 2 +retraction_hop_enabled = True +retraction_hop_only_when_collides = True +retraction_min_travel = 0.8 +retraction_prime_speed = 15 +skin_overlap = 30 +speed_layer_0 = 25 +speed_print = 50 +speed_topbottom = 25 +speed_travel = 250 +speed_wall = =math.ceil(speed_print * 40 / 50) +speed_wall_0 = =math.ceil(speed_wall * 25 / 40) +support_bottom_distance = =support_z_distance +support_interface_density = 87.5 +support_interface_pattern = lines +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 35 +wall_0_inset = 0 +wall_line_width_x = =round(line_width * 0.4 / 0.35, 2) +wall_thickness = 1.2 diff --git a/resources/quality/ultimaker3/um3_aa0.4_PC_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PC_Fast_Print.inst.cfg index 18b51bb319..242cca1ecf 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PC_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PC_Fast_Print.inst.cfg @@ -1,64 +1,64 @@ -[general] -version = 2 -name = Normal -definition = ultimaker3 - -[metadata] -type = quality -quality_type = fast -material = generic_pc_ultimaker3_AA_0.4 -weight = -1 -setting_version = 1 - -[values] -acceleration_enabled = True -acceleration_print = 4000 -adhesion_type = raft -brim_width = 20 -cool_fan_full_at_height = =layer_height_0 + layer_height -cool_fan_speed_max = 85 -cool_min_layer_time_fan_speed_max = 5 -cool_min_speed = 7 -infill_line_width = =round(line_width * 0.4 / 0.35, 2) -infill_overlap_mm = 0.05 -infill_pattern = triangles -infill_wipe_dist = 0.1 -jerk_enabled = True -jerk_print = 25 -layer_height = 0.15 -machine_min_cool_heat_time_window = 15 -machine_nozzle_cool_down_speed = 0.85 -machine_nozzle_heat_up_speed = 1.5 -material_final_print_temperature = =material_print_temperature - 10 -material_initial_print_temperature = =material_print_temperature - 5 -material_print_temperature = =default_material_print_temperature + 10 -material_standby_temperature = 100 -multiple_mesh_overlap = 0 -ooze_shield_angle = 40 -prime_tower_enable = True -prime_tower_wipe_enabled = True -raft_airgap = 0.25 -raft_interface_thickness = =max(layer_height * 1.5, 0.225) -retraction_count_max = 80 -retraction_extrusion_window = 1 -retraction_hop = 2 -retraction_hop_enabled = True -retraction_hop_only_when_collides = True -retraction_min_travel = 0.8 -retraction_prime_speed = 15 -skin_overlap = 30 -speed_layer_0 = 25 -speed_print = 50 -speed_topbottom = 25 -speed_travel = 250 -speed_wall = =math.ceil(speed_print * 40 / 50) -speed_wall_0 = =math.ceil(speed_wall * 25 / 40) -support_bottom_distance = =support_z_distance -support_interface_density = 87.5 -support_interface_pattern = lines -switch_extruder_prime_speed = 15 -switch_extruder_retraction_amount = 20 -switch_extruder_retraction_speeds = 35 -wall_0_inset = 0 -wall_line_width_x = =round(line_width * 0.4 / 0.35, 2) -wall_thickness = 1.2 +[general] +version = 2 +name = Normal +definition = ultimaker3 + +[metadata] +type = quality +quality_type = fast +material = generic_pc_ultimaker3_AA_0.4 +weight = -1 +setting_version = 2 + +[values] +acceleration_enabled = True +acceleration_print = 4000 +adhesion_type = raft +brim_width = 20 +cool_fan_full_at_height = =layer_height_0 + layer_height +cool_fan_speed_max = 85 +cool_min_layer_time_fan_speed_max = 5 +cool_min_speed = 7 +infill_line_width = =round(line_width * 0.4 / 0.35, 2) +infill_overlap_mm = 0.05 +infill_pattern = triangles +infill_wipe_dist = 0.1 +jerk_enabled = True +jerk_print = 25 +layer_height = 0.15 +machine_min_cool_heat_time_window = 15 +machine_nozzle_cool_down_speed = 0.85 +machine_nozzle_heat_up_speed = 1.5 +material_final_print_temperature = =material_print_temperature - 10 +material_initial_print_temperature = =material_print_temperature - 5 +material_print_temperature = =default_material_print_temperature + 10 +material_standby_temperature = 100 +multiple_mesh_overlap = 0 +ooze_shield_angle = 40 +prime_tower_enable = True +prime_tower_wipe_enabled = True +raft_airgap = 0.25 +raft_interface_thickness = =max(layer_height * 1.5, 0.225) +retraction_count_max = 80 +retraction_extrusion_window = 1 +retraction_hop = 2 +retraction_hop_enabled = True +retraction_hop_only_when_collides = True +retraction_min_travel = 0.8 +retraction_prime_speed = 15 +skin_overlap = 30 +speed_layer_0 = 25 +speed_print = 50 +speed_topbottom = 25 +speed_travel = 250 +speed_wall = =math.ceil(speed_print * 40 / 50) +speed_wall_0 = =math.ceil(speed_wall * 25 / 40) +support_bottom_distance = =support_z_distance +support_interface_density = 87.5 +support_interface_pattern = lines +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 35 +wall_0_inset = 0 +wall_line_width_x = =round(line_width * 0.4 / 0.35, 2) +wall_thickness = 1.2 diff --git a/resources/quality/ultimaker3/um3_aa0.4_PC_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PC_High_Quality.inst.cfg index f266323c33..51b025c7c6 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PC_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PC_High_Quality.inst.cfg @@ -1,65 +1,65 @@ -[general] -version = 2 -name = Extra Fine -definition = ultimaker3 - -[metadata] -type = quality -quality_type = high -material = generic_pc_ultimaker3_AA_0.4 -weight = 1 -setting_version = 1 - -[values] -acceleration_enabled = True -acceleration_print = 4000 -adhesion_type = raft -brim_width = 20 -cool_fan_full_at_height = =layer_height_0 + layer_height -cool_fan_speed_max = 50 -cool_min_layer_time_fan_speed_max = 5 -cool_min_speed = 8 -infill_line_width = =round(line_width * 0.4 / 0.35, 2) -infill_overlap = 0 -infill_overlap_mm = 0.05 -infill_pattern = triangles -infill_wipe_dist = 0.1 -jerk_enabled = True -jerk_print = 25 -layer_height = 0.06 -machine_min_cool_heat_time_window = 15 -machine_nozzle_cool_down_speed = 0.85 -machine_nozzle_heat_up_speed = 1.5 -material_final_print_temperature = =material_print_temperature - 10 -material_initial_print_temperature = =material_print_temperature - 5 -material_print_temperature = =default_material_print_temperature - 10 -material_standby_temperature = 100 -multiple_mesh_overlap = 0 -ooze_shield_angle = 40 -prime_tower_enable = True -prime_tower_wipe_enabled = True -raft_airgap = 0.25 -raft_interface_thickness = =max(layer_height * 1.5, 0.225) -retraction_count_max = 80 -retraction_extrusion_window = 1 -retraction_hop = 2 -retraction_hop_enabled = True -retraction_hop_only_when_collides = True -retraction_min_travel = 0.8 -retraction_prime_speed = 15 -skin_overlap = 30 -speed_layer_0 = 25 -speed_print = 50 -speed_topbottom = 25 -speed_travel = 250 -speed_wall = =math.ceil(speed_print * 40 / 50) -speed_wall_0 = =math.ceil(speed_wall * 25 / 40) -support_bottom_distance = =support_z_distance -support_interface_density = 87.5 -support_interface_pattern = lines -switch_extruder_prime_speed = 15 -switch_extruder_retraction_amount = 20 -switch_extruder_retraction_speeds = 35 -wall_0_inset = 0 -wall_line_width_x = =round(line_width * 0.4 / 0.35, 2) -wall_thickness = 1.2 +[general] +version = 2 +name = Extra Fine +definition = ultimaker3 + +[metadata] +type = quality +quality_type = high +material = generic_pc_ultimaker3_AA_0.4 +weight = 1 +setting_version = 2 + +[values] +acceleration_enabled = True +acceleration_print = 4000 +adhesion_type = raft +brim_width = 20 +cool_fan_full_at_height = =layer_height_0 + layer_height +cool_fan_speed_max = 50 +cool_min_layer_time_fan_speed_max = 5 +cool_min_speed = 8 +infill_line_width = =round(line_width * 0.4 / 0.35, 2) +infill_overlap = 0 +infill_overlap_mm = 0.05 +infill_pattern = triangles +infill_wipe_dist = 0.1 +jerk_enabled = True +jerk_print = 25 +layer_height = 0.06 +machine_min_cool_heat_time_window = 15 +machine_nozzle_cool_down_speed = 0.85 +machine_nozzle_heat_up_speed = 1.5 +material_final_print_temperature = =material_print_temperature - 10 +material_initial_print_temperature = =material_print_temperature - 5 +material_print_temperature = =default_material_print_temperature - 10 +material_standby_temperature = 100 +multiple_mesh_overlap = 0 +ooze_shield_angle = 40 +prime_tower_enable = True +prime_tower_wipe_enabled = True +raft_airgap = 0.25 +raft_interface_thickness = =max(layer_height * 1.5, 0.225) +retraction_count_max = 80 +retraction_extrusion_window = 1 +retraction_hop = 2 +retraction_hop_enabled = True +retraction_hop_only_when_collides = True +retraction_min_travel = 0.8 +retraction_prime_speed = 15 +skin_overlap = 30 +speed_layer_0 = 25 +speed_print = 50 +speed_topbottom = 25 +speed_travel = 250 +speed_wall = =math.ceil(speed_print * 40 / 50) +speed_wall_0 = =math.ceil(speed_wall * 25 / 40) +support_bottom_distance = =support_z_distance +support_interface_density = 87.5 +support_interface_pattern = lines +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 35 +wall_0_inset = 0 +wall_line_width_x = =round(line_width * 0.4 / 0.35, 2) +wall_thickness = 1.2 diff --git a/resources/quality/ultimaker3/um3_aa0.4_PC_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PC_Normal_Quality.inst.cfg index 86e6cb85e2..23449bcda2 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PC_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PC_Normal_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_pc_ultimaker3_AA_0.4 weight = 0 -setting_version = 1 +setting_version = 2 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker3/um3_aa0.4_PLA_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PLA_Draft_Print.inst.cfg index 89c7717ca8..46f043ce65 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PLA_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_pla_ultimaker3_AA_0.4 weight = -2 -setting_version = 1 +setting_version = 2 [values] cool_fan_full_at_height = =layer_height_0 + 2 * layer_height diff --git a/resources/quality/ultimaker3/um3_aa0.4_PLA_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PLA_Fast_Print.inst.cfg index a4507e5a2b..10a04ed47b 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PLA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PLA_Fast_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = fast material = generic_pla_ultimaker3_AA_0.4 weight = -1 -setting_version = 1 +setting_version = 2 [values] cool_fan_full_at_height = =layer_height_0 + 2 * layer_height diff --git a/resources/quality/ultimaker3/um3_aa0.4_PLA_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PLA_High_Quality.inst.cfg index 99cb9693d3..27d4b20815 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PLA_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PLA_High_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_pla_ultimaker3_AA_0.4 weight = 1 -setting_version = 1 +setting_version = 2 [values] cool_fan_full_at_height = =layer_height_0 + 2 * layer_height diff --git a/resources/quality/ultimaker3/um3_aa0.4_PLA_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PLA_Normal_Quality.inst.cfg index f3719a875c..94e82ede57 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PLA_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PLA_Normal_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_pla_ultimaker3_AA_0.4 weight = 0 -setting_version = 1 +setting_version = 2 [values] cool_fan_full_at_height = =layer_height_0 + 2 * layer_height diff --git a/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg new file mode 100644 index 0000000000..4228c718c6 --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg @@ -0,0 +1,66 @@ +[general] +version = 2 +name = Fast +definition = ultimaker3 + +[metadata] +type = quality +quality_type = draft +material = generic_pp_ultimaker3_AA_0.4 +weight = -2 +setting_version = 2 + +[values] +acceleration_enabled = True +acceleration_print = 4000 +brim_width = 20 +cool_fan_speed_max = 100 +cool_min_layer_time = 7 +cool_min_layer_time_fan_speed_max = 7 +cool_min_speed = 2.5 +infill_line_width = =round(line_width * 0.38 / 0.38, 2) +infill_overlap = 0 +infill_pattern = tetrahedral +infill_wipe_dist = 0.1 +jerk_enabled = True +jerk_print = 25 +layer_height = 0.2 +line_width = =machine_nozzle_size * 0.95 +machine_min_cool_heat_time_window = 15 +machine_nozzle_cool_down_speed = 0.85 +machine_nozzle_heat_up_speed = 1.5 +material_bed_temperature_layer_0 = 90 +material_final_print_temperature = 205 +material_initial_print_temperature = 210 +material_print_temperature = 215 +material_print_temperature_layer_0 = 220 +material_standby_temperature = 100 +multiple_mesh_overlap = 0 +prime_tower_enable = False +prime_tower_size = 16 +prime_tower_wipe_enabled = True +retraction_amount = 6.5 +retraction_count_max = 12 +retraction_extra_prime_amount = 0.8 +retraction_extrusion_window = 1 +retraction_hop = 2 +retraction_hop_enabled = True +retraction_hop_only_when_collides = True +retraction_min_travel = 0.8 +retraction_prime_speed = 18 +speed_equalize_flow_enabled = True +speed_layer_0 = 15 +speed_print = 25 +speed_topbottom = =math.ceil(speed_print * 25 / 25) +speed_travel = 300 +speed_travel_layer_0 = 50 +speed_wall = =math.ceil(speed_print * 25 / 25) +speed_wall_0 = =math.ceil(speed_wall * 25 / 25) +support_angle = 50 +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 35 +travel_avoid_distance = 3 +wall_0_inset = 0 +wall_line_width_x = =line_width +wall_thickness = =line_width * 3 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg new file mode 100644 index 0000000000..850ead9120 --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg @@ -0,0 +1,66 @@ +[general] +version = 2 +name = Normal +definition = ultimaker3 + +[metadata] +type = quality +quality_type = fast +material = generic_pp_ultimaker3_AA_0.4 +weight = -1 +setting_version = 2 + +[values] +acceleration_enabled = True +acceleration_print = 4000 +brim_width = 20 +cool_fan_speed_max = 100 +cool_min_layer_time = 7 +cool_min_layer_time_fan_speed_max = 7 +cool_min_speed = 2.5 +infill_line_width = =round(line_width * 0.38 / 0.38, 2) +infill_overlap = 0 +infill_pattern = tetrahedral +infill_wipe_dist = 0.1 +jerk_enabled = True +jerk_print = 25 +layer_height = 0.15 +line_width = =machine_nozzle_size * 0.95 +machine_min_cool_heat_time_window = 15 +machine_nozzle_cool_down_speed = 0.85 +machine_nozzle_heat_up_speed = 1.5 +material_bed_temperature_layer_0 = 90 +material_final_print_temperature = 195 +material_initial_print_temperature = 205 +material_print_temperature = 207 +material_print_temperature_layer_0 = 210 +material_standby_temperature = 100 +multiple_mesh_overlap = 0 +prime_tower_enable = False +prime_tower_size = 16 +prime_tower_wipe_enabled = True +retraction_count_max = 12 +retraction_extra_prime_amount = 0.8 +retraction_extrusion_window = 1 +retraction_hop = 2 +retraction_hop_enabled = True +retraction_hop_only_when_collides = True +retraction_min_travel = 0.8 +retraction_prime_speed = 18 +speed_equalize_flow_enabled = True +speed_layer_0 = 15 +speed_print = 25 +speed_topbottom = =math.ceil(speed_print * 25 / 25) +speed_travel = 300 +speed_travel_layer_0 = 50 +speed_wall = =math.ceil(speed_print * 25 / 25) +speed_wall_0 = =math.ceil(speed_wall * 25 / 25) +support_angle = 50 +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 35 +top_bottom_thickness = 1.1 +travel_avoid_distance = 3 +wall_0_inset = 0 +wall_line_width_x = =line_width +wall_thickness = =line_width * 3 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg new file mode 100644 index 0000000000..e68f13364a --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg @@ -0,0 +1,65 @@ +[general] +version = 2 +name = Fine +definition = ultimaker3 + +[metadata] +type = quality +quality_type = normal +material = generic_pp_ultimaker3_AA_0.4 +weight = 0 +setting_version = 2 + +[values] +acceleration_enabled = True +acceleration_print = 4000 +brim_width = 20 +cool_fan_speed_max = 100 +cool_min_layer_time = 7 +cool_min_layer_time_fan_speed_max = 7 +cool_min_speed = 2.5 +infill_line_width = =round(line_width * 0.38 / 0.38, 2) +infill_overlap = 0 +infill_pattern = tetrahedral +infill_wipe_dist = 0.1 +jerk_enabled = True +jerk_print = 25 +line_width = =machine_nozzle_size * 0.95 +machine_min_cool_heat_time_window = 15 +machine_nozzle_cool_down_speed = 0.85 +machine_nozzle_heat_up_speed = 1.5 +material_bed_temperature_layer_0 = 90 +material_final_print_temperature = 195 +material_initial_print_temperature = 200 +material_print_temperature = 205 +material_print_temperature_layer_0 = 208 +material_standby_temperature = 100 +multiple_mesh_overlap = 0 +prime_tower_enable = False +prime_tower_size = 16 +prime_tower_wipe_enabled = True +retraction_count_max = 12 +retraction_extra_prime_amount = 0.8 +retraction_extrusion_window = 1 +retraction_hop = 2 +retraction_hop_enabled = True +retraction_hop_only_when_collides = True +retraction_min_travel = 0.8 +retraction_prime_speed = 18 +speed_equalize_flow_enabled = True +speed_layer_0 = 15 +speed_print = 25 +speed_topbottom = =math.ceil(speed_print * 25 / 25) +speed_travel = 300 +speed_travel_layer_0 = 50 +speed_wall = =math.ceil(speed_print * 25 / 25) +speed_wall_0 = =math.ceil(speed_wall * 25 / 25) +support_angle = 50 +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 35 +top_bottom_thickness = 1 +travel_avoid_distance = 3 +wall_0_inset = 0 +wall_line_width_x = =line_width +wall_thickness = =line_width * 3 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.4_PVA_Not_Supported_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PVA_Fast_Print.inst.cfg similarity index 90% rename from resources/quality/ultimaker3/um3_aa0.4_PVA_Not_Supported_Quality.inst.cfg rename to resources/quality/ultimaker3/um3_aa0.4_PVA_Fast_Print.inst.cfg index 6d878cd4b7..2ce06b2de2 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PVA_Not_Supported_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PVA_Fast_Print.inst.cfg @@ -9,6 +9,6 @@ type = quality quality_type = normal material = generic_pva_ultimaker3_AA_0.4 supported = False -setting_version = 1 +setting_version = 2 [values] diff --git a/resources/quality/ultimaker3/um3_aa0.4_TPU_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_TPU_Draft_Print.inst.cfg index 3f815fac3d..7450e7112d 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_TPU_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_TPU_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_tpu_ultimaker3_AA_0.4 weight = -2 -setting_version = 1 +setting_version = 2 [values] acceleration_enabled = True @@ -29,25 +29,25 @@ jerk_print = 25 layer_height = 0.2 line_width = =machine_nozzle_size * 0.95 machine_min_cool_heat_time_window = 15 -machine_nozzle_cool_down_speed = 0.85 -machine_nozzle_heat_up_speed = 1.5 -material_final_print_temperature = =material_print_temperature - 10 +machine_nozzle_cool_down_speed = 0.5 +machine_nozzle_heat_up_speed = 2.5 +material_final_print_temperature = =material_print_temperature - 21 material_flow = 106 -material_initial_print_temperature = =material_print_temperature - 5 +material_initial_print_temperature = =material_print_temperature - 16 material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =default_material_print_temperature + 2 material_standby_temperature = 100 multiple_mesh_overlap = 0 -prime_tower_enable = True prime_tower_wipe_enabled = True retraction_count_max = 12 retraction_extra_prime_amount = 0.8 retraction_extrusion_window = 1 -retraction_hop = 2 -retraction_hop_enabled = False +retraction_hop = 1.5 +retraction_hop_enabled = True retraction_hop_only_when_collides = True retraction_min_travel = 0.8 retraction_prime_speed = 15 +skin_overlap = 5 speed_equalize_flow_enabled = True speed_layer_0 = 18 speed_print = 25 @@ -56,12 +56,11 @@ speed_travel = 300 speed_wall = =math.ceil(speed_print * 25 / 25) speed_wall_0 = =math.ceil(speed_wall * 25 / 25) support_angle = 50 -skin_overlap = 5 switch_extruder_prime_speed = 15 switch_extruder_retraction_amount = 20 switch_extruder_retraction_speeds = 35 top_bottom_thickness = 0.7 -travel_avoid_distance = 0.5 +travel_avoid_distance = 1.5 wall_0_inset = 0 wall_line_width_x = =line_width -wall_thickness = 0.76 +wall_thickness = 0.76 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.4_TPU_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_TPU_Fast_Print.inst.cfg index e45ec15dec..2d07cd8b31 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_TPU_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_TPU_Fast_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = fast material = generic_tpu_ultimaker3_AA_0.4 weight = -1 -setting_version = 1 +setting_version = 2 [values] acceleration_enabled = True @@ -29,23 +29,22 @@ jerk_print = 25 layer_height = 0.15 line_width = =machine_nozzle_size * 0.95 machine_min_cool_heat_time_window = 15 -machine_nozzle_cool_down_speed = 0.85 -machine_nozzle_heat_up_speed = 1.5 -material_final_print_temperature = =material_print_temperature - 10 +machine_nozzle_cool_down_speed = 0.5 +machine_nozzle_heat_up_speed = 2.5 +material_final_print_temperature = =material_print_temperature - 21 material_flow = 106 -material_initial_print_temperature = =material_print_temperature - 5 +material_initial_print_temperature = =material_print_temperature - 16 material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =default_material_print_temperature + 2 material_standby_temperature = 100 multiple_mesh_overlap = 0 -prime_tower_enable = True prime_tower_wipe_enabled = True retraction_amount = 7 retraction_count_max = 12 retraction_extra_prime_amount = 0.8 retraction_extrusion_window = 1 -retraction_hop = 2 -retraction_hop_enabled = False +retraction_hop = 1.5 +retraction_hop_enabled = True retraction_hop_only_when_collides = True retraction_min_travel = 0.8 retraction_prime_speed = 15 @@ -62,7 +61,7 @@ switch_extruder_prime_speed = 15 switch_extruder_retraction_amount = 20 switch_extruder_retraction_speeds = 35 top_bottom_thickness = 0.7 -travel_avoid_distance = 0.5 +travel_avoid_distance = 1.5 wall_0_inset = 0 wall_line_width_x = =line_width -wall_thickness = 0.76 +wall_thickness = 0.76 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.4_TPU_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_TPU_Normal_Quality.inst.cfg index 707e535947..1d8467482f 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_TPU_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_TPU_Normal_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_tpu_ultimaker3_AA_0.4 weight = 0 -setting_version = 1 +setting_version = 2 [values] acceleration_enabled = True @@ -28,21 +28,20 @@ jerk_enabled = True jerk_print = 25 line_width = =machine_nozzle_size * 0.95 machine_min_cool_heat_time_window = 15 -machine_nozzle_cool_down_speed = 0.85 -machine_nozzle_heat_up_speed = 1.5 -material_final_print_temperature = =material_print_temperature - 10 +machine_nozzle_cool_down_speed = 0.5 +machine_nozzle_heat_up_speed = 2.5 +material_final_print_temperature = =material_print_temperature - 21 material_flow = 106 -material_initial_print_temperature = =material_print_temperature - 10 +material_initial_print_temperature = =material_print_temperature - 16 material_print_temperature_layer_0 = =default_material_print_temperature material_standby_temperature = 100 multiple_mesh_overlap = 0 -prime_tower_enable = True prime_tower_wipe_enabled = True retraction_count_max = 12 retraction_extra_prime_amount = 0.8 retraction_extrusion_window = 1 -retraction_hop = 2 -retraction_hop_enabled = False +retraction_hop = 1.5 +retraction_hop_enabled = True retraction_hop_only_when_collides = True retraction_min_travel = 0.8 retraction_prime_speed = 15 @@ -59,7 +58,7 @@ switch_extruder_prime_speed = 15 switch_extruder_retraction_amount = 20 switch_extruder_retraction_speeds = 35 top_bottom_thickness = 0.7 -travel_avoid_distance = 0.5 +travel_avoid_distance = 1.5 wall_0_inset = 0 wall_line_width_x = =line_width -wall_thickness = 0.76 +wall_thickness = 0.76 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.8_ABS_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_ABS_Draft_Print.inst.cfg index 7dd0957b28..41dee1edf4 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_ABS_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_ABS_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_abs_ultimaker3_AA_0.8 weight = -2 -setting_version = 1 +setting_version = 2 [values] line_width = =machine_nozzle_size * 0.875 diff --git a/resources/quality/ultimaker3/um3_aa0.8_ABS_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_ABS_Superdraft_Print.inst.cfg index 31b091e65d..d757ca32a0 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_ABS_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_ABS_Superdraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = superdraft material = generic_abs_ultimaker3_AA_0.8 weight = -4 -setting_version = 1 +setting_version = 2 [values] layer_height = 0.4 diff --git a/resources/quality/ultimaker3/um3_aa0.8_ABS_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_ABS_Verydraft_Print.inst.cfg index 100307250f..9f5fddf21b 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_ABS_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_ABS_Verydraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = verydraft material = generic_abs_ultimaker3_AA_0.8 weight = -3 -setting_version = 1 +setting_version = 2 [values] layer_height = 0.3 diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Fast_Print.inst.cfg new file mode 100644 index 0000000000..80b80978d1 --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Fast_Print.inst.cfg @@ -0,0 +1,37 @@ +[general] +version = 2 +name = Fast - Experimental +definition = ultimaker3 + +[metadata] +type = quality +quality_type = draft +material = generic_cpe_plus_ultimaker3_AA_0.8 +weight = -2 +setting_version = 2 + +[values] +brim_width = 14 +cool_fan_full_at_height = =layer_height_0 + 14 * layer_height +infill_before_walls = True +line_width = =machine_nozzle_size * 0.9375 +machine_nozzle_cool_down_speed = 0.9 +machine_nozzle_heat_up_speed = 1.4 +material_print_temperature = =default_material_print_temperature - 10 +material_print_temperature_layer_0 = =material_print_temperature +material_standby_temperature = 100 +retraction_combing = off +retraction_hop = 0.1 +retraction_hop_enabled = False +skin_overlap = 0 +speed_layer_0 = 15 +speed_print = 50 +speed_slowdown_layers = 15 +speed_topbottom = =math.ceil(speed_print * 35 / 50) +speed_wall = =math.ceil(speed_print * 40 / 50) +speed_wall_0 = =math.ceil(speed_wall * 35 / 40) +support_bottom_distance = =support_z_distance +support_line_width = =round(line_width * 0.6 / 0.7, 2) +support_z_distance = =layer_height +top_bottom_thickness = 1.2 +travel_avoid_distance = 1.5 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Not_Supported_Superdraft_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Not_Supported_Superdraft_Quality.inst.cfg deleted file mode 100755 index 8d65a8a653..0000000000 --- a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Not_Supported_Superdraft_Quality.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = superdraft -material = generic_cpe_plus_ultimaker3_AA_0.8 -weight = 0 -supported = False -setting_version = 1 - -[values] diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg new file mode 100644 index 0000000000..8a16b26682 --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg @@ -0,0 +1,39 @@ +[general] +version = 2 +name = Sprint - Experimental +definition = ultimaker3 + +[metadata] +type = quality +quality_type = superdraft +material = generic_cpe_plus_ultimaker3_AA_0.8 +weight = -4 +setting_version = 2 + +[values] +brim_width = 14 +cool_fan_full_at_height = =layer_height_0 + 7 * layer_height +infill_before_walls = True +layer_height = 0.4 +line_width = =machine_nozzle_size * 0.9375 +machine_nozzle_cool_down_speed = 0.9 +machine_nozzle_heat_up_speed = 1.4 +material_print_temperature = =default_material_print_temperature - 5 +material_print_temperature_layer_0 = =material_print_temperature +material_standby_temperature = 100 +prime_tower_enable = True +retraction_combing = off +retraction_hop = 0.1 +retraction_hop_enabled = False +skin_overlap = 0 +speed_layer_0 = 15 +speed_print = 50 +speed_slowdown_layers = 8 +speed_topbottom = =math.ceil(speed_print * 35 / 50) +speed_wall = =math.ceil(speed_print * 40 / 50) +speed_wall_0 = =math.ceil(speed_wall * 35 / 40) +support_bottom_distance = =support_z_distance +support_line_width = =round(line_width * 0.6 / 0.7, 2) +support_z_distance = =layer_height +top_bottom_thickness = 1.2 +travel_avoid_distance = 1.5 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg new file mode 100644 index 0000000000..bd5b8972b1 --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg @@ -0,0 +1,39 @@ +[general] +version = 2 +name = Extra Fast - Experimental +definition = ultimaker3 + +[metadata] +type = quality +quality_type = verydraft +material = generic_cpe_plus_ultimaker3_AA_0.8 +weight = -3 +setting_version = 2 + +[values] +brim_width = 14 +cool_fan_full_at_height = =layer_height_0 + 9 * layer_height +infill_before_walls = True +layer_height = 0.3 +line_width = =machine_nozzle_size * 0.9375 +machine_nozzle_cool_down_speed = 0.9 +machine_nozzle_heat_up_speed = 1.4 +material_print_temperature = =default_material_print_temperature - 7 +material_print_temperature_layer_0 = =material_print_temperature +material_standby_temperature = 100 +prime_tower_enable = True +retraction_combing = off +retraction_hop = 0.1 +retraction_hop_enabled = False +skin_overlap = 0 +speed_layer_0 = 15 +speed_print = 50 +speed_slowdown_layers = 10 +speed_topbottom = =math.ceil(speed_print * 35 / 50) +speed_wall = =math.ceil(speed_print * 40 / 50) +speed_wall_0 = =math.ceil(speed_wall * 35 / 40) +support_bottom_distance = =support_z_distance +support_line_width = =round(line_width * 0.6 / 0.7, 2) +support_z_distance = =layer_height +top_bottom_thickness = 1.2 +travel_avoid_distance = 1.5 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPE_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPE_Draft_Print.inst.cfg index 354e1a2d08..d920d76417 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPE_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_cpe_ultimaker3_AA_0.8 weight = -2 -setting_version = 1 +setting_version = 2 [values] brim_width = 15 diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPE_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPE_Superdraft_Print.inst.cfg index 182684087a..480d63a698 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPE_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPE_Superdraft_Print.inst.cfg @@ -7,8 +7,8 @@ definition = ultimaker3 type = quality quality_type = superdraft material = generic_cpe_ultimaker3_AA_0.8 -weight = -2 -setting_version = 1 +weight = -4 +setting_version = 2 [values] brim_width = 15 diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPE_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPE_Verydraft_Print.inst.cfg index 189d64b5bb..c1d48f2555 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPE_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPE_Verydraft_Print.inst.cfg @@ -7,8 +7,8 @@ definition = ultimaker3 type = quality quality_type = verydraft material = generic_cpe_ultimaker3_AA_0.8 -weight = -2 -setting_version = 1 +weight = -3 +setting_version = 2 [values] brim_width = 15 diff --git a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Draft_Print.inst.cfg index 09c95691d5..ec8ba37518 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_nylon_ultimaker3_AA_0.8 weight = -2 -setting_version = 1 +setting_version = 2 [values] brim_width = 5.6 diff --git a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Superdraft_Print.inst.cfg index 75891c1be2..90f04b1e8a 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Superdraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = superdraft material = generic_nylon_ultimaker3_AA_0.8 weight = -4 -setting_version = 1 +setting_version = 2 [values] brim_width = 5.6 diff --git a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Verydraft_Print.inst.cfg index 9ac7ba8668..7980541f32 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Verydraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = verydraft material = generic_nylon_ultimaker3_AA_0.8 weight = -3 -setting_version = 1 +setting_version = 2 [values] brim_width = 5.6 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PC_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PC_Fast_Print.inst.cfg new file mode 100644 index 0000000000..18c82b1e2c --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.8_PC_Fast_Print.inst.cfg @@ -0,0 +1,31 @@ +[general] +version = 2 +name = Fast - Experimental +definition = ultimaker3 + +[metadata] +type = quality +quality_type = draft +material = generic_pc_ultimaker3_AA_0.8 +weight = 0 +setting_version = 2 + +[values] +brim_width = 14 +cool_fan_full_at_height = =layer_height_0 + 14 * layer_height +infill_before_walls = True +line_width = =machine_nozzle_size * 0.875 +material_print_temperature = =default_material_print_temperature - 5 +material_print_temperature_layer_0 = =material_print_temperature +material_standby_temperature = 100 +raft_airgap = 0.5 +raft_margin = 15 +skin_overlap = 0 +speed_layer_0 = 15 +speed_print = 50 +speed_slowdown_layers = 15 +speed_topbottom = =math.ceil(speed_print * 25 / 50) +speed_wall = =math.ceil(speed_print * 40 / 50) +speed_wall_0 = =math.ceil(speed_wall * 30 / 40) +support_line_width = =round(line_width * 0.6 / 0.7, 2) +travel_avoid_distance = 3 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.8_PC_Not_Supported_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PC_Not_Supported_Quality.inst.cfg deleted file mode 100755 index a047bc4496..0000000000 --- a/resources/quality/ultimaker3/um3_aa0.8_PC_Not_Supported_Quality.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -weight = 0 -type = quality -quality_type = normal -material = generic_pc_ultimaker3_AA_0.8 -supported = False -setting_version = 1 - -[values] diff --git a/resources/quality/ultimaker3/um3_aa0.8_PC_Not_Supported_Superdraft_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PC_Not_Supported_Superdraft_Quality.inst.cfg deleted file mode 100755 index a73c5a121a..0000000000 --- a/resources/quality/ultimaker3/um3_aa0.8_PC_Not_Supported_Superdraft_Quality.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -weight = 0 -type = quality -quality_type = superdraft -material = generic_pc_ultimaker3_AA_0.8 -supported = False -setting_version = 1 - -[values] diff --git a/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg new file mode 100644 index 0000000000..328c5d9f1d --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg @@ -0,0 +1,31 @@ +[general] +version = 2 +name = Sprint - Experimental +definition = ultimaker3 + +[metadata] +type = quality +quality_type = superdraft +material = generic_pc_ultimaker3_AA_0.8 +weight = -2 +setting_version = 2 + +[values] +brim_width = 14 +cool_fan_full_at_height = =layer_height_0 + 7 * layer_height +infill_before_walls = True +layer_height = 0.4 +line_width = =machine_nozzle_size * 0.875 +material_print_temperature_layer_0 = =material_print_temperature +material_standby_temperature = 100 +raft_airgap = 0.5 +raft_margin = 15 +skin_overlap = 0 +speed_layer_0 = 15 +speed_print = 50 +speed_slowdown_layers = 8 +speed_topbottom = =math.ceil(speed_print * 25 / 50) +speed_wall = =math.ceil(speed_print * 40 / 50) +speed_wall_0 = =math.ceil(speed_wall * 30 / 40) +support_line_width = =round(line_width * 0.6 / 0.7, 2) +travel_avoid_distance = 3 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg new file mode 100644 index 0000000000..27ecd7343f --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg @@ -0,0 +1,32 @@ +[general] +version = 2 +name = Extra Fast - Experimental +definition = ultimaker3 + +[metadata] +type = quality +quality_type = verydraft +material = generic_pc_ultimaker3_AA_0.8 +weight = -1 +setting_version = 2 + +[values] +brim_width = 14 +cool_fan_full_at_height = =layer_height_0 + 9 * layer_height +infill_before_walls = True +layer_height = 0.3 +line_width = =machine_nozzle_size * 0.875 +material_print_temperature = =default_material_print_temperature - 2 +material_print_temperature_layer_0 = =material_print_temperature +material_standby_temperature = 100 +raft_airgap = 0.5 +raft_margin = 15 +skin_overlap = 0 +speed_layer_0 = 15 +speed_print = 50 +speed_slowdown_layers = 10 +speed_topbottom = =math.ceil(speed_print * 25 / 50) +speed_wall = =math.ceil(speed_print * 40 / 50) +speed_wall_0 = =math.ceil(speed_wall * 30 / 40) +support_line_width = =round(line_width * 0.6 / 0.7, 2) +travel_avoid_distance = 3 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg index 58d1871d0d..c528a2523f 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_pla_ultimaker3_AA_0.8 weight = -2 -setting_version = 1 +setting_version = 2 [values] cool_fan_full_at_height = =layer_height_0 + 2 * layer_height diff --git a/resources/quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg index 7dcaabb562..f0f375c7ee 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = superdraft material = generic_pla_ultimaker3_AA_0.8 weight = -4 -setting_version = 1 +setting_version = 2 [values] cool_fan_full_at_height = =layer_height_0 + 2 * layer_height diff --git a/resources/quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg index dc45dda559..aabdf1213d 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = verydraft material = generic_pla_ultimaker3_AA_0.8 weight = -3 -setting_version = 1 +setting_version = 2 [values] cool_fan_full_at_height = =layer_height_0 + 2 * layer_height diff --git a/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg new file mode 100644 index 0000000000..8b85d6d7fb --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg @@ -0,0 +1,52 @@ +[general] +version = 2 +name = Fast +definition = ultimaker3 + +[metadata] +type = quality +quality_type = draft +material = generic_pp_ultimaker3_AA_0.8 +weight = -2 +setting_version = 2 + +[values] +brim_width = 25 +cool_min_layer_time_fan_speed_max = 6 +cool_min_speed = 17 +expand_skins_expand_distance = =line_width * 2 +expand_upper_skins = True +infill_before_walls = True +infill_line_width = =round(line_width * 0.7 / 0.8, 2) +infill_pattern = tetrahedral +jerk_prime_tower = =math.ceil(jerk_print * 25 / 25) +jerk_support = =math.ceil(jerk_print * 25 / 25) +jerk_wall_0 = =math.ceil(jerk_wall * 15 / 25) +material_bed_temperature_layer_0 = =material_bed_temperature +material_print_temperature = =default_material_print_temperature - 2 +material_print_temperature_layer_0 = =default_material_print_temperature + 2 +material_standby_temperature = 100 +multiple_mesh_overlap = 0.2 +prime_tower_enable = True +prime_tower_flow = 100 +prime_tower_wall_thickness = =prime_tower_line_width * 2 +retract_at_layer_change = False +retraction_count_max = 12 +retraction_extra_prime_amount = 0.5 +retraction_hop = 0.5 +retraction_min_travel = 1.5 +retraction_prime_speed = 15 +skin_line_width = =round(line_width * 0.78 / 0.8, 2) +speed_travel = 300 +speed_wall_x = =math.ceil(speed_wall * 30 / 30) +support_bottom_distance = =support_z_distance +support_line_width = =round(line_width * 0.7 / 0.8, 2) +support_offset = =line_width +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 45 +top_bottom_thickness = 1.6 +travel_compensate_overlapping_walls_0_enabled = False +wall_0_wipe_dist = =line_width * 2 +wall_line_width_x = =round(line_width * 0.8 / 0.8, 2) +wall_thickness = 1.6 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg new file mode 100644 index 0000000000..f1042df045 --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg @@ -0,0 +1,52 @@ +[general] +version = 2 +name = Sprint +definition = ultimaker3 + +[metadata] +type = quality +quality_type = superdraft +material = generic_pp_ultimaker3_AA_0.8 +weight = -4 +setting_version = 2 + +[values] +brim_width = 25 +cool_min_layer_time_fan_speed_max = 6 +cool_min_speed = 17 +expand_skins_expand_distance = =line_width * 2 +expand_upper_skins = True +infill_before_walls = True +infill_line_width = =round(line_width * 0.7 / 0.8, 2) +infill_pattern = tetrahedral +jerk_prime_tower = =math.ceil(jerk_print * 25 / 25) +jerk_support = =math.ceil(jerk_print * 25 / 25) +jerk_wall_0 = =math.ceil(jerk_wall * 15 / 25) +material_bed_temperature_layer_0 = =material_bed_temperature +material_print_temperature = =default_material_print_temperature + 2 +material_print_temperature_layer_0 = =default_material_print_temperature + 2 +material_standby_temperature = 100 +multiple_mesh_overlap = 0.2 +prime_tower_enable = True +prime_tower_flow = 100 +prime_tower_wall_thickness = =prime_tower_line_width * 2 +retract_at_layer_change = False +retraction_count_max = 12 +retraction_extra_prime_amount = 0.5 +retraction_hop = 0.5 +retraction_min_travel = 1.5 +retraction_prime_speed = 15 +skin_line_width = =round(line_width * 0.78 / 0.8, 2) +speed_travel = 300 +speed_wall_x = =math.ceil(speed_wall * 30 / 30) +support_bottom_distance = =support_z_distance +support_line_width = =round(line_width * 0.7 / 0.8, 2) +support_offset = =line_width +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 45 +top_bottom_thickness = 1.6 +travel_compensate_overlapping_walls_0_enabled = False +wall_0_wipe_dist = =line_width * 2 +wall_line_width_x = =round(line_width * 0.8 / 0.8, 2) +wall_thickness = 1.6 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg new file mode 100644 index 0000000000..2ddb591127 --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg @@ -0,0 +1,52 @@ +[general] +version = 2 +name = Extra Fast +definition = ultimaker3 + +[metadata] +type = quality +quality_type = verydraft +material = generic_pp_ultimaker3_AA_0.8 +weight = -3 +setting_version = 2 + +[values] +brim_width = 25 +cool_min_layer_time_fan_speed_max = 6 +cool_min_speed = 17 +expand_skins_expand_distance = =line_width * 2 +expand_upper_skins = True +infill_before_walls = True +infill_line_width = =round(line_width * 0.7 / 0.8, 2) +infill_pattern = tetrahedral +jerk_prime_tower = =math.ceil(jerk_print * 25 / 25) +jerk_support = =math.ceil(jerk_print * 25 / 25) +jerk_wall_0 = =math.ceil(jerk_wall * 15 / 25) +layer_height = 0.3 +material_bed_temperature_layer_0 = =material_bed_temperature +material_print_temperature_layer_0 = =default_material_print_temperature + 2 +material_standby_temperature = 100 +multiple_mesh_overlap = 0.2 +prime_tower_enable = True +prime_tower_flow = 100 +prime_tower_wall_thickness = =prime_tower_line_width * 2 +retract_at_layer_change = False +retraction_count_max = 12 +retraction_extra_prime_amount = 0.5 +retraction_hop = 0.5 +retraction_min_travel = 1.5 +retraction_prime_speed = 15 +skin_line_width = =round(line_width * 0.78 / 0.8, 2) +speed_travel = 300 +speed_wall_x = =math.ceil(speed_wall * 30 / 30) +support_bottom_distance = =support_z_distance +support_line_width = =round(line_width * 0.7 / 0.8, 2) +support_offset = =line_width +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 45 +top_bottom_thickness = 1.6 +travel_compensate_overlapping_walls_0_enabled = False +wall_0_wipe_dist = =line_width * 2 +wall_line_width_x = =round(line_width * 0.8 / 0.8, 2) +wall_thickness = 1.6 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.8_PVA_Not_Supported_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PVA_Fast_Print.inst.cfg old mode 100755 new mode 100644 similarity index 90% rename from resources/quality/ultimaker3/um3_aa0.8_PVA_Not_Supported_Quality.inst.cfg rename to resources/quality/ultimaker3/um3_aa0.8_PVA_Fast_Print.inst.cfg index abbfe3f184..9da6595ec8 --- a/resources/quality/ultimaker3/um3_aa0.8_PVA_Not_Supported_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PVA_Fast_Print.inst.cfg @@ -9,6 +9,6 @@ type = quality quality_type = normal material = generic_pva_ultimaker3_AA_0.8 supported = False -setting_version = 1 +setting_version = 2 [values] diff --git a/resources/quality/ultimaker3/um3_aa0.8_PVA_Not_Supported_Superdraft_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PVA_Superdraft_Print.inst.cfg old mode 100755 new mode 100644 similarity index 90% rename from resources/quality/ultimaker3/um3_aa0.8_PVA_Not_Supported_Superdraft_Quality.inst.cfg rename to resources/quality/ultimaker3/um3_aa0.8_PVA_Superdraft_Print.inst.cfg index ddd2dd6ca9..ddecefa938 --- a/resources/quality/ultimaker3/um3_aa0.8_PVA_Not_Supported_Superdraft_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PVA_Superdraft_Print.inst.cfg @@ -9,6 +9,6 @@ type = quality quality_type = superdraft material = generic_pva_ultimaker3_AA_0.8 supported = False -setting_version = 1 +setting_version = 2 [values] diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg index 41ac43a840..97deea6740 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg @@ -8,13 +8,12 @@ type = quality quality_type = draft material = generic_tpu_ultimaker3_AA_0.8 weight = -2 -setting_version = 1 +setting_version = 2 [values] brim_width = 8.75 cool_min_layer_time_fan_speed_max = 6 expand_skins_expand_distance = =line_width * 2 -expand_skins_into_infill = True expand_upper_skins = True gradual_infill_step_height = =4 * layer_height gradual_infill_steps = 5 @@ -25,8 +24,12 @@ infill_sparse_density = 80 jerk_prime_tower = =math.ceil(jerk_print * 25 / 25) jerk_support = =math.ceil(jerk_print * 25 / 25) jerk_wall_0 = =math.ceil(jerk_wall * 15 / 25) +machine_nozzle_cool_down_speed = 0.5 +machine_nozzle_heat_up_speed = 2.5 material_bed_temperature_layer_0 = 0 +material_final_print_temperature = =material_print_temperature - 21 material_flow = 105 +material_initial_print_temperature = =material_print_temperature - 16 material_print_temperature = =default_material_print_temperature - 2 material_print_temperature_layer_0 = =default_material_print_temperature + 2 material_standby_temperature = 100 @@ -37,8 +40,7 @@ prime_tower_wall_thickness = =prime_tower_line_width * 2 retract_at_layer_change = False retraction_count_max = 12 retraction_extra_prime_amount = 0.5 -retraction_hop = 0.5 -retraction_hop_enabled = False +retraction_hop = 1.5 retraction_hop_only_when_collides = False retraction_min_travel = 0.8 retraction_prime_speed = 15 @@ -56,9 +58,8 @@ switch_extruder_prime_speed = 15 switch_extruder_retraction_amount = 20 switch_extruder_retraction_speeds = 45 top_bottom_thickness = 1.2 -travel_avoid_distance = 0.5 +travel_avoid_distance = 1.5 travel_compensate_overlapping_walls_0_enabled = False wall_0_wipe_dist = =line_width * 2 wall_line_width_x = =round(line_width * 0.6 / 0.8, 2) -wall_thickness = 1.3 - +wall_thickness = 1.3 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg index 66c0281b78..7871f330cc 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg @@ -8,13 +8,12 @@ type = quality quality_type = superdraft material = generic_tpu_ultimaker3_AA_0.8 weight = -4 -setting_version = 1 +setting_version = 2 [values] brim_width = 8.75 cool_min_layer_time_fan_speed_max = 6 expand_skins_expand_distance = =line_width * 2 -expand_skins_into_infill = True expand_upper_skins = True gradual_infill_step_height = =4 * layer_height gradual_infill_steps = 5 @@ -26,8 +25,12 @@ jerk_prime_tower = =math.ceil(jerk_print * 25 / 25) jerk_support = =math.ceil(jerk_print * 25 / 25) jerk_wall_0 = =math.ceil(jerk_wall * 15 / 25) layer_height = 0.4 +machine_nozzle_cool_down_speed = 0.5 +machine_nozzle_heat_up_speed = 2.5 material_bed_temperature_layer_0 = 0 +material_final_print_temperature = =material_print_temperature - 21 material_flow = 105 +material_initial_print_temperature = =material_print_temperature - 16 material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =default_material_print_temperature + 2 material_standby_temperature = 100 @@ -38,8 +41,7 @@ prime_tower_wall_thickness = =prime_tower_line_width * 2 retract_at_layer_change = False retraction_count_max = 12 retraction_extra_prime_amount = 0.5 -retraction_hop = 0.5 -retraction_hop_enabled = False +retraction_hop = 1.5 retraction_hop_only_when_collides = False retraction_min_travel = 0.8 retraction_prime_speed = 15 @@ -57,9 +59,8 @@ switch_extruder_prime_speed = 15 switch_extruder_retraction_amount = 20 switch_extruder_retraction_speeds = 45 top_bottom_thickness = 1.2 -travel_avoid_distance = 0.5 +travel_avoid_distance = 1.5 travel_compensate_overlapping_walls_0_enabled = False wall_0_wipe_dist = =line_width * 2 wall_line_width_x = =round(line_width * 0.6 / 0.8, 2) -wall_thickness = 1.3 - +wall_thickness = 1.3 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg index 1274f43eea..9da9e3945f 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg @@ -8,13 +8,12 @@ type = quality quality_type = verydraft material = generic_tpu_ultimaker3_AA_0.8 weight = -3 -setting_version = 1 +setting_version = 2 [values] brim_width = 8.75 cool_min_layer_time_fan_speed_max = 6 expand_skins_expand_distance = =line_width * 2 -expand_skins_into_infill = True expand_upper_skins = True gradual_infill_step_height = =4 * layer_height gradual_infill_steps = 5 @@ -26,8 +25,12 @@ jerk_prime_tower = =math.ceil(jerk_print * 25 / 25) jerk_support = =math.ceil(jerk_print * 25 / 25) jerk_wall_0 = =math.ceil(jerk_wall * 15 / 25) layer_height = 0.3 +machine_nozzle_cool_down_speed = 0.5 +machine_nozzle_heat_up_speed = 2.5 material_bed_temperature_layer_0 = 0 +material_final_print_temperature = =material_print_temperature - 21 material_flow = 105 +material_initial_print_temperature = =material_print_temperature - 16 material_print_temperature_layer_0 = =default_material_print_temperature + 2 material_standby_temperature = 100 multiple_mesh_overlap = 0.2 @@ -37,8 +40,7 @@ prime_tower_wall_thickness = =prime_tower_line_width * 2 retract_at_layer_change = False retraction_count_max = 12 retraction_extra_prime_amount = 0.5 -retraction_hop = 0.5 -retraction_hop_enabled = False +retraction_hop = 1.5 retraction_hop_only_when_collides = False retraction_min_travel = 0.8 retraction_prime_speed = 15 @@ -56,9 +58,8 @@ switch_extruder_prime_speed = 15 switch_extruder_retraction_amount = 20 switch_extruder_retraction_speeds = 45 top_bottom_thickness = 1.2 -travel_avoid_distance = 0.5 +travel_avoid_distance = 1.5 travel_compensate_overlapping_walls_0_enabled = False wall_0_wipe_dist = =line_width * 2 wall_line_width_x = =round(line_width * 0.6 / 0.8, 2) -wall_thickness = 1.3 - +wall_thickness = 1.3 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_bb0.4_ABS_Not_Supported_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_ABS_Fast_Print.inst.cfg similarity index 90% rename from resources/quality/ultimaker3/um3_bb0.4_ABS_Not_Supported_Quality.inst.cfg rename to resources/quality/ultimaker3/um3_bb0.4_ABS_Fast_Print.inst.cfg index 31d74c33a6..c1271f68e8 100644 --- a/resources/quality/ultimaker3/um3_bb0.4_ABS_Not_Supported_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_ABS_Fast_Print.inst.cfg @@ -9,6 +9,6 @@ quality_type = normal material = generic_abs_ultimaker3_BB_0.4 weight = 0 supported = False -setting_version = 1 +setting_version = 2 [values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_ABS_Not_Supported_Superdraft_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_ABS_Superdraft_Print.inst.cfg old mode 100755 new mode 100644 similarity index 90% rename from resources/quality/ultimaker3/um3_bb0.4_ABS_Not_Supported_Superdraft_Quality.inst.cfg rename to resources/quality/ultimaker3/um3_bb0.4_ABS_Superdraft_Print.inst.cfg index 16cc6c76b7..3d4843a07a --- a/resources/quality/ultimaker3/um3_bb0.4_ABS_Not_Supported_Superdraft_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_ABS_Superdraft_Print.inst.cfg @@ -9,6 +9,6 @@ quality_type = superdraft material = generic_abs_ultimaker3_BB_0.4 weight = 0 supported = False -setting_version = 1 +setting_version = 2 [values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_CPEP_Not_Supported_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_CPEP_Fast_Print.inst.cfg old mode 100755 new mode 100644 similarity index 90% rename from resources/quality/ultimaker3/um3_bb0.4_CPEP_Not_Supported_Quality.inst.cfg rename to resources/quality/ultimaker3/um3_bb0.4_CPEP_Fast_Print.inst.cfg index ef3ae39c9a..355b9fd390 --- a/resources/quality/ultimaker3/um3_bb0.4_CPEP_Not_Supported_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_CPEP_Fast_Print.inst.cfg @@ -9,6 +9,6 @@ quality_type = normal material = generic_cpe_plus_ultimaker3_BB_0.4 weight = 0 supported = False -setting_version = 1 +setting_version = 2 [values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_CPEP_Not_Supported_Superdraft_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_CPEP_Superdraft_Print.inst.cfg old mode 100755 new mode 100644 similarity index 91% rename from resources/quality/ultimaker3/um3_bb0.4_CPEP_Not_Supported_Superdraft_Quality.inst.cfg rename to resources/quality/ultimaker3/um3_bb0.4_CPEP_Superdraft_Print.inst.cfg index f6a5338f41..3b5c086e13 --- a/resources/quality/ultimaker3/um3_bb0.4_CPEP_Not_Supported_Superdraft_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_CPEP_Superdraft_Print.inst.cfg @@ -9,6 +9,6 @@ quality_type = superdraft material = generic_cpe_plus_ultimaker3_BB_0.4 weight = 0 supported = False -setting_version = 1 +setting_version = 2 [values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_CPE_Not_Supported_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_CPE_Fast_Print.inst.cfg similarity index 90% rename from resources/quality/ultimaker3/um3_bb0.4_CPE_Not_Supported_Quality.inst.cfg rename to resources/quality/ultimaker3/um3_bb0.4_CPE_Fast_Print.inst.cfg index 4c05ed019e..695185da03 100644 --- a/resources/quality/ultimaker3/um3_bb0.4_CPE_Not_Supported_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_CPE_Fast_Print.inst.cfg @@ -9,6 +9,6 @@ quality_type = normal material = generic_cpe_ultimaker3_BB_0.4 weight = 0 supported = False -setting_version = 1 +setting_version = 2 [values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_CPE_Not_Supported_Superdraft_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_CPE_Superdraft_Print.inst.cfg old mode 100755 new mode 100644 similarity index 90% rename from resources/quality/ultimaker3/um3_bb0.4_CPE_Not_Supported_Superdraft_Quality.inst.cfg rename to resources/quality/ultimaker3/um3_bb0.4_CPE_Superdraft_Print.inst.cfg index 9401ac061d..4cd4dd4c18 --- a/resources/quality/ultimaker3/um3_bb0.4_CPE_Not_Supported_Superdraft_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_CPE_Superdraft_Print.inst.cfg @@ -9,6 +9,6 @@ quality_type = superdraft material = generic_cpe_ultimaker3_BB_0.4 weight = 0 supported = False -setting_version = 1 +setting_version = 2 [values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_Nylon_Not_Supported_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_Nylon_Fast_Print.inst.cfg similarity index 90% rename from resources/quality/ultimaker3/um3_bb0.4_Nylon_Not_Supported_Quality.inst.cfg rename to resources/quality/ultimaker3/um3_bb0.4_Nylon_Fast_Print.inst.cfg index b2db6334c0..29f550fe59 100644 --- a/resources/quality/ultimaker3/um3_bb0.4_Nylon_Not_Supported_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_Nylon_Fast_Print.inst.cfg @@ -9,6 +9,6 @@ quality_type = normal material = generic_nylon_ultimaker3_BB_0.4 weight = 0 supported = False -setting_version = 1 +setting_version = 2 [values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_Nylon_Not_Supported_Superdraft_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_Nylon_Superdraft_Print.inst.cfg old mode 100755 new mode 100644 similarity index 90% rename from resources/quality/ultimaker3/um3_bb0.4_Nylon_Not_Supported_Superdraft_Quality.inst.cfg rename to resources/quality/ultimaker3/um3_bb0.4_Nylon_Superdraft_Print.inst.cfg index ac99f78d04..c40458ecbe --- a/resources/quality/ultimaker3/um3_bb0.4_Nylon_Not_Supported_Superdraft_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_Nylon_Superdraft_Print.inst.cfg @@ -9,6 +9,6 @@ quality_type = superdraft material = generic_nylon_ultimaker3_BB_0.4 weight = 0 supported = False -setting_version = 1 +setting_version = 2 [values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_PC_Not_Supported_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PC_Fast_Print.inst.cfg old mode 100755 new mode 100644 similarity index 90% rename from resources/quality/ultimaker3/um3_bb0.4_PC_Not_Supported_Quality.inst.cfg rename to resources/quality/ultimaker3/um3_bb0.4_PC_Fast_Print.inst.cfg index dfba41dfb6..78c4413c5e --- a/resources/quality/ultimaker3/um3_bb0.4_PC_Not_Supported_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_PC_Fast_Print.inst.cfg @@ -9,6 +9,6 @@ quality_type = normal material = generic_pc_ultimaker3_BB_0.4 weight = 0 supported = False -setting_version = 1 +setting_version = 2 [values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_PLA_Not_Supported_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PLA_Fast_Print.inst.cfg similarity index 90% rename from resources/quality/ultimaker3/um3_bb0.4_PLA_Not_Supported_Quality.inst.cfg rename to resources/quality/ultimaker3/um3_bb0.4_PLA_Fast_Print.inst.cfg index 1b831fd1e2..1f0a724e55 100644 --- a/resources/quality/ultimaker3/um3_bb0.4_PLA_Not_Supported_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_PLA_Fast_Print.inst.cfg @@ -9,6 +9,6 @@ quality_type = normal material = generic_pla_ultimaker3_BB_0.4 weight = 0 supported = False -setting_version = 1 +setting_version = 2 [values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_PLA_Not_Supported_Superdraft_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PLA_Superdraft_Print.inst.cfg old mode 100755 new mode 100644 similarity index 90% rename from resources/quality/ultimaker3/um3_bb0.4_PLA_Not_Supported_Superdraft_Quality.inst.cfg rename to resources/quality/ultimaker3/um3_bb0.4_PLA_Superdraft_Print.inst.cfg index 153ae27d12..6c84ab05a6 --- a/resources/quality/ultimaker3/um3_bb0.4_PLA_Not_Supported_Superdraft_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_PLA_Superdraft_Print.inst.cfg @@ -9,6 +9,6 @@ quality_type = superdraft material = generic_pla_ultimaker3_BB_0.4 weight = 0 supported = False -setting_version = 1 +setting_version = 2 [values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_PVA_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PVA_Draft_Print.inst.cfg index 43bb096ebf..4c0c97c3d3 100644 --- a/resources/quality/ultimaker3/um3_bb0.4_PVA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_PVA_Draft_Print.inst.cfg @@ -8,11 +8,10 @@ type = quality quality_type = draft weight = -2 material = generic_pva_ultimaker3_BB_0.4 -setting_version = 1 +setting_version = 2 [values] material_print_temperature = =default_material_print_temperature + 10 material_standby_temperature = 100 prime_tower_enable = False -skin_overlap = 20 -support_interface_height = 0.8 +skin_overlap = 20 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_bb0.4_PVA_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PVA_Fast_Print.inst.cfg index c78833b867..65f06d51ac 100644 --- a/resources/quality/ultimaker3/um3_bb0.4_PVA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_PVA_Fast_Print.inst.cfg @@ -8,11 +8,11 @@ weight = -1 type = quality quality_type = fast material = generic_pva_ultimaker3_BB_0.4 -setting_version = 1 +setting_version = 2 [values] material_print_temperature = =default_material_print_temperature + 5 material_standby_temperature = 100 prime_tower_enable = False skin_overlap = 15 -support_interface_height = 0.8 +support_infill_sparse_thickness = 0.3 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_bb0.4_PVA_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PVA_High_Quality.inst.cfg index b244b3b2da..154371470d 100644 --- a/resources/quality/ultimaker3/um3_bb0.4_PVA_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_PVA_High_Quality.inst.cfg @@ -8,10 +8,9 @@ weight = 1 type = quality quality_type = high material = generic_pva_ultimaker3_BB_0.4 -setting_version = 1 +setting_version = 2 [values] material_standby_temperature = 100 prime_tower_enable = False -support_infill_rate = 25 -support_interface_height = 0.8 +support_infill_sparse_thickness = 0.18 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_bb0.4_PVA_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PVA_Normal_Quality.inst.cfg index 7896b5a57a..9818f508e6 100644 --- a/resources/quality/ultimaker3/um3_bb0.4_PVA_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_PVA_Normal_Quality.inst.cfg @@ -8,10 +8,8 @@ weight = 0 type = quality quality_type = normal material = generic_pva_ultimaker3_BB_0.4 -setting_version = 1 +setting_version = 2 [values] material_standby_temperature = 100 -prime_tower_enable = False -support_infill_rate = 25 -support_interface_height = 0.8 +prime_tower_enable = False \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_bb0.4_TPU_Not_Supported_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_TPU_Fast_Print.inst.cfg old mode 100755 new mode 100644 similarity index 90% rename from resources/quality/ultimaker3/um3_bb0.4_TPU_Not_Supported_Quality.inst.cfg rename to resources/quality/ultimaker3/um3_bb0.4_TPU_Fast_Print.inst.cfg index 106ef29f8e..f71989d851 --- a/resources/quality/ultimaker3/um3_bb0.4_TPU_Not_Supported_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_TPU_Fast_Print.inst.cfg @@ -9,6 +9,6 @@ quality_type = normal material = generic_tpu_ultimaker3_BB_0.4 weight = 0 supported = False -setting_version = 1 +setting_version = 2 [values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_TPU_Not_Supported_Superdraft_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_TPU_Superdraft_Print.inst.cfg old mode 100755 new mode 100644 similarity index 90% rename from resources/quality/ultimaker3/um3_bb0.4_TPU_Not_Supported_Superdraft_Quality.inst.cfg rename to resources/quality/ultimaker3/um3_bb0.4_TPU_Superdraft_Print.inst.cfg index 95e0622c1a..13734f3947 --- a/resources/quality/ultimaker3/um3_bb0.4_TPU_Not_Supported_Superdraft_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_TPU_Superdraft_Print.inst.cfg @@ -9,6 +9,6 @@ quality_type = superdraft material = generic_tpu_ultimaker3_BB_0.4 weight = 0 supported = False -setting_version = 1 +setting_version = 2 [values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_ABS_Not_Supported_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_ABS_Fast_Print.inst.cfg old mode 100755 new mode 100644 similarity index 90% rename from resources/quality/ultimaker3/um3_bb0.8_ABS_Not_Supported_Quality.inst.cfg rename to resources/quality/ultimaker3/um3_bb0.8_ABS_Fast_Print.inst.cfg index def07a3a80..55026ddcbc --- a/resources/quality/ultimaker3/um3_bb0.8_ABS_Not_Supported_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.8_ABS_Fast_Print.inst.cfg @@ -9,6 +9,6 @@ quality_type = normal material = generic_abs_ultimaker3_BB_0.8 weight = 0 supported = False -setting_version = 1 +setting_version = 2 [values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_ABS_Not_Supported_Superdraft_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_ABS_Superdraft_Print.inst.cfg old mode 100755 new mode 100644 similarity index 90% rename from resources/quality/ultimaker3/um3_bb0.8_ABS_Not_Supported_Superdraft_Quality.inst.cfg rename to resources/quality/ultimaker3/um3_bb0.8_ABS_Superdraft_Print.inst.cfg index fe4ec5bbc6..2b2aa5acd2 --- a/resources/quality/ultimaker3/um3_bb0.8_ABS_Not_Supported_Superdraft_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.8_ABS_Superdraft_Print.inst.cfg @@ -9,6 +9,6 @@ quality_type = superdraft material = generic_abs_ultimaker3_BB_0.8 weight = 0 supported = False -setting_version = 1 +setting_version = 2 [values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_CPEP_Not_Supported_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_CPEP_Fast_Print.inst.cfg old mode 100755 new mode 100644 similarity index 90% rename from resources/quality/ultimaker3/um3_bb0.8_CPEP_Not_Supported_Quality.inst.cfg rename to resources/quality/ultimaker3/um3_bb0.8_CPEP_Fast_Print.inst.cfg index 279e1c9c89..1165d6ab2c --- a/resources/quality/ultimaker3/um3_bb0.8_CPEP_Not_Supported_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.8_CPEP_Fast_Print.inst.cfg @@ -9,6 +9,6 @@ quality_type = normal material = generic_cpe_plus_ultimaker3_BB_0.8 weight = 0 supported = False -setting_version = 1 +setting_version = 2 [values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_CPEP_Not_Supported_Superdraft_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_CPEP_Superdraft_Print.inst.cfg old mode 100755 new mode 100644 similarity index 91% rename from resources/quality/ultimaker3/um3_bb0.8_CPEP_Not_Supported_Superdraft_Quality.inst.cfg rename to resources/quality/ultimaker3/um3_bb0.8_CPEP_Superdraft_Print.inst.cfg index 3490da81a6..7a309e4abc --- a/resources/quality/ultimaker3/um3_bb0.8_CPEP_Not_Supported_Superdraft_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.8_CPEP_Superdraft_Print.inst.cfg @@ -9,6 +9,6 @@ quality_type = superdraft material = generic_cpe_plus_ultimaker3_BB_0.8 weight = 0 supported = False -setting_version = 1 +setting_version = 2 [values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_CPE_Not_Supported_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_CPE_Fast_Print.inst.cfg old mode 100755 new mode 100644 similarity index 90% rename from resources/quality/ultimaker3/um3_bb0.8_CPE_Not_Supported_Quality.inst.cfg rename to resources/quality/ultimaker3/um3_bb0.8_CPE_Fast_Print.inst.cfg index b70fe13061..97fc8408d0 --- a/resources/quality/ultimaker3/um3_bb0.8_CPE_Not_Supported_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.8_CPE_Fast_Print.inst.cfg @@ -9,6 +9,6 @@ quality_type = normal material = generic_cpe_ultimaker3_BB_0.8 weight = 0 supported = False -setting_version = 1 +setting_version = 2 [values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_CPE_Not_Supported_Superdraft_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_CPE_Superdraft_Print.inst.cfg old mode 100755 new mode 100644 similarity index 90% rename from resources/quality/ultimaker3/um3_bb0.8_CPE_Not_Supported_Superdraft_Quality.inst.cfg rename to resources/quality/ultimaker3/um3_bb0.8_CPE_Superdraft_Print.inst.cfg index 137a651ddd..543ce9fcc6 --- a/resources/quality/ultimaker3/um3_bb0.8_CPE_Not_Supported_Superdraft_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.8_CPE_Superdraft_Print.inst.cfg @@ -9,6 +9,6 @@ quality_type = superdraft material = generic_cpe_ultimaker3_BB_0.8 weight = 0 supported = False -setting_version = 1 +setting_version = 2 [values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_Nylon_Not_Supported_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_Nylon_Fast_Print.inst.cfg old mode 100755 new mode 100644 similarity index 90% rename from resources/quality/ultimaker3/um3_bb0.8_Nylon_Not_Supported_Quality.inst.cfg rename to resources/quality/ultimaker3/um3_bb0.8_Nylon_Fast_Print.inst.cfg index dfbf2754e2..3030decc57 --- a/resources/quality/ultimaker3/um3_bb0.8_Nylon_Not_Supported_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.8_Nylon_Fast_Print.inst.cfg @@ -9,6 +9,6 @@ quality_type = normal material = generic_nylon_ultimaker3_BB_0.8 weight = 0 supported = False -setting_version = 1 +setting_version = 2 [values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_Nylon_Not_Supported_Superdraft_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_Nylon_Superdraft_Print.inst.cfg old mode 100755 new mode 100644 similarity index 90% rename from resources/quality/ultimaker3/um3_bb0.8_Nylon_Not_Supported_Superdraft_Quality.inst.cfg rename to resources/quality/ultimaker3/um3_bb0.8_Nylon_Superdraft_Print.inst.cfg index 9242228f50..ff2b83a685 --- a/resources/quality/ultimaker3/um3_bb0.8_Nylon_Not_Supported_Superdraft_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.8_Nylon_Superdraft_Print.inst.cfg @@ -9,6 +9,6 @@ quality_type = superdraft material = generic_nylon_ultimaker3_BB_0.8 weight = 0 supported = False -setting_version = 1 +setting_version = 2 [values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_PC_Not_Supported_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_PC_Fast_Print.inst.cfg old mode 100755 new mode 100644 similarity index 90% rename from resources/quality/ultimaker3/um3_bb0.8_PC_Not_Supported_Quality.inst.cfg rename to resources/quality/ultimaker3/um3_bb0.8_PC_Fast_Print.inst.cfg index f206fd4368..30c55627fa --- a/resources/quality/ultimaker3/um3_bb0.8_PC_Not_Supported_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.8_PC_Fast_Print.inst.cfg @@ -9,6 +9,6 @@ quality_type = normal material = generic_pc_ultimaker3_BB_0.8 weight = 0 supported = False -setting_version = 1 +setting_version = 2 [values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_PC_Not_Supported_Superdraft_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_PC_Superdraft_Print.inst.cfg old mode 100755 new mode 100644 similarity index 90% rename from resources/quality/ultimaker3/um3_bb0.8_PC_Not_Supported_Superdraft_Quality.inst.cfg rename to resources/quality/ultimaker3/um3_bb0.8_PC_Superdraft_Print.inst.cfg index cb18b565d7..7496e68bf6 --- a/resources/quality/ultimaker3/um3_bb0.8_PC_Not_Supported_Superdraft_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.8_PC_Superdraft_Print.inst.cfg @@ -9,6 +9,6 @@ quality_type = superdraft material = generic_pc_ultimaker3_BB_0.8 weight = 0 supported = False -setting_version = 1 +setting_version = 2 [values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_PLA_Not_Supported_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_PLA_Fast_Print.inst.cfg old mode 100755 new mode 100644 similarity index 90% rename from resources/quality/ultimaker3/um3_bb0.8_PLA_Not_Supported_Quality.inst.cfg rename to resources/quality/ultimaker3/um3_bb0.8_PLA_Fast_Print.inst.cfg index 223b5a06fe..2acbc9713a --- a/resources/quality/ultimaker3/um3_bb0.8_PLA_Not_Supported_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.8_PLA_Fast_Print.inst.cfg @@ -9,6 +9,6 @@ quality_type = normal material = generic_pla_ultimaker3_BB_0.8 weight = 0 supported = False -setting_version = 1 +setting_version = 2 [values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_PLA_Not_Supported_Superdraft_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_PLA_Superdraft_Print.inst.cfg old mode 100755 new mode 100644 similarity index 90% rename from resources/quality/ultimaker3/um3_bb0.8_PLA_Not_Supported_Superdraft_Quality.inst.cfg rename to resources/quality/ultimaker3/um3_bb0.8_PLA_Superdraft_Print.inst.cfg index a4f6a6dfeb..2c64ccef98 --- a/resources/quality/ultimaker3/um3_bb0.8_PLA_Not_Supported_Superdraft_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.8_PLA_Superdraft_Print.inst.cfg @@ -9,6 +9,6 @@ quality_type = superdraft material = generic_pla_ultimaker3_BB_0.8 weight = 0 supported = False -setting_version = 1 +setting_version = 2 [values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_PVA_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_PVA_Draft_Print.inst.cfg index fd3a392a23..677d13d9d9 100644 --- a/resources/quality/ultimaker3/um3_bb0.8_PVA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.8_PVA_Draft_Print.inst.cfg @@ -8,8 +8,8 @@ type = quality quality_type = draft weight = -2 material = generic_pva_ultimaker3_BB_0.8 -setting_version = 1 +setting_version = 2 [values] material_print_temperature = =default_material_print_temperature + 5 -material_standby_temperature = 100 +material_standby_temperature = 100 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_bb0.8_PVA_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_PVA_Superdraft_Print.inst.cfg index d987e3b61c..8e28e39ef7 100644 --- a/resources/quality/ultimaker3/um3_bb0.8_PVA_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.8_PVA_Superdraft_Print.inst.cfg @@ -8,8 +8,9 @@ type = quality quality_type = superdraft weight = -4 material = generic_pva_ultimaker3_BB_0.8 -setting_version = 1 +setting_version = 2 [values] layer_height = 0.4 material_standby_temperature = 100 +support_interface_height = 0.9 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_bb0.8_PVA_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_PVA_Verydraft_Print.inst.cfg index 612e2a1de9..e816446f6d 100644 --- a/resources/quality/ultimaker3/um3_bb0.8_PVA_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.8_PVA_Verydraft_Print.inst.cfg @@ -8,8 +8,10 @@ type = quality quality_type = verydraft weight = -3 material = generic_pva_ultimaker3_BB_0.8 -setting_version = 1 +setting_version = 2 [values] layer_height = 0.3 material_standby_temperature = 100 +support_infill_sparse_thickness = 0.3 +support_interface_height = 1.2 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_bb0.8_TPU_Not_Supported_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_TPU_Fast_print.inst.cfg old mode 100755 new mode 100644 similarity index 90% rename from resources/quality/ultimaker3/um3_bb0.8_TPU_Not_Supported_Quality.inst.cfg rename to resources/quality/ultimaker3/um3_bb0.8_TPU_Fast_print.inst.cfg index 84e5c6d3d3..17e2bf7ba1 --- a/resources/quality/ultimaker3/um3_bb0.8_TPU_Not_Supported_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.8_TPU_Fast_print.inst.cfg @@ -9,6 +9,6 @@ quality_type = normal material = generic_tpu_ultimaker3_BB_0.8 weight = 0 supported = False -setting_version = 1 +setting_version = 2 [values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_TPU_Not_Supported_Superdraft_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_TPU_Superdraft_Print.inst.cfg old mode 100755 new mode 100644 similarity index 90% rename from resources/quality/ultimaker3/um3_bb0.8_TPU_Not_Supported_Superdraft_Quality.inst.cfg rename to resources/quality/ultimaker3/um3_bb0.8_TPU_Superdraft_Print.inst.cfg index 222a4935d5..1369ee6d41 --- a/resources/quality/ultimaker3/um3_bb0.8_TPU_Not_Supported_Superdraft_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.8_TPU_Superdraft_Print.inst.cfg @@ -9,6 +9,6 @@ quality_type = superdraft material = generic_tpu_ultimaker3_BB_0.8 weight = 0 supported = False -setting_version = 1 +setting_version = 2 [values] diff --git a/resources/quality/ultimaker3/um3_global_Draft_Quality.inst.cfg b/resources/quality/ultimaker3/um3_global_Draft_Quality.inst.cfg index 2bca653fb7..e564a6ee56 100644 --- a/resources/quality/ultimaker3/um3_global_Draft_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_global_Draft_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft global_quality = True weight = -2 -setting_version = 1 +setting_version = 2 [values] layer_height = 0.2 diff --git a/resources/quality/ultimaker3/um3_global_Fast_Quality.inst.cfg b/resources/quality/ultimaker3/um3_global_Fast_Quality.inst.cfg index f8d869b65c..435d8cc84f 100644 --- a/resources/quality/ultimaker3/um3_global_Fast_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_global_Fast_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = fast global_quality = True weight = -1 -setting_version = 1 +setting_version = 2 [values] layer_height = 0.15 diff --git a/resources/quality/ultimaker3/um3_global_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_global_High_Quality.inst.cfg index 6deaf1127b..5917a4bd41 100644 --- a/resources/quality/ultimaker3/um3_global_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_global_High_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high global_quality = True weight = 0 -setting_version = 1 +setting_version = 2 [values] layer_height = 0.06 diff --git a/resources/quality/ultimaker3/um3_global_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_global_Normal_Quality.inst.cfg index 67dc2b4b1f..fd16913dcf 100644 --- a/resources/quality/ultimaker3/um3_global_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_global_Normal_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal global_quality = True weight = 0 -setting_version = 1 +setting_version = 2 [values] layer_height = 0.1 diff --git a/resources/quality/ultimaker3/um3_global_Superdraft_Quality.inst.cfg b/resources/quality/ultimaker3/um3_global_Superdraft_Quality.inst.cfg old mode 100755 new mode 100644 index 1f095a71e4..a2ed2c55ff --- a/resources/quality/ultimaker3/um3_global_Superdraft_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_global_Superdraft_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = superdraft global_quality = True weight = -4 -setting_version = 1 +setting_version = 2 [values] layer_height = 0.4 diff --git a/resources/quality/ultimaker3/um3_global_Verydraft_Quality.inst.cfg b/resources/quality/ultimaker3/um3_global_Verydraft_Quality.inst.cfg old mode 100755 new mode 100644 index 324e007653..0e12596a8d --- a/resources/quality/ultimaker3/um3_global_Verydraft_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_global_Verydraft_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = verydraft global_quality = True weight = -3 -setting_version = 1 +setting_version = 2 [values] layer_height = 0.3 diff --git a/resources/themes/cura-dark/theme.json b/resources/themes/cura-dark/theme.json new file mode 100644 index 0000000000..5855b59d04 --- /dev/null +++ b/resources/themes/cura-dark/theme.json @@ -0,0 +1,186 @@ +{ + "metadata": { + "name": "Dark", + "inherits": "cura" + }, + "colors": { + "sidebar": [83, 83, 83, 255], + "lining": [127, 127, 127, 255], + "viewport_overlay": [66, 66, 66, 255], + + "primary": [12, 169, 227, 255], + "primary_hover": [48, 182, 231, 255], + "primary_text": [83, 83, 83, 255], + "border": [127, 127, 127, 255], + "secondary": [66, 66, 66, 255], + + "text": [255, 255, 255, 255], + "text_detail": [174, 174, 174, 128], + "text_link": [12, 169, 227, 255], + "text_inactive": [174, 174, 174, 255], + "text_hover": [70, 84, 113, 255], + "text_pressed": [12, 169, 227, 255], + "text_reversed": [255, 255, 255, 255], + "text_subtext": [255, 255, 255, 255], + + "error": [255, 140, 0, 255], + + "sidebar_header_bar": [66, 66, 66, 255], + "sidebar_header_active": [83, 83, 83, 255], + "sidebar_header_hover": [83, 83, 83, 255], + "sidebar_header_highlight": [83, 83, 83, 255], + "sidebar_header_highlight_hover": [66, 66, 66, 255], + "sidebar_lining": [66, 66, 66, 255], + + "button": [83, 83, 83, 255], + "button_hover": [83, 83, 83, 255], + "button_active": [32, 166, 219, 255], + "button_active_hover": [12, 169, 227, 255], + "button_text": [255, 255, 255, 255], + "button_disabled": [255, 255, 255, 255], + "button_disabled_text": [70, 84, 113, 255], + + "button_tooltip": [83, 83, 83, 255], + "button_tooltip_border": [255, 255, 255, 255], + "button_tooltip_text": [255, 255, 255, 255], + + "toggle_checked": [255, 255, 255, 255], + "toggle_checked_border": [255, 255, 255, 255], + "toggle_checked_text": [83, 83, 83, 255], + "toggle_unchecked": [83, 83, 83, 255], + "toggle_unchecked_border": [127, 127, 127, 255], + "toggle_unchecked_text": [255, 255, 255, 255], + "toggle_hovered": [83, 83, 83, 255], + "toggle_hovered_border": [32, 166, 219, 255], + "toggle_hovered_text": [255, 255, 255, 255], + "toggle_active": [32, 166, 219, 255], + "toggle_active_border": [32, 166, 219, 255], + "toggle_active_text": [255, 255, 255, 255], + + "tab_checked": [83, 83, 83, 255], + "tab_checked_border": [83, 83, 83, 255], + "tab_checked_text": [255, 255, 255, 255], + "tab_unchecked": [66, 66, 66, 255], + "tab_unchecked_border": [66, 66, 66, 255], + "tab_unchecked_text": [127, 127, 127, 255], + "tab_hovered": [66, 66, 66, 255], + "tab_hovered_border": [66, 66, 66, 255], + "tab_hovered_text": [32, 166, 219, 255], + "tab_active": [83, 83, 83, 255], + "tab_active_border": [83, 83, 83, 255], + "tab_active_text": [255, 255, 255, 255], + "tab_background": [66, 66, 66, 255], + + "action_button": [83, 83, 83, 255], + "action_button_text": [255, 255, 255, 255], + "action_button_border": [127, 127, 127, 255], + "action_button_hovered": [83, 83, 83, 255], + "action_button_hovered_text": [255, 255, 255, 255], + "action_button_hovered_border": [12, 169, 227, 255], + "action_button_active": [12, 169, 227, 255], + "action_button_active_text": [83, 83, 83, 255], + "action_button_active_border": [12, 169, 227, 255], + "action_button_disabled": [66, 66, 66, 255], + "action_button_disabled_text": [127, 127, 127, 255], + "action_button_disabled_border": [66, 66, 66, 255], + + "scrollbar_background": [83, 83, 83, 255], + "scrollbar_handle": [255, 255, 255, 255], + "scrollbar_handle_hover": [12, 159, 227, 255], + "scrollbar_handle_down": [12, 159, 227, 255], + + "setting_category": [66, 66, 66, 255], + "setting_category_disabled": [83, 83, 83, 255], + "setting_category_hover": [66, 66, 66, 255], + "setting_category_active": [66, 66, 66, 255], + "setting_category_active_hover": [66, 66, 66, 255], + "setting_category_text": [255, 255, 255, 255], + "setting_category_border": [66, 66, 66, 255], + "setting_category_disabled_border": [66, 66, 66, 255], + "setting_category_hover_border": [12, 159, 227, 255], + "setting_category_active_border": [66, 66, 66, 255], + "setting_category_active_hover_border": [12, 159, 227, 255], + + "setting_control": [83, 83, 83, 255], + "setting_control_selected": [12, 159, 227, 255], + "setting_control_highlight": [83, 83, 83, 0], + "setting_control_border": [127, 127, 127, 255], + "setting_control_border_highlight": [12, 169, 227, 255], + "setting_control_text": [255, 255, 255, 255], + "setting_control_depth_line": [127, 127, 127, 255], + "setting_control_button": [127, 127, 127, 255], + "setting_control_button_hover": [70, 84, 113, 255], + "setting_control_disabled": [66, 66, 66, 255], + "setting_control_disabled_text": [127, 127, 127, 255], + "setting_control_disabled_border": [127, 127, 127, 255], + "setting_unit": [127, 127, 127, 255], + "setting_validation_error": [204, 37, 0, 255], + "setting_validation_warning": [204, 146, 0, 255], + "setting_validation_ok": [83, 83, 83, 255], + + "progressbar_background": [66, 66, 66, 255], + "progressbar_control": [255, 255, 255, 255], + + "slider_groove": [66, 66, 66, 255], + "slider_groove_border": [127, 127, 127, 255], + "slider_groove_fill": [127, 127, 127, 255], + "slider_handle": [32, 166, 219, 255], + "slider_handle_hover": [77, 182, 226, 255], + "slider_text_background": [83, 83, 83, 255], + + "checkbox": [83, 83, 83, 255], + "checkbox_hover": [83, 83, 83, 255], + "checkbox_border": [127, 127, 127, 255], + "checkbox_border_hover": [12, 169, 227, 255], + "checkbox_mark": [255, 255, 255, 255], + "checkbox_text": [255, 255, 255, 255], + + "mode_switch": [83, 83, 83, 255], + "mode_switch_hover": [83, 83, 83, 255], + "mode_switch_border": [127, 127, 127, 255], + "mode_switch_border_hover": [12, 169, 227, 255], + "mode_switch_handle": [255, 255, 255, 255], + "mode_switch_text": [255, 255, 255, 255], + "mode_switch_text_hover": [255, 255, 255, 255], + "mode_switch_text_checked": [12, 169, 227, 255], + + "tooltip": [12, 169, 227, 255], + "tooltip_text": [255, 255, 255, 255], + + "message_background": [255, 255, 255, 255], + "message_text": [83, 83, 83, 255], + "message_border": [255, 255, 255, 255], + "message_button": [83, 83, 83, 255], + "message_button_hover": [12, 169, 227, 255], + "message_button_active": [32, 166, 219, 255], + "message_button_text": [255, 255, 255, 255], + "message_button_text_hover": [83, 83, 83, 255], + "message_button_text_active": [83, 83, 83, 255], + "message_progressbar_background": [83, 83, 83, 255], + "message_progressbar_control": [12, 169, 227, 255], + + "tool_panel_background": [83, 83, 83, 255], + + "status_offline": [0, 0, 0, 255], + "status_ready": [0, 205, 0, 255], + "status_busy": [12, 169, 227, 255], + "status_paused": [255, 140, 0, 255], + "status_stopped": [236, 82, 80, 255], + "status_unknown": [127, 127, 127, 255], + + "disabled_axis": [127, 127, 127, 255], + "x_axis": [255, 0, 0, 255], + "y_axis": [0, 0, 255, 255], + "z_axis": [0, 255, 0, 255], + "all_axis": [83, 83, 83, 255], + + "viewport_background": [66, 66, 66, 255], + "volume_outline": [12, 169, 227, 255], + "buildplate": [169, 169, 169, 255], + "buildplate_alt": [204, 204, 204, 255], + + "convex_hull": [35, 35, 35, 127], + "disallowed_area": [0, 0, 0, 40], + "error_area": [255, 0, 0, 127] + } +} diff --git a/resources/themes/cura/styles.qml b/resources/themes/cura/styles.qml index 496cc8e489..d161d33d56 100755 --- a/resources/themes/cura/styles.qml +++ b/resources/themes/cura/styles.qml @@ -138,11 +138,11 @@ QtObject { } } - property Component sidebar_header_tab: Component { + property Component topbar_header_tab: Component { ButtonStyle { background: Item { - implicitWidth: Theme.getSize("button").width; - implicitHeight: Theme.getSize("button").height; + implicitWidth: Theme.getSize("topbar_button").width; + implicitHeight: Theme.getSize("topbar_button").height; Rectangle { id: buttonFace; @@ -174,27 +174,48 @@ QtObject { } } - label: Item { - UM.RecolorImage { - color: UM.Theme.getColor("text_reversed") - anchors.centerIn: parent - opacity: !control.enabled ? 0.2 : 1.0 - source: control.iconSource - width: Theme.getSize("button_icon").width - height: Theme.getSize("button_icon").height + label: Item + { - sourceSize: Theme.getSize("button_icon") - } - UM.RecolorImage { - visible: control.overlayIconSource != "" - color: control.overlayColor - anchors.centerIn: parent - opacity: !control.enabled ? 0.2 : 1.0 - source: control.overlayIconSource - width: Theme.getSize("button_icon").width + implicitHeight: Theme.getSize("button_icon").height + implicitWidth: Theme.getSize("topbar_button").width; + Item + { + anchors.horizontalCenter: parent.horizontalCenter + anchors.verticalCenter: parent.verticalCenter; + width: childrenRect.width height: Theme.getSize("button_icon").height + UM.RecolorImage + { + id: icon + color: UM.Theme.getColor("text_reversed") + opacity: !control.enabled ? 0.2 : 1.0 + source: control.iconSource + width: Theme.getSize("button_icon").width + height: Theme.getSize("button_icon").height - sourceSize: Theme.getSize("button_icon") + sourceSize: Theme.getSize("button_icon") + } + UM.RecolorImage + { + visible: control.overlayIconSource != "" + color: control.overlayColor + opacity: !control.enabled ? 0.2 : 1.0 + source: control.overlayIconSource + width: Theme.getSize("button_icon").width + height: Theme.getSize("button_icon").height + + sourceSize: Theme.getSize("button_icon") + } + Label + { + text: control.text; + anchors.left: icon.right + anchors.leftMargin: Theme.getSize("default_margin").width + anchors.verticalCenter: parent.verticalCenter; + font: UM.Theme.getFont("large"); + color: UM.Theme.getColor("text_reversed") + } } } } @@ -368,11 +389,11 @@ QtObject { color: { if(!control.enabled) { return Theme.getColor("setting_category_disabled_border"); - } else if(control.hovered && control.checkable && control.checked) { + } else if((control.hovered || control.activeFocus) && control.checkable && control.checked) { return Theme.getColor("setting_category_active_hover_border"); } else if(control.pressed || (control.checkable && control.checked)) { return Theme.getColor("setting_category_active_border"); - } else if(control.hovered) { + } else if(control.hovered || control.activeFocus) { return Theme.getColor("setting_category_hover_border"); } else { return Theme.getColor("setting_category_border"); @@ -508,7 +529,7 @@ QtObject { { color: { - if (!enabled) + if(!enabled) { return UM.Theme.getColor("setting_control_disabled"); } diff --git a/resources/themes/cura/theme.json b/resources/themes/cura/theme.json index e7d49cb5e8..60b542dbf4 100644 --- a/resources/themes/cura/theme.json +++ b/resources/themes/cura/theme.json @@ -1,4 +1,7 @@ { + "metadata": { + "name": "Ultimaker" + }, "fonts": { "large": { "size": 1.25, @@ -288,6 +291,8 @@ "button_icon": [2.5, 2.5], "button_lining": [0, 0], + "topbar_button": [17, 4], + "button_tooltip": [1.0, 1.3], "button_tooltip_arrow": [0.25, 0.25], diff --git a/resources/variants/cartesio_0.25.inst.cfg b/resources/variants/cartesio_0.25.inst.cfg index b789eef732..23179b5c7e 100644 --- a/resources/variants/cartesio_0.25.inst.cfg +++ b/resources/variants/cartesio_0.25.inst.cfg @@ -6,7 +6,7 @@ definition = cartesio [metadata] author = Cartesio type = variant -setting_version = 1 +setting_version = 2 [values] machine_nozzle_size = 0.25 diff --git a/resources/variants/cartesio_0.4.inst.cfg b/resources/variants/cartesio_0.4.inst.cfg index 46140ccc24..ad8d98519e 100644 --- a/resources/variants/cartesio_0.4.inst.cfg +++ b/resources/variants/cartesio_0.4.inst.cfg @@ -6,7 +6,7 @@ definition = cartesio [metadata] author = Cartesio type = variant -setting_version = 1 +setting_version = 2 [values] machine_nozzle_size = 0.4 diff --git a/resources/variants/cartesio_0.8.inst.cfg b/resources/variants/cartesio_0.8.inst.cfg index 118d79144a..c5bc386558 100644 --- a/resources/variants/cartesio_0.8.inst.cfg +++ b/resources/variants/cartesio_0.8.inst.cfg @@ -6,7 +6,7 @@ definition = cartesio [metadata] author = Cartesio type = variant -setting_version = 1 +setting_version = 2 [values] machine_nozzle_size = 0.8 diff --git a/resources/variants/imade3d_jellybox_0.4.inst.cfg b/resources/variants/imade3d_jellybox_0.4.inst.cfg index 8bce86482b..b590dec264 100644 --- a/resources/variants/imade3d_jellybox_0.4.inst.cfg +++ b/resources/variants/imade3d_jellybox_0.4.inst.cfg @@ -6,7 +6,7 @@ definition = imade3d_jellybox [metadata] author = IMADE3D type = variant -setting_version = 1 +setting_version = 2 [values] machine_nozzle_size = 0.4 diff --git a/resources/variants/imade3d_jellybox_0.4_2-fans.inst.cfg b/resources/variants/imade3d_jellybox_0.4_2-fans.inst.cfg index e02c1fe29f..419506c908 100644 --- a/resources/variants/imade3d_jellybox_0.4_2-fans.inst.cfg +++ b/resources/variants/imade3d_jellybox_0.4_2-fans.inst.cfg @@ -6,7 +6,7 @@ definition = imade3d_jellybox [metadata] author = IMADE3D type = variant -setting_version = 1 +setting_version = 2 [values] machine_nozzle_size = 0.4 diff --git a/resources/variants/ultimaker2_0.25.inst.cfg b/resources/variants/ultimaker2_0.25.inst.cfg index 1891124ce9..d2d4abc7d4 100644 --- a/resources/variants/ultimaker2_0.25.inst.cfg +++ b/resources/variants/ultimaker2_0.25.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2 [metadata] author = Ultimaker type = variant -setting_version = 1 +setting_version = 2 [values] machine_nozzle_size = 0.25 diff --git a/resources/variants/ultimaker2_0.4.inst.cfg b/resources/variants/ultimaker2_0.4.inst.cfg index 622c97e6ff..325eb04040 100644 --- a/resources/variants/ultimaker2_0.4.inst.cfg +++ b/resources/variants/ultimaker2_0.4.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2 [metadata] author = Ultimaker type = variant -setting_version = 1 +setting_version = 2 [values] machine_nozzle_size = 0.4 diff --git a/resources/variants/ultimaker2_0.6.inst.cfg b/resources/variants/ultimaker2_0.6.inst.cfg index e64880932f..6fb8005ed0 100644 --- a/resources/variants/ultimaker2_0.6.inst.cfg +++ b/resources/variants/ultimaker2_0.6.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2 [metadata] author = Ultimaker type = variant -setting_version = 1 +setting_version = 2 [values] machine_nozzle_size = 0.6 diff --git a/resources/variants/ultimaker2_0.8.inst.cfg b/resources/variants/ultimaker2_0.8.inst.cfg index f4b86e58ed..7c256b9416 100644 --- a/resources/variants/ultimaker2_0.8.inst.cfg +++ b/resources/variants/ultimaker2_0.8.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2 [metadata] author = Ultimaker type = variant -setting_version = 1 +setting_version = 2 [values] machine_nozzle_size = 0.8 diff --git a/resources/variants/ultimaker2_extended_0.25.inst.cfg b/resources/variants/ultimaker2_extended_0.25.inst.cfg index 1a53ebc362..4e248c55c4 100644 --- a/resources/variants/ultimaker2_extended_0.25.inst.cfg +++ b/resources/variants/ultimaker2_extended_0.25.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_extended [metadata] author = Ultimaker type = variant -setting_version = 1 +setting_version = 2 [values] machine_nozzle_size = 0.25 diff --git a/resources/variants/ultimaker2_extended_0.4.inst.cfg b/resources/variants/ultimaker2_extended_0.4.inst.cfg index e7caaa0772..01adecceeb 100644 --- a/resources/variants/ultimaker2_extended_0.4.inst.cfg +++ b/resources/variants/ultimaker2_extended_0.4.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_extended [metadata] author = Ultimaker type = variant -setting_version = 1 +setting_version = 2 [values] machine_nozzle_size = 0.4 diff --git a/resources/variants/ultimaker2_extended_0.6.inst.cfg b/resources/variants/ultimaker2_extended_0.6.inst.cfg index 888dce45e8..a93ce8f628 100644 --- a/resources/variants/ultimaker2_extended_0.6.inst.cfg +++ b/resources/variants/ultimaker2_extended_0.6.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_extended [metadata] author = Ultimaker type = variant -setting_version = 1 +setting_version = 2 [values] machine_nozzle_size = 0.6 diff --git a/resources/variants/ultimaker2_extended_0.8.inst.cfg b/resources/variants/ultimaker2_extended_0.8.inst.cfg index 3f2e9dc55f..9588d017ec 100644 --- a/resources/variants/ultimaker2_extended_0.8.inst.cfg +++ b/resources/variants/ultimaker2_extended_0.8.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_extended [metadata] author = Ultimaker type = variant -setting_version = 1 +setting_version = 2 [values] machine_nozzle_size = 0.8 diff --git a/resources/variants/ultimaker2_extended_plus_0.25.inst.cfg b/resources/variants/ultimaker2_extended_plus_0.25.inst.cfg index 044bec5731..fa5861ea6d 100644 --- a/resources/variants/ultimaker2_extended_plus_0.25.inst.cfg +++ b/resources/variants/ultimaker2_extended_plus_0.25.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_extended_plus [metadata] author = Ultimaker type = variant -setting_version = 1 +setting_version = 2 [values] machine_nozzle_size = 0.25 diff --git a/resources/variants/ultimaker2_extended_plus_0.4.inst.cfg b/resources/variants/ultimaker2_extended_plus_0.4.inst.cfg index 70cfbb81d1..ef0bed8305 100644 --- a/resources/variants/ultimaker2_extended_plus_0.4.inst.cfg +++ b/resources/variants/ultimaker2_extended_plus_0.4.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_extended_plus [metadata] author = Ultimaker type = variant -setting_version = 1 +setting_version = 2 [values] machine_nozzle_size = 0.4 diff --git a/resources/variants/ultimaker2_extended_plus_0.6.inst.cfg b/resources/variants/ultimaker2_extended_plus_0.6.inst.cfg index 0bd4d181ac..643b0d3d8c 100644 --- a/resources/variants/ultimaker2_extended_plus_0.6.inst.cfg +++ b/resources/variants/ultimaker2_extended_plus_0.6.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_extended_plus [metadata] author = Ultimaker type = variant -setting_version = 1 +setting_version = 2 [values] machine_nozzle_size = 0.6 diff --git a/resources/variants/ultimaker2_extended_plus_0.8.inst.cfg b/resources/variants/ultimaker2_extended_plus_0.8.inst.cfg index d83f23859f..a282b288a2 100644 --- a/resources/variants/ultimaker2_extended_plus_0.8.inst.cfg +++ b/resources/variants/ultimaker2_extended_plus_0.8.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_extended_plus [metadata] author = Ultimaker type = variant -setting_version = 1 +setting_version = 2 [values] machine_nozzle_size = 0.8 diff --git a/resources/variants/ultimaker2_plus_0.25.inst.cfg b/resources/variants/ultimaker2_plus_0.25.inst.cfg index f493fecb71..14d8d5d899 100644 --- a/resources/variants/ultimaker2_plus_0.25.inst.cfg +++ b/resources/variants/ultimaker2_plus_0.25.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] author = Ultimaker type = variant -setting_version = 1 +setting_version = 2 [values] machine_nozzle_size = 0.25 diff --git a/resources/variants/ultimaker2_plus_0.4.inst.cfg b/resources/variants/ultimaker2_plus_0.4.inst.cfg index b7a7d8c7a7..ccc1d246a0 100644 --- a/resources/variants/ultimaker2_plus_0.4.inst.cfg +++ b/resources/variants/ultimaker2_plus_0.4.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] author = Ultimaker type = variant -setting_version = 1 +setting_version = 2 [values] machine_nozzle_size = 0.4 diff --git a/resources/variants/ultimaker2_plus_0.6.inst.cfg b/resources/variants/ultimaker2_plus_0.6.inst.cfg index 9954359cc5..40c1f523a8 100644 --- a/resources/variants/ultimaker2_plus_0.6.inst.cfg +++ b/resources/variants/ultimaker2_plus_0.6.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] author = Ultimaker type = variant -setting_version = 1 +setting_version = 2 [values] machine_nozzle_size = 0.6 diff --git a/resources/variants/ultimaker2_plus_0.8.inst.cfg b/resources/variants/ultimaker2_plus_0.8.inst.cfg index de21ac87ab..563b955063 100644 --- a/resources/variants/ultimaker2_plus_0.8.inst.cfg +++ b/resources/variants/ultimaker2_plus_0.8.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] author = Ultimaker type = variant -setting_version = 1 +setting_version = 2 [values] machine_nozzle_size = 0.8 diff --git a/resources/variants/ultimaker3_aa0.8.inst.cfg b/resources/variants/ultimaker3_aa0.8.inst.cfg index e94177abc3..9d31e166ed 100644 --- a/resources/variants/ultimaker3_aa0.8.inst.cfg +++ b/resources/variants/ultimaker3_aa0.8.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker3 [metadata] author = ultimaker type = variant -setting_version = 1 +setting_version = 2 [values] acceleration_enabled = True @@ -31,6 +31,7 @@ line_width = =machine_nozzle_size machine_min_cool_heat_time_window = 15 machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 +machine_nozzle_id = AA 0.8 machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 material_final_print_temperature = =material_print_temperature - 10 diff --git a/resources/variants/ultimaker3_aa04.inst.cfg b/resources/variants/ultimaker3_aa04.inst.cfg index 4cf31caef0..dfdd57a075 100644 --- a/resources/variants/ultimaker3_aa04.inst.cfg +++ b/resources/variants/ultimaker3_aa04.inst.cfg @@ -6,11 +6,12 @@ definition = ultimaker3 [metadata] author = ultimaker type = variant -setting_version = 1 +setting_version = 2 [values] brim_width = 7 machine_nozzle_cool_down_speed = 0.9 +machine_nozzle_id = AA 0.4 raft_acceleration = =acceleration_print raft_airgap = 0.3 raft_base_thickness = =resolveOrValue('layer_height_0') * 1.2 diff --git a/resources/variants/ultimaker3_bb0.8.inst.cfg b/resources/variants/ultimaker3_bb0.8.inst.cfg index aa2042b271..3a984318c7 100644 --- a/resources/variants/ultimaker3_bb0.8.inst.cfg +++ b/resources/variants/ultimaker3_bb0.8.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker3 [metadata] author = ultimaker type = variant -setting_version = 1 +setting_version = 2 [values] acceleration_enabled = True @@ -17,6 +17,8 @@ acceleration_support_bottom = =math.ceil(acceleration_support_interface * 100 / brim_width = 3 cool_fan_speed = 50 cool_min_speed = 5 +gradual_support_infill_step_height = 1.6 +gradual_support_infill_steps = 2 infill_line_width = =round(line_width * 0.8 / 0.7, 2) infill_overlap = 0 infill_pattern = triangles @@ -29,6 +31,7 @@ jerk_support_bottom = =math.ceil(jerk_support_interface * 1 / 10) layer_height = 0.2 machine_min_cool_heat_time_window = 15 machine_nozzle_heat_up_speed = 1.5 +machine_nozzle_id = BB 0.8 machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 material_print_temperature = =default_material_print_temperature + 10 @@ -66,9 +69,10 @@ support_angle = 60 support_bottom_height = =layer_height * 2 support_bottom_pattern = zigzag support_bottom_stair_step_height = =layer_height -support_infill_rate = 25 +support_infill_rate = 50 +support_infill_sparse_thickness = 0.4 support_interface_enable = True -support_interface_height = =layer_height * 5 +support_interface_height = 0.6 support_interface_skip_height = =layer_height support_join_distance = 3 support_line_width = =round(line_width * 0.4 / 0.35, 2) diff --git a/resources/variants/ultimaker3_bb04.inst.cfg b/resources/variants/ultimaker3_bb04.inst.cfg index f379a8d1e2..b5698dea54 100644 --- a/resources/variants/ultimaker3_bb04.inst.cfg +++ b/resources/variants/ultimaker3_bb04.inst.cfg @@ -6,18 +6,19 @@ definition = ultimaker3 [metadata] author = ultimaker type = variant -setting_version = 1 +setting_version = 2 [values] acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) acceleration_support_interface = =math.ceil(acceleration_support * 1500 / 2000) acceleration_support_bottom = =math.ceil(acceleration_support_interface * 100 / 1500) cool_fan_speed_max = =cool_fan_speed +gradual_support_infill_steps = 2 jerk_support = =math.ceil(jerk_print * 15 / 25) jerk_support_interface = =math.ceil(jerk_support * 10 / 15) jerk_support_bottom = =math.ceil(jerk_support_interface * 1 / 10) machine_nozzle_heat_up_speed = 1.5 -material_print_temperature = 215 +machine_nozzle_id = BB 0.4 raft_base_speed = 20 raft_interface_speed = 20 raft_speed = 25 @@ -30,8 +31,10 @@ speed_wall_0 = =math.ceil(speed_wall * 25 / 30) support_bottom_height = =layer_height * 2 support_bottom_pattern = zigzag support_bottom_stair_step_height = =layer_height -support_infill_rate = 25 +support_infill_rate = 50 +support_infill_sparse_thickness = 0.2 support_interface_enable = True +support_interface_height = 0.6 support_interface_skip_height = =layer_height support_join_distance = 3 support_line_width = =round(line_width * 0.4 / 0.35, 2) diff --git a/resources/variants/ultimaker3_extended_aa0.8.inst.cfg b/resources/variants/ultimaker3_extended_aa0.8.inst.cfg index 47b0359df7..8f97e448b0 100644 --- a/resources/variants/ultimaker3_extended_aa0.8.inst.cfg +++ b/resources/variants/ultimaker3_extended_aa0.8.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker3_extended [metadata] author = ultimaker type = variant -setting_version = 1 +setting_version = 2 [values] acceleration_enabled = True @@ -31,6 +31,7 @@ line_width = =machine_nozzle_size machine_min_cool_heat_time_window = 15 machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 +machine_nozzle_id = AA 0.8 machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 material_final_print_temperature = =material_print_temperature - 10 diff --git a/resources/variants/ultimaker3_extended_aa04.inst.cfg b/resources/variants/ultimaker3_extended_aa04.inst.cfg index 99daa082e4..f35210383e 100644 --- a/resources/variants/ultimaker3_extended_aa04.inst.cfg +++ b/resources/variants/ultimaker3_extended_aa04.inst.cfg @@ -6,11 +6,12 @@ definition = ultimaker3_extended [metadata] author = ultimaker type = variant -setting_version = 1 +setting_version = 2 [values] brim_width = 7 machine_nozzle_cool_down_speed = 0.9 +machine_nozzle_id = AA 0.4 machine_nozzle_size = 0.4 raft_airgap = 0.3 raft_base_speed = 15 diff --git a/resources/variants/ultimaker3_extended_bb0.8.inst.cfg b/resources/variants/ultimaker3_extended_bb0.8.inst.cfg index c982d207b0..0374068186 100644 --- a/resources/variants/ultimaker3_extended_bb0.8.inst.cfg +++ b/resources/variants/ultimaker3_extended_bb0.8.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker3_extended [metadata] author = ultimaker type = variant -setting_version = 1 +setting_version = 2 [values] acceleration_enabled = True @@ -29,6 +29,7 @@ jerk_support_bottom = =math.ceil(jerk_support_interface * 1 / 10) layer_height = 0.2 machine_min_cool_heat_time_window = 15 machine_nozzle_heat_up_speed = 1.5 +machine_nozzle_id = BB 0.8 machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 material_print_temperature = =default_material_print_temperature + 10 diff --git a/resources/variants/ultimaker3_extended_bb04.inst.cfg b/resources/variants/ultimaker3_extended_bb04.inst.cfg index abeaf69db2..cc8fb187e8 100644 --- a/resources/variants/ultimaker3_extended_bb04.inst.cfg +++ b/resources/variants/ultimaker3_extended_bb04.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker3_extended [metadata] author = ultimaker type = variant -setting_version = 1 +setting_version = 2 [values] acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) @@ -17,6 +17,7 @@ jerk_support = =math.ceil(jerk_print * 15 / 25) jerk_support_interface = =math.ceil(jerk_support * 10 / 15) jerk_support_bottom = =math.ceil(jerk_support_interface * 1 / 10) machine_nozzle_heat_up_speed = 1.5 +machine_nozzle_id = BB 0.4 material_print_temperature = 215 raft_base_speed = 20 raft_interface_speed = 20 diff --git a/tests/Settings/TestGlobalStack.py b/tests/Settings/TestGlobalStack.py index 6dab02b220..c6491d574c 100755 --- a/tests/Settings/TestGlobalStack.py +++ b/tests/Settings/TestGlobalStack.py @@ -12,6 +12,7 @@ from UM.Settings.InstanceContainer import InstanceContainer #To test against the from UM.Settings.SettingInstance import InstanceState import UM.Settings.ContainerRegistry import UM.Settings.ContainerStack +import UM.Settings.SettingDefinition #To add settings to the definition. ## Fake container registry that always provides all containers you ask of. @pytest.yield_fixture() @@ -86,6 +87,31 @@ def test_addExtruder(global_stack): # global_stack.addExtruder(unittest.mock.MagicMock()) assert len(global_stack.extruders) == 2 #Didn't add the faulty extruder. +## Tests getting the approximate material diameter. +@pytest.mark.parametrize("diameter, approximate_diameter", [ + #Some real-life cases that are common in printers. + (2.85, 3), + (1.75, 2), + (3.0, 3), + (2.0, 2), + #Exceptional cases. + (0, 0), + (-10.1, -10), + (-1, -1), + (9000.1, 9000) +]) +def test_approximateMaterialDiameter(diameter, approximate_diameter, global_stack): + global_stack.definition = DefinitionContainer(container_id = "TestDefinition") + material_diameter = UM.Settings.SettingDefinition.SettingDefinition(key = "material_diameter", container = global_stack.definition) + material_diameter.addSupportedProperty("value", UM.Settings.SettingDefinition.DefinitionPropertyType.Any, default = diameter) + global_stack.definition.definitions.append(material_diameter) + assert float(global_stack.approximateMaterialDiameter) == approximate_diameter + +## Tests getting the material diameter when there is no material diameter. +def test_approximateMaterialDiameterNoDiameter(global_stack): + global_stack.definition = DefinitionContainer(container_id = "TestDefinition") + assert global_stack.approximateMaterialDiameter == "-1" + #Tests setting user changes profiles to invalid containers. @pytest.mark.parametrize("container", [ getInstanceContainer(container_type = "wrong container type"),