// ---------------------------------------- // // 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. // ---------------------------------------- //Mori Seiki ZL-15-SMC Lathe with Fanuc 15T @START % O#FILE(#S1) #IF(#U6=1)<(2ND OPER. - BACK SIDE)> #ELSE<(1ST OPER. - FRONT SIDE)> (T#FMT(#TOOL,T2.0) #TLCMT) #ONBLK#IF(#U6=1)< M999 (WAITING) M35 (SYNCHRONOUS SPINDLES)> #ONBLK #FDMODE#IF(#SPEED<>0)< #C0>#ELSE< #SPOFF> G50#IF(#SPMODE=1,AND#U0=0)< S5000>#EXLN #IF(#SPMODE=1,AND#U0<>0)< S#FMT(#U0,T4.0)> G0 T#TOFF #IF(#SPEED<>0)< #SPMODE S#SPEED #SPNDL> #NEXTPT @TOOLCHG #EVAL(#C0=1) #MOV X#XPOS Z#ZPOS #C0 < #SPOFF> T#LTOOL M1 #EVAL(#U1=INT(#TLTIME)) #EVAL(#U2=#TLTIME-#U1) #EVAL(#U3=#U2*60) #OFFBLK(T#FMT(#LTOOL,T2.0) RUN TIME:#EXLN #IF(#U1>0)< #FMT(#U1,T3.0) MIN.> #FMT(#U3,T2.0) SEC.) (T#FMT(#TOOL,T2.0) #TLCMT) #ONBLK#IF(#U5=1)< M999> #ONBLK #FDMODE#IF(#SPEED<>0)< #C0>#ELSE< #SPOFF> G50#IF(#SPMODE=1,AND#U0=0)< S5000>#EXLN #IF(#SPMODE=1,AND#U0<>0)< S#FMT(#U0,T4.0)> G0 T#TOFF #IF(#SPEED<>0)< #SPMODE S#SPEED #SPNDL> @END #EVAL(#C0=1) #MOV X#XHOME Z#ZHOME #C0 T#LTOOL M1 #EVAL(#U1=INT(#TLTIME)) #EVAL(#U2=#TLTIME-#U1) #EVAL(#U3=#U2*60) #OFFBLK(T#FMT(#LTOOL,T2.0) RUN TIME:#EXLN #IF(#U1>0)< #FMT(#U1,T3.0) MIN.> #FMT(#U3,T2.0) SEC.) #EVAL(#U1=INT(#CYTIME)) #EVAL(#U2=#CYTIME-#U1) #EVAL(#U3=#U2*60) (TOTAL RUN TIME:#EXLN #IF(#U1>0)< #FMT(#U1,T3.0) MIN.> #FMT(#U3,T2.0) SEC.)#ONBLK M99 #OFFBLK#EVAL(#BLK=#BLK+1) /N#BLK M30 % @STPROF #RESET(#FXD,#XPOS,#ZPOS) < #MOV>< X#XPOS>< Z#ZPOS> #IF(#U5=0,AND#U6=0)<#EXIT> #IF(#U5=1) < M101 (WAITING) M102 (WAITING)> #IF(#U6=1)< M51 (AIR BLAST ON)> @RAP #RESET(#FXD) < #MOV>< X#XPOS>< Z#ZPOS>#IF(#U7=1)< M5> #EVAL(#U5=0) #EVAL(#U6=0) #EVAL(#U7=0) @LINE #RESET(#FXD) < #MOV>< X#XPOS>< Z#ZPOS>< S#SPEED>< F#FEED> #IF(#U5=0,AND#U6=0)<#EXIT>#ELSE<#EVAL(#U7=1)> #IF(#U5=1) < M80 (CUTOFF DETECTION) M103 (WAITING)> #IF(#U6=1) < M10 (CLOSE COLLET) #CALL(DWELL) M59 (AIR BLAST OFF) M102 (WAITING) M103 (WAITING)> @ARC #RESET(#FXD) < #MOV>< X#XPOS>< Z#ZPOS> R#ARAD< S#SPEED>< F#FEED> @FXD1 G76 X#XPASS Z#ZPASS< I#XOV> K#FMT(#V1,F0.4) D#FMT(#V2,F0.4) F#FTHRD A60 @FXD2 < #FXD>< X#XPASS>< Z#ZPASS>< F#FEED> @FXD3 < #FXD>< X#XPASS>< Z#ZPASS>< F#FEED> @FXD4 G32 Z#ZPASS E#FMT(#FEED,D1.6) M5 #IF(#SPEED>0)<#EVAL(#SPNDL=2)>#ELSE<#EVAL(#SPNDL=1)> G32 Z#ZPOS #SPNDL M5 @FXD5 #EVAL(#PECK=#TLDIA) G83 Z#ZPASS Q#FMT(#PECK,F0.4) F#FEED G0 Z#ZPOS @DWELL G4 U#DWELL#EVAL(#TIME=#DWELL/60) (DWELL) @RGHTRN G71 P#FMT(#V3,T4.0) Q#FMT(#V4,T4.0) U#V5 W#V6 D#FMT(#V7,T1.4) F#FEED S#SPEED @FINTRN G70 P#FMT(#V3,T4.0) Q#FMT(#V4,T4.0) @M0 < #MOV>< X#XPOS>< Z#ZPOS> M0 (PROGRAM STOP) @M1 < #MOV>< X#XPOS>< Z#ZPOS> M1 (OPTIONAL STOP) @CUTOFF < #MOV>< X#XPOS>< Z#ZPOS> M100 (WAITING) #EVAL(#U5=1) @SPINDLE M100 (WAITING) < #MOV>< X#XPOS>< Z#ZPOS> M11 (OPEN COLLET) M101 (WAITING) #EVAL(#U6=1) @BAR-STOP < #MOV>< X#XPOS>< Z#ZPOS> M11 (OPEN COLLET) #CALL(DWELL) M10 (CLOSE COLLET) #CALL(DWELL) @CATCHER < #MOV>< X#XPOS> M73 (PARTS CATCHER OUT) #CALL(DWELL) M11 (OPEN COLLET) #CALL(DWELL) M74 (PARTS CATCHER IN) M10 (CLOSE COLLET) @