;//O9903 ARC POSITION(M,B,A,E,C,X,Y,Z,R,K,Q,V,T,F,S ) IF (#13==#0) GOTO 10; @81=#13; N10 #27=$1; //backup modal command G0 G1 #28=$3; //G90 G91 #29=$7; //G40 G41 G42 ;#30=$13; //G96 G97 IF( @92 <= 0 ) GOTO 9050; // CAN'T ACCEPT PHI <= 0 IF( @90 <= #18 ) GOTO 9055; // CAN'T ACCEPT ESCAPE.Z LOWER THEN R IF( #3 <= 1 ) GOTO 9061; // CAN'T ACCEPT NO.HOLES <=1 IF( #26 >= #18 ) GOTO 9062; // CAN'T ACCEPT Z >= R #30=(#5-#1)/(#3-1); //EACH DIVIDED ANGLE #33=SQRT( (#2*#2)-(@92*@92/4) ); IF( #30 <= 2*ATAN(@92/2,#33) ) GOTO 9060; // HOLES TOO DENSITY IF(#6!=#0) GOTO 70; #6=@91; //use default feed rate N70 IF(#19==#0) GOTO 80; @95=#19; N80 IF (@95>0) GOTO 90; IF (@81==5) GOTO 100; M04S-@95; GOTO 100; N90 IF (@81==5) GOTO 100; //Tapping M03S@95; N100 #3=FIX(#3); #4=(#5-#1)/(#3-1); G90G00Z@90M08; G00X#24Y#25; N1000 IF(#3<0.5) GOTO 1010; #31=#24+#2*COS(#7+#1); // dX #32=#25+#2*SIN(#7+#1); // dY G90G00X#31Y#32; G90G65P9908Z#26R#18E#20U#22Q#17K#11F#6S@95; //G73,G83,G85,G89 G90G00Z@90; #3=#3-1; #7=#7+#4; GOTO 1000; ;N1010 G#27G#28G#29G#30; //restore original modes N1010 G#27G#28G#29; //restore original modes M99; ;//---------------------------------------------------------------------------- N9050 $599=50; N9051 $599=51; N9052 $599=52; N9053 $599=53; N9054 $599=54; N9055 $599=55; N9056 $599=56; N9060 $599=60; N9061 $599=61; N9062 $599=62; ;/**********************************************************************/ ;/* Orginal: 1997-02-12 By Bing Shi Lee */ ;/* Modifier: 1998-06-25 by YI-WAN LIN */ ;/* */ ;/* X(#24), Y(#25) : the coordnates of reference point of plane */ ;/* R(#18) : the POS.Z where drilling is started */ ;/* Z(#26) : the POS.Z where drilling is ended */ ;/* A(#1) : start angle */ ;/* B(#2) : Radius of arc */ ;/* C(#3) : hole number */ ;/* E(#5) : end angle */ ;/**********************************************************************/