# Programming Systems | CNC programming Basics | G-Code | M-Code | Incremental and Absolute Programming System | Interpolation | Linear Interpolation | Circular Interpolation

**Interpolation**

The
method by which contouring machine tools move from one programmed point
to the next is called interpolation. This ability to merge individual
axis points into a predefined tool path is built into most of today’s
MCUs.

There are five methods of interpolation:

- linear

- circular

- helical

- parabolic

- cubic

All contouring controls provide linear interpolation, and most controls are capable of both

linear and circular interpolation. Helical, parabolic, and cubic interpolation are used by industries that manufacture parts which have complex shapes, such as aerospace parts and dies for car bodies.

linear and circular interpolation. Helical, parabolic, and cubic interpolation are used by industries that manufacture parts which have complex shapes, such as aerospace parts and dies for car bodies.

**Linear Interpolation**

Linear
Interpolation consists of any programmed points linked together by
straight lines, whether the points are close together or far apart

Curves
can be produced with linear interpolation by breaking them into short,
straight-line segments. This method has limitations, because a very
large number of points would have to be programmed to describe the curve
in order to produce a contour shape. A contour programmed in linear
interpolation requires the coordinate positions (XY positions in
two-axis work) for the start and finish of each line segment. Therefore,
the end point of one line or segment becomes the start point for the
next segment, and so on, throughout the entire program.

**Circular Interpolation**

The
development of MCUs capable of circular interpolation has greatly
simplified the process of programming arcs and circles. To program an
arc, the MCU requires only the coordinate positions (the XY axes) of the
circle center, the radius of the circle, the start point and end point
of the arc being cut, and the direction in which the arc is to be cut
(clockwise or counterclockwise)

**Codes:**

The most common codes used when programming CNC machines tools are

- G-codes (preparatory functions), and

- M codes (miscellaneous functions).

Other codes such as F, S, D, and T are used for machine functions such as feed, speed, cutter diameter offset, tool number, etc.

**G-Code**

**G-codes are sometimes called cycle codes because they refer to some action occurring on the X, Y, and/or Z axis of a machine tool.**

Group | Code | Function |

01 | G00 | Rapid Positioning |

01 | G01 | Linear Interpolation |

01 | G02 | Circular Interpolation clockwise (CW) |

01 | G03 | Circular Interpolation Counter clockwise (CCW) |

06 | G20* | Inch input (in.) |

06 | G21* | Metric Input (mm) |

G24 | Radius Programming (**) | |

00 | G28 | Return to Reference Point |

00 | G29 | Return from Reference Point |

G32 | Thread Cutting (**) | |

07 | G40 | Cutter Compensation Cancel |

07 | G41 | Cutter Compensation Left |

07 | G42 | Cutter Compensation Right |

08 | G43 | Tool length compensation positive |

08 | G44 | Tool length compensation minus |

08 | G49 | Tool Length Compensation Cancel |

G84 | Canned Turning Cycle (**) | |

03 | G90 | Absolute Programming |

03 | G91 | Incremental Programming |

(**) – refers only to CNC lathes and turning centers.

**M-CODE:**

**M or miscellaneous codes are used to either turn ON or OFF different functions which control certain machine tool operations.**

Code Function

M00 Program stop

M02 End of program

M03 Spindle start (forward CW)

M04 Spindle start (reverse CCW)

M05 Spindle stop

M06 Tool change

M08 Coolant on

M09 Coolant off

M10 Chuck – clamping (**)

M11 Chuck – unclamping (**)

M12 Tailstock spindle out (**)

M13 Tailstock spindle in (**)

M17 Tool post rotation normal (**)

M18 Tool post rotation reverse (**)

M30 End of tape and rewind

M98 Transfer to subprogram

M99 End of subprogram

(**) – refers only to CNC lathes and turning centers.