Abstract:
A method of creating NC data for a complex curved surface (10) which has a combination of at least two three-dimensional curved surfaces (11, 12). The NC data creation method includes inputting data specifying each of the curved surfaces (11, 12) and data for specifying cutting path patterns (a pattern 21 of radiating straight lines and a pattern 22 of parallel straight lines) for respective ones of the curved surfaces. Points are obtained discretely from a cutting starting point (P i ) of one curved surface (11) to a boundary point (R i ) with the other curved surface (12) along the radiating-type cutting path pattern (21) set for this curved surface. Points are also obtained discretely on the other curved surface along the cutting path pattern (22) of parallel straight lines specified with respect to the other curved surface (12). A pick-feed is performed points are obtained discretely along the cutting path pattern on each of the curved surfaces in similar fashion. NC data for generating a complex curved surface by successively traversing each of the points, is created.

Description:
BACKGROUND OF THE INVENTION 
     This invention relates to a method of creating NC data for a complex curved surface and, more particularly, to a complex curved surface NC data creation method in which a cutting path pattern is specified for every curved surface constituting a complex curved surface, and cutting is performed by moving a tool along the cutting path conforming to the specified cutting path pattern. 
     There are cases where it is required to machine a complex curved surface composed of a combination of two or more three-dimensional curved surfaces. FIG. 7 shows a side view (FIG. 7(A)) and a plan view (FIG. 7(B)) of a complex curved surface composed of a combination of two three-dimensional curved surfaces (hereinafter refered to simply as &#34;curved surfaces&#34;) 1 and 2. The curved surface 1 has a frusto-conical shape, the curved surface 2 has the shape of a semicircular cylinder. There is also a boundary line 3. To machine this complex curved surface, the conventional practice is to designate one cutting path pattern on the entire complex curved surface, obtain points discretely on the actual cutting path based on the cutting path pattern, create NC data in such a manner that a tool will traverse the points continuously, and machine the complex curved surface on the basis of these NC data. 
     For instance, in the example of FIG. 7, the cutting path pattern is a group of straight lines which grow incrementally larger every a o  in radial fashion from a center P c  (FIG. 7(B)). Each straight line is a line segment from a point P i  (i=1, 2, . . .) of radius r to a cutting boundary point Q i . The NC ddata for machining this complex curved surface are generated as follows: 
     NC data for an approach to a point P1; 
     NC data for cutting from point P 1  to a point Q 1  ; 
     NC data for a pick-feed to a point P 2  ; 
     NC data for cutting from point P 2  to a point Q 2  ; 
     NC data for a pick-feed to a point P 3  ; 
     ...................... 
     NC data for cutting from point P i  to point Q i  ; 
     ...................... 
     When NC data are thus created upon designating only one cutting path pattern for the complex curved surface and the complex curved surface is machined in accordance with the NC data created, an unnatural striped pattern is produced on the surface of the generated complex curved surface and the curved surface cannot be finished off attractively. It should be noted that if the stripes formed on the curved surface 2 are all parallel in the direction of the cylinder or all parallel in the circumferential direction, the surface will be finished off attractively. However, this will not be the case because only one cutting pattern (a radial pattern in the example of FIG. 7) is designated, and as a result, the surface will not exhibit an attractive finish. 
     SUMMARY OF THE INVENTION 
     Accordingly, an object of the invention is to provide a complex curved surface NC data creation method for moving a tool along a cutting path pattern which conforms to the shape of each curved surface constituting a complex curved surface, whereby the machined surface can be finished off attractively. 
     The present invention relates to a method of creating NC data for a complex curved surface comprising a combination of at least two three-dimensional curved surfaces. The NC data creation method includes inputting data specifying each of the curved surfaces and data for specifying a cutting path pattern for each curved surface, obtaining points discretely from a cutting starting point of one curved surface to a boundary point with another of the curved surfaces along a cutting path pattern set on the one curved surface, obtaining points discretely on the other of the curved surfaces along a cutting path pattern specified with respect to the other of the curved surfaces, thereafter performing a pick-feed and obtaining points discretely along the cutting path pattern on each of the curved surfaces in similar fashion, and creating NC data for generating a complex curved surface by successively traversing each of the points. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIGS. 1(A) and 1(B) are a side view and a plan view, respectively, of a complex curved surface, for describing the general features of the present invention; 
     FIG. 2 is a block diagram of an apparatus for practicing the present invention; 
     FIG. 3 is a flowchart of processing in accordance with the present invention; 
     FIGS. 4(A), 4(B) and 4(C) are diagrams for describing cutting path patterns; 
     FIGS. 5 and 6 are diagrams for describing the computations of points on a curved surface; and 
     FIGS. 7(A) and 7(B) are a side view and a plan view, respectively, of a complex curved surface for describing a conventional method. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     FIG. 2 is a block diagram of an automatic programming apparatus for practicing the method of the present invention. In the FIG., numeral 101 denotes a keyboard for data input, 102 a processor, 103 a ROM storing a control program, 104 a RAM, 105 a working memory, 106 a curved surface memory for storing curved surface data of a generated complex curved surface and NC program data for curved surface machining, 107 an output unit for outputting the curved surface data of the generated complex curved surface or the NC program data for curved surface machining to an external storage medium 108 such as a paper tape or magnetic tape, 109 an address bus, and 110 a data bus. 
     A method of creating NC data for a complex curved surface in accordance with the present invention will now be described in accordance with the flowchart of FIG. 3. It will be assumed that NC data for machining the complex curved surface shown in FIG. 1 will be created. 
     (a) First, data specifying a first curved surface 11 and a second curved surface 12 which constitute a complex curved surface 10 (see FIG. 1) are inputted from the keyboard 101. It should be noted that the data specifying these curved surfaces are indicative of drive curves, basic curves and the like and are well-known, by reason of which a detailed explanation is omitted (see U.S. Pat. No. 4,491,906). The curved surface 11 is defined under the name SS2, and the curved surface 12 is defined under the same SS1. 
     (b) Next, for every curved surface 11, 12 constituting the complex curved surface 10, data for specifying a number of sections perpendicular to the X-Y plane cutting these curved surfaces are inputted from the keyboard 101 and stored in the RAM 104. 
     More specifically, for every curved surface, there are inputted one line of intersection on the X-Y plane, a rule for specifying a number of lines of intersection on the X-Y plane based on the one line of intersection, and a cutting range. 
     By way of example, if each of the sections are parallel to one another and perpendicular to the X-Y plane and, moreover, the spacing between mutually adjacent sections is fixed, then the line of intersection CV i  (i=1, 2, 3, . . .) between each section and the X-Y plane will be as shown in FIG. 4(A). In such case, therefore, data specifying a first line of intersection CV 1 , components (V x , V y ) of a vector V along each axis, and a distance d 1  between two mutually adjacent lines of intersection are inputted. 
     It should be noted that a cutting path pattern is specified by the line-of-intersection data and the distance d 1 , and that cutting range is specified by the length of the line of intersection CV 1  and the vector V. In FIG. 4, the direction indicated by arrow A is referred to as the cutting direction, and the direction indicated by arrow B is referred to as the feed direction. 
     In actuality, the following command is inputted to specify the cutting path pattern and cutting range: 
     CV 1  =. . . ; 
     GROUP, 1, V x , V y , d 1 , i; where GROUP, 1 indicates that the cutting path pattern is of the type shown in FIG. 4(A), and the numerical value i indicates that this is the i-th curved surface SS i . 
     If each section is perpendicular to the X-Y plane and the angle between mutually adjacent sections is fixed, then lines of intersection CV i  (i=1, 2, 3, . . . ) between respective sections and the X-Y plane will intersect successively at equal angles d 2  at a single point P c , as shown in FIG. 4(B). In such case, therefore, data specifying the first line of intersection CV 1  and the point Pc (x c , y c ), the angle d 2  defined by two mutually adjacent lines of intersection, and an angle a indicating the cutting range are inputted. In actuality, the following command is inputted: 
     CV 1  =.....; 
     GROUP, 2, x c , y c , d 2 , a, i; where GROUP, 2 indicates that the cutting path pattern is of the type shown in FIG. 4(B). 
     If each section is perpendicular to the X-Y plane, the sections have the shape of concentric circular cylinders and the spacing between mutually adjacent sections is fixed, then lines of intersection CV i  (i=1, 2, 3, . . . ) between the respective sections and the X-Y plane will be concentric circular arcs, as shown in FIG. 4(C). In such case, therefore, data specifying the first line of intersection CV 1 , a distance d 3  between two mutually adjacent lines of intersection, and the maximum circular arc radius dr, which is the cutting range, are inputted. In actuality, the following command is inputted: 
     CV 1  =. . . ; 
     GROUP, 3, dr, d 3 , i; 
     where GROUP, 3 indicates that the cutting path pattern is of the type shown in FIG. 4(C). In the example of FIG. 1, the cutting path pattern shown in FIG. 4(B) is specified for the curved surface 11, and the cutting path pattern shown in FIG. 4(A) is specified for the curved surface 12. 
     (c) When the cutting path patterns are finished being specified, a curved surface cutting sequence is then inputted in the form of a COMP statement and CUT statement. 
     In the example of FIG. 1, the cutting sequence is inputted by 
     COMP, SS 2  ; 
     CUT, SS 1  ; 
     It should be noted tha the curved surface specified by the CUT statement is a main curved surface (SS 1 ), and the curved surface specified by the COMP statement is a subordinate curved surface (SS 2 ). The cutting path pattern for a main curved surface takes precedence over those for subordinate curved surfaces at the portions where these curved surfaces overlap. Among the subordinate curved surfaces, the one earliest in the cutting sequence takes precedence. In FIG. 1, the case illustrated is one in which the complex curved surface is constituted by the two curved surfaces 11, 12. In general, however, a complex curved surface is composed of (n+1) curved surfaces, in which case n COMP statements and one CUT statement would be commanded and the cutting sequence would be the order in which the commands are given. 
     (d) When the necessary data have been inputted, the processor generates each of the curved surfaces 11, 12 through a well-known method. 
     As shown in FIG. 5, let L c  (j) express an intermediate section curve containing a j-th dividing point on a basic curve BSCl of a curved surface, and let L r  (i) express a curve obtained by connecting an i-th dividing point on each of intermediate section curves L c  (j) (j=1, 2, 3, . . . n). A quadrilateral bounded by curves L c  (j), L c  (j+1), L r  (i) and L r  (i+1) shall be referred to as a &#34;patch&#34; PT (i,j). The four vertices Q 1 , Q 2 , Q 3 , Q 4  of the patch PT (i,j) are generated by curved surface creation processing and are stored in the curve surface memory 106. 
     When the processing for generating each of the curved surfaces in accordance with step (d) is completed, processing for creating NC data begins, as follows: 
     (e) First, the operations 1→i, 1 →j are performed. 
     (f) The processor 102 then obtains a line of intersection CV i  of the j-th curved surface SS j , which is given in step (b), on the i-th X-Y plane. 
     (g) When the i-th line of intersection CV i  has been found, the processor 102 obtains points discretely on a section curve obtained when the j-th curved surface is cut by a section perpendicular to the X-Y plane on which the line of intersection lies. 
     More specifically, the processor finds the coordinates of points of intersection P 1i , P 2i  (see FIG. 6) between the i-th line of intersection CV i  and the sides of projection patches, which are obtained by projecting each patch (FIG. 5) of the j-th curved surface onto the X-Y plane. Next, the processor calculates the coordinates of points on the j-th curved surface that correspond to these points of intersection. That is, the processor obtains the coordinates of points on the j-th curved surface, which are points obtained by projecting the points of intersection P 1i , P 2i  onto the X-Y plane. 
     FIG. 6 is a view for describing a method of computing the coordinates of the points on the curved surface. Four sides i a , i b , j a , j b  are obtained by projecting a predetermined patch P (m, n) on a three-dimensional curved surface onto the X-Y plane. Let P 1i , P 2i  represent the points of intersection between the i-th line of intersection CV i  and a predetermined two of these four sides, and let (x 1i , y 1i ), (x 2i , y 2i ) represent the coordinates of these points of intersection. Further, let Q 1  &#39;, Q 2  &#39; denote the end points of the side i a  intersected by the line of intersection CV i , let Q 3  &#39;, Q 4  &#39; denote the end points of the side i b  intersected by the line of intersection CV i , let Q i  (i=1˜4) represent the points on the three-dimensional curved surface that correspond to the points Q i  &#39; (i=1˜4), and let (x i , Y i , z i ) denote the coordinates of each of the points Q i . Then, the z coordinates z 1i , z 2i  of the points P 1i  &#39;, P 2i  &#39; on the curved surface that correspond to the points of intersection P 1i , P 2i  are calculated in accordance with the following equations: 
     z 1i  = 1  +(Z 2  -z 1 ) (x 1i  -x 1 )/(x 2  -x 1 ) 
     z 2i  =z 3  +(z 4  -z 3 ) (x 2i  - 3 )/(x 4  -x 3 ) The coordinates of the points on the curved surface will be (x 1i , y 1i , z 1i ), x 2i , y 2i , z 2i ). 
     (h) Whenever a point on the j-th curved surface is obtained, the processor checks whether the point forms a point of intersection (a boundary point) with another curved surface (let this surface be a j&#39;th curved surface). It should be noted that an initial point under the j&#39;th curved surface is taken as a point of intesection (a boundary point). Accordingly, the processor obtains points on each curved surface that correspond to the projection points in step (g) and, on the basis of the magnitude of the Z values thereof, checks whether a point of intersection has been reached. 
     (i) If a point of intersection has not been been reached, the processor checks whether a boundary point in the cutting direction (see the direction indicated by arrow A in FIG. 4) has been reached. 
     If the boundary point in the cutting direction has not been reached, processing from step (g) onward is repeated. 
     (j) If a boundary point in the cutting direction (see the direction indicated by arrow B in FIG. 4) is reached, however, the processor checks whether a boundary point in the feed direction has been reached. 
     (k) If a boundary point in the feed direction has been reached, curved surface generation processing ends, after which the processor creates NC data in such a manner that a tool will successively traverse the points that have been obtained. This completes NC data creation processing. 
     (l) If a boundary point in the feed direction is not reached at step (j), however, the operations i +1 →i, 1→j are performed and processing from step (f) onward is repeated with regard to the next line of intersection obtained by a pick-feed of a predetermined amount in the feed direction. 
     (m) If it is judged in step (h) that a point obtained in step (g) forms a point of intersection (a boundary point) with a j&#39; curved surface, the processor performs the operation j&#39;→j. 
     (n) Next, the processor obtains a line of intersection CV i  passing through the abovementioned point of intersection and parallel to the line of intersection CV 1  set in correspondence with the j-th curved surface, and then repeats processing from step (g) onward. 
     In accordance with the present invention as described above, a tool can be moved along a cutting path pattern conforming to the shape of each curved surface constituting a complex curved surface, thus enabling the machined surface to be finished off attractively.