Gcode M556 Explanation

Hey guys,
Can anyone explain to me the purpose of M556?
I looked at the reprap website and I don't really understand this:
"Though with care and adjustment a RepRap can be set up with its axes at rightangles to each other within the accuracy of the machine, who wants to bother with care and adjustment when the problem can be solved by software? This tells software the tangents of the angles between the axes of the machine obtained by printing then measuring a test part. The S parameter (100 here) is the length of a triangle along each axis in mm. The X, Y and Z figures are the number of millimeters of the short side of the triangle that represents how out of true a pair of axes is. The X figure is the error between X and Y, the Y figure is the error between Y and Z, and the Z figure is the error between X and Z. Positive values indicate that the angle between the axis pair is obtuse, negative acute."So my questions are:
–When would you use M556?
how does this relate to the zaxis?Thank you!Hunter

You would use M556 if your X, Y and Z axes don't move exactly at right angles to each other. Most 3D printers have axes that are accurately aligned, so this command is not needed.