OW about this (;-) It is a programable front end to the Macro M1234 Drill bolt circle
Code EXAMPLE:
'Macro M2223 Bolt circle Drill
Sub main()
Dim P101 As Integer
Dim P11 As Integer
Begin Dialog DiaLogName1 60,60,175,150, "Drill Circle"
TEXT 10,10,80,10, "#26 Z TOP "
TEXT 10,22,80,10, "#18 Bolt Circle Radius"
TEXT 10,34,80,10, "#7 Hole Depth"
TEXT 10,46,80,10, "#1 Start Angle"
TEXT 10,58,80,10, "#11 Num of HOLES"
TEXT 10,70,80,10, "#3 Drill Cycle "
TEXT 10,82,80,10, "#9 Drilling Feedrate"
TEXT 10,94,80,10, "#17 Peck Depth "
Text 10,106,80,10, "#19 Spindle Speed"
TEXTBOX 85,10,35,10, .Ztop
TEXTBOX 85,22,35,10, .RadBC
TEXTBOX 85,34,35,10, .DepthH
TEXTBOX 85,46,35,10, .Sangle
TEXTBOX 85,58,35,10, .Nholes
TEXTBOX 85,70,35,10, .DCtype
TEXTBOX 85,82,35,10, .DrillFR
TEXTBOX 85,94,35,10, .PDepth
TEXTBOX 85,106,35,10, .Sspeed
OKBUTTON 85,129,35,12
End Dialog
Dim Dlg1 As DialogName1
Dialog Dlg1
Setvar (26, Dlg1.Ztop)
Setvar (18, Dlg1.RadBC)
Setvar (7, Dlg1.DepthH)
Setvar (1, Dlg1.Sangle)
Setvar (11, Dlg1.Nholes)
Setvar (3, Dlg1.DCtype)
Setvar (9, Dlg1.DrillFR)
Setvar (17, Dlg1.Pdepth)
Setvar (19, Dlg1.Sspeed)
Setvar(24,GetDro(0))
SetVar(25, GetDro(1))
Code" #101=0" ' Initialize counter
Code" #102=#1" ' Initialize current angle To A
Code" #103=[360 / #11]" ' Constant For incremental angular distance between holes
Code" #104=[#26 + 0.1]" ' Constant For rapid approach plane
Code" #105=[#26 - #7]" ' Constant For Z bottom position of hole
Code" G0 Z#104 X#24 Y#25"
N1:
Code" #110=[#24 + COS[#102] * #18]" ' Calculate X position For current hole based On current angle
Code" #111=[#25 + SIN[#102] * #18]" ' Calculate Y position For current hole based On current angle
Code" M3 M8"
Code" G#3 X#110 Y#111 R#104 Z#105 Q#17 F#9 S#19(Machine current hole)"
Code" G80 (Cancel cycle)"
Code" #101=[#101 + 1] " 'Step counter
Code" #102=[#102 + #103]" 'Step current angle)
P101= GetVAR(101)
P11= GetVAR(11)
While Ismoving()
Wend
If P101 <= (P11-1) Then GoTo n1 Else GoTo N99
N99:
Code" G0 Z#104 X#24 Y#25"
Code"M5 M9"
Code "M30"
End Sub
End