// ---------------------------------------- // // 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 //June 19, 1990 // //Machine: K&T Milwaukee-Matic with Bendix Dynapath 5 // // Special Variables Used: // //#V0 Z-axis preset amount; set in Job Plan Notes section. // //#U0 Toggles output of @section names when coding. Set to 1 in 1st line of // Template file // //#C0 "0" = M09, "1" = M08 // //#C1 "0" = M00, "1" = M01, "2" = "" // // // Custom User Commands Included: // //@STOP Outputs M00, resets #SPNDL and sets #C0=1 to force output of active // spindle code and M08 at next @STPROF or @FXD section. // //@OPSTOP Outputs M01, resets #SPNDL and sets #C0=1 to force output of active // spindle code and M08 at next @STPROF or @FXD section. // //@COFF Outputs M09 and sets #C0=1 to force output of M08 at next @STPROF or // @FXD section. // //@SPOFF Outputs M05 and resets #SPNDL to force output of active spindle code at // next @STPROF or @FXD section. // //@BOTHOFF Outputs M05 then M09, resets #SPNDL and sets #C0=1 to force output // of active spindle code and M08 at next @STPROF or @FXD section. @START #EVAL(#U0=0) #EVAL(#C0=0) #EVAL(#C1=2) #EVAL(#ZPOFF=#V0+#TLEN) #EVAL(#ZPOS=#ZPOS+#ZPOFF) % N01(#FILEXXXXXXXXXXXXXXXXXXXXXXXXX) #ONBLK#ABSI G00X0Y0Z0R0#RFEEDH00D00 M00 G17#C0 G00X#XPOSY#YPOSZ#ZPOSR0#RFEEDS#SPEEDH#LOFFD#DOFF#SPNDL #EVAL(#U9=0) @TOOLCHG #IF(#U0=1)< --------------------------- TOOLCHG --------------------------- > #RESET(#DOFF) #EVAL(#ZPOFF=#V0+#TLEN) #EVAL(#ZPOS=#ZPOS+#ZPOFF) #EVAL(#C0=0) #EVAL(#C1=2) #SPOFF #C0 G00X#XPOSY#YPOSZ0R0#RFEEDH00D00#C0#EVAL(#C0=1) M00 G17#C0 G00X#XPOSY#YPOSZ#ZPOSR0#RFEEDS#SPEEDH#LOFFD#DOFF#SPNDL #EVAL(#U9=0) @END #IF(#U0=1)< --------------------------- END ------------------------------- > M05 M09 G21X50000 G00X50000Y-37500Z0R#ZCHK#RFEEDS#SPEEDH00D00#C0 G80H00M30 #OFFBLK% @STPROF #IF(#U0=1)< --------------------------- STPROF ---------------------------- > <#ABSI><#FXD><#MOV><#RFEED> <#SPNDL> <#C0> @ENDPROF #IF(#U0=1)< --------------------------- ENDPROF --------------------------- > #EVAL(#ZPOS=#ZPOS+#ZPOFF) <<#MOV>Z#ZPOS<#RFEED>> <#DCOMP<#DOFF>> @RAP #IF(#U0=1)< --------------------------- RAP ------------------------------- > #IF(#C1<2)<#C1#EVAL(#C1=2)> <#ABSI><#FXD><#MOV><#RFEED> <#SPNDL> <#C0> @LINE #IF(#U0=1)< --------------------------- LINE ------------------------------ > <#DCOMP#EXCD#DOFF> <#MOV> #EVAL(#U9=1) @ARC #IF(#U0=1)< --------------------------- ARC ------------------------------- > <#MOV>I#XCTRJ#YCTR #EVAL(#U9=#MOV) @ZCLRMV #IF(#U0=1)< --------------------------- ZCLRMV ---------------------------- > #EVAL(#ZPOS=#ZPOS+#ZPOFF) <<#ABSI><#FXD><#MOV>Z#ZPOSR#ZPOS<#RFEED>> #IF(#C1<2)<#C1#EVAL(#C1=2)> #IF(#C1<2)<#C0 #SPNDL> @ZCHKMV #IF(#U0=1)< --------------------------- ZCHKMV ---------------------------- > #EVAL(#FEED=#FEED*2) #EVAL(#ZPOS=#ZPOS+#ZPOFF) <<#ABSI><#FXD><#MOV>Z#ZPOS> <#C0> <#SPNDL> #EVAL(#FEED=#FEED/2) @ZDPTHMV #IF(#U0=1)< --------------------------- ZDPTHMV --------------------------- > <<#MOV>Z#ZPOS> <#C0> <#SPNDL> @FXD1 #IF(#U0=1)< --------------------------- FXD1 ------------------------------ > #EVAL(#ZDPTH=#ZDPTH+#ZPOFF) #EVAL(#ZCHK=#ZCHK+#ZPOFF) #IF(#U9=0)<#EVAL(#DOFF=0) #RESET(#FXD,#XPOS,#YPOS,#ZDPTH,#ZCHK,#FEED,#SPEED,#LOFF,#DOFF,#SPEED,#SPNDL) #EVAL(#U9=2)> <#ABSI><#FXD>#EXLN <#SPNDL> @FXD2 #IF(#U0=1)< --------------------------- FXD2 ------------------------------ > #EVAL(#ZDPTH=#ZDPTH+#ZPOFF) #EVAL(#ZCHK=#ZCHK+#ZPOFF) #IF(#U9=0)<#EVAL(#DOFF=0) #RESET(#FXD,#XPOS,#YPOS,#ZDPTH,#ZCHK,#FEED,#SPEED,#LOFF,#DOFF,#SPEED,#SPNDL) #EVAL(#U9=2)> <#ABSI><#FXD>#EXLN <#SPNDL> @FXD3 #IF(#U0=1)< --------------------------- FXD3 ------------------------------ > #EVAL(#ZDPTH=#ZDPTH+#ZPOFF) #EVAL(#ZCHK=#ZCHK+#ZPOFF) #IF(#U9=0)<#EVAL(#DOFF=0) #RESET(#FXD,#XPOS,#YPOS,#ZDPTH,#ZCHK,#FEED,#SPEED,#LOFF,#DOFF,#SPEED,#SPNDL) #EVAL(#U9=2)> <#ABSI><#FXD>#EXLN <#SPNDL> @FXD4 #IF(#U0=1)< --------------------------- FXD4 ------------------------------ > #EVAL(#ZDPTH=#ZDPTH+#ZPOFF) #EVAL(#ZCHK=#ZCHK+#ZPOFF) #IF(#U9=0)<#EVAL(#DOFF=0) #RESET(#FXD,#XPOS,#YPOS,#ZDPTH,#ZCHK,#FEED,#SPEED,#LOFF,#DOFF,#SPEED,#SPNDL) #EVAL(#U9=2)> <#ABSI><#FXD>#EXLN <#SPNDL> @FXD5 #IF(#U0=1)< --------------------------- FXD5 ----------------------------- > #EVAL(#ZDPTH=#ZDPTH+#ZPOFF) #EVAL(#ZCHK=#ZCHK+#ZPOFF) #IF(#U9=0)<#EVAL(#V9=#PECK*#TLDIA)#EVAL(#DOFF=0) #RESET(#FXD,#XPOS,#YPOS,#ZDPTH,#ZCHK,#FEED,#SPEED,#LOFF,#DOFF,#SPEED,#SPNDL) #EVAL(#U9=2)> <#ABSI><#FXD>#EXLN <#SPNDL> @COFF #IF(#U0=1)< --------------------------- COFF ------------------------------ > #EVAL(#C0=0)#C0 @SPOFF #IF(#U0=1)< --------------------------- SPOFF ----------------------------- > M05#RESET(#SPNDL) @BOTHOFF #IF(#U0=1)< --------------------------- BOTHOFF --------------------------- > M05#RESET(#SPNDL) #EVAL(#C0=0)#C0 #EVAL(#C0=1) @DWELL #IF(#U0=1)< --------------------------- DWELL ----------------------------- > G04P#DWELL#EVAL(#TIME=#DWELL/60) @STOP #IF(#U0=1)< --------------------------- STOP ------------------------------ > #EVAL(#C0=1) #EVAL(#C1=0) #RESET(#SPNDL) #EVAL(#U9=0) @OPSTOP #IF(#U0=1)< --------------------------- OPSTOP ---------------------------- > #EVAL(#C0=1) #EVAL(#C1=1) #RESET(#SPNDL) #EVAL(#U9=0) @