An Introduction to CNC Machining and Programming