mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-10 00:07:51 -06:00
Merge branch 'master' into fix_tests_cura_engine_backend
This commit is contained in:
commit
1c1b45541f
53 changed files with 152 additions and 181 deletions
|
@ -169,8 +169,6 @@ class ThreeMFReader(MeshReader):
|
||||||
archive = zipfile.ZipFile(file_name, "r")
|
archive = zipfile.ZipFile(file_name, "r")
|
||||||
self._base_name = os.path.basename(file_name)
|
self._base_name = os.path.basename(file_name)
|
||||||
parser = Savitar.ThreeMFParser()
|
parser = Savitar.ThreeMFParser()
|
||||||
with open("/tmp/test.xml", "wb") as f:
|
|
||||||
f.write(archive.open("3D/3dmodel.model").read())
|
|
||||||
scene_3mf = parser.parse(archive.open("3D/3dmodel.model").read())
|
scene_3mf = parser.parse(archive.open("3D/3dmodel.model").read())
|
||||||
self._unit = scene_3mf.getUnit()
|
self._unit = scene_3mf.getUnit()
|
||||||
for node in scene_3mf.getSceneNodes():
|
for node in scene_3mf.getSceneNodes():
|
||||||
|
|
|
@ -41,39 +41,32 @@ class StartJobResult(IntEnum):
|
||||||
|
|
||||||
## Formatter class that handles token expansion in start/end gcode
|
## Formatter class that handles token expansion in start/end gcode
|
||||||
class GcodeStartEndFormatter(Formatter):
|
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),
|
# 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
|
# and a default_extruder_nr to use when no extruder_nr is specified
|
||||||
|
|
||||||
if isinstance(key, str):
|
extruder_nr = int(default_extruder_nr)
|
||||||
|
|
||||||
|
key_fragments = [fragment.strip() for fragment in key.split(",")]
|
||||||
|
if len(key_fragments) == 2:
|
||||||
try:
|
try:
|
||||||
extruder_nr = int(kwargs["default_extruder_nr"])
|
extruder_nr = int(key_fragments[1])
|
||||||
except ValueError:
|
except ValueError:
|
||||||
extruder_nr = -1
|
|
||||||
|
|
||||||
key_fragments = [fragment.strip() for fragment in key.split(",")]
|
|
||||||
if len(key_fragments) == 2:
|
|
||||||
try:
|
try:
|
||||||
extruder_nr = int(key_fragments[1])
|
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 ValueError:
|
except (KeyError, ValueError):
|
||||||
try:
|
# either the key does not exist, or the value is not an int
|
||||||
extruder_nr = int(kwargs["-1"][key_fragments[1]]) # get extruder_nr values from the global stack
|
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])
|
||||||
except (KeyError, ValueError):
|
elif len(key_fragments) != 1:
|
||||||
# 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) + "}"
|
|
||||||
|
|
||||||
key = key_fragments[0]
|
|
||||||
try:
|
|
||||||
return kwargs[str(extruder_nr)][key]
|
|
||||||
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)
|
Logger.log("w", "Incorrectly formatted placeholder '%s' in start/end g-code", key)
|
||||||
return "{" + str(key) + "}"
|
return "{" + key + "}"
|
||||||
|
|
||||||
|
key = key_fragments[0]
|
||||||
|
try:
|
||||||
|
return kwargs[str(extruder_nr)][key]
|
||||||
|
except KeyError:
|
||||||
|
Logger.log("w", "Unable to replace '%s' placeholder in start/end g-code", key)
|
||||||
|
return "{" + key + "}"
|
||||||
|
|
||||||
|
|
||||||
## Job class that builds up the message of scene data to send to CuraEngine.
|
## Job class that builds up the message of scene data to send to CuraEngine.
|
||||||
|
@ -237,8 +230,8 @@ class StartSliceJob(Job):
|
||||||
|
|
||||||
if has_model_with_disabled_extruders:
|
if has_model_with_disabled_extruders:
|
||||||
self.setResult(StartJobResult.ObjectsWithDisabledExtruder)
|
self.setResult(StartJobResult.ObjectsWithDisabledExtruder)
|
||||||
associated_disabled_extruders_message = [str(c) for c in sorted([int(p) + 1 for p in associated_disabled_extruders])]
|
associated_disabled_extruders = {str(c) for c in sorted([int(p) + 1 for p in associated_disabled_extruders])}
|
||||||
self.setMessage(", ".join(associated_disabled_extruders_message))
|
self.setMessage(", ".join(associated_disabled_extruders))
|
||||||
return
|
return
|
||||||
|
|
||||||
# There are cases when there is nothing to slice. This can happen due to one at a time slicing not being
|
# There are cases when there is nothing to slice. This can happen due to one at a time slicing not being
|
||||||
|
|
|
@ -105,9 +105,12 @@ class Script:
|
||||||
if m is None:
|
if m is None:
|
||||||
return default
|
return default
|
||||||
try:
|
try:
|
||||||
return float(m.group(0))
|
return int(m.group(0))
|
||||||
except:
|
except ValueError: #Not an integer.
|
||||||
return default
|
try:
|
||||||
|
return float(m.group(0))
|
||||||
|
except ValueError: #Not a number at all.
|
||||||
|
return default
|
||||||
|
|
||||||
## Convenience function to produce a line of g-code.
|
## 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 ..Script import Script
|
||||||
# from cura.Settings.ExtruderManager import ExtruderManager
|
|
||||||
|
from UM.Application import Application #To get the current printer's settings.
|
||||||
|
|
||||||
class PauseAtHeight(Script):
|
class PauseAtHeight(Script):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
@ -136,6 +140,10 @@ class PauseAtHeight(Script):
|
||||||
layers_started = False
|
layers_started = False
|
||||||
redo_layers = self.getSettingValueByKey("redo_layers")
|
redo_layers = self.getSettingValueByKey("redo_layers")
|
||||||
standby_temperature = self.getSettingValueByKey("standby_temperature")
|
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")
|
# 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
|
# Scroll each line of instruction for each layer in the G-code
|
||||||
for line in lines:
|
for line in lines:
|
||||||
|
if ";FLAVOR:Griffin" in line:
|
||||||
|
is_griffin = True
|
||||||
# Fist positive layer reached
|
# Fist positive layer reached
|
||||||
if ";LAYER:0" in line:
|
if ";LAYER:0" in line:
|
||||||
layers_started = True
|
layers_started = True
|
||||||
|
@ -162,12 +172,12 @@ class PauseAtHeight(Script):
|
||||||
|
|
||||||
#Track the latest printing temperature in order to resume at the correct temperature.
|
#Track the latest printing temperature in order to resume at the correct temperature.
|
||||||
if line.startswith("T"):
|
if line.startswith("T"):
|
||||||
current_t = int(self.getValue(line, "T"))
|
current_t = self.getValue(line, "T")
|
||||||
m = self.getValue(line, "M")
|
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
|
extruder = current_t
|
||||||
if self.getValue(line, "T") is not None:
|
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")
|
target_temperature[extruder] = self.getValue(line, "S")
|
||||||
|
|
||||||
if not layers_started:
|
if not layers_started:
|
||||||
|
@ -252,52 +262,66 @@ class PauseAtHeight(Script):
|
||||||
else:
|
else:
|
||||||
prepend_gcode += ";current layer: {layer}\n".format(layer = current_layer)
|
prepend_gcode += ";current layer: {layer}\n".format(layer = current_layer)
|
||||||
|
|
||||||
# Retraction
|
if not is_griffin:
|
||||||
prepend_gcode += self.putValue(M = 83) + "\n"
|
# Retraction
|
||||||
if retraction_amount != 0:
|
prepend_gcode += self.putValue(M = 83) + "\n"
|
||||||
prepend_gcode += self.putValue(G = 1, E = -retraction_amount, F = retraction_speed * 60) + "\n"
|
if retraction_amount != 0:
|
||||||
|
if firmware_retract: #Can't set the distance directly to what the user wants. We have to choose ourselves.
|
||||||
|
retraction_count = 1 if control_temperatures else 3 #Retract more if we don't control the temperature.
|
||||||
|
for i in range(retraction_count):
|
||||||
|
prepend_gcode += self.putValue(G = 10) + "\n"
|
||||||
|
else:
|
||||||
|
prepend_gcode += self.putValue(G = 1, E = -retraction_amount, F = retraction_speed * 60) + "\n"
|
||||||
|
|
||||||
# Move the head away
|
# 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
|
# 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:
|
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"
|
||||||
|
|
||||||
# Set extruder standby temperature
|
if control_temperatures:
|
||||||
prepend_gcode += self.putValue(M = 104, S = standby_temperature) + "; standby temperature\n"
|
# Set extruder standby temperature
|
||||||
|
prepend_gcode += self.putValue(M = 104, S = standby_temperature) + "; standby temperature\n"
|
||||||
|
|
||||||
# Wait till the user continues printing
|
# 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"
|
||||||
|
|
||||||
# Set extruder resume temperature
|
if not is_griffin:
|
||||||
prepend_gcode += self.putValue(M = 109, S = int(target_temperature.get(current_t, 0))) + "; resume temperature\n"
|
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,
|
# Push the filament back,
|
||||||
if retraction_amount != 0:
|
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
|
# Optionally extrude material
|
||||||
if extrude_amount != 0:
|
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
|
# and retract again, the properly primes the nozzle
|
||||||
# when changing filament.
|
# when changing filament.
|
||||||
if retraction_amount != 0:
|
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
|
# Move the head back
|
||||||
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"
|
||||||
prepend_gcode += self.putValue(G = 1, X = x, Y = y, F = 9000) + "\n"
|
prepend_gcode += self.putValue(G = 1, X = x, Y = y, F = 9000) + "\n"
|
||||||
if retraction_amount != 0:
|
if retraction_amount != 0:
|
||||||
prepend_gcode += self.putValue(G = 1, E = retraction_amount, F = retraction_speed * 60) + "\n"
|
if firmware_retract: #Can't set the distance directly to what the user wants. We have to choose ourselves.
|
||||||
prepend_gcode += self.putValue(G = 1, F = 9000) + "\n"
|
retraction_count = 1 if control_temperatures else 3 #Retract more if we don't control the temperature.
|
||||||
prepend_gcode += self.putValue(M = 82) + "\n"
|
for i in range(retraction_count):
|
||||||
|
prepend_gcode += self.putValue(G = 11) + "\n"
|
||||||
|
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
|
# 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
|
layer = prepend_gcode + layer
|
||||||
|
|
||||||
|
|
|
@ -423,7 +423,7 @@ class USBPrinterOutputDevice(PrinterOutputDevice):
|
||||||
elapsed_time = int(time() - self._print_start_time)
|
elapsed_time = int(time() - self._print_start_time)
|
||||||
print_job = self._printers[0].activePrintJob
|
print_job = self._printers[0].activePrintJob
|
||||||
if print_job is None:
|
if print_job is None:
|
||||||
print_job = PrintJobOutputModel(output_controller = GenericOutputController(self), name= Application.getInstance().getPrintInformation().jobName)
|
print_job = PrintJobOutputModel(output_controller = GenericOutputController(self), name= CuraApplication.getInstance().getPrintInformation().jobName)
|
||||||
print_job.updateState("printing")
|
print_job.updateState("printing")
|
||||||
self._printers[0].updateActivePrintJob(print_job)
|
self._printers[0].updateActivePrintJob(print_job)
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,7 @@ import io
|
||||||
|
|
||||||
from UM.VersionUpgrade import VersionUpgrade
|
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
|
## Upgrades configurations from the state they were in at version 3.4 to the
|
||||||
# state they should be in at version 4.0.
|
# state they should be in at version 4.0.
|
||||||
|
@ -68,6 +69,11 @@ class VersionUpgrade34to40(VersionUpgrade):
|
||||||
parser["metadata"]["setting_version"] = "5"
|
parser["metadata"]["setting_version"] = "5"
|
||||||
|
|
||||||
self._resetConcentric3DInfillPattern(parser)
|
self._resetConcentric3DInfillPattern(parser)
|
||||||
|
if "values" in parser:
|
||||||
|
for deleted_setting in deleted_settings:
|
||||||
|
if deleted_setting not in parser["values"]:
|
||||||
|
continue
|
||||||
|
del parser["values"][deleted_setting]
|
||||||
|
|
||||||
result = io.StringIO()
|
result = io.StringIO()
|
||||||
parser.write(result)
|
parser.write(result)
|
||||||
|
|
|
@ -54,7 +54,6 @@
|
||||||
"prime_tower_position_y": { "default_value": 178 },
|
"prime_tower_position_y": { "default_value": 178 },
|
||||||
"prime_tower_wipe_enabled": { "default_value": false },
|
"prime_tower_wipe_enabled": { "default_value": false },
|
||||||
"prime_tower_min_volume": { "default_value": 50 },
|
"prime_tower_min_volume": { "default_value": 50 },
|
||||||
"dual_pre_wipe": { "default_value": false },
|
|
||||||
|
|
||||||
"prime_blob_enable": { "enabled": true },
|
"prime_blob_enable": { "enabled": true },
|
||||||
|
|
||||||
|
|
|
@ -54,7 +54,6 @@
|
||||||
"prime_tower_position_y": { "default_value": 178 },
|
"prime_tower_position_y": { "default_value": 178 },
|
||||||
"prime_tower_wipe_enabled": { "default_value": false },
|
"prime_tower_wipe_enabled": { "default_value": false },
|
||||||
"prime_tower_min_volume": { "default_value": 50 },
|
"prime_tower_min_volume": { "default_value": 50 },
|
||||||
"dual_pre_wipe": { "default_value": false },
|
|
||||||
|
|
||||||
"prime_blob_enable": { "enabled": true },
|
"prime_blob_enable": { "enabled": true },
|
||||||
|
|
||||||
|
|
|
@ -53,7 +53,6 @@
|
||||||
"prime_tower_position_y": { "default_value": 178 },
|
"prime_tower_position_y": { "default_value": 178 },
|
||||||
"prime_tower_wipe_enabled": { "default_value": false },
|
"prime_tower_wipe_enabled": { "default_value": false },
|
||||||
"prime_tower_min_volume": { "default_value": 50 },
|
"prime_tower_min_volume": { "default_value": 50 },
|
||||||
"dual_pre_wipe": { "default_value": false },
|
|
||||||
|
|
||||||
"prime_blob_enable": { "enabled": true },
|
"prime_blob_enable": { "enabled": true },
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@
|
||||||
"material_print_temp_wait": { "default_value": false },
|
"material_print_temp_wait": { "default_value": false },
|
||||||
"material_bed_temp_wait": { "default_value": false },
|
"material_bed_temp_wait": { "default_value": false },
|
||||||
"prime_tower_enable": { "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_size": { "value": 24.0 },
|
||||||
"prime_tower_position_x": { "value": 125 },
|
"prime_tower_position_x": { "value": 125 },
|
||||||
"prime_tower_position_y": { "value": 70 },
|
"prime_tower_position_y": { "value": 70 },
|
||||||
|
|
|
@ -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":
|
"support_use_towers":
|
||||||
{
|
{
|
||||||
"label": "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.",
|
"description": "The minimum volume for each layer of the prime tower in order to purge enough material.",
|
||||||
"unit": "mm³",
|
"unit": "mm³",
|
||||||
"type": "float",
|
"type": "float",
|
||||||
"default_value": 10,
|
"default_value": 5,
|
||||||
"value": "8.48 if prime_tower_circular else 10",
|
|
||||||
"minimum_value": "0",
|
"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')",
|
"enabled": "resolveOrValue('prime_tower_enable')",
|
||||||
"settable_per_mesh": false,
|
"settable_per_mesh": false,
|
||||||
"settable_per_extruder": true,
|
"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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"prime_tower_position_x":
|
"prime_tower_position_x":
|
||||||
{
|
{
|
||||||
|
@ -5072,29 +5073,6 @@
|
||||||
"settable_per_mesh": false,
|
"settable_per_mesh": false,
|
||||||
"settable_per_extruder": true
|
"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":
|
"ooze_shield_enabled":
|
||||||
{
|
{
|
||||||
"label": "Enable Ooze Shield",
|
"label": "Enable Ooze Shield",
|
||||||
|
|
|
@ -64,7 +64,7 @@ ooze_shield_enabled = True
|
||||||
prime_tower_enable = False
|
prime_tower_enable = False
|
||||||
prime_tower_position_x = 350
|
prime_tower_position_x = 350
|
||||||
prime_tower_position_y = 350
|
prime_tower_position_y = 350
|
||||||
prime_tower_wall_thickness = 2
|
prime_tower_min_volume = 18
|
||||||
switch_extruder_retraction_amount = 6
|
switch_extruder_retraction_amount = 6
|
||||||
switch_extruder_retraction_speeds = 60
|
switch_extruder_retraction_speeds = 60
|
||||||
|
|
||||||
|
|
|
@ -64,7 +64,7 @@ ooze_shield_enabled = True
|
||||||
prime_tower_enable = False
|
prime_tower_enable = False
|
||||||
prime_tower_position_x = 350
|
prime_tower_position_x = 350
|
||||||
prime_tower_position_y = 350
|
prime_tower_position_y = 350
|
||||||
prime_tower_wall_thickness = 2
|
prime_tower_min_volume = 18
|
||||||
switch_extruder_retraction_amount = 6
|
switch_extruder_retraction_amount = 6
|
||||||
switch_extruder_retraction_speeds = 60
|
switch_extruder_retraction_speeds = 60
|
||||||
|
|
||||||
|
|
|
@ -64,7 +64,7 @@ ooze_shield_enabled = True
|
||||||
prime_tower_enable = False
|
prime_tower_enable = False
|
||||||
prime_tower_position_x = 350
|
prime_tower_position_x = 350
|
||||||
prime_tower_position_y = 350
|
prime_tower_position_y = 350
|
||||||
prime_tower_wall_thickness = 2
|
prime_tower_min_volume = 18
|
||||||
switch_extruder_retraction_amount = 6
|
switch_extruder_retraction_amount = 6
|
||||||
switch_extruder_retraction_speeds = 60
|
switch_extruder_retraction_speeds = 60
|
||||||
|
|
||||||
|
|
|
@ -63,7 +63,7 @@ ooze_shield_enabled = True
|
||||||
prime_tower_enable = False
|
prime_tower_enable = False
|
||||||
prime_tower_position_x = 350
|
prime_tower_position_x = 350
|
||||||
prime_tower_position_y = 350
|
prime_tower_position_y = 350
|
||||||
prime_tower_wall_thickness = 2
|
prime_tower_min_volume = 18
|
||||||
switch_extruder_retraction_amount = 6
|
switch_extruder_retraction_amount = 6
|
||||||
switch_extruder_retraction_speeds = 60
|
switch_extruder_retraction_speeds = 60
|
||||||
|
|
||||||
|
|
|
@ -15,9 +15,8 @@ variant = AA 0.25
|
||||||
cool_fan_speed = 40
|
cool_fan_speed = 40
|
||||||
infill_overlap = 15
|
infill_overlap = 15
|
||||||
material_final_print_temperature = =material_print_temperature - 5
|
material_final_print_temperature = =material_print_temperature - 5
|
||||||
prime_tower_purge_volume = 0.6
|
|
||||||
prime_tower_size = 12
|
prime_tower_size = 12
|
||||||
prime_tower_wall_thickness = 0.9
|
prime_tower_min_volume = 2
|
||||||
retraction_prime_speed = 25
|
retraction_prime_speed = 25
|
||||||
speed_topbottom = =math.ceil(speed_print * 30 / 55)
|
speed_topbottom = =math.ceil(speed_print * 30 / 55)
|
||||||
wall_thickness = 0.92
|
wall_thickness = 0.92
|
||||||
|
|
|
@ -12,9 +12,8 @@ material = generic_cpe
|
||||||
variant = AA 0.25
|
variant = AA 0.25
|
||||||
|
|
||||||
[values]
|
[values]
|
||||||
prime_tower_purge_volume = 1
|
|
||||||
prime_tower_size = 12
|
prime_tower_size = 12
|
||||||
prime_tower_wall_thickness = 0.9
|
prime_tower_min_volume = 2
|
||||||
retraction_extrusion_window = 0.5
|
retraction_extrusion_window = 0.5
|
||||||
speed_infill = =math.ceil(speed_print * 40 / 55)
|
speed_infill = =math.ceil(speed_print * 40 / 55)
|
||||||
speed_topbottom = =math.ceil(speed_print * 30 / 55)
|
speed_topbottom = =math.ceil(speed_print * 30 / 55)
|
||||||
|
|
|
@ -16,7 +16,6 @@ material_print_temperature = =default_material_print_temperature + 10
|
||||||
material_initial_print_temperature = =material_print_temperature - 5
|
material_initial_print_temperature = =material_print_temperature - 5
|
||||||
material_final_print_temperature = =material_print_temperature - 10
|
material_final_print_temperature = =material_print_temperature - 10
|
||||||
material_standby_temperature = 100
|
material_standby_temperature = 100
|
||||||
prime_tower_purge_volume = 1
|
|
||||||
skin_overlap = 20
|
skin_overlap = 20
|
||||||
speed_print = 60
|
speed_print = 60
|
||||||
speed_layer_0 = =math.ceil(speed_print * 20 / 60)
|
speed_layer_0 = =math.ceil(speed_print * 20 / 60)
|
||||||
|
|
|
@ -17,7 +17,6 @@ material_print_temperature = =default_material_print_temperature + 5
|
||||||
material_initial_print_temperature = =material_print_temperature - 5
|
material_initial_print_temperature = =material_print_temperature - 5
|
||||||
material_final_print_temperature = =material_print_temperature - 10
|
material_final_print_temperature = =material_print_temperature - 10
|
||||||
material_standby_temperature = 100
|
material_standby_temperature = 100
|
||||||
prime_tower_purge_volume = 1
|
|
||||||
speed_print = 60
|
speed_print = 60
|
||||||
speed_layer_0 = =math.ceil(speed_print * 20 / 60)
|
speed_layer_0 = =math.ceil(speed_print * 20 / 60)
|
||||||
speed_topbottom = =math.ceil(speed_print * 30 / 60)
|
speed_topbottom = =math.ceil(speed_print * 30 / 60)
|
||||||
|
|
|
@ -19,7 +19,6 @@ material_print_temperature = =default_material_print_temperature - 5
|
||||||
material_initial_print_temperature = =material_print_temperature - 5
|
material_initial_print_temperature = =material_print_temperature - 5
|
||||||
material_final_print_temperature = =material_print_temperature - 10
|
material_final_print_temperature = =material_print_temperature - 10
|
||||||
material_standby_temperature = 100
|
material_standby_temperature = 100
|
||||||
prime_tower_purge_volume = 1
|
|
||||||
speed_print = 50
|
speed_print = 50
|
||||||
speed_layer_0 = =math.ceil(speed_print * 20 / 50)
|
speed_layer_0 = =math.ceil(speed_print * 20 / 50)
|
||||||
speed_topbottom = =math.ceil(speed_print * 30 / 50)
|
speed_topbottom = =math.ceil(speed_print * 30 / 50)
|
||||||
|
|
|
@ -17,7 +17,6 @@ machine_nozzle_heat_up_speed = 1.5
|
||||||
material_initial_print_temperature = =material_print_temperature - 5
|
material_initial_print_temperature = =material_print_temperature - 5
|
||||||
material_final_print_temperature = =material_print_temperature - 10
|
material_final_print_temperature = =material_print_temperature - 10
|
||||||
material_standby_temperature = 100
|
material_standby_temperature = 100
|
||||||
prime_tower_purge_volume = 1
|
|
||||||
speed_print = 55
|
speed_print = 55
|
||||||
speed_layer_0 = =math.ceil(speed_print * 20 / 55)
|
speed_layer_0 = =math.ceil(speed_print * 20 / 55)
|
||||||
speed_topbottom = =math.ceil(speed_print * 30 / 55)
|
speed_topbottom = =math.ceil(speed_print * 30 / 55)
|
||||||
|
|
|
@ -17,7 +17,6 @@ line_width = =machine_nozzle_size * 0.875
|
||||||
material_print_temperature = =default_material_print_temperature + 15
|
material_print_temperature = =default_material_print_temperature + 15
|
||||||
material_standby_temperature = 100
|
material_standby_temperature = 100
|
||||||
prime_tower_enable = True
|
prime_tower_enable = True
|
||||||
prime_tower_purge_volume = 1
|
|
||||||
speed_print = 40
|
speed_print = 40
|
||||||
speed_topbottom = =math.ceil(speed_print * 25 / 40)
|
speed_topbottom = =math.ceil(speed_print * 25 / 40)
|
||||||
speed_wall = =math.ceil(speed_print * 30 / 40)
|
speed_wall = =math.ceil(speed_print * 30 / 40)
|
||||||
|
|
|
@ -18,7 +18,6 @@ line_width = =machine_nozzle_size * 0.875
|
||||||
material_print_temperature = =default_material_print_temperature + 20
|
material_print_temperature = =default_material_print_temperature + 20
|
||||||
material_standby_temperature = 100
|
material_standby_temperature = 100
|
||||||
prime_tower_enable = True
|
prime_tower_enable = True
|
||||||
prime_tower_purge_volume = 1
|
|
||||||
speed_print = 45
|
speed_print = 45
|
||||||
speed_topbottom = =math.ceil(speed_print * 30 / 45)
|
speed_topbottom = =math.ceil(speed_print * 30 / 45)
|
||||||
speed_wall = =math.ceil(speed_print * 40 / 45)
|
speed_wall = =math.ceil(speed_print * 40 / 45)
|
||||||
|
|
|
@ -18,7 +18,6 @@ line_width = =machine_nozzle_size * 0.875
|
||||||
material_print_temperature = =default_material_print_temperature + 17
|
material_print_temperature = =default_material_print_temperature + 17
|
||||||
material_standby_temperature = 100
|
material_standby_temperature = 100
|
||||||
prime_tower_enable = True
|
prime_tower_enable = True
|
||||||
prime_tower_purge_volume = 1
|
|
||||||
speed_print = 40
|
speed_print = 40
|
||||||
speed_topbottom = =math.ceil(speed_print * 25 / 40)
|
speed_topbottom = =math.ceil(speed_print * 25 / 40)
|
||||||
speed_wall = =math.ceil(speed_print * 30 / 40)
|
speed_wall = =math.ceil(speed_print * 30 / 40)
|
||||||
|
|
|
@ -29,7 +29,7 @@ material_standby_temperature = 100
|
||||||
multiple_mesh_overlap = 0.2
|
multiple_mesh_overlap = 0.2
|
||||||
prime_tower_enable = True
|
prime_tower_enable = True
|
||||||
prime_tower_flow = 100
|
prime_tower_flow = 100
|
||||||
prime_tower_wall_thickness = =prime_tower_line_width * 2
|
prime_tower_min_volume = 10
|
||||||
retract_at_layer_change = False
|
retract_at_layer_change = False
|
||||||
retraction_count_max = 12
|
retraction_count_max = 12
|
||||||
retraction_extra_prime_amount = 0.5
|
retraction_extra_prime_amount = 0.5
|
||||||
|
|
|
@ -29,7 +29,7 @@ material_standby_temperature = 100
|
||||||
multiple_mesh_overlap = 0.2
|
multiple_mesh_overlap = 0.2
|
||||||
prime_tower_enable = True
|
prime_tower_enable = True
|
||||||
prime_tower_flow = 100
|
prime_tower_flow = 100
|
||||||
prime_tower_wall_thickness = =prime_tower_line_width * 2
|
prime_tower_min_volume = 20
|
||||||
retract_at_layer_change = False
|
retract_at_layer_change = False
|
||||||
retraction_count_max = 12
|
retraction_count_max = 12
|
||||||
retraction_extra_prime_amount = 0.5
|
retraction_extra_prime_amount = 0.5
|
||||||
|
|
|
@ -29,7 +29,7 @@ material_standby_temperature = 100
|
||||||
multiple_mesh_overlap = 0.2
|
multiple_mesh_overlap = 0.2
|
||||||
prime_tower_enable = True
|
prime_tower_enable = True
|
||||||
prime_tower_flow = 100
|
prime_tower_flow = 100
|
||||||
prime_tower_wall_thickness = =prime_tower_line_width * 2
|
prime_tower_min_volume = 15
|
||||||
retract_at_layer_change = False
|
retract_at_layer_change = False
|
||||||
retraction_count_max = 12
|
retraction_count_max = 12
|
||||||
retraction_extra_prime_amount = 0.5
|
retraction_extra_prime_amount = 0.5
|
||||||
|
|
|
@ -35,7 +35,7 @@ material_standby_temperature = 100
|
||||||
multiple_mesh_overlap = 0.2
|
multiple_mesh_overlap = 0.2
|
||||||
prime_tower_enable = True
|
prime_tower_enable = True
|
||||||
prime_tower_flow = 100
|
prime_tower_flow = 100
|
||||||
prime_tower_wall_thickness = =prime_tower_line_width * 2
|
prime_tower_min_volume = 10
|
||||||
retract_at_layer_change = False
|
retract_at_layer_change = False
|
||||||
retraction_count_max = 12
|
retraction_count_max = 12
|
||||||
retraction_extra_prime_amount = 0.5
|
retraction_extra_prime_amount = 0.5
|
||||||
|
|
|
@ -36,7 +36,7 @@ material_standby_temperature = 100
|
||||||
multiple_mesh_overlap = 0.2
|
multiple_mesh_overlap = 0.2
|
||||||
prime_tower_enable = True
|
prime_tower_enable = True
|
||||||
prime_tower_flow = 100
|
prime_tower_flow = 100
|
||||||
prime_tower_wall_thickness = =prime_tower_line_width * 2
|
prime_tower_min_volume = 15
|
||||||
retract_at_layer_change = False
|
retract_at_layer_change = False
|
||||||
retraction_count_max = 12
|
retraction_count_max = 12
|
||||||
retraction_extra_prime_amount = 0.5
|
retraction_extra_prime_amount = 0.5
|
||||||
|
|
|
@ -35,7 +35,7 @@ material_standby_temperature = 100
|
||||||
multiple_mesh_overlap = 0.2
|
multiple_mesh_overlap = 0.2
|
||||||
prime_tower_enable = True
|
prime_tower_enable = True
|
||||||
prime_tower_flow = 100
|
prime_tower_flow = 100
|
||||||
prime_tower_wall_thickness = =prime_tower_line_width * 2
|
prime_tower_min_volume = 20
|
||||||
retract_at_layer_change = False
|
retract_at_layer_change = False
|
||||||
retraction_count_max = 12
|
retraction_count_max = 12
|
||||||
retraction_extra_prime_amount = 0.5
|
retraction_extra_prime_amount = 0.5
|
||||||
|
|
|
@ -15,9 +15,8 @@ variant = AA 0.25
|
||||||
cool_fan_speed = 40
|
cool_fan_speed = 40
|
||||||
infill_overlap = 15
|
infill_overlap = 15
|
||||||
material_final_print_temperature = =material_print_temperature - 5
|
material_final_print_temperature = =material_print_temperature - 5
|
||||||
prime_tower_purge_volume = 0.6
|
|
||||||
prime_tower_size = 12
|
prime_tower_size = 12
|
||||||
prime_tower_wall_thickness = 0.9
|
prime_tower_min_volume = 2
|
||||||
retraction_prime_speed = 25
|
retraction_prime_speed = 25
|
||||||
speed_topbottom = =math.ceil(speed_print * 30 / 55)
|
speed_topbottom = =math.ceil(speed_print * 30 / 55)
|
||||||
wall_thickness = 0.92
|
wall_thickness = 0.92
|
||||||
|
|
|
@ -13,10 +13,9 @@ variant = AA 0.25
|
||||||
|
|
||||||
[values]
|
[values]
|
||||||
prime_tower_size = 12
|
prime_tower_size = 12
|
||||||
prime_tower_wall_thickness = 0.9
|
prime_tower_min_volume = 2
|
||||||
retraction_extrusion_window = 0.5
|
retraction_extrusion_window = 0.5
|
||||||
speed_infill = =math.ceil(speed_print * 40 / 55)
|
speed_infill = =math.ceil(speed_print * 40 / 55)
|
||||||
speed_topbottom = =math.ceil(speed_print * 30 / 55)
|
speed_topbottom = =math.ceil(speed_print * 30 / 55)
|
||||||
top_bottom_thickness = 0.8
|
top_bottom_thickness = 0.8
|
||||||
wall_thickness = 0.92
|
wall_thickness = 0.92
|
||||||
prime_tower_purge_volume = 1
|
|
|
@ -26,4 +26,3 @@ wall_thickness = 1
|
||||||
|
|
||||||
infill_pattern = zigzag
|
infill_pattern = zigzag
|
||||||
speed_infill = =math.ceil(speed_print * 50 / 60)
|
speed_infill = =math.ceil(speed_print * 50 / 60)
|
||||||
prime_tower_purge_volume = 1
|
|
||||||
|
|
|
@ -23,5 +23,4 @@ speed_wall = =math.ceil(speed_print * 40 / 60)
|
||||||
speed_wall_0 = =math.ceil(speed_wall * 30 / 40)
|
speed_wall_0 = =math.ceil(speed_wall * 30 / 40)
|
||||||
|
|
||||||
infill_pattern = zigzag
|
infill_pattern = zigzag
|
||||||
speed_infill = =math.ceil(speed_print * 50 / 60)
|
speed_infill = =math.ceil(speed_print * 50 / 60)
|
||||||
prime_tower_purge_volume = 1
|
|
|
@ -24,5 +24,4 @@ speed_topbottom = =math.ceil(speed_print * 30 / 50)
|
||||||
speed_wall = =math.ceil(speed_print * 30 / 50)
|
speed_wall = =math.ceil(speed_print * 30 / 50)
|
||||||
|
|
||||||
infill_pattern = zigzag
|
infill_pattern = zigzag
|
||||||
speed_infill = =math.ceil(speed_print * 40 / 50)
|
speed_infill = =math.ceil(speed_print * 40 / 50)
|
||||||
prime_tower_purge_volume = 1
|
|
|
@ -22,5 +22,4 @@ speed_topbottom = =math.ceil(speed_print * 30 / 55)
|
||||||
speed_wall = =math.ceil(speed_print * 30 / 55)
|
speed_wall = =math.ceil(speed_print * 30 / 55)
|
||||||
|
|
||||||
infill_pattern = zigzag
|
infill_pattern = zigzag
|
||||||
speed_infill = =math.ceil(speed_print * 45 / 55)
|
speed_infill = =math.ceil(speed_print * 45 / 55)
|
||||||
prime_tower_purge_volume = 1
|
|
|
@ -21,5 +21,4 @@ speed_print = 40
|
||||||
speed_topbottom = =math.ceil(speed_print * 25 / 40)
|
speed_topbottom = =math.ceil(speed_print * 25 / 40)
|
||||||
speed_wall = =math.ceil(speed_print * 30 / 40)
|
speed_wall = =math.ceil(speed_print * 30 / 40)
|
||||||
|
|
||||||
jerk_travel = 50
|
jerk_travel = 50
|
||||||
prime_tower_purge_volume = 1
|
|
|
@ -22,5 +22,4 @@ speed_topbottom = =math.ceil(speed_print * 30 / 45)
|
||||||
speed_wall = =math.ceil(speed_print * 40 / 45)
|
speed_wall = =math.ceil(speed_print * 40 / 45)
|
||||||
speed_wall_0 = =math.ceil(speed_wall * 30 / 40)
|
speed_wall_0 = =math.ceil(speed_wall * 30 / 40)
|
||||||
|
|
||||||
jerk_travel = 50
|
jerk_travel = 50
|
||||||
prime_tower_purge_volume = 1
|
|
|
@ -22,4 +22,3 @@ speed_topbottom = =math.ceil(speed_print * 25 / 40)
|
||||||
speed_wall = =math.ceil(speed_print * 30 / 40)
|
speed_wall = =math.ceil(speed_print * 30 / 40)
|
||||||
|
|
||||||
jerk_travel = 50
|
jerk_travel = 50
|
||||||
prime_tower_purge_volume = 1
|
|
||||||
|
|
|
@ -29,7 +29,7 @@ material_standby_temperature = 100
|
||||||
multiple_mesh_overlap = 0.2
|
multiple_mesh_overlap = 0.2
|
||||||
prime_tower_enable = True
|
prime_tower_enable = True
|
||||||
prime_tower_flow = 100
|
prime_tower_flow = 100
|
||||||
prime_tower_wall_thickness = =prime_tower_line_width * 2
|
prime_tower_min_volume = 10
|
||||||
retract_at_layer_change = False
|
retract_at_layer_change = False
|
||||||
retraction_count_max = 12
|
retraction_count_max = 12
|
||||||
retraction_extra_prime_amount = 0.5
|
retraction_extra_prime_amount = 0.5
|
||||||
|
|
|
@ -29,7 +29,7 @@ material_standby_temperature = 100
|
||||||
multiple_mesh_overlap = 0.2
|
multiple_mesh_overlap = 0.2
|
||||||
prime_tower_enable = True
|
prime_tower_enable = True
|
||||||
prime_tower_flow = 100
|
prime_tower_flow = 100
|
||||||
prime_tower_wall_thickness = =prime_tower_line_width * 2
|
prime_tower_min_volume = 20
|
||||||
retract_at_layer_change = False
|
retract_at_layer_change = False
|
||||||
retraction_count_max = 12
|
retraction_count_max = 12
|
||||||
retraction_extra_prime_amount = 0.5
|
retraction_extra_prime_amount = 0.5
|
||||||
|
|
|
@ -28,7 +28,7 @@ material_standby_temperature = 100
|
||||||
multiple_mesh_overlap = 0.2
|
multiple_mesh_overlap = 0.2
|
||||||
prime_tower_enable = True
|
prime_tower_enable = True
|
||||||
prime_tower_flow = 100
|
prime_tower_flow = 100
|
||||||
prime_tower_wall_thickness = =prime_tower_line_width * 2
|
prime_tower_min_volume = 15
|
||||||
retract_at_layer_change = False
|
retract_at_layer_change = False
|
||||||
retraction_count_max = 12
|
retraction_count_max = 12
|
||||||
retraction_extra_prime_amount = 0.5
|
retraction_extra_prime_amount = 0.5
|
||||||
|
|
|
@ -33,7 +33,7 @@ material_standby_temperature = 100
|
||||||
multiple_mesh_overlap = 0.2
|
multiple_mesh_overlap = 0.2
|
||||||
prime_tower_enable = True
|
prime_tower_enable = True
|
||||||
prime_tower_flow = 100
|
prime_tower_flow = 100
|
||||||
prime_tower_wall_thickness = =prime_tower_line_width * 2
|
prime_tower_min_volume = 10
|
||||||
retract_at_layer_change = False
|
retract_at_layer_change = False
|
||||||
retraction_count_max = 12
|
retraction_count_max = 12
|
||||||
retraction_extra_prime_amount = 0.5
|
retraction_extra_prime_amount = 0.5
|
||||||
|
|
|
@ -34,7 +34,7 @@ material_standby_temperature = 100
|
||||||
multiple_mesh_overlap = 0.2
|
multiple_mesh_overlap = 0.2
|
||||||
prime_tower_enable = True
|
prime_tower_enable = True
|
||||||
prime_tower_flow = 100
|
prime_tower_flow = 100
|
||||||
prime_tower_wall_thickness = =prime_tower_line_width * 2
|
prime_tower_min_volume = 20
|
||||||
retract_at_layer_change = False
|
retract_at_layer_change = False
|
||||||
retraction_count_max = 12
|
retraction_count_max = 12
|
||||||
retraction_extra_prime_amount = 0.5
|
retraction_extra_prime_amount = 0.5
|
||||||
|
|
|
@ -33,7 +33,7 @@ material_standby_temperature = 100
|
||||||
multiple_mesh_overlap = 0.2
|
multiple_mesh_overlap = 0.2
|
||||||
prime_tower_enable = True
|
prime_tower_enable = True
|
||||||
prime_tower_flow = 100
|
prime_tower_flow = 100
|
||||||
prime_tower_wall_thickness = =prime_tower_line_width * 2
|
prime_tower_min_volume = 15
|
||||||
retract_at_layer_change = False
|
retract_at_layer_change = False
|
||||||
retraction_count_max = 12
|
retraction_count_max = 12
|
||||||
retraction_extra_prime_amount = 0.5
|
retraction_extra_prime_amount = 0.5
|
||||||
|
|
|
@ -123,7 +123,6 @@ brim_outside_only
|
||||||
prime_tower_enable
|
prime_tower_enable
|
||||||
prime_tower_position_x
|
prime_tower_position_x
|
||||||
prime_tower_position_y
|
prime_tower_position_y
|
||||||
prime_tower_purge_volume
|
|
||||||
|
|
||||||
[meshfix]
|
[meshfix]
|
||||||
|
|
||||||
|
|
|
@ -291,13 +291,10 @@ prime_tower_enable
|
||||||
prime_tower_circular
|
prime_tower_circular
|
||||||
prime_tower_size
|
prime_tower_size
|
||||||
prime_tower_min_volume
|
prime_tower_min_volume
|
||||||
prime_tower_wall_thickness
|
|
||||||
prime_tower_position_x
|
prime_tower_position_x
|
||||||
prime_tower_position_y
|
prime_tower_position_y
|
||||||
prime_tower_flow
|
prime_tower_flow
|
||||||
prime_tower_wipe_enabled
|
prime_tower_wipe_enabled
|
||||||
dual_pre_wipe
|
|
||||||
prime_tower_purge_volume
|
|
||||||
ooze_shield_enabled
|
ooze_shield_enabled
|
||||||
ooze_shield_angle
|
ooze_shield_angle
|
||||||
ooze_shield_dist
|
ooze_shield_dist
|
||||||
|
|
|
@ -40,8 +40,7 @@ material_print_temperature = =default_material_print_temperature + 10
|
||||||
material_standby_temperature = 100
|
material_standby_temperature = 100
|
||||||
multiple_mesh_overlap = 0
|
multiple_mesh_overlap = 0
|
||||||
prime_tower_enable = False
|
prime_tower_enable = False
|
||||||
prime_tower_purge_volume = 2
|
prime_tower_min_volume = 20
|
||||||
prime_tower_wall_thickness = 2.2
|
|
||||||
prime_tower_wipe_enabled = True
|
prime_tower_wipe_enabled = True
|
||||||
raft_acceleration = =acceleration_layer_0
|
raft_acceleration = =acceleration_layer_0
|
||||||
raft_airgap = 0
|
raft_airgap = 0
|
||||||
|
|
|
@ -22,8 +22,7 @@ jerk_support_bottom = =math.ceil(jerk_support_interface * 1 / 10)
|
||||||
machine_nozzle_heat_up_speed = 1.5
|
machine_nozzle_heat_up_speed = 1.5
|
||||||
machine_nozzle_id = BB 0.4
|
machine_nozzle_id = BB 0.4
|
||||||
machine_nozzle_tip_outer_diameter = 1.0
|
machine_nozzle_tip_outer_diameter = 1.0
|
||||||
prime_tower_purge_volume = 2
|
prime_tower_min_volume = 15
|
||||||
prime_tower_wall_thickness = 1.5
|
|
||||||
raft_base_speed = 20
|
raft_base_speed = 20
|
||||||
raft_interface_speed = 20
|
raft_interface_speed = 20
|
||||||
raft_speed = 25
|
raft_speed = 25
|
||||||
|
|
|
@ -40,8 +40,7 @@ material_print_temperature = =default_material_print_temperature + 10
|
||||||
material_standby_temperature = 100
|
material_standby_temperature = 100
|
||||||
multiple_mesh_overlap = 0
|
multiple_mesh_overlap = 0
|
||||||
prime_tower_enable = False
|
prime_tower_enable = False
|
||||||
prime_tower_purge_volume = 2
|
prime_tower_min_volume = 20
|
||||||
prime_tower_wall_thickness = 2.2
|
|
||||||
prime_tower_wipe_enabled = True
|
prime_tower_wipe_enabled = True
|
||||||
raft_acceleration = =acceleration_layer_0
|
raft_acceleration = =acceleration_layer_0
|
||||||
raft_airgap = 0
|
raft_airgap = 0
|
||||||
|
|
|
@ -22,8 +22,7 @@ jerk_support_bottom = =math.ceil(jerk_support_interface * 1 / 10)
|
||||||
machine_nozzle_heat_up_speed = 1.5
|
machine_nozzle_heat_up_speed = 1.5
|
||||||
machine_nozzle_id = BB 0.4
|
machine_nozzle_id = BB 0.4
|
||||||
machine_nozzle_tip_outer_diameter = 1.0
|
machine_nozzle_tip_outer_diameter = 1.0
|
||||||
prime_tower_purge_volume = 2
|
prime_tower_min_volume = 15
|
||||||
prime_tower_wall_thickness = 1.5
|
|
||||||
raft_base_speed = 20
|
raft_base_speed = 20
|
||||||
raft_interface_speed = 20
|
raft_interface_speed = 20
|
||||||
raft_speed = 25
|
raft_speed = 25
|
||||||
|
|
|
@ -40,8 +40,7 @@ material_print_temperature = =default_material_print_temperature + 10
|
||||||
material_standby_temperature = 100
|
material_standby_temperature = 100
|
||||||
multiple_mesh_overlap = 0
|
multiple_mesh_overlap = 0
|
||||||
prime_tower_enable = False
|
prime_tower_enable = False
|
||||||
prime_tower_purge_volume = 2
|
prime_tower_min_volume = 20
|
||||||
prime_tower_wall_thickness = 2.2
|
|
||||||
prime_tower_wipe_enabled = True
|
prime_tower_wipe_enabled = True
|
||||||
raft_acceleration = =acceleration_layer_0
|
raft_acceleration = =acceleration_layer_0
|
||||||
raft_airgap = 0
|
raft_airgap = 0
|
||||||
|
|
|
@ -22,8 +22,7 @@ jerk_support_bottom = =math.ceil(jerk_support_interface * 1 / 10)
|
||||||
machine_nozzle_heat_up_speed = 1.5
|
machine_nozzle_heat_up_speed = 1.5
|
||||||
machine_nozzle_id = BB 0.4
|
machine_nozzle_id = BB 0.4
|
||||||
machine_nozzle_tip_outer_diameter = 1.0
|
machine_nozzle_tip_outer_diameter = 1.0
|
||||||
prime_tower_purge_volume = 2
|
prime_tower_min_volume = 20
|
||||||
prime_tower_wall_thickness = 1.5
|
|
||||||
raft_base_speed = 20
|
raft_base_speed = 20
|
||||||
raft_interface_speed = 20
|
raft_interface_speed = 20
|
||||||
raft_speed = 25
|
raft_speed = 25
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue