% Cribbage. C 2009 Jim Haliburton and Kevin Vickers % You use guage labelled Cribbage to set drill depth. % Click on screen to reference all to home. % Install fixture on table % Move X axis and Y axis to center electric drill over first workpiece. Do NOT move Z axis. % Put Workpieces in fixture labelled Cribbage % Stand Cribbage guage on workpiece. % Drill bit is Brad point 1/8 inch diameter. % Drill tip rests on top of standing drill guage. % Tighten chuck key. % Recheck drill height. % Reference all home. % Remark Feed 40 ipm F40 % Remark Inch measurements G20 % ABSOLUTE DISTANCE MODE G90 % G0 RAPID POSITIONING F40 G20 G90 G0 X0 Y0 Z0 G28.1 G10 L2 P10 X0 Y0 G59 P10 #24=0 ( SETS PARAMETER FOR X AXIS TO ZERO ) #25=0 ( SETS PARAMETER FOR Y AXIS TO ZERO ) #26=0 ( SETS PARAMETER FOR Z AXIS TO ZERO ) #40=0.0000 #41=0.0000 #42=0.0000 #43=0.0000 #44=0.0000 #45=0.0000 #46=0.0000 #47=0.0000 #30=0.268071 %%%%% #30=[[9.750-[6*#31]]/28] ( DISTANCE BETWEEN HOLES IN A TRACK WAS 2812 THEN 2801 NOW 2790 IS GAP BETWEEN TRACK HOLES) % NOTE: DISTANCE BETWEEN HOLES IS AS FOLLOWS: TRACK LENGTH 9.750 MINUS 6 TIMES SPACING BETWEEN GROUPS ALL DIVIDED BY % THE NUMBER OF SPACES BETWEEN HOLES WHICH IS 28 GAPS. 4 GAPS PER GROUP 7 GROUPS #31=0.3740 ( GAP BETWEEN GROUPS OF HOLES WAS 3750 NOW 3740 ) #32=0.3125 ( GAP BETWEEN TRACKS .3125 AS OF 19 aUG 09 ) #33=0.0000 #34=0.0000 #35=4.4375 ( BOARD WIDTH 4-7/16THS 19 AUG 2009 CHANGE AS REQD IF BLANKS ARE DIFFERENT ) #36=[#35/2] ( MAIN TRACK CENTRE LINE ) #37=0.6875 ( DISTANCE, ROW EDGE TO BOARD EDGE NOT THE C/L OF TRACKS FROM EDGE. SEE #39 ) #38=1.5625 ( Y DISTANCE FROM BOARD END TO START OF TRACK HOLES. IGNORE PARKING HOLES ) #39=0.0000 ( X DISTANCE FROM EDGE OF BOARD TO C/L OF TRACKS NOT USED) % ARC INFORMATION IS DEFINED HERE STARTING HERE #40=[#35/2] ( X VALUE FOR CENTER OF LARGE ARC IS BOARD WIDTH DIVIDED BY 2 ) #41=[9.750+#38] ( Y VALUE FOR CENTER OF LARGE ARC IS LENGTH OF PEGGING PLUS START OFFSET OF #38 ) #43=[[#35/2]-#37] ( LARGE RADIUS FOR LARGE ARC IS C/L MINUS DISTANCE TO EDGE OF BOARD ) #42=[#43-#30] ( SMALL RADIUS FOR LARGE ARC ) #44=[[#35/2]+[[#42+[#32/2]]/2]] ( X VALUE FOR CNTR OF SMALL ARC IS 1/2 WAY BETWEEN C/L AND C/L OF EDGE TRACKS) #45=[#38-0.0625] ( Y VALUE FOR CENTER OF SMALL ARC IS SAME AS END OF BOARD TO FIRST HOLE OR #38 MINUS 1/16TH) #46=0.5735 ( SMALL RADIUS FOR SMALL ARC ) #47=[#46+#30] ( LARGE RADIUS FOR SMALL ARC ) #48=16 ( ANGLE TO CHANGE IN LARGE ARC ) #49=30 ( ANGLE TO CHANGE IN SMALL ARC ) % DRILL INFORMATION IS DEFINED HERE #50=-4.6 ( Z DRILL DEPTH ) #51=[#50+0.600] ( RETRACT OR CLEARANCE FOR DRILLING ) #52=12 ( FEED RATE FOR DRILLING HOLES ) % ANGLES OF ROTATION ARE DEFINED HERE #60=[180.00-#48] ( STARTING ANGLE FOR LARGE ARCS JUST ABOVE 9 OCLOCK POSITION LEAVE ?? DEG GAP FROM 180 ) #61=[360.00-#49] ( STARTING ANGLE FOR SMALL ARCS JUST BELOW 3 OCLOCK POSITION 30 DEG PER ) %%%%%%%%%%%%%% MAIN PROGRAM STARTS HERE %%%%%%%%%%%%%%%%%%% G28.1 ( GO TO LIMIT SWITCHES AND MAKE SURE THAT ALL AXES ARE SET TO 0 ) G10 L2 P10 X0 Y0 ( MAKES HOME = 0 POSITION) G59 P10 ( USE THE OFFSET OF 0 ON THE X AXIS AND START ) M98 P100 ( GO TO MAIN PART BUILDER AND DO THE FIRST OF 3 IN THE FIXTURE ) % G30 ( GO TO 0,0 REMMED OUT FOR 2ND AND 3RD BOARD ) % M30 ( THIS LINE IS WHERE THE PROGRAM STOPS WITH ONLY 1 BOARD ) % SECOND PART IN FIXTURE G10 L2 P11 X6 Y0 ( MOVES X 0 POSITION TO 6 INCHES ALONG X-AXIS FOR 2ND PART STARTING POINT. CALLED BY G59 P11 ) G59 P11 ( USE THE OFFSET OF 6 ON THE X AXIS AND START AGAIN ) M98 P100 ( GO TO MAIN PART BUILDER AND DO THE FIRST OF 3 IN THE FIXTURE ) % THIRD PART IN FIXTURE G10 L2 P12 X12 Y0 ( MOVES X 0 POSITION TO 12 INCHES ALONG X -AXIS FOR 3RD PART STARTING POINT CALLED BY G59 P12 ) G59 P12 ( USE THE OFFSET OF 6 ON THE X AXIS AND START AGAIN ) M98 P100 ( GO TO MAIN PART BUILDER AND DO THE FIRST OF 3 IN THE FIXTURE ) % NOTE THE PARAMETERS #24, #25, AND #26 ARE THE VALUES OF X, Y, AND Z. % THE PARAMETER #30 IS THE INCREMENT VALUE FOR THE DISTANCE BETWEEN HOLES % THE PARAMETER #31 IS THE SPACING BETWEEN GROUPS OF HOLES % LOGIC IS TO GOTO G59 P10 MAKE 4 START HOLES. SET X FOR FIRST HOLE OF 10 GROUP. GO TO SUBROUTINE AND DRILL 10 HOLES % RETURN AND INCREMENT X BY SPACING BETWEEN GROUPS. USE L FOR REPEAT 6 TIMES. % UNTIL FIRST 35 HOLE PAIRS ARE DRILLED. % STEP THROUGH FIRST ARC BY SETTING RADIUS AND START POINT AND GOSUB TO DRILL HOLES ON ARC. RETURN % SET X START FOR SCORE 46 AND ONWARD. GOSUB TO REVERSE GROUP DRILL. DECREMENT X PER GROUP. CHECK X VALUE FOR MINIMUM % REPEAT UNTIL SCORE 80 REACHED % SET NEW VALUES FOR SMALLER ARC AND GOSUB TO DRILL ARC. % SET NEW START FOR X AND Y OF SCORE 86 TO END. USE SAME GOSUB AND LOGIC AS FOR FIRST TRACK OF HOLES. % DRILL FINISH HOLE % SET G59 P11 AND START BOARD AGAIN. % SET G59 P12 AND START 3RD BOARD % ON COMPLETION SET G59 P10. % HOME. END. G92.1 G59 P10 G28.1 G30 M30 %%%%%% PROGRAM SHOULD STOP HERE. EVERYTHING BELOW SHOULD BE SUBROUTINES %%%%%%% % SUBROUTINE MAIN BODY STARTS NEXT O100 % WE DO THE 4 START OR PARKING HOLES FIRST #24=[#37] #25=0.8125 G81 X#24 Y#25 Z#50 R#51 F#52 #24=[#24+#32] X#24 #25=[#25+#30] Y#25 #24=[#24-#32] X#24 % FINISH OF PARKING HOLES. G80 ( CANCEL MODAL MODE ) F40 G20 G90 G0 % SET START OF FIRST GROUP OF HOLES THE X VALUE STARTS AT #25=#38 #24=#37 M98 P110 L7 ( THIS LINE CALLS THE DRILL 10 HOLE SUBROUTINE AND REPEATS IT 7 TIMES TO DO THE TWO TRACKS OF 35 HOLES ) % G30 ( TO TEST THE LOOP IN THE 10 HOLE PATTERN AND STOP HERE ) % M30 ( TO TEST THE FIRST GROUP OF 10 HOLE 6 TIMES OVER ) % THE LARGE ARC PATTERN HERE. THIS DRILLS TWO CIRCULAR ROWS OF HOLES ONE INNER, ONE OUTER AT SAME ANGLES G0 X#40 Y#41 (SETS THE PIVOT POINT ) G16 G81 x#42 y#60 Z#50 R#51 F#52 X#43 Y#60 #60=[#60-#48] ( WE ARE DECREMENTING THE ANGLE BY #48 DEGREES AFTER EVERY 2 HOLES ) X#42 Y#60 X#43 Y#60 #60=[#60-#48] X#42 Y#60 X#43 Y#60 #60=[#60-#48] X#42 Y#60 X#43 Y#60 #60=[#60-#48] X#42 Y#60 X#43 Y#60 #60=[#60-[2*[#60-90]]] ( WE SKIP THE 90 DEG BY 2* THE DIFF BETWEEN 90 AND ANGLE TO MOST RECENT HOLE ) X#42 Y#60 X#43 Y#60 #60=[#60-#48] X#42 Y#60 X#43 Y#60 #60=[#60-#48] X#42 Y#60 X#43 Y#60 #60=[#60-#48] X#42 Y#60 X#43 Y#60 #60=[#60-#48] X#42 Y#60 X#43 Y#60 #60=[180.00-#48] ( DRILL LAST HOLES AND RESET START TO 180 DEG - #48 FOR NEXT BOARD) G15 G80 % THIS NEXT GROUP OF LINES STARTS THE REVERSE RUN FROM SCORE 46 TO 80 % THE ONLY DIFFERENCE IS THE Y IS DECREMENTED BETWEEN GROUPS AND HOLES G80 #24=[[#35/2]+#42] #25=#41 ( SET SCORE 46 INSIDE TRACK POSITION Y IS PEG LEN + END GAP X IS C/L PLUS SMALL RADIUS ) M98 P120 L7 ( GO DRILL NEXT GROUP OF HOLES SCORE 46-80 ) % THE SMALL ARC DRILL PATTERN. G0 X#44 Y#45 G16 G81 X#46 Y#61 Z#50 R#51 X#47 Y#61 #61=[#61-#49] ( DECREMENT BY 30 DEG EACH TIME ) X#46 Y#61 X#47 Y#61 #61=[#61-#49] X#46 Y#61 X#47 Y#61 #61=[#61-#49] X#46 y#61 X#47 Y#61 #61=[#61-#49] X#46 y#61 X#47 Y#61 #61=[360.0000-#49] ( DRILL LAST HOLES AND RESET START TO DESIRED START ANGLE FOR NEXT BOARD ) G15 G80 % SET START OF LAST TRACK OF HOLES SCORE FROM 86 TO 120 #25=#38 #24=[[#35/2]-[#30/2]] ( BASED ON CENTER LINE MINUS 1/2 OF HOLE SPACING SO IF HOLE SPACING CHANGES SO DOES THIS ) M98 P110 L7 % THE FINISH HOLE POSITION G81 X[#35/2] Y[#41+0.625] Z#50 R#51 % END OF PART M99 ( RETURN FOR NEXT PART ) G30 % Go Home % O110 ( DRILL GROUP OF 10 HOLES MOVING ACROSS +Y AXIS ) G81 X#24 Y#25 Z#50 R#51 F#52 #24=[#24+#32] ( AND INCREMENT X AS LAST STEP ) X#24 #25=[#25+#30] ( DRILL HOLE 2 INC Y ) Y#25 #24=[#24-#32] ( DRILL HOLE 3 DEC X ) X#24 #25=[#25+#30] ( DRILL HOLE 4 INC Y ) Y#25 #24=[#24+#32] ( DRILL HOLE 5 INC X ) X#24 #25=[#25+#30] ( DRILL HOLE 6 INC Y ) Y#25 #24=[#24-#32] ( DRILL HOLE 7 DEC X ) X#24 #25=[#25+#30] ( DRILL HOLE 8 INC Y ) Y#25 #24=[#24+#32] ( HOLE 9 AND INC X TO LAST HOLE ) X#24 #24=[#24-#32] ( HOLE 10 AND DEC X TO LEFT HAND TRACK VALUE FOR RETURN ) #25=[#25+#31] G80 M99 O120 ( DRILL GROUP OF 10 HOLES MOVING ACROSS -Y AXIS ) G81 X#24 Y#25 Z#50 R#51 F#52 #24=[#24+#32] ( DRILL HOLE 1 AND INC X ) X#24 #25=[#25-#30] ( DRILL HOLE 2 AND DEC Y ) Y#25 #24=[#24-#32] ( DRILL HOLE 3 AND DEC X ) X#24 #25=[#25-#30] ( DRILL HOLE 4 AND DEC Y ) Y#25 #24=[#24+#32] ( DRILL HOLE 5 AND INC X ) X#24 #25=[#25-#30] ( DRILL HOLE 6 AND DEC Y ) Y#25 #24=[#24-#32] ( DRILL HOLE 7 AND DEC X ) X#24 #25=[#25-#30] ( DRILL HOLE 8 AND DEC Y ) Y#25 #24=[#24+#32] ( DRILL HOLE 9 AND INC X ) X#24 #24=[#24-#32] ( DRILL HOLE 10 AND DEC X FOR NEXT 10 PATTERN ) #25=[#25-#31] ( DEC Y FOR NEXT GROUP OF HOLES ) G80 M99 % END OF FILE % STUFF BELOW HERE IS WHAT HAS BEEN REMMED OUT AND PULLED OUT OF THEMAIN LINE % G30 ( GO TO 0,0 REMMED OUT FOR 2ND AND 3RD BOARD ) % M30 ( THIS LINE IS WHERE THE PROGRAM STOPS WITH ONLY 1 BOARD ) %G0 X6 Y0 ( GOT TO THE X = 6 AND Y = 0 FOR 2ND PART ) %G92 X6 ( SET WORK OFFSET TO CURRENT X = 6. FUNCTIONALLY ZEROS SYSTEM WITH 6" OFFSET ) %M98 P100 ( GOT TO SUBROUTINE TO MAKE PART ) %G0 X12 Y0 ( GOT TO THE X = 6 AND Y = 0 FOR 2ND PART ) %G92 X12 ( SET WORK OFFSET TO CURRENT X = 6. FUNCTIONALLY ZEROS SYSTEM WITH 6" OFFSET ) %M98 P100 ( GOT TO SUBROUTINE TO MAKE PART ) %G0 X6 Y0 ( GOT TO THE X = 6 AND Y = 0 FOR 2ND PART ) %G92 X6 ( SET WORK OFFSET TO CURRENT X = 6. FUNCTIONALLY ZEROS SYSTEM WITH 6" OFFSET ) %M98 P100 ( GOT TO SUBROUTINE TO MAKE PART ) %G0 X12 Y0 ( GOT TO THE X = 6 AND Y = 0 FOR 2ND PART ) %G92 X12 ( SET WORK OFFSET TO CURRENT X = 6. FUNCTIONALLY ZEROS SYSTEM WITH 6" OFFSET ) %M98 P100 ( GOT TO SUBROUTINE TO MAKE PART )