# Création de fichier LightBurn pour des boites
# 2 modèles de boite dans le fichier (horizontal et vertical)
# Entrer les dimensions de la boite en cm et 1 pour du carton épais ou 0 sinon*
# Exemple : 20 13 4 0 ou 30 19 4 1
#
path = "D:\\Lightburn\\Cartons\\"
# path = "C:\\Users\\irena\\Desktop\\Clé 3D\\Lightburn\Cartons\\"
head = "Head.txt"
thickhead = "Head_thick.txt"
tail = "Tail.txt"
print ("Génération de fichier LightBurn pour des boites en carton")
print ("Entrez la taille de la boite : largeur longueur épaisseur (en cm) et épaisseur carton (0 ou 1)")
size = input()
dim = [float(x) for x in size.split()]
if len(dim) == 3:
dim.append(0)
L0 = dim[0]
W0 = dim[1]
H0 = dim[2]
T = dim[3]
if L0 == int(L0): L0 = int(L0)
if W0 == int(W0): W0 = int(W0)
if H0 == int(H0): H0 = int(H0)
## Copy head of file
name = "Boite "+str(L0)+"-"+str(W0)+"-"+str(H0)
if T == 1:
name = name + "e"
h = open(path + thickhead, "r")
else:
h = open(path + head, "r")
name = name + ".lbrn"
LB = open(path + name, "w")
for x in h:
LB.write(x)
h.close()
L = int(L0 * 10) # mm
W = int(W0 * 10)
H = int(H0 * 10)
T = 0 #T * 5
H = H + T
## Generate model
# Boite horizontale
LB.write (" CutIndex=\"0\"\n")
LB.write (" 1 0 0 1 0 0\n")
LB.write (" \n")
LB.write (" \n")
x = H + 46
y = H / 2 - 3
LB.write (" 1 0 0 1.0 "+str(x)+" "+str(y)+"\n")
LB.write (" \n")
LB.write (" CutIndex=\"0\"\n")
LB.write (" 1 0 0 1 0 0\n")
LB.write (" \n")
LB.write (" \n")
Xcenter = H + L/2
Ycenter = H + W/2
LB.write (" 1 0 0 1 " + str(int(Xcenter)) + " " + str(int(Ycenter)) + "\n")
LB.write (" \n")
##
LB.write (" \n")
Xcenter = 2*H + 3*L/2
Ycenter = H + W/2
LB.write (" 1 0 0 1 " + str(int(Xcenter)) + " " + str(int(Ycenter)) + "\n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
##
LB.write (" \n")
LB.write (" 1 0 0 1 0 0\n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write ("
\n")
LB.write ("
\n")
LB.write ("
\n")
LB.write ("
\n")
LB.write ("
\n")
LB.write ("
\n")
LB.write ("
\n")
LB.write ("
\n")
LB.write ("
\n")
LB.write ("
\n")
LB.write ("
\n")
LB.write ("
\n")
LB.write ("
\n")
LB.write ("
\n")
LB.write ("
\n")
LB.write ("
\n")
LB.write ("
\n")
LB.write ("
\n")
LB.write ("
\n")
LB.write ("
\n")
LB.write (" \n")
LB.write (" \n")
## Second box
# Boite verticale
if L0 != W0:
Ydecal = 2*H + W + 10 # met le second modèle sous le premier
LB.write (" \n")
LB.write (" 1 0 0 1 0 " + str(int(Ydecal)) + "\n")
LB.write (" \n")
LB.write (" \n")
#y = y + Ydecal
LB.write (" 1 0 0 1.0 "+str(x)+" "+str(y)+"\n")
LB.write (" \n")
LB.write (" \n")
LB.write (" 1 0 0 1 0 0\n")
LB.write (" \n")
LB.write (" \n")
Xcenter = H + L/2
Ycenter = H + W/2
LB.write (" 1 0 0 1 " + str(int(Xcenter)) + " " + str(int(Ycenter)) + "\n")
LB.write (" \n")
##
LB.write (" \n")
Xcenter = H + L/2
Ycenter = 2*H + 3*W/2
LB.write (" 1 0 0 1 " + str(int(Xcenter)) + " " + str(int(Ycenter)) + "\n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
##
LB.write (" \n")
LB.write (" 1 0 0 1 0 0\n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write (" \n")
LB.write ("
\n")
LB.write ("
\n")
LB.write ("
\n")
LB.write ("
\n")
LB.write ("
\n")
LB.write ("
\n")
LB.write ("
\n")
LB.write ("
\n")
LB.write ("
\n")
LB.write ("
\n")
LB.write ("
\n")
LB.write ("
\n")
LB.write ("
\n")
LB.write ("
\n")
LB.write ("
\n")
LB.write ("
\n")
LB.write ("
\n")
LB.write ("
\n")
LB.write ("
\n")
LB.write ("
\n")
LB.write (" \n")
LB.write (" \n")
## Copy tail of file
t = open(path + tail, "r")
for x in t:
LB.write(x)
t.close()
LB.close()