mirror of
https://github.com/BKLronin/touchCNC.git
synced 2024-12-22 06:34:02 +01:00
Update cnc.py
finished position display fixed buidl envelope preview for grbl post processor for fusion
This commit is contained in:
parent
681f447626
commit
3193219be9
70
cnc.py
70
cnc.py
@ -37,19 +37,37 @@ def grblConnect2():
|
||||
|
||||
# Stream g-code to grbl
|
||||
#Stream GCODE from -https://onehossshay.wordpress.com/2011/08/26/grbl-a-simple-python-interface/-
|
||||
|
||||
|
||||
def displayPosition(grbl):
|
||||
grbl_command = '?'
|
||||
grbl.write(str.encode(grbl_command + '\n'))
|
||||
position = grbl.readline()
|
||||
print("position", position)
|
||||
def displayPosition():
|
||||
if grbl != 0:
|
||||
grbl_command = '?'
|
||||
grbl.write(str.encode(grbl_command))
|
||||
position = str(grbl.readline())
|
||||
#print(position)
|
||||
position = position.replace('Idle|', ',')
|
||||
position = position.replace('WPos:', '')
|
||||
position = position.replace('|', ',')
|
||||
position.strip()
|
||||
coordinates_list = position.split(',')
|
||||
#print(coordinates_list)
|
||||
show_ctrl_x.config(text = coordinates_list[1])
|
||||
show_ctrl_y.config(text = coordinates_list[2])
|
||||
show_ctrl_z.config(text = coordinates_list[3])
|
||||
|
||||
#show_ctrl_x_w.config(text = coordinates_list[4])
|
||||
#show_ctrl_y_w.config(text = coordinates_list[5])
|
||||
#show_ctrl_z_w.config(text = coordinates_list[6])
|
||||
else:
|
||||
print("No Connection yet")
|
||||
show_ctrl_x.after(1000,displayPosition)
|
||||
|
||||
|
||||
def jogWrite(grbl,AXIS, CMD, scale):
|
||||
DECIMAL = [0.1,1,10,100]
|
||||
scale = increments.get()
|
||||
MOVE = int(CMD) * DECIMAL[scale -1]
|
||||
grbl_command = ('$J=G91' +' ' + AXIS + str(MOVE) + ' '+ 'F100')
|
||||
grbl_command = ('$J=G91' +' ' + AXIS + str(MOVE) + ' '+ 'F1000')
|
||||
#print(grbl_command)
|
||||
grbl.write(str.encode(grbl_command + '\n'))
|
||||
grbl_out = grbl.readline() # Wait for grbl response with carriage return
|
||||
@ -146,21 +164,24 @@ def findEnvelope(): #get the max used Buildspace and position of the job
|
||||
coord_max = [0,1]
|
||||
coord_min = [0,1]
|
||||
|
||||
for line in GCODE:
|
||||
|
||||
l = line.strip(line) # Strip all EOL characters for streaming
|
||||
for line in GCODE:
|
||||
l = line.strip(line) # Strip all EOL characters
|
||||
l = line.replace('X', '')
|
||||
l2 = l.replace('Y', '')
|
||||
l2 = l2.split()
|
||||
|
||||
if len(l2) == 3:
|
||||
x = l2[1]
|
||||
x_coords.append(float(x))
|
||||
y = l2[2]
|
||||
y_coords.append(float(y))
|
||||
if len(l2) == 3:
|
||||
#print(l2)
|
||||
x = l2[0]
|
||||
if 'Z' not in x and 'X' in line and 'G0' not in x and 'G1' not in x:
|
||||
x_coords.append(float(x))
|
||||
y = l2[1]
|
||||
if 'Z' not in y and 'Y' in line and 'G0' not in x and 'G1' not in x:
|
||||
y_coords.append(float(y))
|
||||
|
||||
x_coords.sort()
|
||||
y_coords.sort()
|
||||
|
||||
coord_max[0] = max(x_coords) +50
|
||||
coord_max[1] = 350 - max(y_coords) #invertierte Buildplattform mit 0 unten links statt oben links
|
||||
coord_min[0] = min(x_coords) +50
|
||||
@ -203,10 +224,11 @@ increments = IntVar()
|
||||
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))
|
||||
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' ))
|
||||
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))
|
||||
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))
|
||||
|
||||
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, command = lambda:zeroWrite(grbl,'G92', 'Y' ))
|
||||
zero_z = Button(root, text="zero Z",width = buttonsize_x, height = buttonsize_y, command = lambda:zeroWrite(grbl,'G92', 'Z' ))
|
||||
@ -223,7 +245,7 @@ fopen = Button(root, text="GCODE",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,command = lambda:latchWrite(grbl,'M8') )
|
||||
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,command = lambda:directWrite(grbl,' G90 G1 X10 Y10 Z50 F100') )
|
||||
macro = Button(root, text="Macro1",width = buttonsize_x, height = buttonsize_y,command = lambda:directWrite(grbl,' G90 G1 X10 Y10 Z50 F1000') )
|
||||
|
||||
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 )
|
||||
@ -238,9 +260,15 @@ terminal_recv = Canvas(root, width = 200, height =400, bg = 'white')
|
||||
show_ctrl_x_label = Label(root,text = "X")
|
||||
show_ctrl_y_label = Label(root,text = "Y")
|
||||
show_ctrl_z_label = Label(root,text = "Z")
|
||||
show_ctrl_x =Label(root, text = "X ", width = 10, height = 2, bg ='white', relief = SUNKEN)
|
||||
show_ctrl_y =Label(root, text = "Y ", width = 10, height = 2, bg ='white', relief = SUNKEN)
|
||||
show_ctrl_z =Label(root, text = "Z ", width = 10, height = 2, bg ='white', relief = SUNKEN)
|
||||
show_ctrl_x =Label(root, text = "X_POS", width = 8, height = 2, bg ='white', relief = SUNKEN)
|
||||
show_ctrl_y =Label(root, text = "Y_POS", width = 8, height = 2, bg ='white', relief = SUNKEN)
|
||||
show_ctrl_z =Label(root, text = "Z_POS", width = 8, height = 2, bg ='white', relief = SUNKEN)
|
||||
|
||||
show_ctrl_x_w =Label(root, text = "X_POS_W", width = 8, height = 2, bg ='white', relief = SUNKEN)
|
||||
show_ctrl_y_w =Label(root, text = "Y_POS_W", width = 8, height = 2, bg ='white', relief = SUNKEN)
|
||||
show_ctrl_z_w =Label(root, text = "Z_POS_W", width = 8, height = 2, bg ='white', relief = SUNKEN)
|
||||
|
||||
show_ctrl_x.after(100, displayPosition)
|
||||
|
||||
feed_control = Scale(root, orient = HORIZONTAL, length = 400, label = "Feedrate",tickinterval = 20)
|
||||
|
||||
@ -282,6 +310,10 @@ show_ctrl_x.grid(row=3, column=1,padx=0, pady=0, columnspan =1)
|
||||
show_ctrl_y.grid(row=4, column=1,padx=0, pady=0, columnspan =1)
|
||||
show_ctrl_z.grid(row=5, column=1,padx=0, pady=0, columnspan =1)
|
||||
|
||||
show_ctrl_x_w.grid(row=3, column=2,padx=0, pady=0, columnspan =1)
|
||||
show_ctrl_y_w.grid(row=4, column=2,padx=0, pady=0, columnspan =1)
|
||||
show_ctrl_z_w.grid(row=5, column=2,padx=0, pady=0, columnspan =1)
|
||||
|
||||
zero_x.grid(row=6, column=0,padx=10, pady=10)
|
||||
zero_y.grid(row=6, column=1,padx=10, pady=10)
|
||||
zero_z.grid(row=6, column=2,padx=10, pady=10)
|
||||
|
Loading…
Reference in New Issue
Block a user