A knowledge-based system for end mill selection