Home> Announcements> International topics> Trilateral Cooperation (JPO-EPO-USPTO)> PROJECT24.2 report (english version)> Appendix1.1 Hypothetical application 1

Main content starts here.

note:

The first hypothetical application (description1) includes and the second (description2) does not include underlined written description.

TANGENT VECTORS

**BACKGROUND OF THE INVENTION**

1. Field of the Invention

This invention relates to a curve generating method and, more particularly, to a method of generating a three-dimensional curved surface.

2. Description of the Related Art

A curved surface of a three-dimensional metal mold or the like on a design drawing is generally expressed by a plurality of section curves, but no profile data is shown for the shape of the area lying between a certain section curve and the next adjacent section curve. In numerically controlled machining it is essential that machining be carried out so as to smoothly connect these two section curves despite the next adjacent section curve. In numerically controlled machining it is essential that machining be carried out so as to smoothly connect these two section curves despite the fact that the profile between them is not given. In other words, this means that machining must be performed by generating the curved surface between the two section curves from such data as that indicative of the section curves, recording on an NC tape the data concerning the generated curved surface, and carrying out machining in accordance with commands from the NC tape. To this end, there has been proposed a method of generating the curved surface of a three-dimensional curved body in accordance with predetermined rules using data(e.g. section curves and the like) specifying the three-dimensional curved body.

FIGS.5(a)-(b) for describing a curved surface generating method, in which a curved surface CS [see FIG.5(c)] is generated by providing three-dimensional curves (reference curves) 11a, 11b [see FIG.5(a)] of a curved surface cut by a predetermined section, dividing each of the reference curves 11a, 11b into N equal segments [see FIG.5(b)], and connecting corresponding ones of the partitioning points by straight lines.

In this curved surface generating method, the reference curves 11a, 11b, which are the three-dimensional curves, must be specified. To this end, a sequence of discrete point P1i (xi,yi,zi) (*i* = 1,2,...) is given with regard to the reference curve 11a, as shown in FIG.5(b), a sequence of discrete points P2*j* (X*i*, Y*i*, Z*i*) (*j* = 1,2,...) is given with regard to the reference curve 11b, and curves (reference curves) connecting these point sequences are obtained by performing interpolation between points so as to smoothly connect the respective point sequences.

In this conventional method of generating the point sequence connecting curves, it is necessary to determine a tangent vector at each point. However, the method of determining these tangent vector is a major undertaking requiring matrix computations, inverse matrix computations, etc., and it is impossible for an ordinary curved surface generating apparatus on the personal computer level to determine the tangent vectors.

**SUMMARY OF THE INVENTION**

Accordingly, an object of the present invention is to provide a curve generating method trough which tangent vector can be determined in a simple manner, thus making it possible to simply obtain curves smoothly connecting point sequences.

The method of the present invention includes determining a circular arc passing through three discretely given consecutive points P*i*-1, P*i*, P*i*+1, determining a tangent vector of a tangent line contacting the circular arc at the central point P*i* of these three points, thereafter performing a spline interpolation between the two points P*i*-1, P*i*, using position vectors and tangent vectors at the points P*i*-1, P*i*, thereby obtaining a curve smoothly connecting the two points P*i*-1, P*i*, and thereafter determining a point sequence connecting curve by similarly performing an interpolation between every two consecutive points discretely given.

**BRIEF DESCRIPTION OF THE DRAWINGS**

- FIG.1 is a view 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 according to the present invention;

- FIG.4 is a flowchart of different processing according to the present invention.

- FIG.5(a) - 5(d) for describing a method of generating a curved surface.

**DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT**

FIG.1 is a view for describing the general features of the present invention.

P*i*(*i* = 1,2,... n) represents a sequence of points, CVL a curve smoothly connecting the sequence of points, CAR a circular arc passing through three consecutive points, C*i* the linear distance between adjacent points, and S*i*(*t*) the coordinates of a point on the curve CVL.

The circular arc CAR passing through three discretely given consecutive points P*i*-1, R*i*, R*i*+1 is determined, followed by determining a tangent vector **T***i* of tangent contacting the circular arc at the central point P*i*.

A tangent vector **T***i*-1 at the point P*i*-1 is then found in similar fashion.

Next, by using position vectors **P***i*-1, **P***i* and tangent vector **T***i*-1,**T**i at the points Pi-1, Pi, a spline interpolation is performed between P*i*-1, P*i* to obtain the coordinates S*i*(*t*) (where is a value increased at increments of 0.1 from 0 to 1), and a curve which smoothly connects the two points P*i*, P*i*+1 is determined.

Thereafter, and in similar fashion, the point sequence connection curve CVL is obtained by performing an interpolation between every two consecutive points of the discretely given points of the discretely given points. Fig.2 is a block diagram of an embodiment of the invention, and FIG.3 is a flowchart of processing. In FIG.2, numeral 201 denotes a keyboard for data input, 202 a RAM, 205 a working memory, 206 a curve/curved surface memory for storing generated curve and curved surface data, 207 an output unit for outputting generated curved surface data to an external storage medium 208 such as a paper tape or magnetic tape, 209 an address bus and 210 a data bus.

Processing for generating a curve in accordance with the invention will now be described in accordance with the flowchart of FIG.3.

(a) First, data specifying a three-dimensional curved surface, e.g. a point sequence (a position vector P*i* at each point) specifying the curve CVL (FIG.1), is inputted from the keyboard 201.

(b) Next, the processor performs the operation 1 _{} **1**.

(c) Thereafter, the circular arc CAR (see FIG.1) passing through the discretely given three consecutive points P*i*-1, P*i*, P*i*+1 is found.

(d) When the circular arc CAR has been found, a unit tangent vector **P***i* of a tangent line contacting the circular arc CAR at the central point P*i* is obtained.

(e) Next, the linear distance C*i* between the point P*i*-1 and the pint P*i* is computed.

(f) When the distance C*i* has been found, the coordinates S*i*(*t*) of points on the curve smoothly connecting the point P*i*-1, Pi pare computed by varying t over a range of from 0 to 1, namely by performing spline interpolation, in accordance with the following equation;

In Eq. (1), S*i*(*t*) represents the coordinates of point P*i*-1 if t=0 the coordinates of point P*i* if t=0.5. Accordingly, nine points between points P*i*-1, P*i* are obtained by incrementing at 0.1, interpolation is performed over this interval, and the coordinates of each point are stored in the memory 206. It should be noted that Eq. (1) is an induction equation of a Ferguson curve segment.

(g) Next, it is determined whether the point P*i* is the end point of the curve. If P*i* is the end point, & curve generation processing is terminated.

(h) If the point P*i* is not the end point of the curve, however, *i* is incremented by the operation *i*+1 _{} *i* and processing is repeated from step(c) onward to perform interpolation between every two consecutive points discretely given, whereby a point sequence connecting curve is obtained. The processing of FIG.3 is for a case where a tangent vector is found using three consecutive points. However, a tangent vector can also be obtained by using five consecutive points. FIG.4 is a flowchart for obtaining a tangent vector using five points, and obtaining a curve using the tangent vector.

(a) First, data specifying a three-dimensional curved surface, e.g. a point sequence (a position vector P*i* at each point) specifying a curve is inputted from the

keyboard 201.

(b) Thereafter, a circular arc passing through three discretely given consecutive point P*i*-2, P*i*-1, P*i* is found.

(c) When the circular arc has been found, a unit tangent vector *ej* of a tangent line contacting the circular arc at a point P*i* at the right end is obtained.

(d) Next, a circular arc passing through the three discretely given consecutive points P*i*-1, P*i*, P*i*+1 is found.

(e) When the circular arc has been found, a unit tangent vector e2 of a tangent line contacting the circular arc at the central point P*i* is obtained.

(f) Next, a circular arc passing through the three discretely given consecutive points P*i*, P*i*+1 P*i*+2 is found.

(g) When the circular arc has been found, a unit tangent vector e3 of a tangent line contacting the circular arc at a point P*i* at the left end is obtained.

(h) When the unit tangent vector e1 - e3 have been obtained, a unit tangent vector **P***i'* at the point P*i* is found in accordance with the following equation:

**P***i'* = w1_{}**e**1 + w2_{}**e**2 + w3_{}**e**3

In the above w*i*(*i*=1,2,3) is a weighting coefficient obtained in accordance with the following equation so that the unit tangent vector where the interval between points is small will be reflected in the curve:

- w1=1-(C
*i*+C*i*-1)/(C*i*-1+2C*i*+2C*i*+1+C*i*+2) - w2=1-(C
*i*+C*i*+1)/(C*i*-1+2C*i*+2C*i*+1+C*i*+2) - w3=1-(C
*i*+1+C*i*+2)/(C*i*-1+2C*i*+2C*i*+1+C*i*+2)

where the distance between points P*i*-2, P*i*-1 is C*i*-1, the distance between point P*i*-1, P*i *is C*i*, the distance between points P*i*, P*i*+1 is C*i*+1 and the distance between points P*i*+1, P*i*+2 is C*i*+2.

(i) Next, the tangent vector T*i* is computed in accordance with the equation

**T***i*=C*i***P***i'*

using the linear distance C*i* between the point P*i*-1and the point P*i*.

(j) This is followed by varying t over the range of from 0 to 1 in accordance with Eq.(1) to compute the coordinates S*i*(*t*) of points on the curve smoothly connecting the points P*i*-1, P*i*.

(k) Next,it is determined whether the point Pi is the end point of the curve. If P*i* is the end point, curve generation processing is terminated.

(m) If the point P*i* is not the end point of the curve, however, is incremented by the operation *i*+1 _{} *i* and processing is repeated from step (b) onward to perform interpolation between every two consecutive points discretely given, whereby a point sequence connecting curve is obtained.

In accordance with the present invention, the arrangement is such that a tangent vector at each point of a point sequence is obtained by using three or five consecutive points. As a result, tangent vectors can be obtained in a simple manner and, hence, a curve smoothly connecting the point sequence can be obtained in simple fashion.

With the method of obtaining tangent vectors in accordance with Eq.(2) using five points, a curve can be minutely altered by changing the manner in which each weighting coefficient is decided, thereby making it possible to generate the desired curve.

We claim :

1. A method of generating a curve comprising the steps of:

- (a) detecting a circular arc passing through three discretely given consecutive points P
*i*-1, P*i*, P*i*+1 of the curved surface.

- (b) determining a tangent vector of a tangent line contacting said circular arc at the central point P
*i*of said three points;

- (c) determining a curve smoothly connecting the two points P
*i*-1, P*i*by performing a spline interpolation between the two points P*i*-1, P*i*using position vectors**P***i*-1,**P***i*at the points P*i*-1, P*i*and tangent vectors**T***i*-1,**T***i*at the points P*i*-1, P*i*determined in step(b);

- (d) determining a point sequence connecting curve by performing a spline interpolation between every two adjacent consecutive points

2. A method of generating a curve by computer comprising the steps of:

- (a) detecting a circular arc passing through three discretely given consecutive points P
*i*-1, P*i*, P*i*+1 of the curved surface.

- (b) determining a tangent vector of a tangent line contacting said circular arc at the central point P
*i*of said three points;

- (c) determining a curve smoothly connecting the two points P
*i*-1, P*i*by performing a spline interpolation between the two points P*i*-1, P*i*using position vectors**P***i*-1,**P***i*at the points P*i*-1, P*i*and tangent vectors**T***i*-1,**T***i*at the points P*i*-1, P*i*determined in step(b);

- (d) determining a point sequence connecting curve by performing a spline interpolation between every two adjacent consecutive points.

3. A method of machining a three-dimensional curved surface comprising the steps of:

- (a) detecting a circular arc passing through three discretely given consecutive points P
*i*-1, P*i*, P*i*+1 of the curved surface.

- (b) determining a tangent vector of a tangent line contacting said circular arc at the central point P
*i*of said three points;

- (c) determining a curve smoothly connecting the two points P
*i*-1, P*i*by performing a spline interpolation between the two points P*i*-1, P*i*using position vectors**P***i*-1,**P***i*at the points P*i*-1, P*i*and tangent vectors**T***i*-1,**T***i*at the points P*i*-1, P*i*determined in step(b);

- (d) determining a point sequence connecting curve by performing a spline interpolation between every two adjacent consecutive points; and

machining the three-dimensional curved surface according to the point sequence connecting curve.

4. A method of generating a curve for machining a three-dimensional curved surface comprising the steps of:

- (a) detecting a circular arc passing through three discretely given consecutive points P
*i*-1, P*i*, P*i*+1 of the curved surface.

- (b) determining a tangent vector of a tangent line contacting said circular arc at the central point P
*i*of said three points;

- (c) determining a curve smoothly connecting the two points P
*i*-1, P*i*by performing a spline interpolation between the two points P*i*-1, P*i*using position vectors**P***i*-1,**P***i*at the points P*i*-1, P*i*and tangent vectors**T***i*-1,**T***i*at the points P*i*-1, P*i*determined in step(b);

- (d) determining a point sequence connecting curve by performing a spline interpolation between every two adjacent consecutive points;

5. A method of displaying a generated curve by computer comprising the steps of:

- (a) detecting a circular arc passing through three discretely given consecutive points P
*i*-1, P*i*, P*i*+1 of the curved surface.

- (b) determining a tangent vector of a tangent line contacting said circular arc at the central point P
*i*of said three points;

- (c) determining a curve smoothly connecting the two points P
*i*-1, P*i*by performing a spline interpolation between the two points P*i*-1, P*i*using position vectors P*i*-1, P*i*at the points P*i*-1, P*i*and tangent vectors T*i*-1, T*i*at the points P*i*-1, P*i*determined in step(b);

- (d) determining a point sequence connecting curve by performing a spline interpolation between every two adjacent consecutive points; and

displaying the three-dimensional curved surface according to the point sequence connecting curve.

6.A method of controlling a curve generating apparatus including a keyboard for data input, a processor, a ROM for storing a control program, a RAM, a working memory, an output unit for outputting generated curved surface data to an external storage medium, an address bus and a data bus, said control program comprising the steps of

- (a) detecting a circular arc passing through three discretely given consecutive points P
*i*-1, P*i*, P*i*+1 of the curved surface.

- (b) determining a tangent vector of a tangent line contacting said circular arc at the central point P
*i*of said three points;

- (c) determining a curve smoothly connecting the two points P
*i*-1, P*i*by performing a spline interpolation between the two points P*i*-1, P*i*using position vectors**P***i*-1,**P***i*at the points P*i*-1, P*i*and tangent vectors**T***i*-1,**T***i*at the points P*i*-1, P*i*determined in step(b);

- (d) determining a point sequence connecting curve by performing a spline interpolation between every two adjacent consecutive points.

Only induction equation of a Ferguson curve segment is disclosed in the hypothetical prior art.

COMPUTER GRAPHICS AND IMAGE PROCESSING VOL.11, 1979,PAGES 192-196, ACADEMIC PRESS INC., NEW YORK,US; J.E. MIDGLEY: "ISOTROPIC FOUR-POINT INTERPOLATION"