Can we expect conditional in the near future to make that useful.
We already have it. Full Fanuc custom macro B with full G65 and G66 support as well. It is a Mach 4 Industrial feature. Not part of Mach 4 Hobby as Mach3 never had it. However, it is turned on in the Beta build if you want to try it out. SETVN and gcode labeling of subs is not finished yet. Passing an E address as a parameter to a G65 is not legal either as we use E as scientific notation.
One thing to note is that CV is NOT interrupted with the conditional statement. So the conditions are evaluated at the point at which the look ahead processes them. So if you want the condition to be evaluated in sync with the machine run, then you must use an exact stop preparatory code right before the conditional statement. That is the mode that we are currently using. This mode has advantages in producing smooth movement with calculated moves. The other option is that all conditional statements will break the CV chain ensuring that the evaluations are always synced with the machine run. This mode is not used at this time and favors code path switches based on external inputs. I will possibly make a switch so that a M code can control which mode. But for now only the first mode it supported as I feel it is the most flexible because you can control when the evaluation happens with exact stop.
IF [condition] GOTO <seqnum>
IF [condition] <statement>
WHILE [condition] DO<level>
...
END<level>
We support the standard 3 level nesting.
HIYA Steve, while you are looking at teh exscape sequence could you take a look at the values entry sequence ? As is on a line say tool #3 when you enter in a value an press ENTER it skips DOWN to the next Tool # line instead of to the right in order to finish adding values for THAT tool #.
It makes it very clumsy to add tool /fixture parameters as after each entry you then have to shift back up then move over to the right in order to add the next tool parameter.
I tested the M99 P## earlier but it stuck in the loop over and over in the sub call BUT the M99 Q seemed to work ok. Maybe I muffed the test somehow I will go back and retest the sequencing again.
The entry sequence in the grid is controlled by the window framework. I can't change it. I have already tried.

Let me know the results of your M98/M99 test. Because I had that working flawlessly at one point. Looking at the code, any Q address on the M99 will be ignored. It is definitely looking for a P address. Also, keep in mind that the M99 P address must refer to a sequence number in the calling program, not a line number.
Steve