As we begin 2021, we have found ourselves in a situation where our lead-times have substantially increased due to COVID-19 pandemic-related issues.
Those issues combined with high demand and heavy shipping volume is resulting in a longer than normal delivery timeframes for many Tormach machines and accessories.
We are working diligently to resolve these issues and look forward to bringing our lead-times back to normal. Unfortunately, this is going to take some time.
As of now, we anticipate that these lead times will continue into the second quarter. We appreciate your patience during this time.


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.