@COMMENT Machine: Bridgeport Vertical Mill Control: Boss-10 See disclaimer at bottom Supported Functions: G-Codes (Preparatory Functions) G00 Positioning mode G01 Linear interpolation (contouring) G02 Clockwise circular interpolation G03 Counter clockwise circular interpolation G17 Interpolation in XY Plane G18 Interpolation in XZ Plane G19 Interpolation in YZ Plane G04 Dwell G40 Tool radius compensation cancel G41 Tool radius compensation, left G42 Tool radius compensation, right G70 Inch input G71 Metric input G80 Cancel fixed cycle G81 Drilling cycle G82 Drill / Dwell G84 Tapping cycle G85 Bore in / Bore out G86 Bore in / Spindle Stop / Bore out G89 Bore in / Dwell / Bore out G90 Absolute positioning mode G91 Incremental positioning mode G92 Preload absolute stores G94 IPM Feed Mode G95 IPR Feed Mode M-Codes (Miscellaneous Functions) M2 End of Program M3 Spindle on CW M4 Spindle on CCW (use negative spindle speed in job plan) M5 Spindle Stop M6 Tool Change M8 Coolant on - Flood M9 Coolant off M30 End of program / rewind tape @ @DECLARE //#OUTCND // outputs conditional status //#OUTSEC // outputs @section names //#OUTREF // outputs processing errors //#OUTRPT // outputs an error report file #STR#coolword @ @COOLWORD 0,OFF 1,FLOOD 2,MIST 3,error 4,error @ @COOLNT 0,M9 1,M8 2,M7 3,M9 4,M9 @ @CYCLE -1,G80 @ @START #EVAL(#V1=1) G40G70G75G90 % . 'FILE NAME:#FILE' 'CON:T#TOOL' 'SPINDLE RPM:#SPEED' #EVAL(#coolword=#TABLE(COOLWORD,#COOLNT)) 'COOLANT:#coolword' '#TLCMT' #ONBLK #ABSI G0 X#XPOS Y#YPOS T#TOOL M6 S#SPEED. #COOLNT #MOV< X#XPOS>< Y#YPOS>< Z#ZPOS> @ @TOOLCHG < #CYCLE> M5 M9 M25 #RESET(#MOV,#CYCLE,#PECK,#S1,#S2,#S3,#S4,#S5,#S6,#S7,#S8,#S9) #RESET(#V9,#V8,#PLANE,#CYCLE) #EVAL(#V1=1) #OFFBLK'T#TOOL:#TDESC' 'SPINDLE RPM:#SPEED' #EVAL(#coolword=#TABLE(COOLWORD,#COOLNT)) 'COOLANT:#coolword' '#TLCMT' #ONBLK #ABSI G0 X#XPOS Y#YPOS T#TOOL M6 S#SPEED. #COOLNT #MOV< X#XPOS>< Y#YPOS>< Z#ZPOS> #RESET(#PECK,#FEED,#CYCLE) @ @END 'TOTAL CYCLE TIME=#CYTIME' < #CYCLE> M5 M9 M25 G90 G0 X#XPOS Y#YPOS T1 M2 E @ @STPROF #EVAL(#V1=1) #EVAL(#V3=0) #RESET(#FEED) < #CYCLE> < #ABSI>< #MOV>< X#XPOS>< Y#YPOS>< Z#ZPOS> @ @ENDPROF #IF(#V2=1)<#EXIT> < #DCOMP>< X#XPOS#OR Y#YPOS> #EVAL(#V1=1) #RESET(#DCOMP,#XST,#YST,#ZPOS,#FEED) @ @RAP < #CYCLE> < #ABSI>< #MOV>< X#XPOS>< Y#YPOS>< Z#ZPOS> #RESET(#FEED) @ @LINE #IF(#DCOMP>=1,AND#V3=0)<< #DCOMP #MOV #EXCX#XST #EXCY#YST F#FEED#EXLN #EVAL(#V1=0)>> #IF(#DCOMP=0,AND#V1=1)<< #MOV>< X#XPOS>< Y#YPOS>#EXLN < Z#ZPOS>< F#FEED>#EVAL(#V2=1)>#EXLN #ELSE<< #DCOMP>< #MOV>< X#XPOS>< Y#YPOS>< Z#ZPOS>< F#FEED>#EVAL(#V2=0)> @ @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 < #PLANE> G01< R#ARAD>< I#XCTR>< J#YCTR>< A#STANG> #EVAL(#ARAD=ABS(SQR((#XPOS*#XPOS+#YPOS*#YPOS)))) #MOV< #PLANE>< R#ARAD>< I#XCTR>< J#YCTR>< A#TANG>< Z#ZPOS>< F#FEED> @ @XZHELIX #MOV< #PLANE>< X#XPOS> Y#YPOS < Z#ZPOS> I#XCTR K#ZCTR< F#FEED> @ @YZHELIX #MOV< #PLANE> X#XPOS< Y#YPOS>< Z#ZPOS> J#YCTR K#ZCTR< F#FEED> @ @ZCLRMV #RESET(#V9,#V8) < #CYCLE>< #MOV>< Z#ZPOS> #RESET(#MOV) #RESET(#DWELL) @ @ZCHKMV #EVAL(#V1=1) < #CYCLE>< #MOV>< Z#ZPOS> #RESET(#MOV) #RESET(#DWELL) @ @ZDPTHMV #EVAL(#V1=1) < #MOV>< Z#ZPOS>< F#FEED> #RESET(#MOV) @ @OP_SPEC #CALL(OP_DRL) @OP_REAM #CALL(OP_DRL) @OP_DRL #IF(#V1=1)< #CYCLE#EXC X#XPOS#EXC Y#YPOS>#EXLN < #ABSI>< #CYCLE>< X#XPOS>< Y#YPOS>< Z#ZDPTH#OR F#FEED> #EVAL(#V1=0) @@CYCLE 0,G81 @ @OP_SPDRL #CALL(OP_CSINK) @OP_CDRL #CALL(OP_CSINK) @OP_CBORE #CALL(OP_CSINK) @OP_SPFACE #CALL(OP_CSINK) @OP_CSINK < G4 Q#DWELL> #IF(#V1=1)< #CYCLE#EXC X#XPOS#EXC Y#YPOS>#EXLN < #ABSI>< #CYCLE>< X#XPOS>< Y#YPOS>< Z#ZDPTH#OR F#FEED> #EVAL(#V1=0) @@CYCLE 0,G82 @ @OP_TAP #IF(#V1=1)< #CYCLE#EXC X#XPOS#EXC Y#YPOS>#EXLN < #ABSI>< #CYCLE>< X#XPOS>< Y#YPOS>< Z#ZDPTH#OR F#FEED> #EVAL(#V1=0) @@CYCLE 0,G84 @ @OP_BORE #IF(#V1=1)< #CYCLE#EXC X#XPOS#EXC Y#YPOS>#EXLN < #ABSI>< #CYCLE>< X#XPOS>< Y#YPOS>< Z#ZDPTH#OR F#FEED> #EVAL(#V1=0) @@CYCLE 0,G86 @ @OP_PDRL #EVAL(#V9=jos(pekdpth1)) #EVAL(#V8=jos(pekdpth2)) #IF(#V1=1)< #CYCLE#EXC X#XPOS#EXC Y#YPOS>#EXLN < #ABSI>< #CYCLE>< X#XPOS>< Y#YPOS>#IF(#V6=1)<< Z#ZDPTH Z#V8 Z.05>>#EXLN #ELSE<< Z#ZDPTH Z#V9 Z#V8>>< F#FEED> #EVAL(#V1=0) @@CYCLE 0,G83 @ @DISCLAIMER ---------------------------------------- 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. ---------------------------------------- @