Optimizing index positions on CNC tool magazines considering cutting tool life and duplicates