openspoolman/filament.py

180 lines
5.5 KiB
Python
Raw Permalink Normal View History

2024-12-12 23:05:19 +01:00
# mapping adapted from https://github.com/spuder/OpenSpool/blob/main/firmware/conf.d/automation.yaml
def generate_filament_brand_code(filament_type, filament_brand, filament_variant):
filament_sub_brand = ""
filament_brand_code = ""
if filament_type == "TPU":
if filament_brand == "Bambu":
filament_brand_code = "GFU01"
filament_sub_brand = "TPU 95A"
else:
filament_brand_code = "GFU99"
filament_sub_brand = "TPU"
elif filament_type == "PLA":
if filament_brand == "PolyTerra":
filament_brand_code = "GFL01"
filament_sub_brand = "PolyTerra PLA"
elif filament_brand == "PolyLite":
filament_brand_code = "GFL00"
filament_sub_brand = "PolyLite PLA"
elif filament_brand == "Bambu":
if filament_variant == "Basic":
filament_brand_code = "GFA00"
filament_sub_brand = "PLA Basic"
elif filament_variant == "Matte":
filament_brand_code = "GFA01"
filament_sub_brand = "PLA Matte"
elif filament_variant == "Metal":
filament_brand_code = "GFA02"
filament_sub_brand = "PLA Metal"
elif filament_variant == "Impact":
filament_brand_code = "GFA03"
filament_sub_brand = "PLA Impact"
else:
filament_brand_code = "GFA00"
filament_sub_brand = "PLA Basic"
else:
filament_brand_code = "GFL99"
filament_sub_brand = "PLA"
elif filament_type == "PETG":
if filament_brand == "Overture":
filament_brand_code = "GFG99" # Placeholder code
filament_sub_brand = "PETG"
else:
filament_brand_code = "GFG99"
filament_sub_brand = "PETG"
elif filament_type == "PET-CF":
if filament_brand == "Bambu":
filament_brand_code = "GFT00"
filament_sub_brand = "PET-CF"
else:
filament_brand_code = "GFG99"
filament_sub_brand = "PET-CF"
elif filament_type == "ASA":
filament_brand_code = "GFB98"
filament_sub_brand = "ASA"
elif filament_type == "ABS":
if filament_brand == "Bambu":
filament_brand_code = "GFB00"
filament_sub_brand = "ABS"
else:
filament_brand_code = "GFB99"
filament_sub_brand = "ABS"
elif filament_type == "PC":
if filament_brand == "Bambu":
filament_brand_code = "GFC00"
filament_sub_brand = "PC"
else:
filament_brand_code = "GFC99"
filament_sub_brand = "PC"
elif filament_type == "PA":
filament_brand_code = "GFN99"
filament_sub_brand = "PA"
elif filament_type == "PA-CF":
if filament_brand == "Bambu":
filament_brand_code = "GFN03"
filament_sub_brand = "PA-CF"
else:
filament_brand_code = "GFN98"
filament_sub_brand = "PA-CF"
elif filament_type == "PLA-CF":
filament_brand_code = "GFL98"
filament_sub_brand = "PLA-CF"
elif filament_type == "PVA":
filament_brand_code = "GFS99"
filament_sub_brand = "PVA"
elif filament_type == "Support":
if filament_variant == "G":
filament_brand_code = "GFS01"
filament_sub_brand = "Support G"
elif filament_variant == "W":
filament_brand_code = "GFS00"
filament_sub_brand = "Support W"
else:
filament_brand_code = "GFS00"
filament_sub_brand = "Support W"
else:
print(f"Unknown filament type: {filament_type}")
return {"brand_code": filament_brand_code,
"sub_brand_code": filament_sub_brand
}
def generate_filament_temperatures(filament_type, filament_brand):
filament_min_temp = 150
filament_max_temp = 300
if not filament_type:
print("Skipping temperature generation as filament_type is empty.")
return
if filament_type == "TPU":
if filament_brand == "Generic":
filament_min_temp = 200
filament_max_temp = 250
else:
print(f"Unknown temperatures for TPU brand: {filament_brand}")
filament_min_temp = 200
filament_max_temp = 250
elif filament_type == "PLA":
if filament_brand == "Generic":
filament_min_temp = 190
filament_max_temp = 240
else:
print(f"Unknown temperatures for PLA brand: {filament_brand}")
filament_min_temp = 190
filament_max_temp = 240
elif filament_type == "PETG":
if filament_brand == "Generic":
filament_min_temp = 220
filament_max_temp = 270
else:
print(f"Unknown temperatures for PETG brand: {filament_brand}")
filament_min_temp = 220
filament_max_temp = 270
elif filament_type == "ASA":
if filament_brand == "Generic":
filament_min_temp = 240
filament_max_temp = 280
else:
print(f"Unknown temperatures for ASA brand: {filament_brand}")
filament_min_temp = 240
filament_max_temp = 280
elif filament_type == "PC":
if filament_brand == "Generic":
filament_min_temp = 250
filament_max_temp = 300
else:
print(f"Unknown temperatures for PC brand: {filament_brand}")
filament_min_temp = 250
filament_max_temp = 300
elif filament_type == "PA":
if filament_brand == "Generic":
filament_min_temp = 260
filament_max_temp = 300
else:
print(f"Unknown temperatures for PA brand: {filament_brand}")
filament_min_temp = 260
filament_max_temp = 300
else:
print(f"Unknown filament type: {filament_type}")
return {"filament_min_temp": filament_min_temp,
"filament_max_temp": filament_max_temp
}