// ---------------------------------------- // // The following SmartCAM code generator has been // created to generate NC code for the respective // machine and control combinations listed below. // // Due to differences in programming styles, // controller versions, and optional equipment, // SmartCAMcnc DOES NOT and CANNOT guarantee // that the NC code generated is correct for any // specific machine. Some modification to the code // generator to match your setup and output // requirements is likely necessary. // // Modifications to code generators do not TYPICALLY // require a significant amount of time. SmartCAM // customers with active SMA contracts are entitled // to support for their code generators from the // SmartCAMcnc Support Group. To contact them for // support, please send an email to: // Support@SmartCAMcnc.com. If you would like // information on purchasing SMA for your SmartCAM // products, please contact: Sales@SmartCAMcnc.com // // DISCLAIMER: It is the responsibility of the end // user to confirm and verify that the NC code // created by any code generator is accurate and // will not cause a machine malfunction which // could result in stock, tooling, machine, and/or // personal injury. // // SmartCAMcnc assumes no responsibility or // liability for any damage caused or alleged to // have been caused by the use of any of the code // generators it provides. // ---------------------------------------- // MACHINE:FOREST_LINE_5_AXIS_GANTRY // CONTROL:FANUC_11M // V3.0 [XYZ]FO is equal to [XYZ]SET of V2.0 // V3.0 NEXTPT is not required in @tpindx // V3.0 wkschg is equal to tindx of V2.0 @START // #CALL(VARIABLES) #CALL(SETDEFAULTS) #CALL(TRANSFORM) #IF(#U5=1)<#UPDATE(#U4,#U8,#U9)> % #S1 (P/N_#S2) #ONBLK #PLANE #DCOMP G49 #FXD #ABSI #S3 #OFFBLK #ONBLK #IF(#U5=1)< X#V7 Y#V8 M70#EVAL(#V4=#V9)> #EVAL(#S4=X#V7 Y#V8) #IF(#U5=1)<#NEXTPT> #IF(#U5=1)<#CALL(TRANSFORM)> #IF(#U5=0)< M98 P6000 M06 T#TOOL #EVAL(#U8=#INDXA*10)#EVAL(#U9=#INDXC*10) #IF(#U8=0)<#UPDATE(#U8)> #IF(#U8<>0)<#RESET(#U4,#U8)> #IF(#U9<>2700,#AND#U5=0)<#RESET(#U4,#U9)> (#TDESC) (#TLCMT) #IF(#U8<>0,#AND#U9<>0,#OR#U5=0)< G53 Z-1.0 (ROTATE TO #WKPLN)> < #1133=#U8 M84> < #1133=#U9 M85> #IF(#XFO=0,#AND#YFO=0,#AND#KNO=1,#AND#INDXC=0)<#UPDATE(#U4)> < #576=#U4 M52>> #CALL(GETHEADPOS) #IF(#U7=17)< G43#IF(#U5=1)< Z#V4>#ELSE< Z#V9> H#LOFF M#U3 S#SPEED #SPNDL #MOV X#V7 Y#V8> #IF(#U7>17)< #MOV X#V7 Y#V8 G43#IF(#U5=1)< Z#V4>#ELSE< Z#V9> H#LOFF M#U3 S#SPEED #SPNDL> #EVAL(#C1=1) #IF(#PLANE=0,#AND#U7=17)<#UPDATE(#U7)> @TOOLCHG #CALL(SETDEFAULTS) #CALL(TRANSFORM) #UPDATE(#U4) #EVAL(#C1=0) #IF(#U7<>17)<#EVAL(#U7=17)> < #MOV>< #FXD>< Z#V9>< #C1> #IF(#U5=0)<#OFFBLK> #SPOFF< G#U7> #IF(#U5=1)< #S4#OFFBLK> #IF(#U5=0)<#ONBLK M98 P6000 M06 T#TOOL #EVAL(#U8=#INDXA*10)#EVAL(#U9=#INDXC*10) #IF(#U8=0)<#UPDATE(#U8)> #IF(#U8<>0)<#RESET(#U4,#U8)> #IF(#U9<>2700)<#RESET(#U4,#U9)>> #IF(#U5=1)<#ONBLK M70> (#TDESC) (#TLCMT) #IF(#U5=0)<< G53 Z-1.0 (ROTATE TO #WKPLN)> < #1133=#U8 M84> < #1133=#U9 M85> #IF(#XFO=0,#AND#YFO=0,#AND#KNO=1,#AND#INDXC=0,#OR#C0=1)<#UPDATE(#U4)> #IF(#C0=1)<#RESET(#U4)> < #576=#U4 M52>> #CALL(GETHEADPOS) #IF(#U7=17)< G43#IF(#U5=1)< Z#V4>#ELSE< Z#V9> H#LOFF M#U3 S#SPEED #SPNDL #MOV X#V7 Y#V8> #IF(#U7>17)< #MOV X#V7 Y#V8 G43#IF(#U5=1)< Z#V4>#ELSE< Z#V9> H#LOFF M#U3 S#SPEED #SPNDL> #EVAL(#C1=1) #EVAL(#C0=0) #IF(#U0>0)<#RESET(#SPEED,#U3)> #RESET(#V1,#V2,#V3) @END #CALL(TRANSFORM) #EVAL(#C1=0) #IF(#U7<>17)<#EVAL(#U7=17)> < #FXD>< #MOV>< Z#V9>< #C1> #SPOFF< G#U7> #OFFBLKM30 % @TPINDX #EVAL(#U8=#INDXA*10)#EVAL(#U9=#INDXC*10) #IF(#WKSCHG=1,#AND#U5=0)<#EXIT>< dont need this after tlchg > #EVAL(#C1=0) #FXD #C1 #MOV #SPOFF < G53 Z-1.0 (ROTATE TO #WKPLN)> < #1133=#U8 M84#RESET(#U4)> < #1133=#U9 M85#RESET(#U4)> < #576=#U4#EVAL(#C0=1) M52> #IF(#WKSCHG=0)< M#U3 S#SPEED #SPNDL> #EVAL(#C1=1) #CALL(GETHEADPOS) #UPDATE(#FXD) #RESET(#MOV,#V7,#V8,#V9,#V2,#V3,#FEED) #EVAL(#C1=1) #EVAL(#U2=1) @STPROF #CALL(TRANSFORM) #EVAL(#C4=#DCOMP) #IF(#U7=17)<< #MOV>< #C4 D#DOFF>< X#V7>< Y#V8>< Z#V9>> #IF(#U7>17)<#CALL(RECOMP)< #MOV>< #C4 D#DOFF>< X#V7>< Y#V8> < Z#V9>>#EVAL(#U2=0) @ENDPROF #CALL(TRANSFORM) #EVAL(#C4=0)< #C4> #IF(#U7=17)<< #MOV>< Z#V9>> #IF(#U7>17)<< #MOV>< X#V7>< Y#V8>> @RAP #CALL(TRANSFORM) #IF(#U7=17)<< #MOV>< X#V7>< Y#V8>< Z#V9< #C1>>> #IF(#U7>17,#AND#U7<20)<< #MOV>< X#V7>< Y#V8> < Z#V9< #C1>>> #IF(#U7=20,#AND#U2=0)<< #MOV>< X#V7>< Y#V8>< Z#V9< #C1>>> #IF(#U7=20,#AND#U2=1)<< #MOV>< X#V7>< Y#V8> < Z#V9< #C1>>> #EVAL(#U2=0) @LINE #CALL(TRANSFORM) #EVAL(#C4=#DCOMP) #IF(#U7=18,#OR#U7=19)<#CALL(RECOMP)> < G#U7>#IF(#C4>0)<< #C4#EXC D#DOFF>>#ELSE<< #C4>>#EXLN < #MOV>< X#V7>< Y#V8>< Z#V9>< F#FEED> @ARC #CALL(TRANSFORM) #CALL(ORTHOARC) #EVAL(#C4=#DCOMP) #IF(#U7=18,#OR#U7=19)<#CALL(RECOMP)> < G#U7>< #PLANE>< #MOV>< X#V7>< Y#V8> #S1#XCTR #S2#YCTR< F#FEED> @XZARC #CALL(TRANSFORM) < #PLANE>< #MOV>< X#V7>< Z#V9> I#XCTR K#ZCTR< F#FEED> @YZARC #CALL(TRANSFORM) < #PLANE>< #MOV>< Y#V8>< Z#V9> J#YCTR K#ZCTR< F#FEED> @HELIX #CALL(TRANSFORM) #CALL(ORTHOHELIX) #EVAL(#C4=#DCOMP) #IF(#U7=18,#OR#U7=19)<#CALL(RECOMP)> < G#U7>< #PLANE>< #MOV>< X#V7>< Y#V8> Z#V9 #S1#XCTR #S2#YCTR< F#FEED> @XZHELIX #CALL(TRANSFORM) < #PLANE> #MOV< X#V7> Y#V8< Z#V9> I#XCTR K#ZCTR< F#FEED> @YZHELIX #CALL(TRANSFORM) < #PLANE> #MOV X#V7< Y#V8>< Z#V9> J#YCTR K#ZCTR< F#FEED> @ZCLRMV #CALL(TRANSFORM) #IF(#U7=17,#AND#U2=1)<< #FXD>< #MOV>< X#V7>< Y#V8> < Z#V9>#RESET(#V2,#V3)> #IF(#U7=17)<<< #FXD>< #MOV> Z#V9>#RESET(#V2,#V3)> #IF(#U7>17,#AND#U7<20)<< #FXD>< #MOV>< X#V7>< Y#V8> < Z#V9< #C1>>#RESET(#V2,#V3)> #IF(#U7=20)<< #MOV>< X#V7>< Y#V8>< Z#V9< #C1>>> #EVAL(#U2=0) @ZCHKMV #CALL(TRANSFORM) #IF(#U7=17)<<< #MOV> Z#V9< #C1>>> #IF(#U7>17)<< #MOV>< X#V7>< Y#V8>< Z#V9< #C1>>> @ZDPTHMV #CALL(TRANSFORM) #IF(#U7=17)<<< #MOV> Z#V9< F#FEED>>< #C1>> #IF(#U7>17)<< #MOV>< X#V7>< Y#V8>< Z#V9>< F#FEED>< #C1>> @FXD1 #IF(#U2=1)<#CALL(TRANSFORM) G00 X#V7 Y#V8 Z#V9 #C1> #CALL(TRANSFXD) #EVAL(#C2=2) #EVAL(#V1=#ZCHK-#ZDPTH) #IF(#U0=4)<< X#V7>< Y#V8>< Z#V9< #C1>> #CALL(MACDATA) < #145=#S5> < #146=#S6> < #147=#S7> < #148=#S8> < #149=#S9> #C2> #EVAL(#U2=0) #IF(#U0=4)<#EXIT> #IF(#U7=17)<#EVAL(#V2=#V9-#V1)#EVAL(#V3=#V9) < X#V7>< Y#V8> < G#U7>< #FXD>< #RTNLVL>< Z#V2>< R#V3>< F#FEED>< #C1>> #IF(#U7=19)<#EVAL(#V1=#V1*#INO)#EVAL(#V2=#V7-#V1)#EVAL(#V3=#V7) < Y#V8>< Z#V9> < G#U7>< #FXD>< #RTNLVL>< X#V2>< R#V3>< F#FEED>< #C1>> #IF(#U7=18)<#EVAL(#V1=#V1*#JNO)#EVAL(#V2=#V8-#V1)#EVAL(#V3=#V8) < X#V7>< Z#V9> < G#U7>< #FXD>< #RTNLVL>< Y#V2>< R#V3>< F#FEED>< #C1>> #EVAL(#U2=0) @FXD2 #IF(#U2=1)<#CALL(TRANSFORM) G00 X#V7 Y#V8 Z#V9 #C1> #CALL(TRANSFXD) #EVAL(#C2=2) #EVAL(#V1=#ZCHK-#ZDPTH) #IF(#U0=4)<< X#V7>< Y#V8>< Z#V9< #C1>> #CALL(MACDATA) < #145=#S5> < #146=#S6> < #147=#S7> < #148=#S8> < #149=#S9> #C2> #EVAL(#U2=0) #IF(#U0=4)<#EXIT> #IF(#U7=17)<#EVAL(#V2=#V9-#V1)#EVAL(#V3=#V9) < X#V7>< Y#V8> < G#U7>< #FXD>< #RTNLVL>< Z#V2>< R#V3>< P#DWELL>< F#FEED>< #C1>> #IF(#U7=19)<#EVAL(#V1=#V1*#INO)#EVAL(#V2=#V7-#V1)#EVAL(#V3=#V7) < Y#V8>< Z#V9> < G#U7>< #FXD>< #RTNLVL>< X#V2>< R#V3>< P#DWELL>< F#FEED>< #C1>> #IF(#U7=18)<#EVAL(#V1=#V1*#JNO)#EVAL(#V2=#V8-#V1)#EVAL(#V3=#V8) < X#V7>< Z#V9> < G#U7>< #FXD>< #RTNLVL>< Y#V2>< R#V3>< P#DWELL>< F#FEED>< #C1>> #EVAL(#U2=0) @FXD3 #IF(#U2=1)<#CALL(TRANSFORM) G00 X#V7 Y#V8 Z#V9 #C1> #CALL(TRANSFXD) #EVAL(#C2=1) #EVAL(#V1=#ZCHK-#ZDPTH) #IF(#U0=4)<< X#V7>< Y#V8>< Z#V9< #C1>> #CALL(MACDATA) < #145=#S5> < #146=#S6> < #147=#S7> < #148=#S8> < #149=#S9> #C2> #EVAL(#U2=0) #IF(#U0=4)<#EXIT> #IF(#U7=17)<#EVAL(#V2=#V9-#V1)#EVAL(#V3=#V9) < X#V7>< Y#V8> < G#U7>< #FXD>< #RTNLVL>< Z#V2>< R#V3>< F#FEED>< #C1>> #IF(#U7=19)<#EVAL(#V1=#V1*#INO)#EVAL(#V2=#V7-#V1)#EVAL(#V3=#V7) < Y#V8>< Z#V9> < G#U7>< #FXD>< #RTNLVL>< X#V2>< R#V3>< F#FEED>< #C1>> #IF(#U7=18)<#EVAL(#V1=#V1*#JNO)#EVAL(#V2=#V8-#V1)#EVAL(#V3=#V8) < X#V7>< Z#V9> < G#U7>< #FXD>< #RTNLVL>< Y#V2>< R#V3>< F#FEED>< #C1>> #EVAL(#U2=0) @FXD4 #IF(#U2=1)<#CALL(TRANSFORM) G00 X#V7 Y#V8 Z#V9 #C1> #CALL(TRANSFXD) #EVAL(#C2=1) #EVAL(#V1=#ZCHK-#ZDPTH) #IF(#U0=4)<< X#V7>< Y#V8>< Z#V9< #C1>> #CALL(MACDATA) < #145=#S5> < #146=#S6> < #147=#S7> < #148=#S8> < #149=#S9> #C2> #EVAL(#U2=0) #IF(#U0=4)<#EXIT> #IF(#U7=17)<#EVAL(#V2=#V9-#V1)#EVAL(#V3=#V9) < X#V7>< Y#V8> < G#U7>< #FXD>< #RTNLVL>< Z#V2>< R#V3>< P#DWELL>< F#FEED>< #C1>> #IF(#U7=19)<#EVAL(#V1=#V1*#INO)#EVAL(#V2=#V7-#V1)#EVAL(#V3=#V7) < Y#V8>< Z#V9> < G#U7>< #FXD>< #RTNLVL>< X#V2>< R#V3>< F#FEED>< #C1>> #IF(#U7=18)<#EVAL(#V1=#V1*#JNO)#EVAL(#V2=#V8-#V1)#EVAL(#V3=#V8) < X#V7>< Z#V9> < G#U7>< #FXD>< #RTNLVL>< Y#V2>< R#V3>< F#FEED>< #C1>> #EVAL(#U2=0) @FXD5 #IF(#U2=1)<#CALL(TRANSFORM) G00 X#V7 Y#V8 Z#V9 #C1> #CALL(TRANSFXD) #EVAL(#PECK=#TLDIA*.33) #EVAL(#C2=0) #EVAL(#V1=#ZCHK-#ZDPTH) #IF(#U0=4)<< X#V7>< Y#V8>< Z#V9< #C1>> #CALL(MACDATA) < #145=#S5> < #146=#S6> < #147=#S7> < #148=#S8> < #149=#S9> < #150=#S0> #C2> #EVAL(#U2=0) #IF(#U0=4)<#EXIT> #IF(#U7=17)<#EVAL(#V2=#V9-#V1)#EVAL(#V3=#V9) < X#V7>< Y#V8> < G#U7>< #FXD>< #RTNLVL>< Z#V2>< R#V3>< Q#PECK>< F#FEED>< #C1>> #IF(#U7=19)<#EVAL(#V1=#V1*#INO)#EVAL(#V2=#V7-#V1)#EVAL(#V3=#V7) < Y#V8>< Z#V9> < G#U7>< #FXD>< #RTNLVL>< X#V2>< R#V3>< Q#PECK>< F#FEED>< #C1>> #IF(#U7=18)<#EVAL(#V1=#V1*#JNO)#EVAL(#V2=#V8-#V1)#EVAL(#V3=#V8) < X#V7>< Z#V9> < G#U7>< #FXD>< #RTNLVL>< Y#V2>< R#V3>< Q#PECK>< F#FEED>< #C1>> #EVAL(#U2=0) @TRANSFORM #UPDATE(#XPOS,#YPOS,#ZPOS) #EVAL(#V0=-1*#INDXA) #EVAL(#V1=#XPOS) #EVAL(#V2=COS(#V0)*#YPOS+SIN(#V0)*#ZPOS) #EVAL(#V3=(-1*SIN(#V0)*#YPOS)+COS(#V0)*#ZPOS) #EVAL(#V0=-1*#INDXC) #EVAL(#V7=COS(#V0)*#V1+SIN(#V0)*#V2) #EVAL(#V8=(-1*SIN(#V0)*#V1)+COS(#V0)*#V2) #EVAL(#V9=#V3) #EVAL(#V7=#V7+#XFO)#EVAL(#V8=#V8+#YFO)#EVAL(#V9=#V9+#ZFO) @TRANSFXD #UPDATE(#XPOS,#YPOS,#ZCHK) #EVAL(#V0=-1*#INDXA) #EVAL(#V1=#XPOS) #EVAL(#V2=COS(#V0)*#YPOS+SIN(#V0)*#ZCHK) #EVAL(#V3=(-1*SIN(#V0)*#YPOS)+COS(#V0)*#ZCHK) #EVAL(#V0=-1*#INDXC) #EVAL(#V7=COS(#V0)*#V1+SIN(#V0)*#V2) #EVAL(#V8=(-1*SIN(#V0)*#V1)+COS(#V0)*#V2) #EVAL(#V9=#V3) #EVAL(#V7=#V7+#XFO)#EVAL(#V8=#V8+#YFO)#EVAL(#V9=#V9+#ZFO) @MACDATA #EVAL(#S5=#SPEED) #EVAL(#S6=#U1) #EVAL(#S7=#U3) #EVAL(#S8=#FEED) #EVAL(#S9=#V1) #EVAL(#S0=#TLDIA) @GETHEADPOS #EVAL(#U0=0) #IF(#KNO=1)<#EVAL(#U0=1)> #IF(ABS(#INO)=1)<#EVAL(#U0=2)> #IF(ABS(#JNO)=1)<#EVAL(#U0=3)> #IF(#U0=0)<#EVAL(#U0=4)> #IF(#U0=1)<#EVAL(#U7=17)> #IF(#U0=2)<#EVAL(#U7=19)> #IF(#U0=3)<#EVAL(#U7=18)> #IF(#U0=4)<#EVAL(#U7=20)> @RECOMP #IF(#INO=1,#AND#DCOMP=1)<#EVAL(#C4=2)> #IF(#INO=1,#AND#DCOMP=2)<#EVAL(#C4=1)> #IF(#JNO=1,#AND#DCOMP=1)<#EVAL(#C4=2)> #IF(#JNO=1,#AND#DCOMP=2)<#EVAL(#C4=1)> @ORTHOARC #IF(#U0=1)<#EVAL(#S1=I)#EVAL(#S2=J)> #IF(#U0=2)<#EVAL(#S1=J)#EVAL(#S2=K)> #IF(#U0=3)<#EVAL(#S1=I)#EVAL(#S2=K)> #IF(#INO=1,#AND#MOV=2)<#EVAL(#MOV=3)#EVAL(#XCTR=#XCTR*-1)> #IF(#INO=1,#AND#MOV=3)<#EVAL(#MOV=2)#EVAL(#XCTR=#XCTR*-1)> #IF(#JNO=1,#AND#MOV=2)<#EVAL(#MOV=3)#EVAL(#XCTR=#XCTR*-1)> #IF(#JNO=1,#AND#MOV=3)<#EVAL(#MOV=2)#EVAL(#XCTR=#XCTR*-1)> @ORTHOHELIX #IF(#U0=1)<#EVAL(#S1=I)#EVAL(#S2=J)> #IF(#U0=2)<#EVAL(#S1=J)#EVAL(#S2=K)> #IF(#U0=3)<#EVAL(#S1=I)#EVAL(#S2=K)> #IF(#INO=1,#AND#MOV=45)<#EVAL(#MOV=3)#EVAL(#XCTR=#XCTR*-1)> #IF(#INO=1,#AND#MOV=46)<#EVAL(#MOV=2)#EVAL(#XCTR=#XCTR*-1)> #IF(#JNO=1,#AND#MOV=45)<#EVAL(#MOV=3)#EVAL(#XCTR=#XCTR*-1)> #IF(#JNO=1,#AND#MOV=46)<#EVAL(#MOV=2)#EVAL(#XCTR=#XCTR*-1)> @SETDEFAULTS #IF(#SPEED>750)<#EVAL(#U3=41)>#ELSE<#EVAL(#U3=42)> #IF(#SPNDL=1)<#EVAL(#U1=3)>#IF(#SPNDL=2)<#EVAL(#U1=4)> #EVAL(#U4=#LOFF) @VARIABLES C0=#C0 //=TEST_SWITCH_FOR_M52 C1=#C1 //=0/COOLANT_OFF C1=#C1 //=1/COOLANT_ON C2=#C2 //=0/M51(COMPOUND_ANGLE_PECK) C3=#C2 //=1/M52(REF_SHIFT) C2=#C2 //=2/M53(COMPOUND_ANGLE_DRILL) C2=#C2 //=3/M54(COMPOUND_ANGLE_TAP) C4=#C4 //=0/CUTTER_COMP_OFF C4=#C4 //=1/CUTTER_COMP_LEFT C4=#C4 //=2/CUTTER_COMP_RIGHT U0=#U0 //=ANGLE_TEST_FOR_HEAD U1=#U1 //=SPINDLE_VARIABLE U2=#U2 //=INDEX_TEST_FOR_FIRST_RAP U3=#U3 //=GEAR_RANGE_41_42 U4=#U4 //=STORED_LOFF_WORD_FOR_MACROS U5=#U5 //=TEST_FOR_MANUAL_TOOL_CHANGE(FROM_JOB_PLAN) U6=#U6 //=TEST_FOR_SOLID_OR_TAPMATIC_TYPE_HOLDER U7=#U7 //=PLANE_SELECTION_BASED_ON_HEAD_POS U8=#U8 //=MULTIPLIED_INDXA_FOR_MACRO U9=#U9 //=MULTIPLIED_INDXC_FOR_MACRO V0=#V0 //=STORE_ANGLES_FOR_TRANSFORMATION V1=#V1 //=NEW_WORLD_XPOS_FIRST_ROTATION...ZDEPTH_FOR_ORTHO_DRILL V2=#V2 //=NEW_WORLD_YPOS_FIRST_ROTATION...XPOS_FOR_ORTHO_DRILL V3=#V3 //=NEW_WORLD_ZPOS_FIRST_ROTATION...YPOS_FOR_ORTHO_DRILL V4=#V4 //=STORED_CLEARENCE_VALUE V5=#V5 //= V6=#V6 //= V7=#V7 //=NEW_WORLD_XPOS_SECOND_ROTATION V8=#V8 //=NEW_WORLD_YPOS_SECOND_ROTATION V9=#V9 //=NEW_WORLD_ZPOS_SECOND_ROTATION S0=#S0 //=STORED_TOOL_DIA_FOR_MACROS S1=#S1 //=WORD_ADDRESS_1_FOR_ARC_CENTER...PROGRAM_NUMBER_FROM_JOBPLAN S2=#S2 //=WORD_ADDRESS_2_FOR_ARC_CENTER...PART_NUMBER_FROM_JOBPLAN S3=#S3 //=WORK_OFFSET_FROM_JOB_PLAN S4=#S4 //=STORED_HOME_POSITION S5=#S5 //=STORED_SPEED_FOR_MACROS S6=#S6 //=STORED_SPINDLE_DIRECTION_FOR_MACROS S7=#S7 //=STORED_GEAR_RANGE_FOR_MACROS S8=#S8 //=STORED_FEED_FOR_MACROS S9=#S9 //=STORED_DRILL_DEPTH_FOR_MACROS @