I would like to see an existing motion behavior removed or at least be disabled optionally in settings. Whenever an M or S code is encountered in the GCode or MDI the machine decelerates to 0, executes the command, and resumes. There is not necessarily any need for it to stop in the following example.
g00 x0 s1000 motion starts and spindle at 1000
g01 x10 s5500 motion stops, spindle changes to 5500, motion continues
g01 x20 s5500 motion stops, spindle still at 5500, motion continues (no change was made but the fact there was an S code in the line means the motion stops to address it)
If the spindle speed commands weren't in there, the machine would travel from x0 to x20 without interruption but with the extra commands in there (I tested and saw the same behavior with turning coolant on and off during motion) travel slows to 0 and without any delay executes the command and accelerates back to it's previous rate.
I have my Spindle Accel/Decel time at 0 and 'Wait on spindle to stabilize' disabled
The reason I want the travel rate uninterrupted is because I'm using spindle control PWM signals to control the power output of a laser to do raster engraving.
Assume each 'pixel' i want to engrave is 1mm and I'm drawing a 5mm striped pattern I'd code as:
g00 x0y0 starting point
x50 lead in for acceleration
x55 s255 laser power max 5mm
x60 s0 laser off 5mm
x65 s128 laser half power 5mm
x70 s0 laser off
x120 lead out for deceleration
y1 next line
The laser PWM control and positional results of this code work perfectly but that forced motion stop before executing S kills the end result of the piece.
Fixing this would make raster laser engraving incredibly easy in Mach4 with the use Inkscape plugin 'Raster 2 Laser GCode' which produces great results with simpler GCode senders. It would achieve the equivalent of Art's Impact / Laser plugin for Mach3.