Originally Posted by
RCaffin
Your concerns about low-number variables do not seem to apply to NIST g-code and Mach, and I don't understand them. They may apply to old versions of other languages? I don't actually create 'macros' as you call them, although this may be a terminology problem. In Mach a 'macro' is called by an M-code, and is often used for control of external devices such as spindle, misting, safety sensing, etc. Templates for reuse might be a better description. Does Fanuc use the word 'macro' for a subroutine?
I did refer to reading in a data file at the start of a program - that data file actually contains a huge list of the parameters (and their definitions of course), but rarely includes any movement instructions. But there is no restriction on the use of low-numbered parameters like #1 - #26. Use them as you will. Mach3 allows up to about 32,000 parameters, Typically I will reserve parameters #1 - #19 for use as very local variables within a subroutine, while parameters with bigger numbers are more global in the program, but that is SOLELY a matter of MY programming style.
The example you give of a G65 instruction is not valid in Mach3: it is not implemented. The idea that a passed A parameter ends up as #1 does not apply at all.