CNC automatic tool changer: efficient tool selection and precise tool change