Center point offset controlling (G164/G165)

G164 Center point correction OFF (modal)
G165 Center point correction ON (modal, default)

With active G165, a circle programmed through I-statement, J-statement and K-statement is corrected in that way, that under specified circular direction (G02/G03), specified starting position (end position of the previous block) and specified end position (Coordinates in circular block) an arc of a circle can be interpolated. Thereby the center point programmed with I, J and K is possibly shifted! The more precise the center point is indicated, the less the center point offset will be.

For the deviation from programmed to shifted center point two limit values [1]-5/-6 are monitored. If these are exceeded an error message is output:

mittelpkt_diff: Permissible offset in 10-4 mm

mittelpkt_faktor: Percentage offset in 0,1 %

It is verified whether the center point offset ∆m is larger than the absolute value "mittelpkt_diff"

m > mittelpkt_diff ?

and whether the center point offset ∆m is greater than the product of "mittelpkt_faktor/1000" and the corrected radius "radius".

m > mittelpkt_faktor/1000 * radius ?

The upper limit for ∆m is thus linearly dependent on the calculated radius. The relationship between center point offset ∆m and the calculated radius "radius" shown in Fig. 4.48 is obtained.

Example:

"mittelpkt_faktor" = 5 signifies that the distance between the programmed center point coordinates and the shifted center point coordinates should be maximum 0.5 % of the corrected radius of the circle.

Center point offset controlling (G164/G165) 1:
Fig. 4.48: Relationship between center point offset m and the calculated radius “radius”.

The programmed center point coordinates must thus lie in a circumcircle around the shifted center point of the circle. The radius of the circumcircle corresponds to the permissible center point offset ∆m, that can be set through the two parameters mittelpkt_diff" and "mittelpkt_faktor" (Fig. 4.49).

Center point offset controlling (G164/G165) 2:
Fig. 4.49: Region of permissible programmed center points

Method for correcting a programmed circle center point:

A circle that is specified in a NC-program through starting-point S, endpoint E and center-point M is geometrically redundant. This problem is solved, if the circle center point coordinates and the circle radius are corrected with the following algorithm.

The following two dimensional vectors are required:

The chosen method, according to Fig. 4.50, is based on the fact that from the center point to the start or end point, the arithmetical average of absolute values is obtained from both vectors, which respectively point from the center point to the start or end point. The new center point thus emerges from the two vectors of this average length.

Geometrically this means that the programmed center point is shifted on to an elliptical path to the point of intersection of the smaller elliptical semi-axis with the ellipse. To avoid time-consuming case differentiation's (theoretically two center points are possible), the following algorithm was implemented:

By forming chordal vector of the circle

v sehne = v ende - v start

and the local vector for the programmed circle center-point

v mittel = v start + r start

the relative vector from circle center point to circle end point is obtained:

r ende = v ende - v mittel

Thus, it is now possible to determine the radius:

radius = 0.5 * (| r start | + | r ende |)

By projecting (scalar product) the start radius vector on to the chordal vector, the point upon which the perpendicular vector to the center-point of the chord is obtained:

v fusz = ( v sehne * r start ) / | v sehne | 2

With these data the perpendicular vector to the center point can be determined:

v lot = r start - v fusz

Now, this vector should be standardized to the length of the projection of the new radius vector using programmed chordal vector:

v lot_neu = v lot * sqrt [radius 2- (|0.5 * v sehne|) 2] / | v lot|

The new relative radius vector would thus be:

r start_neu = 0.5 * v sehne + v lot_neu

If two circles are to be traversed one after the other, and the radius was programmed only for the first circle and, a center point correction must be carried out, then the calculation of the second circle is based not on the corrected but on the programmed radius of the first circle.

Center point offset controlling (G164/G165) 3:
Fig. 4.50: Correction of programmed radius of the circle