Merge remote-tracking branch 'origin/master' into CURA-7437_no_internet_cloud_bugs

This commit is contained in:
Nino van Hooff 2020-06-09 10:47:53 +02:00
commit 32f57b8770
139 changed files with 2614 additions and 277 deletions

View file

@ -112,9 +112,6 @@ class Account(QObject):
:param service_name: A unique name for your service, such as `plugins` or `backups` :param service_name: A unique name for your service, such as `plugins` or `backups`
:param state: One of SyncState :param state: One of SyncState
""" """
Logger.info("Service {service} enters sync state {state}", service = service_name, state = state)
prev_state = self._sync_state prev_state = self._sync_state
self._sync_services[service_name] = state self._sync_services[service_name] = state

View file

@ -308,6 +308,9 @@ class CuraApplication(QtApplication):
super().initialize() super().initialize()
self._preferences.addPreference("cura/single_instance", False)
self._use_single_instance = self._preferences.getValue("cura/single_instance")
self.__sendCommandToSingleInstance() self.__sendCommandToSingleInstance()
self._initializeSettingDefinitions() self._initializeSettingDefinitions()
self._initializeSettingFunctions() self._initializeSettingFunctions()

View file

@ -1,6 +1,6 @@
# Copyright (c) 2020 Ultimaker B.V. # Copyright (c) 2020 Ultimaker B.V.
# Cura is released under the terms of the LGPLv3 or higher. # Cura is released under the terms of the LGPLv3 or higher.
import sys
import threading import threading
from typing import Any, Callable, Optional, TYPE_CHECKING from typing import Any, Callable, Optional, TYPE_CHECKING
@ -71,7 +71,7 @@ class LocalAuthorizationServer:
self._web_server.setState(state) self._web_server.setState(state)
# Start the server on a new thread. # Start the server on a new thread.
self._web_server_thread = threading.Thread(None, self._web_server.serve_forever, daemon = self._daemon) self._web_server_thread = threading.Thread(None, self._serve_forever, daemon = self._daemon)
self._web_server_thread.start() self._web_server_thread.start()
def stop(self) -> None: def stop(self) -> None:
@ -87,3 +87,21 @@ class LocalAuthorizationServer:
pass pass
self._web_server = None self._web_server = None
self._web_server_thread = None self._web_server_thread = None
def _serve_forever(self) -> None:
"""
If the platform is windows, this function calls the serve_forever function of the _web_server, catching any
OSErrors that may occur in the thread, thus making the reported message more log-friendly.
If it is any other platform, it just calls the serve_forever function immediately.
:return: None
"""
if self._web_server:
if sys.platform == "win32":
try:
self._web_server.serve_forever()
except OSError as e:
Logger.warning(str(e))
else:
# Leave the default behavior in non-windows platforms
self._web_server.serve_forever()

View file

@ -6,6 +6,7 @@ from PyQt5.QtWidgets import QApplication
from UM.Scene.Camera import Camera from UM.Scene.Camera import Camera
from cura.UI.ObjectsModel import ObjectsModel from cura.UI.ObjectsModel import ObjectsModel
from cura.Machines.Models.MultiBuildPlateModel import MultiBuildPlateModel from cura.Machines.Models.MultiBuildPlateModel import MultiBuildPlateModel
from cura.Scene.CuraSceneNode import CuraSceneNode
from UM.Application import Application from UM.Application import Application
from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator
@ -43,6 +44,26 @@ class CuraSceneController(QObject):
self._change_timer.start() self._change_timer.start()
def updateMaxBuildPlate(self, *args): def updateMaxBuildPlate(self, *args):
global_stack = Application.getInstance().getGlobalContainerStack()
if global_stack:
scene_has_support_meshes = self._sceneHasSupportMeshes() # TODO: see if this can be cached
if scene_has_support_meshes != global_stack.getProperty("support_meshes_present", "value"):
# Adjust the setting without having the setting value in an InstanceContainer
setting_definitions = global_stack.definition.findDefinitions(key="support_meshes_present")
if setting_definitions:
# Recreate the setting definition because the default_value is readonly
definition_dict = setting_definitions[0].serialize_to_dict()
definition_dict["enabled"] = False # The enabled property has a value that would need to be evaluated
definition_dict["default_value"] = scene_has_support_meshes
relations = setting_definitions[0].relations # Relations are wiped when deserializing from a dict
setting_definitions[0].deserialize(definition_dict)
# Restore relations and notify them that the setting has changed
for relation in relations:
setting_definitions[0].relations.append(relation)
global_stack.propertyChanged.emit(relation.target.key, "enabled")
max_build_plate = self._calcMaxBuildPlate() max_build_plate = self._calcMaxBuildPlate()
changed = False changed = False
if max_build_plate != self._max_build_plate: if max_build_plate != self._max_build_plate:
@ -72,6 +93,15 @@ class CuraSceneController(QObject):
max_build_plate = max(build_plate_number, max_build_plate) max_build_plate = max(build_plate_number, max_build_plate)
return max_build_plate return max_build_plate
def _sceneHasSupportMeshes(self):
root = Application.getInstance().getController().getScene().getRoot()
for node in root.getAllChildren():
if isinstance(node, CuraSceneNode):
per_mesh_stack = node.callDecoration("getStack")
if per_mesh_stack and per_mesh_stack.getProperty("support_mesh", "value"):
return True
return False
@pyqtSlot(int) @pyqtSlot(int)
def changeSelection(self, index): def changeSelection(self, index):
"""Either select or deselect an item""" """Either select or deselect an item"""

View file

@ -38,6 +38,12 @@ class CuraSceneNode(SceneNode):
def isSelectable(self) -> bool: def isSelectable(self) -> bool:
return super().isSelectable() and self.callDecoration("getBuildPlateNumber") == cura.CuraApplication.CuraApplication.getInstance().getMultiBuildPlateModel().activeBuildPlate return super().isSelectable() and self.callDecoration("getBuildPlateNumber") == cura.CuraApplication.CuraApplication.getInstance().getMultiBuildPlateModel().activeBuildPlate
def isSupportMesh(self) -> bool:
per_mesh_stack = self.callDecoration("getStack")
if not per_mesh_stack:
return False
return per_mesh_stack.getProperty("support_mesh", "value")
def getPrintingExtruder(self) -> Optional[ExtruderStack]: def getPrintingExtruder(self) -> Optional[ExtruderStack]:
"""Get the extruder used to print this node. If there is no active node, then the extruder in position zero is returned """Get the extruder used to print this node. If there is no active node, then the extruder in position zero is returned

View file

@ -60,7 +60,6 @@ class MachineSettingsManager(QObject):
# In other words: only continue for the UM2 (extended), but not for the UM2+ # In other words: only continue for the UM2 (extended), but not for the UM2+
return return
extruder_positions = list(global_stack.extruders.keys())
has_materials = global_stack.getProperty("machine_gcode_flavor", "value") != "UltiGCode" has_materials = global_stack.getProperty("machine_gcode_flavor", "value") != "UltiGCode"
material_node = None material_node = None
@ -73,12 +72,11 @@ class MachineSettingsManager(QObject):
global_stack.removeMetaDataEntry("has_materials") global_stack.removeMetaDataEntry("has_materials")
# set materials # set materials
for position in extruder_positions: for position, extruder in enumerate(global_stack.extruderList):
if has_materials: if has_materials:
extruder = global_stack.extruderList[int(position)]
approximate_diameter = extruder.getApproximateMaterialDiameter() approximate_diameter = extruder.getApproximateMaterialDiameter()
variant_node = ContainerTree.getInstance().machines[global_stack.definition.getId()].variants[extruder.variant.getName()] variant_node = ContainerTree.getInstance().machines[global_stack.definition.getId()].variants[extruder.variant.getName()]
material_node = variant_node.preferredMaterial(approximate_diameter) material_node = variant_node.preferredMaterial(approximate_diameter)
machine_manager.setMaterial(position, material_node) machine_manager.setMaterial(str(position), material_node)
self.forceUpdate() self.forceUpdate()

View file

@ -466,10 +466,10 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
extruder_info.intent_info = instance_container_info_dict[intent_id] extruder_info.intent_info = instance_container_info_dict[intent_id]
if not machine_conflict and containers_found_dict["machine"]: if not machine_conflict and containers_found_dict["machine"]:
if position not in global_stack.extruders: if int(position) >= len(global_stack.extrurderList):
continue continue
existing_extruder_stack = global_stack.extruders[position] existing_extruder_stack = global_stack.extruderList[int(position)]
# check if there are any changes at all in any of the container stacks. # check if there are any changes at all in any of the container stacks.
id_list = self._getContainerIdListFromSerialized(serialized) id_list = self._getContainerIdListFromSerialized(serialized)
for index, container_id in enumerate(id_list): for index, container_id in enumerate(id_list):

View file

@ -1,4 +1,4 @@
# Copyright (c) 2018 Ultimaker B.V. # Copyright (c) 2020 Ultimaker B.V.
# Cura is released under the terms of the LGPLv3 or higher. # Cura is released under the terms of the LGPLv3 or higher.
from UM.Application import Application from UM.Application import Application
@ -114,7 +114,7 @@ class FirmwareUpdateCheckerJob(Job):
# notify the user when no new firmware version is available. # notify the user when no new firmware version is available.
if (checked_version != "") and (checked_version != current_version): if (checked_version != "") and (checked_version != current_version):
Logger.log("i", "Showing firmware update message for new version: {version}".format(version = current_version)) Logger.log("i", "Showing firmware update message for new version: {version}".format(version = current_version))
message = FirmwareUpdateCheckerMessage(machine_id, self._machine_name, message = FirmwareUpdateCheckerMessage(machine_id, self._machine_name, current_version,
self._lookups.getRedirectUserUrl()) self._lookups.getRedirectUserUrl())
message.actionTriggered.connect(self._callback) message.actionTriggered.connect(self._callback)
message.show() message.show()

View file

@ -1,4 +1,4 @@
# Copyright (c) 2018 Ultimaker B.V. # Copyright (c) 2020 Ultimaker B.V.
# Cura is released under the terms of the LGPLv3 or higher. # Cura is released under the terms of the LGPLv3 or higher.
from UM.i18n import i18nCatalog from UM.i18n import i18nCatalog
@ -11,11 +11,12 @@ i18n_catalog = i18nCatalog("cura")
class FirmwareUpdateCheckerMessage(Message): class FirmwareUpdateCheckerMessage(Message):
STR_ACTION_DOWNLOAD = "download" STR_ACTION_DOWNLOAD = "download"
def __init__(self, machine_id: int, machine_name: str, download_url: str) -> None: def __init__(self, machine_id: int, machine_name: str, latest_version: str, download_url: str) -> None:
super().__init__(i18n_catalog.i18nc( super().__init__(i18n_catalog.i18nc(
"@info Don't translate {machine_name}, since it gets replaced by a printer name!", "@info Don't translate {machine_name}, since it gets replaced by a printer name!",
"New features are available for your {machine_name}! It is recommended to update the firmware on your printer.").format( "New features or bug-fixes may be available for your {machine_name}! If not already at the latest version, "
machine_name = machine_name), "it is recommended to update the firmware on your printer to version {latest_version}.").format(
machine_name = machine_name, latest_version = latest_version),
title = i18n_catalog.i18nc( title = i18n_catalog.i18nc(
"@info:title The %s gets replaced with the printer name.", "@info:title The %s gets replaced with the printer name.",
"New %s firmware available") % machine_name) "New %s firmware available") % machine_name)

View file

@ -32,10 +32,7 @@ Item
var type = currentMeshType var type = currentMeshType
// set checked state of mesh type buttons // set checked state of mesh type buttons
normalButton.checked = type === normalMeshType updateMeshTypeCheckedState(type)
supportMeshButton.checked = type === supportMeshType
overhangMeshButton.checked = type === infillMeshType || type === cuttingMeshType
antiOverhangMeshButton.checked = type === antiOverhangMeshType
// update active type label // update active type label
for (var button in meshTypeButtons.children) for (var button in meshTypeButtons.children)
@ -49,9 +46,19 @@ Item
visibility_handler.addSkipResetSetting(currentMeshType) visibility_handler.addSkipResetSetting(currentMeshType)
} }
function updateMeshTypeCheckedState(type)
{
// set checked state of mesh type buttons
normalButton.checked = type === normalMeshType
supportMeshButton.checked = type === supportMeshType
overlapMeshButton.checked = type === infillMeshType || type === cuttingMeshType
antiOverhangMeshButton.checked = type === antiOverhangMeshType
}
function setMeshType(type) function setMeshType(type)
{ {
UM.ActiveTool.setProperty("MeshType", type) UM.ActiveTool.setProperty("MeshType", type)
updateMeshTypeCheckedState(type)
} }
UM.I18nCatalog { id: catalog; name: "cura"} UM.I18nCatalog { id: catalog; name: "cura"}
@ -95,7 +102,7 @@ Item
Button Button
{ {
id: overhangMeshButton id: overlapMeshButton
text: catalog.i18nc("@label", "Modify settings for overlaps") text: catalog.i18nc("@label", "Modify settings for overlaps")
iconSource: UM.Theme.getIcon("pos_modify_overlaps"); iconSource: UM.Theme.getIcon("pos_modify_overlaps");
property bool needBorder: true property bool needBorder: true

View file

@ -101,7 +101,7 @@ class SliceInfo(QObject, Extension):
user_modified_setting_keys = set() # type: Set[str] user_modified_setting_keys = set() # type: Set[str]
for stack in [global_stack] + list(global_stack.extruders.values()): for stack in [global_stack] + global_stack.extruderList:
# Get all settings in user_changes and quality_changes # Get all settings in user_changes and quality_changes
all_keys = stack.userChanges.getAllKeys() | stack.qualityChanges.getAllKeys() all_keys = stack.userChanges.getAllKeys() | stack.qualityChanges.getAllKeys()
user_modified_setting_keys |= all_keys user_modified_setting_keys |= all_keys
@ -152,7 +152,7 @@ class SliceInfo(QObject, Extension):
# add extruder specific data to slice info # add extruder specific data to slice info
data["extruders"] = [] data["extruders"] = []
extruders = list(global_stack.extruders.values()) extruders = global_stack.extruderList
extruders = sorted(extruders, key = lambda extruder: extruder.getMetaDataEntry("position")) extruders = sorted(extruders, key = lambda extruder: extruder.getMetaDataEntry("position"))
for extruder in extruders: for extruder in extruders:

View file

@ -62,7 +62,6 @@ class CloudPackageChecker(QObject):
def _getUserSubscribedPackages(self) -> None: def _getUserSubscribedPackages(self) -> None:
self._application.getCuraAPI().account.setSyncState(self.SYNC_SERVICE_NAME, SyncState.SYNCING) self._application.getCuraAPI().account.setSyncState(self.SYNC_SERVICE_NAME, SyncState.SYNCING)
Logger.debug("Requesting subscribed packages metadata from server.")
url = CloudApiModel.api_url_user_packages url = CloudApiModel.api_url_user_packages
self._application.getHttpRequestManager().get(url, self._application.getHttpRequestManager().get(url,
callback = self._onUserPackagesRequestFinished, callback = self._onUserPackagesRequestFinished,

View file

@ -97,7 +97,7 @@ class UFPWriter(MeshWriter):
Logger.log("w", "The material extension: %s was already added", material_extension) Logger.log("w", "The material extension: %s was already added", material_extension)
added_materials = [] added_materials = []
for extruder_stack in global_stack.extruders.values(): for extruder_stack in global_stack.extruderList:
material = extruder_stack.material material = extruder_stack.material
try: try:
material_file_name = material.getMetaData()["base_file"] + ".xml.fdm_material" material_file_name = material.getMetaData()["base_file"] + ".xml.fdm_material"

View file

@ -9,6 +9,7 @@ from PyQt5.QtNetwork import QNetworkReply
from UM import i18nCatalog from UM import i18nCatalog
from UM.Logger import Logger # To log errors talking to the API. from UM.Logger import Logger # To log errors talking to the API.
from UM.Message import Message from UM.Message import Message
from UM.Settings.Interfaces import ContainerInterface
from UM.Signal import Signal from UM.Signal import Signal
from cura.API import Account from cura.API import Account
from cura.API.Account import SyncState from cura.API.Account import SyncState
@ -49,6 +50,8 @@ class CloudOutputDeviceManager:
self._syncing = False self._syncing = False
CuraApplication.getInstance().getContainerRegistry().containerRemoved.connect(self._printerRemoved)
def start(self): def start(self):
"""Starts running the cloud output device manager, thus periodically requesting cloud data.""" """Starts running the cloud output device manager, thus periodically requesting cloud data."""
@ -286,3 +289,16 @@ class CloudOutputDeviceManager:
output_device_manager = CuraApplication.getInstance().getOutputDeviceManager() output_device_manager = CuraApplication.getInstance().getOutputDeviceManager()
if device.key not in output_device_manager.getOutputDeviceIds(): if device.key not in output_device_manager.getOutputDeviceIds():
output_device_manager.addOutputDevice(device) output_device_manager.addOutputDevice(device)
def _printerRemoved(self, container: ContainerInterface) -> None:
"""
Callback connected to the containerRemoved signal. Invoked when a cloud printer is removed from Cura to remove
the printer's reference from the _remote_clusters.
:param container: The ContainerInterface passed to this function whenever the ContainerRemoved signal is emitted
:return: None
"""
if isinstance(container, GlobalStack):
container_cluster_id = container.getMetaDataEntry(self.META_CLUSTER_ID, None)
if container_cluster_id in self._remote_clusters.keys():
del self._remote_clusters[container_cluster_id]

View file

@ -125,9 +125,6 @@ class ClusterPrintJobStatus(BaseModel):
model.updateOwner(self.owner) model.updateOwner(self.owner)
model.updateState(self.status) model.updateState(self.status)
model.setCompatibleMachineFamilies(self.compatible_machine_families) model.setCompatibleMachineFamilies(self.compatible_machine_families)
model.updateTimeTotal(self.time_total)
model.updateTimeElapsed(self.time_elapsed)
model.updateOwner(self.owner)
status_set_by_impediment = False status_set_by_impediment = False
for impediment in self.impediments_to_printing: for impediment in self.impediments_to_printing:

View file

@ -54,4 +54,4 @@ class ClusterPrinterConfigurationMaterial(BaseModel):
"name": "Empty" if self.material == "empty" else "Unknown" "name": "Empty" if self.material == "empty" else "Unknown"
} }
return MaterialOutputModel(guid = self.guid, type = material_metadata["material"], brand = material_metadata["brand"], color = material_metadata["color_code"], name = material_metadata["name"]) return MaterialOutputModel(guid = self.guid, type = material_metadata["material"], brand = material_metadata["brand"], color = material_metadata.get("color_code", "#ffc924"), name = material_metadata["name"])

View file

@ -18,7 +18,7 @@ class AutoDetectBaudJob(Job):
def __init__(self, serial_port: int) -> None: def __init__(self, serial_port: int) -> None:
super().__init__() super().__init__()
self._serial_port = serial_port self._serial_port = serial_port
self._all_baud_rates = [115200, 250000, 500000, 230400, 57600, 38400, 19200, 9600] self._all_baud_rates = [115200, 250000, 500000, 230400, 76800, 57600, 38400, 19200, 9600]
def run(self) -> None: def run(self) -> None:
Logger.log("d", "Auto detect baud rate started.") Logger.log("d", "Auto detect baud rate started.")

View file

@ -58,7 +58,7 @@ class USBPrinterOutputDevice(PrinterOutputDevice):
self._baud_rate = baud_rate self._baud_rate = baud_rate
self._all_baud_rates = [115200, 250000, 500000, 230400, 57600, 38400, 19200, 9600] self._all_baud_rates = [115200, 250000, 500000, 230400, 76800, 57600, 38400, 19200, 9600]
# Instead of using a timer, we really need the update to be as a thread, as reading from serial can block. # Instead of using a timer, we really need the update to be as a thread, as reading from serial can block.
self._update_thread = Thread(target = self._update, daemon = True, name = "USBPrinterUpdate") self._update_thread = Thread(target = self._update, daemon = True, name = "USBPrinterUpdate")

View file

@ -21,6 +21,15 @@ def getMetaData() -> Dict[str, Any]:
("quality_changes", 4000011): ("quality_changes", 4000013, upgrade.upgradeInstanceContainer), ("quality_changes", 4000011): ("quality_changes", 4000013, upgrade.upgradeInstanceContainer),
("quality", 4000011): ("quality", 4000013, upgrade.upgradeInstanceContainer), ("quality", 4000011): ("quality", 4000013, upgrade.upgradeInstanceContainer),
("user", 4000011): ("user", 4000013, upgrade.upgradeInstanceContainer), ("user", 4000011): ("user", 4000013, upgrade.upgradeInstanceContainer),
# Setting version 12 was also used during the 4.6 beta, but had no changes.
("preferences", 6000012): ("preferences", 6000013, upgrade.upgradePreferences),
("machine_stack", 4000012): ("machine_stack", 4000013, upgrade.upgradeStack),
("extruder_train", 4000012): ("extruder_train", 4000013, upgrade.upgradeStack),
("definition_changes", 4000012): ("definition_changes", 4000013, upgrade.upgradeInstanceContainer),
("quality_changes", 4000012): ("quality_changes", 4000013, upgrade.upgradeInstanceContainer),
("quality", 4000012): ("quality", 4000013, upgrade.upgradeInstanceContainer),
("user", 4000012): ("user", 4000013, upgrade.upgradeInstanceContainer),
}, },
"sources": { "sources": {
"preferences": { "preferences": {

View file

@ -1,86 +0,0 @@
# Copyright (c) 2020 Ultimaker B.V.
# Cura is released under the terms of the LGPLv3 or higher.
import configparser
from typing import Tuple, List
import io
from UM.VersionUpgrade import VersionUpgrade
class VersionUpgrade46bto46(VersionUpgrade):
def getCfgVersion(self, serialised: str) -> int:
parser = configparser.ConfigParser(interpolation = None)
parser.read_string(serialised)
format_version = int(parser.get("general", "version")) # Explicitly give an exception when this fails. That means that the file format is not recognised.
setting_version = int(parser.get("metadata", "setting_version", fallback = "0"))
return format_version * 1000000 + setting_version
def upgradePreferences(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]:
"""
Upgrades preferences to have the new version number.
:param serialized: The original contents of the preferences file.
:param filename: The file name of the preferences file.
:return: A list of new file names, and a list of the new contents for
those files.
"""
parser = configparser.ConfigParser(interpolation = None)
parser.read_string(serialized)
# Update version number.
parser["metadata"]["setting_version"] = "13"
result = io.StringIO()
parser.write(result)
return [filename], [result.getvalue()]
def upgradeInstanceContainer(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]:
"""
Upgrades instance containers to have the new version number.
This changes the maximum deviation setting if that setting was present
in the profile.
:param serialized: The original contents of the instance container.
:param filename: The original file name of the instance container.
:return: A list of new file names, and a list of the new contents for
those files.
"""
parser = configparser.ConfigParser(interpolation = None, comment_prefixes = ())
parser.read_string(serialized)
# Update version number.
parser["metadata"]["setting_version"] = "13"
if "values" in parser:
# Maximum Deviation's effect was corrected. Previously the deviation
# ended up being only half of what the user had entered. This was
# fixed in Cura 4.7 so there we need to halve the deviation that the
# user had entered.
if "meshfix_maximum_deviation" in parser["values"]:
maximum_deviation = parser["values"]["meshfix_maximum_deviation"]
if maximum_deviation.startswith("="):
maximum_deviation = maximum_deviation[1:]
maximum_deviation = "=(" + maximum_deviation + ") / 2"
parser["values"]["meshfix_maximum_deviation"] = maximum_deviation
result = io.StringIO()
parser.write(result)
return [filename], [result.getvalue()]
def upgradeStack(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]:
"""
Upgrades stacks to have the new version number.
:param serialized: The original contents of the stack.
:param filename: The original file name of the stack.
:return: A list of new file names, and a list of the new contents for
those files.
"""
parser = configparser.ConfigParser(interpolation = None)
parser.read_string(serialized)
# Update version number.
if "metadata" not in parser:
parser["metadata"] = {}
parser["metadata"]["setting_version"] = "13"
result = io.StringIO()
parser.write(result)
return [filename], [result.getvalue()]

View file

@ -1,59 +0,0 @@
# Copyright (c) 2020 Ultimaker B.V.
# Cura is released under the terms of the LGPLv3 or higher.
from typing import Any, Dict, TYPE_CHECKING
from . import VersionUpgrade46bto46
if TYPE_CHECKING:
from UM.Application import Application
upgrade = VersionUpgrade46bto46.VersionUpgrade46bto46()
def getMetaData() -> Dict[str, Any]:
return {
"version_upgrade": {
# From To Upgrade function
("preferences", 6000012): ("preferences", 6000013, upgrade.upgradePreferences),
("machine_stack", 4000012): ("machine_stack", 4000013, upgrade.upgradeStack),
("extruder_train", 4000012): ("extruder_train", 4000013, upgrade.upgradeStack),
("definition_changes", 4000012): ("definition_changes", 4000013, upgrade.upgradeInstanceContainer),
("quality_changes", 4000012): ("quality_changes", 4000013, upgrade.upgradeInstanceContainer),
("quality", 4000012): ("quality", 4000013, upgrade.upgradeInstanceContainer),
("user", 4000012): ("user", 4000013, upgrade.upgradeInstanceContainer),
},
"sources": {
"preferences": {
"get_version": upgrade.getCfgVersion,
"location": {"."}
},
"machine_stack": {
"get_version": upgrade.getCfgVersion,
"location": {"./machine_instances"}
},
"extruder_train": {
"get_version": upgrade.getCfgVersion,
"location": {"./extruders"}
},
"definition_changes": {
"get_version": upgrade.getCfgVersion,
"location": {"./definition_changes"}
},
"quality_changes": {
"get_version": upgrade.getCfgVersion,
"location": {"./quality_changes"}
},
"quality": {
"get_version": upgrade.getCfgVersion,
"location": {"./quality"}
},
"user": {
"get_version": upgrade.getCfgVersion,
"location": {"./user"}
}
}
}
def register(app: "Application") -> Dict[str, Any]:
return {"version_upgrade": upgrade}

View file

@ -1,8 +0,0 @@
{
"name": "Version Upgrade 4.6-beta to 4.6.0",
"author": "Ultimaker B.V.",
"version": "1.0.0",
"description": "Upgrades configurations from Cura 4.6-BETA to Cura 4.6.",
"api": "7.2.0",
"i18n-catalog": "cura"
}

View file

@ -0,0 +1,19 @@
{
"name": "Asterion",
"version": 2,
"inherits": "atmat_signal_pro_base",
"metadata":
{
"visible": true,
"platform": "atmat_asterion_platform.stl",
"quality_definition": "atmat_signal_pro_base"
},
"overrides":
{
"machine_name": { "default_value": "Asterion" },
"machine_width": { "default_value": 500 },
"machine_depth": { "default_value": 500 },
"machine_height": { "default_value": 600 }
}
}

View file

@ -0,0 +1,20 @@
{
"name": "Asterion HT",
"version": 2,
"inherits": "atmat_signal_pro_base",
"metadata":
{
"visible": true,
"platform": "atmat_asterion_platform.stl",
"quality_definition": "atmat_signal_pro_base"
},
"overrides":
{
"machine_name": { "default_value": "Asterion HT" },
"machine_width": { "default_value": 500 },
"machine_depth": { "default_value": 500 },
"machine_height": { "default_value": 600 },
"material_print_temperature": { "maximum_value_warning": 500 }
}
}

View file

@ -0,0 +1,36 @@
{
"name": "Galaxy 500",
"version": 2,
"inherits": "atmat_signal_pro_base",
"metadata":
{
"visible": true,
"quality_definition": "atmat_signal_pro_base"
},
"overrides":
{
"machine_name": { "default_value": "Galaxy 500" },
"machine_width": { "default_value": 400 },
"machine_depth": { "default_value": 400 },
"machine_height": { "default_value": 500 },
"acceleration_layer_0": { "value": "250" },
"acceleration_prime_tower": { "value": "750" },
"acceleration_print": { "value": "750" },
"acceleration_travel": { "value": "750" },
"acceleration_support": { "value": "750" },
"acceleration_support_interface": { "value": "750" },
"acceleration_topbottom": { "value": "750" },
"acceleration_wall": { "value": "750" },
"acceleration_wall_0": { "value": "500" },
"jerk_layer_0": { "value": "5" },
"jerk_prime_tower": { "value": "jerk_print" },
"jerk_print": { "value": "7.5" },
"jerk_support": { "value": "jerk_print" },
"jerk_support_interface": { "value": "jerk_print" },
"jerk_topbottom": { "value": "jerk_print" },
"jerk_wall": { "value": "jerk_print" },
"jerk_wall_0": { "value": "jerk_print" },
"jerk_travel": { "value": "jerk_layer_0" },
"jerk_travel_layer_0": { "value": "jerk_layer_0" }
}
}

View file

@ -0,0 +1,36 @@
{
"name": "Galaxy 600",
"version": 2,
"inherits": "atmat_signal_pro_base",
"metadata":
{
"visible": true,
"quality_definition": "atmat_signal_pro_base"
},
"overrides":
{
"machine_name": { "default_value": "Galaxy 600" },
"machine_width": { "default_value": 500 },
"machine_depth": { "default_value": 500 },
"machine_height": { "default_value": 600 },
"acceleration_layer_0": { "value": "250" },
"acceleration_prime_tower": { "value": "750" },
"acceleration_print": { "value": "750" },
"acceleration_travel": { "value": "750" },
"acceleration_support": { "value": "750" },
"acceleration_support_interface": { "value": "750" },
"acceleration_topbottom": { "value": "750" },
"acceleration_wall": { "value": "750" },
"acceleration_wall_0": { "value": "500" },
"jerk_layer_0": { "value": "5" },
"jerk_prime_tower": { "value": "jerk_print" },
"jerk_print": { "value": "7.5" },
"jerk_support": { "value": "jerk_print" },
"jerk_support_interface": { "value": "jerk_print" },
"jerk_topbottom": { "value": "jerk_print" },
"jerk_wall": { "value": "jerk_print" },
"jerk_wall_0": { "value": "jerk_print" },
"jerk_travel": { "value": "jerk_layer_0" },
"jerk_travel_layer_0": { "value": "jerk_layer_0" }
}
}

View file

@ -0,0 +1,36 @@
{
"name": "Signal Pro 300 v1",
"version": 2,
"inherits": "atmat_signal_pro_base",
"metadata":
{
"visible": true,
"quality_definition": "atmat_signal_pro_base"
},
"overrides":
{
"machine_name": { "default_value": "Signal Pro 300 v1" },
"machine_width": { "default_value": 300 },
"machine_depth": { "default_value": 300 },
"machine_height": { "default_value": 300 },
"acceleration_layer_0": { "value": "250" },
"acceleration_prime_tower": { "value": "750" },
"acceleration_print": { "value": "750" },
"acceleration_travel": { "value": "750" },
"acceleration_support": { "value": "750" },
"acceleration_support_interface": { "value": "750" },
"acceleration_topbottom": { "value": "750" },
"acceleration_wall": { "value": "750" },
"acceleration_wall_0": { "value": "500" },
"jerk_layer_0": { "value": "5" },
"jerk_prime_tower": { "value": "jerk_print" },
"jerk_print": { "value": "7.5" },
"jerk_support": { "value": "jerk_print" },
"jerk_support_interface": { "value": "jerk_print" },
"jerk_topbottom": { "value": "jerk_print" },
"jerk_wall": { "value": "jerk_print" },
"jerk_wall_0": { "value": "jerk_print" },
"jerk_travel": { "value": "jerk_layer_0" },
"jerk_travel_layer_0": { "value": "jerk_layer_0" }
}
}

View file

@ -0,0 +1,18 @@
{
"name": "Signal Pro 300 v2",
"version": 2,
"inherits": "atmat_signal_pro_base",
"metadata":
{
"visible": true,
"platform": "atmat_signal_pro_platform.stl",
"quality_definition": "atmat_signal_pro_base"
},
"overrides":
{
"machine_name": { "default_value": "Signal Pro 300 v2" },
"machine_width": { "default_value": 300 },
"machine_depth": { "default_value": 300 },
"machine_height": { "default_value": 300 }
}
}

View file

@ -0,0 +1,36 @@
{
"name": "Signal Pro 400 v1",
"version": 2,
"inherits": "atmat_signal_pro_base",
"metadata":
{
"visible": true,
"quality_definition": "atmat_signal_pro_base"
},
"overrides":
{
"machine_name": { "default_value": "Signal Pro 400 v1" },
"machine_width": { "default_value": 300 },
"machine_depth": { "default_value": 300 },
"machine_height": { "default_value": 400 },
"acceleration_layer_0": { "value": "250" },
"acceleration_prime_tower": { "value": "750" },
"acceleration_print": { "value": "750" },
"acceleration_travel": { "value": "750" },
"acceleration_support": { "value": "750" },
"acceleration_support_interface": { "value": "750" },
"acceleration_topbottom": { "value": "750" },
"acceleration_wall": { "value": "750" },
"acceleration_wall_0": { "value": "500" },
"jerk_layer_0": { "value": "5" },
"jerk_prime_tower": { "value": "jerk_print" },
"jerk_print": { "value": "7.5" },
"jerk_support": { "value": "jerk_print" },
"jerk_support_interface": { "value": "jerk_print" },
"jerk_topbottom": { "value": "jerk_print" },
"jerk_wall": { "value": "jerk_print" },
"jerk_wall_0": { "value": "jerk_print" },
"jerk_travel": { "value": "jerk_layer_0" },
"jerk_travel_layer_0": { "value": "jerk_layer_0" }
}
}

View file

@ -0,0 +1,18 @@
{
"name": "Signal Pro 400 v2",
"version": 2,
"inherits": "atmat_signal_pro_base",
"metadata":
{
"visible": true,
"platform": "atmat_signal_pro_platform.stl",
"quality_definition": "atmat_signal_pro_base"
},
"overrides":
{
"machine_name": { "default_value": "Signal Pro 400 v2" },
"machine_width": { "default_value": 300 },
"machine_depth": { "default_value": 300 },
"machine_height": { "default_value": 400 }
}
}

View file

@ -0,0 +1,36 @@
{
"name": "Signal Pro 500 v1",
"version": 2,
"inherits": "atmat_signal_pro_base",
"metadata":
{
"visible": true,
"quality_definition": "atmat_signal_pro_base"
},
"overrides":
{
"machine_name": { "default_value": "Signal Pro 500 v1" },
"machine_width": { "default_value": 300 },
"machine_depth": { "default_value": 300 },
"machine_height": { "default_value": 500 },
"acceleration_layer_0": { "value": "250" },
"acceleration_prime_tower": { "value": "750" },
"acceleration_print": { "value": "750" },
"acceleration_travel": { "value": "750" },
"acceleration_support": { "value": "750" },
"acceleration_support_interface": { "value": "750" },
"acceleration_topbottom": { "value": "750" },
"acceleration_wall": { "value": "750" },
"acceleration_wall_0": { "value": "500" },
"jerk_layer_0": { "value": "5" },
"jerk_prime_tower": { "value": "jerk_print" },
"jerk_print": { "value": "7.5" },
"jerk_support": { "value": "jerk_print" },
"jerk_support_interface": { "value": "jerk_print" },
"jerk_topbottom": { "value": "jerk_print" },
"jerk_wall": { "value": "jerk_print" },
"jerk_wall_0": { "value": "jerk_print" },
"jerk_travel": { "value": "jerk_layer_0" },
"jerk_travel_layer_0": { "value": "jerk_layer_0" }
}
}

View file

@ -0,0 +1,18 @@
{
"name": "Signal Pro 500 v2",
"version": 2,
"inherits": "atmat_signal_pro_base",
"metadata":
{
"visible": true,
"platform": "atmat_signal_pro_platform.stl",
"quality_definition": "atmat_signal_pro_base"
},
"overrides":
{
"machine_name": { "default_value": "Signal Pro 500 v2" },
"machine_width": { "default_value": 300 },
"machine_depth": { "default_value": 300 },
"machine_height": { "default_value": 500 }
}
}

View file

@ -0,0 +1,312 @@
{
"name": "Signal Pro Base",
"version": 2,
"inherits": "fdmprinter",
"metadata":
{
"visible": false,
"author": "ATMAT",
"manufacturer": "ATMAT sp. z o.o.",
"file_formats": "text/x-gcode",
"preferred_quality_type": "fast",
"has_machine_quality": true,
"has_materials": true,
"has_variants": true,
"variants_name": "Nozzle",
"preferred_variant_name": "V6 0.40mm",
"machine_extruder_trains":
{
"0": "atmat_signal_pro_extruder_left",
"1": "atmat_signal_pro_extruder_right"
},
"preferred_material": "generic_pla_175",
"supports_usb_connection": false,
"supports_network_connection": false,
"exclude_materials": [
"ultimaker_abs_black",
"ultimaker_abs_blue",
"ultimaker_abs_green",
"ultimaker_abs_grey",
"ultimaker_abs_orange",
"ultimaker_abs_pearl-gold",
"ultimaker_abs_red",
"ultimaker_abs_silver-metallic",
"ultimaker_abs_white",
"ultimaker_abs_yellow",
"ultimaker_bam",
"ultimaker_cpe_black",
"ultimaker_cpe_blue",
"ultimaker_cpe_dark-grey",
"ultimaker_cpe_green",
"ultimaker_cpe_light-grey",
"ultimaker_cpe_plus_black",
"ultimaker_cpe_plus_transparent",
"ultimaker_cpe_plus_white",
"ultimaker_cpe_red",
"ultimaker_cpe_transparent",
"ultimaker_cpe_white",
"ultimaker_cpe_yellow",
"ultimaker_nylon_black",
"ultimaker_nylon_transparent",
"ultimaker_pc_black",
"ultimaker_pc_transparent",
"ultimaker_pc_white",
"ultimaker_pla_black",
"ultimaker_pla_blue",
"ultimaker_pla_green",
"ultimaker_pla_magenta",
"ultimaker_pla_orange",
"ultimaker_pla_pearl-white",
"ultimaker_pla_red",
"ultimaker_pla_silver-metallic",
"ultimaker_pla_transparent",
"ultimaker_pla_white",
"ultimaker_pla_yellow",
"ultimaker_pp_transparent",
"ultimaker_pva",
"ultimaker_tough_pla_black",
"ultimaker_tough_pla_green",
"ultimaker_tough_pla_red",
"ultimaker_tough_pla_white",
"ultimaker_tpu_black",
"ultimaker_tpu_blue",
"ultimaker_tpu_red",
"ultimaker_tpu_white",
"chromatik_pla",
"dsm_arnitel2045_175",
"dsm_novamid1070_175",
"emotiontech_abs",
"emotiontech_petg",
"emotiontech_pla",
"emotiontech_pva-m",
"emotiontech_pva-oks",
"emotiontech_pva-s",
"emotiontech_tpu98a",
"emotiontech_asax",
"emotiontech_hips",
"fiberlogy_hd_pla",
"fabtotum_abs",
"fabtotum_nylon",
"fabtotum_pla",
"fabtotum_tpu",
"filo3d_pla",
"filo3d_pla_green",
"filo3d_pla_red",
"generic_abs",
"generic_bam",
"generic_cffcpe",
"generic_cffpa",
"generic_cpe",
"generic_cpe_plus",
"generic_gffcpe",
"generic_gffpa",
"generic_hips",
"generic_nylon",
"generic_pc",
"generic_petg",
"generic_pla",
"generic_pp",
"generic_pva",
"generic_tough_pla",
"generic_tpu",
"generic_cpe_175",
"imade3d_petg_175",
"imade3d_pla_175",
"innofill_innoflex60_175",
"leapfrog_abs_natural",
"leapfrog_epla_natural",
"leapfrog_pva_natural",
"octofiber_pla",
"polyflex_pla",
"polymax_pla",
"polyplus_pla",
"polywood_pla",
"structur3d_dap100silicone",
"tizyx_abs",
"tizyx_flex",
"tizyx_petg",
"tizyx_pla",
"tizyx_pla_bois",
"tizyx_pva",
"ultimaker_abs_black",
"ultimaker_abs_blue",
"ultimaker_abs_green",
"ultimaker_abs_grey",
"ultimaker_abs_orange",
"ultimaker_abs_pearl-gold",
"ultimaker_abs_red",
"ultimaker_abs_silver-metallic",
"ultimaker_abs_white",
"ultimaker_abs_yellow",
"ultimaker_bam",
"ultimaker_cpe_black",
"ultimaker_cpe_blue",
"ultimaker_cpe_dark-grey",
"ultimaker_cpe_green",
"ultimaker_cpe_light-grey",
"ultimaker_cpe_plus_black",
"ultimaker_cpe_plus_transparent",
"ultimaker_cpe_plus_white",
"ultimaker_cpe_red",
"ultimaker_cpe_transparent",
"ultimaker_cpe_white",
"ultimaker_cpe_yellow",
"ultimaker_nylon_black",
"ultimaker_nylon_transparent",
"ultimaker_pc_black",
"ultimaker_pc_transparent",
"ultimaker_pc_white",
"ultimaker_pla_black",
"ultimaker_pla_blue",
"ultimaker_pla_green",
"ultimaker_pla_magenta",
"ultimaker_pla_orange",
"ultimaker_pla_pearl-white",
"ultimaker_pla_red",
"ultimaker_pla_silver-metallic",
"ultimaker_pla_transparent",
"ultimaker_pla_white",
"ultimaker_pla_yellow",
"ultimaker_pp_transparent",
"ultimaker_pva",
"ultimaker_tough_pla_black",
"ultimaker_tough_pla_green",
"ultimaker_tough_pla_red",
"ultimaker_tough_pla_white",
"ultimaker_tpu_black",
"ultimaker_tpu_blue",
"ultimaker_tpu_red",
"ultimaker_tpu_white",
"verbatim_bvoh_175",
"Vertex_Delta_ABS",
"Vertex_Delta_PET",
"Vertex_Delta_PLA",
"Vertex_Delta_PLA_Glitter",
"Vertex_Delta_PLA_Mat",
"Vertex_Delta_PLA_Satin",
"Vertex_Delta_PLA_Wood",
"Vertex_Delta_TPU",
"zyyx_pro_flex",
"zyyx_pro_pla"
]
},
"overrides":
{
"machine_name": { "default_value": "Signal Pro" },
"machine_width": { "default_value": 300 },
"machine_depth": { "default_value": 300 },
"machine_height": { "default_value": 300 },
"gantry_height": { "value": 30 },
"machine_extruder_count": { "default_value": 2 },
"machine_heated_bed": { "default_value": true },
"machine_heated_build_volume": { "default_value": true },
"build_volume_temperature": { "maximum_value_warning": 45 },
"material_print_temperature": { "maximum_value_warning": 295 },
"material_bed_temperature": { "maximum_value_warning": 140 },
"machine_max_acceleration_x": { "default_value": 1500 },
"machine_max_acceleration_y": { "default_value": 1500 },
"machine_max_acceleration_z": { "default_value": 250 },
"machine_acceleration": { "default_value": 1500 },
"machine_max_jerk_xy": { "default_value": 15 },
"machine_max_jerk_z": { "default_value": 1 },
"machine_max_jerk_e": { "default_value": 15 },
"machine_head_with_fans_polygon": { "default_value": [ [-35, 65], [-35, -50], [35, -50], [35, 65] ] },
"machine_max_feedrate_z": { "default_value": 10 },
"machine_max_feedrate_e": { "default_value": 120 },
"machine_gcode_flavor": { "default_value": "Marlin" },
"machine_start_gcode": { "default_value": "G21 ; set units to millimeters\nG90 ; use absolute positioning\nM82 ; absolute extrusion mode\nG28 ; home all without mesh bed level\nM420 S1\nG92 E0.0 ; reset extruder distance position\nG1 Z0.25\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E21.5 F1000.0 ; intro line\nG92 E0.0 ; reset extruder distance position" },
"machine_end_gcode": { "default_value": "M104 T0 S0 ;extruder heater off\nM104 T1 S0 ;extruder heater off\nM140 S0 ;heated bed heater off\nG91\nG1 Z1 F420 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+1 E-1 F300 ;move Z up a bit and retract filament even more\nG90 ;absolute positioning\nG1 X0 Y300 F6000 ;move the head out of the way\nM84 ;steppers off" },
"adhesion_type": { "default_value": "skirt" },
"skirt_brim_minimal_length": { "value": "550" },
"retraction_amount": { "value": "1" },
"retraction_speed": { "value": "50", "maximum_value_warning": "130" },
"retraction_retract_speed": { "value": "retraction_speed", "maximum_value_warning": "130" },
"retraction_prime_speed": { "value": "math.ceil(retraction_speed * 0.4)", "maximum_value_warning": "130" },
"retraction_hop_enabled": { "value": "True" },
"retraction_hop": { "value": "0.5" },
"retraction_combing": { "default_value": "noskin" },
"retraction_combing_max_distance": { "value": "10" },
"travel_avoid_other_parts": { "value": "True" },
"travel_avoid_supports": { "value": "True" },
"speed_travel": { "maximum_value": "150", "value": "150", "maximum_value_warning": "151" },
"speed_travel_layer_0": { "value": "math.ceil(speed_travel * 0.4)" },
"speed_layer_0": { "value": "math.ceil(speed_print * 0.25)" },
"speed_wall": { "value": "math.ceil(speed_print * 0.50)" },
"speed_wall_0": { "value": "math.ceil(speed_print * 0.50)" },
"speed_wall_x": { "value": "math.ceil(speed_print * 0.75)" },
"speed_topbottom": { "value": "math.ceil(speed_print * 0.45)" },
"speed_roofing": { "value": "math.ceil(speed_print * 0.45)" },
"speed_slowdown_layers": { "value": "2" },
"roofing_layer_count": { "value": "1" },
"optimize_wall_printing_order": { "value": "True" },
"infill_enable_travel_optimization": { "value": "True" },
"minimum_polygon_circumference": { "value": "0.2" },
"wall_overhang_angle": { "value": "75" },
"wall_overhang_speed_factor": { "value": "50" },
"bridge_settings_enabled": { "value": "True" },
"bridge_wall_coast": { "value": "10" },
"bridge_fan_speed": { "value": "100" },
"bridge_fan_speed_2": { "resolve": "max(cool_fan_speed, 50)" },
"bridge_fan_speed_3": { "resolve": "max(cool_fan_speed, 20)" },
"alternate_extra_perimeter": { "value": "True" },
"cool_min_layer_time_fan_speed_max": { "value": "20" },
"cool_min_layer_time": { "value": "15" },
"cool_fan_speed_min": { "value": "cool_fan_speed" },
"cool_fan_full_at_height": { "value": "resolveOrValue('layer_height_0') + resolveOrValue('layer_height') * max(1, cool_fan_full_layer - 1)" },
"cool_fan_full_layer": { "value": "4" },
"layer_height_0": { "resolve": "max(0.2, min(extruderValues('layer_height')))" },
"line_width": { "value": "machine_nozzle_size * 1.125" },
"wall_line_width": { "value": "machine_nozzle_size" },
"fill_perimeter_gaps": { "default_value": "everywhere" },
"fill_outline_gaps": { "value": "True" },
"meshfix_maximum_resolution": { "value": "0.01" },
"meshfix_maximum_deviation": { "value": "layer_height / 2" },
"infill_before_walls": { "value": "False" },
"zig_zaggify_infill": { "value": "True" },
"min_infill_area": { "value": "5.0" },
"acceleration_enabled": { "value": "True" },
"acceleration_layer_0": { "value": "250" },
"acceleration_prime_tower": { "value": "1000" },
"acceleration_print": { "value": "1000" },
"acceleration_travel": { "value": "1000" },
"acceleration_support": { "value": "1000" },
"acceleration_support_interface": { "value": "750" },
"acceleration_topbottom": { "value": "750" },
"acceleration_wall": { "value": "750" },
"acceleration_wall_0": { "value": "500" },
"jerk_enabled": { "value": "True" },
"jerk_layer_0": { "value": "5" },
"jerk_prime_tower": { "value": "jerk_print" },
"jerk_print": { "value": "10" },
"jerk_support": { "value": "jerk_print" },
"jerk_support_interface": { "value": "jerk_print" },
"jerk_topbottom": { "value": "jerk_print" },
"jerk_wall": { "value": "jerk_print" },
"jerk_wall_0": { "value": "jerk_print" },
"jerk_travel": { "value": "jerk_layer_0" },
"jerk_travel_layer_0": { "value": "jerk_layer_0" },
"prime_tower_position_x": { "value": "270" },
"prime_tower_position_y": { "value": "270" },
"extruder_prime_pos_abs": { "value": "True" },
"switch_extruder_prime_speed": { "value": "15" },
"switch_extruder_retraction_amount": { "value": "2" },
"support_xy_distance": { "value": "wall_line_width_0 * 2.5" },
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
"support_angle": { "value": "60" },
"support_bottom_distance": { "value": "support_z_distance / 2" },
"support_pattern": { "default_value": "zigzag" },
"support_top_distance": { "value": "support_z_distance" },
"support_use_towers": { "value": "True" },
"support_z_distance": { "value": "layer_height" },
"support_interface_enable": { "value": "True" },
"support_interface_height": { "value": "1" },
"support_interface_skip_height": { "value": "layer_height" },
"support_bottom_enable": { "value": "False" },
"support_join_distance": { "value": "1" },
"support_offset": { "value": "1.5" },
"support_infill_rate": { "value": "20" },
"support_brim_enable": { "value": "True" },
"prime_tower_enable": { "value": "True" }
}
}

View file

@ -0,0 +1,40 @@
{
"name": "Signal XL",
"version": 2,
"inherits": "atmat_signal_pro_base",
"metadata":
{
"visible": true,
"quality_definition": "atmat_signal_pro_base"
},
"overrides":
{
"machine_name": { "default_value": "Signal XL" },
"machine_width": { "default_value": 310 },
"machine_depth": { "default_value": 320 },
"machine_height": { "default_value": 260 },
"acceleration_layer_0": { "value": "250" },
"acceleration_prime_tower": { "value": "750" },
"acceleration_print": { "value": "750" },
"acceleration_travel": { "value": "750" },
"acceleration_support": { "value": "750" },
"acceleration_support_interface": { "value": "750" },
"acceleration_topbottom": { "value": "750" },
"acceleration_wall": { "value": "750" },
"acceleration_wall_0": { "value": "500" },
"jerk_layer_0": { "value": "5" },
"jerk_prime_tower": { "value": "jerk_print" },
"jerk_print": { "value": "7.5" },
"jerk_support": { "value": "jerk_print" },
"jerk_support_interface": { "value": "jerk_print" },
"jerk_topbottom": { "value": "jerk_print" },
"jerk_wall": { "value": "jerk_print" },
"jerk_wall_0": { "value": "jerk_print" },
"jerk_travel": { "value": "jerk_layer_0" },
"jerk_travel_layer_0": { "value": "jerk_layer_0" },
"machine_extruder_count": { "default_value": 1 },
"machine_heated_build_volume": { "default_value": false },
"machine_gcode_flavor": { "default_value": "Repetier" }
}
}

View file

@ -0,0 +1,40 @@
{
"name": "Signal XXL",
"version": 2,
"inherits": "atmat_signal_pro_base",
"metadata":
{
"visible": true,
"quality_definition": "atmat_signal_pro_base"
},
"overrides":
{
"machine_name": { "default_value": "Signal XXL" },
"machine_width": { "default_value": 310 },
"machine_depth": { "default_value": 320 },
"machine_height": { "default_value": 385 },
"acceleration_layer_0": { "value": "250" },
"acceleration_prime_tower": { "value": "750" },
"acceleration_print": { "value": "750" },
"acceleration_travel": { "value": "750" },
"acceleration_support": { "value": "750" },
"acceleration_support_interface": { "value": "750" },
"acceleration_topbottom": { "value": "750" },
"acceleration_wall": { "value": "750" },
"acceleration_wall_0": { "value": "500" },
"jerk_layer_0": { "value": "5" },
"jerk_prime_tower": { "value": "jerk_print" },
"jerk_print": { "value": "7.5" },
"jerk_support": { "value": "jerk_print" },
"jerk_support_interface": { "value": "jerk_print" },
"jerk_topbottom": { "value": "jerk_print" },
"jerk_wall": { "value": "jerk_print" },
"jerk_wall_0": { "value": "jerk_print" },
"jerk_travel": { "value": "jerk_layer_0" },
"jerk_travel_layer_0": { "value": "jerk_layer_0" },
"machine_extruder_count": { "default_value": 1 },
"machine_heated_build_volume": { "default_value": false },
"machine_gcode_flavor": { "default_value": "Repetier" }
}
}

View file

@ -0,0 +1,40 @@
{
"name": "Signal XXXL",
"version": 2,
"inherits": "atmat_signal_pro_base",
"metadata":
{
"visible": true,
"quality_definition": "atmat_signal_pro_base"
},
"overrides":
{
"machine_name": { "default_value": "Signal XXXL" },
"machine_width": { "default_value": 310 },
"machine_depth": { "default_value": 320 },
"machine_height": { "default_value": 500 },
"acceleration_layer_0": { "value": "250" },
"acceleration_prime_tower": { "value": "750" },
"acceleration_print": { "value": "750" },
"acceleration_travel": { "value": "750" },
"acceleration_support": { "value": "750" },
"acceleration_support_interface": { "value": "750" },
"acceleration_topbottom": { "value": "750" },
"acceleration_wall": { "value": "750" },
"acceleration_wall_0": { "value": "500" },
"jerk_layer_0": { "value": "5" },
"jerk_prime_tower": { "value": "jerk_print" },
"jerk_print": { "value": "7.5" },
"jerk_support": { "value": "jerk_print" },
"jerk_support_interface": { "value": "jerk_print" },
"jerk_topbottom": { "value": "jerk_print" },
"jerk_wall": { "value": "jerk_print" },
"jerk_wall_0": { "value": "jerk_print" },
"jerk_travel": { "value": "jerk_layer_0" },
"jerk_travel_layer_0": { "value": "jerk_layer_0" },
"machine_extruder_count": { "default_value": 1 },
"machine_heated_build_volume": { "default_value": false },
"machine_gcode_flavor": { "default_value": "Repetier" }
}
}

View file

@ -219,6 +219,16 @@
"settable_per_extruder": false, "settable_per_extruder": false,
"settable_per_meshgroup": false "settable_per_meshgroup": false
}, },
"machine_always_write_active_tool":
{
"label": "Always Write Active Tool",
"description": "Write active tool after sending temp commands to inactive tool. Required for Dual Extruder printing with Smoothie or other firmware with modal tool commands.",
"default_value": false,
"type": "bool",
"settable_per_mesh": false,
"settable_per_extruder": false,
"settable_per_meshgroup": false
},
"machine_center_is_zero": "machine_center_is_zero":
{ {
"label": "Is Center Origin", "label": "Is Center Origin",
@ -877,7 +887,7 @@
"maximum_value_warning": "3 * machine_nozzle_size", "maximum_value_warning": "3 * machine_nozzle_size",
"default_value": 0.4, "default_value": 0.4,
"type": "float", "type": "float",
"enabled": "(support_enable or support_tree_enable)", "enabled": "(support_enable or support_tree_enable or support_meshes_present)",
"value": "line_width", "value": "line_width",
"limit_to_extruder": "support_infill_extruder_nr", "limit_to_extruder": "support_infill_extruder_nr",
"settable_per_mesh": false, "settable_per_mesh": false,
@ -893,7 +903,7 @@
"minimum_value_warning": "0.1 + 0.4 * machine_nozzle_size", "minimum_value_warning": "0.1 + 0.4 * machine_nozzle_size",
"maximum_value_warning": "2 * machine_nozzle_size", "maximum_value_warning": "2 * machine_nozzle_size",
"type": "float", "type": "float",
"enabled": "(support_enable or support_tree_enable) and support_interface_enable", "enabled": "(support_enable or support_tree_enable or support_meshes_present) and support_interface_enable",
"limit_to_extruder": "support_interface_extruder_nr", "limit_to_extruder": "support_interface_extruder_nr",
"value": "line_width", "value": "line_width",
"settable_per_mesh": false, "settable_per_mesh": false,
@ -910,7 +920,7 @@
"minimum_value_warning": "0.4 * machine_nozzle_size", "minimum_value_warning": "0.4 * machine_nozzle_size",
"maximum_value_warning": "2 * machine_nozzle_size", "maximum_value_warning": "2 * machine_nozzle_size",
"type": "float", "type": "float",
"enabled": "(support_enable or support_tree_enable) and support_roof_enable", "enabled": "(support_enable or support_tree_enable or support_meshes_present) and support_roof_enable",
"limit_to_extruder": "support_roof_extruder_nr", "limit_to_extruder": "support_roof_extruder_nr",
"value": "extruderValue(support_roof_extruder_nr, 'support_interface_line_width')", "value": "extruderValue(support_roof_extruder_nr, 'support_interface_line_width')",
"settable_per_mesh": false, "settable_per_mesh": false,
@ -926,7 +936,7 @@
"minimum_value_warning": "0.4 * machine_nozzle_size", "minimum_value_warning": "0.4 * machine_nozzle_size",
"maximum_value_warning": "2 * machine_nozzle_size", "maximum_value_warning": "2 * machine_nozzle_size",
"type": "float", "type": "float",
"enabled": "(support_enable or support_tree_enable) and support_bottom_enable", "enabled": "(support_enable or support_tree_enable or support_meshes_present) and support_bottom_enable",
"limit_to_extruder": "support_bottom_extruder_nr", "limit_to_extruder": "support_bottom_extruder_nr",
"value": "extruderValue(support_bottom_extruder_nr, 'support_interface_line_width')", "value": "extruderValue(support_bottom_extruder_nr, 'support_interface_line_width')",
"settable_per_mesh": false, "settable_per_mesh": false,
@ -2836,7 +2846,7 @@
"maximum_value_warning": "150", "maximum_value_warning": "150",
"default_value": 60, "default_value": 60,
"value": "speed_print", "value": "speed_print",
"enabled": "support_enable or support_tree_enable", "enabled": "support_enable or support_tree_enable or support_meshes_present",
"settable_per_mesh": false, "settable_per_mesh": false,
"limit_to_extruder": "support_extruder_nr", "limit_to_extruder": "support_extruder_nr",
"settable_per_extruder": true, "settable_per_extruder": true,
@ -2853,7 +2863,7 @@
"maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)",
"maximum_value_warning": "150", "maximum_value_warning": "150",
"value": "speed_support", "value": "speed_support",
"enabled": "support_enable or support_tree_enable", "enabled": "support_enable or support_tree_enable or support_meshes_present",
"limit_to_extruder": "support_infill_extruder_nr", "limit_to_extruder": "support_infill_extruder_nr",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
@ -2868,7 +2878,7 @@
"minimum_value": "0.1", "minimum_value": "0.1",
"maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)",
"maximum_value_warning": "150", "maximum_value_warning": "150",
"enabled": "support_interface_enable and (support_enable or support_tree_enable)", "enabled": "support_interface_enable and (support_enable or support_tree_enable or support_meshes_present)",
"limit_to_extruder": "support_interface_extruder_nr", "limit_to_extruder": "support_interface_extruder_nr",
"value": "speed_support / 1.5", "value": "speed_support / 1.5",
"settable_per_mesh": false, "settable_per_mesh": false,
@ -2885,7 +2895,7 @@
"minimum_value": "0.1", "minimum_value": "0.1",
"maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)",
"maximum_value_warning": "150", "maximum_value_warning": "150",
"enabled": "support_roof_enable and (support_enable or support_tree_enable)", "enabled": "support_roof_enable and (support_enable or support_tree_enable or support_meshes_present)",
"limit_to_extruder": "support_roof_extruder_nr", "limit_to_extruder": "support_roof_extruder_nr",
"value": "extruderValue(support_roof_extruder_nr, 'speed_support_interface')", "value": "extruderValue(support_roof_extruder_nr, 'speed_support_interface')",
"settable_per_mesh": false, "settable_per_mesh": false,
@ -2901,7 +2911,7 @@
"minimum_value": "0.1", "minimum_value": "0.1",
"maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)",
"maximum_value_warning": "150", "maximum_value_warning": "150",
"enabled": "support_bottom_enable and (support_enable or support_tree_enable)", "enabled": "support_bottom_enable and (support_enable or support_tree_enable or support_meshes_present)",
"limit_to_extruder": "support_bottom_extruder_nr", "limit_to_extruder": "support_bottom_extruder_nr",
"value": "extruderValue(support_bottom_extruder_nr, 'speed_support_interface')", "value": "extruderValue(support_bottom_extruder_nr, 'speed_support_interface')",
"settable_per_mesh": false, "settable_per_mesh": false,
@ -3176,7 +3186,7 @@
"maximum_value_warning": "10000", "maximum_value_warning": "10000",
"default_value": 3000, "default_value": 3000,
"value": "acceleration_print", "value": "acceleration_print",
"enabled": "resolveOrValue('acceleration_enabled') and (support_enable or support_tree_enable)", "enabled": "resolveOrValue('acceleration_enabled') and (support_enable or support_tree_enable or support_meshes_present)",
"settable_per_mesh": false, "settable_per_mesh": false,
"limit_to_extruder": "support_extruder_nr", "limit_to_extruder": "support_extruder_nr",
"settable_per_extruder": true, "settable_per_extruder": true,
@ -3193,7 +3203,7 @@
"minimum_value": "0.1", "minimum_value": "0.1",
"minimum_value_warning": "100", "minimum_value_warning": "100",
"maximum_value_warning": "10000", "maximum_value_warning": "10000",
"enabled": "resolveOrValue('acceleration_enabled') and (support_enable or support_tree_enable)", "enabled": "resolveOrValue('acceleration_enabled') and (support_enable or support_tree_enable or support_meshes_present)",
"limit_to_extruder": "support_infill_extruder_nr", "limit_to_extruder": "support_infill_extruder_nr",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
@ -3209,7 +3219,7 @@
"minimum_value": "0.1", "minimum_value": "0.1",
"minimum_value_warning": "100", "minimum_value_warning": "100",
"maximum_value_warning": "10000", "maximum_value_warning": "10000",
"enabled": "resolveOrValue('acceleration_enabled') and support_interface_enable and (support_enable or support_tree_enable)", "enabled": "resolveOrValue('acceleration_enabled') and support_interface_enable and (support_enable or support_tree_enable or support_meshes_present)",
"limit_to_extruder": "support_interface_extruder_nr", "limit_to_extruder": "support_interface_extruder_nr",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
@ -3226,7 +3236,7 @@
"minimum_value": "0.1", "minimum_value": "0.1",
"minimum_value_warning": "100", "minimum_value_warning": "100",
"maximum_value_warning": "10000", "maximum_value_warning": "10000",
"enabled": "acceleration_enabled and support_roof_enable and (support_enable or support_tree_enable)", "enabled": "acceleration_enabled and support_roof_enable and (support_enable or support_tree_enable or support_meshes_present)",
"limit_to_extruder": "support_roof_extruder_nr", "limit_to_extruder": "support_roof_extruder_nr",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
@ -3242,7 +3252,7 @@
"minimum_value": "0.1", "minimum_value": "0.1",
"minimum_value_warning": "100", "minimum_value_warning": "100",
"maximum_value_warning": "10000", "maximum_value_warning": "10000",
"enabled": "acceleration_enabled and support_bottom_enable and (support_enable or support_tree_enable)", "enabled": "acceleration_enabled and support_bottom_enable and (support_enable or support_tree_enable or support_meshes_present)",
"limit_to_extruder": "support_bottom_extruder_nr", "limit_to_extruder": "support_bottom_extruder_nr",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
@ -3461,7 +3471,7 @@
"maximum_value_warning": "50", "maximum_value_warning": "50",
"default_value": 20, "default_value": 20,
"value": "jerk_print", "value": "jerk_print",
"enabled": "resolveOrValue('jerk_enabled') and (support_enable or support_tree_enable)", "enabled": "resolveOrValue('jerk_enabled') and (support_enable or support_tree_enable or support_meshes_present)",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
"limit_to_extruder": "support_extruder_nr", "limit_to_extruder": "support_extruder_nr",
@ -3477,7 +3487,7 @@
"value": "jerk_support", "value": "jerk_support",
"minimum_value": "0", "minimum_value": "0",
"maximum_value_warning": "50", "maximum_value_warning": "50",
"enabled": "resolveOrValue('jerk_enabled') and (support_enable or support_tree_enable)", "enabled": "resolveOrValue('jerk_enabled') and (support_enable or support_tree_enable or support_meshes_present)",
"limit_to_extruder": "support_infill_extruder_nr", "limit_to_extruder": "support_infill_extruder_nr",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
@ -3492,7 +3502,7 @@
"value": "jerk_support", "value": "jerk_support",
"minimum_value": "0", "minimum_value": "0",
"maximum_value_warning": "50", "maximum_value_warning": "50",
"enabled": "resolveOrValue('jerk_enabled') and support_interface_enable and (support_enable or support_tree_enable)", "enabled": "resolveOrValue('jerk_enabled') and support_interface_enable and (support_enable or support_tree_enable or support_meshes_present)",
"limit_to_extruder": "support_interface_extruder_nr", "limit_to_extruder": "support_interface_extruder_nr",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
@ -3508,7 +3518,7 @@
"value": "extruderValue(support_roof_extruder_nr, 'jerk_support_interface')", "value": "extruderValue(support_roof_extruder_nr, 'jerk_support_interface')",
"minimum_value": "0", "minimum_value": "0",
"maximum_value_warning": "50", "maximum_value_warning": "50",
"enabled": "resolveOrValue('jerk_enabled') and support_roof_enable and (support_enable or support_tree_enable)", "enabled": "resolveOrValue('jerk_enabled') and support_roof_enable and (support_enable or support_tree_enable or support_meshes_present)",
"limit_to_extruder": "support_roof_extruder_nr", "limit_to_extruder": "support_roof_extruder_nr",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
@ -3523,7 +3533,7 @@
"value": "extruderValue(support_roof_extruder_nr, 'jerk_support_interface')", "value": "extruderValue(support_roof_extruder_nr, 'jerk_support_interface')",
"minimum_value": "0", "minimum_value": "0",
"maximum_value_warning": "50", "maximum_value_warning": "50",
"enabled": "resolveOrValue('jerk_enabled') and support_bottom_enable and (support_enable or support_tree_enable)", "enabled": "resolveOrValue('jerk_enabled') and support_bottom_enable and (support_enable or support_tree_enable or support_meshes_present)",
"limit_to_extruder": "support_bottom_extruder_nr", "limit_to_extruder": "support_bottom_extruder_nr",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
@ -3767,7 +3777,7 @@
"description": "Omit retraction when moving from support to support in a straight line. Enabling this setting saves print time, but can lead to excessive stringing within the support structure.", "description": "Omit retraction when moving from support to support in a straight line. Enabling this setting saves print time, but can lead to excessive stringing within the support structure.",
"type": "bool", "type": "bool",
"default_value": true, "default_value": true,
"enabled": "retraction_enable and (support_enable or support_tree_enable)", "enabled": "retraction_enable and (support_enable or support_tree_enable or support_meshes_present)",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
}, },
@ -4097,7 +4107,7 @@
"type": "extruder", "type": "extruder",
"default_value": "0", "default_value": "0",
"value": "int(defaultExtruderPosition())", "value": "int(defaultExtruderPosition())",
"enabled": "(support_enable or support_tree_enable) and extruders_enabled_count > 1", "enabled": "(support_enable or support_tree_enable or support_meshes_present) and extruders_enabled_count > 1",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": false, "settable_per_extruder": false,
"children": { "children": {
@ -4108,7 +4118,7 @@
"type": "extruder", "type": "extruder",
"default_value": "0", "default_value": "0",
"value": "support_extruder_nr", "value": "support_extruder_nr",
"enabled": "(support_enable or support_tree_enable) and extruders_enabled_count > 1", "enabled": "(support_enable or support_tree_enable or support_meshes_present) and extruders_enabled_count > 1",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": false "settable_per_extruder": false
}, },
@ -4119,7 +4129,7 @@
"type": "extruder", "type": "extruder",
"default_value": "0", "default_value": "0",
"value": "support_extruder_nr", "value": "support_extruder_nr",
"enabled": "(support_enable or support_tree_enable) and extruders_enabled_count > 1", "enabled": "(support_enable or support_tree_enable or support_meshes_present) and extruders_enabled_count > 1",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": false "settable_per_extruder": false
}, },
@ -4130,7 +4140,7 @@
"type": "extruder", "type": "extruder",
"default_value": "0", "default_value": "0",
"value": "support_extruder_nr", "value": "support_extruder_nr",
"enabled": "(support_enable or support_tree_enable) and extruders_enabled_count > 1", "enabled": "(support_enable or support_tree_enable or support_meshes_present) and extruders_enabled_count > 1",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": false, "settable_per_extruder": false,
"children": "children":
@ -4142,7 +4152,7 @@
"type": "extruder", "type": "extruder",
"default_value": "0", "default_value": "0",
"value": "support_interface_extruder_nr", "value": "support_interface_extruder_nr",
"enabled": "(support_enable or support_tree_enable) and extruders_enabled_count > 1", "enabled": "(support_enable or support_tree_enable or support_meshes_present) and extruders_enabled_count > 1",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": false "settable_per_extruder": false
}, },
@ -4153,7 +4163,7 @@
"type": "extruder", "type": "extruder",
"default_value": "0", "default_value": "0",
"value": "support_interface_extruder_nr", "value": "support_interface_extruder_nr",
"enabled": "(support_enable or support_tree_enable) and extruders_enabled_count > 1", "enabled": "(support_enable or support_tree_enable or support_meshes_present) and extruders_enabled_count > 1",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": false "settable_per_extruder": false
} }
@ -4207,7 +4217,7 @@
"gyroid": "Gyroid" "gyroid": "Gyroid"
}, },
"default_value": "zigzag", "default_value": "zigzag",
"enabled": "support_enable or support_tree_enable", "enabled": "support_enable or support_tree_enable or support_meshes_present",
"limit_to_extruder": "support_infill_extruder_nr", "limit_to_extruder": "support_infill_extruder_nr",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
@ -4219,10 +4229,10 @@
"default_value": 1, "default_value": 1,
"minimum_value": "0", "minimum_value": "0",
"minimum_value_warning": "1 if support_pattern == 'concentric' else 0", "minimum_value_warning": "1 if support_pattern == 'concentric' else 0",
"maximum_value_warning": "3", "maximum_value_warning": "0 if (support_skip_some_zags and support_pattern == 'zigzag') else 3",
"type": "int", "type": "int",
"value": "1 if support_tree_enable else (1 if (support_pattern == 'grid' or support_pattern == 'triangles' or support_pattern == 'concentric') else 0)", "value": "1 if support_tree_enable else (1 if (support_pattern == 'grid' or support_pattern == 'triangles' or support_pattern == 'concentric') else 0)",
"enabled": "support_enable or support_tree_enable", "enabled": "support_enable or support_tree_enable or support_meshes_present",
"limit_to_extruder": "support_infill_extruder_nr", "limit_to_extruder": "support_infill_extruder_nr",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
@ -4234,7 +4244,7 @@
"type": "bool", "type": "bool",
"default_value": false, "default_value": false,
"value": "support_pattern == 'cross' or support_pattern == 'gyroid'", "value": "support_pattern == 'cross' or support_pattern == 'gyroid'",
"enabled": "(support_enable or support_tree_enable) and (support_pattern == 'grid' or support_pattern == 'triangles' or support_pattern == 'cross' or support_pattern == 'gyroid')", "enabled": "(support_enable or support_tree_enable or support_meshes_present) and (support_pattern == 'grid' or support_pattern == 'triangles' or support_pattern == 'cross' or support_pattern == 'gyroid')",
"limit_to_extruder": "support_infill_extruder_nr", "limit_to_extruder": "support_infill_extruder_nr",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
@ -4245,7 +4255,7 @@
"description": "Connect the ZigZags. This will increase the strength of the zig zag support structure.", "description": "Connect the ZigZags. This will increase the strength of the zig zag support structure.",
"type": "bool", "type": "bool",
"default_value": true, "default_value": true,
"enabled": "(support_enable or support_tree_enable) and support_pattern == 'zigzag'", "enabled": "(support_enable or support_tree_enable or support_meshes_present) and support_pattern == 'zigzag'",
"limit_to_extruder": "support_infill_extruder_nr", "limit_to_extruder": "support_infill_extruder_nr",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
@ -4260,7 +4270,7 @@
"maximum_value_warning": "100", "maximum_value_warning": "100",
"default_value": 15, "default_value": 15,
"value": "15 if support_enable else 0 if support_tree_enable else 15", "value": "15 if support_enable else 0 if support_tree_enable else 15",
"enabled": "support_enable or support_tree_enable", "enabled": "support_enable or support_tree_enable or support_meshes_present",
"limit_to_extruder": "support_infill_extruder_nr", "limit_to_extruder": "support_infill_extruder_nr",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
@ -4275,7 +4285,7 @@
"minimum_value": "0", "minimum_value": "0",
"minimum_value_warning": "support_line_width", "minimum_value_warning": "support_line_width",
"default_value": 2.66, "default_value": 2.66,
"enabled": "support_enable or support_tree_enable", "enabled": "support_enable or support_tree_enable or support_meshes_present",
"value": "0 if support_infill_rate == 0 else (support_line_width * 100) / support_infill_rate * (2 if support_pattern == 'grid' else (3 if support_pattern == 'triangles' else 1))", "value": "0 if support_infill_rate == 0 else (support_line_width * 100) / support_infill_rate * (2 if support_pattern == 'grid' else (3 if support_pattern == 'triangles' else 1))",
"limit_to_extruder": "support_infill_extruder_nr", "limit_to_extruder": "support_infill_extruder_nr",
"settable_per_mesh": false, "settable_per_mesh": false,
@ -4290,7 +4300,7 @@
"minimum_value": "0", "minimum_value": "0",
"minimum_value_warning": "support_line_width", "minimum_value_warning": "support_line_width",
"default_value": 2.66, "default_value": 2.66,
"enabled": "support_enable or support_tree_enable", "enabled": "support_enable or support_tree_enable or support_meshes_present",
"value": "support_line_distance", "value": "support_line_distance",
"limit_to_extruder": "support_infill_extruder_nr", "limit_to_extruder": "support_infill_extruder_nr",
"settable_per_mesh": false, "settable_per_mesh": false,
@ -4304,7 +4314,7 @@
"description": "A list of integer line directions to use. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the default angle 0 degrees.", "description": "A list of integer line directions to use. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the default angle 0 degrees.",
"type": "[int]", "type": "[int]",
"default_value": "[ ]", "default_value": "[ ]",
"enabled": "(support_enable or support_tree_enable) and support_pattern != 'concentric' and support_infill_rate > 0", "enabled": "(support_enable or support_tree_enable or support_meshes_present) and support_pattern != 'concentric' and support_infill_rate > 0",
"limit_to_extruder": "support_infill_extruder_nr", "limit_to_extruder": "support_infill_extruder_nr",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
@ -4315,7 +4325,7 @@
"description": "Generate a brim within the support infill regions of the first layer. This brim is printed underneath the support, not around it. Enabling this setting increases the adhesion of support to the build plate.", "description": "Generate a brim within the support infill regions of the first layer. This brim is printed underneath the support, not around it. Enabling this setting increases the adhesion of support to the build plate.",
"type": "bool", "type": "bool",
"default_value": false, "default_value": false,
"enabled": "support_enable or support_tree_enable", "enabled": "support_enable or support_tree_enable or support_meshes_present",
"limit_to_extruder": "support_infill_extruder_nr", "limit_to_extruder": "support_infill_extruder_nr",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
@ -4329,7 +4339,7 @@
"default_value": 8.0, "default_value": 8.0,
"minimum_value": "0.0", "minimum_value": "0.0",
"maximum_value_warning": "50.0", "maximum_value_warning": "50.0",
"enabled": "(support_enable or support_tree_enable) and support_brim_enable", "enabled": "(support_enable or support_tree_enable or support_meshes_present) and support_brim_enable",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
"limit_to_extruder": "support_infill_extruder_nr", "limit_to_extruder": "support_infill_extruder_nr",
@ -4344,7 +4354,7 @@
"minimum_value": "0", "minimum_value": "0",
"maximum_value_warning": "50 / skirt_brim_line_width", "maximum_value_warning": "50 / skirt_brim_line_width",
"value": "math.ceil(support_brim_width / (skirt_brim_line_width * initial_layer_line_width_factor / 100.0))", "value": "math.ceil(support_brim_width / (skirt_brim_line_width * initial_layer_line_width_factor / 100.0))",
"enabled": "(support_enable or support_tree_enable) and support_brim_enable", "enabled": "(support_enable or support_tree_enable or support_meshes_present) and support_brim_enable",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
"limit_to_extruder": "support_infill_extruder_nr" "limit_to_extruder": "support_infill_extruder_nr"
@ -4361,7 +4371,7 @@
"maximum_value_warning": "machine_nozzle_size", "maximum_value_warning": "machine_nozzle_size",
"default_value": 0.1, "default_value": 0.1,
"limit_to_extruder": "support_interface_extruder_nr if support_interface_enable else support_infill_extruder_nr", "limit_to_extruder": "support_interface_extruder_nr if support_interface_enable else support_infill_extruder_nr",
"enabled": "support_enable or support_tree_enable", "enabled": "support_enable or support_tree_enable or support_meshes_present",
"settable_per_mesh": true, "settable_per_mesh": true,
"children": "children":
{ {
@ -4374,7 +4384,7 @@
"maximum_value_warning": "machine_nozzle_size", "maximum_value_warning": "machine_nozzle_size",
"default_value": 0.1, "default_value": 0.1,
"type": "float", "type": "float",
"enabled": "support_enable or support_tree_enable", "enabled": "support_enable or support_tree_enable or support_meshes_present",
"value": "extruderValue(support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr, 'support_z_distance')", "value": "extruderValue(support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr, 'support_z_distance')",
"limit_to_extruder": "support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr", "limit_to_extruder": "support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr",
"settable_per_mesh": true "settable_per_mesh": true
@ -4390,7 +4400,7 @@
"value": "extruderValue(support_bottom_extruder_nr if support_bottom_enable else support_infill_extruder_nr, 'support_z_distance') if support_type == 'everywhere' else 0", "value": "extruderValue(support_bottom_extruder_nr if support_bottom_enable else support_infill_extruder_nr, 'support_z_distance') if support_type == 'everywhere' else 0",
"limit_to_extruder": "support_bottom_extruder_nr if support_bottom_enable else support_infill_extruder_nr", "limit_to_extruder": "support_bottom_extruder_nr if support_bottom_enable else support_infill_extruder_nr",
"type": "float", "type": "float",
"enabled": "(support_enable or support_tree_enable) and resolveOrValue('support_type') == 'everywhere'", "enabled": "(support_enable or support_tree_enable or support_meshes_present) and resolveOrValue('support_type') == 'everywhere'",
"settable_per_mesh": true "settable_per_mesh": true
} }
} }
@ -4405,7 +4415,7 @@
"maximum_value_warning": "1.5 * machine_nozzle_tip_outer_diameter", "maximum_value_warning": "1.5 * machine_nozzle_tip_outer_diameter",
"default_value": 0.7, "default_value": 0.7,
"limit_to_extruder": "support_infill_extruder_nr", "limit_to_extruder": "support_infill_extruder_nr",
"enabled": "support_enable or support_tree_enable", "enabled": "support_enable or support_tree_enable or support_meshes_present",
"settable_per_mesh": true "settable_per_mesh": true
}, },
"support_xy_overrides_z": "support_xy_overrides_z":
@ -4420,7 +4430,7 @@
}, },
"default_value": "z_overrides_xy", "default_value": "z_overrides_xy",
"limit_to_extruder": "support_infill_extruder_nr", "limit_to_extruder": "support_infill_extruder_nr",
"enabled": "support_enable", "enabled": "support_enable or support_meshes_present",
"settable_per_mesh": true "settable_per_mesh": true
}, },
"support_xy_distance_overhang": "support_xy_distance_overhang":
@ -4435,7 +4445,7 @@
"default_value": 0.2, "default_value": 0.2,
"value": "machine_nozzle_size / 2", "value": "machine_nozzle_size / 2",
"limit_to_extruder": "support_infill_extruder_nr", "limit_to_extruder": "support_infill_extruder_nr",
"enabled": "support_enable and support_xy_overrides_z == 'z_overrides_xy'", "enabled": "(support_enable or support_meshes_present) and support_xy_overrides_z == 'z_overrides_xy'",
"settable_per_mesh": true "settable_per_mesh": true
}, },
"support_bottom_stair_step_height": "support_bottom_stair_step_height":
@ -4448,7 +4458,7 @@
"limit_to_extruder": "support_bottom_extruder_nr if support_bottom_enable else support_infill_extruder_nr", "limit_to_extruder": "support_bottom_extruder_nr if support_bottom_enable else support_infill_extruder_nr",
"minimum_value": "0", "minimum_value": "0",
"maximum_value_warning": "1.0", "maximum_value_warning": "1.0",
"enabled": "support_enable", "enabled": "support_enable or support_meshes_present",
"settable_per_mesh": true "settable_per_mesh": true
}, },
"support_bottom_stair_step_width": "support_bottom_stair_step_width":
@ -4461,7 +4471,7 @@
"limit_to_extruder": "support_interface_extruder_nr if support_interface_enable else support_infill_extruder_nr", "limit_to_extruder": "support_interface_extruder_nr if support_interface_enable else support_infill_extruder_nr",
"minimum_value": "0", "minimum_value": "0",
"maximum_value_warning": "10.0", "maximum_value_warning": "10.0",
"enabled": "support_enable", "enabled": "support_enable or support_meshes_present",
"settable_per_mesh": true "settable_per_mesh": true
}, },
"support_join_distance": "support_join_distance":
@ -4474,7 +4484,7 @@
"limit_to_extruder": "support_infill_extruder_nr", "limit_to_extruder": "support_infill_extruder_nr",
"minimum_value_warning": "0", "minimum_value_warning": "0",
"maximum_value_warning": "10", "maximum_value_warning": "10",
"enabled": "support_enable", "enabled": "support_enable or support_meshes_present",
"settable_per_mesh": true "settable_per_mesh": true
}, },
"support_offset": "support_offset":
@ -4487,7 +4497,7 @@
"limit_to_extruder": "support_infill_extruder_nr", "limit_to_extruder": "support_infill_extruder_nr",
"minimum_value_warning": "-1 * machine_nozzle_size", "minimum_value_warning": "-1 * machine_nozzle_size",
"maximum_value_warning": "10 * machine_nozzle_size", "maximum_value_warning": "10 * machine_nozzle_size",
"enabled": "support_enable", "enabled": "support_enable or support_meshes_present",
"settable_per_mesh": true "settable_per_mesh": true
}, },
"support_infill_sparse_thickness": "support_infill_sparse_thickness":
@ -4501,7 +4511,7 @@
"maximum_value_warning": "0.75 * machine_nozzle_size", "maximum_value_warning": "0.75 * machine_nozzle_size",
"maximum_value": "resolveOrValue('layer_height') * 8", "maximum_value": "resolveOrValue('layer_height') * 8",
"value": "resolveOrValue('layer_height')", "value": "resolveOrValue('layer_height')",
"enabled": "(support_enable or support_tree_enable) and support_infill_rate > 0", "enabled": "(support_enable or support_tree_enable or support_meshes_present) and support_infill_rate > 0",
"limit_to_extruder": "support_infill_extruder_nr", "limit_to_extruder": "support_infill_extruder_nr",
"settable_per_mesh": false "settable_per_mesh": false
}, },
@ -4514,7 +4524,7 @@
"minimum_value": "0", "minimum_value": "0",
"maximum_value_warning": "1 if (support_pattern == 'cross' or support_pattern == 'lines' or support_pattern == 'zigzag' or support_pattern == 'concentric') else 5", "maximum_value_warning": "1 if (support_pattern == 'cross' or support_pattern == 'lines' or support_pattern == 'zigzag' or support_pattern == 'concentric') else 5",
"maximum_value": "999999 if support_line_distance == 0 else (20 - math.log(support_line_distance) / math.log(2))", "maximum_value": "999999 if support_line_distance == 0 else (20 - math.log(support_line_distance) / math.log(2))",
"enabled": "(support_enable or support_tree_enable) and support_infill_rate > 0", "enabled": "(support_enable or support_tree_enable or support_meshes_present) and support_infill_rate > 0",
"limit_to_extruder": "support_infill_extruder_nr", "limit_to_extruder": "support_infill_extruder_nr",
"settable_per_mesh": false "settable_per_mesh": false
}, },
@ -4527,7 +4537,7 @@
"default_value": 1, "default_value": 1,
"minimum_value": "0.0001", "minimum_value": "0.0001",
"minimum_value_warning": "3 * resolveOrValue('layer_height')", "minimum_value_warning": "3 * resolveOrValue('layer_height')",
"enabled": "(support_enable or support_tree_enable) and support_infill_rate > 0 and gradual_support_infill_steps > 0", "enabled": "(support_enable or support_tree_enable or support_meshes_present) and support_infill_rate > 0 and gradual_support_infill_steps > 0",
"limit_to_extruder": "support_infill_extruder_nr", "limit_to_extruder": "support_infill_extruder_nr",
"settable_per_mesh": false "settable_per_mesh": false
}, },
@ -4540,7 +4550,7 @@
"default_value": 0.0, "default_value": 0.0,
"minimum_value": "0", "minimum_value": "0",
"maximum_value_warning": "5", "maximum_value_warning": "5",
"enabled": "support_enable", "enabled": "support_enable or support_meshes_present",
"limit_to_extruder": "support_infill_extruder_nr", "limit_to_extruder": "support_infill_extruder_nr",
"settable_per_mesh": true "settable_per_mesh": true
}, },
@ -4551,7 +4561,7 @@
"type": "bool", "type": "bool",
"default_value": false, "default_value": false,
"limit_to_extruder": "support_interface_extruder_nr", "limit_to_extruder": "support_interface_extruder_nr",
"enabled": "support_enable or support_tree_enable", "enabled": "support_enable or support_tree_enable or support_meshes_present",
"settable_per_mesh": true, "settable_per_mesh": true,
"children": "children":
{ {
@ -4563,7 +4573,7 @@
"default_value": false, "default_value": false,
"value": "extruderValue(support_roof_extruder_nr, 'support_interface_enable')", "value": "extruderValue(support_roof_extruder_nr, 'support_interface_enable')",
"limit_to_extruder": "support_roof_extruder_nr", "limit_to_extruder": "support_roof_extruder_nr",
"enabled": "support_enable or support_tree_enable", "enabled": "support_enable or support_tree_enable or support_meshes_present",
"settable_per_mesh": true "settable_per_mesh": true
}, },
"support_bottom_enable": "support_bottom_enable":
@ -4574,7 +4584,7 @@
"default_value": false, "default_value": false,
"value": "extruderValue(support_bottom_extruder_nr, 'support_interface_enable')", "value": "extruderValue(support_bottom_extruder_nr, 'support_interface_enable')",
"limit_to_extruder": "support_bottom_extruder_nr", "limit_to_extruder": "support_bottom_extruder_nr",
"enabled": "support_enable or support_tree_enable", "enabled": "support_enable or support_tree_enable or support_meshes_present",
"settable_per_mesh": true "settable_per_mesh": true
} }
} }
@ -4590,7 +4600,7 @@
"minimum_value_warning": "0.2 + layer_height", "minimum_value_warning": "0.2 + layer_height",
"maximum_value_warning": "10", "maximum_value_warning": "10",
"limit_to_extruder": "support_interface_extruder_nr", "limit_to_extruder": "support_interface_extruder_nr",
"enabled": "support_interface_enable and (support_enable or support_tree_enable)", "enabled": "support_interface_enable and (support_enable or support_tree_enable or support_meshes_present)",
"settable_per_mesh": true, "settable_per_mesh": true,
"children": "children":
{ {
@ -4606,7 +4616,7 @@
"maximum_value_warning": "10", "maximum_value_warning": "10",
"value": "extruderValue(support_roof_extruder_nr, 'support_interface_height')", "value": "extruderValue(support_roof_extruder_nr, 'support_interface_height')",
"limit_to_extruder": "support_roof_extruder_nr", "limit_to_extruder": "support_roof_extruder_nr",
"enabled": "support_roof_enable and (support_enable or support_tree_enable)", "enabled": "support_roof_enable and (support_enable or support_tree_enable or support_meshes_present)",
"settable_per_mesh": true "settable_per_mesh": true
}, },
"support_bottom_height": "support_bottom_height":
@ -4621,7 +4631,7 @@
"minimum_value_warning": "min(support_bottom_distance + layer_height, support_bottom_stair_step_height)", "minimum_value_warning": "min(support_bottom_distance + layer_height, support_bottom_stair_step_height)",
"maximum_value_warning": "10", "maximum_value_warning": "10",
"limit_to_extruder": "support_bottom_extruder_nr", "limit_to_extruder": "support_bottom_extruder_nr",
"enabled": "support_bottom_enable and (support_enable or support_tree_enable)", "enabled": "support_bottom_enable and (support_enable or support_tree_enable or support_meshes_present)",
"settable_per_mesh": true "settable_per_mesh": true
} }
} }
@ -4635,7 +4645,7 @@
"minimum_value": "0", "minimum_value": "0",
"maximum_value_warning": "support_interface_height", "maximum_value_warning": "support_interface_height",
"limit_to_extruder": "support_interface_extruder_nr", "limit_to_extruder": "support_interface_extruder_nr",
"enabled": "support_interface_enable and (support_enable or support_tree_enable)", "enabled": "support_interface_enable and (support_enable or support_tree_enable or support_meshes_present)",
"settable_per_mesh": true "settable_per_mesh": true
}, },
"support_interface_density": "support_interface_density":
@ -4648,7 +4658,7 @@
"minimum_value": "0", "minimum_value": "0",
"maximum_value_warning": "100", "maximum_value_warning": "100",
"limit_to_extruder": "support_interface_extruder_nr", "limit_to_extruder": "support_interface_extruder_nr",
"enabled": "support_interface_enable and (support_enable or support_tree_enable)", "enabled": "support_interface_enable and (support_enable or support_tree_enable or support_meshes_present)",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
"children": "children":
@ -4663,7 +4673,7 @@
"minimum_value": "0", "minimum_value": "0",
"maximum_value": "100", "maximum_value": "100",
"limit_to_extruder": "support_roof_extruder_nr", "limit_to_extruder": "support_roof_extruder_nr",
"enabled": "support_roof_enable and (support_enable or support_tree_enable)", "enabled": "support_roof_enable and (support_enable or support_tree_enable or support_meshes_present)",
"value": "extruderValue(support_roof_extruder_nr, 'support_interface_density')", "value": "extruderValue(support_roof_extruder_nr, 'support_interface_density')",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
@ -4680,7 +4690,7 @@
"minimum_value_warning": "support_roof_line_width - 0.0001", "minimum_value_warning": "support_roof_line_width - 0.0001",
"value": "0 if support_roof_density == 0 else (support_roof_line_width * 100) / support_roof_density * (2 if support_roof_pattern == 'grid' else (3 if support_roof_pattern == 'triangles' else 1))", "value": "0 if support_roof_density == 0 else (support_roof_line_width * 100) / support_roof_density * (2 if support_roof_pattern == 'grid' else (3 if support_roof_pattern == 'triangles' else 1))",
"limit_to_extruder": "support_roof_extruder_nr", "limit_to_extruder": "support_roof_extruder_nr",
"enabled": "support_roof_enable and (support_enable or support_tree_enable)", "enabled": "support_roof_enable and (support_enable or support_tree_enable or support_meshes_present)",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
} }
@ -4696,7 +4706,7 @@
"minimum_value": "0", "minimum_value": "0",
"maximum_value": "100", "maximum_value": "100",
"limit_to_extruder": "support_bottom_extruder_nr", "limit_to_extruder": "support_bottom_extruder_nr",
"enabled": "support_bottom_enable and (support_enable or support_tree_enable)", "enabled": "support_bottom_enable and (support_enable or support_tree_enable or support_meshes_present)",
"value": "extruderValue(support_bottom_extruder_nr, 'support_interface_density')", "value": "extruderValue(support_bottom_extruder_nr, 'support_interface_density')",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
@ -4713,7 +4723,7 @@
"minimum_value_warning": "support_bottom_line_width - 0.0001", "minimum_value_warning": "support_bottom_line_width - 0.0001",
"value": "0 if support_bottom_density == 0 else (support_bottom_line_width * 100) / support_bottom_density * (2 if support_bottom_pattern == 'grid' else (3 if support_bottom_pattern == 'triangles' else 1))", "value": "0 if support_bottom_density == 0 else (support_bottom_line_width * 100) / support_bottom_density * (2 if support_bottom_pattern == 'grid' else (3 if support_bottom_pattern == 'triangles' else 1))",
"limit_to_extruder": "support_bottom_extruder_nr", "limit_to_extruder": "support_bottom_extruder_nr",
"enabled": "support_bottom_enable and (support_enable or support_tree_enable)", "enabled": "support_bottom_enable and (support_enable or support_tree_enable or support_meshes_present)",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
} }
@ -4736,7 +4746,7 @@
}, },
"default_value": "concentric", "default_value": "concentric",
"limit_to_extruder": "support_interface_extruder_nr", "limit_to_extruder": "support_interface_extruder_nr",
"enabled": "support_interface_enable and (support_enable or support_tree_enable)", "enabled": "support_interface_enable and (support_enable or support_tree_enable or support_meshes_present)",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
"children": "children":
@ -4757,7 +4767,7 @@
"default_value": "concentric", "default_value": "concentric",
"value": "extruderValue(support_roof_extruder_nr, 'support_interface_pattern')", "value": "extruderValue(support_roof_extruder_nr, 'support_interface_pattern')",
"limit_to_extruder": "support_roof_extruder_nr", "limit_to_extruder": "support_roof_extruder_nr",
"enabled": "support_roof_enable and (support_enable or support_tree_enable)", "enabled": "support_roof_enable and (support_enable or support_tree_enable or support_meshes_present)",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
}, },
@ -4777,7 +4787,7 @@
"default_value": "concentric", "default_value": "concentric",
"value": "extruderValue(support_bottom_extruder_nr, 'support_interface_pattern')", "value": "extruderValue(support_bottom_extruder_nr, 'support_interface_pattern')",
"limit_to_extruder": "support_bottom_extruder_nr", "limit_to_extruder": "support_bottom_extruder_nr",
"enabled": "support_bottom_enable and (support_enable or support_tree_enable)", "enabled": "support_bottom_enable and (support_enable or support_tree_enable or support_meshes_present)",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
} }
@ -4793,7 +4803,7 @@
"minimum_value": "0", "minimum_value": "0",
"minimum_value_warning": "minimum_support_area", "minimum_value_warning": "minimum_support_area",
"limit_to_extruder": "support_interface_extruder_nr", "limit_to_extruder": "support_interface_extruder_nr",
"enabled": "support_interface_enable and (support_enable or support_tree_enable)", "enabled": "support_interface_enable and (support_enable or support_tree_enable or support_meshes_present)",
"settable_per_mesh": true, "settable_per_mesh": true,
"children": "children":
{ {
@ -4808,7 +4818,7 @@
"minimum_value": "0", "minimum_value": "0",
"minimum_value_warning": "minimum_support_area", "minimum_value_warning": "minimum_support_area",
"limit_to_extruder": "support_roof_extruder_nr", "limit_to_extruder": "support_roof_extruder_nr",
"enabled": "support_roof_enable and (support_enable or support_tree_enable)", "enabled": "support_roof_enable and (support_enable or support_tree_enable or support_meshes_present)",
"settable_per_mesh": true "settable_per_mesh": true
}, },
"minimum_bottom_area": "minimum_bottom_area":
@ -4822,7 +4832,7 @@
"minimum_value": "0", "minimum_value": "0",
"minimum_value_warning": "minimum_support_area", "minimum_value_warning": "minimum_support_area",
"limit_to_extruder": "support_bottom_extruder_nr", "limit_to_extruder": "support_bottom_extruder_nr",
"enabled": "support_bottom_enable and (support_enable or support_tree_enable)", "enabled": "support_bottom_enable and (support_enable or support_tree_enable or support_meshes_present)",
"settable_per_mesh": true "settable_per_mesh": true
} }
} }
@ -4836,7 +4846,7 @@
"default_value": 0.0, "default_value": 0.0,
"maximum_value": "extruderValue(support_extruder_nr, 'support_offset')", "maximum_value": "extruderValue(support_extruder_nr, 'support_offset')",
"limit_to_extruder": "support_interface_extruder_nr", "limit_to_extruder": "support_interface_extruder_nr",
"enabled": "support_interface_enable and (support_enable or support_tree_enable)", "enabled": "support_interface_enable and (support_enable or support_tree_enable or support_meshes_present)",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
"children": "children":
@ -4851,7 +4861,7 @@
"value": "extruderValue(support_roof_extruder_nr, 'support_interface_offset')", "value": "extruderValue(support_roof_extruder_nr, 'support_interface_offset')",
"maximum_value": "extruderValue(support_extruder_nr, 'support_offset')", "maximum_value": "extruderValue(support_extruder_nr, 'support_offset')",
"limit_to_extruder": "support_roof_extruder_nr", "limit_to_extruder": "support_roof_extruder_nr",
"enabled": "support_roof_enable and (support_enable or support_tree_enable)", "enabled": "support_roof_enable and (support_enable or support_tree_enable or support_meshes_present)",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
}, },
@ -4865,7 +4875,7 @@
"value": "extruderValue(support_bottom_extruder_nr, 'support_interface_offset')", "value": "extruderValue(support_bottom_extruder_nr, 'support_interface_offset')",
"maximum_value": "extruderValue(support_extruder_nr, 'support_offset')", "maximum_value": "extruderValue(support_extruder_nr, 'support_offset')",
"limit_to_extruder": "support_bottom_extruder_nr", "limit_to_extruder": "support_bottom_extruder_nr",
"enabled": "support_bottom_enable and (support_enable or support_tree_enable)", "enabled": "support_bottom_enable and (support_enable or support_tree_enable or support_meshes_present)",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
} }
@ -4878,7 +4888,7 @@
"type": "[int]", "type": "[int]",
"default_value": "[ ]", "default_value": "[ ]",
"limit_to_extruder": "support_interface_extruder_nr", "limit_to_extruder": "support_interface_extruder_nr",
"enabled": "(support_enable or support_tree_enable) and support_interface_enable and support_interface_pattern != 'concentric'", "enabled": "(support_enable or support_tree_enable or support_meshes_present) and support_interface_enable and support_interface_pattern != 'concentric'",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
"children": "children":
@ -4891,7 +4901,7 @@
"default_value": "[ ]", "default_value": "[ ]",
"value": "support_interface_angles", "value": "support_interface_angles",
"limit_to_extruder": "support_roof_extruder_nr", "limit_to_extruder": "support_roof_extruder_nr",
"enabled": "(support_enable or support_tree_enable) and support_roof_enable and support_roof_pattern != 'concentric'", "enabled": "(support_enable or support_tree_enable or support_meshes_present) and support_roof_enable and support_roof_pattern != 'concentric'",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
}, },
@ -4903,7 +4913,7 @@
"default_value": "[ ]", "default_value": "[ ]",
"value": "support_interface_angles", "value": "support_interface_angles",
"limit_to_extruder": "support_bottom_extruder_nr", "limit_to_extruder": "support_bottom_extruder_nr",
"enabled": "(support_enable or support_tree_enable) and support_bottom_enable and support_bottom_pattern != 'concentric'", "enabled": "(support_enable or support_tree_enable or support_meshes_present) and support_bottom_enable and support_bottom_pattern != 'concentric'",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
} }
@ -4915,7 +4925,7 @@
"description": "When enabled, the print cooling fan speed is altered for the skin regions immediately above the support.", "description": "When enabled, the print cooling fan speed is altered for the skin regions immediately above the support.",
"type": "bool", "type": "bool",
"default_value": false, "default_value": false,
"enabled": "support_enable or support_tree_enable", "enabled": "support_enable or support_tree_enable or support_meshes_present",
"settable_per_mesh": false "settable_per_mesh": false
}, },
"support_supported_skin_fan_speed": "support_supported_skin_fan_speed":
@ -4927,7 +4937,7 @@
"maximum_value": "100", "maximum_value": "100",
"default_value": 100, "default_value": 100,
"type": "float", "type": "float",
"enabled": "(support_enable or support_tree_enable) and support_fan_enable", "enabled": "(support_enable or support_tree_enable or support_meshes_present) and support_fan_enable",
"settable_per_mesh": false "settable_per_mesh": false
}, },
"support_use_towers": "support_use_towers":
@ -4993,6 +5003,17 @@
"settable_per_extruder": false, "settable_per_extruder": false,
"settable_per_meshgroup": false, "settable_per_meshgroup": false,
"settable_globally": false "settable_globally": false
},
"support_meshes_present":
{
"label": "Scene Has Support Meshes",
"description": "There are support meshes present in the scene. This setting is controlled by Cura.",
"type": "bool",
"default_value": false,
"enabled": false,
"settable_per_mesh": false,
"settable_per_extruder": false,
"settable_per_meshgroup": false
} }
} }
}, },
@ -5163,7 +5184,7 @@
"description": "Enforce brim to be printed around the model even if that space would otherwise be occupied by support. This replaces some regions of the first layer of support by brim regions.", "description": "Enforce brim to be printed around the model even if that space would otherwise be occupied by support. This replaces some regions of the first layer of support by brim regions.",
"type": "bool", "type": "bool",
"default_value": true, "default_value": true,
"enabled": "resolveOrValue('adhesion_type') == 'brim' and (support_enable or support_tree_enable)", "enabled": "resolveOrValue('adhesion_type') == 'brim' and (support_enable or support_tree_enable or support_meshes_present)",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
"limit_to_extruder": "support_infill_extruder_nr" "limit_to_extruder": "support_infill_extruder_nr"
@ -5947,7 +5968,7 @@
"description": "Remove empty layers beneath the first printed layer if they are present. Disabling this setting can cause empty first layers if the Slicing Tolerance setting is set to Exclusive or Middle.", "description": "Remove empty layers beneath the first printed layer if they are present. Disabling this setting can cause empty first layers if the Slicing Tolerance setting is set to Exclusive or Middle.",
"type": "bool", "type": "bool",
"default_value": true, "default_value": true,
"enabled": "not (support_enable or support_tree_enable)", "enabled": "not (support_enable or support_tree_enable or support_meshes_present)",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": false "settable_per_extruder": false
}, },
@ -6359,7 +6380,7 @@
"description": "Skip some support line connections to make the support structure easier to break away. This setting is applicable to the Zig Zag support infill pattern.", "description": "Skip some support line connections to make the support structure easier to break away. This setting is applicable to the Zig Zag support infill pattern.",
"type": "bool", "type": "bool",
"default_value": false, "default_value": false,
"enabled": "support_enable and (support_pattern == 'zigzag')", "enabled": "(support_enable or support_meshes_present) and support_pattern == 'zigzag'",
"limit_to_extruder": "support_infill_extruder_nr", "limit_to_extruder": "support_infill_extruder_nr",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
@ -6373,7 +6394,7 @@
"default_value": 20, "default_value": 20,
"minimum_value": "0", "minimum_value": "0",
"minimum_value_warning": "support_line_distance", "minimum_value_warning": "support_line_distance",
"enabled": "support_enable and (support_pattern == 'zigzag') and support_skip_some_zags", "enabled": "(support_enable or support_meshes_present) and support_pattern == 'zigzag' and support_skip_some_zags",
"limit_to_extruder": "support_infill_extruder_nr", "limit_to_extruder": "support_infill_extruder_nr",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
@ -6388,7 +6409,7 @@
"value": "0 if support_line_distance == 0 else round(support_skip_zag_per_mm / support_line_distance)", "value": "0 if support_line_distance == 0 else round(support_skip_zag_per_mm / support_line_distance)",
"minimum_value": "1", "minimum_value": "1",
"minimum_value_warning": "3", "minimum_value_warning": "3",
"enabled": "support_enable and (support_pattern == 'zigzag') and support_skip_some_zags", "enabled": "(support_enable or support_meshes_present) and support_pattern == 'zigzag' and support_skip_some_zags",
"limit_to_extruder": "support_infill_extruder_nr", "limit_to_extruder": "support_infill_extruder_nr",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true

View file

@ -0,0 +1,37 @@
{
"version": 2,
"name": "Smoothie Custom Printer",
"inherits": "fdmprinter",
"metadata": {
"visible": true,
"author": "grk3010",
"manufacturer": "Custom",
"file_formats": "text/x-gcode",
"machine_extruder_trains":
{
"0": "custom_extruder_1",
"1": "custom_extruder_2",
"2": "custom_extruder_3",
"3": "custom_extruder_4",
"4": "custom_extruder_5",
"5": "custom_extruder_6",
"6": "custom_extruder_7",
"7": "custom_extruder_8"
},
"first_start_actions": ["MachineSettingsAction"]
},
"overrides": {
"machine_gcode_flavor": {
"default_value": "RepRap (Marlin/Sprinter)"
},
"machine_always_write_active_tool": {
"default_value": true
},
"machine_start_gcode": {
"default_value": "G28 X0 Y0 ; Home X Y\nM375; Load Bed Leveling Grid\nG1 X300 Y275 F15000 ; Move to bed center\nM280 S3.0 ; Deploy probe pin\n## NOTE: Adjust \"ZX.XX\" after G30 to be the Z-offset (in mm) between the probe and the nozzle\n## This is how you adjust nozzle printing height!\nG30 Z1.25 ; Move down to find bed & set Z home offset\nM280 S7.0 ; Retract probe\nG1 Z15.0 F600 ; move extruder up 15mm\nT0; Activate Extruder 1"
},
"machine_end_gcode": {
"default_value": "G28 X0 Y0; Home X and Y\nM104 S0 ; turn off extruder\nM140 S0 ; turn off bed\nM107; turn off fans\nM84 ; disable motors"
}
}
}

View file

@ -23,7 +23,7 @@
"overrides": { "overrides": {
"machine_name": { "default_value": "Ultimaker 2" }, "machine_name": { "default_value": "Ultimaker 2" },
"machine_start_gcode" : { "machine_start_gcode" : {
"value": "\"\" if machine_gcode_flavor == \"UltiGCode\" else \"G21 ;metric values\\nG90 ;absolute positioning\\nM82 ;set extruder to absolute mode\\nM107 ;start with the fan off\\nG28 Z0 ;move Z to bottom endstops\\nG28 X0 Y0 ;move X/Y to endstops\\nG1 X15 Y0 F4000 ;move X/Y to front of printer\\nG1 Z15.0 F9000 ;move the platform to 15mm\\nG92 E0 ;zero the extruded length\\nG1 F200 E10 ;extrude 10 mm of feed stock\\nG92 E0 ;zero the extruded length again\\nG1 F9000\\n;Put printing message on LCD screen\\nM117 Printing...\"" "value": "\"G0 F3000 Y50 ;avoid prime blob\" if machine_gcode_flavor == \"UltiGCode\" else \"G21 ;metric values\\nG90 ;absolute positioning\\nM82 ;set extruder to absolute mode\\nM107 ;start with the fan off\\nG28 Z0 ;move Z to bottom endstops\\nG28 X0 Y0 ;move X/Y to endstops\\nG1 X15 Y0 F4000 ;move X/Y to front of printer\\nG1 Z15.0 F9000 ;move the platform to 15mm\\nG92 E0 ;zero the extruded length\\nG1 F200 E10 ;extrude 10 mm of feed stock\\nG92 E0 ;zero the extruded length again\\nG1 Y50 F9000\\n;Put printing message on LCD screen\\nM117 Printing...\""
}, },
"machine_end_gcode" : { "machine_end_gcode" : {
"value": "\";Version _2.6 of the firmware can abort the print too early if the file ends\\n;too soon. However if the file hasn't ended yet because there are comments at\\n;the end of the file, it won't abort yet. Therefore we have to put at least 512\\n;bytes at the end of the g-code so that the file is not yet finished by the\\n;time that the motion planner gets flushed. With firmware version _3.3 this\\n;should be fixed, so this comment wouldn't be necessary any more. Now we have\\n;to pad this text to make precisely 512 bytes.\" if machine_gcode_flavor == \"UltiGCode\" else \"M104 S0 ;extruder heater off\\nM140 S0 ;heated bed heater off (if you have it)\\nG91 ;relative positioning\\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\\nM84 ;steppers off\\nG90 ;absolute positioning\\n;Version _2.6 of the firmware can abort the print too early if the file ends\\n;too soon. However if the file hasn't ended yet because there are comments at\\n;the end of the file, it won't abort yet. Therefore we have to put at least 512\\n;bytes at the end of the g-code so that the file is not yet finished by the\\n;time that the motion planner gets flushed. With firmware version _3.3 this\\n;should be fixed, so this comment wouldn't be necessary any more. Now we have\\n;to pad this text to make precisely 512 bytes.\"" "value": "\";Version _2.6 of the firmware can abort the print too early if the file ends\\n;too soon. However if the file hasn't ended yet because there are comments at\\n;the end of the file, it won't abort yet. Therefore we have to put at least 512\\n;bytes at the end of the g-code so that the file is not yet finished by the\\n;time that the motion planner gets flushed. With firmware version _3.3 this\\n;should be fixed, so this comment wouldn't be necessary any more. Now we have\\n;to pad this text to make precisely 512 bytes.\" if machine_gcode_flavor == \"UltiGCode\" else \"M104 S0 ;extruder heater off\\nM140 S0 ;heated bed heater off (if you have it)\\nG91 ;relative positioning\\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\\nM84 ;steppers off\\nG90 ;absolute positioning\\n;Version _2.6 of the firmware can abort the print too early if the file ends\\n;too soon. However if the file hasn't ended yet because there are comments at\\n;the end of the file, it won't abort yet. Therefore we have to put at least 512\\n;bytes at the end of the g-code so that the file is not yet finished by the\\n;time that the motion planner gets flushed. With firmware version _3.3 this\\n;should be fixed, so this comment wouldn't be necessary any more. Now we have\\n;to pad this text to make precisely 512 bytes.\""

View file

@ -0,0 +1,28 @@
{
"version": 2,
"name": "Extruder 1",
"inherits": "fdmextruder",
"metadata": {
"machine": "atmat_signal_pro_base",
"position": "0"
},
"overrides": {
"extruder_nr": {
"default_value": 0,
"maximum_value": "1"
},
"machine_nozzle_offset_x": { "default_value": 0 },
"machine_nozzle_offset_y": { "default_value": 0 },
"machine_extruder_start_pos_abs": { "default_value": true },
"machine_extruder_start_pos_x": { "default_value": 270 },
"machine_extruder_start_pos_y": { "default_value": 270 },
"machine_extruder_end_pos_abs": { "default_value": true },
"machine_extruder_end_pos_x": { "default_value": 270 },
"machine_extruder_end_pos_y": { "default_value": 270 },
"extruder_prime_pos_x": { "default_value": 0 },
"extruder_prime_pos_y": { "default_value": 0 },
"extruder_prime_pos_z": { "default_value": 0 },
"material_diameter": { "default_value": 1.75 }
}
}

View file

@ -0,0 +1,28 @@
{
"version": 2,
"name": "Extruder 2",
"inherits": "fdmextruder",
"metadata": {
"machine": "atmat_signal_pro_base",
"position": "1"
},
"overrides": {
"extruder_nr": {
"default_value": 1,
"maximum_value": "1"
},
"machine_nozzle_offset_x": { "default_value": 0 },
"machine_nozzle_offset_y": { "default_value": 0 },
"machine_extruder_start_pos_abs": { "default_value": true },
"machine_extruder_start_pos_x": { "default_value": 270 },
"machine_extruder_start_pos_y": { "default_value": 270 },
"machine_extruder_end_pos_abs": { "default_value": true },
"machine_extruder_end_pos_x": { "default_value": 270 },
"machine_extruder_end_pos_y": { "default_value": 270 },
"extruder_prime_pos_x": { "default_value": 0 },
"extruder_prime_pos_y": { "default_value": 0 },
"extruder_prime_pos_z": { "default_value": 0 },
"material_diameter": { "default_value": 1.75 }
}
}

Binary file not shown.

Binary file not shown.

View file

@ -1,4 +1,4 @@
// Copyright (c) 2018 Ultimaker B.V. // Copyright (c) 2020 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.7 import QtQuick 2.7
@ -98,7 +98,7 @@ Button
target: buttonText target: buttonText
property: "width" property: "width"
value: button.fixedWidthMode ? button.width - button.leftPadding - button.rightPadding value: button.fixedWidthMode ? button.width - button.leftPadding - button.rightPadding
: ((maximumWidth != 0 && contentWidth > maximumWidth) ? maximumWidth : undefined) : ((maximumWidth != 0 && button.contentWidth > maximumWidth) ? maximumWidth : undefined)
} }
} }

View file

@ -72,6 +72,9 @@ UM.PreferencesPage
var defaultTheme = UM.Preferences.getValue("general/theme") var defaultTheme = UM.Preferences.getValue("general/theme")
setDefaultTheme(defaultTheme) setDefaultTheme(defaultTheme)
UM.Preferences.resetPreference("cura/single_instance")
singleInstanceCheckbox.checked = boolCheck(UM.Preferences.getValue("cura/single_instance"))
UM.Preferences.resetPreference("physics/automatic_push_free") UM.Preferences.resetPreference("physics/automatic_push_free")
pushFreeCheckbox.checked = boolCheck(UM.Preferences.getValue("physics/automatic_push_free")) pushFreeCheckbox.checked = boolCheck(UM.Preferences.getValue("physics/automatic_push_free"))
UM.Preferences.resetPreference("physics/automatic_drop_down") UM.Preferences.resetPreference("physics/automatic_drop_down")
@ -560,6 +563,21 @@ UM.PreferencesPage
text: catalog.i18nc("@label","Opening and saving files") text: catalog.i18nc("@label","Opening and saving files")
} }
UM.TooltipArea
{
width: childrenRect.width
height: childrenRect.height
text: catalog.i18nc("@info:tooltip","Should opening files from the desktop or external applications open in the same instance of Cura?")
CheckBox
{
id: singleInstanceCheckbox
text: catalog.i18nc("@option:check","Use a single instance of Cura")
checked: boolCheck(UM.Preferences.getValue("cura/single_instance"))
onCheckedChanged: UM.Preferences.setValue("cura/single_instance", checked)
}
}
UM.TooltipArea UM.TooltipArea
{ {
width: childrenRect.width width: childrenRect.width

View file

@ -73,8 +73,6 @@ Item
height: textLabel.contentHeight + 2 * UM.Theme.getSize("narrow_margin").height height: textLabel.contentHeight + 2 * UM.Theme.getSize("narrow_margin").height
hoverEnabled: true hoverEnabled: true
baselineOffset: null // If we don't do this, there is a binding loop. WHich is a bit weird, since we override the contentItem anyway...
contentItem: RowLayout contentItem: RowLayout
{ {
spacing: 0 spacing: 0

View file

@ -38,12 +38,23 @@ Cura.ExpandablePopup
readonly property string connectionStatusMessage: { readonly property string connectionStatusMessage: {
if (connectionStatus == "printer_cloud_not_available") if (connectionStatus == "printer_cloud_not_available")
{ {
if(Cura.API.connectionStatus.isInternetReachable){ if(Cura.API.connectionStatus.isInternetReachable)
return catalog.i18nc("@status", "The cloud connection is currently unavailable. Please check your internet connection and sign in to connect to the cloud printer.") {
} else { if (Cura.API.account.isLoggedIn)
{
return catalog.i18nc("@status", "The cloud printer is offline. Please check if the printer is turned on and connected to the internet.")
}
else
{
return catalog.i18nc("@status", "The cloud connection is currently unavailable. Please sign in to connect to the cloud printer.")
}
} else
{
return catalog.i18nc("@status", "The cloud connection is currently unavailable. Please check your internet connection.") return catalog.i18nc("@status", "The cloud connection is currently unavailable. Please check your internet connection.")
} }
} else { }
else
{
return "" return ""
} }
} }

View file

@ -0,0 +1,14 @@
[general]
version = 4
name = Extra Fast
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = extrafast
global_quality = True
[values]
layer_height = 0.3

View file

@ -0,0 +1,14 @@
[general]
version = 4
name = Extra Fine
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = extrafine
global_quality = True
[values]
layer_height = 0.06

View file

@ -0,0 +1,14 @@
[general]
version = 4
name = Fast
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = fast
global_quality = True
[values]
layer_height = 0.2

View file

@ -0,0 +1,14 @@
[general]
version = 4
name = Fine
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = fine
global_quality = True
[values]
layer_height = 0.1

View file

@ -0,0 +1,14 @@
[general]
version = 4
name = Normal
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = normal
global_quality = True
[values]
layer_height = 0.15

View file

@ -0,0 +1,14 @@
[general]
version = 4
name = Sprint
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = sprint
global_quality = True
[values]
layer_height = 0.4

View file

@ -0,0 +1,14 @@
[general]
version = 4
name = Super Sprint
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = supersprint
global_quality = True
[values]
layer_height = 0.5

View file

@ -0,0 +1,14 @@
[general]
version = 4
name = Ultra Sprint
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = ultrasprint
global_quality = True
[values]
layer_height = 0.6

View file

@ -0,0 +1,19 @@
[general]
version = 4
name = Extra Fast
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = extrafast
material = generic_abs_175
variant = V6 0.40mm
[values]
material_bed_temperature = =default_material_bed_temperature + 20
material_print_temperature = =default_material_print_temperature + 25
build_volume_temperature = 40
speed_print = 50
retraction_amount = 1.2
cool_fan_enabled = False

View file

@ -0,0 +1,19 @@
[general]
version = 4
name = Fast
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = fast
material = generic_abs_175
variant = V6 0.40mm
[values]
material_bed_temperature = =default_material_bed_temperature + 20
material_print_temperature = =default_material_print_temperature + 25
build_volume_temperature = 40
speed_print = 50
retraction_amount = 1.2
cool_fan_enabled = False

View file

@ -0,0 +1,19 @@
[general]
version = 4
name = Fine
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = fine
material = generic_abs_175
variant = V6 0.40mm
[values]
material_bed_temperature = =default_material_bed_temperature + 20
material_print_temperature = =default_material_print_temperature + 25
build_volume_temperature = 40
speed_print = 50
retraction_amount = 1.2
cool_fan_enabled = False

View file

@ -0,0 +1,19 @@
[general]
version = 4
name = Normal
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = normal
material = generic_abs_175
variant = V6 0.40mm
[values]
material_bed_temperature = =default_material_bed_temperature + 20
material_print_temperature = =default_material_print_temperature + 25
build_volume_temperature = 40
speed_print = 50
retraction_amount = 1.2
cool_fan_enabled = False

View file

@ -0,0 +1,19 @@
[general]
version = 4
name = Extra Fast
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = extrafast
material = generic_hips_175
variant = V6 0.40mm
[values]
material_bed_temperature = =default_material_bed_temperature + 25
material_print_temperature = =default_material_print_temperature + 50
build_volume_temperature = 40
speed_print = 40
retraction_amount = 1
cool_fan_enabled = False

View file

@ -0,0 +1,19 @@
[general]
version = 4
name = Fast
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = fast
material = generic_hips_175
variant = V6 0.40mm
[values]
material_bed_temperature = =default_material_bed_temperature + 25
material_print_temperature = =default_material_print_temperature + 50
build_volume_temperature = 40
speed_print = 40
retraction_amount = 1
cool_fan_enabled = False

View file

@ -0,0 +1,19 @@
[general]
version = 4
name = Fine
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = fine
material = generic_hips_175
variant = V6 0.40mm
[values]
material_bed_temperature = =default_material_bed_temperature + 25
material_print_temperature = =default_material_print_temperature + 50
build_volume_temperature = 40
speed_print = 40
retraction_amount = 1
cool_fan_enabled = False

View file

@ -0,0 +1,19 @@
[general]
version = 4
name = Normal
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = normal
material = generic_hips_175
variant = V6 0.40mm
[values]
material_bed_temperature = =default_material_bed_temperature + 25
material_print_temperature = =default_material_print_temperature + 50
build_volume_temperature = 40
speed_print = 40
retraction_amount = 1
cool_fan_enabled = False

View file

@ -0,0 +1,19 @@
[general]
version = 4
name = Extra Fast
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = extrafast
material = generic_nylon_175
variant = V6 0.40mm
[values]
material_bed_temperature = =default_material_bed_temperature + 10
material_print_temperature = =default_material_print_temperature + 20
build_volume_temperature = 40
speed_print = 30
retraction_amount = 1
cool_fan_enabled = False

View file

@ -0,0 +1,19 @@
[general]
version = 4
name = Fast
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = fast
material = generic_nylon_175
variant = V6 0.40mm
[values]
material_bed_temperature = =default_material_bed_temperature + 10
material_print_temperature = =default_material_print_temperature + 20
build_volume_temperature = 40
speed_print = 30
retraction_amount = 1
cool_fan_enabled = False

View file

@ -0,0 +1,19 @@
[general]
version = 4
name = Fine
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = fine
material = generic_nylon_175
variant = V6 0.40mm
[values]
material_bed_temperature = =default_material_bed_temperature + 10
material_print_temperature = =default_material_print_temperature + 20
build_volume_temperature = 40
speed_print = 30
retraction_amount = 1
cool_fan_enabled = False

View file

@ -0,0 +1,19 @@
[general]
version = 4
name = Normal
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = normal
material = generic_nylon_175
variant = V6 0.40mm
[values]
material_bed_temperature = =default_material_bed_temperature + 10
material_print_temperature = =default_material_print_temperature + 20
build_volume_temperature = 40
speed_print = 30
retraction_amount = 1
cool_fan_enabled = False

View file

@ -0,0 +1,19 @@
[general]
version = 4
name = Extra Fast
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = extrafast
material = generic_pc_175
variant = V6 0.40mm
[values]
material_bed_temperature = =default_material_bed_temperature + 20
material_print_temperature = =default_material_print_temperature + 13
build_volume_temperature = 45
speed_print = 25
retraction_amount = 1
cool_fan_enabled = False

View file

@ -0,0 +1,19 @@
[general]
version = 4
name = Fast
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = fast
material = generic_pc_175
variant = V6 0.40mm
[values]
material_bed_temperature = =default_material_bed_temperature + 20
material_print_temperature = =default_material_print_temperature + 13
build_volume_temperature = 45
speed_print = 25
retraction_amount = 1
cool_fan_enabled = False

View file

@ -0,0 +1,19 @@
[general]
version = 4
name = Fine
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = fine
material = generic_pc_175
variant = V6 0.40mm
[values]
material_bed_temperature = =default_material_bed_temperature + 20
material_print_temperature = =default_material_print_temperature + 13
build_volume_temperature = 45
speed_print = 25
retraction_amount = 1
cool_fan_enabled = False

View file

@ -0,0 +1,19 @@
[general]
version = 4
name = Normal
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = normal
material = generic_pc_175
variant = V6 0.40mm
[values]
material_bed_temperature = =default_material_bed_temperature + 20
material_print_temperature = =default_material_print_temperature + 13
build_volume_temperature = 45
speed_print = 25
retraction_amount = 1
cool_fan_enabled = False

View file

@ -0,0 +1,21 @@
[general]
version = 4
name = Extra Fast
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = extrafast
material = generic_petg_175
variant = V6 0.40mm
[values]
material_bed_temperature = =default_material_bed_temperature - 5
material_print_temperature = =default_material_print_temperature + 30
speed_print = 60
retraction_amount = 1
cool_fan_speed = 30
cool_fan_speed_max = 50
support_fan_enable = True
support_supported_skin_fan_speed = 100

View file

@ -0,0 +1,21 @@
[general]
version = 4
name = Fast
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = fast
material = generic_petg_175
variant = V6 0.40mm
[values]
material_bed_temperature = =default_material_bed_temperature - 5
material_print_temperature = =default_material_print_temperature + 30
speed_print = 60
retraction_amount = 1
cool_fan_speed = 30
cool_fan_speed_max = 50
support_fan_enable = True
support_supported_skin_fan_speed = 100

View file

@ -0,0 +1,21 @@
[general]
version = 4
name = Fine
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = fine
material = generic_petg_175
variant = V6 0.40mm
[values]
material_bed_temperature = =default_material_bed_temperature - 5
material_print_temperature = =default_material_print_temperature + 30
speed_print = 60
retraction_amount = 1
cool_fan_speed = 30
cool_fan_speed_max = 50
support_fan_enable = True
support_supported_skin_fan_speed = 100

View file

@ -0,0 +1,21 @@
[general]
version = 4
name = Normal
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = normal
material = generic_petg_175
variant = V6 0.40mm
[values]
material_bed_temperature = =default_material_bed_temperature - 5
material_print_temperature = =default_material_print_temperature + 30
speed_print = 60
retraction_amount = 1
cool_fan_speed = 30
cool_fan_speed_max = 50
support_fan_enable = True
support_supported_skin_fan_speed = 100

View file

@ -0,0 +1,20 @@
[general]
version = 4
name = Extra Fast
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = extrafast
material = generic_pla_175
variant = V6 0.40mm
[values]
material_print_temperature = =default_material_print_temperature + 20
speed_print = 70
retraction_amount = 0.75
cool_fan_speed = 75
cool_fan_speed_max = 100
support_fan_enable = True
support_supported_skin_fan_speed = 100

View file

@ -0,0 +1,20 @@
[general]
version = 4
name = Fast
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = fast
material = generic_pla_175
variant = V6 0.40mm
[values]
material_print_temperature = =default_material_print_temperature + 15
speed_print = 70
retraction_amount = 0.75
cool_fan_speed = 75
cool_fan_speed_max = 100
support_fan_enable = True
support_supported_skin_fan_speed = 100

View file

@ -0,0 +1,20 @@
[general]
version = 4
name = Fine
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = fine
material = generic_pla_175
variant = V6 0.40mm
[values]
material_print_temperature = =default_material_print_temperature + 5
speed_print = 70
retraction_amount = 0.75
cool_fan_speed = 75
cool_fan_speed_max = 100
support_fan_enable = True
support_supported_skin_fan_speed = 100

View file

@ -0,0 +1,20 @@
[general]
version = 4
name = Normal
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = normal
material = generic_pla_175
variant = V6 0.40mm
[values]
material_print_temperature = =default_material_print_temperature + 10
speed_print = 70
retraction_amount = 0.75
cool_fan_speed = 75
cool_fan_speed_max = 100
support_fan_enable = True
support_supported_skin_fan_speed = 100

View file

@ -0,0 +1,24 @@
[general]
version = 4
name = Extra Fast
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = extrafast
material = generic_pva_175
variant = V6 0.40mm
[values]
material_print_temperature = =default_material_print_temperature
speed_print = 30
retraction_amount = 1
cool_fan_enabled = False
brim_replaces_support = False
support_brim_enable = True
support_pattern = triangles
support_xy_distance_overhang = 0
support_bottom_distance = =support_z_distance
support_use_towers = False
support_z_distance = 0

View file

@ -0,0 +1,24 @@
[general]
version = 4
name = Fast
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = fast
material = generic_pva_175
variant = V6 0.40mm
[values]
material_print_temperature = =default_material_print_temperature
speed_print = 30
retraction_amount = 1
cool_fan_enabled = False
brim_replaces_support = False
support_brim_enable = True
support_pattern = triangles
support_xy_distance_overhang = 0
support_bottom_distance = =support_z_distance
support_use_towers = False
support_z_distance = 0

View file

@ -0,0 +1,24 @@
[general]
version = 4
name = Fine
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = fine
material = generic_pva_175
variant = V6 0.40mm
[values]
material_print_temperature = =default_material_print_temperature
speed_print = 30
retraction_amount = 1
cool_fan_enabled = False
brim_replaces_support = False
support_brim_enable = True
support_pattern = triangles
support_xy_distance_overhang = 0
support_bottom_distance = =support_z_distance
support_use_towers = False
support_z_distance = 0

View file

@ -0,0 +1,24 @@
[general]
version = 4
name = Normal
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = normal
material = generic_pva_175
variant = V6 0.40mm
[values]
material_print_temperature = =default_material_print_temperature
speed_print = 30
retraction_amount = 1
cool_fan_enabled = False
brim_replaces_support = False
support_brim_enable = True
support_pattern = triangles
support_xy_distance_overhang = 0
support_bottom_distance = =support_z_distance
support_use_towers = False
support_z_distance = 0

View file

@ -0,0 +1,19 @@
[general]
version = 4
name = Extra Fast
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = extrafast
material = generic_tpu_175
variant = V6 0.40mm
[values]
material_bed_temperature = =default_material_bed_temperature + 60
material_print_temperature = =default_material_print_temperature + 20
build_volume_temperature = 30
speed_print = 30
retraction_amount = 1
cool_fan_enabled = False

View file

@ -0,0 +1,19 @@
[general]
version = 4
name = Fast
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = fast
material = generic_tpu_175
variant = V6 0.40mm
[values]
material_bed_temperature = =default_material_bed_temperature + 60
material_print_temperature = =default_material_print_temperature + 20
build_volume_temperature = 30
speed_print = 30
retraction_amount = 1
cool_fan_enabled = False

View file

@ -0,0 +1,19 @@
[general]
version = 4
name = Fine
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = fine
material = generic_tpu_175
variant = V6 0.40mm
[values]
material_bed_temperature = =default_material_bed_temperature + 60
material_print_temperature = =default_material_print_temperature + 20
build_volume_temperature = 30
speed_print = 30
retraction_amount = 1
cool_fan_enabled = False

View file

@ -0,0 +1,19 @@
[general]
version = 4
name = Normal
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = normal
material = generic_tpu_175
variant = V6 0.40mm
[values]
material_bed_temperature = =default_material_bed_temperature + 60
material_print_temperature = =default_material_print_temperature + 20
build_volume_temperature = 30
speed_print = 30
retraction_amount = 1
cool_fan_enabled = False

View file

@ -0,0 +1,19 @@
[general]
version = 4
name = Extra Fast
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = extrafast
material = generic_abs_175
variant = V6 0.80mm
[values]
material_bed_temperature = =default_material_bed_temperature + 20
material_print_temperature = =default_material_print_temperature + 25
build_volume_temperature = 40
speed_print = 50
retraction_amount = 1.2
cool_fan_enabled = False

View file

@ -0,0 +1,19 @@
[general]
version = 4
name = Sprint
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = sprint
material = generic_abs_175
variant = V6 0.80mm
[values]
material_bed_temperature = =default_material_bed_temperature + 20
material_print_temperature = =default_material_print_temperature + 25
build_volume_temperature = 40
speed_print = 50
retraction_amount = 1.2
cool_fan_enabled = False

View file

@ -0,0 +1,19 @@
[general]
version = 4
name = Super Sprint
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = supersprint
material = generic_abs_175
variant = V6 0.80mm
[values]
material_bed_temperature = =default_material_bed_temperature + 20
material_print_temperature = =default_material_print_temperature + 25
build_volume_temperature = 40
speed_print = 50
retraction_amount = 1.2
cool_fan_enabled = False

View file

@ -0,0 +1,19 @@
[general]
version = 4
name = Extra Fast
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = extrafast
material = generic_hips_175
variant = V6 0.80mm
[values]
material_bed_temperature = =default_material_bed_temperature + 35
material_print_temperature = =default_material_print_temperature + 50
build_volume_temperature = 40
speed_print = 40
retraction_amount = 1.2
cool_fan_enabled = False

View file

@ -0,0 +1,19 @@
[general]
version = 4
name = Sprint
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = sprint
material = generic_hips_175
variant = V6 0.80mm
[values]
material_bed_temperature = =default_material_bed_temperature + 35
material_print_temperature = =default_material_print_temperature + 50
build_volume_temperature = 40
speed_print = 40
retraction_amount = 1.2
cool_fan_enabled = False

View file

@ -0,0 +1,19 @@
[general]
version = 4
name = Super Sprint
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = supersprint
material = generic_hips_175
variant = V6 0.80mm
[values]
material_bed_temperature = =default_material_bed_temperature + 35
material_print_temperature = =default_material_print_temperature + 50
build_volume_temperature = 40
speed_print = 40
retraction_amount = 1.2
cool_fan_enabled = False

View file

@ -0,0 +1,19 @@
[general]
version = 4
name = Extra Fast
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = extrafast
material = generic_nylon_175
variant = V6 0.80mm
[values]
material_bed_temperature = =default_material_bed_temperature + 20
material_print_temperature = =default_material_print_temperature + 20
build_volume_temperature = 40
speed_print = 30
retraction_amount = 1.2
cool_fan_enabled = False

View file

@ -0,0 +1,19 @@
[general]
version = 4
name = Sprint
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = sprint
material = generic_nylon_175
variant = V6 0.80mm
[values]
material_bed_temperature = =default_material_bed_temperature + 20
material_print_temperature = =default_material_print_temperature + 20
build_volume_temperature = 40
speed_print = 30
retraction_amount = 1.2
cool_fan_enabled = False

View file

@ -0,0 +1,19 @@
[general]
version = 4
name = Super Sprint
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = supersprint
material = generic_nylon_175
variant = V6 0.80mm
[values]
material_bed_temperature = =default_material_bed_temperature + 20
material_print_temperature = =default_material_print_temperature + 20
build_volume_temperature = 40
speed_print = 30
retraction_amount = 1.2
cool_fan_enabled = False

View file

@ -0,0 +1,19 @@
[general]
version = 4
name = Extra Fast
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = extrafast
material = generic_pc_175
variant = V6 0.80mm
[values]
material_bed_temperature = =default_material_bed_temperature + 20
material_print_temperature = =default_material_print_temperature + 13
build_volume_temperature = 45
speed_print = 25
retraction_amount = 1.2
cool_fan_enabled = False

View file

@ -0,0 +1,19 @@
[general]
version = 4
name = Sprint
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = sprint
material = generic_pc_175
variant = V6 0.80mm
[values]
material_bed_temperature = =default_material_bed_temperature + 20
material_print_temperature = =default_material_print_temperature + 13
build_volume_temperature = 45
speed_print = 25
retraction_amount = 1.2
cool_fan_enabled = False

View file

@ -0,0 +1,19 @@
[general]
version = 4
name = Super Sprint
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = supersprint
material = generic_pc_175
variant = V6 0.80mm
[values]
material_bed_temperature = =default_material_bed_temperature + 20
material_print_temperature = =default_material_print_temperature + 13
build_volume_temperature = 45
speed_print = 25
retraction_amount = 1.2
cool_fan_enabled = False

View file

@ -0,0 +1,21 @@
[general]
version = 4
name = Extra Fast
definition = atmat_signal_pro_base
[metadata]
setting_version = 15
type = quality
quality_type = extrafast
material = generic_petg_175
variant = V6 0.80mm
[values]
material_bed_temperature = =default_material_bed_temperature - 5
material_print_temperature = =default_material_print_temperature + 40
speed_print = 40
retraction_amount = 1.2
cool_fan_speed = 30
cool_fan_speed_max = 50
support_fan_enable = True
support_supported_skin_fan_speed = 100

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