List of TouchCut 7 Standard NC Codes

<< Click to Display Table of Contents >>

Navigation:  Reference Section > Touchcut G Code Reference >

List of TouchCut 7 Standard NC Codes

Notes:

Uppercase characters specify the character part of an nc code.

Lowercase characters specify the value part of an nc code that is a parameter value.

Numbers specify the value part of an nc code that make up a command.

Square brakets [] represent an optional component.

A pipe | represents an or set of codes within an optional component.

Tool & macro text commands can not have comments or line break codes after them.

G0, G1, G2 & G3 may be ommited if it was the previous command. (eg G0X2.0; Y3.0; X-2.0; Y-3.0).

Bevel angles and rotations are always defined as absolute angles.

Bevel angles and rotations are now interpolated across the length of the segment.  To change the bevel angle or rotation without moving in the x & y use a line segment code with no x, y, i or j (eg G1A30B0; G1Y100; G1A10B-90; G1X100). Note: that also means you can drop the G1, G2 and G3 to A30B0 etc.



Tools:

 

 

 

T<p>

Select a tool based on the process p.

 

Only supported for pathing tools.

 

 

Tt[(s)]

Select tool t.

 

s = optional process name specifier for path tools.

 

 

Tt(s)

Select tool t.

 

s = required spindle name specifier for spindle/drill.

 

 

 

 

General:

 

 

 

G29Pp

Program information. p=program number.

 

 

Nn

Line number n.

 

May be prefixed before any line.

 

A number that can be associated with a process (or processes).

 

The active number at the tool on time will be used.

 

 

G0[Xx][Yy][Zz][Uu]

Rapid to x, y, z & u.

 

(z for 3D rapid sections)

 

(u for pipe cutter rotary axis )

 

 

G1[Xx][Yy][Uu][Aa][Rr]

Line segment to x, y, u, a & r

 

(u for pipe cutter rotary axis)

 

(at least one x, y, u, a or r required)

 

(must occur in a path block)

 

 

G2[Xx][Yy][Ii][Jj][Aa][Rr]

Clockwise arc segment to x, y, a & r.

 

(i & j define the center point)

 

(at least one x, y, i, j, a or r required)

 

(must occur in a path block)

 

 

G3[Xx][Yy][Ii][Jj][Aa][Rr]

Counter-clockwise arc segment to x, y, a & r.

 

(i & j define the center point)

 

(at least one x, y, i, j, a or r required)

 

(must occur in a path block)

 

 

G1Dd

Change milling depth.

 

 

G1[Xx][Yy]Dd

Change milling depth with XY movement.

 

If d value is zero the plate thickness (+ extra overshoot) is used.

 

d value is always absolute.

 

(must occur in a milling path block)

 

 

G2[Xx][Yy][Ii][Jj]Dd

Change milling depth with a clockwise arc segment.

 

If d value is zero the plate thickness (+ extra overshoot) is used.

 

d value is always absolute.

 

(must occur in a milling path block)

 

 

G3[Xx][Yy][Ii][Jj]Dd

Change milling depth with a counter-clockwise arc segment.

 

If d value is zero the plate thickness (+ extra overshoot) is used.

 

d value is always absolute.

 

(must occur in a milling path block)

 

 

G1[Xx][Yy][Zz]

3d milling line, linear interpolation mode (z +ve up).

 

A z of zero is the reference height.

 

z is incremental or absolute (based on current inc/abs state).

 

(must occur in a milling path block)

 

 

G2[Xx][Yy][Ii][Jj][Zz]

3d milling clockwise arc segment.

 

Linear interpolation mode (z +ve up).

 

A z of zero is the reference height.

 

z is incremental or absolute (based on current inc/abs state).

 

(must occur in a milling path block)

 

 

G3[Xx][Yy][Ii][Jj][Zz]

3d milling counter-clockwise arc segment.

 

Linear interpolation mode (z +ve up).

 

A z of zero is the reference height.

 

z is incremental or absolute (based on current inc/abs state).

 

(must occur in a milling path block)

 

 

G1|G2|G3...Ff            

Feedrate override, applied immediately

remains in effect until new feedrate supplied or path end

only available inside a path block

f = zero resets to default feedrate

the feed override velocity will be limited to machine maximum

feedrate feed override will ignore arc acceleration limits and

bevel speed compensation

 

 

G1|G2|G3...Pp              

Feedrate override as a percentage of default feedrate,applied

immediately remains in effect until new feedrate supplied

or path end only available inside a path block p = zero

resets to default feedrate the feed override velocity will be

limited to machine maximum feedrate feed override will

ignore arc acceleration limits and bevel speed compensation.

 

 

 

 

G4[Pp]

Dwell for p seconds.

 

(can be anywhere in a path)

 

(must occur in a path block)

 

 

L3[Ss][Rr][Aa][Hh][Ww](t)

Multiline macro text.

 

s - size (minimum 2mm)

 

r - rotation

 

a - alignment, one of:

 

0 (Top Left)

 

1 (Top Center)

 

2 (Top Right)

 

3 (Middle Left)

 

4 (Middle Center)

 

5 (Middle Right)

 

6 (Bottom Left)

 

7 (Bottom Center)

 

8 (Bottom Right)

 

h - line height spacing

 

w - wrap width

 

t - text

 

\p or "\P" denotes a line break.

 

\\ denotes "\" else single "\" ignored.

 

 

 

 

If outside of a path block:

 

 

 

G40

No kerf.

 

(default)

 

(must occur out of a path block)

 

 

G41[D21|D22]

Left kerf, with optional internal / external specifier.

 

(D21=external, D22=internal)

 

(must occur out of a path block)

 

 

G42[D21|D22]

Right kerf, with optional internal / external specifier.

 

(D21=external, D22=internal)

 

(must occur out of a path block)

 

 

 

 

 

 

 

 

G40

No kerf. (temporary override)

 

 

G41

Left kerf. (temporary override)

 

 

G42

Right kerf. (temporary override)

 

 

G57Rr

Start of subroutine r. (positive integer)

 

 

G58

End of subroutine.

 

 

G59RrCc

Execute subroutine r, c times.

 

Notes: subroutines can be nested, but not recursive



G52[Xx][Yy][Zz]...

Explicit Local Coordinate System (LCS) Offset

 

xyz defines the offset from the plate coordinate system,

Each G52 cancels any previous G52.

 

Note: z +ve is up.  Using a z value will also offset the z-ref position, temporarily changing the the top of the plate reference point for tool start, rapids etc.

 

The X,Y,Z values are offsets to the starting plate coordinate system, Incremental or Absolute mode has no effect on the behaviour of this function.

 

For the LCS Z Offset to be useful, the machine should be using Z-Reference.  LCS XY offsets can be applied without a Z offset.

 

G52 by itself resets any LCS offset.

 

It is an error to use G52 inside a process block.



 

subroutines must be defined before they are called.

 

 

G70

Use imperial units.

 

 

G71

Use metric units. (default)

 

 

G90

Use absolute mode. (default)

 

 

G91

Use incremental mode.

 

 

M0[Uu][(m)]

Operator message m.

 

Note: pops up a message and stops the machine

 

to allow the operator to perform some

 

operation and then smart start it again.

 

Will also give option to just continue.

If Uu is specified the user output u (1-10) will be turned on for the

duration the message is shown on screen.

 

 

M20[(material-thickness)]

Select material-thickness for the program.

 

Thickness value based on G70/G71 as to whether

 

it is interpreted as metric or imperial.

 

Zero thickness will not be accepted.

 

e.g. M20(MS-20.0) = Mild Steel @ 20.0mm.

 

Note: only one M20 will be accepted per program and

 

will be used for the whole program,

 

regardless of where it is situated.

 

M20 also cancels rotary axis substitution for macro codes

 

 

M21[ODod][THKthk][AXISaxis][(material-thickness)]

Extended version of M20 for pipe cutter mode with a rotary chuck.

Need to supply additionally the outer diameter and wall thickness

(same as material thickness) Also need to supply AXIS that is

replaced by the chuck- usually 1 meaning Y Axis, for a pipe cutter

whose rotary axis is parallel to the long (X) axis.

 

select material-thickness for the program and set up rotary axis

substitution for macro codes (for pipe cutting)

 

od - outer diameter of pipe (default = 0, disabled)

if specified, must be > 0

must be specified in first call

 

thk - thickness of pipe (default = currently selected material thickness)

1 = no substitution (same as calling M20)

0 = X axis

1 = Y axis

 

 

M3

Tool off.

 

Optional for spindle processes.

 

If specified, can indicate spindle should raise fully.

 

 

M4

Cut till arc off ( Tower machines only)

for plasma processes

once an M4 is reached, the tool (and path) should turn off

when arc has been lost on all active carriages

if the M3 is reached (end of path) before this occurs then

raise an error as this will indicate that the plate has

not been fully severed

 

 

M30[Aa][Rr]

Tool on for standard pathing tools (not milling).

 

Note: if beveling, height sensing and piercing will be performed

 

with the tool vertical. It will also be pre-rotated.

 

Initial angle/rotation can be specified here, else use

 

a line segment code with no x or y components.

 

Bevels will rotate to their next required position

 

during rapiding.

 

 

M30[Dd]

Tool on. (spindles)

 

d defines a drill depth, no depth=drill through.

 

 

M32Dd

Tool on. (routers)

 

d defines the milling depth (+ve down).

 

If d value is zero the plate thickness (+ extra overshoot) is used.

 

 

M32Zz

Tool on. (routers, 3d linear interpolation mode)

 

z defines the milling height (+ve up).

 

A z of zero is the reference height.

 

 

M33[Aa][Rr]

Tool on (3D waterjet paths),

note:no height sensing will be performed

initial angle/rotation should be specified here else zero angle / rotation

is assumed the bevel will rotate to this position during rapiding

Only G1 codes currently supported

Any kerf offset will be performed from the plane described by the

segment direction and the torch vector

- if the initial and final torch vectors are different a straight line will be extrapolated between them

- the shortest distance between the two segments will be used at the

corners

- the angle/rotation will be adjusted proportionally across this join

filler, segments may be extended by up to one kerf length to try to

find the shortest join path.

Rotation angles are defined as a normal to the path

- 0° when the normal is pointing in the x direction

- +ve counter-clockwise)

Bevel angles are defined zero with the torch upright

- +ve counter-clockwise when looking at the front

- limited to ±90°

 

 

M37[Dd[Xx][Yy]]              

Hypertherm True Hole™ macro code (for Hypertherm HPR XD

(auto gas consoles), Where d specifies the required hole diameter.

Optional X/Y params turn it into a True Slot, where the current point

is the center of the start arc and the X/Y position indicates the center

of the end arc.

Note: the XY slot offset does not affect the current position of the

program.

If d, x & y are not specified (ie only M37) then it is a True Hole™

path start code.

True Hole™ paths require 1 segment for the leadin and subsequent       segments to form a closed path.

True Hole™ paths automatically add their own leadout

True Hole™ paths only support line and arc g-codes

 

 

M38[Dd]Ee[Cc]                

Spindle Chamfer macro code (for spindles with chamfer bits),

where

d specifies the nominal hole diameter

(required for chamfer bits, but not snap chamfer bits)

e specifies the edges to chamfer (1 = Top, 2 = Bottom, 3 = Top &

Bottom)

c specifies the chamfer width

(required for chamfer bits, but not snap chamfer bits)

Use only with a chamfer-mill or a snap-chamfer, if using a standard

chamfer too just feed it to depth as you would a normal drill, ie use

M30Dd. See notes on Chamfering

 

 

M39DIAdia[Dd|Zz][Hh][Pp]

Spindle ThreadMill macro code (for spindles with threadmill bits),

where

dia specifies the outer thread diameter

d specifies the depth to mill to in relation to the surface (+ve down)

(where 0 = full through + overshoot)

z specifies the depth to drill to in relation to the surface (+ve up)

if neither d or z is specified the it will mill with d=0 (ie full through)

h specified thread type 1 = right hand thread (default), -1 = left hand

thread p pitch override. This should only be used with single tooth

bits.

 

 

M39DIAdia[Dd|Zz][Hh]Pp

Spindle HelicalMill macro code (for spindles with mill bits)

 

This will start the helical move at feed from height above the plate

and then do a complete pass at depth after completing the helical

section.

 

where

 

dia specifies the outer hole diameter

 

d specifies the depth to mill to in releation to the surface (+ve down)

(where 0 = full through + overshoot)

 

z specifies the depth to mill to in releation to the surface (+ve up)

 

if neither d or z is specified the it will mill with d=0 (ie full through)

 

h specified direction type 1 = clockwise (default), -1 =

counter-clockwise

 

p pitch. Depth per pass

 

 

M40Nn[Xx|Yy][Ff|Cc][MA(1|0)]

Space the boxes where n=1..8 & x|y = spacing.

 

If n<>1 then x|y is required.

 

Note: if boxes are spaced, then limit

 

the orientations of the program to 180°

 

(or 90 and 270 if x|y oposite to machine setup).

 

x and y support index notation, if no index is used then an index

of zero is assumed and all boxes get the same spacing.

An index between 2 & 8 sets the spacing between

individual boxes.

 

F & C enable Fixed and Center Line mirror banding respectively.

 

MA1 enables multi-axis mode (if there is more than one carriage)

 

MA0 (default) disables multi-axis mode

 

Fixed Line:

 

Fixed line can be used with either 2 or 3 boxes.

 

f defines the fixed mirror line for box 2.

 

If 3 boxes are spaced, box 3 is mirrored to box 1.

 

All boxes must be motor driven

 

because box 2 is fixed to the mirror line it is not

 

able to be adjusted for kerf. The box 1 path position

 

should allow for the kerf within the nc code, or enter

 

double the normal kerf value within the tool process

 

setting.

 

Center Line:

 

Center line can be used with an even number of boxes.

 

c defines the mirror line between boxes 1 and 2.

 

Subsequent mirror lines (eg 4 boxes spaced) are calculated

 

as c + (2 * x|y).

 

 

M40Nn[Xx|Yy]MA1

Enable multiaxis mode where the boxes ordinate positions in the

spaced axis are individually controlled.

eg G1 X200 Y[1]300 Y[2]400

 

 

M41

Unspace boxes and activate box 1.

 

(also deactivates mirror banding)

 

 

M50

Begin 3D section (3D rapids, full retract)

 

 

M51

End 3D section

 

 

M60

Enable height control.

 

Note: on by default at the start of each process.

 

 

M61

Disable height control.

 

 

M92[Aa]

Enable tangent following (bevel/knife axis b).

 

Tip bevel head to angle a and align B with path tangent.

 

 

M93

Disable tangent following (bevel/knife axis b).

 

Note: tangent following is disabled automatically

 

at the end of a process.

 

 

M100

Select the base (non-delegate process)

M101-M108

select process delegate 1 through to 8

An HPR plasma process can have up to 8 delegates

Selecting 1 of the delegates uses that tool process instead

One of the main uses is to link a related marking process to a

cutting process and swap between them

 

 

M110

Reset all user outputs (1 thru 10)

M111Uu

Set user output u

M112Uu

Reset user output u

M151

Activate carriage 1

M15n

Activate carriage n

M161

Deactivate carriage 1

M16n

Deactivate carriage n

Modified codes:

 

 

 

M30[Aa][Rr]

Was M30.

 

 

M30[Dd]

Was M30[(s)].

 

 

M40Nn[Xx|Yy][Cc]

Mirror banding parameter added.

 

 

M41

Now also deactivates mirror banding.

 

 

M92[Aa]

Used to only be placed before the M30, can now be placed

 

before the M30 if tangent following is to be enabled

 

immediately, or within a path block if tangent following

 

is not enabled at the time.

 

 

M93

Used to only be placed after the M3, can now be placed

 

after the M3 or before the M3 if tangent following

 

is turned off within a path block. M3 will now implicitly

 

disable tangent following if it was active.

 

 

M32Dd

2.5d milling / routering.

 

d defines the milling depth (+ve down).

 

If d value is zero the plate thickness (+ extra overshoot) is used.

 

 

M32Zz

3d milling / routering via linear interpolation mode.

 

 

 

 

New codes:

 

 

 

L3[Ss][Rr][Aa][Hh][Ww](t)

Multiline macro text code replacing L0, L1 & L2.

 

 

M20(material-thickness)

Select material-thickness for the program.

 

 

M60 & M61

Enable/disable height control, advanced command to

 

temporarily disable height control to avoid crashing

 

if cutting across previous paths or open space.

 

 

 

 

Obsolete but still supported codes:

 

 

L0t

Singleline macro text.

 

 

L1s

Set macro text size to s (minimum 2mm).

 

 

L2r

Set macro text angle to r.

 

 

 

 

Obsolete and no longer supported codes:

 

 

M31

Drilling tool on (not spindle) with pecking.