#!/usr/bin/python3

import sys

InputFile = ""
OutputFile = ""
Drills = []

Init = []
Tool = ""

if len(sys.argv) > 1:
    for arg in sys.argv[1:]:
        if arg == "-inc":
            Incremental = True
        elif arg[:3] == "-i=":
            Init.append(arg[3:])
        elif arg[:3] == "-t=":
            Tool = arg[3:]
        elif arg[:1] == "-":
            print("Unbekannte Option:" + arg)
            InputFile = ""
            break
        else:
            if InputFile == "":
                InputFile = arg
            elif OutputFile == "":
                OutputFile = arg
            else:
                print("Unbekannte Option:" + arg)
                InputFile = ""
                break

if InputFile == "":
    print ("Konvertiert eine drl Bohrdatei von KiCat Layout in ein CNC File.")
    print ("Aufruf: drl2cnc [-i=init] [-t=cmd] Input.drl [Output.cnc], wobei:")
    print ("-i=Init cnc, mehrfach möglich z.B -i=V12 -i=\"P X0 Y0\"")
    print ("-t=Tool Header, vor dem T Kommando um eine Position zum Werkzeugwechsel einzufügen, z.B -t=\"X -10 Y -20\"")
    print ("Input.drl = Eingabedatei, Output.cnc = Ausgabedatei oder Console falls keine angegeben")
    exit()
# Datei lesen und verarbeiten

FileIn = open(InputFile)
if OutputFile != "":
    FileOut = open(OutputFile, 'w')
else:
    FileOut = sys.stdout

for init in Init:
    FileOut.write(init + "\n")

# Wir lesen die Datei und speichern die Bohrer um sie später mit T zu benennen
# Dann wird X und Y mit Z erweitert und formatiert
# that's all folks
for InputLine in FileIn:
    if InputLine[0] == "T": #Tool
        Input = InputLine.strip().split("C")
        if len(Input) > 1:
            # Tool Definitions Zeile: T1C0.400
            Drills.append(Input)
        else:
            # Tool Abruf Zeile: T1
            for Drill in Drills:
                if Drill[0] == InputLine.strip():
                    Size = Drill[1]
                    if Tool != "": FileOut.write("\n" + str(Tool)) # Tool Header einfügen
                    FileOut.write("\nT; Bohrer " + str(Drill[0]) + str(": ") + str(Drill[1]) + " mm\n")

    elif InputLine[0] == "X":
        # Koordinaten: X16.51Y8.89
        Input = InputLine[1:].strip().split("Y")
        FileOut.write(str("X {:>7s}".format(Input[0])) + str(" Y {:>7s}".format(Input[1])) + " Z\n")


FileIn.close()
if OutputFile != False:
    FileOut.close()

FileOut = sys.stdout
