Multi material accounting added

if multiple variables are present the median will be shown for density, layer_height.
multiple materials filament usage will be accumulated to a sum.
Firmware-Binaries
ThomasToka 5 months ago committed by GitHub
parent 45a6b76bc4
commit 65bd9fadac
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -22,26 +22,31 @@ def main(source_file):
filament_used_m, filament_used_g, filament_diameter, filament_density, layer_height, layers = "0", "0", "0", "0", "0", "0"
for line in lines:
if line.startswith("; filament used [mm] ="):
filament_used_mm = float(line.split("=")[1].strip())
filament_used_m = round(filament_used_mm / 1000, 2)
filament_used_mm_values = [float(value.strip()) for value in line.split("=")[1].strip().split(',')]
filament_used_m = round(sum(filament_used_mm_values) / 1000, 2) # Convert mm to meters
if filament_used_m > 0:
filament_used_m = math.ceil(filament_used_m)
else:
filament_used_m = 0
elif line.startswith("; filament used [g] ="):
filament_used_g = float(line.split("=")[1].strip())
filament_used_g = round(filament_used_g, 2)
filament_used_g_values = [float(value.strip()) for value in line.split("=")[1].strip().split(',')]
filament_used_g = round(sum(filament_used_g_values), 2)
if filament_used_g > 0:
filament_used_g = math.ceil(filament_used_g)
else:
filament_used_g = 0
elif line.startswith("; filament_diameter ="):
filament_diameter = float(line.split("=")[1].strip())
filament_diameter_values = [float(value.strip()) for value in line.split("=")[1].strip().split(',')]
filament_diameter = round(sum(filament_diameter_values) / len(filament_diameter_values), 2)
filament_diameter = "{:.2f}".format(filament_diameter)
elif line.startswith("; filament_density ="):
filament_density = float(line.split("=")[1].strip())
filament_density_values = [float(value.strip()) for value in line.split("=")[1].strip().split(',')]
filament_density = round(sum(filament_density_values) / len(filament_density_values), 2) # Calculate the median
filament_density = "{:.2f}".format(filament_density)
elif line.startswith("; layer_height ="):
layer_height = line.split("=")[1].strip()
layer_height = "{:.2f}".format(round(float(layer_height), 2))
layer_height_values = [float(value.strip()) for value in line.split("=")[1].strip().split(',')]
layer_height = round(sum(layer_height_values) / len(layer_height_values), 2) # Calculate the median
layer_height = "{:.2f}".format(layer_height)
elif line.startswith("; total layers count ="):
layers = line.split("=")[1].strip()
@ -145,5 +150,3 @@ if __name__ == "__main__":
if len(sys.argv) < 2:
print("Usage: python3 script.py <gcode-file>")
sys.exit(1)
main(sys.argv[1])

Loading…
Cancel
Save