mirror of
https://github.com/BKLronin/touchCNC.git
synced 2024-11-21 16:14:01 +01:00
Update cnc.py
- changed to jog mode instead of normal gcode - changed xyz label appearance -added jog cancel button - completed tool and macro buttons with clour states
This commit is contained in:
parent
07909f945f
commit
681f447626
124
cnc.py
124
cnc.py
@ -8,6 +8,7 @@ grbl = 0
|
|||||||
i = 10
|
i = 10
|
||||||
GCODE = 0
|
GCODE = 0
|
||||||
AXIS = 'X'
|
AXIS = 'X'
|
||||||
|
states = {'M3': '0', 'M8':'0', 'M6':'0'} #Spindle, Coolant
|
||||||
|
|
||||||
def grblConnect2():
|
def grblConnect2():
|
||||||
global grbl
|
global grbl
|
||||||
@ -37,26 +38,18 @@ def grblConnect2():
|
|||||||
# Stream g-code to grbl
|
# Stream g-code to grbl
|
||||||
#Stream GCODE from -https://onehossshay.wordpress.com/2011/08/26/grbl-a-simple-python-interface/-
|
#Stream GCODE from -https://onehossshay.wordpress.com/2011/08/26/grbl-a-simple-python-interface/-
|
||||||
|
|
||||||
def grblConnectDebug():
|
def displayPosition(grbl):
|
||||||
global grbl
|
grbl_command = '?'
|
||||||
|
grbl.write(str.encode(grbl_command + '\n'))
|
||||||
|
position = grbl.readline()
|
||||||
|
print("position", position)
|
||||||
|
|
||||||
grbl = serial.Serial(port= '/dev/ttyACM0', baudrate= 115200, timeout =.1)
|
|
||||||
#grbl.close()
|
|
||||||
#print(grbl.readline())
|
|
||||||
grbl.write(str.encode("\r\n\r\n"))
|
|
||||||
time.sleep(2) # Wait for grbl to initialize
|
|
||||||
grbl.flushInput() # Flush startup text in serial input
|
|
||||||
#print("connected")
|
|
||||||
connect_ser.config(bg='green')
|
|
||||||
#print(grbl.read())
|
|
||||||
infoScreen(grbl.read())
|
|
||||||
return grbl
|
|
||||||
|
|
||||||
def jogWrite(grbl,AXIS, CMD, scale):
|
def jogWrite(grbl,AXIS, CMD, scale):
|
||||||
DECIMAL = [0.1,1,10,100]
|
DECIMAL = [0.1,1,10,100]
|
||||||
scale = increments.get()
|
scale = increments.get()
|
||||||
MOVE = int(CMD) * DECIMAL[scale -1]
|
MOVE = int(CMD) * DECIMAL[scale -1]
|
||||||
grbl_command = ('G91'+'G0' +' ' + AXIS + str(MOVE) + ' '+ 'F100')
|
grbl_command = ('$J=G91' +' ' + AXIS + str(MOVE) + ' '+ 'F100')
|
||||||
#print(grbl_command)
|
#print(grbl_command)
|
||||||
grbl.write(str.encode(grbl_command + '\n'))
|
grbl.write(str.encode(grbl_command + '\n'))
|
||||||
grbl_out = grbl.readline() # Wait for grbl response with carriage return
|
grbl_out = grbl.readline() # Wait for grbl response with carriage return
|
||||||
@ -64,6 +57,57 @@ def jogWrite(grbl,AXIS, CMD, scale):
|
|||||||
infoScreen(grbl_command)
|
infoScreen(grbl_command)
|
||||||
infoScreen(grbl_out)
|
infoScreen(grbl_out)
|
||||||
|
|
||||||
|
def directWrite(grbl, CMD):
|
||||||
|
grbl_command = CMD
|
||||||
|
grbl.write(str.encode(grbl_command + '\n'))
|
||||||
|
grbl_out = grbl.readline() # Wait for grbl response with carriage return
|
||||||
|
infoScreen(grbl_command)
|
||||||
|
infoScreen(grbl_out)
|
||||||
|
|
||||||
|
def latchWrite(grbl, CMD):
|
||||||
|
global states
|
||||||
|
if states[CMD] == '0':
|
||||||
|
states[CMD] = '1'
|
||||||
|
if CMD == 'M3':
|
||||||
|
spindle.config(bg='red')
|
||||||
|
if CMD == 'M6':
|
||||||
|
tool.config(bg = 'yellow')
|
||||||
|
|
||||||
|
else:
|
||||||
|
states[CMD] ='0'
|
||||||
|
if CMD == 'M3':
|
||||||
|
spindle.config(bg='green')
|
||||||
|
if CMD == 'M6':
|
||||||
|
tool.config(bg='grey')
|
||||||
|
|
||||||
|
if CMD == 'M3':
|
||||||
|
grbl_command = (CMD * int(states[CMD]))
|
||||||
|
|
||||||
|
if CMD == 'M8':
|
||||||
|
if states['M8'] == '1':
|
||||||
|
grbl_command = (CMD)
|
||||||
|
coolant.config(bg ='blue')
|
||||||
|
else:
|
||||||
|
grbl_command = ('M7')
|
||||||
|
coolant.config(bg ='grey')
|
||||||
|
else:
|
||||||
|
grbl_command = (CMD)
|
||||||
|
|
||||||
|
#grbl_command = (CMD * int(states[CMD]) )
|
||||||
|
print(grbl_command)
|
||||||
|
print(states)
|
||||||
|
grbl.write(str.encode(grbl_command + '\n'))
|
||||||
|
grbl_out = grbl.readline() # Wait for grbl response with carriage return
|
||||||
|
infoScreen(grbl_command)
|
||||||
|
infoScreen(grbl_out)
|
||||||
|
|
||||||
|
def zeroWrite(grbl, CMD, AXIS):
|
||||||
|
grbl_command = (CMD + ' ' + AXIS + '0')
|
||||||
|
grbl.write(str.encode(grbl_command + '\n'))
|
||||||
|
grbl_out = grbl.readline() # Wait for grbl response with carriage return
|
||||||
|
infoScreen(grbl_command)
|
||||||
|
infoScreen(grbl_out)
|
||||||
|
|
||||||
def terminalWrite(grbl):
|
def terminalWrite(grbl):
|
||||||
grbl_command = terminal.get()
|
grbl_command = terminal.get()
|
||||||
#print(grbl_command)
|
#print(grbl_command)
|
||||||
@ -159,25 +203,27 @@ increments = IntVar()
|
|||||||
left = Button(root, text="-X", width = buttonsize_x, height = buttonsize_y, command = lambda:jogWrite(grbl, 'X', '-1', increments))
|
left = Button(root, text="-X", width = buttonsize_x, height = buttonsize_y, command = lambda:jogWrite(grbl, 'X', '-1', increments))
|
||||||
right = Button(root, text="+X",width = buttonsize_x, height = buttonsize_y,command = lambda:jogWrite(grbl, 'X', '1', increments))
|
right = Button(root, text="+X",width = buttonsize_x, height = buttonsize_y,command = lambda:jogWrite(grbl, 'X', '1', increments))
|
||||||
up = Button(root, text="+Y", width = buttonsize_x, height = buttonsize_y,command = lambda:jogWrite(grbl, 'Y', '1', increments))
|
up = Button(root, text="+Y", width = buttonsize_x, height = buttonsize_y,command = lambda:jogWrite(grbl, 'Y', '1', increments))
|
||||||
|
cancel = Button(root, text="cancel", width = buttonsize_x, height = buttonsize_y,bg = 'black', command = lambda:directWrite(grbl, '0x85' ))
|
||||||
down = Button(root, text="-Y",width = buttonsize_x, height = buttonsize_y,command = lambda:jogWrite(grbl, 'Y', '-1', increments))
|
down = Button(root, text="-Y",width = buttonsize_x, height = buttonsize_y,command = lambda:jogWrite(grbl, 'Y', '-1', increments))
|
||||||
z_up = Button(root, text="+Z",width = buttonsize_x, height = buttonsize_y,command = lambda:jogWrite(grbl, 'Z', '1', increments) )
|
z_up = Button(root, text="+Z",width = buttonsize_x, height = buttonsize_y,command = lambda:jogWrite(grbl, 'Z', '1', increments) )
|
||||||
z_down = Button(root, text="-Z",width = buttonsize_x, height = buttonsize_y,command = lambda:jogWrite(grbl, 'Z', '-1', increments))
|
z_down = Button(root, text="-Z",width = buttonsize_x, height = buttonsize_y,command = lambda:jogWrite(grbl, 'Z', '-1', increments))
|
||||||
zero_x = Button(root, text="zero X",width = buttonsize_x, height = buttonsize_y)
|
zero_x = Button(root, text="zero X",width = buttonsize_x, height = buttonsize_y, command = lambda:zeroWrite(grbl,'G92', 'X' ))
|
||||||
zero_y = Button(root, text="zero Y",width = buttonsize_x, height = buttonsize_y)
|
zero_y = Button(root, text="zero Y",width = buttonsize_x, height = buttonsize_y, command = lambda:zeroWrite(grbl,'G92', 'Y' ))
|
||||||
zero_z = Button(root, text="zero Z",width = buttonsize_x, height = buttonsize_y)
|
zero_z = Button(root, text="zero Z",width = buttonsize_x, height = buttonsize_y, command = lambda:zeroWrite(grbl,'G92', 'Z' ))
|
||||||
zero_all =Button(root, text="zero All",width = buttonsize_x, height = buttonsize_y)
|
zero_all =Button(root, text="zero All",width = buttonsize_x, height = buttonsize_y, command = lambda:zeroWrite(grbl,'G92', 'XYZ'))
|
||||||
|
|
||||||
connect_ser = Button(root, text="Cnnct",width = buttonsize_x, height = buttonsize_y, command = grblConnect2, bg = 'grey')
|
connect_ser = Button(root, text="Cnnct",width = buttonsize_x, height = buttonsize_y, command = grblConnect2, bg = 'grey')
|
||||||
discon_ser = Button(root, text="Dsconct",width = buttonsize_x, height = buttonsize_y, command = lambda:grblClose(grbl))
|
discon_ser = Button(root, text="Dsconct",width = buttonsize_x, height = buttonsize_y, command = lambda:grblClose(grbl))
|
||||||
|
unlock = Button(root, text="Unlock",width = buttonsize_x, height = buttonsize_y, command = lambda:directWrite(grbl, '$X'))
|
||||||
start = Button(root, text="START",width = buttonsize_x, height = buttonsize_y, bg = 'red', command = lambda: grblWrite(grbl))
|
start = Button(root, text="START",width = buttonsize_x, height = buttonsize_y, bg = 'red', command = lambda: grblWrite(grbl))
|
||||||
stop = Button(root, text="STOP",width = buttonsize_x, height = buttonsize_y, bd= 3)
|
stop = Button(root, text="STOP",width = buttonsize_x, height = buttonsize_y, bd= 3)
|
||||||
pause = Button(root, text="PAUSE",width = buttonsize_x, height = buttonsize_y, bg = '#007fff')
|
pause = Button(root, text="PAUSE",width = buttonsize_x, height = buttonsize_y, bg = '#007fff')
|
||||||
fopen = Button(root, text="GCODE",width = buttonsize_x , height = buttonsize_y, bg = 'grey', command = openGCODE)
|
fopen = Button(root, text="GCODE",width = buttonsize_x , height = buttonsize_y, bg = 'grey', command = openGCODE)
|
||||||
|
|
||||||
spindle = Button(root, text="Spindle",width = buttonsize_x, height = buttonsize_y)
|
spindle = Button(root, text="Spindle",width = buttonsize_x, height = buttonsize_y, bg = 'grey', command = lambda:latchWrite(grbl,'M3'))
|
||||||
coolant = Button(root, text="Coolant",width = buttonsize_x, height = buttonsize_y)
|
coolant = Button(root, text="Coolant",width = buttonsize_x, height = buttonsize_y,command = lambda:latchWrite(grbl,'M8') )
|
||||||
tool = Button(root, text="Tool",width = buttonsize_x, height = buttonsize_y)
|
tool = Button(root, text="Tool",width = buttonsize_x, height = buttonsize_y,command = lambda:latchWrite(grbl,'M6') )
|
||||||
macro = Button(root, text="Macro1",width = buttonsize_x, height = buttonsize_y)
|
macro = Button(root, text="Macro1",width = buttonsize_x, height = buttonsize_y,command = lambda:directWrite(grbl,' G90 G1 X10 Y10 Z50 F100') )
|
||||||
|
|
||||||
step_incr1 = Radiobutton(root, text= '0,1', value = 1 , variable = increments,width = buttonsize_x, height = buttonsize_y, indicatoron = 0 )
|
step_incr1 = Radiobutton(root, text= '0,1', value = 1 , variable = increments,width = buttonsize_x, height = buttonsize_y, indicatoron = 0 )
|
||||||
step_incr2 = Radiobutton(root, text= '1', value = 2 , variable = increments,width = buttonsize_x, height = buttonsize_y, indicatoron = 0 )
|
step_incr2 = Radiobutton(root, text= '1', value = 2 , variable = increments,width = buttonsize_x, height = buttonsize_y, indicatoron = 0 )
|
||||||
@ -189,24 +235,18 @@ terminal = Entry(root, width =8, text="GCODE")
|
|||||||
terminal_send = Button(root, text="SEND",width = buttonsize_x, height = buttonsize_y, bd= 3, command = lambda: terminalWrite(grbl))
|
terminal_send = Button(root, text="SEND",width = buttonsize_x, height = buttonsize_y, bd= 3, command = lambda: terminalWrite(grbl))
|
||||||
terminal_recv = Canvas(root, width = 200, height =400, bg = 'white')
|
terminal_recv = Canvas(root, width = 200, height =400, bg = 'white')
|
||||||
|
|
||||||
show_ctrl_x_label = Label(root,text = "X - POSITION")
|
show_ctrl_x_label = Label(root,text = "X")
|
||||||
show_ctrl_y_label = Label(root,text = "Y - POSITION")
|
show_ctrl_y_label = Label(root,text = "Y")
|
||||||
show_ctrl_z_label = Label(root,text = "Z - POSITION")
|
show_ctrl_z_label = Label(root,text = "Z")
|
||||||
show_ctrl_x =Entry(root, text = "X - POSITION", width = 5)
|
show_ctrl_x =Label(root, text = "X ", width = 10, height = 2, bg ='white', relief = SUNKEN)
|
||||||
show_ctrl_y =Entry(root, text = "Y - POSITION", width = 5)
|
show_ctrl_y =Label(root, text = "Y ", width = 10, height = 2, bg ='white', relief = SUNKEN)
|
||||||
show_ctrl_z =Entry(root, text = "Z - POSITION", width = 5)
|
show_ctrl_z =Label(root, text = "Z ", width = 10, height = 2, bg ='white', relief = SUNKEN)
|
||||||
|
|
||||||
feed_control = Scale(root, orient = HORIZONTAL, length = 400, label = "Feedrate",tickinterval = 20)
|
feed_control = Scale(root, orient = HORIZONTAL, length = 400, label = "Feedrate",tickinterval = 20)
|
||||||
|
|
||||||
#Milling Area and Gcode preview with grid generation
|
#Milling Area and Gcode preview with grid generation
|
||||||
|
|
||||||
mill_table= Canvas(root, width= 400, height = 400, bg = 'grey')
|
mill_table= Canvas(root, width= 400, height = 400, bg = 'grey')
|
||||||
try:
|
|
||||||
meister = PhotoImage(file='meister.png', width =400, height = 400)
|
|
||||||
mill_table.create_image(200,200,image = meister, anchor =NW)
|
|
||||||
|
|
||||||
except:
|
|
||||||
infoScreen("Couldn't load background")
|
|
||||||
|
|
||||||
mill_table.create_rectangle(50,50,350,350, fill ='white')
|
mill_table.create_rectangle(50,50,350,350, fill ='white')
|
||||||
mill_table.create_text(200,25,text = 'Fräsbereich 300mm x 300mm')
|
mill_table.create_text(200,25,text = 'Fräsbereich 300mm x 300mm')
|
||||||
@ -220,6 +260,7 @@ for x in range(0,400,50):
|
|||||||
gitter_y = mill_table.create_line(0,y,400,y)
|
gitter_y = mill_table.create_line(0,y,400,y)
|
||||||
|
|
||||||
left.grid(row=1, column=0, padx=3, pady=2)
|
left.grid(row=1, column=0, padx=3, pady=2)
|
||||||
|
cancel.grid(row=0, column=0, padx=3, pady=2)
|
||||||
right.grid(row=1, column=2,padx=3, pady=2)
|
right.grid(row=1, column=2,padx=3, pady=2)
|
||||||
up.grid(row=0, column=1, padx=3, pady=10)
|
up.grid(row=0, column=1, padx=3, pady=10)
|
||||||
down.grid(row=1, column=1,padx=3, pady=2)
|
down.grid(row=1, column=1,padx=3, pady=2)
|
||||||
@ -233,13 +274,13 @@ step_incr2.grid(row=2, column=1,padx=3, pady=10)
|
|||||||
step_incr3.grid(row=2, column=2,padx=3, pady=10)
|
step_incr3.grid(row=2, column=2,padx=3, pady=10)
|
||||||
step_incr4.grid(row=2, column=3,padx=3, pady=10)
|
step_incr4.grid(row=2, column=3,padx=3, pady=10)
|
||||||
|
|
||||||
show_ctrl_x_label.grid(row=3, column=0,padx=3, pady=10, columnspan =2)
|
show_ctrl_x_label.grid(row=3, column=0,padx=3, pady=10)
|
||||||
show_ctrl_y_label.grid(row=4, column=0,padx=3, pady=10, columnspan =2)
|
show_ctrl_y_label.grid(row=4, column=0,padx=3, pady=10)
|
||||||
show_ctrl_z_label.grid(row=5, column=0,padx=3, pady=10, columnspan =2)
|
show_ctrl_z_label.grid(row=5, column=0,padx=3, pady=10)
|
||||||
|
|
||||||
show_ctrl_x.grid(row=3, column=2,padx=3, pady=10, columnspan =1)
|
show_ctrl_x.grid(row=3, column=1,padx=0, pady=0, columnspan =1)
|
||||||
show_ctrl_y.grid(row=4, column=2,padx=3, pady=10, columnspan =1)
|
show_ctrl_y.grid(row=4, column=1,padx=0, pady=0, columnspan =1)
|
||||||
show_ctrl_z.grid(row=5, column=2,padx=3, pady=10, columnspan =1)
|
show_ctrl_z.grid(row=5, column=1,padx=0, pady=0, columnspan =1)
|
||||||
|
|
||||||
zero_x.grid(row=6, column=0,padx=10, pady=10)
|
zero_x.grid(row=6, column=0,padx=10, pady=10)
|
||||||
zero_y.grid(row=6, column=1,padx=10, pady=10)
|
zero_y.grid(row=6, column=1,padx=10, pady=10)
|
||||||
@ -247,6 +288,7 @@ zero_z.grid(row=6, column=2,padx=10, pady=10)
|
|||||||
zero_all.grid(row=6, column=3,padx=10, pady=10)
|
zero_all.grid(row=6, column=3,padx=10, pady=10)
|
||||||
connect_ser.grid(row=7, column=0,padx=10, pady=10)
|
connect_ser.grid(row=7, column=0,padx=10, pady=10)
|
||||||
discon_ser.grid(row=7, column=1,padx=10, pady=10)
|
discon_ser.grid(row=7, column=1,padx=10, pady=10)
|
||||||
|
unlock.grid(row=8, column=1,padx=10, pady=10)
|
||||||
start.grid(row=7, column=2,padx=10, pady=10)
|
start.grid(row=7, column=2,padx=10, pady=10)
|
||||||
stop.grid(row=7, column=3,padx=10, pady=10)
|
stop.grid(row=7, column=3,padx=10, pady=10)
|
||||||
pause.grid(row=8, column=2,padx=10, pady=10, columnspan = 1)
|
pause.grid(row=8, column=2,padx=10, pady=10, columnspan = 1)
|
||||||
|
Loading…
Reference in New Issue
Block a user