From ad70566dc686629168cbbc4ad202a149791550e3 Mon Sep 17 00:00:00 2001 From: joeydelarago Date: Wed, 10 Aug 2022 17:34:48 +0200 Subject: [PATCH 01/89] Added a message for pending approval status. Updated CloudPrintJobResponse to use an enum for status CURA-9221 --- .../src/Cloud/CloudOutputDevice.py | 7 +++++- .../PrintJobAwaitingApprovalMessage.py | 25 +++++++++++++++++++ .../src/Models/Http/CloudPrintJobResponse.py | 9 ++++++- 3 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 plugins/UM3NetworkPrinting/src/Messages/PrintJobAwaitingApprovalMessage.py diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py index 6431d09b7b..0eb0644676 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py @@ -21,6 +21,7 @@ from cura.PrinterOutput.PrinterOutputDevice import ConnectionType from .CloudApiClient import CloudApiClient from ..ExportFileJob import ExportFileJob +from ..Messages.PrintJobAwaitingApprovalMessage import PrintJobPendingApprovalMessage from ..UltimakerNetworkedPrinterOutputDevice import UltimakerNetworkedPrinterOutputDevice from ..Messages.PrintJobUploadBlockedMessage import PrintJobUploadBlockedMessage from ..Messages.PrintJobUploadErrorMessage import PrintJobUploadErrorMessage @@ -30,7 +31,7 @@ from ..Models.Http.CloudClusterResponse import CloudClusterResponse from ..Models.Http.CloudClusterStatus import CloudClusterStatus from ..Models.Http.CloudPrintJobUploadRequest import CloudPrintJobUploadRequest from ..Models.Http.CloudPrintResponse import CloudPrintResponse -from ..Models.Http.CloudPrintJobResponse import CloudPrintJobResponse +from ..Models.Http.CloudPrintJobResponse import CloudPrintJobResponse, CloudUploadStatus from ..Models.Http.ClusterPrinterStatus import ClusterPrinterStatus from ..Models.Http.ClusterPrintJobStatus import ClusterPrintJobStatus @@ -230,6 +231,10 @@ class CloudOutputDevice(UltimakerNetworkedPrinterOutputDevice): :param job_response: The response received from the cloud API. """ + + if job_response.status is CloudUploadStatus.WAIT_APPROVAL: + PrintJobPendingApprovalMessage().show() + if not self._tool_path: return self._onUploadError() self._pre_upload_print_job = job_response # store the last uploaded job to prevent re-upload of the same file diff --git a/plugins/UM3NetworkPrinting/src/Messages/PrintJobAwaitingApprovalMessage.py b/plugins/UM3NetworkPrinting/src/Messages/PrintJobAwaitingApprovalMessage.py new file mode 100644 index 0000000000..cacfcd362b --- /dev/null +++ b/plugins/UM3NetworkPrinting/src/Messages/PrintJobAwaitingApprovalMessage.py @@ -0,0 +1,25 @@ +# Copyright (c) 2022 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. +from UM import i18nCatalog +from UM.Message import Message + + +I18N_CATALOG = i18nCatalog("cura") + + +class PrintJobPendingApprovalMessage(Message): + """Message shown when waiting for approval on an uploaded print job.""" + + def __init__(self) -> None: + super().__init__( + text = I18N_CATALOG.i18nc("@info:status", "The print job was succesfully submitted"), + title=I18N_CATALOG.i18nc("@info:title", "You will recieve a confirmation via email when the print job is approved"), + message_type=Message.MessageType.POSITIVE + ) + self.self.addAction("learn_more", + I18N_CATALOG.i18nc("@action", "Learn more"), + "", + "", + "", + button_style = Message.ActionButtonStyle.LINK, + button_align = Message.ActionButtonAlignment.ALIGN_LEFT) diff --git a/plugins/UM3NetworkPrinting/src/Models/Http/CloudPrintJobResponse.py b/plugins/UM3NetworkPrinting/src/Models/Http/CloudPrintJobResponse.py index 83cbb5a030..eb824c2708 100644 --- a/plugins/UM3NetworkPrinting/src/Models/Http/CloudPrintJobResponse.py +++ b/plugins/UM3NetworkPrinting/src/Models/Http/CloudPrintJobResponse.py @@ -1,5 +1,6 @@ # Copyright (c) 2019 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. +from enum import Enum from typing import Optional from ..BaseModel import BaseModel @@ -25,7 +26,7 @@ class CloudPrintJobResponse(BaseModel): """ self.job_id = job_id - self.status = status + self.status: CloudUploadStatus = CloudUploadStatus(status) self.download_url = download_url self.job_name = job_name self.upload_url = upload_url @@ -33,3 +34,9 @@ class CloudPrintJobResponse(BaseModel): self.status_description = status_description self.slicing_details = slicing_details super().__init__(**kwargs) + + +class CloudUploadStatus(Enum): + FAILED = "failed", + QUEUED = "queued", + WAIT_APPROVAL = "wait_approval" From f8971df04c0e777ef739892e1b420130ae61cb66 Mon Sep 17 00:00:00 2001 From: BagelOrb Date: Tue, 9 Feb 2021 10:25:26 +0100 Subject: [PATCH 02/89] setting for support_tree_max_diameter --- resources/definitions/fdmprinter.def.json | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 0c939e03f2..19c479748a 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4508,6 +4508,20 @@ "settable_per_mesh": false, "settable_per_extruder": true }, + "support_tree_max_diameter": + { + "label": "Tree Support Trunk Diameter", + "description": "The diameter of the widest branches of tree support. A thicker trunk is more sturdy; a thinner trunk takes up less space on the build plate.", + "unit": "mm", + "type": "float", + "minimum_value": "support_tree_branch_diameter", + "minimum_value_warning": "support_line_width * 5", + "default_value": 15, + "limit_to_extruder": "support_infill_extruder_nr", + "enabled": "support_enable and support_structure=='tree'", + "settable_per_mesh": false, + "settable_per_extruder": true + }, "support_tree_branch_diameter_angle": { "label": "Tree Support Branch Diameter Angle", From ce18fdad0249ae631b9f4865747c7be2a08056e7 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Thu, 31 Mar 2022 09:48:30 +0200 Subject: [PATCH 03/89] automatically remove all holes when spiralizing Spiralize is meant for models which are solid, but many people don't know and model their things hollow. With this automatic setting change these people won't notice that they have modeled it wrong. Which means there are less times I need to explain stuff to users. Profit. --- resources/definitions/fdmprinter.def.json | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 0c939e03f2..cb792cbc9d 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6361,6 +6361,7 @@ "description": "Remove the holes in each layer and keep only the outside shape. This will ignore any invisible internal geometry. However, it also ignores layer holes which can be viewed from above or below.", "type": "bool", "default_value": false, + "value": "magic_spiralize", "settable_per_mesh": true }, "meshfix_extensive_stitching": From d4e5a39111896a21c93d22c8e667c39fba6f421b Mon Sep 17 00:00:00 2001 From: Paul Kuiper <46715907+pkuiper-ultimaker@users.noreply.github.com> Date: Wed, 24 Aug 2022 13:18:12 +0200 Subject: [PATCH 04/89] =?UTF-8?q?Moved=20top=20layer=20(roofing)=20setting?= =?UTF-8?q?s=20out=20of=20experimental:=20=E2=80=9CTop=20surface=20Skin=20?= =?UTF-8?q?Line=20Width=E2=80=9D,=20=E2=80=9CTop=20Surface=20Skin=20Patter?= =?UTF-8?q?n=E2=80=9D,=20=E2=80=9CMonotonic=20Top=20Surface=20Order?= =?UTF-8?q?=E2=80=9D=20and=20=E2=80=9CTop=20Surface=20Skin=20Line=20Direct?= =?UTF-8?q?ions=E2=80=9D=20as=20children=20under=20=E2=80=9CTop=20Surface?= =?UTF-8?q?=20Skin=20Layer=E2=80=9C=20in=20the=20Top/Bottom=20menu.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Relates to PP-216 --- resources/definitions/fdmprinter.def.json | 112 +++++++++++----------- 1 file changed, 57 insertions(+), 55 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index ce641cf032..c80283ae2e 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1443,7 +1443,63 @@ "value": "0", "limit_to_extruder": "roofing_extruder_nr", "settable_per_mesh": true, - "enabled": "top_layers > 0" + "enabled": "top_layers > 0", + "children": { + "roofing_line_width": + { + "label": "Top Surface Skin Line Width", + "description": "Width of a single line of the areas at the top of the print.", + "unit": "mm", + "minimum_value": "0.001", + "minimum_value_warning": "0.1 + 0.4 * machine_nozzle_size", + "maximum_value_warning": "2 * machine_nozzle_size", + "default_value": 0.4, + "type": "float", + "value": "skin_line_width", + "limit_to_extruder": "roofing_extruder_nr", + "settable_per_mesh": true, + "enabled": "roofing_layer_count > 0 and top_layers > 0" + }, + "roofing_pattern": + { + "label": "Top Surface Skin Pattern", + "description": "The pattern of the top most layers.", + "type": "enum", + "options": + { + "lines": "Lines", + "concentric": "Concentric", + "zigzag": "Zig Zag" + }, + "default_value": "lines", + "value": "top_bottom_pattern", + "limit_to_extruder": "roofing_extruder_nr", + "settable_per_mesh": true, + "enabled": "roofing_layer_count > 0 and top_layers > 0" + }, + "roofing_monotonic": + { + "label": "Monotonic Top Surface Order", + "description": "Print top surface lines in an ordering that causes them to always overlap with adjacent lines in a single direction. This takes slightly more time to print, but makes flat surfaces look more consistent.", + "type": "bool", + "default_value": false, + "value": "skin_monotonic", + "enabled": "roofing_layer_count > 0 and top_layers > 0 and roofing_pattern != 'concentric'", + "limit_to_extruder": "roofing_extruder_nr", + "settable_per_mesh": true + }, + "roofing_angles": + { + "label": "Top Surface Skin Line Directions", + "description": "A list of integer line directions to use when the top surface skin layers use the lines or zig zag pattern. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the traditional default angles (45 and 135 degrees).", + "type": "[int]", + "default_value": "[ ]", + "value": "skin_angles", + "enabled": "roofing_pattern != 'concentric' and roofing_layer_count > 0 and top_layers > 0", + "limit_to_extruder": "roofing_extruder_nr", + "settable_per_mesh": true + } + } }, "top_bottom_extruder_nr": { @@ -6645,60 +6701,6 @@ "default_value": "middle", "settable_per_mesh": true }, - "roofing_line_width": - { - "label": "Top Surface Skin Line Width", - "description": "Width of a single line of the areas at the top of the print.", - "unit": "mm", - "minimum_value": "0.001", - "minimum_value_warning": "0.1 + 0.4 * machine_nozzle_size", - "maximum_value_warning": "2 * machine_nozzle_size", - "default_value": 0.4, - "type": "float", - "value": "skin_line_width", - "limit_to_extruder": "roofing_extruder_nr", - "settable_per_mesh": true, - "enabled": "roofing_layer_count > 0 and top_layers > 0" - }, - "roofing_pattern": - { - "label": "Top Surface Skin Pattern", - "description": "The pattern of the top most layers.", - "type": "enum", - "options": - { - "lines": "Lines", - "concentric": "Concentric", - "zigzag": "Zig Zag" - }, - "default_value": "lines", - "value": "top_bottom_pattern", - "limit_to_extruder": "roofing_extruder_nr", - "settable_per_mesh": true, - "enabled": "roofing_layer_count > 0 and top_layers > 0" - }, - "roofing_monotonic": - { - "label": "Monotonic Top Surface Order", - "description": "Print top surface lines in an ordering that causes them to always overlap with adjacent lines in a single direction. This takes slightly more time to print, but makes flat surfaces look more consistent.", - "type": "bool", - "default_value": false, - "value": "skin_monotonic", - "enabled": "roofing_layer_count > 0 and top_layers > 0 and roofing_pattern != 'concentric'", - "limit_to_extruder": "roofing_extruder_nr", - "settable_per_mesh": true - }, - "roofing_angles": - { - "label": "Top Surface Skin Line Directions", - "description": "A list of integer line directions to use when the top surface skin layers use the lines or zig zag pattern. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the traditional default angles (45 and 135 degrees).", - "type": "[int]", - "default_value": "[ ]", - "value": "skin_angles", - "enabled": "roofing_pattern != 'concentric' and roofing_layer_count > 0 and top_layers > 0", - "limit_to_extruder": "roofing_extruder_nr", - "settable_per_mesh": true - }, "infill_enable_travel_optimization": { "label": "Infill Travel Optimization", From abb6d20bebe6b1de1fca4dc086164e68982e6a03 Mon Sep 17 00:00:00 2001 From: joeydelarago Date: Wed, 24 Aug 2022 14:06:30 +0200 Subject: [PATCH 05/89] Remove enum, python has no build in support for getting enum from string value. This will be in Python 3.11 though. CURA-9221 --- plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py | 4 ++-- .../src/Models/Http/CloudPrintJobResponse.py | 8 +------- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py index 0eb0644676..c8a6b30d90 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py @@ -31,7 +31,7 @@ from ..Models.Http.CloudClusterResponse import CloudClusterResponse from ..Models.Http.CloudClusterStatus import CloudClusterStatus from ..Models.Http.CloudPrintJobUploadRequest import CloudPrintJobUploadRequest from ..Models.Http.CloudPrintResponse import CloudPrintResponse -from ..Models.Http.CloudPrintJobResponse import CloudPrintJobResponse, CloudUploadStatus +from ..Models.Http.CloudPrintJobResponse import CloudPrintJobResponse from ..Models.Http.ClusterPrinterStatus import ClusterPrinterStatus from ..Models.Http.ClusterPrintJobStatus import ClusterPrintJobStatus @@ -232,7 +232,7 @@ class CloudOutputDevice(UltimakerNetworkedPrinterOutputDevice): :param job_response: The response received from the cloud API. """ - if job_response.status is CloudUploadStatus.WAIT_APPROVAL: + if job_response.status is "wait_approval": PrintJobPendingApprovalMessage().show() if not self._tool_path: diff --git a/plugins/UM3NetworkPrinting/src/Models/Http/CloudPrintJobResponse.py b/plugins/UM3NetworkPrinting/src/Models/Http/CloudPrintJobResponse.py index eb824c2708..170adf593d 100644 --- a/plugins/UM3NetworkPrinting/src/Models/Http/CloudPrintJobResponse.py +++ b/plugins/UM3NetworkPrinting/src/Models/Http/CloudPrintJobResponse.py @@ -26,7 +26,7 @@ class CloudPrintJobResponse(BaseModel): """ self.job_id = job_id - self.status: CloudUploadStatus = CloudUploadStatus(status) + self.status = status self.download_url = download_url self.job_name = job_name self.upload_url = upload_url @@ -34,9 +34,3 @@ class CloudPrintJobResponse(BaseModel): self.status_description = status_description self.slicing_details = slicing_details super().__init__(**kwargs) - - -class CloudUploadStatus(Enum): - FAILED = "failed", - QUEUED = "queued", - WAIT_APPROVAL = "wait_approval" From 1a023f7285ef1cb5c74243802262638d0cf9dfca Mon Sep 17 00:00:00 2001 From: joeydelarago Date: Wed, 24 Aug 2022 17:02:17 +0200 Subject: [PATCH 06/89] Swap text and title for message. Move link opening code into the PrintJobAwaitingApprovalMessage.py CURA-9221 --- .../src/Cloud/CloudApiClient.py | 3 +++ .../src/Cloud/CloudOutputDevice.py | 6 +---- .../PrintJobAwaitingApprovalMessage.py | 26 ++++++++++++------- 3 files changed, 21 insertions(+), 14 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudApiClient.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudApiClient.py index 470e57947e..20a7dcc17c 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudApiClient.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudApiClient.py @@ -16,6 +16,7 @@ from cura.CuraApplication import CuraApplication from cura.UltimakerCloud import UltimakerCloudConstants from cura.UltimakerCloud.UltimakerCloudScope import UltimakerCloudScope from .ToolPathUploader import ToolPathUploader +from ..Messages.PrintJobAwaitingApprovalMessage import PrintJobPendingApprovalMessage from ..Models.BaseModel import BaseModel from ..Models.Http.CloudClusterResponse import CloudClusterResponse from ..Models.Http.CloudClusterStatus import CloudClusterStatus @@ -241,6 +242,8 @@ class CloudApiClient: status_code, response = self._parseReply(reply) if status_code >= 300 and on_error is not None: on_error() + elif "data" in response and "status" in response["data"] and response["data"]["status"] == "wait_approval": + PrintJobPendingApprovalMessage().show() else: self._parseModels(response, on_finished, model) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py index c8a6b30d90..e3eac7da02 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py @@ -3,7 +3,7 @@ from time import time import os -from typing import cast, List, Optional, TYPE_CHECKING +from typing import cast, List, Optional from PyQt6.QtCore import QObject, QUrl, pyqtProperty, pyqtSignal, pyqtSlot from PyQt6.QtGui import QDesktopServices @@ -21,7 +21,6 @@ from cura.PrinterOutput.PrinterOutputDevice import ConnectionType from .CloudApiClient import CloudApiClient from ..ExportFileJob import ExportFileJob -from ..Messages.PrintJobAwaitingApprovalMessage import PrintJobPendingApprovalMessage from ..UltimakerNetworkedPrinterOutputDevice import UltimakerNetworkedPrinterOutputDevice from ..Messages.PrintJobUploadBlockedMessage import PrintJobUploadBlockedMessage from ..Messages.PrintJobUploadErrorMessage import PrintJobUploadErrorMessage @@ -232,9 +231,6 @@ class CloudOutputDevice(UltimakerNetworkedPrinterOutputDevice): :param job_response: The response received from the cloud API. """ - if job_response.status is "wait_approval": - PrintJobPendingApprovalMessage().show() - if not self._tool_path: return self._onUploadError() self._pre_upload_print_job = job_response # store the last uploaded job to prevent re-upload of the same file diff --git a/plugins/UM3NetworkPrinting/src/Messages/PrintJobAwaitingApprovalMessage.py b/plugins/UM3NetworkPrinting/src/Messages/PrintJobAwaitingApprovalMessage.py index cacfcd362b..c326a35363 100644 --- a/plugins/UM3NetworkPrinting/src/Messages/PrintJobAwaitingApprovalMessage.py +++ b/plugins/UM3NetworkPrinting/src/Messages/PrintJobAwaitingApprovalMessage.py @@ -1,5 +1,8 @@ # Copyright (c) 2022 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. +from PyQt6.QtCore import QUrl +from PyQt6.QtGui import QDesktopServices + from UM import i18nCatalog from UM.Message import Message @@ -12,14 +15,19 @@ class PrintJobPendingApprovalMessage(Message): def __init__(self) -> None: super().__init__( - text = I18N_CATALOG.i18nc("@info:status", "The print job was succesfully submitted"), - title=I18N_CATALOG.i18nc("@info:title", "You will recieve a confirmation via email when the print job is approved"), + text = I18N_CATALOG.i18nc("@info:status", "You will receive a confirmation via email when the print job is approved"), + title=I18N_CATALOG.i18nc("@info:title", "The print job was successfully submitted"), message_type=Message.MessageType.POSITIVE ) - self.self.addAction("learn_more", - I18N_CATALOG.i18nc("@action", "Learn more"), - "", - "", - "", - button_style = Message.ActionButtonStyle.LINK, - button_align = Message.ActionButtonAlignment.ALIGN_LEFT) + self.addAction("manage_print_jobs", I18N_CATALOG.i18nc("@action", "Manage print jobs"), "", "") + + self.addAction("learn_more", I18N_CATALOG.i18nc("@action", "Learn more"), "", "", + button_style = Message.ActionButtonStyle.LINK, + button_align = Message.ActionButtonAlignment.ALIGN_LEFT) + + self.actionTriggered.connect(self._onActionTriggered) + + def _onActionTriggered(self, message: Message, action: str): + """ Callback function for the "Manage print jobs" button on the pending approval notification. """ + if action == "manage_print_jobs": + QDesktopServices.openUrl(QUrl("https://ultimaker.com/")) From 30692bb4b8fe269f07eae5f5ccaa47e6af0cc89b Mon Sep 17 00:00:00 2001 From: joeydelarago Date: Thu, 25 Aug 2022 14:13:25 +0200 Subject: [PATCH 07/89] Add link out to learn more CURA-9221 --- .../src/Messages/PrintJobAwaitingApprovalMessage.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Messages/PrintJobAwaitingApprovalMessage.py b/plugins/UM3NetworkPrinting/src/Messages/PrintJobAwaitingApprovalMessage.py index c326a35363..1a54485a70 100644 --- a/plugins/UM3NetworkPrinting/src/Messages/PrintJobAwaitingApprovalMessage.py +++ b/plugins/UM3NetworkPrinting/src/Messages/PrintJobAwaitingApprovalMessage.py @@ -29,5 +29,8 @@ class PrintJobPendingApprovalMessage(Message): def _onActionTriggered(self, message: Message, action: str): """ Callback function for the "Manage print jobs" button on the pending approval notification. """ - if action == "manage_print_jobs": - QDesktopServices.openUrl(QUrl("https://ultimaker.com/")) + match action: + case "manage_print_jobs": + QDesktopServices.openUrl(QUrl("https://ultimaker.com/")) + case "learn_more": + QDesktopServices.openUrl(QUrl("https://ultimaker.com/")) From a58690c774d52bad4076d2ec2f6644c7395e64eb Mon Sep 17 00:00:00 2001 From: joeydelarago Date: Thu, 25 Aug 2022 14:49:40 +0200 Subject: [PATCH 08/89] change _parseModels -> _parseResponse since it now parses responses with no models included. Move status check into _parseResponse Don't give PrintJobUploadSuccessMessage() if printis awaiting approval. The print has successfully uploaded but it is pending approval instead so it does not make sense to display both messages. CURA-9221 --- .../src/Cloud/CloudApiClient.py | 16 +++++++------- .../src/Cloud/CloudOutputDevice.py | 21 +++++++++++-------- 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudApiClient.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudApiClient.py index 20a7dcc17c..e8afe5a0ba 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudApiClient.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudApiClient.py @@ -190,9 +190,9 @@ class CloudApiClient: Logger.logException("e", "Could not parse the stardust response: %s", error.toDict()) return status_code, {"errors": [error.toDict()]} - def _parseModels(self, response: Dict[str, Any], on_finished: Union[Callable[[CloudApiClientModel], Any], - Callable[[List[CloudApiClientModel]], Any]], model_class: Type[CloudApiClientModel]) -> None: - """Parses the given models and calls the correct callback depending on the result. + def _parseResponse(self, response: Dict[str, Any], on_finished: Union[Callable[[CloudApiClientModel], Any], + Callable[[List[CloudApiClientModel]], Any]], model_class: Type[CloudApiClientModel]) -> None: + """Parses the given response and calls the correct callback depending on the result. :param response: The response from the server, after being converted to a dict. :param on_finished: The callback in case the response is successful. @@ -201,7 +201,11 @@ class CloudApiClient: if "data" in response: data = response["data"] - if isinstance(data, list): + if "status" in data and data["status"] == "wait_approval": + PrintJobPendingApprovalMessage().show() + on_finished_empty = cast(Callable[[List], Any], on_finished) + on_finished_empty([]) + elif isinstance(data, list): results = [model_class(**c) for c in data] # type: List[CloudApiClientModel] on_finished_list = cast(Callable[[List[CloudApiClientModel]], Any], on_finished) on_finished_list(results) @@ -242,10 +246,8 @@ class CloudApiClient: status_code, response = self._parseReply(reply) if status_code >= 300 and on_error is not None: on_error() - elif "data" in response and "status" in response["data"] and response["data"]["status"] == "wait_approval": - PrintJobPendingApprovalMessage().show() else: - self._parseModels(response, on_finished, model) + self._parseResponse(response, on_finished, model) self._anti_gc_callbacks.append(parse) return parse diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py index e3eac7da02..86f3bc0ffc 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py @@ -259,16 +259,19 @@ class CloudOutputDevice(UltimakerNetworkedPrinterOutputDevice): """ self._uploaded_print_job = self._pre_upload_print_job self._progress.hide() - message = PrintJobUploadSuccessMessage() - message.addAction("monitor print", - name=I18N_CATALOG.i18nc("@action:button", "Monitor print"), - icon="", - description=I18N_CATALOG.i18nc("@action:tooltip", "Track the print in Ultimaker Digital Factory"), - button_align=message.ActionButtonAlignment.ALIGN_RIGHT) - df_url = f"https://digitalfactory.ultimaker.com/app/jobs/{self._cluster.cluster_id}?utm_source=cura&utm_medium=software&utm_campaign=message-printjob-sent" - message.pyQtActionTriggered.connect(lambda message, action: (QDesktopServices.openUrl(QUrl(df_url)), message.hide())) - message.show() + if response: + message = PrintJobUploadSuccessMessage() + message.addAction("monitor print", + name=I18N_CATALOG.i18nc("@action:button", "Monitor print"), + icon="", + description=I18N_CATALOG.i18nc("@action:tooltip", "Track the print in Ultimaker Digital Factory"), + button_align=message.ActionButtonAlignment.ALIGN_RIGHT) + df_url = f"https://digitalfactory.ultimaker.com/app/jobs/{self._cluster.cluster_id}?utm_source=cura&utm_medium=software&utm_campaign=message-printjob-sent" + message.pyQtActionTriggered.connect(lambda message, action: (QDesktopServices.openUrl(QUrl(df_url)), message.hide())) + + message.show() + self.writeFinished.emit() def _onPrintUploadSpecificError(self, reply: "QNetworkReply", _: "QNetworkReply.NetworkError"): From a6f459b0f68cec7fd5c5cb345b174db2b1d39b23 Mon Sep 17 00:00:00 2001 From: joeydelarago Date: Fri, 26 Aug 2022 08:55:12 +0200 Subject: [PATCH 09/89] Update links CURA-9221 --- .../src/Messages/PrintJobAwaitingApprovalMessage.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Messages/PrintJobAwaitingApprovalMessage.py b/plugins/UM3NetworkPrinting/src/Messages/PrintJobAwaitingApprovalMessage.py index 1a54485a70..f5a92a519d 100644 --- a/plugins/UM3NetworkPrinting/src/Messages/PrintJobAwaitingApprovalMessage.py +++ b/plugins/UM3NetworkPrinting/src/Messages/PrintJobAwaitingApprovalMessage.py @@ -31,6 +31,6 @@ class PrintJobPendingApprovalMessage(Message): """ Callback function for the "Manage print jobs" button on the pending approval notification. """ match action: case "manage_print_jobs": - QDesktopServices.openUrl(QUrl("https://ultimaker.com/")) + QDesktopServices.openUrl(QUrl("https://digitalfactory.ultimaker.com/app/jobs/")) case "learn_more": - QDesktopServices.openUrl(QUrl("https://ultimaker.com/")) + QDesktopServices.openUrl(QUrl("https://support.ultimaker.com/hc/en-us/articles/5329940078620")) From 0993dc99f9eb1cfa17e6d55f76093e112f1b51b0 Mon Sep 17 00:00:00 2001 From: joeydelarago Date: Fri, 26 Aug 2022 09:00:17 +0200 Subject: [PATCH 10/89] Remove unused import CURA-9221 --- .../UM3NetworkPrinting/src/Models/Http/CloudPrintJobResponse.py | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/src/Models/Http/CloudPrintJobResponse.py b/plugins/UM3NetworkPrinting/src/Models/Http/CloudPrintJobResponse.py index 170adf593d..83cbb5a030 100644 --- a/plugins/UM3NetworkPrinting/src/Models/Http/CloudPrintJobResponse.py +++ b/plugins/UM3NetworkPrinting/src/Models/Http/CloudPrintJobResponse.py @@ -1,6 +1,5 @@ # Copyright (c) 2019 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. -from enum import Enum from typing import Optional from ..BaseModel import BaseModel From 119fb3268134b3106276f4ddc01ce55cd0166e09 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Fri, 26 Aug 2022 10:14:36 +0200 Subject: [PATCH 11/89] Update plugins/UM3NetworkPrinting/src/Messages/PrintJobAwaitingApprovalMessage.py Co-authored-by: Jaime van Kessel --- .../src/Messages/PrintJobAwaitingApprovalMessage.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/src/Messages/PrintJobAwaitingApprovalMessage.py b/plugins/UM3NetworkPrinting/src/Messages/PrintJobAwaitingApprovalMessage.py index f5a92a519d..2e015dd46f 100644 --- a/plugins/UM3NetworkPrinting/src/Messages/PrintJobAwaitingApprovalMessage.py +++ b/plugins/UM3NetworkPrinting/src/Messages/PrintJobAwaitingApprovalMessage.py @@ -27,7 +27,7 @@ class PrintJobPendingApprovalMessage(Message): self.actionTriggered.connect(self._onActionTriggered) - def _onActionTriggered(self, message: Message, action: str): + def _onActionTriggered(self, message: Message, action: str) -> None: """ Callback function for the "Manage print jobs" button on the pending approval notification. """ match action: case "manage_print_jobs": From 8b84db705943217072003bec7d97439506a91eb0 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Fri, 26 Aug 2022 10:45:45 +0200 Subject: [PATCH 12/89] Remove AbstractMachine Having a separate class for the AbstractMachine complicated things; it's behaviour was extremely similar to the GlobalStack so adding one more stack container type in addition to the many similar setting container types we already have adds complexity to the system. Having these different classes for machines and abstract machines also add complexity to the update script as the abstract machines were stored in a separate folder from the machine types. Because of these reasons we decided to replace the AbstractMachine by a GlobalStack where the is_abstract_machine property metadata property is set to True. CURA-9514, CURA-9277 Co-authored-by: joeydelarago --- cura/CuraApplication.py | 5 -- cura/Machines/Models/MachineListModel.py | 17 +++--- cura/Settings/AbstractMachine.py | 52 ------------------- cura/Settings/CuraStackBuilder.py | 10 ++-- cura/Settings/GlobalStack.py | 30 +++++++++-- .../qml/PrinterSelector/MachineListButton.qml | 8 +-- 6 files changed, 44 insertions(+), 78 deletions(-) delete mode 100644 cura/Settings/AbstractMachine.py diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 3cd0ecbf97..f690456913 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -146,8 +146,6 @@ class CuraApplication(QtApplication): DefinitionChangesContainer = Resources.UserType + 10 SettingVisibilityPreset = Resources.UserType + 11 IntentInstanceContainer = Resources.UserType + 12 - AbstractMachineStack = Resources.UserType + 13 - pyqtEnum(ResourceTypes) @@ -426,7 +424,6 @@ class CuraApplication(QtApplication): Resources.addStorageType(self.ResourceTypes.DefinitionChangesContainer, "definition_changes") Resources.addStorageType(self.ResourceTypes.SettingVisibilityPreset, "setting_visibility") Resources.addStorageType(self.ResourceTypes.IntentInstanceContainer, "intent") - Resources.addStorageType(self.ResourceTypes.AbstractMachineStack, "abstract_machine_instances") self._container_registry.addResourceType(self.ResourceTypes.QualityInstanceContainer, "quality") self._container_registry.addResourceType(self.ResourceTypes.QualityChangesInstanceContainer, "quality_changes") @@ -437,7 +434,6 @@ class CuraApplication(QtApplication): self._container_registry.addResourceType(self.ResourceTypes.MachineStack, "machine") self._container_registry.addResourceType(self.ResourceTypes.DefinitionChangesContainer, "definition_changes") self._container_registry.addResourceType(self.ResourceTypes.IntentInstanceContainer, "intent") - self._container_registry.addResourceType(self.ResourceTypes.AbstractMachineStack, "abstract_machine") Resources.addType(self.ResourceTypes.QmlFiles, "qml") Resources.addType(self.ResourceTypes.Firmware, "firmware") @@ -486,7 +482,6 @@ class CuraApplication(QtApplication): ("variant", InstanceContainer.Version * 1000000 + self.SettingVersion): (self.ResourceTypes.VariantInstanceContainer, "application/x-uranium-instancecontainer"), ("setting_visibility", SettingVisibilityPresetsModel.Version * 1000000 + self.SettingVersion): (self.ResourceTypes.SettingVisibilityPreset, "application/x-uranium-preferences"), ("machine", 2): (Resources.DefinitionContainers, "application/x-uranium-definitioncontainer"), - ("abstract_machine", 1): (Resources.DefinitionContainers, "application/x-uranium-definitioncontainer"), ("extruder", 2): (Resources.DefinitionContainers, "application/x-uranium-definitioncontainer") } ) diff --git a/cura/Machines/Models/MachineListModel.py b/cura/Machines/Models/MachineListModel.py index f3781cfd60..4b80410018 100644 --- a/cura/Machines/Models/MachineListModel.py +++ b/cura/Machines/Models/MachineListModel.py @@ -8,9 +8,8 @@ from UM.Settings.ContainerStack import ContainerStack from UM.i18n import i18nCatalog from UM.Util import parseBool -from cura.Settings.AbstractMachine import AbstractMachine from cura.Settings.CuraContainerRegistry import CuraContainerRegistry -from cura.Settings.GlobalStack import GlobalStack +from cura.Settings.GlobalStack import GlobalStack, getMachinesWithDefinition class MachineListModel(ListModel): @@ -19,8 +18,8 @@ class MachineListModel(ListModel): HasRemoteConnectionRole = Qt.ItemDataRole.UserRole + 3 MetaDataRole = Qt.ItemDataRole.UserRole + 4 IsOnlineRole = Qt.ItemDataRole.UserRole + 5 - MachineTypeRole = Qt.ItemDataRole.UserRole + 6 - MachineCountRole = Qt.ItemDataRole.UserRole + 7 + MachineCountRole = Qt.ItemDataRole.UserRole + 6 + IsAbstractMachine = Qt.ItemDataRole.UserRole + 7 def __init__(self, parent=None) -> None: super().__init__(parent) @@ -32,8 +31,8 @@ class MachineListModel(ListModel): self.addRoleName(self.HasRemoteConnectionRole, "hasRemoteConnection") self.addRoleName(self.MetaDataRole, "metadata") self.addRoleName(self.IsOnlineRole, "isOnline") - self.addRoleName(self.MachineTypeRole, "machineType") self.addRoleName(self.MachineCountRole, "machineCount") + self.addRoleName(self.IsAbstractMachine, "isAbstractMachine") self._change_timer = QTimer() self._change_timer.setInterval(200) @@ -61,14 +60,16 @@ class MachineListModel(ListModel): other_machine_stacks = CuraContainerRegistry.getInstance().findContainerStacks(type="machine") - abstract_machine_stacks = CuraContainerRegistry.getInstance().findContainerStacks(type = "abstract_machine") + abstract_machine_stacks = CuraContainerRegistry.getInstance().findContainerStacks(is_abstract_machine = "True") abstract_machine_stacks.sort(key = lambda machine: machine.getName(), reverse = True) for abstract_machine in abstract_machine_stacks: - online_machine_stacks = AbstractMachine.getMachines(abstract_machine, online_only = True) + definition_id = abstract_machine.definition.getId() + online_machine_stacks = getMachinesWithDefinition(definition_id, online_only = True) # Create a list item for abstract machine self.addItem(abstract_machine, len(online_machine_stacks)) + other_machine_stacks.remove(abstract_machine) # Create list of machines that are children of the abstract machine for stack in online_machine_stacks: @@ -87,6 +88,6 @@ class MachineListModel(ListModel): "id": container_stack.getId(), "metadata": container_stack.getMetaData().copy(), "isOnline": parseBool(container_stack.getMetaDataEntry("is_online", False)), - "machineType": container_stack.getMetaDataEntry("type"), + "isAbstractMachine": parseBool(container_stack.getMetaDataEntry("is_abstract_machine", False)), "machineCount": machine_count, }) diff --git a/cura/Settings/AbstractMachine.py b/cura/Settings/AbstractMachine.py deleted file mode 100644 index 86909b6e29..0000000000 --- a/cura/Settings/AbstractMachine.py +++ /dev/null @@ -1,52 +0,0 @@ -from typing import List - -from UM.Settings.ContainerStack import ContainerStack -from UM.Util import parseBool -from cura.PrinterOutput.PrinterOutputDevice import ConnectionType -from cura.Settings.GlobalStack import GlobalStack -from UM.MimeTypeDatabase import MimeType, MimeTypeDatabase -from UM.Settings.ContainerRegistry import ContainerRegistry - - -class AbstractMachine(GlobalStack): - """ Represents a group of machines of the same type. This allows the user to select settings before selecting a printer. """ - - def __init__(self, container_id: str) -> None: - super().__init__(container_id) - self.setMetaDataEntry("type", "abstract_machine") - - @classmethod - def getMachines(cls, abstract_machine: ContainerStack, online_only = False) -> List[ContainerStack]: - """ Fetches all container stacks that match definition_id with an abstract machine. - - :param abstractMachine: The abstract machine stack. - :return: A list of Containers or an empty list if abstract_machine is not an "abstract_machine" - """ - if not abstract_machine.getMetaDataEntry("type") == "abstract_machine": - return [] - - from cura.CuraApplication import CuraApplication # In function to avoid circular import - application = CuraApplication.getInstance() - registry = application.getContainerRegistry() - - machines = registry.findContainerStacks(type="machine") - # Filter machines that match definition - machines = filter(lambda machine: machine.definition.id == abstract_machine.definition.getId(), machines) - # Filter only LAN and Cloud printers - machines = filter(lambda machine: ConnectionType.CloudConnection in machine.configuredConnectionTypes or ConnectionType.NetworkConnection in machine.configuredConnectionTypes, machines) - if online_only: - # LAN printers have is_online = False but should still be included - machines = filter(lambda machine: parseBool(machine.getMetaDataEntry("is_online", False) or ConnectionType.NetworkConnection in machine.configuredConnectionTypes), machines) - - return list(machines) - - -## private: -_abstract_machine_mime = MimeType( - name = "application/x-cura-abstract-machine", - comment = "Cura Abstract Machine", - suffixes = ["global.cfg"] -) - -MimeTypeDatabase.addMimeType(_abstract_machine_mime) -ContainerRegistry.addContainerTypeByName(AbstractMachine, "abstract_machine", _abstract_machine_mime.name) diff --git a/cura/Settings/CuraStackBuilder.py b/cura/Settings/CuraStackBuilder.py index d711a61243..5a745f8f0a 100644 --- a/cura/Settings/CuraStackBuilder.py +++ b/cura/Settings/CuraStackBuilder.py @@ -9,7 +9,6 @@ from UM.Settings.Interfaces import DefinitionContainerInterface from UM.Settings.InstanceContainer import InstanceContainer from cura.Machines.ContainerTree import ContainerTree -from .AbstractMachine import AbstractMachine from .GlobalStack import GlobalStack from .ExtruderStack import ExtruderStack @@ -268,21 +267,21 @@ class CuraStackBuilder: return definition_changes_container @classmethod - def createAbstractMachine(cls, definition_id: str) -> Optional[AbstractMachine]: + def createAbstractMachine(cls, definition_id: str) -> Optional[GlobalStack]: """Create a new instance of an abstract machine. :param definition_id: The ID of the machine definition to use. :return: The new Abstract Machine or None if an error occurred. """ - abstract_machine_id = definition_id + "_abstract_machine" + abstract_machine_id = f"{definition_id}_abstract_machine" from cura.CuraApplication import CuraApplication application = CuraApplication.getInstance() registry = application.getContainerRegistry() container_tree = ContainerTree.getInstance() - if registry.findContainerStacks(type = "abstract_machine", id = abstract_machine_id): + if registry.findContainerStacks(is_abstract_machine = "True", id = abstract_machine_id): # This abstract machine already exists return None @@ -296,7 +295,8 @@ class CuraStackBuilder: machine_node = container_tree.machines[machine_definition.getId()] name = machine_definition.getName() - stack = AbstractMachine(abstract_machine_id) + stack = GlobalStack(abstract_machine_id) + stack.setMetaDataEntry("is_abstract_machine", True) stack.setMetaDataEntry("is_online", True) stack.setDefinition(machine_definition) cls.createUserContainer( diff --git a/cura/Settings/GlobalStack.py b/cura/Settings/GlobalStack.py index f0a6946f88..6a14f10fe4 100755 --- a/cura/Settings/GlobalStack.py +++ b/cura/Settings/GlobalStack.py @@ -1,4 +1,4 @@ -# Copyright (c) 2019 Ultimaker B.V. +# Copyright (c) 2022 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. from collections import defaultdict @@ -8,10 +8,9 @@ import uuid from PyQt6.QtCore import pyqtProperty, pyqtSlot, pyqtSignal -from UM.Decorators import deprecated, override +from UM.Decorators import override from UM.MimeTypeDatabase import MimeType, MimeTypeDatabase from UM.Settings.ContainerStack import ContainerStack -from UM.Settings.SettingInstance import InstanceState from UM.Settings.ContainerRegistry import ContainerRegistry from UM.Settings.Interfaces import PropertyEvaluationContext from UM.Logger import Logger @@ -344,13 +343,36 @@ class GlobalStack(CuraContainerStack): def getName(self) -> str: return self._metadata.get("group_name", self._metadata.get("name", "")) - def setName(self, name: "str") -> None: + def setName(self, name: str) -> None: super().setName(name) nameChanged = pyqtSignal() name = pyqtProperty(str, fget=getName, fset=setName, notify=nameChanged) +def getMachinesWithDefinition(definition_id: str, online_only = False) -> List[ContainerStack]: + """ Fetches all container stacks that match definition_id. + + :param definition_id: The id of the machine definition. + :return: A list of Containers that match definition_id + """ + from cura.CuraApplication import CuraApplication # In function to avoid circular import + application = CuraApplication.getInstance() + registry = application.getContainerRegistry() + + machines = registry.findContainerStacks(type="machine") + # Filter machines that match definition + machines = filter(lambda machine: machine.definition.id == definition_id, machines) + # Filter only LAN and Cloud printers + machines = filter(lambda machine: ConnectionType.CloudConnection in machine.configuredConnectionTypes or + ConnectionType.NetworkConnection in machine.configuredConnectionTypes, machines) + if online_only: + # LAN printers can have is_online = False but should still be included, their online status is only checked when + # they are the active printer. + machines = filter(lambda machine: parseBool(machine.getMetaDataEntry("is_online", False) or + ConnectionType.NetworkConnection in machine.configuredConnectionTypes), machines) + + return list(machines) ## private: global_stack_mime = MimeType( diff --git a/resources/qml/PrinterSelector/MachineListButton.qml b/resources/qml/PrinterSelector/MachineListButton.qml index 4511c72b4c..55ae5497d9 100644 --- a/resources/qml/PrinterSelector/MachineListButton.qml +++ b/resources/qml/PrinterSelector/MachineListButton.qml @@ -30,8 +30,8 @@ Button height: UM.Theme.getSize("medium_button").height width: UM.Theme.getSize("medium_button").width color: UM.Theme.getColor("machine_selector_printer_icon") - visible: model.machineType == "abstract_machine" || !model.isOnline - source: model.machineType == "abstract_machine" ? UM.Theme.getIcon("PrinterTriple", "medium") : UM.Theme.getIcon("Printer", "medium") + visible: model.isAbstractMachine || !model.isOnline + source: model.isAbstractMachine ? UM.Theme.getIcon("PrinterTriple", "medium") : UM.Theme.getIcon("Printer", "medium") anchors { @@ -51,7 +51,7 @@ Button leftMargin: UM.Theme.getSize("default_margin").width } text: machineListButton.text - font: model.machineType == "abstract_machine" ? UM.Theme.getFont("medium_bold") : UM.Theme.getFont("medium") + font: model.isAbstractMachine ? UM.Theme.getFont("medium_bold") : UM.Theme.getFont("medium") visible: text != "" elide: Text.ElideRight } @@ -68,7 +68,7 @@ Button top: buttonText.top bottom: buttonText.bottom } - visible: model.machineType == "abstract_machine" + visible: model.isAbstractMachine UM.Label { From 9c599870e36cf607ed08f76f51177ce92365f899 Mon Sep 17 00:00:00 2001 From: joeydelarago Date: Fri, 26 Aug 2022 10:57:35 +0200 Subject: [PATCH 13/89] Move message triggering into CloudOutputDevice so that the campaign link can include the cluster_id. CURA-9221 --- plugins/UM3NetworkPrinting/src/Cloud/CloudApiClient.py | 2 -- plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py | 3 +++ .../src/Messages/PrintJobAwaitingApprovalMessage.py | 8 +++++--- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudApiClient.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudApiClient.py index e8afe5a0ba..1fc926fe90 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudApiClient.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudApiClient.py @@ -16,7 +16,6 @@ from cura.CuraApplication import CuraApplication from cura.UltimakerCloud import UltimakerCloudConstants from cura.UltimakerCloud.UltimakerCloudScope import UltimakerCloudScope from .ToolPathUploader import ToolPathUploader -from ..Messages.PrintJobAwaitingApprovalMessage import PrintJobPendingApprovalMessage from ..Models.BaseModel import BaseModel from ..Models.Http.CloudClusterResponse import CloudClusterResponse from ..Models.Http.CloudClusterStatus import CloudClusterStatus @@ -202,7 +201,6 @@ class CloudApiClient: if "data" in response: data = response["data"] if "status" in data and data["status"] == "wait_approval": - PrintJobPendingApprovalMessage().show() on_finished_empty = cast(Callable[[List], Any], on_finished) on_finished_empty([]) elif isinstance(data, list): diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py index 86f3bc0ffc..6426f01b76 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py @@ -21,6 +21,7 @@ from cura.PrinterOutput.PrinterOutputDevice import ConnectionType from .CloudApiClient import CloudApiClient from ..ExportFileJob import ExportFileJob +from ..Messages.PrintJobAwaitingApprovalMessage import PrintJobPendingApprovalMessage from ..UltimakerNetworkedPrinterOutputDevice import UltimakerNetworkedPrinterOutputDevice from ..Messages.PrintJobUploadBlockedMessage import PrintJobUploadBlockedMessage from ..Messages.PrintJobUploadErrorMessage import PrintJobUploadErrorMessage @@ -271,6 +272,8 @@ class CloudOutputDevice(UltimakerNetworkedPrinterOutputDevice): message.pyQtActionTriggered.connect(lambda message, action: (QDesktopServices.openUrl(QUrl(df_url)), message.hide())) message.show() + else: + PrintJobPendingApprovalMessage(self._cluster.cluster_id).show() self.writeFinished.emit() diff --git a/plugins/UM3NetworkPrinting/src/Messages/PrintJobAwaitingApprovalMessage.py b/plugins/UM3NetworkPrinting/src/Messages/PrintJobAwaitingApprovalMessage.py index 2e015dd46f..03691d5c6f 100644 --- a/plugins/UM3NetworkPrinting/src/Messages/PrintJobAwaitingApprovalMessage.py +++ b/plugins/UM3NetworkPrinting/src/Messages/PrintJobAwaitingApprovalMessage.py @@ -13,7 +13,7 @@ I18N_CATALOG = i18nCatalog("cura") class PrintJobPendingApprovalMessage(Message): """Message shown when waiting for approval on an uploaded print job.""" - def __init__(self) -> None: + def __init__(self, cluster_id: str) -> None: super().__init__( text = I18N_CATALOG.i18nc("@info:status", "You will receive a confirmation via email when the print job is approved"), title=I18N_CATALOG.i18nc("@info:title", "The print job was successfully submitted"), @@ -27,10 +27,12 @@ class PrintJobPendingApprovalMessage(Message): self.actionTriggered.connect(self._onActionTriggered) + self.cluster_id = cluster_id + def _onActionTriggered(self, message: Message, action: str) -> None: """ Callback function for the "Manage print jobs" button on the pending approval notification. """ match action: case "manage_print_jobs": - QDesktopServices.openUrl(QUrl("https://digitalfactory.ultimaker.com/app/jobs/")) + QDesktopServices.openUrl(QUrl(f"https://digitalfactory.ultimaker.com/app/jobs/{self._cluster.cluster_id}?utm_source=cura&utm_medium=software&utm_campaign=message-printjob-sent")) case "learn_more": - QDesktopServices.openUrl(QUrl("https://support.ultimaker.com/hc/en-us/articles/5329940078620")) + QDesktopServices.openUrl(QUrl("https://support.ultimaker.com/hc/en-us/articles/5329940078620?utm_source=cura&utm_medium=software&utm_campaign=message-printjob-sent")) From f000b75661765b3087a7e1fb53c4bd37c3d081e8 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Fri, 26 Aug 2022 11:16:10 +0200 Subject: [PATCH 14/89] Move `getMachinesWithDefinition` to `MachinesManager` CURA-9514, CURA-9277 --- cura/Machines/Models/MachineListModel.py | 6 ++++-- cura/Settings/GlobalStack.py | 25 ---------------------- cura/Settings/MachineManager.py | 27 ++++++++++++++++++++++++ 3 files changed, 31 insertions(+), 27 deletions(-) diff --git a/cura/Machines/Models/MachineListModel.py b/cura/Machines/Models/MachineListModel.py index 4b80410018..c1796c5f3f 100644 --- a/cura/Machines/Models/MachineListModel.py +++ b/cura/Machines/Models/MachineListModel.py @@ -9,7 +9,7 @@ from UM.i18n import i18nCatalog from UM.Util import parseBool from cura.Settings.CuraContainerRegistry import CuraContainerRegistry -from cura.Settings.GlobalStack import GlobalStack, getMachinesWithDefinition +from cura.Settings.GlobalStack import GlobalStack class MachineListModel(ListModel): @@ -65,7 +65,9 @@ class MachineListModel(ListModel): for abstract_machine in abstract_machine_stacks: definition_id = abstract_machine.definition.getId() - online_machine_stacks = getMachinesWithDefinition(definition_id, online_only = True) + from cura.CuraApplication import CuraApplication + machines_manager = CuraApplication.getInstance().getMachineManager() + online_machine_stacks = machines_manager.getMachinesWithDefinition(definition_id, online_only = True) # Create a list item for abstract machine self.addItem(abstract_machine, len(online_machine_stacks)) diff --git a/cura/Settings/GlobalStack.py b/cura/Settings/GlobalStack.py index 6a14f10fe4..3c13f236ab 100755 --- a/cura/Settings/GlobalStack.py +++ b/cura/Settings/GlobalStack.py @@ -349,31 +349,6 @@ class GlobalStack(CuraContainerStack): nameChanged = pyqtSignal() name = pyqtProperty(str, fget=getName, fset=setName, notify=nameChanged) - -def getMachinesWithDefinition(definition_id: str, online_only = False) -> List[ContainerStack]: - """ Fetches all container stacks that match definition_id. - - :param definition_id: The id of the machine definition. - :return: A list of Containers that match definition_id - """ - from cura.CuraApplication import CuraApplication # In function to avoid circular import - application = CuraApplication.getInstance() - registry = application.getContainerRegistry() - - machines = registry.findContainerStacks(type="machine") - # Filter machines that match definition - machines = filter(lambda machine: machine.definition.id == definition_id, machines) - # Filter only LAN and Cloud printers - machines = filter(lambda machine: ConnectionType.CloudConnection in machine.configuredConnectionTypes or - ConnectionType.NetworkConnection in machine.configuredConnectionTypes, machines) - if online_only: - # LAN printers can have is_online = False but should still be included, their online status is only checked when - # they are the active printer. - machines = filter(lambda machine: parseBool(machine.getMetaDataEntry("is_online", False) or - ConnectionType.NetworkConnection in machine.configuredConnectionTypes), machines) - - return list(machines) - ## private: global_stack_mime = MimeType( name = "application/x-cura-globalstack", diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 64d34d6c3e..389c5ded75 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -19,6 +19,7 @@ from UM.Logger import Logger from UM.Message import Message from UM.Settings.SettingFunction import SettingFunction +from UM.Settings.ContainerStack import ContainerStack from UM.Signal import postponeSignals, CompressTechnique import cura.CuraApplication # Imported like this to prevent circular references. @@ -186,6 +187,32 @@ class MachineManager(QObject): self.outputDevicesChanged.emit() + def getMachinesWithDefinition(self, definition_id: str, online_only=False) -> List[ContainerStack]: + """ Fetches all container stacks that match definition_id. + + :param definition_id: The id of the machine definition. + :return: A list of Containers that match definition_id + """ + from cura.CuraApplication import CuraApplication # In function to avoid circular import + application = CuraApplication.getInstance() + registry = application.getContainerRegistry() + + machines = registry.findContainerStacks(type="machine") + # Filter machines that match definition + machines = filter(lambda machine: machine.definition.id == definition_id, machines) + # Filter only LAN and Cloud printers + machines = filter(lambda machine: ConnectionType.CloudConnection in machine.configuredConnectionTypes or + ConnectionType.NetworkConnection in machine.configuredConnectionTypes, + machines) + if online_only: + # LAN printers can have is_online = False but should still be included, + # their online status is only checked when they are the active printer. + machines = filter(lambda machine: parseBool(machine.getMetaDataEntry("is_online", False) or + ConnectionType.NetworkConnection in machine.configuredConnectionTypes), + machines) + + return list(machines) + @pyqtProperty(QObject, notify = currentConfigurationChanged) def currentConfiguration(self) -> PrinterConfigurationModel: return self._current_printer_configuration From ff7c9eddde5b4b6cfef560764c780ab12322e88a Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Fri, 26 Aug 2022 11:34:34 +0200 Subject: [PATCH 15/89] Add documentation CURA-9514, CURA-9277 --- cura/Machines/Models/MachineListModel.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cura/Machines/Models/MachineListModel.py b/cura/Machines/Models/MachineListModel.py index c1796c5f3f..a758060384 100644 --- a/cura/Machines/Models/MachineListModel.py +++ b/cura/Machines/Models/MachineListModel.py @@ -1,6 +1,10 @@ # Copyright (c) 2022 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. +# The MachineListModel is used to display the connected printers in the interface. Both the abstract machines and all +# online cloud connected printers are represented within this ListModel. Additional information such as the number of +# connected printers for each printer type is gathered. + from PyQt6.QtCore import Qt, QTimer from UM.Qt.ListModel import ListModel From 95f234679c5dbd4f458a9d0e93b352dcfd628b13 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Fri, 26 Aug 2022 13:10:09 +0200 Subject: [PATCH 16/89] Placeholder; the selected printer to monitor is abstract, but cloud-capable. forms the base of CURA-9422 --- cura/Settings/MachineManager.py | 6 ++++++ plugins/MonitorStage/MonitorMain.qml | 19 +++++++++++++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 389c5ded75..a4988be49d 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -530,6 +530,10 @@ class MachineManager(QObject): def printerConnected(self) -> bool: return bool(self._printer_output_devices) + @pyqtProperty(bool, notify = printerConnectedStatusChanged) + def activeMachineIsAbstract(self) -> bool: + return (self.activeMachine is not None) and parseBool(self.activeMachine.getMetaDataEntry("is_abstract_machine", False)) + @pyqtProperty(bool, notify = printerConnectedStatusChanged) def activeMachineIsGroup(self) -> bool: if self.activeMachine is None: @@ -554,6 +558,8 @@ class MachineManager(QObject): @pyqtProperty(bool, notify = printerConnectedStatusChanged) def activeMachineHasCloudRegistration(self) -> bool: + if self.activeMachineIsAbstract: + return any(m.getMetaDataEntry("is_online", False) for m in self.getMachinesWithDefinition(self.activeMachine.definition.getId(), True)) return self.activeMachine is not None and ConnectionType.CloudConnection in self.activeMachine.configuredConnectionTypes @pyqtProperty(bool, notify = printerConnectedStatusChanged) diff --git a/plugins/MonitorStage/MonitorMain.qml b/plugins/MonitorStage/MonitorMain.qml index 5d63ac5b83..848c4a7187 100644 --- a/plugins/MonitorStage/MonitorMain.qml +++ b/plugins/MonitorStage/MonitorMain.qml @@ -12,6 +12,7 @@ Rectangle id: viewportOverlay property bool isConnected: Cura.MachineManager.activeMachineHasNetworkConnection || Cura.MachineManager.activeMachineHasCloudConnection + property bool isAbstractCloudPrinter: Cura.MachineManager.activeMachineIsAbstract // && Cura.MachineManager.activeMachineHasCloudRegistration property bool isNetworkConfigurable: { if(Cura.MachineManager.activeMachine === null) @@ -96,7 +97,7 @@ Rectangle { horizontalCenter: parent.horizontalCenter } - visible: isNetworkConfigured && !isConnected + visible: isNetworkConfigured && !isConnected && !isAbstractCloudPrinter text: catalog.i18nc("@info", "Please make sure your printer has a connection:\n- Check if the printer is turned on.\n- Check if the printer is connected to the network.\n- Check if you are signed in to discover cloud-connected printers.") font: UM.Theme.getFont("medium") width: contentWidth @@ -109,11 +110,25 @@ Rectangle { horizontalCenter: parent.horizontalCenter } - visible: !isNetworkConfigured && isNetworkConfigurable + visible: !isNetworkConfigured && isNetworkConfigurable && !isAbstractCloudPrinter text: catalog.i18nc("@info", "Please connect your printer to the network.") font: UM.Theme.getFont("medium") width: contentWidth } + + UM.Label + { + id: sendToFactoryLabel + anchors + { + horizontalCenter: parent.horizontalCenter + } + visible: isAbstractCloudPrinter + text: catalog.i18nc("@info", "Please go to the Digital Factory. [PLACEHOLDER]") + font: UM.Theme.getFont("medium") + width: contentWidth + } + Item { anchors From 36d3a92fc068dbfda2341f5ffc3d3aa991fbd35a Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 26 Aug 2022 13:27:58 +0200 Subject: [PATCH 17/89] Fix gramar mistake in documentation CURA-8463 --- .../src/Models/Http/ClusterPrinterStatus.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Models/Http/ClusterPrinterStatus.py b/plugins/UM3NetworkPrinting/src/Models/Http/ClusterPrinterStatus.py index 16b4b6d656..925b4844c1 100644 --- a/plugins/UM3NetworkPrinting/src/Models/Http/ClusterPrinterStatus.py +++ b/plugins/UM3NetworkPrinting/src/Models/Http/ClusterPrinterStatus.py @@ -20,7 +20,6 @@ from ..BaseModel import BaseModel class ClusterPrinterStatus(BaseModel): """Class representing a cluster printer""" - def __init__(self, enabled: bool, firmware_version: str, friendly_name: str, ip_address: str, machine_variant: str, status: str, unique_name: str, uuid: str, configuration: List[Union[Dict[str, Any], ClusterPrintCoreConfiguration]], @@ -28,9 +27,9 @@ class ClusterPrinterStatus(BaseModel): firmware_update_status: Optional[str] = None, latest_available_firmware: Optional[str] = None, build_plate: Union[Dict[str, Any], ClusterBuildPlate] = None, material_station: Union[Dict[str, Any], ClusterPrinterMaterialStation] = None, **kwargs) -> None: - """Creates a new cluster printer status - - :param enabled: A printer can be disabled if it should not receive new jobs. By default every printer is enabled. + """ + Creates a new cluster printer status + :param enabled: A printer can be disabled if it should not receive new jobs. By default, every printer is enabled. :param firmware_version: Firmware version installed on the printer. Can differ for each printer in a cluster. :param friendly_name: Human readable name of the printer. Can be used for identification purposes. :param ip_address: The IP address of the printer in the local network. From d842013a7689d7cbaf1a24c6b746888b2eb66a2c Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 26 Aug 2022 13:31:48 +0200 Subject: [PATCH 18/89] Simplify onCompleted call in qml CURA-8463 --- resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index e8917517dd..bcbb6d7679 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -221,10 +221,7 @@ Button } } - Component.onCompleted: - { - configurationItem.checked = Cura.MachineManager.matchesConfiguration(configuration) - } + Component.onCompleted: configurationItem.checked = Cura.MachineManager.matchesConfiguration(configuration) onClicked: { From 0516b27f2bdf73a4ee7ab41db5ef8a21fbe31ea1 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 26 Aug 2022 13:34:40 +0200 Subject: [PATCH 19/89] Clean up formatting of documentation Boyscouting! CURA-8463 --- cura/PrinterOutput/PrinterOutputDevice.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/cura/PrinterOutput/PrinterOutputDevice.py b/cura/PrinterOutput/PrinterOutputDevice.py index d3a5e252d3..add561fcb1 100644 --- a/cura/PrinterOutput/PrinterOutputDevice.py +++ b/cura/PrinterOutput/PrinterOutputDevice.py @@ -50,13 +50,12 @@ class PrinterOutputDevice(QObject, OutputDevice): The assumption is made the printer is a FDM printer. Note that a number of settings are marked as "final". This is because decorators - are not inherited by children. To fix this we use the private counter part of those + are not inherited by children. To fix this we use the private counterpart of those functions to actually have the implementation. For all other uses it should be used in the same way as a "regular" OutputDevice. """ - printersChanged = pyqtSignal() connectionStateChanged = pyqtSignal(str) acceptsCommandsChanged = pyqtSignal() @@ -183,8 +182,8 @@ class PrinterOutputDevice(QObject, OutputDevice): @pyqtProperty(QObject, constant = True) def monitorItem(self) -> QObject: # Note that we specifically only check if the monitor component is created. - # It could be that it failed to actually create the qml item! If we check if the item was created, it will try to - # create the item (and fail) every time. + # It could be that it failed to actually create the qml item! If we check if the item was created, it will try + # to create the item (and fail) every time. if not self._monitor_component: self._createMonitorViewFromQML() return self._monitor_item @@ -237,9 +236,9 @@ class PrinterOutputDevice(QObject, OutputDevice): self.acceptsCommandsChanged.emit() - # Returns the unique configurations of the printers within this output device @pyqtProperty("QVariantList", notify = uniqueConfigurationsChanged) def uniqueConfigurations(self) -> List["PrinterConfigurationModel"]: + """ Returns the unique configurations of the printers within this output device """ return self._unique_configurations def _updateUniqueConfigurations(self) -> None: @@ -248,7 +247,9 @@ class PrinterOutputDevice(QObject, OutputDevice): if printer.printerConfiguration is not None and printer.printerConfiguration.hasAnyMaterialLoaded(): all_configurations.add(printer.printerConfiguration) all_configurations.update(printer.availableConfigurations) - if None in all_configurations: # Shouldn't happen, but it does. I don't see how it could ever happen. Skip adding that configuration. List could end up empty! + if None in all_configurations: + # Shouldn't happen, but it does. I don't see how it could ever happen. Skip adding that configuration. + # List could end up empty! Logger.log("e", "Found a broken configuration in the synced list!") all_configurations.remove(None) new_configurations = sorted(all_configurations, key = lambda config: config.printerType or "") @@ -256,9 +257,9 @@ class PrinterOutputDevice(QObject, OutputDevice): self._unique_configurations = new_configurations self.uniqueConfigurationsChanged.emit() - # Returns the unique configurations of the printers within this output device @pyqtProperty("QStringList", notify = uniqueConfigurationsChanged) def uniquePrinterTypes(self) -> List[str]: + """ Returns the unique configurations of the printers within this output device """ return list(sorted(set([configuration.printerType or "" for configuration in self._unique_configurations]))) def _onPrintersChanged(self) -> None: From 46532828a402fd2ce4b925b6dac85da57a9c8af4 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 26 Aug 2022 13:46:01 +0200 Subject: [PATCH 20/89] Add logging for when setting the active machine failed CURA-8463 --- cura/Settings/MachineManager.py | 1 + 1 file changed, 1 insertion(+) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 389c5ded75..a8c27cc434 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -359,6 +359,7 @@ class MachineManager(QObject): extruder_manager = ExtruderManager.getInstance() extruder_manager.fixSingleExtrusionMachineExtruderDefinition(global_stack) if not global_stack.isValid(): + Logger.warning("Global stack isn't valid, adding it to faulty container list") # Mark global stack as invalid ConfigurationErrorMessage.getInstance().addFaultyContainers(global_stack.getId()) return # We're done here From 506f2b982075c3a525fbba0ab088cf35771c688c Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 26 Aug 2022 14:08:03 +0200 Subject: [PATCH 21/89] Remove code duplication in createAbstractMachine This also caused a crash when an abstract machine with multiple extruders was selected CURA-8463 --- cura/Machines/Models/MachineListModel.py | 3 +- cura/Settings/CuraStackBuilder.py | 47 ++++++++---------------- cura/Settings/GlobalStack.py | 1 - 3 files changed, 18 insertions(+), 33 deletions(-) diff --git a/cura/Machines/Models/MachineListModel.py b/cura/Machines/Models/MachineListModel.py index a758060384..b3e3bd4f71 100644 --- a/cura/Machines/Models/MachineListModel.py +++ b/cura/Machines/Models/MachineListModel.py @@ -81,7 +81,8 @@ class MachineListModel(ListModel): for stack in online_machine_stacks: self.addItem(stack) # Remove this machine from the other stack list - other_machine_stacks.remove(stack) + if stack in other_machine_stacks: + other_machine_stacks.remove(stack) for stack in other_machine_stacks: self.addItem(stack) diff --git a/cura/Settings/CuraStackBuilder.py b/cura/Settings/CuraStackBuilder.py index 5a745f8f0a..813b3f7d2e 100644 --- a/cura/Settings/CuraStackBuilder.py +++ b/cura/Settings/CuraStackBuilder.py @@ -1,7 +1,7 @@ # Copyright (c) 2019 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. -from typing import Optional +from typing import Optional, cast from UM.ConfigurationErrorMessage import ConfigurationErrorMessage from UM.Logger import Logger @@ -275,41 +275,26 @@ class CuraStackBuilder: :return: The new Abstract Machine or None if an error occurred. """ abstract_machine_id = f"{definition_id}_abstract_machine" - from cura.CuraApplication import CuraApplication application = CuraApplication.getInstance() registry = application.getContainerRegistry() - container_tree = ContainerTree.getInstance() - if registry.findContainerStacks(is_abstract_machine = "True", id = abstract_machine_id): - # This abstract machine already exists + abstract_machines = registry.findContainerStacks(id = abstract_machine_id) + if abstract_machines: + return cast(GlobalStack, abstract_machines[0]) + definitions = registry.findDefinitionContainers(id=definition_id) + + name = "" + + if definitions: + name = definitions[0].getName() + stack = cls.createMachine(abstract_machine_id, definition_id) + if not stack: return None - match registry.findDefinitionContainers(type = "machine", id = definition_id): - case []: - # It should not be possible for the definition to be missing since an abstract machine will only - # be created as a result of a machine with definition_id being created. - Logger.error(f"Definition {definition_id} was not found!") - return None - case [machine_definition, *_definitions]: - machine_node = container_tree.machines[machine_definition.getId()] - name = machine_definition.getName() + stack.setName(name) - stack = GlobalStack(abstract_machine_id) - stack.setMetaDataEntry("is_abstract_machine", True) - stack.setMetaDataEntry("is_online", True) - stack.setDefinition(machine_definition) - cls.createUserContainer( - name, - machine_definition, - stack, - application.empty_variant_container, - application.empty_material_container, - machine_node.preferredGlobalQuality().container, - ) + stack.setMetaDataEntry("is_abstract_machine", True) + stack.setMetaDataEntry("is_online", True) - stack.setName(name) - - registry.addContainer(stack) - - return stack + return stack \ No newline at end of file diff --git a/cura/Settings/GlobalStack.py b/cura/Settings/GlobalStack.py index 3c13f236ab..43232da725 100755 --- a/cura/Settings/GlobalStack.py +++ b/cura/Settings/GlobalStack.py @@ -292,7 +292,6 @@ class GlobalStack(CuraContainerStack): for extruder_train in extruder_trains: extruder_position = extruder_train.getMetaDataEntry("position") extruder_check_position.add(extruder_position) - for check_position in range(machine_extruder_count): if str(check_position) not in extruder_check_position: return False From 4f75251000e627c0b10bf368a92680f1f19699f0 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Fri, 26 Aug 2022 14:41:44 +0200 Subject: [PATCH 22/89] Prettify monitor page for abstract cloud printers. Fill placeholder. Image is the closest I could find in the current SVG's. Other than that, this should be it mostly for the 'monitoring' of abstract cloud printers. part of CURA-9422 --- plugins/MonitorStage/MonitorMain.qml | 42 ++++++++++++++++++++++------ 1 file changed, 33 insertions(+), 9 deletions(-) diff --git a/plugins/MonitorStage/MonitorMain.qml b/plugins/MonitorStage/MonitorMain.qml index 848c4a7187..eaf7fccf2a 100644 --- a/plugins/MonitorStage/MonitorMain.qml +++ b/plugins/MonitorStage/MonitorMain.qml @@ -116,17 +116,41 @@ Rectangle width: contentWidth } - UM.Label + Rectangle { - id: sendToFactoryLabel - anchors + id: sendToFactoryCard + color: UM.Theme.getColor("detail_background") + height: childrenRect.height + width: childrenRect.width + Column { - horizontalCenter: parent.horizontalCenter + spacing: UM.Theme.getSize("default_margin").height + padding: UM.Theme.getSize("default_margin").width + topPadding: 0 + + Image + { + anchors.horizontalCenter: parent.horizontalCenter + source: UM.Theme.getImage("first_run_ultimaker_cloud") + } + + UM.Label + { + anchors.horizontalCenter: parent.horizontalCenter + visible: isAbstractCloudPrinter + text: catalog.i18nc("@info", "Monitor your printers from everywhere using Ultimaker Digital Factory") + font: UM.Theme.getFont("medium") + width: contentWidth + } + + Cura.PrimaryButton + { + id: sendToFactoryButton + anchors.horizontalCenter: parent.horizontalCenter + text: catalog.i18nc("@button", "View printers in Digital Factory") + onClicked: Qt.openUrlExternally("https://digitalfactory.ultimaker.com/app/print-jobs?utm_source=cura&utm_medium=software&utm_campaign=monitor-view-cloud-printer-type") + } } - visible: isAbstractCloudPrinter - text: catalog.i18nc("@info", "Please go to the Digital Factory. [PLACEHOLDER]") - font: UM.Theme.getFont("medium") - width: contentWidth } Item @@ -135,7 +159,7 @@ Rectangle { left: noNetworkLabel.left } - visible: !isNetworkConfigured && isNetworkConfigurable + visible: !isNetworkConfigured && isNetworkConfigurable && !isAbstractCloudPrinter width: childrenRect.width height: childrenRect.height From 55c312e9bb28a8e1702d16fc7f7b41ed19a9e31a Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Fri, 26 Aug 2022 14:56:10 +0200 Subject: [PATCH 23/89] Some minor GUI tweaks. part of CURA-9422 --- plugins/MonitorStage/MonitorMain.qml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/plugins/MonitorStage/MonitorMain.qml b/plugins/MonitorStage/MonitorMain.qml index eaf7fccf2a..549c6b2d10 100644 --- a/plugins/MonitorStage/MonitorMain.qml +++ b/plugins/MonitorStage/MonitorMain.qml @@ -120,16 +120,19 @@ Rectangle { id: sendToFactoryCard color: UM.Theme.getColor("detail_background") - height: childrenRect.height - width: childrenRect.width + height: childrenRect.height + UM.Theme.getSize("default_margin").height * 2 + width: childrenRect.width + UM.Theme.getSize("wide_margin").width * 2 Column { + anchors.horizontalCenter: parent.horizontalCenter + anchors.verticalCenter: parent.verticalCenter spacing: UM.Theme.getSize("default_margin").height padding: UM.Theme.getSize("default_margin").width topPadding: 0 Image { + id: sendToFactoryImage anchors.horizontalCenter: parent.horizontalCenter source: UM.Theme.getImage("first_run_ultimaker_cloud") } @@ -140,7 +143,10 @@ Rectangle visible: isAbstractCloudPrinter text: catalog.i18nc("@info", "Monitor your printers from everywhere using Ultimaker Digital Factory") font: UM.Theme.getFont("medium") - width: contentWidth + width: sendToFactoryImage.width + wrapMode: Text.WordWrap + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter } Cura.PrimaryButton From ad7c18d75e3c937459515bc60c42870fab2f1b94 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Mon, 29 Aug 2022 09:26:08 +0200 Subject: [PATCH 24/89] Increase margins between image, text and action button in the monitor page CURA-9422 --- plugins/MonitorStage/MonitorMain.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/MonitorStage/MonitorMain.qml b/plugins/MonitorStage/MonitorMain.qml index 549c6b2d10..9e745f9f1c 100644 --- a/plugins/MonitorStage/MonitorMain.qml +++ b/plugins/MonitorStage/MonitorMain.qml @@ -126,7 +126,7 @@ Rectangle { anchors.horizontalCenter: parent.horizontalCenter anchors.verticalCenter: parent.verticalCenter - spacing: UM.Theme.getSize("default_margin").height + spacing: UM.Theme.getSize("wide_margin").height padding: UM.Theme.getSize("default_margin").width topPadding: 0 From 6f4796f34f6179776724278e683f6eaaf6441c70 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Mon, 29 Aug 2022 09:26:26 +0200 Subject: [PATCH 25/89] Remove commented out code CURA-9422 --- plugins/MonitorStage/MonitorMain.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/MonitorStage/MonitorMain.qml b/plugins/MonitorStage/MonitorMain.qml index 9e745f9f1c..8d19b116ce 100644 --- a/plugins/MonitorStage/MonitorMain.qml +++ b/plugins/MonitorStage/MonitorMain.qml @@ -12,7 +12,7 @@ Rectangle id: viewportOverlay property bool isConnected: Cura.MachineManager.activeMachineHasNetworkConnection || Cura.MachineManager.activeMachineHasCloudConnection - property bool isAbstractCloudPrinter: Cura.MachineManager.activeMachineIsAbstract // && Cura.MachineManager.activeMachineHasCloudRegistration + property bool isAbstractCloudPrinter: Cura.MachineManager.activeMachineIsAbstract property bool isNetworkConfigurable: { if(Cura.MachineManager.activeMachine === null) From 426a5c3cc54b0cf8f8bb520bb8b9445d4700c8c3 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Mon, 29 Aug 2022 10:40:35 +0200 Subject: [PATCH 26/89] Add correct image in monitor page CURA-9422 --- plugins/MonitorStage/MonitorMain.qml | 2 +- .../themes/cura-light/images/illustration_connect_printers.svg | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 resources/themes/cura-light/images/illustration_connect_printers.svg diff --git a/plugins/MonitorStage/MonitorMain.qml b/plugins/MonitorStage/MonitorMain.qml index 8d19b116ce..c3a7b7873e 100644 --- a/plugins/MonitorStage/MonitorMain.qml +++ b/plugins/MonitorStage/MonitorMain.qml @@ -134,7 +134,7 @@ Rectangle { id: sendToFactoryImage anchors.horizontalCenter: parent.horizontalCenter - source: UM.Theme.getImage("first_run_ultimaker_cloud") + source: UM.Theme.getImage("illustration_connect_printers") } UM.Label diff --git a/resources/themes/cura-light/images/illustration_connect_printers.svg b/resources/themes/cura-light/images/illustration_connect_printers.svg new file mode 100644 index 0000000000..d18302bdf1 --- /dev/null +++ b/resources/themes/cura-light/images/illustration_connect_printers.svg @@ -0,0 +1 @@ + \ No newline at end of file From f3b904056168484a76d3d922e96df23f098d5bae Mon Sep 17 00:00:00 2001 From: joeydelarago Date: Mon, 29 Aug 2022 14:03:23 +0200 Subject: [PATCH 27/89] Add sanity check for printers that are online. They must have an online connection type. This can pop up when adding a printer from a 3mf since we do not store the connection_type but we do store is_online=True. CURA-9277 --- cura/Machines/Models/MachineListModel.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/cura/Machines/Models/MachineListModel.py b/cura/Machines/Models/MachineListModel.py index a758060384..6814600307 100644 --- a/cura/Machines/Models/MachineListModel.py +++ b/cura/Machines/Models/MachineListModel.py @@ -11,6 +11,7 @@ from UM.Qt.ListModel import ListModel from UM.Settings.ContainerStack import ContainerStack from UM.i18n import i18nCatalog from UM.Util import parseBool +from cura.PrinterOutput.PrinterOutputDevice import ConnectionType from cura.Settings.CuraContainerRegistry import CuraContainerRegistry from cura.Settings.GlobalStack import GlobalStack @@ -90,10 +91,17 @@ class MachineListModel(ListModel): if parseBool(container_stack.getMetaDataEntry("hidden", False)): return + # This is required because machines loaded from projects have the is_online="True" but no connection type. + # We want to display them the same way as unconnected printers in this case. + has_connection = False + has_connection |= parseBool(container_stack.getMetaDataEntry("is_abstract_machine", False)) + for connection_type in [ConnectionType.NetworkConnection.value, ConnectionType.CloudConnection.value]: + has_connection |= connection_type in container_stack.configuredConnectionTypes + self.appendItem({"name": container_stack.getName(), "id": container_stack.getId(), "metadata": container_stack.getMetaData().copy(), - "isOnline": parseBool(container_stack.getMetaDataEntry("is_online", False)), + "isOnline": parseBool(container_stack.getMetaDataEntry("is_online", False)) and has_connection, "isAbstractMachine": parseBool(container_stack.getMetaDataEntry("is_abstract_machine", False)), "machineCount": machine_count, }) From 6d489659f2fd6a9f7ca6d737ffcc24ae7e1289fd Mon Sep 17 00:00:00 2001 From: Rijk van Manen Date: Mon, 29 Aug 2022 14:52:02 +0200 Subject: [PATCH 28/89] Clean up of standby temperatures Clean up of standby temperatures to printing temperature -100deg. This is a safe default. PP-192 --- resources/definitions/ultimaker.def.json | 1 + resources/definitions/ultimaker3.def.json | 1 - resources/definitions/ultimaker_s3.def.json | 1 - resources/definitions/ultimaker_s5.def.json | 1 - resources/quality/ultimaker3/um3_aa0.4_ABS_Fast_Print.inst.cfg | 1 - resources/quality/ultimaker3/um3_aa0.4_ABS_High_Quality.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.4_ABS_Normal_Quality.inst.cfg | 1 - resources/quality/ultimaker3/um3_aa0.4_CPEP_Draft_Print.inst.cfg | 1 - resources/quality/ultimaker3/um3_aa0.4_CPEP_Fast_Print.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.4_CPEP_High_Quality.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.4_CPEP_Normal_Quality.inst.cfg | 1 - resources/quality/ultimaker3/um3_aa0.4_CPE_Draft_Print.inst.cfg | 1 - resources/quality/ultimaker3/um3_aa0.4_CPE_Fast_Print.inst.cfg | 1 - resources/quality/ultimaker3/um3_aa0.4_CPE_High_Quality.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.4_CPE_Normal_Quality.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.4_Nylon_Draft_Print.inst.cfg | 1 - resources/quality/ultimaker3/um3_aa0.4_Nylon_Fast_Print.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.4_Nylon_High_Quality.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.4_Nylon_Normal_Quality.inst.cfg | 1 - resources/quality/ultimaker3/um3_aa0.4_PC_Draft_Print.inst.cfg | 1 - resources/quality/ultimaker3/um3_aa0.4_PC_Fast_Print.inst.cfg | 1 - resources/quality/ultimaker3/um3_aa0.4_PC_High_Quality.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.4_PC_Normal_Quality.inst.cfg | 1 - resources/quality/ultimaker3/um3_aa0.4_PETG_Draft_Print.inst.cfg | 1 - resources/quality/ultimaker3/um3_aa0.4_PETG_Fast_Print.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.4_PETG_Normal_Quality.inst.cfg | 1 - resources/quality/ultimaker3/um3_aa0.4_PLA_Draft_Print.inst.cfg | 1 - resources/quality/ultimaker3/um3_aa0.4_PLA_Fast_Print.inst.cfg | 1 - resources/quality/ultimaker3/um3_aa0.4_PLA_High_Quality.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.4_PLA_Normal_Quality.inst.cfg | 1 - resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg | 1 - resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg | 1 - resources/quality/ultimaker3/um3_aa0.4_TPLA_Draft_Print.inst.cfg | 1 - resources/quality/ultimaker3/um3_aa0.4_TPLA_Fast_Print.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.4_TPLA_Normal_Quality.inst.cfg | 1 - resources/quality/ultimaker3/um3_aa0.4_TPU_Draft_Print.inst.cfg | 1 - resources/quality/ultimaker3/um3_aa0.4_TPU_Fast_Print.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.4_TPU_Normal_Quality.inst.cfg | 1 - resources/quality/ultimaker3/um3_aa0.8_ABS_Draft_Print.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.8_ABS_Superdraft_Print.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.8_ABS_Verydraft_Print.inst.cfg | 1 - resources/quality/ultimaker3/um3_aa0.8_CPEP_Fast_Print.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg | 1 - resources/quality/ultimaker3/um3_aa0.8_CPE_Draft_Print.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.8_CPE_Superdraft_Print.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.8_CPE_Verydraft_Print.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.8_Nylon_Draft_Print.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.8_Nylon_Superdraft_Print.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.8_Nylon_Verydraft_Print.inst.cfg | 1 - resources/quality/ultimaker3/um3_aa0.8_PC_Fast_Print.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg | 1 - resources/quality/ultimaker3/um3_aa0.8_PETG_Draft_Print.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.8_PETG_Superdraft_Print.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.8_PETG_Verydraft_Print.inst.cfg | 1 - resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg | 1 - resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.8_TPLA_Verydraft_Print.inst.cfg | 1 - resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg | 1 - resources/quality/ultimaker3/um3_bb0.4_PVA_Draft_Print.inst.cfg | 1 - resources/quality/ultimaker3/um3_bb0.4_PVA_Fast_Print.inst.cfg | 1 - resources/quality/ultimaker3/um3_bb0.4_PVA_High_Quality.inst.cfg | 1 - .../quality/ultimaker3/um3_bb0.4_PVA_Normal_Quality.inst.cfg | 1 - resources/quality/ultimaker3/um3_bb0.8_PVA_Draft_Print.inst.cfg | 1 - .../quality/ultimaker3/um3_bb0.8_PVA_Superdraft_Print.inst.cfg | 1 - .../quality/ultimaker3/um3_bb0.8_PVA_Verydraft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.4_Nylon_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.4_Nylon_Fast_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.4_Nylon_High_Quality.inst.cfg | 1 - .../ultimaker_s3/um_s3_aa0.4_Nylon_Normal_Quality.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.4_PC_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.4_PC_Fast_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.4_PC_High_Quality.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.4_PC_Normal_Quality.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.4_PLA_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.4_PLA_Fast_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.4_PLA_High_Quality.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.4_PLA_Normal_Quality.inst.cfg | 1 - .../ultimaker_s3/um_s3_aa0.4_PLA_VeryDraft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.4_PP_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.4_PP_Fast_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.4_PP_Normal_Quality.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.4_TPLA_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.4_TPLA_Fast_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.4_TPLA_High_Quality.inst.cfg | 1 - .../ultimaker_s3/um_s3_aa0.4_TPLA_Normal_Quality.inst.cfg | 1 - .../ultimaker_s3/um_s3_aa0.4_TPLA_VeryDraft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.4_TPU_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.4_TPU_Fast_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.4_TPU_Normal_Quality.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.8_ABS_Draft_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_aa0.8_ABS_Superdraft_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_aa0.8_ABS_Verydraft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.8_CPEP_Fast_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_aa0.8_CPEP_Superdraft_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_aa0.8_CPEP_Verydraft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.8_CPE_Draft_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_aa0.8_CPE_Superdraft_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_aa0.8_CPE_Verydraft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.8_Nylon_Draft_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_aa0.8_Nylon_Superdraft_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_aa0.8_Nylon_Verydraft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.8_PC_Fast_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_aa0.8_PC_Superdraft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.8_PC_Verydraft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.8_PETG_Draft_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_aa0.8_PETG_Superdraft_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_aa0.8_PETG_Verydraft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.8_PP_Draft_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_aa0.8_PP_Superdraft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.8_PP_Verydraft_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_aa0.8_TPLA_Verydraft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.8_TPU_Draft_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_aa0.8_TPU_Superdraft_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_aa0.8_TPU_Verydraft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_bb0.4_PVA_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_bb0.4_PVA_Fast_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_bb0.4_PVA_High_Quality.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_bb0.4_PVA_Normal_Quality.inst.cfg | 1 - .../ultimaker_s3/um_s3_bb0.4_PVA_Verydraft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_bb0.8_PVA_Draft_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_bb0.8_PVA_Superdraft_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_bb0.8_PVA_Verydraft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_cc0.4_CFFCPE_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_cc0.4_CFFCPE_Fast_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_cc0.4_CFFPA_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_cc0.4_CFFPA_Fast_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_cc0.4_GFFCPE_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_cc0.4_GFFCPE_Fast_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_cc0.4_GFFPA_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_cc0.4_GFFPA_Fast_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_cc0.4_PLA_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_cc0.4_PLA_Fast_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_cc0.6_CFFCPE_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_cc0.6_CFFPA_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_cc0.6_GFFCPE_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_cc0.6_GFFPA_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_cc0.6_PLA_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_cc0.6_PLA_Fast_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.4_Nylon_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.4_Nylon_Fast_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.4_Nylon_High_Quality.inst.cfg | 1 - .../ultimaker_s5/um_s5_aa0.4_Nylon_Normal_Quality.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.4_PC_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.4_PC_Fast_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.4_PC_High_Quality.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.4_PC_Normal_Quality.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.4_PLA_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.4_PLA_Fast_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.4_PLA_High_Quality.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.4_PLA_Normal_Quality.inst.cfg | 1 - .../ultimaker_s5/um_s5_aa0.4_PLA_VeryDraft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.4_PP_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.4_PP_Fast_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.4_PP_Normal_Quality.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.4_TPLA_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.4_TPLA_Fast_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.4_TPLA_High_Quality.inst.cfg | 1 - .../ultimaker_s5/um_s5_aa0.4_TPLA_Normal_Quality.inst.cfg | 1 - .../ultimaker_s5/um_s5_aa0.4_TPLA_VeryDraft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.4_TPU_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.4_TPU_Fast_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.4_TPU_Normal_Quality.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.8_ABS_Draft_Print.inst.cfg | 1 - .../ultimaker_s5/um_s5_aa0.8_ABS_Superdraft_Print.inst.cfg | 1 - .../ultimaker_s5/um_s5_aa0.8_ABS_Verydraft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.8_CPEP_Fast_Print.inst.cfg | 1 - .../ultimaker_s5/um_s5_aa0.8_CPEP_Superdraft_Print.inst.cfg | 1 - .../ultimaker_s5/um_s5_aa0.8_CPEP_Verydraft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.8_CPE_Draft_Print.inst.cfg | 1 - .../ultimaker_s5/um_s5_aa0.8_CPE_Superdraft_Print.inst.cfg | 1 - .../ultimaker_s5/um_s5_aa0.8_CPE_Verydraft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.8_Nylon_Draft_Print.inst.cfg | 1 - .../ultimaker_s5/um_s5_aa0.8_Nylon_Superdraft_Print.inst.cfg | 1 - .../ultimaker_s5/um_s5_aa0.8_Nylon_Verydraft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.8_PC_Fast_Print.inst.cfg | 1 - .../ultimaker_s5/um_s5_aa0.8_PC_Superdraft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.8_PC_Verydraft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.8_PETG_Draft_Print.inst.cfg | 1 - .../ultimaker_s5/um_s5_aa0.8_PETG_Superdraft_Print.inst.cfg | 1 - .../ultimaker_s5/um_s5_aa0.8_PETG_Verydraft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.8_PP_Draft_Print.inst.cfg | 1 - .../ultimaker_s5/um_s5_aa0.8_PP_Superdraft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.8_PP_Verydraft_Print.inst.cfg | 1 - .../ultimaker_s5/um_s5_aa0.8_TPLA_Verydraft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.8_TPU_Draft_Print.inst.cfg | 1 - .../ultimaker_s5/um_s5_aa0.8_TPU_Superdraft_Print.inst.cfg | 1 - .../ultimaker_s5/um_s5_aa0.8_TPU_Verydraft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_bb0.4_PVA_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_bb0.4_PVA_Fast_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_bb0.4_PVA_High_Quality.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_bb0.4_PVA_Normal_Quality.inst.cfg | 1 - .../ultimaker_s5/um_s5_bb0.4_PVA_Verydraft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_bb0.8_PVA_Draft_Print.inst.cfg | 1 - .../ultimaker_s5/um_s5_bb0.8_PVA_Superdraft_Print.inst.cfg | 1 - .../ultimaker_s5/um_s5_bb0.8_PVA_Verydraft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_cc0.4_CFFCPE_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_cc0.4_CFFCPE_Fast_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_cc0.4_CFFPA_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_cc0.4_CFFPA_Fast_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_cc0.4_GFFCPE_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_cc0.4_GFFCPE_Fast_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_cc0.4_GFFPA_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_cc0.4_GFFPA_Fast_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_cc0.4_PLA_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_cc0.4_PLA_Fast_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_cc0.6_CFFCPE_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_cc0.6_CFFPA_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_cc0.6_GFFCPE_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_cc0.6_GFFPA_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_cc0.6_PLA_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_cc0.6_PLA_Fast_Print.inst.cfg | 1 - resources/variants/ultimaker3_aa0.8.inst.cfg | 1 - resources/variants/ultimaker3_bb0.8.inst.cfg | 1 - resources/variants/ultimaker3_extended_aa0.8.inst.cfg | 1 - resources/variants/ultimaker3_extended_bb0.8.inst.cfg | 1 - resources/variants/ultimaker_s3_aa0.8.inst.cfg | 1 - resources/variants/ultimaker_s3_bb0.8.inst.cfg | 1 - resources/variants/ultimaker_s5_aa0.8.inst.cfg | 1 - resources/variants/ultimaker_s5_bb0.8.inst.cfg | 1 - 228 files changed, 1 insertion(+), 227 deletions(-) diff --git a/resources/definitions/ultimaker.def.json b/resources/definitions/ultimaker.def.json index f9f686c69b..57d6904aaf 100644 --- a/resources/definitions/ultimaker.def.json +++ b/resources/definitions/ultimaker.def.json @@ -24,6 +24,7 @@ "maximum_value_warning": "125" }, "material_standby_temperature": { + "value": "material_print_temperature - 100", "minimum_value": "0" }, "extruder_prime_pos_y": diff --git a/resources/definitions/ultimaker3.def.json b/resources/definitions/ultimaker3.def.json index 38428b89ca..ddb02b7810 100644 --- a/resources/definitions/ultimaker3.def.json +++ b/resources/definitions/ultimaker3.def.json @@ -109,7 +109,6 @@ "material_print_temperature_layer_0": { "value": "material_print_temperature + 5" }, "material_bed_temperature": { "maximum_value": "115" }, "material_bed_temperature_layer_0": { "maximum_value": "115" }, - "material_standby_temperature": { "value": "100" }, "multiple_mesh_overlap": { "value": "0" }, "optimize_wall_printing_order": { "value": "True" }, "prime_tower_enable": { "default_value": true }, diff --git a/resources/definitions/ultimaker_s3.def.json b/resources/definitions/ultimaker_s3.def.json index 743ab7f478..999600254c 100644 --- a/resources/definitions/ultimaker_s3.def.json +++ b/resources/definitions/ultimaker_s3.def.json @@ -98,7 +98,6 @@ "layer_start_y": { "value": "sum(extruderValues('machine_extruder_start_pos_y')) / len(extruderValues('machine_extruder_start_pos_y'))" }, "machine_min_cool_heat_time_window": { "value": "15" }, "default_material_print_temperature": { "value": "200" }, - "material_standby_temperature": { "value": "100" }, "multiple_mesh_overlap": { "value": "0" }, "optimize_wall_printing_order": { "value": "True" }, "prime_tower_enable": { "value": "True" }, diff --git a/resources/definitions/ultimaker_s5.def.json b/resources/definitions/ultimaker_s5.def.json index da0367f571..eee4bf2346 100644 --- a/resources/definitions/ultimaker_s5.def.json +++ b/resources/definitions/ultimaker_s5.def.json @@ -100,7 +100,6 @@ "layer_start_y": { "value": "sum(extruderValues('machine_extruder_start_pos_y')) / len(extruderValues('machine_extruder_start_pos_y'))" }, "machine_min_cool_heat_time_window": { "value": "15" }, "default_material_print_temperature": { "value": "200" }, - "material_standby_temperature": { "value": "100" }, "multiple_mesh_overlap": { "value": "0" }, "prime_tower_enable": { "value": "True" }, "raft_airgap": { "value": "0" }, diff --git a/resources/quality/ultimaker3/um3_aa0.4_ABS_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_ABS_Fast_Print.inst.cfg index f200457a62..5678217664 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_ABS_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_ABS_Fast_Print.inst.cfg @@ -18,7 +18,6 @@ machine_nozzle_heat_up_speed = 1.5 material_print_temperature = =default_material_print_temperature + 5 material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 10 -material_standby_temperature = 100 prime_tower_enable = False speed_print = 60 speed_layer_0 = =math.ceil(speed_print * 20 / 60) diff --git a/resources/quality/ultimaker3/um3_aa0.4_ABS_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_ABS_High_Quality.inst.cfg index 2e2ae52399..bb2ed82e47 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_ABS_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_ABS_High_Quality.inst.cfg @@ -15,7 +15,6 @@ variant = AA 0.4 cool_min_speed = 12 machine_nozzle_cool_down_speed = 0.8 machine_nozzle_heat_up_speed = 1.5 -material_standby_temperature = 100 material_print_temperature = =default_material_print_temperature - 5 material_print_temperature_layer_0 = =material_print_temperature + 15 material_initial_print_temperature = =material_print_temperature - 5 diff --git a/resources/quality/ultimaker3/um3_aa0.4_ABS_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_ABS_Normal_Quality.inst.cfg index eae553f0ee..ea70e963cb 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_ABS_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_ABS_Normal_Quality.inst.cfg @@ -17,7 +17,6 @@ machine_nozzle_heat_up_speed = 1.5 material_print_temperature_layer_0 = =material_print_temperature + 10 material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 10 -material_standby_temperature = 100 prime_tower_enable = False speed_print = 55 speed_layer_0 = =math.ceil(speed_print * 20 / 55) diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Draft_Print.inst.cfg index 7a69d14931..eeffba6de3 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Draft_Print.inst.cfg @@ -24,7 +24,6 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 multiple_mesh_overlap = 0 prime_tower_enable = True prime_tower_wipe_enabled = True diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Fast_Print.inst.cfg index e7b6c725dd..e8802d28cc 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Fast_Print.inst.cfg @@ -24,7 +24,6 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 material_print_temperature = =default_material_print_temperature + 10 material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 multiple_mesh_overlap = 0 prime_tower_enable = True prime_tower_wipe_enabled = True diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPEP_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPEP_High_Quality.inst.cfg index fb2e0330ef..45a2d6d896 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPEP_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPEP_High_Quality.inst.cfg @@ -26,7 +26,6 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 multiple_mesh_overlap = 0 prime_tower_enable = True prime_tower_wipe_enabled = True diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Normal_Quality.inst.cfg index 074270e0ec..f9dff14d6a 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Normal_Quality.inst.cfg @@ -25,7 +25,6 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 multiple_mesh_overlap = 0 prime_tower_enable = True prime_tower_wipe_enabled = True diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPE_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPE_Draft_Print.inst.cfg index e43e125e89..7f33b0e11c 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPE_Draft_Print.inst.cfg @@ -15,7 +15,6 @@ variant = AA 0.4 material_print_temperature = =default_material_print_temperature + 10 material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 10 -material_standby_temperature = 100 skin_overlap = 20 speed_print = 60 speed_layer_0 = =math.ceil(speed_print * 20 / 60) diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPE_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPE_Fast_Print.inst.cfg index b676573793..98a0b3c5a1 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPE_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPE_Fast_Print.inst.cfg @@ -16,7 +16,6 @@ cool_min_speed = 7 material_print_temperature = =default_material_print_temperature + 5 material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 10 -material_standby_temperature = 100 speed_print = 60 speed_layer_0 = =math.ceil(speed_print * 20 / 60) speed_topbottom = =math.ceil(speed_print * 30 / 60) diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPE_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPE_High_Quality.inst.cfg index 5fe79e7351..de3842c18f 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPE_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPE_High_Quality.inst.cfg @@ -18,7 +18,6 @@ machine_nozzle_heat_up_speed = 1.5 material_print_temperature = =default_material_print_temperature - 5 material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 10 -material_standby_temperature = 100 speed_print = 50 speed_layer_0 = =math.ceil(speed_print * 20 / 50) speed_topbottom = =math.ceil(speed_print * 30 / 50) diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPE_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPE_Normal_Quality.inst.cfg index a21f8c3bdf..f9263edaf5 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPE_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPE_Normal_Quality.inst.cfg @@ -16,7 +16,6 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 10 -material_standby_temperature = 100 speed_print = 55 speed_layer_0 = =math.ceil(speed_print * 20 / 55) speed_topbottom = =math.ceil(speed_print * 30 / 55) diff --git a/resources/quality/ultimaker3/um3_aa0.4_Nylon_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_Nylon_Draft_Print.inst.cfg index 5d08d0534b..94e99ee79d 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_Nylon_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_Nylon_Draft_Print.inst.cfg @@ -18,7 +18,6 @@ cool_min_speed = 10 material_print_temperature = =default_material_print_temperature + 10 material_initial_print_temperature = =material_print_temperature - 5 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) diff --git a/resources/quality/ultimaker3/um3_aa0.4_Nylon_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_Nylon_Fast_Print.inst.cfg index 0f6323ba1d..054784226a 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_Nylon_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_Nylon_Fast_Print.inst.cfg @@ -18,7 +18,6 @@ cool_min_speed = 10 material_print_temperature = =default_material_print_temperature + 5 material_initial_print_temperature = =material_print_temperature - 5 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) diff --git a/resources/quality/ultimaker3/um3_aa0.4_Nylon_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_Nylon_High_Quality.inst.cfg index 8e16021f89..b534a68129 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_Nylon_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_Nylon_High_Quality.inst.cfg @@ -17,7 +17,6 @@ cool_min_layer_time_fan_speed_max = 20 cool_min_speed = 15 material_initial_print_temperature = =material_print_temperature - 5 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) diff --git a/resources/quality/ultimaker3/um3_aa0.4_Nylon_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_Nylon_Normal_Quality.inst.cfg index 432c6ef3d9..e3e027a62b 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_Nylon_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_Nylon_Normal_Quality.inst.cfg @@ -17,7 +17,6 @@ cool_min_layer_time_fan_speed_max = 20 cool_min_speed = 12 material_initial_print_temperature = =material_print_temperature - 5 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) diff --git a/resources/quality/ultimaker3/um3_aa0.4_PC_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PC_Draft_Print.inst.cfg index df4ea5ffab..48393099d2 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PC_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PC_Draft_Print.inst.cfg @@ -31,7 +31,6 @@ machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 material_print_temperature = =default_material_print_temperature + 10 -material_standby_temperature = 100 multiple_mesh_overlap = 0 ooze_shield_angle = 40 prime_tower_enable = True diff --git a/resources/quality/ultimaker3/um3_aa0.4_PC_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PC_Fast_Print.inst.cfg index 5d01ce5f28..5ecbe7b8cd 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PC_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PC_Fast_Print.inst.cfg @@ -29,7 +29,6 @@ machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 material_print_temperature = =default_material_print_temperature + 10 -material_standby_temperature = 100 multiple_mesh_overlap = 0 ooze_shield_angle = 40 prime_tower_enable = True diff --git a/resources/quality/ultimaker3/um3_aa0.4_PC_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PC_High_Quality.inst.cfg index dd6b9063b9..aff9a53cd7 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PC_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PC_High_Quality.inst.cfg @@ -31,7 +31,6 @@ machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 material_print_temperature = =default_material_print_temperature - 10 -material_standby_temperature = 100 multiple_mesh_overlap = 0 ooze_shield_angle = 40 prime_tower_enable = True diff --git a/resources/quality/ultimaker3/um3_aa0.4_PC_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PC_Normal_Quality.inst.cfg index 7bed5ac6d2..948e1a5180 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PC_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PC_Normal_Quality.inst.cfg @@ -28,7 +28,6 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 -material_standby_temperature = 100 multiple_mesh_overlap = 0 ooze_shield_angle = 40 prime_tower_enable = True diff --git a/resources/quality/ultimaker3/um3_aa0.4_PETG_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PETG_Draft_Print.inst.cfg index 77e631a969..3c815ce6bc 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PETG_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PETG_Draft_Print.inst.cfg @@ -15,7 +15,6 @@ variant = AA 0.4 material_print_temperature = =default_material_print_temperature + 5 material_initial_print_temperature = =material_print_temperature material_final_print_temperature = =material_print_temperature - 5 -material_standby_temperature = 100 skin_overlap = 20 speed_print = 60 speed_layer_0 = =math.ceil(speed_print * 20 / 60) diff --git a/resources/quality/ultimaker3/um3_aa0.4_PETG_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PETG_Fast_Print.inst.cfg index 3a6c9fcfd5..4bcf604e87 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PETG_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PETG_Fast_Print.inst.cfg @@ -16,7 +16,6 @@ cool_min_speed = 7 material_print_temperature = =default_material_print_temperature material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 10 -material_standby_temperature = 100 speed_print = 60 speed_layer_0 = =math.ceil(speed_print * 20 / 60) speed_topbottom = =math.ceil(speed_print * 30 / 60) diff --git a/resources/quality/ultimaker3/um3_aa0.4_PETG_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PETG_Normal_Quality.inst.cfg index 335593cab2..3b4676aedf 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PETG_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PETG_Normal_Quality.inst.cfg @@ -17,7 +17,6 @@ machine_nozzle_heat_up_speed = 1.5 material_print_temperature = =default_material_print_temperature - 5 material_initial_print_temperature = =material_print_temperature - 10 material_final_print_temperature = =material_print_temperature - 15 -material_standby_temperature = 100 speed_print = 55 speed_layer_0 = =math.ceil(speed_print * 20 / 55) speed_topbottom = =math.ceil(speed_print * 30 / 55) diff --git a/resources/quality/ultimaker3/um3_aa0.4_PLA_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PLA_Draft_Print.inst.cfg index d260cfbc2d..94ebaaf3cd 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PLA_Draft_Print.inst.cfg @@ -17,7 +17,6 @@ cool_fan_speed_max = =cool_fan_speed machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 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) diff --git a/resources/quality/ultimaker3/um3_aa0.4_PLA_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PLA_Fast_Print.inst.cfg index 757d988b76..302e1284a0 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PLA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PLA_Fast_Print.inst.cfg @@ -16,7 +16,6 @@ cool_fan_full_at_height = =layer_height_0 + 2 * layer_height cool_fan_speed_max = =cool_fan_speed machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -material_standby_temperature = 100 prime_tower_enable = False speed_print = 80 speed_layer_0 = =math.ceil(speed_print * 20 / 80) diff --git a/resources/quality/ultimaker3/um3_aa0.4_PLA_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PLA_High_Quality.inst.cfg index 7ee4ae5fd9..e12f054442 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PLA_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PLA_High_Quality.inst.cfg @@ -18,7 +18,6 @@ cool_min_speed = 10 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature - 5 -material_standby_temperature = 100 prime_tower_enable = False skin_overlap = 10 speed_print = 60 diff --git a/resources/quality/ultimaker3/um3_aa0.4_PLA_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PLA_Normal_Quality.inst.cfg index 35ffb3a3f3..b3579468ae 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PLA_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PLA_Normal_Quality.inst.cfg @@ -17,7 +17,6 @@ cool_fan_speed_max = =cool_fan_speed cool_min_speed = 7 machine_nozzle_cool_down_speed = 0.75 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) diff --git a/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg index c151870622..95ec7d97a8 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg @@ -32,7 +32,6 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 material_print_temperature = =default_material_print_temperature - 5 material_print_temperature_layer_0 = =material_print_temperature + 5 -material_standby_temperature = 100 multiple_mesh_overlap = 0 prime_tower_enable = False prime_tower_size = 16 diff --git a/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg index 7e21bec438..e6a7d11f43 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg @@ -32,7 +32,6 @@ material_final_print_temperature = =material_print_temperature - 12 material_initial_print_temperature = =material_print_temperature - 2 material_print_temperature = =default_material_print_temperature - 13 material_print_temperature_layer_0 = =material_print_temperature + 3 -material_standby_temperature = 100 multiple_mesh_overlap = 0 prime_tower_enable = False prime_tower_size = 16 diff --git a/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg index c47bfb3c18..06256a73dc 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg @@ -30,7 +30,6 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 material_print_temperature = =default_material_print_temperature - 15 material_print_temperature_layer_0 = =material_print_temperature + 3 -material_standby_temperature = 100 multiple_mesh_overlap = 0 prime_tower_enable = False prime_tower_size = 16 diff --git a/resources/quality/ultimaker3/um3_aa0.4_TPLA_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_TPLA_Draft_Print.inst.cfg index 227b16db92..bac7a7b48b 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_TPLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_TPLA_Draft_Print.inst.cfg @@ -20,7 +20,6 @@ layer_height_0 = 0.2 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature -10 -material_standby_temperature = 100 prime_tower_enable = False skin_overlap = 20 speed_layer_0 = =math.ceil(speed_print * 20 / 50) diff --git a/resources/quality/ultimaker3/um3_aa0.4_TPLA_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_TPLA_Fast_Print.inst.cfg index e668141c2f..984e51d1bf 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_TPLA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_TPLA_Fast_Print.inst.cfg @@ -18,7 +18,6 @@ layer_height_0 = 0.2 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature -10 -material_standby_temperature = 100 prime_tower_enable = False speed_layer_0 = =math.ceil(speed_print * 20 / 45) speed_print = 45 diff --git a/resources/quality/ultimaker3/um3_aa0.4_TPLA_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_TPLA_Normal_Quality.inst.cfg index 12d0256deb..29ddedf4a7 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_TPLA_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_TPLA_Normal_Quality.inst.cfg @@ -19,7 +19,6 @@ layer_height_0 = 0.2 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature - 15 -material_standby_temperature = 100 prime_tower_enable = False skin_overlap = 10 speed_layer_0 = =math.ceil(speed_print * 20 / 45) diff --git a/resources/quality/ultimaker3/um3_aa0.4_TPU_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_TPU_Draft_Print.inst.cfg index 9c02ed5200..6f2a606ac2 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_TPU_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_TPU_Draft_Print.inst.cfg @@ -32,7 +32,6 @@ material_flow = 106 material_initial_print_temperature = =material_print_temperature material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =material_print_temperature + 15 -material_standby_temperature = 100 multiple_mesh_overlap = 0 prime_tower_wipe_enabled = True retraction_count_max = 15 diff --git a/resources/quality/ultimaker3/um3_aa0.4_TPU_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_TPU_Fast_Print.inst.cfg index fe3f453f9c..9747894cf6 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_TPU_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_TPU_Fast_Print.inst.cfg @@ -32,7 +32,6 @@ material_flow = 106 material_initial_print_temperature = =material_print_temperature material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =material_print_temperature + 15 -material_standby_temperature = 100 multiple_mesh_overlap = 0 prime_tower_wipe_enabled = True retraction_amount = 7 diff --git a/resources/quality/ultimaker3/um3_aa0.4_TPU_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_TPU_Normal_Quality.inst.cfg index c824bc59ab..c27f3ced54 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_TPU_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_TPU_Normal_Quality.inst.cfg @@ -30,7 +30,6 @@ material_final_print_temperature = =material_print_temperature material_flow = 106 material_initial_print_temperature = =material_print_temperature material_print_temperature_layer_0 = =material_print_temperature + 17 -material_standby_temperature = 100 multiple_mesh_overlap = 0 prime_tower_wipe_enabled = True retraction_count_max = 15 diff --git a/resources/quality/ultimaker3/um3_aa0.8_ABS_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_ABS_Draft_Print.inst.cfg index 2720faa577..af0ac8c663 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_ABS_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_ABS_Draft_Print.inst.cfg @@ -13,7 +13,6 @@ variant = AA 0.8 [values] material_print_temperature = =default_material_print_temperature + 25 -material_standby_temperature = 100 speed_print = 50 speed_topbottom = =math.ceil(speed_print * 30 / 50) speed_wall = =math.ceil(speed_print * 40 / 50) diff --git a/resources/quality/ultimaker3/um3_aa0.8_ABS_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_ABS_Superdraft_Print.inst.cfg index fd8e40e1a6..f28d24c04c 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_ABS_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_ABS_Superdraft_Print.inst.cfg @@ -14,7 +14,6 @@ variant = AA 0.8 [values] layer_height = 0.4 material_print_temperature = =default_material_print_temperature + 30 -material_standby_temperature = 100 speed_print = 50 speed_topbottom = =math.ceil(speed_print * 30 / 50) speed_wall = =math.ceil(speed_print * 37 / 50) diff --git a/resources/quality/ultimaker3/um3_aa0.8_ABS_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_ABS_Verydraft_Print.inst.cfg index 5936e1edbd..8ee24fed22 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_ABS_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_ABS_Verydraft_Print.inst.cfg @@ -14,7 +14,6 @@ variant = AA 0.8 [values] layer_height = 0.3 material_print_temperature = =default_material_print_temperature + 27 -material_standby_temperature = 100 speed_print = 50 speed_topbottom = =math.ceil(speed_print * 30 / 50) speed_wall = =math.ceil(speed_print * 40 / 50) diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Fast_Print.inst.cfg index 4a92c4e0ef..c2d9a6d8c9 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Fast_Print.inst.cfg @@ -19,7 +19,6 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 10 material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 prime_tower_enable = True retraction_hop = 0.1 retraction_hop_enabled = False diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg index 58a7da1b9d..e48299aba3 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg @@ -20,7 +20,6 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 5 material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 prime_tower_enable = True retraction_hop = 0.1 retraction_hop_enabled = False diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg index 901db7e3ab..08181bd2ee 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg @@ -21,7 +21,6 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 7 material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 prime_tower_enable = True retraction_hop = 0.1 retraction_hop_enabled = False diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPE_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPE_Draft_Print.inst.cfg index 3f277bdf50..cd77fa7a1b 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPE_Draft_Print.inst.cfg @@ -14,7 +14,6 @@ variant = AA 0.8 [values] brim_width = 15 material_print_temperature = =default_material_print_temperature + 15 -material_standby_temperature = 100 prime_tower_enable = True speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPE_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPE_Superdraft_Print.inst.cfg index 1cfd1a7132..3758ea96f7 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPE_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPE_Superdraft_Print.inst.cfg @@ -15,7 +15,6 @@ variant = AA 0.8 brim_width = 15 layer_height = 0.4 material_print_temperature = =default_material_print_temperature + 20 -material_standby_temperature = 100 prime_tower_enable = True speed_print = 45 speed_topbottom = =math.ceil(speed_print * 30 / 45) diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPE_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPE_Verydraft_Print.inst.cfg index 0cb877bc19..9061c25db4 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPE_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPE_Verydraft_Print.inst.cfg @@ -15,7 +15,6 @@ variant = AA 0.8 brim_width = 15 layer_height = 0.3 material_print_temperature = =default_material_print_temperature + 17 -material_standby_temperature = 100 prime_tower_enable = True speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) diff --git a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Draft_Print.inst.cfg index b90e50c955..5013bcb3f8 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Draft_Print.inst.cfg @@ -17,7 +17,6 @@ cool_min_layer_time_fan_speed_max = 20 cool_min_speed = 10 machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 -material_standby_temperature = 100 ooze_shield_angle = 40 prime_tower_enable = True raft_acceleration = =acceleration_layer_0 diff --git a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Superdraft_Print.inst.cfg index cd6fa26ba8..fb59a2aa76 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Superdraft_Print.inst.cfg @@ -18,7 +18,6 @@ cool_min_speed = 10 layer_height = 0.4 machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 -material_standby_temperature = 100 ooze_shield_angle = 40 prime_tower_enable = True raft_acceleration = =acceleration_layer_0 diff --git a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Verydraft_Print.inst.cfg index b075a97c8e..23587d6a81 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Verydraft_Print.inst.cfg @@ -18,7 +18,6 @@ cool_min_speed = 10 layer_height = 0.3 machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 -material_standby_temperature = 100 ooze_shield_angle = 40 prime_tower_enable = True raft_acceleration = =acceleration_layer_0 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PC_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PC_Fast_Print.inst.cfg index 30ed901c9e..df89b2769b 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PC_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PC_Fast_Print.inst.cfg @@ -17,7 +17,6 @@ brim_width = 14 cool_fan_full_at_height = =layer_height_0 + 14 * layer_height material_print_temperature = =default_material_print_temperature - 5 material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 raft_airgap = 0.5 raft_margin = 15 skin_overlap = 0 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg index d1785e2892..0532884c0e 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg @@ -18,7 +18,6 @@ cool_fan_full_at_height = =layer_height_0 + 7 * layer_height layer_height = 0.4 material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 raft_airgap = 0.5 raft_margin = 15 skin_overlap = 0 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg index 2b18f0b407..91f11ad52a 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg @@ -19,7 +19,6 @@ cool_fan_full_at_height = =layer_height_0 + 9 * layer_height layer_height = 0.3 material_print_temperature = =default_material_print_temperature - 2 material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 raft_airgap = 0.5 raft_margin = 15 skin_overlap = 0 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PETG_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PETG_Draft_Print.inst.cfg index fc1a36f83f..5e296b117a 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PETG_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PETG_Draft_Print.inst.cfg @@ -14,7 +14,6 @@ variant = AA 0.8 [values] brim_width = 7 material_print_temperature = =default_material_print_temperature - 5 -material_standby_temperature = 100 prime_tower_enable = True speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) diff --git a/resources/quality/ultimaker3/um3_aa0.8_PETG_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PETG_Superdraft_Print.inst.cfg index f8d6b4df20..7b203fe360 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PETG_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PETG_Superdraft_Print.inst.cfg @@ -15,7 +15,6 @@ variant = AA 0.8 brim_width = 7 layer_height = 0.4 material_print_temperature = =default_material_print_temperature - 5 -material_standby_temperature = 100 prime_tower_enable = True speed_print = 45 speed_topbottom = =math.ceil(speed_print * 30 / 45) diff --git a/resources/quality/ultimaker3/um3_aa0.8_PETG_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PETG_Verydraft_Print.inst.cfg index 2e34cf5d2b..1117ab1a43 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PETG_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PETG_Verydraft_Print.inst.cfg @@ -15,7 +15,6 @@ variant = AA 0.8 brim_width = 7 layer_height = 0.3 material_print_temperature = =default_material_print_temperature - 5 -material_standby_temperature = 100 prime_tower_enable = True speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) diff --git a/resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg index 7e0fdd459a..bd6a63d912 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg @@ -22,7 +22,6 @@ machine_nozzle_heat_up_speed = 1.6 material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_print_temperature = =default_material_print_temperature + 10 -material_standby_temperature = 100 prime_tower_enable = True retract_at_layer_change = False speed_print = 45 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg index 228358c8a0..138f2f1e4b 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg @@ -23,7 +23,6 @@ machine_nozzle_heat_up_speed = 1.6 material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_print_temperature = =default_material_print_temperature + 15 -material_standby_temperature = 100 prime_tower_enable = True raft_margin = 10 retract_at_layer_change = False diff --git a/resources/quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg index df8a7a4d29..b69188646b 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg @@ -23,7 +23,6 @@ machine_nozzle_heat_up_speed = 1.6 material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_print_temperature = =default_material_print_temperature + 10 -material_standby_temperature = 100 prime_tower_enable = True retract_at_layer_change = False speed_print = 45 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg index 5ac58234fd..6b0cabd0ea 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg @@ -20,7 +20,6 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral' material_bed_temperature_layer_0 = =material_bed_temperature material_print_temperature = =default_material_print_temperature - 2 material_print_temperature_layer_0 = =default_material_print_temperature + 2 -material_standby_temperature = 100 multiple_mesh_overlap = 0.2 prime_tower_enable = True prime_tower_flow = 100 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg index 0975a2dcaa..0baec213e4 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg @@ -20,7 +20,6 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral' material_bed_temperature_layer_0 = =material_bed_temperature material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =default_material_print_temperature + 2 -material_standby_temperature = 100 multiple_mesh_overlap = 0.2 prime_tower_enable = True prime_tower_flow = 100 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg index a18414cf7e..05ea628527 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg @@ -20,7 +20,6 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral' layer_height = 0.3 material_bed_temperature_layer_0 = =material_bed_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 2 -material_standby_temperature = 100 multiple_mesh_overlap = 0.2 prime_tower_enable = True prime_tower_flow = 100 diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPLA_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPLA_Verydraft_Print.inst.cfg index ffc82adfb2..de029fef56 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPLA_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPLA_Verydraft_Print.inst.cfg @@ -24,7 +24,6 @@ material_final_print_temperature = =max(-273.15, material_print_temperature - 15 material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 prime_tower_enable = False retract_at_layer_change = False speed_infill = =math.ceil(speed_print * 30 / 35) diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg index 9d5a364a53..21ebf50a79 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg @@ -25,7 +25,6 @@ material_flow = 105 material_initial_print_temperature = =material_print_temperature material_print_temperature = =default_material_print_temperature - 2 material_print_temperature_layer_0 = =material_print_temperature + 19 -material_standby_temperature = 100 multiple_mesh_overlap = 0.2 prime_tower_enable = True prime_tower_flow = 100 diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg index 07c6aa807e..bc910a1ae6 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg @@ -26,7 +26,6 @@ material_flow = 105 material_initial_print_temperature = =material_print_temperature material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =material_print_temperature +15 -material_standby_temperature = 100 multiple_mesh_overlap = 0.2 prime_tower_enable = True prime_tower_flow = 100 diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg index bc8a252e97..3b8a6076de 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg @@ -25,7 +25,6 @@ material_final_print_temperature = =material_print_temperature material_flow = 105 material_initial_print_temperature = =material_print_temperature material_print_temperature_layer_0 = =material_print_temperature + 17 -material_standby_temperature = 100 multiple_mesh_overlap = 0.2 prime_tower_enable = True prime_tower_flow = 100 diff --git a/resources/quality/ultimaker3/um3_bb0.4_PVA_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PVA_Draft_Print.inst.cfg index 5ac88c13bc..d04b46e2d6 100644 --- a/resources/quality/ultimaker3/um3_bb0.4_PVA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_PVA_Draft_Print.inst.cfg @@ -14,7 +14,6 @@ variant = BB 0.4 [values] brim_replaces_support = False material_print_temperature = =default_material_print_temperature + 10 -material_standby_temperature = 100 prime_tower_enable = False retraction_count_max = 5 skin_overlap = 20 diff --git a/resources/quality/ultimaker3/um3_bb0.4_PVA_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PVA_Fast_Print.inst.cfg index 7ad6967e6b..e3d7255d36 100644 --- a/resources/quality/ultimaker3/um3_bb0.4_PVA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_PVA_Fast_Print.inst.cfg @@ -15,7 +15,6 @@ variant = BB 0.4 support_infill_sparse_thickness = =2*layer_height brim_replaces_support = False material_print_temperature = =default_material_print_temperature + 5 -material_standby_temperature = 100 prime_tower_enable = False retraction_count_max = 5 skin_overlap = 15 diff --git a/resources/quality/ultimaker3/um3_bb0.4_PVA_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PVA_High_Quality.inst.cfg index add681b5c6..e68bf36fc8 100644 --- a/resources/quality/ultimaker3/um3_bb0.4_PVA_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_PVA_High_Quality.inst.cfg @@ -14,7 +14,6 @@ variant = BB 0.4 [values] support_infill_sparse_thickness = =3*layer_height brim_replaces_support = False -material_standby_temperature = 100 prime_tower_enable = False retraction_count_max = 5 support_brim_enable = True diff --git a/resources/quality/ultimaker3/um3_bb0.4_PVA_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PVA_Normal_Quality.inst.cfg index fbf7d65477..e96a8afcfb 100644 --- a/resources/quality/ultimaker3/um3_bb0.4_PVA_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_PVA_Normal_Quality.inst.cfg @@ -14,7 +14,6 @@ variant = BB 0.4 [values] support_infill_sparse_thickness = =2*layer_height brim_replaces_support = False -material_standby_temperature = 100 prime_tower_enable = False retraction_count_max = 5 support_brim_enable = True diff --git a/resources/quality/ultimaker3/um3_bb0.8_PVA_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_PVA_Draft_Print.inst.cfg index d7003ca582..21cce522c3 100644 --- a/resources/quality/ultimaker3/um3_bb0.8_PVA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.8_PVA_Draft_Print.inst.cfg @@ -14,7 +14,6 @@ variant = BB 0.8 [values] brim_replaces_support = False material_print_temperature = =default_material_print_temperature + 5 -material_standby_temperature = 100 retraction_count_max = 5 support_brim_enable = True support_interface_enable = True diff --git a/resources/quality/ultimaker3/um3_bb0.8_PVA_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_PVA_Superdraft_Print.inst.cfg index 07b91499e4..fba29334a2 100644 --- a/resources/quality/ultimaker3/um3_bb0.8_PVA_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.8_PVA_Superdraft_Print.inst.cfg @@ -13,7 +13,6 @@ variant = BB 0.8 [values] brim_replaces_support = False -material_standby_temperature = 100 retraction_count_max = 5 support_brim_enable = True support_interface_enable = True diff --git a/resources/quality/ultimaker3/um3_bb0.8_PVA_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_PVA_Verydraft_Print.inst.cfg index 6177272235..606515e129 100644 --- a/resources/quality/ultimaker3/um3_bb0.8_PVA_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.8_PVA_Verydraft_Print.inst.cfg @@ -13,7 +13,6 @@ variant = BB 0.8 [values] brim_replaces_support = False -material_standby_temperature = 100 retraction_count_max = 5 support_brim_enable = True support_interface_enable = True 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 e5b88f2d77..ea80f381a1 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 @@ -20,7 +20,6 @@ cool_min_speed = 10 material_print_temperature = =default_material_print_temperature + 10 material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 10 -material_standby_temperature = 100 ooze_shield_angle = 40 raft_acceleration = =acceleration_layer_0 raft_airgap = 0.4 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 1c0ac78324..d9ba64ae04 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 @@ -20,7 +20,6 @@ cool_min_speed = 10 material_print_temperature = =default_material_print_temperature + 5 material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 10 -material_standby_temperature = 100 ooze_shield_angle = 40 raft_acceleration = =acceleration_layer_0 raft_airgap = 0.4 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 1e133a2148..8a6d73d6ca 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 @@ -19,7 +19,6 @@ cool_min_speed = 15 material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 10 -material_standby_temperature = 100 ooze_shield_angle = 40 raft_acceleration = =acceleration_layer_0 raft_airgap = 0.4 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 4256f134cc..8688939b35 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 @@ -19,7 +19,6 @@ cool_min_speed = 12 material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 10 -material_standby_temperature = 100 ooze_shield_angle = 40 raft_acceleration = =acceleration_layer_0 raft_airgap = 0.4 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_Draft_Print.inst.cfg index c5c3570350..d02bf873f4 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_Draft_Print.inst.cfg @@ -31,7 +31,6 @@ machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 material_print_temperature = =default_material_print_temperature + 10 -material_standby_temperature = 100 multiple_mesh_overlap = 0 ooze_shield_angle = 40 prime_tower_enable = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_Fast_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_Fast_Print.inst.cfg index 2c9f109400..f15ca790ed 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_Fast_Print.inst.cfg @@ -28,7 +28,6 @@ machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 material_print_temperature = =default_material_print_temperature + 10 -material_standby_temperature = 100 multiple_mesh_overlap = 0 ooze_shield_angle = 40 prime_tower_enable = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_High_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_High_Quality.inst.cfg index 02454a7203..330ccb1d66 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_High_Quality.inst.cfg @@ -31,7 +31,6 @@ machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 material_print_temperature = =default_material_print_temperature - 10 -material_standby_temperature = 100 multiple_mesh_overlap = 0 ooze_shield_angle = 40 prime_tower_enable = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_Normal_Quality.inst.cfg index ce382e3dcf..e931b99e4d 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_Normal_Quality.inst.cfg @@ -29,7 +29,6 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 -material_standby_temperature = 100 multiple_mesh_overlap = 0 ooze_shield_angle = 40 prime_tower_enable = True 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 420e250f71..8daad94c4c 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 @@ -17,7 +17,6 @@ cool_fan_speed_max = =cool_fan_speed machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 5 -material_standby_temperature = 100 prime_tower_enable = False retraction_prime_speed = =retraction_speed skin_overlap = 20 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 50b3954774..16b0868446 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 @@ -16,7 +16,6 @@ cool_fan_full_at_height = =layer_height_0 + 2 * layer_height cool_fan_speed_max = =cool_fan_speed machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -material_standby_temperature = 100 prime_tower_enable = False retraction_prime_speed = =retraction_speed speed_print = 70 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 99f977d17c..6ec0425176 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 @@ -18,7 +18,6 @@ cool_min_speed = 10 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature - 5 -material_standby_temperature = 100 prime_tower_enable = False retraction_prime_speed = =retraction_speed skin_overlap = 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 210536340f..4928a166b4 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 @@ -17,7 +17,6 @@ cool_fan_speed_max = =cool_fan_speed cool_min_speed = 7 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -material_standby_temperature = 100 prime_tower_enable = False retraction_prime_speed = =retraction_speed skin_overlap = 10 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_PLA_VeryDraft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_PLA_VeryDraft_Print.inst.cfg index e2f00681a6..2b12e3380b 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_PLA_VeryDraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_PLA_VeryDraft_Print.inst.cfg @@ -27,7 +27,6 @@ cool_fan_speed_max = =cool_fan_speed material_print_temperature = =default_material_print_temperature + 10 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -material_standby_temperature = 100 prime_tower_enable = False retraction_prime_speed = =retraction_speed skin_overlap = 20 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_PP_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_PP_Draft_Print.inst.cfg index 88089479ad..7561336d15 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_PP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_PP_Draft_Print.inst.cfg @@ -30,7 +30,6 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 material_print_temperature = =default_material_print_temperature - 5 material_print_temperature_layer_0 = =material_print_temperature + 5 -material_standby_temperature = 100 multiple_mesh_overlap = 0 prime_tower_enable = False prime_tower_size = 16 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_PP_Fast_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_PP_Fast_Print.inst.cfg index dd35987ced..92fc11be1f 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_PP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_PP_Fast_Print.inst.cfg @@ -29,7 +29,6 @@ material_final_print_temperature = =material_print_temperature - 12 material_initial_print_temperature = =material_print_temperature - 2 material_print_temperature = =default_material_print_temperature - 13 material_print_temperature_layer_0 = =material_print_temperature + 3 -material_standby_temperature = 100 multiple_mesh_overlap = 0 prime_tower_enable = False prime_tower_size = 16 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_PP_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_PP_Normal_Quality.inst.cfg index 5eff4b3248..b732c33d38 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_PP_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_PP_Normal_Quality.inst.cfg @@ -31,7 +31,6 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 material_print_temperature = =default_material_print_temperature - 15 material_print_temperature_layer_0 = =material_print_temperature + 3 -material_standby_temperature = 100 multiple_mesh_overlap = 0 prime_tower_enable = False prime_tower_size = 16 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_TPLA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_TPLA_Draft_Print.inst.cfg index a35ff96196..a551417536 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_TPLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_TPLA_Draft_Print.inst.cfg @@ -20,7 +20,6 @@ layer_height_0 = 0.2 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature -10 -material_standby_temperature = 100 prime_tower_enable = False retraction_prime_speed = =retraction_speed skin_overlap = 20 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_TPLA_Fast_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_TPLA_Fast_Print.inst.cfg index 9c688e3995..3c1ec73d54 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_TPLA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_TPLA_Fast_Print.inst.cfg @@ -18,7 +18,6 @@ layer_height_0 = 0.2 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature -10 -material_standby_temperature = 100 prime_tower_enable = False retraction_prime_speed = =retraction_speed speed_layer_0 = =math.ceil(speed_print * 20 / 45) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_TPLA_High_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_TPLA_High_Quality.inst.cfg index f6885552ba..ae44c3f019 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_TPLA_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_TPLA_High_Quality.inst.cfg @@ -18,7 +18,6 @@ cool_min_speed = 10 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature - 15 -material_standby_temperature = 100 prime_tower_enable = False retraction_prime_speed = =retraction_speed skin_overlap = 10 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_TPLA_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_TPLA_Normal_Quality.inst.cfg index 09146132d0..6e6a9216cf 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_TPLA_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_TPLA_Normal_Quality.inst.cfg @@ -19,7 +19,6 @@ layer_height_0 = 0.2 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature - 15 -material_standby_temperature = 100 prime_tower_enable = False retraction_prime_speed = =retraction_speed skin_overlap = 10 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_TPLA_VeryDraft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_TPLA_VeryDraft_Print.inst.cfg index 72c9981665..1b508e3a23 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_TPLA_VeryDraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_TPLA_VeryDraft_Print.inst.cfg @@ -27,7 +27,6 @@ cool_fan_speed_max = =cool_fan_speed material_print_temperature = =default_material_print_temperature - 5 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -material_standby_temperature = 100 prime_tower_enable = False retraction_prime_speed = =retraction_speed skin_overlap = 20 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_TPU_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_TPU_Draft_Print.inst.cfg index 90a68d134e..b912faa1b1 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_TPU_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_TPU_Draft_Print.inst.cfg @@ -31,7 +31,6 @@ material_flow = 106 material_initial_print_temperature = =material_print_temperature material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =material_print_temperature + 15 -material_standby_temperature = 100 multiple_mesh_overlap = 0 prime_tower_wipe_enabled = True retraction_count_max = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_TPU_Fast_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_TPU_Fast_Print.inst.cfg index d59d5c18f7..4069d1a9ad 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_TPU_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_TPU_Fast_Print.inst.cfg @@ -32,7 +32,6 @@ material_flow = 106 material_initial_print_temperature = =material_print_temperature material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =material_print_temperature + 15 -material_standby_temperature = 100 multiple_mesh_overlap = 0 prime_tower_wipe_enabled = True retraction_count_max = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_TPU_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_TPU_Normal_Quality.inst.cfg index c0445e739c..a91280d99e 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_TPU_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_TPU_Normal_Quality.inst.cfg @@ -32,7 +32,6 @@ material_final_print_temperature = =material_print_temperature material_flow = 106 material_initial_print_temperature = =material_print_temperature material_print_temperature_layer_0 = =material_print_temperature + 17 -material_standby_temperature = 100 multiple_mesh_overlap = 0 prime_tower_wipe_enabled = True retraction_count_max = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_ABS_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_ABS_Draft_Print.inst.cfg index 516e103d1b..2bc16834c5 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_ABS_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_ABS_Draft_Print.inst.cfg @@ -14,7 +14,6 @@ variant = AA 0.8 [values] material_print_temperature = =default_material_print_temperature + 20 -material_standby_temperature = 100 speed_print = 50 speed_topbottom = =math.ceil(speed_print * 30 / 50) speed_wall = =math.ceil(speed_print * 40 / 50) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_ABS_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_ABS_Superdraft_Print.inst.cfg index 567f8b8c9f..ce0d107138 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_ABS_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_ABS_Superdraft_Print.inst.cfg @@ -14,7 +14,6 @@ variant = AA 0.8 [values] material_print_temperature = =default_material_print_temperature + 25 -material_standby_temperature = 100 speed_print = 50 speed_topbottom = =math.ceil(speed_print * 30 / 50) speed_wall = =math.ceil(speed_print * 37 / 50) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_ABS_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_ABS_Verydraft_Print.inst.cfg index 757f196340..1cceef1af6 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_ABS_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_ABS_Verydraft_Print.inst.cfg @@ -14,7 +14,6 @@ variant = AA 0.8 [values] material_print_temperature = =default_material_print_temperature + 22 -material_standby_temperature = 100 speed_print = 50 speed_topbottom = =math.ceil(speed_print * 30 / 50) speed_wall = =math.ceil(speed_print * 40 / 50) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_CPEP_Fast_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_CPEP_Fast_Print.inst.cfg index 806da07969..a694688d41 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_CPEP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_CPEP_Fast_Print.inst.cfg @@ -21,7 +21,6 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 10 material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 prime_tower_enable = True retraction_combing_max_distance = 50 retraction_hop = 0.1 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_CPEP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_CPEP_Superdraft_Print.inst.cfg index 11b2706b28..38413229e0 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_CPEP_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_CPEP_Superdraft_Print.inst.cfg @@ -21,7 +21,6 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 5 material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 prime_tower_enable = True retraction_combing_max_distance = 50 retraction_hop = 0.1 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_CPEP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_CPEP_Verydraft_Print.inst.cfg index 5771c34f8d..b238164e4f 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_CPEP_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_CPEP_Verydraft_Print.inst.cfg @@ -21,7 +21,6 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 7 material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 prime_tower_enable = True retraction_combing_max_distance = 50 retraction_hop = 0.1 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_CPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_CPE_Draft_Print.inst.cfg index 46f1985be1..6421e5ea77 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_CPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_CPE_Draft_Print.inst.cfg @@ -15,7 +15,6 @@ variant = AA 0.8 brim_width = 15 material_print_temperature = =default_material_print_temperature + 15 -material_standby_temperature = 100 prime_tower_enable = True retraction_combing_max_distance = 50 speed_print = 40 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_CPE_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_CPE_Superdraft_Print.inst.cfg index b72c4565ad..93756a3621 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_CPE_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_CPE_Superdraft_Print.inst.cfg @@ -15,7 +15,6 @@ variant = AA 0.8 brim_width = 15 material_print_temperature = =default_material_print_temperature + 20 -material_standby_temperature = 100 prime_tower_enable = True retraction_combing_max_distance = 50 speed_print = 45 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_CPE_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_CPE_Verydraft_Print.inst.cfg index 43d518be56..2afb9dc78a 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_CPE_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_CPE_Verydraft_Print.inst.cfg @@ -15,7 +15,6 @@ variant = AA 0.8 brim_width = 15 material_print_temperature = =default_material_print_temperature + 17 -material_standby_temperature = 100 prime_tower_enable = True retraction_combing_max_distance = 50 speed_print = 40 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_Nylon_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_Nylon_Draft_Print.inst.cfg index d6887f655d..0f436de811 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_Nylon_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_Nylon_Draft_Print.inst.cfg @@ -19,7 +19,6 @@ cool_min_speed = 10 machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 -material_standby_temperature = 100 ooze_shield_angle = 40 prime_tower_enable = True raft_acceleration = =acceleration_layer_0 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_Nylon_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_Nylon_Superdraft_Print.inst.cfg index c333d0e4b1..b7a36e6c71 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_Nylon_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_Nylon_Superdraft_Print.inst.cfg @@ -19,7 +19,6 @@ cool_min_speed = 10 machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 -material_standby_temperature = 100 ooze_shield_angle = 40 prime_tower_enable = True raft_acceleration = =acceleration_layer_0 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_Nylon_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_Nylon_Verydraft_Print.inst.cfg index 766a84d843..15d2fc250f 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_Nylon_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_Nylon_Verydraft_Print.inst.cfg @@ -19,7 +19,6 @@ cool_min_speed = 10 machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 -material_standby_temperature = 100 ooze_shield_angle = 40 prime_tower_enable = True raft_acceleration = =acceleration_layer_0 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_PC_Fast_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_PC_Fast_Print.inst.cfg index 3a16a00041..27c05bc0c6 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_PC_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_PC_Fast_Print.inst.cfg @@ -19,7 +19,6 @@ cool_fan_full_at_height = =layer_height_0 + 14 * layer_height material_print_temperature = =default_material_print_temperature - 5 material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 raft_airgap = 0.5 raft_margin = 15 skin_overlap = 0 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_PC_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_PC_Superdraft_Print.inst.cfg index ce043bc020..8182ee03e2 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_PC_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_PC_Superdraft_Print.inst.cfg @@ -18,7 +18,6 @@ cool_fan_full_at_height = =layer_height_0 + 7 * layer_height material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 raft_airgap = 0.5 raft_margin = 15 skin_overlap = 0 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_PC_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_PC_Verydraft_Print.inst.cfg index 6343d64dc9..0bbc14ae81 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_PC_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_PC_Verydraft_Print.inst.cfg @@ -19,7 +19,6 @@ cool_fan_full_at_height = =layer_height_0 + 9 * layer_height material_print_temperature = =default_material_print_temperature - 2 material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 raft_airgap = 0.5 raft_margin = 15 skin_overlap = 0 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_PETG_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_PETG_Draft_Print.inst.cfg index be5ae977b5..5b4142f762 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_PETG_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_PETG_Draft_Print.inst.cfg @@ -15,7 +15,6 @@ variant = AA 0.8 brim_width = 7 material_print_temperature = =default_material_print_temperature - 5 -material_standby_temperature = 100 prime_tower_enable = True retraction_combing_max_distance = 8 speed_print = 40 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_PETG_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_PETG_Superdraft_Print.inst.cfg index ba58a799e9..2aae9c8933 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_PETG_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_PETG_Superdraft_Print.inst.cfg @@ -15,7 +15,6 @@ variant = AA 0.8 brim_width = 7 material_print_temperature = =default_material_print_temperature - 5 -material_standby_temperature = 100 prime_tower_enable = True retraction_combing_max_distance = 8 speed_print = 45 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_PETG_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_PETG_Verydraft_Print.inst.cfg index f121297ab7..85b076551c 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_PETG_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_PETG_Verydraft_Print.inst.cfg @@ -15,7 +15,6 @@ variant = AA 0.8 brim_width = 7 material_print_temperature = =default_material_print_temperature - 5 -material_standby_temperature = 100 prime_tower_enable = True retraction_combing_max_distance = 8 speed_print = 40 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_PP_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_PP_Draft_Print.inst.cfg index ad56f48c17..1a3f1cd850 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_PP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_PP_Draft_Print.inst.cfg @@ -20,7 +20,6 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral' material_bed_temperature_layer_0 = =material_bed_temperature material_print_temperature = =default_material_print_temperature - 2 material_print_temperature_layer_0 = =default_material_print_temperature + 2 -material_standby_temperature = 100 multiple_mesh_overlap = 0.2 prime_tower_enable = True prime_tower_flow = 100 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_PP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_PP_Superdraft_Print.inst.cfg index ee9576aed8..5ecf58efb9 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_PP_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_PP_Superdraft_Print.inst.cfg @@ -20,7 +20,6 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral' material_bed_temperature_layer_0 = =material_bed_temperature material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =default_material_print_temperature + 2 -material_standby_temperature = 100 multiple_mesh_overlap = 0.2 prime_tower_enable = True prime_tower_flow = 100 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_PP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_PP_Verydraft_Print.inst.cfg index 4f6c3fa1ed..ffaf2ffcbb 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_PP_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_PP_Verydraft_Print.inst.cfg @@ -19,7 +19,6 @@ top_skin_expand_distance = =line_width * 2 infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral' material_bed_temperature_layer_0 = =material_bed_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 2 -material_standby_temperature = 100 multiple_mesh_overlap = 0.2 prime_tower_enable = True prime_tower_flow = 100 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_TPLA_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_TPLA_Verydraft_Print.inst.cfg index 445d4c6cfd..b9a4a05ec3 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_TPLA_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_TPLA_Verydraft_Print.inst.cfg @@ -24,7 +24,6 @@ material_final_print_temperature = =max(-273.15, material_print_temperature - 15 material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 prime_tower_enable = False retract_at_layer_change = False speed_infill = =math.ceil(speed_print * 30 / 35) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_TPU_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_TPU_Draft_Print.inst.cfg index 2fba108a33..f4d65fbe04 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_TPU_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_TPU_Draft_Print.inst.cfg @@ -23,7 +23,6 @@ material_flow = 105 material_initial_print_temperature = =material_print_temperature material_print_temperature = =default_material_print_temperature - 2 material_print_temperature_layer_0 = =material_print_temperature + 19 -material_standby_temperature = 100 multiple_mesh_overlap = 0.2 prime_tower_enable = True prime_tower_flow = 100 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_TPU_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_TPU_Superdraft_Print.inst.cfg index 2fbc3d7118..c71889b1fd 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_TPU_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_TPU_Superdraft_Print.inst.cfg @@ -24,7 +24,6 @@ material_flow = 105 material_initial_print_temperature = =material_print_temperature material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =material_print_temperature + 15 -material_standby_temperature = 100 multiple_mesh_overlap = 0.2 prime_tower_enable = True prime_tower_flow = 100 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_TPU_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_TPU_Verydraft_Print.inst.cfg index 2e06b86620..a307bc96c6 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_TPU_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_TPU_Verydraft_Print.inst.cfg @@ -23,7 +23,6 @@ material_final_print_temperature = =material_print_temperature material_flow = 105 material_initial_print_temperature = =material_print_temperature material_print_temperature_layer_0 = =material_print_temperature + 17 -material_standby_temperature = 100 multiple_mesh_overlap = 0.2 prime_tower_enable = True prime_tower_flow = 100 diff --git a/resources/quality/ultimaker_s3/um_s3_bb0.4_PVA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_bb0.4_PVA_Draft_Print.inst.cfg index 852256ec7d..f9ea2ed4db 100644 --- a/resources/quality/ultimaker_s3/um_s3_bb0.4_PVA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_bb0.4_PVA_Draft_Print.inst.cfg @@ -14,7 +14,6 @@ variant = BB 0.4 [values] brim_replaces_support = False material_print_temperature = =default_material_print_temperature + 10 -material_standby_temperature = 100 prime_tower_enable = False retraction_count_max = 5 skin_overlap = 20 diff --git a/resources/quality/ultimaker_s3/um_s3_bb0.4_PVA_Fast_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_bb0.4_PVA_Fast_Print.inst.cfg index 1df9f6b97b..9ca8ea51ec 100644 --- a/resources/quality/ultimaker_s3/um_s3_bb0.4_PVA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_bb0.4_PVA_Fast_Print.inst.cfg @@ -15,7 +15,6 @@ variant = BB 0.4 support_infill_sparse_thickness = =2*layer_height brim_replaces_support = False material_print_temperature = =default_material_print_temperature + 5 -material_standby_temperature = 100 prime_tower_enable = False retraction_count_max = 5 skin_overlap = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_bb0.4_PVA_High_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_bb0.4_PVA_High_Quality.inst.cfg index 7495130aa9..018298d706 100644 --- a/resources/quality/ultimaker_s3/um_s3_bb0.4_PVA_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_bb0.4_PVA_High_Quality.inst.cfg @@ -14,7 +14,6 @@ variant = BB 0.4 [values] support_infill_sparse_thickness = =3*layer_height brim_replaces_support = False -material_standby_temperature = 100 prime_tower_enable = False retraction_count_max = 5 support_brim_enable = True diff --git a/resources/quality/ultimaker_s3/um_s3_bb0.4_PVA_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_bb0.4_PVA_Normal_Quality.inst.cfg index 308d26bf62..48394a8feb 100644 --- a/resources/quality/ultimaker_s3/um_s3_bb0.4_PVA_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_bb0.4_PVA_Normal_Quality.inst.cfg @@ -14,7 +14,6 @@ variant = BB 0.4 [values] support_infill_sparse_thickness = =2*layer_height brim_replaces_support = False -material_standby_temperature = 100 prime_tower_enable = False retraction_count_max = 5 support_brim_enable = True diff --git a/resources/quality/ultimaker_s3/um_s3_bb0.4_PVA_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_bb0.4_PVA_Verydraft_Print.inst.cfg index da87e8211f..85e530fdc1 100644 --- a/resources/quality/ultimaker_s3/um_s3_bb0.4_PVA_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_bb0.4_PVA_Verydraft_Print.inst.cfg @@ -14,7 +14,6 @@ is_experimental = True [values] brim_replaces_support = False -material_standby_temperature = 100 retraction_count_max = 5 support_brim_enable = True support_infill_sparse_thickness = 0.3 diff --git a/resources/quality/ultimaker_s3/um_s3_bb0.8_PVA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_bb0.8_PVA_Draft_Print.inst.cfg index 7e2103043f..ab1a289761 100644 --- a/resources/quality/ultimaker_s3/um_s3_bb0.8_PVA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_bb0.8_PVA_Draft_Print.inst.cfg @@ -14,7 +14,6 @@ variant = BB 0.8 [values] brim_replaces_support = False material_print_temperature = =default_material_print_temperature + 5 -material_standby_temperature = 100 retraction_count_max = 5 support_brim_enable = True support_interface_enable = True diff --git a/resources/quality/ultimaker_s3/um_s3_bb0.8_PVA_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_bb0.8_PVA_Superdraft_Print.inst.cfg index 9b1583ed51..0e2f072d03 100644 --- a/resources/quality/ultimaker_s3/um_s3_bb0.8_PVA_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_bb0.8_PVA_Superdraft_Print.inst.cfg @@ -13,7 +13,6 @@ variant = BB 0.8 [values] brim_replaces_support = False -material_standby_temperature = 100 retraction_count_max = 5 support_brim_enable = True support_interface_enable = True diff --git a/resources/quality/ultimaker_s3/um_s3_bb0.8_PVA_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_bb0.8_PVA_Verydraft_Print.inst.cfg index 28f069a61a..d5ff375abb 100644 --- a/resources/quality/ultimaker_s3/um_s3_bb0.8_PVA_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_bb0.8_PVA_Verydraft_Print.inst.cfg @@ -13,7 +13,6 @@ variant = BB 0.8 [values] brim_replaces_support = False -material_standby_temperature = 100 retraction_count_max = 5 support_brim_enable = True support_infill_sparse_thickness = 0.3 diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFCPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFCPE_Draft_Print.inst.cfg index 88174ae66d..ee5eb84f18 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFCPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFCPE_Draft_Print.inst.cfg @@ -23,7 +23,6 @@ initial_layer_line_width_factor = 130.0 material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 skin_overlap = 20 support_bottom_distance = =support_z_distance / 2 support_top_distance = =support_z_distance diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFCPE_Fast_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFCPE_Fast_Print.inst.cfg index 86de01d997..27aa351fcb 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFCPE_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFCPE_Fast_Print.inst.cfg @@ -23,7 +23,6 @@ initial_layer_line_width_factor = 130.0 material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 skin_overlap = 20 support_bottom_distance = =support_z_distance / 2 support_top_distance = =support_z_distance diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFPA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFPA_Draft_Print.inst.cfg index 8b4c50b81e..308f7d4659 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFPA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFPA_Draft_Print.inst.cfg @@ -23,7 +23,6 @@ initial_layer_line_width_factor = 130.0 material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 skin_overlap = 20 support_bottom_distance = =support_z_distance / 2 support_top_distance = =support_z_distance diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFPA_Fast_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFPA_Fast_Print.inst.cfg index bb4d52b0de..efd383a565 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFPA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFPA_Fast_Print.inst.cfg @@ -23,7 +23,6 @@ initial_layer_line_width_factor = 130.0 material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 skin_overlap = 20 support_bottom_distance = =support_z_distance / 2 support_top_distance = =support_z_distance diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFCPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFCPE_Draft_Print.inst.cfg index 6df2857707..31dffcd0fa 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFCPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFCPE_Draft_Print.inst.cfg @@ -23,7 +23,6 @@ initial_layer_line_width_factor = 130.0 material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 skin_overlap = 20 support_bottom_distance = =support_z_distance / 2 support_top_distance = =support_z_distance diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFCPE_Fast_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFCPE_Fast_Print.inst.cfg index 1fddab1122..5086b257e2 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFCPE_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFCPE_Fast_Print.inst.cfg @@ -23,7 +23,6 @@ initial_layer_line_width_factor = 130.0 material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 skin_overlap = 20 support_bottom_distance = =support_z_distance / 2 support_top_distance = =support_z_distance diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFPA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFPA_Draft_Print.inst.cfg index 33d8895bad..4fecd89e67 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFPA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFPA_Draft_Print.inst.cfg @@ -23,7 +23,6 @@ initial_layer_line_width_factor = 130.0 material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 skin_overlap = 20 support_bottom_distance = =support_z_distance / 2 support_top_distance = =support_z_distance diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFPA_Fast_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFPA_Fast_Print.inst.cfg index 1db3242244..0355b4906d 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFPA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFPA_Fast_Print.inst.cfg @@ -23,7 +23,6 @@ initial_layer_line_width_factor = 130.0 material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 skin_overlap = 20 support_bottom_distance = =support_z_distance / 2 support_top_distance = =support_z_distance diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.4_PLA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.4_PLA_Draft_Print.inst.cfg index 83ac175c47..4cba6c87f4 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.4_PLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.4_PLA_Draft_Print.inst.cfg @@ -23,7 +23,6 @@ machine_nozzle_heat_up_speed = 1.6 material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_print_temperature = =default_material_print_temperature + 10 -material_standby_temperature = 100 prime_tower_enable = True retract_at_layer_change = False speed_print = 45 diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.4_PLA_Fast_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.4_PLA_Fast_Print.inst.cfg index 9c89527d1e..70b93730d3 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.4_PLA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.4_PLA_Fast_Print.inst.cfg @@ -23,7 +23,6 @@ machine_nozzle_heat_up_speed = 1.6 material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_print_temperature = =default_material_print_temperature + 10 -material_standby_temperature = 100 prime_tower_enable = True retract_at_layer_change = False speed_print = 45 diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.6_CFFCPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.6_CFFCPE_Draft_Print.inst.cfg index c5843560c3..4dbf39a83e 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.6_CFFCPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.6_CFFCPE_Draft_Print.inst.cfg @@ -21,7 +21,6 @@ initial_layer_line_width_factor = 130.0 material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 skin_overlap = 20 support_bottom_distance = =support_z_distance / 2 support_top_distance = =support_z_distance diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.6_CFFPA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.6_CFFPA_Draft_Print.inst.cfg index f2638e6bd6..fdaa98e8e3 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.6_CFFPA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.6_CFFPA_Draft_Print.inst.cfg @@ -21,7 +21,6 @@ initial_layer_line_width_factor = 130.0 material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 skin_overlap = 20 support_bottom_distance = =support_z_distance / 2 support_top_distance = =support_z_distance diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.6_GFFCPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.6_GFFCPE_Draft_Print.inst.cfg index 2df0244992..06e1b1e186 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.6_GFFCPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.6_GFFCPE_Draft_Print.inst.cfg @@ -21,7 +21,6 @@ initial_layer_line_width_factor = 130.0 material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 skin_overlap = 20 support_bottom_distance = =support_z_distance / 2 support_top_distance = =support_z_distance diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.6_GFFPA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.6_GFFPA_Draft_Print.inst.cfg index cf26243471..3e570585d5 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.6_GFFPA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.6_GFFPA_Draft_Print.inst.cfg @@ -21,7 +21,6 @@ initial_layer_line_width_factor = 130.0 material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 skin_overlap = 20 support_bottom_distance = =support_z_distance / 2 support_top_distance = =support_z_distance diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.6_PLA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.6_PLA_Draft_Print.inst.cfg index df7c944caf..08bbc9125e 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.6_PLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.6_PLA_Draft_Print.inst.cfg @@ -23,7 +23,6 @@ machine_nozzle_heat_up_speed = 1.6 material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_print_temperature = =default_material_print_temperature + 10 -material_standby_temperature = 100 prime_tower_enable = True retract_at_layer_change = False speed_print = 45 diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.6_PLA_Fast_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.6_PLA_Fast_Print.inst.cfg index 84169d31f7..4cb210bba3 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.6_PLA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.6_PLA_Fast_Print.inst.cfg @@ -23,7 +23,6 @@ machine_nozzle_heat_up_speed = 1.6 material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_print_temperature = =default_material_print_temperature + 10 -material_standby_temperature = 100 prime_tower_enable = True retract_at_layer_change = False speed_print = 45 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 9271ecc864..ab5ee10570 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 @@ -18,7 +18,6 @@ cool_min_speed = 10 material_print_temperature = =default_material_print_temperature + 10 material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 10 -material_standby_temperature = 100 ooze_shield_angle = 40 raft_acceleration = =acceleration_layer_0 raft_airgap = 0.4 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 eb4ced65c1..e0d5fd698f 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 @@ -20,7 +20,6 @@ cool_min_speed = 10 material_print_temperature = =default_material_print_temperature + 5 material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 10 -material_standby_temperature = 100 ooze_shield_angle = 40 raft_acceleration = =acceleration_layer_0 raft_airgap = 0.4 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 7ba60c0fd4..11369becf7 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 @@ -19,7 +19,6 @@ cool_min_speed = 15 material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 10 -material_standby_temperature = 100 ooze_shield_angle = 40 raft_acceleration = =acceleration_layer_0 raft_airgap = 0.4 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 e991199658..c5076d7b11 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 @@ -19,7 +19,6 @@ cool_min_speed = 12 material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 10 -material_standby_temperature = 100 ooze_shield_angle = 40 raft_acceleration = =acceleration_layer_0 raft_airgap = 0.4 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Draft_Print.inst.cfg index 26184e715b..ad46d3ba5c 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Draft_Print.inst.cfg @@ -29,7 +29,6 @@ machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 material_print_temperature = =default_material_print_temperature + 10 -material_standby_temperature = 100 multiple_mesh_overlap = 0 ooze_shield_angle = 40 prime_tower_enable = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Fast_Print.inst.cfg index f739e1c5ac..0bd02289de 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Fast_Print.inst.cfg @@ -28,7 +28,6 @@ machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 material_print_temperature = =default_material_print_temperature + 10 -material_standby_temperature = 100 multiple_mesh_overlap = 0 ooze_shield_angle = 40 prime_tower_enable = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_High_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_High_Quality.inst.cfg index aec7cc4293..f5bf35a232 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_High_Quality.inst.cfg @@ -30,7 +30,6 @@ machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 material_print_temperature = =default_material_print_temperature - 10 -material_standby_temperature = 100 multiple_mesh_overlap = 0 ooze_shield_angle = 40 prime_tower_enable = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Normal_Quality.inst.cfg index 3346f39efe..a4c0c3d365 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Normal_Quality.inst.cfg @@ -28,7 +28,6 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 -material_standby_temperature = 100 multiple_mesh_overlap = 0 ooze_shield_angle = 40 prime_tower_enable = True 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 bcd193268d..41944ad06e 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 @@ -17,7 +17,6 @@ cool_fan_speed_max = =cool_fan_speed machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 5 -material_standby_temperature = 100 prime_tower_enable = False retraction_prime_speed = =retraction_speed skin_overlap = 20 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 37ca77c51a..66aa89a6a7 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 @@ -16,7 +16,6 @@ cool_fan_full_at_height = =layer_height_0 + 2 * layer_height cool_fan_speed_max = =cool_fan_speed machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -material_standby_temperature = 100 prime_tower_enable = False retraction_prime_speed = =retraction_speed speed_print = 70 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 98049f2d1c..1d498d252a 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 @@ -18,7 +18,6 @@ cool_min_speed = 10 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature - 5 -material_standby_temperature = 100 prime_tower_enable = False retraction_prime_speed = =retraction_speed skin_overlap = 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 b9acd3ba63..1eb4fd8735 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 @@ -17,7 +17,6 @@ cool_fan_speed_max = =cool_fan_speed cool_min_speed = 7 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -material_standby_temperature = 100 prime_tower_enable = False retraction_prime_speed = =retraction_speed skin_overlap = 10 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_VeryDraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_VeryDraft_Print.inst.cfg index 4e5180032c..3b20559564 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_VeryDraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_VeryDraft_Print.inst.cfg @@ -27,7 +27,6 @@ cool_fan_speed_max = =cool_fan_speed material_print_temperature = =default_material_print_temperature + 10 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -material_standby_temperature = 100 prime_tower_enable = False retraction_prime_speed = =retraction_speed diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PP_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PP_Draft_Print.inst.cfg index 4ee2ec2f4e..2bdd3801aa 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PP_Draft_Print.inst.cfg @@ -30,7 +30,6 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 material_print_temperature = =default_material_print_temperature - 5 material_print_temperature_layer_0 = =material_print_temperature + 5 -material_standby_temperature = 100 multiple_mesh_overlap = 0 prime_tower_enable = False prime_tower_size = 16 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PP_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PP_Fast_Print.inst.cfg index bd01a9e7e6..d1170be743 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PP_Fast_Print.inst.cfg @@ -30,7 +30,6 @@ material_final_print_temperature = =material_print_temperature - 12 material_initial_print_temperature = =material_print_temperature - 2 material_print_temperature = =default_material_print_temperature - 13 material_print_temperature_layer_0 = =material_print_temperature + 3 -material_standby_temperature = 100 multiple_mesh_overlap = 0 prime_tower_enable = False prime_tower_size = 16 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PP_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PP_Normal_Quality.inst.cfg index 9cc83fa123..76c7468d7e 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PP_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PP_Normal_Quality.inst.cfg @@ -31,7 +31,6 @@ material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 material_print_temperature = =default_material_print_temperature - 15 material_print_temperature_layer_0 = =material_print_temperature + 3 -material_standby_temperature = 100 multiple_mesh_overlap = 0 prime_tower_enable = False prime_tower_size = 16 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_TPLA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_TPLA_Draft_Print.inst.cfg index 5b627b87f7..e1d45bbbc6 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_TPLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_TPLA_Draft_Print.inst.cfg @@ -20,7 +20,6 @@ layer_height_0 = 0.2 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature -10 -material_standby_temperature = 100 prime_tower_enable = False retraction_prime_speed = =retraction_speed skin_overlap = 20 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_TPLA_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_TPLA_Fast_Print.inst.cfg index f1370caaf0..0f731a673d 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_TPLA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_TPLA_Fast_Print.inst.cfg @@ -18,7 +18,6 @@ layer_height_0 = 0.2 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature -10 -material_standby_temperature = 100 prime_tower_enable = False retraction_prime_speed = =retraction_speed speed_layer_0 = =math.ceil(speed_print * 20 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_TPLA_High_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_TPLA_High_Quality.inst.cfg index 8f1158bcbc..3bb7ba5d2f 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_TPLA_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_TPLA_High_Quality.inst.cfg @@ -18,7 +18,6 @@ cool_min_speed = 10 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature - 15 -material_standby_temperature = 100 prime_tower_enable = False retraction_prime_speed = =retraction_speed skin_overlap = 10 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_TPLA_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_TPLA_Normal_Quality.inst.cfg index 6f46c9c441..dd469f9403 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_TPLA_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_TPLA_Normal_Quality.inst.cfg @@ -19,7 +19,6 @@ layer_height_0 = 0.2 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature - 15 -material_standby_temperature = 100 prime_tower_enable = False retraction_prime_speed = =retraction_speed skin_overlap = 10 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_TPLA_VeryDraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_TPLA_VeryDraft_Print.inst.cfg index 5138c25d0b..bfb76f20c8 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_TPLA_VeryDraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_TPLA_VeryDraft_Print.inst.cfg @@ -27,7 +27,6 @@ cool_fan_speed_max = =cool_fan_speed material_print_temperature = =default_material_print_temperature - 5 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 -material_standby_temperature = 100 prime_tower_enable = False retraction_prime_speed = =retraction_speed skin_overlap = 20 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_TPU_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_TPU_Draft_Print.inst.cfg index dd4fe11a2c..7b2cba17cf 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_TPU_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_TPU_Draft_Print.inst.cfg @@ -32,7 +32,6 @@ material_flow = 106 material_initial_print_temperature = =material_print_temperature material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =material_print_temperature + 15 -material_standby_temperature = 100 multiple_mesh_overlap = 0 prime_tower_wipe_enabled = True retraction_count_max = 15 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_TPU_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_TPU_Fast_Print.inst.cfg index 346bb31931..7f08f03b06 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_TPU_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_TPU_Fast_Print.inst.cfg @@ -32,7 +32,6 @@ material_flow = 106 material_initial_print_temperature = =material_print_temperature material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =material_print_temperature + 15 -material_standby_temperature = 100 multiple_mesh_overlap = 0 prime_tower_wipe_enabled = True retraction_count_max = 15 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_TPU_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_TPU_Normal_Quality.inst.cfg index e8617e309f..c1c389efd2 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_TPU_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_TPU_Normal_Quality.inst.cfg @@ -31,7 +31,6 @@ material_final_print_temperature = =material_print_temperature material_flow = 106 material_initial_print_temperature = =material_print_temperature material_print_temperature_layer_0 = =material_print_temperature + 17 -material_standby_temperature = 100 multiple_mesh_overlap = 0 prime_tower_wipe_enabled = True retraction_count_max = 15 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_ABS_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_ABS_Draft_Print.inst.cfg index ef542bed03..83957e6d0f 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_ABS_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_ABS_Draft_Print.inst.cfg @@ -14,7 +14,6 @@ variant = AA 0.8 [values] material_print_temperature = =default_material_print_temperature + 20 -material_standby_temperature = 100 speed_print = 50 speed_topbottom = =math.ceil(speed_print * 30 / 50) speed_wall = =math.ceil(speed_print * 40 / 50) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_ABS_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_ABS_Superdraft_Print.inst.cfg index 88c5aee1a2..011a962d8d 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_ABS_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_ABS_Superdraft_Print.inst.cfg @@ -14,7 +14,6 @@ variant = AA 0.8 [values] material_print_temperature = =default_material_print_temperature + 25 -material_standby_temperature = 100 speed_print = 50 speed_topbottom = =math.ceil(speed_print * 30 / 50) speed_wall = =math.ceil(speed_print * 37 / 50) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_ABS_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_ABS_Verydraft_Print.inst.cfg index 5b91e9ecc4..910592f909 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_ABS_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_ABS_Verydraft_Print.inst.cfg @@ -14,7 +14,6 @@ variant = AA 0.8 [values] material_print_temperature = =default_material_print_temperature + 22 -material_standby_temperature = 100 speed_print = 50 speed_topbottom = =math.ceil(speed_print * 30 / 50) speed_wall = =math.ceil(speed_print * 40 / 50) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Fast_Print.inst.cfg index 53f58530b9..3c1491befd 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Fast_Print.inst.cfg @@ -20,7 +20,6 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 10 material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 prime_tower_enable = True retraction_combing_max_distance = 50 retraction_hop = 0.1 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Superdraft_Print.inst.cfg index b5a7bf5de0..30b1940b9c 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Superdraft_Print.inst.cfg @@ -21,7 +21,6 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 5 material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 prime_tower_enable = True retraction_combing_max_distance = 50 retraction_hop = 0.1 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Verydraft_Print.inst.cfg index 4dcbf91e6a..01cdfb6142 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Verydraft_Print.inst.cfg @@ -21,7 +21,6 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 7 material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 prime_tower_enable = True retraction_combing_max_distance = 50 retraction_hop = 0.1 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Draft_Print.inst.cfg index f79c57f967..ed90985548 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Draft_Print.inst.cfg @@ -15,7 +15,6 @@ variant = AA 0.8 brim_width = 15 material_print_temperature = =default_material_print_temperature + 15 -material_standby_temperature = 100 prime_tower_enable = True retraction_combing_max_distance = 50 speed_print = 40 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Superdraft_Print.inst.cfg index 3f9bec36ab..87d8bb69e1 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Superdraft_Print.inst.cfg @@ -15,7 +15,6 @@ variant = AA 0.8 brim_width = 15 material_print_temperature = =default_material_print_temperature + 20 -material_standby_temperature = 100 prime_tower_enable = True retraction_combing_max_distance = 50 speed_print = 45 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Verydraft_Print.inst.cfg index d2ec9bdc00..970964203f 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Verydraft_Print.inst.cfg @@ -15,7 +15,6 @@ variant = AA 0.8 brim_width = 15 material_print_temperature = =default_material_print_temperature + 17 -material_standby_temperature = 100 prime_tower_enable = True retraction_combing_max_distance = 50 speed_print = 40 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_Nylon_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_Nylon_Draft_Print.inst.cfg index 5a1a8ee5c1..b7d767a40b 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_Nylon_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_Nylon_Draft_Print.inst.cfg @@ -17,7 +17,6 @@ cool_min_layer_time_fan_speed_max = 20 cool_min_speed = 10 machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 -material_standby_temperature = 100 ooze_shield_angle = 40 prime_tower_enable = True raft_acceleration = =acceleration_layer_0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_Nylon_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_Nylon_Superdraft_Print.inst.cfg index 89a55e3f6f..23b93082f6 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_Nylon_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_Nylon_Superdraft_Print.inst.cfg @@ -17,7 +17,6 @@ cool_min_layer_time_fan_speed_max = 20 cool_min_speed = 10 machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 -material_standby_temperature = 100 ooze_shield_angle = 40 prime_tower_enable = True raft_acceleration = =acceleration_layer_0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_Nylon_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_Nylon_Verydraft_Print.inst.cfg index c1b0737a24..a12ef5caf3 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_Nylon_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_Nylon_Verydraft_Print.inst.cfg @@ -19,7 +19,6 @@ cool_min_speed = 10 machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 -material_standby_temperature = 100 ooze_shield_angle = 40 prime_tower_enable = True raft_acceleration = =acceleration_layer_0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Fast_Print.inst.cfg index bb43019b98..8c762a2286 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Fast_Print.inst.cfg @@ -19,7 +19,6 @@ cool_fan_full_at_height = =layer_height_0 + 14 * layer_height material_print_temperature = =default_material_print_temperature - 5 material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 raft_airgap = 0.5 raft_margin = 15 skin_overlap = 0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Superdraft_Print.inst.cfg index 72be6682c6..b5b54af8ea 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Superdraft_Print.inst.cfg @@ -18,7 +18,6 @@ cool_fan_full_at_height = =layer_height_0 + 7 * layer_height material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 raft_airgap = 0.5 raft_margin = 15 skin_overlap = 0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Verydraft_Print.inst.cfg index 0786997c50..87f2af5e8f 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Verydraft_Print.inst.cfg @@ -17,7 +17,6 @@ brim_width = 14 cool_fan_full_at_height = =layer_height_0 + 9 * layer_height material_print_temperature = =default_material_print_temperature - 2 material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 raft_airgap = 0.5 raft_margin = 15 skin_overlap = 0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_PETG_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_PETG_Draft_Print.inst.cfg index b128d3a252..926a1394bd 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_PETG_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_PETG_Draft_Print.inst.cfg @@ -15,7 +15,6 @@ variant = AA 0.8 brim_width = 7 material_print_temperature = =default_material_print_temperature - 5 -material_standby_temperature = 100 prime_tower_enable = True retraction_combing_max_distance = 8 speed_print = 40 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_PETG_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_PETG_Superdraft_Print.inst.cfg index 8aa0a748d4..1d2b4bf257 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_PETG_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_PETG_Superdraft_Print.inst.cfg @@ -15,7 +15,6 @@ variant = AA 0.8 brim_width = 7 material_print_temperature = =default_material_print_temperature - 5 -material_standby_temperature = 100 prime_tower_enable = True retraction_combing_max_distance = 8 speed_print = 45 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_PETG_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_PETG_Verydraft_Print.inst.cfg index ad9b43ab07..d9a6c58217 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_PETG_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_PETG_Verydraft_Print.inst.cfg @@ -15,7 +15,6 @@ variant = AA 0.8 brim_width = 7 material_print_temperature = =default_material_print_temperature - 5 -material_standby_temperature = 100 prime_tower_enable = True retraction_combing_max_distance = 8 speed_print = 40 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Draft_Print.inst.cfg index e6f87c3442..0714319001 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Draft_Print.inst.cfg @@ -20,7 +20,6 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral' material_bed_temperature_layer_0 = =material_bed_temperature material_print_temperature = =default_material_print_temperature - 2 material_print_temperature_layer_0 = =default_material_print_temperature + 2 -material_standby_temperature = 100 multiple_mesh_overlap = 0.2 prime_tower_enable = True prime_tower_flow = 100 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Superdraft_Print.inst.cfg index 324b121ca7..9b669346eb 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Superdraft_Print.inst.cfg @@ -20,7 +20,6 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral' material_bed_temperature_layer_0 = =material_bed_temperature material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =default_material_print_temperature + 2 -material_standby_temperature = 100 multiple_mesh_overlap = 0.2 prime_tower_enable = True prime_tower_flow = 100 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Verydraft_Print.inst.cfg index 67cd7d50ac..498a099bfb 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Verydraft_Print.inst.cfg @@ -19,7 +19,6 @@ top_skin_expand_distance = =line_width * 2 infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral' material_bed_temperature_layer_0 = =material_bed_temperature material_print_temperature_layer_0 = =default_material_print_temperature + 2 -material_standby_temperature = 100 multiple_mesh_overlap = 0.2 prime_tower_enable = True prime_tower_flow = 100 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_TPLA_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_TPLA_Verydraft_Print.inst.cfg index b8e0103386..48bbe5b568 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_TPLA_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_TPLA_Verydraft_Print.inst.cfg @@ -24,7 +24,6 @@ material_final_print_temperature = =max(-273.15, material_print_temperature - 15 material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_print_temperature = =default_material_print_temperature + 5 material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 prime_tower_enable = False retract_at_layer_change = False speed_infill = =math.ceil(speed_print * 30 / 35) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Draft_Print.inst.cfg index e132129969..a6574f6eec 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Draft_Print.inst.cfg @@ -23,7 +23,6 @@ material_flow = 105 material_initial_print_temperature = =material_print_temperature material_print_temperature = =default_material_print_temperature - 2 material_print_temperature_layer_0 = =material_print_temperature + 19 -material_standby_temperature = 100 multiple_mesh_overlap = 0.2 prime_tower_enable = True prime_tower_flow = 100 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Superdraft_Print.inst.cfg index 410d07b902..eda3b32597 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Superdraft_Print.inst.cfg @@ -24,7 +24,6 @@ material_flow = 105 material_initial_print_temperature = =material_print_temperature material_print_temperature = =default_material_print_temperature + 2 material_print_temperature_layer_0 = =material_print_temperature + 15 -material_standby_temperature = 100 multiple_mesh_overlap = 0.2 prime_tower_enable = True prime_tower_flow = 100 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Verydraft_Print.inst.cfg index c4d48a2f6c..24eb4a0b06 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Verydraft_Print.inst.cfg @@ -23,7 +23,6 @@ material_final_print_temperature = =material_print_temperature material_flow = 105 material_initial_print_temperature = =material_print_temperature material_print_temperature_layer_0 = =material_print_temperature + 17 -material_standby_temperature = 100 multiple_mesh_overlap = 0.2 prime_tower_enable = True prime_tower_flow = 100 diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.4_PVA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.4_PVA_Draft_Print.inst.cfg index cdb8384f68..05069e722c 100644 --- a/resources/quality/ultimaker_s5/um_s5_bb0.4_PVA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_bb0.4_PVA_Draft_Print.inst.cfg @@ -14,7 +14,6 @@ variant = BB 0.4 [values] brim_replaces_support = False material_print_temperature = =default_material_print_temperature + 10 -material_standby_temperature = 100 prime_tower_enable = False retraction_count_max = 5 skin_overlap = 20 diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.4_PVA_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.4_PVA_Fast_Print.inst.cfg index b98235718b..7539f5fdb1 100644 --- a/resources/quality/ultimaker_s5/um_s5_bb0.4_PVA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_bb0.4_PVA_Fast_Print.inst.cfg @@ -15,7 +15,6 @@ variant = BB 0.4 support_infill_sparse_thickness = =2*layer_height brim_replaces_support = False material_print_temperature = =default_material_print_temperature + 5 -material_standby_temperature = 100 prime_tower_enable = False retraction_count_max = 5 skin_overlap = 15 diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.4_PVA_High_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.4_PVA_High_Quality.inst.cfg index 40dcd5da35..c320676f02 100644 --- a/resources/quality/ultimaker_s5/um_s5_bb0.4_PVA_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_bb0.4_PVA_High_Quality.inst.cfg @@ -14,7 +14,6 @@ variant = BB 0.4 [values] support_infill_sparse_thickness = =3*layer_height brim_replaces_support = False -material_standby_temperature = 100 prime_tower_enable = False retraction_count_max = 5 support_brim_enable = True diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.4_PVA_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.4_PVA_Normal_Quality.inst.cfg index d5397c44eb..a068c96756 100644 --- a/resources/quality/ultimaker_s5/um_s5_bb0.4_PVA_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_bb0.4_PVA_Normal_Quality.inst.cfg @@ -14,7 +14,6 @@ variant = BB 0.4 [values] support_infill_sparse_thickness = =2*layer_height brim_replaces_support = False -material_standby_temperature = 100 prime_tower_enable = False retraction_count_max = 5 support_brim_enable = True diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.4_PVA_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.4_PVA_Verydraft_Print.inst.cfg index 6bacefc331..c8c7971f09 100644 --- a/resources/quality/ultimaker_s5/um_s5_bb0.4_PVA_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_bb0.4_PVA_Verydraft_Print.inst.cfg @@ -14,7 +14,6 @@ is_experimental = True [values] brim_replaces_support = False -material_standby_temperature = 100 prime_tower_enable = False retraction_count_max = 5 support_brim_enable = True diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.8_PVA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.8_PVA_Draft_Print.inst.cfg index 0259c3040f..e526fc6426 100644 --- a/resources/quality/ultimaker_s5/um_s5_bb0.8_PVA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_bb0.8_PVA_Draft_Print.inst.cfg @@ -14,7 +14,6 @@ variant = BB 0.8 [values] brim_replaces_support = False material_print_temperature = =default_material_print_temperature + 5 -material_standby_temperature = 100 retraction_count_max = 5 support_brim_enable = True support_interface_enable = True diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.8_PVA_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.8_PVA_Superdraft_Print.inst.cfg index c1768abc54..ae5b0aacfe 100644 --- a/resources/quality/ultimaker_s5/um_s5_bb0.8_PVA_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_bb0.8_PVA_Superdraft_Print.inst.cfg @@ -13,7 +13,6 @@ variant = BB 0.8 [values] brim_replaces_support = False -material_standby_temperature = 100 retraction_count_max = 5 support_brim_enable = True support_interface_enable = True diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.8_PVA_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.8_PVA_Verydraft_Print.inst.cfg index 315ee5748f..b37122ab7e 100644 --- a/resources/quality/ultimaker_s5/um_s5_bb0.8_PVA_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_bb0.8_PVA_Verydraft_Print.inst.cfg @@ -13,7 +13,6 @@ variant = BB 0.8 [values] brim_replaces_support = False -material_standby_temperature = 100 retraction_count_max = 5 support_brim_enable = True support_infill_sparse_thickness = 0.3 diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFCPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFCPE_Draft_Print.inst.cfg index 44df638c2f..cb1a50803c 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFCPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFCPE_Draft_Print.inst.cfg @@ -23,7 +23,6 @@ initial_layer_line_width_factor = 130.0 material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 skin_overlap = 20 support_bottom_distance = =support_z_distance / 2 support_top_distance = =support_z_distance diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFCPE_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFCPE_Fast_Print.inst.cfg index c2e3a080a2..ce03a5ae09 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFCPE_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFCPE_Fast_Print.inst.cfg @@ -23,7 +23,6 @@ initial_layer_line_width_factor = 130.0 material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 skin_overlap = 20 support_bottom_distance = =support_z_distance / 2 support_top_distance = =support_z_distance diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFPA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFPA_Draft_Print.inst.cfg index 3b6c3c2984..3036247066 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFPA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFPA_Draft_Print.inst.cfg @@ -23,7 +23,6 @@ initial_layer_line_width_factor = 130.0 material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 skin_overlap = 20 support_bottom_distance = =support_z_distance / 2 support_top_distance = =support_z_distance diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFPA_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFPA_Fast_Print.inst.cfg index 1115c306fd..a399338789 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFPA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFPA_Fast_Print.inst.cfg @@ -23,7 +23,6 @@ initial_layer_line_width_factor = 130.0 material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 skin_overlap = 20 support_bottom_distance = =support_z_distance / 2 support_top_distance = =support_z_distance diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFCPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFCPE_Draft_Print.inst.cfg index 72f48e9c57..dfcf839d41 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFCPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFCPE_Draft_Print.inst.cfg @@ -23,7 +23,6 @@ initial_layer_line_width_factor = 130.0 material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 skin_overlap = 20 support_bottom_distance = =support_z_distance / 2 support_top_distance = =support_z_distance diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFCPE_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFCPE_Fast_Print.inst.cfg index 169bd1365e..2b7a43ccfc 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFCPE_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFCPE_Fast_Print.inst.cfg @@ -23,7 +23,6 @@ initial_layer_line_width_factor = 130.0 material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 skin_overlap = 20 support_bottom_distance = =support_z_distance / 2 support_top_distance = =support_z_distance diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFPA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFPA_Draft_Print.inst.cfg index ac59de30b6..918680ec18 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFPA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFPA_Draft_Print.inst.cfg @@ -23,7 +23,6 @@ initial_layer_line_width_factor = 130.0 material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 skin_overlap = 20 support_bottom_distance = =support_z_distance / 2 support_top_distance = =support_z_distance diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFPA_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFPA_Fast_Print.inst.cfg index 0c4d2babbd..67fb7b24c1 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFPA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFPA_Fast_Print.inst.cfg @@ -23,7 +23,6 @@ initial_layer_line_width_factor = 130.0 material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 skin_overlap = 20 support_bottom_distance = =support_z_distance / 2 support_top_distance = =support_z_distance diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.4_PLA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.4_PLA_Draft_Print.inst.cfg index 4b82c58a66..a8bcf6d444 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.4_PLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.4_PLA_Draft_Print.inst.cfg @@ -23,7 +23,6 @@ machine_nozzle_heat_up_speed = 1.6 material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_print_temperature = =default_material_print_temperature + 10 -material_standby_temperature = 100 prime_tower_enable = True retract_at_layer_change = False speed_print = 45 diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.4_PLA_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.4_PLA_Fast_Print.inst.cfg index 6c855696de..ecffafed57 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.4_PLA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.4_PLA_Fast_Print.inst.cfg @@ -23,7 +23,6 @@ machine_nozzle_heat_up_speed = 1.6 material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_print_temperature = =default_material_print_temperature + 10 -material_standby_temperature = 100 prime_tower_enable = True retract_at_layer_change = False speed_print = 45 diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFCPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFCPE_Draft_Print.inst.cfg index 48c31f4cd2..d91ade8af3 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFCPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFCPE_Draft_Print.inst.cfg @@ -22,7 +22,6 @@ initial_layer_line_width_factor = 130.0 material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 skin_overlap = 20 support_bottom_distance = =support_z_distance / 2 support_top_distance = =support_z_distance diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFPA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFPA_Draft_Print.inst.cfg index 9ad29b3ab9..087a3868bf 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFPA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFPA_Draft_Print.inst.cfg @@ -22,7 +22,6 @@ initial_layer_line_width_factor = 130.0 material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 skin_overlap = 20 support_bottom_distance = =support_z_distance / 2 support_top_distance = =support_z_distance diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFCPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFCPE_Draft_Print.inst.cfg index d169225a50..431a570dc0 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFCPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFCPE_Draft_Print.inst.cfg @@ -22,7 +22,6 @@ initial_layer_line_width_factor = 130.0 material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 skin_overlap = 20 support_bottom_distance = =support_z_distance / 2 support_top_distance = =support_z_distance diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFPA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFPA_Draft_Print.inst.cfg index faa5070778..29e0335e9e 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFPA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFPA_Draft_Print.inst.cfg @@ -21,7 +21,6 @@ initial_layer_line_width_factor = 130.0 material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature -material_standby_temperature = 100 skin_overlap = 20 support_bottom_distance = =support_z_distance / 2 support_top_distance = =support_z_distance diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_PLA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_PLA_Draft_Print.inst.cfg index d0cfbad066..68da56447b 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_PLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.6_PLA_Draft_Print.inst.cfg @@ -23,7 +23,6 @@ machine_nozzle_heat_up_speed = 1.6 material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_print_temperature = =default_material_print_temperature + 10 -material_standby_temperature = 100 prime_tower_enable = True retract_at_layer_change = False speed_print = 45 diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_PLA_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_PLA_Fast_Print.inst.cfg index 14bc1dd211..58e377a417 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_PLA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.6_PLA_Fast_Print.inst.cfg @@ -23,7 +23,6 @@ machine_nozzle_heat_up_speed = 1.6 material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_print_temperature = =default_material_print_temperature + 10 -material_standby_temperature = 100 prime_tower_enable = True retract_at_layer_change = False speed_print = 45 diff --git a/resources/variants/ultimaker3_aa0.8.inst.cfg b/resources/variants/ultimaker3_aa0.8.inst.cfg index a5ae2a383e..e46f7f8258 100644 --- a/resources/variants/ultimaker3_aa0.8.inst.cfg +++ b/resources/variants/ultimaker3_aa0.8.inst.cfg @@ -27,7 +27,6 @@ machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 -material_standby_temperature = 100 multiple_mesh_overlap = 0 prime_tower_enable = False prime_tower_wipe_enabled = True diff --git a/resources/variants/ultimaker3_bb0.8.inst.cfg b/resources/variants/ultimaker3_bb0.8.inst.cfg index d0cc437b1b..fb09362b67 100644 --- a/resources/variants/ultimaker3_bb0.8.inst.cfg +++ b/resources/variants/ultimaker3_bb0.8.inst.cfg @@ -28,7 +28,6 @@ machine_nozzle_id = BB 0.8 machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 material_print_temperature = =default_material_print_temperature + 10 -material_standby_temperature = 100 multiple_mesh_overlap = 0 prime_tower_enable = False prime_tower_wipe_enabled = True diff --git a/resources/variants/ultimaker3_extended_aa0.8.inst.cfg b/resources/variants/ultimaker3_extended_aa0.8.inst.cfg index de525e3caf..4110cf8679 100644 --- a/resources/variants/ultimaker3_extended_aa0.8.inst.cfg +++ b/resources/variants/ultimaker3_extended_aa0.8.inst.cfg @@ -27,7 +27,6 @@ machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 -material_standby_temperature = 100 multiple_mesh_overlap = 0 prime_tower_enable = False prime_tower_wipe_enabled = True diff --git a/resources/variants/ultimaker3_extended_bb0.8.inst.cfg b/resources/variants/ultimaker3_extended_bb0.8.inst.cfg index 205ae4b0f2..b1317d77f5 100644 --- a/resources/variants/ultimaker3_extended_bb0.8.inst.cfg +++ b/resources/variants/ultimaker3_extended_bb0.8.inst.cfg @@ -28,7 +28,6 @@ machine_nozzle_id = BB 0.8 machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 material_print_temperature = =default_material_print_temperature + 10 -material_standby_temperature = 100 multiple_mesh_overlap = 0 prime_tower_enable = False prime_tower_wipe_enabled = True diff --git a/resources/variants/ultimaker_s3_aa0.8.inst.cfg b/resources/variants/ultimaker_s3_aa0.8.inst.cfg index bc1f092e63..c3ff805ba0 100644 --- a/resources/variants/ultimaker_s3_aa0.8.inst.cfg +++ b/resources/variants/ultimaker_s3_aa0.8.inst.cfg @@ -27,7 +27,6 @@ machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 -material_standby_temperature = 100 multiple_mesh_overlap = 0 prime_tower_enable = False prime_tower_wipe_enabled = True diff --git a/resources/variants/ultimaker_s3_bb0.8.inst.cfg b/resources/variants/ultimaker_s3_bb0.8.inst.cfg index 60dfcafd33..123386d1b3 100644 --- a/resources/variants/ultimaker_s3_bb0.8.inst.cfg +++ b/resources/variants/ultimaker_s3_bb0.8.inst.cfg @@ -27,7 +27,6 @@ machine_nozzle_id = BB 0.8 machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 material_print_temperature = =default_material_print_temperature + 10 -material_standby_temperature = 100 multiple_mesh_overlap = 0 prime_tower_enable = False prime_tower_wipe_enabled = True diff --git a/resources/variants/ultimaker_s5_aa0.8.inst.cfg b/resources/variants/ultimaker_s5_aa0.8.inst.cfg index 9b1dfa0dc8..f2e3421b67 100644 --- a/resources/variants/ultimaker_s5_aa0.8.inst.cfg +++ b/resources/variants/ultimaker_s5_aa0.8.inst.cfg @@ -28,7 +28,6 @@ machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 -material_standby_temperature = 100 multiple_mesh_overlap = 0 prime_tower_enable = False prime_tower_wipe_enabled = True diff --git a/resources/variants/ultimaker_s5_bb0.8.inst.cfg b/resources/variants/ultimaker_s5_bb0.8.inst.cfg index 4e9d687d8a..acab25be4e 100644 --- a/resources/variants/ultimaker_s5_bb0.8.inst.cfg +++ b/resources/variants/ultimaker_s5_bb0.8.inst.cfg @@ -27,7 +27,6 @@ machine_nozzle_id = BB 0.8 machine_nozzle_size = 0.8 machine_nozzle_tip_outer_diameter = 2.0 material_print_temperature = =default_material_print_temperature + 10 -material_standby_temperature = 100 multiple_mesh_overlap = 0 prime_tower_enable = False prime_tower_wipe_enabled = True From 4ac8229c33d4724bdf0dbcf8b1aaa5b51d2a9f93 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 30 Aug 2022 10:28:22 +0200 Subject: [PATCH 29/89] Clean up codestyle violations Boyscouting! CURA-8463 --- .../src/Cloud/CloudOutputDevice.py | 37 ++++++++++++------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py index 6431d09b7b..23ea5cf9aa 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py @@ -41,7 +41,7 @@ I18N_CATALOG = i18nCatalog("cura") class CloudOutputDevice(UltimakerNetworkedPrinterOutputDevice): """The cloud output device is a network output device that works remotely but has limited functionality. - Currently it only supports viewing the printer and print job status and adding a new job to the queue. + Currently, it only supports viewing the printer and print job status and adding a new job to the queue. As such, those methods have been implemented here. Note that this device represents a single remote cluster, not a list of multiple clusters. """ @@ -58,7 +58,7 @@ class CloudOutputDevice(UltimakerNetworkedPrinterOutputDevice): PRINT_JOB_ACTIONS_MIN_VERSION = Version("5.2.12") # Notify can only use signals that are defined by the class that they are in, not inherited ones. - # Therefore we create a private signal used to trigger the printersChanged signal. + # Therefore, we create a private signal used to trigger the printersChanged signal. _cloudClusterPrintersChanged = pyqtSignal() def __init__(self, api_client: CloudApiClient, cluster: CloudClusterResponse, parent: QObject = None) -> None: @@ -202,7 +202,8 @@ class CloudOutputDevice(UltimakerNetworkedPrinterOutputDevice): # Note that self.writeFinished is called in _onPrintUploadCompleted as well. if self._uploaded_print_job: Logger.log("i", "Current mesh is already attached to a print-job, immediately request reprint.") - self._api.requestPrint(self.key, self._uploaded_print_job.job_id, self._onPrintUploadCompleted, self._onPrintUploadSpecificError) + self._api.requestPrint(self.key, self._uploaded_print_job.job_id, self._onPrintUploadCompleted, + self._onPrintUploadSpecificError) return # Export the scene to the correct file type. @@ -244,12 +245,15 @@ class CloudOutputDevice(UltimakerNetworkedPrinterOutputDevice): self._progress.update(100) print_job = cast(CloudPrintJobResponse, self._pre_upload_print_job) - if not print_job: # It's possible that another print job is requested in the meanwhile, which then fails to upload with an error, which sets self._pre_uploaded_print_job to `None`. + if not print_job: + # It's possible that another print job is requested in the meanwhile, which then fails to upload with an + # error, which sets self._pre_uploaded_print_job to `None`. self._pre_upload_print_job = None self._uploaded_print_job = None Logger.log("w", "Interference from another job uploaded at roughly the same time, not uploading print!") return # Prevent a crash. - self._api.requestPrint(self.key, print_job.job_id, self._onPrintUploadCompleted, self._onPrintUploadSpecificError) + self._api.requestPrint(self.key, print_job.job_id, self._onPrintUploadCompleted, + self._onPrintUploadSpecificError) def _onPrintUploadCompleted(self, response: CloudPrintResponse) -> None: """Shows a message when the upload has succeeded @@ -262,10 +266,13 @@ class CloudOutputDevice(UltimakerNetworkedPrinterOutputDevice): message.addAction("monitor print", name=I18N_CATALOG.i18nc("@action:button", "Monitor print"), icon="", - description=I18N_CATALOG.i18nc("@action:tooltip", "Track the print in Ultimaker Digital Factory"), + description=I18N_CATALOG.i18nc("@action:tooltip", + "Track the print in Ultimaker Digital Factory"), button_align=message.ActionButtonAlignment.ALIGN_RIGHT) - df_url = f"https://digitalfactory.ultimaker.com/app/jobs/{self._cluster.cluster_id}?utm_source=cura&utm_medium=software&utm_campaign=message-printjob-sent" - message.pyQtActionTriggered.connect(lambda message, action: (QDesktopServices.openUrl(QUrl(df_url)), message.hide())) + df_url = f"https://digitalfactory.ultimaker.com/app/jobs/{self._cluster.cluster_id}" \ + f"?utm_source=cura&utm_medium=software&utm_campaign=message-printjob-sent" + message.pyQtActionTriggered.connect(lambda message, action: (QDesktopServices.openUrl(QUrl(df_url)), + message.hide())) message.show() self.writeFinished.emit() @@ -278,7 +285,9 @@ class CloudOutputDevice(UltimakerNetworkedPrinterOutputDevice): if error_code == 409: PrintJobUploadQueueFullMessage().show() else: - PrintJobUploadErrorMessage(I18N_CATALOG.i18nc("@error:send", "Unknown error code when uploading print job: {0}", error_code)).show() + PrintJobUploadErrorMessage(I18N_CATALOG.i18nc("@error:send", + "Unknown error code when uploading print job: {0}", + error_code)).show() Logger.log("w", "Upload of print job failed specifically with error code {}".format(error_code)) @@ -336,11 +345,13 @@ class CloudOutputDevice(UltimakerNetworkedPrinterOutputDevice): @pyqtSlot(name="openPrintJobControlPanel") def openPrintJobControlPanel(self) -> None: - QDesktopServices.openUrl(QUrl(self.clusterCloudUrl + "?utm_source=cura&utm_medium=software&utm_campaign=monitor-manage-browser")) + QDesktopServices.openUrl(QUrl(f"{self.clusterCloudUrl}?utm_source=cura&utm_medium=software&" + f"utm_campaign=monitor-manage-browser")) @pyqtSlot(name="openPrinterControlPanel") def openPrinterControlPanel(self) -> None: - QDesktopServices.openUrl(QUrl(self.clusterCloudUrl + "?utm_source=cura&utm_medium=software&utm_campaign=monitor-manage-printer")) + QDesktopServices.openUrl(QUrl(f"{self.clusterCloudUrl}?utm_source=cura&utm_medium=software" + f"&utm_campaign=monitor-manage-printer")) permissionsChanged = pyqtSignal() @@ -362,7 +373,7 @@ class CloudOutputDevice(UltimakerNetworkedPrinterOutputDevice): @pyqtProperty(bool, notify = permissionsChanged) def canWriteOwnPrintJobs(self) -> bool: """ - Whether this user can change things about print jobs made by themself. + Whether this user can change things about print jobs made by them. """ return "digital-factory.print-job.write.own" in self._account.permissions @@ -390,4 +401,4 @@ class CloudOutputDevice(UltimakerNetworkedPrinterOutputDevice): """Gets the URL on which to monitor the cluster via the cloud.""" root_url_prefix = "-staging" if self._account.is_staging else "" - return "https://digitalfactory{}.ultimaker.com/app/jobs/{}".format(root_url_prefix, self.clusterData.cluster_id) + return f"https://digitalfactory{root_url_prefix}.ultimaker.com/app/jobs/{self.clusterData.cluster_id}" From f8ebf98df327ca44009d2c970f12b9eadf6913f6 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 30 Aug 2022 10:43:53 +0200 Subject: [PATCH 30/89] Update typing hints to new style More boyscouting as I try to understand this code CURA-8463 --- .../src/Cloud/CloudOutputDeviceManager.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py index 30bbf68f6c..8da82a7e3d 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py @@ -46,15 +46,15 @@ class CloudOutputDeviceManager: def __init__(self) -> None: # Persistent dict containing the remote clusters for the authenticated user. - self._remote_clusters = {} # type: Dict[str, CloudOutputDevice] + self._remote_clusters: Dict[str, CloudOutputDevice] = {} # Dictionary containing all the cloud printers loaded in Cura - self._um_cloud_printers = {} # type: Dict[str, GlobalStack] + self._um_cloud_printers: Dict[str, GlobalStack] = {} - self._account = CuraApplication.getInstance().getCuraAPI().account # type: Account + self._account: Account = CuraApplication.getInstance().getCuraAPI().account self._api = CloudApiClient(CuraApplication.getInstance(), on_error = lambda error: Logger.log("e", str(error))) self._account.loginStateChanged.connect(self._onLoginStateChanged) - self._removed_printers_message = None # type: Optional[Message] + self._removed_printers_message: Optional[Message] = None # Ensure we don't start twice. self._running = False @@ -113,8 +113,8 @@ class CloudOutputDeviceManager: CuraApplication.getInstance().getContainerRegistry().findContainerStacks( type = "machine") if m.getMetaDataEntry(self.META_CLUSTER_ID, None)} new_clusters = [] - all_clusters = {c.cluster_id: c for c in clusters} # type: Dict[str, CloudClusterResponse] - online_clusters = {c.cluster_id: c for c in clusters if c.is_online} # type: Dict[str, CloudClusterResponse] + all_clusters: Dict[str, CloudClusterResponse] = {c.cluster_id: c for c in clusters} + online_clusters: Dict[str, CloudClusterResponse] = {c.cluster_id: c for c in clusters if c.is_online} # Add the new printers in Cura. for device_id, cluster_data in all_clusters.items(): @@ -369,7 +369,7 @@ class CloudOutputDeviceManager: # Remove the output device from the printers for device_id in removed_device_ids: - device = self._um_cloud_printers.get(device_id, None) # type: Optional[GlobalStack] + device: Optional[GlobalStack] = self._um_cloud_printers.get(device_id, None) if not device: continue if device_id in output_device_manager.getOutputDeviceIds(): @@ -383,7 +383,7 @@ class CloudOutputDeviceManager: self._removed_printers_message.show() def _onDiscoveredDeviceRemoved(self, device_id: str) -> None: - device = self._remote_clusters.pop(device_id, None) # type: Optional[CloudOutputDevice] + device: Optional[CloudOutputDevice] = self._remote_clusters.pop(device_id, None) if not device: return device.close() @@ -397,7 +397,7 @@ class CloudOutputDeviceManager: return False # Create a new machine. - # We do not use use MachineManager.addMachine here because we need to set the cluster ID before activating it. + # We do not use MachineManager.addMachine here because we need to set the cluster ID before activating it. new_machine = CuraStackBuilder.createMachine(device.name, device.printerType, show_warning_message=False) if not new_machine: Logger.error(f"Failed creating a new machine for {device.name}") From ed335963573950007a480c2688776025cf998654 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 30 Aug 2022 10:46:10 +0200 Subject: [PATCH 31/89] Rename device to global_stack Device was used in the rest of this class for the output device, not for a machine. This was a bit confusing CURA-8463 --- .../src/Cloud/CloudOutputDeviceManager.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py index 8da82a7e3d..aa81b8f9bb 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py @@ -369,8 +369,8 @@ class CloudOutputDeviceManager: # Remove the output device from the printers for device_id in removed_device_ids: - device: Optional[GlobalStack] = self._um_cloud_printers.get(device_id, None) - if not device: + global_stack: Optional[GlobalStack] = self._um_cloud_printers.get(device_id, None) + if not global_stack: continue if device_id in output_device_manager.getOutputDeviceIds(): output_device_manager.removeOutputDevice(device_id) @@ -378,7 +378,7 @@ class CloudOutputDeviceManager: del self._remote_clusters[device_id] # Update the printer's metadata to mark it as not linked to the account - device.setMetaDataEntry(META_UM_LINKED_TO_ACCOUNT, False) + global_stack.setMetaDataEntry(META_UM_LINKED_TO_ACCOUNT, False) self._removed_printers_message.show() From 24f85bae064d33243939e9de1755fbf0b102af54 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 30 Aug 2022 10:52:21 +0200 Subject: [PATCH 32/89] Use new style string formating Moar boyscouting CURA-8463 --- .../src/Cloud/CloudOutputDeviceManager.py | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py index aa81b8f9bb..2c192699cb 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py @@ -257,13 +257,13 @@ class CloudOutputDeviceManager: max_disp_devices = 3 if len(new_devices_added) > max_disp_devices: num_hidden = len(new_devices_added) - max_disp_devices - device_name_list = ["
  • {} ({})
  • ".format(device.name, device.printerTypeName) for device in new_devices[0:max_disp_devices]] + device_name_list = ["
  • {} ({})
  • ".format(device.name, device.printerTypeName) for device in new_devices[0: max_disp_devices]] device_name_list.append("
  • " + self.i18n_catalog.i18ncp("info:{0} gets replaced by a number of printers", "... and {0} other", "... and {0} others", num_hidden) + "
  • ") device_names = "".join(device_name_list) else: device_names = "".join(["
  • {} ({})
  • ".format(device.name, device.printerTypeName) for device in new_devices_added]) if new_devices_added: - message_text = self.i18n_catalog.i18nc("info:status", "Printers added from Digital Factory:") + "
      " + device_names + "
    " + message_text = self.i18n_catalog.i18nc("info:status", "Printers added from Digital Factory:") + f"
      {device_names}
    " message.setText(message_text) else: message.hide() @@ -291,7 +291,8 @@ class CloudOutputDeviceManager: old_cluster_id = outdated_machine.getMetaDataEntry(self.META_CLUSTER_ID) outdated_machine.setMetaDataEntry(self.META_CLUSTER_ID, new_cloud_output_device.key) outdated_machine.setMetaDataEntry(META_UM_LINKED_TO_ACCOUNT, True) - # Cleanup the remainings of the old CloudOutputDevice(old_cluster_id) + + # Cleanup the remains of the old CloudOutputDevice(old_cluster_id) self._um_cloud_printers[new_cloud_output_device.key] = self._um_cloud_printers.pop(old_cluster_id) output_device_manager = CuraApplication.getInstance().getOutputDeviceManager() if old_cluster_id in output_device_manager.getOutputDeviceIds(): @@ -337,7 +338,8 @@ class CloudOutputDeviceManager: ), message_type = Message.MessageType.WARNING ) - device_names = "".join(["
  • {} ({})
  • ".format(self._um_cloud_printers[device].name, self._um_cloud_printers[device].definition.name) for device in self.reported_device_ids]) + device_names = "".join(["
  • {} ({})
  • ".format(self._um_cloud_printers[device].name, + self._um_cloud_printers[device].definition.name) for device in self.reported_device_ids]) message_text = self.i18n_catalog.i18ncp( "info:status", "This printer is not linked to the Digital Factory:", @@ -346,10 +348,11 @@ class CloudOutputDeviceManager: ) message_text += "
      {}

    ".format(device_names) digital_factory_string = self.i18n_catalog.i18nc("info:name", "Ultimaker Digital Factory") - + website_link = f"{digital_factory_string}." message_text += self.i18n_catalog.i18nc( "info:status", - "To establish a connection, please visit the {website_link}".format(website_link = "{}.".format(digital_factory_string)) + f"To establish a connection, please visit the {website_link}" ) self._removed_printers_message.setText(message_text) self._removed_printers_message.addAction("keep_printer_configurations_action", @@ -440,7 +443,8 @@ class CloudOutputDeviceManager: machine.setMetaDataEntry("group_name", device.name) machine.setMetaDataEntry("group_size", device.clusterSize) digital_factory_string = self.i18n_catalog.i18nc("info:name", "Ultimaker Digital Factory") - digital_factory_link = "{digital_factory_string}".format(digital_factory_string = digital_factory_string) + digital_factory_link = f"{digital_factory_string}" removal_warning_string = self.i18n_catalog.i18nc("@message {printer_name} is replaced with the name of the printer", "{printer_name} will be removed until the next account sync.").format(printer_name = device.name) \ + "
    " + self.i18n_catalog.i18nc("@message {printer_name} is replaced with the name of the printer", "To remove {printer_name} permanently, visit {digital_factory_link}").format(printer_name = device.name, digital_factory_link = digital_factory_link) \ + "

    " + self.i18n_catalog.i18nc("@message {printer_name} is replaced with the name of the printer", "Are you sure you want to remove {printer_name} temporarily?").format(printer_name = device.name) @@ -483,12 +487,16 @@ class CloudOutputDeviceManager: question_title = self.i18n_catalog.i18nc("@title:window", "Remove printers?") question_content = self.i18n_catalog.i18ncp( "@label", - "You are about to remove {0} printer from Cura. This action cannot be undone.\nAre you sure you want to continue?", - "You are about to remove {0} printers from Cura. This action cannot be undone.\nAre you sure you want to continue?", + "You are about to remove {0} printer from Cura. This action cannot be undone.\n" + "Are you sure you want to continue?", + "You are about to remove {0} printers from Cura. This action cannot be undone.\n" + "Are you sure you want to continue?", len(remove_printers_ids) ) if remove_printers_ids == all_ids: - question_content = self.i18n_catalog.i18nc("@label", "You are about to remove all printers from Cura. This action cannot be undone.\nAre you sure you want to continue?") + question_content = self.i18n_catalog.i18nc("@label", "You are about to remove all printers from Cura. " + "This action cannot be undone.\n" + "Are you sure you want to continue?") result = QMessageBox.question(None, question_title, question_content) if result == QMessageBox.StandardButton.No: return From 21b8f083f26bc3d2cf5fa35c7a698321ad7bc629 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 30 Aug 2022 11:03:04 +0200 Subject: [PATCH 33/89] Ensure that UI actually updates when adding remote printers More boyscouting. The documentation that it had before was actually false... CURA-8463 --- .../src/Cloud/CloudOutputDeviceManager.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py index 2c192699cb..2058e77645 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py @@ -169,15 +169,15 @@ class CloudOutputDeviceManager: """**Synchronously** create machines for discovered devices Any new machines are made available to the user. - May take a long time to complete. As this code needs access to the Application - and blocks the GIL, creating a Job for this would not make sense. - Shows a Message informing the user of progress. + May take a long time to complete. This currently forcefully calls the "processEvents", which isn't + the nicest solution out there. We might need to consider moving this into a job later! """ new_devices = [] remote_clusters_added = False host_guid_map = {machine.getMetaDataEntry(self.META_HOST_GUID): device_cluster_id for device_cluster_id, machine in self._um_cloud_printers.items() if machine.getMetaDataEntry(self.META_HOST_GUID)} + machine_manager = CuraApplication.getInstance().getMachineManager() for cluster_data in clusters: @@ -202,6 +202,8 @@ class CloudOutputDeviceManager: # from the account elif not parseBool(self._um_cloud_printers[device.key].getMetaDataEntry(META_UM_LINKED_TO_ACCOUNT, "true")): self._um_cloud_printers[device.key].setMetaDataEntry(META_UM_LINKED_TO_ACCOUNT, True) + # As adding a lot of machines might take some time, ensure that the GUI (and progress message) is updated + CuraApplication.getInstance().processEvents() # Inform the Cloud printers model about new devices. new_devices_list_of_dicts = [{ From 30bc0d04bfbdf372f68224a1a34fd20e44c05fc8 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 30 Aug 2022 11:04:15 +0200 Subject: [PATCH 34/89] Add more typing & documentation Even more boyscouting. This code seems to be far too complex for what it should be... CURA-8463 --- .../src/Cloud/CloudOutputDeviceManager.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py index 2058e77645..777e637d5f 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py @@ -172,12 +172,14 @@ class CloudOutputDeviceManager: May take a long time to complete. This currently forcefully calls the "processEvents", which isn't the nicest solution out there. We might need to consider moving this into a job later! """ - new_devices = [] + new_devices: List[CloudOutputDevice] = [] remote_clusters_added = False - host_guid_map = {machine.getMetaDataEntry(self.META_HOST_GUID): device_cluster_id - for device_cluster_id, machine in self._um_cloud_printers.items() - if machine.getMetaDataEntry(self.META_HOST_GUID)} - + + # Create a map that maps the HOST_GUID to the DEVICE_CLUSTER_ID + host_guid_map: Dict[str, str] = {machine.getMetaDataEntry(self.META_HOST_GUID): device_cluster_id + for device_cluster_id, machine in self._um_cloud_printers.items() + if machine.getMetaDataEntry(self.META_HOST_GUID)} + machine_manager = CuraApplication.getInstance().getMachineManager() for cluster_data in clusters: From d35441603b17f6e2fd3e103ef2713548107498e9 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 30 Aug 2022 11:06:09 +0200 Subject: [PATCH 35/89] Rename variables so it's easier to understand what is what CURA-8463 --- .../src/Cloud/CloudOutputDeviceManager.py | 54 +++++++++---------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py index 777e637d5f..d2899e61e1 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py @@ -165,14 +165,14 @@ class CloudOutputDeviceManager: self._syncing = False self._account.setSyncState(self.SYNC_SERVICE_NAME, SyncState.ERROR) - def _onDevicesDiscovered(self, clusters: List[CloudClusterResponse]) -> None: + def _onDevicesDiscovered(self, discovered_clusters: List[CloudClusterResponse]) -> None: """**Synchronously** create machines for discovered devices Any new machines are made available to the user. May take a long time to complete. This currently forcefully calls the "processEvents", which isn't the nicest solution out there. We might need to consider moving this into a job later! """ - new_devices: List[CloudOutputDevice] = [] + new_output_devices: List[CloudOutputDevice] = [] remote_clusters_added = False # Create a map that maps the HOST_GUID to the DEVICE_CLUSTER_ID @@ -182,28 +182,28 @@ class CloudOutputDeviceManager: machine_manager = CuraApplication.getInstance().getMachineManager() - for cluster_data in clusters: - device = CloudOutputDevice(self._api, cluster_data) + for cluster_data in discovered_clusters: + output_device = CloudOutputDevice(self._api, cluster_data) # If the machine already existed before, it will be present in the host_guid_map if cluster_data.host_guid in host_guid_map: - machine = machine_manager.getMachine(device.printerType, {self.META_HOST_GUID: cluster_data.host_guid}) - if machine and machine.getMetaDataEntry(self.META_CLUSTER_ID) != device.key: + machine = machine_manager.getMachine(output_device.printerType, {self.META_HOST_GUID: cluster_data.host_guid}) + if machine and machine.getMetaDataEntry(self.META_CLUSTER_ID) != output_device.key: # If the retrieved device has a different cluster_id than the existing machine, bring the existing # machine up-to-date. - self._updateOutdatedMachine(outdated_machine = machine, new_cloud_output_device = device) + self._updateOutdatedMachine(outdated_machine = machine, new_cloud_output_device = output_device) # Create a machine if we don't already have it. Do not make it the active machine. # We only need to add it if it wasn't already added by "local" network or by cloud. - if machine_manager.getMachine(device.printerType, {self.META_CLUSTER_ID: device.key}) is None \ - and machine_manager.getMachine(device.printerType, {self.META_NETWORK_KEY: cluster_data.host_name + "*"}) is None: # The host name is part of the network key. - new_devices.append(device) - elif device.getId() not in self._remote_clusters: - self._remote_clusters[device.getId()] = device + if machine_manager.getMachine(output_device.printerType, {self.META_CLUSTER_ID: output_device.key}) is None \ + and machine_manager.getMachine(output_device.printerType, {self.META_NETWORK_KEY: cluster_data.host_name + "*"}) is None: # The host name is part of the network key. + new_output_devices.append(output_device) + elif output_device.getId() not in self._remote_clusters: + self._remote_clusters[output_device.getId()] = output_device remote_clusters_added = True # If a printer that was removed from the account is re-added, change its metadata to mark it not removed # from the account - elif not parseBool(self._um_cloud_printers[device.key].getMetaDataEntry(META_UM_LINKED_TO_ACCOUNT, "true")): - self._um_cloud_printers[device.key].setMetaDataEntry(META_UM_LINKED_TO_ACCOUNT, True) + elif not parseBool(self._um_cloud_printers[output_device.key].getMetaDataEntry(META_UM_LINKED_TO_ACCOUNT, "true")): + self._um_cloud_printers[output_device.key].setMetaDataEntry(META_UM_LINKED_TO_ACCOUNT, True) # As adding a lot of machines might take some time, ensure that the GUI (and progress message) is updated CuraApplication.getInstance().processEvents() @@ -212,11 +212,11 @@ class CloudOutputDeviceManager: "key": d.getId(), "name": d.name, "machine_type": d.printerTypeName, - "firmware_version": d.firmwareVersion} for d in new_devices] + "firmware_version": d.firmwareVersion} for d in new_output_devices] discovered_cloud_printers_model = CuraApplication.getInstance().getDiscoveredCloudPrintersModel() discovered_cloud_printers_model.addDiscoveredCloudPrinters(new_devices_list_of_dicts) - if not new_devices: + if not new_output_devices: if remote_clusters_added: self._connectToActiveMachine() return @@ -224,15 +224,15 @@ class CloudOutputDeviceManager: # Sort new_devices on online status first, alphabetical second. # Since the first device might be activated in case there is no active printer yet, # it would be nice to prioritize online devices - online_cluster_names = {c.friendly_name.lower() for c in clusters if c.is_online and not c.friendly_name is None} - new_devices.sort(key = lambda x: ("a{}" if x.name.lower() in online_cluster_names else "b{}").format(x.name.lower())) + online_cluster_names = {c.friendly_name.lower() for c in discovered_clusters if c.is_online and not c.friendly_name is None} + new_output_devices.sort(key = lambda x: ("a{}" if x.name.lower() in online_cluster_names else "b{}").format(x.name.lower())) message = Message( title = self.i18n_catalog.i18ncp( "info:status", "New printer detected from your Ultimaker account", "New printers detected from your Ultimaker account", - len(new_devices) + len(new_output_devices) ), progress = 0, lifetime = 0, @@ -242,26 +242,26 @@ class CloudOutputDeviceManager: new_devices_added = [] - for idx, device in enumerate(new_devices): - message_text = self.i18n_catalog.i18nc("info:status Filled in with printer name and printer model.", "Adding printer {name} ({model}) from your account").format(name = device.name, model = device.printerTypeName) + for idx, output_device in enumerate(new_output_devices): + message_text = self.i18n_catalog.i18nc("info:status Filled in with printer name and printer model.", "Adding printer {name} ({model}) from your account").format(name = output_device.name, model = output_device.printerTypeName) message.setText(message_text) - if len(new_devices) > 1: - message.setProgress((idx / len(new_devices)) * 100) + if len(new_output_devices) > 1: + message.setProgress((idx / len(new_output_devices)) * 100) CuraApplication.getInstance().processEvents() - self._remote_clusters[device.getId()] = device + self._remote_clusters[output_device.getId()] = output_device # If there is no active machine, activate the first available cloud printer activate = not CuraApplication.getInstance().getMachineManager().activeMachine - if self._createMachineFromDiscoveredDevice(device.getId(), activate = activate): - new_devices_added.append(device) + if self._createMachineFromDiscoveredDevice(output_device.getId(), activate = activate): + new_devices_added.append(output_device) message.setProgress(None) max_disp_devices = 3 if len(new_devices_added) > max_disp_devices: num_hidden = len(new_devices_added) - max_disp_devices - device_name_list = ["
  • {} ({})
  • ".format(device.name, device.printerTypeName) for device in new_devices[0: max_disp_devices]] + device_name_list = ["
  • {} ({})
  • ".format(device.name, device.printerTypeName) for device in new_output_devices[0: max_disp_devices]] device_name_list.append("
  • " + self.i18n_catalog.i18ncp("info:{0} gets replaced by a number of printers", "... and {0} other", "... and {0} others", num_hidden) + "
  • ") device_names = "".join(device_name_list) else: From 8e9056df71fff59fdea89d4b3ff063706020488a Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 30 Aug 2022 11:11:00 +0200 Subject: [PATCH 36/89] Rename function to better reflect what it does CURA-8463 --- .../src/Cloud/CloudOutputDeviceManager.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py index d2899e61e1..90b16d8f78 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py @@ -130,8 +130,11 @@ class CloudOutputDeviceManager: self._um_cloud_printers[device_id].setMetaDataEntry(META_UM_LINKED_TO_ACCOUNT, True) if not self._um_cloud_printers[device_id].getMetaDataEntry(META_CAPABILITIES, None): self._um_cloud_printers[device_id].setMetaDataEntry(META_CAPABILITIES, ",".join(cluster_data.capabilities)) - self._onDevicesDiscovered(new_clusters) + # We want a machine stack per remote printer that we discovered. Create them now! + self._createMachineStacksForDiscoveredClusters(new_clusters) + + # Update the online vs offline status for all found devices self._updateOnlinePrinters(all_clusters) # Hide the current removed_printers_message, if there is any @@ -165,7 +168,7 @@ class CloudOutputDeviceManager: self._syncing = False self._account.setSyncState(self.SYNC_SERVICE_NAME, SyncState.ERROR) - def _onDevicesDiscovered(self, discovered_clusters: List[CloudClusterResponse]) -> None: + def _createMachineStacksForDiscoveredClusters(self, discovered_clusters: List[CloudClusterResponse]) -> None: """**Synchronously** create machines for discovered devices Any new machines are made available to the user. From a429a93e9401358614df17679c26ddec215484a2 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 30 Aug 2022 11:26:09 +0200 Subject: [PATCH 37/89] Move new printers detected message to it's own class CURA-8463 --- .../src/Cloud/CloudOutputDeviceManager.py | 20 +++--------- .../src/Messages/NewPrinterDetectedMessage.py | 31 +++++++++++++++++++ 2 files changed, 35 insertions(+), 16 deletions(-) create mode 100644 plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py index 90b16d8f78..dc1167065a 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py @@ -23,6 +23,7 @@ from cura.UltimakerCloud.UltimakerCloudConstants import META_CAPABILITIES, META_ from .CloudApiClient import CloudApiClient from .CloudOutputDevice import CloudOutputDevice from ..Models.Http.CloudClusterResponse import CloudClusterResponse +from ..Messages.NewPrinterDetectedMessage import NewPrinterDetectedMessage class CloudOutputDeviceManager: @@ -230,27 +231,14 @@ class CloudOutputDeviceManager: online_cluster_names = {c.friendly_name.lower() for c in discovered_clusters if c.is_online and not c.friendly_name is None} new_output_devices.sort(key = lambda x: ("a{}" if x.name.lower() in online_cluster_names else "b{}").format(x.name.lower())) - message = Message( - title = self.i18n_catalog.i18ncp( - "info:status", - "New printer detected from your Ultimaker account", - "New printers detected from your Ultimaker account", - len(new_output_devices) - ), - progress = 0, - lifetime = 0, - message_type = Message.MessageType.POSITIVE - ) + message = NewPrinterDetectedMessage(num_printers_found = len(new_output_devices)) message.show() new_devices_added = [] for idx, output_device in enumerate(new_output_devices): - message_text = self.i18n_catalog.i18nc("info:status Filled in with printer name and printer model.", "Adding printer {name} ({model}) from your account").format(name = output_device.name, model = output_device.printerTypeName) - message.setText(message_text) - if len(new_output_devices) > 1: - message.setProgress((idx / len(new_output_devices)) * 100) - CuraApplication.getInstance().processEvents() + message.updateDisplayText(output_device) + self._remote_clusters[output_device.getId()] = output_device # If there is no active machine, activate the first available cloud printer diff --git a/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py b/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py new file mode 100644 index 0000000000..026251f972 --- /dev/null +++ b/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py @@ -0,0 +1,31 @@ +# Copyright (c) 2022 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. +from UM import i18nCatalog +from UM.Message import Message +from cura.CuraApplication import CuraApplication + + +class NewPrinterDetectedMessage(Message): + i18n_catalog = i18nCatalog("cura") + + def __init__(self, num_printers_found: int) -> None: + super().__init__(title = self.i18n_catalog.i18ncp("info:status", + "New printer detected from your Ultimaker account", + "New printers detected from your Ultimaker account", + num_printers_found), + progress = 0, + lifetime = 0, + message_type = Message.MessageType.POSITIVE) + self._printers_added = 0 + self._num_printers_found = num_printers_found + + def updateDisplayText(self, output_device): + message_text = self.i18n_catalog.i18nc("info:status Filled in with printer name and printer model.", + "Adding printer {name} ({model}) from your account").format( + name=output_device.name, model=output_device.printerTypeName) + self.setText(message_text) + if self._num_printers_found > 1: + self.setProgress((self._printers_added / self._num_printers_found) * 100) + self._printers_added += 1 + + CuraApplication.getInstance().processEvents() From 7f9984cd16f348595e321686aec75c96524f0d89 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 30 Aug 2022 11:33:20 +0200 Subject: [PATCH 38/89] Also move remainder of NewPrinterDetected logic to it's own class This should make the CloudOutputDeviceManager a bit more readable CURA-8463 --- .../src/Cloud/CloudOutputDeviceManager.py | 17 ++-------- .../src/Messages/NewPrinterDetectedMessage.py | 31 ++++++++++++++++++- 2 files changed, 32 insertions(+), 16 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py index dc1167065a..3d5d43b131 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py @@ -237,7 +237,7 @@ class CloudOutputDeviceManager: new_devices_added = [] for idx, output_device in enumerate(new_output_devices): - message.updateDisplayText(output_device) + message.updateProgressText(output_device) self._remote_clusters[output_device.getId()] = output_device @@ -247,21 +247,8 @@ class CloudOutputDeviceManager: if self._createMachineFromDiscoveredDevice(output_device.getId(), activate = activate): new_devices_added.append(output_device) - message.setProgress(None) + message.finalize(new_devices_added, new_output_devices) - max_disp_devices = 3 - if len(new_devices_added) > max_disp_devices: - num_hidden = len(new_devices_added) - max_disp_devices - device_name_list = ["
  • {} ({})
  • ".format(device.name, device.printerTypeName) for device in new_output_devices[0: max_disp_devices]] - device_name_list.append("
  • " + self.i18n_catalog.i18ncp("info:{0} gets replaced by a number of printers", "... and {0} other", "... and {0} others", num_hidden) + "
  • ") - device_names = "".join(device_name_list) - else: - device_names = "".join(["
  • {} ({})
  • ".format(device.name, device.printerTypeName) for device in new_devices_added]) - if new_devices_added: - message_text = self.i18n_catalog.i18nc("info:status", "Printers added from Digital Factory:") + f"
      {device_names}
    " - message.setText(message_text) - else: - message.hide() def _updateOnlinePrinters(self, printer_responses: Dict[str, CloudClusterResponse]) -> None: """ diff --git a/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py b/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py index 026251f972..d85ade9dce 100644 --- a/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py +++ b/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py @@ -19,7 +19,12 @@ class NewPrinterDetectedMessage(Message): self._printers_added = 0 self._num_printers_found = num_printers_found - def updateDisplayText(self, output_device): + def updateProgressText(self, output_device): + """ + While the progress of adding printers is running, update the text displayed. + :param output_device: The output device that is being added. + :return: + """ message_text = self.i18n_catalog.i18nc("info:status Filled in with printer name and printer model.", "Adding printer {name} ({model}) from your account").format( name=output_device.name, model=output_device.printerTypeName) @@ -29,3 +34,27 @@ class NewPrinterDetectedMessage(Message): self._printers_added += 1 CuraApplication.getInstance().processEvents() + + def finalize(self, new_devices_added, new_output_devices): + self.setProgress(None) + num_devices_added = len(new_devices_added) + max_disp_devices = 3 + + if num_devices_added > max_disp_devices: + num_hidden = num_devices_added - max_disp_devices + device_name_list = ["
  • {} ({})
  • ".format(device.name, device.printerTypeName) for device in + new_output_devices[0: max_disp_devices]] + device_name_list.append( + "
  • " + self.i18n_catalog.i18ncp("info:{0} gets replaced by a number of printers", "... and {0} other", + "... and {0} others", num_hidden) + "
  • ") + device_names = "".join(device_name_list) + else: + device_names = "".join( + ["
  • {} ({})
  • ".format(device.name, device.printerTypeName) for device in new_devices_added]) + + if new_devices_added: + message_text = self.i18n_catalog.i18nc("info:status", + "Printers added from Digital Factory:") + f"
      {device_names}
    " + self.setText(message_text) + else: + self.hide() From 45e7d15c805a23cadba3eb8de7a66df9a8b1ecb4 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 30 Aug 2022 11:36:47 +0200 Subject: [PATCH 39/89] Add documentation for _onDiscoveredDeviceRemoved --- .../UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py index 3d5d43b131..b290095be7 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py @@ -249,7 +249,6 @@ class CloudOutputDeviceManager: message.finalize(new_devices_added, new_output_devices) - def _updateOnlinePrinters(self, printer_responses: Dict[str, CloudClusterResponse]) -> None: """ Update the metadata of the printers to store whether they are online or not. @@ -368,6 +367,7 @@ class CloudOutputDeviceManager: self._removed_printers_message.show() def _onDiscoveredDeviceRemoved(self, device_id: str) -> None: + """ Remove the CloudOutputDevices for printers that are offline""" device: Optional[CloudOutputDevice] = self._remote_clusters.pop(device_id, None) if not device: return From ce3ab62c916cf64875af9f7937f76e3c21109af6 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 30 Aug 2022 11:45:30 +0200 Subject: [PATCH 40/89] Move RemovedprintersMessage to it's own class The OutputDeviceManager is just too bloated to properly make sense of. So I'm trying to move as much code out of it so I can start to make sense of it CURA-8463 --- .../src/Cloud/CloudOutputDeviceManager.py | 48 +++-------------- .../src/Messages/RemovedPrintersMessage.py | 52 +++++++++++++++++++ 2 files changed, 60 insertions(+), 40 deletions(-) create mode 100644 plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py index b290095be7..8665497229 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py @@ -22,6 +22,7 @@ from cura.Settings.GlobalStack import GlobalStack from cura.UltimakerCloud.UltimakerCloudConstants import META_CAPABILITIES, META_UM_LINKED_TO_ACCOUNT from .CloudApiClient import CloudApiClient from .CloudOutputDevice import CloudOutputDevice +from ..Messages.RemovedPrintersMessage import RemovedPrintersMessage from ..Models.Http.CloudClusterResponse import CloudClusterResponse from ..Messages.NewPrinterDetectedMessage import NewPrinterDetectedMessage @@ -303,52 +304,13 @@ class CloudOutputDeviceManager: for device_id in removed_device_ids: if not parseBool(self._um_cloud_printers[device_id].getMetaDataEntry(META_UM_LINKED_TO_ACCOUNT, "true")): ignored_device_ids.add(device_id) + # Keep the reported_device_ids list in a class variable, so that the message button actions can access it and # take the necessary steps to fulfill their purpose. self.reported_device_ids = removed_device_ids - ignored_device_ids if not self.reported_device_ids: return - # Generate message - self._removed_printers_message = Message( - title = self.i18n_catalog.i18ncp( - "info:status", - "A cloud connection is not available for a printer", - "A cloud connection is not available for some printers", - len(self.reported_device_ids) - ), - message_type = Message.MessageType.WARNING - ) - device_names = "".join(["
  • {} ({})
  • ".format(self._um_cloud_printers[device].name, - self._um_cloud_printers[device].definition.name) for device in self.reported_device_ids]) - message_text = self.i18n_catalog.i18ncp( - "info:status", - "This printer is not linked to the Digital Factory:", - "These printers are not linked to the Digital Factory:", - len(self.reported_device_ids) - ) - message_text += "
      {}

    ".format(device_names) - digital_factory_string = self.i18n_catalog.i18nc("info:name", "Ultimaker Digital Factory") - website_link = f"{digital_factory_string}." - message_text += self.i18n_catalog.i18nc( - "info:status", - f"To establish a connection, please visit the {website_link}" - ) - self._removed_printers_message.setText(message_text) - self._removed_printers_message.addAction("keep_printer_configurations_action", - name = self.i18n_catalog.i18nc("@action:button", "Keep printer configurations"), - icon = "", - description = "Keep cloud printers in Ultimaker Cura when not connected to your account.", - button_align = Message.ActionButtonAlignment.ALIGN_RIGHT) - self._removed_printers_message.addAction("remove_printers_action", - name = self.i18n_catalog.i18nc("@action:button", "Remove printers"), - icon = "", - description = "Remove cloud printer(s) which aren't linked to your account.", - button_style = Message.ActionButtonStyle.SECONDARY, - button_align = Message.ActionButtonAlignment.ALIGN_LEFT) - self._removed_printers_message.actionTriggered.connect(self._onRemovedPrintersMessageActionTriggered) - output_device_manager = CuraApplication.getInstance().getOutputDeviceManager() # Remove the output device from the printers @@ -364,6 +326,12 @@ class CloudOutputDeviceManager: # Update the printer's metadata to mark it as not linked to the account global_stack.setMetaDataEntry(META_UM_LINKED_TO_ACCOUNT, False) + # Generate message to show + device_names = "".join(["
  • {} ({})
  • ".format(self._um_cloud_printers[device].name, + self._um_cloud_printers[device].definition.name) for device in + self.reported_device_ids]) + self._removed_printers_message = RemovedPrintersMessage(self.reported_device_ids, device_names) + self._removed_printers_message.actionTriggered.connect(self._onRemovedPrintersMessageActionTriggered) self._removed_printers_message.show() def _onDiscoveredDeviceRemoved(self, device_id: str) -> None: diff --git a/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py b/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py new file mode 100644 index 0000000000..c047fee4f2 --- /dev/null +++ b/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py @@ -0,0 +1,52 @@ +# Copyright (c) 2022 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. +from UM import i18nCatalog +from UM.Message import Message +from cura.CuraApplication import CuraApplication + + +class RemovedPrintersMessage(Message): + i18n_catalog = i18nCatalog("cura") + + def __init__(self, removed_devices, device_names) -> None: + self._removed_devices = removed_devices + + message_text = self.i18n_catalog.i18ncp( + "info:status", + "This printer is not linked to the Digital Factory:", + "These printers are not linked to the Digital Factory:", + len(self.removed_devices) + ) + message_text += "
      {}

    ".format(device_names) + + digital_factory_string = self.i18n_catalog.i18nc("info:name", "Ultimaker Digital Factory") + website_link = f"{digital_factory_string}." + + message_text += self.i18n_catalog.i18nc( + "info:status", + f"To establish a connection, please visit the {website_link}" + ) + + super().__init__(title=self.i18n_catalog.i18ncp("info:status", + "A cloud connection is not available for a printer", + "A cloud connection is not available for some printers", + len(self.removed_devices)), + message_type=Message.MessageType.WARNING, + text = message_text) + + self.addAction("keep_printer_configurations_action", + name=self.i18n_catalog.i18nc("@action:button", + "Keep printer configurations"), + icon="", + description="Keep cloud printers in Ultimaker Cura when not connected to your account.", + button_align=Message.ActionButtonAlignment.ALIGN_RIGHT) + self.addAction("remove_printers_action", + name=self.i18n_catalog.i18nc("@action:button", "Remove printers"), + icon="", + description="Remove cloud printer(s) which aren't linked to your account.", + button_style=Message.ActionButtonStyle.SECONDARY, + button_align=Message.ActionButtonAlignment.ALIGN_LEFT) + + + From f4c4b52d9b938b4c3b114fba56dfff68996f9e88 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 30 Aug 2022 11:49:09 +0200 Subject: [PATCH 41/89] Update typing to reflect new message that is being used CURA-8463 --- .../UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py index 8665497229..0d2e678e8b 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py @@ -9,7 +9,6 @@ from PyQt6.QtWidgets import QMessageBox from UM import i18nCatalog from UM.Logger import Logger # To log errors talking to the API. -from UM.Message import Message from UM.Settings.Interfaces import ContainerInterface from UM.Signal import Signal from UM.Util import parseBool @@ -56,7 +55,7 @@ class CloudOutputDeviceManager: self._account: Account = CuraApplication.getInstance().getCuraAPI().account self._api = CloudApiClient(CuraApplication.getInstance(), on_error = lambda error: Logger.log("e", str(error))) self._account.loginStateChanged.connect(self._onLoginStateChanged) - self._removed_printers_message: Optional[Message] = None + self._removed_printers_message: Optional[RemovedPrintersMessage] = None # Ensure we don't start twice. self._running = False @@ -426,7 +425,7 @@ class CloudOutputDeviceManager: if container_cluster_id in self._remote_clusters.keys(): del self._remote_clusters[container_cluster_id] - def _onRemovedPrintersMessageActionTriggered(self, removed_printers_message: Message, action: str) -> None: + def _onRemovedPrintersMessageActionTriggered(self, removed_printers_message: RemovedPrintersMessage, action: str) -> None: if action == "keep_printer_configurations_action": removed_printers_message.hide() elif action == "remove_printers_action": From 7eabbd7b5cfc64b7219fde96ffed09e13f559af0 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 30 Aug 2022 11:52:13 +0200 Subject: [PATCH 42/89] Convert _updateOnlinePrinters to static CURA-8463 --- .../UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py index 0d2e678e8b..7d8656dcd9 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py @@ -249,7 +249,8 @@ class CloudOutputDeviceManager: message.finalize(new_devices_added, new_output_devices) - def _updateOnlinePrinters(self, printer_responses: Dict[str, CloudClusterResponse]) -> None: + @staticmethod + def _updateOnlinePrinters(printer_responses: Dict[str, CloudClusterResponse]) -> None: """ Update the metadata of the printers to store whether they are online or not. :param printer_responses: The responses received from the API about the printer statuses. From 718d3790e20c397e0fd7f0f2091063b1862e74cf Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 30 Aug 2022 13:07:19 +0200 Subject: [PATCH 43/89] Clean up iterating over cluster list CURA-8463 --- .../src/Cloud/CloudOutputDeviceManager.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py index 7d8656dcd9..f6df780206 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py @@ -156,6 +156,7 @@ class CloudOutputDeviceManager: if new_clusters or offline_device_keys or removed_device_keys: self.discoveredDevicesChanged.emit() + if offline_device_keys: # If the removed device was active we should connect to the new active device self._connectToActiveMachine() @@ -375,7 +376,10 @@ class CloudOutputDeviceManager: output_device_manager = CuraApplication.getInstance().getOutputDeviceManager() stored_cluster_id = active_machine.getMetaDataEntry(self.META_CLUSTER_ID) local_network_key = active_machine.getMetaDataEntry(self.META_NETWORK_KEY) - for device in list(self._remote_clusters.values()): # Make a copy of the remote devices list, to prevent modifying the list while iterating, if a device gets added asynchronously. + + # Copy of the device list, to prevent modifying the list while iterating, if a device gets added asynchronously. + remote_cluster_copy = list(self._remote_clusters.values()) + for device in remote_cluster_copy: if device.key == stored_cluster_id: # Connect to it if the stored ID matches. self._connectToOutputDevice(device, active_machine) From b689a84bcb0e6e69b5dc97aa8b0c2b1cb8c2a76c Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 30 Aug 2022 13:09:53 +0200 Subject: [PATCH 44/89] Add explicit typing --- .../UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py index f6df780206..5206abcc34 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py @@ -378,7 +378,7 @@ class CloudOutputDeviceManager: local_network_key = active_machine.getMetaDataEntry(self.META_NETWORK_KEY) # Copy of the device list, to prevent modifying the list while iterating, if a device gets added asynchronously. - remote_cluster_copy = list(self._remote_clusters.values()) + remote_cluster_copy: List[CloudOutputDevice] = list(self._remote_clusters.values()) for device in remote_cluster_copy: if device.key == stored_cluster_id: # Connect to it if the stored ID matches. From cf99114de8ad06b0e0a87eed9ed9cc28f1b9dcd2 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Tue, 30 Aug 2022 13:10:03 +0200 Subject: [PATCH 45/89] Only display message for abstract printers CURA-9422 --- plugins/MonitorStage/MonitorMain.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/MonitorStage/MonitorMain.qml b/plugins/MonitorStage/MonitorMain.qml index c3a7b7873e..768366c664 100644 --- a/plugins/MonitorStage/MonitorMain.qml +++ b/plugins/MonitorStage/MonitorMain.qml @@ -119,6 +119,7 @@ Rectangle Rectangle { id: sendToFactoryCard + visible: isAbstractCloudPrinter color: UM.Theme.getColor("detail_background") height: childrenRect.height + UM.Theme.getSize("default_margin").height * 2 width: childrenRect.width + UM.Theme.getSize("wide_margin").width * 2 @@ -140,7 +141,6 @@ Rectangle UM.Label { anchors.horizontalCenter: parent.horizontalCenter - visible: isAbstractCloudPrinter text: catalog.i18nc("@info", "Monitor your printers from everywhere using Ultimaker Digital Factory") font: UM.Theme.getFont("medium") width: sendToFactoryImage.width From 6d947963a4910062d0508be570dda4bfe2eb9ecd Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 30 Aug 2022 13:11:17 +0200 Subject: [PATCH 46/89] Remove stray whitespace CURA-8463 --- .../src/Network/LocalClusterOutputDeviceManager.py | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/src/Network/LocalClusterOutputDeviceManager.py b/plugins/UM3NetworkPrinting/src/Network/LocalClusterOutputDeviceManager.py index bddd383b23..0b6eb028a1 100644 --- a/plugins/UM3NetworkPrinting/src/Network/LocalClusterOutputDeviceManager.py +++ b/plugins/UM3NetworkPrinting/src/Network/LocalClusterOutputDeviceManager.py @@ -234,7 +234,6 @@ class LocalClusterOutputDeviceManager: _abstract_machine = CuraStackBuilder.createAbstractMachine(device.printerType) - def _storeManualAddress(self, address: str) -> None: """Add an address to the stored preferences.""" From 587d71bb57238c99e532af7af148dc9d114df085 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 30 Aug 2022 13:11:34 +0200 Subject: [PATCH 47/89] Fix typo CURA-8463 --- .../src/Network/LocalClusterOutputDeviceManager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/src/Network/LocalClusterOutputDeviceManager.py b/plugins/UM3NetworkPrinting/src/Network/LocalClusterOutputDeviceManager.py index 0b6eb028a1..d35e409086 100644 --- a/plugins/UM3NetworkPrinting/src/Network/LocalClusterOutputDeviceManager.py +++ b/plugins/UM3NetworkPrinting/src/Network/LocalClusterOutputDeviceManager.py @@ -221,7 +221,7 @@ class LocalClusterOutputDeviceManager: return # Create a new machine and activate it. - # We do not use use MachineManager.addMachine here because we need to set the network key before activating it. + # We do not use MachineManager.addMachine here because we need to set the network key before activating it. # If we do not do this the auto-pairing with the cloud-equivalent device will not work. new_machine = CuraStackBuilder.createMachine(device.name, device.printerType) if not new_machine: From 143f796ba6a8ffb6da2818254083edc92074d669 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 30 Aug 2022 13:13:32 +0200 Subject: [PATCH 48/89] Use get instead of direct [] The next line (checking if the result is None) doesn't make sense otherwise CURA-8463 --- .../UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py index 5206abcc34..245914d1b9 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py @@ -346,7 +346,7 @@ class CloudOutputDeviceManager: output_device_manager.removeOutputDevice(device.key) def _createMachineFromDiscoveredDevice(self, key: str, activate: bool = True) -> bool: - device = self._remote_clusters[key] + device = self._remote_clusters.get(key) if not device: return False From 65a0a2f67b1c485228f7dbdcf42eb4f0dcd39ea0 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 30 Aug 2022 13:23:01 +0200 Subject: [PATCH 49/89] Update formatting of CloudAPIClient CURA-8463 --- .../src/Cloud/CloudApiClient.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudApiClient.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudApiClient.py index 470e57947e..80029414d9 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudApiClient.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudApiClient.py @@ -48,7 +48,6 @@ class CloudApiClient: """Initializes a new cloud API client. :param app: - :param account: The user's account object :param on_error: The callback to be called whenever we receive errors from the server. """ super().__init__() @@ -57,7 +56,7 @@ class CloudApiClient: self._scope = JsonDecoratorScope(UltimakerCloudScope(app)) self._http = HttpRequestManager.getInstance() self._on_error = on_error - self._upload = None # type: Optional[ToolPathUploader] + self._upload: Optional[ToolPathUploader] = None @property def account(self) -> Account: @@ -71,7 +70,7 @@ class CloudApiClient: :param on_finished: The function to be called after the result is parsed. """ - url = "{}/clusters?status=active".format(self.CLUSTER_API_ROOT) + url = f"{self.CLUSTER_API_ROOT}/clusters?status=active" self._http.get(url, scope = self._scope, callback = self._parseCallback(on_finished, CloudClusterResponse, failed), @@ -85,7 +84,7 @@ class CloudApiClient: :param on_finished: The function to be called after the result is parsed. """ - url = "{}/clusters/{}/status".format(self.CLUSTER_API_ROOT, cluster_id) + url = f"{self.CLUSTER_API_ROOT}/clusters/{cluster_id}/status" self._http.get(url, scope = self._scope, callback = self._parseCallback(on_finished, CloudClusterStatus), @@ -100,7 +99,7 @@ class CloudApiClient: :param on_finished: The function to be called after the result is parsed. """ - url = "{}/jobs/upload".format(self.CURA_API_ROOT) + url = f"{self.CURA_API_ROOT}/jobs/upload" data = json.dumps({"data": request.toDict()}).encode() self._http.put(url, @@ -131,7 +130,7 @@ class CloudApiClient: # specific to sending print jobs) such as lost connection, unparsable responses, etc. are not returned here, but # handled in a generic way by the CloudApiClient. def requestPrint(self, cluster_id: str, job_id: str, on_finished: Callable[[CloudPrintResponse], Any], on_error) -> None: - url = "{}/clusters/{}/print/{}".format(self.CLUSTER_API_ROOT, cluster_id, job_id) + url = f"{self.CLUSTER_API_ROOT}/clusters/{cluster_id}/print/{job_id}" self._http.post(url, scope = self._scope, data = b"", @@ -150,7 +149,7 @@ class CloudApiClient: """ body = json.dumps({"data": data}).encode() if data else b"" - url = "{}/clusters/{}/print_jobs/{}/action/{}".format(self.CLUSTER_API_ROOT, cluster_id, cluster_job_id, action) + url = f"{self.CLUSTER_API_ROOT}/clusters/{cluster_id}/print_jobs/{cluster_job_id}/action/{action}" self._http.post(url, scope = self._scope, data = body, @@ -159,7 +158,7 @@ class CloudApiClient: def _createEmptyRequest(self, path: str, content_type: Optional[str] = "application/json") -> QNetworkRequest: """We override _createEmptyRequest in order to add the user credentials. - :param url: The URL to request + :param path: The URL to request :param content_type: The type of the body contents. """ @@ -168,7 +167,7 @@ class CloudApiClient: request.setHeader(QNetworkRequest.KnownHeaders.ContentTypeHeader, content_type) access_token = self._account.accessToken if access_token: - request.setRawHeader(b"Authorization", "Bearer {}".format(access_token).encode()) + request.setRawHeader(b"Authorization", f"Bearer {access_token}".encode()) return request @staticmethod From 38e4ca1e0f2dcf90212e5aba4ab7be67ab6c44a4 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 30 Aug 2022 13:30:42 +0200 Subject: [PATCH 50/89] Updated documentation link CURA-8463 --- .../UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py index 245914d1b9..d7f67498f3 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py @@ -30,7 +30,7 @@ class CloudOutputDeviceManager: """The cloud output device manager is responsible for using the Ultimaker Cloud APIs to manage remote clusters. Keeping all cloud related logic in this class instead of the UM3OutputDevicePlugin results in more readable code. - API spec is available on https://api.ultimaker.com/docs/connect/spec/. + API spec is available on https://docs.api.ultimaker.com/connect/index.html. """ META_CLUSTER_ID = "um_cloud_cluster_id" From c7f8fe8feb25e9063df025909983b6711cb72701 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Tue, 30 Aug 2022 13:38:19 +0200 Subject: [PATCH 51/89] Don't add `is_online` to `.3mf` files from eccb --- plugins/3MFWriter/ThreeMFWorkspaceWriter.py | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/3MFWriter/ThreeMFWorkspaceWriter.py b/plugins/3MFWriter/ThreeMFWorkspaceWriter.py index d6cc6ea159..1bc1432b67 100644 --- a/plugins/3MFWriter/ThreeMFWorkspaceWriter.py +++ b/plugins/3MFWriter/ThreeMFWorkspaceWriter.py @@ -156,6 +156,7 @@ class ThreeMFWorkspaceWriter(WorkspaceWriter): "connection_type", "capabilities", "octoprint_api_key", + "is_online", } serialized_data = container.serialize(ignored_metadata_keys = ignore_keys) From 246fcae0f81ce1bb1d89d75060188b9e85699d4a Mon Sep 17 00:00:00 2001 From: Rijk van Manen Date: Tue, 30 Aug 2022 15:52:18 +0200 Subject: [PATCH 52/89] disable travel_avoid_supports While CURA-9337 is not implemented this a mitigation to avoid unnecessary combing. PP-172 --- resources/definitions/ultimaker_s3.def.json | 1 - resources/definitions/ultimaker_s5.def.json | 1 - 2 files changed, 2 deletions(-) diff --git a/resources/definitions/ultimaker_s3.def.json b/resources/definitions/ultimaker_s3.def.json index 999600254c..5ccbc2c5a0 100644 --- a/resources/definitions/ultimaker_s3.def.json +++ b/resources/definitions/ultimaker_s3.def.json @@ -133,7 +133,6 @@ "switch_extruder_prime_speed": { "value": "15" }, "switch_extruder_retraction_amount": { "value": "8" }, "top_bottom_thickness": { "value": "1" }, - "travel_avoid_supports": { "value": "True" }, "travel_avoid_distance": { "value": "3 if extruders_enabled_count > 1 else machine_nozzle_tip_outer_diameter / 2 * 1.5" }, "wall_0_inset": { "value": "0" }, "initial_layer_line_width_factor": { "value": "120" }, diff --git a/resources/definitions/ultimaker_s5.def.json b/resources/definitions/ultimaker_s5.def.json index eee4bf2346..9eb00e6155 100644 --- a/resources/definitions/ultimaker_s5.def.json +++ b/resources/definitions/ultimaker_s5.def.json @@ -135,7 +135,6 @@ "switch_extruder_prime_speed": { "value": "15" }, "switch_extruder_retraction_amount": { "value": "8" }, "top_bottom_thickness": { "value": "1" }, - "travel_avoid_supports": { "value": "True" }, "travel_avoid_distance": { "value": "3 if extruders_enabled_count > 1 else machine_nozzle_tip_outer_diameter / 2 * 1.5" }, "wall_0_inset": { "value": "0" }, "optimize_wall_printing_order": { "value": "True" }, From 6fed6b824c104deb722bc430a8073d69acd76e09 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 30 Aug 2022 15:48:10 +0200 Subject: [PATCH 53/89] Added stub for AbstractCloudOutputDevice It doesn't actually allow you to send a print, but it does ask some info from the API CURA-8463 --- .../src/Cloud/AbstractCloudOutputDevice.py | 87 +++++++++++++++++++ .../src/Cloud/CloudApiClient.py | 19 +++- .../src/Cloud/CloudOutputDeviceManager.py | 55 +++++++++--- .../src/Models/Http/CloudClusterResponse.py | 1 - 4 files changed, 146 insertions(+), 16 deletions(-) create mode 100644 plugins/UM3NetworkPrinting/src/Cloud/AbstractCloudOutputDevice.py diff --git a/plugins/UM3NetworkPrinting/src/Cloud/AbstractCloudOutputDevice.py b/plugins/UM3NetworkPrinting/src/Cloud/AbstractCloudOutputDevice.py new file mode 100644 index 0000000000..566eae2ed9 --- /dev/null +++ b/plugins/UM3NetworkPrinting/src/Cloud/AbstractCloudOutputDevice.py @@ -0,0 +1,87 @@ +from time import time +from typing import List + +from PyQt6.QtCore import QObject +from PyQt6.QtNetwork import QNetworkReply + +from UM import i18nCatalog +from UM.Logger import Logger +from cura.PrinterOutput.NetworkedPrinterOutputDevice import AuthState +from cura.PrinterOutput.PrinterOutputDevice import ConnectionType +from .CloudApiClient import CloudApiClient +from ..Models.Http.CloudClusterResponse import CloudClusterResponse +from ..UltimakerNetworkedPrinterOutputDevice import UltimakerNetworkedPrinterOutputDevice + +I18N_CATALOG = i18nCatalog("cura") + + +class AbstractCloudOutputDevice(UltimakerNetworkedPrinterOutputDevice): + API_CHECK_INTERVAL = 10.0 # seconds + + def __init__(self, api_client: CloudApiClient, printer_type: str, parent: QObject = None) -> None: + + self._api = api_client + properties = { + #b"address": cluster.host_internal_ip.encode() if cluster.host_internal_ip else b"", + # b"name": cluster.friendly_name.encode() if cluster.friendly_name else b"", + ##b"firmware_version": cluster.host_version.encode() if cluster.host_version else b"", + b"printer_type": printer_type.encode() + #b"cluster_size": str(cluster.printer_count).encode() if cluster.printer_count else b"1" + } + super().__init__( + device_id=f"ABSTRACT_{printer_type}", + address="", + connection_type=ConnectionType.CloudConnection, + properties=properties, + parent=parent + ) + + print("CREATING ABSTRACT CLOUD OUTPUT DEVIIICEEEEEE") + self._setInterfaceElements() + + def connect(self) -> None: + """Connects this device.""" + + if self.isConnected(): + return + Logger.log("i", "Attempting to connect AbstractCloudOutputDevice %s", self.key) + super().connect() + + #CuraApplication.getInstance().getBackend().backendStateChange.connect(self._onBackendStateChange) + self._update() + + def disconnect(self) -> None: + """Disconnects the device""" + + if not self.isConnected(): + return + super().disconnect() + + def _update(self) -> None: + """Called when the network data should be updated.""" + + super()._update() + if time() - self._time_of_last_request < self.API_CHECK_INTERVAL: + return # avoid calling the cloud too often + self._time_of_last_request = time() + if self._api.account.isLoggedIn: + self.setAuthenticationState(AuthState.Authenticated) + self._last_request_time = time() + self._api.getClustersByMachineType(self.printerType, self._onCompleted, self._onError) + else: + self.setAuthenticationState(AuthState.NotAuthenticated) + + def _setInterfaceElements(self) -> None: + """Set all the interface elements and texts for this output device.""" + + self.setPriority(2) # Make sure we end up below the local networking and above 'save to file'. + self.setShortDescription(I18N_CATALOG.i18nc("@action:button", "Print via cloud")) + self.setDescription(I18N_CATALOG.i18nc("@properties:tooltip", "Print via cloud")) + self.setConnectionText(I18N_CATALOG.i18nc("@info:status", "Connected via cloud")) + + def _onCompleted(self, clusters: List[CloudClusterResponse]) -> None: + self._responseReceived() + # Todo: actually handle the data that we get back! + + def _onError(self, reply: QNetworkReply, error: QNetworkReply.NetworkError) -> None: + pass diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudApiClient.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudApiClient.py index 80029414d9..89f9e9d449 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudApiClient.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudApiClient.py @@ -61,7 +61,6 @@ class CloudApiClient: @property def account(self) -> Account: """Gets the account used for the API.""" - return self._account def getClusters(self, on_finished: Callable[[List[CloudClusterResponse]], Any], failed: Callable) -> None: @@ -77,6 +76,24 @@ class CloudApiClient: error_callback = failed, timeout = self.DEFAULT_REQUEST_TIMEOUT) + def getClustersByMachineType(self, machine_type, on_finished: Callable[[List[CloudClusterResponse]], Any], failed: Callable) -> None: + # HACK: There is something weird going on with the API, as it reports printer types in formats like + # "ultimaker_s3", but wants "Ultimaker S3" when using the machine_variant filter query. So we need to do some + # conversion! + + machine_type = machine_type.replace("_plus", "+") + machine_type = machine_type.replace("_", " ") + machine_type = machine_type.replace("ultimaker", "ultimaker ") + machine_type = machine_type.replace(" ", " ") + machine_type = machine_type.title() + + url = f"{self.CLUSTER_API_ROOT}/clusters?machine_variant={machine_type}" + self._http.get(url, + scope=self._scope, + callback=self._parseCallback(on_finished, CloudClusterResponse, failed), + error_callback=failed, + timeout=self.DEFAULT_REQUEST_TIMEOUT) + def getClusterStatus(self, cluster_id: str, on_finished: Callable[[CloudClusterStatus], Any]) -> None: """Retrieves the status of the given cluster. diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py index d7f67498f3..846ef0a8ec 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py @@ -19,6 +19,7 @@ from cura.Settings.CuraContainerRegistry import CuraContainerRegistry # To upda from cura.Settings.CuraStackBuilder import CuraStackBuilder from cura.Settings.GlobalStack import GlobalStack from cura.UltimakerCloud.UltimakerCloudConstants import META_CAPABILITIES, META_UM_LINKED_TO_ACCOUNT +from .AbstractCloudOutputDevice import AbstractCloudOutputDevice from .CloudApiClient import CloudApiClient from .CloudOutputDevice import CloudOutputDevice from ..Messages.RemovedPrintersMessage import RemovedPrintersMessage @@ -49,6 +50,8 @@ class CloudOutputDeviceManager: # Persistent dict containing the remote clusters for the authenticated user. self._remote_clusters: Dict[str, CloudOutputDevice] = {} + self._abstract_clusters: Dict[str, AbstractCloudOutputDevice] = {} + # Dictionary containing all the cloud printers loaded in Cura self._um_cloud_printers: Dict[str, GlobalStack] = {} @@ -189,6 +192,10 @@ class CloudOutputDeviceManager: for cluster_data in discovered_clusters: output_device = CloudOutputDevice(self._api, cluster_data) + + if cluster_data.printer_type not in self._abstract_clusters: + self._abstract_clusters[cluster_data.printer_type] = AbstractCloudOutputDevice(self._api, cluster_data.printer_type) + # If the machine already existed before, it will be present in the host_guid_map if cluster_data.host_guid in host_guid_map: machine = machine_manager.getMachine(output_device.printerType, {self.META_HOST_GUID: cluster_data.host_guid}) @@ -373,22 +380,33 @@ class CloudOutputDeviceManager: if not active_machine: return + # Check if we should directly connect with a "normal" CloudOutputDevice or that we should connect to an + # 'abstract' one output_device_manager = CuraApplication.getInstance().getOutputDeviceManager() - stored_cluster_id = active_machine.getMetaDataEntry(self.META_CLUSTER_ID) - local_network_key = active_machine.getMetaDataEntry(self.META_NETWORK_KEY) + if active_machine.getMetaDataEntry("is_abstract_machine") != "True": + stored_cluster_id = active_machine.getMetaDataEntry(self.META_CLUSTER_ID) + local_network_key = active_machine.getMetaDataEntry(self.META_NETWORK_KEY) - # Copy of the device list, to prevent modifying the list while iterating, if a device gets added asynchronously. - remote_cluster_copy: List[CloudOutputDevice] = list(self._remote_clusters.values()) - for device in remote_cluster_copy: - if device.key == stored_cluster_id: - # Connect to it if the stored ID matches. - self._connectToOutputDevice(device, active_machine) - elif local_network_key and device.matchesNetworkKey(local_network_key): - # Connect to it if we can match the local network key that was already present. - self._connectToOutputDevice(device, active_machine) - elif device.key in output_device_manager.getOutputDeviceIds(): - # Remove device if it is not meant for the active machine. - output_device_manager.removeOutputDevice(device.key) + # Copy of the device list, to prevent modifying the list while iterating, if a device gets added asynchronously. + remote_cluster_copy: List[CloudOutputDevice] = list(self._remote_clusters.values()) + for device in remote_cluster_copy: + if device.key == stored_cluster_id: + # Connect to it if the stored ID matches. + self._connectToOutputDevice(device, active_machine) + elif local_network_key and device.matchesNetworkKey(local_network_key): + # Connect to it if we can match the local network key that was already present. + self._connectToOutputDevice(device, active_machine) + elif device.key in output_device_manager.getOutputDeviceIds(): + # Remove device if it is not meant for the active machine. + output_device_manager.removeOutputDevice(device.key) + else: # Abstract it is! + remote_abstract_cluster_copy: List[CloudOutputDevice] = list(self._abstract_clusters.values()) + for device in remote_abstract_cluster_copy: + if device.printerType == active_machine.definition.getId(): + print("Found the device to activate", device) + self._connectToAbstractOutputDevice(device, active_machine) + else: + output_device_manager.removeOutputDevice(device.key) def _setOutputDeviceMetadata(self, device: CloudOutputDevice, machine: GlobalStack): machine.setName(device.name) @@ -405,6 +423,15 @@ class CloudOutputDeviceManager: machine.setMetaDataEntry("removal_warning", removal_warning_string) machine.addConfiguredConnectionType(device.connectionType.value) + def _connectToAbstractOutputDevice(self, device: AbstractCloudOutputDevice, machine: GlobalStack) -> None: + if not device.isConnected(): + device.connect() + machine.addConfiguredConnectionType(device.connectionType.value) + + output_device_manager = CuraApplication.getInstance().getOutputDeviceManager() + if device.key not in output_device_manager.getOutputDeviceIds(): + output_device_manager.addOutputDevice(device) + def _connectToOutputDevice(self, device: CloudOutputDevice, machine: GlobalStack) -> None: """Connects to an output device and makes sure it is registered in the output device manager.""" diff --git a/plugins/UM3NetworkPrinting/src/Models/Http/CloudClusterResponse.py b/plugins/UM3NetworkPrinting/src/Models/Http/CloudClusterResponse.py index ce6dd1de4d..c8f3be282e 100644 --- a/plugins/UM3NetworkPrinting/src/Models/Http/CloudClusterResponse.py +++ b/plugins/UM3NetworkPrinting/src/Models/Http/CloudClusterResponse.py @@ -8,7 +8,6 @@ from ..BaseModel import BaseModel class CloudClusterResponse(BaseModel): """Class representing a cloud connected cluster.""" - def __init__(self, cluster_id: str, host_guid: str, host_name: str, is_online: bool, status: str, host_internal_ip: Optional[str] = None, host_version: Optional[str] = None, friendly_name: Optional[str] = None, printer_type: str = "ultimaker3", printer_count: int = 1, From e2ba110cf7afbf3cd89204efda84ea78d0ce8fe2 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 30 Aug 2022 16:33:29 +0200 Subject: [PATCH 54/89] Ensure that all material configs are added to the list CURA-8463 --- .../src/Cloud/AbstractCloudOutputDevice.py | 12 +++++++++--- .../UM3NetworkPrinting/src/Cloud/CloudApiClient.py | 5 +++-- .../src/Cloud/CloudOutputDeviceManager.py | 1 - .../Models/Http/CloudClusterWithConfigResponse.py | 14 ++++++++++++++ 4 files changed, 26 insertions(+), 6 deletions(-) create mode 100644 plugins/UM3NetworkPrinting/src/Models/Http/CloudClusterWithConfigResponse.py diff --git a/plugins/UM3NetworkPrinting/src/Cloud/AbstractCloudOutputDevice.py b/plugins/UM3NetworkPrinting/src/Cloud/AbstractCloudOutputDevice.py index 566eae2ed9..bfda093d2e 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/AbstractCloudOutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/AbstractCloudOutputDevice.py @@ -10,6 +10,7 @@ from cura.PrinterOutput.NetworkedPrinterOutputDevice import AuthState from cura.PrinterOutput.PrinterOutputDevice import ConnectionType from .CloudApiClient import CloudApiClient from ..Models.Http.CloudClusterResponse import CloudClusterResponse +from ..Models.Http.CloudClusterWithConfigResponse import CloudClusterWithConfigResponse from ..UltimakerNetworkedPrinterOutputDevice import UltimakerNetworkedPrinterOutputDevice I18N_CATALOG = i18nCatalog("cura") @@ -36,7 +37,6 @@ class AbstractCloudOutputDevice(UltimakerNetworkedPrinterOutputDevice): parent=parent ) - print("CREATING ABSTRACT CLOUD OUTPUT DEVIIICEEEEEE") self._setInterfaceElements() def connect(self) -> None: @@ -79,9 +79,15 @@ class AbstractCloudOutputDevice(UltimakerNetworkedPrinterOutputDevice): self.setDescription(I18N_CATALOG.i18nc("@properties:tooltip", "Print via cloud")) self.setConnectionText(I18N_CATALOG.i18nc("@info:status", "Connected via cloud")) - def _onCompleted(self, clusters: List[CloudClusterResponse]) -> None: + def _onCompleted(self, clusters: List[CloudClusterWithConfigResponse]) -> None: self._responseReceived() - # Todo: actually handle the data that we get back! + + all_configurations = [] + for resp in clusters: + if resp.configuration is not None: + # Usually when the printer is offline, it doesn't have a configuration... + all_configurations.append(resp.configuration) + self._updatePrinters(all_configurations) def _onError(self, reply: QNetworkReply, error: QNetworkReply.NetworkError) -> None: pass diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudApiClient.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudApiClient.py index 89f9e9d449..fbeef51f55 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudApiClient.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudApiClient.py @@ -17,6 +17,7 @@ from cura.UltimakerCloud import UltimakerCloudConstants from cura.UltimakerCloud.UltimakerCloudScope import UltimakerCloudScope from .ToolPathUploader import ToolPathUploader from ..Models.BaseModel import BaseModel +from ..Models.Http.CloudClusterWithConfigResponse import CloudClusterWithConfigResponse from ..Models.Http.CloudClusterResponse import CloudClusterResponse from ..Models.Http.CloudClusterStatus import CloudClusterStatus from ..Models.Http.CloudError import CloudError @@ -76,7 +77,7 @@ class CloudApiClient: error_callback = failed, timeout = self.DEFAULT_REQUEST_TIMEOUT) - def getClustersByMachineType(self, machine_type, on_finished: Callable[[List[CloudClusterResponse]], Any], failed: Callable) -> None: + def getClustersByMachineType(self, machine_type, on_finished: Callable[[List[CloudClusterWithConfigResponse]], Any], failed: Callable) -> None: # HACK: There is something weird going on with the API, as it reports printer types in formats like # "ultimaker_s3", but wants "Ultimaker S3" when using the machine_variant filter query. So we need to do some # conversion! @@ -90,7 +91,7 @@ class CloudApiClient: url = f"{self.CLUSTER_API_ROOT}/clusters?machine_variant={machine_type}" self._http.get(url, scope=self._scope, - callback=self._parseCallback(on_finished, CloudClusterResponse, failed), + callback=self._parseCallback(on_finished, CloudClusterWithConfigResponse, failed), error_callback=failed, timeout=self.DEFAULT_REQUEST_TIMEOUT) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py index 846ef0a8ec..a905cc8791 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py @@ -403,7 +403,6 @@ class CloudOutputDeviceManager: remote_abstract_cluster_copy: List[CloudOutputDevice] = list(self._abstract_clusters.values()) for device in remote_abstract_cluster_copy: if device.printerType == active_machine.definition.getId(): - print("Found the device to activate", device) self._connectToAbstractOutputDevice(device, active_machine) else: output_device_manager.removeOutputDevice(device.key) diff --git a/plugins/UM3NetworkPrinting/src/Models/Http/CloudClusterWithConfigResponse.py b/plugins/UM3NetworkPrinting/src/Models/Http/CloudClusterWithConfigResponse.py new file mode 100644 index 0000000000..eb6389910c --- /dev/null +++ b/plugins/UM3NetworkPrinting/src/Models/Http/CloudClusterWithConfigResponse.py @@ -0,0 +1,14 @@ +# Copyright (c) 2019 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. +from typing import Optional, List + +from .CloudClusterResponse import CloudClusterResponse +from .ClusterPrinterStatus import ClusterPrinterStatus + + +class CloudClusterWithConfigResponse(CloudClusterResponse): + """Class representing a cloud connected cluster.""" + + def __init__(self, **kwargs) -> None: + self.configuration = self.parseModel(ClusterPrinterStatus, kwargs.get("host_printer")) + super().__init__(**kwargs) From feadbf04da2c6a4e5c75fdd140ad92ecc1c372bb Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 30 Aug 2022 16:42:15 +0200 Subject: [PATCH 55/89] Fix status request for Ultimaker 2+ Connect CURA-8463 --- plugins/UM3NetworkPrinting/src/Cloud/CloudApiClient.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudApiClient.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudApiClient.py index fbeef51f55..d496435188 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudApiClient.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudApiClient.py @@ -1,6 +1,7 @@ # Copyright (c) 2019 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. import json +import urllib.parse from json import JSONDecodeError from time import time from typing import Callable, List, Type, TypeVar, Union, Optional, Tuple, Dict, Any, cast @@ -87,7 +88,7 @@ class CloudApiClient: machine_type = machine_type.replace("ultimaker", "ultimaker ") machine_type = machine_type.replace(" ", " ") machine_type = machine_type.title() - + machine_type = urllib.parse.quote_plus(machine_type) url = f"{self.CLUSTER_API_ROOT}/clusters?machine_variant={machine_type}" self._http.get(url, scope=self._scope, From 7ab16e078c15c2697fd18c48192a70b367fab3a3 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Tue, 30 Aug 2022 16:45:34 +0200 Subject: [PATCH 56/89] Speared spurious space. done as part of CURA-9221 --- .../src/Messages/PrintJobAwaitingApprovalMessage.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/src/Messages/PrintJobAwaitingApprovalMessage.py b/plugins/UM3NetworkPrinting/src/Messages/PrintJobAwaitingApprovalMessage.py index 03691d5c6f..c60d596da9 100644 --- a/plugins/UM3NetworkPrinting/src/Messages/PrintJobAwaitingApprovalMessage.py +++ b/plugins/UM3NetworkPrinting/src/Messages/PrintJobAwaitingApprovalMessage.py @@ -13,7 +13,7 @@ I18N_CATALOG = i18nCatalog("cura") class PrintJobPendingApprovalMessage(Message): """Message shown when waiting for approval on an uploaded print job.""" - def __init__(self, cluster_id: str) -> None: + def __init__(self, cluster_id: str) -> None: super().__init__( text = I18N_CATALOG.i18nc("@info:status", "You will receive a confirmation via email when the print job is approved"), title=I18N_CATALOG.i18nc("@info:title", "The print job was successfully submitted"), From ac732e960483b74d7e62dc919f49ab3b6c708286 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Tue, 30 Aug 2022 23:15:54 +0200 Subject: [PATCH 57/89] Add button to hide/show connected printers CURA-9514 --- cura/Machines/Models/MachineListModel.py | 19 ++++++++- .../PrinterSelector/MachineSelectorList.qml | 40 ++++++++++++++++--- 2 files changed, 51 insertions(+), 8 deletions(-) diff --git a/cura/Machines/Models/MachineListModel.py b/cura/Machines/Models/MachineListModel.py index 6814600307..9b1ffd16c6 100644 --- a/cura/Machines/Models/MachineListModel.py +++ b/cura/Machines/Models/MachineListModel.py @@ -5,7 +5,7 @@ # online cloud connected printers are represented within this ListModel. Additional information such as the number of # connected printers for each printer type is gathered. -from PyQt6.QtCore import Qt, QTimer +from PyQt6.QtCore import Qt, QTimer, pyqtSlot, pyqtProperty, pyqtSignal from UM.Qt.ListModel import ListModel from UM.Settings.ContainerStack import ContainerStack @@ -29,6 +29,8 @@ class MachineListModel(ListModel): def __init__(self, parent=None) -> None: super().__init__(parent) + self._show_cloud_printers = True + self._catalog = i18nCatalog("cura") self.addRoleName(self.NameRole, "name") @@ -50,6 +52,18 @@ class MachineListModel(ListModel): CuraContainerRegistry.getInstance().containerRemoved.connect(self._onContainerChanged) self._updateDelayed() + showCloutPrintersChanged = pyqtSignal(bool) + + @pyqtProperty(bool, notify=showCloutPrintersChanged) + def showCloudPrinters(self) -> bool: + return self._show_cloud_printers + + @pyqtSlot(bool, name="setShowCloudPrinters") + def set_show_cloud_printers(self, show_cloud_printers: bool) -> None: + self._show_cloud_printers = show_cloud_printers + self._updateDelayed() + self.showCloutPrintersChanged.emit(show_cloud_printers) + def _onContainerChanged(self, container) -> None: """Handler for container added/removed events from registry""" @@ -80,7 +94,8 @@ class MachineListModel(ListModel): # Create list of machines that are children of the abstract machine for stack in online_machine_stacks: - self.addItem(stack) + if self._show_cloud_printers: + self.addItem(stack) # Remove this machine from the other stack list other_machine_stacks.remove(stack) diff --git a/resources/qml/PrinterSelector/MachineSelectorList.qml b/resources/qml/PrinterSelector/MachineSelectorList.qml index 06c2fdb40c..6c5124969a 100644 --- a/resources/qml/PrinterSelector/MachineSelectorList.qml +++ b/resources/qml/PrinterSelector/MachineSelectorList.qml @@ -19,14 +19,42 @@ ListView id: scrollBar } - section.delegate: UM.Label + section.delegate: Item { - text: section == "true" ? catalog.i18nc("@label", "Connected printers") : catalog.i18nc("@label", "Other printers") width: parent.width - scrollBar.width - height: UM.Theme.getSize("action_button").height - leftPadding: UM.Theme.getSize("default_margin").width - font: UM.Theme.getFont("medium") - color: UM.Theme.getColor("text_medium") + height: childrenRect.height + + UM.Label + { + visible: section == "true" + text: catalog.i18nc("@label", "Connected printers") + height: UM.Theme.getSize("action_button").height + leftPadding: UM.Theme.getSize("default_margin").width + font: UM.Theme.getFont("medium") + color: UM.Theme.getColor("text_medium") + } + + Column + { + visible: section != "true" + height: childrenRect.height + + Cura.TertiaryButton + { + text: listView.model.showCloudPrinters ? catalog.i18nc("@label", "Hide all connected printers") : catalog.i18nc("@label", "Show all connected printers") + onClicked: listView.model.setShowCloudPrinters(!listView.model.showCloudPrinters) + iconSource: listView.model.showCloudPrinters ? UM.Theme.getIcon("ChevronSingleUp") : UM.Theme.getIcon("ChevronSingleDown") + } + + UM.Label + { + text: catalog.i18nc("@label", "Other printers") + height: UM.Theme.getSize("action_button").height + leftPadding: UM.Theme.getSize("default_margin").width + font: UM.Theme.getFont("medium") + color: UM.Theme.getColor("text_medium") + } + } } delegate: MachineListButton From 60b12b9247676de84248d35a1db81a3d45b75a07 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Wed, 31 Aug 2022 07:58:05 +0200 Subject: [PATCH 58/89] Use list model to display show hide buttons CURA-9514 --- cura/Machines/Models/MachineListModel.py | 16 +- .../qml/PrinterSelector/MachineListButton.qml | 189 +++++++++++------- .../PrinterSelector/MachineSelectorList.qml | 58 ++---- 3 files changed, 156 insertions(+), 107 deletions(-) diff --git a/cura/Machines/Models/MachineListModel.py b/cura/Machines/Models/MachineListModel.py index 9b1ffd16c6..2225e014e8 100644 --- a/cura/Machines/Models/MachineListModel.py +++ b/cura/Machines/Models/MachineListModel.py @@ -25,6 +25,7 @@ class MachineListModel(ListModel): IsOnlineRole = Qt.ItemDataRole.UserRole + 5 MachineCountRole = Qt.ItemDataRole.UserRole + 6 IsAbstractMachine = Qt.ItemDataRole.UserRole + 7 + ListTypeRole = Qt.ItemDataRole.UserRole + 8 def __init__(self, parent=None) -> None: super().__init__(parent) @@ -40,6 +41,7 @@ class MachineListModel(ListModel): self.addRoleName(self.IsOnlineRole, "isOnline") self.addRoleName(self.MachineCountRole, "machineCount") self.addRoleName(self.IsAbstractMachine, "isAbstractMachine") + self.addRoleName(self.ListTypeRole, "listType") self._change_timer = QTimer() self._change_timer.setInterval(200) @@ -99,6 +101,16 @@ class MachineListModel(ListModel): # Remove this machine from the other stack list other_machine_stacks.remove(stack) + if len(abstract_machine_stacks) > 0: + if self._show_cloud_printers: + self.appendItem({ "listType": "HIDE_BUTTON", + "isOnline": True, + }) + else: + self.appendItem({ "listType": "SHOW_BUTTON", + "isOnline": True, + }) + for stack in other_machine_stacks: self.addItem(stack) @@ -113,7 +125,9 @@ class MachineListModel(ListModel): for connection_type in [ConnectionType.NetworkConnection.value, ConnectionType.CloudConnection.value]: has_connection |= connection_type in container_stack.configuredConnectionTypes - self.appendItem({"name": container_stack.getName(), + self.appendItem({ + "listType": "MACHINE", + "name": container_stack.getName(), "id": container_stack.getId(), "metadata": container_stack.getMetaData().copy(), "isOnline": parseBool(container_stack.getMetaDataEntry("is_online", False)) and has_connection, diff --git a/resources/qml/PrinterSelector/MachineListButton.qml b/resources/qml/PrinterSelector/MachineListButton.qml index 55ae5497d9..039c9c054b 100644 --- a/resources/qml/PrinterSelector/MachineListButton.qml +++ b/resources/qml/PrinterSelector/MachineListButton.qml @@ -7,81 +7,134 @@ import QtQuick.Controls 2.3 import UM 1.5 as UM import Cura 1.0 as Cura - -Button -{ - id: machineListButton - +Loader { + id: loader width: parent.width - height: UM.Theme.getSize("large_button").height - leftPadding: UM.Theme.getSize("default_margin").width - rightPadding: UM.Theme.getSize("default_margin").width - checkable: true - hoverEnabled: true + height: childrenRect.height + sourceComponent: { + switch (model.listType) { + case "HIDE_BUTTON": + hideButtonComponent + break; + case "SHOW_BUTTON": + showButtonComponent + break; + case "MACHINE": + machineListButtonComponent + break; + default: + } + } + property var onClicked - contentItem: Item + Component { - width: machineListButton.width - machineListButton.leftPadding - machineListButton.rightPadding - height: UM.Theme.getSize("action_button").height - - UM.ColorImage + id: hideButtonComponent + Cura.TertiaryButton { - id: printerIcon - height: UM.Theme.getSize("medium_button").height - width: UM.Theme.getSize("medium_button").width - color: UM.Theme.getColor("machine_selector_printer_icon") - visible: model.isAbstractMachine || !model.isOnline - source: model.isAbstractMachine ? UM.Theme.getIcon("PrinterTriple", "medium") : UM.Theme.getIcon("Printer", "medium") - - anchors - { - left: parent.left - verticalCenter: parent.verticalCenter - } - } - - UM.Label - { - id: buttonText - anchors - { - left: printerIcon.right - right: printerCount.left - verticalCenter: parent.verticalCenter - leftMargin: UM.Theme.getSize("default_margin").width - } - text: machineListButton.text - font: model.isAbstractMachine ? UM.Theme.getFont("medium_bold") : UM.Theme.getFont("medium") - visible: text != "" - elide: Text.ElideRight - } - - Rectangle - { - id: printerCount - color: UM.Theme.getColor("background_2") - radius: height - width: height - anchors - { - right: parent.right - top: buttonText.top - bottom: buttonText.bottom - } - visible: model.isAbstractMachine - - UM.Label - { - text: model.machineCount - anchors.centerIn: parent - font: UM.Theme.getFont("default_bold") - } + text: catalog.i18nc("@label", "Hide all connected printers") + height: UM.Theme.getSize("large_button").height + onClicked: if (loader.onClicked) loader.onClicked() + iconSource: UM.Theme.getIcon("ChevronSingleUp") + width: parent.width } } - background: Rectangle + Component { - id: backgroundRect - color: machineListButton.hovered ? UM.Theme.getColor("action_button_hovered") : "transparent" + id: showButtonComponent + Cura.TertiaryButton + { + text: catalog.i18nc("@label", "Show all connected printers") + height: UM.Theme.getSize("large_button").height + onClicked: if (loader.onClicked) loader.onClicked() + iconSource: UM.Theme.getIcon("ChevronSingleDown") + width: parent.width + } + } + + Component + { + id: machineListButtonComponent + + Button + { + id: machineListButton + + onClicked: if (loader.onClicked) loader.onClicked() + + width: parent.width + height: UM.Theme.getSize("large_button").height + leftPadding: UM.Theme.getSize("default_margin").width + rightPadding: UM.Theme.getSize("default_margin").width + checkable: true + hoverEnabled: true + + contentItem: Item + { + width: machineListButton.width - machineListButton.leftPadding - machineListButton.rightPadding + height: UM.Theme.getSize("action_button").height + + UM.ColorImage + { + id: printerIcon + height: UM.Theme.getSize("medium_button").height + width: UM.Theme.getSize("medium_button").width + color: UM.Theme.getColor("machine_selector_printer_icon") + visible: model.isAbstractMachine || !model.isOnline + source: model.isAbstractMachine ? UM.Theme.getIcon("PrinterTriple", "medium") : UM.Theme.getIcon("Printer", "medium") + + anchors + { + left: parent.left + verticalCenter: parent.verticalCenter + } + } + + UM.Label + { + id: buttonText + anchors + { + left: printerIcon.right + right: printerCount.left + verticalCenter: parent.verticalCenter + leftMargin: UM.Theme.getSize("default_margin").width + } + text: model.name ? model.name : "" + font: model.isAbstractMachine ? UM.Theme.getFont("medium_bold") : UM.Theme.getFont("medium") + visible: text != "" + elide: Text.ElideRight + } + + Rectangle + { + id: printerCount + color: UM.Theme.getColor("background_2") + radius: height + width: height + anchors + { + right: parent.right + top: buttonText.top + bottom: buttonText.bottom + } + visible: model.isAbstractMachine + + UM.Label + { + text: model.machineCount + anchors.centerIn: parent + font: UM.Theme.getFont("default_bold") + } + } + } + + background: Rectangle + { + id: backgroundRect + color: machineListButton.hovered ? UM.Theme.getColor("action_button_hovered") : "transparent" + } + } } } diff --git a/resources/qml/PrinterSelector/MachineSelectorList.qml b/resources/qml/PrinterSelector/MachineSelectorList.qml index 6c5124969a..d4a4c4a5ce 100644 --- a/resources/qml/PrinterSelector/MachineSelectorList.qml +++ b/resources/qml/PrinterSelector/MachineSelectorList.qml @@ -19,53 +19,35 @@ ListView id: scrollBar } - section.delegate: Item + section.delegate: UM.Label { + text: section == "true" ? catalog.i18nc("@label", "Connected printers") : catalog.i18nc("@label", "Other printers") + height: UM.Theme.getSize("action_button").height width: parent.width - scrollBar.width - height: childrenRect.height - - UM.Label - { - visible: section == "true" - text: catalog.i18nc("@label", "Connected printers") - height: UM.Theme.getSize("action_button").height - leftPadding: UM.Theme.getSize("default_margin").width - font: UM.Theme.getFont("medium") - color: UM.Theme.getColor("text_medium") - } - - Column - { - visible: section != "true" - height: childrenRect.height - - Cura.TertiaryButton - { - text: listView.model.showCloudPrinters ? catalog.i18nc("@label", "Hide all connected printers") : catalog.i18nc("@label", "Show all connected printers") - onClicked: listView.model.setShowCloudPrinters(!listView.model.showCloudPrinters) - iconSource: listView.model.showCloudPrinters ? UM.Theme.getIcon("ChevronSingleUp") : UM.Theme.getIcon("ChevronSingleDown") - } - - UM.Label - { - text: catalog.i18nc("@label", "Other printers") - height: UM.Theme.getSize("action_button").height - leftPadding: UM.Theme.getSize("default_margin").width - font: UM.Theme.getFont("medium") - color: UM.Theme.getColor("text_medium") - } - } + leftPadding: UM.Theme.getSize("default_margin").width + font: UM.Theme.getFont("medium") + color: UM.Theme.getColor("text_medium") } delegate: MachineListButton { - text: model.name ? model.name : "" width: listView.width - scrollBar.width - onClicked: + onClicked: function() { - toggleContent() - Cura.MachineManager.setActiveMachine(model.id) + switch (model.listType) { + case "HIDE_BUTTON": + listView.model.setShowCloudPrinters(false); + break; + case "SHOW_BUTTON": + listView.model.setShowCloudPrinters(true); + break; + case "MACHINE": + toggleContent() + Cura.MachineManager.setActiveMachine(model.id) + break; + default: + } } } } From aa1c09591f3e7d7c696f9dc3f809f66a6a90262d Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Wed, 31 Aug 2022 08:15:13 +0200 Subject: [PATCH 59/89] Typo CURA-9514 --- cura/Machines/Models/MachineListModel.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cura/Machines/Models/MachineListModel.py b/cura/Machines/Models/MachineListModel.py index 2225e014e8..8637801657 100644 --- a/cura/Machines/Models/MachineListModel.py +++ b/cura/Machines/Models/MachineListModel.py @@ -54,9 +54,9 @@ class MachineListModel(ListModel): CuraContainerRegistry.getInstance().containerRemoved.connect(self._onContainerChanged) self._updateDelayed() - showCloutPrintersChanged = pyqtSignal(bool) + showCloudPrintersChanged = pyqtSignal(bool) - @pyqtProperty(bool, notify=showCloutPrintersChanged) + @pyqtProperty(bool, notify=showCloudPrintersChanged) def showCloudPrinters(self) -> bool: return self._show_cloud_printers @@ -64,7 +64,7 @@ class MachineListModel(ListModel): def set_show_cloud_printers(self, show_cloud_printers: bool) -> None: self._show_cloud_printers = show_cloud_printers self._updateDelayed() - self.showCloutPrintersChanged.emit(show_cloud_printers) + self.showCloudPrintersChanged.emit(show_cloud_printers) def _onContainerChanged(self, container) -> None: """Handler for container added/removed events from registry""" From daab1aae713fb4d060512fa72f37d3714b2c7e36 Mon Sep 17 00:00:00 2001 From: joeydelarago Date: Wed, 31 Aug 2022 10:05:41 +0200 Subject: [PATCH 60/89] QML was attempting to fetch variables that were emtpy. Using self.clear() properly removed unused items when the list is resized to be smaller. Also add some dummy variables inside cloud printer expand and contract buttons. CURA-9514 --- cura/Machines/Models/MachineListModel.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/cura/Machines/Models/MachineListModel.py b/cura/Machines/Models/MachineListModel.py index 8637801657..66def23a32 100644 --- a/cura/Machines/Models/MachineListModel.py +++ b/cura/Machines/Models/MachineListModel.py @@ -77,7 +77,7 @@ class MachineListModel(ListModel): self._change_timer.start() def _update(self) -> None: - self.setItems([]) # Clear items + self.clear() other_machine_stacks = CuraContainerRegistry.getInstance().findContainerStacks(type="machine") @@ -105,14 +105,19 @@ class MachineListModel(ListModel): if self._show_cloud_printers: self.appendItem({ "listType": "HIDE_BUTTON", "isOnline": True, + "isAbstractMachine": False, + "machineCount": 0 }) else: - self.appendItem({ "listType": "SHOW_BUTTON", + self.appendItem({"listType": "SHOW_BUTTON", "isOnline": True, + "isAbstractMachine": False, + "machineCount": 0 }) for stack in other_machine_stacks: self.addItem(stack) + print(self.items) def addItem(self, container_stack: ContainerStack, machine_count: int = 0) -> None: if parseBool(container_stack.getMetaDataEntry("hidden", False)): From dd5981d85e4b9ac3580c6164e731fc76fcc5ce6b Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 31 Aug 2022 10:09:47 +0200 Subject: [PATCH 61/89] Only remove abstract output device if it's actually added CURA-8463 --- .../UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py index a905cc8791..1105a8b356 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py @@ -404,7 +404,7 @@ class CloudOutputDeviceManager: for device in remote_abstract_cluster_copy: if device.printerType == active_machine.definition.getId(): self._connectToAbstractOutputDevice(device, active_machine) - else: + elif device.key in output_device_manager.getOutputDeviceIds(): output_device_manager.removeOutputDevice(device.key) def _setOutputDeviceMetadata(self, device: CloudOutputDevice, machine: GlobalStack): @@ -423,6 +423,7 @@ class CloudOutputDeviceManager: machine.addConfiguredConnectionType(device.connectionType.value) def _connectToAbstractOutputDevice(self, device: AbstractCloudOutputDevice, machine: GlobalStack) -> None: + Logger.debug(f"Attempting to connect to abstract machine {machine.id}") if not device.isConnected(): device.connect() machine.addConfiguredConnectionType(device.connectionType.value) From 760e53c401e7fc9af2536a5ccd1c41a7af4566a2 Mon Sep 17 00:00:00 2001 From: joeydelarago Date: Wed, 31 Aug 2022 10:19:02 +0200 Subject: [PATCH 62/89] Fix indentation Remove debug statement CURA-9514 --- cura/Machines/Models/MachineListModel.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/cura/Machines/Models/MachineListModel.py b/cura/Machines/Models/MachineListModel.py index 66def23a32..82272ca39b 100644 --- a/cura/Machines/Models/MachineListModel.py +++ b/cura/Machines/Models/MachineListModel.py @@ -103,21 +103,20 @@ class MachineListModel(ListModel): if len(abstract_machine_stacks) > 0: if self._show_cloud_printers: - self.appendItem({ "listType": "HIDE_BUTTON", - "isOnline": True, - "isAbstractMachine": False, - "machineCount": 0 + self.appendItem({"listType": "HIDE_BUTTON", + "isOnline": True, + "isAbstractMachine": False, + "machineCount": 0 }) else: self.appendItem({"listType": "SHOW_BUTTON", - "isOnline": True, - "isAbstractMachine": False, - "machineCount": 0 + "isOnline": True, + "isAbstractMachine": False, + "machineCount": 0 }) for stack in other_machine_stacks: self.addItem(stack) - print(self.items) def addItem(self, container_stack: ContainerStack, machine_count: int = 0) -> None: if parseBool(container_stack.getMetaDataEntry("hidden", False)): From 9f204f2e43f8a546d417f173b12536cb5ac10f2f Mon Sep 17 00:00:00 2001 From: joeydelarago Date: Wed, 31 Aug 2022 10:20:50 +0200 Subject: [PATCH 63/89] Update isAbstractMachine to match Role name format. CURA-9514 --- cura/Machines/Models/MachineListModel.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cura/Machines/Models/MachineListModel.py b/cura/Machines/Models/MachineListModel.py index 82272ca39b..5f222c82e8 100644 --- a/cura/Machines/Models/MachineListModel.py +++ b/cura/Machines/Models/MachineListModel.py @@ -24,7 +24,7 @@ class MachineListModel(ListModel): MetaDataRole = Qt.ItemDataRole.UserRole + 4 IsOnlineRole = Qt.ItemDataRole.UserRole + 5 MachineCountRole = Qt.ItemDataRole.UserRole + 6 - IsAbstractMachine = Qt.ItemDataRole.UserRole + 7 + IsAbstractMachineRole = Qt.ItemDataRole.UserRole + 7 ListTypeRole = Qt.ItemDataRole.UserRole + 8 def __init__(self, parent=None) -> None: @@ -40,7 +40,7 @@ class MachineListModel(ListModel): self.addRoleName(self.MetaDataRole, "metadata") self.addRoleName(self.IsOnlineRole, "isOnline") self.addRoleName(self.MachineCountRole, "machineCount") - self.addRoleName(self.IsAbstractMachine, "isAbstractMachine") + self.addRoleName(self.IsAbstractMachineRole, "isAbstractMachine") self.addRoleName(self.ListTypeRole, "listType") self._change_timer = QTimer() From 2ff0aed171ba02b603416dcde7d9bb11c96955b5 Mon Sep 17 00:00:00 2001 From: joeydelarago Date: Wed, 31 Aug 2022 10:26:23 +0200 Subject: [PATCH 64/89] Remove height binding loop. CURA-9514 --- resources/qml/PrinterSelector/MachineListButton.qml | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/qml/PrinterSelector/MachineListButton.qml b/resources/qml/PrinterSelector/MachineListButton.qml index 039c9c054b..f492e87574 100644 --- a/resources/qml/PrinterSelector/MachineListButton.qml +++ b/resources/qml/PrinterSelector/MachineListButton.qml @@ -10,7 +10,6 @@ import Cura 1.0 as Cura Loader { id: loader width: parent.width - height: childrenRect.height sourceComponent: { switch (model.listType) { case "HIDE_BUTTON": From b999a88b26f27683c685236ec565a5c8cdb1f8d1 Mon Sep 17 00:00:00 2001 From: joeydelarago Date: Wed, 31 Aug 2022 10:26:57 +0200 Subject: [PATCH 65/89] Update function name to match code style CURA-9514 --- cura/Machines/Models/MachineListModel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/Machines/Models/MachineListModel.py b/cura/Machines/Models/MachineListModel.py index 5f222c82e8..10bc2d13c9 100644 --- a/cura/Machines/Models/MachineListModel.py +++ b/cura/Machines/Models/MachineListModel.py @@ -61,7 +61,7 @@ class MachineListModel(ListModel): return self._show_cloud_printers @pyqtSlot(bool, name="setShowCloudPrinters") - def set_show_cloud_printers(self, show_cloud_printers: bool) -> None: + def setShowCloudPrinters(self, show_cloud_printers: bool) -> None: self._show_cloud_printers = show_cloud_printers self._updateDelayed() self.showCloudPrintersChanged.emit(show_cloud_printers) From 5ff07b00d029a0b6652dc6dcdd2992d162adaae8 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 31 Aug 2022 10:27:52 +0200 Subject: [PATCH 66/89] Fix case where both a "normal" and an "abstract" ouput device could be active CURA-8463 --- .../src/Cloud/CloudOutputDeviceManager.py | 46 +++++++++---------- 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py index 1105a8b356..4082431cd9 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py @@ -64,7 +64,6 @@ class CloudOutputDeviceManager: self._running = False self._syncing = False - CuraApplication.getInstance().getContainerRegistry().containerRemoved.connect(self._printerRemoved) def start(self): @@ -375,7 +374,6 @@ class CloudOutputDeviceManager: def _connectToActiveMachine(self) -> None: """Callback for when the active machine was changed by the user""" - active_machine = CuraApplication.getInstance().getGlobalContainerStack() if not active_machine: return @@ -383,29 +381,29 @@ class CloudOutputDeviceManager: # Check if we should directly connect with a "normal" CloudOutputDevice or that we should connect to an # 'abstract' one output_device_manager = CuraApplication.getInstance().getOutputDeviceManager() - if active_machine.getMetaDataEntry("is_abstract_machine") != "True": - stored_cluster_id = active_machine.getMetaDataEntry(self.META_CLUSTER_ID) - local_network_key = active_machine.getMetaDataEntry(self.META_NETWORK_KEY) + stored_cluster_id = active_machine.getMetaDataEntry(self.META_CLUSTER_ID) + local_network_key = active_machine.getMetaDataEntry(self.META_NETWORK_KEY) - # Copy of the device list, to prevent modifying the list while iterating, if a device gets added asynchronously. - remote_cluster_copy: List[CloudOutputDevice] = list(self._remote_clusters.values()) - for device in remote_cluster_copy: - if device.key == stored_cluster_id: - # Connect to it if the stored ID matches. - self._connectToOutputDevice(device, active_machine) - elif local_network_key and device.matchesNetworkKey(local_network_key): - # Connect to it if we can match the local network key that was already present. - self._connectToOutputDevice(device, active_machine) - elif device.key in output_device_manager.getOutputDeviceIds(): - # Remove device if it is not meant for the active machine. - output_device_manager.removeOutputDevice(device.key) - else: # Abstract it is! - remote_abstract_cluster_copy: List[CloudOutputDevice] = list(self._abstract_clusters.values()) - for device in remote_abstract_cluster_copy: - if device.printerType == active_machine.definition.getId(): - self._connectToAbstractOutputDevice(device, active_machine) - elif device.key in output_device_manager.getOutputDeviceIds(): - output_device_manager.removeOutputDevice(device.key) + # Copy of the device list, to prevent modifying the list while iterating, if a device gets added asynchronously. + remote_cluster_copy: List[CloudOutputDevice] = list(self._remote_clusters.values()) + for device in remote_cluster_copy: + if device.key == stored_cluster_id: + # Connect to it if the stored ID matches. + self._connectToOutputDevice(device, active_machine) + elif local_network_key and device.matchesNetworkKey(local_network_key): + # Connect to it if we can match the local network key that was already present. + self._connectToOutputDevice(device, active_machine) + elif device.key in output_device_manager.getOutputDeviceIds(): + # Remove device if it is not meant for the active machine. + output_device_manager.removeOutputDevice(device.key) + + # Update state of all abstract output devices + remote_abstract_cluster_copy: List[CloudOutputDevice] = list(self._abstract_clusters.values()) + for device in remote_abstract_cluster_copy: + if device.printerType == active_machine.definition.getId() and parseBool(active_machine.getMetaDataEntry("is_abstract_machine", False)): + self._connectToAbstractOutputDevice(device, active_machine) + elif device.key in output_device_manager.getOutputDeviceIds(): + output_device_manager.removeOutputDevice(device.key) def _setOutputDeviceMetadata(self, device: CloudOutputDevice, machine: GlobalStack): machine.setName(device.name) From b9e8bca01298ecc7f1708ea811f2eb6eb929895e Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 31 Aug 2022 10:33:46 +0200 Subject: [PATCH 67/89] Remove commented out properties CURA-8463 --- .../src/Cloud/AbstractCloudOutputDevice.py | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/AbstractCloudOutputDevice.py b/plugins/UM3NetworkPrinting/src/Cloud/AbstractCloudOutputDevice.py index bfda093d2e..8448c095c8 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/AbstractCloudOutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/AbstractCloudOutputDevice.py @@ -22,13 +22,7 @@ class AbstractCloudOutputDevice(UltimakerNetworkedPrinterOutputDevice): def __init__(self, api_client: CloudApiClient, printer_type: str, parent: QObject = None) -> None: self._api = api_client - properties = { - #b"address": cluster.host_internal_ip.encode() if cluster.host_internal_ip else b"", - # b"name": cluster.friendly_name.encode() if cluster.friendly_name else b"", - ##b"firmware_version": cluster.host_version.encode() if cluster.host_version else b"", - b"printer_type": printer_type.encode() - #b"cluster_size": str(cluster.printer_count).encode() if cluster.printer_count else b"1" - } + properties = {b"printer_type": printer_type.encode()} super().__init__( device_id=f"ABSTRACT_{printer_type}", address="", From c3dd70f7c7faf8aaaaa90c9744b358e91e09c5c7 Mon Sep 17 00:00:00 2001 From: Rijk van Manen Date: Wed, 31 Aug 2022 10:37:41 +0200 Subject: [PATCH 68/89] fix incorrect spacing --- resources/definitions/fdmprinter.def.json | 104 +++++++++++----------- 1 file changed, 52 insertions(+), 52 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index c80283ae2e..a55c222b48 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1445,60 +1445,60 @@ "settable_per_mesh": true, "enabled": "top_layers > 0", "children": { - "roofing_line_width": + "roofing_line_width": + { + "label": "Top Surface Skin Line Width", + "description": "Width of a single line of the areas at the top of the print.", + "unit": "mm", + "minimum_value": "0.001", + "minimum_value_warning": "0.1 + 0.4 * machine_nozzle_size", + "maximum_value_warning": "2 * machine_nozzle_size", + "default_value": 0.4, + "type": "float", + "value": "skin_line_width", + "limit_to_extruder": "roofing_extruder_nr", + "settable_per_mesh": true, + "enabled": "roofing_layer_count > 0 and top_layers > 0" + }, + "roofing_pattern": + { + "label": "Top Surface Skin Pattern", + "description": "The pattern of the top most layers.", + "type": "enum", + "options": { - "label": "Top Surface Skin Line Width", - "description": "Width of a single line of the areas at the top of the print.", - "unit": "mm", - "minimum_value": "0.001", - "minimum_value_warning": "0.1 + 0.4 * machine_nozzle_size", - "maximum_value_warning": "2 * machine_nozzle_size", - "default_value": 0.4, - "type": "float", - "value": "skin_line_width", - "limit_to_extruder": "roofing_extruder_nr", - "settable_per_mesh": true, - "enabled": "roofing_layer_count > 0 and top_layers > 0" + "lines": "Lines", + "concentric": "Concentric", + "zigzag": "Zig Zag" }, - "roofing_pattern": - { - "label": "Top Surface Skin Pattern", - "description": "The pattern of the top most layers.", - "type": "enum", - "options": - { - "lines": "Lines", - "concentric": "Concentric", - "zigzag": "Zig Zag" - }, - "default_value": "lines", - "value": "top_bottom_pattern", - "limit_to_extruder": "roofing_extruder_nr", - "settable_per_mesh": true, - "enabled": "roofing_layer_count > 0 and top_layers > 0" - }, - "roofing_monotonic": - { - "label": "Monotonic Top Surface Order", - "description": "Print top surface lines in an ordering that causes them to always overlap with adjacent lines in a single direction. This takes slightly more time to print, but makes flat surfaces look more consistent.", - "type": "bool", - "default_value": false, - "value": "skin_monotonic", - "enabled": "roofing_layer_count > 0 and top_layers > 0 and roofing_pattern != 'concentric'", - "limit_to_extruder": "roofing_extruder_nr", - "settable_per_mesh": true - }, - "roofing_angles": - { - "label": "Top Surface Skin Line Directions", - "description": "A list of integer line directions to use when the top surface skin layers use the lines or zig zag pattern. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the traditional default angles (45 and 135 degrees).", - "type": "[int]", - "default_value": "[ ]", - "value": "skin_angles", - "enabled": "roofing_pattern != 'concentric' and roofing_layer_count > 0 and top_layers > 0", - "limit_to_extruder": "roofing_extruder_nr", - "settable_per_mesh": true - } + "default_value": "lines", + "value": "top_bottom_pattern", + "limit_to_extruder": "roofing_extruder_nr", + "settable_per_mesh": true, + "enabled": "roofing_layer_count > 0 and top_layers > 0" + }, + "roofing_monotonic": + { + "label": "Monotonic Top Surface Order", + "description": "Print top surface lines in an ordering that causes them to always overlap with adjacent lines in a single direction. This takes slightly more time to print, but makes flat surfaces look more consistent.", + "type": "bool", + "default_value": false, + "value": "skin_monotonic", + "enabled": "roofing_layer_count > 0 and top_layers > 0 and roofing_pattern != 'concentric'", + "limit_to_extruder": "roofing_extruder_nr", + "settable_per_mesh": true + }, + "roofing_angles": + { + "label": "Top Surface Skin Line Directions", + "description": "A list of integer line directions to use when the top surface skin layers use the lines or zig zag pattern. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the traditional default angles (45 and 135 degrees).", + "type": "[int]", + "default_value": "[ ]", + "value": "skin_angles", + "enabled": "roofing_pattern != 'concentric' and roofing_layer_count > 0 and top_layers > 0", + "limit_to_extruder": "roofing_extruder_nr", + "settable_per_mesh": true + } } }, "top_bottom_extruder_nr": From 19835844bfb44278afa9683c06c1f9401a1513af Mon Sep 17 00:00:00 2001 From: joeydelarago Date: Wed, 31 Aug 2022 10:50:20 +0200 Subject: [PATCH 69/89] Change listType -> componentType. Makes it a bit more clear that this variable decides which component should be used for the model. CURA-9514 --- cura/Machines/Models/MachineListModel.py | 10 +++++----- resources/qml/PrinterSelector/MachineListButton.qml | 2 +- resources/qml/PrinterSelector/MachineSelectorList.qml | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/cura/Machines/Models/MachineListModel.py b/cura/Machines/Models/MachineListModel.py index 10bc2d13c9..a429418e09 100644 --- a/cura/Machines/Models/MachineListModel.py +++ b/cura/Machines/Models/MachineListModel.py @@ -25,7 +25,7 @@ class MachineListModel(ListModel): IsOnlineRole = Qt.ItemDataRole.UserRole + 5 MachineCountRole = Qt.ItemDataRole.UserRole + 6 IsAbstractMachineRole = Qt.ItemDataRole.UserRole + 7 - ListTypeRole = Qt.ItemDataRole.UserRole + 8 + ComponentTypeRole = Qt.ItemDataRole.UserRole + 8 def __init__(self, parent=None) -> None: super().__init__(parent) @@ -41,7 +41,7 @@ class MachineListModel(ListModel): self.addRoleName(self.IsOnlineRole, "isOnline") self.addRoleName(self.MachineCountRole, "machineCount") self.addRoleName(self.IsAbstractMachineRole, "isAbstractMachine") - self.addRoleName(self.ListTypeRole, "listType") + self.addRoleName(self.ComponentTypeRole, "componentType") self._change_timer = QTimer() self._change_timer.setInterval(200) @@ -103,13 +103,13 @@ class MachineListModel(ListModel): if len(abstract_machine_stacks) > 0: if self._show_cloud_printers: - self.appendItem({"listType": "HIDE_BUTTON", + self.appendItem({"componentType": "HIDE_BUTTON", "isOnline": True, "isAbstractMachine": False, "machineCount": 0 }) else: - self.appendItem({"listType": "SHOW_BUTTON", + self.appendItem({"componentType": "SHOW_BUTTON", "isOnline": True, "isAbstractMachine": False, "machineCount": 0 @@ -130,7 +130,7 @@ class MachineListModel(ListModel): has_connection |= connection_type in container_stack.configuredConnectionTypes self.appendItem({ - "listType": "MACHINE", + "componentType": "MACHINE", "name": container_stack.getName(), "id": container_stack.getId(), "metadata": container_stack.getMetaData().copy(), diff --git a/resources/qml/PrinterSelector/MachineListButton.qml b/resources/qml/PrinterSelector/MachineListButton.qml index f492e87574..b158cb20c0 100644 --- a/resources/qml/PrinterSelector/MachineListButton.qml +++ b/resources/qml/PrinterSelector/MachineListButton.qml @@ -11,7 +11,7 @@ Loader { id: loader width: parent.width sourceComponent: { - switch (model.listType) { + switch (model.componentType) { case "HIDE_BUTTON": hideButtonComponent break; diff --git a/resources/qml/PrinterSelector/MachineSelectorList.qml b/resources/qml/PrinterSelector/MachineSelectorList.qml index d4a4c4a5ce..a328ae69d9 100644 --- a/resources/qml/PrinterSelector/MachineSelectorList.qml +++ b/resources/qml/PrinterSelector/MachineSelectorList.qml @@ -35,7 +35,7 @@ ListView onClicked: function() { - switch (model.listType) { + switch (model.componentType) { case "HIDE_BUTTON": listView.model.setShowCloudPrinters(false); break; From dccffdeca3cf6c1913224d0a8977e1ed232d3f65 Mon Sep 17 00:00:00 2001 From: Casper Lamboo Date: Wed, 31 Aug 2022 11:08:37 +0200 Subject: [PATCH 70/89] Update cura/Machines/Models/MachineListModel.py --- cura/Machines/Models/MachineListModel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/Machines/Models/MachineListModel.py b/cura/Machines/Models/MachineListModel.py index a429418e09..40d8e47615 100644 --- a/cura/Machines/Models/MachineListModel.py +++ b/cura/Machines/Models/MachineListModel.py @@ -60,7 +60,7 @@ class MachineListModel(ListModel): def showCloudPrinters(self) -> bool: return self._show_cloud_printers - @pyqtSlot(bool, name="setShowCloudPrinters") + @pyqtSlot(bool) def setShowCloudPrinters(self, show_cloud_printers: bool) -> None: self._show_cloud_printers = show_cloud_printers self._updateDelayed() From 9084c31ce703b2e3fbd3e7219a4771d7c726f332 Mon Sep 17 00:00:00 2001 From: digitalfrost Date: Wed, 31 Aug 2022 12:11:20 +0200 Subject: [PATCH 71/89] MachineAction.py: Use error method with Logger Use f-string and error method with Logger instead of "Old Style" string formatting. --- cura/MachineAction.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cura/MachineAction.py b/cura/MachineAction.py index 15d9ab1ca1..c38be5261f 100644 --- a/cura/MachineAction.py +++ b/cura/MachineAction.py @@ -94,7 +94,7 @@ class MachineAction(QObject, PluginObject): plugin_path = PluginRegistry.getInstance().getPluginPath(self.getPluginId()) if plugin_path is None: - Logger.log("e", "Cannot create QML view: cannot find plugin path for plugin [%s]", self.getPluginId()) + Logger.error(f"Cannot create QML view: cannot find plugin path for plugin {self.getPluginId()}") return None path = os.path.join(plugin_path, self._qml_url) @@ -106,7 +106,7 @@ class MachineAction(QObject, PluginObject): def qmlPath(self) -> "QUrl": plugin_path = PluginRegistry.getInstance().getPluginPath(self.getPluginId()) if plugin_path is None: - Logger.log("e", "Cannot create QML view: cannot find plugin path for plugin [%s]", self.getPluginId()) + Logger.error(f"Cannot create QML view: cannot find plugin path for plugin {self.getPluginId()}") return QUrl("") path = os.path.join(plugin_path, self._qml_url) return QUrl.fromLocalFile(path) From ab722eb93cb3059b07a81766a6b62821bacbdfb8 Mon Sep 17 00:00:00 2001 From: joeydelarago Date: Wed, 31 Aug 2022 13:19:12 +0200 Subject: [PATCH 72/89] Default printers should be collapsed CURA-9514 --- cura/Machines/Models/MachineListModel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/Machines/Models/MachineListModel.py b/cura/Machines/Models/MachineListModel.py index 40d8e47615..a72d6ebbc9 100644 --- a/cura/Machines/Models/MachineListModel.py +++ b/cura/Machines/Models/MachineListModel.py @@ -30,7 +30,7 @@ class MachineListModel(ListModel): def __init__(self, parent=None) -> None: super().__init__(parent) - self._show_cloud_printers = True + self._show_cloud_printers = False self._catalog = i18nCatalog("cura") From 4ea437ba283e39165b9b72abb1e429641868d0e9 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Wed, 31 Aug 2022 14:13:47 +0200 Subject: [PATCH 73/89] Make send to DF in monitor for abstract printer work (again-ish). Already moslty implemented, but a new approach of the base feature (abstract cloud printers) made a more? elegant and functioning implementation possible. (re)implements CURA-9422 --- cura/Settings/MachineManager.py | 10 +- plugins/MonitorStage/MonitorMain.qml | 52 +------- .../resources/qml/MonitorStage.qml | 63 +++++++++- .../images/cura_connected_printers.svg | 111 ++++++++++++++++++ .../images/cura_connected_printers.svg | 9 ++ .../images/illustration_connect_printers.svg | 1 - 6 files changed, 186 insertions(+), 60 deletions(-) create mode 100644 resources/themes/cura-dark/images/cura_connected_printers.svg create mode 100644 resources/themes/cura-light/images/cura_connected_printers.svg delete mode 100644 resources/themes/cura-light/images/illustration_connect_printers.svg diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index fc11beb2c8..d091ab9f6f 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -1,4 +1,4 @@ -# Copyright (c) 2021 Ultimaker B.V. +# Copyright (c) 2022 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. import time @@ -531,9 +531,9 @@ class MachineManager(QObject): def printerConnected(self) -> bool: return bool(self._printer_output_devices) - @pyqtProperty(bool, notify = printerConnectedStatusChanged) - def activeMachineIsAbstract(self) -> bool: - return (self.activeMachine is not None) and parseBool(self.activeMachine.getMetaDataEntry("is_abstract_machine", False)) + @pyqtProperty(bool, notify = globalContainerChanged) + def activeMachineIsAbstractCloudPrinter(self) -> bool: + return len(self._printer_output_devices) == 1 and self._printer_output_devices[0].__class__.__name__ == "AbstractCloudOutputDevice" @pyqtProperty(bool, notify = printerConnectedStatusChanged) def activeMachineIsGroup(self) -> bool: @@ -559,8 +559,6 @@ class MachineManager(QObject): @pyqtProperty(bool, notify = printerConnectedStatusChanged) def activeMachineHasCloudRegistration(self) -> bool: - if self.activeMachineIsAbstract: - return any(m.getMetaDataEntry("is_online", False) for m in self.getMachinesWithDefinition(self.activeMachine.definition.getId(), True)) return self.activeMachine is not None and ConnectionType.CloudConnection in self.activeMachine.configuredConnectionTypes @pyqtProperty(bool, notify = printerConnectedStatusChanged) diff --git a/plugins/MonitorStage/MonitorMain.qml b/plugins/MonitorStage/MonitorMain.qml index 768366c664..a89938530c 100644 --- a/plugins/MonitorStage/MonitorMain.qml +++ b/plugins/MonitorStage/MonitorMain.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2018 Ultimaker B.V. +// Copyright (c) 2022 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.10 @@ -12,7 +12,6 @@ Rectangle id: viewportOverlay property bool isConnected: Cura.MachineManager.activeMachineHasNetworkConnection || Cura.MachineManager.activeMachineHasCloudConnection - property bool isAbstractCloudPrinter: Cura.MachineManager.activeMachineIsAbstract property bool isNetworkConfigurable: { if(Cura.MachineManager.activeMachine === null) @@ -97,7 +96,7 @@ Rectangle { horizontalCenter: parent.horizontalCenter } - visible: isNetworkConfigured && !isConnected && !isAbstractCloudPrinter + visible: isNetworkConfigured && !isConnected text: catalog.i18nc("@info", "Please make sure your printer has a connection:\n- Check if the printer is turned on.\n- Check if the printer is connected to the network.\n- Check if you are signed in to discover cloud-connected printers.") font: UM.Theme.getFont("medium") width: contentWidth @@ -110,62 +109,19 @@ Rectangle { horizontalCenter: parent.horizontalCenter } - visible: !isNetworkConfigured && isNetworkConfigurable && !isAbstractCloudPrinter + visible: !isNetworkConfigured && isNetworkConfigurable text: catalog.i18nc("@info", "Please connect your printer to the network.") font: UM.Theme.getFont("medium") width: contentWidth } - Rectangle - { - id: sendToFactoryCard - visible: isAbstractCloudPrinter - color: UM.Theme.getColor("detail_background") - height: childrenRect.height + UM.Theme.getSize("default_margin").height * 2 - width: childrenRect.width + UM.Theme.getSize("wide_margin").width * 2 - Column - { - anchors.horizontalCenter: parent.horizontalCenter - anchors.verticalCenter: parent.verticalCenter - spacing: UM.Theme.getSize("wide_margin").height - padding: UM.Theme.getSize("default_margin").width - topPadding: 0 - - Image - { - id: sendToFactoryImage - anchors.horizontalCenter: parent.horizontalCenter - source: UM.Theme.getImage("illustration_connect_printers") - } - - UM.Label - { - anchors.horizontalCenter: parent.horizontalCenter - text: catalog.i18nc("@info", "Monitor your printers from everywhere using Ultimaker Digital Factory") - font: UM.Theme.getFont("medium") - width: sendToFactoryImage.width - wrapMode: Text.WordWrap - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter - } - - Cura.PrimaryButton - { - id: sendToFactoryButton - anchors.horizontalCenter: parent.horizontalCenter - text: catalog.i18nc("@button", "View printers in Digital Factory") - onClicked: Qt.openUrlExternally("https://digitalfactory.ultimaker.com/app/print-jobs?utm_source=cura&utm_medium=software&utm_campaign=monitor-view-cloud-printer-type") - } - } - } - Item { anchors { left: noNetworkLabel.left } - visible: !isNetworkConfigured && isNetworkConfigurable && !isAbstractCloudPrinter + visible: !isNetworkConfigured && isNetworkConfigurable width: childrenRect.width height: childrenRect.height diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml index 6e8f6b4ebd..c55c00f378 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml @@ -1,8 +1,8 @@ -// Copyright (c) 2019 Ultimaker B.V. +// Copyright (c) 2022 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. -import QtQuick 2.2 -import UM 1.3 as UM +import QtQuick 2.15 +import UM 1.5 as UM import Cura 1.0 as Cura // This is the root component for the monitor stage. @@ -37,6 +37,7 @@ Component Item { id: printers + visible: !Cura.MachineManager.activeMachineIsAbstractCloudPrinter anchors { top: parent.top @@ -69,14 +70,66 @@ Component top: printers.bottom topMargin: 48 * screenScaleFactor // TODO: Theme! } - visible: OutputDevice.supportsPrintJobQueue && OutputDevice.canReadPrintJobs + visible: OutputDevice.supportsPrintJobQueue && OutputDevice.canReadPrintJobs && !Cura.MachineManager.activeMachineIsAbstractCloudPrinter } PrinterVideoStream { anchors.fill: parent cameraUrl: OutputDevice.activeCameraUrl - visible: OutputDevice.activeCameraUrl != "" + visible: OutputDevice.activeCameraUrl != "" && !Cura.MachineManager.activeMachineIsAbstractCloudPrinter + } + + Rectangle + { + id: sendToFactoryCard + + visible: Cura.MachineManager.activeMachineIsAbstractCloudPrinter + + color: UM.Theme.getColor("detail_background") + height: childrenRect.height + UM.Theme.getSize("default_margin").height * 2 + width: childrenRect.width + UM.Theme.getSize("wide_margin").width * 2 + anchors + { + horizontalCenter: parent.horizontalCenter + top: parent.top + topMargin: UM.Theme.getSize("wide_margin").height * screenScaleFactor * 2 + } + + Column + { + anchors.horizontalCenter: parent.horizontalCenter + anchors.verticalCenter: parent.verticalCenter + spacing: UM.Theme.getSize("wide_margin").height + padding: UM.Theme.getSize("default_margin").width + topPadding: 0 + + Image + { + id: sendToFactoryImage + anchors.horizontalCenter: parent.horizontalCenter + source: UM.Theme.getImage("cura_connected_printers") + } + + UM.Label + { + anchors.horizontalCenter: parent.horizontalCenter + text: catalog.i18nc("@info", "Monitor your printers from everywhere using Ultimaker Digital Factory") + font: UM.Theme.getFont("medium") + width: sendToFactoryImage.width + wrapMode: Text.WordWrap + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + } + + Cura.PrimaryButton + { + id: sendToFactoryButton + anchors.horizontalCenter: parent.horizontalCenter + text: catalog.i18nc("@button", "View printers in Digital Factory") + onClicked: Qt.openUrlExternally("https://digitalfactory.ultimaker.com/app/print-jobs?utm_source=cura&utm_medium=software&utm_campaign=monitor-view-cloud-printer-type") + } + } } } } diff --git a/resources/themes/cura-dark/images/cura_connected_printers.svg b/resources/themes/cura-dark/images/cura_connected_printers.svg new file mode 100644 index 0000000000..d7d0dc9d23 --- /dev/null +++ b/resources/themes/cura-dark/images/cura_connected_printers.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/themes/cura-light/images/cura_connected_printers.svg b/resources/themes/cura-light/images/cura_connected_printers.svg new file mode 100644 index 0000000000..9e67f62451 --- /dev/null +++ b/resources/themes/cura-light/images/cura_connected_printers.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/resources/themes/cura-light/images/illustration_connect_printers.svg b/resources/themes/cura-light/images/illustration_connect_printers.svg deleted file mode 100644 index d18302bdf1..0000000000 --- a/resources/themes/cura-light/images/illustration_connect_printers.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file From afeec473f6753c94b10e3d9fabd725d29efc036d Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Wed, 31 Aug 2022 14:15:05 +0200 Subject: [PATCH 74/89] Small fixes (mostly QML warnings and the like). done as part of CURA-9422 --- cura/Settings/GlobalStack.py | 1 - .../UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml | 4 ++-- resources/qml/PrinterSelector/MachineListButton.qml | 4 ++-- resources/qml/PrinterSelector/MachineSelector.qml | 1 - 4 files changed, 4 insertions(+), 6 deletions(-) diff --git a/cura/Settings/GlobalStack.py b/cura/Settings/GlobalStack.py index 43232da725..b94ca45763 100755 --- a/cura/Settings/GlobalStack.py +++ b/cura/Settings/GlobalStack.py @@ -90,7 +90,6 @@ class GlobalStack(CuraContainerStack): @pyqtProperty("QVariantList", notify=configuredConnectionTypesChanged) def configuredConnectionTypes(self) -> List[int]: """The configured connection types can be used to find out if the global - stack is configured to be connected with a printer, without having to know all the details as to how this is exactly done (and without actually setting the stack to be active). diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml index 64aa4e7a9c..c0662cfc82 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml @@ -153,7 +153,7 @@ Item MonitorPrinterPill { - text: printJob.configuration.printerType + text: printJob ? printJob.configuration.printerType : "" } } } @@ -173,7 +173,7 @@ Item id: printerConfiguration anchors.verticalCenter: parent.verticalCenter buildplate: catalog.i18nc("@label", "Glass") - configurations: base.printJob.configuration.extruderConfigurations + configurations: base.printJob ? base.printJob.configuration.extruderConfigurations : null height: Math.round(72 * screenScaleFactor) // TODO: Theme! } diff --git a/resources/qml/PrinterSelector/MachineListButton.qml b/resources/qml/PrinterSelector/MachineListButton.qml index 55ae5497d9..1ed9f98c46 100644 --- a/resources/qml/PrinterSelector/MachineListButton.qml +++ b/resources/qml/PrinterSelector/MachineListButton.qml @@ -68,11 +68,11 @@ Button top: buttonText.top bottom: buttonText.bottom } - visible: model.isAbstractMachine + visible: model.isAbstractMachine ? model.isAbstractMachine : false UM.Label { - text: model.machineCount + text: model.machineCount ? model.machineCount : "" anchors.centerIn: parent font: UM.Theme.getFont("default_bold") } diff --git a/resources/qml/PrinterSelector/MachineSelector.qml b/resources/qml/PrinterSelector/MachineSelector.qml index 869d536a00..0008529408 100644 --- a/resources/qml/PrinterSelector/MachineSelector.qml +++ b/resources/qml/PrinterSelector/MachineSelector.qml @@ -223,7 +223,6 @@ Cura.ExpandablePopup id: buttonRow anchors.bottom: parent.bottom - anchors.horizontalCenter: parent.horizontalCenter anchors.left: parent.left anchors.right: parent.right From ded387324985b52632cab5eaa1343e6e239fcb1c Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 31 Aug 2022 15:12:25 +0200 Subject: [PATCH 75/89] Fix abstract machines being displayed twice --- cura/Machines/Models/MachineListModel.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cura/Machines/Models/MachineListModel.py b/cura/Machines/Models/MachineListModel.py index 2dbf088088..55db072180 100644 --- a/cura/Machines/Models/MachineListModel.py +++ b/cura/Machines/Models/MachineListModel.py @@ -83,7 +83,6 @@ class MachineListModel(ListModel): abstract_machine_stacks = CuraContainerRegistry.getInstance().findContainerStacks(is_abstract_machine = "True") abstract_machine_stacks.sort(key = lambda machine: machine.getName(), reverse = True) - for abstract_machine in abstract_machine_stacks: definition_id = abstract_machine.definition.getId() from cura.CuraApplication import CuraApplication @@ -93,6 +92,8 @@ class MachineListModel(ListModel): # Create a list item for abstract machine self.addItem(abstract_machine, len(online_machine_stacks)) other_machine_stacks.remove(abstract_machine) + if abstract_machine in online_machine_stacks: + online_machine_stacks.remove(abstract_machine) # Create list of machines that are children of the abstract machine for stack in online_machine_stacks: From b3fb34d84a1d8ffdc28c8e142efb07412306b83a Mon Sep 17 00:00:00 2001 From: Rijk van Manen Date: Wed, 31 Aug 2022 15:54:20 +0200 Subject: [PATCH 76/89] clean up adhesion_type S-line printers can follow the machine default. PP-brim will be moved to fdm materials. PP-235 --- .../ultimaker_s3/um_s3_aa0.25_PC_Normal_Quality.inst.cfg | 1 - .../ultimaker_s3/um_s3_aa0.4_Nylon_Draft_Print.inst.cfg | 3 --- .../quality/ultimaker_s3/um_s3_aa0.4_Nylon_Fast_Print.inst.cfg | 3 --- .../ultimaker_s3/um_s3_aa0.4_Nylon_High_Quality.inst.cfg | 3 --- .../ultimaker_s3/um_s3_aa0.4_Nylon_Normal_Quality.inst.cfg | 3 --- .../quality/ultimaker_s3/um_s3_aa0.4_PC_Draft_Print.inst.cfg | 2 -- .../quality/ultimaker_s3/um_s3_aa0.4_PC_Fast_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.4_PC_High_Quality.inst.cfg | 1 - .../ultimaker_s3/um_s3_aa0.4_PC_Normal_Quality.inst.cfg | 1 - .../ultimaker_s3/um_s3_cc0.4_CFFCPE_Draft_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_cc0.4_CFFCPE_Fast_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_cc0.4_CFFPA_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_cc0.4_CFFPA_Fast_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_cc0.4_GFFCPE_Draft_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_cc0.4_GFFCPE_Fast_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_cc0.4_GFFPA_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_cc0.4_GFFPA_Fast_Print.inst.cfg | 3 --- .../ultimaker_s3/um_s3_cc0.6_CFFCPE_Draft_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_cc0.6_CFFPA_Draft_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_cc0.6_GFFCPE_Draft_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_cc0.6_GFFPA_Draft_Print.inst.cfg | 1 - .../ultimaker_s5/um_s5_aa0.25_PC_Normal_Quality.inst.cfg | 1 - .../ultimaker_s5/um_s5_aa0.4_Nylon_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.4_Nylon_Fast_Print.inst.cfg | 3 --- .../ultimaker_s5/um_s5_aa0.4_Nylon_High_Quality.inst.cfg | 3 --- .../ultimaker_s5/um_s5_aa0.4_Nylon_Normal_Quality.inst.cfg | 3 --- .../quality/ultimaker_s5/um_s5_aa0.4_PC_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.4_PC_Fast_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.4_PC_High_Quality.inst.cfg | 2 -- .../ultimaker_s5/um_s5_aa0.4_PC_Normal_Quality.inst.cfg | 2 -- .../ultimaker_s5/um_s5_cc0.4_CFFCPE_Draft_Print.inst.cfg | 3 --- .../ultimaker_s5/um_s5_cc0.4_CFFCPE_Fast_Print.inst.cfg | 3 --- .../ultimaker_s5/um_s5_cc0.4_CFFPA_Draft_Print.inst.cfg | 3 --- .../quality/ultimaker_s5/um_s5_cc0.4_CFFPA_Fast_Print.inst.cfg | 3 --- .../ultimaker_s5/um_s5_cc0.4_GFFCPE_Draft_Print.inst.cfg | 3 --- .../ultimaker_s5/um_s5_cc0.4_GFFCPE_Fast_Print.inst.cfg | 3 --- .../ultimaker_s5/um_s5_cc0.4_GFFPA_Draft_Print.inst.cfg | 3 --- .../quality/ultimaker_s5/um_s5_cc0.4_GFFPA_Fast_Print.inst.cfg | 3 --- .../ultimaker_s5/um_s5_cc0.6_CFFCPE_Draft_Print.inst.cfg | 2 -- .../ultimaker_s5/um_s5_cc0.6_CFFPA_Draft_Print.inst.cfg | 2 -- .../ultimaker_s5/um_s5_cc0.6_GFFCPE_Draft_Print.inst.cfg | 2 -- .../ultimaker_s5/um_s5_cc0.6_GFFPA_Draft_Print.inst.cfg | 1 - 42 files changed, 80 deletions(-) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.25_PC_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.25_PC_Normal_Quality.inst.cfg index 886807a836..49ecf8eb7c 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.25_PC_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.25_PC_Normal_Quality.inst.cfg @@ -13,7 +13,6 @@ variant = AA 0.25 is_experimental = True [values] -adhesion_type = brim brim_width = 20 cool_fan_full_at_height = =layer_height_0 + layer_height cool_fan_speed_max = 50 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 ea80f381a1..5d04d3730c 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 @@ -12,11 +12,8 @@ material = generic_nylon variant = AA 0.4 [values] -adhesion_type = brim cool_min_layer_time_fan_speed_max = 20 cool_min_speed = 10 - - material_print_temperature = =default_material_print_temperature + 10 material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 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 d9ba64ae04..ee6b31d104 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 @@ -12,11 +12,8 @@ material = generic_nylon variant = AA 0.4 [values] -adhesion_type = brim cool_min_layer_time_fan_speed_max = 20 cool_min_speed = 10 - - material_print_temperature = =default_material_print_temperature + 5 material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 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 8a6d73d6ca..81fa776bba 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 @@ -12,11 +12,8 @@ material = generic_nylon variant = AA 0.4 [values] -adhesion_type = brim cool_min_layer_time_fan_speed_max = 20 cool_min_speed = 15 - - material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 10 ooze_shield_angle = 40 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 8688939b35..3b785f2999 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 @@ -12,11 +12,8 @@ material = generic_nylon variant = AA 0.4 [values] -adhesion_type = brim cool_min_layer_time_fan_speed_max = 20 cool_min_speed = 12 - - material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 10 ooze_shield_angle = 40 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_Draft_Print.inst.cfg index d02bf873f4..a0fae041a4 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_Draft_Print.inst.cfg @@ -12,13 +12,11 @@ material = generic_pc variant = AA 0.4 [values] -adhesion_type = brim brim_width = 20 cool_fan_full_at_height = =layer_height_0 + layer_height cool_fan_speed_max = 90 cool_min_layer_time_fan_speed_max = 5 cool_min_speed = 6 - infill_overlap = 0 infill_overlap_mm = =0 if infill_sparse_density > 80 else 0.05 infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_Fast_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_Fast_Print.inst.cfg index f15ca790ed..7b26bb0613 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_Fast_Print.inst.cfg @@ -12,7 +12,6 @@ material = generic_pc variant = AA 0.4 [values] -adhesion_type = brim brim_width = 20 cool_fan_full_at_height = =layer_height_0 + layer_height cool_fan_speed_max = 85 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_High_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_High_Quality.inst.cfg index 330ccb1d66..893fc789f2 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_High_Quality.inst.cfg @@ -12,7 +12,6 @@ material = generic_pc variant = AA 0.4 [values] -adhesion_type = brim brim_width = 20 cool_fan_full_at_height = =layer_height_0 + layer_height cool_fan_speed_max = 50 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_Normal_Quality.inst.cfg index e931b99e4d..ef6fc99b12 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_PC_Normal_Quality.inst.cfg @@ -12,7 +12,6 @@ material = generic_pc variant = AA 0.4 [values] -adhesion_type = brim brim_width = 20 cool_fan_full_at_height = =layer_height_0 + layer_height cool_fan_speed_max = 50 diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFCPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFCPE_Draft_Print.inst.cfg index ee5eb84f18..0ad61736ab 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFCPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFCPE_Draft_Print.inst.cfg @@ -12,7 +12,6 @@ material = generic_cffcpe variant = CC 0.4 [values] -adhesion_type = skirt cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFCPE_Fast_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFCPE_Fast_Print.inst.cfg index 27aa351fcb..758a81d3a8 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFCPE_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFCPE_Fast_Print.inst.cfg @@ -12,7 +12,6 @@ material = generic_cffcpe variant = CC 0.4 [values] -adhesion_type = skirt cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFPA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFPA_Draft_Print.inst.cfg index 308f7d4659..a0ca08eb8a 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFPA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFPA_Draft_Print.inst.cfg @@ -12,7 +12,6 @@ material = generic_cffpa variant = CC 0.4 [values] -adhesion_type = skirt cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFPA_Fast_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFPA_Fast_Print.inst.cfg index efd383a565..d538f95bea 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFPA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.4_CFFPA_Fast_Print.inst.cfg @@ -12,7 +12,6 @@ material = generic_cffpa variant = CC 0.4 [values] -adhesion_type = skirt cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFCPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFCPE_Draft_Print.inst.cfg index 31dffcd0fa..2caa3776eb 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFCPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFCPE_Draft_Print.inst.cfg @@ -12,7 +12,6 @@ material = generic_gffcpe variant = CC 0.4 [values] -adhesion_type = brim cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFCPE_Fast_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFCPE_Fast_Print.inst.cfg index 5086b257e2..f9fffb3171 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFCPE_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFCPE_Fast_Print.inst.cfg @@ -12,7 +12,6 @@ material = generic_gffcpe variant = CC 0.4 [values] -adhesion_type = brim cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFPA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFPA_Draft_Print.inst.cfg index 4fecd89e67..465bff3d8d 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFPA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFPA_Draft_Print.inst.cfg @@ -12,7 +12,6 @@ material = generic_gffpa variant = CC 0.4 [values] -adhesion_type = brim cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFPA_Fast_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFPA_Fast_Print.inst.cfg index 0355b4906d..40df72973c 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFPA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.4_GFFPA_Fast_Print.inst.cfg @@ -12,14 +12,11 @@ material = generic_gffpa variant = CC 0.4 [values] -adhesion_type = brim cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 cool_min_speed = 6 - initial_layer_line_width_factor = 130.0 - material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.6_CFFCPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.6_CFFCPE_Draft_Print.inst.cfg index 4dbf39a83e..8a617f2d04 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.6_CFFCPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.6_CFFCPE_Draft_Print.inst.cfg @@ -12,7 +12,6 @@ material = generic_cffcpe variant = CC 0.6 [values] -adhesion_type = skirt cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.6_CFFPA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.6_CFFPA_Draft_Print.inst.cfg index fdaa98e8e3..9c396012bb 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.6_CFFPA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.6_CFFPA_Draft_Print.inst.cfg @@ -12,7 +12,6 @@ material = generic_cffpa variant = CC 0.6 [values] -adhesion_type = skirt cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.6_GFFCPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.6_GFFCPE_Draft_Print.inst.cfg index 06e1b1e186..de38df43ee 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.6_GFFCPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.6_GFFCPE_Draft_Print.inst.cfg @@ -12,7 +12,6 @@ material = generic_gffcpe variant = CC 0.6 [values] -adhesion_type = brim cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.6_GFFPA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.6_GFFPA_Draft_Print.inst.cfg index 3e570585d5..5b3c0024ab 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.6_GFFPA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.6_GFFPA_Draft_Print.inst.cfg @@ -12,7 +12,6 @@ material = generic_gffpa variant = CC 0.6 [values] -adhesion_type = brim cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.25_PC_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.25_PC_Normal_Quality.inst.cfg index 0ee0d7cbe9..21619933c7 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.25_PC_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.25_PC_Normal_Quality.inst.cfg @@ -13,7 +13,6 @@ variant = AA 0.25 is_experimental = True [values] -adhesion_type = brim brim_width = 20 cool_fan_full_at_height = =layer_height_0 + layer_height cool_fan_speed_max = 50 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 ab5ee10570..de31626bc4 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 @@ -12,7 +12,6 @@ material = generic_nylon variant = AA 0.4 [values] -adhesion_type = brim cool_min_layer_time_fan_speed_max = 20 cool_min_speed = 10 material_print_temperature = =default_material_print_temperature + 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 e0d5fd698f..76637899fc 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 @@ -12,11 +12,8 @@ material = generic_nylon variant = AA 0.4 [values] -adhesion_type = brim cool_min_layer_time_fan_speed_max = 20 cool_min_speed = 10 - - material_print_temperature = =default_material_print_temperature + 5 material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 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 11369becf7..b0c2360339 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 @@ -12,11 +12,8 @@ material = generic_nylon variant = AA 0.4 [values] -adhesion_type = brim cool_min_layer_time_fan_speed_max = 20 cool_min_speed = 15 - - material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 10 ooze_shield_angle = 40 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 c5076d7b11..4c1c0a1871 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 @@ -12,11 +12,8 @@ material = generic_nylon variant = AA 0.4 [values] -adhesion_type = brim cool_min_layer_time_fan_speed_max = 20 cool_min_speed = 12 - - material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 10 ooze_shield_angle = 40 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Draft_Print.inst.cfg index ad46d3ba5c..11c316f5d6 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Draft_Print.inst.cfg @@ -12,7 +12,6 @@ material = generic_pc variant = AA 0.4 [values] -adhesion_type = brim brim_width = 20 cool_fan_full_at_height = =layer_height_0 + layer_height cool_fan_speed_max = 90 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Fast_Print.inst.cfg index 0bd02289de..fd8f30f78f 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Fast_Print.inst.cfg @@ -12,7 +12,6 @@ material = generic_pc variant = AA 0.4 [values] -adhesion_type = brim brim_width = 20 cool_fan_full_at_height = =layer_height_0 + layer_height cool_fan_speed_max = 85 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_High_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_High_Quality.inst.cfg index f5bf35a232..c3cff67a2c 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_High_Quality.inst.cfg @@ -12,13 +12,11 @@ material = generic_pc variant = AA 0.4 [values] -adhesion_type = brim brim_width = 20 cool_fan_full_at_height = =layer_height_0 + layer_height cool_fan_speed_max = 50 cool_min_layer_time_fan_speed_max = 5 cool_min_speed = 8 - infill_overlap = 0 infill_overlap_mm = =0 if infill_sparse_density > 80 else 0.05 infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Normal_Quality.inst.cfg index a4c0c3d365..868de66c25 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Normal_Quality.inst.cfg @@ -12,13 +12,11 @@ material = generic_pc variant = AA 0.4 [values] -adhesion_type = brim brim_width = 20 cool_fan_full_at_height = =layer_height_0 + layer_height cool_fan_speed_max = 50 cool_min_layer_time_fan_speed_max = 5 cool_min_speed = 5 - infill_overlap = 0 infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' infill_wipe_dist = 0.1 diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFCPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFCPE_Draft_Print.inst.cfg index cb1a50803c..0e738f1e3d 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFCPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFCPE_Draft_Print.inst.cfg @@ -12,14 +12,11 @@ material = generic_cffcpe variant = CC 0.4 [values] -adhesion_type = skirt cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 cool_min_speed = 6 - initial_layer_line_width_factor = 130.0 - material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFCPE_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFCPE_Fast_Print.inst.cfg index ce03a5ae09..e0d01ba82f 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFCPE_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFCPE_Fast_Print.inst.cfg @@ -12,14 +12,11 @@ material = generic_cffcpe variant = CC 0.4 [values] -adhesion_type = skirt cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 cool_min_speed = 6 - initial_layer_line_width_factor = 130.0 - material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFPA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFPA_Draft_Print.inst.cfg index 3036247066..52d0a07ea5 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFPA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFPA_Draft_Print.inst.cfg @@ -12,14 +12,11 @@ material = generic_cffpa variant = CC 0.4 [values] -adhesion_type = skirt cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 cool_min_speed = 6 - initial_layer_line_width_factor = 130.0 - material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFPA_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFPA_Fast_Print.inst.cfg index a399338789..86dad3779b 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFPA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.4_CFFPA_Fast_Print.inst.cfg @@ -12,14 +12,11 @@ material = generic_cffpa variant = CC 0.4 [values] -adhesion_type = skirt cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 cool_min_speed = 6 - initial_layer_line_width_factor = 130.0 - material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFCPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFCPE_Draft_Print.inst.cfg index dfcf839d41..da79e206cf 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFCPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFCPE_Draft_Print.inst.cfg @@ -12,14 +12,11 @@ material = generic_gffcpe variant = CC 0.4 [values] -adhesion_type = brim cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 cool_min_speed = 6 - initial_layer_line_width_factor = 130.0 - material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFCPE_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFCPE_Fast_Print.inst.cfg index 2b7a43ccfc..644b964c28 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFCPE_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFCPE_Fast_Print.inst.cfg @@ -12,14 +12,11 @@ material = generic_gffcpe variant = CC 0.4 [values] -adhesion_type = brim cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 cool_min_speed = 6 - initial_layer_line_width_factor = 130.0 - material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFPA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFPA_Draft_Print.inst.cfg index 918680ec18..2977a497eb 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFPA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFPA_Draft_Print.inst.cfg @@ -12,14 +12,11 @@ material = generic_gffpa variant = CC 0.4 [values] -adhesion_type = brim cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 cool_min_speed = 6 - initial_layer_line_width_factor = 130.0 - material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFPA_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFPA_Fast_Print.inst.cfg index 67fb7b24c1..a339098b6a 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFPA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.4_GFFPA_Fast_Print.inst.cfg @@ -12,14 +12,11 @@ material = generic_gffpa variant = CC 0.4 [values] -adhesion_type = brim cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 cool_min_speed = 6 - initial_layer_line_width_factor = 130.0 - material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature material_print_temperature_layer_0 = =material_print_temperature diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFCPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFCPE_Draft_Print.inst.cfg index d91ade8af3..dd2f4231c7 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFCPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFCPE_Draft_Print.inst.cfg @@ -12,12 +12,10 @@ material = generic_cffcpe variant = CC 0.6 [values] -adhesion_type = skirt cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 cool_min_speed = 6 - initial_layer_line_width_factor = 130.0 material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFPA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFPA_Draft_Print.inst.cfg index 087a3868bf..eb2cc63b78 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFPA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFPA_Draft_Print.inst.cfg @@ -12,12 +12,10 @@ material = generic_cffpa variant = CC 0.6 [values] -adhesion_type = skirt cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 cool_min_speed = 6 - initial_layer_line_width_factor = 130.0 material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFCPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFCPE_Draft_Print.inst.cfg index 431a570dc0..e5bc3d2e5b 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFCPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFCPE_Draft_Print.inst.cfg @@ -12,12 +12,10 @@ material = generic_gffcpe variant = CC 0.6 [values] -adhesion_type = brim cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 cool_min_speed = 6 - initial_layer_line_width_factor = 130.0 material_bed_temperature_layer_0 = =material_bed_temperature + 5 material_print_temperature = =default_material_print_temperature diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFPA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFPA_Draft_Print.inst.cfg index 29e0335e9e..72e1c0f4fe 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFPA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFPA_Draft_Print.inst.cfg @@ -12,7 +12,6 @@ material = generic_gffpa variant = CC 0.6 [values] -adhesion_type = brim cool_fan_enabled = True cool_min_layer_time = 7 cool_min_layer_time_fan_speed_max = 15 From 60a670f2ed300d4e4919fece74f9342436d2cbe6 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Wed, 31 Aug 2022 15:56:02 +0200 Subject: [PATCH 77/89] Update light-mode cura_connected_printers svg Old one was not displaying on my machine CURA-9422 --- .../cura-light/images/cura_connected_printers.svg | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/resources/themes/cura-light/images/cura_connected_printers.svg b/resources/themes/cura-light/images/cura_connected_printers.svg index 9e67f62451..d18302bdf1 100644 --- a/resources/themes/cura-light/images/cura_connected_printers.svg +++ b/resources/themes/cura-light/images/cura_connected_printers.svg @@ -1,9 +1 @@ - - - - - - - - - + \ No newline at end of file From 438871648b46f87b55ac4c305a90c94b53b04948 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 31 Aug 2022 16:31:39 +0200 Subject: [PATCH 78/89] Don't notify qml of update if no configurations changed This might be the cause of #11608, but i'm not entirely sure. Whatever the case, it's also not going to hurt checking this... --- cura/PrinterOutput/Models/PrinterOutputModel.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cura/PrinterOutput/Models/PrinterOutputModel.py b/cura/PrinterOutput/Models/PrinterOutputModel.py index 2f7091e014..5605ce0de9 100644 --- a/cura/PrinterOutput/Models/PrinterOutputModel.py +++ b/cura/PrinterOutput/Models/PrinterOutputModel.py @@ -350,5 +350,6 @@ class PrinterOutputModel(QObject): self.availableConfigurationsChanged.emit() def setAvailableConfigurations(self, new_configurations: List[PrinterConfigurationModel]) -> None: - self._available_printer_configurations = new_configurations - self.availableConfigurationsChanged.emit() + if self._available_printer_configurations != new_configurations: + self._available_printer_configurations = new_configurations + self.availableConfigurationsChanged.emit() From 3040a7c83071f460bafc5da201a3e0f0156b9aba Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 31 Aug 2022 18:11:24 +0200 Subject: [PATCH 79/89] Always check if an abstract machine needs to be added CURA-9289 --- .../UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py index 4082431cd9..bdae34a860 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py @@ -194,6 +194,9 @@ class CloudOutputDeviceManager: if cluster_data.printer_type not in self._abstract_clusters: self._abstract_clusters[cluster_data.printer_type] = AbstractCloudOutputDevice(self._api, cluster_data.printer_type) + # Ensure that the abstract machine is added (either because it was never added, or it somehow got + # removed) + _abstract_machine = CuraStackBuilder.createAbstractMachine(cluster_data.printer_type) # If the machine already existed before, it will be present in the host_guid_map if cluster_data.host_guid in host_guid_map: @@ -365,8 +368,6 @@ class CloudOutputDeviceManager: self._setOutputDeviceMetadata(device, new_machine) - _abstract_machine = CuraStackBuilder.createAbstractMachine(device.printerType) - if activate: CuraApplication.getInstance().getMachineManager().setActiveMachine(new_machine.getId()) From 2385b00af3dcf3427092c9f3e73db25c79ca9ffb Mon Sep 17 00:00:00 2001 From: jellespijker Date: Thu, 1 Sep 2022 09:33:23 +0200 Subject: [PATCH 80/89] Fixes external PR version Differentiate between internal actions and those of PR's This should fix the failing unit tests on forked PR --- .github/workflows/conan-recipe-version.yml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/.github/workflows/conan-recipe-version.yml b/.github/workflows/conan-recipe-version.yml index ddadfe1781..72dad25033 100644 --- a/.github/workflows/conan-recipe-version.yml +++ b/.github/workflows/conan-recipe-version.yml @@ -53,9 +53,18 @@ jobs: steps: - name: Checkout repo uses: actions/checkout@v3 + if: ${{ ! contains(github.event, 'pull_request') }} with: - ref: ${{ github.head_ref }} fetch-depth: 0 + ref: ${{ github.head_ref }} + + - name: Checkout repo PR + uses: actions/checkout@v3 + if: ${{ contains(github.event, 'pull_request') }} + with: + fetch-depth: 0 + ref: ${{ github.event.pull_request.head.ref }} + repository: ${{ github.event.pull_request.head.repo.full_name }} - name: Setup Python and pip uses: actions/setup-python@v4 @@ -106,7 +115,7 @@ jobs: else: channel = repo.active_branch.name.split("_")[0].replace("-", "_").lower() - if event_name == "pull_request": + if "pull_request" in event_name: channel = f"pr_{issue_number}" # %% Get the actual version From 046985270ab7b09fcea9a4897a9cc0beec6ef522 Mon Sep 17 00:00:00 2001 From: jellespijker Date: Thu, 1 Sep 2022 09:51:46 +0200 Subject: [PATCH 81/89] Add optional input is_external_pr --- .github/workflows/conan-recipe-version.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/conan-recipe-version.yml b/.github/workflows/conan-recipe-version.yml index 72dad25033..78ff667387 100644 --- a/.github/workflows/conan-recipe-version.yml +++ b/.github/workflows/conan-recipe-version.yml @@ -12,6 +12,11 @@ on: default: "" type: string + is_external_pr: + required: false + default: false + type: boolean + outputs: recipe_id_full: description: "The full Conan recipe id: /@/" @@ -53,14 +58,14 @@ jobs: steps: - name: Checkout repo uses: actions/checkout@v3 - if: ${{ ! contains(github.event, 'pull_request') }} + if: ${{ ! is_external_pr }} with: fetch-depth: 0 ref: ${{ github.head_ref }} - name: Checkout repo PR uses: actions/checkout@v3 - if: ${{ contains(github.event, 'pull_request') }} + if: ${{ is_external_pr }} with: fetch-depth: 0 ref: ${{ github.event.pull_request.head.ref }} From df0179ef583f333b3f8c2717b0742b9d2613a106 Mon Sep 17 00:00:00 2001 From: "j.spijker@ultimaker.com" Date: Thu, 1 Sep 2022 10:26:02 +0200 Subject: [PATCH 82/89] define it as inputs --- .github/workflows/conan-recipe-version.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/conan-recipe-version.yml b/.github/workflows/conan-recipe-version.yml index 78ff667387..7c99b61c9e 100644 --- a/.github/workflows/conan-recipe-version.yml +++ b/.github/workflows/conan-recipe-version.yml @@ -58,14 +58,14 @@ jobs: steps: - name: Checkout repo uses: actions/checkout@v3 - if: ${{ ! is_external_pr }} + if: ${{ ! inputs.is_external_pr }} with: fetch-depth: 0 ref: ${{ github.head_ref }} - name: Checkout repo PR uses: actions/checkout@v3 - if: ${{ is_external_pr }} + if: ${{ inputs.is_external_pr }} with: fetch-depth: 0 ref: ${{ github.event.pull_request.head.ref }} From 76466b776afd3ef7d848584682e29ec74893aaf2 Mon Sep 17 00:00:00 2001 From: jellespijker Date: Thu, 1 Sep 2022 12:00:07 +0200 Subject: [PATCH 83/89] Use different checkout scheme based on forked repo --- .github/workflows/conan-recipe-version.yml | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/.github/workflows/conan-recipe-version.yml b/.github/workflows/conan-recipe-version.yml index 7c99b61c9e..c6bac8d8ab 100644 --- a/.github/workflows/conan-recipe-version.yml +++ b/.github/workflows/conan-recipe-version.yml @@ -12,11 +12,6 @@ on: default: "" type: string - is_external_pr: - required: false - default: false - type: boolean - outputs: recipe_id_full: description: "The full Conan recipe id: /@/" @@ -58,14 +53,14 @@ jobs: steps: - name: Checkout repo uses: actions/checkout@v3 - if: ${{ ! inputs.is_external_pr }} + if: ${{ github.event.pull_request.head.repo.full_name == github.repository }} with: fetch-depth: 0 ref: ${{ github.head_ref }} - name: Checkout repo PR uses: actions/checkout@v3 - if: ${{ inputs.is_external_pr }} + if: ${{ github.event.pull_request.head.repo.full_name != github.repository }} with: fetch-depth: 0 ref: ${{ github.event.pull_request.head.ref }} From 03c6686f7d18ca18735a55e2f4553f605e20fb16 Mon Sep 17 00:00:00 2001 From: "j.spijker@ultimaker.com" Date: Thu, 1 Sep 2022 12:02:33 +0200 Subject: [PATCH 84/89] Only run create package on our pr --- .github/workflows/conan-package-create.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/conan-package-create.yml b/.github/workflows/conan-package-create.yml index 4af608b7ac..f753b76e71 100644 --- a/.github/workflows/conan-package-create.yml +++ b/.github/workflows/conan-package-create.yml @@ -53,6 +53,7 @@ env: jobs: conan-package-create: + if: ${{ github.event.pull_request.head.repo.full_name == github.repository }} runs-on: ${{ inputs.runs_on }} steps: From e59aa8e22ba64eb08532f9357d6de11cc3b9f8c8 Mon Sep 17 00:00:00 2001 From: jellespijker Date: Thu, 1 Sep 2022 12:13:31 +0200 Subject: [PATCH 85/89] temporary fix for external PR --- .github/workflows/conan-recipe-version.yml | 60 ++++++++++++---------- 1 file changed, 32 insertions(+), 28 deletions(-) diff --git a/.github/workflows/conan-recipe-version.yml b/.github/workflows/conan-recipe-version.yml index c6bac8d8ab..20be4a2342 100644 --- a/.github/workflows/conan-recipe-version.yml +++ b/.github/workflows/conan-recipe-version.yml @@ -130,36 +130,40 @@ jobs: latest_branch_version = version latest_branch_tag = repo.tag(tag) - # %% Get the actual version - no_commits = 0 - for commit in repo.iter_commits("HEAD"): - if commit == latest_branch_tag.commit: - break - no_commits += 1 - - if no_commits == 0: - # This is a release - actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{latest_branch_version.patch}" - if channel == "stable": - user = "_" - channel = "_" - else: - if latest_branch_version.prerelease and not "." in latest_branch_version.prerelease: - # The prerealese did not contain a version number, default it to 1 - latest_branch_version.prerelease += ".1" - if event_name == "pull_request": - actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{latest_branch_version.patch}-{latest_branch_version.prerelease.lower()}+{buildmetadata}pr_{issue_number}_{no_commits}" + if latest_branch_tag: + # %% Get the actual version + no_commits = 0 + for commit in repo.iter_commits("HEAD"): + if commit == latest_branch_tag.commit: + break + no_commits += 1 + + if no_commits == 0: + # This is a release + actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{latest_branch_version.patch}" + if channel == "stable": + user = "_" + channel = "_" else: - if channel in ("stable", "_", ""): - channel_metadata = f"{no_commits}" + if latest_branch_version.prerelease and not "." in latest_branch_version.prerelease: + # The prerealese did not contain a version number, default it to 1 + latest_branch_version.prerelease += ".1" + if event_name == "pull_request": + actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{latest_branch_version.patch}-{latest_branch_version.prerelease.lower()}+{buildmetadata}pr_{issue_number}_{no_commits}" else: - channel_metadata = f"{channel}_{no_commits}" - # FIXME: for when we create a new release branch - if latest_branch_version.prerelease == "": - bump_up_minor = int(latest_branch_version.minor) + 1 - actual_version = f"{latest_branch_version.major}.{bump_up_minor}.{latest_branch_version.patch}-alpha+{buildmetadata}{channel_metadata}" - else: - actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{latest_branch_version.patch}-{latest_branch_version.prerelease.lower()}+{buildmetadata}{channel_metadata}" + if channel in ("stable", "_", ""): + channel_metadata = f"{no_commits}" + else: + channel_metadata = f"{channel}_{no_commits}" + # FIXME: for when we create a new release branch + if latest_branch_version.prerelease == "": + bump_up_minor = int(latest_branch_version.minor) + 1 + actual_version = f"{latest_branch_version.major}.{bump_up_minor}.{latest_branch_version.patch}-alpha+{buildmetadata}{channel_metadata}" + else: + actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{latest_branch_version.patch}-{latest_branch_version.prerelease.lower()}+{buildmetadata}{channel_metadata}" + else: + # FIXME: for external PR's + actual_version = f"5.2.0-alpha+{buildmetadata}pr_{issue_number}_{no_commits}" # %% print to output cmd_name = ["echo", f"::set-output name=name::{project_name}"] From 3f02a96b339488e66526ba82ff83930aa4409815 Mon Sep 17 00:00:00 2001 From: jelle Spijker Date: Thu, 1 Sep 2022 12:15:21 +0200 Subject: [PATCH 86/89] don't use no_commits --- .github/workflows/conan-recipe-version.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/conan-recipe-version.yml b/.github/workflows/conan-recipe-version.yml index 20be4a2342..3e86c880a6 100644 --- a/.github/workflows/conan-recipe-version.yml +++ b/.github/workflows/conan-recipe-version.yml @@ -163,7 +163,7 @@ jobs: actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{latest_branch_version.patch}-{latest_branch_version.prerelease.lower()}+{buildmetadata}{channel_metadata}" else: # FIXME: for external PR's - actual_version = f"5.2.0-alpha+{buildmetadata}pr_{issue_number}_{no_commits}" + actual_version = f"5.2.0-alpha+{buildmetadata}pr_{issue_number}" # %% print to output cmd_name = ["echo", f"::set-output name=name::{project_name}"] From 6563ba32b442c95c044a868fdb67a03f8e8d898d Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 1 Sep 2022 14:12:02 +0200 Subject: [PATCH 87/89] Fix crash with removedPrinterMessage --- .../UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py b/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py index c047fee4f2..c875eb183a 100644 --- a/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py +++ b/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py @@ -15,7 +15,7 @@ class RemovedPrintersMessage(Message): "info:status", "This printer is not linked to the Digital Factory:", "These printers are not linked to the Digital Factory:", - len(self.removed_devices) + len(self._removed_devices) ) message_text += "
      {}

    ".format(device_names) From 053437a50211ed82b91c8a8e5b988ddda5af200d Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Thu, 1 Sep 2022 14:15:06 +0200 Subject: [PATCH 88/89] UX: The color needs to be the same. --- plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml index c55c00f378..e508f70cbb 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml @@ -86,7 +86,7 @@ Component visible: Cura.MachineManager.activeMachineIsAbstractCloudPrinter - color: UM.Theme.getColor("detail_background") + color: UM.Theme.getColor("monitor_stage_background") height: childrenRect.height + UM.Theme.getSize("default_margin").height * 2 width: childrenRect.width + UM.Theme.getSize("wide_margin").width * 2 anchors From 89fbac74f94877d74b2d02f2b3b167ee4eacf32c Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 1 Sep 2022 17:51:25 +0200 Subject: [PATCH 89/89] Fix incorrectly setting material_print_temperature If this is set to an absolute value, the material settings wont have any effect anymore. A much better way is to just set the default temperature, which is what the intent is --- resources/definitions/SV02.def.json | 8 +++----- resources/definitions/crazy3dprint_cz_300.def.json | 3 +-- resources/definitions/creality_ender6.def.json | 4 ++-- resources/definitions/cremaker_common.def.json | 1 - resources/definitions/eryone_er20.def.json | 4 ++-- resources/definitions/eryone_thinker.def.json | 1 - resources/definitions/hms434.def.json | 1 - resources/definitions/koonovo_base.def.json | 2 +- resources/definitions/koonovo_kn3.def.json | 5 ++--- resources/definitions/koonovo_kn5.def.json | 5 ++--- resources/definitions/maker_made_300x.def.json | 1 - resources/definitions/renkforce_rf100.def.json | 2 +- resources/definitions/renkforce_rf100_v2.def.json | 3 --- resources/definitions/renkforce_rf100_xl.def.json | 3 --- resources/definitions/skriware_2.def.json | 8 ++++---- 15 files changed, 18 insertions(+), 33 deletions(-) diff --git a/resources/definitions/SV02.def.json b/resources/definitions/SV02.def.json index 352cd23394..b718f19a9a 100644 --- a/resources/definitions/SV02.def.json +++ b/resources/definitions/SV02.def.json @@ -28,7 +28,7 @@ "retraction_speed": { "default_value": 50}, "gantry_height": { "value": "30" }, "speed_print": { "default_value": 50 }, - "material_print_temperature": { "value": 195 }, + "default_material_print_temperature": { "value": 195 }, "material_print_temperature_layer_0": { "value": "material_print_temperature" }, "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_final_print_temperature": { "value": 195 }, @@ -41,11 +41,9 @@ "machine_max_acceleration_z": { "value": 100 }, "machine_max_acceleration_e": { "value": 500 }, "machine_acceleration": { "value": 500 }, - "machine_max_jerk_xy": { "value": 8 }, - "machine_max_jerk_z": { "value": 0.4 }, - "machine_max_jerk_e": { "value": 5 }, + "material_diameter": { "default_value": 1.75 }, - "infill_overlap": { "default_value": 15 }, + "acceleration_print": { "value": 500 }, "acceleration_travel": { "value": 500 }, "acceleration_travel_layer_0": { "value": "acceleration_travel" }, diff --git a/resources/definitions/crazy3dprint_cz_300.def.json b/resources/definitions/crazy3dprint_cz_300.def.json index 56d3d69757..2748b39b53 100644 --- a/resources/definitions/crazy3dprint_cz_300.def.json +++ b/resources/definitions/crazy3dprint_cz_300.def.json @@ -36,9 +36,8 @@ "min_infill_area": { "default_value": 2.0 }, "retract_at_layer_change": { "default_value": true }, "default_material_print_temperature": { "default_value": 210 }, - "material_print_temperature": { "value": 210 }, "material_final_print_temperature": { "value": 210 }, - "material_bed_temperature": { "value": 70 }, + "default_material_bed_temperature": { "value": 70 }, "material_bed_temperature_layer_0": { "value": 70 }, "material_flow_layer_0": {"value": 140}, "retraction_amount": { "default_value": 10 }, diff --git a/resources/definitions/creality_ender6.def.json b/resources/definitions/creality_ender6.def.json index 56ceab88b2..1df152b7ca 100644 --- a/resources/definitions/creality_ender6.def.json +++ b/resources/definitions/creality_ender6.def.json @@ -14,8 +14,8 @@ "infill_sparse_density": { "value": "10"}, "infill_pattern": { "value": "'lines' if infill_sparse_density > 50 else 'grid'"}, "infill_overlap":{"value": 10}, - "material_print_temperature":{"value": 220}, - "material_bed_temperature":{"value": 50}, + "default_material_print_temperature":{"value": 220}, + "default_material_bed_temperature":{"value": 50}, "retraction_amount":{"value": 10}, "speed_travel": { "value": 80.0 }, "coasting_enable": { "value": true}, diff --git a/resources/definitions/cremaker_common.def.json b/resources/definitions/cremaker_common.def.json index 6fd339f58f..48b7d4042c 100644 --- a/resources/definitions/cremaker_common.def.json +++ b/resources/definitions/cremaker_common.def.json @@ -24,7 +24,6 @@ "xy_offset": { "value": 0.1 }, "xy_offset_layer_0": { "value": -0.1 }, "hole_xy_offset": { "value": 0.15 }, - "material_print_temperature": { "value": 200 }, "speed_travel": { "value": 100 }, "speed_layer_0": { "value": 25 }, "acceleration_enabled": { "value": true }, diff --git a/resources/definitions/eryone_er20.def.json b/resources/definitions/eryone_er20.def.json index 2f5f02d7db..c19a8b1035 100644 --- a/resources/definitions/eryone_er20.def.json +++ b/resources/definitions/eryone_er20.def.json @@ -53,7 +53,7 @@ "machine_end_gcode": { "default_value": "G91 ;Relative positioning\nG1 Z5 F720 ;Raise Z\nG1 E-5 F300 ;Retract a bit to protect nozzle\nM104 S0 ;Turn off extruder\nM140 S0 ;Turn off bed\nM107 ;Turn off all fans\nG90 ;Absolute positioning\nG1 X230 Y200 F4800 ;Parking the hotend\nM84 X Y E ;All steppers off but left Z\n" }, - "material_print_temperature": { + "default_material_print_temperature": { "value": 205 }, "material_print_temperature_layer_0": { @@ -103,7 +103,7 @@ "infill_before_walls": { "value": false }, - "material_bed_temperature": { + "default_material_bed_temperature": { "value": 60 }, "material_bed_temperature_layer_0": { diff --git a/resources/definitions/eryone_thinker.def.json b/resources/definitions/eryone_thinker.def.json index 33c96f45ca..e2dbd44215 100644 --- a/resources/definitions/eryone_thinker.def.json +++ b/resources/definitions/eryone_thinker.def.json @@ -138,7 +138,6 @@ "value": "material_print_temperature" }, "material_bed_temperature": { - "value": "default_material_bed_temperature", "maximum_value_warning": 100 }, "material_bed_temperature_layer_0": { diff --git a/resources/definitions/hms434.def.json b/resources/definitions/hms434.def.json index 80466d45bd..bf5a601dbd 100644 --- a/resources/definitions/hms434.def.json +++ b/resources/definitions/hms434.def.json @@ -113,7 +113,6 @@ "material_initial_print_temperature": {"value": "material_print_temperature", "maximum_value_warning": "material_print_temperature + 15", "maximum_value": "401" }, - "material_initial_print_temperature": {"maximum_value": "401" }, "material_final_print_temperature": {"value": "material_print_temperature", "maximum_value": "401" }, "material_break_preparation_temperature": {"maximum_value": "401" }, diff --git a/resources/definitions/koonovo_base.def.json b/resources/definitions/koonovo_base.def.json index bb984d6650..c2713c7a44 100644 --- a/resources/definitions/koonovo_base.def.json +++ b/resources/definitions/koonovo_base.def.json @@ -58,7 +58,7 @@ "infill_sparse_density": { "value": "15" }, "infill_pattern": { "value": "'lines' if infill_sparse_density > 50 else 'cubic'" }, - "material_print_temperature": { "value": "195" }, + "default_material_print_temperature": { "value": "195" }, "material_print_temperature_layer_0": { "value": "material_print_temperature" }, "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_final_print_temperature": { "value": "material_print_temperature" }, diff --git a/resources/definitions/koonovo_kn3.def.json b/resources/definitions/koonovo_kn3.def.json index dc0c40837d..485190958d 100644 --- a/resources/definitions/koonovo_kn3.def.json +++ b/resources/definitions/koonovo_kn3.def.json @@ -75,12 +75,11 @@ "infill_sparse_density": { "value": "15" }, "infill_pattern": { "value": "'lines' if infill_sparse_density > 50 else 'cubic'" }, - "material_print_temperature": { "value": "195" }, + "default_material_print_temperature": { "value": "195" }, "material_print_temperature_layer_0": { "value": "material_print_temperature" }, "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_final_print_temperature": { "value": "material_print_temperature" }, - "material_bed_temperature": { "value": "55" }, - "material_bed_temperature_layer_0": { "value": "material_bed_temperature" }, + "default_material_bed_temperature": { "value": "55" }, "material_flow": { "value": 100 }, "material_standby_temperature": { "value": "material_print_temperature" }, diff --git a/resources/definitions/koonovo_kn5.def.json b/resources/definitions/koonovo_kn5.def.json index 9870c85eb6..8b517a232a 100644 --- a/resources/definitions/koonovo_kn5.def.json +++ b/resources/definitions/koonovo_kn5.def.json @@ -77,13 +77,12 @@ "infill_sparse_density": { "value": "15" }, "infill_pattern": { "value": "'lines' if infill_sparse_density > 50 else 'cubic'" }, - "material_print_temperature": { "value": "195" }, + "default_material_print_temperature": { "value": "195" }, "material_print_temperature_layer_0": { "value": "material_print_temperature" }, "material_initial_print_temperature": { "value": "material_print_temperature" }, "material_final_print_temperature": { "value": "material_print_temperature" }, "material_standby_temperature": { "value": "material_print_temperature" }, - "material_bed_temperature": { "value": "45" }, - "material_bed_temperature_layer_0": { "value": "material_bed_temperature" }, + "default_material_bed_temperature": { "value": "45" }, "material_flow": { "value": 100 }, "speed_print": { "value": 50.0 } , diff --git a/resources/definitions/maker_made_300x.def.json b/resources/definitions/maker_made_300x.def.json index 70479856e3..0be2112bed 100644 --- a/resources/definitions/maker_made_300x.def.json +++ b/resources/definitions/maker_made_300x.def.json @@ -68,7 +68,6 @@ "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}, diff --git a/resources/definitions/renkforce_rf100.def.json b/resources/definitions/renkforce_rf100.def.json index 7ad092ce8f..f241df9a44 100644 --- a/resources/definitions/renkforce_rf100.def.json +++ b/resources/definitions/renkforce_rf100.def.json @@ -104,7 +104,7 @@ "material_flow": { "value": "110" }, - "material_print_temperature": { + "default_material_print_temperature": { "value": "210.0" }, "ooze_shield_enabled": { diff --git a/resources/definitions/renkforce_rf100_v2.def.json b/resources/definitions/renkforce_rf100_v2.def.json index 05907a1c20..881b5c94ca 100644 --- a/resources/definitions/renkforce_rf100_v2.def.json +++ b/resources/definitions/renkforce_rf100_v2.def.json @@ -104,9 +104,6 @@ "material_flow": { "value": "110" }, - "material_print_temperature": { - "value": "210.0" - }, "ooze_shield_enabled": { "value": "True" }, diff --git a/resources/definitions/renkforce_rf100_xl.def.json b/resources/definitions/renkforce_rf100_xl.def.json index f0e8644ae4..f0e26487f1 100644 --- a/resources/definitions/renkforce_rf100_xl.def.json +++ b/resources/definitions/renkforce_rf100_xl.def.json @@ -92,9 +92,6 @@ "material_bed_temperature": { "value": "70" }, - "material_print_temperature": { - "value": "210.0" - }, "ooze_shield_enabled": { "value": "True" }, diff --git a/resources/definitions/skriware_2.def.json b/resources/definitions/skriware_2.def.json index dbcf140585..7bb6968865 100644 --- a/resources/definitions/skriware_2.def.json +++ b/resources/definitions/skriware_2.def.json @@ -30,8 +30,11 @@ "support_skip_zag_per_mm": { "default_value": 10 }, + "default_material_bed_temperature": + { + "value": "50" + }, "material_bed_temperature": { - "value": "50", "minimum_value_warning": "30", "resolve": "extruderValues('material_bed_temperature')[adhesion_extruder_nr] if resolveOrValue('adhesion_type') == 'raft' else max(extruderValues('material_bed_temperature'))" }, @@ -366,9 +369,6 @@ "z_seam_x": { "value": "115" }, - "material_print_temperature": { - "value": "195" - }, "material_bed_temperature_layer_0": { "value": "50", "minimum_value_warning": "30",