'Macro Thread Mill NPT taper pipe thread Sub Main() Setvar(21,Getdro(0)) Setvar(23,Getdro(1)) Setvar(30,Getdro(2)) Setvar(22,question("Threads per inch")) Setvar(28,question("Tool Diameter")) Setvar(27,question("Start Major Diameter")) Setvar(9,question("Feed Rate")) Setvar(18, question("Resolution of thread")) Setvar(29,question("Thread Depth")) Setvar(26,(getvar(30)-Getvar(29))) N0: Setvar(31,question("InsideThread(0)....OutsideThread(1)")) If getvar(31)=0 Then GoTo N1 If Getvar(31)=1 Then GoTo N2 If Getvar(31)>1 Then MsgBox"Selection OUT OF RANGE" GoTo N0 N1: Code" #1=[[#27/2]-[#28/2]]" COde" #8= [1+[-1*[FUP[#26/[1/#22]]]]]" Code"#3=0.0" Code"#10=[360 / #18]" Code"#109=#10" Code"#110=[1 / #22]" Code"#111=[0.0625 / #22]" Code"#3=#18" Code"G00 X#21 Y#23" Code"G01 Z[#30-#29] F#9" Code"#19=[#1 + #21]" Code"G01 X#19 Y#23 F#9" GoTo N3 N2: Code" #1=[[#27/2]+[#28/2]]" COde" #8= [1+[-1*[FUP[#26/[1/#22]]]]]" Code"#3=0.0" Code"#10=[360 / #18]" Code"#109=#10" Code"#110=[1 / #22]" Code"#111=[-0.0625 / #22]" Code"#3=#18" Code"G00 X#21 Y#23" Code"#19=[#1 + #21]" Code"G01 X#19 Y#23 F#9" Code"G01 Z[#30-#29] F#9" GoTo N4 N3: Do While Getvar(3) < 360.00000 * Getvar(8) '***** Code"#26=[#26 + [#110 / #109]]" Code"#24=[COS[ #3 ] * #1]" Code"#25=[SIN[ #3 ] * #1]" Code"#24=[#24 + #21]" Code"#25=[#25 + #23]" Code"G01 X#24 Y#25 Z#26 F#9" Code"#3=[#3 + #18]" Code"#1=[#1 + [#111 / #109]]" GoTo N3 Exit Do loop '***** Code"G01 X#21 Y#23 F10" Code"G00 Z1 M09" Code"M30" GoTo N5 N4: Do While Getvar(3) < 360.00000 * Getvar(8) '***** Code"#26=[#26 + [#110 / #109]]" Code"#24=[COS[ #3 ] * #1]" Code"#25=[SIN[ #3 ] * #1]" Code"#24=[#24 + #21]" Code"#25=[#25 + #23]" Code"G01 X#24 Y#25 Z#26 F#9" Code"#3=[#3 + #18]" Code"#1=[#1 + [#111 / #109]]" GoTo N4 Exit Do Loop '***** Code"G00 Z1 M09" Code"G01 X#21 Y#23 F10" Code"M30" GoTo N5 N5: End Sub End