With the help of your code, I simply modified the file 'Commands.cpp'
In :
void Commands::processGCode(GCode *com)
case 0: // G0
{
// select faster axis max feed rate for g0,other axis speed is limited by maxFeedrate
if( Printer::maxFeedrate[X_AXIS]>=Printer::maxFeedrate[Y_AXIS])
Printer::feedrate = Printer::maxFeedrate[X_AXIS];//use faster axis max Feedrate for G0
else Printer::feedrate = Printer::maxFeedrate[Y_AXIS];
PrintLine::queueCartesianMove(ALWAYS_CHECK_ENDSTOPS, true);
}
case 1: // G1
For me :
After a G0 code, the next G1 always contains the Fxxxx, It is not necessary to temporarily store the speed of the last G1.
A gcode G0 is always a rapid move, I have not set a condition (Printer, Laser or CNC) ;)
Thanks again