No z probe required. No autoleveling or distortion correction (which is for bumpy beds)
#define FEATURE_AXISCOMP 1
Is all you need to enable it. See this code doing the transformation in BedLeveling.cpp:
/
Transforms theoretical correct coordinates to corrected coordinates resulting from bed rotation
and shear transformations.
We have 2 coordinate systems. The printer step position where we want to be. These are the positions
we send to printers, the theoretical coordinates. In contrast we have the printer coordinates that
we need to be at to get the desired result, the real coordinates.
/
void Printer::transformToPrinter(float x, float y, float z, float &transX, float &transY, float &transZ) {
#if FEATURE_AXISCOMP
// Axis compensation:
x = x + y * EEPROM::axisCompTanXY() + z * EEPROM::axisCompTanXZ();
y = y + z * EEPROM::axisCompTanYZ();
#endif
#if BED_CORRECTION_METHOD != 1 && FEATURE_AUTOLEVEL
if(isAutolevelActive()) {
transX = x * autolevelTransformation[0] + y * autolevelTransformation[3] + z * autolevelTransformation[6];
transY = x * autolevelTransformation[1] + y * autolevelTransformation[4] + z * autolevelTransformation[7];
transZ = x * autolevelTransformation[2] + y * autolevelTransformation[5] + z * autolevelTransformation[8];
} else {
transX = x;
transY = y;
transZ = z;
}
#else
transX = x;
transY = y;
transZ = z;
#endif
}As you see this adds extra x depending on y position multiplied with your value. So moving Y 100mm should move X 100*0.176 = 17.6 mm in your 10° test.