Merge remote-tracking branch 'origin/master' into WIP_onboarding

This commit is contained in:
Lipu Fei 2019-03-11 09:05:43 +01:00
commit 6b2642ee9a
59 changed files with 1272 additions and 101 deletions

View file

@ -537,6 +537,16 @@ class MaterialManager(QObject):
return return
nodes_to_remove = [material_group.root_material_node] + material_group.derived_material_node_list nodes_to_remove = [material_group.root_material_node] + material_group.derived_material_node_list
# Sort all nodes with respect to the container ID lengths in the ascending order so the base material container
# will be the first one to be removed. We need to do this to ensure that all containers get loaded & deleted.
nodes_to_remove = sorted(nodes_to_remove, key = lambda x: len(x.getMetaDataEntry("id", "")))
# Try to load all containers first. If there is any faulty ones, they will be put into the faulty container
# list, so removeContainer() can ignore those ones.
for node in nodes_to_remove:
container_id = node.getMetaDataEntry("id", "")
results = self._container_registry.findContainers(id = container_id)
if not results:
self._container_registry.addWrongContainerId(container_id)
for node in nodes_to_remove: for node in nodes_to_remove:
self._container_registry.removeContainer(node.getMetaDataEntry("id", "")) self._container_registry.removeContainer(node.getMetaDataEntry("id", ""))

View file

@ -338,7 +338,7 @@ class ExtruderManager(QObject):
extruder_train.setNextStack(global_stack) extruder_train.setNextStack(global_stack)
extruders_changed = True extruders_changed = True
self._fixSingleExtrusionMachineExtruderDefinition(global_stack) self.fixSingleExtrusionMachineExtruderDefinition(global_stack)
if extruders_changed: if extruders_changed:
self.extrudersChanged.emit(global_stack_id) self.extrudersChanged.emit(global_stack_id)
self.setActiveExtruderIndex(0) self.setActiveExtruderIndex(0)
@ -346,7 +346,7 @@ class ExtruderManager(QObject):
# After 3.4, all single-extrusion machines have their own extruder definition files instead of reusing # After 3.4, all single-extrusion machines have their own extruder definition files instead of reusing
# "fdmextruder". We need to check a machine here so its extruder definition is correct according to this. # "fdmextruder". We need to check a machine here so its extruder definition is correct according to this.
def _fixSingleExtrusionMachineExtruderDefinition(self, global_stack: "GlobalStack") -> None: def fixSingleExtrusionMachineExtruderDefinition(self, global_stack: "GlobalStack") -> None:
container_registry = ContainerRegistry.getInstance() container_registry = ContainerRegistry.getInstance()
expected_extruder_definition_0_id = global_stack.getMetaDataEntry("machine_extruder_trains")["0"] expected_extruder_definition_0_id = global_stack.getMetaDataEntry("machine_extruder_trains")["0"]
extruder_stack_0 = global_stack.extruders.get("0") extruder_stack_0 = global_stack.extruders.get("0")

View file

@ -357,7 +357,7 @@ class MachineManager(QObject):
# Make sure that the default machine actions for this machine have been added # Make sure that the default machine actions for this machine have been added
self._application.getMachineActionManager().addDefaultMachineActions(global_stack) self._application.getMachineActionManager().addDefaultMachineActions(global_stack)
ExtruderManager.getInstance()._fixSingleExtrusionMachineExtruderDefinition(global_stack) ExtruderManager.getInstance().fixSingleExtrusionMachineExtruderDefinition(global_stack)
if not global_stack.isValid(): if not global_stack.isValid():
# Mark global stack as invalid # Mark global stack as invalid
ConfigurationErrorMessage.getInstance().addFaultyContainers(global_stack.getId()) ConfigurationErrorMessage.getInstance().addFaultyContainers(global_stack.getId())

View file

@ -26,6 +26,7 @@ from UM.Preferences import Preferences
from cura.Machines.VariantType import VariantType from cura.Machines.VariantType import VariantType
from cura.Settings.CuraStackBuilder import CuraStackBuilder from cura.Settings.CuraStackBuilder import CuraStackBuilder
from cura.Settings.ExtruderManager import ExtruderManager
from cura.Settings.ExtruderStack import ExtruderStack from cura.Settings.ExtruderStack import ExtruderStack
from cura.Settings.GlobalStack import GlobalStack from cura.Settings.GlobalStack import GlobalStack
from cura.Settings.CuraContainerStack import _ContainerIndexes from cura.Settings.CuraContainerStack import _ContainerIndexes
@ -781,6 +782,10 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
if not quality_changes_info.extruder_info_dict: if not quality_changes_info.extruder_info_dict:
container_info = ContainerInfo(None, None, None) container_info = ContainerInfo(None, None, None)
quality_changes_info.extruder_info_dict["0"] = container_info quality_changes_info.extruder_info_dict["0"] = container_info
# If the global stack we're "targeting" has never been active, but was updated from Cura 3.4,
# it might not have it's extruders set properly.
if not global_stack.extruders:
ExtruderManager.getInstance().fixSingleExtrusionMachineExtruderDefinition(global_stack)
extruder_stack = global_stack.extruders["0"] extruder_stack = global_stack.extruders["0"]
container = quality_manager._createQualityChanges(quality_changes_quality_type, quality_changes_name, container = quality_manager._createQualityChanges(quality_changes_quality_type, quality_changes_name,

View file

@ -326,6 +326,7 @@ class StartSliceJob(Job):
result["print_bed_temperature"] = result["material_bed_temperature"] # Renamed settings. result["print_bed_temperature"] = result["material_bed_temperature"] # Renamed settings.
result["print_temperature"] = result["material_print_temperature"] result["print_temperature"] = result["material_print_temperature"]
result["travel_speed"] = result["speed_travel"]
result["time"] = time.strftime("%H:%M:%S") #Some extra settings. result["time"] = time.strftime("%H:%M:%S") #Some extra settings.
result["date"] = time.strftime("%d-%m-%Y") result["date"] = time.strftime("%d-%m-%Y")
result["day"] = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"][int(time.strftime("%w"))] result["day"] = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"][int(time.strftime("%w"))]

View file

@ -0,0 +1,49 @@
# Created by Wayne Porter
from ..Script import Script
class InsertAtLayerChange(Script):
def __init__(self):
super().__init__()
def getSettingDataString(self):
return """{
"name": "Insert at layer change",
"key": "InsertAtLayerChange",
"metadata": {},
"version": 2,
"settings":
{
"insert_location":
{
"label": "When to insert",
"description": "Whether to insert code before or after layer change.",
"type": "enum",
"options": {"before": "Before", "after": "After"},
"default_value": "before"
},
"gcode_to_add":
{
"label": "GCODE to insert.",
"description": "GCODE to add before or after layer change.",
"type": "str",
"default_value": ""
}
}
}"""
def execute(self, data):
gcode_to_add = self.getSettingValueByKey("gcode_to_add") + "\n"
for layer in data:
# Check that a layer is being printed
lines = layer.split("\n")
if ";LAYER:" in lines[0]:
index = data.index(layer)
if self.getSettingValueByKey("insert_location") == "before":
layer = gcode_to_add + layer
else:
layer = layer + gcode_to_add
data[index] = layer
return data

View file

@ -0,0 +1,94 @@
# Created by Wayne Porter
from ..Script import Script
class TimeLapse(Script):
def __init__(self):
super().__init__()
def getSettingDataString(self):
return """{
"name": "Time Lapse",
"key": "TimeLapse",
"metadata": {},
"version": 2,
"settings":
{
"trigger_command":
{
"label": "Trigger camera command",
"description": "Gcode command used to trigger camera.",
"type": "str",
"default_value": "M240"
},
"pause_length":
{
"label": "Pause length",
"description": "How long to wait (in ms) after camera was triggered.",
"type": "int",
"default_value": 700,
"minimum_value": 0,
"unit": "ms"
},
"park_print_head":
{
"label": "Park Print Head",
"description": "Park the print head out of the way. Assumes absolute positioning.",
"type": "bool",
"default_value": true
},
"head_park_x":
{
"label": "Park Print Head X",
"description": "What X location does the head move to for photo.",
"unit": "mm",
"type": "float",
"default_value": 0,
"enabled": "park_print_head"
},
"head_park_y":
{
"label": "Park Print Head Y",
"description": "What Y location does the head move to for photo.",
"unit": "mm",
"type": "float",
"default_value": 190,
"enabled": "park_print_head"
},
"park_feed_rate":
{
"label": "Park Feed Rate",
"description": "How fast does the head move to the park coordinates.",
"unit": "mm/s",
"type": "float",
"default_value": 9000,
"enabled": "park_print_head"
}
}
}"""
def execute(self, data):
feed_rate = self.getSettingValueByKey("park_feed_rate")
park_print_head = self.getSettingValueByKey("park_print_head")
x_park = self.getSettingValueByKey("head_park_x")
y_park = self.getSettingValueByKey("head_park_y")
trigger_command = self.getSettingValueByKey("trigger_command")
pause_length = self.getSettingValueByKey("pause_length")
gcode_to_append = ";TimeLapse Begin\n"
if park_print_head:
gcode_to_append += self.putValue(G = 1, F = feed_rate, X = x_park, Y = y_park) + ";Park print head\n"
gcode_to_append += self.putValue(M = 400) + ";Wait for moves to finish\n"
gcode_to_append += trigger_command + ";Snap Photo\n"
gcode_to_append += self.putValue(G = 4, P = pause_length) + ";Wait for camera\n"
gcode_to_append += ";TimeLapse End\n"
for layer in data:
# Check that a layer is being printed
lines = layer.split("\n")
if ";LAYER:" in lines[0]:
index = data.index(layer)
layer += gcode_to_append
data[index] = layer
return data

View file

@ -12,8 +12,10 @@ from UM.Backend.Backend import BackendState
from UM.FileHandler.FileHandler import FileHandler from UM.FileHandler.FileHandler import FileHandler
from UM.Logger import Logger from UM.Logger import Logger
from UM.Message import Message from UM.Message import Message
from UM.PluginRegistry import PluginRegistry
from UM.Qt.Duration import Duration, DurationFormat from UM.Qt.Duration import Duration, DurationFormat
from UM.Scene.SceneNode import SceneNode from UM.Scene.SceneNode import SceneNode
from cura.CuraApplication import CuraApplication from cura.CuraApplication import CuraApplication
from cura.PrinterOutput.NetworkedPrinterOutputDevice import AuthState, NetworkedPrinterOutputDevice from cura.PrinterOutput.NetworkedPrinterOutputDevice import AuthState, NetworkedPrinterOutputDevice
from cura.PrinterOutput.PrinterOutputModel import PrinterOutputModel from cura.PrinterOutput.PrinterOutputModel import PrinterOutputModel
@ -82,8 +84,11 @@ class CloudOutputDevice(NetworkedPrinterOutputDevice):
self._account = api_client.account self._account = api_client.account
# We use the Cura Connect monitor tab to get most functionality right away. # We use the Cura Connect monitor tab to get most functionality right away.
self._monitor_view_qml_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), if PluginRegistry.getInstance() is not None:
"../../resources/qml/MonitorStage.qml") self._monitor_view_qml_path = os.path.join(
PluginRegistry.getInstance().getPluginPath("UM3NetworkPrinting"),
"resources", "qml", "MonitorStage.qml"
)
# Trigger the printersChanged signal when the private signal is triggered. # Trigger the printersChanged signal when the private signal is triggered.
self.printersChanged.connect(self._clusterPrintersChanged) self.printersChanged.connect(self._clusterPrintersChanged)

View file

@ -10,13 +10,13 @@ import os
from UM.FileHandler.FileHandler import FileHandler from UM.FileHandler.FileHandler import FileHandler
from UM.FileHandler.WriteFileJob import WriteFileJob # To call the file writer asynchronously. from UM.FileHandler.WriteFileJob import WriteFileJob # To call the file writer asynchronously.
from UM.Logger import Logger
from UM.Settings.ContainerRegistry import ContainerRegistry
from UM.i18n import i18nCatalog from UM.i18n import i18nCatalog
from UM.Qt.Duration import Duration, DurationFormat from UM.Logger import Logger
from UM.Message import Message from UM.Message import Message
from UM.PluginRegistry import PluginRegistry
from UM.Qt.Duration import Duration, DurationFormat
from UM.Scene.SceneNode import SceneNode # For typing. from UM.Scene.SceneNode import SceneNode # For typing.
from UM.Settings.ContainerRegistry import ContainerRegistry
from cura.CuraApplication import CuraApplication from cura.CuraApplication import CuraApplication
from cura.PrinterOutput.ConfigurationModel import ConfigurationModel from cura.PrinterOutput.ConfigurationModel import ConfigurationModel
@ -65,7 +65,11 @@ class ClusterUM3OutputDevice(NetworkedPrinterOutputDevice):
self._print_jobs = [] # type: List[UM3PrintJobOutputModel] self._print_jobs = [] # type: List[UM3PrintJobOutputModel]
self._received_print_jobs = False # type: bool self._received_print_jobs = False # type: bool
self._monitor_view_qml_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "../resources/qml/MonitorStage.qml") if PluginRegistry.getInstance() is not None:
self._monitor_view_qml_path = os.path.join(
PluginRegistry.getInstance().getPluginPath("UM3NetworkPrinting"),
"resources", "qml", "MonitorStage.qml"
)
# Trigger the printersChanged signal when the private signal is triggered # Trigger the printersChanged signal when the private signal is triggered
self.printersChanged.connect(self._clusterPrintersChanged) self.printersChanged.connect(self._clusterPrintersChanged)
@ -126,7 +130,11 @@ class ClusterUM3OutputDevice(NetworkedPrinterOutputDevice):
def _spawnPrinterSelectionDialog(self): def _spawnPrinterSelectionDialog(self):
if self._printer_selection_dialog is None: if self._printer_selection_dialog is None:
path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "../resources/qml/PrintWindow.qml") if PluginRegistry.getInstance() is not None:
path = os.path.join(
PluginRegistry.getInstance().getPluginPath("UM3NetworkPrinting"),
"resources", "qml", "PrintWindow.qml"
)
self._printer_selection_dialog = self._application.createQmlComponent(path, {"OutputDevice": self}) self._printer_selection_dialog = self._application.createQmlComponent(path, {"OutputDevice": self})
if self._printer_selection_dialog is not None: if self._printer_selection_dialog is not None:
self._printer_selection_dialog.show() self._printer_selection_dialog.show()

View file

@ -1,7 +1,5 @@
from typing import List, Optional from typing import List, Optional
from UM.FileHandler.FileHandler import FileHandler
from UM.Scene.SceneNode import SceneNode
from cura.CuraApplication import CuraApplication from cura.CuraApplication import CuraApplication
from cura.PrinterOutput.NetworkedPrinterOutputDevice import NetworkedPrinterOutputDevice, AuthState from cura.PrinterOutput.NetworkedPrinterOutputDevice import NetworkedPrinterOutputDevice, AuthState
from cura.PrinterOutput.PrinterOutputModel import PrinterOutputModel from cura.PrinterOutput.PrinterOutputModel import PrinterOutputModel
@ -12,10 +10,13 @@ from cura.PrinterOutputDevice import ConnectionType
from cura.Settings.ContainerManager import ContainerManager from cura.Settings.ContainerManager import ContainerManager
from cura.Settings.ExtruderManager import ExtruderManager from cura.Settings.ExtruderManager import ExtruderManager
from UM.Logger import Logger from UM.FileHandler.FileHandler import FileHandler
from UM.Settings.ContainerRegistry import ContainerRegistry
from UM.i18n import i18nCatalog from UM.i18n import i18nCatalog
from UM.Logger import Logger
from UM.Message import Message from UM.Message import Message
from UM.PluginRegistry import PluginRegistry
from UM.Scene.SceneNode import SceneNode
from UM.Settings.ContainerRegistry import ContainerRegistry
from PyQt5.QtNetwork import QNetworkRequest from PyQt5.QtNetwork import QNetworkRequest
from PyQt5.QtCore import QTimer, QUrl from PyQt5.QtCore import QTimer, QUrl
@ -76,7 +77,11 @@ class LegacyUM3OutputDevice(NetworkedPrinterOutputDevice):
self.setIconName("print") self.setIconName("print")
self._monitor_view_qml_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "../resources/qml/MonitorItem.qml") if PluginRegistry.getInstance() is not None:
self._monitor_view_qml_path = os.path.join(
PluginRegistry.getInstance().getPluginPath("UM3NetworkPrinting"),
"resources", "qml", "MonitorStage.qml"
)
self._output_controller = LegacyUM3PrinterOutputController(self) self._output_controller = LegacyUM3PrinterOutputController(self)

View file

@ -14,12 +14,14 @@ from PyQt5.QtGui import QDesktopServices
from cura.CuraApplication import CuraApplication from cura.CuraApplication import CuraApplication
from cura.PrinterOutputDevice import ConnectionType from cura.PrinterOutputDevice import ConnectionType
from cura.Settings.GlobalStack import GlobalStack # typing from cura.Settings.GlobalStack import GlobalStack # typing
from UM.OutputDevice.OutputDevicePlugin import OutputDevicePlugin
from UM.i18n import i18nCatalog
from UM.Logger import Logger from UM.Logger import Logger
from UM.Message import Message
from UM.OutputDevice.OutputDevicePlugin import OutputDevicePlugin
from UM.PluginRegistry import PluginRegistry
from UM.Signal import Signal, signalemitter from UM.Signal import Signal, signalemitter
from UM.Version import Version from UM.Version import Version
from UM.Message import Message
from UM.i18n import i18nCatalog
from . import ClusterUM3OutputDevice, LegacyUM3OutputDevice from . import ClusterUM3OutputDevice, LegacyUM3OutputDevice
from .Cloud.CloudOutputDeviceManager import CloudOutputDeviceManager from .Cloud.CloudOutputDeviceManager import CloudOutputDeviceManager
@ -460,8 +462,10 @@ class UM3OutputDevicePlugin(OutputDevicePlugin):
self._start_cloud_flow_message = Message( self._start_cloud_flow_message = Message(
text = i18n_catalog.i18nc("@info:status", "Send and monitor print jobs from anywhere using your Ultimaker account."), text = i18n_catalog.i18nc("@info:status", "Send and monitor print jobs from anywhere using your Ultimaker account."),
lifetime = 0, lifetime = 0,
image_source = QUrl.fromLocalFile(os.path.join(os.path.dirname(os.path.abspath(__file__)), "..", image_source = QUrl.fromLocalFile(os.path.join(
"resources", "svg", "cloud-flow-start.svg")), PluginRegistry.getInstance().getPluginPath("UM3NetworkPrinting"),
"resources", "svg", "cloud-flow-start.svg"
)),
image_caption = i18n_catalog.i18nc("@info:status", "Connect to Ultimaker Cloud"), image_caption = i18n_catalog.i18nc("@info:status", "Connect to Ultimaker Cloud"),
option_text = i18n_catalog.i18nc("@action", "Don't ask me again for this printer."), option_text = i18n_catalog.i18nc("@action", "Don't ask me again for this printer."),
option_state = False option_state = False
@ -482,8 +486,10 @@ class UM3OutputDevicePlugin(OutputDevicePlugin):
self._cloud_flow_complete_message = Message( self._cloud_flow_complete_message = Message(
text = i18n_catalog.i18nc("@info:status", "You can now send and monitor print jobs from anywhere using your Ultimaker account."), text = i18n_catalog.i18nc("@info:status", "You can now send and monitor print jobs from anywhere using your Ultimaker account."),
lifetime = 30, lifetime = 30,
image_source = QUrl.fromLocalFile(os.path.join(os.path.dirname(os.path.abspath(__file__)), "..", image_source = QUrl.fromLocalFile(os.path.join(
"resources", "svg", "cloud-flow-completed.svg")), PluginRegistry.getInstance().getPluginPath("UM3NetworkPrinting"),
"resources", "svg", "cloud-flow-completed.svg"
)),
image_caption = i18n_catalog.i18nc("@info:status", "Connected!") image_caption = i18n_catalog.i18nc("@info:status", "Connected!")
) )
# Don't show the review connection link if we're not on the local network # Don't show the review connection link if we're not on the local network

View file

@ -243,7 +243,7 @@ class USBPrinterOutputDevice(PrinterOutputDevice):
self._last_temperature_request = time() self._last_temperature_request = time()
if re.search(b"[B|T\d*]: ?\d+\.?\d*", line): # Temperature message. 'T:' for extruder and 'B:' for bed if re.search(b"[B|T\d*]: ?\d+\.?\d*", line): # Temperature message. 'T:' for extruder and 'B:' for bed
extruder_temperature_matches = re.findall(b"T(\d*): ?(\d+\.?\d*) ?\/?(\d+\.?\d*)?", line) extruder_temperature_matches = re.findall(b"T(\d*): ?(\d+\.?\d*)\s*\/?(\d+\.?\d*)?", line)
# Update all temperature values # Update all temperature values
matched_extruder_nrs = [] matched_extruder_nrs = []
for match in extruder_temperature_matches: for match in extruder_temperature_matches:
@ -265,7 +265,7 @@ class USBPrinterOutputDevice(PrinterOutputDevice):
if match[2]: if match[2]:
extruder.updateTargetHotendTemperature(float(match[2])) extruder.updateTargetHotendTemperature(float(match[2]))
bed_temperature_matches = re.findall(b"B: ?(\d+\.?\d*) ?\/?(\d+\.?\d*) ?", line) bed_temperature_matches = re.findall(b"B: ?(\d+\.?\d*)\s*\/?(\d+\.?\d*)?", line)
if bed_temperature_matches: if bed_temperature_matches:
match = bed_temperature_matches[0] match = bed_temperature_matches[0]
if match[0]: if match[0]:

View file

@ -0,0 +1,80 @@
{
"version": 2,
"name": "Anycubic Chiron",
"inherits": "fdmprinter",
"metadata":
{
"visible": true,
"author": "Patrick Glatt",
"manufacturer": "Anycubic",
"category": "Other",
"file_formats": "text/x-gcode",
"icon": "icon_ultimaker2",
"platform": "anycubic_chiron_platform.obj",
"platform_texture": "anycubic-chiron.png",
"has_materials": true,
"preferred_material": "generic_pla",
"has_machine_quality": true,
"quality_definition": "anycubic_chiron",
"preferred_quality_type": "normal",
"machine_extruder_trains":
{
"0": "anycubic_chiron_extruder_0"
},
"firmware_file": "MarlinChiron.hex"
},
"overrides":
{
"machine_name":
{
"default_value": "Anycubic Chiron"
},
"machine_heated_bed":
{
"default_value": true
},
"machine_width":
{
"default_value": 400
},
"machine_height":
{
"default_value": 450
},
"machine_depth":
{
"default_value": 400
},
"machine_center_is_zero":
{
"default_value": false
},
"gantry_height":
{
"default_value": 35
},
"machine_head_with_fans_polygon":
{
"default_value":
[
[-45, 50],
[-45, -45],
[45, 50],
[45, -45]
]
},
"machine_gcode_flavor":
{
"default_value": "RepRap (Marlin/Sprinter)"
},
"machine_start_gcode":
{
"default_value": "M107 ;Start with the fan off\nG21 ;Set units to millimeters\nG91 ;Change to relative positioning mode for retract filament and nozzle lifting\nG1 F200 E-3 ;Retract 3mm filament for a clean start\nG92 E0 ;Zero the extruded length\nG1 F1000 Z5 ;Lift the nozzle 5mm before homing axes\nG90 ;Absolute positioning\nM82 ;Set extruder to absolute mode too\nG28 X0 Y0 ;First move X/Y to min endstops\nG28 Z0 ;Then move Z to min endstops\nG1 F1000 Z15 ;After homing lift the nozzle 15mm before start printing\n"
},
"machine_end_gcode":
{
"default_value": "G91 ;Change to relative positioning mode for filament retraction and nozzle lifting\nG1 F200 E-4;Retract the filament a bit before lifting the nozzle\nG1 F1000 Z5;Lift nozzle 5mm\nG90 ;Change to absolute positioning mode to prepare for part rermoval\nG1 X0 Y400 ;Move the print to max y pos for part rermoval\nM104 S0 ; Turn off hotend\nM106 S0 ; Turn off cooling fan\nM140 S0 ; Turn off bed\nM84 ; Disable motors\n"
}
}
}

View file

@ -2,60 +2,67 @@
"version": 2, "version": 2,
"name": "Deltacomb 3D", "name": "Deltacomb 3D",
"inherits": "fdmprinter", "inherits": "fdmprinter",
"metadata": { "metadata": {
"author": "Gabriele Rossetti", "author": "Gabriele Rossetti",
"visible": true, "visible": true,
"manufacturer": "Deltacomb 3D", "manufacturer": "Deltacomb 3D",
"category": "Other", "category": "Other",
"file_formats": "text/x-gcode", "file_formats": "text/x-gcode",
"icon": "icon_ultimaker2",
"platform": "deltacomb.stl", "platform": "deltacomb.stl",
"has_machine_quality": true, "has_machine_quality": true,
"machine_extruder_trains": "has_materials": true,
{ "has_machine_materials": false,
"0": "deltacomb_extruder_0" "has_variants": true,
} "variants_name": "Head",
"preferred_variant_name": "E3D 0.40mm",
"preferred_material": "generic_pla",
"preferred_quality_type": "normal",
"machine_extruder_trains": { "0": "deltacomb_extruder_0", "1": "deltacomb_extruder_1" }
}, },
"overrides": { "overrides": {
"machine_extruder_count": { "default_value": 1 },
"machine_heated_bed": { "default_value": true }, "machine_heated_bed": { "default_value": true },
"machine_width": { "default_value": 190 }, "machine_width": { "default_value": 190 },
"machine_height": { "default_value": 250 }, "machine_height": { "default_value": 250 },
"machine_depth": { "default_value": 190 }, "machine_depth": { "default_value": 190 },
"machine_center_is_zero": { "default_value": true }, "machine_center_is_zero": { "default_value": true },
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
"machine_start_gcode": { "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 ;Home all axes (max endstops)\nG1 Z15.0 F9000 ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F200 E3 ;extrude 3mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F9000\n;Put printing message on LCD screen\nM117 Printing..."}, "machine_start_gcode": { "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 ;Home all axes (max endstops)\nG1 Z15.0 F9000 ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F9000\n;Put printing message on LCD screen\nM117 Printing..."},
"machine_end_gcode": { "default_value": "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\nG28 ;Home all axes (max endstops)\nM84 ;steppers off\nG90 ;absolute positioning" }, "machine_end_gcode": { "default_value": "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\nG28 ;Home all axes (max endstops)\nM84 ;steppers off\nG90 ;absolute positioning" },
"machine_shape": { "default_value": "elliptic" }, "machine_shape": { "default_value": "elliptic" },
"retraction_hop_enabled": { "default_value": true }, "retraction_hop_enabled": { "default_value": true },
"retraction_hop": { "default_value": 1 },
"retraction_amount" : { "default_value": 3.5 }, "retraction_amount" : { "default_value": 3.5 },
"retraction_speed" : { "default_value": 50 }, "retraction_speed" : { "default_value": 30 },
"material_final_print_temperature": { "value": "material_print_temperature - 5" }, "retraction_combing" : { "default_value": "noskin" },
"material_initial_print_temperature": { "value": "material_print_temperature" },
"material_print_temperature_layer_0": { "value": "material_print_temperature + 5" },
"material_diameter": { "default_value": 1.75 },
"travel_avoid_distance": { "default_value": 1, "value": "1" }, "travel_avoid_distance": { "default_value": 1, "value": "1" },
"speed_print" : { "default_value": 70 }, "speed_print" : { "default_value": 80 },
"speed_travel": { "value": "150.0" },
"speed_infill": { "value": "round(speed_print * 1.05, 0)" }, "speed_infill": { "value": "round(speed_print * 1.05, 0)" },
"speed_topbottom": { "value": "round(speed_print * 0.95, 0)" }, "speed_topbottom": { "value": "round(speed_print * 0.95, 0)" },
"speed_wall": { "value": "speed_print" }, "speed_wall": { "value": "speed_print" },
"speed_wall_0": { "value": "20" }, "speed_wall_0": { "value": "30" },
"speed_wall_x": { "value": "speed_wall" }, "speed_wall_x": { "value": "speed_wall" },
"speed_layer_0": { "value": "min(round(speed_print * 0.75, 0), 45.0)" }, "speed_layer_0": { "value": "min(round(speed_print * 0.75, 0), 45.0)" },
"speed_travel": { "default_value": 150, "value": 150 },
"speed_travel_layer_0": { "value": "round(speed_travel * 0.7, 0)" }, "speed_travel_layer_0": { "value": "round(speed_travel * 0.7, 0)" },
"skirt_brim_speed": { "value": "speed_layer_0" }, "skirt_brim_speed": { "value": "speed_layer_0" },
"skirt_line_count": { "default_value": 3 }, "skirt_line_count": { "default_value": 3 },
"skirt_brim_minimal_length": { "default_value": 150 }, "skirt_brim_minimal_length": { "default_value": 150 },
"infill_sparse_density": { "default_value": 90 }, "infill_sparse_density": { "default_value": 30 },
"gradual_infill_steps": { "default_value": 2 }, "infill_pattern": { "value": "'cubic'" },
"infill_before_walls" : { "default_value": false }, "infill_before_walls" : { "default_value": false },
"top_bottom_thickness": { "default_value": 0.6 }, "top_bottom_thickness": { "default_value": 0.8 },
"support_z_distance": { "value": "layer_height * 2" }, "support_z_distance": { "value": "layer_height * 2" },
"support_bottom_distance": { "value": "layer_height" }, "support_bottom_distance": { "value": "layer_height" },
"support_use_towers" : { "default_value": false }, "support_use_towers" : { "default_value": false },
"jerk_wall_0" : { "value": "30" }, "jerk_enabled": { "default_value": 1, "value": "1" },
"jerk_travel" : { "default_value": 20 }, "jerk_infill" : { "default_value": 5, "value": "5" },
"acceleration_travel" : { "value": 10000 }, "jerk_support" : { "default_value": 5, "value": "5" },
"machine_max_feedrate_z" : { "default_value": 150 } "acceleration_enabled": { "default_value": 1, "value": "1" },
"acceleration_travel" : { "value": 5000 },
"machine_max_feedrate_z" : { "default_value": 300 }
} }
} }

View file

@ -4579,7 +4579,7 @@
"description": "Whether to prime the filament with a blob before printing. Turning this setting on will ensure that the extruder will have material ready at the nozzle before printing. Printing Brim or Skirt can act like priming too, in which case turning this setting off saves some time.", "description": "Whether to prime the filament with a blob before printing. Turning this setting on will ensure that the extruder will have material ready at the nozzle before printing. Printing Brim or Skirt can act like priming too, in which case turning this setting off saves some time.",
"type": "bool", "type": "bool",
"resolve": "any(extruderValues('prime_blob_enable'))", "resolve": "any(extruderValues('prime_blob_enable'))",
"default_value": true, "default_value": false,
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
"enabled": false "enabled": false

View file

@ -0,0 +1,119 @@
{
"version": 2,
"name": "Discov3ry Complete (Ultimaker 2+)",
"inherits": "fdmprinter",
"metadata": {
"author": "Andrew Finkle, CTO",
"manufacturer": "Structur3d.io",
"visible": true,
"weight": 1,
"file_formats": "text/x-gcode",
"platform": "ultimaker2_platform.obj",
"platform_texture": "Ultimaker2Plusbackplate.png",
"platform_offset": [0, 0, 0],
"has_materials": true,
"has_variants": true,
"variants_name": "Print core",
"preferred_variant_name": "0.84mm (Green)",
"has_machine_materials": true,
"preferred_material": "structur3d_dap100silicone",
"has_variant_materials": false,
"has_machine_quality": false,
"preferred_quality_type": "extra_fast",
"first_start_actions": [],
"supported_actions": [],
"machine_extruder_trains":
{
"0": "structur3d_discov3ry1_complete_um2plus_extruder_0"
},
"firmware_file": "MarlinUltimaker2plus.hex"
},
"overrides": {
"machine_name": { "default_value": "Discov3ry Complete (Ultimaker 2+)" },
"speed_infill": {
"value": "speed_print"
},
"infill_sparse_density": {
"value": 100
},
"retraction_hop_enabled": {
"value": true
},
"adhesion_type": {
"default_value": "skirt"
},
"skirt_brim_minimal_length": {
"value": 1500
},
"speed_print": {
"value": 15
},
"speed_wall_x": {
"value": "speed_wall"
},
"layer_height_0": {
"value": "round(machine_nozzle_size / 1.5, 2)"
},
"line_width": {
"value": "round(machine_nozzle_size * 0.875, 2)"
},
"speed_layer_0": {
"default_value": 10
},
"speed_support": {
"value": "speed_wall_0"
},
"machine_height": {
"default_value": 205
},
"machine_width": {
"default_value": 205
},
"machine_depth": {
"default_value": 205
},
"machine_show_variants": {
"default_value": true
},
"gantry_height": {
"default_value": 52
},
"machine_nozzle_head_distance": {
"default_value": 5
},
"machine_nozzle_expansion_angle": {
"default_value": 45
},
"machine_heat_zone_length": {
"default_value": 20
},
"machine_head_with_fans_polygon":
{
"default_value": [
[ -44, 14 ],
[ -44, -34 ],
[ 64, 14 ],
[ 64, -34 ]
]
},
"machine_disallowed_areas": {
"default_value": [
[[-115, 112.5], [ -78, 112.5], [ -80, 102.5], [-115, 102.5]],
[[ 115, 112.5], [ 115, 102.5], [ 105, 102.5], [ 103, 112.5]],
[[-115, -112.5], [-115, -104.5], [ -84, -104.5], [ -82, -112.5]],
[[ 115, -112.5], [ 108, -112.5], [ 110, -104.5], [ 115, -104.5]]
]
},
"machine_gcode_flavor": {
"default_value": "RepRap (Marlin/Sprinter)"
},
"machine_start_gcode": {
"default_value": "\n;Updated Firmware (.hex and Marlin .ino) for \n;Ultimaker 2+ with Discov3ry Extruder available at: \n;https://github.com/Structur3d/UM2.1Discov3ry-Firmware-beta \n;**Learn more at https://www.structur3d.io** \n \nM104 S{material_print_temperature} ;Start heating extruder \nM140 S{material_bed_temperature} ;Start heating bed \nG21 ;metric values \nG90 ;absolute positioning \nM82 ;set extruder to absolute mode \nM107 ;start with the fan off \nM302 ;allow cold extrusion \nM92 E2589 ;set extruder EEPROM steps/mm for paste \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..."
},
"machine_end_gcode": {
"default_value": "M104 S0 ;extruder heater off \nM140 S0 ;heated bed heater off (if you have it) \nM92 E282 ;reset extruder EEPROM steps/mm for plastic filament \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"
}
}
}

View file

@ -7,7 +7,7 @@
"manufacturer": "Ultimaker B.V.", "manufacturer": "Ultimaker B.V.",
"category": "Ultimaker", "category": "Ultimaker",
"visible": false, "visible": false,
"exclude_materials": [ "generic_hips", "generic_petg" ] "exclude_materials": [ "generic_hips", "generic_petg", "structur3d_dap100silicone" ]
}, },
"overrides": { "overrides": {
"machine_max_feedrate_e": { "machine_max_feedrate_e": {

View file

@ -78,7 +78,7 @@
"prime_tower_position_x": { "value": "machine_depth - max(extruderValue(adhesion_extruder_nr, 'brim_width') * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 if adhesion_type == 'brim' else (extruderValue(adhesion_extruder_nr, 'raft_margin') if adhesion_type == 'raft' else (extruderValue(adhesion_extruder_nr, 'skirt_gap') if adhesion_type == 'skirt' else 0)), max(extruderValues('travel_avoid_distance'))) - max(extruderValues('support_offset')) - sum(extruderValues('skirt_brim_line_width')) - 30" }, "prime_tower_position_x": { "value": "machine_depth - max(extruderValue(adhesion_extruder_nr, 'brim_width') * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 if adhesion_type == 'brim' else (extruderValue(adhesion_extruder_nr, 'raft_margin') if adhesion_type == 'raft' else (extruderValue(adhesion_extruder_nr, 'skirt_gap') if adhesion_type == 'skirt' else 0)), max(extruderValues('travel_avoid_distance'))) - max(extruderValues('support_offset')) - sum(extruderValues('skirt_brim_line_width')) - 30" },
"prime_tower_wipe_enabled": { "default_value": false }, "prime_tower_wipe_enabled": { "default_value": false },
"prime_blob_enable": { "enabled": true }, "prime_blob_enable": { "enabled": true, "default_value": true },
"acceleration_enabled": { "value": "True" }, "acceleration_enabled": { "value": "True" },
"acceleration_layer_0": { "value": "acceleration_topbottom" }, "acceleration_layer_0": { "value": "acceleration_topbottom" },

View file

@ -0,0 +1,16 @@
{
"id": "anycubic_chiron_extruder_0",
"version": 2,
"name": "Extruder 1",
"inherits": "fdmextruder",
"metadata": {
"machine": "anycubic_chiron",
"position": "0"
},
"overrides": {
"extruder_nr": { "default_value": 0 },
"machine_nozzle_size": { "default_value": 0.4 },
"material_diameter": { "default_value": 1.75 }
}
}

View file

@ -11,6 +11,8 @@
"overrides": { "overrides": {
"extruder_nr": { "default_value": 0 }, "extruder_nr": { "default_value": 0 },
"machine_nozzle_size": { "default_value": 0.4 }, "machine_nozzle_size": { "default_value": 0.4 },
"material_diameter": { "default_value": 1.75 } "material_diameter": { "default_value": 1.75 },
"machine_nozzle_offset_x": { "default_value": 0.0 },
"machine_nozzle_offset_y": { "default_value": 0.0 }
} }
} }

View file

@ -0,0 +1,18 @@
{
"id": "deltacomb_extruder_1",
"version": 2,
"name": "Extruder 2",
"inherits": "fdmextruder",
"metadata": {
"machine": "deltacomb",
"position": "1"
},
"overrides": {
"extruder_nr": { "default_value": 1 },
"machine_nozzle_size": { "default_value": 0.4 },
"material_diameter": { "default_value": 1.75 },
"machine_nozzle_offset_x": { "default_value": 0.0 },
"machine_nozzle_offset_y": { "default_value": 0.0 }
}
}

View file

@ -0,0 +1,16 @@
{
"id": "structur3d_discov3ry1_complete_um2plus_extruder_0",
"version": 2,
"name": "Discov3ry Extruder",
"inherits": "fdmextruder",
"metadata": {
"machine": "structur3d_discov3ry1_complete_um2plus",
"position": "0"
},
"overrides": {
"extruder_nr": { "default_value": 0 },
"machine_nozzle_size": { "default_value": 0.84 },
"material_diameter": { "default_value": 3.175 }
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

View file

@ -0,0 +1,150 @@
# WaveFront *.obj file (generated by Autodesk ATF)
#Author: Patrick Glatt
mtllib ae48cbb4-79ca-43fd-95a7-5e2258fec6c5.mtl
o Anycubic Chiron Platform
#vertex 1
v 200.000000 200.000000 0.000000
#vertex 2
v 200.000000 -200.000000 0.000000
#vertex 3
v 200.000000 -200.000000 -4.000000
#vertex 4
v 200.000000 200.000000 -4.000000
#vertex 5
v -200.000000 200.000000 0.000000
#vertex 6
v -200.000000 200.000000 -4.000000
#vertex 7
v -200.000000 -200.000000 0.000000
#vertex 8
v -200.000000 -200.000000 -4.000000
#vt right
vt 0.000000 1.000000 0.000000
vt 0.000000 1.000000 0.000000
vt 0.000000 1.000000 0.000000
vt 0.000000 1.000000 0.000000
#vt front
vt 0.000000 1.000000 0.000000
vt 0.000000 1.000000 0.000000
vt 0.000000 1.000000 0.000000
vt 0.000000 1.000000 0.000000
#vt left
vt 0.000000 1.000000 0.000000
vt 0.000000 1.000000 0.000000
vt 0.000000 1.000000 0.000000
vt 0.000000 1.000000 0.000000
#vt back
vt 0.000000 1.000000 0.000000
vt 0.000000 1.000000 0.000000
vt 0.000000 1.000000 0.000000
vt 0.000000 1.000000 0.000000
#vt top (only the color of the (0.000000 1.000000 0.000000) corner in logo)
#vt 0.000000 1.000000 0.000000
#vt 0.000000 1.000000 0.000000
#vt 0.000000 1.000000 0.000000
#vt 0.000000 1.000000 0.000000
#vt top (full logo)
vt 0.00000 0.000000 0.000000
vt 1.000000 0.000000 0.000000
vt 0.000000 1.000000 0.000000
vt 1.000000 1.000000 0.000000
#vt bottom
vt 0.000000 0.000000 0.000000
vt 1.000000 0.000000 0.000000
vt 0.000000 1.000000 0.000000
vt 1.000000 1.000000 0.000000
#vn right
vn 0.000000 0.000000 0.000000
vn 0.100000 0.000000 0.000000
vn 0.100000 0.000000 0.000000
vn 0.100000 0.000000 0.000000
#vn front
vn 0.000000 0.100000 0.000000
vn 0.000000 0.100000 0.000000
vn 0.000000 0.100000 0.000000
vn 0.000000 0.100000 0.000000
#vn left
vn -0.100000 0.000000 0.000000
vn -0.100000 0.000000 0.000000
vn -0.100000 0.000000 0.000000
vn -0.100000 0.000000 0.000000
#vn back
vn 0.000000 -0.100000 0.000000
vn 0.000000 -0.100000 0.000000
vn 0.000000 -0.100000 0.000000
vn 0.000000 -0.100000 0.000000
#vn top
vn 0.000000 -0.000000 0.100000
vn 0.000000 -0.000000 0.100000
vn 0.000000 -0.000000 0.100000
vn 0.000000 -0.000000 0.100000
#vn bottom
vn 0.000000 0.000000 0.100000
vn 0.000000 0.000000 0.100000
vn 0.000000 0.000000 0.100000
vn 0.000000 0.000000 0.100000
#faces f v{index}/vt{index}/vn{index}..
#face right
f 1/1/1 2/2/1 4/3/1
f 4/3/1 2/2/1 3/4/1
#face front
f 5/5/5 1/6/5 6/7/5
f 6/7/5 1/6/5 4/8/5
#face left
f 7/9/9 5/10/9 8/11/9
f 8/11/9 5/10/9 6/12/9
#face back
f 2/13/13 7/14/13 3/15/13
f 3/15/13 7/14/13 8/16/13
#face top (uncomment this code if you want to see the logo on top too)
#f 7/17/17 2/18/17 1/20/17 5/19/17
#face bottom
f 6/21/23 4/22/23 3/24/23 8/23/23
o Small Logo Platform
#9 front left
v -50.000000 270.700000 70.700000
#10 front right
v 50.000000 270.700000 70.700000
#11 back right
v 50.000000 200.000000 0.000000
#12 back left
v -50.000000 200.000000 0.000000
#13 front left 2
v -50.000000 270.700000 66.700000
#14 front right2
v 50.000000 270.700000 66.700000
#15 back right 3
v 50.000000 200.000000 -4.000000
#16 back left2
v -50.000000 200.000000 -4.000000
#vt's
vt 0.000000 1.000000 0.000000
vt 0.000000 0.000000 0.000000
vt 1.000000 0.000000 0.000000
vt 1.000000 1.000000 0.000000
vt 0.000000 1.000000 0.000000
#vn's
vn 0.000000 0.000000 1.000000
#faces f v{index}/vt{index}/vn{index}...
#right
f 10/1/1 11/2/1 15/3/1 14/4/1
#front
f 9/4/5 10/8/5 14/7/5 13/8/5
#left
f 12/9/9 9/10/9 13/11/9 16/12/9
#back
f 11/13/13 12/14/13 16/15/13 15/16/13
#top
f 12/26/25 11/27/25 10/28/25 9/25/25
#bottom
f 13/13/23 14/14/23 15/15/23 16/16/23

View file

@ -47,7 +47,7 @@ Cura.ExpandablePopup
Label Label
{ {
id: title id: title
text: catalog.i18nc("@label", "View types") text: catalog.i18nc("@label", "View type")
verticalAlignment: Text.AlignVCenter verticalAlignment: Text.AlignVCenter
height: parent.height height: parent.height
elide: Text.ElideRight elide: Text.ElideRight

View file

@ -0,0 +1,61 @@
[general]
version = 4
name = Draft
definition = anycubic_chiron
[metadata]
setting_version = 7
type = quality
quality_type = draft
weight = -2
global_quality = True
[values]
acceleration_enabled = True
acceleration_print = 1800
acceleration_travel = 3000
adhesion_type = skirt
brim_width = 4.0
cool_fan_full_at_height = 0.5
cool_fan_speed = 100
cool_fan_speed_0 = 100
infill_overlap = 15
infill_pattern = zigzag
infill_sparse_density = 25
initial_layer_line_width_factor = 140
jerk_enabled = True
jerk_print = 8
jerk_travel = 10
layer_height = 0.3
layer_height_0 = 0.3
material_bed_temperature = 60
material_diameter = 1.75
material_print_temperature = 200
material_print_temperature_layer_0 = 0
retract_at_layer_change = False
retraction_amount = 6
retraction_hop = 0.075
retraction_hop_enabled = True
retraction_hop_only_when_collides = True
retraction_min_travel = 1.5
retraction_speed = 40
skirt_brim_speed = 40
skirt_gap = 5
skirt_line_count = 3
speed_infill = =speed_print
speed_print = 60
speed_support = 60
speed_topbottom = =math.ceil(speed_print * 30 / 60)
speed_travel = 100
speed_wall = =speed_print
speed_wall_x = =speed_print
support_angle = 60
support_enable = True
support_interface_enable = True
support_pattern = triangles
support_roof_enable = True
support_type = everywhere
support_use_towers = False
support_xy_distance = 0.7
top_bottom_thickness = 1.2
wall_thickness = 1.2

View file

@ -0,0 +1,61 @@
[general]
version = 4
name = High
definition = anycubic_chiron
[metadata]
setting_version = 7
type = quality
quality_type = high
weight = 1
global_quality = True
[values]
acceleration_enabled = True
acceleration_print = 1800
acceleration_travel = 3000
adhesion_type = skirt
brim_width = 4.0
cool_fan_full_at_height = 0.5
cool_fan_speed = 100
cool_fan_speed_0 = 100
infill_overlap = 15
infill_pattern = zigzag
infill_sparse_density = 25
initial_layer_line_width_factor = 140
jerk_enabled = True
jerk_print = 8
jerk_travel = 10
layer_height = 0.1
layer_height_0 = 0.1
material_bed_temperature = 60
material_diameter = 1.75
material_print_temperature = 200
material_print_temperature_layer_0 = 0
retract_at_layer_change = False
retraction_amount = 6
retraction_hop = 0.075
retraction_hop_enabled = True
retraction_hop_only_when_collides = True
retraction_min_travel = 1.5
retraction_speed = 40
skirt_brim_speed = 40
skirt_gap = 5
skirt_line_count = 3
speed_infill = =speed_print
speed_print = 50
speed_support = 30
speed_topbottom = =math.ceil(speed_print * 20 / 50)
speed_travel = 50
speed_wall = =speed_print
speed_wall_x = =speed_print
support_angle = 60
support_enable = True
support_interface_enable = True
support_pattern = triangles
support_roof_enable = True
support_type = everywhere
support_use_towers = False
support_xy_distance = 0.7
top_bottom_thickness = 1.2
wall_thickness = 1.2

View file

@ -0,0 +1,61 @@
[general]
version = 4
name = Normal
definition = anycubic_chiron
[metadata]
setting_version = 7
type = quality
quality_type = normal
weight = 0
global_quality = True
[values]
acceleration_enabled = True
acceleration_print = 1800
acceleration_travel = 3000
adhesion_type = skirt
brim_width = 4.0
cool_fan_full_at_height = 0.5
cool_fan_speed = 100
cool_fan_speed_0 = 100
infill_overlap = 15
infill_pattern = zigzag
infill_sparse_density = 25
initial_layer_line_width_factor = 140
jerk_enabled = True
jerk_print = 8
jerk_travel = 10
layer_height = 0.2
layer_height_0 = 0.2
material_bed_temperature = 60
material_diameter = 1.75
material_print_temperature = 200
material_print_temperature_layer_0 = 0
retract_at_layer_change = False
retraction_amount = 6
retraction_hop = 0.075
retraction_hop_enabled = True
retraction_hop_only_when_collides = True
retraction_min_travel = 1.5
retraction_speed = 40
skirt_brim_speed = 40
skirt_gap = 5
skirt_line_count = 3
speed_infill = =speed_print
speed_print = 50
speed_support = 30
speed_topbottom = =math.ceil(speed_print * 20 / 50)
speed_travel = 100
speed_wall = =speed_print
speed_wall_x = =speed_print
support_angle = 60
support_enable = True
support_interface_enable = True
support_pattern = triangles
support_roof_enable = True
support_type = everywhere
support_use_towers = False
support_xy_distance = 0.7
top_bottom_thickness = 1.2
wall_thickness = 1.2

View file

@ -13,7 +13,7 @@ material = generic_abs
[values] [values]
adhesion_type = raft adhesion_type = raft
cool_fan_enabled = True cool_fan_enabled = True
cool_fan_full_at_height = =layer_height * 2 cool_fan_full_at_height = =layer_height * 6
cool_fan_speed = 50 cool_fan_speed = 50
cool_fan_speed_max = 50 cool_fan_speed_max = 50
cool_fan_speed_min = 50 cool_fan_speed_min = 50

View file

@ -13,7 +13,7 @@ material = generic_abs
[values] [values]
adhesion_type = raft adhesion_type = raft
cool_fan_enabled = True cool_fan_enabled = True
cool_fan_full_at_height = =layer_height * 2 cool_fan_full_at_height = =layer_height * 6
cool_fan_speed = 50 cool_fan_speed = 50
cool_fan_speed_max = 50 cool_fan_speed_max = 50
cool_fan_speed_min = 50 cool_fan_speed_min = 50

View file

@ -7,13 +7,13 @@ definition = deltacomb
setting_version = 7 setting_version = 7
type = quality type = quality
quality_type = high quality_type = high
weight = 1 weight = 0
material = generic_abs material = generic_abs
[values] [values]
adhesion_type = raft adhesion_type = raft
cool_fan_enabled = True cool_fan_enabled = True
cool_fan_full_at_height = =layer_height * 2 cool_fan_full_at_height = =layer_height * 6
cool_fan_speed = 50 cool_fan_speed = 50
cool_fan_speed_max = 50 cool_fan_speed_max = 50
cool_fan_speed_min = 50 cool_fan_speed_min = 50

View file

@ -13,7 +13,7 @@ material = generic_abs
[values] [values]
adhesion_type = raft adhesion_type = raft
cool_fan_enabled = True cool_fan_enabled = True
cool_fan_full_at_height = =layer_height * 2 cool_fan_full_at_height = =layer_height * 6
cool_fan_speed = 50 cool_fan_speed = 50
cool_fan_speed_max = 50 cool_fan_speed_max = 50
cool_fan_speed_min = 50 cool_fan_speed_min = 50

View file

@ -13,7 +13,7 @@ material = generic_abs
[values] [values]
adhesion_type = raft adhesion_type = raft
cool_fan_enabled = True cool_fan_enabled = True
cool_fan_full_at_height = =layer_height * 2 cool_fan_full_at_height = =layer_height * 6
cool_fan_speed = 50 cool_fan_speed = 50
cool_fan_speed_max = 50 cool_fan_speed_max = 50
cool_fan_speed_min = 50 cool_fan_speed_min = 50

View file

@ -7,7 +7,7 @@ definition = deltacomb
setting_version = 7 setting_version = 7
type = quality type = quality
quality_type = high quality_type = high
weight = 1 weight = 0
global_quality = True global_quality = True
[values] [values]

View file

@ -0,0 +1,25 @@
[general]
version = 4
name = Fast
definition = deltacomb
[metadata]
setting_version = 7
type = quality
quality_type = draft
weight = -2
material = generic_petg
[values]
adhesion_type = skirt
cool_fan_enabled = True
cool_fan_full_at_height = =layer_height * 4
cool_fan_speed = 60
cool_fan_speed_max = 100
cool_fan_speed_min = 60
cool_min_layer_time = 5
cool_min_speed = 20
speed_print = 50
default_material_print_temperature = 235
material_standby_temperature = 215
material_print_temperature_layer_0 = =default_material_print_temperature + 5

View file

@ -0,0 +1,25 @@
[general]
version = 4
name = Normal
definition = deltacomb
[metadata]
setting_version = 7
type = quality
quality_type = fast
weight = -1
material = generic_petg
[values]
adhesion_type = skirt
cool_fan_enabled = True
cool_fan_full_at_height = =layer_height * 4
cool_fan_speed = 60
cool_fan_speed_max = 100
cool_fan_speed_min = 60
cool_min_layer_time = 5
cool_min_speed = 20
speed_print = 50
default_material_print_temperature = 235
material_standby_temperature = 215
material_print_temperature_layer_0 = =default_material_print_temperature + 5

View file

@ -0,0 +1,25 @@
[general]
version = 4
name = Extra Fine
definition = deltacomb
[metadata]
setting_version = 7
type = quality
quality_type = high
weight = 0
material = generic_petg
[values]
adhesion_type = skirt
cool_fan_enabled = True
cool_fan_full_at_height = =layer_height * 4
cool_fan_speed = 60
cool_fan_speed_max = 100
cool_fan_speed_min = 60
cool_min_layer_time = 5
cool_min_speed = 20
speed_print = 50
default_material_print_temperature = 235
material_standby_temperature = 215
material_print_temperature_layer_0 = =default_material_print_temperature + 5

View file

@ -0,0 +1,25 @@
[general]
version = 4
name = Fine
definition = deltacomb
[metadata]
setting_version = 7
type = quality
quality_type = normal
weight = 0
material = generic_petg
[values]
adhesion_type = skirt
cool_fan_enabled = True
cool_fan_full_at_height = =layer_height * 4
cool_fan_speed = 60
cool_fan_speed_max = 100
cool_fan_speed_min = 60
cool_min_layer_time = 5
cool_min_speed = 20
speed_print = 50
default_material_print_temperature = 235
material_standby_temperature = 215
material_print_temperature_layer_0 = =default_material_print_temperature + 5

View file

@ -0,0 +1,25 @@
[general]
version = 4
name = Extra Fast
definition = deltacomb
[metadata]
setting_version = 7
type = quality
quality_type = verydraft
weight = -3
material = generic_petg
[values]
adhesion_type = skirt
cool_fan_enabled = True
cool_fan_full_at_height = =layer_height * 4
cool_fan_speed = 60
cool_fan_speed_max = 100
cool_fan_speed_min = 60
cool_min_layer_time = 5
cool_min_speed = 20
speed_print = 50
default_material_print_temperature = 235
material_standby_temperature = 215
material_print_temperature_layer_0 = =default_material_print_temperature + 5

View file

@ -13,7 +13,7 @@ material = generic_pla
[values] [values]
adhesion_type = skirt adhesion_type = skirt
cool_fan_enabled = True cool_fan_enabled = True
cool_fan_full_at_height = =layer_height cool_fan_full_at_height = =layer_height * 4
cool_fan_speed = 100 cool_fan_speed = 100
cool_fan_speed_max = 100 cool_fan_speed_max = 100
cool_fan_speed_min = 100 cool_fan_speed_min = 100

View file

@ -13,7 +13,7 @@ material = generic_pla
[values] [values]
adhesion_type = skirt adhesion_type = skirt
cool_fan_enabled = True cool_fan_enabled = True
cool_fan_full_at_height = =layer_height cool_fan_full_at_height = =layer_height * 4
cool_fan_speed = 100 cool_fan_speed = 100
cool_fan_speed_max = 100 cool_fan_speed_max = 100
cool_fan_speed_min = 100 cool_fan_speed_min = 100

View file

@ -7,13 +7,13 @@ definition = deltacomb
setting_version = 7 setting_version = 7
type = quality type = quality
quality_type = high quality_type = high
weight = 1 weight = 0
material = generic_pla material = generic_pla
[values] [values]
adhesion_type = skirt adhesion_type = skirt
cool_fan_enabled = True cool_fan_enabled = True
cool_fan_full_at_height = =layer_height cool_fan_full_at_height = =layer_height * 4
cool_fan_speed = 100 cool_fan_speed = 100
cool_fan_speed_max = 100 cool_fan_speed_max = 100
cool_fan_speed_min = 100 cool_fan_speed_min = 100

View file

@ -13,7 +13,7 @@ material = generic_pla
[values] [values]
adhesion_type = skirt adhesion_type = skirt
cool_fan_enabled = True cool_fan_enabled = True
cool_fan_full_at_height = =layer_height cool_fan_full_at_height = =layer_height * 4
cool_fan_speed = 100 cool_fan_speed = 100
cool_fan_speed_max = 100 cool_fan_speed_max = 100
cool_fan_speed_min = 100 cool_fan_speed_min = 100

View file

@ -13,7 +13,7 @@ material = generic_pla
[values] [values]
adhesion_type = skirt adhesion_type = skirt
cool_fan_enabled = True cool_fan_enabled = True
cool_fan_full_at_height = =layer_height cool_fan_full_at_height = =layer_height * 4
cool_fan_speed = 100 cool_fan_speed = 100
cool_fan_speed_max = 100 cool_fan_speed_max = 100
cool_fan_speed_min = 100 cool_fan_speed_min = 100

View file

@ -0,0 +1,27 @@
[general]
version = 4
name = Fast
definition = deltacomb
[metadata]
setting_version = 7
type = quality
quality_type = draft
weight = -2
material = generic_tpu
[values]
adhesion_type = skirt
cool_fan_enabled = True
cool_fan_full_at_height = =layer_height * 6
cool_fan_speed = 100
cool_fan_speed_max = 100
cool_fan_speed_min = 70
cool_min_layer_time = 5
cool_min_speed = 20
material_print_temperature_layer_0 = =default_material_print_temperature + 5
speed_print = 25
speed_travel = 300
acceleration_travel = 10000
retraction_amount = 5
retraction_hop_enabled = False

View file

@ -0,0 +1,27 @@
[general]
version = 4
name = Normal
definition = deltacomb
[metadata]
setting_version = 7
type = quality
quality_type = fast
weight = -1
material = generic_tpu
[values]
adhesion_type = skirt
cool_fan_enabled = True
cool_fan_full_at_height = =layer_height * 6
cool_fan_speed = 100
cool_fan_speed_max = 100
cool_fan_speed_min = 70
cool_min_layer_time = 5
cool_min_speed = 20
material_print_temperature_layer_0 = =default_material_print_temperature + 5
speed_print = 25
speed_travel = 300
acceleration_travel = 10000
retraction_amount = 5
retraction_hop_enabled = False

View file

@ -0,0 +1,27 @@
[general]
version = 4
name = Extra Fine
definition = deltacomb
[metadata]
setting_version = 7
type = quality
quality_type = high
weight = 0
material = generic_tpu
[values]
adhesion_type = skirt
cool_fan_enabled = True
cool_fan_full_at_height = =layer_height * 6
cool_fan_speed = 100
cool_fan_speed_max = 100
cool_fan_speed_min = 70
cool_min_layer_time = 5
cool_min_speed = 20
material_print_temperature_layer_0 = =default_material_print_temperature + 5
speed_print = 25
speed_travel = 300
acceleration_travel = 10000
retraction_amount = 5
retraction_hop_enabled = False

View file

@ -0,0 +1,27 @@
[general]
version = 4
name = Fine
definition = deltacomb
[metadata]
setting_version = 7
type = quality
quality_type = normal
weight = 0
material = generic_tpu
[values]
adhesion_type = skirt
cool_fan_enabled = True
cool_fan_full_at_height = =layer_height * 6
cool_fan_speed = 100
cool_fan_speed_max = 100
cool_fan_speed_min = 70
cool_min_layer_time = 5
cool_min_speed = 20
material_print_temperature_layer_0 = =default_material_print_temperature + 5
speed_print = 25
speed_travel = 300
acceleration_travel = 10000
retraction_amount = 5
retraction_hop_enabled = False

View file

@ -0,0 +1,27 @@
[general]
version = 4
name = Extra Fast
definition = deltacomb
[metadata]
setting_version = 7
type = quality
quality_type = verydraft
weight = -3
material = generic_tpu
[values]
adhesion_type = skirt
cool_fan_enabled = True
cool_fan_full_at_height = =layer_height * 6
cool_fan_speed = 100
cool_fan_speed_max = 100
cool_fan_speed_min = 70
cool_min_layer_time = 5
cool_min_speed = 20
material_print_temperature_layer_0 = =default_material_print_temperature + 5
speed_print = 25
speed_travel = 300
acceleration_travel = 10000
retraction_amount = 5
retraction_hop_enabled = False

View file

@ -0,0 +1,13 @@
[general]
name = E3D 0.25mm
version = 4
definition = deltacomb
[metadata]
author = Deltacomb 3D
setting_version = 5
type = variant
hardware_type = nozzle
[values]
machine_nozzle_size = 0.25

View file

@ -0,0 +1,13 @@
[general]
name = E3D 0.40mm
version = 4
definition = deltacomb
[metadata]
author = Deltacomb 3D
setting_version = 5
type = variant
hardware_type = nozzle
[values]
machine_nozzle_size = 0.4

View file

@ -0,0 +1,13 @@
[general]
name = E3D 0.80mm
version = 4
definition = deltacomb
[metadata]
author = Deltacomb 3D
setting_version = 5
type = variant
hardware_type = nozzle
[values]
machine_nozzle_size = 0.8

View file

@ -0,0 +1,14 @@
[general]
name = 0.20mm (Clear)
version = 4
definition = structur3d_discov3ry1_complete_um2plus
[metadata]
setting_version = 7
type = variant
hardware_type = nozzle
[values]
machine_nozzle_id = 0.20mm (Clear)
machine_nozzle_size = 0.20
machine_nozzle_tip_outer_diameter = 0.30

View file

@ -0,0 +1,14 @@
[general]
name = 0.25mm (Red)
version = 4
definition = structur3d_discov3ry1_complete_um2plus
[metadata]
setting_version = 7
type = variant
hardware_type = nozzle
[values]
machine_nozzle_id = 0.25mm (Red)
machine_nozzle_size = 0.25
machine_nozzle_tip_outer_diameter = 0.35

View file

@ -0,0 +1,14 @@
[general]
name = 0.41mm (Blue)
version = 4
definition = structur3d_discov3ry1_complete_um2plus
[metadata]
setting_version = 7
type = variant
hardware_type = nozzle
[values]
machine_nozzle_id = 0.41mm (Blue)
machine_nozzle_size = 0.41
machine_nozzle_tip_outer_diameter = 0.51

View file

@ -0,0 +1,14 @@
[general]
name = 0.58mm (Pink)
version = 4
definition = structur3d_discov3ry1_complete_um2plus
[metadata]
setting_version = 7
type = variant
hardware_type = nozzle
[values]
machine_nozzle_id = 0.58mm (Pink)
machine_nozzle_size = 0.58
machine_nozzle_tip_outer_diameter = 0.68

View file

@ -0,0 +1,14 @@
[general]
name = 0.84mm (Green)
version = 4
definition = structur3d_discov3ry1_complete_um2plus
[metadata]
setting_version = 7
type = variant
hardware_type = nozzle
[values]
machine_nozzle_id = 0.84mm (Green)
machine_nozzle_size = 0.84
machine_nozzle_tip_outer_diameter = 0.94

View file

@ -0,0 +1,14 @@
[general]
name = 1.19mm (Grey)
version = 4
definition = structur3d_discov3ry1_complete_um2plus
[metadata]
setting_version = 7
type = variant
hardware_type = nozzle
[values]
machine_nozzle_id = 1.19mm (Grey)
machine_nozzle_size = 1.19
machine_nozzle_tip_outer_diameter = 1.29

View file

@ -0,0 +1,14 @@
[general]
name = 1.60mm (Olive)
version = 4
definition = structur3d_discov3ry1_complete_um2plus
[metadata]
setting_version = 7
type = variant
hardware_type = nozzle
[values]
machine_nozzle_id = 1.60mm (Olive)
machine_nozzle_size = 1.60
machine_nozzle_tip_outer_diameter = 1.70