#37=$3; /* Stores G90/G91 modal group */ #17=ABS(#17); #5=#16+1; /* Dwell Time */ IF (#11 == #0) GOTO 1; /* If K is specified or not */ IF (#11 != 0) GOTO 2; N1 #11=1; /* K=0 or K is not specified */ N2 #11=ABS(#11); ;;--------------------------------------------------------- IF (#34 == 1) GOTO 4; // U... DIRECTION OF SHIFT IF (#34 == 2) GOTO 5; IF (#34 == 3) GOTO 6; #35=1; // V=0 #36=#0; GOTO 7; N4 #35=-1; // V=1 #36=#0; GOTO 7; N5 #35=#0; // V=2 #36=1; GOTO 7; N6 #35=#0; // V=3 #36=-1; ;; -------------------------------------------------------- N7 IF (#18 == #0) GOTO 8; #28=#18; N8 IF ($2 == 18) GOTO 20; IF ($2 == 19) GOTO 30; ; /* Calculates the drilling amount */ ; /* #20:Drilling axis data */ ;;---------------------------------------------------------- N10 IF (#26 == #0) GOTO 11; #20=#26; /* If drilling axis(Z) is specified or not */ N11 #33=$32; /* Stores Z original position */ N13 IF (#37 == 91) GOTO 14; #10=#20-#28; #7=#28-#42; #32=1; GOTO 18; N14 IF (#26 != #0) GOTO 17; IF (#18 != #0) GOTO 16; IF (#32 != #0) GOTO 15; #10=#20; #7=#28; #32=#0; GOTO 18; N15 #10=#20-#30; #7=#28-#42; GOTO 18; N16 #10=#20-#33-#28; #7=#28; GOTO 18; N17 #10=#20; #7=#28-#42; N18 #26=#0; /*Reset Z value */ IF ($10 == 98) GOTO 100; #7=#0; GOTO 100; ;;---------------------------------------------------------- N20 IF (#25 == #0) GOTO 21; #20=#25; /* If drilling axis(Y) is specified or not */ N21 #33=$31; /* Stores Y original position */ N23 IF (#37 == 91) GOTO 24; #10=#20-#28; #7=#28-#41; #32=1; GOTO 28; N24 IF (#25 != #0) GOTO 27; IF (#18 != #0) GOTO 26; IF (#32 != #0) GOTO 25; #10=#20; #7=#28; #32=#0; GOTO 28; N25 #10=#20-#30; #7=#28-#41; GOTO 28; N26 #10=#20-#33-#28; #7=#28; GOTO 28; N27 #10=#20; #7=#28-#41; N28 #25=#0; /*Reset Y value */ IF ($10 == 98) GOTO 100; #7=#0; GOTO 100; ;;---------------------------------------------------------- N30 IF (#24 == #0 ) GOTO 31; #20=#24; /* If drilling axis(X) is specified or not */ N31 #33=$30; /* Stores X original position */ N33 IF (#37 == 91) GOTO 34; #10=#20-#28; #7=#28-#40; #32=1; GOTO 38; N34 IF (#24 != #0) GOTO 37; IF (#18 != #0) GOTO 36; IF (#32 != #0) GOTO 35; #10=#20; #7=#28; #32=#0; GOTO 38; N35 #10=#20-#30; #7=#28-#40; GOTO 38; N36 #10=#20-#33-#28; #7=#28; GOTO 38; N37 #10=#20; #7=#28-#40; N38 #24=#0; /*Reset X value */ IF ($10 == 98) GOTO 100; #7=#0; ;;========================================================== N100 #8=0; #12=#35*#17; // the Relative shift-value.x #13=#36*#17; // the Relative shift-value.y IF (#28 != #0) GOTO 110; /* If R is specified or not */ #7=#0; N110 IF (#20 != #0) GOTO 120; /* If drilling axis is specified or not */ #10=#0; N120 IF ($2 == 18) GOTO 300; IF ($2 == 19) GOTO 400; ;;---------------------------------------------------------- /* G17 Plane_XY */; // NOTE OneSpec of G87 that 'R' always lower then 'Z' N200 G0X#24Y#25A#1B#2C#3U#21V#22W#23; // G90,G91 RAPID LOCATE M19; // ORENTED SPINDLE STOP G91G0X#12Y#13; // SHIFT OUT IF ($10 == 99 && #37 == 91) GOTO 203; IF ($10 == 98 && #37 == 91) GOTO 201; G90Z#28; G91F#6; #30=#28; GOTO 220; N201 IF (#18 == #0) GOTO 202; Z#28; #7=#28; G91F#6; #30=#28; GOTO 220; N202 G90Z#28; G91F#6; #30=#28; GOTO 220; N203 IF (#18 == #0) GOTO 204; #31=#33+#28; #31=#31-$32; Z#31; G91F#6; #30=#28; GOTO 220; N204 G90Z#28; G91F#6; #30=#28; GOTO 220; N210 G#37G0X#24Y#25A#1B#2C#3U#21V#22W#23; // G90,G91 RAPID TO X,Y M19; // ORENTED SPINDLE STOP G91G0X#12Y#13; // SHIFT OUT G91Z#7; // RAPID TO BUTTOM N220 X-#12Y-#13; // SHIFT IN M28; M3; G1 Z#10; // G91 G1 BORING UP R->Z G4P#5; // DWELL AT TOP M19; // ORENTED SPINDLE STOP G0 X#12Y#13; // SHIFT OUT Z-#10; // BUG-FIX Z-#7; // RAPID TO INITIAL LEVEL X-#12Y-#13; // SHIFT IN M28; M3; // SPINDLE RUNNING #8=#8+1; IF (#8 < #11) GOTO 210; #18=#0; #1=#0; #2=#0; #3=#0; #21=#0; #22=#0; #23=#0; G#37M99; ;;---------------------------------------------------------- ; /* G18 Plane */; N300 G0X#24Z#26A#1B#2C#3U#21V#22W#23; M19; G0Z#12X#13; IF ($10 == 99 && #37 == 91) GOTO 303; IF ($10 == 98 && #37 == 91) GOTO 301; Y#28; G91F#6; #30=#28; GOTO 320; N301 IF (#18 == #0) GOTO 302; Y#28; #7=#28; G91F#6; #30=#28; GOTO 320; N302 G90Y#28; G91F#6; #30=#28; GOTO 320; N303 IF (#18 == #0) GOTO 304; #31=#33+#28; #31=#31-$31; Y#31; G91F#6; #30=#28; GOTO 320; N304 G90Y#28; G91F#6; #30=#28; GOTO 320; N310 G#37G0X#24Z#26A#1B#2C#3U#21V#22W#23; M19; G0Z#12X#13; G91Y#7; N320 Z-#12X-#13; M28; M3; G1Y#10; G4P#5; M19; G0Z#12X#13; Y-#10; Y-#7; Z-#12X-#13; M28; M3; #8=#8+1; IF (#8 < #11) GOTO 310; #18=#0; #1=#0; #2=#0; #3=#0; #21=#0; #22=#0; #23=#0; G#37M99; ;;---------------------------------------------------------- ; /* G19 Plane */; N400 G0Y#25Z#26A#1B#2C#3U#21V#22W#23; M19; G0Y#12Z#13; IF ($10 == 99 && #37 == 91) GOTO 403; IF ($10 == 98 && #37 == 91) GOTO 401; X#28; G91F#6; #30=#28; GOTO 420; N401 IF (#18 == #0) GOTO 402; X#28; #7=#28; G91F#6; #30=#28; GOTO 420; N402 G90X#28; G91F#6; #30=#28; GOTO 420; N403 IF (#18 == #0) GOTO 404; #31=#33+#28; #31=#31-$30; X#31; G91F#6; #30=#28; GOTO 420; N404 G90X#28; G91F#6; #30=#28; GOTO 420; N410 G#37G0Y#25Z#26A#1B#2C#3U#21V#22W#23; M19; G0Y#12Z#13; G91X#7; N420 Y-#12Z-#13; M28; M3; G1X#10; G4P#5; M19; G0Y#12Z#13; X-#10; X-#7; Y-#12Z-#13; M28; M3; #8=#8+1; IF (#8 < #11) GOTO 410; #18=#0; #1=#0; #2=#0; #3=#0; #21=#0; #22=#0; #23=#0; G#37M99; ;/* MCANG87 X Y Z R Q P K U F...BACK BORING CYCLE */ ;/* Yi-Wan LIN 07/27/1998 16:11:41 */ ;/* This MACOR is designed for MILL-G87(Boring cycle/Back boring cycle) */; ;/* Version 2.0 Modifier: ChingFu & Josan 2003/8/27 11:18¤W¤È*/