INVOLUTE INTERPOLATING METHOD

Abstract: An involute interpolating method for a numerical control unit having both rotary and linear axis comprises the steps of commanding the direction of rotation of an involute curve (IC1), the center of a basic circle (BC), the radius (R) of the basic circle and a Z-axis, interpolating the involute curve (IC1) and Z-axis in accordance with this command, and converting the quantity of the interpolation into the respective rotary axis, linear axis and Z-axis to thereby control a machine tool (9).

Description: The present invention relates to an numerical control apparatus for performing involute interpolation and controlling a machine having a rotational axis and a linear axis. There is a great need for the interpolation of involute curves in computerized numerical control apparatus or the like in order to machine gears, pump impellers, or the like. It has been general practice to interpolate an involute curve with a computer or an NC programming device separate from a numerical control apparatus, convert the interpolated data to linear data on a tape, and machine a workpiece under numerical control using the tape. The applicant has proposed an involute interpolation method by which an involute curve can easily be interpolated with commands in an orthogonal coordinate system within a computerized numerical control (CNC) apparatus (see EP-A-321577 cited under Art 54(3) EPC). "Formules et Tables de Mathematique" Ediscience/McGrand Hill, Paris 1974, p 43, discloses formulae for interpolating involute curves. US-A-3714865 discloses an apparatus for milling cams, with numerically controlled stepper motors. The machine coordinate system of a three-axis lathe or a cam grinding machine having a C-axis is a polar coordinate system. The above involute interpolation method employing an orthogonal coordinate system cannot be applied to these machines. For machining a cam or a gear, it is necessary to interpolate an involute curve in one plane, and provide a curved plane which moves in a direction normal to that plane. In view of the aforesaid drawback of the earlier involute interpolation method, it is an object of the present invention to provide an involute interpolation method for interpolating an involute curve and a Z-axis in synchronism with the other 2-axes. There is provided in accordance with the present invention a numerical control apparatus for controlling a machine having a rotational axis and first and second orthogonal linear axes for machining a three-dimensional involute curve on a workpiece, the apparatus comprising: reading means for reading a machining program, having involute interpolation instructions, which includes a G-code for instructing involute interpolation, a rotational direction of a two-dimensional involute curve in the plane defined by the first linear axis (X) and a third linear axis (Y) orthogonal to said two axes, the end point of the involute curve, a centre position of the base circle and the radius of the base circle for the two-dimensional involute curve and movement data for the second linear axis (Z); preprocessing means for decoding the involute interpolation instructions in the G-code; involute interpolation data producing means for producing from said interpolation instructions involute interpolation data of a two-dimensional involute curve by incrementing a rotational angle () of the involute curve; pulse distribution means for obtaining from said interpolation data a sequence of points on the two-dimensional involute curve and distributing corresponding output pulses for the first linear axis (X) and the third linear axis (Y) in accordance with the interpolation data, and for distributing pulses dependent upon movement data for the second linear axis (Z); coordinate converting means for converting said output pulses for the first linear axis (X), the third linear axis (Y) and the second linear axis (Z) in the orthogonal coordinates system (X,Y,Z) to second output pulses (r,c,z) in the polar coordinate system; and, servo control circuits for controlling servo motors for driving the machine from said second output pulses. The command for the involute curve is interpolated in orthogonal coordinates. The Z-axis is interpolated synchronously with the other two axes. The interpolated distance of the involute curve is converted to polar coordinates for control of a machine tool. An embodiment of the present invention will hereinafter be described with reference to the drawings, in which:- FIG. 1 is a diagram showing an involute curve to be interpolated according to an embodiment of the present invention; FIG. 2 is a block diagram of a numerical control apparatus according to the present invention; and FIG. 3 is a diagram showing the relationship between an orthogonal coordinate system and a polar coordinate system. FIG. 3 shows the relationship between an orthogonal coordinate system and a polar coordinate system of a machine having a linear axis and a rotational axis, such as a three axis lathe or the like. An X-axis represents the direction of a cross slide, and a Z-axis is the same as the direction of the axis of a spindle. The machine has a radial linear X-axis, a linear Z-axis perpendicular to the X-axis, and a C-axis which is a rotational axis around the Z-axis. A program employs X- and Y-axes, and gives commands for an involute curve on the XY plane. The commands and movement of the machine are the same along the Z-axis. Therefore, the program for an involute curve is commanded on the XY plane, and is interpolated in the coordinate system on the XY plane. Interpolation pulses are converted to pulses in a polar coordinate system, i.e., on an r-c plane, and servomotors are driven by the converted pulses to control the machine. The program and actual movement are the same with respect to the Z-axis. On the Z-axis, a distance of movement may be interpolated in proportion to a small movement of the involute curve on the XY plane, or may be controlled such that the speed along the Z-axis will be proportional to the tangential speed of the involute curve on the XY plane. Denoted in FIG. 3 at Ps is a starting point of an involute curve, the XY plane which contains the starting point Ps being indicated as a plane A, and at Pe is an ending point of the involute curve, the XY plane which contains the ending point Pe being indicated as a plane B. The involute curve on the plane A is represented by IC1, and the involute curve on the plane B by IC2. The involute curves IC1, IC2 are the same. A desired three-dimensional involute curve IC can be obtained by interpolating the involute curve IC1 while at the same time interpolating commands along the Z-axis in synchronism therewith. Actual commands and interpolation of an involute curve will be described below. FIG. 1 shows, by way of example, an involute curve to be interpolated according to the embodiment of the present invention. The illustrated curve is the same as the involute curve IC1 on the plane A shown in FIG. 3, except that the involute curve is shown as curved in the opposite direction in FIG. 1. As described above, the involute curve is commanded as an involute curve on the XY plane. BC represents the base circle of the involute curve with its center having coordinates O (X 0 , Y 0 ), and R indicates the radius of the base circle. The involute curve IC1 is an involute curve to be interpolated, and starts at a point P 1 (X 1 ,Y 1 ) on the circumference of the base circle. A line interconnecting the point P1 and the center O forms an angle  0 with the X-axis. A desired interpolated involute curve is an involute curve to be interpolated from a machining start point Ps (Xs, Ys) on the involute curve IC1 to an ending point Pe1 (Xe, Ye). Now, a line is drawn from the point Ps (Xs,Ys) tangentially to the base circle BC at a point Psc. A line interconnecting the point Psc thereon and the center O forms an angle s with the X-axis. Likewise, a line is drawn from the point Pel (Xe, Ye) tangentially to the base circle BC at a point Pec thereon. A line interconnecting the point Pec and the center O forms an angle e with the X-axis. A line is drawn from a point P (X, Y) on the involute curve being interpolated tangentially to the base circle BC at a point Pc (Xc, Yc). A line interconnecting the point Pc and the center O forms an angle  with the x-axis. Commands for interpolating the involute curve are given as: G12.1; G03.2X -- C -- Z -- I -- J -- R -- F -- ; G13.1; G12.1 is a polar coordinate interpolation command which is a modal command. After this G code is commanded, the polar coordinate interpolation remains effective until the G code is cancelled. For program commands "X-- C--" in the polar coordinate interpolation mode, cartesian coordinates are used. For an address of a virtual axis orthogonal to the linear axis X, an address of the rotational axis C is used for a command. G03.2 is a counterclockwise involute curve command. If the involute curve were clockwise, it would be commanded by G02.2. Whether the involute curve goes toward or away from the base circle depends on the coordinates of the starting and ending points of the involute curve. X denotes the component X of the coordinates of the ending point in a cartesian coordinate system (X, Y), and C denotes the component Y of the coordinates of the ending point in the cartesian coordinate system, which are Pel (Xe, Ye) in FIG. 1. The coordinates are commanded as absolute values. The numerical values following C are commanded as Y-axis values in the XY plane, and hence are different from an actual interval by which the C-axis rotates. After the involute curve has been interpolated, these values are converted to values in the polar coordinate system. Z indicates a distance of movement along the z-axis or the coordinates of the ending point. I -- J -- indicates the values of the center of the base circle BC as viewed from the starting point Ps (Xs, Ys), and is commanded by incremental values. R -- represents the radius of the base circle BC, and F -- the speed of feed. G13.1 is a command for cancelling the polar coordinate interpolation mode. When this code is given, the polar coordinate interpolation mode is cancelled, and control goes back to the normal orthogonal coordinate interpolation. The mark ";" indicates the end of a block. A calculation process for determining values required for the involute curve from the above commands will be described below. (1) The central coordinates X o /Y o of the base circle C: The coordinates of the starting point Ps (Xs, Ys) of the involute curve are not contained in commands, but are stored as a present position in a computerized numerical control apparatus. The coordinates O (X o , Y o ) of the center of the base circle are determined from the starting points Ps (Xs, Ys) and a distance (I, J) to the center of the base circle of the involute curve as viewed from the starting point according to the following equations: X o = Xs + I Y o = Ys + J (2) The angle s for the starting point of the involute curve: A line is drawn from Ps (Xs, Ys) tangentially to the base circle BC at a point Psc, and the angle formed between a line interconnecting the point Psc and the center O and the X-axis is indicated as s. (3) The angle e for the ending point of the involute curve: A line is drawn from Pe1 (Xe, Ye) tangentially to the base circle BC at a point Pec, and the angle formed between a line interconnecting the point Pec and the center O and the X-axis is indicated as e. (4) The angle s for the starting point of the involute curve. If it is assumed that the distance between the points Psc and Ps is represented by ℓs, then the length of the arc between the points Psc and P 1 is equal to the length of the straight line ℓs because of the definition of the involute curve. Therefore, if the length of the straight line ℓs is indicated by L, then the angle o for the starting point of the involute curve can be determined by: o = s - L/R (radian) (5) From the above values, the coordinates of a point on the involute curve are given as follows: X = R {cos + ( -  0 )sin} + X 0 Y = R {sin - ( -  0 )cos} + Y 0 By incrementing  a certain angle from s to e, successively determining points on the involute curve IC1 according to the above equations, and linearly interpolating the points, an involute curve to be determined can be interpolated. Interpolation along the Z-axis in synchronism therewith can result in interpolation of the curve to be determined. A desired involute curve can be interpolated by incrementing  certain angles in the above equations, determining three points, and interpolating them according to circular interpolation. In the above description, specific commands and interpolation formulas have been explained. Basically, however, it is sufficient to command the direction in which an involute curve rotates, the distance of incrementation along it, the radius of a base circle, and the coordinates of the center of the base circle, and various formulas can be used depending on the type of commands. The distance of incrementation along an involute curve may be commanded by way of a rotational angle of incrementation along an involute curve. In the above embodiment, the involute curve turns counterclockwise away from the base circle. However, the involute curve may turn counterclockwise toward the base circle, clockwise toward the base circle, or clockwise away from the base circle. The above equations are applicable to any of these three instances. The interpolation pulses thus obtained on the XY plane are then converted to values on the r-c plane according to the following equations: r = X 2 + Y 2 c = cos -1 (X/ X 2 + Y 2 ) ± 2nπ (n is an integer) The interpolation pulses along the Z-axis are issued as they are as X-axis commands. A computerized numerical control apparatus for effecting the above involute curve interpolation will be described below. FIG. 2 schematically shows the computerized numerical control apparatus. The computerized numerical control apparatus includes a tape command 1 in the form of a tape in which the above commands are punched, a tape reader 2 for reading the tape 1, a pre-processing means 3 for determining from G codes whether there is an involute interpolation command, an involute interpolation data generating means 4 for generating from commands involute interpolation data necessary for effecting the involute interpolation as described above, and a pulse distributing means 5 for incrementing  by certain angles to determine points of an involute curve and a distance of movement along the Z-axis from the data generated in the orthogonal coordinate system by the involute interpolation data generating means 4, effecting linear or circular interpolation on the determined points and distance, and issuing interpolation pulses. The computerized numerical control apparatus also includes a coordinate converting means 6 for converting the interpolation pulses (X, Y) in the orthogonal coordinate system to interpolation pulses (r, c, Z) in the polar coordinate system, and a servo control circuit 7 for driving servomotors 8 with the commands to cause ball screws or the like to move a machine 9. With the present invention, as described above, an involute curve and commands on the Z-axis are interpolated in the computerized numerical control (CNC) apparatus, and the interpolated quantities are converted to those on the rotational, linear, and Z-axes for controlling a machine tool. Accordingly, a workpiece can easily be machined along a three-dimensional involute curve on a three-axis lathe, a cam grinding machine, or the like.

Claims: A numerical control apparatus for controlling a machine (9) having first X and second Z orthogonal linear axes and a rotational axis C corresponding to the Z axis for machining a three-dimensional involute curve on a workpiece, the apparatus comprising: reading means (2) for reading a machining program, having involute interpolation instructions, which includes a G-code (G02.2,G03.2) for instructing involute interpolation, based upon a rotational direction of a two-dimensional involute curve in the plane defined by the first linear axis (X) and a third linear axis (Y) orthogonal to said two axes, the end point of the involute curve, a centre position of the base circle and the radius of the base circle for the two-dimensional involute curve and movement data for the second linear axis (Z) ; preprocessing means (3) for decoding the involute interpolation instructions in the G-code; involute interpolation data producing means (4) for producing from said interpolation instructions involute interpolation data of a two-dimensional involute curve by incrementing a rotational angle () of the involute curve; pulse distribution means (5) for obtaining from said interpolation data a sequence of points on the two-dimensional involute curve and distributing corresponding output pulses for the first linear axis (X) and the third linear axis (Y) in accordance with the interpolation data, and for distributing pulses dependent upon movement data for the second linear axis (Z); coordinate converting means for converting said output pulses for the first linear axis (X), the third linear axis (Y) and the second linear axis (Z) in the orthogonal coordinates system (X,Y,Z) to second output pulses (r,c,z) in the polar coordinate system corresponding to the rotation (C) around the Z-axis, the distance (r) from the Z-axis and the movement along the Z-axis; and, servo control circuits (7) for controlling servo motors (8) for driving the machine (9) from said second output pulses. A numerical control apparatus according to claim 1, wherein the distance of movement along the second linear axis (Z) is distributed in proportion to small movements on the two-dimensional involute curve. A numerical control apparatus according to claim 1, wherein the distance of movement along the second linear axis (Z) is distributed such that the speed along the second linear axis (Z) is proportional to the tangential speed along the involute curve.

Inventors: FUJIBAYASHI KENTARO, KAWAMURA HIDEAKI, SANO MASAFUMI FANUC DAI- VIRA-, FUJIBAYASHI, KENTARO, KAWAMURA, HIDEAKI, SANO, MASAFUMI, SANO, MASAFUMI FANUC DAI-3 VIRA-KARAMATSU
Applicants: FANUC LTD, FANUC LTD.
Application year: 1989
Main classification: G05B19
IPC codes: G05B19