G-code is a common name for the programming language that drives NC and CNC machine tools. It was developed by EIA in the early 1960s, a final revision was approved in February 1980 as RS274D.

Due to the lack of further development, the sheer variety of machine tool configurations, and little demand for interoperability, few machine tool controllers (CNCs) adhere to this standard. Extensions and variations have been added to it independently by manufacturers, meaning that operators have to know the dialects and quirks of the particular machines they use, and CAM systems have had to limit themselves to the lowest common denominator of all the tools that they support.

Many manufacturers tried to overcome this difficulty of remaining compatible by following the lead of a machine tool controller built by Fanuc. Unfortunately, Fanuc does not remain consistent with RS-274 or its own previous standard, and has been slow at adding new features and exploiting the increase in computing power. For example, they changed g70/g71 to g20/21; they used parentheses for comments which caused difficulty when they introduced mathematical calculations; they started to use nanometers just recently (requires 64 bit); they introduced the nurbs to overcome slow fetching of blocks from memory (instead of caching).

G-code is also the name of any word in a CNC program that begins with the letter G, and generally is a code telling the machine tool what type of action to perform, such as:

*  rapid move
* controlled feed move in a straight line or arc
*  series of controlled feed moves that would result in a hole being bored, a workpiece cut (routed) to a specific dimension, or a decorative profile shape added to the edge of a workpiece.
* change a pallet
* Set tool information such as offset.

There are other codes; the type codes can be thought of like registers in a computer

X absolute position
Y absolute position
Z absolute position
A position (rotary around X)
B position (rotary around Y)
C position (rotary around Z)
U Relative axis parallel to X
V Relative axis parallel to Y
W Relative axis parallel to Z
M code (another “action” register or Machine code(*))(otherwise referred to as a “Miscellaneous” function”
F feed rate
S spindle speed
N line number
R Arc radius or optional word passed to a subprogram/canned cycle
P Dwell time or optional word passed to a subprogram/canned cycle
T Tool selection
I Arc data X axis
J Arc data Y axis.
K Arc data Z axis, or optional word passed to a subprogram/canned cycle
D Cutter diameter/radius offset
H Tool length offset

(*) M Codes control the overall machine, causing it to stop, start, turn on coolant, etc. Whereas other codes pertain to the path traversed by cutting tools. Different machine tools may use the same code to perform different functions; even machines that use the same CNC control.

Common Fanuc G Codes

G00     Fast positioning
G01     Linear interpolation
G02     CW circular interpolation
G03     CCW circular interpolation
G10/G11     Data writing/Data write cancel
G17     X-Y plane selection
G18     X-Z plane selection
G19     Y-Z plane selection
G20     Programming in inches
G21     Programming in mm
G28     Return to home position
G31     Skip function (used for probes and tool length                   measurement systems)
G33     Constant pitch threading
G34     Variable pitch threading
G40     Tool radius compensation off
G41     Tool radius compensation left
G42     Tool radius compensation right
G90     Absolute programming
G91     Incremental programming
G94/G95     Inch per minute/Inch per revolution feed
G96/G97     Constant cutting speed (Constant surface speed)/Constant rotation speed (constant RPM)

A standardized version of G-code known as BCL is used, but only on very few machines.

G-code is understood by Gerber photoplotters, machine tool controls, and CNC machinists. CNC is written by hand for volume production jobs. In this environment, the inherent inefficiency of CAM-generated g-code is unacceptable.

G-code files may be generated by CAM software such as Alphacam, Artcam, Edgecam, Featurecam, GibbsCAM, Mastercam, OneCNC, Plasma cam, Router-CIM, SmartCAM, Surfcam, etc. Those applications typically use translators called post-processors to output code optimized for a particular machine type or family. Post-processors are often user-editable to enable further customization, if necessary. G-code is also output by specialized CAD systems used to design printed circuit boards. Such software must be customized for each type of machine tool that it will be used to program.

Some CNC machines use “Conversational” programming, which is a wizard-like programming mode that either hides G-code or completely bypasses the use of G-code. Some popular examples are Mazak’s Mazatrol, Hurco’s Ultimax and Mori Seiki’s CAPS conversational software.

http://en.wikipedia.org/wiki/G-code

Aviation Academy India
Ragiv Gandhi Aviation Academy is a professional pilot Training, Aircraft
Maintenance, Air Charter, Civil, Military Aviation and pilot Training Career Opportunities Institution. Best Aviation Academy In India.