// ---------------------------------------- // // 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 M-HEIDBP.NTS 9/17/81 Machine: Bridgeport Series II Interact 4 Vertical Mill with Heidenhaim TNC150 Control Notes: 1. This Custom Code Generator has been specially designed to support the following fixed cycles on the Heidenhaim Control: @FXD1 - Drilling cycle (no dwell, no peck) @FXD2 - Drill and Dwell (no peck) @FXD3 - Tapping cyle @FXD4 - Drill and Dwell (for boring, no peck) @FXD5 - Peck Drill and Dwell A clearence value of .100 has been built in for all fixed cycles. 2. The variable word #DWELL can be assigned for the @FXD2 and @FXD4 cycles. The value of #DWELL will specify the amount of time of the dwell. If no value is specified, the default value from Question #50 in the machine file will be used. The @FXD2 cycle will be used if the tool specified in the Job Plan is a Spot Drill or an End Mill. @FXD4 cycle will be used if the tool specified in the Job Plan is a Boring Bar. 3. The variable words #DWELL and #PECK can be assigned for the @FXD5 cycle to specify the Dwell time and the amount of Peck. See sample Job Plan TEST1.JSF. The @FXD5 cycle will be used if the tool specified in the Job Plan is a Drill and the point in the shape file has Hole_Op set to Peck_Drill. The values #PECK and #DWELL should always be assigned as positive numbers. See sample Job Plan TEST1.JSF . 4. For additional information regarding generation of NC and CNC programs using SmartCAM for milling machines, see the Begining and Advanced Mill Examples in your Applications Manual. @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> @FXD1 #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) @FXD2 #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) @FXD3 #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) @FXD4 #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) @FXD5 #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) @