diff --git a/README.md b/README.md index 1ba2b3c277..a108994cb7 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ Dependencies Build scripts ------------- -Please checkout [cura-build](https://github.com/Ultimaker/cura-build) for detailed building instructions. +Please check out [cura-build](https://github.com/Ultimaker/cura-build) for detailed building instructions. Running from Source ------------- diff --git a/cura/API/Account.py b/cura/API/Account.py index 15bccb71e1..d5ef2bfcb9 100644 --- a/cura/API/Account.py +++ b/cura/API/Account.py @@ -81,7 +81,8 @@ class Account(QObject): CLIENT_ID="um----------------------------ultimaker_cura", CLIENT_SCOPES="account.user.read drive.backup.read drive.backup.write packages.download " "packages.rating.read packages.rating.write connect.cluster.read connect.cluster.write " - "cura.printjob.read cura.printjob.write cura.mesh.read cura.mesh.write", + "library.project.read library.project.write cura.printjob.read cura.printjob.write " + "cura.mesh.read cura.mesh.write", AUTH_DATA_PREFERENCE_KEY="general/ultimaker_auth_data", AUTH_SUCCESS_REDIRECT="{}/app/auth-success".format(self._oauth_root), AUTH_FAILED_REDIRECT="{}/app/auth-error".format(self._oauth_root) diff --git a/cura/BuildVolume.py b/cura/BuildVolume.py index 7c843fcdea..fd953a838a 100755 --- a/cura/BuildVolume.py +++ b/cura/BuildVolume.py @@ -281,7 +281,7 @@ class BuildVolume(SceneNode): continue # If the entire node is below the build plate, still mark it as outside. node_bounding_box = node.getBoundingBox() - if node_bounding_box and node_bounding_box.top < 0: + if node_bounding_box and node_bounding_box.top < 0 and not node.getParent().callDecoration("isGroup"): node.setOutsideBuildArea(True) continue # Mark the node as outside build volume if the set extruder is disabled @@ -344,7 +344,12 @@ class BuildVolume(SceneNode): # Mark the node as outside build volume if the set extruder is disabled extruder_position = node.callDecoration("getActiveExtruderPosition") - if not self._global_container_stack.extruderList[int(extruder_position)].isEnabled: + try: + if not self._global_container_stack.extruderList[int(extruder_position)].isEnabled: + node.setOutsideBuildArea(True) + return + except IndexError: + # If the extruder doesn't exist, also mark it as unprintable. node.setOutsideBuildArea(True) return @@ -1063,7 +1068,14 @@ class BuildVolume(SceneNode): adhesion_type = adhesion_override if adhesion_type is None: adhesion_type = container_stack.getProperty("adhesion_type", "value") - skirt_brim_line_width = self._global_container_stack.getProperty("skirt_brim_line_width", "value") + + # Skirt_brim_line_width is a bit of an odd one out. The primary bit of the skirt/brim is printed + # with the adhesion extruder, but it also prints one extra line by all other extruders. As such, the + # setting does *not* have a limit_to_extruder setting (which means that we can't ask the global extruder what + # the value is. + adhesion_extruder = self._global_container_stack.getProperty("adhesion_extruder_nr", "value") + skirt_brim_line_width = self._global_container_stack.extruderList[int(adhesion_extruder)].getProperty("skirt_brim_line_width", "value") + initial_layer_line_width_factor = self._global_container_stack.getProperty("initial_layer_line_width_factor", "value") # Use brim width if brim is enabled OR the prime tower has a brim. if adhesion_type == "brim": diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index f0c69d5a61..7302066550 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -3,6 +3,7 @@ import os import sys +import tempfile import time from typing import cast, TYPE_CHECKING, Optional, Callable, List, Any, Dict @@ -30,6 +31,7 @@ from UM.Operations.SetTransformOperation import SetTransformOperation from UM.Platform import Platform from UM.PluginError import PluginNotFoundError from UM.Preferences import Preferences +from UM.Qt.Bindings.FileProviderModel import FileProviderModel from UM.Qt.QtApplication import QtApplication # The class we're inheriting from. from UM.Resources import Resources from UM.Scene.Camera import Camera @@ -822,6 +824,9 @@ class CuraApplication(QtApplication): self._add_printer_pages_model_without_cancel.initialize(cancellable = False) self._whats_new_pages_model.initialize() + # Initialize the FileProviderModel + self._file_provider_model.initialize(self._onFileProviderEnabledChanged) + # Detect in which mode to run and execute that mode if self._is_headless: self.runWithoutGUI() @@ -1051,6 +1056,13 @@ class CuraApplication(QtApplication): self._simple_mode_settings_manager = SimpleModeSettingsManager() return self._simple_mode_settings_manager + @pyqtSlot(result = QObject) + def getFileProviderModel(self) -> FileProviderModel: + return self._file_provider_model + + def _onFileProviderEnabledChanged(self): + self._file_provider_model.update() + def event(self, event): """Handle Qt events""" @@ -1466,7 +1478,8 @@ class CuraApplication(QtApplication): for file_name, nodes in objects_in_filename.items(): for node in nodes: - job = ReadMeshJob(file_name) + file_path = os.path.normpath(os.path.dirname(file_name)) + job = ReadMeshJob(file_name, add_to_recent_files = file_path != tempfile.gettempdir()) # Don't add temp files to the recent files list job._node = node # type: ignore job.finished.connect(self._reloadMeshFinished) if has_merged_nodes: @@ -1724,7 +1737,7 @@ class CuraApplication(QtApplication): @pyqtSlot(QUrl, str) @pyqtSlot(QUrl) - def readLocalFile(self, file: QUrl, project_mode: Optional[str] = None): + def readLocalFile(self, file: QUrl, project_mode: Optional[str] = None, add_to_recent_files: bool = True): """Open a local file :param project_mode: How to handle project files. Either None(default): Follow user preference, "open_as_model" @@ -1749,7 +1762,7 @@ class CuraApplication(QtApplication): if is_project_file and project_mode == "open_as_project": # open as project immediately without presenting a dialog workspace_handler = self.getWorkspaceFileHandler() - workspace_handler.readLocalFile(file) + workspace_handler.readLocalFile(file, add_to_recent_files = add_to_recent_files) return if is_project_file and project_mode == "always_ask": @@ -1790,7 +1803,7 @@ class CuraApplication(QtApplication): if extension in self._non_sliceable_extensions: self.deleteAll(only_selectable = False) - job = ReadMeshJob(f) + job = ReadMeshJob(f, add_to_recent_files = add_to_recent_files) job.finished.connect(self._readMeshFinished) job.start() @@ -1905,6 +1918,11 @@ class CuraApplication(QtApplication): arrange(nodes_to_arrange, self.getBuildVolume(), fixed_nodes) except: Logger.logException("e", "Failed to arrange the models") + + # Ensure that we don't have any weird floaty objects (CURA-7855) + for node in nodes_to_arrange: + node.translate(Vector(0, -node.getBoundingBox().bottom, 0), SceneNode.TransformSpace.World) + self.fileCompleted.emit(file_name) def addNonSliceableExtension(self, extension): diff --git a/cura/Machines/MaterialNode.py b/cura/Machines/MaterialNode.py index c78c6aff03..18db7d982d 100644 --- a/cura/Machines/MaterialNode.py +++ b/cura/Machines/MaterialNode.py @@ -88,8 +88,10 @@ class MaterialNode(ContainerNode): variant = self.variant.variant_name) else: qualities_any_material = container_registry.findInstanceContainersMetadata(type = "quality", definition = self.variant.machine.quality_definition) - for material_metadata in container_registry.findInstanceContainersMetadata(type = "material", material = my_material_type): - qualities.extend((quality for quality in qualities_any_material if quality.get("material") == material_metadata["base_file"])) + + all_material_base_files = {material_metadata["base_file"] for material_metadata in container_registry.findInstanceContainersMetadata(type = "material", material = my_material_type)} + + qualities.extend((quality for quality in qualities_any_material if quality.get("material") in all_material_base_files)) if not qualities: # No quality profiles found. Go by GUID then. my_guid = self.guid diff --git a/cura/OAuth2/AuthorizationHelpers.py b/cura/OAuth2/AuthorizationHelpers.py index f7fe6958a1..2534cdb808 100644 --- a/cura/OAuth2/AuthorizationHelpers.py +++ b/cura/OAuth2/AuthorizationHelpers.py @@ -69,7 +69,9 @@ class AuthorizationHelpers: try: return self.parseTokenResponse(requests.post(self._token_url, data = data)) # type: ignore except requests.exceptions.ConnectionError: - return AuthenticationResponse(success=False, err_message="Unable to connect to remote server") + return AuthenticationResponse(success = False, err_message = "Unable to connect to remote server") + except OSError as e: + return AuthenticationResponse(success = False, err_message = "Operating system is unable to set up a secure connection: {err}".format(err = str(e))) @staticmethod def parseTokenResponse(token_response: requests.models.Response) -> "AuthenticationResponse": diff --git a/cura/OAuth2/AuthorizationService.py b/cura/OAuth2/AuthorizationService.py index 9a5c81ae55..a96b05be5f 100644 --- a/cura/OAuth2/AuthorizationService.py +++ b/cura/OAuth2/AuthorizationService.py @@ -1,4 +1,4 @@ -# Copyright (c) 2019 Ultimaker B.V. +# Copyright (c) 2021 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. import json @@ -241,7 +241,7 @@ class AuthorizationService: self._unable_to_get_data_message = Message(i18n_catalog.i18nc("@info", "Unable to reach the Ultimaker account server."), title = i18n_catalog.i18nc("@info:title", "Warning")) self._unable_to_get_data_message.show() - except ValueError: + except (ValueError, TypeError): Logger.logException("w", "Could not load auth data from preferences") def _storeAuthData(self, auth_data: Optional[AuthenticationResponse] = None) -> None: diff --git a/cura/Settings/ContainerManager.py b/cura/Settings/ContainerManager.py index 08fdf707cf..48d4cb3cbc 100644 --- a/cura/Settings/ContainerManager.py +++ b/cura/Settings/ContainerManager.py @@ -221,6 +221,7 @@ class ContainerManager(QObject): except OSError: return {"status": "error", "message": "Unable to write to this location.", "path": file_url} + Logger.info("Successfully exported container to {path}".format(path = file_url)) return {"status": "success", "message": "Successfully exported container", "path": file_url} @pyqtSlot(QUrl, result = "QVariantMap") diff --git a/cura/Settings/CuraContainerRegistry.py b/cura/Settings/CuraContainerRegistry.py index 24b7436bad..00a0eedbf0 100644 --- a/cura/Settings/CuraContainerRegistry.py +++ b/cura/Settings/CuraContainerRegistry.py @@ -400,7 +400,9 @@ class CuraContainerRegistry(ContainerRegistry): try: if int(metadata["setting_version"]) != cura.CuraApplication.CuraApplication.SettingVersion: return False - except ValueError: #Not parsable as int. + except ValueError: # Not parsable as int. + return False + except TypeError: # Expecting string input here, not e.g. list or anything. return False return True diff --git a/cura/Snapshot.py b/cura/Snapshot.py index 6f12aa88ba..c4c1ce000e 100644 --- a/cura/Snapshot.py +++ b/cura/Snapshot.py @@ -42,8 +42,8 @@ class Snapshot: """ scene = Application.getInstance().getController().getScene() - active_camera = scene.getActiveCamera() - render_width, render_height = active_camera.getWindowSize() + active_camera = scene.getActiveCamera() or scene.findCamera("3d") + render_width, render_height = (width, height) if active_camera is None else active_camera.getWindowSize() render_width = int(render_width) render_height = int(render_height) preview_pass = PreviewPass(render_width, render_height) diff --git a/cura_app.py b/cura_app.py index cc8a1d575c..b94909fc04 100755 --- a/cura_app.py +++ b/cura_app.py @@ -226,6 +226,12 @@ if Platform.isLinux() and getattr(sys, "frozen", False): import trimesh.exchange.load os.environ["LD_LIBRARY_PATH"] = old_env +# WORKAROUND: Cura#5488 +# When using the KDE qqc2-desktop-style, the UI layout is completely broken, and +# even worse, it crashes when switching to the "Preview" pane. +if Platform.isLinux(): + os.environ["QT_QUICK_CONTROLS_STYLE"] = "default" + if ApplicationMetadata.CuraDebugMode: ssl_conf = QSslConfiguration.defaultConfiguration() ssl_conf.setPeerVerifyMode(QSslSocket.VerifyNone) diff --git a/docs/How_to_use_the_flame_graph_profiler.md b/docs/How_to_use_the_flame_graph_profiler.md index b1cdaf358e..b40a86bb24 100644 --- a/docs/How_to_use_the_flame_graph_profiler.md +++ b/docs/How_to_use_the_flame_graph_profiler.md @@ -27,7 +27,7 @@ Note: The profiler front-end itself is quite "heavy" (ok, not optimised). It run What the Profiler Sees ---------------------- -The profiler doesn't capture every function call in Cura. It hooks into a number of important systems which give a good picture of activity without too much run time overhead. The most important system is Uranium's signal mechanism and PyQt5 slots. Functions which are called via the signal mechanism are recorded and thier names appear in the results. PyQt5 slots appear in the results with the prefix `[SLOT]`. +The profiler doesn't capture every function call in Cura. It hooks into a number of important systems which give a good picture of activity without too much run time overhead. The most important system is Uranium's signal mechanism and PyQt5 slots. Functions which are called via the signal mechanism are recorded and their names appear in the results. PyQt5 slots appear in the results with the prefix `[SLOT]`. Note that not all slots are captured. Only those slots which belong to classes which use the `pyqtSlot` decorator from the `UM.FlameProfiler` module. diff --git a/plugins/CuraDrive/src/qml/pages/BackupsPage.qml b/plugins/CuraDrive/src/qml/pages/BackupsPage.qml index c337294744..bb17cea973 100644 --- a/plugins/CuraDrive/src/qml/pages/BackupsPage.qml +++ b/plugins/CuraDrive/src/qml/pages/BackupsPage.qml @@ -69,7 +69,7 @@ Item BackupListFooter { id: backupListFooter - showInfoButton: backupList.model.length > 4 + } } } diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 4b196f7b5d..eed9d56741 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -1,4 +1,4 @@ -# Copyright (c) 2018 Ultimaker B.V. +# Copyright (c) 2021 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. import argparse #To run the engine in debug mode if the front-end is in debug mode. @@ -9,6 +9,8 @@ import sys from time import time from typing import Any, cast, Dict, List, Optional, Set, TYPE_CHECKING +from PyQt5.QtGui import QImage + from UM.Backend.Backend import Backend, BackendState from UM.Scene.SceneNode import SceneNode from UM.Signal import Signal @@ -24,6 +26,8 @@ from UM.Tool import Tool #For typing. from cura.CuraApplication import CuraApplication from cura.Settings.ExtruderManager import ExtruderManager +from cura.Snapshot import Snapshot +from cura.Utils.Threading import call_on_qt_thread from .ProcessSlicedLayersJob import ProcessSlicedLayersJob from .StartSliceJob import StartSliceJob, StartJobResult @@ -153,6 +157,8 @@ class CuraEngineBackend(QObject, Backend): self.determineAutoSlicing() application.getPreferences().preferenceChanged.connect(self._onPreferencesChanged) + self._snapshot = None #type: Optional[QImage] + application.initializationFinished.connect(self.initialize) def initialize(self) -> None: @@ -241,9 +247,24 @@ class CuraEngineBackend(QObject, Backend): self.markSliceAll() self.slice() + @call_on_qt_thread # must be called from the main thread because of OpenGL + def _createSnapshot(self) -> None: + self._snapshot = None + Logger.log("i", "Creating thumbnail image (just before slice)...") + try: + self._snapshot = Snapshot.snapshot(width = 300, height = 300) + except: + Logger.logException("w", "Failed to create snapshot image") + self._snapshot = None # Failing to create thumbnail should not fail creation of UFP + + def getLatestSnapshot(self) -> Optional[QImage]: + return self._snapshot + def slice(self) -> None: """Perform a slice of the scene.""" + self._createSnapshot() + Logger.log("i", "Starting to slice...") self._slice_start_time = time() if not self._build_plates_to_be_sliced: @@ -331,7 +352,6 @@ class CuraEngineBackend(QObject, Backend): def _onStartSliceCompleted(self, job: StartSliceJob) -> None: """Event handler to call when the job to initiate the slicing process is - completed. When the start slice job is successfully completed, it will be happily diff --git a/plugins/ImageReader/ConfigUI.qml b/plugins/ImageReader/ConfigUI.qml index a7dbc5f748..a3dceed50d 100644 --- a/plugins/ImageReader/ConfigUI.qml +++ b/plugins/ImageReader/ConfigUI.qml @@ -43,7 +43,7 @@ UM.Dialog TextField { id: peak_height objectName: "Peak_Height" - validator: RegExpValidator {regExp: /^\d{1,3}([\,|\.]\d*)?$/} + validator: RegExpValidator {regExp: /^\d{0,3}([\,|\.]\d*)?$/} width: 180 * screenScaleFactor onTextChanged: { manager.onPeakHeightChanged(text) } } @@ -66,7 +66,7 @@ UM.Dialog TextField { id: base_height objectName: "Base_Height" - validator: RegExpValidator {regExp: /^\d{1,3}([\,|\.]\d*)?$/} + validator: RegExpValidator {regExp: /^\d{0,3}([\,|\.]\d*)?$/} width: 180 * screenScaleFactor onTextChanged: { manager.onBaseHeightChanged(text) } } diff --git a/plugins/ImageReader/ImageReader.py b/plugins/ImageReader/ImageReader.py index 1bab15e9d6..4a32ed71f1 100644 --- a/plugins/ImageReader/ImageReader.py +++ b/plugins/ImageReader/ImageReader.py @@ -52,11 +52,8 @@ class ImageReader(MeshReader): def _generateSceneNode(self, file_name, xz_size, height_from_base, base_height, blur_iterations, max_size, lighter_is_higher, use_transparency_model, transmittance_1mm): scene_node = SceneNode() - mesh = MeshBuilder() - img = QImage(file_name) - if img.isNull(): Logger.log("e", "Image is corrupt.") return None @@ -70,11 +67,10 @@ class ImageReader(MeshReader): height_from_base = max(height_from_base, 0) base_height = max(base_height, 0) - peak_height = base_height + height_from_base xz_size = max(xz_size, 1) - scale_vector = Vector(xz_size, peak_height, xz_size) + scale_vector = Vector(xz_size, height_from_base, xz_size) if width > height: scale_vector = scale_vector.set(z=scale_vector.z * aspect) @@ -132,7 +128,7 @@ class ImageReader(MeshReader): if use_transparency_model: divisor = 1.0 / math.log(transmittance_1mm / 100.0) # log-base doesn't matter here. Precompute this value for faster computation of each pixel. - min_luminance = (transmittance_1mm / 100.0) ** (peak_height - base_height) + min_luminance = (transmittance_1mm / 100.0) ** height_from_base for (y, x) in numpy.ndindex(height_data.shape): mapped_luminance = min_luminance + (1.0 - min_luminance) * height_data[y, x] height_data[y, x] = base_height + divisor * math.log(mapped_luminance) # use same base as a couple lines above this diff --git a/plugins/MachineSettingsAction/MachineSettingsExtruderTab.qml b/plugins/MachineSettingsAction/MachineSettingsExtruderTab.qml index 902388b669..293e7386b2 100644 --- a/plugins/MachineSettingsAction/MachineSettingsExtruderTab.qml +++ b/plugins/MachineSettingsAction/MachineSettingsExtruderTab.qml @@ -137,6 +137,7 @@ Item labelWidth: base.labelWidth controlWidth: base.controlWidth unitText: "" + decimals: 0 forceUpdateOnChangeFunction: forceUpdateFunction } } diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml index e834372ae9..cf3e182096 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml +++ b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml @@ -237,7 +237,7 @@ Item id: settingLoader width: UM.Theme.getSize("setting").width height: UM.Theme.getSize("section").height - + enabled: provider.properties.enabled === "True" property var definition: model property var settingDefinitionsModel: addedSettingsModel property var propertyProvider: provider diff --git a/plugins/PostProcessingPlugin/scripts/ChangeAtZ.py b/plugins/PostProcessingPlugin/scripts/ChangeAtZ.py index b4036f7ff2..a23e52b750 100644 --- a/plugins/PostProcessingPlugin/scripts/ChangeAtZ.py +++ b/plugins/PostProcessingPlugin/scripts/ChangeAtZ.py @@ -774,15 +774,15 @@ class ChangeAtZProcessor: # looking for wait for bed temp if "bedTemp" in values: - codes.append("BedTemp: " + str(values["bedTemp"])) + codes.append("BedTemp: " + str(round(values["bedTemp"]))) # set our extruder one temp (if specified) if "extruderOne" in values: - codes.append("Extruder 1 Temp: " + str(values["extruderOne"])) + codes.append("Extruder 1 Temp: " + str(round(values["extruderOne"]))) # set our extruder two temp (if specified) if "extruderTwo" in values: - codes.append("Extruder 2 Temp: " + str(values["extruderTwo"])) + codes.append("Extruder 2 Temp: " + str(round(values["extruderTwo"]))) # set global flow rate if "flowrate" in values: diff --git a/plugins/PostProcessingPlugin/scripts/PauseAtHeight.py b/plugins/PostProcessingPlugin/scripts/PauseAtHeight.py index fc7bfec60a..69a67990fe 100644 --- a/plugins/PostProcessingPlugin/scripts/PauseAtHeight.py +++ b/plugins/PostProcessingPlugin/scripts/PauseAtHeight.py @@ -182,8 +182,7 @@ class PauseAtHeight(Script): "Repetier": "Repetier" }, "default_value": "RepRap (Marlin/Sprinter)", - "enabled": false, - "default_value": "" + "enabled": false }, "custom_gcode_before_pause": { diff --git a/plugins/PostProcessingPlugin/scripts/TimeLapse.py b/plugins/PostProcessingPlugin/scripts/TimeLapse.py index 41fd4a5805..210199e087 100644 --- a/plugins/PostProcessingPlugin/scripts/TimeLapse.py +++ b/plugins/PostProcessingPlugin/scripts/TimeLapse.py @@ -66,6 +66,22 @@ class TimeLapse(Script): "type": "float", "default_value": 9000, "enabled": "park_print_head" + }, + "retract": + { + "label": "Retraction Distance", + "description": "Filament retraction distance for camera trigger.", + "unit": "mm", + "type": "int", + "default_value": 0 + }, + "zhop": + { + "label": "Z-Hop Height When Parking", + "description": "Z-hop length before parking", + "unit": "mm", + "type": "float", + "default_value": 0 } } }""" @@ -77,9 +93,12 @@ class TimeLapse(Script): y_park = self.getSettingValueByKey("head_park_y") trigger_command = self.getSettingValueByKey("trigger_command") pause_length = self.getSettingValueByKey("pause_length") + retract = int(self.getSettingValueByKey("retract")) + zhop = self.getSettingValueByKey("zhop") gcode_to_append = ";TimeLapse Begin\n" last_x = 0 last_y = 0 + last_z = 0 if park_print_head: gcode_to_append += self.putValue(G=1, F=feed_rate, @@ -90,16 +109,35 @@ class TimeLapse(Script): for idx, layer in enumerate(data): for line in layer.split("\n"): - if self.getValue(line, "G") in {0, 1}: # Track X,Y location. + if self.getValue(line, "G") in {0, 1}: # Track X,Y,Z location. last_x = self.getValue(line, "X", last_x) last_y = self.getValue(line, "Y", last_y) + last_z = self.getValue(line, "Z", last_z) # Check that a layer is being printed lines = layer.split("\n") for line in lines: if ";LAYER:" in line: + if retract != 0: # Retract the filament so no stringing happens + layer += self.putValue(M=83) + " ;Extrude Relative\n" + layer += self.putValue(G=1, E=-retract, F=3000) + " ;Retract filament\n" + layer += self.putValue(M=82) + " ;Extrude Absolute\n" + layer += self.putValue(M=400) + " ;Wait for moves to finish\n" # Wait to fully retract before hopping + + if zhop != 0: + layer += self.putValue(G=1, Z=last_z+zhop, F=3000) + " ;Z-Hop\n" + layer += gcode_to_append - layer += "G0 X%s Y%s\n" % (last_x, last_y) + if zhop != 0: + layer += self.putValue(G=0, X=last_x, Y=last_y, Z=last_z) + "; Restore position \n" + else: + layer += self.putValue(G=0, X=last_x, Y=last_y) + "; Restore position \n" + + if retract != 0: + layer += self.putValue(M=400) + " ;Wait for moves to finish\n" + layer += self.putValue(M=83) + " ;Extrude Relative\n" + layer += self.putValue(G=1, E=retract, F=3000) + " ;Retract filament\n" + layer += self.putValue(M=82) + " ;Extrude Absolute\n" data[idx] = layer break diff --git a/plugins/SimulationView/SimulationView.py b/plugins/SimulationView/SimulationView.py index 349426d463..75b1352845 100644 --- a/plugins/SimulationView/SimulationView.py +++ b/plugins/SimulationView/SimulationView.py @@ -104,7 +104,7 @@ class SimulationView(CuraView): Application.getInstance().getPreferences().addPreference("view/only_show_top_layers", False) Application.getInstance().getPreferences().addPreference("view/force_layer_view_compatibility_mode", False) - Application.getInstance().getPreferences().addPreference("layerview/layer_view_type", 0) + Application.getInstance().getPreferences().addPreference("layerview/layer_view_type", 1) # Default to "Line Type". Application.getInstance().getPreferences().addPreference("layerview/extruder_opacities", "") Application.getInstance().getPreferences().addPreference("layerview/show_travel_moves", False) diff --git a/plugins/Toolbox/src/AuthorsModel.py b/plugins/Toolbox/src/AuthorsModel.py index 9a8e7f5dfe..04c8ed3a40 100644 --- a/plugins/Toolbox/src/AuthorsModel.py +++ b/plugins/Toolbox/src/AuthorsModel.py @@ -2,7 +2,7 @@ # Cura is released under the terms of the LGPLv3 or higher. import re -from typing import Dict, List, Optional, Union +from typing import Dict, List, Optional, Union, cast from PyQt5.QtCore import Qt, pyqtProperty @@ -68,7 +68,7 @@ class AuthorsModel(ListModel): # Execute all filters. filtered_items = list(items) - filtered_items.sort(key = lambda k: k["name"]) + filtered_items.sort(key = lambda k: cast(str, k["name"])) self.setItems(filtered_items) def setFilter(self, filter_dict: Dict[str, str]) -> None: diff --git a/plugins/Toolbox/src/CloudSync/SyncOrchestrator.py b/plugins/Toolbox/src/CloudSync/SyncOrchestrator.py index 5693b82ded..a85c13f639 100644 --- a/plugins/Toolbox/src/CloudSync/SyncOrchestrator.py +++ b/plugins/Toolbox/src/CloudSync/SyncOrchestrator.py @@ -1,3 +1,6 @@ +# Copyright (c) 2021 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + import os from typing import List, Dict, Any, cast @@ -96,7 +99,10 @@ class SyncOrchestrator(Extension): else: self._cloud_api.unsubscribe(item["package_id"]) # delete temp file - os.remove(item["package_path"]) + try: + os.remove(item["package_path"]) + except EnvironmentError as e: # File was already removed, no access rights, etc. + Logger.error("Can't delete temporary package file: {err}".format(err = str(e))) if has_changes: self._restart_presenter.present() diff --git a/plugins/Toolbox/src/Toolbox.py b/plugins/Toolbox/src/Toolbox.py index 98054c26e9..60c8f9107e 100644 --- a/plugins/Toolbox/src/Toolbox.py +++ b/plugins/Toolbox/src/Toolbox.py @@ -46,8 +46,6 @@ class Toolbox(QObject, Extension): self._application = application # type: CuraApplication - self._sdk_version = ApplicationMetadata.CuraSDKVersion # type: Union[str, int] - # Network: self._download_request_data = None # type: Optional[HttpRequestData] self._download_progress = 0 # type: float diff --git a/plugins/UFPWriter/UFPWriter.py b/plugins/UFPWriter/UFPWriter.py index 6179872b2d..f9b86be651 100644 --- a/plugins/UFPWriter/UFPWriter.py +++ b/plugins/UFPWriter/UFPWriter.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020 Ultimaker B.V. +# Copyright (c) 2021 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. from typing import cast, List, Dict @@ -7,16 +7,16 @@ from Charon.VirtualFile import VirtualFile # To open UFP files. from Charon.OpenMode import OpenMode # To indicate that we want to write to UFP files. from io import StringIO # For converting g-code to bytes. +from PyQt5.QtCore import QBuffer + from UM.Logger import Logger from UM.Mesh.MeshWriter import MeshWriter # The writer we need to implement. from UM.MimeTypeDatabase import MimeTypeDatabase, MimeType from UM.PluginRegistry import PluginRegistry # To get the g-code writer. -from PyQt5.QtCore import QBuffer from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator from UM.Scene.SceneNode import SceneNode from cura.CuraApplication import CuraApplication -from cura.Snapshot import Snapshot from cura.Utils.Threading import call_on_qt_thread from UM.i18n import i18nCatalog @@ -38,17 +38,6 @@ class UFPWriter(MeshWriter): ) ) - self._snapshot = None - - def _createSnapshot(self, *args): - # must be called from the main thread because of OpenGL - Logger.log("d", "Creating thumbnail image...") - try: - self._snapshot = Snapshot.snapshot(width = 300, height = 300) - except Exception: - Logger.logException("w", "Failed to create snapshot image") - self._snapshot = None # Failing to create thumbnail should not fail creation of UFP - # This needs to be called on the main thread (Qt thread) because the serialization of material containers can # trigger loading other containers. Because those loaded containers are QtObjects, they must be created on the # Qt thread. The File read/write operations right now are executed on separated threads because they are scheduled @@ -72,24 +61,23 @@ class UFPWriter(MeshWriter): gcode.write(gcode_textio.getvalue().encode("UTF-8")) archive.addRelation(virtual_path = "/3D/model.gcode", relation_type = "http://schemas.ultimaker.org/package/2018/relationships/gcode") - self._createSnapshot() - - # Store the thumbnail. - if self._snapshot: + # Attempt to store the thumbnail, if any: + backend = CuraApplication.getInstance().getBackend() + snapshot = None if getattr(backend, "getLatestSnapshot", None) is None else backend.getLatestSnapshot() + if snapshot: archive.addContentType(extension = "png", mime_type = "image/png") thumbnail = archive.getStream("/Metadata/thumbnail.png") thumbnail_buffer = QBuffer() thumbnail_buffer.open(QBuffer.ReadWrite) - thumbnail_image = self._snapshot - thumbnail_image.save(thumbnail_buffer, "PNG") + snapshot.save(thumbnail_buffer, "PNG") thumbnail.write(thumbnail_buffer.data()) archive.addRelation(virtual_path = "/Metadata/thumbnail.png", relation_type = "http://schemas.openxmlformats.org/package/2006/relationships/metadata/thumbnail", origin = "/3D/model.gcode") else: - Logger.log("d", "Thumbnail not created, cannot save it") + Logger.log("w", "Thumbnail not created, cannot save it") # Store the material. application = CuraApplication.getInstance() diff --git a/plugins/UM3NetworkPrinting/src/ExportFileJob.py b/plugins/UM3NetworkPrinting/src/ExportFileJob.py index 6fde08cc5f..12f5a28877 100644 --- a/plugins/UM3NetworkPrinting/src/ExportFileJob.py +++ b/plugins/UM3NetworkPrinting/src/ExportFileJob.py @@ -1,3 +1,6 @@ +# Copyright (c) 2021 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + from typing import List, Optional from UM.FileHandler.FileHandler import FileHandler diff --git a/plugins/XmlMaterialProfile/XmlMaterialProfile.py b/plugins/XmlMaterialProfile/XmlMaterialProfile.py index 70e702d0bf..ce0bb06d8d 100644 --- a/plugins/XmlMaterialProfile/XmlMaterialProfile.py +++ b/plugins/XmlMaterialProfile/XmlMaterialProfile.py @@ -151,7 +151,7 @@ class XmlMaterialProfile(InstanceContainer): "version": self.CurrentFdmMaterialVersion}) ## Begin Metadata Block - builder.start("metadata") # type: ignore + builder.start("metadata", {}) # type: ignore metadata = copy.deepcopy(self.getMetaData()) # setting_version is derived from the "version" tag in the schema, so don't serialize it into a file @@ -165,21 +165,21 @@ class XmlMaterialProfile(InstanceContainer): properties = metadata.pop("properties", {}) ## Begin Name Block - builder.start("name") # type: ignore + builder.start("name", {}) # type: ignore - builder.start("brand") # type: ignore + builder.start("brand", {}) # type: ignore builder.data(metadata.pop("brand", "")) builder.end("brand") - builder.start("material") # type: ignore + builder.start("material", {}) # type: ignore builder.data(metadata.pop("material", "")) builder.end("material") - builder.start("color") # type: ignore + builder.start("color", {}) # type: ignore builder.data(metadata.pop("color_name", "")) builder.end("color") - builder.start("label") # type: ignore + builder.start("label", {}) # type: ignore builder.data(self.getName()) builder.end("label") @@ -190,7 +190,7 @@ class XmlMaterialProfile(InstanceContainer): key_to_use = key if key in self._metadata_tags_that_have_cura_namespace: key_to_use = "cura:" + key_to_use - builder.start(key_to_use) # type: ignore + builder.start(key_to_use, {}) # type: ignore if value is not None: #Nones get handled well by the builder. #Otherwise the builder always expects a string. #Deserialize expects the stringified version. @@ -202,10 +202,10 @@ class XmlMaterialProfile(InstanceContainer): ## End Metadata Block ## Begin Properties Block - builder.start("properties") # type: ignore + builder.start("properties", {}) # type: ignore for key, value in properties.items(): - builder.start(key) # type: ignore + builder.start(key, {}) # type: ignore builder.data(value) builder.end(key) @@ -213,7 +213,7 @@ class XmlMaterialProfile(InstanceContainer): ## End Properties Block ## Begin Settings Block - builder.start("settings") # type: ignore + builder.start("settings", {}) # type: ignore if self.getMetaDataEntry("definition") == "fdmprinter": for instance in self.findInstances(): @@ -258,7 +258,7 @@ class XmlMaterialProfile(InstanceContainer): product = product_name break - builder.start("machine") # type: ignore + builder.start("machine", {}) # type: ignore builder.start("machine_identifier", { "manufacturer": container.getMetaDataEntry("machine_manufacturer", definition_metadata.get("manufacturer", "Unknown")), diff --git a/resources/definitions/SV01.def.json b/resources/definitions/SV01.def.json index 02347a8e3b..439ced7d38 100644 --- a/resources/definitions/SV01.def.json +++ b/resources/definitions/SV01.def.json @@ -65,6 +65,6 @@ "retraction_speed": { "default_value": 50}, "adhesion_type": { "value": "'skirt'" }, "machine_start_gcode": { "default_value": "M201 X500.00 Y500.00 Z100.00 E5000.00 ;Setup machine max acceleration\nM203 X500.00 Y500.00 Z10.00 E50.00 ;Setup machine max feedrate\nM204 P500.00 R1000.00 T500.00 ;Setup Print/Retract/Travel acceleration\nM205 X8.00 Y8.00 Z0.40 E5.00 ;Setup Jerk\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\n\nG28 ;Home\n\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nG1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\n" }, - "machine_end_gcode": { "default_value": "G91 ;Relative positioning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X0 Y240 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positionning\n\nG1 X0 Y{machine_depth} ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z\n" } + "machine_end_gcode": { "default_value": "G91 ;Relative positioning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X0 Y240 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positioning\n\nG1 X0 Y{machine_depth} ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z\n" } } -} \ No newline at end of file +} diff --git a/resources/definitions/anycubic_mega_zero.def.json b/resources/definitions/anycubic_mega_zero.def.json index a17fddc4b4..b0c3132858 100644 --- a/resources/definitions/anycubic_mega_zero.def.json +++ b/resources/definitions/anycubic_mega_zero.def.json @@ -59,7 +59,7 @@ }, "machine_end_gcode": { - "default_value": "M117 Cooling down...\nM104 S0 ; turn off extruder\nM84 ; disable motors\nM107 ; Fan off\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 ;X-20 Y-20 F{speed_travel} ;move Z up a bit and retract filament even more\nG28 X0 ;move X to min endstops, so the head is out of the way\nG90 ;Absolute positionning\nG1 Y200 F3000 ;Present print\nM84 ;steppers off\nM300 P300 S4000\nM117 Finished.\n" + "default_value": "M117 Cooling down...\nM104 S0 ; turn off extruder\nM84 ; disable motors\nM107 ; Fan off\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 ;X-20 Y-20 F{speed_travel} ;move Z up a bit and retract filament even more\nG28 X0 ;move X to min endstops, so the head is out of the way\nG90 ;Absolute positioning\nG1 Y200 F3000 ;Present print\nM84 ;steppers off\nM300 P300 S4000\nM117 Finished.\n" }, "machine_max_feedrate_x": { "value": 500 }, "machine_max_feedrate_y": { "value": 500 }, diff --git a/resources/definitions/bibo2_dual.def.json b/resources/definitions/bibo2_dual.def.json index b9b1164e9d..8c6dc4ec76 100644 --- a/resources/definitions/bibo2_dual.def.json +++ b/resources/definitions/bibo2_dual.def.json @@ -71,7 +71,7 @@ "default_value": "RepRap (Marlin/Sprinter)" }, "machine_start_gcode": { - "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z2.0 F400 ;move the platform down 15mm\nT0\nG92 E0\nG28\nG1 Y0 F1200 E0\nG92 E0\nM117 BIBO Printing..." + "default_value": "M104 T0 165\nM104 T1 165\nM109 T{initial_extruder_nr} S{material_print_temperature_layer_0, initial_extruder_nr}\nG21 ;metric values\nG90 ;absolute positioning\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z2.0 F400 ;move the platform down 2mm\nT0\nG92 E0\nG28\nG1 Y0 F1200 E0\nG92 E0\nT{initial_extruder_nr}\nM117 BIBO Printing..." }, "machine_end_gcode": { "default_value": ";End GCode\nM104 T0 S0 ;extruder heater off\nM104 T1 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91\nG1 Z1 F100 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-2 X-20 Y-20 F300 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning" diff --git a/resources/definitions/biqu_base.def.json b/resources/definitions/biqu_base.def.json index 1077b864b8..6beaa3b7a8 100755 --- a/resources/definitions/biqu_base.def.json +++ b/resources/definitions/biqu_base.def.json @@ -25,7 +25,7 @@ "overrides": { "machine_name": { "default_value": "BIQU Base Printer" }, "machine_start_gcode": { "default_value": "M201 X500.00 Y500.00 Z100.00 E5000.00 ;Setup machine max acceleration\nM203 X500.00 Y500.00 Z10.00 E50.00 ;Setup machine max feedrate\nM204 P500.00 R1000.00 T500.00 ;Setup Print/Retract/Travel acceleration\nM205 X8.00 Y8.00 Z0.40 E5.00 ;Setup Jerk\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\n\nG28 ;Home\n\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nG1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\n" }, - "machine_end_gcode": { "default_value": " ;BIQU Default End Gcode\nG91 ;Relative positioning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract a bit more and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z by 10mm\nG90 ;Return to absolute positionning\n\nG1 X0 Y{machine_depth} ;TaDaaaa\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z\n" }, + "machine_end_gcode": { "default_value": " ;BIQU Default End Gcode\nG91 ;Relative positioning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract a bit more and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z by 10mm\nG90 ;Return to absolute positioning\n\nG1 X0 Y{machine_depth} ;TaDaaaa\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z\n" }, "machine_max_feedrate_x": { "value": 500 }, "machine_max_feedrate_y": { "value": 500 }, diff --git a/resources/definitions/creality_base.def.json b/resources/definitions/creality_base.def.json index b56d2b7c06..892a0f9276 100644 --- a/resources/definitions/creality_base.def.json +++ b/resources/definitions/creality_base.def.json @@ -125,7 +125,7 @@ "overrides": { "machine_name": { "default_value": "Creawsome Base Printer" }, "machine_start_gcode": { "default_value": "M201 X500.00 Y500.00 Z100.00 E5000.00 ;Setup machine max acceleration\nM203 X500.00 Y500.00 Z10.00 E50.00 ;Setup machine max feedrate\nM204 P500.00 R1000.00 T500.00 ;Setup Print/Retract/Travel acceleration\nM205 X8.00 Y8.00 Z0.40 E5.00 ;Setup Jerk\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\n\nG28 ;Home\n\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nG1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\n" }, - "machine_end_gcode": { "default_value": "G91 ;Relative positioning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positionning\n\nG1 X0 Y{machine_depth} ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z\n" }, + "machine_end_gcode": { "default_value": "G91 ;Relative positioning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positioning\n\nG1 X0 Y{machine_depth} ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z\n" }, "machine_max_feedrate_x": { "value": 500 }, "machine_max_feedrate_y": { "value": 500 }, diff --git a/resources/definitions/creality_ender5.def.json b/resources/definitions/creality_ender5.def.json index 1b4be4d71f..896f532c81 100644 --- a/resources/definitions/creality_ender5.def.json +++ b/resources/definitions/creality_ender5.def.json @@ -4,7 +4,7 @@ "inherits": "creality_base", "overrides": { "machine_name": { "default_value": "Creality Ender-5" }, - "machine_end_gcode": { "default_value": "G91 ;Relative positioning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positionning\n\nG1 X0 Y0 ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z\n" }, + "machine_end_gcode": { "default_value": "G91 ;Relative positioning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positioning\n\nG1 X0 Y0 ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z\n" }, "machine_width": { "default_value": 220 }, "machine_depth": { "default_value": 220 }, "machine_height": { "default_value": 300 }, @@ -25,4 +25,4 @@ "quality_definition": "creality_base", "visible": true } -} \ No newline at end of file +} diff --git a/resources/definitions/eryone_er20.def.json b/resources/definitions/eryone_er20.def.json new file mode 100644 index 0000000000..236ef63188 --- /dev/null +++ b/resources/definitions/eryone_er20.def.json @@ -0,0 +1,241 @@ +{ + "version": 2, + "name": "Eryone ER20", + "inherits": "fdmprinter", + "metadata": { + "visible": true, + "author": "Eryone3d", + "manufacturer": "Eryone", + "file_formats": "text/x-gcode", + "platform": "eryone_er20_plateform.stl", + "has_machine_quality": true, + "preferred_quality_type": "high", + "machine_extruder_trains": + { + "0": "eryone_er20_extruder_0" + } + }, + + "overrides": { + "machine_name": { + "default_value": "Eryone ER20" + }, + "machine_heated_bed": { + "default_value": true + }, + "machine_width": { + "default_value": 250 + }, + "machine_height": { + "default_value": 200 + }, + "machine_depth": { + "default_value": 220 + }, + "machine_center_is_zero": { + "default_value": false + }, + "machine_gcode_flavor": { + "default_value": "RepRap (Marlin/Sprinter)" + }, + "machine_head_with_fans_polygon": { + "default_value": [ + [-10, -10], + [-10, 10], + [10, 10], + [10, -10] + ] + }, + "gantry_height":{ "value": "0" }, + "machine_start_gcode": { + "default_value": "G90 ; use absolute coordinates\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nG28 ; home all without mesh bed level\nG29 ; mesh bed leveling/ABL\nM104 S[first_layer_temperature] ; set extruder temp\nG92 E0.0\nG1 Y-2.0 X150 F2400G1 Z3 F720\nM109 S[first_layer_temperature] ; wait for extruder temp\nG1 X150 F1000\nG1 Z0.2 F720\nG1 X80.0 E8.0 F900\nG1 X20.0 E10.0 F700\nG92 E0.0\nM221 S95 ; set flow\n" + }, + "machine_end_gcode": { + "default_value": "M104 S0 ; turn off extruder\nM140 S0 ; turn off bed\nM84 ; disable motors\nM107\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 ;X-20 Y-20 F{speed_travel} ;move Z up a bit and retract filament even more\nG28 X0 ;Y0 ;move X/Y to min endstops, so the head is out of the way\nG1 Y180 F2000\nM84 ;steppers off\nG90\nM300 P300 S4000" + }, + "material_print_temperature": { + "value": 205 + }, + "material_print_temperature_layer_0": { + "value": 215 + }, + "material_initial_print_temperature": { + "value": 205 + }, + "material_final_print_temperature": { + "value": 205 + }, + "acceleration_enabled": { + "value": true + }, + "acceleration_travel": { + "value": 1800 + }, + "adhesion_type": { + "value": "'brim'" + }, + "brim_width": { + "value": 5 + }, + "cool_fan_full_at_height": { + "value": 0.5 + }, + "cool_fan_speed": { + "value": 100 + }, + "cool_fan_speed_0": { + "value": 100 + }, + "infill_overlap": { + "value": "25 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0", + "maximum_value_warning": 100, + "minimum_value_warning": -50 + }, + "infill_pattern": { + "value": "'grid'" + }, + "infill_sparse_density": { + "value": 20 + }, + "initial_layer_line_width_factor": { + "value": 105 + }, + "infill_before_walls": { + "value": false + }, + "material_bed_temperature": { + "value": 60 + }, + "material_bed_temperature_layer_0": { + "value": 65 + }, + "optimize_wall_printing_order": { + "default_value": true + }, + "retract_at_layer_change": { + "value": true + }, + "retraction_amount": { + "default_value": 4 + }, + "retraction_hop": { + "value": 0.075 + }, + "retraction_hop_enabled": { + "value": false + }, + "retraction_hop_only_when_collides": { + "value": true + }, + "retraction_min_travel": { + "value": 1.5 + }, + "retraction_speed": { + "default_value": 85, + "maximum_value_warning": 100 + }, + "retraction_retract_speed": { + "maximum_value_warning": 130 + }, + "retraction_prime_speed": { + "value": "math.ceil(retraction_speed * 0.4)", + "maximum_value_warning": 130 + }, + "retraction_combing": { + "value": "'noskin'" + }, + "skin_overlap": { + "value": 10 + }, + "skirt_brim_speed": { + "value": 40 + }, + "skirt_gap": { + "value": 5 + }, + "skirt_line_count": { + "value": 3 + }, + "speed_infill": { + "value": "speed_print" + }, + "speed_topbottom": { + "value": "math.ceil(speed_print * 20 / 50)" + }, + "speed_travel": { + "value": "150" + }, + "speed_layer_0": { + "value": "20" + }, + "speed_wall": { + "value": "speed_print" + }, + "speed_wall_0": { + "value": "math.ceil(speed_print * 30 / 50)" + }, + "speed_wall_x": { + "value": "speed_print" + }, + "support_angle": { + "value": 50 + }, + "support_enable": { + "default_value": false + }, + "support_interface_enable": { + "value": true + }, + "support_pattern": { + "value": "'triangles'" + }, + "support_roof_enable": { + "value": true + }, + "support_type": { + "value": "'everywhere'" + }, + "support_use_towers": { + "value": false + }, + "support_z_distance": { + "value": 0.3 + }, + "support_xy_distance": { + "value": 0.7 + }, + "support_xy_distance_overhang": { + "value": 0.2 + }, + "smooth_spiralized_contours": { + "value": false + }, + "travel_retract_before_outer_wall": { + "value": true + }, + "wall_line_count": { + "value": 3 + }, + "wall_thickness": { + "value": "1.2" + }, + "bottom_layers": { + "value": "4" + }, + "bottom_thickness":{ + "value": "layer_height * 4" + }, + "top_thickness":{ + "value": "layer_height * 5" + }, + "top_layers": { + "value": "5" + }, + "z_seam_type": { + "value": "'shortest'" + }, + "z_seam_corner": { + "value": "'z_seam_corner_inner'" + } + } +} diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index b4d6f4a44a..bb64e7f0dc 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -652,7 +652,7 @@ { "label": "Steps per Millimeter (X)", "description": "How many steps of the stepper motor will result in one millimeter of movement in the X direction.", - "type": "int", + "type": "float", "default_value": 50, "minimum_value": "0.0000001", "settable_per_mesh": false, @@ -662,7 +662,7 @@ { "label": "Steps per Millimeter (Y)", "description": "How many steps of the stepper motor will result in one millimeter of movement in the Y direction.", - "type": "int", + "type": "float", "default_value": 50, "minimum_value": "0.0000001", "settable_per_mesh": false, @@ -672,7 +672,7 @@ { "label": "Steps per Millimeter (Z)", "description": "How many steps of the stepper motor will result in one millimeter of movement in the Z direction.", - "type": "int", + "type": "float", "default_value": 50, "minimum_value": "0.0000001", "settable_per_mesh": false, @@ -682,7 +682,7 @@ { "label": "Steps per Millimeter (E)", "description": "How many steps of the stepper motors will result in one millimeter of extrusion.", - "type": "int", + "type": "float", "default_value": 1600, "minimum_value": "0.0000001", "settable_per_mesh": false, @@ -873,7 +873,7 @@ "default_value": 0.4, "type": "float", "value": "line_width", - "enabled": "resolveOrValue('adhesion_type') == 'skirt' or resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('prime_tower_brim_enable')", + "enabled": "resolveOrValue('adhesion_type') == 'skirt' or resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('prime_tower_brim_enable') or resolveOrValue('draft_shield_enabled') or resolveOrValue('ooze_shield_enabled')", "settable_per_mesh": false, "settable_per_extruder": true }, @@ -1230,7 +1230,7 @@ "description": "Connect top/bottom skin paths where they run next to each other. For the concentric pattern enabling this setting greatly reduces the travel time, but because the connections can happen midway over infill this feature can reduce the top surface quality.", "type": "bool", "default_value": false, - "enabled": "((top_layers > 0 or bottom_layers > 0) and top_bottom_pattern == 'concentric') or (roofing_layer_count > 0 and roofing_pattern == 'concentric')", + "enabled": "((top_layers > 0 or bottom_layers > 0) and top_bottom_pattern == 'concentric') or (initial_bottom_layers > 0 and top_bottom_pattern_0 == 'concentric') or (roofing_layer_count > 0 and roofing_pattern == 'concentric')", "limit_to_extruder": "top_bottom_extruder_nr", "settable_per_mesh": true }, @@ -2614,7 +2614,7 @@ "minimum_value": "5", "minimum_value_warning": "50", "maximum_value_warning": "150", - "enabled": "resolveOrValue('adhesion_type') == 'skirt' or resolveOrValue('adhesion_type') == 'brim'", + "enabled": "resolveOrValue('adhesion_type') == 'skirt' or resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('draft_shield_enabled') or resolveOrValue('ooze_shield_enabled')", "settable_per_mesh": false, "settable_per_extruder": true }, @@ -6161,7 +6161,7 @@ "infill_mesh_order": { "label": "Mesh Processing Rank", - "description": "Determines the priority of this mesh when considering multiple overlapping infill meshes. Areas where multiple infill meshes overlap will take on the settings of the mesh with the lowest rank. An infill mesh with a higher order will modify the infill of infill meshes with lower order and normal meshes.", + "description": "Determines the priority of this mesh when considering multiple overlapping infill meshes. Areas where multiple infill meshes overlap will take on the settings of the mesh with the highest rank. An infill mesh with a higher rank will modify the infill of infill meshes with lower rank and normal meshes.", "default_value": 0, "value": "1 if infill_mesh else 0", "minimum_value_warning": "1", diff --git a/resources/definitions/flyingbear_base.def.json b/resources/definitions/flyingbear_base.def.json index 79a0b6ea89..7205e25be4 100644 --- a/resources/definitions/flyingbear_base.def.json +++ b/resources/definitions/flyingbear_base.def.json @@ -152,7 +152,7 @@ "machine_start_gcode": { "default_value": "M220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\n\nG28 ;Home\n\n;Code for nozzle cleaning and flow normalization\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\nG1 X10.4 Y20 Z0.28 F5000.0\nG1 X10.4 Y170.0 Z0.28 F1500.0 E15\nG1 X10.1 Y170.0 Z0.28 F5000.0\nG1 X10.1 Y40 Z0.28 F1500.0 E30\n\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up" }, - "machine_end_gcode": { "default_value": "G91 ;Relative positioning\nG1 E-2 F2700 ;Retract the filament\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positionning\n\nG28 X0 Y0 ;Home X and Y\n\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z" }, + "machine_end_gcode": { "default_value": "G91 ;Relative positioning\nG1 E-2 F2700 ;Retract the filament\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positioning\n\nG28 X0 Y0 ;Home X and Y\n\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z" }, "machine_heated_bed": { "default_value": true }, "machine_shape": { "default_value": "rectangular" }, @@ -256,4 +256,4 @@ "adaptive_layer_height_variation": { "value": 0.04 }, "adaptive_layer_height_variation_step": { "value": 0.04 } } -} \ No newline at end of file +} diff --git a/resources/definitions/fusedform_300_doppia.def.json b/resources/definitions/fusedform_300_doppia.def.json index ed8fa719a6..6b13bc02ea 100644 --- a/resources/definitions/fusedform_300_doppia.def.json +++ b/resources/definitions/fusedform_300_doppia.def.json @@ -10,7 +10,7 @@ "overrides": { "machine_extruder_count": { "value": 2 }, "machine_name": { "default_value": "FF300 Doppia" }, - "machine_width": { "default_value": 320 }, + "machine_width": { "default_value": 360 }, "machine_depth": { "default_value": 300 }, "machine_height": { "default_value": 320 }, "machine_max_feedrate_x": { "default_value": 100 }, diff --git a/resources/definitions/fusedform_600plus_doppia.def.json b/resources/definitions/fusedform_600plus_doppia.def.json index 18959e8084..de3889c1a8 100644 --- a/resources/definitions/fusedform_600plus_doppia.def.json +++ b/resources/definitions/fusedform_600plus_doppia.def.json @@ -25,6 +25,9 @@ "machine_max_jerk_z": { "default_value": 0.3 }, "machine_max_jerk_e": { "default_value": 5 }, "acceleration_travel": {"value":900} + + + } } diff --git a/resources/definitions/fusedform_base.def.json b/resources/definitions/fusedform_base.def.json index b68ab1a449..24b841f704 100644 --- a/resources/definitions/fusedform_base.def.json +++ b/resources/definitions/fusedform_base.def.json @@ -54,7 +54,7 @@ "retraction_amount": { "default_value": 4 }, "retraction_speed": { "default_value": 70}, "retraction_min_travel": {"value":5 }, - "retraction_count_max": {"value":10 }, + "retraction_count_max": {"default_value":10 }, "retraction_extrusion_window": {"value":4 }, "retraction_hop": {"default_value":0.2}, "retraction_hop_enabled": {"value":true}, diff --git a/resources/definitions/fusedform_doppia_base.def.json b/resources/definitions/fusedform_doppia_base.def.json index 7513ea9fb4..ddee568e28 100644 --- a/resources/definitions/fusedform_doppia_base.def.json +++ b/resources/definitions/fusedform_doppia_base.def.json @@ -54,7 +54,7 @@ "retraction_amount": { "default_value": 4 }, "retraction_speed": { "default_value": 70}, "retraction_min_travel": {"value":5 }, - "retraction_count_max": {"value":10 }, + "retraction_count_max": {"default_value":10 }, "retraction_extrusion_window": {"value":4 }, "retraction_hop": {"default_value":0.2}, "retraction_hop_enabled": {"value":true}, @@ -77,7 +77,9 @@ "support_xy_distance": {"value": 0.5}, "support_z_distance": {"value": 0.3 }, + "adhesion_type": {"default_value":"skirt"}, - "adhesion_type": {"default_value":"skirt"} + "switch_extruder_retraction_amount": { "value": 6 }, + "switch_extruder_retraction_speeds": { "value": 60 } } } diff --git a/resources/definitions/lotmaxx_sc60.def.json b/resources/definitions/lotmaxx_sc60.def.json index abbf68d75a..a18e197757 100644 --- a/resources/definitions/lotmaxx_sc60.def.json +++ b/resources/definitions/lotmaxx_sc60.def.json @@ -20,7 +20,7 @@ "default_value":"G28 ;Home\nG92 E0 ;Reset Extruder\nG1 Z4.0 F3000 ;Move Z Axis up\nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nG1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\n" }, "machine_end_gcode":{ - "default_value":"G91 ;Relative positionning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positionning\n\nG1 X0 Y{machine_depth} ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z\n" + "default_value":"G91 ;Relative positioning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positioning\n\nG1 X0 Y{machine_depth} ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z\n" }, "acceleration_print":{"value":1000}, "acceleration_travel":{"value":1000}, diff --git a/resources/definitions/maker_made_300x.def.json b/resources/definitions/maker_made_300x.def.json new file mode 100644 index 0000000000..9651aaf5f3 --- /dev/null +++ b/resources/definitions/maker_made_300x.def.json @@ -0,0 +1,150 @@ +{ + "version": 2, + "name": "Maker Made 300x", + "inherits": "fdmprinter", + "metadata": { + "visible": true, + "author": "DragonJe", + "manufacturer": "Maker Made", + "file_formats": "text/x-gcode", + "platform_offset": [0, 0, 0], + "has_materials": true, + "has_variants": false, + "preferred_quality_type": "normal", + "has_machine_quality": false, + "preferred_material": "generic_pla", + "machine_extruder_trains": + { + "0": "maker_made_300x_extruder_0" + } + }, + + "overrides": { + "machine_name": {"default_value": "Maker Made 300x"}, + "machine_width": {"default_value": 300}, + "machine_height": {"default_value": 400}, + "machine_depth": {"default_value": 300}, + "machine_head_with_fans_polygon": {"default_value": [[-30, 34],[-30, -32],[30, -32],[30, 34]]}, + "gantry_height": {"value": "30"}, + "machine_heated_bed": {"default_value": true}, + "material_diameter": {"default_value": 1.75}, + "machine_gcode_flavor": {"default_value": " RepRap (Marlin/Sprinter)"}, + "machine_start_gcode": {"default_value": "G28 ;Home\n G29 ;Auto Level\n G92 E0 ;Reset Extruder\n G1 Z5.0 F3000 ;Move Z Axis up\n G1 X25 Y295.0 Z0.28 F3000.0 ;Move to extrude\n G1 X250 Y295.0 Z0.28 F1500.0 E15 ;Draw the first line\n G1 X25 Y290.0 Z0.28 F3000.0 ;Move to side a little\n G1 X250 Y290.0 Z0.28 F1500.0 E30 ;Draw the second line\n G92 E0 ;Reset Extruder\n G1 Z5.0 F3000 ;Move Z Axis up" }, + "machine_end_gcode": {"default_value": "M104 S0\n M140 S0\n ;Retract the filament\n G92 E1\n G1 E-1 F300\n G28 X0 Y0\n G1 Y300 F3000 ;Move bed forward\n M84" }, + + "layer_height": {"value": 0.16}, + "layer_height_0": {"value": 0.32}, + "line_width": {"value": 0.4}, + "wall_line_width_0": {"value": 0.4}, + "initial_layer_line_width_factor": {"value": 100}, + "wall_thickness": {"value": 0.8}, + "wall_0_wipe_dist": {"value": 0.2}, + "roofing_layer_count": {"value": 1}, + "top_bottom_thickness": {"value": 0.6}, + "top_thickness": {"value": 0.8}, + "top_layers": {"value": 5}, + "bottom_thickness": {"value": 0.6}, + "bottom_layers": {"value": 3}, + "top_bottom_pattern": {"value": "'lines'" }, + "top_bottom_pattern_0": {"value": "'lines'" }, + "wall_0_inset": {"value": 0}, + "optimize_wall_printing_order": {"value": false }, + "outer_inset_first": {"value": false }, + "alternate_extra_perimeter": {"value": false }, + "travel_compensate_overlapping_walls_enabled": {"value": true }, + "travel_compensate_overlapping_walls_0_enabled": {"value": true }, + "travel_compensate_overlapping_walls_x_enabled": {"value": true }, + "wall_min_flow": {"value": 0}, + "fill_perimeter_gaps": {"value": "'everywhere'" }, + "filter_out_tiny_gaps": {"value": true }, + "fill_outline_gaps": {"value": true }, + "xy_offset": {"value": 0}, + "skin_no_small_gaps_heuristic": {"value": true }, + "skin_outline_count": {"value": 1}, + "ironing_enabled": {"value": false }, + "infill_sparse_density": {"value": 20 }, + "zig_zaggify_infill": {"value": false }, + "infill_multiplier": {"value": 1}, + "infill_wall_line_count": {"value": 0}, + "infill_overlap": {"value": 10}, + "skin_overlap": {"value": 5}, + "infill_wipe_dist": {"value": 0.1}, + "gradual_infill_steps": {"value": 0}, + "infill_before_walls": {"value": false }, + "infill_support_enabled": {"value": false }, + "max_skin_angle_for_expansion": {"value": 90}, + "default_material_print_temperature": {"value": 220}, + "material_print_temperature": {"value": 220}, + "material_print_temperature_layer_0": {"value": 220}, + "material_initial_print_temperature": {"value": 220}, + "material_final_print_temperature": {"value": 220}, + "default_material_bed_temperature": {"value": 50}, + "material_bed_temperature": {"value": 50}, + "material_flow": {"value": 100}, + "retraction_enable": {"value": true }, + "retract_at_layer_change": {"value": false }, + "retraction_amount": {"value": 5}, + "retraction_speed": {"value": 45}, + "retraction_extra_prime_amount": {"value": 0}, + "retraction_min_travel": {"value": 0.8}, + "retraction_count_max": {"value": 90}, + "retraction_extrusion_window": {"value": 5}, + "limit_support_retractions": {"value": true }, + "switch_extruder_retraction_amount": {"value": 16}, + "switch_extruder_retraction_speeds": {"value": 20}, + "speed_print": {"value": 50}, + "speed_travel": {"value": 150}, + "speed_layer_0": {"value": 10}, + "speed_travel_layer_0": {"value": 50}, + "machine_max_feedrate_z": {"value": 0}, + "speed_slowdown_layers": {"value": 2}, + "speed_equalize_flow_enabled": {"value": false }, + "acceleration_enabled": {"value": false }, + "acceleration_roofing": {"value": 3000 }, + "jerk_enabled": {"value": false }, + "retraction_combing": {"value": "'within infill'" }, + "travel_retract_before_outer_wall": {"value": false }, + "travel_avoid_other_parts": {"value": true }, + "retraction_hop_enabled": {"value": false }, + "cool_fan_enabled": {"value": true }, + "cool_fan_speed": {"value": 100}, + "cool_fan_speed_0": {"value": 0}, + "cool_fan_full_at_height": {"value": 0.32 }, + "cool_lift_head": {"value": false }, + "support_enable": {"value": true }, + "support_type": {"value": "'everywhere'" }, + "support_angle": {"value": "50"}, + "support_pattern": {"value": "'grid'"}, + "support_wall_count": {"value": 0}, + "zig_zaggify_support": {"value": false }, + "support_infill_rate": {"value": "15 if support_enable else 0"}, + "support_brim_enable": {"value": true }, + "support_brim_line_count": {"value": 5}, + "support_z_distance": {"value": 0.2}, + "support_xy_distance": {"value": 0.7}, + "support_xy_distance_overhang": {"value": 0.2}, + "support_bottom_stair_step_height": {"value": 0.3}, + "support_bottom_stair_step_width": {"value": 5.0}, + "support_join_distance": {"value": 2.0}, + "support_offset": {"value": 0.2}, + "gradual_support_infill_steps": {"value": 0}, + "support_roof_enable": {"value": true }, + "support_bottom_enable": {"value": false }, + "support_roof_height": {"value": 0.45}, + "support_roof_density": {"value": 45}, + "support_roof_pattern": {"value": "'lines'" }, + "support_fan_enable": {"value": false }, + "support_use_towers": {"value": true }, + "support_tower_diameter": {"value": 3}, + "support_tower_roof_angle": {"value": "65"}, + "adhesion_type": {"value": "'skirt'"}, + "skirt_line_count": {"value": 2}, + "skirt_gap": {"value": 3}, + "meshfix_union_all": {"value": true }, + "meshfix_union_all_remove_holes": {"value": false }, + "meshfix_extensive_stitching": {"value": false }, + "meshfix_keep_open_polygons": {"value": false }, + "multiple_mesh_overlap": {"value": "0.16"}, + "carve_multiple_volumes": {"value": false } + } +} diff --git a/resources/definitions/mingda_base.def.json b/resources/definitions/mingda_base.def.json new file mode 100644 index 0000000000..a7daa76d97 --- /dev/null +++ b/resources/definitions/mingda_base.def.json @@ -0,0 +1,264 @@ +{ + "name": "MINGDA Base Printer", + "version": 2, + "inherits": "fdmprinter", + "metadata": { + "visible": false, + "author": "cataclism", + "manufacturer": "MINGDA", + "file_formats": "text/x-gcode", + "first_start_actions": ["MachineSettingsAction"], + + "machine_extruder_trains": { + "0": "mingda_base_extruder_0" + }, + + "has_materials": true, + "has_variants": true, + "has_machine_quality": true, + "variants_name": "Nozzle Size", + + "preferred_variant_name": "0.4mm Nozzle", + "preferred_quality_type": "standard", + "preferred_material": "generic_pla", + "exclude_materials": [ + "Vertex_Delta_ABS", + "Vertex_Delta_PET", + "Vertex_Delta_PLA", + "Vertex_Delta_TPU", + "chromatik_pla", + "dsm_arnitel2045_175", + "dsm_novamid1070_175", + "fabtotum_abs", + "fabtotum_nylon", + "fabtotum_pla", + "fabtotum_tpu", + "fiberlogy_hd_pla", + "filo3d_pla", + "filo3d_pla_green", + "filo3d_pla_red", + "generic_bam", + "generic_cffcpe", + "generic_cffpa", + "generic_cpe", + "generic_cpe_plus", + "generic_gffcpe", + "generic_gffpa", + "generic_hips", + "generic_nylon", + "generic_pc", + "generic_pp", + "generic_pva", + "generic_tough_pla", + "imade3d_petg_green", + "imade3d_petg_pink", + "imade3d_pla_green", + "imade3d_pla_pink", + "innofill_innoflex60_175", + "octofiber_pla", + "polyflex_pla", + "polymax_pla", + "polyplus_pla", + "polywood_pla", + "structur3d_dap100silicone", + "tizyx_abs", + "tizyx_pla", + "tizyx_pla_bois", + "ultimaker_abs_black", + "ultimaker_abs_blue", + "ultimaker_abs_green", + "ultimaker_abs_grey", + "ultimaker_abs_orange", + "ultimaker_abs_pearl-gold", + "ultimaker_abs_red", + "ultimaker_abs_silver-metallic", + "ultimaker_abs_white", + "ultimaker_abs_yellow", + "ultimaker_bam", + "ultimaker_cpe_black", + "ultimaker_cpe_blue", + "ultimaker_cpe_dark-grey", + "ultimaker_cpe_green", + "ultimaker_cpe_light-grey", + "ultimaker_cpe_plus_black", + "ultimaker_cpe_plus_transparent", + "ultimaker_cpe_plus_white", + "ultimaker_cpe_red", + "ultimaker_cpe_transparent", + "ultimaker_cpe_white", + "ultimaker_cpe_yellow", + "ultimaker_nylon_black", + "ultimaker_nylon_transparent", + "ultimaker_pc_black", + "ultimaker_pc_transparent", + "ultimaker_pc_white", + "ultimaker_pla_black", + "ultimaker_pla_blue", + "ultimaker_pla_green", + "ultimaker_pla_magenta", + "ultimaker_pla_orange", + "ultimaker_pla_pearl-white", + "ultimaker_pla_red", + "ultimaker_pla_silver-metallic", + "ultimaker_pla_transparent", + "ultimaker_pla_white", + "ultimaker_pla_yellow", + "ultimaker_pp_transparent", + "ultimaker_pva", + "ultimaker_tough_pla_black", + "ultimaker_tough_pla_green", + "ultimaker_tough_pla_red", + "ultimaker_tough_pla_white", + "ultimaker_tpu_black", + "ultimaker_tpu_blue", + "ultimaker_tpu_red", + "ultimaker_tpu_white", + "verbatim_bvoh_175", + "zyyx_pro_flex", + "zyyx_pro_pla" + ] + }, + "overrides": { + "machine_name": { "default_value": "MINGDA Base Printer" }, + "machine_start_gcode": { "default_value": "G28 ; home all axes\n M117 Purge extruder\n G92 E0 ; reset extruder\n G1 Z1.0 F3000 ; move z up little to prevent scratching of surface\n G1 X2 Y20 Z0.3 F5000.0 ; move to start-line position\n G1 X2 Y200.0 Z0.3 F1500.0 E15 ; draw 1st line\n G1 X2 Y200.0 Z0.4 F5000.0 ; move to side a little\n G1 X2 Y20 Z0.4 F1500.0 E30 ; draw 2nd line\n G92 E0 ; reset extruder\n G1 Z1.0 F3000 ; move z up little to prevent scratching of surface"}, + "machine_end_gcode": { "default_value": "G91; relative positioning\n G1 Z1.0 F3000 ; move z up little to prevent scratching of print\n G90; absolute positioning\n G1 X0 Y200 F1000 ; prepare for part removal\n M104 S0; turn off extruder\n M140 S0 ; turn off bed\n G1 X0 Y300 F1000 ; prepare for part removal\n M84 ; disable motors\n M106 S0 ; turn off fan" }, + + "machine_max_feedrate_x": { "value": 500 }, + "machine_max_feedrate_y": { "value": 500 }, + "machine_max_feedrate_z": { "value": 10 }, + "machine_max_feedrate_e": { "value": 50 }, + + "machine_max_acceleration_x": { "value": 500 }, + "machine_max_acceleration_y": { "value": 500 }, + "machine_max_acceleration_z": { "value": 100 }, + "machine_max_acceleration_e": { "value": 5000 }, + "machine_acceleration": { "value": 500 }, + + "machine_max_jerk_xy": { "value": 10 }, + "machine_max_jerk_z": { "value": 0.4 }, + "machine_max_jerk_e": { "value": 5 }, + + "machine_heated_bed": { "default_value": true }, + + "material_diameter": { "default_value": 1.75 }, + + "acceleration_print": { "value": 500 }, + "acceleration_travel": { "value": 500 }, + "acceleration_travel_layer_0": { "value": "acceleration_travel" }, + "acceleration_roofing": { "enabled": "acceleration_enabled and roofing_layer_count > 0 and top_layers > 0" }, + + "jerk_print": { "value": 8 }, + "jerk_travel": { "value": "jerk_print" }, + "jerk_travel_layer_0": { "value": "jerk_travel" }, + + "acceleration_enabled": { "value": false }, + "jerk_enabled": { "value": false }, + + "speed_print": { "value": 60.0 } , + "speed_infill": { "value": "speed_print" }, + "speed_wall": { "value": "speed_print / 2" }, + "speed_wall_0": { "value": "speed_wall" }, + "speed_wall_x": { "value": "speed_wall" }, + "speed_topbottom": { "value": "speed_print / 2" }, + "speed_roofing": { "value": "speed_topbottom" }, + "speed_travel": { "value": "150.0 if speed_print < 60 else 250.0 if speed_print > 100 else speed_print * 2.5" }, + "speed_layer_0": { "value": 20.0 }, + "speed_print_layer_0": { "value": "speed_layer_0" }, + "speed_travel_layer_0": { "value": "100 if speed_layer_0 < 20 else 150 if speed_layer_0 > 30 else speed_layer_0 * 5" }, + "speed_prime_tower": { "value": "speed_topbottom" }, + "speed_support": { "value": "speed_wall_0" }, + "speed_support_interface": { "value": "speed_topbottom" }, + "speed_z_hop": { "value": 5 }, + + "skirt_brim_speed": { "value": "speed_layer_0" }, + + "line_width": { "value": "machine_nozzle_size * 1.1" }, + + "optimize_wall_printing_order": { "value": true }, + + "material_initial_print_temperature": { "value": "material_print_temperature" }, + "material_final_print_temperature": { "value": "material_print_temperature" }, + "material_flow": { "value": 100 }, + "travel_compensate_overlapping_walls_0_enabled": { "value": false }, + + "z_seam_type": { "value": "'back'" }, + "z_seam_corner": { "value": "'z_seam_corner_none'" }, + + "infill_sparse_density": { "value": "15" }, + "infill_pattern": { "value": "'lines' if infill_sparse_density > 50 else 'cubic'" }, + "infill_before_walls": { "value": false }, + "infill_overlap": { "value": 30.0 }, + "skin_overlap": { "value": 10.0 }, + "infill_wipe_dist": { "value": 0.0 }, + "wall_0_wipe_dist": { "value": 0.0 }, + + "fill_perimeter_gaps": { "value": "'everywhere'" }, + "fill_outline_gaps": { "value": false }, + "filter_out_tiny_gaps": { "value": false }, + + "retraction_speed": { + "maximum_value_warning": "machine_max_feedrate_e if retraction_enable else float('inf')", + "maximum_value": 200 + }, + "retraction_retract_speed": { + "maximum_value_warning": "machine_max_feedrate_e if retraction_enable else float('inf')", + "maximum_value": 200 + }, + "retraction_prime_speed": { + "maximum_value_warning": "machine_max_feedrate_e if retraction_enable else float('inf')", + "maximum_value": 200 + }, + + "retraction_hop_enabled": { "value": true }, + "retraction_hop": { "value": "layer_height*2" }, + "retraction_combing": { "value": "'off' if retraction_hop_enabled else 'infill'" }, + "retraction_combing_max_distance": { "value": 30 }, + "travel_avoid_other_parts": { "value": true }, + "travel_avoid_supports": { "value": true }, + "travel_retract_before_outer_wall": { "value": true }, + + "retraction_amount": { "value": 2 }, + "retraction_enable": { "value": true }, + "retraction_count_max": { "value": 100 }, + "retraction_extrusion_window": { "value": 10 }, + "retraction_min_travel": { "value": 1.5 }, + + "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, + "cool_fan_enabled": { "value": true }, + "cool_min_layer_time": { "value": 10 }, + + "adhesion_type": { "value": "'none' if support_enable else 'skirt'" }, + "brim_replaces_support": { "value": false }, + "skirt_gap": { "value": 10.0 }, + "skirt_line_count": { "value": 4 }, + + "adaptive_layer_height_variation": { "value": 0.04 }, + "adaptive_layer_height_variation_step": { "value": 0.04 }, + + "meshfix_maximum_resolution": { "value": "0.05" }, + "meshfix_maximum_travel_resolution": { "value": "meshfix_maximum_resolution" }, + + "support_angle": { "value": "math.floor(math.degrees(math.atan(line_width / 2.0 / layer_height)))" }, + "support_pattern": { "value": "'zigzag'" }, + "support_infill_rate": { "value": "0 if support_enable and support_structure == 'tree' else 20" }, + "support_use_towers": { "value": false }, + "support_xy_distance": { "value": "wall_line_width_0 * 2" }, + "support_xy_distance_overhang": { "value": "wall_line_width_0" }, + "support_z_distance": { "value": "layer_height if layer_height >= 0.16 else layer_height * 2" }, + "support_xy_overrides_z": { "value": "'xy_overrides_z'" }, + "support_wall_count": { "value": 1 }, + "support_brim_enable": { "value": true }, + "support_brim_width": { "value": 4 }, + + "support_interface_enable": { "value": true }, + "support_interface_height": { "value": "layer_height * 4" }, + "support_interface_density": { "value": 33.333 }, + "support_interface_pattern": { "value": "'grid'" }, + "support_interface_skip_height": { "value": 0.2 }, + "minimum_support_area": { "value": 2 }, + "minimum_interface_area": { "value": 10 }, + "top_bottom_thickness": {"value": "layer_height_0 + layer_height * 3" }, + "wall_thickness": {"value": "line_width * 2" } + + } +} diff --git a/resources/definitions/mingda_d2.def.json b/resources/definitions/mingda_d2.def.json new file mode 100644 index 0000000000..a20ff53db1 --- /dev/null +++ b/resources/definitions/mingda_d2.def.json @@ -0,0 +1,19 @@ +{ + "name": "MINGDA D2", + "version": 2, + "inherits": "mingda_base", + "overrides": { + "machine_name": { "default_value": "MINGDA D2" }, + "machine_width": { "default_value": 230 }, + "machine_depth": { "default_value": 230 }, + "machine_height": { "default_value": 260 }, + "gantry_height": { "value": 25 } + + }, + "metadata": { + "quality_definition": "mingda_base", + "visible": true, + "platform": "mingda_d2_base.stl", + "platform_offset": [ -205, -77, 65] + } +} diff --git a/resources/definitions/snapmaker2.def.json b/resources/definitions/snapmaker2.def.json new file mode 100644 index 0000000000..e4ad7e19df --- /dev/null +++ b/resources/definitions/snapmaker2.def.json @@ -0,0 +1,77 @@ +{ + "version": 2, + "name": "Snapmaker 2", + "inherits": "fdmprinter", + "metadata": { + "visible": false, + "manufacturer": "Snapmaker", + "file_formats": "text/x-gcode", + "machine_extruder_trains": { + "0": "snapmaker_extruder_0" + }, + "has_materials": true, + "has_machine_quality": true, + "preferred_quality_type": "normal", + "preferred_material": "generic_pla", + "exclude_materials": [ ] + }, + "overrides": { + "machine_name": { + "default_value": "Snapmaker" + }, + "machine_buildplate_type": { + "default_value": "aluminum" + }, + "machine_heated_bed": { + "default_value": true + }, + "machine_start_gcode": { + "default_value": "M104 S{material_print_temperature} ;Set Hotend Temperature\nM140 S{material_bed_temperature} ;Set Bed Temperature\nG28 ;home\nG90 ;absolute positioning\nG1 X-10 Y-10 F3000 ;Move to corner \nG1 Z0 F1800 ;Go to zero offset\nM109 S{material_print_temperature} ;Wait for Hotend Temperature\nM190 S{material_bed_temperature} ;Wait for Bed Temperature\nG92 E0 ;Zero set extruder position\nG1 E20 F200 ;Feed filament to clear nozzle\nG92 E0 ;Zero set extruder position" + }, + "machine_end_gcode": { + "default_value": "M104 S0 ;Extruder heater off\nM140 S0 ;Heated bed heater off\nG90 ;absolute positioning\nG92 E0 ;Retract the filament\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z{machine_width} E-1 F3000 ;move Z up a bit and retract filament even more\nG1 X0 F3000 ;move X to min endstops, so the head is out of the way\nG1 Y{machine_depth} F3000 ;so the head is out of the way and Plate is moved forward" + }, + "machine_nozzle_size": { + "default_value": 0.4 + }, + "material_diameter": { + "default_value": 1.75 + }, + "machine_max_acceleration_x": { + "default_value": 1000 + }, + "machine_max_acceleration_y": { + "default_value": 1000 + }, + "machine_max_acceleration_z": { + "default_value": 1000 + }, + "machine_max_acceleration_e": { + "default_value": 1000 + }, + "machine_acceleration": { + "default_value": 1000 + }, + "material_print_temp_prepend": { + "default_value": false + }, + "material_bed_temp_prepend": { + "default_value": false + }, + "default_material_print_temperature": { + "default_value": 205 + }, + "retraction_enable": { + "default_value": true + }, + "retraction_amount": { + "default_value": 5 + }, + "retraction_speed": { + "default_value": 60 + }, + "retract_at_layer_change": { + "default_value": false + } + } +} diff --git a/resources/definitions/snapmaker2_A150.def.json b/resources/definitions/snapmaker2_A150.def.json new file mode 100644 index 0000000000..8baea05016 --- /dev/null +++ b/resources/definitions/snapmaker2_A150.def.json @@ -0,0 +1,39 @@ +{ + "version": 2, + "name": "Snapmaker 2 A150", + "inherits": "snapmaker2", + "metadata": { + "visible": true, + "manufacturer": "Snapmaker", + "file_formats": "text/x-gcode", + "machine_extruder_trains": { + "0": "snapmaker_extruder_0" + }, + "quality_definition": "snapmaker2" + }, + "overrides": { + "machine_name": { + "default_value": "Snapmaker A150" + }, + "machine_width": { + "default_value": 160 + }, + "machine_depth": { + "default_value": 160 + }, + "machine_height": { + "default_value": 145 + }, + "machine_head_with_fans_polygon": { + "default_value": [ + [-67, 22], + [-67, -25], + [25.5, 22], + [25.5, -25] + ] + }, + "gantry_height": { + "value": 27 + } + } +} diff --git a/resources/definitions/snapmaker2_A250.def.json b/resources/definitions/snapmaker2_A250.def.json new file mode 100644 index 0000000000..a61d52c46f --- /dev/null +++ b/resources/definitions/snapmaker2_A250.def.json @@ -0,0 +1,39 @@ +{ + "version": 2, + "name": "Snapmaker 2 A250", + "inherits": "snapmaker2", + "metadata": { + "visible": true, + "manufacturer": "Snapmaker", + "file_formats": "text/x-gcode", + "machine_extruder_trains": { + "0": "snapmaker_extruder_0" + }, + "quality_definition": "snapmaker2" + }, + "overrides": { + "machine_name": { + "default_value": "Snapmaker A250" + }, + "machine_width": { + "default_value": 230 + }, + "machine_depth": { + "default_value": 250 + }, + "machine_height": { + "default_value": 235 + }, + "machine_head_with_fans_polygon": { + "default_value": [ + [-67, 22], + [-67, -25], + [25.5, 22], + [25.5, -25] + ] + }, + "gantry_height": { + "value": 27 + } + } +} diff --git a/resources/definitions/snapmaker2_A350.def.json b/resources/definitions/snapmaker2_A350.def.json new file mode 100644 index 0000000000..944e9ebc3b --- /dev/null +++ b/resources/definitions/snapmaker2_A350.def.json @@ -0,0 +1,39 @@ +{ + "version": 2, + "name": "Snapmaker 2 A350", + "inherits": "snapmaker2", + "metadata": { + "visible": true, + "manufacturer": "Snapmaker", + "file_formats": "text/x-gcode", + "machine_extruder_trains": { + "0": "snapmaker_extruder_0" + }, + "quality_definition": "snapmaker2" + }, + "overrides": { + "machine_name": { + "default_value": "Snapmaker A350" + }, + "machine_width": { + "default_value": 320 + }, + "machine_depth": { + "default_value": 350 + }, + "machine_height": { + "default_value": 330 + }, + "machine_head_with_fans_polygon": { + "default_value": [ + [-67, 22], + [-67, -25], + [25.5, 22], + [25.5, -25] + ] + }, + "gantry_height": { + "value": 27 + } + } +} diff --git a/resources/definitions/twotrees_bluer.def.json b/resources/definitions/twotrees_bluer.def.json index a272527e6e..8cf7d804cf 100644 --- a/resources/definitions/twotrees_bluer.def.json +++ b/resources/definitions/twotrees_bluer.def.json @@ -30,7 +30,7 @@ ] }, "machine_start_gcode": { "default_value": "; Two Trees Bluer Custom Start G-code\nG28 ;Home\nG92 E0 ;Reset Extruder\nG1 Z4.0 F3000 ;Move Z Axis up\nG1 E10 F1500 ;Purge a bit\nG1 X10.1 Y20 Z0.2 F5000.0 ;Move to start position\nG1 X10.1 Y200.0 Z0.2 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y200.0 Z0.2 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.2 F1500.0 E20 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 Z3.0 X20 Y20 F3000 ;Move Z Axis up\nG1 E3 F2700 ;Purge a bit" }, - "machine_end_gcode": { "default_value": "; Two Trees Bluer Custom End G-code\nG91 ;Relative positioning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positionning\nG1 X0 Y{machine_depth} ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\nM84 X Y E ;Disable all steppers but Z" }, + "machine_end_gcode": { "default_value": "; Two Trees Bluer Custom End G-code\nG91 ;Relative positioning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positioning\nG1 X0 Y{machine_depth} ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\nM84 X Y E ;Disable all steppers but Z" }, "gantry_height": { "value": 25 } } } diff --git a/resources/extruders/eryone_er20_extruder_0.def.json b/resources/extruders/eryone_er20_extruder_0.def.json new file mode 100644 index 0000000000..9b1c1fa435 --- /dev/null +++ b/resources/extruders/eryone_er20_extruder_0.def.json @@ -0,0 +1,27 @@ +{ + "version": 2, + "name": "Extruder 1", + "inherits": "fdmextruder", + "metadata": { + "machine": "eryone_er20", + "position": "0" + }, + + "overrides": { + "extruder_nr": { + "default_value": 0 + }, + "machine_nozzle_size": { + "default_value": 0.4 + }, + "material_diameter": { + "default_value": 1.75 + }, + "machine_nozzle_offset_x": { + "default_value": -10.0 + }, + "machine_nozzle_offset_y": { + "default_value": 8.0 + } + } +} diff --git a/resources/extruders/maker_made_300x_extruder_0.def.json b/resources/extruders/maker_made_300x_extruder_0.def.json new file mode 100644 index 0000000000..a35c47b395 --- /dev/null +++ b/resources/extruders/maker_made_300x_extruder_0.def.json @@ -0,0 +1,15 @@ +{ + "name": "Extruder 1", + "version": 2, + "inherits": "fdmextruder", + "metadata": { + "machine": "maker_made_300x", + "position": "0" + }, + + "overrides": { + "extruder_nr": { "default_value": 0 }, + "machine_nozzle_size": { "default_value": 0.4 }, + "material_diameter": { "default_value": 1.75 } + } +} diff --git a/resources/extruders/mingda_base_extruder_0.def.json b/resources/extruders/mingda_base_extruder_0.def.json new file mode 100644 index 0000000000..034f6ce45f --- /dev/null +++ b/resources/extruders/mingda_base_extruder_0.def.json @@ -0,0 +1,16 @@ +{ + "version": 2, + "name": "Extruder 1", + "inherits": "fdmextruder", + "metadata": { + "machine": "mingda_base", + "position": "0" + }, + + "overrides": { + "extruder_nr": { "default_value": 0 }, + "machine_nozzle_size": { "default_value": 0.4 }, + "material_diameter": { "default_value": 1.75 } + + } +} diff --git a/resources/extruders/snapmaker_extruder_0.def.json b/resources/extruders/snapmaker_extruder_0.def.json new file mode 100644 index 0000000000..c9b69703a7 --- /dev/null +++ b/resources/extruders/snapmaker_extruder_0.def.json @@ -0,0 +1,20 @@ +{ + "name": "Extruder 1", + "version": 2, + "inherits": "fdmextruder", + "metadata": { + "machine": "snapmaker2", + "position": "0" + }, + "overrides": { + "extruder_nr": { + "default_value": 0 + }, + "machine_nozzle_size": { + "default_value": 0.4 + }, + "material_diameter": { + "default_value": 1.75 + } + } +} diff --git a/resources/meshes/eryone_er20_plateform.stl b/resources/meshes/eryone_er20_plateform.stl new file mode 100644 index 0000000000..a181d0f37e Binary files /dev/null and b/resources/meshes/eryone_er20_plateform.stl differ diff --git a/resources/meshes/mingda_d2_base.stl b/resources/meshes/mingda_d2_base.stl new file mode 100644 index 0000000000..025900f243 Binary files /dev/null and b/resources/meshes/mingda_d2_base.stl differ diff --git a/resources/qml/Actions.qml b/resources/qml/Actions.qml index c62b0cb89a..78c4958598 100644 --- a/resources/qml/Actions.qml +++ b/resources/qml/Actions.qml @@ -416,9 +416,13 @@ Item Action { id: openAction; + property var fileProviderModel: CuraApplication.getFileProviderModel() + text: catalog.i18nc("@action:inmenu menubar:file","&Open File(s)..."); iconName: "document-open"; - shortcut: StandardKey.Open; + // Unassign the shortcut when there are more than one file providers, since then the file provider's shortcut is + // enabled instead, and Ctrl+O is assigned to the local file provider + shortcut: fileProviderModel.count == 1 ? StandardKey.Open : ""; } Action diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 9f24d91caf..bb7b5ac19c 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2020 Ultimaker B.V. +// Copyright (c) 2021 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.7 @@ -149,15 +149,6 @@ UM.MainWindow id: backgroundItem anchors.fill: parent - signal hasMesh(string name) //this signal sends the filebase name so it can be used for the JobSpecs.qml - function getMeshName(path) - { - //takes the path the complete path of the meshname and returns only the filebase - var fileName = path.slice(path.lastIndexOf("/") + 1) - var fileBase = fileName.slice(0, fileName.indexOf(".")) - return fileBase - } - //DeleteSelection on the keypress backspace event Keys.onPressed: { diff --git a/resources/qml/Dialogs/AskOpenAsProjectOrModelsDialog.qml b/resources/qml/Dialogs/AskOpenAsProjectOrModelsDialog.qml index 8cdaeea5fa..68f58616f1 100644 --- a/resources/qml/Dialogs/AskOpenAsProjectOrModelsDialog.qml +++ b/resources/qml/Dialogs/AskOpenAsProjectOrModelsDialog.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2015 Ultimaker B.V. +// Copyright (c) 2021 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 @@ -32,30 +32,24 @@ UM.Dialog // load the entire project function loadProjectFile() { - // update preference if (rememberChoiceCheckBox.checked) { UM.Preferences.setValue("cura/choice_on_open_project", "open_as_project") } UM.WorkspaceFileHandler.readLocalFile(base.fileUrl) - var meshName = backgroundItem.getMeshName(base.fileUrl.toString()) - backgroundItem.hasMesh(decodeURIComponent(meshName)) base.hide() } // load the project file as separated models function loadModelFiles() { - // update preference if (rememberChoiceCheckBox.checked) { UM.Preferences.setValue("cura/choice_on_open_project", "open_as_model") } CuraApplication.readLocalFile(base.fileUrl, "open_as_model") - var meshName = backgroundItem.getMeshName(base.fileUrl.toString()) - backgroundItem.hasMesh(decodeURIComponent(meshName)) base.hide() } diff --git a/resources/qml/Dialogs/OpenFilesIncludingProjectsDialog.qml b/resources/qml/Dialogs/OpenFilesIncludingProjectsDialog.qml index 187578f12c..62cded866c 100644 --- a/resources/qml/Dialogs/OpenFilesIncludingProjectsDialog.qml +++ b/resources/qml/Dialogs/OpenFilesIncludingProjectsDialog.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2017 Ultimaker B.V. +// Copyright (c) 2021 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 @@ -33,9 +33,6 @@ UM.Dialog function loadProjectFile(projectFile) { UM.WorkspaceFileHandler.readLocalFile(projectFile); - - var meshName = backgroundItem.getMeshName(projectFile.toString()); - backgroundItem.hasMesh(decodeURIComponent(meshName)); } function loadModelFiles(fileUrls) @@ -44,9 +41,6 @@ UM.Dialog { CuraApplication.readLocalFile(fileUrls[i], "open_as_model"); } - - var meshName = backgroundItem.getMeshName(fileUrls[0].toString()); - backgroundItem.hasMesh(decodeURIComponent(meshName)); } Column @@ -108,5 +102,11 @@ UM.Dialog } } } + + UM.I18nCatalog + { + id: catalog + name: "cura" + } } -} +} \ No newline at end of file diff --git a/resources/qml/MachineSettings/NumericTextFieldWithUnit.qml b/resources/qml/MachineSettings/NumericTextFieldWithUnit.qml index 031ef5241a..32e0e6dcaa 100644 --- a/resources/qml/MachineSettings/NumericTextFieldWithUnit.qml +++ b/resources/qml/MachineSettings/NumericTextFieldWithUnit.qml @@ -156,12 +156,24 @@ UM.TooltipArea const value = propertyProvider.properties.value return value ? value : "" } - validator: DoubleValidator + property string validatorString: { - bottom: numericTextFieldWithUnit.minimum - top: numericTextFieldWithUnit.maximum - decimals: numericTextFieldWithUnit.decimals - notation: DoubleValidator.StandardNotation + var digits = Math.min(8, 1 + Math.floor( + Math.log(Math.max(Math.abs(numericTextFieldWithUnit.maximum), Math.abs(numericTextFieldWithUnit.minimum)))/Math.log(10) + )) + var minus = numericTextFieldWithUnit.minimum < 0 ? "-?" : "" + if (numericTextFieldWithUnit.decimals == 0) + { + return "^%0\\d{1,%1}$".arg(minus).arg(digits) + } + else + { + return "^%0\\d{0,%1}[.,]?\\d{0,%2}$".arg(minus).arg(digits).arg(numericTextFieldWithUnit.decimals) + } + } + validator: RegExpValidator + { + regExp: new RegExp(textFieldWithUnit.validatorString) } //Enforce actual minimum and maximum values. diff --git a/resources/qml/Menus/FileMenu.qml b/resources/qml/Menus/FileMenu.qml index b9845678d6..5ea1c9bc06 100644 --- a/resources/qml/Menus/FileMenu.qml +++ b/resources/qml/Menus/FileMenu.qml @@ -4,13 +4,14 @@ import QtQuick 2.2 import QtQuick.Controls 1.1 -import UM 1.2 as UM +import UM 1.6 as UM import Cura 1.0 as Cura Menu { id: base title: catalog.i18nc("@title:menu menubar:toplevel", "&File") + property var fileProviderModel: CuraApplication.getFileProviderModel() MenuItem { @@ -22,6 +23,13 @@ Menu { id: openMenu action: Cura.Actions.open + visible: (base.fileProviderModel.count == 1) + } + + OpenFilesMenu + { + id: openFilesMenu + visible: (base.fileProviderModel.count > 1) } RecentFilesMenu { } @@ -29,8 +37,9 @@ Menu MenuItem { id: saveWorkspaceMenu - shortcut: StandardKey.Save + shortcut: visible ? StandardKey.Save : "" text: catalog.i18nc("@title:menu menubar:file", "&Save Project...") + visible: saveProjectMenu.model.count == 1 onTriggered: { var args = { "filter_by_machine": false, "file_type": "workspace", "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml" }; @@ -46,6 +55,15 @@ Menu } } + UM.ProjectOutputDevicesModel { id: projectOutputDevicesModel } + + SaveProjectMenu + { + id: saveProjectMenu + model: projectOutputDevicesModel + visible: model.count > 1 + } + MenuSeparator { } MenuItem diff --git a/resources/qml/Menus/OpenFilesMenu.qml b/resources/qml/Menus/OpenFilesMenu.qml new file mode 100644 index 0000000000..3c2b64ee62 --- /dev/null +++ b/resources/qml/Menus/OpenFilesMenu.qml @@ -0,0 +1,46 @@ +// Copyright (c) 2020 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.2 +import QtQuick.Controls 1.1 + +import UM 1.6 as UM +import Cura 1.0 as Cura + +import "../Dialogs" + +Menu +{ + id: openFilesMenu + title: catalog.i18nc("@title:menu menubar:file", "Open File(s)...") + iconName: "document-open-recent"; + + Instantiator + { + id: fileProviders + model: CuraApplication.getFileProviderModel() + MenuItem + { + text: + { + return model.displayText; + } + onTriggered: + { + if (model.index == 0) // The 0th element is the "From Disk" option, which should activate the open local file dialog + { + Cura.Actions.open.trigger() + } + else + { + CuraApplication.getFileProviderModel().trigger(model.name); + } + } + // Unassign the shortcuts when the submenu is invisible (i.e. when there is only one file provider) to avoid ambiguous shortcuts. + // When there is a signle file provider, the openAction is assigned with the Ctrl+O shortcut instead. + shortcut: openFilesMenu.visible ? model.shortcut : "" + } + onObjectAdded: openFilesMenu.insertItem(index, object) + onObjectRemoved: openFilesMenu.removeItem(object) + } +} diff --git a/resources/qml/Menus/RecentFilesMenu.qml b/resources/qml/Menus/RecentFilesMenu.qml index 9de523280c..de6d2e3817 100644 --- a/resources/qml/Menus/RecentFilesMenu.qml +++ b/resources/qml/Menus/RecentFilesMenu.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2016 Ultimaker B.V. +// Copyright (c) 2021 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 @@ -27,13 +27,7 @@ Menu var path = decodeURIComponent(modelData.toString()) return (index + 1) + ". " + path.slice(path.lastIndexOf("/") + 1); } - onTriggered: - { - CuraApplication.readLocalFile(modelData); - - var meshName = backgroundItem.getMeshName(modelData.toString()) - backgroundItem.hasMesh(decodeURIComponent(meshName)) - } + onTriggered: CuraApplication.readLocalFile(modelData) } onObjectAdded: menu.insertItem(index, object) onObjectRemoved: menu.removeItem(object) diff --git a/resources/qml/Menus/SaveProjectMenu.qml b/resources/qml/Menus/SaveProjectMenu.qml new file mode 100644 index 0000000000..dd17324e58 --- /dev/null +++ b/resources/qml/Menus/SaveProjectMenu.qml @@ -0,0 +1,53 @@ +// Copyright (c) 2021 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.2 +import QtQuick.Controls 1.1 + +import UM 1.6 as UM +import Cura 1.1 as Cura + +import "../Dialogs" + +Menu +{ + id: saveProjectMenu + title: catalog.i18nc("@title:menu menubar:file", "Save Project...") + property alias model: projectOutputDevices.model + + Instantiator + { + id: projectOutputDevices + MenuItem + { + text: model.name + onTriggered: + { + var args = { "filter_by_machine": false, "file_type": "workspace", "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml" }; + if (UM.Preferences.getValue("cura/dialog_on_project_save")) + { + saveWorkspaceDialog.deviceId = model.id + saveWorkspaceDialog.args = args + saveWorkspaceDialog.open() + } + else + { + UM.OutputDeviceManager.requestWriteToDevice(model.id, PrintInformation.jobName, args) + } + } + // Unassign the shortcuts when the submenu is invisible (i.e. when there is only one project output device) to avoid ambiguous shortcuts. + // When there is only the LocalFileOutputDevice, the Ctrl+S shortcut is assigned to the saveWorkspaceMenu MenuItem + shortcut: saveProjectMenu.visible ? model.shortcut : "" + } + onObjectAdded: saveProjectMenu.insertItem(index, object) + onObjectRemoved: saveProjectMenu.removeItem(object) + } + + WorkspaceSummaryDialog + { + id: saveWorkspaceDialog + property var args + property var deviceId + onYes: UM.OutputDeviceManager.requestWriteToDevice(deviceId, PrintInformation.jobName, args) + } +} diff --git a/resources/qml/TableView.qml b/resources/qml/TableView.qml new file mode 100644 index 0000000000..dd80304b83 --- /dev/null +++ b/resources/qml/TableView.qml @@ -0,0 +1,68 @@ +// Copyright (C) 2021 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.10 +import QtQuick.Controls 1.4 as OldControls // TableView doesn't exist in the QtQuick Controls 2.x in 5.10, so use the old one +import QtQuick.Controls 2.3 +import QtQuick.Controls.Styles 1.4 + +import UM 1.2 as UM + + +OldControls.TableView +{ + itemDelegate: Item + { + height: tableCellLabel.implicitHeight + + Label + { + id: tableCellLabel + color: UM.Theme.getColor("text") + elide: Text.ElideRight + text: styleData.value + anchors.fill: parent + anchors.leftMargin: 10 * screenScaleFactor + verticalAlignment: Text.AlignVCenter + } + } + + rowDelegate: Rectangle + { + color: styleData.selected ? UM.Theme.getColor("secondary") : UM.Theme.getColor("main_background") + height: UM.Theme.getSize("table_row").height + } + + // Use the old styling technique since it's the only way to make the scrollbars themed in the TableView + style: TableViewStyle + { + backgroundColor: UM.Theme.getColor("main_background") + + handle: Rectangle + { + // Both implicit width and height have to be set, since the handle is used by both the horizontal and the vertical scrollbars + implicitWidth: UM.Theme.getSize("scrollbar").width + implicitHeight: UM.Theme.getSize("scrollbar").width + radius: width / 2 + color: UM.Theme.getColor(styleData.pressed ? "scrollbar_handle_down" : (styleData.hovered ? "scrollbar_handle_hover" : "scrollbar_handle")) + } + + scrollBarBackground: Rectangle + { + // Both implicit width and height have to be set, since the handle is used by both the horizontal and the vertical scrollbars + implicitWidth: UM.Theme.getSize("scrollbar").width + implicitHeight: UM.Theme.getSize("scrollbar").width + color: UM.Theme.getColor("main_background") + } + + // The little rectangle between the vertical and horizontal scrollbars + corner: Rectangle + { + color: UM.Theme.getColor("main_background") + } + + // Override the control arrows + incrementControl: Item { } + decrementControl: Item { } + } +} \ No newline at end of file diff --git a/resources/qml/Widgets/ComboBox.qml b/resources/qml/Widgets/ComboBox.qml index d4c526e265..7eb366f0a3 100644 --- a/resources/qml/Widgets/ComboBox.qml +++ b/resources/qml/Widgets/ComboBox.qml @@ -15,6 +15,18 @@ ComboBox { id: control + UM.I18nCatalog + { + id: catalog + name: "cura" + } + + property var defaultTextOnEmptyModel: catalog.i18nc("@label", "No items to select from") // Text displayed in the combobox when the model is empty + property var defaultTextOnEmptyIndex: "" // Text displayed in the combobox when the model has items but no item is selected + enabled: delegateModel.count > 0 + + onVisibleChanged: { popup.close() } + states: [ State { @@ -67,11 +79,22 @@ ComboBox anchors.verticalCenter: parent.verticalCenter anchors.right: downArrow.left - text: control.currentText + text: + { + if (control.delegateModel.count == 0) + { + return control.defaultTextOnEmptyModel != "" ? control.defaultTextOnEmptyModel : control.defaultTextOnEmptyIndex + } + else + { + return control.currentIndex == -1 ? control.defaultTextOnEmptyIndex : control.currentText + } + } + textFormat: Text.PlainText renderType: Text.NativeRendering font: UM.Theme.getFont("default") - color: UM.Theme.getColor("setting_control_text") + color: control.currentIndex == -1 ? UM.Theme.getColor("setting_control_disabled_text") : UM.Theme.getColor("setting_control_text") elide: Text.ElideRight verticalAlignment: Text.AlignVCenter } @@ -81,6 +104,7 @@ ComboBox y: control.height - UM.Theme.getSize("default_lining").height width: control.width implicitHeight: contentItem.implicitHeight + 2 * UM.Theme.getSize("default_lining").width + bottomMargin: UM.Theme.getSize("default_margin").height padding: UM.Theme.getSize("default_lining").width contentItem: ListView @@ -133,7 +157,7 @@ ComboBox text: delegateItem.text textFormat: Text.PlainText renderType: Text.NativeRendering - color: control.contentItem.color + color: UM.Theme.getColor("setting_control_text") font: UM.Theme.getFont("default") elide: Text.ElideRight verticalAlignment: Text.AlignVCenter diff --git a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_draft.inst.cfg b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_draft.inst.cfg index 27bf2ce7dd..60c4210209 100644 --- a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_draft.inst.cfg +++ b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_draft.inst.cfg @@ -17,8 +17,7 @@ acceleration_travel = 3000 adhesion_type = skirt brim_width = 4.0 cool_fan_full_at_height = 0.5 -cool_fan_speed = 100 -cool_fan_speed_0 = 100 +cool_fan_speed_max = 100 infill_overlap = 15 infill_pattern = zigzag infill_sparse_density = 25 @@ -28,10 +27,7 @@ jerk_print = 8 jerk_travel = 10 layer_height = 0.3 layer_height_0 = 0.3 -material_bed_temperature = 60 material_diameter = 1.75 -material_print_temperature = 200 -material_print_temperature_layer_0 = 0 retract_at_layer_change = False retraction_amount = 6 retraction_hop = 0.075 diff --git a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_high.inst.cfg b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_high.inst.cfg index 6005152107..209e2008d1 100644 --- a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_high.inst.cfg +++ b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_high.inst.cfg @@ -17,8 +17,7 @@ acceleration_travel = 3000 adhesion_type = skirt brim_width = 4.0 cool_fan_full_at_height = 0.5 -cool_fan_speed = 100 -cool_fan_speed_0 = 100 +cool_fan_speed_max = 100 infill_overlap = 15 infill_pattern = zigzag infill_sparse_density = 25 @@ -28,10 +27,7 @@ jerk_print = 8 jerk_travel = 10 layer_height = 0.1 layer_height_0 = 0.1 -material_bed_temperature = 60 material_diameter = 1.75 -material_print_temperature = 200 -material_print_temperature_layer_0 = 0 retract_at_layer_change = False retraction_amount = 6 retraction_hop = 0.075 diff --git a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_normal.inst.cfg b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_normal.inst.cfg index b2c0309dc9..e0e4d0743b 100644 --- a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_normal.inst.cfg +++ b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_normal.inst.cfg @@ -17,8 +17,7 @@ acceleration_travel = 3000 adhesion_type = skirt brim_width = 4.0 cool_fan_full_at_height = 0.5 -cool_fan_speed = 100 -cool_fan_speed_0 = 100 +cool_fan_speed_max = 100 infill_overlap = 15 infill_pattern = zigzag infill_sparse_density = 25 @@ -28,10 +27,7 @@ jerk_print = 8 jerk_travel = 10 layer_height = 0.2 layer_height_0 = 0.2 -material_bed_temperature = 60 material_diameter = 1.75 -material_print_temperature = 200 -material_print_temperature_layer_0 = 0 retract_at_layer_change = False retraction_amount = 6 retraction_hop = 0.075 diff --git a/resources/quality/eryone_er20/eryone_er20_draft.inst.cfg b/resources/quality/eryone_er20/eryone_er20_draft.inst.cfg new file mode 100644 index 0000000000..64e4f2b180 --- /dev/null +++ b/resources/quality/eryone_er20/eryone_er20_draft.inst.cfg @@ -0,0 +1,18 @@ +[general] +version = 4 +name = Draft +definition = eryone_er20 + +[metadata] +setting_version = 16 +type = quality +quality_type = draft +weight = -2 +global_quality = True + +[values] +acceleration_print = 1500 +layer_height = 0.3 +layer_height_0 = 0.3 +speed_print = 80 +speed_support = 60 \ No newline at end of file diff --git a/resources/quality/eryone_er20/eryone_er20_high.inst.cfg b/resources/quality/eryone_er20/eryone_er20_high.inst.cfg new file mode 100644 index 0000000000..db15abbeb4 --- /dev/null +++ b/resources/quality/eryone_er20/eryone_er20_high.inst.cfg @@ -0,0 +1,18 @@ +[general] +version = 4 +name = High +definition = eryone_er20 + +[metadata] +setting_version = 16 +type = quality +quality_type = high +weight = 1 +global_quality = True + +[values] +acceleration_print = 500 +layer_height = 0.15 +layer_height_0 = 0.2 +speed_print = 50 +speed_support = 30 \ No newline at end of file diff --git a/resources/quality/eryone_er20/eryone_er20_normal.inst.cfg b/resources/quality/eryone_er20/eryone_er20_normal.inst.cfg new file mode 100644 index 0000000000..ca29834126 --- /dev/null +++ b/resources/quality/eryone_er20/eryone_er20_normal.inst.cfg @@ -0,0 +1,18 @@ +[general] +version = 4 +name = Normal +definition = eryone_er20 + +[metadata] +setting_version = 16 +type = quality +quality_type = normal +weight = 0 +global_quality = True + +[values] +acceleration_print = 1000 +layer_height = 0.2 +layer_height_0 = 0.2 +speed_print = 50 +speed_support = 30 \ No newline at end of file diff --git a/resources/quality/mingda/ABS/mingda_0.2_ABS_super.inst.cfg b/resources/quality/mingda/ABS/mingda_0.2_ABS_super.inst.cfg new file mode 100644 index 0000000000..7c2e814649 --- /dev/null +++ b/resources/quality/mingda/ABS/mingda_0.2_ABS_super.inst.cfg @@ -0,0 +1,14 @@ +[general] +version = 4 +name = Super Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = super +material = generic_abs +variant = 0.2mm Nozzle + +[values] +wall_thickness = =line_width*8 diff --git a/resources/quality/mingda/ABS/mingda_0.2_ABS_ultra.inst.cfg b/resources/quality/mingda/ABS/mingda_0.2_ABS_ultra.inst.cfg new file mode 100644 index 0000000000..a8a356f5e0 --- /dev/null +++ b/resources/quality/mingda/ABS/mingda_0.2_ABS_ultra.inst.cfg @@ -0,0 +1,14 @@ +[general] +version = 4 +name = Ultra Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = ultra +material = generic_abs +variant = 0.2mm Nozzle + +[values] +wall_thickness = =line_width*8 diff --git a/resources/quality/mingda/ABS/mingda_0.3_ABS_adaptive.inst.cfg b/resources/quality/mingda/ABS/mingda_0.3_ABS_adaptive.inst.cfg new file mode 100644 index 0000000000..78c7fd0b97 --- /dev/null +++ b/resources/quality/mingda/ABS/mingda_0.3_ABS_adaptive.inst.cfg @@ -0,0 +1,14 @@ +[general] +version = 4 +name = Dynamic Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = adaptive +material = generic_abs +variant = 0.3mm Nozzle + +[values] +wall_thickness = =line_width*4 diff --git a/resources/quality/mingda/ABS/mingda_0.3_ABS_low.inst.cfg b/resources/quality/mingda/ABS/mingda_0.3_ABS_low.inst.cfg new file mode 100644 index 0000000000..e257c64381 --- /dev/null +++ b/resources/quality/mingda/ABS/mingda_0.3_ABS_low.inst.cfg @@ -0,0 +1,14 @@ +[general] +version = 4 +name = Low Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = low +material = generic_abs +variant = 0.3mm Nozzle + +[values] +wall_thickness = =line_width*4 diff --git a/resources/quality/mingda/ABS/mingda_0.3_ABS_standard.inst.cfg b/resources/quality/mingda/ABS/mingda_0.3_ABS_standard.inst.cfg new file mode 100644 index 0000000000..698b980a07 --- /dev/null +++ b/resources/quality/mingda/ABS/mingda_0.3_ABS_standard.inst.cfg @@ -0,0 +1,14 @@ +[general] +version = 4 +name = Standard Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = standard +material = generic_abs +variant = 0.3mm Nozzle + +[values] +wall_thickness = =line_width*4 diff --git a/resources/quality/mingda/ABS/mingda_0.3_ABS_super.inst.cfg b/resources/quality/mingda/ABS/mingda_0.3_ABS_super.inst.cfg new file mode 100644 index 0000000000..747a43b724 --- /dev/null +++ b/resources/quality/mingda/ABS/mingda_0.3_ABS_super.inst.cfg @@ -0,0 +1,14 @@ +[general] +version = 4 +name = Super Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = super +material = generic_abs +variant = 0.3mm Nozzle + +[values] +wall_thickness = =line_width*4 diff --git a/resources/quality/mingda/ABS/mingda_0.4_ABS_adaptive.inst.cfg b/resources/quality/mingda/ABS/mingda_0.4_ABS_adaptive.inst.cfg new file mode 100644 index 0000000000..af4b2a871e --- /dev/null +++ b/resources/quality/mingda/ABS/mingda_0.4_ABS_adaptive.inst.cfg @@ -0,0 +1,14 @@ +[general] +version = 4 +name = Dynamic Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = adaptive +material = generic_abs +variant = 0.4mm Nozzle + +[values] +wall_thickness = =line_width*4 diff --git a/resources/quality/mingda/ABS/mingda_0.4_ABS_low.inst.cfg b/resources/quality/mingda/ABS/mingda_0.4_ABS_low.inst.cfg new file mode 100644 index 0000000000..fa446b947a --- /dev/null +++ b/resources/quality/mingda/ABS/mingda_0.4_ABS_low.inst.cfg @@ -0,0 +1,14 @@ +[general] +version = 4 +name = Low Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = low +material = generic_abs +variant = 0.4mm Nozzle + +[values] +wall_thickness = =line_width*4 diff --git a/resources/quality/mingda/ABS/mingda_0.4_ABS_standard.inst.cfg b/resources/quality/mingda/ABS/mingda_0.4_ABS_standard.inst.cfg new file mode 100644 index 0000000000..4e97c377c7 --- /dev/null +++ b/resources/quality/mingda/ABS/mingda_0.4_ABS_standard.inst.cfg @@ -0,0 +1,14 @@ +[general] +version = 4 +name = Standard Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = standard +material = generic_abs +variant = 0.4mm Nozzle + +[values] +wall_thickness = =line_width*4 diff --git a/resources/quality/mingda/ABS/mingda_0.4_ABS_super.inst.cfg b/resources/quality/mingda/ABS/mingda_0.4_ABS_super.inst.cfg new file mode 100644 index 0000000000..2d7f2de56a --- /dev/null +++ b/resources/quality/mingda/ABS/mingda_0.4_ABS_super.inst.cfg @@ -0,0 +1,14 @@ +[general] +version = 4 +name = Super Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = super +material = generic_abs +variant = 0.4mm Nozzle + +[values] +wall_thickness = =line_width*4 diff --git a/resources/quality/mingda/ABS/mingda_0.5_ABS_adaptive.inst.cfg b/resources/quality/mingda/ABS/mingda_0.5_ABS_adaptive.inst.cfg new file mode 100644 index 0000000000..09950351b6 --- /dev/null +++ b/resources/quality/mingda/ABS/mingda_0.5_ABS_adaptive.inst.cfg @@ -0,0 +1,14 @@ +[general] +version = 4 +name = Dynamic Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = adaptive +material = generic_abs +variant = 0.5mm Nozzle + +[values] +wall_thickness = =line_width*4 diff --git a/resources/quality/mingda/ABS/mingda_0.5_ABS_low.inst.cfg b/resources/quality/mingda/ABS/mingda_0.5_ABS_low.inst.cfg new file mode 100644 index 0000000000..dfd3eed5e0 --- /dev/null +++ b/resources/quality/mingda/ABS/mingda_0.5_ABS_low.inst.cfg @@ -0,0 +1,14 @@ +[general] +version = 4 +name = Low Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = low +material = generic_abs +variant = 0.5mm Nozzle + +[values] +wall_thickness = =line_width*4 diff --git a/resources/quality/mingda/ABS/mingda_0.5_ABS_standard.inst.cfg b/resources/quality/mingda/ABS/mingda_0.5_ABS_standard.inst.cfg new file mode 100644 index 0000000000..88a2680152 --- /dev/null +++ b/resources/quality/mingda/ABS/mingda_0.5_ABS_standard.inst.cfg @@ -0,0 +1,14 @@ +[general] +version = 4 +name = Standard Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = standard +material = generic_abs +variant = 0.5mm Nozzle + +[values] +wall_thickness = =line_width*4 diff --git a/resources/quality/mingda/ABS/mingda_0.5_ABS_super.inst.cfg b/resources/quality/mingda/ABS/mingda_0.5_ABS_super.inst.cfg new file mode 100644 index 0000000000..16699522e0 --- /dev/null +++ b/resources/quality/mingda/ABS/mingda_0.5_ABS_super.inst.cfg @@ -0,0 +1,14 @@ +[general] +version = 4 +name = Super Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = super +material = generic_abs +variant = 0.5mm Nozzle + +[values] +wall_thickness = =line_width*4 diff --git a/resources/quality/mingda/ABS/mingda_0.6_ABS_standard.inst.cfg b/resources/quality/mingda/ABS/mingda_0.6_ABS_standard.inst.cfg new file mode 100644 index 0000000000..08c5f830a5 --- /dev/null +++ b/resources/quality/mingda/ABS/mingda_0.6_ABS_standard.inst.cfg @@ -0,0 +1,14 @@ +[general] +version = 4 +name = Standard Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = standard +material = generic_abs +variant = 0.6mm Nozzle + +[values] +wall_thickness = =line_width*3 diff --git a/resources/quality/mingda/ABS/mingda_0.8_ABS_draft.inst.cfg b/resources/quality/mingda/ABS/mingda_0.8_ABS_draft.inst.cfg new file mode 100644 index 0000000000..90a5676672 --- /dev/null +++ b/resources/quality/mingda/ABS/mingda_0.8_ABS_draft.inst.cfg @@ -0,0 +1,14 @@ +[general] +version = 4 +name = Draft Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = draft +material = generic_abs +variant = 0.8mm Nozzle + +[values] +wall_thickness = =line_width*3 diff --git a/resources/quality/mingda/ABS/mingda_1.0_ABS_draft.inst.cfg b/resources/quality/mingda/ABS/mingda_1.0_ABS_draft.inst.cfg new file mode 100644 index 0000000000..af16ce5e0a --- /dev/null +++ b/resources/quality/mingda/ABS/mingda_1.0_ABS_draft.inst.cfg @@ -0,0 +1,14 @@ +[general] +version = 4 +name = Draft Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = draft +material = generic_abs +variant = 1.0mm Nozzle + +[values] +wall_thickness = =line_width*3 diff --git a/resources/quality/mingda/PETG/mingda_0.2_PETG_super.inst.cfg b/resources/quality/mingda/PETG/mingda_0.2_PETG_super.inst.cfg new file mode 100644 index 0000000000..0871a9f60f --- /dev/null +++ b/resources/quality/mingda/PETG/mingda_0.2_PETG_super.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Super Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = super +material = generic_petg +variant = 0.2mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*8 diff --git a/resources/quality/mingda/PETG/mingda_0.2_PETG_ultra.inst.cfg b/resources/quality/mingda/PETG/mingda_0.2_PETG_ultra.inst.cfg new file mode 100644 index 0000000000..e5ad91cd01 --- /dev/null +++ b/resources/quality/mingda/PETG/mingda_0.2_PETG_ultra.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Ultra Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = ultra +material = generic_petg +variant = 0.2mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*8 diff --git a/resources/quality/mingda/PETG/mingda_0.3_PETG_adaptive.inst.cfg b/resources/quality/mingda/PETG/mingda_0.3_PETG_adaptive.inst.cfg new file mode 100644 index 0000000000..addac275be --- /dev/null +++ b/resources/quality/mingda/PETG/mingda_0.3_PETG_adaptive.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Dynamic Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = adaptive +material = generic_petg +variant = 0.3mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*4 diff --git a/resources/quality/mingda/PETG/mingda_0.3_PETG_low.inst.cfg b/resources/quality/mingda/PETG/mingda_0.3_PETG_low.inst.cfg new file mode 100644 index 0000000000..775a23b89b --- /dev/null +++ b/resources/quality/mingda/PETG/mingda_0.3_PETG_low.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Low Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = low +material = generic_petg +variant = 0.3mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*4 diff --git a/resources/quality/mingda/PETG/mingda_0.3_PETG_standard.inst.cfg b/resources/quality/mingda/PETG/mingda_0.3_PETG_standard.inst.cfg new file mode 100644 index 0000000000..29d09c2cc3 --- /dev/null +++ b/resources/quality/mingda/PETG/mingda_0.3_PETG_standard.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Standard Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = standard +material = generic_petg +variant = 0.3mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*4 diff --git a/resources/quality/mingda/PETG/mingda_0.3_PETG_super.inst.cfg b/resources/quality/mingda/PETG/mingda_0.3_PETG_super.inst.cfg new file mode 100644 index 0000000000..00ae181704 --- /dev/null +++ b/resources/quality/mingda/PETG/mingda_0.3_PETG_super.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Super Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = super +material = generic_petg +variant = 0.3mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*4 diff --git a/resources/quality/mingda/PETG/mingda_0.4_PETG_adaptive.inst.cfg b/resources/quality/mingda/PETG/mingda_0.4_PETG_adaptive.inst.cfg new file mode 100644 index 0000000000..4684750c3d --- /dev/null +++ b/resources/quality/mingda/PETG/mingda_0.4_PETG_adaptive.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Dynamic Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = adaptive +material = generic_petg +variant = 0.4mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*4 diff --git a/resources/quality/mingda/PETG/mingda_0.4_PETG_low.inst.cfg b/resources/quality/mingda/PETG/mingda_0.4_PETG_low.inst.cfg new file mode 100644 index 0000000000..bb984a0b40 --- /dev/null +++ b/resources/quality/mingda/PETG/mingda_0.4_PETG_low.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Low Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = low +material = generic_petg +variant = 0.4mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*4 diff --git a/resources/quality/mingda/PETG/mingda_0.4_PETG_standard.inst.cfg b/resources/quality/mingda/PETG/mingda_0.4_PETG_standard.inst.cfg new file mode 100644 index 0000000000..957d95f8c6 --- /dev/null +++ b/resources/quality/mingda/PETG/mingda_0.4_PETG_standard.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Standard Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = standard +material = generic_petg +variant = 0.4mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*4 diff --git a/resources/quality/mingda/PETG/mingda_0.4_PETG_super.inst.cfg b/resources/quality/mingda/PETG/mingda_0.4_PETG_super.inst.cfg new file mode 100644 index 0000000000..c3c8f4d145 --- /dev/null +++ b/resources/quality/mingda/PETG/mingda_0.4_PETG_super.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Super Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = super +material = generic_petg +variant = 0.4mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*4 diff --git a/resources/quality/mingda/PETG/mingda_0.5_PETG_adaptive.inst.cfg b/resources/quality/mingda/PETG/mingda_0.5_PETG_adaptive.inst.cfg new file mode 100644 index 0000000000..0387d7c45f --- /dev/null +++ b/resources/quality/mingda/PETG/mingda_0.5_PETG_adaptive.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Dynamic Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = adaptive +material = generic_petg +variant = 0.5mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*4 diff --git a/resources/quality/mingda/PETG/mingda_0.5_PETG_low.inst.cfg b/resources/quality/mingda/PETG/mingda_0.5_PETG_low.inst.cfg new file mode 100644 index 0000000000..d41ed8ed76 --- /dev/null +++ b/resources/quality/mingda/PETG/mingda_0.5_PETG_low.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Low Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = low +material = generic_petg +variant = 0.5mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*4 diff --git a/resources/quality/mingda/PETG/mingda_0.5_PETG_standard.inst.cfg b/resources/quality/mingda/PETG/mingda_0.5_PETG_standard.inst.cfg new file mode 100644 index 0000000000..dd88e16730 --- /dev/null +++ b/resources/quality/mingda/PETG/mingda_0.5_PETG_standard.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Standard Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = standard +material = generic_petg +variant = 0.5mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*4 diff --git a/resources/quality/mingda/PETG/mingda_0.5_PETG_super.inst.cfg b/resources/quality/mingda/PETG/mingda_0.5_PETG_super.inst.cfg new file mode 100644 index 0000000000..6c30bf5153 --- /dev/null +++ b/resources/quality/mingda/PETG/mingda_0.5_PETG_super.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Super Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = super +material = generic_petg +variant = 0.5mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*4 diff --git a/resources/quality/mingda/PETG/mingda_0.6_PETG_standard.inst.cfg b/resources/quality/mingda/PETG/mingda_0.6_PETG_standard.inst.cfg new file mode 100644 index 0000000000..5e523397b7 --- /dev/null +++ b/resources/quality/mingda/PETG/mingda_0.6_PETG_standard.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Standard Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = standard +material = generic_petg +variant = 0.6mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*3 diff --git a/resources/quality/mingda/PETG/mingda_0.8_PETG_draft.inst.cfg b/resources/quality/mingda/PETG/mingda_0.8_PETG_draft.inst.cfg new file mode 100644 index 0000000000..c0a9722d81 --- /dev/null +++ b/resources/quality/mingda/PETG/mingda_0.8_PETG_draft.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Draft Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = draft +material = generic_petg +variant = 0.8mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*3 diff --git a/resources/quality/mingda/PETG/mingda_1.0_PETG_draft.inst.cfg b/resources/quality/mingda/PETG/mingda_1.0_PETG_draft.inst.cfg new file mode 100644 index 0000000000..dea437311b --- /dev/null +++ b/resources/quality/mingda/PETG/mingda_1.0_PETG_draft.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 4 +name = Draft Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = draft +material = generic_petg +variant = 1.0mm Nozzle + +[values] +speed_layer_0 = 15 +wall_thickness = =line_width*3 diff --git a/resources/quality/mingda/PLA/mingda_0.2_PLA_super.inst.cfg b/resources/quality/mingda/PLA/mingda_0.2_PLA_super.inst.cfg new file mode 100644 index 0000000000..15ddd05f47 --- /dev/null +++ b/resources/quality/mingda/PLA/mingda_0.2_PLA_super.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Super Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = super +material = generic_pla +variant = 0.2mm Nozzle + +[values] diff --git a/resources/quality/mingda/PLA/mingda_0.2_PLA_ultra.inst.cfg b/resources/quality/mingda/PLA/mingda_0.2_PLA_ultra.inst.cfg new file mode 100644 index 0000000000..5723a1405f --- /dev/null +++ b/resources/quality/mingda/PLA/mingda_0.2_PLA_ultra.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Ultra Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = ultra +material = generic_pla +variant = 0.2mm Nozzle + +[values] diff --git a/resources/quality/mingda/PLA/mingda_0.3_PLA_adaptive.inst.cfg b/resources/quality/mingda/PLA/mingda_0.3_PLA_adaptive.inst.cfg new file mode 100644 index 0000000000..14d9209d26 --- /dev/null +++ b/resources/quality/mingda/PLA/mingda_0.3_PLA_adaptive.inst.cfg @@ -0,0 +1,12 @@ +[general] +version = 4 +name = Dynamic Quality +definition = mingda_base +[metadata] +setting_version = 16 +type = quality +quality_type = adaptive +material = generic_pla +variant = 0.3mm Nozzle + +[values] diff --git a/resources/quality/mingda/PLA/mingda_0.3_PLA_low.inst.cfg b/resources/quality/mingda/PLA/mingda_0.3_PLA_low.inst.cfg new file mode 100644 index 0000000000..12512be2e4 --- /dev/null +++ b/resources/quality/mingda/PLA/mingda_0.3_PLA_low.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Low Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = low +material = generic_pla +variant = 0.3mm Nozzle + +[values] diff --git a/resources/quality/mingda/PLA/mingda_0.3_PLA_standard.inst.cfg b/resources/quality/mingda/PLA/mingda_0.3_PLA_standard.inst.cfg new file mode 100644 index 0000000000..643fa0c905 --- /dev/null +++ b/resources/quality/mingda/PLA/mingda_0.3_PLA_standard.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Standard Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = standard +material = generic_pla +variant = 0.3mm Nozzle + +[values] diff --git a/resources/quality/mingda/PLA/mingda_0.3_PLA_super.inst.cfg b/resources/quality/mingda/PLA/mingda_0.3_PLA_super.inst.cfg new file mode 100644 index 0000000000..a1b265ec24 --- /dev/null +++ b/resources/quality/mingda/PLA/mingda_0.3_PLA_super.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Super Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = super +material = generic_pla +variant = 0.3mm Nozzle + +[values] diff --git a/resources/quality/mingda/PLA/mingda_0.4_PLA_adaptive.inst.cfg b/resources/quality/mingda/PLA/mingda_0.4_PLA_adaptive.inst.cfg new file mode 100644 index 0000000000..7cfa128ba5 --- /dev/null +++ b/resources/quality/mingda/PLA/mingda_0.4_PLA_adaptive.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Dynamic Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = adaptive +material = generic_pla +variant = 0.4mm Nozzle + +[values] diff --git a/resources/quality/mingda/PLA/mingda_0.4_PLA_low.inst.cfg b/resources/quality/mingda/PLA/mingda_0.4_PLA_low.inst.cfg new file mode 100644 index 0000000000..b6c078707e --- /dev/null +++ b/resources/quality/mingda/PLA/mingda_0.4_PLA_low.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Low Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = low +material = generic_pla +variant = 0.4mm Nozzle + +[values] diff --git a/resources/quality/mingda/PLA/mingda_0.4_PLA_standard.inst.cfg b/resources/quality/mingda/PLA/mingda_0.4_PLA_standard.inst.cfg new file mode 100644 index 0000000000..3db4a26325 --- /dev/null +++ b/resources/quality/mingda/PLA/mingda_0.4_PLA_standard.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Standard Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = standard +material = generic_pla +variant = 0.4mm Nozzle + +[values] diff --git a/resources/quality/mingda/PLA/mingda_0.4_PLA_super.inst.cfg b/resources/quality/mingda/PLA/mingda_0.4_PLA_super.inst.cfg new file mode 100644 index 0000000000..33324cae94 --- /dev/null +++ b/resources/quality/mingda/PLA/mingda_0.4_PLA_super.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Super Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = super +material = generic_pla +variant = 0.4mm Nozzle + +[values] diff --git a/resources/quality/mingda/PLA/mingda_0.5_PLA_adaptive.inst.cfg b/resources/quality/mingda/PLA/mingda_0.5_PLA_adaptive.inst.cfg new file mode 100644 index 0000000000..1280ed4076 --- /dev/null +++ b/resources/quality/mingda/PLA/mingda_0.5_PLA_adaptive.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Dynamic Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = adaptive +material = generic_pla +variant = 0.5mm Nozzle + +[values] diff --git a/resources/quality/mingda/PLA/mingda_0.5_PLA_low.inst.cfg b/resources/quality/mingda/PLA/mingda_0.5_PLA_low.inst.cfg new file mode 100644 index 0000000000..f3ad9f556b --- /dev/null +++ b/resources/quality/mingda/PLA/mingda_0.5_PLA_low.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Low Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = low +material = generic_pla +variant = 0.5mm Nozzle + +[values] diff --git a/resources/quality/mingda/PLA/mingda_0.5_PLA_standard.inst.cfg b/resources/quality/mingda/PLA/mingda_0.5_PLA_standard.inst.cfg new file mode 100644 index 0000000000..31811ca4a6 --- /dev/null +++ b/resources/quality/mingda/PLA/mingda_0.5_PLA_standard.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Standard Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = standard +material = generic_pla +variant = 0.5mm Nozzle + +[values] diff --git a/resources/quality/mingda/PLA/mingda_0.5_PLA_super.inst.cfg b/resources/quality/mingda/PLA/mingda_0.5_PLA_super.inst.cfg new file mode 100644 index 0000000000..af672c0162 --- /dev/null +++ b/resources/quality/mingda/PLA/mingda_0.5_PLA_super.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Super Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = super +material = generic_pla +variant = 0.5mm Nozzle + +[values] diff --git a/resources/quality/mingda/PLA/mingda_0.6_PLA_draft.inst.cfg b/resources/quality/mingda/PLA/mingda_0.6_PLA_draft.inst.cfg new file mode 100644 index 0000000000..56bad6424c --- /dev/null +++ b/resources/quality/mingda/PLA/mingda_0.6_PLA_draft.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Draft Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = draft +material = generic_pla +variant = 0.6mm Nozzle + +[values] diff --git a/resources/quality/mingda/PLA/mingda_0.6_PLA_low.inst.cfg b/resources/quality/mingda/PLA/mingda_0.6_PLA_low.inst.cfg new file mode 100644 index 0000000000..70cc021595 --- /dev/null +++ b/resources/quality/mingda/PLA/mingda_0.6_PLA_low.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Low Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = low +material = generic_pla +variant = 0.6mm Nozzle + +[values] diff --git a/resources/quality/mingda/PLA/mingda_0.6_PLA_standard.inst.cfg b/resources/quality/mingda/PLA/mingda_0.6_PLA_standard.inst.cfg new file mode 100644 index 0000000000..d95105aba5 --- /dev/null +++ b/resources/quality/mingda/PLA/mingda_0.6_PLA_standard.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Standard Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = standard +material = generic_pla +variant = 0.6mm Nozzle + +[values] diff --git a/resources/quality/mingda/PLA/mingda_0.8_PLA_draft.inst.cfg b/resources/quality/mingda/PLA/mingda_0.8_PLA_draft.inst.cfg new file mode 100644 index 0000000000..2d00b31944 --- /dev/null +++ b/resources/quality/mingda/PLA/mingda_0.8_PLA_draft.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Draft Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = draft +material = generic_pla +variant = 0.8mm Nozzle + +[values] diff --git a/resources/quality/mingda/PLA/mingda_1.0_PLA_draft.inst.cfg b/resources/quality/mingda/PLA/mingda_1.0_PLA_draft.inst.cfg new file mode 100644 index 0000000000..ab5c178e5c --- /dev/null +++ b/resources/quality/mingda/PLA/mingda_1.0_PLA_draft.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Draft Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = draft +material = generic_pla +variant = 1.0mm Nozzle + +[values] diff --git a/resources/quality/mingda/TPU/mingda_0.3_TPU_adaptive.inst.cfg b/resources/quality/mingda/TPU/mingda_0.3_TPU_adaptive.inst.cfg new file mode 100644 index 0000000000..24d5010449 --- /dev/null +++ b/resources/quality/mingda/TPU/mingda_0.3_TPU_adaptive.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Dynamic Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = adaptive +material = generic_tpu +variant = 0.3mm Nozzle + +[values] diff --git a/resources/quality/mingda/TPU/mingda_0.3_TPU_standard.inst.cfg b/resources/quality/mingda/TPU/mingda_0.3_TPU_standard.inst.cfg new file mode 100644 index 0000000000..3d3a74b8a2 --- /dev/null +++ b/resources/quality/mingda/TPU/mingda_0.3_TPU_standard.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Standard Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = standard +material = generic_tpu +variant = 0.3mm Nozzle + +[values] diff --git a/resources/quality/mingda/TPU/mingda_0.3_TPU_super.inst.cfg b/resources/quality/mingda/TPU/mingda_0.3_TPU_super.inst.cfg new file mode 100644 index 0000000000..87234879a5 --- /dev/null +++ b/resources/quality/mingda/TPU/mingda_0.3_TPU_super.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Super Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = super +material = generic_tpu +variant = 0.3mm Nozzle + +[values] diff --git a/resources/quality/mingda/TPU/mingda_0.4_TPU_adaptive.inst.cfg b/resources/quality/mingda/TPU/mingda_0.4_TPU_adaptive.inst.cfg new file mode 100644 index 0000000000..418ca97b82 --- /dev/null +++ b/resources/quality/mingda/TPU/mingda_0.4_TPU_adaptive.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Dynamic Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = adaptive +material = generic_tpu +variant = 0.4mm Nozzle + +[values] diff --git a/resources/quality/mingda/TPU/mingda_0.4_TPU_standard.inst.cfg b/resources/quality/mingda/TPU/mingda_0.4_TPU_standard.inst.cfg new file mode 100644 index 0000000000..73114d9b2a --- /dev/null +++ b/resources/quality/mingda/TPU/mingda_0.4_TPU_standard.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Standard Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = standard +material = generic_tpu +variant = 0.4mm Nozzle + +[values] diff --git a/resources/quality/mingda/TPU/mingda_0.4_TPU_super.inst.cfg b/resources/quality/mingda/TPU/mingda_0.4_TPU_super.inst.cfg new file mode 100644 index 0000000000..4048767b19 --- /dev/null +++ b/resources/quality/mingda/TPU/mingda_0.4_TPU_super.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Super Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = super +material = generic_tpu +variant = 0.4mm Nozzle + +[values] diff --git a/resources/quality/mingda/TPU/mingda_0.5_TPU_adaptive.inst.cfg b/resources/quality/mingda/TPU/mingda_0.5_TPU_adaptive.inst.cfg new file mode 100644 index 0000000000..8894f10b54 --- /dev/null +++ b/resources/quality/mingda/TPU/mingda_0.5_TPU_adaptive.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Dynamic Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = adaptive +material = generic_tpu +variant = 0.5mm Nozzle + +[values] diff --git a/resources/quality/mingda/TPU/mingda_0.5_TPU_standard.inst.cfg b/resources/quality/mingda/TPU/mingda_0.5_TPU_standard.inst.cfg new file mode 100644 index 0000000000..56d36baccf --- /dev/null +++ b/resources/quality/mingda/TPU/mingda_0.5_TPU_standard.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Standard Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = standard +material = generic_tpu +variant = 0.5mm Nozzle + +[values] diff --git a/resources/quality/mingda/TPU/mingda_0.5_TPU_super.inst.cfg b/resources/quality/mingda/TPU/mingda_0.5_TPU_super.inst.cfg new file mode 100644 index 0000000000..6f2b29c110 --- /dev/null +++ b/resources/quality/mingda/TPU/mingda_0.5_TPU_super.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Super Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = super +material = generic_tpu +variant = 0.5mm Nozzle + +[values] diff --git a/resources/quality/mingda/TPU/mingda_0.6_TPU_standard.inst.cfg b/resources/quality/mingda/TPU/mingda_0.6_TPU_standard.inst.cfg new file mode 100644 index 0000000000..3660421e0c --- /dev/null +++ b/resources/quality/mingda/TPU/mingda_0.6_TPU_standard.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Standard Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = standard +material = generic_tpu +variant = 0.6mm Nozzle + +[values] diff --git a/resources/quality/mingda/TPU/mingda_0.8_TPU_draft.inst.cfg b/resources/quality/mingda/TPU/mingda_0.8_TPU_draft.inst.cfg new file mode 100644 index 0000000000..3d1fcfb8df --- /dev/null +++ b/resources/quality/mingda/TPU/mingda_0.8_TPU_draft.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Draft Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = draft +material = generic_tpu +variant = 0.8mm Nozzle + +[values] diff --git a/resources/quality/mingda/TPU/mingda_1.0_TPU_draft.inst.cfg b/resources/quality/mingda/TPU/mingda_1.0_TPU_draft.inst.cfg new file mode 100644 index 0000000000..394609a6e0 --- /dev/null +++ b/resources/quality/mingda/TPU/mingda_1.0_TPU_draft.inst.cfg @@ -0,0 +1,13 @@ +[general] +version = 4 +name = Draft Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = draft +material = generic_tpu +variant = 1.0mm Nozzle + +[values] diff --git a/resources/quality/mingda/mingda_global_adaptive.inst.cfg b/resources/quality/mingda/mingda_global_adaptive.inst.cfg new file mode 100644 index 0000000000..e0866c1aec --- /dev/null +++ b/resources/quality/mingda/mingda_global_adaptive.inst.cfg @@ -0,0 +1,19 @@ +[general] +version = 4 +name = Dynamic Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = adaptive +weight = -2 +global_quality = True + +[values] +layer_height = 0.16 +layer_height_0 = 0.20 +top_bottom_thickness = =layer_height_0+layer_height*4 +wall_thickness = =line_width*3 +support_interface_height = =layer_height*6 +adaptive_layer_height_enabled = true diff --git a/resources/quality/mingda/mingda_global_draft.inst.cfg b/resources/quality/mingda/mingda_global_draft.inst.cfg new file mode 100644 index 0000000000..fcc21881b5 --- /dev/null +++ b/resources/quality/mingda/mingda_global_draft.inst.cfg @@ -0,0 +1,18 @@ +[general] +version = 4 +name = Draft Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = draft +weight = -5 +global_quality = True + +[values] +layer_height = 0.32 +layer_height_0 = 0.32 +top_bottom_thickness = =layer_height_0+layer_height*3 +wall_thickness = =line_width*2 +support_interface_height = =layer_height*4 diff --git a/resources/quality/mingda/mingda_global_low.inst.cfg b/resources/quality/mingda/mingda_global_low.inst.cfg new file mode 100644 index 0000000000..65ee18e4c0 --- /dev/null +++ b/resources/quality/mingda/mingda_global_low.inst.cfg @@ -0,0 +1,18 @@ +[general] +version = 4 +name = Low Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = low +weight = -4 +global_quality = True + +[values] +layer_height = 0.28 +layer_height_0 = 0.28 +top_bottom_thickness = =layer_height_0+layer_height*3 +wall_thickness = =line_width*2 +support_interface_height = =layer_height*4 diff --git a/resources/quality/mingda/mingda_global_standard.inst.cfg b/resources/quality/mingda/mingda_global_standard.inst.cfg new file mode 100644 index 0000000000..3ff9196b4b --- /dev/null +++ b/resources/quality/mingda/mingda_global_standard.inst.cfg @@ -0,0 +1,18 @@ +[general] +version = 4 +name = Standard Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = standard +weight = -3 +global_quality = True + +[values] +layer_height = 0.2 +layer_height_0 = 0.2 +top_bottom_thickness = =layer_height_0+layer_height*3 +wall_thickness = =line_width*3 +support_interface_height = =layer_height*5 diff --git a/resources/quality/mingda/mingda_global_super.inst.cfg b/resources/quality/mingda/mingda_global_super.inst.cfg new file mode 100644 index 0000000000..140c0e9e29 --- /dev/null +++ b/resources/quality/mingda/mingda_global_super.inst.cfg @@ -0,0 +1,18 @@ +[general] +version = 4 +name = Super Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = super +weight = -1 +global_quality = True + +[values] +layer_height = 0.12 +layer_height_0 = 0.12 +top_bottom_thickness = =layer_height_0+layer_height*6 +wall_thickness = =line_width*3 +support_interface_height = =layer_height*8 diff --git a/resources/quality/mingda/mingda_global_ultra.inst.cfg b/resources/quality/mingda/mingda_global_ultra.inst.cfg new file mode 100644 index 0000000000..4cc949ceeb --- /dev/null +++ b/resources/quality/mingda/mingda_global_ultra.inst.cfg @@ -0,0 +1,18 @@ +[general] +version = 4 +name = Ultra Quality +definition = mingda_base + +[metadata] +setting_version = 16 +type = quality +quality_type = ultra +weight = 0 +global_quality = True + +[values] +layer_height = 0.08 +layer_height_0 = 0.12 +top_bottom_thickness = =layer_height_0+layer_height*10 +wall_thickness = =line_width*3 +support_interface_height = =layer_height*12 diff --git a/resources/quality/snapmaker2/snapmaker2_fast.inst.cfg b/resources/quality/snapmaker2/snapmaker2_fast.inst.cfg new file mode 100644 index 0000000000..a2249ac1cb --- /dev/null +++ b/resources/quality/snapmaker2/snapmaker2_fast.inst.cfg @@ -0,0 +1,66 @@ +[general] +version = 4 +name = Fast +definition = snapmaker2 + +[metadata] +setting_version = 16 +type = quality +quality_type = fast +weight = -2 +global_quality = True + +[values] +layer_height = 0.24 +layer_height_0 = 0.2 +initial_layer_line_width_factor = 100 + +wall_thickness = 0.8 +wall_line_count = 2 +top_thickness = 0.8 +top_layers = 4 +bottom_thickness = 0.8 +bottom_layers = 4 +outer_inset_first = False +skin_outline_count = 0 + +; infill_line_distance = 8 +infill_sparse_density = 15 +infill_sparse_thickness = 0.24 +skin_preshrink = 0.8 +top_skin_preshrink = 0.8 +bottom_skin_preshrink = 0.8 +expand_skins_expand_distance = 0.8 +top_skin_expand_distance = 0.8 +bottom_skin_expand_distance = 0.8 + +speed_travel = 80 +speed_topbottom = 30 +speed_wall_x = 25 +speed_wall_0 = 20 +speed_wall = 40 +speed_infill = 60 +speed_print = 60 +speed_print_layer_0 = 18 +speed_travel_layer_0 = 24 +skirt_brim_speed = 18 + +retraction_hop = 1 +retraction_hop_enabled = False + +magic_spiralize = False +magic_mesh_surface_mode = normal + +adhesion_type = skirt +skirt_line_count = 1 +brim_width = 8 +brim_line_count = 20 +raft_margin = 15 + +support_enable = False +support_type = everywhere +support_pattern = zigzag +support_angle = 50 +support_infill_rate = 15 +support_line_distance = 2.66 +support_initial_layer_line_distance = 2.66 \ No newline at end of file diff --git a/resources/quality/snapmaker2/snapmaker2_high.inst.cfg b/resources/quality/snapmaker2/snapmaker2_high.inst.cfg new file mode 100644 index 0000000000..7dc84e0378 --- /dev/null +++ b/resources/quality/snapmaker2/snapmaker2_high.inst.cfg @@ -0,0 +1,65 @@ +[general] +version = 4 +name = High +definition = snapmaker2 + +[metadata] +setting_version = 16 +type = quality +quality_type = high +weight = 1 +global_quality = True + +[values] +layer_height = 0.08 +layer_height_0 = 0.15 +initial_layer_line_width_factor = 100 + +wall_thickness = 1.2 +wall_line_count = 3 +top_thickness = 0.8 +top_layers = 10 +bottom_thickness = 0.8 +bottom_layers = 10 +outer_inset_first = False +skin_outline_count = 1 + +; infill_line_distance = 8 +infill_sparse_density = 15 +infill_sparse_thickness = 0.08 +skin_preshrink = 1.2 +top_skin_preshrink = 1.2 +bottom_skin_preshrink = 1.2 +expand_skins_expand_distance = 1.2 +top_skin_expand_distance = 1.2 +bottom_skin_expand_distance = 1.2 + +speed_travel = 60 +speed_topbottom = 20 +speed_wall_x = 15 +speed_wall_0 = 10 +speed_wall = 30 +speed_infill = 40 +speed_print = 40 +speed_print_layer_0 = 18 +speed_travel_layer_0 = 24 +skirt_brim_speed = 18 + +retraction_hop = 1 +retraction_hop_enabled = False + +magic_spiralize = False +magic_mesh_surface_mode = normal + +adhesion_type = skirt +skirt_line_count = 1 +brim_width = 8 +brim_line_count = 20 +raft_margin = 15 + +support_enable = False +support_type = everywhere +support_pattern = zigzag +support_angle = 50 +support_infill_rate = 15 +support_line_distance = 2.66 diff --git a/resources/quality/snapmaker2/snapmaker2_normal.inst.cfg b/resources/quality/snapmaker2/snapmaker2_normal.inst.cfg new file mode 100644 index 0000000000..5680725817 --- /dev/null +++ b/resources/quality/snapmaker2/snapmaker2_normal.inst.cfg @@ -0,0 +1,66 @@ +[general] +version = 4 +name = Normal +definition = snapmaker2 + +[metadata] +setting_version = 16 +type = quality +quality_type = normal +weight = 0 +global_quality = True + +[values] +layer_height = 0.16 +layer_height_0 = 0.2 +initial_layer_line_width_factor = 100 + +wall_thickness = 1.2 +wall_line_count = 3 +top_thickness = 0.8 +top_layers = 5 +bottom_thickness = 0.8 +bottom_layers = 5 +outer_inset_first = False +skin_outline_count = 0 + +; infill_line_distance = 8 +infill_sparse_density = 15 +infill_sparse_thickness = 0.16 +skin_preshrink = 1.2 +top_skin_preshrink = 1.2 +bottom_skin_preshrink = 1.2 +expand_skins_expand_distance = 1.2 +top_skin_expand_distance = 1.2 +bottom_skin_expand_distance = 1.2 + +speed_travel = 70 +speed_topbottom = 25 +speed_wall_x = 20 +speed_wall_0 = 15 +speed_wall = 30 +speed_infill = 50 +speed_print = 50 +speed_print_layer_0 = 18 +speed_travel_layer_0 = 24 +skirt_brim_speed = 18 + +retraction_hop = 1 +retraction_hop_enabled = False + +magic_spiralize = False +magic_mesh_surface_mode = normal + +adhesion_type = skirt +skirt_line_count = 1 +brim_width = 8 +brim_line_count = 20 +raft_margin = 15 + +support_enable = False +support_type = everywhere +support_pattern = zigzag +support_angle = 50 +support_infill_rate = 15 +support_line_distance = 2.66 +support_initial_layer_line_distance = 2.66 \ No newline at end of file diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_cpe_0.4_fast.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_cpe_0.4_fast.inst.cfg index a45f1d3e6c..228b0fb853 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_cpe_0.4_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_cpe_0.4_fast.inst.cfg @@ -27,3 +27,4 @@ speed_wall_0 = =math.ceil(speed_print * 30 / 45) speed_topbottom = =math.ceil(speed_print * 30 / 45) speed_wall_x = =math.ceil(speed_print * 40 / 45) speed_infill = =math.ceil(speed_print * 45 / 45) +retraction_combing_max_distance = 50 diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_cpe_0.4_high.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_cpe_0.4_high.inst.cfg index bcbc535fe0..b4f7f13a42 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_cpe_0.4_high.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_cpe_0.4_high.inst.cfg @@ -24,3 +24,4 @@ top_bottom_thickness = 0.72 wall_thickness = 1.05 speed_topbottom = =math.ceil(speed_print * 15 / 45) speed_infill = =math.ceil(speed_print * 45 / 45) +retraction_combing_max_distance = 50 diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_cpe_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_cpe_0.4_normal.inst.cfg index 71f2916a3a..6d417fe0f1 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_cpe_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_cpe_0.4_normal.inst.cfg @@ -22,3 +22,4 @@ speed_print = 45 speed_wall = =math.ceil(speed_print * 30 / 45) top_bottom_thickness = 0.8 wall_thickness = 1.05 +retraction_combing_max_distance = 50 diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.4_draft.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.4_draft.inst.cfg index ed6f5a0c5e..0d39ffadac 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.4_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.4_draft.inst.cfg @@ -34,7 +34,7 @@ speed_wall_0 = =math.ceil(speed_print * 20 / 25) speed_wall_x = =speed_print support_angle = 45 support_enable = True -support_infill_rate = =20 if support_enable else 0 if support_tree_enable else 20 +support_infill_rate = =0 if support_enable and support_structure == 'tree' else 20 support_pattern = lines support_z_distance = 0.26 top_bottom_thickness = 1.5 diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.4_normal.inst.cfg index 2aebe1e918..7589c59364 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.4_normal.inst.cfg @@ -34,7 +34,7 @@ speed_wall_0 = =math.ceil(speed_print * 20 / 35) speed_wall_x = =math.ceil(speed_print * 30 / 35) support_angle = 45 support_enable = True -support_infill_rate = =20 if support_enable else 0 if support_tree_enable else 20 +support_infill_rate = =0 if support_enable and support_structure == 'tree' else 20 support_pattern = lines support_z_distance = 0.26 top_bottom_thickness = 1.5 diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.6_draft.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.6_draft.inst.cfg index 78ffe10ce9..91f932df98 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.6_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.6_draft.inst.cfg @@ -36,7 +36,7 @@ speed_wall_0 = =math.ceil(speed_print * 20 / 25) speed_wall_x = =speed_print support_angle = 45 support_enable = True -support_infill_rate = =20 if support_enable else 0 if support_tree_enable else 20 +support_infill_rate = =0 if support_enable and support_structure == 'tree' else 20 support_line_distance = 2.85 support_pattern = lines support_xy_distance = 0.6 diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.6_normal.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.6_normal.inst.cfg index 2099ea7cbf..d7989f9f3b 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.6_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.6_normal.inst.cfg @@ -36,7 +36,7 @@ speed_wall_0 = =math.ceil(speed_print * 30 / 35) speed_wall_x = =speed_print support_angle = 45 support_enable = True -support_infill_rate = =20 if support_enable else 0 if support_tree_enable else 20 +support_infill_rate = =0 if support_enable and support_structure == 'tree' else 20 support_line_distance = 2.85 support_pattern = lines support_xy_distance = 0.6 diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.8_draft.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.8_draft.inst.cfg index bf4be03a20..8d7471ccd1 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.8_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.8_draft.inst.cfg @@ -33,7 +33,7 @@ speed_wall_0 = =math.ceil(speed_print * 20 / 25) speed_wall_x = =speed_print support_angle = 45 support_enable = True -support_infill_rate = =20 if support_enable else 0 if support_tree_enable else 20 +support_infill_rate = =0 if support_enable and support_structure == 'tree' else 20 support_pattern = lines support_z_distance = 0.26 top_bottom_thickness = 1.2 diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.8_normal.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.8_normal.inst.cfg index f1dd92db53..8a3ff137f1 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.8_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.8_normal.inst.cfg @@ -33,7 +33,7 @@ speed_wall_0 = =math.ceil(speed_print * 20 / 30) speed_wall_x = =speed_print support_angle = 45 support_enable = True -support_infill_rate = =20 if support_enable else 0 if support_tree_enable else 20 +support_infill_rate = =0 if support_enable and support_structure == 'tree' else 20 support_pattern = lines support_z_distance = 0.26 top_bottom_thickness = 1.2 diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_nylon_0.25_high.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_nylon_0.25_high.inst.cfg index 2fd638f0e9..7026181d38 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_nylon_0.25_high.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_nylon_0.25_high.inst.cfg @@ -34,7 +34,7 @@ speed_travel = 150 speed_wall_0 = =math.ceil(speed_print * 20 / 40) speed_wall_x = =speed_print support_enable = True -support_infill_rate = =20 if support_enable else 0 if support_tree_enable else 20 +support_infill_rate = =0 if support_enable and support_structure == 'tree' else 20 support_pattern = lines support_xy_distance = 0.6 support_z_distance = =layer_height * 2 diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_nylon_0.25_normal.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_nylon_0.25_normal.inst.cfg index d7a64e12c8..d11a53640d 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_nylon_0.25_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_nylon_0.25_normal.inst.cfg @@ -34,7 +34,7 @@ speed_travel = 150 speed_wall_0 = =math.ceil(speed_print * 20 / 40) speed_wall_x = =speed_print support_enable = True -support_infill_rate = =20 if support_enable else 0 if support_tree_enable else 20 +support_infill_rate = =0 if support_enable and support_structure == 'tree' else 20 support_pattern = lines support_xy_distance = 0.6 support_z_distance = =layer_height * 2 diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_nylon_0.4_fast.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_nylon_0.4_fast.inst.cfg index d62a4e79ee..5497712600 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_nylon_0.4_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_nylon_0.4_fast.inst.cfg @@ -33,7 +33,7 @@ speed_travel = 150 speed_wall = =math.ceil(speed_print * 40 / 45) support_angle = 45 support_enable = True -support_infill_rate = =25 if support_enable else 0 if support_tree_enable else 25 +support_infill_rate = =0 if support_enable and support_structure == 'tree' else 25 support_pattern = lines support_xy_distance = 0.6 support_z_distance = =layer_height * 2 diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_nylon_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_nylon_0.4_normal.inst.cfg index a6161c2a07..b966c9132a 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_nylon_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_nylon_0.4_normal.inst.cfg @@ -32,7 +32,7 @@ speed_travel = 150 speed_wall = =math.ceil(speed_print * 40 / 45) support_angle = 45 support_enable = True -support_infill_rate = =25 if support_enable else 0 if support_tree_enable else 25 +support_infill_rate = =0 if support_enable and support_structure == 'tree' else 25 support_pattern = lines support_xy_distance = 0.6 support_z_distance = =layer_height * 2 diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_nylon_0.6_fast.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_nylon_0.6_fast.inst.cfg index dbb90918b8..55a067f3aa 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_nylon_0.6_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_nylon_0.6_fast.inst.cfg @@ -37,7 +37,7 @@ speed_wall_x = =math.ceil(speed_print * 40 / 55) support_angle = 45 support_bottom_distance = 0.55 support_enable = True -support_infill_rate = =25 if support_enable else 0 if support_tree_enable else 25 +support_infill_rate = =0 if support_enable and support_structure == 'tree' else 25 support_pattern = lines support_top_distance = 0.55 support_xy_distance = 0.7 diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_nylon_0.6_normal.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_nylon_0.6_normal.inst.cfg index 172ef69c01..744985a7fc 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_nylon_0.6_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_nylon_0.6_normal.inst.cfg @@ -36,7 +36,7 @@ speed_wall_0 = =math.ceil(speed_print * 15 / 55) speed_wall_x = =math.ceil(speed_print * 40 / 55) support_angle = 45 support_enable = True -support_infill_rate = =25 if support_enable else 0 if support_tree_enable else 25 +support_infill_rate = =0 if support_enable and support_structure == 'tree' else 25 support_pattern = lines support_xy_distance = 0.7 support_z_distance = =layer_height * 2 diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_nylon_0.8_draft.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_nylon_0.8_draft.inst.cfg index c85bacb89e..f9510aa268 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_nylon_0.8_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_nylon_0.8_draft.inst.cfg @@ -36,7 +36,7 @@ speed_wall_x = =math.ceil(speed_print * 40 / 55) support_angle = 45 support_bottom_distance = 0.65 support_enable = True -support_infill_rate = =25 if support_enable else 0 if support_tree_enable else 25 +support_infill_rate = =0 if support_enable and support_structure == 'tree' else 25 support_pattern = lines support_top_distance = 0.5 support_xy_distance = 0.75 diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_nylon_0.8_normal.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_nylon_0.8_normal.inst.cfg index 153f206b19..548f61df37 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_nylon_0.8_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_nylon_0.8_normal.inst.cfg @@ -36,7 +36,7 @@ speed_wall_x = =math.ceil(speed_print * 40 / 55) support_angle = 45 support_bottom_distance = 0.65 support_enable = True -support_infill_rate = =25 if support_enable else 0 if support_tree_enable else 25 +support_infill_rate = =0 if support_enable and support_structure == 'tree' else 25 support_pattern = lines support_top_distance = 0.5 support_xy_distance = 0.75 diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_pc_0.25_high.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_pc_0.25_high.inst.cfg index 062e7f97b5..43e6ffd774 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_pc_0.25_high.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_pc_0.25_high.inst.cfg @@ -30,7 +30,7 @@ raft_surface_line_width = 0.2 speed_layer_0 = =round(speed_print * 30 / 30) speed_print = 30 support_enable = True -support_infill_rate = =20 if support_enable else 0 if support_tree_enable else 20 +support_infill_rate = =0 if support_enable and support_structure == 'tree' else 20 support_pattern = lines support_z_distance = 0.19 wall_thickness = 0.88 diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_pc_0.25_normal.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_pc_0.25_normal.inst.cfg index 20ab28f97b..cf67cdf35c 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_pc_0.25_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_pc_0.25_normal.inst.cfg @@ -30,7 +30,7 @@ raft_surface_line_width = 0.2 speed_layer_0 = =round(speed_print * 30 / 30) speed_print = 30 support_enable = True -support_infill_rate = =20 if support_enable else 0 if support_tree_enable else 20 +support_infill_rate = =0 if support_enable and support_structure == 'tree' else 20 support_pattern = lines support_z_distance = 0.19 wall_thickness = 0.88 diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_pc_0.4_fast.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_pc_0.4_fast.inst.cfg index 249bfb9053..3c3b01cf4b 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_pc_0.4_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_pc_0.4_fast.inst.cfg @@ -31,7 +31,7 @@ speed_wall_0 = =math.ceil(speed_print * 20 / 45) speed_wall_x = =math.ceil(speed_print * 30 / 45) support_angle = 45 support_enable = True -support_infill_rate = =20 if support_enable else 0 if support_tree_enable else 20 +support_infill_rate = =0 if support_enable and support_structure == 'tree' else 20 support_pattern = lines support_z_distance = 0.19 wall_thickness = 1.2 diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_pc_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_pc_0.4_normal.inst.cfg index 86a2dabb6f..2ef73c0ba6 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_pc_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_pc_0.4_normal.inst.cfg @@ -31,7 +31,7 @@ speed_wall_0 = =math.ceil(speed_print * 20 / 45) speed_wall_x = =math.ceil(speed_print * 30 / 45) support_angle = 45 support_enable = True -support_infill_rate = =20 if support_enable else 0 if support_tree_enable else 20 +support_infill_rate = =0 if support_enable and support_structure == 'tree' else 20 support_pattern = lines support_z_distance = 0.19 wall_thickness = 1.2 diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_pc_0.6_fast.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_pc_0.6_fast.inst.cfg index 95bbbff2d3..ed02c4d22a 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_pc_0.6_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_pc_0.6_fast.inst.cfg @@ -35,7 +35,7 @@ speed_wall_0 = =math.ceil(speed_print * 30 / 45) speed_wall_x = =math.ceil(speed_print * 40 / 45) support_angle = 45 support_enable = True -support_infill_rate = =20 if support_enable else 0 if support_tree_enable else 20 +support_infill_rate = =0 if support_enable and support_structure == 'tree' else 20 support_line_distance = 3.5333 support_pattern = lines support_z_distance = 0.21 diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_pc_0.6_normal.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_pc_0.6_normal.inst.cfg index c4f451d972..75edf9330b 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_pc_0.6_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_pc_0.6_normal.inst.cfg @@ -35,7 +35,7 @@ speed_wall_0 = =math.ceil(speed_print * 30 / 45) speed_wall_x = =math.ceil(speed_print * 40 / 45) support_angle = 45 support_enable = True -support_infill_rate = =20 if support_enable else 0 if support_tree_enable else 20 +support_infill_rate = =0 if support_enable and support_structure == 'tree' else 20 support_line_distance = 3.5333 support_pattern = lines support_z_distance = 0.21 diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_pc_0.8_normal.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_pc_0.8_normal.inst.cfg index c9fe800c7b..72ef057e7e 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_pc_0.8_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_pc_0.8_normal.inst.cfg @@ -30,7 +30,7 @@ speed_layer_0 = =round(speed_print * 30 / 40) speed_print = 40 support_angle = 45 support_enable = True -support_infill_rate = =20 if support_enable else 0 if support_tree_enable else 20 +support_infill_rate = =0 if support_structure == 'tree' else 20 support_pattern = lines support_z_distance = 0.26 top_bottom_thickness = 1.2 diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_tpu_0.25_high.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_tpu_0.25_high.inst.cfg index f03f8ca03d..0948aa2af5 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_tpu_0.25_high.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_tpu_0.25_high.inst.cfg @@ -35,7 +35,7 @@ speed_wall_0 = =math.ceil(speed_print * 15 / 40) speed_wall_x = =math.ceil(speed_print * 38 / 40) support_angle = 45 support_enable = True -support_infill_rate = =25 if support_enable else 0 if support_tree_enable else 25 +support_infill_rate = =0 if support_enable and support_structure == 'tree' else 25 support_xy_distance = 0.6 support_z_distance = =layer_height * 2 top_bottom_thickness = 1.2 diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_tpu_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_tpu_0.4_normal.inst.cfg index 40e8daa71f..c14808ccde 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_tpu_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_tpu_0.4_normal.inst.cfg @@ -33,7 +33,7 @@ speed_wall_0 = =math.ceil(speed_print * 20 / 40) speed_wall_x = =math.ceil(speed_print * 35 / 40) support_angle = 45 support_enable = True -support_infill_rate = =25 if support_enable else 0 if support_tree_enable else 25 +support_infill_rate = =0 if support_enable and support_structure == 'tree' else 25 support_xy_distance = 0.65 support_z_distance = =layer_height * 2 top_bottom_thickness = 1.2 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.25_Nylon_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.25_Nylon_Normal_Quality.inst.cfg index 08a27aa3b4..0cef0f11da 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.25_Nylon_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.25_Nylon_Normal_Quality.inst.cfg @@ -19,7 +19,7 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 ooze_shield_angle = 40 raft_acceleration = =acceleration_layer_0 -raft_airgap = =round(layer_height_0 * 0.85, 2) +raft_airgap = 0.4 raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 3) raft_jerk = =jerk_layer_0 raft_margin = 10 @@ -33,6 +33,5 @@ switch_extruder_prime_speed = 30 switch_extruder_retraction_amount = 30 switch_extruder_retraction_speeds = 40 wall_line_width_x = =wall_line_width -raft_airgap = 0.4 raft_surface_speed = 45 speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_ABS_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_ABS_Draft_Print.inst.cfg index 9a8ed386c0..3ed16d3420 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_ABS_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_ABS_Draft_Print.inst.cfg @@ -20,7 +20,7 @@ material_final_print_temperature = =material_print_temperature - 20 prime_tower_enable = False skin_overlap = 20 speed_print = 60 -speed_layer_0 = =math.ceil(speed_print * 20 / 60) +speed_layer_0 = 10 speed_topbottom = =math.ceil(speed_print * 35 / 60) speed_wall = =math.ceil(speed_print * 45 / 60) speed_wall_0 = =math.ceil(speed_wall * 35 / 45) @@ -30,4 +30,3 @@ infill_line_width = =round(line_width * 0.4 / 0.35, 2) speed_infill = =math.ceil(speed_print * 50 / 60) raft_airgap = 0.15 -speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_ABS_Fast_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_ABS_Fast_Print.inst.cfg index 615e8cc487..75619973a8 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_ABS_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_ABS_Fast_Print.inst.cfg @@ -20,7 +20,7 @@ material_initial_print_temperature = =material_print_temperature - 15 material_final_print_temperature = =material_print_temperature - 20 prime_tower_enable = False speed_print = 60 -speed_layer_0 = =math.ceil(speed_print * 20 / 60) +speed_layer_0 = 10 speed_topbottom = =math.ceil(speed_print * 30 / 60) speed_wall = =math.ceil(speed_print * 40 / 60) speed_wall_0 = =math.ceil(speed_wall * 30 / 40) @@ -29,4 +29,3 @@ infill_line_width = =round(line_width * 0.4 / 0.35, 2) speed_infill = =math.ceil(speed_print * 45 / 60) raft_airgap = 0.15 -speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_ABS_High_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_ABS_High_Quality.inst.cfg index 10149781cb..5edfda7541 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_ABS_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_ABS_High_Quality.inst.cfg @@ -20,7 +20,7 @@ material_initial_print_temperature = =material_print_temperature - 15 material_final_print_temperature = =material_print_temperature - 20 prime_tower_enable = False speed_print = 50 -speed_layer_0 = =math.ceil(speed_print * 20 / 50) +speed_layer_0 = 10 speed_topbottom = =math.ceil(speed_print * 30 / 50) speed_wall = =math.ceil(speed_print * 30 / 50) @@ -28,4 +28,3 @@ infill_line_width = =round(line_width * 0.4 / 0.35, 2) speed_infill = =math.ceil(speed_print * 40 / 50) raft_airgap = 0.15 -speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_ABS_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_ABS_Normal_Quality.inst.cfg index 137a316f14..6aba500231 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_ABS_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_ABS_Normal_Quality.inst.cfg @@ -19,7 +19,7 @@ material_initial_print_temperature = =material_print_temperature - 15 material_final_print_temperature = =material_print_temperature - 20 prime_tower_enable = False speed_print = 55 -speed_layer_0 = =math.ceil(speed_print * 20 / 55) +speed_layer_0 = 10 speed_topbottom = =math.ceil(speed_print * 30 / 55) speed_wall = =math.ceil(speed_print * 30 / 55) @@ -27,4 +27,3 @@ infill_line_width = =round(line_width * 0.4 / 0.35, 2) speed_infill = =math.ceil(speed_print * 40 / 55) raft_airgap = 0.15 -speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_Draft_Print.inst.cfg index f98d5c5d70..4949817547 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_Draft_Print.inst.cfg @@ -23,13 +23,13 @@ material_final_print_temperature = =material_print_temperature - 10 material_standby_temperature = 100 ooze_shield_angle = 40 raft_acceleration = =acceleration_layer_0 -raft_airgap = =round(layer_height_0 * 0.85, 2) +raft_airgap = 0.4 raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 2) raft_jerk = =jerk_layer_0 raft_margin = 10 raft_surface_thickness = =round(machine_nozzle_size * 0.2 / 0.4, 2) skin_overlap = 50 -speed_layer_0 = =math.ceil(speed_print * 20 / 70) +speed_layer_0 = 10 switch_extruder_prime_speed = 30 switch_extruder_retraction_amount = 30 switch_extruder_retraction_speeds = 40 @@ -37,6 +37,4 @@ wall_line_width_x = =wall_line_width jerk_travel = 50 -raft_airgap = 0.4 raft_surface_speed = 45 -speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_Fast_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_Fast_Print.inst.cfg index 9e4d40bcf3..026783cf17 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_Fast_Print.inst.cfg @@ -23,13 +23,13 @@ material_final_print_temperature = =material_print_temperature - 10 material_standby_temperature = 100 ooze_shield_angle = 40 raft_acceleration = =acceleration_layer_0 -raft_airgap = =round(layer_height_0 * 0.85, 2) +raft_airgap = 0.4 raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 2) raft_jerk = =jerk_layer_0 raft_margin = 10 raft_surface_thickness = =round(machine_nozzle_size * 0.2 / 0.4, 2) skin_overlap = 50 -speed_layer_0 = =math.ceil(speed_print * 20 / 70) +speed_layer_0 = 10 switch_extruder_prime_speed = 30 switch_extruder_retraction_amount = 30 switch_extruder_retraction_speeds = 40 @@ -37,6 +37,4 @@ wall_line_width_x = =wall_line_width jerk_travel = 50 -raft_airgap = 0.4 raft_surface_speed = 45 -speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_High_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_High_Quality.inst.cfg index 755127b66f..f23ad38956 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_High_Quality.inst.cfg @@ -22,13 +22,13 @@ material_final_print_temperature = =material_print_temperature - 10 material_standby_temperature = 100 ooze_shield_angle = 40 raft_acceleration = =acceleration_layer_0 -raft_airgap = =round(layer_height_0 * 0.85, 2) +raft_airgap = 0.4 raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 2) raft_jerk = =jerk_layer_0 raft_margin = 10 raft_surface_thickness = =round(machine_nozzle_size * 0.2 / 0.4, 2) skin_overlap = 50 -speed_layer_0 = =math.ceil(speed_print * 20 / 70) +speed_layer_0 = 10 switch_extruder_prime_speed = 30 switch_extruder_retraction_amount = 30 switch_extruder_retraction_speeds = 40 @@ -36,6 +36,4 @@ wall_line_width_x = =wall_line_width jerk_travel = 50 -raft_airgap = 0.4 raft_surface_speed = 45 -speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_Normal_Quality.inst.cfg index 26f0b52f91..b97c0b9ffe 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_Nylon_Normal_Quality.inst.cfg @@ -22,13 +22,13 @@ material_final_print_temperature = =material_print_temperature - 10 material_standby_temperature = 100 ooze_shield_angle = 40 raft_acceleration = =acceleration_layer_0 -raft_airgap = =round(layer_height_0 * 0.85, 2) +raft_airgap = 0.4 raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 2) raft_jerk = =jerk_layer_0 raft_margin = 10 raft_surface_thickness = =round(machine_nozzle_size * 0.2 / 0.4, 2) skin_overlap = 50 -speed_layer_0 = =math.ceil(speed_print * 20 / 70) +speed_layer_0 = 10 switch_extruder_prime_speed = 30 switch_extruder_retraction_amount = 30 switch_extruder_retraction_speeds = 40 @@ -36,6 +36,4 @@ wall_line_width_x = =wall_line_width jerk_travel = 50 -raft_airgap = 0.4 raft_surface_speed = 45 -speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_PLA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_PLA_Draft_Print.inst.cfg index c5613e0f49..81be2ebb6d 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_PLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_PLA_Draft_Print.inst.cfg @@ -20,7 +20,7 @@ material_print_temperature = =default_material_print_temperature + 5 material_standby_temperature = 100 prime_tower_enable = False skin_overlap = 20 -speed_layer_0 = =math.ceil(speed_print * 20 / 70) +speed_layer_0 = 10 speed_topbottom = =math.ceil(speed_print * 40 / 70) speed_wall = =math.ceil(speed_print * 55 / 70) speed_wall_0 = =math.ceil(speed_wall * 45 / 50) @@ -35,4 +35,3 @@ acceleration_wall = 2000 acceleration_wall_0 = 2000 raft_airgap = 0.25 -speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_PLA_Fast_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_PLA_Fast_Print.inst.cfg index 17967f923c..e57fc51db1 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_PLA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_PLA_Fast_Print.inst.cfg @@ -19,7 +19,7 @@ machine_nozzle_heat_up_speed = 1.6 material_standby_temperature = 100 prime_tower_enable = False speed_print = 70 -speed_layer_0 = =math.ceil(speed_print * 20 / 70) +speed_layer_0 = 10 speed_topbottom = =math.ceil(speed_print * 35 / 70) speed_wall = =math.ceil(speed_print * 45 / 70) speed_wall_0 = =math.ceil(speed_wall * 35 / 70) @@ -31,4 +31,3 @@ infill_line_width = =round(line_width * 0.42 / 0.35, 2) layer_height_0 = 0.2 raft_airgap = 0.25 -speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_PLA_High_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_PLA_High_Quality.inst.cfg index 1c271f6af1..5abeff6589 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_PLA_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_PLA_High_Quality.inst.cfg @@ -22,7 +22,7 @@ material_standby_temperature = 100 prime_tower_enable = False skin_overlap = 10 speed_print = 50 -speed_layer_0 = =math.ceil(speed_print * 20 / 50) +speed_layer_0 = 10 speed_topbottom = =math.ceil(speed_print * 35 / 50) speed_wall = =math.ceil(speed_print * 35 / 50) top_bottom_thickness = 1 @@ -33,4 +33,3 @@ infill_line_width = =round(line_width * 0.42 / 0.35, 2) layer_height_0 = 0.2 raft_airgap = 0.25 -speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_PLA_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_PLA_Normal_Quality.inst.cfg index 0aae33c115..56ab049b3b 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_PLA_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_PLA_Normal_Quality.inst.cfg @@ -20,7 +20,7 @@ machine_nozzle_heat_up_speed = 1.6 material_standby_temperature = 100 prime_tower_enable = False skin_overlap = 10 -speed_layer_0 = =math.ceil(speed_print * 20 / 70) +speed_layer_0 = 10 top_bottom_thickness = 1 wall_thickness = 1 @@ -29,4 +29,3 @@ infill_line_width = =round(line_width * 0.42 / 0.35, 2) layer_height_0 = 0.2 raft_airgap = 0.25 -speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_Draft_Print.inst.cfg index 193e6de18b..5689aaff8b 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_Draft_Print.inst.cfg @@ -20,7 +20,7 @@ material_final_print_temperature = =material_print_temperature - 20 prime_tower_enable = False skin_overlap = 20 speed_print = 60 -speed_layer_0 = =math.ceil(speed_print * 20 / 60) +speed_layer_0 = 10 speed_topbottom = =math.ceil(speed_print * 35 / 60) speed_wall = =math.ceil(speed_print * 45 / 60) speed_wall_0 = =math.ceil(speed_wall * 35 / 45) @@ -30,4 +30,3 @@ infill_line_width = =round(line_width * 0.4 / 0.35, 2) speed_infill = =math.ceil(speed_print * 50 / 60) raft_airgap = 0.15 -speed_layer_0 = 10 \ No newline at end of file diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_Fast_Print.inst.cfg index 1aae14fe6b..854858ee5b 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_Fast_Print.inst.cfg @@ -20,7 +20,7 @@ material_initial_print_temperature = =material_print_temperature - 15 material_final_print_temperature = =material_print_temperature - 20 prime_tower_enable = False speed_print = 60 -speed_layer_0 = =math.ceil(speed_print * 20 / 60) +speed_layer_0 = 10 speed_topbottom = =math.ceil(speed_print * 30 / 60) speed_wall = =math.ceil(speed_print * 40 / 60) speed_wall_0 = =math.ceil(speed_wall * 30 / 40) @@ -29,4 +29,3 @@ infill_line_width = =round(line_width * 0.4 / 0.35, 2) speed_infill = =math.ceil(speed_print * 45 / 60) raft_airgap = 0.15 -speed_layer_0 = 10 \ No newline at end of file diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_High_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_High_Quality.inst.cfg index 1c57587309..bb75703f87 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_High_Quality.inst.cfg @@ -20,7 +20,7 @@ material_initial_print_temperature = =material_print_temperature - 15 material_final_print_temperature = =material_print_temperature - 20 prime_tower_enable = False speed_print = 50 -speed_layer_0 = =math.ceil(speed_print * 20 / 50) +speed_layer_0 = 10 speed_topbottom = =math.ceil(speed_print * 30 / 50) speed_wall = =math.ceil(speed_print * 30 / 50) @@ -28,4 +28,3 @@ infill_line_width = =round(line_width * 0.4 / 0.35, 2) speed_infill = =math.ceil(speed_print * 40 / 50) raft_airgap = 0.15 -speed_layer_0 = 10 \ No newline at end of file diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_Normal_Quality.inst.cfg index ec2819cf93..4c850c4904 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_Normal_Quality.inst.cfg @@ -19,11 +19,10 @@ material_initial_print_temperature = =material_print_temperature - 15 material_final_print_temperature = =material_print_temperature - 20 prime_tower_enable = False speed_print = 55 -speed_layer_0 = =math.ceil(speed_print * 20 / 55) +speed_layer_0 = 10 speed_topbottom = =math.ceil(speed_print * 30 / 55) speed_wall = =math.ceil(speed_print * 30 / 55) infill_line_width = =round(line_width * 0.4 / 0.35, 2) speed_infill = =math.ceil(speed_print * 40 / 55) raft_airgap = 0.15 -speed_layer_0 = 10 \ No newline at end of file diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Draft_Print.inst.cfg index 0f1f2c872b..bd42d349c5 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Draft_Print.inst.cfg @@ -23,19 +23,17 @@ material_final_print_temperature = =material_print_temperature - 10 material_standby_temperature = 100 ooze_shield_angle = 40 raft_acceleration = =acceleration_layer_0 -raft_airgap = =round(layer_height_0 * 0.85, 2) +raft_airgap = 0.4 raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 2) raft_jerk = =jerk_layer_0 raft_margin = 10 raft_surface_thickness = =round(machine_nozzle_size * 0.2 / 0.4, 2) skin_overlap = 50 -speed_layer_0 = =math.ceil(speed_print * 20 / 70) +speed_layer_0 = 10 switch_extruder_prime_speed = 30 switch_extruder_retraction_amount = 30 switch_extruder_retraction_speeds = 40 wall_line_width_x = =wall_line_width jerk_travel = 50 -raft_airgap = 0.4 raft_surface_speed = 45 -speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Fast_Print.inst.cfg index d3e3e43830..9fe2328c88 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Fast_Print.inst.cfg @@ -23,19 +23,17 @@ material_final_print_temperature = =material_print_temperature - 10 material_standby_temperature = 100 ooze_shield_angle = 40 raft_acceleration = =acceleration_layer_0 -raft_airgap = =round(layer_height_0 * 0.85, 2) +raft_airgap = 0.4 raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 2) raft_jerk = =jerk_layer_0 raft_margin = 10 raft_surface_thickness = =round(machine_nozzle_size * 0.2 / 0.4, 2) skin_overlap = 50 -speed_layer_0 = =math.ceil(speed_print * 20 / 70) +speed_layer_0 = 10 switch_extruder_prime_speed = 30 switch_extruder_retraction_amount = 30 switch_extruder_retraction_speeds = 40 wall_line_width_x = =wall_line_width jerk_travel = 50 -raft_airgap = 0.4 raft_surface_speed = 45 -speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_High_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_High_Quality.inst.cfg index 4a838d3b02..6bfd398d12 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_High_Quality.inst.cfg @@ -22,19 +22,17 @@ material_final_print_temperature = =material_print_temperature - 10 material_standby_temperature = 100 ooze_shield_angle = 40 raft_acceleration = =acceleration_layer_0 -raft_airgap = =round(layer_height_0 * 0.85, 2) +raft_airgap = 0.4 raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 2) raft_jerk = =jerk_layer_0 raft_margin = 10 raft_surface_thickness = =round(machine_nozzle_size * 0.2 / 0.4, 2) skin_overlap = 50 -speed_layer_0 = =math.ceil(speed_print * 20 / 70) +speed_layer_0 = 10 switch_extruder_prime_speed = 30 switch_extruder_retraction_amount = 30 switch_extruder_retraction_speeds = 40 wall_line_width_x = =wall_line_width jerk_travel = 50 -raft_airgap = 0.4 raft_surface_speed = 45 -speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Normal_Quality.inst.cfg index 8c86a63b0b..7832217f95 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Normal_Quality.inst.cfg @@ -22,19 +22,17 @@ material_final_print_temperature = =material_print_temperature - 10 material_standby_temperature = 100 ooze_shield_angle = 40 raft_acceleration = =acceleration_layer_0 -raft_airgap = =round(layer_height_0 * 0.85, 2) +raft_airgap = 0.4 raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 2) raft_jerk = =jerk_layer_0 raft_margin = 10 raft_surface_thickness = =round(machine_nozzle_size * 0.2 / 0.4, 2) skin_overlap = 50 -speed_layer_0 = =math.ceil(speed_print * 20 / 70) +speed_layer_0 = 10 switch_extruder_prime_speed = 30 switch_extruder_retraction_amount = 30 switch_extruder_retraction_speeds = 40 wall_line_width_x = =wall_line_width jerk_travel = 50 -raft_airgap = 0.4 raft_surface_speed = 45 -speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_Draft_Print.inst.cfg index 25235ba336..dd674e9a6b 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_Draft_Print.inst.cfg @@ -21,7 +21,7 @@ material_standby_temperature = 100 prime_tower_enable = False skin_edge_support_thickness = =0.8 if infill_sparse_density < 30 else 0 skin_overlap = 20 -speed_layer_0 = =math.ceil(speed_print * 20 / 70) +speed_layer_0 = 10 speed_topbottom = =math.ceil(speed_print * 40 / 70) speed_wall = =math.ceil(speed_print * 55 / 70) speed_wall_0 = =math.ceil(speed_wall * 45 / 50) @@ -35,4 +35,3 @@ layer_height_0 = 0.2 acceleration_wall = 2000 acceleration_wall_0 = 2000 raft_airgap = 0.25 -speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_Fast_Print.inst.cfg index f9ed0bc62a..d743e3fc31 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_Fast_Print.inst.cfg @@ -19,7 +19,7 @@ machine_nozzle_heat_up_speed = 1.6 material_standby_temperature = 100 prime_tower_enable = False speed_print = 70 -speed_layer_0 = =math.ceil(speed_print * 20 / 70) +speed_layer_0 = 10 speed_topbottom = =math.ceil(speed_print * 35 / 70) speed_wall = =math.ceil(speed_print * 45 / 70) speed_wall_0 = =math.ceil(speed_wall * 35 / 70) @@ -30,4 +30,3 @@ jerk_travel = 50 infill_line_width = =round(line_width * 0.42 / 0.35, 2) layer_height_0 = 0.2 raft_airgap = 0.25 -speed_layer_0 = 10 \ No newline at end of file diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_High_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_High_Quality.inst.cfg index 23042d0f23..4c69195362 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_High_Quality.inst.cfg @@ -22,7 +22,7 @@ material_standby_temperature = 100 prime_tower_enable = False skin_overlap = 10 speed_print = 50 -speed_layer_0 = =math.ceil(speed_print * 20 / 50) +speed_layer_0 = 10 speed_topbottom = =math.ceil(speed_print * 35 / 50) speed_wall = =math.ceil(speed_print * 35 / 50) top_bottom_thickness = 1 @@ -32,4 +32,3 @@ jerk_travel = 50 infill_line_width = =round(line_width * 0.42 / 0.35, 2) layer_height_0 = 0.2 raft_airgap = 0.25 -speed_layer_0 = 10 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_Normal_Quality.inst.cfg index c0414898af..462e2b37bd 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_Normal_Quality.inst.cfg @@ -20,7 +20,7 @@ machine_nozzle_heat_up_speed = 1.6 material_standby_temperature = 100 prime_tower_enable = False skin_overlap = 10 -speed_layer_0 = =math.ceil(speed_print * 20 / 70) +speed_layer_0 = 10 top_bottom_thickness = 1 wall_thickness = 1 @@ -28,4 +28,3 @@ jerk_travel = 50 infill_line_width = =round(line_width * 0.42 / 0.35, 2) layer_height_0 = 0.2 raft_airgap = 0.25 -speed_layer_0 = 10 diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 7bb8156458..e897969a5e 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -630,6 +630,8 @@ "monitor_external_link_icon": [1.16, 1.16], "monitor_column": [18.0, 1.0], "monitor_progress_bar": [16.5, 1.0], - "monitor_margin": [1.5, 1.5] + "monitor_margin": [1.5, 1.5], + + "table_row": [2.0, 2.0] } } diff --git a/resources/variants/mingda_base_0.2.inst.cfg b/resources/variants/mingda_base_0.2.inst.cfg new file mode 100644 index 0000000000..97c42d6950 --- /dev/null +++ b/resources/variants/mingda_base_0.2.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.2mm Nozzle +version = 4 +definition = mingda_base + +[metadata] +setting_version = 16 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.2 diff --git a/resources/variants/mingda_base_0.3.inst.cfg b/resources/variants/mingda_base_0.3.inst.cfg new file mode 100644 index 0000000000..fea77ffde2 --- /dev/null +++ b/resources/variants/mingda_base_0.3.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.3mm Nozzle +version = 4 +definition = mingda_base + +[metadata] +setting_version = 16 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.3 diff --git a/resources/variants/mingda_base_0.4.inst.cfg b/resources/variants/mingda_base_0.4.inst.cfg new file mode 100644 index 0000000000..6da23aef60 --- /dev/null +++ b/resources/variants/mingda_base_0.4.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.4mm Nozzle +version = 4 +definition = mingda_base + +[metadata] +setting_version = 16 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.4 diff --git a/resources/variants/mingda_base_0.6.inst.cfg b/resources/variants/mingda_base_0.6.inst.cfg new file mode 100644 index 0000000000..d478c2d596 --- /dev/null +++ b/resources/variants/mingda_base_0.6.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.6mm Nozzle +version = 4 +definition = mingda_base + +[metadata] +setting_version = 16 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.6 diff --git a/resources/variants/mingda_base_0.8.inst.cfg b/resources/variants/mingda_base_0.8.inst.cfg new file mode 100644 index 0000000000..3e0cc6e913 --- /dev/null +++ b/resources/variants/mingda_base_0.8.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.8mm Nozzle +version = 4 +definition = mingda_base + +[metadata] +setting_version = 16 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.8 diff --git a/resources/variants/mingda_base_1.0.inst.cfg b/resources/variants/mingda_base_1.0.inst.cfg new file mode 100644 index 0000000000..72cb23ac11 --- /dev/null +++ b/resources/variants/mingda_base_1.0.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 1.0mm Nozzle +version = 4 +definition = mingda_base + +[metadata] +setting_version = 16 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 1.0 diff --git a/resources/variants/mingda_d2_0.2.inst.cfg b/resources/variants/mingda_d2_0.2.inst.cfg new file mode 100644 index 0000000000..8a5aa48df1 --- /dev/null +++ b/resources/variants/mingda_d2_0.2.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.2mm Nozzle +version = 4 +definition = mingda_d2 + +[metadata] +setting_version = 16 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.2 diff --git a/resources/variants/mingda_d2_0.3.inst.cfg b/resources/variants/mingda_d2_0.3.inst.cfg new file mode 100644 index 0000000000..0e9fd36dc7 --- /dev/null +++ b/resources/variants/mingda_d2_0.3.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.3mm Nozzle +version = 4 +definition = mingda_d2 + +[metadata] +setting_version = 16 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.3 diff --git a/resources/variants/mingda_d2_0.4.inst.cfg b/resources/variants/mingda_d2_0.4.inst.cfg new file mode 100644 index 0000000000..bd7d3b6804 --- /dev/null +++ b/resources/variants/mingda_d2_0.4.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.4mm Nozzle +version = 4 +definition = mingda_d2 + +[metadata] +setting_version = 16 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.4 diff --git a/resources/variants/mingda_d2_0.5.inst.cfg b/resources/variants/mingda_d2_0.5.inst.cfg new file mode 100644 index 0000000000..50c2f4497c --- /dev/null +++ b/resources/variants/mingda_d2_0.5.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.5mm Nozzle +version = 4 +definition = mingda_d2 + +[metadata] +setting_version = 16 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.5 diff --git a/resources/variants/mingda_d2_0.6.inst.cfg b/resources/variants/mingda_d2_0.6.inst.cfg new file mode 100644 index 0000000000..58500e6a39 --- /dev/null +++ b/resources/variants/mingda_d2_0.6.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.6mm Nozzle +version = 4 +definition = mingda_d2 + +[metadata] +setting_version = 16 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.6 diff --git a/resources/variants/mingda_d2_0.8.inst.cfg b/resources/variants/mingda_d2_0.8.inst.cfg new file mode 100644 index 0000000000..fb59e5a7cd --- /dev/null +++ b/resources/variants/mingda_d2_0.8.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 0.8mm Nozzle +version = 4 +definition = mingda_d2 + +[metadata] +setting_version = 16 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.8 diff --git a/resources/variants/mingda_d2_1.0.inst.cfg b/resources/variants/mingda_d2_1.0.inst.cfg new file mode 100644 index 0000000000..f42b7da1ef --- /dev/null +++ b/resources/variants/mingda_d2_1.0.inst.cfg @@ -0,0 +1,12 @@ +[general] +name = 1.0mm Nozzle +version = 4 +definition = mingda_d2 + +[metadata] +setting_version = 16 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 1.0 diff --git a/tests/TestBuildVolume.py b/tests/TestBuildVolume.py index c5d59b64d7..293b8e0270 100644 --- a/tests/TestBuildVolume.py +++ b/tests/TestBuildVolume.py @@ -66,9 +66,12 @@ class TestCalculateBedAdhesionSize: return properties.get(args[2]) def createAndSetGlobalStack(self, build_volume): - mocked_stack = MagicMock() + mocked_stack = MagicMock(name = "mocked_stack") mocked_stack.getProperty = MagicMock(side_effect=self.getPropertySideEffect) + mocked_extruder = MagicMock(name = "mocked_extruder") + mocked_extruder.getProperty = MagicMock(side_effect=self.getPropertySideEffect) + mocked_stack.extruderList = [mocked_extruder] build_volume._global_container_stack = mocked_stack def test_noGlobalStack(self, build_volume: BuildVolume): @@ -90,6 +93,7 @@ class TestCalculateBedAdhesionSize: self.createAndSetGlobalStack(build_volume) patched_dictionary = self.setting_property_dict.copy() patched_dictionary.update(setting_dict) + patched_dictionary.update({"adhesion_extruder_nr": {"value": 0}}) with patch.dict(self.setting_property_dict, patched_dictionary): assert build_volume._calculateBedAdhesionSize([]) == result