mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-04-29 15:25:02 +08:00
Merge branch 'master' into remove-package-check
This commit is contained in:
commit
bff9a3afb5
@ -1,12 +1,13 @@
|
||||
# Copyright (c) 2018 Ultimaker B.V.
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
import io
|
||||
import os
|
||||
import re
|
||||
|
||||
import shutil
|
||||
|
||||
from typing import Optional
|
||||
from typing import Dict, Optional
|
||||
from zipfile import ZipFile, ZIP_DEFLATED, BadZipfile
|
||||
|
||||
from UM import i18nCatalog
|
||||
@ -28,9 +29,9 @@ class Backup:
|
||||
# Re-use translation catalog.
|
||||
catalog = i18nCatalog("cura")
|
||||
|
||||
def __init__(self, zip_file: bytes = None, meta_data: dict = None) -> None:
|
||||
def __init__(self, zip_file: bytes = None, meta_data: Dict[str, str] = None) -> None:
|
||||
self.zip_file = zip_file # type: Optional[bytes]
|
||||
self.meta_data = meta_data # type: Optional[dict]
|
||||
self.meta_data = meta_data # type: Optional[Dict[str, str]]
|
||||
|
||||
## Create a back-up from the current user config folder.
|
||||
def makeFromCurrent(self) -> None:
|
||||
|
@ -1,6 +1,7 @@
|
||||
# Copyright (c) 2018 Ultimaker B.V.
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
from typing import Optional, Tuple
|
||||
|
||||
from typing import Dict, Optional, Tuple
|
||||
|
||||
from UM.Logger import Logger
|
||||
from cura.Backups.Backup import Backup
|
||||
@ -18,7 +19,7 @@ class BackupsManager:
|
||||
## Get a back-up of the current configuration.
|
||||
# \return A tuple containing a ZipFile (the actual back-up) and a dict
|
||||
# containing some metadata (like version).
|
||||
def createBackup(self) -> Tuple[Optional[bytes], Optional[dict]]:
|
||||
def createBackup(self) -> Tuple[Optional[bytes], Optional[Dict[str, str]]]:
|
||||
self._disableAutoSave()
|
||||
backup = Backup()
|
||||
backup.makeFromCurrent()
|
||||
@ -30,7 +31,7 @@ class BackupsManager:
|
||||
# \param zip_file A bytes object containing the actual back-up.
|
||||
# \param meta_data A dict containing some metadata that is needed to
|
||||
# restore the back-up correctly.
|
||||
def restoreBackup(self, zip_file: bytes, meta_data: dict) -> None:
|
||||
def restoreBackup(self, zip_file: bytes, meta_data: Dict[str, str]) -> None:
|
||||
if not meta_data.get("cura_release", None):
|
||||
# If there is no "cura_release" specified in the meta data, we don't execute a backup restore.
|
||||
Logger.log("w", "Tried to restore a backup without specifying a Cura version number.")
|
||||
@ -43,13 +44,13 @@ class BackupsManager:
|
||||
if restored:
|
||||
# At this point, Cura will need to restart for the changes to take effect.
|
||||
# We don't want to store the data at this point as that would override the just-restored backup.
|
||||
self._application.windowClosed(save_data=False)
|
||||
self._application.windowClosed(save_data = False)
|
||||
|
||||
## Here we try to disable the auto-save plug-in as it might interfere with
|
||||
# restoring a back-up.
|
||||
def _disableAutoSave(self):
|
||||
def _disableAutoSave(self) -> None:
|
||||
self._application.setSaveDataEnabled(False)
|
||||
|
||||
## Re-enable auto-save after we're done.
|
||||
def _enableAutoSave(self):
|
||||
def _enableAutoSave(self) -> None:
|
||||
self._application.setSaveDataEnabled(True)
|
||||
|
@ -47,10 +47,10 @@ class BuildVolume(SceneNode):
|
||||
self._disallowed_area_color = None
|
||||
self._error_area_color = None
|
||||
|
||||
self._width = 0
|
||||
self._height = 0
|
||||
self._depth = 0
|
||||
self._shape = ""
|
||||
self._width = 0 #type: float
|
||||
self._height = 0 #type: float
|
||||
self._depth = 0 #type: float
|
||||
self._shape = "" #type: str
|
||||
|
||||
self._shader = None
|
||||
|
||||
@ -154,19 +154,19 @@ class BuildVolume(SceneNode):
|
||||
if active_extruder_changed is not None:
|
||||
active_extruder_changed.connect(self._updateDisallowedAreasAndRebuild)
|
||||
|
||||
def setWidth(self, width):
|
||||
def setWidth(self, width: float) -> None:
|
||||
if width is not None:
|
||||
self._width = width
|
||||
|
||||
def setHeight(self, height):
|
||||
def setHeight(self, height: float) -> None:
|
||||
if height is not None:
|
||||
self._height = height
|
||||
|
||||
def setDepth(self, depth):
|
||||
def setDepth(self, depth: float) -> None:
|
||||
if depth is not None:
|
||||
self._depth = depth
|
||||
|
||||
def setShape(self, shape: str):
|
||||
def setShape(self, shape: str) -> None:
|
||||
if shape:
|
||||
self._shape = shape
|
||||
|
||||
@ -294,7 +294,7 @@ class BuildVolume(SceneNode):
|
||||
if not self._width or not self._height or not self._depth:
|
||||
return
|
||||
|
||||
if not self._application._qml_engine:
|
||||
if not self._engine_ready:
|
||||
return
|
||||
|
||||
if not self._volume_outline_color:
|
||||
|
@ -84,7 +84,6 @@ from cura.Settings.SettingInheritanceManager import SettingInheritanceManager
|
||||
from cura.Settings.SimpleModeSettingsManager import SimpleModeSettingsManager
|
||||
|
||||
from cura.Machines.VariantManager import VariantManager
|
||||
from plugins.SliceInfoPlugin.SliceInfo import SliceInfo
|
||||
|
||||
from .SingleInstance import SingleInstance
|
||||
from .AutoSave import AutoSave
|
||||
@ -110,6 +109,10 @@ from cura.ObjectsModel import ObjectsModel
|
||||
from UM.FlameProfiler import pyqtSlot
|
||||
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from plugins.SliceInfoPlugin.SliceInfo import SliceInfo
|
||||
|
||||
|
||||
numpy.seterr(all = "ignore")
|
||||
|
||||
try:
|
||||
@ -407,43 +410,6 @@ class CuraApplication(QtApplication):
|
||||
}
|
||||
)
|
||||
|
||||
"""
|
||||
self._currently_loading_files = []
|
||||
self._non_sliceable_extensions = []
|
||||
|
||||
self._machine_action_manager = MachineActionManager.MachineActionManager()
|
||||
self._machine_manager = None # This is initialized on demand.
|
||||
self._extruder_manager = None
|
||||
self._material_manager = None
|
||||
self._quality_manager = None
|
||||
self._object_manager = None
|
||||
self._build_plate_model = None
|
||||
self._multi_build_plate_model = None
|
||||
self._setting_visibility_presets_model = None
|
||||
self._setting_inheritance_manager = None
|
||||
self._simple_mode_settings_manager = None
|
||||
self._cura_scene_controller = None
|
||||
self._machine_error_checker = None
|
||||
self._auto_save = None
|
||||
self._save_data_enabled = True
|
||||
|
||||
self._additional_components = {} # Components to add to certain areas in the interface
|
||||
|
||||
super().__init__(name = "cura",
|
||||
version = CuraVersion,
|
||||
buildtype = CuraBuildType,
|
||||
is_debug_mode = CuraDebugMode,
|
||||
tray_icon_name = "cura-icon-32.png",
|
||||
**kwargs)
|
||||
|
||||
# FOR TESTING ONLY
|
||||
if kwargs["parsed_command_line"].get("trigger_early_crash", False):
|
||||
assert not "This crash is triggered by the trigger_early_crash command line argument."
|
||||
|
||||
self._variant_manager = None
|
||||
|
||||
self.default_theme = "cura-light"
|
||||
"""
|
||||
# Runs preparations that needs to be done before the starting process.
|
||||
def startSplashWindowPhase(self):
|
||||
super().startSplashWindowPhase()
|
||||
@ -1518,7 +1484,9 @@ class CuraApplication(QtApplication):
|
||||
|
||||
@pyqtSlot("QSize")
|
||||
def setMinimumWindowSize(self, size):
|
||||
self.getMainWindow().setMinimumSize(size)
|
||||
main_window = self.getMainWindow()
|
||||
if main_window:
|
||||
main_window.setMinimumSize(size)
|
||||
|
||||
def getBuildVolume(self):
|
||||
return self._volume
|
||||
|
@ -48,7 +48,7 @@ class CuraContainerStack(ContainerStack):
|
||||
self._empty_material = self._container_registry.findInstanceContainers(id = "empty_material")[0] #type: InstanceContainer
|
||||
self._empty_variant = self._container_registry.findInstanceContainers(id = "empty_variant")[0] #type: InstanceContainer
|
||||
|
||||
self._containers = [self._empty_instance_container for i in range(len(_ContainerIndexes.IndexTypeMap))] #type: List[Union[InstanceContainer, DefinitionContainer]]
|
||||
self._containers = [self._empty_instance_container for i in range(len(_ContainerIndexes.IndexTypeMap))] #type: List[ContainerInterface]
|
||||
self._containers[_ContainerIndexes.QualityChanges] = self._empty_quality_changes
|
||||
self._containers[_ContainerIndexes.Quality] = self._empty_quality
|
||||
self._containers[_ContainerIndexes.Material] = self._empty_material
|
||||
|
@ -95,7 +95,9 @@ class SingleInstance:
|
||||
elif command == "focus":
|
||||
# Operating systems these days prevent windows from moving around by themselves.
|
||||
# 'alert' or flashing the icon in the taskbar is the best thing we do now.
|
||||
self._application.callLater(lambda: self._application.getMainWindow().alert(0))
|
||||
main_window = self._application.getMainWindow()
|
||||
if main_window is not None:
|
||||
self._application.callLater(lambda: main_window.alert(0)) # type: ignore # I don't know why MyPy complains here
|
||||
|
||||
# Command: Close the socket connection. We're done.
|
||||
elif command == "close-connection":
|
||||
|
10
cura_app.py
10
cura_app.py
@ -12,14 +12,14 @@ from UM.Platform import Platform
|
||||
|
||||
parser = argparse.ArgumentParser(prog = "cura",
|
||||
add_help = False)
|
||||
parser.add_argument('--debug',
|
||||
action='store_true',
|
||||
parser.add_argument("--debug",
|
||||
action="store_true",
|
||||
default = False,
|
||||
help = "Turn on the debug mode by setting this option."
|
||||
)
|
||||
parser.add_argument('--trigger-early-crash',
|
||||
dest = 'trigger_early_crash',
|
||||
action = 'store_true',
|
||||
parser.add_argument("--trigger-early-crash",
|
||||
dest = "trigger_early_crash",
|
||||
action = "store_true",
|
||||
default = False,
|
||||
help = "FOR TESTING ONLY. Trigger an early crash to show the crash dialog."
|
||||
)
|
||||
|
@ -41,15 +41,11 @@ class StartJobResult(IntEnum):
|
||||
|
||||
## Formatter class that handles token expansion in start/end gcode
|
||||
class GcodeStartEndFormatter(Formatter):
|
||||
def get_value(self, key: str, *args: str, **kwargs) -> str: #type: ignore # [CodeStyle: get_value is an overridden function from the Formatter class]
|
||||
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]
|
||||
# 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
|
||||
|
||||
if isinstance(key, str):
|
||||
try:
|
||||
extruder_nr = int(kwargs["default_extruder_nr"])
|
||||
except ValueError:
|
||||
extruder_nr = -1
|
||||
extruder_nr = int(default_extruder_nr)
|
||||
|
||||
key_fragments = [fragment.strip() for fragment in key.split(",")]
|
||||
if len(key_fragments) == 2:
|
||||
@ -57,13 +53,13 @@ class GcodeStartEndFormatter(Formatter):
|
||||
extruder_nr = int(key_fragments[1])
|
||||
except ValueError:
|
||||
try:
|
||||
extruder_nr = int(kwargs["-1"][key_fragments[1]]) # get extruder_nr values from the global stack
|
||||
extruder_nr = int(kwargs["-1"][key_fragments[1]]) # get extruder_nr values from the global stack #TODO: How can you ever provide the '-1' kwarg?
|
||||
except (KeyError, ValueError):
|
||||
# either the key does not exist, or the value is not an int
|
||||
Logger.log("w", "Unable to determine stack nr '%s' for key '%s' in start/end g-code, using global stack", key_fragments[1], key_fragments[0])
|
||||
elif len(key_fragments) != 1:
|
||||
Logger.log("w", "Incorrectly formatted placeholder '%s' in start/end g-code", key)
|
||||
return "{" + str(key) + "}"
|
||||
return "{" + key + "}"
|
||||
|
||||
key = key_fragments[0]
|
||||
try:
|
||||
@ -71,9 +67,6 @@ class GcodeStartEndFormatter(Formatter):
|
||||
except KeyError:
|
||||
Logger.log("w", "Unable to replace '%s' placeholder in start/end g-code", key)
|
||||
return "{" + key + "}"
|
||||
else:
|
||||
Logger.log("w", "Incorrectly formatted placeholder '%s' in start/end g-code", key)
|
||||
return "{" + str(key) + "}"
|
||||
|
||||
|
||||
## Job class that builds up the message of scene data to send to CuraEngine.
|
||||
|
@ -286,6 +286,9 @@ class FlavorParser:
|
||||
self._cancelled = False
|
||||
# We obtain the filament diameter from the selected extruder to calculate line widths
|
||||
global_stack = CuraApplication.getInstance().getGlobalContainerStack()
|
||||
if not global_stack:
|
||||
return None
|
||||
|
||||
self._filament_diameter = global_stack.extruders[str(self._extruder_number)].getProperty("material_diameter", "value")
|
||||
|
||||
scene_node = CuraSceneNode()
|
||||
|
@ -104,9 +104,12 @@ class Script:
|
||||
m = re.search('^-?[0-9]+\.?[0-9]*', sub_part)
|
||||
if m is None:
|
||||
return default
|
||||
try:
|
||||
return int(m.group(0))
|
||||
except ValueError: #Not an integer.
|
||||
try:
|
||||
return float(m.group(0))
|
||||
except:
|
||||
except ValueError: #Not a number at all.
|
||||
return default
|
||||
|
||||
## Convenience function to produce a line of g-code.
|
||||
|
@ -1,5 +1,9 @@
|
||||
# Copyright (c) 2018 Ultimaker B.V.
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
from ..Script import Script
|
||||
# from cura.Settings.ExtruderManager import ExtruderManager
|
||||
|
||||
from UM.Application import Application #To get the current printer's settings.
|
||||
|
||||
class PauseAtHeight(Script):
|
||||
def __init__(self):
|
||||
@ -136,6 +140,10 @@ class PauseAtHeight(Script):
|
||||
layers_started = False
|
||||
redo_layers = self.getSettingValueByKey("redo_layers")
|
||||
standby_temperature = self.getSettingValueByKey("standby_temperature")
|
||||
firmware_retract = Application.getInstance().getGlobalContainerStack().getProperty("machine_firmware_retract", "value")
|
||||
control_temperatures = Application.getInstance().getGlobalContainerStack().getProperty("machine_nozzle_temp_enabled", "value")
|
||||
|
||||
is_griffin = False
|
||||
|
||||
# T = ExtruderManager.getInstance().getActiveExtruderStack().getProperty("material_print_temperature", "value")
|
||||
|
||||
@ -153,6 +161,8 @@ class PauseAtHeight(Script):
|
||||
|
||||
# Scroll each line of instruction for each layer in the G-code
|
||||
for line in lines:
|
||||
if ";FLAVOR:Griffin" in line:
|
||||
is_griffin = True
|
||||
# Fist positive layer reached
|
||||
if ";LAYER:0" in line:
|
||||
layers_started = True
|
||||
@ -162,12 +172,12 @@ class PauseAtHeight(Script):
|
||||
|
||||
#Track the latest printing temperature in order to resume at the correct temperature.
|
||||
if line.startswith("T"):
|
||||
current_t = int(self.getValue(line, "T"))
|
||||
current_t = self.getValue(line, "T")
|
||||
m = self.getValue(line, "M")
|
||||
if m is not None and (int(m) == 104 or int(m) == 109) and self.getValue(line, "S") is not None:
|
||||
if m is not None and (m == 104 or m == 109) and self.getValue(line, "S") is not None:
|
||||
extruder = current_t
|
||||
if self.getValue(line, "T") is not None:
|
||||
extruder = int(self.getValue(line, "T"))
|
||||
extruder = self.getValue(line, "T")
|
||||
target_temperature[extruder] = self.getValue(line, "S")
|
||||
|
||||
if not layers_started:
|
||||
@ -247,57 +257,67 @@ class PauseAtHeight(Script):
|
||||
prepend_gcode += ";added code by post processing\n"
|
||||
prepend_gcode += ";script: PauseAtHeight.py\n"
|
||||
if pause_at == "height":
|
||||
prepend_gcode += ";current z: {z}\n".format(z=current_z)
|
||||
prepend_gcode += ";current height: {height}\n".format(height=current_height)
|
||||
prepend_gcode += ";current z: {z}\n".format(z = current_z)
|
||||
prepend_gcode += ";current height: {height}\n".format(height = current_height)
|
||||
else:
|
||||
prepend_gcode += ";current layer: {layer}\n".format(layer=current_layer)
|
||||
prepend_gcode += ";current layer: {layer}\n".format(layer = current_layer)
|
||||
|
||||
if not is_griffin:
|
||||
# Retraction
|
||||
prepend_gcode += self.putValue(M=83) + "\n"
|
||||
prepend_gcode += self.putValue(M = 83) + "\n"
|
||||
if retraction_amount != 0:
|
||||
prepend_gcode += self.putValue(G=1, E=-retraction_amount, F=retraction_speed * 60) + "\n"
|
||||
if firmware_retract:
|
||||
prepend_gcode += self.putValue(G = 10)
|
||||
else:
|
||||
prepend_gcode += self.putValue(G = 1, E = -retraction_amount, F = retraction_speed * 60) + "\n"
|
||||
|
||||
# Move the head away
|
||||
prepend_gcode += self.putValue(G=1, Z=current_z + 1, F=300) + "\n"
|
||||
prepend_gcode += self.putValue(G = 1, Z = current_z + 1, F = 300) + "\n"
|
||||
|
||||
# This line should be ok
|
||||
prepend_gcode += self.putValue(G=1, X=park_x, Y=park_y, F=9000) + "\n"
|
||||
prepend_gcode += self.putValue(G = 1, X = park_x, Y = park_y, F = 9000) + "\n"
|
||||
|
||||
if current_z < 15:
|
||||
prepend_gcode += self.putValue(G=1, Z=15, F=300) + "\n"
|
||||
prepend_gcode += self.putValue(G = 1, Z = 15, F = 300) + "\n"
|
||||
|
||||
if control_temperatures:
|
||||
# Set extruder standby temperature
|
||||
prepend_gcode += self.putValue(M=104, S=standby_temperature) + "; standby temperature\n"
|
||||
prepend_gcode += self.putValue(M = 104, S = standby_temperature) + "; standby temperature\n"
|
||||
|
||||
# Wait till the user continues printing
|
||||
prepend_gcode += self.putValue(M=0) + ";Do the actual pause\n"
|
||||
prepend_gcode += self.putValue(M = 0) + ";Do the actual pause\n"
|
||||
|
||||
if not is_griffin:
|
||||
if control_temperatures:
|
||||
# Set extruder resume temperature
|
||||
prepend_gcode += self.putValue(M = 109, S = int(target_temperature.get(current_t, 0))) + "; resume temperature\n"
|
||||
|
||||
# Push the filament back,
|
||||
if retraction_amount != 0:
|
||||
prepend_gcode += self.putValue(G=1, E=retraction_amount, F=retraction_speed * 60) + "\n"
|
||||
prepend_gcode += self.putValue(G = 1, E = retraction_amount, F = retraction_speed * 60) + "\n"
|
||||
|
||||
# Optionally extrude material
|
||||
if extrude_amount != 0:
|
||||
prepend_gcode += self.putValue(G=1, E=extrude_amount, F=extrude_speed * 60) + "\n"
|
||||
prepend_gcode += self.putValue(G = 1, E = extrude_amount, F = extrude_speed * 60) + "\n"
|
||||
|
||||
# and retract again, the properly primes the nozzle
|
||||
# when changing filament.
|
||||
if retraction_amount != 0:
|
||||
prepend_gcode += self.putValue(G=1, E=-retraction_amount, F=retraction_speed * 60) + "\n"
|
||||
prepend_gcode += self.putValue(G = 1, E = -retraction_amount, F = retraction_speed * 60) + "\n"
|
||||
|
||||
# Move the head back
|
||||
prepend_gcode += self.putValue(G=1, Z=current_z + 1, F=300) + "\n"
|
||||
prepend_gcode += self.putValue(G=1, X=x, Y=y, F=9000) + "\n"
|
||||
prepend_gcode += self.putValue(G = 1, Z = current_z + 1, F = 300) + "\n"
|
||||
prepend_gcode += self.putValue(G = 1, X = x, Y = y, F = 9000) + "\n"
|
||||
if retraction_amount != 0:
|
||||
prepend_gcode += self.putValue(G=1, E=retraction_amount, F=retraction_speed * 60) + "\n"
|
||||
prepend_gcode += self.putValue(G=1, F=9000) + "\n"
|
||||
prepend_gcode += self.putValue(M=82) + "\n"
|
||||
if firmware_retract:
|
||||
prepend_gcode += self.putValue(G = 11)
|
||||
else:
|
||||
prepend_gcode += self.putValue(G = 1, E = retraction_amount, F = retraction_speed * 60) + "\n"
|
||||
prepend_gcode += self.putValue(G = 1, F = 9000) + "\n"
|
||||
prepend_gcode += self.putValue(M = 82) + "\n"
|
||||
|
||||
# reset extrude value to pre pause value
|
||||
prepend_gcode += self.putValue(G=92, E=current_e) + "\n"
|
||||
prepend_gcode += self.putValue(G = 92, E = current_e) + "\n"
|
||||
|
||||
layer = prepend_gcode + layer
|
||||
|
||||
|
@ -76,11 +76,26 @@ Item
|
||||
}
|
||||
}
|
||||
|
||||
Component
|
||||
{
|
||||
id: columnTextDelegate
|
||||
Label
|
||||
{
|
||||
anchors.fill: parent
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
text: styleData.value || ""
|
||||
elide: Text.ElideRight
|
||||
color: UM.Theme.getColor("text_medium")
|
||||
font: UM.Theme.getFont("default")
|
||||
}
|
||||
}
|
||||
|
||||
TableViewColumn
|
||||
{
|
||||
role: "machine"
|
||||
title: "Machine"
|
||||
width: Math.floor(table.width * 0.25)
|
||||
delegate: columnTextDelegate
|
||||
}
|
||||
TableViewColumn
|
||||
{
|
||||
|
@ -74,6 +74,7 @@ Item
|
||||
}
|
||||
spacing: Math.floor(UM.Theme.getSize("narrow_margin").height)
|
||||
width: childrenRect.width
|
||||
height: childrenRect.height
|
||||
Label
|
||||
{
|
||||
text: catalog.i18nc("@label", "Version") + ":"
|
||||
@ -110,6 +111,7 @@ Item
|
||||
topMargin: UM.Theme.getSize("default_margin").height
|
||||
}
|
||||
spacing: Math.floor(UM.Theme.getSize("narrow_margin").height)
|
||||
height: childrenRect.height
|
||||
Label
|
||||
{
|
||||
text: details.version || catalog.i18nc("@label", "Unknown")
|
||||
|
@ -1,7 +1,7 @@
|
||||
// Copyright (c) 2018 Ultimaker B.V.
|
||||
// Toolbox is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
import QtQuick 2.2
|
||||
import QtQuick 2.7
|
||||
import QtQuick.Controls 1.4
|
||||
import QtQuick.Controls.Styles 1.4
|
||||
import QtQuick.Layouts 1.3
|
||||
@ -9,10 +9,10 @@ import UM 1.1 as UM
|
||||
|
||||
Column
|
||||
{
|
||||
height: childrenRect.height
|
||||
height: childrenRect.height + 2 * padding
|
||||
width: parent.width
|
||||
spacing: UM.Theme.getSize("default_margin").height
|
||||
|
||||
padding: UM.Theme.getSize("wide_margin").height
|
||||
Label
|
||||
{
|
||||
id: heading
|
||||
@ -25,7 +25,7 @@ Column
|
||||
{
|
||||
id: grid
|
||||
property var model: toolbox.viewCategory == "material" ? toolbox.authorsModel : toolbox.packagesModel
|
||||
width: parent.width
|
||||
width: parent.width - 2 * parent.padding
|
||||
columns: 2
|
||||
columnSpacing: UM.Theme.getSize("default_margin").height
|
||||
rowSpacing: UM.Theme.getSize("default_margin").width
|
||||
|
@ -15,22 +15,15 @@ ScrollView
|
||||
flickableItem.flickableDirection: Flickable.VerticalFlick
|
||||
Column
|
||||
{
|
||||
width: parent.width - 2 * padding
|
||||
width: base.width
|
||||
spacing: UM.Theme.getSize("default_margin").height
|
||||
padding: UM.Theme.getSize("wide_margin").height
|
||||
height: childrenRect.height + 2 * padding
|
||||
height: childrenRect.height
|
||||
|
||||
ToolboxDownloadsShowcase
|
||||
{
|
||||
id: showcase
|
||||
width: parent.width
|
||||
}
|
||||
Rectangle
|
||||
{
|
||||
color: UM.Theme.getColor("lining")
|
||||
width: parent.width
|
||||
height: UM.Theme.getSize("default_lining").height
|
||||
}
|
||||
|
||||
ToolboxDownloadsGrid
|
||||
{
|
||||
|
@ -1,16 +1,22 @@
|
||||
// Copyright (c) 2018 Ultimaker B.V.
|
||||
// Toolbox is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
import QtQuick 2.2
|
||||
import QtQuick 2.7
|
||||
import QtQuick.Controls 1.4
|
||||
import QtQuick.Controls.Styles 1.4
|
||||
import UM 1.1 as UM
|
||||
|
||||
Column
|
||||
Rectangle
|
||||
{
|
||||
color: UM.Theme.getColor("secondary")
|
||||
height: childrenRect.height
|
||||
width: parent.width
|
||||
Column
|
||||
{
|
||||
height: childrenRect.height + 2 * padding
|
||||
spacing: UM.Theme.getSize("toolbox_showcase_spacing").width
|
||||
width: parent.width
|
||||
padding: UM.Theme.getSize("wide_margin").height
|
||||
Label
|
||||
{
|
||||
id: heading
|
||||
@ -43,4 +49,5 @@ Column
|
||||
delegate: ToolboxDownloadsShowcaseTile {}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,37 +1,31 @@
|
||||
// Copyright (c) 2018 Ultimaker B.V.
|
||||
// Toolbox is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
import QtQuick 2.3
|
||||
import QtQuick 2.7
|
||||
import QtQuick.Controls 1.4
|
||||
import QtQuick.Controls.Styles 1.4
|
||||
import QtGraphicalEffects 1.0
|
||||
import UM 1.1 as UM
|
||||
|
||||
Item
|
||||
Rectangle
|
||||
{
|
||||
width: UM.Theme.getSize("toolbox_thumbnail_large").width
|
||||
height: thumbnail.height + packageName.height
|
||||
Rectangle
|
||||
{
|
||||
id: highlight
|
||||
anchors.fill: parent
|
||||
opacity: 0.0
|
||||
color: UM.Theme.getColor("primary")
|
||||
}
|
||||
id: tileBase
|
||||
width: UM.Theme.getSize("toolbox_thumbnail_large").width + (2 * UM.Theme.getSize("default_lining").width)
|
||||
height: thumbnail.height + packageNameBackground.height + (2 * UM.Theme.getSize("default_lining").width)
|
||||
border.width: UM.Theme.getSize("default_lining").width
|
||||
border.color: UM.Theme.getColor("lining")
|
||||
color: "transparent"
|
||||
Rectangle
|
||||
{
|
||||
id: thumbnail
|
||||
color: "white"
|
||||
width: UM.Theme.getSize("toolbox_thumbnail_large").width
|
||||
height: UM.Theme.getSize("toolbox_thumbnail_large").height
|
||||
border
|
||||
{
|
||||
width: UM.Theme.getSize("default_lining").width
|
||||
color: UM.Theme.getColor("lining")
|
||||
}
|
||||
anchors
|
||||
{
|
||||
top: parent.top
|
||||
horizontalCenter: parent.horizontalCenter
|
||||
topMargin: UM.Theme.getSize("default_lining").width
|
||||
}
|
||||
Image
|
||||
{
|
||||
@ -43,13 +37,23 @@ Item
|
||||
mipmap: true
|
||||
}
|
||||
}
|
||||
Rectangle
|
||||
{
|
||||
id: packageNameBackground
|
||||
color: UM.Theme.getColor("primary")
|
||||
anchors
|
||||
{
|
||||
top: thumbnail.bottom
|
||||
horizontalCenter: parent.horizontalCenter
|
||||
}
|
||||
height: UM.Theme.getSize("toolbox_heading_label").height
|
||||
width: parent.width
|
||||
Label
|
||||
{
|
||||
id: packageName
|
||||
text: model.name
|
||||
anchors
|
||||
{
|
||||
top: thumbnail.bottom
|
||||
horizontalCenter: parent.horizontalCenter
|
||||
}
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
@ -57,22 +61,25 @@ Item
|
||||
height: UM.Theme.getSize("toolbox_heading_label").height
|
||||
width: parent.width
|
||||
wrapMode: Text.WordWrap
|
||||
color: UM.Theme.getColor("text")
|
||||
color: UM.Theme.getColor("button_text")
|
||||
font: UM.Theme.getFont("medium_bold")
|
||||
}
|
||||
}
|
||||
MouseArea
|
||||
{
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
onEntered:
|
||||
{
|
||||
thumbnail.border.color = UM.Theme.getColor("primary")
|
||||
highlight.opacity = 0.1
|
||||
packageName.color = UM.Theme.getColor("button_text_hover")
|
||||
packageNameBackground.color = UM.Theme.getColor("primary_hover")
|
||||
tileBase.border.color = UM.Theme.getColor("primary_hover")
|
||||
}
|
||||
onExited:
|
||||
{
|
||||
thumbnail.border.color = UM.Theme.getColor("lining")
|
||||
highlight.opacity = 0.0
|
||||
packageName.color = UM.Theme.getColor("button_text")
|
||||
packageNameBackground.color = UM.Theme.getColor("primary")
|
||||
tileBase.border.color = UM.Theme.getColor("lining")
|
||||
}
|
||||
onClicked:
|
||||
{
|
||||
|
@ -15,6 +15,7 @@ Item
|
||||
Label
|
||||
{
|
||||
text: catalog.i18nc("@info", "You will need to restart Cura before changes in packages have effect.")
|
||||
color: UM.Theme.getColor("text")
|
||||
height: Math.floor(UM.Theme.getSize("toolbox_footer_button").height)
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
anchors
|
||||
@ -25,6 +26,7 @@ Item
|
||||
right: restartButton.right
|
||||
rightMargin: UM.Theme.getSize("default_margin").width
|
||||
}
|
||||
|
||||
}
|
||||
Button
|
||||
{
|
||||
|
@ -234,6 +234,11 @@ class Toolbox(QObject, Extension):
|
||||
|
||||
if not self._dialog:
|
||||
self._dialog = self._createDialog("Toolbox.qml")
|
||||
|
||||
if not self._dialog:
|
||||
Logger.log("e", "Unexpected error trying to create the 'Toolbox' dialog.")
|
||||
return
|
||||
|
||||
self._dialog.show()
|
||||
|
||||
# Apply enabled/disabled state to installed plugins
|
||||
@ -241,7 +246,10 @@ class Toolbox(QObject, Extension):
|
||||
|
||||
def _createDialog(self, qml_name: str) -> Optional[QObject]:
|
||||
Logger.log("d", "Toolbox: Creating dialog [%s].", qml_name)
|
||||
path = os.path.join(PluginRegistry.getInstance().getPluginPath(self.getPluginId()), "resources", "qml", qml_name)
|
||||
plugin_path = PluginRegistry.getInstance().getPluginPath(self.getPluginId())
|
||||
if not plugin_path:
|
||||
return None
|
||||
path = os.path.join(plugin_path, "resources", "qml", qml_name)
|
||||
dialog = self._application.createQmlComponent(path, {"toolbox": self})
|
||||
return dialog
|
||||
|
||||
|
@ -103,8 +103,12 @@ class ClusterUM3OutputDevice(NetworkedPrinterOutputDevice):
|
||||
else:
|
||||
file_formats = CuraApplication.getInstance().getMeshFileHandler().getSupportedFileTypesWrite()
|
||||
|
||||
global_stack = CuraApplication.getInstance().getGlobalContainerStack()
|
||||
if not global_stack:
|
||||
return
|
||||
|
||||
#Create a list from the supported file formats string.
|
||||
machine_file_formats = CuraApplication.getInstance().getGlobalContainerStack().getMetaDataEntry("file_formats").split(";")
|
||||
machine_file_formats = global_stack.getMetaDataEntry("file_formats").split(";")
|
||||
machine_file_formats = [file_type.strip() for file_type in machine_file_formats]
|
||||
#Exception for UM3 firmware version >=4.4: UFP is now supported and should be the preferred file format.
|
||||
if "application/x-ufp" not in machine_file_formats and self.printerType == "ultimaker3" and Version(self.firmwareVersion) >= Version("4.4"):
|
||||
@ -125,6 +129,10 @@ class ClusterUM3OutputDevice(NetworkedPrinterOutputDevice):
|
||||
else:
|
||||
writer = CuraApplication.getInstance().getMeshFileHandler().getWriterByMimeType(cast(str, preferred_format["mime_type"]))
|
||||
|
||||
if not writer:
|
||||
Logger.log("e", "Unexpected error when trying to get the FileWriter")
|
||||
return
|
||||
|
||||
#This function pauses with the yield, waiting on instructions on which printer it needs to print with.
|
||||
self._sending_job = self._sendPrintJob(writer, preferred_format, nodes)
|
||||
self._sending_job.send(None) #Start the generator.
|
||||
@ -205,6 +213,8 @@ class ClusterUM3OutputDevice(NetworkedPrinterOutputDevice):
|
||||
yield #To prevent having to catch the StopIteration exception.
|
||||
|
||||
def _sendPrintJobWaitOnWriteJobFinished(self, job: WriteFileJob) -> None:
|
||||
# This is the callback when the job finishes, where the message is created
|
||||
assert(self._write_job_progress_message is not None)
|
||||
self._write_job_progress_message.hide()
|
||||
|
||||
self._progress_message = Message(i18n_catalog.i18nc("@info:status", "Sending data to printer"), lifetime = 0, dismissable = False, progress = -1,
|
||||
@ -249,6 +259,7 @@ class ClusterUM3OutputDevice(NetworkedPrinterOutputDevice):
|
||||
self.activePrinterChanged.emit()
|
||||
|
||||
def _onPostPrintJobFinished(self, reply: QNetworkReply) -> None:
|
||||
if self._progress_message is not None:
|
||||
self._progress_message.hide()
|
||||
self._compressing_gcode = False
|
||||
self._sending_gcode = False
|
||||
|
@ -170,7 +170,10 @@ class DiscoverUM3Action(MachineAction):
|
||||
Logger.log("d", "Creating additional ui components for UM3.")
|
||||
|
||||
# Create networking dialog
|
||||
path = os.path.join(PluginRegistry.getInstance().getPluginPath("UM3NetworkPrinting"), "UM3InfoComponents.qml")
|
||||
plugin_path = PluginRegistry.getInstance().getPluginPath("UM3NetworkPrinting")
|
||||
if not plugin_path:
|
||||
return
|
||||
path = os.path.join(plugin_path, "UM3InfoComponents.qml")
|
||||
self.__additional_components_view = CuraApplication.getInstance().createQmlComponent(path, {"manager": self})
|
||||
if not self.__additional_components_view:
|
||||
Logger.log("w", "Could not create ui components for UM3.")
|
||||
|
@ -23,7 +23,7 @@ if TYPE_CHECKING:
|
||||
#
|
||||
# This way it won't freeze up the interface while sending those materials.
|
||||
class SendMaterialJob(Job):
|
||||
def __init__(self, device: "ClusterUM3OutputDevice"):
|
||||
def __init__(self, device: "ClusterUM3OutputDevice") -> None:
|
||||
super().__init__()
|
||||
self.device = device #type: ClusterUM3OutputDevice
|
||||
|
||||
|
@ -6,6 +6,7 @@ import io
|
||||
|
||||
from UM.VersionUpgrade import VersionUpgrade
|
||||
|
||||
deleted_settings = {"prime_tower_wall_thickness", "dual_pre_wipe", "prime_tower_purge_volume"}
|
||||
|
||||
## Upgrades configurations from the state they were in at version 3.4 to the
|
||||
# state they should be in at version 4.0.
|
||||
@ -68,6 +69,9 @@ class VersionUpgrade34to40(VersionUpgrade):
|
||||
parser["metadata"]["setting_version"] = "5"
|
||||
|
||||
self._resetConcentric3DInfillPattern(parser)
|
||||
if "values" in parser:
|
||||
for deleted_setting in deleted_settings:
|
||||
del parser["values"][deleted_setting]
|
||||
|
||||
result = io.StringIO()
|
||||
parser.write(result)
|
||||
|
@ -0,0 +1,35 @@
|
||||
# Copyright (c) 2018 Ultimaker B.V.
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
import configparser #To parse the resulting config files.
|
||||
import pytest #To register tests with.
|
||||
|
||||
import VersionUpgrade34to40 #The module we're testing.
|
||||
|
||||
## Creates an instance of the upgrader to test with.
|
||||
@pytest.fixture
|
||||
def upgrader():
|
||||
return VersionUpgrade34to40.VersionUpgrade34to40()
|
||||
|
||||
test_upgrade_version_nr_data = [
|
||||
("Empty config file",
|
||||
"""[general]
|
||||
version = 5
|
||||
[metadata]
|
||||
setting_version = 4
|
||||
"""
|
||||
)
|
||||
]
|
||||
|
||||
## Tests whether the version numbers are updated.
|
||||
@pytest.mark.parametrize("test_name, file_data", test_upgrade_version_nr_data)
|
||||
def test_upgradeVersionNr(test_name, file_data, upgrader):
|
||||
#Perform the upgrade.
|
||||
_, upgraded_instances = upgrader.upgradePreferences(file_data, "<string>")
|
||||
upgraded_instance = upgraded_instances[0]
|
||||
parser = configparser.ConfigParser(interpolation = None)
|
||||
parser.read_string(upgraded_instance)
|
||||
|
||||
#Check the new version.
|
||||
assert parser["general"]["version"] == "6"
|
||||
assert parser["metadata"]["setting_version"] == "5"
|
@ -2,6 +2,7 @@
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
from math import pi, sin, cos, sqrt
|
||||
from typing import Dict
|
||||
|
||||
import numpy
|
||||
|
||||
@ -42,7 +43,7 @@ class X3DReader(MeshReader):
|
||||
def __init__(self) -> None:
|
||||
super().__init__()
|
||||
self._supported_extensions = [".x3d"]
|
||||
self._namespaces = {}
|
||||
self._namespaces = {} # type: Dict[str, str]
|
||||
|
||||
# Main entry point
|
||||
# Reads the file, returns a SceneNode (possibly with nested ones), or None
|
||||
|
@ -24,7 +24,6 @@
|
||||
"machine_depth": { "default_value": 149.86 },
|
||||
"machine_height": { "default_value": 99.822 },
|
||||
"machine_center_is_zero": { "default_value": true },
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"machine_head_with_fans_polygon": {
|
||||
"default_value": [
|
||||
[ 0, 0 ],
|
||||
|
@ -18,7 +18,6 @@
|
||||
|
||||
"overrides": {
|
||||
"machine_name": { "default_value": "3Dator" },
|
||||
"machine_nozzle_size": { "default_value": 0.5 },
|
||||
"speed_travel": { "default_value": 120 },
|
||||
"prime_tower_size": { "default_value": 8.660254037844387 },
|
||||
"infill_sparse_density": { "default_value": 20 },
|
||||
|
@ -26,9 +26,6 @@
|
||||
"machine_center_is_zero": {
|
||||
"default_value": false
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"machine_head_polygon": {
|
||||
"default_value": [
|
||||
[75, 18],
|
||||
|
@ -45,10 +45,6 @@
|
||||
{
|
||||
"default_value": false
|
||||
},
|
||||
"machine_nozzle_size":
|
||||
{
|
||||
"default_value": 0.4
|
||||
},
|
||||
"gantry_height":
|
||||
{
|
||||
"default_value": 0
|
||||
|
@ -21,7 +21,6 @@
|
||||
"prime_tower_size": { "default_value": 7.745966692414834 },
|
||||
"machine_name": { "default_value": "BFB_Test" },
|
||||
"machine_heated_bed": { "default_value": false },
|
||||
"machine_nozzle_size": { "default_value": 0.5 },
|
||||
"speed_layer_0": { "default_value": 25 },
|
||||
"machine_width": { "default_value": 275 },
|
||||
"machine_gcode_flavor": { "default_value": "BFB" },
|
||||
|
@ -54,7 +54,6 @@
|
||||
"prime_tower_position_y": { "default_value": 178 },
|
||||
"prime_tower_wipe_enabled": { "default_value": false },
|
||||
"prime_tower_min_volume": { "default_value": 50 },
|
||||
"dual_pre_wipe": { "default_value": false },
|
||||
|
||||
"prime_blob_enable": { "enabled": true },
|
||||
|
||||
|
@ -54,7 +54,6 @@
|
||||
"prime_tower_position_y": { "default_value": 178 },
|
||||
"prime_tower_wipe_enabled": { "default_value": false },
|
||||
"prime_tower_min_volume": { "default_value": 50 },
|
||||
"dual_pre_wipe": { "default_value": false },
|
||||
|
||||
"prime_blob_enable": { "enabled": true },
|
||||
|
||||
|
@ -53,7 +53,6 @@
|
||||
"prime_tower_position_y": { "default_value": 178 },
|
||||
"prime_tower_wipe_enabled": { "default_value": false },
|
||||
"prime_tower_min_volume": { "default_value": 50 },
|
||||
"dual_pre_wipe": { "default_value": false },
|
||||
|
||||
"prime_blob_enable": { "enabled": true },
|
||||
|
||||
|
@ -44,7 +44,7 @@
|
||||
"material_print_temp_wait": { "default_value": false },
|
||||
"material_bed_temp_wait": { "default_value": false },
|
||||
"prime_tower_enable": { "default_value": false },
|
||||
"prime_tower_wall_thickness": { "resolve": 0.7 },
|
||||
"prime_tower_min_volume": { "value": "0.7" },
|
||||
"prime_tower_size": { "value": 24.0 },
|
||||
"prime_tower_position_x": { "value": 125 },
|
||||
"prime_tower_position_y": { "value": 70 },
|
||||
|
@ -31,9 +31,6 @@
|
||||
[30, 34]
|
||||
]
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"layer_height_0": {
|
||||
"default_value": 0.2
|
||||
},
|
||||
|
@ -27,9 +27,6 @@
|
||||
"machine_center_is_zero": {
|
||||
"default_value": false
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"machine_head_with_fans_polygon": {
|
||||
"default_value": [
|
||||
[17, 70],
|
||||
|
@ -28,9 +28,6 @@
|
||||
"machine_center_is_zero": {
|
||||
"default_value": true
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"machine_head_with_fans_polygon": {
|
||||
"default_value": [
|
||||
[17, 40],
|
||||
|
@ -22,7 +22,6 @@
|
||||
"speed_wall_0": { "default_value": 30 },
|
||||
"speed_topbottom": { "default_value": 30 },
|
||||
"layer_height": { "default_value": 0.2 },
|
||||
"machine_nozzle_size": { "default_value": 0.5 },
|
||||
"speed_print": { "default_value": 30 },
|
||||
"speed_infill": { "default_value": 30 },
|
||||
"machine_extruder_count": { "default_value": 1 },
|
||||
|
@ -23,7 +23,6 @@
|
||||
"machine_height": { "default_value": 250 },
|
||||
"machine_depth": { "default_value": 190 },
|
||||
"machine_center_is_zero": { "default_value": true },
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||
"machine_start_gcode": { "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 ;Home all axes (max endstops)\nG1 Z15.0 F9000 ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F200 E3 ;extrude 3mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F9000\n;Put printing message on LCD screen\nM117 Printing..."},
|
||||
"machine_end_gcode": { "default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG28 ;Home all axes (max endstops)\nM84 ;steppers off\nG90 ;absolute positioning" },
|
||||
|
@ -52,9 +52,6 @@
|
||||
"bottom_thickness": {
|
||||
"default_value": 1
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"speed_print": {
|
||||
"default_value": 75
|
||||
},
|
||||
|
@ -35,7 +35,6 @@
|
||||
"machine_depth": { "default_value": 234 },
|
||||
"machine_center_is_zero": { "default_value": false },
|
||||
"machine_heated_bed": { "default_value": true },
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"machine_head_with_fans_polygon": { "default_value": [[-75, 35], [-75, -18], [18, 35], [18, -18]] },
|
||||
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||
"machine_max_feedrate_x": { "default_value": 250 },
|
||||
|
@ -4247,6 +4247,27 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"support_fan_enable":
|
||||
{
|
||||
"label": "Fan Speed Override",
|
||||
"description": "When enabled, the print cooling fan speed is altered for the skin regions immediately above the support.",
|
||||
"type": "bool",
|
||||
"default_value": false,
|
||||
"enabled": "support_enable",
|
||||
"settable_per_mesh": false
|
||||
},
|
||||
"support_supported_skin_fan_speed":
|
||||
{
|
||||
"label": "Supported Skin Fan Speed",
|
||||
"description": "Percentage fan speed to use when printing the skin regions immediately above the support. Using a high fan speed can make the support easier to remove.",
|
||||
"unit": "%",
|
||||
"minimum_value": "0",
|
||||
"maximum_value": "100",
|
||||
"default_value": 100,
|
||||
"type": "float",
|
||||
"enabled": "support_enable and support_fan_enable",
|
||||
"settable_per_mesh": false
|
||||
},
|
||||
"support_use_towers":
|
||||
{
|
||||
"label": "Use Towers",
|
||||
@ -4992,32 +5013,12 @@
|
||||
"description": "The minimum volume for each layer of the prime tower in order to purge enough material.",
|
||||
"unit": "mm³",
|
||||
"type": "float",
|
||||
"default_value": 10,
|
||||
"value": "8.48 if prime_tower_circular else 10",
|
||||
"default_value": 5,
|
||||
"minimum_value": "0",
|
||||
"maximum_value_warning": "round((resolveOrValue('prime_tower_size') * 0.5) ** 2 * 3.14159 * resolveOrValue('layer_height'), 2) if prime_tower_circular else resolveOrValue('prime_tower_size') ** 2 * resolveOrValue('layer_height')",
|
||||
"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')",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true,
|
||||
"children":
|
||||
{
|
||||
"prime_tower_wall_thickness":
|
||||
{
|
||||
"label": "Prime Tower Thickness",
|
||||
"description": "The thickness of the hollow prime tower. A thickness larger than half the Prime Tower Minimum Volume will result in a dense prime tower.",
|
||||
"unit": "mm",
|
||||
"type": "float",
|
||||
"default_value": 2,
|
||||
"value": "round(max(2 * prime_tower_line_width, (0.5 * (prime_tower_size - math.sqrt(max(0, prime_tower_size ** 2 - 4 * prime_tower_min_volume / (3.14159 * layer_height))))) if prime_tower_circular else (0.5 * (prime_tower_size - math.sqrt(max(0, prime_tower_size ** 2 - prime_tower_min_volume / layer_height))))), 3)",
|
||||
"resolve": "max(extruderValues('prime_tower_wall_thickness'))",
|
||||
"minimum_value": "0.001",
|
||||
"minimum_value_warning": "2 * min(extruderValues('prime_tower_line_width')) - 0.0001",
|
||||
"maximum_value_warning": "prime_tower_size / 2",
|
||||
"enabled": "prime_tower_enable",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": false
|
||||
}
|
||||
}
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"prime_tower_position_x":
|
||||
{
|
||||
@ -5072,29 +5073,6 @@
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"dual_pre_wipe":
|
||||
{
|
||||
"label": "Wipe Nozzle After Switch",
|
||||
"description": "After switching extruder, wipe the oozed material off of the nozzle on the first thing printed. This performs a safe slow wipe move at a place where the oozed material causes least harm to the surface quality of your print.",
|
||||
"type": "bool",
|
||||
"enabled": "resolveOrValue('prime_tower_enable')",
|
||||
"default_value": true,
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"prime_tower_purge_volume":
|
||||
{
|
||||
"label": "Prime Tower Purge Volume",
|
||||
"description": "Amount of filament to be purged when wiping on the prime tower. Purging is useful for compensating the filament lost by oozing during inactivity of the nozzle.",
|
||||
"type": "float",
|
||||
"enabled": "resolveOrValue('prime_tower_enable') and dual_pre_wipe",
|
||||
"unit": "mm³",
|
||||
"default_value": 0,
|
||||
"minimum_value": "0",
|
||||
"maximum_value_warning": "2.5",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"ooze_shield_enabled":
|
||||
{
|
||||
"label": "Enable Ooze Shield",
|
||||
|
@ -44,7 +44,6 @@
|
||||
"retraction_amount": { "default_value": 1 },
|
||||
"retraction_speed": { "default_value": 50},
|
||||
"material_flow": { "default_value": 87 },
|
||||
"machine_nozzle_size": { "default_value": 0.35 },
|
||||
"adhesion_type": { "default_value": "skirt" },
|
||||
"skirt_brim_minimal_length": { "default_value": 130},
|
||||
|
||||
|
@ -27,7 +27,6 @@
|
||||
"machine_depth": { "default_value": 406 },
|
||||
"machine_height": { "default_value": 533 },
|
||||
"machine_center_is_zero": { "default_value": false },
|
||||
"machine_nozzle_size": { "default_value": 0.5 },
|
||||
"layer_height": { "default_value": 0.2 },
|
||||
"layer_height_0": { "default_value": 0.3 },
|
||||
"retraction_amount": { "default_value": 1 },
|
||||
|
@ -28,7 +28,6 @@
|
||||
"machine_depth": { "default_value": 406 },
|
||||
"machine_height": { "default_value": 533 },
|
||||
"machine_center_is_zero": { "default_value": false },
|
||||
"machine_nozzle_size": { "default_value": 0.5 },
|
||||
"layer_height": { "default_value": 0.2 },
|
||||
"layer_height_0": { "default_value": 0.3 },
|
||||
"retraction_amount": { "default_value": 1 },
|
||||
|
@ -29,9 +29,6 @@
|
||||
"machine_center_is_zero": {
|
||||
"default_value": false
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.5
|
||||
},
|
||||
"machine_head_polygon": {
|
||||
"default_value": [
|
||||
[-75, -18],
|
||||
|
@ -26,7 +26,6 @@
|
||||
"machine_width": { "default_value": 170 },
|
||||
"machine_height": { "default_value": 145 },
|
||||
"machine_depth": { "default_value": 160 },
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"machine_heated_bed": { "default_value": true },
|
||||
"machine_center_is_zero": { "default_value": false },
|
||||
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||
|
@ -32,9 +32,6 @@
|
||||
"machine_center_is_zero": {
|
||||
"default_value": true
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"machine_head_polygon": {
|
||||
"default_value": [
|
||||
[-43.7, -19.2],
|
||||
|
@ -34,9 +34,6 @@
|
||||
"machine_center_is_zero": {
|
||||
"default_value": false
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"machine_nozzle_heat_up_speed": {
|
||||
"default_value": 2
|
||||
},
|
||||
|
@ -35,9 +35,6 @@
|
||||
"machine_center_is_zero": {
|
||||
"default_value": false
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"machine_nozzle_heat_up_speed": {
|
||||
"default_value": 2
|
||||
},
|
||||
|
@ -32,9 +32,6 @@
|
||||
"machine_center_is_zero": {
|
||||
"default_value": true
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"machine_gcode_flavor": {
|
||||
"default_value": "RepRap (Marlin/Sprinter)"
|
||||
},
|
||||
|
@ -31,9 +31,6 @@
|
||||
"machine_center_is_zero": {
|
||||
"default_value": true
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.35
|
||||
},
|
||||
"machine_gcode_flavor": {
|
||||
"default_value": "RepRap (Marlin/Sprinter)"
|
||||
},
|
||||
|
@ -33,9 +33,6 @@
|
||||
"machine_center_is_zero": {
|
||||
"default_value": false
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"machine_head_polygon": {
|
||||
"default_value": [
|
||||
[-75, -18],
|
||||
|
@ -33,9 +33,6 @@
|
||||
"machine_center_is_zero": {
|
||||
"default_value": false
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"machine_head_polygon": {
|
||||
"default_value": [
|
||||
[-75, -18],
|
||||
|
@ -30,9 +30,6 @@
|
||||
"machine_center_is_zero": {
|
||||
"default_value": false
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"machine_head_with_fans_polygon":
|
||||
{
|
||||
"default_value": [
|
||||
|
@ -30,9 +30,6 @@
|
||||
"machine_center_is_zero": {
|
||||
"default_value": false
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"machine_head_with_fans_polygon":
|
||||
{
|
||||
"default_value": [
|
||||
|
@ -33,9 +33,6 @@
|
||||
"machine_center_is_zero": {
|
||||
"default_value": false
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"gantry_height": {
|
||||
"default_value": 55
|
||||
},
|
||||
|
@ -29,9 +29,6 @@
|
||||
"machine_center_is_zero": {
|
||||
"default_value": true
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"machine_head_with_fans_polygon": {
|
||||
"default_value": [
|
||||
[ -75, 35 ],
|
||||
|
@ -60,10 +60,6 @@
|
||||
"machine_height": { "default_value": 120 },
|
||||
"machine_heated_bed": { "default_value": true },
|
||||
"machine_center_is_zero": { "default_value": false },
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4,
|
||||
"minimum_value": 0.15
|
||||
},
|
||||
"machine_max_feedrate_x": { "default_value": 150 },
|
||||
"machine_max_feedrate_y": { "default_value": 150 },
|
||||
"machine_max_feedrate_z": { "default_value": 1.5 },
|
||||
|
@ -20,7 +20,6 @@
|
||||
"machine_height": { "default_value": 300 },
|
||||
"machine_heated_bed": { "default_value": true },
|
||||
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"machine_head_with_fans_polygon": {
|
||||
"default_value": [
|
||||
[ -3, 3 ],
|
||||
|
@ -70,9 +70,6 @@
|
||||
"gantry_height": {
|
||||
"default_value": 55
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"machine_head_with_fans_polygon":
|
||||
{
|
||||
"default_value": [
|
||||
|
@ -24,7 +24,6 @@
|
||||
"infill_sparse_density": { "default_value": 15 },
|
||||
"speed_travel": { "default_value": 150 },
|
||||
"layer_height": { "default_value": 0.3 },
|
||||
"machine_nozzle_size": { "default_value": 0.35 },
|
||||
"material_print_temperature": { "default_value": 240 },
|
||||
"machine_extruder_count": { "default_value": 5 },
|
||||
"machine_heated_bed": { "default_value": true },
|
||||
|
@ -28,9 +28,6 @@
|
||||
"machine_depth": {
|
||||
"default_value": 130
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.067
|
||||
},
|
||||
"machine_head_with_fans_polygon":
|
||||
{
|
||||
"default_value": [
|
||||
|
@ -21,7 +21,6 @@
|
||||
"machine_depth": { "default_value": 100 },
|
||||
"machine_height": { "default_value": 130 },
|
||||
"machine_center_is_zero": { "default_value": false },
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"layer_height": { "default_value": 0.2 },
|
||||
"layer_height_0": { "default_value": 0.3 },
|
||||
"retraction_amount": { "default_value": 0.7 },
|
||||
|
@ -22,7 +22,6 @@
|
||||
"machine_height": { "default_value": 150 },
|
||||
"machine_depth": { "default_value": 140 },
|
||||
"machine_center_is_zero": { "default_value": false },
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"machine_head_with_fans_polygon": {
|
||||
"default_value": [
|
||||
[-49, 20],
|
||||
|
@ -22,7 +22,6 @@
|
||||
"machine_height": { "default_value": 235 },
|
||||
"machine_depth": { "default_value": 150 },
|
||||
"machine_center_is_zero": { "default_value": false },
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"machine_head_with_fans_polygon": {
|
||||
"default_value": [
|
||||
[ 55, -20 ],
|
||||
|
@ -19,7 +19,6 @@
|
||||
"machine_width": { "default_value": 100 },
|
||||
"machine_depth": { "default_value": 100 },
|
||||
"machine_height": { "default_value": 115 },
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"machine_head_with_fans_polygon": {
|
||||
"default_value": [
|
||||
[-40, 1000],
|
||||
|
@ -32,9 +32,6 @@
|
||||
"machine_center_is_zero": {
|
||||
"default_value": false
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"machine_head_polygon": {
|
||||
"default_value": [
|
||||
[-75, -18],
|
||||
|
@ -24,7 +24,6 @@
|
||||
"machine_depth": { "default_value": 210 },
|
||||
"machine_center_is_zero": { "default_value": false },
|
||||
"material_bed_temperature": { "default_value": 55 },
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"layer_height": { "default_value": 0.1 },
|
||||
"layer_height_0": { "default_value": 0.15 },
|
||||
"retraction_amount": { "default_value": 0.8 },
|
||||
|
@ -32,9 +32,6 @@
|
||||
"machine_center_is_zero": {
|
||||
"default_value": false
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"machine_head_polygon": {
|
||||
"default_value": [
|
||||
[-75, -18],
|
||||
|
@ -33,9 +33,6 @@
|
||||
"machine_heated_bed": {
|
||||
"default_value": true
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"machine_nozzle_heat_up_speed": {
|
||||
"default_value": 6
|
||||
},
|
||||
|
@ -33,9 +33,6 @@
|
||||
"machine_heated_bed": {
|
||||
"default_value": true
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"machine_nozzle_heat_up_speed": {
|
||||
"default_value": 6
|
||||
},
|
||||
|
@ -32,9 +32,6 @@
|
||||
"machine_heated_bed": {
|
||||
"default_value": true
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"machine_nozzle_heat_up_speed": {
|
||||
"default_value": 6
|
||||
},
|
||||
|
@ -32,9 +32,6 @@
|
||||
"machine_heated_bed": {
|
||||
"default_value": true
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"machine_nozzle_heat_up_speed": {
|
||||
"default_value": 6
|
||||
},
|
||||
|
@ -69,9 +69,6 @@
|
||||
"machine_depth": {
|
||||
"default_value": 150
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"machine_gcode_flavor": {
|
||||
"default_value": "RepRap"
|
||||
},
|
||||
|
@ -80,9 +80,6 @@
|
||||
"machine_center_is_zero": {
|
||||
"default_value": false
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"gantry_height": {
|
||||
"default_value": 25
|
||||
},
|
||||
|
@ -28,9 +28,6 @@
|
||||
"machine_heated_bed": {
|
||||
"default_value": true
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"gantry_height": {
|
||||
"default_value": 0
|
||||
},
|
||||
|
@ -26,7 +26,6 @@
|
||||
"machine_height": { "default_value": 530 },
|
||||
"machine_max_feedrate_z": { "default_value": 400 },
|
||||
"machine_name": { "default_value": "Artemis" },
|
||||
"machine_nozzle_size": { "default_value": 0.5 },
|
||||
"machine_shape": { "default_value": "elliptic" },
|
||||
"machine_width": { "default_value": 290 },
|
||||
"relative_extrusion": { "default_value": false },
|
||||
|
@ -26,7 +26,6 @@
|
||||
"machine_height": { "default_value": 395 },
|
||||
"machine_max_feedrate_z": { "default_value": 300 },
|
||||
"machine_name": { "default_value": "Rostock Max V3.2" },
|
||||
"machine_nozzle_size": { "default_value": 0.5 },
|
||||
"machine_shape": { "default_value": "elliptic" },
|
||||
"machine_width": { "default_value": 265 },
|
||||
"relative_extrusion": { "default_value": false },
|
||||
|
@ -43,10 +43,6 @@
|
||||
{
|
||||
"default_value": false
|
||||
},
|
||||
"machine_nozzle_size":
|
||||
{
|
||||
"default_value": 0.4
|
||||
},
|
||||
"gantry_height":
|
||||
{
|
||||
"default_value": 0
|
||||
|
@ -24,7 +24,6 @@
|
||||
"machine_height": { "default_value": 200 },
|
||||
"machine_depth": { "default_value": 200 },
|
||||
"machine_center_is_zero": { "default_value": false },
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"machine_head_polygon":
|
||||
{
|
||||
"default_value":
|
||||
|
@ -8,7 +8,10 @@
|
||||
"manufacturer": "Tevo",
|
||||
"file_formats": "text/x-gcode",
|
||||
"icon": "icon_ultimaker2.png",
|
||||
"has_materials": true
|
||||
"has_materials": true,
|
||||
"machine_extruder_trains": {
|
||||
"0": "tevo_tornado_extruder_0"
|
||||
}
|
||||
},
|
||||
"overrides": {
|
||||
"machine_name": {
|
||||
@ -34,12 +37,6 @@
|
||||
[30, 34]
|
||||
]
|
||||
},
|
||||
"material_diameter": {
|
||||
"default_value": 1.75
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"top_bottom_thickness": {
|
||||
"default_value": 1.2
|
||||
},
|
||||
|
@ -27,7 +27,6 @@
|
||||
"machine_depth": { "default_value": 275 },
|
||||
"machine_center_is_zero": { "default_value": false },
|
||||
"material_bed_temperature": { "default_value": 70 },
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"layer_height_0": { "default_value": 0.1 },
|
||||
"retraction_amount": { "default_value": 2 },
|
||||
"retraction_speed": { "default_value": 50 },
|
||||
|
@ -54,10 +54,6 @@
|
||||
"machine_center_is_zero": {
|
||||
"default_value": false
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4,
|
||||
"minimum_value": "0.001"
|
||||
},
|
||||
"gantry_height": {
|
||||
"default_value": 48
|
||||
},
|
||||
|
@ -35,9 +35,6 @@
|
||||
"machine_center_is_zero": {
|
||||
"default_value": false
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"machine_head_with_fans_polygon":
|
||||
{
|
||||
"default_value": [
|
||||
|
@ -37,9 +37,6 @@
|
||||
"machine_center_is_zero": {
|
||||
"default_value": false
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"machine_head_with_fans_polygon":
|
||||
{
|
||||
"default_value": [
|
||||
|
@ -11,7 +11,10 @@
|
||||
"manufacturer": "TheCoolTool",
|
||||
"file_formats": "text/x-ngc;text/x-gcode",
|
||||
"platform": "uni_print_3d_platform.stl",
|
||||
"platform_offset": [0, 0, 0]
|
||||
"platform_offset": [0, 0, 0],
|
||||
"machine_extruder_trains": {
|
||||
"0": "uni_print_3d_extruder_0"
|
||||
}
|
||||
},
|
||||
|
||||
"overrides": {
|
||||
@ -21,8 +24,6 @@
|
||||
"machine_height": { "default_value": 230 },
|
||||
"machine_depth": { "default_value": 220 },
|
||||
"machine_center_is_zero": { "default_value": true },
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"material_diameter": { "default_value": 1.75 },
|
||||
"machine_nozzle_heat_up_speed": { "default_value": 2.0 },
|
||||
"machine_nozzle_cool_down_speed": { "default_value": 2.0 },
|
||||
"machine_head_shape_min_x": { "default_value": 75 },
|
||||
|
@ -30,9 +30,6 @@
|
||||
"machine_center_is_zero": {
|
||||
"default_value": false
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.5
|
||||
},
|
||||
"gantry_height": {
|
||||
"default_value": 55
|
||||
},
|
||||
|
@ -30,9 +30,6 @@
|
||||
"machine_shape": {
|
||||
"default_value": "elliptic"
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.35
|
||||
},
|
||||
"machine_head_shape_min_x": {
|
||||
"default_value": 0
|
||||
},
|
||||
|
@ -42,9 +42,6 @@
|
||||
"machine_center_is_zero": {
|
||||
"default_value": false
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.35
|
||||
},
|
||||
"machine_head_polygon": {
|
||||
"default_value": [
|
||||
[-60, -18],
|
||||
|
@ -43,9 +43,6 @@
|
||||
"machine_use_extruder_offset_to_offset_coords": {
|
||||
"default_value": true
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.35
|
||||
},
|
||||
"machine_head_polygon": {
|
||||
"default_value": [
|
||||
[-60, -18],
|
||||
|
@ -11,6 +11,9 @@
|
||||
"has_materials": true,
|
||||
"platform": "wanhao_225_145_platform.obj",
|
||||
"platform_texture": "Wanhaobackplate.png",
|
||||
"machine_extruder_trains": {
|
||||
"0": "wanhao_d4s_extruder_0"
|
||||
},
|
||||
"platform_offset": [
|
||||
0,
|
||||
-28,
|
||||
@ -33,9 +36,6 @@
|
||||
"machine_heated_bed": {
|
||||
"default_value": true
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"machine_gcode_flavor": {
|
||||
"default_value": "RepRap (Marlin/Sprinter)"
|
||||
},
|
||||
@ -44,9 +44,6 @@
|
||||
},
|
||||
"machine_end_gcode": {
|
||||
"default_value": "M104 S0 ;extruder heater off \n G91 ;relative positioning\n G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\n G1 Z+0.5 E-5 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more\n G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\n M84 ;steppers off\n G90 ;absolute positioning"
|
||||
},
|
||||
"material_diameter": {
|
||||
"default_value": 1.75
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -11,6 +11,9 @@
|
||||
"has_materials": true,
|
||||
"platform": "wanhao_200_200_platform.obj",
|
||||
"platform_texture": "Wanhaobackplate.png",
|
||||
"machine_extruder_trains": {
|
||||
"0": "wanhao_d6_extruder_0"
|
||||
},
|
||||
"platform_offset": [
|
||||
0,
|
||||
-28,
|
||||
@ -33,9 +36,6 @@
|
||||
"machine_depth": {
|
||||
"default_value": 200
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"machine_heated_bed": {
|
||||
"default_value": true
|
||||
},
|
||||
@ -50,9 +50,6 @@
|
||||
},
|
||||
"machine_end_gcode": {
|
||||
"default_value": "M104 S0 ;extruder heater off \n G91 ;relative positioning\n G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\n G1 Z+0.5 E-5 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more\n G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\n M84 ;steppers off\n G90 ;absolute positioning"
|
||||
},
|
||||
"material_diameter": {
|
||||
"default_value": 1.75
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -11,6 +11,9 @@
|
||||
"has_materials": true,
|
||||
"platform": "wanhao_200_200_platform.obj",
|
||||
"platform_texture": "Wanhaobackplate.png",
|
||||
"machine_extruder_trains": {
|
||||
"0": "wanhao_d6_plus_extruder_0"
|
||||
},
|
||||
"platform_offset": [
|
||||
0,
|
||||
-28,
|
||||
@ -30,9 +33,6 @@
|
||||
"machine_depth": {
|
||||
"default_value": 200
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"machine_heated_bed": {
|
||||
"default_value": true
|
||||
},
|
||||
@ -44,9 +44,6 @@
|
||||
},
|
||||
"machine_end_gcode": {
|
||||
"default_value": "M104 S0 ;extruder heater off \n G91 ;relative positioning\n G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\n G1 Z+0.5 E-5 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more\n G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\n M84 ;steppers off\n G90 ;absolute positioning"
|
||||
},
|
||||
"material_diameter": {
|
||||
"default_value": 1.75
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -11,6 +11,9 @@
|
||||
"has_materials": true,
|
||||
"platform": "wanhao_300_200_platform.obj",
|
||||
"platform_texture": "Wanhaobackplate.png",
|
||||
"machine_extruder_trains": {
|
||||
"0": "wanhao_duplicator5S_extruder_0"
|
||||
},
|
||||
"platform_offset": [
|
||||
0,
|
||||
-28,
|
||||
@ -36,9 +39,6 @@
|
||||
"machine_heated_bed": {
|
||||
"default_value": false
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"machine_gcode_flavor": {
|
||||
"default_value": "RepRap (Marlin/Sprinter)"
|
||||
},
|
||||
@ -47,9 +47,6 @@
|
||||
},
|
||||
"machine_end_gcode": {
|
||||
"default_value": "M104 S0 ;extruder heater off \n G91 ;relative positioning\n G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\n G1 Z+0.5 E-5 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more\n G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\n M84 ;steppers off\n G90 ;absolute positioning"
|
||||
},
|
||||
"material_diameter": {
|
||||
"default_value": 3
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -11,6 +11,9 @@
|
||||
"has_materials": true,
|
||||
"platform": "wanhao_300_200_platform.obj",
|
||||
"platform_texture": "Wanhaobackplate.png",
|
||||
"machine_extruder_trains": {
|
||||
"0": "wanhao_duplicator5Smini_extruder_0"
|
||||
},
|
||||
"platform_offset": [
|
||||
0,
|
||||
-28,
|
||||
@ -33,9 +36,6 @@
|
||||
"machine_heated_bed": {
|
||||
"default_value": false
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"machine_gcode_flavor": {
|
||||
"default_value": "RepRap (Marlin/Sprinter)"
|
||||
},
|
||||
@ -44,9 +44,6 @@
|
||||
},
|
||||
"machine_end_gcode": {
|
||||
"default_value": "M104 S0 ;extruder heater off \n G91 ;relative positioning\n G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\n G1 Z+0.5 E-5 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more\n G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\n M84 ;steppers off\n G90 ;absolute positioning"
|
||||
},
|
||||
"material_diameter": {
|
||||
"default_value": 3
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -11,6 +11,9 @@
|
||||
"has_materials": true,
|
||||
"platform": "wanhao_200_200_platform.obj",
|
||||
"platform_texture": "Wanhaobackplate.png",
|
||||
"machine_extruder_trains": {
|
||||
"0": "wanhao_i3_extruder_0"
|
||||
},
|
||||
"platform_offset": [
|
||||
0,
|
||||
-28,
|
||||
@ -33,9 +36,6 @@
|
||||
"machine_heated_bed": {
|
||||
"default_value": true
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"machine_gcode_flavor": {
|
||||
"default_value": "RepRap (Marlin/Sprinter)"
|
||||
},
|
||||
@ -44,9 +44,6 @@
|
||||
},
|
||||
"machine_end_gcode": {
|
||||
"default_value": "M104 S0 ;extruder heater off \n G91 ;relative positioning\n G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\n G1 Z+0.5 E-5 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more\n G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\n M84 ;steppers off\n G90 ;absolute positioning"
|
||||
},
|
||||
"material_diameter": {
|
||||
"default_value": 1.75
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -11,6 +11,9 @@
|
||||
"has_materials": true,
|
||||
"platform": "wanhao_110_110_platform.obj",
|
||||
"platform_texture": "Wanhaobackplate.png",
|
||||
"machine_extruder_trains": {
|
||||
"0": "wanhao_i3mini_extruder_0"
|
||||
},
|
||||
"platform_offset": [
|
||||
0,
|
||||
-15,
|
||||
@ -33,9 +36,6 @@
|
||||
"machine_heated_bed": {
|
||||
"default_value": false
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"machine_gcode_flavor": {
|
||||
"default_value": "RepRap (Marlin/Sprinter)"
|
||||
},
|
||||
@ -44,9 +44,6 @@
|
||||
},
|
||||
"machine_end_gcode": {
|
||||
"default_value": "M104 S0 ;extruder heater off \n G91 ;relative positioning\n G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\n G1 Z+0.5 E-5 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more\n G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\n M84 ;steppers off\n G90 ;absolute positioning"
|
||||
},
|
||||
"material_diameter": {
|
||||
"default_value": 1.75
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -11,6 +11,9 @@
|
||||
"has_materials": true,
|
||||
"platform": "wanhao_200_200_platform.obj",
|
||||
"platform_texture": "Wanhaobackplate.png",
|
||||
"machine_extruder_trains": {
|
||||
"0": "wanhao_i3plus_extruder_0"
|
||||
},
|
||||
"platform_offset": [
|
||||
0,
|
||||
-28,
|
||||
@ -33,9 +36,6 @@
|
||||
"machine_heated_bed": {
|
||||
"default_value": true
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"machine_gcode_flavor": {
|
||||
"default_value": "RepRap (Marlin/Sprinter)"
|
||||
},
|
||||
@ -44,9 +44,6 @@
|
||||
},
|
||||
"machine_end_gcode": {
|
||||
"default_value": "M104 S0 ;extruder heater off \n G91 ;relative positioning\n G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\n G1 Z+0.5 E-5 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more\n G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\n M84 ;steppers off\n G90 ;absolute positioning"
|
||||
},
|
||||
"material_diameter": {
|
||||
"default_value": 1.75
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -15,6 +15,7 @@
|
||||
},
|
||||
"machine_nozzle_offset_x": { "default_value": 0 },
|
||||
"machine_nozzle_offset_y": { "default_value": 0 },
|
||||
"machine_nozzle_size": { "default_value": 0.35 },
|
||||
"material_diameter": { "default_value": 1.75 },
|
||||
|
||||
"machine_extruder_start_pos_abs": { "default_value": true },
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user