G00

Go rapidly (with maximum traverse rate) to the X/Y/Z position.

G01

Travel in a straight line using the programmed feed rate (F).

G02

Circular/Helical Interpolation clockwise.

G03

Counterclockwise circular motion.

G04

Dwell for a specific period.

G09

Exact stop before executing the next move.

G12

Circular drilling canned cycle.

G15

Cancel polar coordinates mode.

G16

Activate polar coordinates mode.

G17

Selects the XY plane.

G18

Selects the XZ plane.

G19

Selects the YZ plane.

G20

Use inch units.

G21

Use millimeter units.

G28

Return home command.

G40

Cancel cutter compensation.

G41

Activates left-side cutter compensation.

G42

Activates right-side cutter compensation.

G43

Activates tool length offset compensation.

G65

Direct call of a macro.

G66

Modal macro call.

G67

Cancels modal macro call.

G70

Finishing Cycle.

G71

Rough Turning Cycle.

G76

Generic drilling/boring/tapping canned cycle. See G74-G75 above.

G76

Threading Cycle.

G76

Threading Cycle

G80

Cancels any canned cycle. Please note that G00 – G03 also cancels canned cycles.

G81

Basic drilling canned cycle. R is the starting plane, and Z is total depth. Please note that at the end of the cycle, the return position in Z is controlled by G98 and G99.

G82-G89

Generic drilling/boring/tapping canned cycle. Same as G74-G76 above.

G90

Absolute programming mode. Distances given will move the tool relative to an absolute zero.

G91

Incremental programming mode. Distances given will move the tool relative to the current position of the tool.

G92

Set Max Rpm

G92

Use to reposition the origin point (zero point).

G94

Set feed in millimeters or inches per minute.

G95

Set feed per revolution mode.

G96

Constant surface speed control.

G97

Cancel constant surface speed control.

G98

Initial level returns at the end of a canned cycle.

G99

R level return at the end of a canned cycle.

M00

Unconditional stop (pause). The execution of the CNC program will pause. Click start or play to continue.

M01

Optional stop (pause). Will pause the execution of the CNC program if the "Op.Stop" switch on the virtual CNC Controller is activated. Click start or play to continue.

M02

Program end. The simulation will stop.

M03

Start of spindle clockwise. The rotation speed is controlled by the S code letter.

M04

Start of spindle counterclockwise. The rotation speed is controlled by the S code letter.

M05

Spindle stop.

M06

Execute a tool change. The number of the tool has to be preselected with the T code letter.

M08

Turn on coolant.

M09

Turn off coolant.

M17

Return from subroutine or subprogram.

M20

Open machine doors.

M21

Close machine doors.

M30

Program end. The simulation will stop.

M97 and M98

Call subprogram. Use P for subprogram number and L for the number of repetitions.

M99

Return from a macro, subroutine or, subprogram.

$AddRegPart

Puts a workpiece from the user-defined workpiece registry in the Inventory Browser (F2) on the machine table (or in the chuck).

$AddEmbeddedRegPart

Puts a workpiece from the fixed embedded workpiece registry on the table.

$AddDefinedPart

Puts a predefined workpiece on the table. Use $AddDefinedPart to define workpieces in the program.

$BlockSpindleRot

Will block on-screen spindle rotation. This can be useful in the unlimited lathe if the visual rotation of the workpiece is not desired.

$Inches

Enforce the use of Inch units.

$Millimeters

Enforce the use of Millimeter units.

$MillStock

Creates a mill stock material.

$MillTool

Creates a milling tool.

$MillToolDrill

Creates a drill tool.

$SetView

Special command to set the 3D view during the simulation.

$Message

Displays a message on the 3D view during the simulation.

$Cutting

Set the solid workpiece cutting values, at runtime, in percent.

$Cutting (Lathe)

Set workpiece cutting for lathe machines.

$Pause

Will pause the simulation for a given number of milliseconds.

$StartStopWatch

Starts the internal stopwatch to measure the time for an operation.

$ShowStopWatch

Stops the internal stopwatch and shows the time that has elapsed since the $StartStopWatch command was executed.

$Lathe

Enforces the use of a lathe machine.

$Mill

Enforces the use of a milling machine.

$SetupTool

This command is used to directly setup and use a milling tool without using the user or embedded registries.

$OverrideBufferQualitySetting

This special command is used to override the resolution setting for the solid buffer.

$AddMillPart

This command is used to directly setup and use a milling workpiece without using the user or embedded registries.

$DefineLatheWorkpiece

Define a lathe workpiece that can be fetched by using the command $AddDefinedPart.

$DefineMillWorkpiece

Define a mill workpiece that can be fetched by using the command $AddDefinedPart.

$DefineMaterial

Defines a material to be used by defined workpieces.

$From

Starts simulation from a given position.

$DefineMillTool

Defines a milling tool that can be fetched by the DT code letters.

$Toolpaths

Turn on or off the display of the tool paths during the simulation. (1=on, 0=off)

$SetCuttingWidth

Used in cutting machines to define the cutting width.

$UseMaterial

Tells the simulator to override the material for the workpiece and use the specified one instead.

$UseEmbeddedMaterial

Tells the simulator to override the material for the workpiece and use the specified embedded one instead.

$InvertLathePart

Flips the lathe workpiece in the chuck so that the machine can continue machining the other side of it.

$LatheStock

Creates a lathe stock material.

$LatheToolButton

Creates a lathe button tool.

$LatheToolDrill

Creates a lathe drill tool.

$LatheToolGroove

Creates a lathe groove tool.

$LatheToolStandard

Creates a standard lathe tool.

$LatheToolThread

Creates a lathe threading tool.

$AbsoluteCenters

Circle and arc centers are normally entered as incremental values. This command tells the simulator to expect absolute circle and arc center values.

$SetG28pos

Set custom position for G28.

$SetToolChangePos

Set custom tool change position.

$DefineDoffsetDiameter

Define a D offset in program.

$ReadTasDefinedTool

When your program has defined tools (for example, in programs created by SimCam), you call these tools with "DT". Using this command, you can skip the D and only use T, followed by the tool index number.

$RotateWorkpiece

This command rotates the workpiece around its Z-axis.

$Color

This command sets the surface color. Any new surface that gets exposed by a milling operation will have this color.

$AutoColorMode

This command can be used to let the simulator automatically set surface colors depending on the tool index or the cutting depth.

$DefineZeropoint

It is used to define temporary zero points.

$TutorialLine

A special command to set titles of tutorials.

$Title

A special command to set titles of tutorials.

$PreventEraseOnCutOff

By default, the simulator will erase everything to the right when the material has been cut through to simulate the part falling down. This command prevents that from happening.

$ReadTasEmbeddedTool

When your program wants to use the simulator embedded tools, you call these tools with "ET". Using this command, you can skip the E and only use T followed by the tool index number.

$UseAltG92method

This activates an alternative G92 mode so that it makes the current tool position have the coordinates you specify.

$DefineLatheTool

Used by SimCam and by "Make program portable" to create in-program lathe tools. It is an advanced command that defines both the geometry of the tool holder and the insert.

$DefineNonModalMacro

This command lets users create their own custom G, M, and other codes.

$DefineModalMacro

This command lets users create their own custom G, M, and other codes.

$CodeHelp

This command is used to create custom code help.

$ActivateMacroInterpreter

This command is used to temporarily enable the macro interpreter.

$GotoLabel

With this command, we can jump into the CNC program to a specified label.

$Include

This command is used to include files that can be run in the background to make custom definitions.

$SetSimSpeed

Set the speed of simulation. The value is 0 to 200, where 0 is slowest.

$SetupToolpathLines

Can be used to set the color and width of toolpath lines.

$ChangeToolAutomatically

When this mode is active, M06 is not needed for tool changes.