mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-14 02:07:51 -06:00
Merge branch 'master' into CURA-5595_add_custom_button_to_menu
This commit is contained in:
commit
a1bc2f3ebf
89 changed files with 1210 additions and 436 deletions
|
@ -4,15 +4,20 @@ from PyQt5.QtCore import QSize
|
|||
|
||||
from UM.Application import Application
|
||||
|
||||
|
||||
class CameraImageProvider(QQuickImageProvider):
|
||||
def __init__(self):
|
||||
QQuickImageProvider.__init__(self, QQuickImageProvider.Image)
|
||||
super().__init__(QQuickImageProvider.Image)
|
||||
|
||||
## Request a new image.
|
||||
def requestImage(self, id, size):
|
||||
for output_device in Application.getInstance().getOutputDeviceManager().getOutputDevices():
|
||||
try:
|
||||
return output_device.activePrinter.camera.getImage(), QSize(15, 15)
|
||||
image = output_device.activePrinter.camera.getImage()
|
||||
if image.isNull():
|
||||
image = QImage()
|
||||
|
||||
return image, QSize(15, 15)
|
||||
except AttributeError:
|
||||
pass
|
||||
return QImage(), QSize(15, 15)
|
||||
return QImage(), QSize(15, 15)
|
||||
|
|
|
@ -229,6 +229,8 @@ class CuraApplication(QtApplication):
|
|||
|
||||
self._sidebar_custom_menu_items = [] # type: list # Keeps list of custom menu items for the side bar
|
||||
|
||||
self._plugins_loaded = False
|
||||
|
||||
# Backups
|
||||
self._auto_save = None
|
||||
self._save_data_enabled = True
|
||||
|
@ -1609,8 +1611,7 @@ class CuraApplication(QtApplication):
|
|||
self._currently_loading_files.remove(file_name)
|
||||
|
||||
self.fileLoaded.emit(file_name)
|
||||
arrange_objects_on_load = not self.getPreferences().getValue("cura/use_multi_build_plate")
|
||||
target_build_plate = self.getMultiBuildPlateModel().activeBuildPlate if arrange_objects_on_load else -1
|
||||
target_build_plate = self.getMultiBuildPlateModel().activeBuildPlate
|
||||
|
||||
root = self.getController().getScene().getRoot()
|
||||
fixed_nodes = []
|
||||
|
@ -1664,7 +1665,7 @@ class CuraApplication(QtApplication):
|
|||
if not child.getDecorator(ConvexHullDecorator):
|
||||
child.addDecorator(ConvexHullDecorator())
|
||||
|
||||
if file_extension != "3mf" and arrange_objects_on_load:
|
||||
if file_extension != "3mf":
|
||||
if node.callDecoration("isSliceable"):
|
||||
# Only check position if it's not already blatantly obvious that it won't fit.
|
||||
if node.getBoundingBox() is None or self._volume.getBoundingBox() is None or node.getBoundingBox().width < self._volume.getBoundingBox().width or node.getBoundingBox().depth < self._volume.getBoundingBox().depth:
|
||||
|
|
|
@ -267,6 +267,7 @@ class PrintInformation(QObject):
|
|||
new_active_build_plate = self._multi_build_plate_model.activeBuildPlate
|
||||
if new_active_build_plate != self._active_build_plate:
|
||||
self._active_build_plate = new_active_build_plate
|
||||
self._updateJobName()
|
||||
|
||||
self._initVariablesWithBuildPlate(self._active_build_plate)
|
||||
|
||||
|
@ -320,6 +321,15 @@ class PrintInformation(QObject):
|
|||
else:
|
||||
self._job_name = base_name
|
||||
|
||||
# In case there are several buildplates, a suffix is attached
|
||||
if self._multi_build_plate_model.maxBuildPlate > 0:
|
||||
connector = "_#"
|
||||
suffix = connector + str(self._active_build_plate + 1)
|
||||
if connector in self._job_name:
|
||||
self._job_name = self._job_name.split(connector)[0] # get the real name
|
||||
if self._active_build_plate != 0:
|
||||
self._job_name += suffix
|
||||
|
||||
self.jobNameChanged.emit()
|
||||
|
||||
@pyqtSlot(str)
|
||||
|
|
|
@ -120,7 +120,7 @@ class PrinterOutputModel(QObject):
|
|||
|
||||
@pyqtProperty(QVariant, notify = headPositionChanged)
|
||||
def headPosition(self):
|
||||
return {"x": self._head_position.x, "y": self._head_position.y, "z": self.head_position_z}
|
||||
return {"x": self._head_position.x, "y": self._head_position.y, "z": self.head_position.z}
|
||||
|
||||
def updateHeadPosition(self, x, y, z):
|
||||
if self._head_position.x != x or self._head_position.y != y or self._head_position.z != z:
|
||||
|
|
|
@ -1455,9 +1455,14 @@ class MachineManager(QObject):
|
|||
if quality_group.node_for_global is None:
|
||||
Logger.log("e", "Could not set quality group [%s] because it has no node_for_global", str(quality_group))
|
||||
return
|
||||
# This is not changing the quality for the active machine !!!!!!!!
|
||||
global_stack.quality = quality_group.node_for_global.getContainer()
|
||||
for extruder_nr, extruder_stack in global_stack.extruders.items():
|
||||
extruder_stack.quality = quality_group.nodes_for_extruders[extruder_nr].getContainer()
|
||||
quality_container = self._empty_quality_container
|
||||
if extruder_nr in quality_group.nodes_for_extruders:
|
||||
container = quality_group.nodes_for_extruders[extruder_nr].getContainer()
|
||||
quality_container = container if container is not None else quality_container
|
||||
extruder_stack.quality = quality_container
|
||||
return
|
||||
|
||||
self.blurSettings.emit()
|
||||
|
|
|
@ -131,6 +131,7 @@ faulthandler.enable(all_threads = True)
|
|||
# first seems to prevent Sip from going into a state where it
|
||||
# tries to create PyQt objects on a non-main thread.
|
||||
import Arcus #@UnusedImport
|
||||
import Savitar #@UnusedImport
|
||||
from cura.CuraApplication import CuraApplication
|
||||
|
||||
app = CuraApplication()
|
||||
|
|
|
@ -25,6 +25,9 @@ except ImportError:
|
|||
import zipfile
|
||||
import UM.Application
|
||||
|
||||
from UM.i18n import i18nCatalog
|
||||
catalog = i18nCatalog("cura")
|
||||
|
||||
|
||||
class ThreeMFWriter(MeshWriter):
|
||||
def __init__(self):
|
||||
|
@ -173,6 +176,7 @@ class ThreeMFWriter(MeshWriter):
|
|||
archive.writestr(relations_file, b'<?xml version="1.0" encoding="UTF-8"?> \n' + ET.tostring(relations_element))
|
||||
except Exception as e:
|
||||
Logger.logException("e", "Error writing zip file")
|
||||
self.setInformation(catalog.i18nc("@error:zip", "Error writing 3mf file."))
|
||||
return False
|
||||
finally:
|
||||
if not self._store_archive:
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
# Copyright (c) 2018 Ultimaker B.V.
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
import argparse #To run the engine in debug mode if the front-end is in debug mode.
|
||||
from collections import defaultdict
|
||||
import os
|
||||
from PyQt5.QtCore import QObject, QTimer, pyqtSlot
|
||||
|
@ -179,7 +180,15 @@ class CuraEngineBackend(QObject, Backend):
|
|||
# \return list of commands and args / parameters.
|
||||
def getEngineCommand(self) -> List[str]:
|
||||
json_path = Resources.getPath(Resources.DefinitionContainers, "fdmprinter.def.json")
|
||||
return [self._application.getPreferences().getValue("backend/location"), "connect", "127.0.0.1:{0}".format(self._port), "-j", json_path, ""]
|
||||
command = [self._application.getPreferences().getValue("backend/location"), "connect", "127.0.0.1:{0}".format(self._port), "-j", json_path, ""]
|
||||
|
||||
parser = argparse.ArgumentParser(prog = "cura", add_help = False)
|
||||
parser.add_argument("--debug", action = "store_true", default = False, help = "Turn on the debug mode by setting this option.")
|
||||
known_args = vars(parser.parse_known_args()[0])
|
||||
if known_args["debug"]:
|
||||
command.append("-vvv")
|
||||
|
||||
return command
|
||||
|
||||
## Emitted when we get a message containing print duration and material amount.
|
||||
# This also implies the slicing has finished.
|
||||
|
@ -541,6 +550,9 @@ class CuraEngineBackend(QObject, Backend):
|
|||
|
||||
## Remove old layer data (if any)
|
||||
def _clearLayerData(self, build_plate_numbers: Set = None) -> None:
|
||||
# Clear out any old gcode
|
||||
self._scene.gcode_dict = {} # type: ignore
|
||||
|
||||
for node in DepthFirstIterator(self._scene.getRoot()): #type: ignore #Ignore type error because iter() should get called automatically by Python syntax.
|
||||
if node.callDecoration("getLayerData"):
|
||||
if not build_plate_numbers or node.callDecoration("getBuildPlateNumber") in build_plate_numbers:
|
||||
|
|
|
@ -41,7 +41,7 @@ class StartJobResult(IntEnum):
|
|||
|
||||
## Formatter class that handles token expansion in start/end gcode
|
||||
class GcodeStartEndFormatter(Formatter):
|
||||
def get_value(self, key: str, *args: str, default_extruder_nr: str = "-1", **kwargs) -> str: #type: ignore # [CodeStyle: get_value is an overridden function from the Formatter class]
|
||||
def get_value(self, key: str, args: str, kwargs: dict, default_extruder_nr: str = "-1") -> str: #type: ignore # [CodeStyle: get_value is an overridden function from the Formatter class]
|
||||
# The kwargs dictionary contains a dictionary for each stack (with a string of the extruder_nr as their key),
|
||||
# and a default_extruder_nr to use when no extruder_nr is specified
|
||||
|
||||
|
|
|
@ -10,6 +10,9 @@ from UM.Mesh.MeshWriter import MeshWriter #The class we're extending/implementin
|
|||
from UM.PluginRegistry import PluginRegistry
|
||||
from UM.Scene.SceneNode import SceneNode #For typing.
|
||||
|
||||
from UM.i18n import i18nCatalog
|
||||
catalog = i18nCatalog("cura")
|
||||
|
||||
## A file writer that writes gzipped g-code.
|
||||
#
|
||||
# If you're zipping g-code, you might as well use gzip!
|
||||
|
@ -28,12 +31,15 @@ class GCodeGzWriter(MeshWriter):
|
|||
def write(self, stream: BufferedIOBase, nodes: List[SceneNode], mode = MeshWriter.OutputMode.BinaryMode) -> bool:
|
||||
if mode != MeshWriter.OutputMode.BinaryMode:
|
||||
Logger.log("e", "GCodeGzWriter does not support text mode.")
|
||||
self.setInformation(catalog.i18nc("@error:not supported", "GCodeGzWriter does not support text mode."))
|
||||
return False
|
||||
|
||||
#Get the g-code from the g-code writer.
|
||||
gcode_textio = StringIO() #We have to convert the g-code into bytes.
|
||||
success = cast(MeshWriter, PluginRegistry.getInstance().getPluginObject("GCodeWriter")).write(gcode_textio, None)
|
||||
gcode_writer = cast(MeshWriter, PluginRegistry.getInstance().getPluginObject("GCodeWriter"))
|
||||
success = gcode_writer.write(gcode_textio, None)
|
||||
if not success: #Writing the g-code failed. Then I can also not write the gzipped g-code.
|
||||
self.setInformation(gcode_writer.getInformation())
|
||||
return False
|
||||
|
||||
result = gzip.compress(gcode_textio.getvalue().encode("utf-8"))
|
||||
|
|
|
@ -12,6 +12,8 @@ from UM.Settings.InstanceContainer import InstanceContainer
|
|||
|
||||
from cura.Machines.QualityManager import getMachineDefinitionIDForQualitySearch
|
||||
|
||||
from UM.i18n import i18nCatalog
|
||||
catalog = i18nCatalog("cura")
|
||||
|
||||
## Writes g-code to a file.
|
||||
#
|
||||
|
@ -62,11 +64,13 @@ class GCodeWriter(MeshWriter):
|
|||
def write(self, stream, nodes, mode = MeshWriter.OutputMode.TextMode):
|
||||
if mode != MeshWriter.OutputMode.TextMode:
|
||||
Logger.log("e", "GCodeWriter does not support non-text mode.")
|
||||
self.setInformation(catalog.i18nc("@error:not supported", "GCodeWriter does not support non-text mode."))
|
||||
return False
|
||||
|
||||
active_build_plate = Application.getInstance().getMultiBuildPlateModel().activeBuildPlate
|
||||
scene = Application.getInstance().getController().getScene()
|
||||
if not hasattr(scene, "gcode_dict"):
|
||||
self.setInformation(catalog.i18nc("@warning:status", "Please generate G-code before saving."))
|
||||
return False
|
||||
gcode_dict = getattr(scene, "gcode_dict")
|
||||
gcode_list = gcode_dict.get(active_build_plate, None)
|
||||
|
@ -82,6 +86,7 @@ class GCodeWriter(MeshWriter):
|
|||
stream.write(settings)
|
||||
return True
|
||||
|
||||
self.setInformation(catalog.i18nc("@warning:status", "Please generate G-code before saving."))
|
||||
return False
|
||||
|
||||
## Create a new container with container 2 as base and container 1 written over it.
|
||||
|
|
|
@ -62,13 +62,12 @@ class GCodeStep():
|
|||
delta_step_y = _getValue(line, "Y", 0)
|
||||
delta_step_z = _getValue(line, "Z", 0)
|
||||
delta_step_e = _getValue(line, "E", 0)
|
||||
delta_step_f = _getValue(line, "F", 0)
|
||||
|
||||
self.step_x += delta_step_x
|
||||
self.step_y += delta_step_y
|
||||
self.step_z += delta_step_z
|
||||
self.step_e += delta_step_e
|
||||
self.step_f += delta_step_f
|
||||
self.step_f = _getValue(line, "F", self.step_f) # the feedrate is not relative
|
||||
|
||||
def copyPosFrom(self, step):
|
||||
"""
|
||||
|
|
|
@ -40,33 +40,37 @@ Item {
|
|||
|
||||
property bool layersVisible: true
|
||||
|
||||
function getUpperValueFromSliderHandle () {
|
||||
function getUpperValueFromSliderHandle() {
|
||||
return upperHandle.getValue()
|
||||
}
|
||||
|
||||
function setUpperValue (value) {
|
||||
function setUpperValue(value) {
|
||||
upperHandle.setValue(value)
|
||||
updateRangeHandle()
|
||||
}
|
||||
|
||||
function getLowerValueFromSliderHandle () {
|
||||
function getLowerValueFromSliderHandle() {
|
||||
return lowerHandle.getValue()
|
||||
}
|
||||
|
||||
function setLowerValue (value) {
|
||||
function setLowerValue(value) {
|
||||
lowerHandle.setValue(value)
|
||||
updateRangeHandle()
|
||||
}
|
||||
|
||||
function updateRangeHandle () {
|
||||
function updateRangeHandle() {
|
||||
rangeHandle.height = lowerHandle.y - (upperHandle.y + upperHandle.height)
|
||||
}
|
||||
|
||||
// set the active handle to show only one label at a time
|
||||
function setActiveHandle (handle) {
|
||||
function setActiveHandle(handle) {
|
||||
activeHandle = handle
|
||||
}
|
||||
|
||||
function normalizeValue(value) {
|
||||
return Math.min(Math.max(value, sliderRoot.minimumValue), sliderRoot.maximumValue)
|
||||
}
|
||||
|
||||
// slider track
|
||||
Rectangle {
|
||||
id: track
|
||||
|
@ -188,6 +192,8 @@ Item {
|
|||
|
||||
// set the slider position based on the upper value
|
||||
function setValue (value) {
|
||||
// Normalize values between range, since using arrow keys will create out-of-the-range values
|
||||
value = sliderRoot.normalizeValue(value)
|
||||
|
||||
UM.SimulationView.setCurrentLayer(value)
|
||||
|
||||
|
@ -274,6 +280,8 @@ Item {
|
|||
|
||||
// set the slider position based on the lower value
|
||||
function setValue (value) {
|
||||
// Normalize values between range, since using arrow keys will create out-of-the-range values
|
||||
value = sliderRoot.normalizeValue(value)
|
||||
|
||||
UM.SimulationView.setMinimumLayer(value)
|
||||
|
||||
|
|
|
@ -29,6 +29,7 @@ Item {
|
|||
|
||||
// value properties
|
||||
property real maximumValue: 100
|
||||
property real minimumValue: 0
|
||||
property bool roundValues: true
|
||||
property real handleValue: maximumValue
|
||||
|
||||
|
@ -47,6 +48,10 @@ Item {
|
|||
rangeHandle.width = handle.x - sliderRoot.handleSize
|
||||
}
|
||||
|
||||
function normalizeValue(value) {
|
||||
return Math.min(Math.max(value, sliderRoot.minimumValue), sliderRoot.maximumValue)
|
||||
}
|
||||
|
||||
// slider track
|
||||
Rectangle {
|
||||
id: track
|
||||
|
@ -110,6 +115,8 @@ Item {
|
|||
|
||||
// set the slider position based on the value
|
||||
function setValue (value) {
|
||||
// Normalize values between range, since using arrow keys will create out-of-the-range values
|
||||
value = sliderRoot.normalizeValue(value)
|
||||
|
||||
UM.SimulationView.setCurrentPath(value)
|
||||
|
||||
|
|
|
@ -25,10 +25,6 @@ UM.PointingRectangle {
|
|||
width: valueLabel.width + UM.Theme.getSize("default_margin").width
|
||||
visible: false
|
||||
|
||||
// make sure the text field is focussed when pressing the parent handle
|
||||
// needed to connect the key bindings when switching active handle
|
||||
onVisibleChanged: if (visible) valueLabel.forceActiveFocus()
|
||||
|
||||
color: UM.Theme.getColor("tool_panel_background")
|
||||
borderColor: UM.Theme.getColor("lining")
|
||||
borderWidth: UM.Theme.getSize("default_lining").width
|
||||
|
|
|
@ -28,7 +28,7 @@ from UM.Settings.SettingInstance import SettingInstance
|
|||
class SupportEraser(Tool):
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self._shortcut_key = Qt.Key_G
|
||||
self._shortcut_key = Qt.Key_E
|
||||
self._controller = self.getController()
|
||||
|
||||
self._selection_pass = None
|
||||
|
|
|
@ -29,6 +29,16 @@ Item
|
|||
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
||||
width: parent.width
|
||||
frameVisible: false
|
||||
|
||||
// Workaround for scroll issues (QTBUG-49652)
|
||||
flickableItem.interactive: false
|
||||
Component.onCompleted:
|
||||
{
|
||||
for (var i = 0; i < flickableItem.children.length; ++i)
|
||||
{
|
||||
flickableItem.children[i].enabled = false
|
||||
}
|
||||
}
|
||||
selectionMode: 0
|
||||
model: packageData.supported_configs
|
||||
headerDelegate: Rectangle
|
||||
|
|
|
@ -114,7 +114,10 @@ Item
|
|||
else
|
||||
{
|
||||
toolbox.viewPage = "author"
|
||||
toolbox.filterModelByProp("packages", "author_id", model.id)
|
||||
toolbox.setFilters("packages", {
|
||||
"author_id": model.id,
|
||||
"type": "material"
|
||||
})
|
||||
}
|
||||
break
|
||||
default:
|
||||
|
|
|
@ -105,8 +105,21 @@ Rectangle
|
|||
switch(toolbox.viewCategory)
|
||||
{
|
||||
case "material":
|
||||
toolbox.viewPage = "author"
|
||||
toolbox.filterModelByProp("packages", "author_name", model.name)
|
||||
|
||||
// If model has a type, it must be a package
|
||||
if (model.type !== undefined)
|
||||
{
|
||||
toolbox.viewPage = "detail"
|
||||
toolbox.filterModelByProp("packages", "id", model.id)
|
||||
}
|
||||
else
|
||||
{
|
||||
toolbox.viewPage = "author"
|
||||
toolbox.setFilters("packages", {
|
||||
"author_id": model.id,
|
||||
"type": "material"
|
||||
})
|
||||
}
|
||||
break
|
||||
default:
|
||||
toolbox.viewPage = "detail"
|
||||
|
|
|
@ -28,7 +28,7 @@ class PackagesModel(ListModel):
|
|||
self.addRoleName(Qt.UserRole + 11, "download_url")
|
||||
self.addRoleName(Qt.UserRole + 12, "last_updated")
|
||||
self.addRoleName(Qt.UserRole + 13, "is_bundled")
|
||||
self.addRoleName(Qt.UserRole + 14, "is_enabled")
|
||||
self.addRoleName(Qt.UserRole + 14, "is_active")
|
||||
self.addRoleName(Qt.UserRole + 15, "is_installed") # Scheduled pkgs are included in the model but should not be marked as actually installed
|
||||
self.addRoleName(Qt.UserRole + 16, "has_configs")
|
||||
self.addRoleName(Qt.UserRole + 17, "supported_configs")
|
||||
|
@ -75,7 +75,7 @@ class PackagesModel(ListModel):
|
|||
"download_url": package["download_url"] if "download_url" in package else None,
|
||||
"last_updated": package["last_updated"] if "last_updated" in package else None,
|
||||
"is_bundled": package["is_bundled"] if "is_bundled" in package else False,
|
||||
"is_enabled": package["is_enabled"] if "is_enabled" in package else False,
|
||||
"is_active": package["is_active"] if "is_active" in package else False,
|
||||
"is_installed": package["is_installed"] if "is_installed" in package else False,
|
||||
"has_configs": has_configs,
|
||||
"supported_configs": configs_model,
|
||||
|
|
|
@ -776,17 +776,25 @@ class Toolbox(QObject, Extension):
|
|||
# Filter Models:
|
||||
# --------------------------------------------------------------------------
|
||||
@pyqtSlot(str, str, str)
|
||||
def filterModelByProp(self, modelType: str, filterType: str, parameter: str):
|
||||
if not self._models[modelType]:
|
||||
Logger.log("w", "Toolbox: Couldn't filter %s model because it doesn't exist.", modelType)
|
||||
def filterModelByProp(self, model_type: str, filter_type: str, parameter: str) -> None:
|
||||
if not self._models[model_type]:
|
||||
Logger.log("w", "Toolbox: Couldn't filter %s model because it doesn't exist.", model_type)
|
||||
return
|
||||
self._models[modelType].setFilter({ filterType: parameter })
|
||||
self._models[model_type].setFilter({filter_type: parameter})
|
||||
self.filterChanged.emit()
|
||||
|
||||
@pyqtSlot()
|
||||
def removeFilters(self, modelType: str):
|
||||
if not self._models[modelType]:
|
||||
Logger.log("w", "Toolbox: Couldn't remove filters on %s model because it doesn't exist.", modelType)
|
||||
@pyqtSlot(str, "QVariantMap")
|
||||
def setFilters(self, model_type: str, filter_dict: dict) -> None:
|
||||
if not self._models[model_type]:
|
||||
Logger.log("w", "Toolbox: Couldn't filter %s model because it doesn't exist.", model_type)
|
||||
return
|
||||
self._models[modelType].setFilter({})
|
||||
self._models[model_type].setFilter(filter_dict)
|
||||
self.filterChanged.emit()
|
||||
|
||||
@pyqtSlot(str)
|
||||
def removeFilters(self, model_type: str) -> None:
|
||||
if not self._models[model_type]:
|
||||
Logger.log("w", "Toolbox: Couldn't remove filters on %s model because it doesn't exist.", model_type)
|
||||
return
|
||||
self._models[model_type].setFilter({})
|
||||
self.filterChanged.emit()
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
#Copyright (c) 2018 Ultimaker B.V.
|
||||
#Cura is released under the terms of the LGPLv3 or higher.
|
||||
from typing import cast
|
||||
|
||||
from Charon.VirtualFile import VirtualFile #To open UFP files.
|
||||
from Charon.OpenMode import OpenMode #To indicate that we want to write to UFP files.
|
||||
|
@ -13,6 +14,9 @@ from PyQt5.QtCore import QBuffer
|
|||
|
||||
from cura.Snapshot import Snapshot
|
||||
|
||||
from UM.i18n import i18nCatalog
|
||||
catalog = i18nCatalog("cura")
|
||||
|
||||
|
||||
class UFPWriter(MeshWriter):
|
||||
def __init__(self):
|
||||
|
@ -32,7 +36,11 @@ class UFPWriter(MeshWriter):
|
|||
#Store the g-code from the scene.
|
||||
archive.addContentType(extension = "gcode", mime_type = "text/x-gcode")
|
||||
gcode_textio = StringIO() #We have to convert the g-code into bytes.
|
||||
PluginRegistry.getInstance().getPluginObject("GCodeWriter").write(gcode_textio, None)
|
||||
gcode_writer = cast(MeshWriter, PluginRegistry.getInstance().getPluginObject("GCodeWriter"))
|
||||
success = gcode_writer.write(gcode_textio, None)
|
||||
if not success: #Writing the g-code failed. Then I can also not write the gzipped g-code.
|
||||
self.setInformation(gcode_writer.getInformation())
|
||||
return False
|
||||
gcode = archive.getStream("/3D/model.gcode")
|
||||
gcode.write(gcode_textio.getvalue().encode("UTF-8"))
|
||||
archive.addRelation(virtual_path = "/3D/model.gcode", relation_type = "http://schemas.ultimaker.org/package/2018/relationships/gcode")
|
||||
|
|
|
@ -30,7 +30,12 @@ Component
|
|||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
||||
anchors.top: parent.top
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: UM.Theme.getSize("default_margin").width
|
||||
anchors.right:parent.right
|
||||
anchors.rightMargin: UM.Theme.getSize("default_margin").width
|
||||
text: Cura.MachineManager.printerOutputDevices[0].name
|
||||
elide: Text.ElideRight
|
||||
}
|
||||
|
||||
Rectangle
|
||||
|
|
|
@ -9,6 +9,7 @@ Component
|
|||
{
|
||||
Rectangle
|
||||
{
|
||||
id: monitorFrame
|
||||
width: maximumWidth
|
||||
height: maximumHeight
|
||||
color: UM.Theme.getColor("viewport_background")
|
||||
|
@ -103,5 +104,15 @@ Component
|
|||
visible: OutputDevice.activePrinter != null
|
||||
anchors.fill:parent
|
||||
}
|
||||
|
||||
onVisibleChanged:
|
||||
{
|
||||
if (!monitorFrame.visible)
|
||||
{
|
||||
// After switching the Tab ensure that active printer is Null, the video stream image
|
||||
// might be active
|
||||
OutputDevice.setActivePrinter(null)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -299,11 +299,11 @@ Cura.MachineAction
|
|||
}
|
||||
else if (base.selectedDevice.clusterSize === 0)
|
||||
{
|
||||
return catalog.i18nc("@label", "This printer is not set up to host a group of Ultimaker 3 printers.");
|
||||
return catalog.i18nc("@label", "This printer is not set up to host a group of printers.");
|
||||
}
|
||||
else
|
||||
{
|
||||
return catalog.i18nc("@label", "This printer is the host for a group of %1 Ultimaker 3 printers.".arg(base.selectedDevice.clusterSize));
|
||||
return catalog.i18nc("@label", "This printer is the host for a group of %1 printers.".arg(base.selectedDevice.clusterSize));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -349,11 +349,6 @@ Cura.MachineAction
|
|||
addressField.focus = true;
|
||||
}
|
||||
|
||||
onAccepted:
|
||||
{
|
||||
manager.setManualDevice(printerKey, addressText)
|
||||
}
|
||||
|
||||
Column {
|
||||
anchors.fill: parent
|
||||
spacing: UM.Theme.getSize("default_margin").height
|
||||
|
@ -393,7 +388,7 @@ Cura.MachineAction
|
|||
text: catalog.i18nc("@action:button", "OK")
|
||||
onClicked:
|
||||
{
|
||||
manualPrinterDialog.accept()
|
||||
manager.setManualDevice(manualPrinterDialog.printerKey, manualPrinterDialog.addressText)
|
||||
manualPrinterDialog.hide()
|
||||
}
|
||||
enabled: manualPrinterDialog.addressText.trim() != ""
|
||||
|
|
|
@ -89,9 +89,11 @@ Item
|
|||
|
||||
MouseArea
|
||||
{
|
||||
anchors.fill: cameraImage
|
||||
onClicked: { /* no-op */ }
|
||||
z: 1
|
||||
anchors.fill: cameraImage
|
||||
onClicked:
|
||||
{
|
||||
OutputDevice.setActivePrinter(null)
|
||||
}
|
||||
z: 1
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -39,12 +39,12 @@ class SendMaterialJob(Job):
|
|||
try:
|
||||
remote_materials_list = json.loads(remote_materials_list)
|
||||
except json.JSONDecodeError:
|
||||
Logger.log("e", "Current material storage on printer was a corrupted reply.")
|
||||
Logger.log("e", "Request material storage on printer: I didn't understand the printer's answer.")
|
||||
return
|
||||
try:
|
||||
remote_materials_by_guid = {material["guid"]: material for material in remote_materials_list} #Index by GUID.
|
||||
except KeyError:
|
||||
Logger.log("e", "Current material storage on printer was an invalid reply (missing GUIDs).")
|
||||
Logger.log("e", "Request material storage on printer: Printer's answer was missing GUIDs.")
|
||||
return
|
||||
|
||||
container_registry = ContainerRegistry.getInstance()
|
||||
|
|
|
@ -198,7 +198,7 @@ class UM3OutputDevicePlugin(OutputDevicePlugin):
|
|||
has_cluster_capable_firmware = Version(system_info["firmware"]) > self._min_cluster_version
|
||||
instance_name = "manual:%s" % address
|
||||
properties = {
|
||||
b"name": system_info["name"].encode("utf-8"),
|
||||
b"name": (system_info["name"] + " (manual)").encode("utf-8"),
|
||||
b"address": address.encode("utf-8"),
|
||||
b"firmware_version": system_info["firmware"].encode("utf-8"),
|
||||
b"manual": b"true",
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Copyright (c) 2017 Ultimaker B.V.
|
||||
# Copyright (c) 2018 Ultimaker B.V.
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
from UM.Job import Job
|
||||
|
@ -21,7 +21,6 @@ class AutoDetectBaudJob(Job):
|
|||
|
||||
def run(self):
|
||||
Logger.log("d", "Auto detect baud rate started.")
|
||||
timeout = 3
|
||||
wait_response_timeouts = [3, 15, 30]
|
||||
wait_bootloader_times = [1.5, 5, 15]
|
||||
write_timeout = 3
|
||||
|
@ -52,7 +51,7 @@ class AutoDetectBaudJob(Job):
|
|||
if serial is None:
|
||||
try:
|
||||
serial = Serial(str(self._serial_port), baud_rate, timeout = read_timeout, writeTimeout = write_timeout)
|
||||
except SerialException as e:
|
||||
except SerialException:
|
||||
Logger.logException("w", "Unable to create serial")
|
||||
continue
|
||||
else:
|
||||
|
|
|
@ -15,7 +15,7 @@ from cura.PrinterOutput.GenericOutputController import GenericOutputController
|
|||
from .AutoDetectBaudJob import AutoDetectBaudJob
|
||||
from .avr_isp import stk500v2, intelHex
|
||||
|
||||
from PyQt5.QtCore import pyqtSlot, pyqtSignal, pyqtProperty
|
||||
from PyQt5.QtCore import pyqtSlot, pyqtSignal, pyqtProperty, QUrl
|
||||
|
||||
from serial import Serial, SerialException, SerialTimeoutException
|
||||
from threading import Thread, Event
|
||||
|
@ -146,8 +146,11 @@ class USBPrinterOutputDevice(PrinterOutputDevice):
|
|||
|
||||
@pyqtSlot(str)
|
||||
def updateFirmware(self, file):
|
||||
# the file path is qurl encoded.
|
||||
self._firmware_location = file.replace("file://", "")
|
||||
# the file path could be url-encoded.
|
||||
if file.startswith("file://"):
|
||||
self._firmware_location = QUrl(file).toLocalFile()
|
||||
else:
|
||||
self._firmware_location = file
|
||||
self.showFirmwareInterface()
|
||||
self.setFirmwareUpdateState(FirmwareUpdateState.updating)
|
||||
self._update_firmware_thread.start()
|
||||
|
|
|
@ -662,6 +662,23 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"VersionUpgrade34to40": {
|
||||
"package_info": {
|
||||
"package_id": "VersionUpgrade34to40",
|
||||
"package_type": "plugin",
|
||||
"display_name": "Version Upgrade 3.4 to 4.0",
|
||||
"description": "Upgrades configurations from Cura 3.4 to Cura 4.0.",
|
||||
"package_version": "1.0.0",
|
||||
"sdk_version": 4,
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "Ultimaker",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
}
|
||||
},
|
||||
"X3DReader": {
|
||||
"package_info": {
|
||||
"package_id": "X3DReader",
|
||||
|
@ -1366,277 +1383,5 @@
|
|||
"website": "https://www.vellemanprojects.eu"
|
||||
}
|
||||
}
|
||||
},
|
||||
"ConsoleLogger": {
|
||||
"package_info": {
|
||||
"package_id": "ConsoleLogger",
|
||||
"package_type": "plugin",
|
||||
"display_name": "Console Logger",
|
||||
"description": "Outputs log information to the console.",
|
||||
"package_version": "1.0.0",
|
||||
"sdk_version": 4,
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "Ultimaker",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
}
|
||||
},
|
||||
"OBJReader": {
|
||||
"package_info": {
|
||||
"package_id": "OBJReader",
|
||||
"package_type": "plugin",
|
||||
"display_name": "Wavefront OBJ Reader",
|
||||
"description": "Makes it possible to read Wavefront OBJ files.",
|
||||
"package_version": "1.0.0",
|
||||
"sdk_version": 4,
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "Ultimaker",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
}
|
||||
},
|
||||
"OBJWriter": {
|
||||
"package_info": {
|
||||
"package_id": "OBJWriter",
|
||||
"package_type": "plugin",
|
||||
"display_name": "Wavefront OBJ Writer",
|
||||
"description": "Makes it possible to write Wavefront OBJ files.",
|
||||
"package_version": "1.0.0",
|
||||
"sdk_version": 4,
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "Ultimaker",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
}
|
||||
},
|
||||
"STLReader": {
|
||||
"package_info": {
|
||||
"package_id": "STLReader",
|
||||
"package_type": "plugin",
|
||||
"display_name": "STL Reader",
|
||||
"description": "Provides support for reading STL files.",
|
||||
"package_version": "1.0.0",
|
||||
"sdk_version": 4,
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "Ultimaker",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
}
|
||||
},
|
||||
"STLWriter": {
|
||||
"package_info": {
|
||||
"package_id": "STLWriter",
|
||||
"package_type": "plugin",
|
||||
"display_name": "STL Writer",
|
||||
"description": "Provides support for writing STL files.",
|
||||
"package_version": "1.0.0",
|
||||
"sdk_version": 4,
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "Ultimaker",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
}
|
||||
},
|
||||
"FileLogger": {
|
||||
"package_info": {
|
||||
"package_id": "FileLogger",
|
||||
"package_type": "plugin",
|
||||
"display_name": "File Logger",
|
||||
"description": "Outputs log information to a file in your settings folder.",
|
||||
"package_version": "1.0.0",
|
||||
"sdk_version": 4,
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "Ultimaker",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
}
|
||||
},
|
||||
"LocalContainerProvider": {
|
||||
"package_info": {
|
||||
"package_id": "LocalContainerProvider",
|
||||
"package_type": "plugin",
|
||||
"display_name": "Local Container Provider",
|
||||
"description": "Provides built-in setting containers that come with the installation of the application.",
|
||||
"package_version": "1.0.0",
|
||||
"sdk_version": 4,
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "Ultimaker",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
}
|
||||
},
|
||||
"LocalFileOutputDevice": {
|
||||
"package_info": {
|
||||
"package_id": "LocalFileOutputDevice",
|
||||
"package_type": "plugin",
|
||||
"display_name": "Local File Output Device",
|
||||
"description": "Enables saving to local files.",
|
||||
"package_version": "1.0.0",
|
||||
"sdk_version": 4,
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "Ultimaker",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
}
|
||||
},
|
||||
"CameraTool": {
|
||||
"package_info": {
|
||||
"package_id": "CameraTool",
|
||||
"package_type": "plugin",
|
||||
"display_name": "Camera Tool",
|
||||
"description": "Provides the tool to manipulate the camera.",
|
||||
"package_version": "1.0.0",
|
||||
"sdk_version": 4,
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "Ultimaker",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
}
|
||||
},
|
||||
"MirrorTool": {
|
||||
"package_info": {
|
||||
"package_id": "MirrorTool",
|
||||
"package_type": "plugin",
|
||||
"display_name": "Mirror Tool",
|
||||
"description": "Provides the Mirror tool.",
|
||||
"package_version": "1.0.0",
|
||||
"sdk_version": 4,
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "Ultimaker",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
}
|
||||
},
|
||||
"RotateTool": {
|
||||
"package_info": {
|
||||
"package_id": "RotateTool",
|
||||
"package_type": "plugin",
|
||||
"display_name": "Rotate Tool",
|
||||
"description": "Provides the Rotate tool.",
|
||||
"package_version": "1.0.0",
|
||||
"sdk_version": 4,
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "Ultimaker",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
}
|
||||
},
|
||||
"ScaleTool": {
|
||||
"package_info": {
|
||||
"package_id": "ScaleTool",
|
||||
"package_type": "plugin",
|
||||
"display_name": "Scale Tool",
|
||||
"description": "Provides the Scale tool.",
|
||||
"package_version": "1.0.0",
|
||||
"sdk_version": 4,
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "Ultimaker",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
}
|
||||
},
|
||||
"SelectionTool": {
|
||||
"package_info": {
|
||||
"package_id": "SelectionTool",
|
||||
"package_type": "plugin",
|
||||
"display_name": "Selection Tool",
|
||||
"description": "Provides the Selection tool.",
|
||||
"package_version": "1.0.0",
|
||||
"sdk_version": 4,
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "Ultimaker",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
}
|
||||
},
|
||||
"TranslateTool": {
|
||||
"package_info": {
|
||||
"package_id": "TranslateTool",
|
||||
"package_type": "plugin",
|
||||
"display_name": "Move Tool",
|
||||
"description": "Provides the Move tool.",
|
||||
"package_version": "1.0.0",
|
||||
"sdk_version": 4,
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "Ultimaker",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
}
|
||||
},
|
||||
"UpdateChecker": {
|
||||
"package_info": {
|
||||
"package_id": "UpdateChecker",
|
||||
"package_type": "plugin",
|
||||
"display_name": "Update Checker",
|
||||
"description": "Checks for updates of the software.",
|
||||
"package_version": "1.0.0",
|
||||
"sdk_version": 4,
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "Ultimaker",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
}
|
||||
},
|
||||
"SimpleView": {
|
||||
"package_info": {
|
||||
"package_id": "SimpleView",
|
||||
"package_type": "plugin",
|
||||
"display_name": "Simple View",
|
||||
"description": "Provides a simple solid mesh view.",
|
||||
"package_version": "1.0.0",
|
||||
"sdk_version": 4,
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "Ultimaker",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,6 +9,8 @@
|
|||
"file_formats": "text/x-gcode",
|
||||
"platform": "discoeasy200.stl",
|
||||
"platform_offset": [ 105, -59, 280],
|
||||
"has_machine_quality": true,
|
||||
"has_materials": true,
|
||||
"machine_extruder_trains":
|
||||
{
|
||||
"0": "dagoma_discoeasy200_extruder_0"
|
||||
|
@ -29,32 +31,44 @@
|
|||
},
|
||||
"machine_head_with_fans_polygon": {
|
||||
"default_value": [
|
||||
[17, 70],
|
||||
[17, -40],
|
||||
[-17, -40],
|
||||
[17, 70]
|
||||
[-17, -70],
|
||||
[-17, 40],
|
||||
[17, 40],
|
||||
[17, -70]
|
||||
]
|
||||
},
|
||||
"gantry_height": {
|
||||
"default_value": 10
|
||||
},
|
||||
"machine_start_gcode": {
|
||||
"default_value": ";Gcode by Cura\nG90\nM106 S250\nG28 X Y\nG1 X50\nM109 S180\nG28\nM104 S{material_print_temperature_layer_0}\nG29\nM107\nG1 X100 Y20 F3000\nG1 Z0.5\nM109 S{material_print_temperature_layer_0}\nM82\nG92 E0\nG1 F200 E10\nG92 E0\nG1 Z3\nG1 F6000\n"
|
||||
"default_value": ";Gcode by Cura\nG90\nM106 S255\nG28 X Y\nG1 X50\nM109 R90\nG28\nM104 S{material_print_temperature_layer_0}\nG29\nM107\nG1 X100 Y20 F3000\nG1 Z0.5\nM109 S{material_print_temperature_layer_0}\nM82\nG92 E0\nG1 F200 E10\nG92 E0\nG1 Z3\nG1 F6000\n"
|
||||
},
|
||||
"machine_end_gcode": {
|
||||
"default_value": "\nM104 S0\nM106 S255\nM140 S0\nG91\nG1 E-1 F300\nG1 Z+3 F3000\nG90\nG28 X Y\nM107\nM84\n"
|
||||
},
|
||||
"default_material_print_temperature": {
|
||||
"default_value": 205
|
||||
},
|
||||
"speed_print": {
|
||||
"default_value": 60
|
||||
},
|
||||
"speed_travel": {
|
||||
"value": "100"
|
||||
"default_value": 100
|
||||
},
|
||||
"retraction_amount": {
|
||||
"default_value": 3.5
|
||||
},
|
||||
"retraction_speed": {
|
||||
"default_value": 50
|
||||
},
|
||||
"adhesion_type": {
|
||||
"default_value": "skirt"
|
||||
},
|
||||
"skirt_line_count": {
|
||||
"default_value": 2
|
||||
},
|
||||
"layer_height_0": {
|
||||
"default_value": 0.26
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
{
|
||||
"id": "Dagoma_neva",
|
||||
"name": "Dagoma NEVA",
|
||||
"version": 2,
|
||||
"inherits": "fdmprinter",
|
||||
|
@ -10,6 +9,8 @@
|
|||
"file_formats": "text/x-gcode",
|
||||
"platform": "neva.stl",
|
||||
"platform_offset": [ 0, 0, 0],
|
||||
"has_machine_quality": true,
|
||||
"has_materials": true,
|
||||
"machine_extruder_trains":
|
||||
{
|
||||
"0": "dagoma_neva_extruder_0"
|
||||
|
@ -30,10 +31,10 @@
|
|||
},
|
||||
"machine_head_with_fans_polygon": {
|
||||
"default_value": [
|
||||
[17, 40],
|
||||
[17, -70],
|
||||
[-17, -70],
|
||||
[17, 40]
|
||||
[-36, -42],
|
||||
[-36, 42],
|
||||
[36, 42],
|
||||
[36, -42]
|
||||
]
|
||||
},
|
||||
"gantry_height": {
|
||||
|
@ -43,14 +44,17 @@
|
|||
"default_value": "elliptic"
|
||||
},
|
||||
"machine_gcode_flavor": {
|
||||
"default_value": "RepRap (RepRap)"
|
||||
"default_value": "RepRap"
|
||||
},
|
||||
"machine_start_gcode": {
|
||||
"default_value": ";Gcode by Cura\nG90\nG28\nM109 S100\nG29\nM104 S{material_print_temperature_layer_0}\nG0 X0 Y-85\nG0 Z0.26\nM109 S{material_print_temperature_layer_0}\nM82\nG92 E0\nG1 F200 E6\nG92 E0\nG1 F200 E-3.5\nG0 Z0.15\nG0 X10\nG0 Z3\nG1 F6000\n"
|
||||
"default_value": ";Gcode by Cura\nG90\nG28\nM107\nM109 R100\nG29\nM109 S{material_print_temperature_layer_0} U-55 X55 V-85 Y-85 W0.26 Z0.26\nM82\nG92 E0\nG1 F200 E6\nG92 E0\nG1 F200 E-3.5\nG0 Z0.15\nG0 X10\nG0 Z3\nG1 F6000\n"
|
||||
},
|
||||
"machine_end_gcode": {
|
||||
"default_value": "\nM104 S0\nM106 S255\nM140 S0\nG91\nG1 E-1 F300\nG1 Z+3 E-2 F9000\nG90\nG28\n"
|
||||
},
|
||||
"default_material_print_temperature": {
|
||||
"default_value": 205
|
||||
},
|
||||
"speed_print": {
|
||||
"default_value": 40
|
||||
},
|
||||
|
@ -62,6 +66,15 @@
|
|||
},
|
||||
"retraction_speed": {
|
||||
"default_value": 60
|
||||
},
|
||||
"adhesion_type": {
|
||||
"default_value": "skirt"
|
||||
},
|
||||
"skirt_line_count": {
|
||||
"default_value": 2
|
||||
},
|
||||
"layer_height_0": {
|
||||
"default_value": 0.26
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
80
resources/definitions/dagoma_neva_magis.def.json
Normal file
80
resources/definitions/dagoma_neva_magis.def.json
Normal file
|
@ -0,0 +1,80 @@
|
|||
{
|
||||
"name": "Dagoma NEVA Magis",
|
||||
"version": 2,
|
||||
"inherits": "fdmprinter",
|
||||
"metadata": {
|
||||
"visible": true,
|
||||
"author": "Dagoma",
|
||||
"manufacturer": "Dagoma",
|
||||
"file_formats": "text/x-gcode",
|
||||
"platform": "neva.stl",
|
||||
"platform_offset": [ 0, 0, 0],
|
||||
"has_machine_quality": true,
|
||||
"has_materials": true,
|
||||
"machine_extruder_trains":
|
||||
{
|
||||
"0": "dagoma_neva_magis_extruder_0"
|
||||
}
|
||||
},
|
||||
"overrides": {
|
||||
"machine_width": {
|
||||
"default_value": 195.55
|
||||
},
|
||||
"machine_height": {
|
||||
"default_value": 205
|
||||
},
|
||||
"machine_depth": {
|
||||
"default_value": 195.55
|
||||
},
|
||||
"machine_center_is_zero": {
|
||||
"default_value": true
|
||||
},
|
||||
"machine_head_with_fans_polygon": {
|
||||
"default_value": [
|
||||
[-36, -42],
|
||||
[-36, 42],
|
||||
[36, 42],
|
||||
[36, -42]
|
||||
]
|
||||
},
|
||||
"gantry_height": {
|
||||
"default_value": 0
|
||||
},
|
||||
"machine_shape": {
|
||||
"default_value": "elliptic"
|
||||
},
|
||||
"machine_gcode_flavor": {
|
||||
"default_value": "RepRap"
|
||||
},
|
||||
"machine_start_gcode": {
|
||||
"default_value": ";Gcode by Cura\nG90\nG28\nM107\nM109 R100\nG29\nM109 S{material_print_temperature_layer_0} U-55 X55 V-85 Y-85 W0.26 Z0.26\nM82\nG92 E0\nG1 F200 E6\nG92 E0\nG1 F200 E-3.5\nG0 Z0.15\nG0 X10\nG0 Z3\nG1 F6000\n"
|
||||
},
|
||||
"machine_end_gcode": {
|
||||
"default_value": "\nM104 S0\nM106 S255\nM140 S0\nG91\nG1 E-1 F300\nG1 Z+3 E-2 F9000\nG90\nG28\n"
|
||||
},
|
||||
"default_material_print_temperature": {
|
||||
"default_value": 205
|
||||
},
|
||||
"speed_print": {
|
||||
"default_value": 40
|
||||
},
|
||||
"speed_travel": {
|
||||
"default_value": 120
|
||||
},
|
||||
"retraction_amount": {
|
||||
"default_value": 3.8
|
||||
},
|
||||
"retraction_speed": {
|
||||
"default_value": 60
|
||||
},
|
||||
"adhesion_type": {
|
||||
"default_value": "skirt"
|
||||
},
|
||||
"skirt_line_count": {
|
||||
"default_value": 2
|
||||
},
|
||||
"layer_height_0": {
|
||||
"default_value": 0.26
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1713,6 +1713,17 @@
|
|||
"limit_to_extruder": "infill_extruder_nr",
|
||||
"settable_per_mesh": true
|
||||
},
|
||||
"infill_wall_line_count":
|
||||
{
|
||||
"label": "Extra Infill Wall Count",
|
||||
"description": "Add extra wals around the infill area. Such walls can make top/bottom skin lines sag down less which means you need less top/bottom skin layers for the same quality at the cost of some extra material.\nThis feature can combine with the Connect Infill Polygons to connect all the infill into a single extrusion path without the need for travels or retractions if configured right.",
|
||||
"default_value": 0,
|
||||
"type": "int",
|
||||
"minimum_value": "0",
|
||||
"enabled": "infill_sparse_density > 0 and not spaghetti_infill_enabled",
|
||||
"limit_to_extruder": "infill_extruder_nr",
|
||||
"settable_per_mesh": true
|
||||
},
|
||||
"sub_div_rad_add":
|
||||
{
|
||||
"label": "Cubic Subdivision Shell",
|
||||
|
@ -3014,7 +3025,7 @@
|
|||
{
|
||||
"label": "Initial Layer Print Acceleration",
|
||||
"description": "The acceleration during the printing of the initial layer.",
|
||||
"unit": "mm/s",
|
||||
"unit": "mm/s²",
|
||||
"type": "float",
|
||||
"default_value": 3000,
|
||||
"value": "acceleration_layer_0",
|
||||
|
@ -3028,7 +3039,7 @@
|
|||
{
|
||||
"label": "Initial Layer Travel Acceleration",
|
||||
"description": "The acceleration for travel moves in the initial layer.",
|
||||
"unit": "mm/s",
|
||||
"unit": "mm/s²",
|
||||
"type": "float",
|
||||
"default_value": 3000,
|
||||
"value": "acceleration_layer_0 * acceleration_travel / acceleration_print",
|
||||
|
@ -4723,7 +4734,7 @@
|
|||
},
|
||||
"raft_base_line_spacing":
|
||||
{
|
||||
"label": "Raft Line Spacing",
|
||||
"label": "Raft Base Line Spacing",
|
||||
"description": "The distance between the raft lines for the base raft layer. Wide spacing makes for easy removal of the raft from the build plate.",
|
||||
"unit": "mm",
|
||||
"type": "float",
|
||||
|
@ -5046,7 +5057,7 @@
|
|||
"description": "The minimum volume for each layer of the prime tower in order to purge enough material.",
|
||||
"unit": "mm³",
|
||||
"type": "float",
|
||||
"default_value": 5,
|
||||
"default_value": 6,
|
||||
"minimum_value": "0",
|
||||
"maximum_value_warning": "((resolveOrValue('prime_tower_size') * 0.5) ** 2 * 3.14159 * resolveOrValue('layer_height') if prime_tower_circular else resolveOrValue('prime_tower_size') ** 2 * resolveOrValue('layer_height')) - sum(extruderValues('prime_tower_min_volume')) + prime_tower_min_volume",
|
||||
"enabled": "resolveOrValue('prime_tower_enable')",
|
||||
|
|
50
resources/definitions/tizyx_k25.def.json
Normal file
50
resources/definitions/tizyx_k25.def.json
Normal file
|
@ -0,0 +1,50 @@
|
|||
{
|
||||
"version": 2,
|
||||
"name": "TiZYX K25",
|
||||
"inherits": "fdmprinter",
|
||||
"metadata":
|
||||
{
|
||||
"visible": true,
|
||||
"author": "TiZYX",
|
||||
"manufacturer": "TiZYX",
|
||||
"file_formats": "text/x-gcode",
|
||||
"platform": "tizyx_k25_platform.stl",
|
||||
"platform_offset": [0, -4, 0],
|
||||
"exclude_materials": ["chromatik_pla", "dsm_arnitel2045_175", "dsm_novamid1070_175", "fabtotum_abs", "fabtotum_nylon", "fabtotum_pla", "fabtotum_tpu", "fiberlogy_hd_pla", "filo3d_pla", "filo3d_pla_green", "filo3d_pla_red", "generic_abs", "generic_abs_175", "generic_bam", "generic_cpe", "generic_cpe_175", "generic_cpe_plus", "generic_hips", "generic_hips_175", "generic_nylon", "generic_nylon_175", "generic_pc", "generic_pc_175", "generic_petg", "generic_petg_175", "generic_pla", "generic_pla_175", "generic_pp", "generic_pva", "generic_pva_175", "generic_tough_pla", "generic_tpu", "imade3d_petg_green", "imade3d_petg_pink", "imade3d_pla_green", "imade3d_pla_pink", "innofill_innoflex60_175", "octofiber_pla", "polyflex_pla", "polymax_pla", "polyplus_pla", "polywood_pla", "ultimaker_abs_black", "ultimaker_abs_blue", "ultimaker_abs_green", "ultimaker_abs_grey", "ultimaker_abs_orange", "ultimaker_abs_pearl-gold", "ultimaker_abs_red", "ultimaker_abs_silver-metallic", "ultimaker_abs_white", "ultimaker_abs_yellow", "ultimaker_bam", "ultimaker_cpe_black", "ultimaker_cpe_blue", "ultimaker_cpe_dark-grey", "ultimaker_cpe_green", "ultimaker_cpe_light-grey", "ultimaker_cpe_plus_black", "ultimaker_cpe_plus_transparent", "ultimaker_cpe_plus_white", "ultimaker_cpe_red", "ultimaker_cpe_transparent", "ultimaker_cpe_white", "ultimaker_cpe_yellow", "ultimaker_nylon_black", "ultimaker_nylon_transparent", "ultimaker_pc_black", "ultimaker_pc_transparent", "ultimaker_pc_white", "ultimaker_pla_black", "ultimaker_pla_blue", "ultimaker_pla_green", "ultimaker_pla_magenta", "ultimaker_pla_orange", "ultimaker_pla_pearl-white", "ultimaker_pla_red", "ultimaker_pla_silver-metallic", "ultimaker_pla_transparent", "ultimaker_pla_white", "ultimaker_pla_yellow", "ultimaker_pp_transparent", "ultimaker_pva", "ultimaker_tough_pla_black", "ultimaker_tough_pla_green", "ultimaker_tough_pla_red", "ultimaker_tough_pla_white", "ultimaker_tpu_black", "ultimaker_tpu_blue", "ultimaker_tpu_red", "ultimaker_tpu_white", "verbatim_bvoh_175", "Vertex_Delta_ABS", "Vertex_Delta_PET", "Vertex_Delta_PLA", "Vertex_Delta_TPU", "zyyx_pro_flex", "zyyx_pro_pla" ],
|
||||
"preferred_material": "tizyx_pla",
|
||||
"has_machine_quality": true,
|
||||
"has_materials": true,
|
||||
"machine_extruder_trains":
|
||||
{
|
||||
"0": "tizyx_k25_extruder_0"
|
||||
}
|
||||
},
|
||||
|
||||
"overrides":
|
||||
{
|
||||
"machine_name": { "default_value": "TiZYX K25" },
|
||||
"machine_heated_bed": { "default_value": true },
|
||||
"machine_width": { "default_value": 255 },
|
||||
"machine_height": { "default_value": 255 },
|
||||
"machine_depth": { "default_value": 255 },
|
||||
"machine_center_is_zero": { "default_value": false },
|
||||
"gantry_height": { "default_value": 500 },
|
||||
"machine_head_with_fans_polygon": {
|
||||
"default_value": [
|
||||
[25, 49],
|
||||
[25, -49],
|
||||
[-25, -49],
|
||||
[25, 49]
|
||||
]
|
||||
},
|
||||
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||
"machine_start_gcode":
|
||||
{
|
||||
"default_value": "M82\nG90\nG28 X\nG28 Y\nG28 Z\nG29\nG91\nG1 Z0\nG90\nM82\nG92 E0\nG1 X125 Y245 F3000\nG1 Z0"
|
||||
},
|
||||
"machine_end_gcode":
|
||||
{
|
||||
"default_value": "M104 S0\nM140 S0\nG91\nG1 E-5 F300\nG1 Z+3 F3000\nG1 Y245 F3000\nM84"
|
||||
}
|
||||
}
|
||||
}
|
137
resources/definitions/winbo_dragonl4.def.json
Normal file
137
resources/definitions/winbo_dragonl4.def.json
Normal file
|
@ -0,0 +1,137 @@
|
|||
{
|
||||
"version": 2,
|
||||
"name": "Winbo Dragon(L)4",
|
||||
"inherits": "fdmprinter",
|
||||
"metadata": {
|
||||
"author": "Winbo",
|
||||
"manufacturer": "Winbo Smart Tech Co., Ltd.",
|
||||
"category": "Other",
|
||||
"visible": true,
|
||||
"file_formats": "text/x-gcode",
|
||||
"supports_usb_connection": false,
|
||||
"machine_extruder_trains":
|
||||
{
|
||||
"0": "winbo_dragonl4_extruder"
|
||||
}
|
||||
},
|
||||
|
||||
"overrides": {
|
||||
"machine_name": { "default_value": "Winbo Dragon(L)4" },
|
||||
"machine_width": { "default_value": 615 },
|
||||
"machine_depth": { "default_value": 463 },
|
||||
"machine_height": { "default_value": 615 },
|
||||
"machine_heated_bed": { "default_value": true },
|
||||
"material_bed_temp_wait": { "default_value": false },
|
||||
"machine_filament_park_distance": { "value": "machine_heat_zone_length" },
|
||||
"machine_nozzle_heat_up_speed": { "default_value": 1.4 },
|
||||
"machine_nozzle_cool_down_speed": { "default_value": 0.8 },
|
||||
"machine_head_with_fans_polygon":
|
||||
{
|
||||
"default_value":
|
||||
[
|
||||
[ -50, 90 ],[ -50, -60 ],[ 50, -60 ],[ 50, 90 ]
|
||||
]
|
||||
},
|
||||
"machine_gcode_flavor": { "default_value": "Marlin" },
|
||||
"machine_max_feedrate_x": { "default_value": 300 },
|
||||
"machine_max_feedrate_y": { "default_value": 300 },
|
||||
"machine_max_feedrate_z": { "default_value": 40 },
|
||||
"machine_acceleration": { "default_value": 2000 },
|
||||
"gantry_height": { "default_value": 80 },
|
||||
"machine_extruder_count": { "default_value": 1 },
|
||||
"machine_start_gcode": { "default_value": "G21\nG90\nM82\nM107\nM9998\nG28 X0 Y0\nG28 Z0\nG1 F6000 Z0.3\nG92 E0\nG1 F800 X585 E12\nG92 E0" },
|
||||
"machine_end_gcode": { "default_value": "M104 S0\nM140 S0\nG92 E2\nG1 E0 F200\nG28 X0 Y0\nM84 X Y E" },
|
||||
"prime_blob_enable": { "enabled": true },
|
||||
"acceleration_enabled": { "value": "True" },
|
||||
"acceleration_layer_0": { "value": "acceleration_topbottom" },
|
||||
"acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 4000)" },
|
||||
"acceleration_print": { "value": "1800" },
|
||||
"acceleration_travel": { "value": "2000" },
|
||||
"acceleration_support": { "value": "math.ceil(acceleration_print * 2000 / 4000)" },
|
||||
"acceleration_support_interface": { "value": "acceleration_topbottom" },
|
||||
"acceleration_topbottom": { "value": "math.ceil(acceleration_print * 500 / 4000)" },
|
||||
"acceleration_wall": { "value": "math.ceil(acceleration_print * 1000 / 4000)" },
|
||||
"acceleration_wall_0": { "value": "math.ceil(acceleration_wall * 500 / 1000)" },
|
||||
"brim_width": { "value": "4" },
|
||||
"cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" },
|
||||
"cool_fan_speed": { "value": "100" },
|
||||
"cool_fan_speed_max": { "value": "100" },
|
||||
"cool_min_speed": { "value": "5" },
|
||||
"fill_outline_gaps": { "value": "True" },
|
||||
"infill_overlap": { "value": "0" },
|
||||
"min_infill_area": { "value": "1" },
|
||||
"min_skin_width_for_expansion": { "value": "2" },
|
||||
"jerk_enabled": { "value": "True" },
|
||||
"jerk_layer_0": { "value": "jerk_topbottom" },
|
||||
"jerk_prime_tower": { "value": "math.ceil(jerk_print * 15 / 25)" },
|
||||
"jerk_print": { "value": "25" },
|
||||
"jerk_support": { "value": "math.ceil(jerk_print * 15 / 25)" },
|
||||
"jerk_support_interface": { "value": "jerk_topbottom" },
|
||||
"jerk_topbottom": { "value": "math.ceil(jerk_print * 5 / 25)" },
|
||||
"jerk_wall": { "value": "math.ceil(jerk_print * 10 / 25)" },
|
||||
"jerk_wall_0": { "value": "math.ceil(jerk_wall * 5 / 10)" },
|
||||
"wall_thickness": { "value": "2.4"},
|
||||
"line_width": { "value": "extruderValue(-1,'machine_nozzle_size')" },
|
||||
"wall_0_inset": { "value": "0.05" },
|
||||
"wall_line_width_x": { "value": "line_width" },
|
||||
"wall_line_width_0": { "value": "line_width-0.05" },
|
||||
"support_line_width": { "value": "max(min(line_width,0.4),line_width/2)" },
|
||||
"support_interface_line_width": { "value": "support_line_width" },
|
||||
"machine_min_cool_heat_time_window": { "value": "15" },
|
||||
"default_material_print_temperature": { "value": "200" },
|
||||
"material_print_temperature_layer_0": { "value": "material_print_temperature - 5" },
|
||||
"material_bed_temperature": { "maximum_value": "100" },
|
||||
"material_bed_temperature_layer_0": { "maximum_value": "100" },
|
||||
"raft_airgap": { "value": "0" },
|
||||
"raft_base_thickness": { "value": "0.3" },
|
||||
"raft_interface_line_spacing": { "value": "0.5" },
|
||||
"raft_interface_line_width": { "value": "0.5" },
|
||||
"raft_interface_thickness": { "value": "0.2" },
|
||||
"raft_jerk": { "value": "jerk_layer_0" },
|
||||
"raft_margin": { "value": "5" },
|
||||
"raft_surface_layers": { "value": "2" },
|
||||
"retraction_amount": { "value": "4" },
|
||||
"retraction_count_max": { "value": "10" },
|
||||
"retraction_extrusion_window": { "value": "1" },
|
||||
"retraction_hop": { "value": "0.5" },
|
||||
"retraction_hop_enabled": { "value": "True" },
|
||||
"retraction_hop_only_when_collides": { "value": "True" },
|
||||
"retraction_min_travel": { "value": "5" },
|
||||
"retraction_prime_speed": { "value": "25" },
|
||||
"skin_overlap": { "value": "10" },
|
||||
"speed_layer_0": { "value": "25" },
|
||||
"speed_print": { "value": "70" },
|
||||
"speed_support": { "value": "speed_print*line_width/support_line_width" },
|
||||
"speed_support_interface": { "value": "speed_print*line_width/support_interface_line_width" },
|
||||
"speed_topbottom": { "value": "speed_print*line_width/skin_line_width" },
|
||||
"speed_travel": { "value": "100" },
|
||||
"speed_infill": { "value": "speed_print*line_width/infill_line_width" },
|
||||
"speed_wall": { "value": "speed_print*wall_line_width_0/line_width" },
|
||||
"speed_wall_0": { "value": "math.ceil(speed_wall * 0.6)" },
|
||||
"speed_wall_x": { "value": "speed_wall" },
|
||||
"speed_equalize_flow_enabled": { "value": "False" },
|
||||
"support_angle": { "value": "50" },
|
||||
"support_xy_distance": { "value": "1" },
|
||||
"support_z_distance": { "value": "max((0.2 if(0.2%layer_height==0) else layer_height*int((0.2+layer_height)/layer_height)),layer_height)" },
|
||||
"support_bottom_distance": { "value": "max(support_z_distance,layer_height*int(0.45/layer_height))" },
|
||||
"top_bottom_thickness": { "value": "max(1.2,layer_height*6)" },
|
||||
"travel_avoid_distance": { "value": "3" },
|
||||
"gradual_support_infill_step_height": { "value": "0.2" },
|
||||
"gradual_support_infill_steps": { "value": "1" },
|
||||
"infill_sparse_density": { "value": "20" },
|
||||
"gradual_infill_step_height": { "value": "1" },
|
||||
"initial_layer_line_width_factor": { "value": "120" },
|
||||
"jerk_travel": { "value": "25" },
|
||||
"support_bottom_enable": { "value": "True" },
|
||||
"support_bottom_height": { "value": "max((0.15 if(0.15%layer_height==0) else layer_height*int((0.15+layer_height)/layer_height)),layer_height)" },
|
||||
"support_bottom_pattern": { "value": "'zigzag'" },
|
||||
"support_connect_zigzags": { "value": "False" },
|
||||
"support_infill_rate": { "value": "8" },
|
||||
"support_interface_density": { "value": "80" },
|
||||
"support_interface_enable": { "value": "True" },
|
||||
"support_interface_height": { "value": "0.5" },
|
||||
"support_roof_pattern": { "value": "'concentric'" },
|
||||
"z_seam_type": { "value": "'shortest'" },
|
||||
"speed_equalize_flow_max": { "value": "65" }
|
||||
}
|
||||
}
|
137
resources/definitions/winbo_mini2.def.json
Normal file
137
resources/definitions/winbo_mini2.def.json
Normal file
|
@ -0,0 +1,137 @@
|
|||
{
|
||||
"version": 2,
|
||||
"name": "Winbo Mini2",
|
||||
"inherits": "fdmprinter",
|
||||
"metadata": {
|
||||
"author": "Winbo",
|
||||
"manufacturer": "Winbo Smart Tech Co., Ltd.",
|
||||
"category": "Other",
|
||||
"visible": true,
|
||||
"file_formats": "text/x-gcode",
|
||||
"supports_usb_connection": true,
|
||||
"machine_extruder_trains":
|
||||
{
|
||||
"0": "winbo_mini2_extruder"
|
||||
}
|
||||
},
|
||||
|
||||
"overrides": {
|
||||
"machine_name": { "default_value": "Winbo Mini2" },
|
||||
"machine_width": { "default_value": 205 },
|
||||
"machine_depth": { "default_value": 155 },
|
||||
"machine_height": { "default_value": 205 },
|
||||
"machine_heated_bed": { "default_value": false },
|
||||
"material_bed_temp_wait": { "default_value": false },
|
||||
"machine_filament_park_distance": { "value": "machine_heat_zone_length" },
|
||||
"machine_nozzle_heat_up_speed": { "default_value": 1.4 },
|
||||
"machine_nozzle_cool_down_speed": { "default_value": 0.8 },
|
||||
"machine_head_with_fans_polygon":
|
||||
{
|
||||
"default_value":
|
||||
[
|
||||
[ -52, 30 ],[ -52, -40 ],[ 13, -40 ],[ 13, 30 ]
|
||||
]
|
||||
},
|
||||
"machine_gcode_flavor": { "default_value": "Marlin" },
|
||||
"machine_max_feedrate_x": { "default_value": 250 },
|
||||
"machine_max_feedrate_y": { "default_value": 200 },
|
||||
"machine_max_feedrate_z": { "default_value": 40 },
|
||||
"machine_acceleration": { "default_value": 3000 },
|
||||
"gantry_height": { "default_value": 75 },
|
||||
"machine_extruder_count": { "default_value": 1 },
|
||||
"machine_start_gcode": { "default_value": "G21\nG90\nM82\nM107\nG28 X0 Y0\nG28 Z0\nG1 F1000 Z3\nG1 F4000 X0\nG1 F4000 Y0\nG1 F1000 Z0.2\nG92 E0\nG1 F1000 X30 E8\nG92 E0\nM117 Printing." },
|
||||
"machine_end_gcode": { "default_value": "M104 S0\nM140 S0\nG92 E2\nG1 E0 F200\nG28 X0 Y0\nM84 X Y E" },
|
||||
"prime_blob_enable": { "enabled": true },
|
||||
"acceleration_enabled": { "value": "True" },
|
||||
"acceleration_layer_0": { "value": "acceleration_topbottom" },
|
||||
"acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 4000)" },
|
||||
"acceleration_print": { "value": "2000" },
|
||||
"acceleration_travel": { "value": "2500" },
|
||||
"acceleration_support": { "value": "math.ceil(acceleration_print * 2000 / 4000)" },
|
||||
"acceleration_support_interface": { "value": "acceleration_topbottom" },
|
||||
"acceleration_topbottom": { "value": "math.ceil(acceleration_print * 500 / 4000)" },
|
||||
"acceleration_wall": { "value": "math.ceil(acceleration_print * 1000 / 4000)" },
|
||||
"acceleration_wall_0": { "value": "math.ceil(acceleration_wall * 500 / 1000)" },
|
||||
"brim_width": { "value": "3" },
|
||||
"cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" },
|
||||
"cool_fan_speed": { "value": "100" },
|
||||
"cool_fan_speed_max": { "value": "100" },
|
||||
"cool_min_speed": { "value": "5" },
|
||||
"fill_outline_gaps": { "value": "True" },
|
||||
"infill_overlap": { "value": "0" },
|
||||
"min_infill_area": { "value": "1" },
|
||||
"min_skin_width_for_expansion": { "value": "2" },
|
||||
"jerk_enabled": { "value": "True" },
|
||||
"jerk_layer_0": { "value": "jerk_topbottom" },
|
||||
"jerk_prime_tower": { "value": "math.ceil(jerk_print * 15 / 25)" },
|
||||
"jerk_print": { "value": "25" },
|
||||
"jerk_support": { "value": "math.ceil(jerk_print * 15 / 25)" },
|
||||
"jerk_support_interface": { "value": "jerk_topbottom" },
|
||||
"jerk_topbottom": { "value": "math.ceil(jerk_print * 5 / 25)" },
|
||||
"jerk_wall": { "value": "math.ceil(jerk_print * 10 / 25)" },
|
||||
"jerk_wall_0": { "value": "math.ceil(jerk_wall * 5 / 10)" },
|
||||
"wall_thickness": { "value": "1.2"},
|
||||
"line_width": { "value": "extruderValue(-1,'machine_nozzle_size')" },
|
||||
"wall_0_inset": { "value": "0.05" },
|
||||
"wall_line_width_x": { "value": "line_width" },
|
||||
"wall_line_width_0": { "value": "line_width-0.05" },
|
||||
"support_line_width": { "value": "max(min(line_width,0.4),line_width/2)" },
|
||||
"support_interface_line_width": { "value": "support_line_width" },
|
||||
"machine_min_cool_heat_time_window": { "value": "15" },
|
||||
"default_material_print_temperature": { "value": "200" },
|
||||
"material_print_temperature_layer_0": { "value": "material_print_temperature - 5" },
|
||||
"material_bed_temperature": { "maximum_value": "115" },
|
||||
"material_bed_temperature_layer_0": { "maximum_value": "115" },
|
||||
"raft_airgap": { "value": "0" },
|
||||
"raft_base_thickness": { "value": "0.3" },
|
||||
"raft_interface_line_spacing": { "value": "0.5" },
|
||||
"raft_interface_line_width": { "value": "0.5" },
|
||||
"raft_interface_thickness": { "value": "0.2" },
|
||||
"raft_jerk": { "value": "jerk_layer_0" },
|
||||
"raft_margin": { "value": "10" },
|
||||
"raft_surface_layers": { "value": "1" },
|
||||
"retraction_amount": { "value": "4" },
|
||||
"retraction_count_max": { "value": "10" },
|
||||
"retraction_extrusion_window": { "value": "1" },
|
||||
"retraction_hop": { "value": "0.5" },
|
||||
"retraction_hop_enabled": { "value": "True" },
|
||||
"retraction_hop_only_when_collides": { "value": "True" },
|
||||
"retraction_min_travel": { "value": "5" },
|
||||
"retraction_prime_speed": { "value": "25" },
|
||||
"skin_overlap": { "value": "10" },
|
||||
"speed_layer_0": { "value": "20" },
|
||||
"speed_print": { "value": "50" },
|
||||
"speed_support": { "value": "speed_print*line_width/support_line_width" },
|
||||
"speed_support_interface": { "value": "speed_print*line_width/support_interface_line_width" },
|
||||
"speed_topbottom": { "value": "speed_print*line_width/skin_line_width" },
|
||||
"speed_travel": { "value": "90" },
|
||||
"speed_infill": { "value": "speed_print*line_width/infill_line_width" },
|
||||
"speed_wall": { "value": "speed_print*wall_line_width_0/line_width" },
|
||||
"speed_wall_0": { "value": "math.ceil(speed_wall * 0.6)" },
|
||||
"speed_wall_x": { "value": "speed_wall" },
|
||||
"speed_equalize_flow_enabled": { "value": "False" },
|
||||
"support_angle": { "value": "50" },
|
||||
"support_xy_distance": { "value": "1" },
|
||||
"support_z_distance": { "value": "max((0.2 if(0.2%layer_height==0) else layer_height*int((0.2+layer_height)/layer_height)),layer_height)" },
|
||||
"support_bottom_distance": { "value": "max(support_z_distance,layer_height*int(0.45/layer_height))" },
|
||||
"top_bottom_thickness": { "value": "max(1.2,layer_height*6)" },
|
||||
"travel_avoid_distance": { "value": "3" },
|
||||
"gradual_support_infill_step_height": { "value": "0.2" },
|
||||
"gradual_support_infill_steps": { "value": "1" },
|
||||
"infill_sparse_density": { "value": "20" },
|
||||
"gradual_infill_step_height": { "value": "1" },
|
||||
"initial_layer_line_width_factor": { "value": "120" },
|
||||
"jerk_travel": { "value": "25" },
|
||||
"support_bottom_enable": { "value": "True" },
|
||||
"support_bottom_height": { "value": "max((0.15 if(0.15%layer_height==0) else layer_height*int((0.15+layer_height)/layer_height)),layer_height)" },
|
||||
"support_bottom_pattern": { "value": "'zigzag'" },
|
||||
"support_connect_zigzags": { "value": "False" },
|
||||
"support_infill_rate": { "value": "8" },
|
||||
"support_interface_density": { "value": "80" },
|
||||
"support_interface_enable": { "value": "True" },
|
||||
"support_interface_height": { "value": "0.5" },
|
||||
"support_roof_pattern": { "value": "'concentric'" },
|
||||
"z_seam_type": { "value": "'shortest'" },
|
||||
"speed_equalize_flow_max": { "value": "65" }
|
||||
}
|
||||
}
|
126
resources/definitions/winbo_superhelper105.def.json
Normal file
126
resources/definitions/winbo_superhelper105.def.json
Normal file
|
@ -0,0 +1,126 @@
|
|||
{
|
||||
"version": 2,
|
||||
"name": "Winbo Super Helper 105",
|
||||
"inherits": "fdmprinter",
|
||||
"metadata": {
|
||||
"author": "Winbo",
|
||||
"manufacturer": "Winbo Smart Tech Co., Ltd.",
|
||||
"category": "Other",
|
||||
"visible": true,
|
||||
"file_formats": "text/x-gcode",
|
||||
"supports_usb_connection": true,
|
||||
"machine_extruder_trains":
|
||||
{
|
||||
"0": "winbo_superhelper105_extruder"
|
||||
}
|
||||
},
|
||||
|
||||
"overrides": {
|
||||
"machine_name": { "default_value": "Winbo Super Helper 105" },
|
||||
"machine_width": { "default_value": 108 },
|
||||
"machine_depth": { "default_value": 108 },
|
||||
"machine_height": { "default_value": 158 },
|
||||
"machine_heated_bed": { "default_value": false },
|
||||
"material_bed_temp_wait": { "default_value": false },
|
||||
"machine_filament_park_distance": { "value": "machine_heat_zone_length" },
|
||||
"machine_nozzle_heat_up_speed": { "default_value": 1.4 },
|
||||
"machine_nozzle_cool_down_speed": { "default_value": 0.8 },
|
||||
"machine_head_with_fans_polygon":
|
||||
{
|
||||
"default_value":
|
||||
[
|
||||
[ -110, 50 ],[ -110, -30 ],[ 110, -30 ],[ 110, 50 ]
|
||||
]
|
||||
},
|
||||
"machine_gcode_flavor": { "default_value": "Marlin" },
|
||||
"machine_max_feedrate_x": { "default_value": 250 },
|
||||
"machine_max_feedrate_y": { "default_value": 200 },
|
||||
"machine_max_feedrate_z": { "default_value": 40 },
|
||||
"machine_acceleration": { "default_value": 2000 },
|
||||
"gantry_height": { "default_value": 200 },
|
||||
"machine_extruder_count": { "default_value": 1 },
|
||||
"machine_start_gcode": { "default_value": "G21\nG90\nM82\nM107\nG28 X0 Y0\nG28 Z0\nG1 F6000 Z0.3\nG92 E0\nG1 F1000 X30 E8\nG92 E0\nM117 Printing." },
|
||||
"machine_end_gcode": { "default_value": "M104 S0\nM140 S0\nG92 E2\nG1 E0 F200\nG28 X0 Y0\nM84 X Y E" },
|
||||
"prime_blob_enable": { "enabled": true },
|
||||
"acceleration_enabled": { "value": "True" },
|
||||
"acceleration_layer_0": { "value": "acceleration_topbottom" },
|
||||
"acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 4000)" },
|
||||
"acceleration_print": { "value": "2000" },
|
||||
"acceleration_travel": { "value": "1500" },
|
||||
"acceleration_support": { "value": "math.ceil(acceleration_print * 2000 / 4000)" },
|
||||
"acceleration_support_interface": { "value": "acceleration_topbottom" },
|
||||
"acceleration_topbottom": { "value": "math.ceil(acceleration_print * 500 / 4000)" },
|
||||
"acceleration_wall": { "value": "math.ceil(acceleration_print * 1000 / 4000)" },
|
||||
"acceleration_wall_0": { "value": "math.ceil(acceleration_wall * 500 / 1000)" },
|
||||
"brim_width": { "value": "3" },
|
||||
"cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" },
|
||||
"cool_fan_speed": { "value": "100" },
|
||||
"cool_fan_speed_max": { "value": "100" },
|
||||
"cool_min_speed": { "value": "5" },
|
||||
"fill_outline_gaps": { "value": "True" },
|
||||
"infill_overlap": { "value": "0" },
|
||||
"min_infill_area": { "value": "1" },
|
||||
"min_skin_width_for_expansion": { "value": "2" },
|
||||
"jerk_enabled": { "value": "True" },
|
||||
"jerk_layer_0": { "value": "jerk_topbottom" },
|
||||
"jerk_prime_tower": { "value": "math.ceil(jerk_print * 15 / 25)" },
|
||||
"jerk_print": { "value": "25" },
|
||||
"jerk_support": { "value": "math.ceil(jerk_print * 15 / 25)" },
|
||||
"jerk_support_interface": { "value": "jerk_topbottom" },
|
||||
"jerk_topbottom": { "value": "math.ceil(jerk_print * 5 / 25)" },
|
||||
"jerk_wall": { "value": "math.ceil(jerk_print * 10 / 25)" },
|
||||
"jerk_wall_0": { "value": "math.ceil(jerk_wall * 5 / 10)" },
|
||||
"wall_thickness": { "value": "0.8"},
|
||||
"line_width": { "value": "extruderValue(-1,'machine_nozzle_size')" },
|
||||
"raft_base_thickness": { "value": "0.3" },
|
||||
"raft_interface_line_spacing": { "value": "0.5" },
|
||||
"raft_interface_line_width": { "value": "0.5" },
|
||||
"raft_interface_thickness": { "value": "0.2" },
|
||||
"raft_jerk": { "value": "jerk_layer_0" },
|
||||
"raft_margin": { "value": "10" },
|
||||
"raft_surface_layers": { "value": "1" },
|
||||
"retraction_amount": { "value": "4" },
|
||||
"retraction_count_max": { "value": "10" },
|
||||
"retraction_extrusion_window": { "value": "1" },
|
||||
"retraction_hop": { "value": "0.5" },
|
||||
"retraction_hop_enabled": { "value": "True" },
|
||||
"retraction_hop_only_when_collides": { "value": "True" },
|
||||
"retraction_min_travel": { "value": "5" },
|
||||
"retraction_prime_speed": { "value": "25" },
|
||||
"skin_overlap": { "value": "10" },
|
||||
"speed_layer_0": { "value": "20" },
|
||||
"speed_print": { "value": "52" },
|
||||
"speed_support": { "value": "speed_print*line_width/support_line_width" },
|
||||
"speed_support_interface": { "value": "speed_print*line_width/support_interface_line_width" },
|
||||
"speed_topbottom": { "value": "speed_print*line_width/skin_line_width" },
|
||||
"speed_travel": { "value": "80" },
|
||||
"speed_infill": { "value": "speed_print*line_width/infill_line_width" },
|
||||
"speed_wall": { "value": "speed_print*wall_line_width_0/line_width" },
|
||||
"speed_wall_0": { "value": "math.ceil(speed_wall * 0.6)" },
|
||||
"speed_wall_x": { "value": "speed_wall" },
|
||||
"speed_equalize_flow_enabled": { "value": "False" },
|
||||
"support_angle": { "value": "50" },
|
||||
"support_xy_distance": { "value": "1" },
|
||||
"support_z_distance": { "value": "max((0.2 if(0.2%layer_height==0) else layer_height*int((0.2+layer_height)/layer_height)),layer_height)" },
|
||||
"support_bottom_distance": { "value": "max(support_z_distance,layer_height*int(0.45/layer_height))" },
|
||||
"top_bottom_thickness": { "value": "max(1.2,layer_height*6)" },
|
||||
"travel_avoid_distance": { "value": "3" },
|
||||
"gradual_support_infill_step_height": { "value": "0.2" },
|
||||
"gradual_support_infill_steps": { "value": "1" },
|
||||
"infill_sparse_density": { "value": "20" },
|
||||
"gradual_infill_step_height": { "value": "1" },
|
||||
"initial_layer_line_width_factor": { "value": "120" },
|
||||
"jerk_travel": { "value": "25" },
|
||||
"support_bottom_enable": { "value": "True" },
|
||||
"support_bottom_height": { "value": "max((0.15 if(0.15%layer_height==0) else layer_height*int((0.15+layer_height)/layer_height)),layer_height)" },
|
||||
"support_bottom_pattern": { "value": "'zigzag'" },
|
||||
"support_connect_zigzags": { "value": "False" },
|
||||
"support_infill_rate": { "value": "8" },
|
||||
"support_interface_density": { "value": "80" },
|
||||
"support_interface_enable": { "value": "True" },
|
||||
"support_interface_height": { "value": "0.5" },
|
||||
"support_roof_pattern": { "value": "'concentric'" },
|
||||
"z_seam_type": { "value": "'shortest'" },
|
||||
"speed_equalize_flow_max": { "value": "65" }
|
||||
}
|
||||
}
|
30
resources/definitions/winbo_superhelper155.def.json
Normal file
30
resources/definitions/winbo_superhelper155.def.json
Normal file
|
@ -0,0 +1,30 @@
|
|||
{
|
||||
"version": 2,
|
||||
"name": "Winbo Super Helper 155",
|
||||
"inherits": "winbo_superhelper105",
|
||||
"metadata": {
|
||||
"author": "Winbo",
|
||||
"manufacturer": "Winbo Smart Tech Co., Ltd.",
|
||||
"category": "Other",
|
||||
"visible": true,
|
||||
"file_formats": "text/x-gcode",
|
||||
"supports_usb_connection": true,
|
||||
"machine_extruder_trains":
|
||||
{
|
||||
"0": "winbo_superhelper155_extruder"
|
||||
}
|
||||
},
|
||||
"overrides": {
|
||||
"machine_name": { "default_value": "Winbo Super Helper 155" },
|
||||
"machine_width": { "default_value": 158 },
|
||||
"machine_depth": { "default_value": 158 },
|
||||
"machine_height": { "default_value": 208 },
|
||||
"machine_head_with_fans_polygon":
|
||||
{
|
||||
"default_value":
|
||||
[
|
||||
[ -160, 50 ],[ -160, -30 ],[ 160, -30 ],[ 160, 50 ]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,5 +1,4 @@
|
|||
{
|
||||
"id": "dagoma_discoeasy200_extruder_0",
|
||||
"version": 2,
|
||||
"name": "Extruder 1",
|
||||
"inherits": "fdmextruder",
|
||||
|
@ -9,8 +8,14 @@
|
|||
},
|
||||
|
||||
"overrides": {
|
||||
"extruder_nr": { "default_value": 0 },
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"material_diameter": { "default_value": 1.75 }
|
||||
"extruder_nr": {
|
||||
"default_value": 0
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"material_diameter": {
|
||||
"default_value": 1.75
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
{
|
||||
"id": "dagoma_neva_extruder_0",
|
||||
"version": 2,
|
||||
"name": "Extruder 1",
|
||||
"inherits": "fdmextruder",
|
||||
|
@ -9,8 +8,14 @@
|
|||
},
|
||||
|
||||
"overrides": {
|
||||
"extruder_nr": { "default_value": 0 },
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"material_diameter": { "default_value": 1.75 }
|
||||
"extruder_nr": {
|
||||
"default_value": 0
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"material_diameter": {
|
||||
"default_value": 1.75
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
21
resources/extruders/dagoma_neva_magis_extruder_0.def.json
Normal file
21
resources/extruders/dagoma_neva_magis_extruder_0.def.json
Normal file
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"version": 2,
|
||||
"name": "Extruder 1",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata": {
|
||||
"machine": "dagoma_neva_magis",
|
||||
"position": "0"
|
||||
},
|
||||
|
||||
"overrides": {
|
||||
"extruder_nr": {
|
||||
"default_value": 0
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"material_diameter": {
|
||||
"default_value": 1.75
|
||||
}
|
||||
}
|
||||
}
|
16
resources/extruders/tizyx_k25_extruder_0.def.json
Normal file
16
resources/extruders/tizyx_k25_extruder_0.def.json
Normal file
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"id": "tizyx_k25_extruder_0",
|
||||
"version": 2,
|
||||
"name": "Extruder 1",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata": {
|
||||
"machine": "tizyx_k25",
|
||||
"position": "0"
|
||||
},
|
||||
|
||||
"overrides": {
|
||||
"extruder_nr": { "default_value": 0 },
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"material_diameter": { "default_value": 1.75 }
|
||||
}
|
||||
}
|
20
resources/extruders/winbo_dragonl4_extruder.def.json
Normal file
20
resources/extruders/winbo_dragonl4_extruder.def.json
Normal file
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"version": 2,
|
||||
"name": "Extruder 1",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata": {
|
||||
"machine": "winbo_dragonl4",
|
||||
"position": "0"
|
||||
},
|
||||
|
||||
"overrides": {
|
||||
"extruder_nr": {
|
||||
"default_value": 0,
|
||||
"maximum_value": "2"
|
||||
},
|
||||
"material_diameter": { "default_value": 3.0 },
|
||||
"machine_nozzle_size": { "default_value": 0.8 },
|
||||
"machine_nozzle_offset_x": { "default_value": 0.0 },
|
||||
"machine_nozzle_offset_y": { "default_value": 0.0 }
|
||||
}
|
||||
}
|
20
resources/extruders/winbo_mini2_extruder.def.json
Normal file
20
resources/extruders/winbo_mini2_extruder.def.json
Normal file
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"version": 2,
|
||||
"name": "Extruder 1",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata": {
|
||||
"machine": "winbo_mini2",
|
||||
"position": "0"
|
||||
},
|
||||
|
||||
"overrides": {
|
||||
"extruder_nr": {
|
||||
"default_value": 0,
|
||||
"maximum_value": "2"
|
||||
},
|
||||
"material_diameter": { "default_value": 1.75 },
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"machine_nozzle_offset_x": { "default_value": 0.0 },
|
||||
"machine_nozzle_offset_y": { "default_value": 0.0 }
|
||||
}
|
||||
}
|
20
resources/extruders/winbo_superhelper105_extruder.def.json
Normal file
20
resources/extruders/winbo_superhelper105_extruder.def.json
Normal file
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"version": 2,
|
||||
"name": "Extruder 1",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata": {
|
||||
"machine": "winbo_superhelper105",
|
||||
"position": "0"
|
||||
},
|
||||
|
||||
"overrides": {
|
||||
"extruder_nr": {
|
||||
"default_value": 0,
|
||||
"maximum_value": "2"
|
||||
},
|
||||
"material_diameter": { "default_value": 1.75 },
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"machine_nozzle_offset_x": { "default_value": 0.0 },
|
||||
"machine_nozzle_offset_y": { "default_value": 0.0 }
|
||||
}
|
||||
}
|
20
resources/extruders/winbo_superhelper155_extruder.def.json
Normal file
20
resources/extruders/winbo_superhelper155_extruder.def.json
Normal file
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"version": 2,
|
||||
"name": "Extruder 1",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata": {
|
||||
"machine": "winbo_superhelper155",
|
||||
"position": "0"
|
||||
},
|
||||
|
||||
"overrides": {
|
||||
"extruder_nr": {
|
||||
"default_value": 0,
|
||||
"maximum_value": "2"
|
||||
},
|
||||
"material_diameter": { "default_value": 1.75 },
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"machine_nozzle_offset_x": { "default_value": 0.0 },
|
||||
"machine_nozzle_offset_y": { "default_value": 0.0 }
|
||||
}
|
||||
}
|
|
@ -4036,7 +4036,7 @@ msgstr "&Ansicht"
|
|||
#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:184
|
||||
msgctxt "@title:menu"
|
||||
msgid "&Settings"
|
||||
msgstr "&Einstellungen"
|
||||
msgstr "&Konfiguration"
|
||||
|
||||
#: /home/ruben/Projects/Cura/resources/qml/Cura.qml:186
|
||||
msgctxt "@title:menu menubar:toplevel"
|
||||
|
|
BIN
resources/meshes/tizyx_k25_platform.stl
Normal file
BIN
resources/meshes/tizyx_k25_platform.stl
Normal file
Binary file not shown.
|
@ -26,7 +26,6 @@ Column
|
|||
|
||||
OutputDeviceHeader
|
||||
{
|
||||
width: parent.width
|
||||
outputDevice: connectedDevice
|
||||
}
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ Item
|
|||
|
||||
Rectangle
|
||||
{
|
||||
anchors.fill: parent
|
||||
height: childrenRect.height
|
||||
color: UM.Theme.getColor("setting_category")
|
||||
property var activePrinter: outputDevice != null ? outputDevice.activePrinter : null
|
||||
|
||||
|
|
|
@ -48,14 +48,15 @@ Item {
|
|||
}
|
||||
|
||||
function sliceOrStopSlicing() {
|
||||
try {
|
||||
if ([1, 5].indexOf(base.backendState) != -1) {
|
||||
CuraApplication.backend.forceSlice();
|
||||
} else {
|
||||
CuraApplication.backend.stopSlicing();
|
||||
}
|
||||
} catch (e) {
|
||||
console.log('Could not start or stop slicing', e)
|
||||
if ([1, 5].indexOf(base.backendState) != -1)
|
||||
{
|
||||
prepareButton.preparingToSlice = true;
|
||||
CuraApplication.backend.forceSlice();
|
||||
}
|
||||
else
|
||||
{
|
||||
prepareButton.preparingToSlice = false;
|
||||
CuraApplication.backend.stopSlicing();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -167,12 +168,10 @@ Item {
|
|||
// Prepare button, only shows if auto_slice is off
|
||||
Button {
|
||||
id: prepareButton
|
||||
|
||||
property bool showPrepare : false;
|
||||
|
||||
property bool preparingToSlice: false
|
||||
tooltip: [1, 5].indexOf(base.backendState) != -1 ? catalog.i18nc("@info:tooltip","Slice current printjob") : catalog.i18nc("@info:tooltip","Cancel slicing process")
|
||||
// 1 = not started, 2 = Processing
|
||||
enabled: base.backendState != "undefined" && ([1, 2].indexOf(base.backendState) != -1) && base.activity
|
||||
enabled: !preparingToSlice && base.backendState != "undefined" && ([1, 2].indexOf(base.backendState) != -1) && base.activity
|
||||
visible: base.backendState != "undefined" && !autoSlice && ([1, 2, 4].indexOf(base.backendState) != -1) && base.activity
|
||||
property bool autoSlice
|
||||
height: UM.Theme.getSize("save_button_save_to_button").height
|
||||
|
@ -183,18 +182,24 @@ Item {
|
|||
|
||||
// 1 = not started, 4 = error, 5 = disabled
|
||||
text: {
|
||||
|
||||
if (base.backendState == 1 && showPrepare)
|
||||
if (preparingToSlice)
|
||||
{
|
||||
showPrepare = false
|
||||
return catalog.i18nc("@label:Printjob", "Preparing")
|
||||
return catalog.i18nc("@label:Printjob", "Preparing");
|
||||
}
|
||||
else
|
||||
{
|
||||
if ([1, 4, 5].indexOf(base.backendState) != -1)
|
||||
{
|
||||
return catalog.i18nc("@label:Printjob", "Prepare");
|
||||
}
|
||||
else
|
||||
{
|
||||
return catalog.i18nc("@label:Printjob", "Cancel")
|
||||
}
|
||||
}
|
||||
|
||||
return [1, 4, 5].indexOf(base.backendState) != -1 ? catalog.i18nc("@label:Printjob", "Prepare") : catalog.i18nc("@label:Printjob", "Cancel")
|
||||
}
|
||||
onClicked:
|
||||
{
|
||||
showPrepare = true
|
||||
sliceOrStopSlicing();
|
||||
}
|
||||
|
||||
|
@ -249,6 +254,17 @@ Item {
|
|||
}
|
||||
label: Item { }
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: UM.Backend
|
||||
onStateChanged:
|
||||
{
|
||||
if ([2, 3].indexOf(UM.Backend.state) != -1)
|
||||
{
|
||||
prepareButton.preparingToSlice = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Button {
|
||||
|
|
|
@ -20,13 +20,6 @@ SettingItem
|
|||
|
||||
anchors.fill: parent
|
||||
|
||||
MouseArea
|
||||
{
|
||||
anchors.fill: parent
|
||||
acceptedButtons: Qt.NoButton
|
||||
onWheel: wheel.accepted = true
|
||||
}
|
||||
|
||||
background: Rectangle
|
||||
{
|
||||
color:
|
||||
|
|
|
@ -71,13 +71,6 @@ SettingItem
|
|||
|
||||
currentIndex: propertyProvider.properties.value
|
||||
|
||||
MouseArea
|
||||
{
|
||||
anchors.fill: parent
|
||||
acceptedButtons: Qt.NoButton
|
||||
onWheel: wheel.accepted = true;
|
||||
}
|
||||
|
||||
property string color: "#fff"
|
||||
|
||||
Binding
|
||||
|
|
|
@ -76,13 +76,6 @@ SettingItem
|
|||
when: control.model.items.length > 0
|
||||
}
|
||||
|
||||
MouseArea
|
||||
{
|
||||
anchors.fill: parent
|
||||
acceptedButtons: Qt.NoButton
|
||||
onWheel: wheel.accepted = true;
|
||||
}
|
||||
|
||||
property string color: "#fff"
|
||||
|
||||
Binding
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2015 Ultimaker B.V.
|
||||
// Copyright (c) 2018 Ultimaker B.V.
|
||||
// Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
import QtQuick 2.2
|
||||
|
@ -21,8 +21,8 @@ Item
|
|||
{
|
||||
id: buttons;
|
||||
|
||||
anchors.bottom: parent.bottom;
|
||||
anchors.left: parent.left;
|
||||
anchors.bottom: parent.bottom
|
||||
anchors.left: parent.left
|
||||
spacing: UM.Theme.getSize("button_lining").width
|
||||
|
||||
Repeater
|
||||
|
@ -34,20 +34,22 @@ Item
|
|||
height: childrenRect.height
|
||||
Button
|
||||
{
|
||||
text: model.name
|
||||
text: model.name + (model.shortcut ? (" (" + model.shortcut + ")") : "")
|
||||
iconSource: (UM.Theme.getIcon(model.icon) != "") ? UM.Theme.getIcon(model.icon) : "file:///" + model.location + "/" + model.icon
|
||||
checkable: true
|
||||
checked: model.active
|
||||
enabled: model.enabled && UM.Selection.hasSelection && UM.Controller.toolsEnabled
|
||||
style: UM.Theme.styles.tool_button
|
||||
|
||||
onCheckedChanged: {
|
||||
if (checked) {
|
||||
base.activeY = y
|
||||
onCheckedChanged:
|
||||
{
|
||||
if (checked)
|
||||
{
|
||||
base.activeY = y;
|
||||
}
|
||||
}
|
||||
|
||||
//Workaround since using ToolButton"s onClicked would break the binding of the checked property, instead
|
||||
//Workaround since using ToolButton's onClicked would break the binding of the checked property, instead
|
||||
//just catch the click so we do not trigger that behaviour.
|
||||
MouseArea
|
||||
{
|
||||
|
@ -57,7 +59,7 @@ Item
|
|||
forceActiveFocus() //First grab focus, so all the text fields are updated
|
||||
if(parent.checked)
|
||||
{
|
||||
UM.Controller.setActiveTool(null)
|
||||
UM.Controller.setActiveTool(null);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -96,11 +98,13 @@ Item
|
|||
|
||||
width:
|
||||
{
|
||||
if (panel.item && panel.width > 0){
|
||||
return Math.max(panel.width + 2 * UM.Theme.getSize("default_margin").width)
|
||||
if (panel.item && panel.width > 0)
|
||||
{
|
||||
return Math.max(panel.width + 2 * UM.Theme.getSize("default_margin").width);
|
||||
}
|
||||
else {
|
||||
return 0
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
height: panel.item ? panel.height + 2 * UM.Theme.getSize("default_margin").height : 0;
|
||||
|
@ -124,7 +128,7 @@ Item
|
|||
x: UM.Theme.getSize("default_margin").width;
|
||||
y: UM.Theme.getSize("default_margin").height;
|
||||
|
||||
source: UM.ActiveTool.valid ? UM.ActiveTool.activeToolPanel : "";
|
||||
source: UM.ActiveTool.valid ? UM.ActiveTool.activeToolPanel : ""
|
||||
enabled: UM.Controller.toolsEnabled;
|
||||
}
|
||||
}
|
||||
|
@ -148,6 +152,6 @@ Item
|
|||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
}
|
||||
|
||||
visible: toolHint.text != "";
|
||||
visible: toolHint.text != ""
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,6 +24,10 @@ UM.Dialog
|
|||
|
||||
signal yes();
|
||||
|
||||
function accept() { // pressing enter will call this function
|
||||
close();
|
||||
yes();
|
||||
}
|
||||
|
||||
onClosing:
|
||||
{
|
||||
|
@ -290,4 +294,4 @@ UM.Dialog
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
[general]
|
||||
version = 4
|
||||
name = Fast
|
||||
definition = dagoma_discoeasy200
|
||||
|
||||
[metadata]
|
||||
setting_version = 5
|
||||
type = quality
|
||||
quality_type = draft
|
||||
weight = -2
|
||||
material = generic_pla
|
||||
|
||||
[values]
|
||||
material_print_temperature = =default_material_print_temperature + 10
|
||||
material_bed_temperature_layer_0 = =default_material_bed_temperature + 10
|
|
@ -0,0 +1,13 @@
|
|||
[general]
|
||||
version = 4
|
||||
name = Fine
|
||||
definition = dagoma_discoeasy200
|
||||
|
||||
[metadata]
|
||||
setting_version = 5
|
||||
type = quality
|
||||
quality_type = normal
|
||||
weight = 0
|
||||
material = generic_pla
|
||||
|
||||
[values]
|
|
@ -0,0 +1,15 @@
|
|||
[general]
|
||||
version = 4
|
||||
name = Standard
|
||||
definition = dagoma_discoeasy200
|
||||
|
||||
[metadata]
|
||||
setting_version = 5
|
||||
type = quality
|
||||
quality_type = fast
|
||||
weight = -1
|
||||
material = generic_pla
|
||||
|
||||
[values]
|
||||
material_print_temperature = =default_material_print_temperature + 5
|
||||
material_bed_temperature_layer_0 = =default_material_bed_temperature + 5
|
14
resources/quality/dagoma/dagoma_global_fast.inst.cfg
Normal file
14
resources/quality/dagoma/dagoma_global_fast.inst.cfg
Normal file
|
@ -0,0 +1,14 @@
|
|||
[general]
|
||||
version = 4
|
||||
name = Fast
|
||||
definition = dagoma_discoeasy200
|
||||
|
||||
[metadata]
|
||||
setting_version = 5
|
||||
type = quality
|
||||
quality_type = draft
|
||||
weight = -2
|
||||
global_quality = True
|
||||
|
||||
[values]
|
||||
layer_height = 0.2
|
14
resources/quality/dagoma/dagoma_global_fine.inst.cfg
Normal file
14
resources/quality/dagoma/dagoma_global_fine.inst.cfg
Normal file
|
@ -0,0 +1,14 @@
|
|||
[general]
|
||||
version = 4
|
||||
name = Fine
|
||||
definition = dagoma_discoeasy200
|
||||
|
||||
[metadata]
|
||||
setting_version = 5
|
||||
type = quality
|
||||
quality_type = normal
|
||||
weight = 0
|
||||
global_quality = True
|
||||
|
||||
[values]
|
||||
layer_height = 0.1
|
14
resources/quality/dagoma/dagoma_global_standard.inst.cfg
Normal file
14
resources/quality/dagoma/dagoma_global_standard.inst.cfg
Normal file
|
@ -0,0 +1,14 @@
|
|||
[general]
|
||||
version = 4
|
||||
name = Standard
|
||||
definition = dagoma_discoeasy200
|
||||
|
||||
[metadata]
|
||||
setting_version = 5
|
||||
type = quality
|
||||
quality_type = fast
|
||||
weight = -1
|
||||
global_quality = True
|
||||
|
||||
[values]
|
||||
layer_height = 0.15
|
15
resources/quality/dagoma/dagoma_neva_magis_pla_fast.inst.cfg
Normal file
15
resources/quality/dagoma/dagoma_neva_magis_pla_fast.inst.cfg
Normal file
|
@ -0,0 +1,15 @@
|
|||
[general]
|
||||
version = 4
|
||||
name = Fast
|
||||
definition = dagoma_neva_magis
|
||||
|
||||
[metadata]
|
||||
setting_version = 5
|
||||
type = quality
|
||||
quality_type = draft
|
||||
weight = -2
|
||||
material = generic_pla
|
||||
|
||||
[values]
|
||||
material_print_temperature = =default_material_print_temperature + 10
|
||||
material_bed_temperature_layer_0 = =default_material_bed_temperature + 10
|
13
resources/quality/dagoma/dagoma_neva_magis_pla_fine.inst.cfg
Normal file
13
resources/quality/dagoma/dagoma_neva_magis_pla_fine.inst.cfg
Normal file
|
@ -0,0 +1,13 @@
|
|||
[general]
|
||||
version = 4
|
||||
name = Fine
|
||||
definition = dagoma_neva_magis
|
||||
|
||||
[metadata]
|
||||
setting_version = 5
|
||||
type = quality
|
||||
quality_type = normal
|
||||
weight = 0
|
||||
material = generic_pla
|
||||
|
||||
[values]
|
|
@ -0,0 +1,15 @@
|
|||
[general]
|
||||
version = 4
|
||||
name = Standard
|
||||
definition = dagoma_neva_magis
|
||||
|
||||
[metadata]
|
||||
setting_version = 5
|
||||
type = quality
|
||||
quality_type = fast
|
||||
weight = -1
|
||||
material = generic_pla
|
||||
|
||||
[values]
|
||||
material_print_temperature = =default_material_print_temperature + 5
|
||||
material_bed_temperature_layer_0 = =default_material_bed_temperature + 5
|
15
resources/quality/dagoma/dagoma_neva_pla_fast.inst.cfg
Normal file
15
resources/quality/dagoma/dagoma_neva_pla_fast.inst.cfg
Normal file
|
@ -0,0 +1,15 @@
|
|||
[general]
|
||||
version = 4
|
||||
name = Fast
|
||||
definition = dagoma_neva
|
||||
|
||||
[metadata]
|
||||
setting_version = 5
|
||||
type = quality
|
||||
quality_type = draft
|
||||
weight = -2
|
||||
material = generic_pla
|
||||
|
||||
[values]
|
||||
material_print_temperature = =default_material_print_temperature + 10
|
||||
material_bed_temperature_layer_0 = =default_material_bed_temperature + 10
|
13
resources/quality/dagoma/dagoma_neva_pla_fine.inst.cfg
Normal file
13
resources/quality/dagoma/dagoma_neva_pla_fine.inst.cfg
Normal file
|
@ -0,0 +1,13 @@
|
|||
[general]
|
||||
version = 4
|
||||
name = Fine
|
||||
definition = dagoma_neva
|
||||
|
||||
[metadata]
|
||||
setting_version = 5
|
||||
type = quality
|
||||
quality_type = normal
|
||||
weight = 0
|
||||
material = generic_pla
|
||||
|
||||
[values]
|
15
resources/quality/dagoma/dagoma_neva_pla_standard.inst.cfg
Normal file
15
resources/quality/dagoma/dagoma_neva_pla_standard.inst.cfg
Normal file
|
@ -0,0 +1,15 @@
|
|||
[general]
|
||||
version = 4
|
||||
name = Standard
|
||||
definition = dagoma_neva
|
||||
|
||||
[metadata]
|
||||
setting_version = 5
|
||||
type = quality
|
||||
quality_type = fast
|
||||
weight = -1
|
||||
material = generic_pla
|
||||
|
||||
[values]
|
||||
material_print_temperature = =default_material_print_temperature + 5
|
||||
material_bed_temperature_layer_0 = =default_material_bed_temperature + 5
|
31
resources/quality/tizyx_k25/tizyx_k25_normal.inst.cfg
Normal file
31
resources/quality/tizyx_k25/tizyx_k25_normal.inst.cfg
Normal file
|
@ -0,0 +1,31 @@
|
|||
[general]
|
||||
version = 4
|
||||
name = TiZYX K25 Normal
|
||||
definition = tizyx_k25
|
||||
|
||||
[metadata]
|
||||
quality_type = normal
|
||||
setting_version = 5
|
||||
type = quality
|
||||
global_quality = True
|
||||
|
||||
[values]
|
||||
adhesion_type = skirt
|
||||
skirt_line_count = 2
|
||||
skirt_gap = 2
|
||||
cool_fan_speed_0 = 100
|
||||
fill_outline_gaps = True
|
||||
infill_angles = [0,90 ]
|
||||
infill_sparse_density = 15
|
||||
layer_height = 0.2
|
||||
layer_height_0 = 0.25
|
||||
material_diameter = 1.75
|
||||
retraction_amount = 2.5
|
||||
retraction_min_travel = 2
|
||||
retraction_speed = 30
|
||||
skin_angles = [0,90]
|
||||
speed_print = 60
|
||||
speed_topbottom = 50
|
||||
speed_wall_0 = 40
|
||||
top_layers = 4
|
||||
wall_line_count = 2
|
|
@ -15,8 +15,6 @@ variant = AA 0.25
|
|||
cool_fan_speed = 40
|
||||
infill_overlap = 15
|
||||
material_final_print_temperature = =material_print_temperature - 5
|
||||
prime_tower_size = 12
|
||||
prime_tower_min_volume = 2
|
||||
retraction_prime_speed = 25
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 55)
|
||||
wall_thickness = 0.92
|
||||
|
|
|
@ -12,8 +12,6 @@ material = generic_cpe
|
|||
variant = AA 0.25
|
||||
|
||||
[values]
|
||||
prime_tower_size = 12
|
||||
prime_tower_min_volume = 2
|
||||
retraction_extrusion_window = 0.5
|
||||
speed_infill = =math.ceil(speed_print * 40 / 55)
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 55)
|
||||
|
|
|
@ -34,7 +34,6 @@ material_standby_temperature = 100
|
|||
multiple_mesh_overlap = 0.2
|
||||
prime_tower_enable = True
|
||||
prime_tower_flow = 100
|
||||
prime_tower_min_volume = 10
|
||||
retract_at_layer_change = False
|
||||
retraction_count_max = 12
|
||||
retraction_extra_prime_amount = 0.5
|
||||
|
|
|
@ -35,7 +35,6 @@ material_standby_temperature = 100
|
|||
multiple_mesh_overlap = 0.2
|
||||
prime_tower_enable = True
|
||||
prime_tower_flow = 100
|
||||
prime_tower_min_volume = 15
|
||||
retract_at_layer_change = False
|
||||
retraction_count_max = 12
|
||||
retraction_extra_prime_amount = 0.5
|
||||
|
|
|
@ -34,7 +34,6 @@ material_standby_temperature = 100
|
|||
multiple_mesh_overlap = 0.2
|
||||
prime_tower_enable = True
|
||||
prime_tower_flow = 100
|
||||
prime_tower_min_volume = 20
|
||||
retract_at_layer_change = False
|
||||
retraction_count_max = 12
|
||||
retraction_extra_prime_amount = 0.5
|
||||
|
|
|
@ -15,8 +15,6 @@ variant = AA 0.25
|
|||
cool_fan_speed = 40
|
||||
infill_overlap = 15
|
||||
material_final_print_temperature = =material_print_temperature - 5
|
||||
prime_tower_size = 12
|
||||
prime_tower_min_volume = 2
|
||||
retraction_prime_speed = 25
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 55)
|
||||
wall_thickness = 0.92
|
||||
|
|
|
@ -12,8 +12,6 @@ material = generic_cpe
|
|||
variant = AA 0.25
|
||||
|
||||
[values]
|
||||
prime_tower_size = 12
|
||||
prime_tower_min_volume = 2
|
||||
retraction_extrusion_window = 0.5
|
||||
speed_infill = =math.ceil(speed_print * 40 / 55)
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 55)
|
||||
|
|
|
@ -32,7 +32,6 @@ material_standby_temperature = 100
|
|||
multiple_mesh_overlap = 0.2
|
||||
prime_tower_enable = True
|
||||
prime_tower_flow = 100
|
||||
prime_tower_min_volume = 10
|
||||
retract_at_layer_change = False
|
||||
retraction_count_max = 12
|
||||
retraction_extra_prime_amount = 0.5
|
||||
|
|
|
@ -33,7 +33,6 @@ material_standby_temperature = 100
|
|||
multiple_mesh_overlap = 0.2
|
||||
prime_tower_enable = True
|
||||
prime_tower_flow = 100
|
||||
prime_tower_min_volume = 20
|
||||
retract_at_layer_change = False
|
||||
retraction_count_max = 12
|
||||
retraction_extra_prime_amount = 0.5
|
||||
|
|
|
@ -32,7 +32,6 @@ material_standby_temperature = 100
|
|||
multiple_mesh_overlap = 0.2
|
||||
prime_tower_enable = True
|
||||
prime_tower_flow = 100
|
||||
prime_tower_min_volume = 15
|
||||
retract_at_layer_change = False
|
||||
retraction_count_max = 12
|
||||
retraction_extra_prime_amount = 0.5
|
||||
|
|
|
@ -37,6 +37,7 @@ infill_extruder_nr
|
|||
infill_sparse_density
|
||||
infill_line_distance
|
||||
infill_pattern
|
||||
infill_multiplier
|
||||
infill_overlap
|
||||
infill_sparse_thickness
|
||||
gradual_infill_steps
|
||||
|
|
|
@ -37,6 +37,7 @@ bottom_thickness
|
|||
bottom_layers
|
||||
top_bottom_pattern
|
||||
top_bottom_pattern_0
|
||||
connect_skin_polygons
|
||||
skin_angles
|
||||
wall_0_inset
|
||||
optimize_wall_printing_order
|
||||
|
@ -73,6 +74,8 @@ infill_sparse_density
|
|||
infill_line_distance
|
||||
infill_pattern
|
||||
zig_zaggify_infill
|
||||
connect_infill_polygons
|
||||
infill_multiplier
|
||||
infill_angles
|
||||
infill_offset_x
|
||||
infill_offset_y
|
||||
|
|
|
@ -40,7 +40,6 @@ material_print_temperature = =default_material_print_temperature + 10
|
|||
material_standby_temperature = 100
|
||||
multiple_mesh_overlap = 0
|
||||
prime_tower_enable = False
|
||||
prime_tower_min_volume = 20
|
||||
prime_tower_wipe_enabled = True
|
||||
raft_acceleration = =acceleration_layer_0
|
||||
raft_airgap = 0
|
||||
|
|
|
@ -22,7 +22,6 @@ jerk_support_bottom = =math.ceil(jerk_support_interface * 1 / 10)
|
|||
machine_nozzle_heat_up_speed = 1.5
|
||||
machine_nozzle_id = BB 0.4
|
||||
machine_nozzle_tip_outer_diameter = 1.0
|
||||
prime_tower_min_volume = 15
|
||||
raft_base_speed = 20
|
||||
raft_interface_speed = 20
|
||||
raft_speed = 25
|
||||
|
|
|
@ -40,7 +40,6 @@ material_print_temperature = =default_material_print_temperature + 10
|
|||
material_standby_temperature = 100
|
||||
multiple_mesh_overlap = 0
|
||||
prime_tower_enable = False
|
||||
prime_tower_min_volume = 20
|
||||
prime_tower_wipe_enabled = True
|
||||
raft_acceleration = =acceleration_layer_0
|
||||
raft_airgap = 0
|
||||
|
|
|
@ -22,7 +22,6 @@ jerk_support_bottom = =math.ceil(jerk_support_interface * 1 / 10)
|
|||
machine_nozzle_heat_up_speed = 1.5
|
||||
machine_nozzle_id = BB 0.4
|
||||
machine_nozzle_tip_outer_diameter = 1.0
|
||||
prime_tower_min_volume = 15
|
||||
raft_base_speed = 20
|
||||
raft_interface_speed = 20
|
||||
raft_speed = 25
|
||||
|
|
|
@ -40,7 +40,6 @@ material_print_temperature = =default_material_print_temperature + 10
|
|||
material_standby_temperature = 100
|
||||
multiple_mesh_overlap = 0
|
||||
prime_tower_enable = False
|
||||
prime_tower_min_volume = 20
|
||||
prime_tower_wipe_enabled = True
|
||||
raft_acceleration = =acceleration_layer_0
|
||||
raft_airgap = 0
|
||||
|
|
|
@ -22,7 +22,6 @@ jerk_support_bottom = =math.ceil(jerk_support_interface * 1 / 10)
|
|||
machine_nozzle_heat_up_speed = 1.5
|
||||
machine_nozzle_id = BB 0.4
|
||||
machine_nozzle_tip_outer_diameter = 1.0
|
||||
prime_tower_min_volume = 20
|
||||
raft_base_speed = 20
|
||||
raft_interface_speed = 20
|
||||
raft_speed = 25
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue