Programa de conbversion Gcode a Lua per Dobot
File Conv_Gcode_a_Lua
Raul
File de Texto original 852303
File de destino point.Json
prj.json
src0.lua
global.lua
fileCRCCode.json
import sys
import time
from PyQt5.QtCore import Qt
from Scn_Cnv_Dobot import *
class Aplicacion:
def Calculo_puntos():
Punto += 1
Punto_X = linea.find("X",primer_caracter_g)
Punto_Y = linea.find("Y",primer_caracter_g)
Punto_Z = linea.find("Z",primer_caracter_g)
if Punto_X !=-1:
Punto_X_Es = linea.find(" ",Punto_X)
if Punto_X_Es == -1:
Punto_X_Val = linea[Punto_X+1:len(linea)]
Punto_X_Val = Punto_X_Val.strip()
else:
Punto_X_Val = linea[Punto_X+1:Punto_X_Es]
Punto_X_Val = Punto_X_Val.strip()
if Punto_Y !=-1:
Punto_Y_Es = linea.find(" ",Punto_Y)
if Punto_Y_Es == -1:
Punto_Y_Val = linea[Punto_Y+1:len(linea)]
Punto_Y_Val = Punto_Y_Val.strip()
else:
Punto_Y_Val = linea[Punto_Y+1:Punto_Y_Es]
Punto_Y_Val = Punto_Y_Val.strip()
if Punto_Z !=-1:
Punto_Z_Es = linea.find(" ",Punto_Z)
if Punto_Z_Es == -1:
Punto_Z_Val = linea[Punto_Z+1:len(linea)]
Punto_Z_Val = Punto_Z_Val.strip()
else:
Punto_Z_Val = linea[Punto_Z+1:Punto_Z_Es]
Punto_Z_Val = Punto_Z_Val.strip()
Pto_Save_1 = "\"name:\""+"\"P\"" +str(Punto)+"\"tool\""+":1"+"\"user\""+":1,"
Pto_Save_2 = "\"joint\":[-20.0277,-11.1383,88.9708,30.2226,-91.7566,-261.5641]},{\"id\":1699604796888,\"alias\":\"\",\n"
Pto_Save_3 = "\"armOrientation\":[1,1,1,-1],\"coordinate\":["
Pto_Save_4 = str(Punto_X_Val)+","+str(Punto_Y_Val)+","+str(Punto_Z_Val)+","+str(A_Euler)+","+str(E_Euler)+","+str(R_Euler)+"]\n"
Pto_Save_5 = "\n"
archivo_point.write(Pto_Save_1)
archivo_point.write(Pto_Save_2)
archivo_point.write(Pto_Save_3)
archivo_point.write(Pto_Save_4)
def Crear_Cartela():
print ("")
def Copiar_File():
print ('')
def Init():
os.path.getsize("852303.txt")
Uscita = 3
On =1
Off = 0
A_Euler = 20.101
E_Euler = 22.202
R_Euler = 33.303
Punto = 0
P_save = 10
Punto_X_Val = 0
Punto_Y_Val = 0
Punto_Z_Val = 0
#
def Control_Datos():
print ("Contro d Ver Mod 7")
#Cpo_Sorg = (Campo_Sorgente[text()])
Campo_Info.SetText("Hola")
# Cambio color a Info_Progetto
# Cambio texto a una Label
print ("Control Datos ejecutada")
def Generacion_Files():
Init()
#Control_Datos()
archivo_gcode = open ("852303.txt","r")
archivo_src0 = open ("src0.lua","w")
archivo_point = open ("point.json","w")
archivo_point.write("[{\"id\":\"base\",\"alias\":\"\",\"armOrientation\":[1,1,-1,-1],\"coordinate\":[0,0,0,0,0,0],\n");
archivo_point.write("\"name\":\"InitialPose\",\"tool\":0,\"user\":0,\"joint\":[0,0,0,0,0,0]},{\"id\":1699604731023,\"alias\":\"\",\n");
archivo_point.write("\"armOrientation\":[1,1,1,-1],\"coordinate\":[-555.0739,2.8527,746.882,-175.0788,-17.2875,-29.1041],\n");
# ===============================================
archivo_global = open ("global.lua","w")
archivo_global.close
archivo_prj = open ("prj.json","w")
Prj_Save = "{"+"\"cpus\""+":[\"src0.lua\"],\"global\":\"global.lua\",\"teach_point\":\"point.json\"}"
archivo_prj.write(Prj_Save)
archivo_prj.close
archivo_fileCRCCode = open ("fileCRCCode.json","w")
CRCCode_Save ="{\"fileName\":[\"scratch.xml\",\"global.lua\",\"point.json\",\"prj.json\",\"src0.lua\"],\"crcCode\":[2064672904,0,3216453487,668367846,1563868684]}"
archivo_fileCRCCode.write(CRCCode_Save)
archivo_fileCRCCode.close
#=================================================
total_lineas = len(archivo_gcode.readline())
archivo_src0.write("--- \n");
archivo_src0.write(" \n")
archivo_src0.write("local Option 1={CP=1, SpeedL=40, AccL=10} "+"---\n");
archivo_src0.write("local Option 2={CP=100, SpeedL=15, AccL=10} "+"---\n");
archivo_src0.write(" \n")
for i in range (0,55):
linea = archivo_gcode.readline()
lg = len(linea)
print("linea Nro",i," Long: ",lg," ",linea)
primer_caracter_g = linea.find("G")
primer_caracter_m = linea.find("M")
primer_caracter_f = linea.find("F")
primer_caracter_Paren = linea.find("(")
if primer_caracter_Paren != -1:
archivo_src0.write("---"+" "+linea);
else:
if primer_caracter_g != -1:
gcodigo = linea[primer_caracter_g:7]
gcodigo = gcodigo.strip()
if gcodigo == "G0":
#===========================
Calculo_puntos()
archivo_src0.write(" MovJ("+"P"+str(Punto)+",Option1"+")"+"\n");
#============================
if gcodigo == "G1":
#===========================
Calculo_puntos()
archivo_src0.write(" MovL("+"P"+str(Punto)+",Option2"+")"+"\n")
#============================
if gcodigo == "G2":
#===========================
Calculo_puntos()
archivo_src0.write(" MovL("+"P"+str(Punto)+",Option2"+")"+"\n")
#============================
if gcodigo == "G4":
primer_caracter_p = linea.find("P")
Punto_P_Val = linea[primer_caracter_p+1:len(linea)]
Punto_P_Val = Punto_P_Val.strip()
archivo_src0.write(" WAIT("+str(Punto_P_Val)+")"+"\n");
if gcodigo == "G90":
archivo_src0.write("--- "+str(i)+" "+gcodigo+" 90"+"\n");
if gcodigo == "G71":
archivo_src0.write("--- "+str(i)+" "+gcodigo+" 71"+"\n");
else:
if primer_caracter_m != -1:
mcodigo = linea[primer_caracter_m:8]
mcodigo = mcodigo.strip()
if mcodigo =="M3":
archivo_src0.write( " DO("+str(Uscita)+","+str(On)+")"+"\n");
if mcodigo =="M5":
archivo_src0.write( " DO("+str(Uscita)+","+str(Off)+")"+"\n");
if primer_caracter_f != -1:
fcodigo = linea[primer_caracter_f:9]
fcodigo = fcodigo.strip()
archivo_src0.write(str(i)+" "+fcodigo+"\n");
##
archivo_gcode.close
archivo_src0.close
archivo_point.close
print ("Fin generacion")
def Uscita(self):
quit()
class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
def init(self, *args, **kwargs):
QtWidgets.QMainWindow.init(self, *args, **kwargs)
self.setupUi(self)
self.Tasto_Uscita.clicked.connect(Uscita)
self.Tasto_Generar_File.clicked.connect(Control_Datos)
#self.Tasto_Nuevo_Pro.clicked(Nuovo_Proggetto)
if name == "main":
app = QtWidgets.QApplication([])
window = MainWindow()
window.show()
app.exec_()