Development and validation of a novel approach to the calibration of internal and external threads on coordinate measuring machines