rendered paste body#!/usr/bin/env python
import math
from Tkinter import *
root = Tk()
root.title('Bolt Circle Calc')
root.clipboard_clear()
App_label=Frame(root)
Label(App_label,text="Bolt Circle Calculator").pack(side=LEFT,padx=5)
Gcode_label=Frame(root)
Label(Gcode_label, text="Drill Cycle").pack(side=LEFT, padx=5)
Gcode_value=StringVar()
Gcode_entry = Entry(root, textvariable=Gcode_value)
feed_label=Frame(root)
Label(feed_label, text="Feed").pack(side=LEFT, padx=5)
feed_value=DoubleVar()
feed_entry = Entry(root, textvariable=feed_value)
Rplane_label=Frame(root)
Label(Rplane_label, text="Clearance Plane").pack(side=LEFT, padx=5)
Rplane_value=DoubleVar()
Rplane_entry = Entry(root, textvariable=Rplane_value)
x_label=Frame(root)
Label(x_label, text="X Position").pack(side=LEFT, padx=5)
x_center_value=DoubleVar()
x_center_entry = Entry(root, textvariable=x_center_value)
y_label=Frame(root)
Label(y_label, text="Y Position").pack(side=LEFT, padx=5)
y_center_value=DoubleVar()
y_center_entry = Entry(root, textvariable=y_center_value)
z_label=Frame(root)
Label(z_label, text="Z Depth").pack(side=LEFT, padx=5)
z_center_value=DoubleVar()
z_center_entry = Entry(root, textvariable=z_center_value)
holes_label=Frame(root)
Label(holes_label, text="# of Holes").pack(side=LEFT, padx=5)
no_of_holes_value=IntVar()
no_of_holes_entry = Entry(root, textvariable=no_of_holes_value)
dia_label=Frame(root)
Label(dia_label, text="BC Dia").pack(side=LEFT, padx=5)
bolt_circle_diameter_value=DoubleVar()
bolt_circle_entry = Entry(root, textvariable=bolt_circle_diameter_value)
angle_label=Frame(root)
Label(angle_label, text="Start Angle").pack(side=LEFT, padx=5)
start_angle_value=DoubleVar()
start_angle_entry = Entry(root, textvariable=start_angle_value)
Scale_label=Frame(root)
Label(Scale_label, text="Scale").pack(side=LEFT, padx=5)
Scale_value=DoubleVar()
Scale_entry = Entry(root, textvariable=Scale_value)
def get_Gcode_value():
print Gcode_value.get()
def get_feed_value():
print feed_value.get()
def get_Rplane_value():
print Rplane_value.get()
def get_x_center_value():
print x_center_value.get()
def get_y_center_value():
print y_center_value.get()
def get_z_center_value():
print z_center_value.get()
def get_no_of_holes_value():
print no_of_holes_value.get()
def get_bolt_circle_diameter_value():
print bolt_circle_diameter_value.get()
def get_start_angle_value():
print start_angle_value.get()
def get_Scale_value():
print Scale_value.get()
def print_value():
print "(G Code", (Gcode_value.get()),")"
print "(Clearance Plane R", (Rplane_value.get()),")"
print "(Feed", (feed_value.get()),")"
print "(X Center" , float(x_center_value.get()),")"
print "(Y Center" , float(y_center_value.get()),")"
print "(Z Depth" , float(z_center_value.get()),")"
print "(# of Holes" , float(no_of_holes_value.get()),")"
print "(BC Diameter" , float(bolt_circle_diameter_value.get()),")"
print "(Start Angle" , float(start_angle_value.get()),")"
print
x_center=float(x_center_value.get())
y_center=float(y_center_value.get())
z_center=float(z_center_value.get())
no_of_holes=float(no_of_holes_value.get())
bolt_circle_diameter=float(bolt_circle_diameter_value.get())
start_angle=float(start_angle_value.get())
scale=float(Scale_value.get())
count = 0
anglecount=1
circle_division_angle=(360/no_of_holes)
calc_angle=start_angle
while (count < no_of_holes):
x1=math.cos(math.radians(calc_angle))*(bolt_circle_diameter/2)
y1=math.sin(math.radians(calc_angle))*(bolt_circle_diameter/2)
x=(x1+x_center)*scale
y=(y1+y_center)*scale
z=(z_center)*scale
xstring='%.4f' % x
ystring='%.4f' % y
zstring='%.4f' % z
xprint='%.4f' % x
yprint='%.4f' % y
zprint='%.4f' % z
gcodeprint='%s' % Gcode_value.get()
rpplaneprint='%s' % Rplane_value.get()
feedprint='%s' % feed_value.get()
print (Gcode_value.get()),"X",xprint,"Y",yprint, "Z",zprint,"R",(Rplane_value.get()),"F",(feed_value.get())
clippy= gcodeprint,"X",xprint ,"Y",yprint,"Z",zprint,"R",rpplaneprint,"F",feedprint
root.clipboard_append(clippy)
root.clipboard_append(r';')
root.clipboard_append('\n')
# print clippy
# print
anglecount=anglecount+1
calc_angle=calc_angle + circle_division_angle
count=count+1
def make_output():
root.clipboard_clear()
print_value()
root.clipboard_append('G80')
print "G80"
App_label.pack()
Gcode_label.pack()
Gcode_entry.pack()
feed_label.pack()
feed_entry.pack()
Rplane_label.pack()
Rplane_entry.pack()
x_label.pack()
x_center_entry.pack()
y_label.pack()
y_center_entry.pack()
z_label.pack()
z_center_entry.pack()
holes_label.pack()
no_of_holes_entry.pack()
dia_label.pack()
bolt_circle_entry.pack()
angle_label.pack()
start_angle_entry.pack()
Scale_label.pack()
Scale_entry.pack()
a = Button(root, text="calculate", command=make_output)
a.pack()
root.mainloop()