Cura/plugins/PostProcessingPlugin/scripts/DisplayFilenameAndLayerOnLCD.py
2018-08-29 08:09:57 -07:00

51 lines
1.6 KiB
Python

# Cura PostProcessingPlugin
# Author: Amanda de Castilho
# Date: August 28, 2018
# Description: This plugin inserts a line at the start of each layer,
# M117 displays the filename and layer height to the LCD
# ** user must enter 'filename'
# ** future update: include actual filename
from ..Script import Script
class DisplayFilenameAndLayerOnLCD(Script):
def __init__(self):
super().__init__()
def getSettingDataString(self):
return """{
"name": "Display filename and layer on LCD",
"key": "DisplayFilenameAndLayerOnLCD",
"metadata": {},
"version": 2,
"settings":
{
"name":
{
"label": "filename",
"description": "Enter filename",
"type": "str",
"default_value": "default"
}
}
}"""
def execute(self, data):
name = self.getSettingValueByKey("name")
lcd_text = "M117 " + name + " layer: "
i = 0
for layer in data:
display_text = lcd_text + str(i)
layer_index = data.index(layer)
lines = layer.split("\n")
for line in lines:
if line.startswith(";LAYER:"):
line_index = lines.index(line)
lines.insert(line_index + 1, display_text)
i += 1
final_lines = "\n".join(lines)
data[layer_index] = final_lines
return data