Tool selection for rough and finish CNC milling operations based on tool-path generation and machining optimisation