A knowledge based intelligent process planning method for controller of computer numerical control machine tools