O9961; /*OILES DRY-BEARING DRILLING*/ ;;======ARGUMENT CHECK AND LIMITATION===== #20=ABS(#20); // TYPE MUST BE 1,2,3,4 #20=FIX(#20); #3=ABS(#3); // NO OF COLUMNS #3=FIX(#3); #4=ABS(#4); // EQUAL-DIVIDE NO PER CIRCLE #4=FIX(#4); #9=ABS(#9); // GAP_LENGTH #10=ABS(#10); // MIDDLE_LENGTH #13=ABS(#13); // MARGIN_LENGTH ;;=======INITIAL PROCEDURE============= G91 G28 G0 Z0; G90 G0 Y0 C0 X0; M03 S#19 F#6; M8; #1=(360/#4); // EACH_DIV_ANGLE IF (#20==1) GOTO 999; IF (#20==2) GOTO 1999; IF (#20==3) GOTO 2999; IF (#20==4) GOTO 3999; GOTO 9990; ;;======TYPE 1 BEGIN HERE====================================================== N999 #27=0; // SHIFT[0] #28=2; // SHIFT[1] #29=4; // SHIFT[2] #30=1; // SHIFT[3] #31=3; // SHIFT[4] #14=0; N1000 IF( #14 >= #4 ) GOTO 1150; ;;===================================== #7=0; N1010 IF ( #7 >= #3 ) GOTO 1050; IF( mod(#14,5) != #(mod(#7,5)+27) ) GOTO 1025; #2=#1*#14; G65 P9965 C#3 A#7 M#13 I#9 J#10; G65 P9960 E#5 R#18 X@1 C#2 Z#26; N1025 ;; #7=#7+1; GOTO 1010; N1050 ;; ;;------REVERSE CYCLE------------------ IF( (#14+1) >= #4 ) GOTO 1150; #14=#14+1; #7=#3-1; N1075 IF ( #7 < 0 ) GOTO 1125; IF( mod(#14,5) != #(mod(#7,5)+27) ) GOTO 1100; #2=#1*#14; G65 P9965 C#3 A#7 M#13 I#9 J#10; G65 P9960 E#5 R#18 X@1 C#2 Z#26; N1100 ;; #7=#7-1; GOTO 1075; N1125 ;; ;;===================================== #14=#14+1; GOTO 1000; N1150 ;; GOTO 9990; ;;##### TYPE 2 BEGIN HERE ##################################################### N1999 #32=3; // xslotno=3 #33=(#4/#32)+1; #14=0; N2000 IF (#14 >=#32 )GOTO 2025; #7=1; N2050 IF ( #7>= (#33-1) ) GOTO 2075; #15=0; N2100 IF( #15 >= #3 ) GOTO 2125; IF( MOD((#15+#7),2) != 1) GOTO 2175; #2=#14*(360/#32)+#7*(360/#4); G65 P9965 C#3 A#15 M#13 I#9 J#10; G65 P9960 E#5 R#18 X@1 C#2 Z#26; N2175 ;; #15=#15+1; GOTO 2100; N2125 ;; ;; ---- REVERSE CYCLE --- IF( (#7+1) >= (#33-1) ) GOTO 2075; #7=#7+1; #15=#3-1; N2150 IF (#15 < 0) GOTO 2275; IF( MOD((#15+#7),2) != 1) GOTO 2200; #2=#14*(360/#32)+#7*(360/#4); G65 P9965 C#3 A#15 M#13 I#9 J#10; G65 P9960 E#5 R#18 X@1 C#2 Z#26; N2200 ;; #15=#15-1; GOTO 2150; N2275 ;; #7=#7+1; GOTO 2050; N2075 ;; #14=#14+1; GOTO 2000; N2025 ;; GOTO 9990; ;;##### TYPE 3 BEGIN HERE ##################################################### N2999 #14=0; N3000 IF ( #14 >= #4 ) GOTO 3025; #7=0; N3050 IF ( #7 >= #3 ) GOTO 3075; IF( MOD( (#14+#7) ,2 ) != 0 ) GOTO 3100; #2=#1*#14; G65 P9965 C#3 A#7 M#13 I#9 J#10; G65 P9960 E#5 R#18 X@1 C#2 Z#26; N3100 ;; #7=#7+1; GOTO 3050; N3075 ;; ;; ----REVERSE CYCLE---- IF ( (#14+1) >= #4 ) GOTO 3025; #14=#14+1; #7=#3-1; N3125 IF( #7 < 0 ) GOTO 3150; IF( MOD( (#14+#7) ,2 ) != 0 ) GOTO 3175; #2=#1*#14; G65 P9965 C#3 A#7 M#13 I#9 J#10; G65 P9960 E#5 R#18 X@1 C#2 Z#26; N3175 ;; #7=#7-1; GOTO 3125; N3150 ;; #14=#14+1; GOTO 3000; N3025 ;; GOTO 9990; ;;##### TYPE 4 BEGIN HERE ##################################################### N3999 #14=0; N4000 IF ( #14 >= (#4-1) ) GOTO 4025; #7=0; N4050 IF ( #7 >= #3 ) GOTO 4075; IF( MOD( (#14+#7) ,2 ) != 0 ) GOTO 4100; #2=#1*#14; G65 P9965 C#3 A#7 M#13 I#9 J#10; G65 P9960 E#5 R#18 X@1 C#2 Z#26; N4100 ;; #7=#7+1; GOTO 4050; N4075 ;; ;; ----REVERSE CYCLE---- IF ( (#14+1) >= (#4-1) ) GOTO 4025; #14=#14+1; #7=#3-1; N4125 IF( #7 < 0 ) GOTO 4150; IF( MOD( (#14+#7) ,2 ) != 0 ) GOTO 4175; #2=#1*#14; G65 P9965 C#3 A#7 M#13 I#9 J#10; G65 P9960 E#5 R#18 X@1 C#2 Z#26; N4175 ;; #7=#7-1; GOTO 4125; N4150 ;; #14=#14+1; GOTO 4000; N4025 ;; GOTO 9990; ;;======ENDING PROCEDURE================ N9990 M9; G91 G28 G0 Z0 M05; G91 G28 Y0; G90 G0 C0; M99; ;;O9961; /* OILES DRY-BEARING DRILLING*/ ;;AUTHOR:Yi-Wan LIN 11/11/1998 15:40:29 ;;FUNCTION SPEC. ;; G65 P9961 C D E F I J M R S T Z; ;; C(#3 ):NO OF COLUMNS ;; D(#4 ):DIVIDE NO ;; E(#5 ):ESCAPE POSITION.Z ;; F(#6 ):FEEDRATE ;; I(#9 ):GAP_LENGTH ;; J(#10):MIDDLE_LENGTH ;; M(#13):MARGIN_LENGTH ;; R(#18):DRILL BEGIN.Z ;; S(#19):SPINDLE RPM ;; T(#20):TYPE(1~4) OF DRILLING PATTERN ;; Z(#26):DRILL END.Z ;;RELATIVE SUB FOR THIS MAIN-PROGRAM ;; O9960 /* AN SUB THAT PERFORM C-AXIS DRILL */ ;; O9965 /* CALCULATE SUM OF SEQMENT */