Newer
Older
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
G90 (set absolute distance mode)
G0 X2.5 (rapid move to coordinate X2.5 including any offsets in effect)
G91 Example
::
G91 (set incremental distance mode)
G0 X2.5 (rapid move 2.5 from current position along the X axis)
* See `G0 <#gcode:g0>`__ section for more information.
.. _g901-g911-arc-distance-mode:
G90.1, G91.1 Arc Distance Mode
------------------------------
* 'G90.1' - absolute distance mode for I, J & K offsets. When G90.1 is in effect I and J both must
be specified with G2/3 for the XY plane or J and K for the XZ plane or it is an error.
* 'G91.1' - incremental distance mode for I, J & K offsets. G91.1 Returns I, J & K to their default
behavior.
G92 Coordinate System Offset
----------------------------
::
G92 axes
'G92' makes the current point have the coordinates you want (without motion), 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 offset for that axis will be zero.
When 'G92' is executed, the `origins <#sec.machine-corrdinate-system>`__ of all coordinate systems
move. They move such that the value of the current controlled point, in the currently active
coordinate system, becomes the specified value. All of the coordinate system’s origins (G53-G59.3)
are offset this same distance.
'G92' uses the values stored in `parameters <#sub:numbered-parameters>`__ 5211-5219 as the X Y Z A B
C U V W offset values for each axis. The parameter values are 'absolute' machine coordinates in the
native machine 'units' as specified in the ini file. All axes defined in the ini file will be offset
when G92 is active. If an axis was not entered following the G92, that axis' offset will be zero.
For example, suppose the current point is at X=4 and there is currently no 'G92' offset active. Then
'G92 X7' is programmed. This moves all origins -3 in X, which causes the current point to become
X=7. This -3 is saved in parameter 5211.
Being in incremental distance mode (G91 instead of G90) has no effect on the action of 'G92'.
'G92' offsets may be already be in effect when the 'G92' is called. If this is the case, the offset
is replaced with a new offset that makes the current point become the specified value.
It is an error if:
* all axis words are omitted.
LinuxCNC stores the G92 offsets and reuses them on the next run of a program. To prevent this, one
can program a G92.1 (to erase them), or program a G92.2 (to remove them - they are still stored).
See the `Coordinate System <#cha:coordinate-system>`__ Section for an
overview of coordinate systems.
See the `Parameters <#gcode:parameters>`__ Section for more information.
.. _g921-g922-reset-g92-offsets:
G92.1, G92.2 Reset G92 Offsets
------------------------------
* 'G92.1' - turn off G92 offsets and reset
`parameters <#sub:numbered-parameters>`__ 5211 - 5219 to zero.
* 'G92.2' - turn off G92 offsets but keep
`parameters <#sub:numbered-parameters>`__ 5211 - 5219 available.
.. _g923-restore-g92-offsets:
G92.3 Restore G92 Offsets
-------------------------
* 'G92.3' - set the G92 offset to the values saved in parameters 5211 to 5219
You can set axis offsets in one program and use the same offsets in another program. Program 'G92'
in the first program. This will set parameters 5211 to 5219. 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.
G93, G94, G95: Feed Rate Mode
-----------------------------
* 'G93' - is Inverse Time Mode. In inverse time feed rate mode, an F word means the move should be
completed in [one divided by the F number] minutes. For example, if the F number is 2.0, the move
should be completed in half a minute.
When the inverse time feed rate mode is active, an F word must appear on every line which has a
G1, G2, or G3 motion, and an F word on a line that does not have G1, G2, or G3 is ignored. Being
in inverse time feed rate mode does not affect G0 (`rapid move <#gcode:g0>`__) motions.
* 'G94' - is Units per Minute Mode. In units per minute feed mode, an F word is interpreted to mean
the controlled point should move at a certain number of inches per minute, millimeters per
minute, or degrees per minute, depending upon what length units are being used and which axis or
axes are moving.
* 'G95' - is Units per Revolution Mode In units per revolution mode, an F word is interpreted to
mean the controlled point should move a certain number of inches per revolution of the spindle,
depending on what length units are being used and which axis or axes are moving. G95 is not
suitable for threading, for threading use G33 or G76. G95 requires that spindle.N.speed-in to be
connected. The actual spindle to which the feed is synchronised is chosen by the $ parameter
It is an error if:
* Inverse time feed mode is active and a line with G1, G2, or G3 (explicitly or implicitly) does not
have an F word.
* A new feed rate is not specified after switching to G94 or G95
G96, G97 Spindle Control Mode
-----------------------------
::
G96 <D-> S- <$-> (Constant Surface Speed Mode)
G97 S- <$-> (RPM Mode)
* 'D' - maximum spindle RPM
* 'S' - surface speed
* '$" - the spindle of which the speed will be varied.
* 'G96 D- S-' - selects constant surface speed of 'S' feet per minute (if G20 is in effect) or
meters per minute (if G21 is in effect). D- is optional.
When using G96, ensure that X0 in the current coordinate system (including offsets and tool
lengths) is the center of rotation or LinuxCNC will not give the desired ssurface speed. G96 is
not affected by radius or diameter mode.
To achieve CSS mode on selected spindles programme successive G96 commands for each spindle prior to
issuing M3.
* 'G97' selects RPM mode.
G96 Example Line
::
G96 D2500 S250 (set CSS with a max rpm of 2500 and a surface speed of 250)
It is an error if:
* S is not specified with G96
* A feed move is specified in G96 mode while the spindle is not turning
G98, G99 Canned Cycle Return Level
----------------------------------
* 'G98' - retract to the position that axis was in just before this series of one or more contiguous
canned cycles was started.
* 'G99' - retract to the position specified by the R word of the canned cycle.
Program a 'G98' and the canned cycle will use the Z position prior to the canned cycle as the Z
return position if it is higher than the R value specified in the cycle. If it is lower, the R value
will be used. The R word has different meanings in absolute distance mode and incremental distance
mode.
G98 Retract to Origin
::
G0 X1 Y2 Z3
G90 G98 G81 X4 Y5 Z-0.6 R1.8 F10
The G98 to the second line above means that the return move will be to the value of Z in the first
line since it is higher that the R value specified.
The 'initial' (G98) plane is reset any time cycle motion mode is abandoned, whether explicitly (G80)
or implicitly (any motion code that is not a cycle). Switching among cycle modes (say G81 to G83)
does NOT reset the 'initial' plane. It is possible to switch between G98 and G99 during a series of
cycles.
.. |G2 Example| image:: images/g2.png
.. |G2-G3 Example| image:: images/g2-3.png
.. |Sample NURBS Output| image:: images/nurbs01.png
.. |G76 Threading| image:: images/g76-threads.png
.. |G76 Example| image:: images/g76-01.png
.. |eight| image:: images/eight.png
.. |twelve| image:: images/twelve.png
.. |G80 Cycle| image:: images/G81mult.png
.. |G81ex1| image:: images/G81ex1.png
.. |G81ex2| image:: images/G81ex2.png
.. |G81| image:: images/G81.png
.. |G81a| image:: images/G81a.png