// ---------------------------------------- // // 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 SSA 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 SSA 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. // ---------------------------------------- @START % O#FILE #EVAL(#U9=#TOOL*100) ( **** TOOL ##TOOL: #TDESC **** ) N#U9 G00 G49 G53 Y0 Z0 T#TOOL #EVAL(#V7=#INDXB) G190 B#FMT(#INDXB,T3.0). M06 #EVAL(#S0=#TABLE(INDEXWCS,#INDXB) #EVAL(#S1=#TABLE(PALETWCS,#S9) #NEXTPT G43 #S0 #S1 X#XPOS Y#YPOS Z#ZPOS S#SPEED #SPNDL H#LOFF T#NTOOL @TOOLCHG < #FXD> M09 G00 G49 G53 Y0 Z0 M29 #EVAL(#U9=#TOOL*100) ( **** TOOL ##TOOL: #TDESC **** ) N#U9 G00 G49 G53 Y0 Z0 T#TOOL G190 B#FMT(#INDXB,T3.0). M06 #EVAL(#S0=#TABLE(INDEXWCS,#INDXB) #EVAL(#S1=#TABLE(PALETWCS,#S9) G43 #S0 #S1 X#XPOS Y#YPOS Z#ZPOS S#SPEED #SPNDL H#LOFF T#NTOOL @END < #FXD> M09 G00 G49 G53 Y0 Z0 G190 B0. M06 M98 P0001 M30 % @SUBDEF % O#SNAME #EVAL(#ABSI=1) #ABSI @ENDDEF #EVAL(#ABSI=0) < #ABSI> M99 % @GOSUB M98 P#SNAME L#SREPT @TPINDX M09 ( --- INDEX TO B #FMT(#INDXB,D3.0) --- ) #EVAL(#S0=#TABLE(INDEXWCS,#INDXB) #EVAL(#S1=#TABLE(PALETWCS,#S9) G190 B#FMT(#INDXB,T3.0). #NEXTPT G00 #S0 #S1 X#XPOS Y#YPOS M08 @STPROF < #ABSI>< #FXD>< #MOV>< X#XPOS>< Y#YPOS>< Z#ZPOS> @ENDPROF << #MOV> Z#ZPOS> < #DCOMP> @RAP < #ABSI>< #FXD>< #MOV>< X#XPOS>< Y#YPOS>< Z#ZPOS> @LINE < #DCOMP#EXC D#DOFF>< #MOV>< #PLANE>< X#XPOS>< Y#YPOS>< Z#ZPOS>< F#FEED> @ARC < #PLANE>< #MOV>< X#XPOS>< Y#YPOS>< I#XCTR>< J#YCTR>< F#FEED> @XZARC < #PLANE>< #MOV>< X#XPOS>< Z#ZPOS>< I#XCTR>< K#ZCTR>< F#FEED> @YZARC < #PLANE>< #MOV>< Y#YPOS>< Z#ZPOS>< J#YCTR>< K#ZCTR>< F#FEED> @HELIX #EVAL(#ABSI=1) #EVAL(#U8=#ZPOS-#ZST) #EVAL(#U9=#U8/#INC) < #PLANE>< #ABSI> #MOV< X#XPOS>< Y#YPOS> Z#INC I#XCTR J#YCTR#EXLN L#U9< F#FEED> #EVAL(#ABSI=0) @XZHELIX < #PLANE>< #ABSI> #MOV< X#XPOS> Y#YPOS< Z#ZPOS> I#XCTR K#ZCTR< F#FEED> @YZHELIX < #PLANE>< #ABSI> #MOV X#XPOS< Y#YPOS>< Z#ZPOS> J#YCTR K#ZCTR< F#FEED> @ZCLRMV < #ABSI>< #FXD><< #MOV> Z#ZPOS> @ZCHKMV < #FXD><< #MOV> Z#ZPOS> @ZDPTHMV << #MOV> Z#ZPOS< F#FEED>> @FXD1 < #ABSI>< #FXD>< X#XPOS>< Y#YPOS>< Z#ZDPTH R#ZCHK>< F#FEED> @FXD2 < #ABSI>< #FXD>< X#XPOS>< Y#YPOS>< Z#ZDPTH R#ZCHK P#DWELL>< F#FEED> @FXD3 < #ABSI>< #FXD>< X#XPOS>< Y#YPOS>< Z#ZDPTH R#ZCHK>< F#FEED> @FXD4 < #ABSI>< #FXD>< X#XPOS>< Y#YPOS>< Z#ZDPTH R#ZCHK>< F#FEED> @FXD5 #EVAL(#PECK=3*#TLDIA) #EVAL(#V9=#TLDIA) #EVAL(#V8=.5*#TLDIA) < #ABSI>< #FXD>< X#XPOS>< Y#YPOS>< Z#ZDPTH R#ZCHK I#PECK J#V8 K#V9>< F#FEED> @DWELL G04 P#DWELL#EVAL(#TIME=#DWELL/60) @INDEXWCS 0,G54 90,G55 180,G56 270,G57 360,G54 @PALETWCS 2,I1 3,I2 4,I3 5,I4 6,I5 7,J1 8,J2 9,J3 10,J4 11,J5 @