The proposed self-calibration method uses an artefact, a ball plate, for error identification. Unlike other methods this ball plate need not be calibrated, i.e. the distances between the different balls on the plate need not be known accurately. After measurement of the ball plate in different positions within the measuring volume, the systematic geometrical errors, like scale errors, axes' pitch, yaw and non-orthogonality, of the geometric error model of the measuring machine can be calculated. This geometrical error model is used afterwards by the software error correction to correct on-line every single measurement carried by the measuring machine. This results in a higher accuracy of the measurement. As an example, the self-calibration method has been carried out on a CNC 3-D coordinate measuring machine and the resulting software error correction has been evaluated using step-gauge measurements. The results of the evaluation show that the systematic geometrical errors are greatly reduced.