CNC | C | C++ | Assembly | Python | R | Rust | Arduino | Solidworks | Embedded Systems

# G92, G92.1, G92.2 AND G92.3 - G92 OFFSETS

Details:
You are strongly advised not to use this legacy feature on any axis where there is another offset applied.
To make the current point have the coordinates you want (without motion), program:
G92 X~ Y~ Z~ A~, where the axis words contain the axis numbers you want. All axis words are optional, except that at least one must be used. If an axis word is not used for a given axis, the coordinate on that axis of the current point is not changed.
It is an error if all axis words are omitted.
G52 and G92 use common internal mechanisms in the CS and may not be used together.
When G92 is executed, the origin of the currently active coordinate system moves. To do this, origin offsets are calculated so that the coordinates of the current point with respect to the moved origin are as specified on the line containing the G92. In addition, parameters 5211 to 5214 are set to the X-, Y-, Z-, A-axis offsets. The offset for an axis is the amount the origin must be moved so that the coordinate of the controlled point on the axis has the specified value.
Here is an example. Suppose the current point is at X=4 in the currently specified coordinate system and the current X-axis offset is zero, then G92 X7 sets the X-axis offset to -3, sets parameter 5211 to -3 and causes the X-coordinate of the current point to be 7.
The axis offsets are always used when motion is specified in absolute distance mode using any of the fixture coordinate systems. Thus, all fixture coordinate systems are affected by G92.
Being in incremental distance mode has no effect on the action of G92.
Non-zero offsets may already be in effect when the G92 is called. They are in effect discarded before the new value is applied. Mathematically the new value of each offset is A+B, where A is what the offset would be if the old offset were zero and B is the old offset. For example, after the previous example, the X-value of the current point is 7. If G92 X9 is then programmed, the new X-axis offset is -5, which is calculated by [[7-9] + -3]. Put another way the G92 X9 produces the same offset whatever G92 offset was already in place.
To reset axis offsets to zero, program: G92.1 or G92.2 G92.1 sets parameters 5211 to 5214 to zero, whereas G92.2 leaves their current values alone.
To set the axis offset values to the values given in parameters 5211 to 5214, program: G92.3
You can set axis offsets in one program and use the same offsets in another program by programming G92 in the first program. This will set parameters 5211 to 5214. Do not use G92.1 in the remainder of the first program. The parameter values will be saved when the first program exits and restored when the second one starts up. Use G92.3 near the beginning of the second program. That will restore the offsets saved in the first program.
• ##### G92 Example
`(Sample Program G92EX23:)(Workpiece Size: X3.5, Y2.5, Z0.75)(Tool: Tool #2, 1/4" Slot Drill)(Tool Start Position: X0, Y0, Z1)`
`N2 G90 G80 G40 G54 G20 G17 G50 G94 G64 (safety block)N5 G90 G20N10 M06 T2 G43 H2N15 M03 S1200N20 G00 X0.5 Y0.5N25 Z0.1N30 G01 Z-0.25 F5N35 G02 X0.5 Y0.5 I0.25 J0.25 F25N40 G00 Z0.125N45 X1.5 Y1.5N50 G92 X0.5 Y0.5 (Reassign coordinates)N55 G01 Z-0.25 F5N60 G02 X0.5 Y0.5 I0.25 J0.25 F20N65 G00 Z0.1N70 X1.5 Y-0.5N75 G92 X0.5 Y0.5 (Reassign coordinates)N80 G01 Z-0.25 F5N85 G02 X0.5 Y0.5 I0.25 J0.25 F15N90 G00 Z1N95 X-2 Y0N100 G92 X0 Y0 (Reassign coordinates)N105 M05N110 M30`