@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 4 Vertical Mill Control: Heidenhaim TNC150 Control Notes: 1. This Custom Code Generator has been specially designed to support the following fixed cycles on the Heidenhaim Control: Drilling cycle (no dwell, no peck) Drill and Dwell (no peck) Tapping cyle Drill and Dwell (for boring, no peck) Peck Drill and Dwell A clearence value of .100 has been built in for all fixed cycles. @ @DECLARE //#OUTCND // outputs conditional status //#OUTSEC // outputs @section names //#OUTREF // outputs processing errors //#OUTRPT // outputs an error report file @ @START % #ONBLK BEGIN PRG #FILE INCH TOOL DEF #TOOL L+0,0000 R+0,0000 CALL LBL 1 REP STOP M05 TOOL CALL #TOOL Z S#SPEED L X#XPOS Y#YPOS R0 F6299 M @ @TOOLCHG CALL LBL 1 REP STOP M05 TOOL DEF #TOOL L+0,0000 R+0,0000 TOOL CALL #TOOL Z S#SPEED #RESET(#SPNDL) @ @END LBL 1 TOOL CALL 0 Z S40,000 L Z#ZPOS R0 F6299 M L X#XPOS Y#YPOS R0 F6299 M LBL 0 STOP M02 END PRG #FILE INCH @ @STPROF < L X#XPOS Y#YPOS R0 F6299 M> @ @ENDPROF < L Z#ZPOS R0 F6299 M> @ @RAP < L X#XPOS Y#YPOS R0 F6299 M> @ @LINE L< X#XPOS>< Y#YPOS> R0 F#FEED M @ @ARC CC X#XCTR Y#YCTR C X#XPOS Y#YPOS DR#MOV R0 F#FEED M @ @ZCLEARMV < L Z#ZPOS R0 F6299 M> @ @ZCHKMV < L Z#ZPOS R0 F6299 M> @ @ZDPTHMV < L Z#ZPOS R0 F#FEED M> @ @OP_SPEC #CALL(OP_DRL) @OP_REAM #CALL(OP_DRL) @OP_DRL #IF(#V8<#ZCHK)< L Z#ZCHK R0 F6299 M> < L X#XPOS Y#YPOS R0 F6299< #SPNDL>#ELSE< M99>> < L Z#ZCHK R0 F6299 M> #EVAL(#V3=0) #IF(#V9<>#ZDPTH)<#EVAL(#ZDPTH=#ZDPTH+.1)> #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 -.100> #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 0,000> #IF(#V3=1)< CYCL DEF 1.5 F#FEED> #IF(#V3=1)< CYCL CALL M> #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 #IF(#V8<#ZCHK)< L Z#ZCHK R0 F6299 M> < L X#XPOS Y#YPOS R0 F6299< #SPNDL>#ELSE< M99>> < L Z#ZCHK R0 F6299 M> #EVAL(#V3=0) #IF(#V9<>#ZDPTH)<#EVAL(#ZDPTH=#ZDPTH+.1)> #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(#V5<>#DWELL)<#EVAL(#V3=1)> #IF(#V3=1)< CYCL DEF 1.0 PECKING> #IF(#V3=1)< CYCL DEF 1.1 SET UP -.100> #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> #IF(#V3=1)< CYCL CALL M> #EVAL(#V9=#ZDPTH) #EVAL(#V8=#ZCHK) #EVAL(#V7=#FEED) #EVAL(#V6=#FXD) #EVAL(#V5=#DWELL) @ @OP_TAP #IF(#V8<#ZCHK)< L Z#ZCHK R0 F6299 M> < L X#XPOS Y#YPOS R0 F6299< #SPNDL>#ELSE< M99>> < L Z#ZCHK R0 F6299 M> #EVAL(#V3=0) #IF(#V9<>#ZDPTH)<#EVAL(#ZDPTH=#ZDPTH+.1)> #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 TAPPING> #IF(#V3=1)< CYCL DEF 2.1 SET UP -.100> #IF(#V3=1)< CYCL DEF 2.2 DEPTH #ZDPTH> #IF(#V3=1)< CYCL DEF 2.3 DWELL 0,000> #IF(#V3=1)< CYCL DEF 2.4 F#FEED> #IF(#V3=1)< CYCL CALL M> #EVAL(#V9=#ZDPTH) #EVAL(#V8=#ZCHK) #EVAL(#V7=#FEED) #EVAL(#V6=#FXD) @ @OP_BORE #IF(#V8<#ZCHK)< L Z#ZCHK R0 F6299 M> < L X#XPOS Y#YPOS R0 F6299< #SPNDL>#ELSE< M99>> < L Z#ZCHK R0 F6299 M> #EVAL(#V3=0) #IF(#V9<>#ZDPTH)<#EVAL(#ZDPTH=#ZDPTH+.1)> #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(#V5<>#DWELL)<#EVAL(#V3=1)> #IF(#V3=1)< CYCL DEF 1.0 PECKING> #IF(#V3=1)< CYCL DEF 1.1 SET UP -.100> #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> #IF(#V3=1)< CYCL CALL M> #EVAL(#V9=#ZDPTH) #EVAL(#V8=#ZCHK) #EVAL(#V7=#FEED) #EVAL(#V6=#FXD) #EVAL(#V5=#DWELL) @ @OP_PDRL #IF(#V8<#ZCHK)< L Z#ZCHK R0 F6299 M> < L X#XPOS Y#YPOS R0 F6299< #SPNDL>#ELSE< M99>> < L Z#ZCHK R0 F6299 M> #EVAL(#V3=0) #IF(#V9<>#ZDPTH)<#EVAL(#ZDPTH=#ZDPTH+.1)> #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(#V5<>#DWELL)<#EVAL(#V3=1)> #IF(#V4<>#PECK)<#EVAL(#V3=1)> #IF(#V4<>#PECK)<#EVAL(#PECK=#PECK*-1)> #IF(#V3=1)< CYCL DEF 1.0 PECKING> #IF(#V3=1)< CYCL DEF 1.1 SET UP -.100> #IF(#V3=1)< CYCL DEF 1.2 DEPTH #ZDPTH> #IF(#V3=1)< CYCL DEF 1.3 PECKG #PECK> #IF(#V3=1)< CYCL DEF 1.4 DWELL #DWELL> #IF(#V3=1)< CYCL DEF 1.5 F#FEED> #IF(#V3=1)< CYCL CALL M> #EVAL(#V9=#ZDPTH) #EVAL(#V8=#ZCHK) #EVAL(#V7=#FEED) #EVAL(#V6=#FXD) #EVAL(#V5=#DWELL) #EVAL(#V4=#PECK) @