Every
CNC programmer and most of CNC machine operators have a simple chart of all
common G-commands (G-codes) and M-functions (M-codes), usually tucked away
somewhere under the lid of their tool box or they have them posted on any
convenient machine side or cork board. This chapter covers most of those
G-codes that are either uncommon, seldom used, special, or outright mysterious.
Keep in mind that machine manufacturers often add G-codes and M-codes of their
own. These special codes or functions cannot be covered in a general
publication, such as this handbook.
Miscellaneous
functions (M-functions) are not covered here at all, as they are often very
much dependent on the machine tool manufacturer - for that reason, they are not
part of this chapter. The situation is much different with various G-codes,
some standard, some optional - they are covered here.
These
special and less frequently used G-codes are as important as those used on a daily
basis, even if only as accepting them for possible future use. Programmers
often forget that there are many preparatory commands available that are not
used very frequently. In this chapter, the focus will be on those G-codes that
may sometimes become the key to solving a particular problem or achieving a
particular programming goal. Some of these preparatory G-codes have a direct
relationship with each other, in which case, all related commands will be
considered together and explained together.
Divided
into seven groups, seventeen preparatory commands covered in this chapter are:
Another
practical, but rarely used and optional feature of the CNC system is the
definition of special zones that the tool can enter
(allowed)
or those that the tool cannot enter
(disallowed)
:
The
definition of custom limits for a three-axis machining center is specified by
diagonally opposed coordinate points, consisting of three axes, and resulting
in a box - rectangular areas for CNC lathes are based on the same principle.
For any machine, the specially defined zone establishes the required boundary.
Control system parameter determines whether the selected zone will be protected
internally (inside the boundary) or externally (outside the boundary). For
example, parameter
1300
, bit
#0
is used for this purpose on
Fanuc 16-18-21 controls (additional parameter settings may also apply).
The
programming format for the G22 command is:
G22 = Stored stroke limits activated ...
defined zone
XYZ = Start point of the limited area ...
measured from machine zero
IJK = End point of the limited area ...
measured from machine zero
The
active units of measurement are used as input values. G23 cancels the stored
stroke check and is programmed by itself in a block. No more checking will be
performed after the G23 command. There are two important conditions to be
satisfied when specifying the G22 corner values:
The
shaded area in the illustration above identifies the
prohibited
zone.
G21
G17 G23 G40 G80
G22 X-150.0 Y-75.0 K-100.0 I-280.0 J-175.0 K-125.0
(STROKE CHECK ON)
G90 G54 G00 X.. Y.. S.. M03
…
<machining with
stored stroke check active>
...
G23 (STROKE
CHECK OFF)
Can
you tell how large zone has been selected for protection in the program above?
It should be easy: 130 mm along X-axis, 100 mm along the Y-axis, and 25 mm
along the Z-axis. Just take the difference between X-I, Y-J, and Z-K amounts in
the G22 statement. Before any programmed tool motion attempts to enter the
forbidden zone, the control system issues an alarm and stops further program processing
before
the tool enters the prohibited zone. The most
common use of this feature is to program a protective zone around fixtures,
during multi-part setups and other undesirable items that may be in the way of
toolpath (even part of the current work may be defined as prohibited).
There
is a rather good reason why this apparently powerful control feature has not
been commonly used. The main reason is that it's just
not powerful enough
; mainly when working with tool length and radius
offsets. Neither offset is evaluated during the stroke check, because all the
command does is following the XYZ motions. Also, in practice, it is not always
easy to actually establish the zone that is to be protected by the program,
particularly when programming away from the machine.
G23
cancellation command stands on its own - it does not accept any arguments and
must be programmed in a separate block. One final word of caution:
Copyright © 2006
Industrial Press Inc.