Merge branch 'master' into print_simulation_view

This commit is contained in:
Diego Prado Gesto 2017-11-13 11:28:27 +01:00
commit 1008789364
31 changed files with 932 additions and 76 deletions

View file

@ -562,6 +562,7 @@ class CuraApplication(QtApplication):
super().addCommandLineOptions(parser) super().addCommandLineOptions(parser)
parser.add_argument("file", nargs="*", help="Files to load after starting the application.") parser.add_argument("file", nargs="*", help="Files to load after starting the application.")
parser.add_argument("--single-instance", action="store_true", default=False) parser.add_argument("--single-instance", action="store_true", default=False)
parser.add_argument("--headless", action = "store_true", default=False)
# Set up a local socket server which listener which coordinates single instances Curas and accepts commands. # Set up a local socket server which listener which coordinates single instances Curas and accepts commands.
def _setUpSingleInstanceServer(self): def _setUpSingleInstanceServer(self):
@ -710,9 +711,12 @@ class CuraApplication(QtApplication):
qmlRegisterSingletonType(MachineActionManager.MachineActionManager, "Cura", 1, 0, "MachineActionManager", self.getMachineActionManager) qmlRegisterSingletonType(MachineActionManager.MachineActionManager, "Cura", 1, 0, "MachineActionManager", self.getMachineActionManager)
self.setMainQml(Resources.getPath(self.ResourceTypes.QmlFiles, "Cura.qml")) self.setMainQml(Resources.getPath(self.ResourceTypes.QmlFiles, "Cura.qml"))
self._qml_import_paths.append(Resources.getPath(self.ResourceTypes.QmlFiles)) self._qml_import_paths.append(Resources.getPath(self.ResourceTypes.QmlFiles))
self.initializeEngine()
if self._engine.rootObjects: run_headless = self.getCommandLineOption("headless", False)
if not run_headless:
self.initializeEngine()
if run_headless or self._engine.rootObjects:
self.closeSplash() self.closeSplash()
for file in self.getCommandLineOption("file", []): for file in self.getCommandLineOption("file", []):
@ -1263,6 +1267,9 @@ class CuraApplication(QtApplication):
# see GroupDecorator._onChildrenChanged # see GroupDecorator._onChildrenChanged
def _createSplashScreen(self): def _createSplashScreen(self):
run_headless = self.getCommandLineOption("headless", False)
if run_headless:
return None
return CuraSplashScreen.CuraSplashScreen() return CuraSplashScreen.CuraSplashScreen()
def _onActiveMachineChanged(self): def _onActiveMachineChanged(self):

57
cura/PreviewPass.py Normal file
View file

@ -0,0 +1,57 @@
# Copyright (c) 2017 Ultimaker B.V.
# Uranium is released under the terms of the LGPLv3 or higher.
from UM.Application import Application
from UM.Resources import Resources
from UM.View.RenderPass import RenderPass
from UM.View.GL.OpenGL import OpenGL
from UM.View.RenderBatch import RenderBatch
from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator
from typing import Optional
MYPY = False
if MYPY:
from UM.Scene.Camera import Camera
## A render pass subclass that renders slicable objects with default parameters.
# It uses the active camera by default, but it can be overridden to use a different camera.
#
# This is useful to get a preview image of a scene taken from a different location as the active camera.
class PreviewPass(RenderPass):
def __init__(self, width: int, height: int):
super().__init__("preview", width, height, 0)
self._camera = None # type: Optional[Camera]
self._renderer = Application.getInstance().getRenderer()
self._shader = None
self._scene = Application.getInstance().getController().getScene()
# Set the camera to be used by this render pass
# if it's None, the active camera is used
def setCamera(self, camera: Optional["Camera"]):
self._camera = camera
def render(self) -> None:
if not self._shader:
self._shader = OpenGL.getInstance().createShaderProgram(Resources.getPath(Resources.Shaders, "object.shader"))
# Create a new batch to be rendered
batch = RenderBatch(self._shader)
# Fill up the batch with objects that can be sliced. `
for node in DepthFirstIterator(self._scene.getRoot()):
if node.callDecoration("isSliceable") and node.getMeshData() and node.isVisible():
batch.addItem(node.getWorldTransformation(), node.getMeshData())
self.bind()
if self._camera is None:
batch.render(Application.getInstance().getController().getScene().getActiveCamera())
else:
batch.render(self._camera)
self.release()

View file

@ -293,7 +293,7 @@ class CuraEngineBackend(QObject, Backend):
error_labels.add(definitions[0].label) error_labels.add(definitions[0].label)
error_labels = ", ".join(error_labels) error_labels = ", ".join(error_labels)
self._error_message = Message(catalog.i18nc("@info:status", "Unable to slice with the current settings. The following settings have errors: {0}".format(error_labels)), self._error_message = Message(catalog.i18nc("@info:status", "Unable to slice with the current settings. The following settings have errors: {0}").format(error_labels),
title = catalog.i18nc("@info:title", "Unable to slice")) title = catalog.i18nc("@info:title", "Unable to slice"))
self._error_message.show() self._error_message.show()
self.backendStateChange.emit(BackendState.Error) self.backendStateChange.emit(BackendState.Error)

View file

@ -1,6 +1,9 @@
# Copyright (c) 2017 Ultimaker B.V. # Copyright (c) 2017 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 PyQt5.QtCore import QUrl
from PyQt5.QtGui import QDesktopServices
from UM.Extension import Extension from UM.Extension import Extension
from UM.Preferences import Preferences from UM.Preferences import Preferences
from UM.Logger import Logger from UM.Logger import Logger
@ -32,6 +35,17 @@ class FirmwareUpdateChecker(Extension):
if Preferences.getInstance().getValue("info/automatic_update_check"): if Preferences.getInstance().getValue("info/automatic_update_check"):
ContainerRegistry.getInstance().containerAdded.connect(self._onContainerAdded) ContainerRegistry.getInstance().containerAdded.connect(self._onContainerAdded)
self._download_url = None
## Callback for the message that is spawned when there is a new version.
def _onActionTriggered(self, message, action):
if action == "download":
if self._download_url is not None:
QDesktopServices.openUrl(QUrl(self._download_url))
def _onSetDownloadUrl(self, download_url):
self._download_url = download_url
def _onContainerAdded(self, container): def _onContainerAdded(self, container):
# Only take care when a new GlobalStack was added # Only take care when a new GlobalStack was added
if isinstance(container, GlobalStack): if isinstance(container, GlobalStack):
@ -45,5 +59,7 @@ class FirmwareUpdateChecker(Extension):
# \param silent type(boolean) Suppresses messages other than "new version found" messages. # \param silent type(boolean) Suppresses messages other than "new version found" messages.
# This is used when checking for a new firmware version at startup. # This is used when checking for a new firmware version at startup.
def checkFirmwareVersion(self, container = None, silent = False): def checkFirmwareVersion(self, container = None, silent = False):
job = FirmwareUpdateCheckerJob(container = container, silent = silent, url = self.JEDI_VERSION_URL) job = FirmwareUpdateCheckerJob(container = container, silent = silent, url = self.JEDI_VERSION_URL,
callback = self._onActionTriggered,
set_download_url_callback = self._onSetDownloadUrl)
job.start() job.start()

View file

@ -10,30 +10,21 @@ from UM.Job import Job
import urllib.request import urllib.request
import codecs import codecs
from PyQt5.QtCore import QUrl
from PyQt5.QtGui import QDesktopServices
from UM.i18n import i18nCatalog from UM.i18n import i18nCatalog
i18n_catalog = i18nCatalog("cura") i18n_catalog = i18nCatalog("cura")
## This job checks if there is an update available on the provided URL. ## This job checks if there is an update available on the provided URL.
class FirmwareUpdateCheckerJob(Job): class FirmwareUpdateCheckerJob(Job):
def __init__(self, container = None, silent = False, url = None): def __init__(self, container = None, silent = False, url = None, callback = None, set_download_url_callback = None):
super().__init__() super().__init__()
self._container = container self._container = container
self.silent = silent self.silent = silent
self._url = url self._url = url
self._download_url = None # If an update was found, the download_url will be set to the location of the new version. self._callback = callback
self._set_download_url_callback = set_download_url_callback
## Callback for the message that is spawned when there is a new version.
def actionTriggered(self, message, action):
if action == "download":
if self._download_url is not None:
QDesktopServices.openUrl(QUrl(self._download_url))
def run(self): def run(self):
self._download_url = None # Reset download ur.
if not self._url: if not self._url:
Logger.log("e", "Can not check for a new release. URL not set!") Logger.log("e", "Can not check for a new release. URL not set!")
return return
@ -70,13 +61,14 @@ 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") Logger.log("i", "SHOWING FIRMWARE UPDATE MESSAGE")
message = Message(i18n_catalog.i18nc("@info Don't translate {machine_name}, since it gets replaced by a printer name!", "To ensure that your {machine_name} is equipped with the latest features it is recommended to update the firmware regularly. This can be done on the {machine_name} (when connected to the network) or via USB.").format(machine_name = machine_name), message = Message(i18n_catalog.i18nc("@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(machine_name = machine_name),
title = i18n_catalog.i18nc("@info:title The %s gets replaced with the printer name.", "New %s firmware available") % machine_name) title = i18n_catalog.i18nc("@info:title The %s gets replaced with the printer name.", "New %s firmware available") % machine_name)
message.addAction("download", i18n_catalog.i18nc("@action:button", "Download"), "[no_icon]", "[no_description]") message.addAction("download", i18n_catalog.i18nc("@action:button", "How to update"), "[no_icon]", "[no_description]")
# If we do this in a cool way, the download url should be available in the JSON file # If we do this in a cool way, the download url should be available in the JSON file
self._download_url = "https://ultimaker.com/en/resources/20500-upgrade-firmware" if self._set_download_url_callback:
message.actionTriggered.connect(self.actionTriggered) self._set_download_url_callback("https://ultimaker.com/en/resources/20500-upgrade-firmware")
message.actionTriggered.connect(self._callback)
message.show() message.show()
except Exception as e: except Exception as e:

View file

@ -276,12 +276,8 @@ Cura.MachineAction
width: parent.width width: parent.width
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
text:{ text:{
if (base.selectedPrinter == undefined)
{
return "";
}
// The property cluster size does not exist for older UM3 devices. // The property cluster size does not exist for older UM3 devices.
if(base.selectedPrinter != undefined && base.selectedPrinter.clusterSize == null || base.selectedPrinter.clusterSize == 1) if(!base.selectedPrinter || base.selectedPrinter.clusterSize == null || base.selectedPrinter.clusterSize == 1)
{ {
return ""; return "";
} }

View file

@ -0,0 +1,66 @@
{
"id": "deltacomb",
"version": 2,
"name": "Deltacomb 3D",
"inherits": "fdmprinter",
"metadata": {
"author": "Gabriele Rossetti",
"visible": true,
"manufacturer": "Deltacomb 3D",
"category": "Other",
"file_formats": "text/x-gcode",
"icon": "icon_ultimaker2",
"platform": "deltacomb.stl",
"has_machine_quality": true
},
"overrides": {
"machine_heated_bed": { "default_value": false },
"machine_width": { "default_value": 190 },
"machine_height": { "default_value": 250 },
"machine_depth": { "default_value": 190 },
"machine_center_is_zero": { "default_value": true },
"machine_nozzle_size": { "default_value": 0.4 },
"material_diameter": { "default_value": 1.75 },
"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_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_max_feedrate_x": { "default_value": 250 },
"machine_max_feedrate_y": { "default_value": 250 },
"machine_max_feedrate_z": { "default_value": 15 },
"machine_max_acceleration_x": { "default_value": 10000 },
"machine_max_acceleration_y": { "default_value": 10000 },
"machine_max_acceleration_z": { "default_value": 50 },
"machine_max_acceleration_e": { "default_value": 100 },
"machine_acceleration": { "default_value": 4000 },
"machine_max_jerk_xy": { "default_value": 25.0 },
"machine_max_jerk_z": { "default_value": 0.4 },
"machine_max_jerk_e": { "default_value": 1.0 },
"retraction_hop_enabled": { "default_value": false },
"retraction_amount" : { "default_value": 4.5 },
"retraction_speed" : { "default_value": 40 },
"material_diameter": { "default_value": 1.75 },
"material_final_print_temperature": { "value": "material_print_temperature - 5" },
"material_initial_print_temperature": { "value": "material_print_temperature" },
"material_print_temperature_layer_0": { "value": "material_print_temperature + 5" },
"travel_avoid_distance": { "default_value": 1, "value": 1 },
"speed_print" : { "default_value": 70 },
"speed_travel": { "default_value": 80, "value": 80 },
"speed_infill": { "value": "round(speed_print * 1.05, 0)" },
"speed_topbottom": { "value": "round(speed_print * 0.95, 0)" },
"speed_wall": { "value": "speed_print" },
"speed_wall_0": { "value": "round(speed_print * 0.9, 0)" },
"speed_wall_x": { "value": "speed_wall" },
"speed_layer_0": { "value": "min(round(speed_print * 0.75, 0), 45.0)" },
"speed_travel_layer_0": { "value": "round(speed_travel * 0.7, 0)" },
"skirt_brim_speed": { "value": "speed_layer_0" },
"skirt_line_count": { "default_value": 3 },
"skirt_brim_minimal_length": { "default_value": 150 },
"infill_sparse_density": { "default_value": 24 },
"top_bottom_thickness": { "default_value": 0.6 },
"support_z_distance": { "default_value": 0.2, "value": "min(2 * layer_height, machine_nozzle_size * 0.75)" },
"infill_before_walls" : { "default_value": false },
"support_use_towers" : { "default_value": false }
}
}

View file

@ -1394,7 +1394,7 @@
"infill_pattern": "infill_pattern":
{ {
"label": "Infill Pattern", "label": "Infill Pattern",
"description": "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, octet, quarter cubic and concentric patterns are fully printed every layer. Cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction.", "description": "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction.",
"type": "enum", "type": "enum",
"options": "options":
{ {
@ -3974,16 +3974,6 @@
"limit_to_extruder": "support_infill_extruder_nr", "limit_to_extruder": "support_infill_extruder_nr",
"enabled": "support_enable and support_use_towers", "enabled": "support_enable and support_use_towers",
"settable_per_mesh": true "settable_per_mesh": true
},
"remove_empty_first_layers":
{
"label": "Remove Empty First Layers",
"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",
"default_value": true,
"enabled": "not support_enable",
"settable_per_mesh": false,
"settable_per_extruder": false
} }
} }
}, },
@ -4142,30 +4132,6 @@
"settable_per_extruder": true, "settable_per_extruder": true,
"limit_to_extruder": "adhesion_extruder_nr" "limit_to_extruder": "adhesion_extruder_nr"
}, },
"z_offset_layer_0":
{
"label": "Initial Layer Z Offset",
"description": "The extruder is offset from the normal height of the first layer by this amount. It can be positive (raised) or negative (lowered). Some filament types adhere to the build plate better if the extruder is raised slightly.",
"unit": "mm",
"type": "float",
"default_value": 0,
"minimum_value_warning": "0",
"maximum_value_warning": "layer_height_0",
"enabled": "resolveOrValue('adhesion_type') != 'raft'",
"settable_per_mesh": false,
"settable_per_extruder": false
},
"z_offset_taper_layers":
{
"label": "Z Offset Taper Layers",
"description": "When non-zero, the Z offset is reduced to 0 over that many layers. A value of 0 means that the Z offset remains constant for all the layers in the print.",
"type": "int",
"default_value": 0,
"minimum_value": "0",
"enabled": "resolveOrValue('adhesion_type') != 'raft' and z_offset_layer_0 != 0",
"settable_per_mesh": false,
"settable_per_extruder": false
},
"raft_margin": "raft_margin":
{ {
"label": "Raft Extra Margin", "label": "Raft Extra Margin",
@ -4894,6 +4860,16 @@
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": false, "settable_per_extruder": false,
"settable_per_meshgroup": true "settable_per_meshgroup": true
},
"remove_empty_first_layers":
{
"label": "Remove Empty First Layers",
"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",
"default_value": true,
"enabled": "not support_enable",
"settable_per_mesh": false,
"settable_per_extruder": false
} }
} }
}, },

View file

@ -10,6 +10,9 @@
"author": "Velleman" "author": "Velleman"
}, },
"overrides": { "overrides": {
"material_diameter": {
"default_value": 1.75
},
"machine_width": { "machine_width": {
"default_value": 200 "default_value": 200
}, },
@ -40,7 +43,7 @@
"machine_head_shape_max_y": { "machine_head_shape_max_y": {
"default_value": 0 "default_value": 0
}, },
"machine_nozzle_gantry_distance": { "gantry_height": {
"default_value": 0 "default_value": 0
}, },
"machine_nozzle_offset_x_1": { "machine_nozzle_offset_x_1": {

Binary file not shown.

View file

@ -0,0 +1,25 @@
[general]
version = 2
definition = deltacomb
name = Fast Quality (beta)
[metadata]
type = quality
setting_version = 4
material = generic_abs_175
quality_type = fast
weight = -1
[values]
adhesion_type = raft
layer_height = 0.2
layer_height_0 = 0.2
cool_fan_enabled = True
cool_fan_full_at_height = 0.4
cool_fan_speed = 50
cool_fan_speed_max = 50
cool_fan_speed_min = 50
cool_min_layer_time = 3
cool_min_speed = 20
material_bed_temperature = 80

View file

@ -0,0 +1,25 @@
[general]
version = 2
definition = deltacomb
name = High Quality (beta)
[metadata]
type = quality
setting_version = 4
material = generic_abs_175
quality_type = high
weight = 1
[values]
adhesion_type = raft
layer_height = 0.1
layer_height_0 = 0.1
cool_fan_enabled = True
cool_fan_full_at_height = 0.2
cool_fan_speed = 50
cool_fan_speed_max = 50
cool_fan_speed_min = 50
cool_min_layer_time = 3
cool_min_speed = 20
material_bed_temperature = 80

View file

@ -0,0 +1,24 @@
[general]
version = 2
definition = deltacomb
name = Normal Quality (beta)
[metadata]
type = quality
setting_version = 4
material = generic_abs_175
quality_type = normal
weight = 0
[values]
adhesion_type = raft
layer_height = 0.15
layer_height_0 = 0.15
cool_fan_enabled = True
cool_fan_full_at_height = 0.3
cool_fan_speed = 50
cool_fan_speed_max = 50
cool_fan_speed_min = 50
cool_min_layer_time = 3
cool_min_speed = 20
material_bed_temperature = 80

View file

@ -0,0 +1,57 @@
[general]
version = 2
name = Fast Quality (beta)
definition = deltacomb
[metadata]
type = quality
material = generic_nylon_175
quality_type = fast
weight = -1
setting_version = 4
[values]
adhesion_type = raft
brim_width = 4
cool_fan_enabled = False
cool_fan_full_at_height = 0.45
cool_fan_speed = 0
cool_fan_speed_max = 0
cool_fan_speed_min = 0
cool_min_layer_time = 5
cool_min_speed = 0
infill_overlap = 15
infill_sparse_density = 24
layer_height = 0.20
layer_height_0 = 0.15
line_width = =machine_nozzle_size
material_flow = 100
raft_airgap = 0.22
raft_base_line_width= =line_width * 2
raft_base_thickness = =layer_height_0 * 2
raft_interface_line_width = =line_width
raft_interface_thickness = =layer_height
raft_margin = 5
raft_surface_layers = 2
raft_surface_line_width = =line_width
raft_surface_thickness = =layer_height
retraction_hop = 0.5
retraction_hop_enabled = False
retraction_hop_only_when_collides = True
skin_overlap = 10
skirt_brim_minimal_length = 75
skirt_gap = 1.5
skirt_line_count = 5
speed_infill = =speed_print
speed_layer_0 = 25
speed_print = 50
speed_topbottom = 40
speed_travel = 200
speed_wall_0 = 40
speed_wall_x = =speed_print
support_angle = 70
support_type = buildplate
support_z_distance = 0.15
top_bottom_thickness = 0.8
wall_thickness = 0.8
z_seam_type = random

View file

@ -0,0 +1,57 @@
[general]
version = 2
name = High Quality (beta)
definition = deltacomb
[metadata]
type = quality
material = generic_nylon_175
quality_type = high
weight = 1
setting_version = 4
[values]
adhesion_type = raft
brim_width = 4
cool_fan_enabled = False
cool_fan_full_at_height = 0.45
cool_fan_speed = 0
cool_fan_speed_max = 0
cool_fan_speed_min = 0
cool_min_layer_time = 5
cool_min_speed = 0
infill_overlap = 15
infill_sparse_density = 24
layer_height = 0.10
layer_height_0 = 0.10
line_width = =machine_nozzle_size
material_flow = 100
raft_airgap = 0.22
raft_base_line_width= =line_width * 2
raft_base_thickness = =layer_height_0 * 2
raft_interface_line_width = =line_width
raft_interface_thickness = =layer_height
raft_margin = 5
raft_surface_layers = 2
raft_surface_line_width = =line_width
raft_surface_thickness = =layer_height
retraction_hop = 0.5
retraction_hop_enabled = False
retraction_hop_only_when_collides = True
skin_overlap = 10
skirt_brim_minimal_length = 75
skirt_gap = 1.5
skirt_line_count = 5
speed_infill = =speed_print
speed_layer_0 = 25
speed_print = 50
speed_topbottom = 40
speed_travel = 200
speed_wall_0 = 40
speed_wall_x = =speed_print
support_angle = 70
support_type = buildplate
support_z_distance = 0.15
top_bottom_thickness = 0.8
wall_thickness = 0.8
z_seam_type = random

View file

@ -0,0 +1,58 @@
[general]
version = 2
name = Normal Quality (beta)
definition = deltacomb
[metadata]
type = quality
material = generic_nylon_175
quality_type = normal
weight = 0
setting_version = 4
[values]
adhesion_type = raft
brim_width = 4
cool_fan_enabled = False
cool_fan_full_at_height = 0.45
cool_fan_speed = 0
cool_fan_speed_max = 0
cool_fan_speed_min = 0
cool_min_layer_time = 5
cool_min_speed = 0
infill_overlap = 15
infill_sparse_density = 24
layer_height = 0.15
layer_height_0 = 0.10
line_width = =machine_nozzle_size
material_flow = 100
raft_airgap = 0.22
raft_base_line_width= =line_width * 2
raft_base_thickness = =layer_height_0 * 2
raft_interface_line_width = =line_width
raft_interface_thickness = =layer_height
raft_margin = 5
raft_surface_layers = 2
raft_surface_line_width = =line_width
raft_surface_thickness = =layer_height
retraction_hop = 0.5
retraction_hop_enabled = False
retraction_hop_only_when_collides = True
skin_overlap = 10
skirt_brim_minimal_length = 75
skirt_gap = 1.5
skirt_line_count = 5
speed_infill = =speed_print
speed_layer_0 = 25
speed_print = 50
speed_topbottom = 40
speed_travel = 200
speed_wall_0 = 40
speed_wall_x = =speed_print
support_angle = 70
support_type = buildplate
support_z_distance = 0.15
top_bottom_thickness = 0.8
wall_thickness = 0.8
z_seam_type = random

View file

@ -0,0 +1,24 @@
[general]
version = 2
definition = deltacomb
name = Fast Quality
[metadata]
type = quality
setting_version = 4
material = generic_pla_175
quality_type = fast
weight = -1
[values]
adhesion_type = skirt
layer_height = 0.2
layer_height_0 = 0.2
cool_fan_enabled = True
cool_fan_full_at_height = 0.4
cool_fan_speed = 100
cool_fan_speed_max = 100
cool_fan_speed_min = 100
cool_min_layer_time = 5
cool_min_speed = 20

View file

@ -0,0 +1,25 @@
[general]
version = 2
definition = deltacomb
name = High Quality
[metadata]
type = quality
setting_version = 4
material = generic_pla_175
quality_type = high
weight = 1
[values]
adhesion_type = skirt
layer_height = 0.1
layer_height_0 = 0.1
cool_fan_enabled = True
cool_fan_full_at_height = 0.2
cool_fan_speed = 100
cool_fan_speed_max = 100
cool_fan_speed_min = 100
cool_min_layer_time = 5
cool_min_speed = 20
material_print_temperature_layer_0 = =default_material_print_temperature + 5

View file

@ -0,0 +1,23 @@
[general]
version = 2
definition = deltacomb
name = Normal Quality
[metadata]
type = quality
setting_version = 4
material = generic_pla_175
quality_type = normal
weight = 0
[values]
adhesion_type = skirt
layer_height = 0.15
layer_height_0 = 0.15
cool_fan_enabled = True
cool_fan_full_at_height = 0.3
cool_fan_speed = 100
cool_fan_speed_max = 100
cool_fan_speed_min = 100
cool_min_layer_time = 5
cool_min_speed = 20

View file

@ -0,0 +1,24 @@
[general]
version = 2
name = Fine
definition = ultimaker3
[metadata]
type = quality
quality_type = normal
material = generic_abs_ultimaker3_AA_0.25
weight = 0
setting_version = 4
[values]
cool_fan_speed = 40
infill_overlap = 15
material_final_print_temperature = =material_print_temperature - 5
prime_tower_enable = True
prime_tower_purge_volume = 0.6
prime_tower_size = 12
prime_tower_wall_thickness = 0.9
retraction_prime_speed = 25
speed_topbottom = =math.ceil(speed_print * 30 / 55)
wall_thickness = 0.92

View file

@ -0,0 +1,22 @@
[general]
version = 2
name = Fine
definition = ultimaker3
[metadata]
type = quality
quality_type = normal
material = generic_cpe_ultimaker3_AA_0.25
weight = 0
setting_version = 4
[values]
infill_overlap = =10 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0
prime_tower_size = 12
prime_tower_wall_thickness = 0.9
retraction_extrusion_window = 0.5
speed_infill = 40
speed_topbottom = =math.ceil(speed_print * 30 / 55)
top_bottom_thickness = 0.8
wall_thickness = 0.92

View file

@ -0,0 +1,37 @@
[general]
version = 2
name = Fine
definition = ultimaker3
[metadata]
type = quality
quality_type = normal
material = generic_nylon_ultimaker3_AA_0.25
weight = 0
setting_version = 4
[values]
cool_min_layer_time_fan_speed_max = 20
cool_min_speed = 12
infill_line_width = =round(line_width * 0.5 / 0.4, 2)
infill_overlap = =10 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0
machine_nozzle_cool_down_speed = 0.9
machine_nozzle_heat_up_speed = 2.0
ooze_shield_angle = 40
raft_acceleration = =acceleration_layer_0
raft_airgap = =round(layer_height_0 * 0.85, 2)
raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 3)
raft_jerk = =jerk_layer_0
raft_margin = 10
raft_surface_thickness = =round(machine_nozzle_size * 0.2 / 0.4, 2)
retraction_extrusion_window = =retraction_amount
retraction_min_travel = =line_width * 2
skin_overlap = 50
speed_print = 70
speed_topbottom = =math.ceil(speed_print * 30 / 70)
speed_wall = =math.ceil(speed_print * 30 / 70)
switch_extruder_prime_speed = 30
switch_extruder_retraction_amount = 30
switch_extruder_retraction_speeds = 40
wall_line_width_x = =wall_line_width

View file

@ -0,0 +1,53 @@
[general]
version = 2
name = Fine - Experimental
definition = ultimaker3
[metadata]
type = quality
quality_type = normal
material = generic_pc_ultimaker3_AA_0.25
weight = 0
setting_version = 4
[values]
acceleration_enabled = True
acceleration_print = 4000
adhesion_type = brim
brim_width = 20
cool_fan_full_at_height = =layer_height_0 + layer_height
cool_fan_speed_max = 50
cool_min_layer_time_fan_speed_max = 5
cool_min_speed = 5
infill_line_width = =line_width
infill_pattern = triangles
infill_wipe_dist = 0.1
jerk_enabled = True
jerk_print = 25
machine_min_cool_heat_time_window = 15
multiple_mesh_overlap = 0
ooze_shield_angle = 40
prime_tower_enable = True
retraction_count_max = 80
retraction_hop = 2
retraction_hop_enabled = True
retraction_hop_only_when_collides = True
retraction_min_travel = 0.8
retraction_prime_speed = 15
skin_overlap = 30
speed_layer_0 = 25
speed_print = 50
speed_topbottom = 25
speed_travel = 250
speed_wall = =math.ceil(speed_print * 40 / 50)
speed_wall_0 = =math.ceil(speed_wall * 25 / 40)
support_bottom_distance = =support_z_distance
support_interface_density = 87.5
support_interface_pattern = lines
switch_extruder_prime_speed = 15
switch_extruder_retraction_amount = 20
switch_extruder_retraction_speeds = 35
wall_0_inset = 0
wall_line_width_x = =line_width
wall_thickness = 1.2

View file

@ -0,0 +1,37 @@
[general]
version = 2
name = Fine
definition = ultimaker3
[metadata]
type = quality
quality_type = normal
material = generic_pla_ultimaker3_AA_0.25
weight = 0
setting_version = 4
[values]
brim_width = 8
cool_fan_full_at_height = =layer_height_0
cool_min_speed = 10
infill_overlap = 10
infill_pattern = grid
machine_nozzle_cool_down_speed = 0.9
machine_nozzle_heat_up_speed = 2.0
material_final_print_temperature = =max(-273.15, material_print_temperature - 15)
material_initial_print_temperature = =max(-273.15, material_print_temperature - 10)
material_print_temperature = 190
retraction_extrusion_window = =retraction_amount
retraction_hop = 0.2
skin_overlap = 5
speed_layer_0 = 30
speed_print = 30
speed_travel_layer_0 = 120
speed_wall = 25
speed_wall_0 = 20
top_bottom_thickness = 0.72
travel_avoid_distance = 0.4
wall_0_inset = 0.015
wall_0_wipe_dist = 0.25
wall_thickness = 0.7

View file

@ -0,0 +1,60 @@
[general]
version = 2
name = Fine - Experimental
definition = ultimaker3
[metadata]
type = quality
quality_type = normal
material = generic_pp_ultimaker3_AA_0.25
weight = 0
setting_version = 4
[values]
acceleration_enabled = True
acceleration_print = 4000
brim_width = 10
cool_fan_speed_max = 100
cool_min_layer_time_fan_speed_max = 5
cool_min_speed = 2.5
infill_line_width = =round(line_width * 0.38 / 0.38, 2)
infill_pattern = tetrahedral
infill_wipe_dist = 0.1
jerk_enabled = True
jerk_print = 25
line_width = =machine_nozzle_size * 0.92
machine_min_cool_heat_time_window = 15
material_bed_temperature_layer_0 = 90
material_final_print_temperature = 195
material_initial_print_temperature = 200
material_print_temperature = 205
material_print_temperature_layer_0 = 208
multiple_mesh_overlap = 0
prime_tower_enable = False
prime_tower_size = 16
prime_tower_wipe_enabled = True
retraction_count_max = 6
retraction_extra_prime_amount = 0.2
retraction_extrusion_window = 6.5
retraction_hop = 2
retraction_hop_enabled = True
retraction_hop_only_when_collides = True
retraction_min_travel = 0.8
retraction_prime_speed = 13
speed_equalize_flow_enabled = True
speed_layer_0 = 15
speed_print = 25
speed_travel = 300
speed_travel_layer_0 = 50
speed_wall = =math.ceil(speed_print * 25 / 25)
speed_wall_0 = =math.ceil(speed_wall * 25 / 25)
support_angle = 50
switch_extruder_prime_speed = 15
switch_extruder_retraction_amount = 20
switch_extruder_retraction_speeds = 35
top_bottom_thickness = 1
travel_avoid_distance = 3
wall_0_inset = 0
wall_line_width_x = =line_width
wall_thickness = =line_width * 3

View file

@ -0,0 +1,38 @@
[general]
version = 2
name = Fast
definition = ultimaker3
[metadata]
type = quality
quality_type = draft
material = generic_bam_ultimaker3_AA_0.4
weight = -2
setting_version = 4
[values]
cool_fan_full_at_height = =layer_height_0 + 2 * layer_height
cool_fan_speed_max = =cool_fan_speed
machine_nozzle_cool_down_speed = 0.75
machine_nozzle_heat_up_speed = 1.6
material_print_temperature = =230
material_standby_temperature = 100
# prime_tower_enable: see CURA-4248
prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100
skin_overlap = 20
speed_layer_0 = 20
speed_topbottom = =math.ceil(speed_print * 35 / 70)
speed_wall = =math.ceil(speed_print * 50 / 70)
speed_wall_0 = =math.ceil(speed_wall * 35 / 50)
top_bottom_thickness = 1
wall_thickness = 1
support_interface_enable = True
support_interface_density = =min(extruderValues('material_surface_energy'))
support_interface_pattern = ='lines' if support_interface_density < 100 else 'concentric'
support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height
support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height
support_angle = 45
support_join_distance = 5
support_offset = 2
support_pattern = triangles
support_infill_rate = 10

View file

@ -0,0 +1,38 @@
[general]
version = 2
name = Normal
definition = ultimaker3
[metadata]
type = quality
quality_type = fast
material = generic_bam_ultimaker3_AA_0.4
weight = -1
setting_version = 4
[values]
default_material_print_temperature = 225
cool_fan_full_at_height = =layer_height_0 + 2 * layer_height
cool_fan_speed_max = =cool_fan_speed
machine_nozzle_cool_down_speed = 0.75
machine_nozzle_heat_up_speed = 1.6
material_standby_temperature = 100
# prime_tower_enable: see CURA-4248
prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100
speed_print = 80
speed_layer_0 = 20
speed_topbottom = =math.ceil(speed_print * 30 / 80)
speed_wall = =math.ceil(speed_print * 40 / 80)
speed_wall_0 = =math.ceil(speed_wall * 30 / 40)
top_bottom_thickness = 1
wall_thickness = 1
support_interface_enable = True
support_interface_density = =min(extruderValues('material_surface_energy'))
support_interface_pattern = ='lines' if support_interface_density < 100 else 'concentric'
support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 1) * layer_height
support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height
support_angle = 45
support_join_distance = 5
support_offset = 2
support_pattern = triangles
support_infill_rate = 10

View file

@ -0,0 +1,36 @@
[general]
version = 2
name = Fine
definition = ultimaker3
[metadata]
type = quality
quality_type = normal
material = generic_bam_ultimaker3_AA_0.4
weight = 0
setting_version = 4
[values]
default_material_print_temperature = 225
cool_fan_full_at_height = =layer_height_0 + 2 * layer_height
cool_fan_speed_max = =cool_fan_speed
cool_min_speed = 7
machine_nozzle_cool_down_speed = 0.75
machine_nozzle_heat_up_speed = 1.6
material_standby_temperature = 100
# prime_tower_enable: see CURA-4248
prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100
skin_overlap = 10
speed_layer_0 = 20
top_bottom_thickness = 1
wall_thickness = 1
support_interface_enable = True
support_interface_density = =min(extruderValues('material_surface_energy'))
support_interface_pattern = ='lines' if support_interface_density < 100 else 'concentric'
support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 1) * layer_height
support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height
support_angle = 45
support_join_distance = 5
support_offset = 2
support_pattern = triangles
support_infill_rate = 10

View file

@ -78,13 +78,13 @@
"text_pressed": [12, 169, 227, 255], "text_pressed": [12, 169, 227, 255],
"text_subtext": [0, 0, 0, 255], "text_subtext": [0, 0, 0, 255],
"text_emphasis": [255, 255, 255, 255], "text_emphasis": [255, 255, 255, 255],
"text_scene": [24, 41, 77, 255], "text_scene": [31, 36, 39, 255],
"text_scene_hover": [70, 84, 113, 255], "text_scene_hover": [70, 84, 113, 255],
"error": [255, 140, 0, 255], "error": [255, 140, 0, 255],
"sidebar_header_bar": [31, 36, 39, 255], "sidebar_header_bar": [31, 36, 39, 255],
"sidebar_header_active": [68, 72, 75, 255], "sidebar_header_active": [31, 36, 39, 255],
"sidebar_header_hover": [68, 72, 75, 255], "sidebar_header_hover": [31, 36, 39, 255],
"sidebar_header_highlight": [68, 192, 255, 255], "sidebar_header_highlight": [68, 192, 255, 255],
"sidebar_header_highlight_hover": [68, 192, 255, 255], "sidebar_header_highlight_hover": [68, 192, 255, 255],
"sidebar_header_text_inactive": [255, 255, 255, 255], "sidebar_header_text_inactive": [255, 255, 255, 255],
@ -100,7 +100,7 @@
"button_text_hover": [255, 255, 255, 255], "button_text_hover": [255, 255, 255, 255],
"button_text_active": [255, 255, 255, 255], "button_text_active": [255, 255, 255, 255],
"button_text_active_hover": [255, 255, 255, 255], "button_text_active_hover": [255, 255, 255, 255],
"button_disabled": [24, 41, 77, 255], "button_disabled": [31, 36, 39, 255],
"button_disabled_text": [255, 255, 255, 101], "button_disabled_text": [255, 255, 255, 101],
"button_tooltip": [31, 36, 39, 255], "button_tooltip": [31, 36, 39, 255],
@ -116,7 +116,7 @@
"action_button_text": [0, 0, 0, 255], "action_button_text": [0, 0, 0, 255],
"action_button_border": [127, 127, 127, 255], "action_button_border": [127, 127, 127, 255],
"action_button_hovered": [255, 255, 255, 255], "action_button_hovered": [255, 255, 255, 255],
"action_button_hovered_text": [24, 41, 77, 255], "action_button_hovered_text": [31, 36, 39, 255],
"action_button_hovered_border": [12, 169, 227, 255], "action_button_hovered_border": [12, 169, 227, 255],
"action_button_active": [255, 255, 255, 255], "action_button_active": [255, 255, 255, 255],
"action_button_active_text": [0, 0, 0, 255], "action_button_active_text": [0, 0, 0, 255],
@ -134,7 +134,7 @@
"print_button_ready_pressed_border": [30, 186, 245, 243], "print_button_ready_pressed_border": [30, 186, 245, 243],
"scrollbar_background": [255, 255, 255, 255], "scrollbar_background": [255, 255, 255, 255],
"scrollbar_handle": [24, 41, 77, 255], "scrollbar_handle": [31, 36, 39, 255],
"scrollbar_handle_hover": [12, 159, 227, 255], "scrollbar_handle_hover": [12, 159, 227, 255],
"scrollbar_handle_down": [12, 159, 227, 255], "scrollbar_handle_down": [12, 159, 227, 255],
@ -143,11 +143,11 @@
"setting_category_hover": [245, 245, 245, 255], "setting_category_hover": [245, 245, 245, 255],
"setting_category_active": [245, 245, 245, 255], "setting_category_active": [245, 245, 245, 255],
"setting_category_active_hover": [245, 245, 245, 255], "setting_category_active_hover": [245, 245, 245, 255],
"setting_category_text": [24, 41, 77, 255], "setting_category_text": [31, 36, 39, 255],
"setting_category_disabled_text": [24, 41, 77, 101], "setting_category_disabled_text": [24, 41, 77, 101],
"setting_category_hover_text": [24, 41, 77, 255], "setting_category_hover_text": [31, 36, 39, 255],
"setting_category_active_text": [24, 41, 77, 255], "setting_category_active_text": [31, 36, 39, 255],
"setting_category_active_hover_text": [24, 41, 77, 255], "setting_category_active_hover_text": [31, 36, 39, 255],
"setting_category_border": [245, 245, 245, 255], "setting_category_border": [245, 245, 245, 255],
"setting_category_disabled_border": [245, 245, 245, 255], "setting_category_disabled_border": [245, 245, 245, 255],
"setting_category_hover_border": [12, 159, 227, 255], "setting_category_hover_border": [12, 159, 227, 255],
@ -155,7 +155,7 @@
"setting_category_active_hover_border": [12, 159, 227, 255], "setting_category_active_hover_border": [12, 159, 227, 255],
"setting_control": [255, 255, 255, 255], "setting_control": [255, 255, 255, 255],
"setting_control_selected": [24, 41, 77, 255], "setting_control_selected": [31, 36, 39, 255],
"setting_control_highlight": [255, 255, 255, 255], "setting_control_highlight": [255, 255, 255, 255],
"setting_control_border": [127, 127, 127, 255], "setting_control_border": [127, 127, 127, 255],
"setting_control_border_highlight": [12, 169, 227, 255], "setting_control_border_highlight": [12, 169, 227, 255],
@ -176,7 +176,7 @@
"material_compatibility_warning": [0, 0, 0, 255], "material_compatibility_warning": [0, 0, 0, 255],
"progressbar_background": [245, 245, 245, 255], "progressbar_background": [245, 245, 245, 255],
"progressbar_control": [24, 41, 77, 255], "progressbar_control": [31, 36, 39, 255],
"slider_groove": [245, 245, 245, 255], "slider_groove": [245, 245, 245, 255],
"slider_groove_border": [127, 127, 127, 255], "slider_groove_border": [127, 127, 127, 255],
@ -203,9 +203,9 @@
"mode_switch_hover": [255, 255, 255, 255], "mode_switch_hover": [255, 255, 255, 255],
"mode_switch_border": [127, 127, 127, 255], "mode_switch_border": [127, 127, 127, 255],
"mode_switch_border_hover": [12, 169, 227, 255], "mode_switch_border_hover": [12, 169, 227, 255],
"mode_switch_handle": [24, 41, 77, 255], "mode_switch_handle": [31, 36, 39, 255],
"mode_switch_text": [24, 41, 77, 255], "mode_switch_text": [31, 36, 39, 255],
"mode_switch_text_hover": [24, 41, 77, 255], "mode_switch_text_hover": [31, 36, 39, 255],
"mode_switch_text_checked": [12, 169, 227, 255], "mode_switch_text_checked": [12, 169, 227, 255],
"tooltip": [68, 192, 255, 255], "tooltip": [68, 192, 255, 255],

View file

@ -0,0 +1,40 @@
[general]
name = AA 0.25
version = 2
definition = ultimaker3
[metadata]
author = ultimaker
type = variant
setting_version = 4
[values]
brim_width = 7
infill_line_width = 0.23
infill_overlap = 0
layer_height_0 = 0.17
line_width = 0.23
machine_nozzle_cool_down_speed = 0.85
machine_nozzle_heat_up_speed = 1.5
machine_nozzle_id = AA 0.25
machine_nozzle_size = 0.25
machine_nozzle_tip_outer_diameter = 0.65
material_final_print_temperature = =material_print_temperature - 10
material_initial_print_temperature = =material_print_temperature - 5
raft_interface_thickness = =layer_height * 1.5
retraction_count_max = 25
retraction_extrusion_window = 1
retraction_min_travel = 0.7
skin_overlap = 15
speed_layer_0 = 20
speed_print = 55
speed_topbottom = 20
speed_wall = =math.ceil(speed_print * 30 / 55)
support_angle = 60
support_bottom_distance = =support_z_distance / 2
support_top_distance = =support_z_distance
support_z_distance = =layer_height * 2
top_bottom_thickness = 1.2
wall_line_width_x = 0.23
wall_thickness = 1.3

View file

@ -0,0 +1,40 @@
[general]
name = AA 0.25
version = 2
definition = ultimaker3_extended
[metadata]
author = ultimaker
type = variant
setting_version = 4
[values]
brim_width = 7
infill_line_width = 0.23
infill_overlap = 0
layer_height_0 = 0.17
line_width = 0.23
machine_nozzle_cool_down_speed = 0.85
machine_nozzle_heat_up_speed = 1.5
machine_nozzle_id = AA 0.25
machine_nozzle_size = 0.25
machine_nozzle_tip_outer_diameter = 0.65
material_final_print_temperature = =material_print_temperature - 10
material_initial_print_temperature = =material_print_temperature - 5
raft_interface_thickness = =layer_height * 1.5
retraction_count_max = 25
retraction_extrusion_window = 1
retraction_min_travel = 0.7
skin_overlap = 15
speed_layer_0 = 20
speed_print = 55
speed_topbottom = 20
speed_wall = =math.ceil(speed_print * 30 / 55)
support_angle = 60
support_bottom_distance = =support_z_distance / 2
support_top_distance = =support_z_distance
support_z_distance = =layer_height * 2
top_bottom_thickness = 1.2
wall_line_width_x = 0.23
wall_thickness = 1.3