2012-08-06 16:21:11 (CET)

Programming Errors and Limitations

The Interpreter will issue the following error messages involving cutter radius compensation. In addition to these, there are several bug messages related to cutter compensation, but they should never occur.


  1. Cannot change axis offsets with cutter radius comp

  2. Cannot change units with cutter radius comp

  3. Cannot probe with cutter radius comp on

  4. Cannot turn cutter radius comp on out of xy-plane

  5. Cannot turn cutter radius comp on when on

  6. Cannot use g28 or g30 with cutter radius comp

  7. Cannot use g53 with cutter radius comp

  8. Cannot use xz-plane with cutter radius comp

  9. Cannot use yz-plane with cutter radius comp

  10. Concave corner with cutter radius comp

  11. Cutter gouging with cutter radius comp

  12. D word with no g41 or g42

  13. Multiple d words on one line

  14. Negative d word tool radius index used

  15. Tool radius index too big

  16. Tool radius not less than arc radius with comp

  17. Two g codes used from same modal group.


Most of these are self-explanatory. For those that require explanation, an explanation is given below.


Changing a tool while cutter radius compensation is on is not treated as an error, although it is unlikely this would be done intentionally. The radius used when cutter radius compensation was first turned on will continue to be used until compensation is turned off, even though a new tool is actually being used.


Concave Corner and Tool Radius Too Big (10 and 16)

When cutter radius compensation is on, it must be physically possible for a circle whose radius is the half the diameter given in the tool table to be tangent to the contour at all points of the contour. In particular, the Interpreter treats concave corners and concave arcs into which the circle will not fit as errors, since the circle cannot be kept tangent to the contour in these situations. See Figure A-5. This error detection does not limit the shapes which can be cut, but it does require that the programmer specify the actual shape to be cut (or path to be followed), not an approximation. In this respect, the NIST

RS274/NGC Interpreter differs from interpreters used with many other controllers, which often allow these errors silently and either gouge the part or round the corner.



concave corner                    concave arc too small

-tool does not fit                 -tool does not fit



In both examples, the line represents a contour, and the circle represents the cross section of a tool following the contour using cutter radius compensation (tangent to one side of the path.)



Cannot Turn Cutter Radius Comp on When On (5)

If cutter radius compensation has already been turned on, it cannot be turned on again. It must be turned off first; then it can be turned on again. It is not necessary to move the

cutter between turning compensation off and back on, but the move after turning it back on will be treated as a first move, as described below.

It is not possible to change from one cutter radius index to another while compensation is on because of the combined effect of rules 5 and 12. It is also not possible to switch compensation from one side to another while compensation is on.



Cutter Gouging (11)

If the tool is already covering up the next XY destination point when cutter radius compensation is turned on, the gouging message is given when the line of NC code

which gives the point is reached. In this situation, the tool is already cutting into material it should not cut. More details are given in Section A.6.



Tool Radius Index Too Big (15)

If a D word is programmed that is larger than the number of tool carousel slots, this error message is given. In the SAI, the number of slots is 68.



Two G Codes Used from Same Modal Group (17)

This is a generic message used for many sets of G codes. As applied to cutter radius

compensation, it means that more than one of G40, G41, and G42 appears on a line of NC code. This is not allowed.


First Move into Cutter Compensation

The algorithm used for the first move after cutter radius compensation is turned on, when the first move is a straight line, is to draw a straight line from the programmed destination point which is tangent to a circle whose center is at the current point and whose radius is the radius of the tool. The destination point of the tool tip is then found as the center of a circle of the same radius tangent to the tangent line at the destination point. If the programmed point is inside the initial cross section of the tool (the circle on the left), an error is signaled as described in Section A.5.3. The concept of the algorithm is shown in Figure A-6.

The function that locates the destination point actually takes a computational shortcut based on the fact that the line (not drawn on the figure) from the current point to the programmed point is the hypotenuse of a right triangle having the destination point at the corner with the right angle. 



Figure A 6, First cutter radius compensation move - Straight




If the first move after cutter radius compensation has been turned on is an arc, the arc which is generated is derived from an auxiliary arc which has its center at the programmed center point, passes through the programmed end point, and is tangent to the cutter at its current location. If the auxiliary arc cannot be constructed, an error is signaled. The generated arc moves the tool so that it stays tangent to the auxiliary arc throughout the move. This is shown in Figure A-7. 



Figure A 7, First cutter radius compensation move - Arc




Figure A-7 shows the conceptual approach for finding the arc. The actual computations differ between the center format arc and the radius format arc (see Section 3.5.3).

After the entry moves of cutter radius compensation, the Interpreter keeps the tool tangent to the programmed path on the appropriate side. If a convex corner is on the path, an arc is inserted to go around the corner. The radius of the arc is half the diameter given in the tool table.

When cutter radius compensation is turned off, no special exit move takes place. The next move is what it would have been if cutter radius compensation had never been turned on and the previous move had placed the tool at its current position.