A common operation performed on machine tools is drilling - spot drilling, straight drilling or 'peck' drilling. The principles are basically the same, whether it is applied on a lathe or a mill and to a large extent are the same as those used on a manual pedestal type drill.
If the material is soft (a relative term obviously!) then it's likely the operator is simply going to pull down on the quill and push the drill straight through. With harder materials it may be necessary to periodically lift the drill away from the 'cutting face', clearing swarf and allowing coolant in, then continuing the operation for a further 'peck' amount and so on. Conversely, softer materials and plastics in particular, are prone to producing 'stringy' swarf and this needs to be broken up, therefore introducing a peck is a useful function.
Most CNC machines have basic facilities for peck drilling, which whilst achieving the requirements above are not actually producing the best results both in terms of drill life and also cycle time and ultimate machine productivity. Haas have incorporated a number of optional features within their drilling cycles to allow the user to customise the operation. Take the G83 cycle below, all the normal commands are available for feedrate, hole depth etc., but in addition you have the option of specifying an I, J and K value, where I is the depth of the first cut, J is the amount to reduce each cut or peck by and K is the minimum amount of each peck, in other words as the hole gets deeper the actual cutting peck is decreased.
G83 Normal Peck Drilling Canned Cycle
F Feedrate in inches (or mm) per minute
I Size of first cutting depth
J Amount to reduce cutting depth each pass
K Minimum depth of cut
L Number of holes if G91 (Incremental Mode) is used
P Pause at end of last peck, in seconds (Dwell)
Q Cut depth, always incremental
R Position of the R plane (position above the part)
X X-axis location of hole
Y Y-axis location of hole
Z Position of the Z-axis at the bottom of hole
The other drilling cycles, G81, G82 and G73 also have optional commands, which can be applied.