Light Fast.py

From emboxit
Jump to: navigation, search

<python>

  1. Light_Fast.py pick & place control program
  1. 2012.04.08
  2. YES IT WORKS: runs from eclipse classic helios and pydev


  1. 2011.04.28
  2. REPEAT AND COMMENT, use Wing IDE
  3. [IMPORT.CSV] Button creates also the .INI file
  4. [LINK DATA] Button updates only feeder data with GetFeederInfo
  5. [NEXT] Button works but it is slow, (scans .INI file)
  6. [OPEN .INI] Button Creates No-DATA erros one after the other---> have to call
  7. task manager to terminate
  8. TODO: Create LIST and seek inside the LIST instead the .INI
  9. TODO: **** Apply OOP ASAP ****


from Tkinter import * from tkFileDialog import * from math import * from SimpleDialog import * from ConfigParser import * from decimal import * import tkMessageBox import csv import os

IN_AXIS = os.environ.has_key("AXIS_PROGRESS_BAR") ix = 0 class Application(Frame):

   def __init__(self, master=None):
       Frame.__init__(self, master)
       self.grid()
       self.createMenu()
       self.createWidgets()
   def createMenu(self):
       #Create the Menu base
       self.menu = Menu(self)
       #Add the Menu
       self.master.config(menu=self.menu)
       #Create our File menu
       self.FileMenu = Menu(self.menu)
       #Add our Menu to the Base Menu
       self.menu.add_cascade(label='File', menu=self.FileMenu)
       #Add items to the menu
       self.FileMenu.add_command(label='New', command=self.Simple)
       self.FileMenu.add_command(label='Open', command=self.Simple)
       self.FileMenu.add_separator()
       self.FileMenu.add_command(label='Quit', command=self.quit)
       
       self.EditMenu = Menu(self.menu)
       self.menu.add_cascade(label='Edit', menu=self.EditMenu)
       self.EditMenu.add_command(label='Copy', command=self.CopyClpBd)
       self.EditMenu.add_command(label='Select All', command=self.SelectAllText)
       self.EditMenu.add_command(label='Delete All', command=self.ClearTextBox)
       self.EditMenu.add_separator()
       self.EditMenu.add_command(label='Preferences', command=self.Simple)
       self.EditMenu.add_command(label='NC Directory', command=self.NcFileDirectory)
       
       self.HelpMenu = Menu(self.menu)
       self.menu.add_cascade(label='Help', menu=self.HelpMenu)
       self.HelpMenu.add_command(label='Help Info', command=self.HelpInfo)
       self.HelpMenu.add_command(label='About', command=self.HelpAbout)
   def createWidgets(self):
  1. ------------------------------------------------------------------------------
       self.sp1 = Label(self)
       self.sp1.grid(row=0)
  1. --------------------------------0----------------------------------------
       # R=0
       # self.spacer3 = Label(self, text='Part Data')
       # self.spacer3.grid(row=R, column=0, columnspan=2)
       # self.spacer3 = Label(self, text='------Part Link ---------')
       # self.spacer3.grid(row=R, column=2, columnspan=2)
       # self.spacer3 = Label(self, text='------Status-------------')
       # self.spacer3.grid(row=R, column=4, columnspan=2)		
       # self.spacer3 = Label(self, text='------Board --------------------')
       # self.spacer3.grid(row=R, column=6, columnspan=2)
       # self.spacer3 = Label(self, text='------Feeder -------------------')
       # self.spacer3.grid(row=R, column=8, columnspan=2)
       # self.spacer3 = Label(self, text='------Speeds -------------------')
       # self.spacer3.grid(row=R, column=10, columnspan=2)
       # self.spacer3 = Label(self, text='------Delays -------------------')
       # self.spacer3.grid(row=R, column=12, columnspan=2)		
  1. -------------------------------------1-------------------------------------------
       C1 = 0
       C2 = 1
       self.st1 = Label(self, text='PartIndex ')
       self.st1.grid(row=1, column=C1, sticky=E)
       self.PartIndexVar = StringVar()
       self.PartIndex = Entry(self, width=10, bg = 'cyan', textvariable=self.PartIndexVar)
       self.PartIndex.grid(row=1, column=C2, sticky=W)
       self.PartIndex.focus_set()
       self.st2 = Label(self, text='PartRef ')
       self.st2.grid(row=2, column=C1, sticky=E)
       self.PartRefVar = StringVar()
       self.PartRefVar.set('M4444')        
       self.PartRef = Entry(self, width=10, textvariable=self.PartRefVar)
       self.PartRef.grid(row=2, column=C2, sticky=W)
       self.st6 = Label(self, text='PartValue ')
       self.st6.grid(row=3, column=C1, sticky=E)
       self.PartValueVar = StringVar()
       self.PartValue = Entry(self, width=10, textvariable=self.PartValueVar)
       self.PartValue.grid(row=3, column=C2, sticky=W)
       self.st5 = Label(self, text='PartFtprnt ')
       self.st5.grid(row=4, column=C1, sticky=E)
       self.PartFtprntVar = StringVar()
       self.PartFtprnt = Entry(self, width=10, textvariable=self.PartFtprntVar)
       self.PartFtprnt.grid(row=4, column=C2, sticky=W)
       self.st3 = Label(self, text='PartDimX ')
       self.st3.grid(row=5, column=C1, sticky=E)
       self.PartDimXVar = StringVar()
       self.PartDimX = Entry(self, width=10, bg = '#eee', textvariable=self.PartDimXVar)
       self.PartDimX.grid(row=5, column=C2, sticky=W)
       self.st3 = Label(self, text='PartDimY ')
       self.st3.grid(row=6, column=C1, sticky=E)
       self.PartDimYVar = StringVar()
       self.PartDimY = Entry(self, width=10, bg = '#eee', textvariable=self.PartDimYVar)
       self.PartDimY.grid(row=6, column=C2, sticky=W)	
       self.st3 = Label(self, text='    PartHeight ')
       self.st3.grid(row=7, column=C1, sticky=E)
       self.PartHightVar = StringVar()
       self.PartHight = Entry(self, width=10, bg = '#eee', textvariable=self.PartHightVar)
       self.PartHight.grid(row=7, column=C2, sticky=W)	
       self.st3 = Label(self, text='PartCenterX ')
       self.st3.grid(row=8, column=C1, sticky=E)
       self.PartCenterXVar = StringVar()
       self.PartCenterX = Entry(self, width=10, textvariable=self.PartCenterXVar)
       self.PartCenterX.grid(row=8, column=C2, sticky=W)
       self.st3 = Label(self, text='PartCenterY ')
       self.st3.grid(row=9, column=C1, sticky=E)
       self.PartCenterYVar = StringVar()
       self.PartCenterY = Entry(self, width=10, textvariable=self.PartCenterYVar)
       self.PartCenterY.grid(row=9, column=C2, sticky=W)
       self.st3 = Label(self, text='PartRefX')
       self.st3.grid(row=10, column=C1, sticky=E)
       self.PartRefXVar = StringVar()
       self.PartRefX = Entry(self, width=10, textvariable=self.PartRefXVar)
       self.PartRefX.grid(row=10, column=C2, sticky=W)
       self.st3 = Label(self, text='PartRefY')
       self.st3.grid(row=11, column=C1, sticky=E)
       self.PartRefYVar = StringVar()
       self.PartRefY = Entry(self, width=10, textvariable=self.PartRefYVar)
       self.PartRefY.grid(row=11, column=C2, sticky=W)
       self.st3 = Label(self, text='PartPadX')
       self.st3.grid(row=12, column=C1, sticky=E)
       self.PartPadXVar = StringVar()
       self.PartPadX = Entry(self, width=10, textvariable=self.PartPadXVar)
       self.PartPadX.grid(row=12, column=C2, sticky=W)
       
       self.st3 = Label(self, text='PartPadY')
       self.st3.grid(row=13, column=C1, sticky=E)
       self.PartPadYVar = StringVar()
       self.PartPadY = Entry(self, width=10, textvariable=self.PartPadYVar)
       self.PartPadY.grid(row=13, column=C2, sticky=W)
       self.st3 = Label(self, text='PartRot')
       self.st3.grid(row=14, column=C1, sticky=E)
       self.PartRotVar = StringVar()
       self.PartRot = Entry(self, width=10, textvariable=self.PartRotVar)
       self.PartRot.grid(row=14, column=C2, sticky=W)
       self.st3 = Label(self, text='PartLayer')
       self.st3.grid(row=15, column=C1, sticky=E)
       self.PartLayerVar = StringVar()
       self.PartLayer = Entry(self, width=10, textvariable=self.PartLayerVar)
       self.PartLayer.grid(row=15, column=C2, sticky=W)
       self.st3 = Label(self, text='PartPV')
       self.st3.grid(row=16, column=C1, sticky=E)
       self.PartPVVar = StringVar()
       self.PartPV = Entry(self, width=10, textvariable=self.PartPVVar)
       self.PartPV.grid(row=16, column=C2, sticky=W) 
       self.st3 = Label(self, text='PartLink')
       self.st3.grid(row=17, column=C1, sticky=E)
       self.PartLinkVar = StringVar()
       self.PartLinkVar.set('0')
       self.PartLink = Entry(self, width=10, bg = 'green', textvariable=self.PartLinkVar)
       self.PartLink.grid(row=17, column=C2, sticky=W)
       self.st3 = Label(self, text=)
       self.st3.grid(row=24, column=C1, sticky=E)
       self.st3 = Label(self, text='InCsv')
       self.st3.grid(row=25, column=C1, sticky=E)
       self.InCsvVar = StringVar()
       self.InCsvVar.set('bom_pp_.csv')
       self.InCsv = Entry(self, width=10, textvariable=self.InCsvVar)
       self.InCsv.grid(row=25, column=C2, sticky=W)	
       self.st3 = Label(self, text='NoOfParts')
       self.st3.grid(row=26, column=C1, sticky=E)
       self.NoOfPartsVar = StringVar()
       #self.NoOfPartsVar.set('eeeeeee')
       self.NoOfParts = Entry(self, width=10, textvariable=self.NoOfPartsVar)
       self.NoOfParts.grid(row=26, column=C2, sticky=W)
       self.st3 = Label(self, text='PROJECT')
       self.st3.grid(row=27, column=C1, sticky=E)
       self.PartProjVar = StringVar()
       self.PartProj = Entry(self, width=10, textvariable=self.PartProjVar)
       self.PartProj.grid(row=27, column=C2, sticky=W)
  1. ----------------------------------------2-------------------------------------------------
       C1 = 2
       C2 = 3
       self.st3 = Label(self, text='Link ')
       self.st3.grid(row=1, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, bg = 'green', textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=1, column=C2, sticky=W)
       self.st1 = Label(self, text='LinkBoard ')
       self.st1.grid(row=2, column=C1, sticky=E)
       self.PositionXVar = StringVar()
       self.PositionX = Entry(self, width=10, bg = 'yellow', textvariable=self.PositionXVar)
       self.PositionX.grid(row=2, column=C2, sticky=W)
       self.PositionX.focus_set()
       self.st2 = Label(self, text='    LinkFeeder ')
       self.st2.grid(row=3, column=C1, sticky=E)
       self.PositionYVar = StringVar()
       self.PositionY = Entry(self, width=10, bg = 'yellow', textvariable=self.PositionYVar)
       self.PositionY.grid(row=3, column=C2, sticky=W)
       self.st6 = Label(self, text='LinkHead ')
       self.st6.grid(row=4, column=C1, sticky=E)
       self.PositionRotVar = StringVar()
       self.PositionRot = Entry(self, width=10, bg = 'yellow', textvariable=self.PositionRotVar)
       self.PositionRot.grid(row=4, column=C2, sticky=W)
       self.st5 = Label(self, text='LinkNozzle ')
       self.st5.grid(row=5, column=C1, sticky=E)
       self.PositionPlacedVar = StringVar()
       self.PositionPlaced = Entry(self, width=10, bg = 'yellow', textvariable=self.PositionPlacedVar)
       self.PositionPlaced.grid(row=5, column=C2, sticky=W)
       self.st3 = Label(self, text='LinkAlign ')
       self.st3.grid(row=6, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, bg = 'yellow', textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=6, column=C2, sticky=W)
       self.st3 = Label(self, text='LinkYtable ')
       self.st3.grid(row=7, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, bg = 'yellow', textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=7, column=C2, sticky=W)	
       self.st3 = Label(self, text='LinkRtable ')
       self.st3.grid(row=8, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, bg = 'yellow', textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=8, column=C2, sticky=W)	
       self.st3 = Label(self, text='LinkSpeed ')
       self.st3.grid(row=9, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, bg = 'yellow', textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=9, column=C2, sticky=W)
       self.st3 = Label(self, text='LinkDelay ')
       self.st3.grid(row=10, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, bg = 'yellow', textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=10, column=C2, sticky=W)
       self.st3 = Label(self, text='LinkScript ')
       self.st3.grid(row=11, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, bg = 'yellow', textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=11, column=C2, sticky=W)
       self.st3 = Label(self, text='LinkStatus ')
       self.st3.grid(row=12, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, bg = 'yellow', textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=12, column=C2, sticky=W)
       self.WriteButton = Button(self, text='LiNK DATA',command=self.GetFeederInfo, width = 10, bg= 'green', height  = 2)
       self.WriteButton.grid(row=25, column = C2, rowspan=2)
  1. ----------------------------------------3-------------------------------------------------
       C1 = 4
       C2 = 5
       self.st1 = Label(self, text='StatusLink ')
       self.st1.grid(row=1, column=C1, sticky=E)
       self.PositionXVar = StringVar()
       self.PositionX = Entry(self, width=10, bg = 'yellow', textvariable=self.PositionXVar)
       self.PositionX.grid(row=1, column=C2, sticky=W)
       self.PositionX.focus_set()
       self.st2 = Label(self, text='StatusNoUse ')
       self.st2.grid(row=2, column=C1, sticky=E)
       self.PositionYVar = StringVar()
       self.PositionY = Entry(self, width=10, textvariable=self.PositionYVar)
       self.PositionY.grid(row=2, column=C2, sticky=W)
       self.st6 = Label(self, text='StatusPlaced ')
       self.st6.grid(row=3, column=C1, sticky=E)
       self.PositionRotVar = StringVar()
       self.PositionRot = Entry(self, width=10, textvariable=self.PositionRotVar)
       self.PositionRot.grid(row=3, column=C2, sticky=W)
       self.st5 = Label(self, text='StatusIsBack ')
       self.st5.grid(row=4, column=C1, sticky=E)
       self.PositionPlacedVar = StringVar()
       self.PositionPlaced = Entry(self, width=10, textvariable=self.PositionPlacedVar)
       self.PositionPlaced.grid(row=4, column=C2, sticky=W)
       
       self.st3 = Label(self, text='StatusRetries ')
       self.st3.grid(row=5, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=5, column=C2, sticky=W)
       self.st3 = Label(self, text='StatusFail ')
       self.st3.grid(row=6, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=6, column=C2, sticky=W)	
       self.st3 = Label(self, text='StatusNotFound ', width = 10)
       self.st3.grid(row=7, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=7, column=C2, sticky=W)	
       self.st3 = Label(self, text='StatusDrop ')
       self.st3.grid(row=8, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=8, column=C2, sticky=W)
       self.st3 = Label(self, text='StatusReject ')
       self.st3.grid(row=9, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=9, column=C2, sticky=W)
       self.st3 = Label(self, text='Status ')
       self.st3.grid(row=10, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=10, column=C2, sticky=W)		
  1. -------------------------------------4--------------------------------
       C1 = 6
       C2 = 7
       self.st1 = Label(self, text='BoardLink ')
       self.st1.grid(row=1, column=C1, sticky=E)
       self.PartLengthVar = StringVar()
       self.PartLength = Entry(self, width=10, bg = 'yellow', textvariable=self.PartLengthVar)
       self.PartLength.grid(row=1, column=C2, sticky=W)
       self.PartLength.focus_set()
       self.st2 = Label(self, text='BoardDimX ')
       self.st2.grid(row=2, column=C1, sticky=E)
       self.PartWidthVar = StringVar()
       self.PartWidth = Entry(self, width=10, textvariable=self.PartWidthVar)
       self.PartWidth.grid(row=2, column=C2, sticky=W)
       self.st6 = Label(self, text='BoardDimY ')
       self.st6.grid(row=3, column=C1, sticky=E)
       self.DepthOfCutVar = StringVar()
       self.DepthOfCut = Entry(self, width=10, textvariable=self.DepthOfCutVar)
       self.DepthOfCut.grid(row=3, column=C2, sticky=W)
       self.st5 = Label(self, text='BoardHeight ')
       self.st5.grid(row=4, column=C1, sticky=E)
       self.FeederHeightVar = StringVar()
       self.FeederHeight = Entry(self, width=10, textvariable=self.FeederHeightVar)
       self.FeederHeight.grid(row=4, column=C2, sticky=W)


       self.st3 = Label(self, text='BoardPosX ')
       self.st3.grid(row=5, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=5, column=C2, sticky=W)
       self.st3 = Label(self, text='BoardPosY ')
       self.st3.grid(row=6, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=6, column=C2, sticky=W)	
       self.st3 = Label(self, text='BoardPosZ ')
       self.st3.grid(row=7, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=7, column=C2, sticky=W)	
       self.st3 = Label(self, text='BoardRot ')
       self.st3.grid(row=8, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=8, column=C2, sticky=W)
       self.st3 = Label(self, text='BoardRefX ')
       self.st3.grid(row=9, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=9, column=C2, sticky=W)
       self.st3 = Label(self, text='BoardRefY ')
       self.st3.grid(row=10, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=10, column=C2, sticky=W)
  1. ------------------------------------5------------------------------------
       C1 = 8
       C2 = 9
       self.st1 = Label(self, text='FeederLink ')
       self.st1.grid(row=1, column=C1, sticky=E)
       self.FeederLinkVar = StringVar()
       self.FeederLink = Entry(self, width=10, bg = 'yellow', textvariable=self.FeederLinkVar)
       self.FeederLink.grid(row=1, column=C2, sticky=W)
       self.FeederLink.focus_set()
       self.st2 = Label(self, text='FeederWidth ')
       self.st2.grid(row=2, column=C1, sticky=E)
       self.FeederWidthVar = StringVar()
       # self.FeederWidthVar.set('M4444')
       self.FeederWidth = Entry(self, width=10, textvariable=self.FeederWidthVar)
       self.FeederWidth.grid(row=2, column=C2, sticky=W)
       self.st6 = Label(self, text='FeederPosX ')
       self.st6.grid(row=3, column=C1, sticky=E)
       self.FeederPosXVar = StringVar()
       self.FeederPosX = Entry(self, width=10, textvariable=self.FeederPosXVar)
       self.FeederPosX.grid(row=3, column=C2, sticky=W)
       self.st5 = Label(self, text='FeederPosY ')
       self.st5.grid(row=4, column=C1, sticky=E)
       self.FeederPosYVar = StringVar()
       self.FeederPosY = Entry(self, width=10, textvariable=self.FeederPosYVar)
       self.FeederPosY.grid(row=4, column=C2, sticky=W)
       self.st5 = Label(self, text='FeederHeight ')
       self.st5.grid(row=5, column=C1, sticky=E)
       self.FeederHeightVar = StringVar()
       self.FeederHeight = Entry(self, width=10, textvariable=self.FeederHeightVar)
       self.FeederHeight.grid(row=5, column=C2, sticky=W)		
       
       self.st3 = Label(self, text='FeederPosZ ')
       self.st3.grid(row=6, column=C1, sticky=E)
       self.FeederPosZVar = StringVar()
       self.FeederPosZ = Entry(self, width=10, textvariable=self.FeederPosZVar)
       self.FeederPosZ.grid(row=6, column=C2, sticky=W)
       self.st3 = Label(self, text='FeederRot ')
       self.st3.grid(row=7, column=C1, sticky=E)
       self.FeederRotVar = StringVar()
       self.FeederRot = Entry(self, width=10, textvariable=self.FeederRotVar)
       self.FeederRot.grid(row=7, column=C2, sticky=W)	
       self.st3 = Label(self, text='FeederStepX ')
       self.st3.grid(row=8, column=C1, sticky=E)
       self.FeederStepXVar = StringVar()
       self.FeederStepX = Entry(self, width=10, textvariable=self.FeederStepXVar)
       self.FeederStepX.grid(row=8, column=C2, sticky=W)	
       self.st3 = Label(self, text='FeederStepY ')
       self.st3.grid(row=9, column=C1, sticky=E)
       self.FeederStepYVar = StringVar()
       self.FeederStepY = Entry(self, width=10, textvariable=self.FeederStepYVar)
       self.FeederStepY.grid(row=9, column=C2, sticky=W)
       self.st3 = Label(self, text='10 ')
       self.st3.grid(row=10, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=10, column=C2, sticky=W)
  1. ------------------------------------6------------------------------------
       C1 = 20
       C2 = 21
       self.st3 = Label(self, text='SpeedLink ')
       self.st3.grid(row=1, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, bg = 'yellow', textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=1, column=C2, sticky=W)
       self.st1 = Label(self, text='SpeedFast ')
       self.st1.grid(row=2, column=C1, sticky=E)
       self.PartLengthVar = StringVar()
       self.PartLength = Entry(self, width=10, textvariable=self.PartLengthVar)
       self.PartLength.grid(row=2, column=C2, sticky=W)
       self.PartLength.focus_set()
       self.st2 = Label(self, text='SpeedSlow ')
       self.st2.grid(row=3, column=C1, sticky=E)
       self.PartWidthVar = StringVar()
       self.PartWidth = Entry(self, width=10, textvariable=self.PartWidthVar)
       self.PartWidth.grid(row=3, column=C2, sticky=W)
       self.st6 = Label(self, text='SpeedZPeak ')
       self.st6.grid(row=4, column=C1, sticky=E)
       self.DepthOfCutVar = StringVar()
       self.DepthOfCut = Entry(self, width=10, textvariable=self.DepthOfCutVar)
       self.DepthOfCut.grid(row=4, column=C2, sticky=W)
       self.st5 = Label(self, text='SpeedZPlace ')
       self.st5.grid(row=5, column=C1, sticky=E)
       self.TotalToRemoveVar = StringVar()
       self.TotalToRemove = Entry(self, width=10, textvariable=self.TotalToRemoveVar)
       self.TotalToRemove.grid(row=5, column=C2, sticky=W)
 
       self.st3 = Label(self, text='SpeedAlign ')
       self.st3.grid(row=6, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=6, column=C2, sticky=W)
       self.st3 = Label(self, text='SpeedRot ')
       self.st3.grid(row=7, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=7, column=C2, sticky=W)	
       self.st3 = Label(self, text='7 ')
       self.st3.grid(row=8, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=8, column=C2, sticky=W)	
       self.st3 = Label(self, text='8 ')
       self.st3.grid(row=9, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=9, column=C2, sticky=W)
       self.st3 = Label(self, text='9 ')
       self.st3.grid(row=10, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=10, column=C2, sticky=W)
  1. ------------------------------------7------------------------------------
       C1 = 22
       C2 = 23
       self.st1 = Label(self, text='DelayLink ')
       self.st1.grid(row=1, column=C1, sticky=E)
       self.PartLengthVar = StringVar()
       self.PartLength = Entry(self, width=10, bg = 'yellow', textvariable=self.PartLengthVar)
       self.PartLength.grid(row=1, column=C2, sticky=W)
       self.PartLength.focus_set()
       self.st2 = Label(self, text='DelayPick ')
       self.st2.grid(row=2, column=C1, sticky=E)
       self.PartWidthVar = StringVar()
       self.PartWidth = Entry(self, width=10, textvariable=self.PartWidthVar)
       self.PartWidth.grid(row=2, column=C2, sticky=W)
       self.st6 = Label(self, text='DelayPlace ')
       self.st6.grid(row=3, column=C1, sticky=E)
       self.DepthOfCutVar = StringVar()
       self.DepthOfCut = Entry(self, width=10, textvariable=self.DepthOfCutVar)
       self.DepthOfCut.grid(row=3, column=C2, sticky=W)
       self.st5 = Label(self, text='4 ')
       self.st5.grid(row=4, column=C1, sticky=E)
       self.TotalToRemoveVar = StringVar()
       self.TotalToRemove = Entry(self, width=10, textvariable=self.TotalToRemoveVar)
       self.TotalToRemove.grid(row=4, column=C2, sticky=W)
     
       self.st3 = Label(self, text='5 ')
       self.st3.grid(row=5, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=5, column=C2, sticky=W)
       self.st3 = Label(self, text='6 ')
       self.st3.grid(row=6, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=6, column=C2, sticky=W)	
       self.st3 = Label(self, text='7 ')
       self.st3.grid(row=7, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=7, column=C2, sticky=W)	
       self.st3 = Label(self, text='8 ')
       self.st3.grid(row=8, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=8, column=C2, sticky=W)
       self.st3 = Label(self, text='9 ')
       self.st3.grid(row=9, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=9, column=C2, sticky=W)
       self.st3 = Label(self, text='10 ')
       self.st3.grid(row=10, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=10, column=C2, sticky=W)		
  1. ------------------------------------8------------------------------------
       C1 = 14
       C2 = 15
       self.st3 = Label(self, text='AlignLink ')
       self.st3.grid(row=1, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, bg = 'yellow', textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=1, column=C2, sticky=W)
       self.st1 = Label(self, text='AlignX ')
       self.st1.grid(row=2, column=C1, sticky=E)
       self.PartLengthVar = StringVar()
       self.PartLength = Entry(self, width=10, textvariable=self.PartLengthVar)
       self.PartLength.grid(row=2, column=C2, sticky=W)
       self.PartLength.focus_set()
       self.st2 = Label(self, text='AlignY ')
       self.st2.grid(row=3, column=C1, sticky=E)
       self.PartWidthVar = StringVar()
       self.PartWidth = Entry(self, width=10, textvariable=self.PartWidthVar)
       self.PartWidth.grid(row=3, column=C2, sticky=W)
       self.st6 = Label(self, text='AlignZ ')
       self.st6.grid(row=4, column=C1, sticky=E)
       self.DepthOfCutVar = StringVar()
       self.DepthOfCut = Entry(self, width=10, textvariable=self.DepthOfCutVar)
       self.DepthOfCut.grid(row=4, column=C2, sticky=W)
       self.st5 = Label(self, text='AlignRot ')
       self.st5.grid(row=5, column=C1, sticky=E)
       self.TotalToRemoveVar = StringVar()
       self.TotalToRemove = Entry(self, width=10, textvariable=self.TotalToRemoveVar)
       self.TotalToRemove.grid(row=5, column=C2, sticky=W)
      
       self.st3 = Label(self, text='AlignDepth ')
       self.st3.grid(row=6, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=6, column=C2, sticky=W)
       self.st3 = Label(self, text='6 ')
       self.st3.grid(row=7, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=7, column=C2, sticky=W)	
       self.st3 = Label(self, text='7 ')
       self.st3.grid(row=8, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=8, column=C2, sticky=W)	
       self.st3 = Label(self, text='8 ')
       self.st3.grid(row=9, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=9, column=C2, sticky=W)
       self.st3 = Label(self, text='9 ')
       self.st3.grid(row=10, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=10, column=C2, sticky=W)
  1. ------------------------------------9------------------------------------
       C1 = 12
       C2 = 13
       self.st1 = Label(self, text='NozzleLink ')
       self.st1.grid(row=1, column=C1, sticky=E)
       self.PartLengthVar = StringVar()
       self.PartLength = Entry(self, width=10, bg = 'yellow', textvariable=self.PartLengthVar)
       self.PartLength.grid(row=1, column=C2, sticky=W)
       self.PartLength.focus_set()
       self.st2 = Label(self, text='NozzleDiam ')
       self.st2.grid(row=2, column=C1, sticky=E)
       self.PartWidthVar = StringVar()
       self.PartWidth = Entry(self, width=10, textvariable=self.PartWidthVar)
       self.PartWidth.grid(row=2, column=C2, sticky=W)
       self.st6 = Label(self, text='NozzleHeight ')
       self.st6.grid(row=3, column=C1, sticky=E)
       self.DepthOfCutVar = StringVar()
       self.DepthOfCut = Entry(self, width=10, textvariable=self.DepthOfCutVar)
       self.DepthOfCut.grid(row=3, column=C2, sticky=W)
       self.st5 = Label(self, text='NozzleHole ')
       self.st5.grid(row=4, column=C1, sticky=E)
       self.TotalToRemoveVar = StringVar()
       self.TotalToRemove = Entry(self, width=10, textvariable=self.TotalToRemoveVar)
       self.TotalToRemove.grid(row=4, column=C2, sticky=W)
       self.st3 = Label(self, text='NozzleInDiam ')
       self.st3.grid(row=5, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=5, column=C2, sticky=W)
       self.st3 = Label(self, text='NozzleVac ')
       self.st3.grid(row=6, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=6, column=C2, sticky=W)	
       self.st3 = Label(self, text='NozzleCons ')
       self.st3.grid(row=7, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=7, column=C2, sticky=W)	
       self.st3 = Label(self, text='NozzleThresh ')
       self.st3.grid(row=8, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=8, column=C2, sticky=W)
       self.st3 = Label(self, text='NozzleShape ')
       self.st3.grid(row=9, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=9, column=C2, sticky=W)
       self.st8 = Label(self, text='NozzleParkX')
       self.st8.grid(row=10, column=C1, sticky=E)
       self.VacuumOFFVar = StringVar()
       self.VacuumOFF = Entry(self, textvariable=self.VacuumOFFVar, width=10)
       self.VacuumOFF.grid(row=10, column=C2, sticky=W)
       self.st10 = Label(self, text='NozzleParkY ')
       self.st10.grid(row=11, column=C1, sticky=E)
       self.DrillVar = StringVar()
       self.Drill = Entry(self, textvariable=self.DrillVar ,width=10)
       self.Drill.grid(row=11, column=C2)
       self.st10 = Label(self, text='NozzleParkZ ')
       self.st10.grid(row=12, column=C1, sticky=E)
       self.DrillVar = StringVar()
       self.Drill = Entry(self, textvariable=self.DrillVar ,width=10)
       self.Drill.grid(row=12, column=C2)
  1. ------------------------------------11------------------------------------
       C1 = 16
       C2 = 17
       self.st1 = Label(self, text='YtableLink ')
       self.st1.grid(row=1, column=C1, sticky=E)
       self.PartLengthVar = StringVar()
       self.PartLength = Entry(self, width=10, bg = 'yellow', textvariable=self.PartLengthVar)
       self.PartLength.grid(row=1, column=C2, sticky=W)
       self.PartLength.focus_set()
       self.st2 = Label(self, text='YtableNo ')
       self.st2.grid(row=2, column=C1, sticky=E)
       self.PartWidthVar = StringVar()
       self.PartWidth = Entry(self, width=10, textvariable=self.PartWidthVar)
       self.PartWidth.grid(row=2, column=C2, sticky=W)
       self.st6 = Label(self, text='YtableDimX1 ')
       self.st6.grid(row=3, column=C1, sticky=E)
       self.DepthOfCutVar = StringVar()
       self.DepthOfCut = Entry(self, width=10, textvariable=self.DepthOfCutVar)
       self.DepthOfCut.grid(row=3, column=C2, sticky=W)
       self.st5 = Label(self, text='YtableDimY1 ')
       self.st5.grid(row=4, column=C1, sticky=E)
       self.TotalToRemoveVar = StringVar()
       self.TotalToRemove = Entry(self, width=10, textvariable=self.TotalToRemoveVar)
       self.TotalToRemove.grid(row=4, column=C2, sticky=W)
       
       self.st3 = Label(self, text='YtableMove1 ')
       self.st3.grid(row=5, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=5, column=C2, sticky=W)
       self.st3 = Label(self, text='YtableDistX ')
       self.st3.grid(row=6, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=6, column=C2, sticky=W)	
       self.st3 = Label(self, text='YtableDimX2 ')
       self.st3.grid(row=7, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=7, column=C2, sticky=W)	
       self.st3 = Label(self, text='YtableDimY2 ')
       self.st3.grid(row=8, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=8, column=C2, sticky=W)
       self.st3 = Label(self, text='YtableMove2 ')
       self.st3.grid(row=9, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=9, column=C2, sticky=W)
       self.st8 = Label(self, text='Ytable ')
       self.st8.grid(row=10, column=C1, sticky=E)
       self.VacuumOFFVar = StringVar()
       self.VacuumOFFVar.set('M4444')
       self.VacuumOFF = Entry(self, textvariable=self.VacuumOFFVar, width=10)
       self.VacuumOFF.grid(row=10, column=C2, sticky=W)
       self.st10 = Label(self, text='Ytable ')
       self.st10.grid(row=11, column=C1, sticky=E)
       self.DrillVar = StringVar()
       self.DrillVar.set('M333')
       self.Drill = Entry(self, textvariable=self.DrillVar ,width=10)
       self.Drill.grid(row=11, column=C2, sticky=W)
  1. ------------------------------------12------------------------------------
       C1 = 18
       C2 = 19
       self.st1 = Label(self, text='RtableLink ')
       self.st1.grid(row=1, column=C1, sticky=E)
       self.PartLengthVar = StringVar()
       self.PartLength = Entry(self, width=10, bg = 'yellow', textvariable=self.PartLengthVar)
       self.PartLength.grid(row=1, column=C2, sticky=W)
       self.PartLength.focus_set()
       self.st2 = Label(self, text='RtableNum ')
       self.st2.grid(row=2, column=C1, sticky=E)
       self.PartWidthVar = StringVar()
       self.PartWidth = Entry(self, width=10, textvariable=self.PartWidthVar)
       self.PartWidth.grid(row=2, column=C2, sticky=W)
       self.st6 = Label(self, text='RtableX1 ')
       self.st6.grid(row=3, column=C1, sticky=E)
       self.DepthOfCutVar = StringVar()
       self.DepthOfCut = Entry(self, width=10, textvariable=self.DepthOfCutVar)
       self.DepthOfCut.grid(row=3, column=C2, sticky=W)
       self.st5 = Label(self, text='RtableY1 ')
       self.st5.grid(row=4, column=C1, sticky=E)
       self.TotalToRemoveVar = StringVar()
       self.TotalToRemove = Entry(self, width=10, textvariable=self.TotalToRemoveVar)
       self.TotalToRemove.grid(row=4, column=C2, sticky=W)
       
       self.st3 = Label(self, text='RtableZ1 ')
       self.st3.grid(row=5, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=5, column=C2, sticky=W)
       self.st3 = Label(self, text='RtableX2 ')
       self.st3.grid(row=6, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=6, column=C2, sticky=W)	
       self.st3 = Label(self, text='RtableY2 ')
       self.st3.grid(row=7, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=7, column=C2, sticky=W)	
       self.st3 = Label(self, text='RtableZ2 ')
       self.st3.grid(row=8, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=8, column=C2, sticky=W)
       self.st3 = Label(self, text='RtableRes1 ')
       self.st3.grid(row=9, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=9, column=C2, sticky=W)
       self.st8 = Label(self, text='RtableRes2 ')
       self.st8.grid(row=10, column=C1, sticky=E)
       self.VacuumOFFVar = StringVar()
       self.VacuumOFFVar.set('2000')
       self.VacuumOFF = Entry(self, textvariable=self.VacuumOFFVar, width=10)
       self.VacuumOFF.grid(row=10, column=C2, sticky=W)
       self.st8 = Label(self, text='RtableDistX ')
       self.st8.grid(row=11, column=C1, sticky=E)
       self.VacuumOFFVar = StringVar()
       self.VacuumOFFVar.set('2000')
       self.VacuumOFF = Entry(self, textvariable=self.VacuumOFFVar, width=10)
       self.VacuumOFF.grid(row=11, column=C2, sticky=W)
  1. ------------------------------------13------------------------------------
       C1 = 10
       C2 = 11
       self.st1 = Label(self, text='HeadLink ')
       self.st1.grid(row=1, column=C1, sticky=E)
       self.PartLengthVar = StringVar()
       self.PartLength = Entry(self, width=10, bg = 'yellow', textvariable=self.PartLengthVar)
       self.PartLength.grid(row=1, column=C2, sticky=W)
       self.PartLength.focus_set()
       self.st2 = Label(self, text='HeadNo ')
       self.st2.grid(row=2, column=C1, sticky=E)
       self.PartWidthVar = StringVar()
       self.PartWidth = Entry(self, width=10, textvariable=self.PartWidthVar)
       self.PartWidth.grid(row=2, column=C2, sticky=W)
       self.st6 = Label(self, text='HeadLength1 ')
       self.st6.grid(row=3, column=C1, sticky=E)
       self.DepthOfCutVar = StringVar()
       self.DepthOfCut = Entry(self, width=10, textvariable=self.DepthOfCutVar)
       self.DepthOfCut.grid(row=3, column=C2, sticky=W)
       self.st5 = Label(self, text='HeadMove1 ')
       self.st5.grid(row=4, column=C1, sticky=E)
       self.TotalToRemoveVar = StringVar()
       self.TotalToRemove = Entry(self, width=10, textvariable=self.TotalToRemoveVar)
       self.TotalToRemove.grid(row=4, column=C2, sticky=W)
       
       self.st3 = Label(self, text='HeadDist1 ')
       self.st3.grid(row=5, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=5, column=C2, sticky=W)
       self.st3 = Label(self, text='HeadRot1 ')
       self.st3.grid(row=6, column=C1, sticky=E)
       self.HeadRotVar = StringVar()
       self.HeadRotVar.set('NO')
       self.HeadRot = Entry(self, width=10, textvariable=self.HeadRotVar)
       self.HeadRot.grid(row=6, column=C2, sticky=W)	
       self.st3 = Label(self, text='HeadLength2 ')
       self.st3.grid(row=7, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=7, column=C2, sticky=W)	
       self.st3 = Label(self, text='HeadMove2 ')
       self.st3.grid(row=8, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=8, column=C2, sticky=W)
       self.st3 = Label(self, text='HeadDist2 ')
       self.st3.grid(row=9, column=C1, sticky=E)
       self.ToolDiameterVar = StringVar()
       self.ToolDiameter = Entry(self, width=10, textvariable=self.ToolDiameterVar)
       self.ToolDiameter.grid(row=9, column=C2, sticky=W)
       self.st8 = Label(self, text='HeadRot2 ')
       self.st8.grid(row=10, column=C1, sticky=E)
       self.VacuumOFFVar = StringVar()
       self.VacuumOFFVar.set('NO')
       self.VacuumOFF = Entry(self, textvariable=self.VacuumOFFVar, width=10)
       self.VacuumOFF.grid(row=10, column=C2, sticky=W)

#------------------------------------14------------------------------------

       C1 = 16
       C2 = 17
       R = 20
       W1 = 70
       self.st8 = Label(self, text='ScriptLink', width = 10)
       self.st8.grid(row=(R+1), column=C1, sticky=E)
       self.VacuumOFFVar = StringVar()
       self.VacuumOFFVar.set('01')
       self.VacuumOFF = Entry(self, textvariable=self.VacuumOFFVar, width=10, bg = 'yellow')
       self.VacuumOFF.grid(row=(R+1), column=C2, sticky=W, columnspan=7)
       self.st8 = Label(self, text='ScriptPickXY', width = 10)
       self.st8.grid(row=(R+2), column=C1, sticky=E)
       self.VacuumOFFVar = StringVar()
       self.VacuumOFFVar.set('M111')
       self.VacuumOFF = Entry(self, textvariable=self.VacuumOFFVar, width=W1)
       self.VacuumOFF.grid(row=(R+2), column=C2, sticky=W, columnspan=7)
       self.st8 = Label(self, text='ScriptPickDn', width = 10)
       self.st8.grid(row=(R+3), column=C1, sticky=E)
       self.VacuumOFFVar = StringVar()
       self.VacuumOFFVar.set('M2222')
       self.VacuumOFF = Entry(self, textvariable=self.VacuumOFFVar, width=W1)
       self.VacuumOFF.grid(row=(R+3), column=C2, sticky=W, columnspan=7)
       self.st8 = Label(self, text='ScriptVacOn', width = 10)
       self.st8.grid(row=(R+4), column=C1, sticky=E)
       self.VacuumOFFVar = StringVar()
       self.VacuumOFFVar.set('G1 X%1 Y%2')
       self.VacuumOFF = Entry(self, textvariable=self.VacuumOFFVar, width=W1)
       self.VacuumOFF.grid(row=(R+4), column=C2, sticky=W, columnspan=7)
       self.st8 = Label(self, text='ScriptDelayPick', width = 10)
       self.st8.grid(row=(R+5), column=C1, sticky=E)
       self.VacuumOFFVar = StringVar()
       self.VacuumOFFVar.set('M4444')
       self.VacuumOFF = Entry(self, textvariable=self.VacuumOFFVar, width=W1)
       self.VacuumOFF.grid(row=(R+5), column=C2, sticky=W, columnspan=7)
       self.st8 = Label(self, text='ScriptPickUp', width = 10)
       self.st8.grid(row=(R+6), column=C1, sticky=E)
       self.VacuumOFFVar = StringVar()
       self.VacuumOFFVar.set('M4444')
       self.VacuumOFF = Entry(self, textvariable=self.VacuumOFFVar, width=W1)
       self.VacuumOFF.grid(row=(R+6), column=C2, sticky=W, columnspan=7)
       self.st8 = Label(self, text='ScriptAlignXY', width = 10)
       self.st8.grid(row=(R+7), column=C1, sticky=E)
       self.VacuumOFFVar = StringVar()
       self.VacuumOFFVar.set('M4444')
       self.VacuumOFF = Entry(self, textvariable=self.VacuumOFFVar, width=W1)
       self.VacuumOFF.grid(row=(R+7), column=C2, sticky=W, columnspan=7)
       self.st8 = Label(self, text='ScriptAligDn', width = 10)
       self.st8.grid(row=(R+8), column=C1, sticky=E)
       self.VacuumOFFVar = StringVar()
       self.VacuumOFFVar.set('M4444')
       self.VacuumOFF = Entry(self, textvariable=self.VacuumOFFVar, width=W1)
       self.VacuumOFF.grid(row=(R+8), column=C2, sticky=W, columnspan=7)
       self.st8 = Label(self, text='ScriptAlign', width = 10)
       self.st8.grid(row=(R+9), column=C1, sticky=E)
       self.VacuumOFFVar = StringVar()
       self.VacuumOFFVar.set('M4444')
       self.VacuumOFF = Entry(self, textvariable=self.VacuumOFFVar, width=W1)
       self.VacuumOFF.grid(row=(R+9), column=C2, sticky=W, columnspan=7)
       self.st8 = Label(self, text='ScriptAlignUp', width = 10)
       self.st8.grid(row=(R+10), column=C1, sticky=E)
       self.VacuumOFFVar = StringVar()
       self.VacuumOFFVar.set('M4444')
       self.VacuumOFF = Entry(self, textvariable=self.VacuumOFFVar, width=W1)
       self.VacuumOFF.grid(row=(R+10), column=C2, sticky=W, columnspan=7)
       self.st8 = Label(self, text='ScriptPlaceXY', width = 10)
       self.st8.grid(row=(R+11), column=C1, sticky=E)
       self.VacuumOFFVar = StringVar()
       self.VacuumOFFVar.set('M4444')
       self.VacuumOFF = Entry(self, textvariable=self.VacuumOFFVar, width=W1)
       self.VacuumOFF.grid(row=(R+11), column=C2, sticky=W, columnspan=7)
       self.st8 = Label(self, text='ScriptPlaceDn', width = 10)
       self.st8.grid(row=(R+12), column=C1, sticky=E)
       self.VacuumOFFVar = StringVar()
       self.VacuumOFFVar.set('M4444')
       self.VacuumOFF = Entry(self, textvariable=self.VacuumOFFVar, width=W1)
       self.VacuumOFF.grid(row=(R+12), column=C2, sticky=W, columnspan=7)
       self.st8 = Label(self, text='ScriptVacOff', width = 10)
       self.st8.grid(row=(R+13), column=C1, sticky=E)
       self.VacuumOFFVar = StringVar()
       self.VacuumOFFVar.set('M111')
       self.VacuumOFF = Entry(self, textvariable=self.VacuumOFFVar, width=W1)
       self.VacuumOFF.grid(row=(R+13), column=C2, sticky=W, columnspan=7)
       self.st8 = Label(self, text='ScriptDelayPlace', width = 10)
       self.st8.grid(row=(R+14), column=C1, sticky=E)
       self.VacuumOFFVar = StringVar()
       self.VacuumOFFVar.set('M2222')
       self.VacuumOFF = Entry(self, textvariable=self.VacuumOFFVar, width=W1)
       self.VacuumOFF.grid(row=(R+14), column=C2, sticky=W, columnspan=7)
       self.st8 = Label(self, text='ScriptPlaceUp', width = 10)
       self.st8.grid(row=(R+15), column=C1, sticky=E)
       self.VacuumOFFVar = StringVar()
       self.VacuumOFFVar.set('G1 X%1 Y%2')
       self.VacuumOFF = Entry(self, textvariable=self.VacuumOFFVar, width=W1)
       self.VacuumOFF.grid(row=(R+15), column=C2, sticky=W, columnspan=7)
       self.st8 = Label(self, text='ScriptReadyNext', width = 10)
       self.st8.grid(row=(R+16), column=C1, sticky=E)
       self.VacuumOFFVar = StringVar()
       self.VacuumOFFVar.set('M4444')
       self.VacuumOFF = Entry(self, textvariable=self.VacuumOFFVar, width=W1)
       self.VacuumOFF.grid(row=(R+16), column=C2, sticky=W, columnspan=7)
       self.st8 = Label(self, text='Script', width = 10)
       self.st8.grid(row=(R+17), column=C1, sticky=E)
       self.VacuumOFFVar = StringVar()
       self.VacuumOFFVar.set('M4444')
       self.VacuumOFF = Entry(self, textvariable=self.VacuumOFFVar, width=W1)
       self.VacuumOFF.grid(row=(R+17), column=C2, sticky=W, columnspan=7)
       self.st8 = Label(self, text='Script', width = 10)
       self.st8.grid(row=(R+18), column=C1, sticky=E)
       self.VacuumOFFVar = StringVar()
       self.VacuumOFFVar.set('M4444')
       self.VacuumOFF = Entry(self, textvariable=self.VacuumOFFVar, width=W1)
       self.VacuumOFF.grid(row=(R+18), column=C2, sticky=W, columnspan=7)
       self.st8 = Label(self, text='Script', width = 10)
       self.st8.grid(row=(R+19), column=C1, sticky=E)
       self.VacuumOFFVar = StringVar()
       self.VacuumOFFVar.set('M4444')
       self.VacuumOFF = Entry(self, textvariable=self.VacuumOFFVar, width=W1)
       self.VacuumOFF.grid(row=(R+19), column=C2, sticky=W, columnspan=7)
       self.st8 = Label(self, text='Script', width = 10)
       self.st8.grid(row=(R+20), column=C1, sticky=E)
       self.VacuumOFFVar = StringVar()
       self.VacuumOFFVar.set('M4444')
       self.VacuumOFF = Entry(self, textvariable=self.VacuumOFFVar, width=W1)
       self.VacuumOFF.grid(row=(R+20), column=C2, sticky=W, columnspan=7)
  1. ------------------------------------------------------------------------
       R_G = 21
       self.spacer3 = Label(self, text='- G- Link -')
       self.spacer3.grid(row=R_G, column=4, columnspan=5)
  1. --------------------------g_code window---------------------------------
       #g_code is Text and is defined here !!!!!(Tkinter)
       self.g_code = Text(self,width=30,height=24,bd=3)
       self.g_code.grid(row=R_G+1, column=5, columnspan=10, rowspan=24, sticky=E+W+N+S)
       self.tbscroll = Scrollbar(self,command = self.g_code.yview)
       self.tbscroll.grid(row=R_G+1, column=15, sticky=N+S+W)
       self.g_code.configure(yscrollcommand = self.tbscroll.set) 
  1. ---------------------------------------------------------------------------
       # self.st8=Label(self,text='Units')
       # self.st8.grid(row=0,column=26)
       # UnitOptions=[('Inch',1),('MM',2)]
       # self.UnitVar=IntVar()
       # for text, value in UnitOptions:
           # Radiobutton(self, text=text,value=value,
               # variable=self.UnitVar,indicatoron=0,width=6,)\
               # .grid(row=value, column=26)
       # self.UnitVar.set(1)
              
       # self.st9=Label(self,text='X0-Y0')
       # self.st9.grid(row=3,column=26)
       # HomeOptions=[('Left-Rear',4),('Left-Front',5)]
       # self.HomeVar=IntVar()
       # for text, value in HomeOptions:
           # Radiobutton(self, text=text,value=value,
               # variable=self.HomeVar,indicatoron=0,width=11,)\
               # .grid(row=value, column=26)
       # self.HomeVar.set(4)


  1. -----------------------------------------------------------------------------------
       R2 =19
       self.CopyButton = Button(self, text='NEXT',command=self.Next_ix, bg='#eee', height=1, width = 10, relief = 'raised')
       self.CopyButton.grid(row=R2+0, column=1, columnspan=1, rowspan = 1)
       self.CopyButton = Button(self, text='PREVIOUS',command=self.Previous_ix, bg='#ddd', height=1, width = 10, relief = 'raised')
       self.CopyButton.grid(row=R2+1, column=1, columnspan=1, rowspan = 1)
       R2 =25
       C2 = 2
       self.st3 = Label(self, text=)
       self.st3.grid(row=R2-1, column=C2, sticky=E)
       self.CopyButton = Button(self, text='IMPORT .CSV',command=self.import_csv, bg='#eee', height=1, width = 10, relief = 'raised')
       self.CopyButton.grid(row=R2+0, column=C2, columnspan=1, rowspan = 1)
       self.CopyButton = Button(self, text='OPEN .INI',command=self.GetPartInfo, bg='#ddd', height=1, width = 10, relief = 'raised')
       self.CopyButton.grid(row=R2+1, column=C2, columnspan=1, rowspan = 1)
       self.CopyButton = Button(self, text='SAVE .INI',command=self.SaveData, bg='#aaa', height=1, width = 10, relief = 'raised')
       self.CopyButton.grid(row=R2+2, column=C2, columnspan=1, rowspan = 1)
  1. -----------------------------------------------------------------------------------
       R9= 75
       C9 = 1        
       
       self.spacer3 = Label(self, text=)
       self.spacer3.grid(row=R9-1, column=0, columnspan=14)
       self.sp4 = Label(self)
       self.sp4.grid(row=R9-1)        
       self.GenButton = Button(self, text='Generate',command=self.GenCode, width = 10)
       self.GenButton.grid(row=R9, column = C9+0)
       
       self.CopyButton = Button(self, text='clipboard',command=self.SelectCopy, width = 10)
       self.CopyButton.grid(row=R9, column = C9+1)
       
       self.WriteButton = Button(self, text='Save',command=self.WriteToFile, width = 10)
       self.WriteButton.grid(row=R9, column = C9+2)
       self.GenButton = Button(self, text='SendAxis',command=self.GenCode, width = 10)
       self.GenButton.grid(row=R9, column = C9+3)
       
       self.CopyButton = Button(self, text='Save DATA',command=self.SelectCopy, width = 10)
       self.CopyButton.grid(row=R9, column = C9+4)
       
       self.WriteButton = Button(self, text='Telnet',command=self.GetFeederInfo, width = 10)
       self.WriteButton.grid(row=R9, column = C9+5)
       self.WriteButton = Button(self, text='Pick-Place',command=self.WriteToFile, width = 10)
       self.WriteButton.grid(row=R9, column = C9+6)
       self.WriteButton = Button(self, text='Place Back',command=self.WriteToFile, width = 10)
       self.WriteButton.grid(row=R9, column = C9+7)
       self.WriteButton = Button(self, text='ext Part',command=self.WriteToFile, width = 10)
       self.WriteButton.grid(row=R9, column = C9+8)
       self.WriteButton = Button(self, text='ShortRef ',command=self.WriteToFile, width = 10)
       self.WriteButton.grid(row=R9, column = C9+9)
       self.WriteButton = Button(self, text='textit',command=self.textit, width = 10)
       self.WriteButton.grid(row=R9, column = C9+10)


       if IN_AXIS:
           self.quitButton = Button(self, text='Write to AXIS and Quit',\
               command=self.WriteToAxis)
       else:
           self.quitButton = Button(self, text='Quit', command=self.quit, width = 10)
       self.quitButton.grid(row=R9, column = C9+22, sticky=E)
  1. -------------------------------------------------------------------------------------
   def WriteToAxis(self):
       sys.stdout.write(self.g_code.get(0.0, END))
       self.quit()
  1. --------------------------G Code Generator-------------------------------------------
   def GenCode(self):
       """ Generate the g_code for facing a part 
       assume that the part is at X0 to X+, Y0 to Y-"""
       D=Decimal
       # Calculate the start position 1/2 the tool diameter + 0.100 in X and Stepover in Y
       self.ToolRadius = self.FToD(self.ToolDiameterVar.get())/2
       if len(self.LeadinVar.get())>0:
           self.LeadIn = self.FToD(self.LeadinVar.get())
       else:
           self.LeadIn = self.ToolRadius + D('0.1')
       self.X_Start = -(self.LeadIn)
       self.X_End = self.FToD(self.PartLengthVar.get()) + self.LeadIn
       if len(self.StepOverVar.get())>0:
           self.Y_StepOver = (self.FToD(self.ToolDiameterVar.get())\
               * self.FToD(self.StepOverVar.get())/100)
       else:
           self.Y_StepOver = self.FToD(self.ToolDiameterVar.get())*D('.75')

if self.HomeVar.get()==4:

       	self.Y_Start = (self.ToolRadius - self.Y_StepOver)
       	self.Y_End = -(self.FToD(self.PartWidthVar.get())-\
           		(self.ToolRadius - self.Y_StepOver))+D('.1')

else:

       	self.Y_Start = -(self.ToolRadius - self.Y_StepOver)
       	self.Y_End = (self.FToD(self.PartWidthVar.get())+\
           		(self.ToolRadius + self.Y_StepOver))+D('.1')
       self.Z_Total = self.FToD(self.TotalToRemoveVar.get())
       if len(self.DepthOfCutVar.get())>0:
           self.Z_Step = self.FToD(self.DepthOfCutVar.get())
           self.NumOfZSteps = int(self.FToD(self.TotalToRemoveVar.get()) / self.Z_Step)
           if self.Z_Total % self.Z_Step > 0:
               self.NumOfZSteps = self.NumOfZSteps + 1
       else:
           self.Z_Step = 0
           self.NumOfZSteps = 1
       self.NumOfYSteps = int(ceil(self.FToD(self.PartWidthVar.get())/self.Y_StepOver))
       self.Z_Position = 0
       # Generate the g_codes
       if self.UnitVar.get()==1:
           self.g_code.insert(END, 'G20 ')
       else:
           self.g_code.insert(END, 'G21 ')
       if len(self.SpindleRPMVar.get())>0:
           self.g_code.insert(END, 'S%i ' %(self.FToD(self.SpindleRPMVar.get())))
           self.g_code.insert(END, 'M3 ')
       if len(self.FeedrateVar.get())>0:
           self.g_code.insert(END, 'F%s\n' % (self.FeedrateVar.get()))
       for i in range(self.NumOfZSteps):
           self.g_code.insert(END, 'G0 X%.4f Y%.4f\nZ0.1000\n' \
               %(self.X_Start, self.Y_Start))
           # Make sure the Z position does not exceed the total depth
           if self.Z_Step>0 and (self.Z_Total+self.Z_Position) >= self.Z_Step:
               self.Z_Position = self.Z_Position - self.Z_Step
           else:
               self.Z_Position = -self.Z_Total
           self.g_code.insert(END, 'G1 Z%.4f\n' % (self.Z_Position))
           self.X_Position = self.X_Start
           self.Y_Position = self.Y_Start
           for i in range(self.NumOfYSteps):
               if self.X_Position == self.X_Start: 
                   self.g_code.insert(END, 'G1 X%.4f\n' % (self.X_End))
                   self.X_Position = self.X_End
               else:
                   self.g_code.insert(END, 'G1 X%.4f\n' % (self.X_Start))
                   self.X_Position = self.X_Start
               if self.HomeVar.get()==4:
                   self.Y_Position = self.Y_Position - self.Y_StepOver
               else:
                   self.Y_Position = self.Y_Position + self.Y_StepOver
               if self.HomeVar.get()==4:
                   if self.Y_Position > self.Y_End:
                       self.g_code.insert(END, 'G0 Y%.4f\n' % (self.Y_Position))
               else:
                   if self.Y_Position < self.Y_End:
                       self.g_code.insert(END, 'G0 Y%.4f\n' % (self.Y_Position))
       self.g_code.insert(END, 'G0 Z0.1000\n')
       if len(self.SpindleRPMVar.get())>0:
           self.g_code.insert(END, 'M5\n')
       self.g_code.insert(END, 'G0 X0.0000 Y0.0000\nM2 (End of File)\n')
  1. ------------------------------------------------------------------------------------
   def FToD(self,s): # Float To Decimal
       """
       Returns a decimal with 4 place precision
       valid imputs are any fraction, whole number space fraction
       or decimal string. The input must be a string!
       """
       s=s.strip(' ') # remove any leading and trailing spaces
       D=Decimal # Save typing
       P=D('0.0001') # Set the precision wanted
       if ' ' in s: # if it is a whole number with a fraction
           w,f=s.split(' ',1)
           w=w.strip(' ') # make sure there are no extra spaces
           f=f.strip(' ')
           n,d=f.split('/',1)
           return D(D(n)/D(d)+D(w)).quantize(P)
       elif '/' in s: # if it is just a fraction
           n,d=s.split('/',1)
           return D(D(n)/D(d)).quantize(P)
       return D(s).quantize(P) # if it is a decimal number already
   def GetIniData(self,FileName,SectionName,OptionName):
       """
       Returns the data in the file, section, option if it exists
       of an .ini type file created with ConfigParser.write()
       If the file is not found or a section or an option is not found
       returns an exception
       """
       self.cp=ConfigParser()
       try:
           self.cp.readfp(open(FileName,'r'))
           try:
               self.cp.has_section(SectionName)
               try:
                   IniData=self.cp.get(SectionName,OptionName)
               except ConfigParser.NoOptionError:
                   raise Exception,'NoOptionError'
           except ConfigParser.NoSectionError:
               raise Exception,'NoSectionError'
       except IOError:
           raise Exception,'NoFileError'
       return IniData
    

# Write to .INI file

   def WriteIniData(self,FileName,SectionName,OptionName,OptionData):
       """
       Pass the file name, section name, option name and option data
       When complete returns 'sucess'
       """
       self.cp=ConfigParser()
       try:
           self.fn=open(FileName,'a')
       except IOError:
           self.fn=open(FileName,'w')
       if not self.cp.has_section(SectionName):
           self.cp.add_section(SectionName)
       self.cp.set(SectionName,OptionName,OptionData)
       self.cp.write(self.fn)
       self.fn.close()
   def WriteIniProject(self,FileName,SectionName,N1,D1,N2,D2,N3,D3,N4,D4,N5,D5,N6,D6,N7,D7,N8,D8,N9,D9,N10,D10,N11,D11,N12,D12):
       """
       Pass the file name, section name, option name and option data
       When complete returns 'sucess'
       """
       self.cp = ConfigParser()
       try:
           self.fn=open(FileName,'a')
       except IOError:
           self.fn=open(FileName,'w')
       if not self.cp.has_section(SectionName):
           self.cp.add_section(SectionName)
       self.cp.set(SectionName,'index',SectionName)
       self.cp.set(SectionName,N1,D1)
       self.cp.set(SectionName,N2,D2)
       self.cp.set(SectionName,N3,D3)
       self.cp.set(SectionName,N4,D4)
       self.cp.set(SectionName,N5,D5)
       self.cp.set(SectionName,N6,D6)
       self.cp.set(SectionName,N7,D7)
       self.cp.set(SectionName,N8,D8)
       self.cp.set(SectionName,N9,D9)
       self.cp.set(SectionName,N10,D10)
       self.cp.set(SectionName,N11,D11)
       self.cp.set(SectionName,N12,D12)
       self.cp.write(self.fn)
       self.fn.close()
   def GetDirectory(self):
       self.DirName = askdirectory(initialdir='/home',title='Please select a directory')
       if len(self.DirName) > 0:
           return self.DirName 
      
   def CopyClpBd(self):
       self.g_code.clipboard_clear()
       self.g_code.clipboard_append(self.g_code.get(0.0, END))

# write to file indicated in the .INI file

   def WriteToFile(self):
       try:
           self.NcDir = self.GetIniData('light_fast.ini','Directories','NcFiles')
           self.NewFileName = asksaveasfile(initialdir=self.NcDir,mode='w', \
               master=self.master,title='Create NC File',defaultextension='.ngc')
           self.NewFileName.write(self.g_code.get(0.0, END))
           self.NewFileName.close()
       except:
           tkMessageBox.showinfo('Missing INI', 'You must set the\n' \
               'NC File Directory\n' \
               'before saving a file.\n' \
               'Go to Edit/NC Directory\n' \
               'in the menu to set this option')  


   def textit(self):
       self.g_code.insert(END, '---------------------------------------------------------------------------------- ')
   def import_csv(self):
           f = open("bom_pp_.csv", "rb")
           imported = csv.reader(f)
           self.NoOfPartsVar.set(imported.line_num)
           part_list = []
           part_list.extend(imported)
           self.g_code.insert(END, part_list)
           # print part_list
           self.NoOfPartsVar.set(imported.line_num)
           
           rownum = 0
           for row in part_list:
               #Save header row.
               if rownum == 0:
                   header = row
               else:
                   colnum = 0
                   for col in row:
                       print '%-8s: %s' % (header[colnum], col)
                       colnum += 1
                   print '\n'
               rownum += 1
           print part_list[2][0]
           index = '2'
           i=2
           max = imported.line_num 
           for i in range(2,max):
               self.WriteIniProject('Project1.ini',str(i-1),'Designator',part_list[i][0],'Footprint',part_list[i][1],'PartCenterX',part_list[i][2],'PartCenterY',part_list[i][3],'PartRefX',part_list[i][4],'PartRefY',part_list[i][5],'PartPadX',part_list[i][6],'PartPadY',part_list[i][7],'PartRot',part_list[i][8],'PartLayer',part_list[i][9],'PartComment',part_list[i][10],'PartPV',part_list[i][11])
           
  1. --------------------------------------------------------------------------------------------------------------------------
   def SaveData(self):
       a=1
       # SAVE part_list as .ini 
   def Next_ix(self):
       global ix
       ix += 1
       print ix
       self.GetPartInfo()
   def Previous_ix(self):
       global ix
       ix -= 1
       print ix
       self.GetPartInfo()
   
   def GetPartInfo(self): 
       
       global ix 
       # ix += 1
       indx = ix
       print ix
       try:
           self.PartIndexVar.set(self.GetIniData('Project1.ini',str(indx),'index'))
       except:
           tkMessageBox.showinfo('Error', 'No DATA\n' ) 
       try:
           self.PartRefVar.set(self.GetIniData('Project1.ini',str(indx),'Designator'))
       except:
           tkMessageBox.showinfo('Error', 'No DATA\n' )        
       try:
           self.PartFtprntVar.set(self.GetIniData('Project1.ini',str(indx),'Footprint'))
       except:
           tkMessageBox.showinfo('Error', 'No DATA\n' ) 
       try:
           self.PartCenterXVar.set(self.GetIniData('Project1.ini',str(indx),'partcenterx'))
       except:
           tkMessageBox.showinfo('Error', 'No DATA\n' )
       try:
           self.PartCenterYVar.set(self.GetIniData('Project1.ini',str(indx),'partcentery'))
       except:
           tkMessageBox.showinfo('Error', 'No DATA\n' ) 
       try:
           self.PartRefXVar.set(self.GetIniData('Project1.ini',str(indx),'partrefx'))
       except:
           tkMessageBox.showinfo('Error', 'No DATA\n' ) 
       try:
           self.PartRefYVar.set(self.GetIniData('Project1.ini',str(indx),'partrefy'))
       except:
           tkMessageBox.showinfo('Error', 'No DATA\n' ) 
       try:
           self.PartPadXVar.set(self.GetIniData('Project1.ini',str(indx),'partpadx'))
       except:
           tkMessageBox.showinfo('Error', 'No DATA\n' )
       try:
           self.PartPadYVar.set(self.GetIniData('Project1.ini',str(indx),'partpady'))
       except:
           tkMessageBox.showinfo('Error', 'No DATA\n' ) 
       try:
           self.PartRotVar.set(self.GetIniData('Project1.ini',str(indx),'partrot'))
       except:
           tkMessageBox.showinfo('Error', 'No DATA\n' )
       try:
           self.PartLayerVar.set(self.GetIniData('Project1.ini',str(indx),'partlayer'))
       except:
           tkMessageBox.showinfo('Error', 'No DATA\n' )
       try:
           self.PartValueVar.set(self.GetIniData('Project1.ini',str(indx),'partcomment'))
       except:
           tkMessageBox.showinfo('Error', 'No DATA\n' ) 
       try:
           self.PartPVVar.set(self.GetIniData('Project1.ini',str(indx),'partpv'))
       except:
           tkMessageBox.showinfo('Error', 'No DATA\n' )            


   def GetFeederInfo(self):
       try:
           self.FeederLinkVar.set(self.GetIniData('light_fast.ini','feeder1','Feeder1_Link'))			
       except:
           tkMessageBox.showinfo('Error', 'No DATA\n' )
       try:
           self.FeederWidthVar.set(self.GetIniData('light_fast.ini','feeder1','Feeder1_Width'))			
       except:
           tkMessageBox.showinfo('Error', 'No DATA\n' )  
       try:
           self.FeederPosXVar.set(self.GetIniData('light_fast.ini','feeder1','Feeder1_Pos_X'))			
       except:
           tkMessageBox.showinfo('Error', 'No DATA\n' ) 	
       try:
           self.FeederPosYVar.set(self.GetIniData('light_fast.ini','feeder1','Feeder1_Pos_Y'))			
       except:
           tkMessageBox.showinfo('Error', 'No DATA\n' ) 
       try:
           self.FeederPosZVar.set(self.GetIniData('light_fast.ini','feeder1','Feeder1_Pos_Z'))			
       except:
           tkMessageBox.showinfo('Error', 'No DATA\n' ) 			
       try:
           self.FeederRotVar.set(self.GetIniData('light_fast.ini','feeder1','Feeder1_Rot'))			
       except:
           tkMessageBox.showinfo('Error', 'No DATA\n' ) 
       try:
           self.FeederHeightVar.set(self.GetIniData('light_fast.ini','feeder1','Feeder1_Height'))			
       except:
           tkMessageBox.showinfo('Error', 'No DATA\n' ) 
       try:
           self.FeederStepXVar.set(self.GetIniData('light_fast.ini','feeder1','Feeder1_Step_X'))			
       except:
           tkMessageBox.showinfo('Error', 'No DATA\n' ) 
       try:
           self.FeederStepYVar.set(self.GetIniData('light_fast.ini','feeder1','Feeder1_Step_Y'))			
       except:
           tkMessageBox.showinfo('Error', 'No DATA\n' ) 

# -------- Write to .INI file ---------------

   def NcFileDirectory(self):
       DirName = self.GetDirectory()
       if len(DirName)>0:
           self.WriteIniData('light_fast.ini','Directories','NcFiles',DirName)
   def SaveProject(self):
       #DirName = self.GetDirectory()
       #if len(DirName)>0:
       designator = part_list[i][0]
       self.WriteIniData('Project1.ini',designator,'NcFiles','O:\python\pp.pst')            
           
   def Simple(self):
       tkMessageBox.showinfo('Feature', 'Sorry this Feature has\nnot been programmed yet.')
   def ClearTextBox(self):
       self.g_code.delete(1.0,END)
   def SelectAllText(self):
       self.g_code.tag_add(SEL, '1.0', END)
   def SelectCopy(self):
       self.SelectAllText()
       self.CopyClpBd()
   def HelpInfo(self):
       SimpleDialog(self,
           text='Required fields are:\n'
           'Part Width & Length,\n'
           'Amount to Remove,\n'
           'and Feedrate\n'
           'Fractions can be entered in most fields',
           buttons=['Ok'],
           default=0,
           title='User Info').go()
   def HelpAbout(self):
       tkMessageBox.showinfo('Help About', 'Programmed by Light and Fast Team\n'

'Light and Fast Pick-Placer T\n' 'Based on \n' 'Face by \n'

           'Big John T \n'
           'Version 1.3.4 ')

app = Application() app.master.title('Light.And.Fast EMC2 Pick-Place') app.mainloop()

</python>