This paper presents a systematic tool-path generation methodology which incorporates interference detection and optimal tool selection for machining free-form surfaces on 3-axis CNC machines using ball-end cutters. In this method, the global and local interference is first detected and prevented, and then the optimal tools in terms of machining time are selected and tool paths are generated. A system of five algorithms is developed to determine the interference area. On the basis of these algorithms, the machining time of each available tool is estimated by considering tool size, scallop height, and accessible surface area. Finally, the combination of tools which possesses the minimum overall machining time is selected as the optimal tool sizes. Our case study has demonstrated the validity of the proposed methodology and algorithms.