Skip to content

Instantly share code, notes, and snippets.

@alepetri
alepetri / prusa_temp_tower.py
Last active August 3, 2023 01:33
Prusa Temp Tower GCODE Generator
def create_temp_tower_gcode(last_layer: int, final_speed: int = 50, first_layer: int = 1, initial_speed: int = 100):
"""
Linearly changes speed between `first_layer` and `last_layer` from `initial_speed` to `final_speed`
Assembles the BEFORE_LAYER_CHANGE prusa gcode script to be placed in
PrusaSlicer > Printer Settings > Custom G-code > Before layer change G-code
"""
out: str = f"M220 S{{if layer_num <= {first_layer}}}{initial_speed}"
last_layer_speed: int = initial_speed
for layer in range(first_layer+2, last_layer):
layer_speed: int = round(initial_speed + (final_speed - initial_speed) * ((layer - first_layer) / last_layer))