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.