Due to high demand and worldwide supply chain issues, we are experiencing longer than normal delivery time frames for many Tormach machines and accessories. We appreciate your patience during this time.
Note: The ONLY way to secure a machine that is currently on backorder is to place an order for one. You may place a deposit to hold your spot in line for machines arriving. Without an order, any dates presented on our website are subject to change with demand.


Named parameters work like numbered parameters, but are easier to read and remember. All parameter names are converted to lowercase and have spaces and tabs removed. Named parameters must be enclosed with < > marks.

# is a local named parameter. By default, a named parameter is local to the scope in which it is assigned.

You can’t access a local parameter outside of its subroutine. This is so two subroutines can use the same parameter names without fear of one subroutine overwriting the values in another.

#<_global named parameter here> (i.e., name starting with an underscore) is a global named parameter. They are accessible from within called subroutines and may set values within subroutines that are accessible to the caller. As far as scope is concerned, they act just like regular numeric parameters. They are not made persistent by storage in a file.

The global parameters _a, _b, _c, . . . _z are reserved for special use. Do not use these parameters.

  • #<_endmill_dia> = 0.049 is a declaration of named global variable.
  • #<_endmill_rad> = [#<_endmill_dia>/2.0] is a reference to previously declared global variable.
  • o100 call [0.0] [0.0] [#<_inside_cutout>-#<_endmill_dia>] [#<_Zcut>] [#<_feedrate>] is mixed literal and named parameters.