A multi-granularity NC program optimization approach for energy efficient machining. (January 2018)