Merge branch 'main' of github.com:Ultimaker/Cura into CURA-8463_cloud_configuration

This commit is contained in:
Jaime van Kessel 2022-08-31 10:39:05 +02:00
commit 4c55befad7
No known key found for this signature in database
GPG key ID: C85F7A3AF1BAA7C4
237 changed files with 130 additions and 251 deletions

View file

@ -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
@ -91,10 +92,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,
})

View file

@ -531,6 +531,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:
@ -555,6 +559,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)

View file

@ -156,6 +156,7 @@ class ThreeMFWorkspaceWriter(WorkspaceWriter):
"connection_type",
"capabilities",
"octoprint_api_key",
"is_online",
}
serialized_data = container.serialize(ignored_metadata_keys = ignore_keys)

View file

@ -12,6 +12,7 @@ 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)
@ -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,18 +110,62 @@ 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
}
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
visible: !isNetworkConfigured && isNetworkConfigurable && !isAbstractCloudPrinter
width: childrenRect.width
height: childrenRect.height

View file

@ -207,9 +207,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],
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 models and calls the correct callback depending on the result.
"""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.
@ -218,7 +218,10 @@ class CloudApiClient:
if "data" in response:
data = response["data"]
if isinstance(data, list):
if "status" in data and data["status"] == "wait_approval":
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)
@ -260,7 +263,7 @@ class CloudApiClient:
if status_code >= 300 and on_error is not None:
on_error()
else:
self._parseModels(response, on_finished, model)
self._parseResponse(response, on_finished, model)
self._anti_gc_callbacks.append(parse)
return parse

View file

@ -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,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
@ -231,6 +232,7 @@ class CloudOutputDevice(UltimakerNetworkedPrinterOutputDevice):
:param job_response: The response received from the cloud API.
"""
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
@ -262,19 +264,21 @@ class CloudOutputDevice(UltimakerNetworkedPrinterOutputDevice):
"""
self._uploaded_print_job = self._pre_upload_print_job
self._progress.hide()
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"),
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}" \
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()))
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()
else:
PrintJobPendingApprovalMessage(self._cluster.cluster_id).show()
self.writeFinished.emit()
def _onPrintUploadSpecificError(self, reply: "QNetworkReply", _: "QNetworkReply.NetworkError"):

View file

@ -0,0 +1,38 @@
# 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
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:
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"),
message_type=Message.MessageType.POSITIVE
)
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)
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(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?utm_source=cura&utm_medium=software&utm_campaign=message-printjob-sent"))

View file

@ -6335,6 +6335,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":

View file

@ -24,6 +24,7 @@
"maximum_value_warning": "125"
},
"material_standby_temperature": {
"value": "material_print_temperature - 100",
"minimum_value": "0"
},
"extruder_prime_pos_y":

View file

@ -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 },

View file

@ -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" },
@ -134,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" },

View file

@ -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" },
@ -136,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" },

View file

@ -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)

View file

@ -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

View file

@ -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)

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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

View file

@ -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)

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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)

View file

@ -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

View file

@ -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)

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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)

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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)

Some files were not shown because too many files have changed in this diff Show more