mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-10 08:17:49 -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")
|
||||
self._base_name = os.path.basename(file_name)
|
||||
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())
|
||||
self._unit = scene_3mf.getUnit()
|
||||
for node in scene_3mf.getSceneNodes():
|
||||
|
|
|
@ -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.
|
||||
|
@ -237,8 +230,8 @@ class StartSliceJob(Job):
|
|||
|
||||
if has_model_with_disabled_extruders:
|
||||
self.setResult(StartJobResult.ObjectsWithDisabledExtruder)
|
||||
associated_disabled_extruders_message = [str(c) for c in sorted([int(p) + 1 for p in associated_disabled_extruders])]
|
||||
self.setMessage(", ".join(associated_disabled_extruders_message))
|
||||
associated_disabled_extruders = {str(c) for c in sorted([int(p) + 1 for p in associated_disabled_extruders])}
|
||||
self.setMessage(", ".join(associated_disabled_extruders))
|
||||
return
|
||||
|
||||
# There are cases when there is nothing to slice. This can happen due to one at a time slicing not being
|
||||
|
|
|
@ -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:
|
||||
|
@ -252,9 +262,15 @@ class PauseAtHeight(Script):
|
|||
else:
|
||||
prepend_gcode += ";current layer: {layer}\n".format(layer = current_layer)
|
||||
|
||||
if not is_griffin:
|
||||
# Retraction
|
||||
prepend_gcode += self.putValue(M = 83) + "\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
|
||||
|
@ -266,12 +282,15 @@ class PauseAtHeight(Script):
|
|||
if current_z < 15:
|
||||
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"
|
||||
|
||||
# Wait till the user continues printing
|
||||
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"
|
||||
|
||||
|
@ -292,6 +311,11 @@ class PauseAtHeight(Script):
|
|||
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:
|
||||
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 = 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"
|
||||
|
|
|
@ -423,7 +423,7 @@ class USBPrinterOutputDevice(PrinterOutputDevice):
|
|||
elapsed_time = int(time() - self._print_start_time)
|
||||
print_job = self._printers[0].activePrintJob
|
||||
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")
|
||||
self._printers[0].updateActivePrintJob(print_job)
|
||||
|
||||
|
|
|
@ -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,11 @@ class VersionUpgrade34to40(VersionUpgrade):
|
|||
parser["metadata"]["setting_version"] = "5"
|
||||
|
||||
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()
|
||||
parser.write(result)
|
||||
|
|
|
@ -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 },
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -64,7 +64,7 @@ ooze_shield_enabled = True
|
|||
prime_tower_enable = False
|
||||
prime_tower_position_x = 350
|
||||
prime_tower_position_y = 350
|
||||
prime_tower_wall_thickness = 2
|
||||
prime_tower_min_volume = 18
|
||||
switch_extruder_retraction_amount = 6
|
||||
switch_extruder_retraction_speeds = 60
|
||||
|
||||
|
|
|
@ -64,7 +64,7 @@ ooze_shield_enabled = True
|
|||
prime_tower_enable = False
|
||||
prime_tower_position_x = 350
|
||||
prime_tower_position_y = 350
|
||||
prime_tower_wall_thickness = 2
|
||||
prime_tower_min_volume = 18
|
||||
switch_extruder_retraction_amount = 6
|
||||
switch_extruder_retraction_speeds = 60
|
||||
|
||||
|
|
|
@ -64,7 +64,7 @@ ooze_shield_enabled = True
|
|||
prime_tower_enable = False
|
||||
prime_tower_position_x = 350
|
||||
prime_tower_position_y = 350
|
||||
prime_tower_wall_thickness = 2
|
||||
prime_tower_min_volume = 18
|
||||
switch_extruder_retraction_amount = 6
|
||||
switch_extruder_retraction_speeds = 60
|
||||
|
||||
|
|
|
@ -63,7 +63,7 @@ ooze_shield_enabled = True
|
|||
prime_tower_enable = False
|
||||
prime_tower_position_x = 350
|
||||
prime_tower_position_y = 350
|
||||
prime_tower_wall_thickness = 2
|
||||
prime_tower_min_volume = 18
|
||||
switch_extruder_retraction_amount = 6
|
||||
switch_extruder_retraction_speeds = 60
|
||||
|
||||
|
|
|
@ -15,9 +15,8 @@ variant = AA 0.25
|
|||
cool_fan_speed = 40
|
||||
infill_overlap = 15
|
||||
material_final_print_temperature = =material_print_temperature - 5
|
||||
prime_tower_purge_volume = 0.6
|
||||
prime_tower_size = 12
|
||||
prime_tower_wall_thickness = 0.9
|
||||
prime_tower_min_volume = 2
|
||||
retraction_prime_speed = 25
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 55)
|
||||
wall_thickness = 0.92
|
||||
|
|
|
@ -12,9 +12,8 @@ material = generic_cpe
|
|||
variant = AA 0.25
|
||||
|
||||
[values]
|
||||
prime_tower_purge_volume = 1
|
||||
prime_tower_size = 12
|
||||
prime_tower_wall_thickness = 0.9
|
||||
prime_tower_min_volume = 2
|
||||
retraction_extrusion_window = 0.5
|
||||
speed_infill = =math.ceil(speed_print * 40 / 55)
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 55)
|
||||
|
|
|
@ -16,7 +16,6 @@ material_print_temperature = =default_material_print_temperature + 10
|
|||
material_initial_print_temperature = =material_print_temperature - 5
|
||||
material_final_print_temperature = =material_print_temperature - 10
|
||||
material_standby_temperature = 100
|
||||
prime_tower_purge_volume = 1
|
||||
skin_overlap = 20
|
||||
speed_print = 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_final_print_temperature = =material_print_temperature - 10
|
||||
material_standby_temperature = 100
|
||||
prime_tower_purge_volume = 1
|
||||
speed_print = 60
|
||||
speed_layer_0 = =math.ceil(speed_print * 20 / 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_final_print_temperature = =material_print_temperature - 10
|
||||
material_standby_temperature = 100
|
||||
prime_tower_purge_volume = 1
|
||||
speed_print = 50
|
||||
speed_layer_0 = =math.ceil(speed_print * 20 / 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_final_print_temperature = =material_print_temperature - 10
|
||||
material_standby_temperature = 100
|
||||
prime_tower_purge_volume = 1
|
||||
speed_print = 55
|
||||
speed_layer_0 = =math.ceil(speed_print * 20 / 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_standby_temperature = 100
|
||||
prime_tower_enable = True
|
||||
prime_tower_purge_volume = 1
|
||||
speed_print = 40
|
||||
speed_topbottom = =math.ceil(speed_print * 25 / 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_standby_temperature = 100
|
||||
prime_tower_enable = True
|
||||
prime_tower_purge_volume = 1
|
||||
speed_print = 45
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 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_standby_temperature = 100
|
||||
prime_tower_enable = True
|
||||
prime_tower_purge_volume = 1
|
||||
speed_print = 40
|
||||
speed_topbottom = =math.ceil(speed_print * 25 / 40)
|
||||
speed_wall = =math.ceil(speed_print * 30 / 40)
|
||||
|
|
|
@ -29,7 +29,7 @@ material_standby_temperature = 100
|
|||
multiple_mesh_overlap = 0.2
|
||||
prime_tower_enable = True
|
||||
prime_tower_flow = 100
|
||||
prime_tower_wall_thickness = =prime_tower_line_width * 2
|
||||
prime_tower_min_volume = 10
|
||||
retract_at_layer_change = False
|
||||
retraction_count_max = 12
|
||||
retraction_extra_prime_amount = 0.5
|
||||
|
|
|
@ -29,7 +29,7 @@ material_standby_temperature = 100
|
|||
multiple_mesh_overlap = 0.2
|
||||
prime_tower_enable = True
|
||||
prime_tower_flow = 100
|
||||
prime_tower_wall_thickness = =prime_tower_line_width * 2
|
||||
prime_tower_min_volume = 20
|
||||
retract_at_layer_change = False
|
||||
retraction_count_max = 12
|
||||
retraction_extra_prime_amount = 0.5
|
||||
|
|
|
@ -29,7 +29,7 @@ material_standby_temperature = 100
|
|||
multiple_mesh_overlap = 0.2
|
||||
prime_tower_enable = True
|
||||
prime_tower_flow = 100
|
||||
prime_tower_wall_thickness = =prime_tower_line_width * 2
|
||||
prime_tower_min_volume = 15
|
||||
retract_at_layer_change = False
|
||||
retraction_count_max = 12
|
||||
retraction_extra_prime_amount = 0.5
|
||||
|
|
|
@ -35,7 +35,7 @@ material_standby_temperature = 100
|
|||
multiple_mesh_overlap = 0.2
|
||||
prime_tower_enable = True
|
||||
prime_tower_flow = 100
|
||||
prime_tower_wall_thickness = =prime_tower_line_width * 2
|
||||
prime_tower_min_volume = 10
|
||||
retract_at_layer_change = False
|
||||
retraction_count_max = 12
|
||||
retraction_extra_prime_amount = 0.5
|
||||
|
|
|
@ -36,7 +36,7 @@ material_standby_temperature = 100
|
|||
multiple_mesh_overlap = 0.2
|
||||
prime_tower_enable = True
|
||||
prime_tower_flow = 100
|
||||
prime_tower_wall_thickness = =prime_tower_line_width * 2
|
||||
prime_tower_min_volume = 15
|
||||
retract_at_layer_change = False
|
||||
retraction_count_max = 12
|
||||
retraction_extra_prime_amount = 0.5
|
||||
|
|
|
@ -35,7 +35,7 @@ material_standby_temperature = 100
|
|||
multiple_mesh_overlap = 0.2
|
||||
prime_tower_enable = True
|
||||
prime_tower_flow = 100
|
||||
prime_tower_wall_thickness = =prime_tower_line_width * 2
|
||||
prime_tower_min_volume = 20
|
||||
retract_at_layer_change = False
|
||||
retraction_count_max = 12
|
||||
retraction_extra_prime_amount = 0.5
|
||||
|
|
|
@ -15,9 +15,8 @@ variant = AA 0.25
|
|||
cool_fan_speed = 40
|
||||
infill_overlap = 15
|
||||
material_final_print_temperature = =material_print_temperature - 5
|
||||
prime_tower_purge_volume = 0.6
|
||||
prime_tower_size = 12
|
||||
prime_tower_wall_thickness = 0.9
|
||||
prime_tower_min_volume = 2
|
||||
retraction_prime_speed = 25
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 55)
|
||||
wall_thickness = 0.92
|
||||
|
|
|
@ -13,10 +13,9 @@ variant = AA 0.25
|
|||
|
||||
[values]
|
||||
prime_tower_size = 12
|
||||
prime_tower_wall_thickness = 0.9
|
||||
prime_tower_min_volume = 2
|
||||
retraction_extrusion_window = 0.5
|
||||
speed_infill = =math.ceil(speed_print * 40 / 55)
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 55)
|
||||
top_bottom_thickness = 0.8
|
||||
wall_thickness = 0.92
|
||||
prime_tower_purge_volume = 1
|
||||
|
|
|
@ -26,4 +26,3 @@ wall_thickness = 1
|
|||
|
||||
infill_pattern = zigzag
|
||||
speed_infill = =math.ceil(speed_print * 50 / 60)
|
||||
prime_tower_purge_volume = 1
|
||||
|
|
|
@ -24,4 +24,3 @@ speed_wall_0 = =math.ceil(speed_wall * 30 / 40)
|
|||
|
||||
infill_pattern = zigzag
|
||||
speed_infill = =math.ceil(speed_print * 50 / 60)
|
||||
prime_tower_purge_volume = 1
|
||||
|
|
|
@ -25,4 +25,3 @@ speed_wall = =math.ceil(speed_print * 30 / 50)
|
|||
|
||||
infill_pattern = zigzag
|
||||
speed_infill = =math.ceil(speed_print * 40 / 50)
|
||||
prime_tower_purge_volume = 1
|
||||
|
|
|
@ -23,4 +23,3 @@ speed_wall = =math.ceil(speed_print * 30 / 55)
|
|||
|
||||
infill_pattern = zigzag
|
||||
speed_infill = =math.ceil(speed_print * 45 / 55)
|
||||
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)
|
||||
|
||||
jerk_travel = 50
|
||||
prime_tower_purge_volume = 1
|
||||
|
|
|
@ -23,4 +23,3 @@ speed_wall = =math.ceil(speed_print * 40 / 45)
|
|||
speed_wall_0 = =math.ceil(speed_wall * 30 / 40)
|
||||
|
||||
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)
|
||||
|
||||
jerk_travel = 50
|
||||
prime_tower_purge_volume = 1
|
||||
|
|
|
@ -29,7 +29,7 @@ material_standby_temperature = 100
|
|||
multiple_mesh_overlap = 0.2
|
||||
prime_tower_enable = True
|
||||
prime_tower_flow = 100
|
||||
prime_tower_wall_thickness = =prime_tower_line_width * 2
|
||||
prime_tower_min_volume = 10
|
||||
retract_at_layer_change = False
|
||||
retraction_count_max = 12
|
||||
retraction_extra_prime_amount = 0.5
|
||||
|
|
|
@ -29,7 +29,7 @@ material_standby_temperature = 100
|
|||
multiple_mesh_overlap = 0.2
|
||||
prime_tower_enable = True
|
||||
prime_tower_flow = 100
|
||||
prime_tower_wall_thickness = =prime_tower_line_width * 2
|
||||
prime_tower_min_volume = 20
|
||||
retract_at_layer_change = False
|
||||
retraction_count_max = 12
|
||||
retraction_extra_prime_amount = 0.5
|
||||
|
|
|
@ -28,7 +28,7 @@ material_standby_temperature = 100
|
|||
multiple_mesh_overlap = 0.2
|
||||
prime_tower_enable = True
|
||||
prime_tower_flow = 100
|
||||
prime_tower_wall_thickness = =prime_tower_line_width * 2
|
||||
prime_tower_min_volume = 15
|
||||
retract_at_layer_change = False
|
||||
retraction_count_max = 12
|
||||
retraction_extra_prime_amount = 0.5
|
||||
|
|
|
@ -33,7 +33,7 @@ material_standby_temperature = 100
|
|||
multiple_mesh_overlap = 0.2
|
||||
prime_tower_enable = True
|
||||
prime_tower_flow = 100
|
||||
prime_tower_wall_thickness = =prime_tower_line_width * 2
|
||||
prime_tower_min_volume = 10
|
||||
retract_at_layer_change = False
|
||||
retraction_count_max = 12
|
||||
retraction_extra_prime_amount = 0.5
|
||||
|
|
|
@ -34,7 +34,7 @@ material_standby_temperature = 100
|
|||
multiple_mesh_overlap = 0.2
|
||||
prime_tower_enable = True
|
||||
prime_tower_flow = 100
|
||||
prime_tower_wall_thickness = =prime_tower_line_width * 2
|
||||
prime_tower_min_volume = 20
|
||||
retract_at_layer_change = False
|
||||
retraction_count_max = 12
|
||||
retraction_extra_prime_amount = 0.5
|
||||
|
|
|
@ -33,7 +33,7 @@ material_standby_temperature = 100
|
|||
multiple_mesh_overlap = 0.2
|
||||
prime_tower_enable = True
|
||||
prime_tower_flow = 100
|
||||
prime_tower_wall_thickness = =prime_tower_line_width * 2
|
||||
prime_tower_min_volume = 15
|
||||
retract_at_layer_change = False
|
||||
retraction_count_max = 12
|
||||
retraction_extra_prime_amount = 0.5
|
||||
|
|
|
@ -123,7 +123,6 @@ brim_outside_only
|
|||
prime_tower_enable
|
||||
prime_tower_position_x
|
||||
prime_tower_position_y
|
||||
prime_tower_purge_volume
|
||||
|
||||
[meshfix]
|
||||
|
||||
|
|
|
@ -291,13 +291,10 @@ prime_tower_enable
|
|||
prime_tower_circular
|
||||
prime_tower_size
|
||||
prime_tower_min_volume
|
||||
prime_tower_wall_thickness
|
||||
prime_tower_position_x
|
||||
prime_tower_position_y
|
||||
prime_tower_flow
|
||||
prime_tower_wipe_enabled
|
||||
dual_pre_wipe
|
||||
prime_tower_purge_volume
|
||||
ooze_shield_enabled
|
||||
ooze_shield_angle
|
||||
ooze_shield_dist
|
||||
|
|
|
@ -40,8 +40,7 @@ material_print_temperature = =default_material_print_temperature + 10
|
|||
material_standby_temperature = 100
|
||||
multiple_mesh_overlap = 0
|
||||
prime_tower_enable = False
|
||||
prime_tower_purge_volume = 2
|
||||
prime_tower_wall_thickness = 2.2
|
||||
prime_tower_min_volume = 20
|
||||
prime_tower_wipe_enabled = True
|
||||
raft_acceleration = =acceleration_layer_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_id = BB 0.4
|
||||
machine_nozzle_tip_outer_diameter = 1.0
|
||||
prime_tower_purge_volume = 2
|
||||
prime_tower_wall_thickness = 1.5
|
||||
prime_tower_min_volume = 15
|
||||
raft_base_speed = 20
|
||||
raft_interface_speed = 20
|
||||
raft_speed = 25
|
||||
|
|
|
@ -40,8 +40,7 @@ material_print_temperature = =default_material_print_temperature + 10
|
|||
material_standby_temperature = 100
|
||||
multiple_mesh_overlap = 0
|
||||
prime_tower_enable = False
|
||||
prime_tower_purge_volume = 2
|
||||
prime_tower_wall_thickness = 2.2
|
||||
prime_tower_min_volume = 20
|
||||
prime_tower_wipe_enabled = True
|
||||
raft_acceleration = =acceleration_layer_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_id = BB 0.4
|
||||
machine_nozzle_tip_outer_diameter = 1.0
|
||||
prime_tower_purge_volume = 2
|
||||
prime_tower_wall_thickness = 1.5
|
||||
prime_tower_min_volume = 15
|
||||
raft_base_speed = 20
|
||||
raft_interface_speed = 20
|
||||
raft_speed = 25
|
||||
|
|
|
@ -40,8 +40,7 @@ material_print_temperature = =default_material_print_temperature + 10
|
|||
material_standby_temperature = 100
|
||||
multiple_mesh_overlap = 0
|
||||
prime_tower_enable = False
|
||||
prime_tower_purge_volume = 2
|
||||
prime_tower_wall_thickness = 2.2
|
||||
prime_tower_min_volume = 20
|
||||
prime_tower_wipe_enabled = True
|
||||
raft_acceleration = =acceleration_layer_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_id = BB 0.4
|
||||
machine_nozzle_tip_outer_diameter = 1.0
|
||||
prime_tower_purge_volume = 2
|
||||
prime_tower_wall_thickness = 1.5
|
||||
prime_tower_min_volume = 20
|
||||
raft_base_speed = 20
|
||||
raft_interface_speed = 20
|
||||
raft_speed = 25
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue