// ---------------------------------------- // // 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. // ---------------------------------------- @COMMENTS 11/6/87 Machine: Citizen Cincom F 25 Lathe (Swiss Type) with a Fanuc 10T Control - Dual Turrets - "C" Axis @START O#FILE #ONBLK G20 #FDMODE M52 G68 G50 X-.15 Z-.005 M6 #NEXTPT #SPMODE #SPNDL S#SPEED Z#ZPOS #IF(#SPMODE=1)< G50 S3500> #RESET(#ZPOS) T#TOOL00 T#NTOOL00 #IF(#TOOL<16)< G69> #IF(#TOOL>20)< G68> #EVAL(#YSET=0) #EVAL(#INDXA=-1) #IF(#V6>1)< G98 M18 S#SPEED M58 M98 P#FMT(#V6=T4.0)> #IF(#V6>1)<#EXIT> #IF(#TLOP>=4)<#EVAL(#XPOS=#XPOS-2) #MOV X#XPOS Z#ZPOS T#TOOL> #IF(#TLOP>=4)<#EXIT> #MOV X#FMT(#XPOS,D!3.4) Z#ZPOS T#TOOL @TOOLCHG #IF(#V5>1)<#EVAL(#V5=#V5-1)> #IF(#V5>1)< P#FMT(#V5,T4.0)> #IF(#V5>1)<#RESET(#V5)> < #MOV>< X#FMT(#XPOS,D!3.4)>< Z#ZPOS> T0 #EVAL(#V9=0) #IF(#TOOL<=15)<#EVAL(#V9=#V9+1)> #IF(#NTOOL>15)<#EVAL(#V9=#V9+1)> #IF(#V9=0)< T#NTOOL00> #IF(#V9=2)< T#NTOOL00> #IF(#TOOL<15)< G69> #IF(#TOOL>=15)< G68> #IF(#V6<1)<#EVAL(#YSET=-1)> #IF(#V6>1)<#EVAL(#V5=#V6)> #IF(#V6>1)< G98 S#SPEED M58 M98 P#FMT(#V6,T4.0)> < #SPMODE> #SPNDL S#SPEED #IF(#SPMODE=1)< G50 S3500> #EVAL(#YPOS=0) #IF(#YSET<1)<#EVAL(#YPOS=#YPOS+1)> #IF(#V6>1)<#EVAL(#YPOS=#YPOS+1)> #IF(#YPOS=2)<#RESET(#YPOS) M18#EVAL(#YSET=0)> #IF(#V6>1)<#EXIT> #NEXTPT @END #IF(#V5>1)<#EVAL(#V5=#V5-1)> #IF(#V5>1)< P#FMT(#V5,T4.0)> #IF(#V5>1)<#RESET(#V5)> G00 X#XHOME Z#ZHOME T0 M02 M99 #OFFBLK% @STPROF #RESET(#V6) #IF(#TLOP>=4)<#EVAL(#XPOS=#XPOS-2)> #IF(#TLOP>=4)<< #MOV>< X#XPOS>< Z#ZPOS>< F#FEED>> #IF(#TLOP>=4)<#EXIT> < #MOV>< X#FMT(#XPOS,D!3.4)>< Z#ZPOS>< T#TOOL> @RAP #RESET(#V6) #IF(#TLOP>=4)<#EVAL(#XPOS=#XPOS-2)> #IF(#TLOP>=4)<< #MOV>< X#XPOS>< Z#ZPOS>< F#FEED>> #IF(#TLOP>=4)<#EXIT> < #MOV>< X#FMT(#XPOS,D!3.4)>< Z#ZPOS>< T#TOOL> @LINE #IF(#TLOP>=4)<#EVAL(#XPOS=#XPOS-2)> < #FDMODE> #IF(#TLOP>=4)<< #MOV>< X#XPOS>< Z#ZPOS>< F#FEED>> #IF(#TLOP>=4)<#EXIT> < #FDMODE> < #MOV>< X#FMT(#XPOS,D!3.4)>< Z#ZPOS>< F#FEED> @ARC < #FDMODE> #IF(#TOOL<=15)<#EXIT> < #MOV>< X#FMT(#XPOS,D!3.4)>< Z#ZPOS>< R#ARAD>< F#FEED> @FXD1 < #FXD>< X#XPASS>< Z#ZPASS>< F#FTHRD> @FXD4 #EVAL(#ZPASS=#ZPASS*.8) #EVAL(#FEED=#FEED*.8) G32 Z#ZPASS F#FEED< T#TOOL> #EVAL(#ZPASS=#ZPASS-4) G00 Z#ZPASS M04 G32 Z#ZPOS F#FEED T00 @DWELL G04 U#DWELL#EVAL(#TIXE=#DWELL/60) @PULL G0 X#XPOS Z#ZPOS T0 M5 G97 M13 M7 G0 W-#ZSET G50 W#ZSET M6 M14 M8 /M0 @CLOSE M06 @OPEN M07 @ON M08 @OFF M09 @FOW M10 @REV M11 @LCLOSE M13 @LOPEN M14 @CLAMP M15 @UNCLAMP M16 @C-ON M18 @C-OFF M20 @STOP M26 @RES M27 @CSTEP1 M28 @CSTEP2 M29 @WFOW M32 @WREV M33 @OIL M52 @NO-OIL M53 @BARSTOP M54 @BARSTART M55 @STEP1 #IF(#YSET>#INDXA)< M18 #EVAL(#YSET=0)> #EVAL(#V3=(#INDXA-#YSET)/#V7) #EVAL(#V4=INT(#V3+.01)) #IF(ABS(#V3-#V4)>.01)< M18 #EVAL(#YSET=0) #EVAL(#V3=#INDXA/#V7)> #EVAL(#V4=INT(#V3+.01) #IF(ABS(#V3-#V4)>.01)<(ANGLE DOESN'T MATCH STEP)> #IF(#V3>0)< M28> #IF(#V3>1)< M28> #IF(#V3>2)< M28> #IF(#V3>3)< M28> #IF(#V3>4)< M28> #IF(#V3>5)< M28> #IF(#V3>6)< M28> #IF(#V3>7)< M28> #IF(#V3>8)< M28> #IF(#V3>9)< M28> #IF(#V3>10)< M28> #IF(#V3>11)< M28> #EVAL(#YSET=#INDXA) @STEP2 #IF(#YSET>#INDXA)< M18 #EVAL(#YSET=0)> #EVAL(#V3=(#INDXA-#YSET)/#V8) #EVAL(#V4=INT(#V3+.01)) #IF(ABS(#V3-#V4)>.01)< M18 #EVAL(#YSET=0) #EVAL(#V3=#INDXA/#V7)> #EVAL(#V4=INT(#V3+.01) #IF(ABS(#V3-#V4)>.01)<(ANGLE DOESN'T MATCH STEP)> #IF(#V3>0)< M29> #IF(#V3>1)< M29> #IF(#V3>2)< M29> #IF(#V3>3)< M29> #IF(#V3>4)< M29> #IF(#V3>5)< M29> #IF(#V3>6)< M29> #IF(#V3>7)< M29> #IF(#V3>8)< M29> #IF(#V3>9)< M29> #IF(#V3>10)< M29> #IF(#V3>11)< M29> #EVAL(#YSET=#INDXA) @