Код: Выделить всё
#!/usr/bin/python
# -*- coding: utf-8 -*-
from Tkinter import *
import time
from subprocess import Popen, PIPE
class Application(Frame):
def __init__(self, master=None):
Frame.__init__(self, master, width=700, height=400, bd=1)
self.grid()
self.createWidgets()
def createWidgets(self):
self.sp1 = Label(self)
self.sp1.grid(row=0)
self.st1 = Label(self, text='Отойти на x кадров')
self.st1.grid(row=1, column=0, sticky=E)
self.RevStepVar = StringVar()
self.RevStep = Entry(self, width=10, textvariable=self.RevStepVar)
self.RevStep.grid(row=1, column=1, sticky=W)
self.RevStep.focus_set()
self.st3 = Label(self, text='Начать с n кадра')
self.st3.grid(row=1, column=2, sticky=E)
self.RevRevVar = StringVar()
self.RevRev = Entry(self, width=10, textvariable=self.RevRevVar)
self.RevRev.grid(row=1, column=3, sticky=W)
self.spacer3 = Label(self, text='')
self.spacer3.grid(row=6, column=0, columnspan=4)
self.g_code = Text(self,width=30,height=30,bd=3)
self.g_code.grid(row=7, column=0, columnspan=5, sticky=E+W+N+S)
self.tbscroll = Scrollbar(self,command = self.g_code.yview)
self.tbscroll.grid(row=7, column=5, sticky=N+S+W)
self.g_code.configure(yscrollcommand = self.tbscroll.set)
self.sp4 = Label(self)
self.sp4.grid(row=8)
self.GenButton = Button(self, text='Генер обр код',command=self.rev)
self.GenButton.grid(row=8, column=0)
self.CopyButton = Button(self, text='Quit',command=self.quit)
self.CopyButton.grid(row=8, column=1)
self.WriteButton = Button(self, text='Обратн-обратному',command=self.rev_rev)
self.WriteButton.grid(row=8, column=2)
self.quitButton = Button(self, text='Загрузить а axis',command=self.WriteToAxis)
self.quitButton.grid(row=8, column=4, sticky=E)
def WriteToAxis(self):
sys.stdout.write(self.g_code.get(0.0, END))
self.quit()
def rev(self):
a= Popen('halcmd getp minmax.0.max ', shell=True, stdout=PIPE).stdout.read()
x=int(a)-1
self.m=x
f = open(r'/home/nkp/emc2/nc_files/11.ngc')
lines = f.readlines()
f.close()
lines[x] = "F60 G20 G61\n"
nr=int(self.RevStepVar.get())
q=(x-nr)
f.close()
d=Popen('halcmd setp minmax.0.reset 1 ', shell=True, stdout=PIPE).stdout.read()
time.sleep(2)
d=Popen('halcmd setp minmax.0.reset 0 ', shell=True, stdout=PIPE).stdout.read()
while nr>=0 :
self.g_code.insert(END, lines[x])
x=x-1
nr=nr-1
self.g_code.insert(END,'M2\n')
self.g_code.insert(END,q)
def rev_rev(self):
l=int(self.RevRevVar.get())
f = open(r'/home/nkp/emc2/nc_files/11.ngc')
lines = f.readlines()
d=len(lines)
self.g_code.insert(END, "F60 G20 G61\n")
while d>=0 :
self.g_code.insert(END, lines[l])
l=l+1
d=d-1
f.close()
app = Application()
app.master.title('Reverse g-code')
app.mainloop()