;O9928 /* SQUARE-OUT-CHAMFER */ ; BY Yi-Wan LIN 10/09/1998 N10 #6=ABS(#6); #6=FIX(#6); @91=ABS(@91); @91=FIX(@91); IF(#6>0) GOTO 50; IF (@91<=0) GOTO 9052; #6=@91; //use default feed rate N50 F#6; ;//------------------------------------ #21=ABS(#21); IF(@90<#26) GOTO 9055; //@90 must large then #26 #4=ABS(#4); #8=ABS(#8); IF(#4==0) GOTO 9053; IF(#8==0) GOTO 9054; IF(#4 <= #8) GOTO 70; #4=#8; N70 IF( @81<1 || @81>2) GOTO 9999; // 1..rough 2..finish IF( #20!=#0 ) GOTO 72; #20=@92; // 10/09/1998 ADD 'T' ARGUMENT N72 #20=ABS(#20); // Phi must + REPLACE ALL @92 WITH #20 #3=ABS(#3); // C must + #22=ABS(#22); // V must + #17=ABS(#17); // Q must + #9=ABS(#9 ); // I must + #10=ABS(#10); // J must + IF( #20==0 ) GOTO 9050; IF( #22>#20 ) GOTO 9072; IF( #9 ==0 ) GOTO 9076; IF( #10==0 ) GOTO 9076; #33=0.5*#9-#3+0.5*#32*TAN(22.5); // 1/2 PATH.X IF( #33<=0 ) GOTO 9084; #33=0.5*#10-#3+0.5*#32*TAN(22.5); // 1/2 PATH.Y #11=#8/#4; ;;----CAL -Z feed counts ---- IF( (#11-FIX(#11))==0) GOTO 80; #11=#11+1; #11=FIX(#11); // #11:-z Feed count N80 IF( @81==2 )GOTO 200; // finish machining skip 'W' process IF( #17==0 )GOTO 9073; #23=ABS(#23); //W @93=ABS(@93); //percent of tool Dia. IF( #23>0 ) GOTO 100; #23=#20*@93*0.01; //XY PLANE CUTTING dw(#23) IF( #23==0 ) GOTO 9056; N100 IF( #23<=#20 ) GOTO 110; #23=#20; // Maximum W=#20 to prevent from W>phi N110 #5=#17-#22; //#5:(Q-V) machining length. IF( #5<=0 ) GOTO 9074; @94=ABS(@94); IF(@94<0.5) GOTO 130; #33= #5 /#23; IF( (#33-FIX(#33))==0) GOTO 130; #33=#33+1; #33=FIX(#33); #23=#5/#33; // wanna constant cutting!! N130 ; IF(#23 <= #5 ) GOTO 140; #23=#5; // #23 can't large than work length. N140 #2=#5/#23; // -CAL cut-xy counts- IF( (#2-FIX(#2))==0) GOTO 200; #2=#2+1; #2=FIX(#2); N200 #19=FIX(#19); // ----Spindle RPM SET ----- @95=FIX(@95); IF(#19==#0) GOTO 210; @95=#19; IF (@95==0) GOTO 9051; N210 IF (@95>0) GOTO 220; IF (@95==0) GOTO 9051; M04S-@95; M08; GOTO 221; N220 M03S@95; M08; //-----COMMON VAULE CAL-------------- N221 #29=#24+#9/2; //Center of Workpice.x #30=#25+#10/2; //Center of Workpice.y G68 G90 X#24 Y#25 R#1; // Coord. Rotation. IF(@81==1) GOTO 300; // outside rough IF(@81==2) GOTO 400; // outside finish GOTO 9999; ;//======================================================= ;//-----LOOP for Outter rough machining.--- @81=1-------- N300 #7=#10/2+#17+#20/2+#30; //initial entry point.Y G90G00Z@90; G00X#29Y#7; //approach Entry point G90G00Z#26; #19=1; // for(#19=1;#19<=#2;#19++) loop x-y N310 IF(#19 > #2 ) GOTO 360; IF(#19!=#2) GOTO 320; #32=(#17-#5); // == V ;// #13=#3+#32; //EACH CHAMFER_C #13=#3+0.586*#32; // C+SQRT(2)*TAN(22.5) GOTO 321; N320 #32=#17-(#19*#23); ;// #13=#3+#32; //EACH CHAMFER_C #13=#3+0.586*#32; // C+SQRT(2)*TAN(22.5) N321 ; #7=#10/2+#32+(#20/2)+#30; //EACH ENTRY.Y #14=#9+2*#32; // EACH I #15=#10+2*#32; // EACH J ; N326 #12=1; // for(#12=1;#12<=#11;#12++) Loop Z-cut N330 IF( #12 > #11) GOTO 350; IF(#12!=#11) GOTO 335; #31=#26-#8; GOTO 336; N335 #31=#26-(#12*#4); N336 ; G90G01Z#31; //Cut down G90G01Y#7; //approach IF(#21==1) GOTO 340; G65 P9929 I#14 J#15 C#13 X#29 Y#30 U0 T#20; GOTO 341; N340 ;//---CCW Direction:G03 --------- G65 P9929 I#14 J#15 C#13 X#29 Y#30 U1 T#20; N341 G91G00Y#23; //Retract to before pos. #12=#12+1; GOTO 330; //Eof of Z_cut N350 #19=#19+1; // #19.counter..what x-y path be cutting. GOTO 310; ; // Eof x-y cut LOOP N360 GOTO 9999; ;//====Eof LOOP for outter-finish machining.--- @81=2----- // ============================================================================ N400 IF(#21==1) GOTO 410; #16=#29-#20/2; //G02..soft Entry point.x #18=#30+(#10/2+#20); //G02..soft Entry point.y GOTO 411; N410 #16=#29+#20/2; //G03..soft Entry point.x #18=#30+(#10/2+#20); //G03..soft Entry point.y ; N411 ; #32=#20/2; //..soft_in radius=1/2 phi G90G00Z@90; G90G00X#16Y#18; G90G00Z#26; ;//------Loop of Z_cut------- #12=1; N420 IF(#12 > #11) GOTO 450; IF(#12!=#11) GOTO 430; #31=#26-#8; GOTO 431; N430 #31=#26-(#12*#4); ; N431 G90G01X#16Y#18; //to Entry point G90G01Z#31; IF(#21==1) GOTO 440; G91G03X#32Y-#32R#32; //soft_in G65 P9929 I#9 J#10 C#3 X#29 Y#30 U0 T#20; G91G03X#32Y#32R#32; //soft_out GOTO 441; N440 G91G02X-#32Y-#32R#32; //soft_in G65 P9929 I#9 J#10 C#3 X#29 Y#30 U1 T#20; G91G02X-#32Y#32R#32; //soft_out ; N441 #12=#12+1; GOTO 420; ;//------Eof Z-cut LOOP------- N450 G90G00Z#26; GOTO 9999; // ==================================================================== N9999 G90G00Z@90; G69; M99; ;;---------------------------- N9050 $599=50; N9051 $599=51; N9052 $599=52; N9053 $599=53; N9054 $599=54; N9055 $599=55; N9056 $599=56; N9072 $599=72; N9073 $599=73; N9074 $599=74; N9076 $599=76; N9077 $599=77; N9078 $599=78; N9079 $599=79; N9084 $599=84;