CNC Programming Skills: Understanding G71 and G72 on a Fanuc Lathe
Not Available / Digital Item
Please be aware orders placed now may not arrive in time for Christmas, please check delivery times.
CNC Programming Skills: Understanding G71 and G72 on a Fanuc Lathe
The canned cycles on Fanuc lathes are so powerful and offer so much flexibility that once you start using these, you would never think of using any CAM software for conventional jobs. The present text, which is the sixth in the series “CNC Programming Skill,†explains in detail the multiple rough-turning cycle (G71) and the multiple rough-facing cycle (G72) on an i-series Fanuc control using G-code System A.
The following excerpts from the book would give some idea of the style of presentation:
O0001; (Program number 1) G21 G96 G99; (mm mode, CSS and feed in mm/rev selected) G54; (Workpiece coordinate system) G50 S2000; (The maximum RPM clamped to 2000 for the CSS mode) G28 U0; (Tool goes to the X reference position) G28 W0; (Tool goes to the Z reference position. It is a safe practice to send the tool first to the X reference point, and then to the Z reference point, as it eliminates the possibility of any interference during movement. Note that commanding G28 in both the blocks is necessary because it is a non-modal or one-shot G code. G codes belonging to Group 0 are non-modal codes) T0101; (Tool number 1 and offset number 1 selected for roughing) G00 Z2; X30; (Rapid positioning at the start/end point of G71. No radial clearance but 2 mm axial clearance from the workpiece has been provided. An axial move, followed by a radial move, to reach the desired position, eliminates the possibility of any interference during movement. Note that G00 is implied here because it is a modal G code of Group 1. Based on the similarity in their functionality, G codes have been arranged into various Groups such as 0, 1, 2 etc. Except those belonging to Group 0, all G codes are modal codes which remain effective until another G code from the same Group is programmed. At any time, one G code from each group, except Group 0 codes, is effective. Every Group, except Group 0, has a default code which remains effective when the machine is powered ON or when the control is reset. It is, however, a good practice not to rely on defaults, and explicitly program every code that is needed) M03 S20; (CW spindle starts, maintaining CSS = 20 m/min. In the CSS mode, a large radial change in the rapid mode is not desirable because it unnecessarily loads the spindle which needs to accelerate or decelerate at a high rate to maintain the specified CSS. Therefore, the spindle has been started after placing the tool near the workpiece) M08; (Coolant starts) G71 U0.5 R0.2; (Depth of cut 0.5 mm, and radial tool retraction 0.2 mm specified) G71 P1 Q2 U0.1 W0.1 F0.3; (The profile definition starts at the block with the sequence number N1, and ends at the block with the sequence number N2. Any valid sequence number, other than 1 and 2, can also be used. Except for these two blocks, which G71 searches, sequence numbers for other blocks in the program are optional. The X finishing allowance (on diameter) is 0.1 mm, the Z finishing allowance is 0.1 mm, and the feedrate is 0.3 mm/rev. Both the finishing allowances must be positive for this geometry which resembles case (a) of Fig. 2) N1 G00 X0; (No Z or W has been specified in this block. Hence, Z2 is implied, and the control would select G71 Type-1 for machining. (0,2) becomes the new first point on the profile. The actual first point (0,0) becomes the second point in the definition of the profile. This block should use G00, rather than G01, because of the reasons explained earlier) G01 Z0 F0.1; (The block end point is the actual first point P on the profile. The feedrate specified here would be ignored by G71. It would be later used by G70, for this as well as all subsequent blocks. Feedrate is a modal data. It remains effective until it is changed. Therefore, if the next block uses the same feedrate as that in the previous block, then the feedrate need not be commanded in the next block. Also, in any block, any unchanged coordinate need not be specified. Therefore, X0 is implied in this block) ....