NC tool-path is usually generated by sweeping parametric surfaces of a CAD model. In modern design, free-form or sculptured surfaces are increasingly popular in representing complex geometry for aesthetic or functional purposes. Traditionally, a prototype is realized by machining the workpiece using the NC codes generated from a CAD model. The machined part can then be compared with the CAD model by measurement using a coordinate measuring machine. Presented in this paper is a reverse engineering approach to generating interference free tool-paths in three-axis machining from scanned data of physical models. There are two steps in this procedure. First, a physical model is scanned by 3D digitizers and multiple data sets are obtained of the complex model. A surface registration algorithm is proposed to align and integrate those data to construct a complete 3D data set. We use least distance method to determine the connecting sequence of the neighboring points, such that the scanned data are converted into triangular polygons. Tool-paths are then generated from the tessellated surfaces. Using the Z-map method we calculate interference-free cutter-location data relative to the vertex, edges and planes of those triangles. The algorithms for tool-path generation are usually different for cutters of various geometry. Some algorithms found in literature require complex numerical calculations and are time consuming. In this paper, an efficient algorithm is developed to calculate interference-free cutter-location data by easy geometric reasoning without complex computation. The robust method is suitable for generally used cutters such as ball, flat and filleted endmills and the time taken to obtain full tool-paths of compound surfaces is short. Some real applications are presented to validate the proposed approach.