Machining programming fundamentals