@COMMENTS ---------------------------------------- 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. ---------------------------------------- Machine: Bridgeport Series II Interact 1 VMC Control: Heidenhain TNC 151 B Control Notes: 1. This machine and template file have been set up to support the following fixed cycles: - Drill Cycle - Spot Drill Cycle - Peck Drill Cycle - Tapping Cycle - Boring Cycle 2. Speeds in the Job Plan should be specified in revolutions per minute (RPM). Feeds should be in inches per minute (IPM). 3. SmartCAM will output all the necessary moves to turn cutter diameter compensation on and off correctly (R0/RL/RR) but certain rules must be followed in the model. Any Profile in the model with an Offset of None needs no Lead_In or Lead_Out moves. All Profiles in the model with either Offset Right of Left require Lead_In and Lead_Out Lines and may also have Lead_in and Lead_Out Arcs as well. The following procedure is recommended highly: 4. If you wish to use Lead_In and Lead_Out Lines only, it is best to use an Angle of 90 degrees and a Length greater than the tool radius. If you wish to use Lead_In and Lead_Out Arcs, it is best to use a Radius equal to the same amount and an Angle of 45 degrees, then Lead_In and Lead_Out Lines to those Arcs at an Angle of 90 degrees and a length equal to the same amount. Any time Lead_In and Lead_Out Arcs are used, Lead_In and Lead_Out Lines are absolutely necessary. @ @DECLARE //#OUTCND // outputs conditional status //#OUTSEC // outputs @section names //#OUTREF // outputs processing errors //#OUTRPT // outputs an error report file @ @START #ONBLK BEGIN PGM #FILE INCH TOOL CALL #TOOL Z S#SPEED L X#XPOS Y#YPOS R0 #RFEED #SPNDL @ @TOOLCHG #EVAL(#V0=0) #EVAL(#V3=1) L R<#DCOMP> F M25 TOOL CALL #TOOL Z S#SPEED L X#XPOS Y#YPOS R0 #RFEED #SPNDL @ @END L R0 M25 STOP M02 END PGM #FILE INCH @ @STPROF #EVAL(#V0=1) < L X#XPOS Y#YPOS R0< #RFEED> M> @ @ENDPROF < L Z#ZPOS R#DCOMP< #RFEED> M> @ @RAP #IF(#V0=0)<#EXIT> < L X#XPOS Y#YPOS R0< #RFEED> M> @ @LINE L< X#XPOS>< Y#YPOS> R#DCOMP F<#FEED> M @ @ARC CC X#XCTR Y#YCTR C X#XPOS Y#YPOS DR#MOV R#DCOMP F<#FEED> M @ @ZCLRMV #IF(#V0=0)<#EXIT> < L Z#ZPOS R0 #RFEED M> @ @ZCHKMV #IF(#V0=0)<#EXIT> #IF(#V0=2)<#EXIT> < L Z#ZPOS R0 #RFEED M> @ @ZDPTHMV < L Z#ZPOS R0 F#FEED M> @ @OP_SPEC #CALL(OP_DRL) @OP_REAM #CALL(OP_DRL) @OP_DRL #EVAL(#V0=2) #IF(#V9<>#ZDPTH)<#EVAL(#ZDPTH=#ZDPTH+.05)> #IF(#V9<>#ZDPTH)<#EVAL(#V3=1)> #IF(#V8<>#ZCHK)<#EVAL(#V3=1)> #IF(#V7<>#FEED)<#EVAL(#V3=1)> #IF(#V6<>#FXD)<#EVAL(#V3=1)> #IF(#V3=1)< CYCL DEF 1.0 PECKING> #IF(#V3=1)< CYCL DEF 1.1 SET UP-0.05> #IF(#V3=1)< CYCL DEF 1.2 DEPTH #ZDPTH> #IF(#V3=1)< CYCL DEF 1.3 PECKG #ZDPTH> #IF(#V3=1)< CYCL DEF 1.4 DWELL #DWELL> #IF(#V3=1)< CYCL DEF 1.5 F#FEED> < L X#XPOS Y#YPOS R0 F M99> < L Z#ZCHK R0 F M99> #EVAL(#V3=0) #EVAL(#V9=#ZDPTH) #EVAL(#V8=#ZCHK) #EVAL(#V7=#FEED) #EVAL(#V6=#FXD) @ @OP_SPDRL #CALL(OP_CSINK) @OP_CDRL #CALL(OP_CSINK) @OP_CBORE #CALL(OP_CSINK) @OP_SPFACE #CALL(OP_CSINK) @OP_CSINK #EVAL(#V0=2) #IF(#V9<>#ZDPTH)<#EVAL(#ZDPTH=#ZDPTH+.05)> #IF(#V9<>#ZDPTH)<#EVAL(#V3=1)> #IF(#V8<>#ZCHK)<#EVAL(#V3=1)> #IF(#V7<>#FEED)<#EVAL(#V3=1)> #IF(#V6<>#FXD)<#EVAL(#V3=1)> #IF(#V3=1)< CYCL DEF 1.0 PECKING> #IF(#V3=1)< CYCL DEF 1.1 SET UP-0.05> #IF(#V3=1)< CYCL DEF 1.2 DEPTH #ZDPTH> #IF(#V3=1)< CYCL DEF 1.3 PECKG #ZDPTH> #IF(#V3=1)< CYCL DEF 1.4 DWELL #DWELL> #IF(#V3=1)< CYCL DEF 1.5 F#FEED> < L X#XPOS Y#YPOS R0 F M99> < L Z#ZCHK R0 F M99> #EVAL(#V3=0) #EVAL(#V9=#ZDPTH) #EVAL(#V8=#ZCHK) #EVAL(#V7=#FEED) #EVAL(#V6=#FXD) @ @OP_TAP #EVAL(#V0=2) #IF(#V9<>#ZDPTH)<#EVAL(#ZDPTH=#ZDPTH+.05)> #IF(#V9<>#ZDPTH)<#EVAL(#V3=1)> #IF(#V8<>#ZCHK)<#EVAL(#V3=1)> #IF(#V7<>#FEED)<#EVAL(#V3=1)> #IF(#V6<>#FXD)<#EVAL(#V3=1)> #IF(#V3=1)< CYCL DEF 2.0 PECKING> #IF(#V3=1)< CYCL DEF 2.1 SET UP-0.05> #IF(#V3=1)< CYCL DEF 2.2 DEPTH #ZDPTH> #IF(#V3=1)< CYCL DEF 2.4 DWELL #DWELL> #IF(#V3=1)< CYCL DEF 2.5 F#FEED> < L X#XPOS Y#YPOS R0 F M99> < L Z#ZCHK R0 F M99> #EVAL(#V3=0) #EVAL(#V9=#ZDPTH) #EVAL(#V8=#ZCHK) #EVAL(#V7=#FEED) #EVAL(#V6=#FXD) @ @OP_BORE #EVAL(#V0=2) #IF(#V9<>#ZDPTH)<#EVAL(#ZDPTH=#ZDPTH+.05)> #IF(#V9<>#ZDPTH)<#EVAL(#V3=1)> #IF(#V8<>#ZCHK)<#EVAL(#V3=1)> #IF(#V7<>#FEED)<#EVAL(#V3=1)> #IF(#V6<>#FXD)<#EVAL(#V3=1)> #IF(#V3=1)< CYCL DEF 1.0 PECKING> #IF(#V3=1)< CYCL DEF 1.1 SET UP-0.05> #IF(#V3=1)< CYCL DEF 1.2 DEPTH #ZDPTH> #IF(#V3=1)< CYCL DEF 1.3 PECKG #ZDPTH> #IF(#V3=1)< CYCL DEF 1.4 DWELL #DWELL> #IF(#V3=1)< CYCL DEF 1.5 F#FEED> < L X#XPOS Y#YPOS R0 F M99> < L Z#ZCHK R0 F M99> #EVAL(#V3=0) #EVAL(#V9=#ZDPTH) #EVAL(#V8=#ZCHK) #EVAL(#V7=#FEED) #EVAL(#V6=#FXD) @ @OP_PDRL #EVAL(#V0=2) #IF(#V9<>#ZDPTH)<#EVAL(#ZDPTH=#ZDPTH+.05)> #IF(#V9<>#ZDPTH)<#EVAL(#V3=1)> #IF(#V8<>#ZCHK)<#EVAL(#V3=1)> #IF(#V7<>#FEED)<#EVAL(#V3=1)> #IF(#V6<>#FXD)<#EVAL(#V3=1)> #IF(#V3=1)< CYCL DEF 1.0 PECKING> #IF(#V3=1)< CYCL DEF 1.1 SET UP-0.05> #IF(#V3=1)< CYCL DEF 1.2 DEPTH #ZDPTH> #IF(#V3=1)< CYCL DEF 1.3 PECKG -#FMT(#PECK,D1.4)> #IF(#V3=1)< CYCL DEF 1.4 DWELL #DWELL> #IF(#V3=1)< CYCL DEF 1.5 F#FEED> < L X#XPOS Y#YPOS R0 F M99> < L Z#ZCHK R0 F M99> #EVAL(#V3=0) #EVAL(#V9=#ZDPTH) #EVAL(#V8=#ZCHK) #EVAL(#V7=#FEED) #EVAL(#V6=#FXD) @