// ---------------------------------------- // // 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-ISO.NTS 11/06/87 Machine: Bridgeport 516V Milling Machine with Heidenhaim TNC155 Control **** ISO Format ***** Notes: 1. If tool change positions are desired, the first point of each new tool MUST be at the tool change location. The Z_Check, Z_Clear, and Z_Depth for the tool change point MUST be assigned as "?" or unknown. 2. 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. 3. 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. 4. 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 . 5. For additional information regarding generation of NC and CNC programs using SmartCAM for milling machines, see the Beginning and Advanced Mill Examples in your Applications Manual. @START %#FILE G70 #ONBLK T0 G17 #MOV G40 #ABSI Z+2.0 < #MOV> X#XPOS Y#YPOS M05 #EVAL(#TLDIA=#TLDIA/2) G99 T#TOOL L#TLEN R#TLDIA M00 T#TOOL G17 S#SPEED #SPNDL #RESET(#V9) #NEXTPT @TOOLCHG #MOV T0 Z+2.0 < X#XPOS>< Y#YPOS> M05 #EVAL(#TLDIA=#TLDIA/2) G99 T#TOOL L#TLEN R#TLDIA M00 T#TOOL S#SPEED #SPNDL #RESET(#V9) #UPDATE(#ZPOS) @END #MOV T0 Z+2.0 X#XHOME Y#YHOME M05 M02 %#FILE G70 @STPROF < #MOV>< X#XPOS>< Y#YPOS> @ENDPROF < #DCOMP>< X#XPOS>< Y#YPOS>< F#FEED> @RAP #RESET(#V9) < #MOV>< X#XPOS>< Y#YPOS> @LINE < #MOV>< #DCOMP>< X#XPOS>< Y#YPOS>< Z#ZPOS>< F#FEED> @ARC #MOV< #DCOMP> X#XPOS Y#YPOS I#XCTR J#YCTR< F#FEED> @ZCLRMV << #MOV> Z#ZPOS> @ZCHKMV << #MOV> Z#ZPOS> @ZDPTHMV << #MOV> Z#ZPOS< F#FEED>> @FXD1 #IF(#V9<>#ZDPTH)<#EVAL(#ZDPTH=#ZDPTH+.1)> < #FXD P01 -0.1 P02 #ZDPTH P03 #ZDPTH P05 #FEED> G79< X#XPOS>< Y#YPOS> #EVAL(#V9=#ZDPTH) @FXD2 #IF(#V9<>#ZDPTH)<#EVAL(#ZDPTH=#ZDPTH+.1)> < #FXD P01 -0.1 P02 #ZDPTH P03 #ZDPTH P04 #DWELL P05 #FEED> G79< X#XPOS>< Y#YPOS> #EVAL(#V9=#ZDPTH) @FXD3 #IF(#V9<>#ZDPTH)<#EVAL(#ZDPTH=#ZDPTH+.1)> < #FXD P01 -0.1 P02 #ZDPTH P03 0 P04 #FEED> G79< X#XPOS>< Y#YPOS> #EVAL(#V9=#ZDPTH) @FXD4 #IF(#V9<>#ZDPTH)<#EVAL(#ZDPTH=#ZDPTH+.1)> < #FXD P01 -0.1 P02 #ZDPTH P03 #ZDPTH P04 #DWELL P05 #FEED> G79< X#XPOS>< Y#YPOS> #EVAL(#V9=#ZDPTH) @FXD5 #IF(#PECK>.001)<#EVAL(#PECK=#PECK*-1)> #IF(#V9<>#ZDPTH)<#EVAL(#ZDPTH=#ZDPTH+.1)> < #FXD P01 -0.1 P02 #ZDPTH P03 #PECK P04 #DWELL P05 #FEED> G79< X#XPOS>< Y#YPOS> #EVAL(#V9=#ZDPTH) @DWELL G04 F#DWELL#EVAL(#TIME=#DWELL/60) @