That is a problem. Firmware will assume last value for the remaining bed. You can also change values afterwards with G33 X Y Z, but only where grid points are and for cartesian they need to be inside reachable area. So either you can measure automatically with smaller grid or you need to enter all values manually but can select any grid size you like.
The measurement is done in distorion.cpp in this function:
bool Distortion::measure(void) {
fast8_t ix, iy;
disable(false);
Printer::prepareForProbing();
float z = RMath::max(
EEPROM::zProbeBedDistance() + (EEPROM::zProbeHeight() > 0 ? EEPROM::zProbeHeight() : 0),
static_cast<float>(ZHOME_HEAT_HEIGHT)); // EEPROM::zProbeBedDistance() +
// (EEPROM::zProbeHeight() > 0 ?
// EEPROM::zProbeHeight() : 0);
Com::printFLN(PSTR("Reference Z for measurement:"), z, 3);
updateDerived();
/*
#if DRIVE_SYSTEM == DELTA
// It is not possible to go to the edges at the top, also users try
// it often and wonder why the coordinate system is then wrong.
// For that reason we ensure a correct behavior by code.
Printer::homeAxis(true, true, true);
Printer::moveTo(IGNORE_COORDINATE, IGNORE_COORDINATE,
EEPROM::zProbeBedDistance() + (EEPROM::zProbeHeight() > 0 ?
EEPROM::zProbeHeight() : 0), IGNORE_COORDINATE,
Printer::homingFeedrate[Z_AXIS]); #else if(!Printer::isXHomed() ||
!Printer::isYHomed()) Printer::homeAxis(true, true, false);
Printer::updateCurrentPosition(true);
Printer::moveTo(Printer::invAxisStepsPerMM[X_AXIS] * ((isCorner(0, 0) ? 1
: 0) * xCorrectionSteps + xOffsetSteps), Printer::invAxisStepsPerMM[Y_AXIS] *
((DISTORTION_CORRECTION_POINTS - 1) * yCorrectionSteps + yOffsetSteps),
IGNORE_COORDINATE, IGNORE_COORDINATE, EEPROM::zProbeXYSpeed()); #endif
*/
// Com::printFLN(PSTR("radiusCorr:"), radiusCorrectionSteps);
// Com::printFLN(PSTR("steps:"), step);
int32_t zCorrection = 0;
#if Z_PROBE_Z_OFFSET_MODE == 1
zCorrection -= Printer::zBedOffset * Printer::axisStepsPerMM[Z_AXIS]; // runZProbe adds this!
#endif
if (!Printer::startProbing(true)) {
return false;
}
Printer::moveToReal(IGNORE_COORDINATE, IGNORE_COORDINATE, z,
IGNORE_COORDINATE, Printer::homingFeedrate[Z_AXIS]);
for (iy = 0; iy < DISTORTION_CORRECTION_POINTS; iy++)
for (fast8_t iix = 0; iix < DISTORTION_CORRECTION_POINTS; iix++) {
ix = iy & 1 ? DISTORTION_CORRECTION_POINTS - 1 - iix : iix;
When you make for (iy = 0; iy < DISTORTION_CORRECTION_POINTS; iy++) start with iy = 1 it would maybe work, but complete y=0 row has then no set values. That is the best I can offer.