iTool = -1 # Placeholder, 
iMax_Tools = 5
sMaterial = "NinjaFlex"
stabilizeAtStartup = False
temperature_setpoint_layer = 1
tool_temperature_setpoint = 218
globalBedTemperature = 60
nozzle_diameter = 0.4
autoWidth = 0
width = 0.42
extrusionMultiplier = 1.1
useRetract = True
retractionDistance = 6
extraRestartDistance = 0
retractionZLift = True
retractionSpeed = 6000
useCoasting = False
coastingDistance = 5
useWipe = False
wipeDistance = 5
fanSpeedLayer1 = 0
fanSpeedLayer2 = 100
Settings = []

Settings.append("  <autoConfigureMaterial name=" + '"' + sMaterial + "_(T" + "str(iTool)" + ")" + '"' + ")>")#0
Settings.append("    <temperatureController name=" + '"' + sMaterial + "_(T" + "str(iTool)" + ")" + '"' + ">")#1
Settings.append("      <temperatureNumber>" + "str(iTool)" + "</temperatureNumber>")#2
Settings.append("      <isHeatedBed>0</isHeatedBed>")
Settings.append("      <stabilizeAtStartup>" + str(int(stabilizeAtStartup)) + "</stabilizeAtStartup>")
Settings.append("      <setpoint layer=" + '"' + str(temperature_setpoint_layer) + '"' + " temperature=" + '"' + str(tool_temperature_setpoint) + '"' + "/>")
Settings.append("    </temperatureController>")
Settings.append("    <globalBedTemperature>" + str(globalBedTemperature) + "</globalBedTemperature>")
Settings.append("    <extruder name=" + '"' + sMaterial + "_(T" + "str(iTool)" + ")" + '"' + ">")#8
Settings.append("      <toolheadNumber>" + "str(iTool)" + "</toolheadNumber>")#9
Settings.append("      <diameter>" + str(nozzle_diameter) + "</diameter>")
Settings.append("      <autoWidth>" + str(autoWidth) + "</autoWidth>")
Settings.append("      <width>" + str(width) + "</width>")
Settings.append("      <extrusionMultiplier>" + str(extrusionMultiplier) + "</extrusionMultiplier>")
Settings.append("      <useRetract>" + str(int(useRetract)) + "</useRetract>")
Settings.append("      <retractionDistance>" + str(retractionDistance) + "</retractionDistance>")
Settings.append("      <extraRestartDistance>" + str(extraRestartDistance) + "</extraRestartDistance>")
Settings.append("      <retractionZLift>" + str(int(retractionZLift)) + "</retractionZLift>")
Settings.append("      <retractionSpeed>" + str(retractionSpeed) + "</retractionSpeed>")
Settings.append("      <useCoasting>" + str(int(useCoasting)) + "</useCoasting>")
Settings.append("      <coastingDistance>" + str(coastingDistance) + "</coastingDistance>")
Settings.append("      <useWipe>" + str(int(useWipe)) + "</useWipe>")
Settings.append("      <wipeDistance>" + str(wipeDistance) + "</wipeDistance>")
Settings.append("    </extruder>")
Settings.append("    <fanSpeed>")
Settings.append("      <setpoint layer=" + '"' + "1" + '"' + " speed=" + '"' + str(fanSpeedLayer1) + '"' +"/>")
Settings.append("      <setpoint layer=" + '"' + "2" + '"' + " speed=" + '"' + str(fanSpeedLayer2)  + '"' +"/>")
Settings.append("    </fanSpeed>")
Settings.append("  </autoConfigureMaterial>")

outfile = open(sMaterial + ".txt", 'w') #Open the temporary gCode file for writing.
                
                
for i in range(1, (iMax_Tools + 1)):
                iTool = i
                Settings[0] = ("  <autoConfigureMaterial name=" + '"' + sMaterial + "_(T" + str(iTool) + ")" + '"' + ")>")#0
                Settings[1] = ("    <temperatureController name=" + '"' + sMaterial + "_(T" + str(iTool) + ")" + '"' + ">")#1
                Settings[2] = ("      <temperatureNumber>" + str(iTool) + "</temperatureNumber>")#2                
                Settings[8] = ("    <extruder name=" + '"' + sMaterial + "_(T" + str(iTool) + ")" + '"' + ">")#8
                Settings[9] = ("      <toolheadNumber>" + str(iTool) + "</toolheadNumber>")#9

                icnt = 0
                for line_setting in Settings:
                    outfile.write(Settings[icnt] + "\n")
                    icnt += 1
                
outfile.close()
print("Done!")                



















