Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND SYSTEM FOR PRODUCING PROGRESSIVE ADDITION SPECTACLE LENSES
Document Type and Number:
WIPO Patent Application WO/2002/037168
Kind Code:
A2
Abstract:
A method and system for producing progressive addition spectacle lenses required rotating a lens blank (10) about a first axis (Z). A cutting tool (12) is reciprocated along a second axis (Z') parallel to the first axis, and is also moved along a third axis (X) orthogonal to the first and second axes. All these motions are controlled such that the cutting tool is brought into contact with the blank and reciprocated in synchronization with the rotation of the blank, thereby enabling a desired non-rotationally symmetric surface to be generated. The necessary rotary and linear motions are suitably provided by respective actuators (36, 18, 24, 30), and corresponding encoders (38, 20, 26, 32) are used to provide velocity and position information for each actuator. A processor (42) receives the encoder outputs and is arranged to provide closed loop control of each actuator. A desired surface may be provided to the processor in the form of a points file which describes the surface with an array of points having three-dimensional coordinates. The points are first converted into polar coordinates (50), then translated into motion equations which are evaluated to generate the motions necessary to create the desired surface.

Inventors:
DRAIN JAMES W
BERGMAN NEAL
Application Number:
PCT/US2001/042559
Publication Date:
May 10, 2002
Filing Date:
October 09, 2001
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
DAC INTERNATIONAL INC (US)
International Classes:
B23Q5/46; B24B13/06; (IPC1-7): G02C7/00
Foreign References:
EP0534740A11993-03-31
US5718154A1998-02-17
DE4210381A11993-10-14
Attorney, Agent or Firm:
Patrick, Steven C. (CA, US)
Download PDF:
Claims:
WE CLAIM :
1. A system for producing a workpiece having a non rotationally symmetric surface, comprising: a rotary actuator (18) which rotates a workpiece (10) about a first axis (Z), a tool (12) which removes material from a surface of said workpiece when brought into contact with said surface, a first linear actuator (24) which reciprocates said tool along a second axis (Z') parallel to said first axis, a second linear actuator (30) which moves said tool along a third axis (X) orthogonal to said first and second axes, and a processor (42) arranged to control said actuators such that said tool contacts said surface and is reciprocated in synchronization with the rotation of said workpiece to produce a desired nonrotationally symmetric surface on said workpiece.
2. The system of claim 1, wherein said workpiece is a spectacle lens blank and said desired nonrotationally symmetric surface is a progressive addition spectacle lens front.
3. The system of claim 1, wherein said workpiece is a spectacle lens blank and said desired nonrotationally symmetric surface is a backside lens prescription for a progressive addition spectacle lens.
4. The system of claim 1, wherein said first linear actuator is a voice coil.
5. The system of claim 1, wherein said actuators operate in response to respective drive signals received from said processor, said processor arranged to: receive a points file (50) which describes said desired nonrotationally symmetric surface with an array of points having threedimensional coordinates, convert said points file (52) to an array of polar coordinates, convert said array of polar coordinates into motion equations, and evaluate said motion equations to produce said respective drive signals.
6. The system of claim 1, further comprising a rotary encoder (20) which provides an output (22) to said processor that varies with the rotational velocity and position of said workpiece about said first axis, a first linear encoder (26) which provides an output (28) to said processor that varies with the velocity and linear position of said tool as it reciprocates along said second axis, and a second linear encoder (32) which provides an output (34) to said processor that varies with the velocity and linear position of said tool along said third axis, said processor arranged to provide closed loop control of each of said actuators.
7. The system of claim 1, further comprising a third linear actuator (36) which moves said workpiece along said first axis.
8. The system of claim 7, further comprising a third linear encoder (38) which provides an output (40) to said processor that varies with the velocity and linear position of said tool along said first axis, said processor further arranged to provide closed loop control of said third linear actuator.
9. A system for producing progressive addition spectacle lenses, comprising: a spindle (16) which rotates about a first axis (Z), a chuck (14) mounted to one end of said spindle which holds a cylindrical lens blank (10), a rotary actuator (18) which rotates said spindle about said first axis in response to a first drive signal, a rotary encoder (20) which produces an output (22) that varies with the velocity and rotational position of said spindle as it rotates about said first axis, a first linear actuator (36) which moves said spindle along said first axis in response to a second drive signal (37), a first linear encoder (38) which produces an output (40) that varies with the velocity and linear position of said spindle along said first axis, a tool (12) which removes material from a surface of said lens blank when brought into contact with said surface, a second'linear actuator (24) which reciprocates said tool along a second axis (Z') parallel to said first axis in response to a third drive signal (25), a second linear encoder (26) which produces an output (28) that varies with the velocity and linear position of said tool along said second axis, a third linear actuator (30) which moves said tool along a third axis (X) orthogonal to said first and second axes in response to a fourth drive signal (31), a third linear encoder (32) which produces an output (34) that varies with the velocity and linear position of said tool along said third axis, and a processor (42) arranged to receive said outputs from said encoders and to provide said first, second, third and fourth drive signals to their respective actuators such that said tool contacts said lens blank surface and is reciprocated in synchronization with the rotation of said workpiece to produce a desired progressive addition spectacle lens surface.
10. The system of claim 9, wherein said second linear actuator is a voice coil.
11. The system of claim 10, wherein said voice coil comprises a piston (44) which reciprocates in response to said third drive signal and an air bearing which supports said piston as it is reciprocated.
12. The system of claim 9, wherein each of said encoders are digital incremental encoders.
13. The system of claim 9, wherein said tool has a diamond cutting surface having a known radius.
14. The system of claim 9, wherein said processor is arranged to: receive a points file (50) which describes said desired progressive addition spectacle lens surface with an array of points having threedimensional coordinates, convert said points file to an array of polar coordinates (52), convert said array of polar coordinates into motion equations, and evaluate said motion equations to produce said first, second, third and fourth drive signals.
15. The system of claim 14, wherein said lens surface has a predefined center point and said processor is arranged to convert said points files into polar coordinates which represent said desired lens surface as a series of radials which extend from said center point.
16. The system of claim 15, wherein said tool has a cutting surface with a known radius, and said processor is further arranged to compensate said polar coordinates for the radius of said tool (54).
17. The system of claim 9, wherein said processor is arranged such that each of said first, second, third and fourth drive signals are drive voltages, each of which drives its respective actuator to a commanded position at a commanded velocity, each of said drive voltages comprising: an error voltage component which varies with the error between the actuator position commanded by said processor and said actuator's actual position, a DC offset component which is the DC voltage required to produce an actuator velocity of zero, and a feed forward component which varies with the actuator velocity commanded by said processor.
18. The system of claim 17, wherein said processor is arranged to calculate each of said drive voltages on a periodic basis with the interval between periods defined as a servo update cycle.
19. The system of claim 18, wherein the commanded position of said second linear actuator is defined as a function of the positions of said rotary actuator and said third linear actuator, said system arranged to calculate the positions and velocities of said rotary actuator and said third linear actuator for future servo update cycles, thereby enabling the position and velocity of said second linear actuator during future servo update cycles to be known.
20. The system of claim 19, wherein said second linear actuator and said tool have a known frequency response and the feed forward component of said fourth drive signal Vff is determined with a difference equation which produces said feed forward component Vff based on a set of n coefficients derived from said frequency response, said second linear actuator's present commanded velocity, its (n1)/2 future commanded velocities, and its (n1)/2 future feed forward components.
21. The system of claim 20, wherein said difference equation produces said feed forward component Vff and has the form: Vff = Cl*vl + C2*v2 +... + C(n10/2*V(n1)/2 + C ((n1)/2) +1 Vffl + C ((n1)/2) +2*Vff2 + ### + Cn1*Vff(n1)/2 + Cn*V where n is the number of said coefficients, V is the second linear actuator's present commanded velocity, V1 through V(n1)/2 are the second linear actuator's commanded velocities 1 through (n1)/2 servo update cycles into the future, respectively, and Vff1 through Vff(n1)/2 are the feed forward components to be applied to the second linear actuator 1 through (n1)/2 servo update cycles into the future, respectively.
22. The system of claim 9, wherein said processor is arranged to generate said desired progressive addition spectacle lens surface using multiple passes that comprise repeatedly moving said tool from the outer perimeter to the center of said lens blank.
23. A method of producing a nonrotationally symmetric surface on a workpiece, comprising: rotating a workpiece (10) on which a non rotationally symmetric surface is desired about a first axis (Z), bringing a surface of said workpiece into contact with a cutting tool (12), reciprocating said tool along a second axis (Z') parallel to said first axis, moving said tool along a third axis (X) orthogonal to said first and second axes, and controlling the motions of said workpiece and said tool about and along said first, second and third axes such that said tool is reciprocated in synchronization with the rotation of said workpiece to produce a desired non rotationally symmetric surface on said workpiece.
24. The method of claim 23, further comprising the steps of sensing the rotational velocity and position of said workpiece about said first axis, sensing the velocity and linear position of said tool along said second axis, and sensing the velocity and linear position of said tool along said third axis, said step of controlling the motions of said workpiece and said tool about and along said first, second and third axes comprising providing closed loop control of said motions.
25. The method of claim 24, further comprising sensing the velocity and linear position of said workpiece along said first axis and providing closed loop control of the motion of said workpiece along said first axis.
26. The method of claim 23, wherein said workpiece is rotated and said tool is reciprocated and moved in response to respective drive signals, further comprising: receiving a points file (50) which describes said desired nonrotationally symmetric surface with an array of points having threedimensional coordinates, converting said points file to an array of polar coordinates (52), converting said array of polar coordinates into motion equations, and evaluating said motion equations to produce said respective drive signals.
27. The method of claim 26, wherein said surface has a known center point and said array of polar coordinates represent said desired surface as a series of radials which extend from said center point.
28. The method of claim 27, further comprising compensating said polar coordinates for the radius of said cutting tool (54).
29. The method of claim 26, wherein each of said drive signals comprises: an error voltage component which varies with the error between the desired position of the driven member and said member's actual position, a DC offset component which is the DC voltage required to produce a velocity of zero for said member, and a feed forward component which varies with the desired member velocity.
30. The method of claim 29, wherein said drive voltages are calculated on a periodic basis with the interval between periods defined as a servo update cycle.
31. The method of claim 30, wherein the position of said tool along said second axis is defined as a function of the angular position of said workpiece and the position of said tool along said third axis, said method further comprising calculating the angular positions and velocities of said workpiece about said first axis and the linear positions and velocities of said tool along said third axis for future servo update cycles, thereby enabling the position and velocity of said tool along said second axis during future servo update cycles to be known.
32. The method of claim 31, wherein said tool reciprocates with a known frequency response and the feed forward component of said drive signal controlling said reciprocation is determined with a difference equation which produces said feed forward component based on a set of n coefficients derived from said frequency response, the present commanded velocity and the (n1)/2 future commanded velocities of said, tool along said second axis, and the (n 1)/2 future feed forward components of said drive signal controlling said reciprocation.
33. The method of claim 32, further comprising determining the frequency response of said tool reciprocation, said determination of frequency response comprising : reciprocating said tool with a sinusoidal drive signal over a range of frequencies (70), and recording the amounts by which the phase and amplitude of said.. drive signal must be offset to minimize said tool's position error (72).
34. The method of claim 33, further comprising operating on said phase and amplitude offset values to produce said set of n coefficients (74), said coefficients enabling an inverse digital filter to be realized which receives current and future information about said reciprocating tool's commanded velocity as inputs and produces said feed forward component of said drive signal controlling said reciprocation in response.
35. The method of claim 34, wherein said inverse digital filter takes the form of a difference equation which produces said feed forward component Vff and has the form: Vff = C1*V1 + C2*V2 + ### + C(n1)/2*V(n1)/2 + <BR> <BR> <BR> C((n1)/2)+2*Vff1 + C((n1)/2)+2*Vff2 + ### + Cn1*Vff(n1)/2<BR> <BR> <BR> <BR> <BR> Cn*V where n is the number of coefficients, V is said reciprocating tool's present commanded velocity, V1V (nl)/2 are said reciprocating tool's commanded velocities 1 through (n1)/2 servo update cycles into the future, respectively, and Vff1 through Vff(n1)/2 are the feed forward components to be applied to said reciprocating tool's drive signal 1 through (n1)/2 servo update cycles into the future, respectively.
36. The method of claim 23, wherein said tool repeatedly moves from the outer perimeter to the center of said workpiece as needed to produce said desired surface.
Description:
METHOD AND SYSTEM FOR PRODUCING PROGRESSIVE ADDITION SPECTACLE LENSES BACKGROUND OF THE INVENTION Field of the Invention This invention relates to the field of spectacle lens fabrication, and particularly to systems and methods for making progressive addition spectacle lenses.

Description of the Related Art Progressive addition spectacle lenses are lenses in which the power of the lens changes from a long distance to a near distance power in a continuous manner; i. e., there are no sharply-defined optical regions as are found in conventional bifocal and trifocal lenses.

To provide the different optical zones and other desired features, the front surface of a progressive addition lens is aspherical, with the specific prescription of the wearer generated on the'back surface of the lens.

Standard prescription lenses are typically fabricated using lathes, mills, and/or cup wheel generators. However, as these machines generate simple geometric shapes of sections of spheres and cylinders, they cannot be used to generate the aspherical front surface of a progressive addition lens.

Due to this limitation, the front surfaces of progressive addition lenses have mostly been molded, with the mirror image of the desired front surface design engraved in a polished permanent mold. Such a mold is often described by means of a"points file", which is an array of points which define the desired lens surface in three dimensions. The front surface 2 of a progressive addition lens is shown in FIG. 1; the lens has a far distance zone 4, an intermediate-zone 5, and a near vision

zone 6. The continuous nature of the lens is seen in FIG. 2, which shows how a line 8 which traverses front surface 2 appears in a three-dimensional coordinate system.

Typically, several thousand points having the form (Xn, Yin, Zn) make up a points file for a surface such as lens surface 2. Such a points file is sent to a milling machine, for example, which uses the data to mill the metal mold that will produce the lens blank.

After the plastic lens hardens in the mold, it is supplied to an optical laboratory, where the wearer's prescription is generated on the back surface. This process requires the costly and time-consuming production of a large number of molds and molded lens blanks to accommodate many different front side surfaces, and the molded blanks must then be either stocked or ordered by each optical lab, possibly causing additional delays in providing a pair of glasses to a patient.

Recently, progressive lens designs have been improved by providing an aspheric surface (or atoric surface, when cylinder power is required) on the back side of the lens : These surfaces must also be specially molded for individual prescriptions. Delivery of these special lenses is often long, and the present cost is very high in comparison with standard lenses.

SUMMARY OF THE INVENTION A method and system are presented for producing non- rotationally symmetric surfaces on a workpiece, which overcome the problems noted above. The invention enables such a surface to be directly generated on one or more sides of a workpiece; it is suitably used to produce progressive addition spectacle lenses having desired aspherical surfaces on one or both sides, without the use of custom molds.

To produce a desired non-rotationally symmetric

surface, a workpiece is rotated about a first axis. A cutting tool capable of removing material from a surface of the workpiece is reciprocated along a second axis parallel to the first axis. The tool is also moved along a third axis orthogonal to the first and second axes. All these motions are controlled such that the cutting tool is brought into contact with the workpiece, and is reciprocated in synchronization with the rotation of the workpiece, thereby enabling a desired non-rotationally symmetric surface to be produced on the workpiece surface.

The necessary rotary and linear motions are suitably provided by respective actuators, and corresponding encoders are preferably provided to provide velocity and position information for each actuator. A processor receives the encoder outputs and is arranged to provide the closed loop control of each actuator needed to achieve the desired surface.

A desired surface may be provided in the form of a points file which describes the surface with an array of points having three-dimensional coordinates. The points are translated into motion equations, which are evaluated to generate the motions necessary to create the desired surface.

The system and method can be used to create desired surfaces on both sides of a spectacle lens blank, enabling progressive addition lenses with aspheric (or atoric) surfaces on front and back sides to be made without the use of molds.

Further features and advantages of the invention will. be apparent to those skilled in the art from the following detailed description, taken together with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS FIG. I is a plan view of one surface of a known

progressive addition spectacle lens surface.

FIG. 2 is a graph illustrating a known method of representing the lens surface of FIG. 1.

FIG. 3 is a diagram of a system for producing a non- rotationally symmetric surface on a workpiece per the present. invention.

FIG. 4 is a flow chart illustrating a method of converting a points file to polar coordinates as might be used with the present invention.

FIG. 5 is a flow chart illustrating a method of determining the frequency response of the tool/actuator assembly as might be used with the present invention.

DETAILED DESCRIPTION OF THE INVENTION A system for producing a non-rotationally symmetric surface on a workpiece is shown in FIG. 3. A workpiece 10, suitably a cylindrical lens blank from which a progressive addition spectacle lens will be made, is rotated about a first axis, identified in FIG. 3 as the Z axis. The circular path followed by the rotating workpiece is commonly referred to as the C axis. A cutting tool 12 is reciprocated along an axis parallel to the first, identified as the Z'axis. The tool is also moved along an axis orthogonal to both the Z and Z'axes, identified in FIG. 3 as the X axis.

To generate a non-rotationally symmetric surface on workpiece 10, it is essential that the reciprocation of tool 12 and the rotation of workpiece 10 be synchronized.

It is also necessary that the tool's movement along the X axis, and the workpiece's movement along the Z axis be precisely controlled. The present system and method provides four axes of interpolation; i. e., the motions of the workpiece and tool along each of the Z, C, Z'and X axes are controlled, with the Z'and C axis motions synchronized, to generate the desired surface.

The method is suitably implemented with a system that includes a number of actuators, a corresponding number of encoders, and a processor; a preferred system is shown in FIG. 3. Workpiece 10 is mounted on a chuck 14 at the end of a spindle 16, which is driven to rotate along the C axis by a rotary actuator 18 which moves in response to a drive signal 19. A rotary encoder 20 produces an output 22 which provides angular position and velocity information for the actuator/spindle/workpiece assembly. Tool 12 is reciprocated along the Z'axis with a linear actuator 24 which moves in response to a drive signal 25; a linear encoder 26 produces an output 28 which provides linear position and velocity information about the motion of the tool along the Z'axis. A linear actuator 30 moves the actuator/tool assembly along the X axis in response to a drive signal 31, and an encoder 32 produces an output 34 that varies with the position and velocity of the tool along the X axis. The system normally includes another linear actuator 36 which moves the actuator/spindle/workpiece assembly along the Z axis in response to a drive signal 37, with position and velocity information provided via an encoder 38 producing an output 40.

The encoder outputs are fed to a processor 42, which also receives an input 43 that describes. the desired non- rotationally symmetric. surface. The processor is arranged to provide the drive signals 19,25,31, and 37 to their respective actuators needed to bring tool 12 into contact with workpiece 10, and to cause tool and workpiece to move in synchronization to generate the desired surface on the workpiece.

The invention's ability to produce a non-rotationally symmetric surface is ideally suited to the fabrication of progressive addition spectacle lenses. At least one of the surfaces of these lenses is non-rotationally symmetric,

making its manufacture by standard lathes such as those used to make standard spectacle lenses impossible. To make a progressive addition spectacle lens, workpiece 10 is a cylindrical lens blank and tool 12 has a cutting tip of a known radius; the tip is typically a polycrystalline or natural diamond. The desired surface is provided to processor 42, which drives the actuators to move the lens blank and cutting tool as needed to realize the desired aspheric surface on the blank's front side. If desired, the lens blank can be turned over, and a different surface (aspheric or spherical) can. be provided to processor 42 and cut into the blank's back side. In this way, progressive addition lenses having desired aspherical surfaces on one or both sides can be made quickly and inexpensively, without having to produce custom molds. Progressive addition lens fronts have been generated in accordance with the present invention in less than one minute.

Z'actuator 24 is preferably a voice coil, with the piston 44 to which tool 12 is mounted being supported by an air bearing (not shown) ; this enables the cutting tool to be reciprocated quickly and smoothly. Rotary actuator 18 is preferably a DC motor, and linear actuators 30 and 36 are preferably DC motors which turn respective lead screws to effect the desired linear motions. Alternatively, actuators 30 and 36 could be stepper motors ; as the motion for a given input is. generally well-known for a stepper motor, in may be possible to eliminate encoders 32 and 38 if stepper motors are used.

Encoders 20, 26,32 and 38 are preferably digital incremental encoders which sense the rotation (encoder 20) or linear motion (encoders 26,32 and 38) induced by their corresponding actuators (18,24,30 and 36, respectively).

Each encoder produces a pulse train output, with the time between pulses indicating the velocity of the sensed motion, and'the number of pulses indicating the position of

the sensed actuator with respect to a known"home" position.

In some instances, it is not necessary to provide an actuator and corresponding encoder for motion along the Z axis. If the excursion capabilities of Z'actuator 24 are sufficient to render the desired surface on workpiece 10, the workpiece can remain in a fixed position along the Z axis. However, in most applications, material must be removed from workpiece 10 to a depth that exceeds the maximum travel of actuator 24, making it necessary to feed the workpiece toward the cutting tool to achieve the desired surface.

A points file as described above is often used to represent the desired non-rotationally symmetric surface.

The invention is preferably capable of receiving data about a desired surface in the form of a points file, and then generating a surface which corresponds to the points file.

One method of providing this capability is shown in FIG. 4, which illustrates a points file conversion process. A points file which describes a desired non-rotationally symmetric surface is provided to processor 42 (step 50) via input 43. The points file is converted to an array of polar coordinates, which describe the desired surface as a series of"radials", each of which consists of a set of equally-spaced points that extend in a straight line from a predefined center point, such as the center point of the spindle.

The array of polar coordinates must then be compensated for the radius of the cutting tool (step 54).

This is accomplished by considering the cutting tip to be a 2-dimensional circle, the radius of which must be taken into consideration when programming the motion of the system's axes to produce the desired shape. For example, to cut a simple spherical shape, the X and Z axes are programmed to move in a mode known as circular

interpolation', which means that the X and Z axes move such that the motion of the point at the center of the circle follows the path of a circular arc. The radius of the arc is made equal to the desired radius of the spherical shape being cut plus or minus the tool radius, depending on whether the spherical shape is convex or concave, respectively. Thus, if an 80mm convex radius is to be cut using a 4mm radius tool, then the X, Z circular interpolation path would follow an 84mm radius arc.

To compensate for tool radius, a set of points is computed which represents the path that the center of the tool would follow if it were to roll along a given radial from beginning to end. However, the resultant set of points is not evenly spaced. This is remedied by means of polynomial interpolation (step 56), which produces an evenly-spaced set of points which, when connected, pass through the unevenly-spaced set of points. The evenly- spaced set of points replaces the original set of points which represented the radial. This operation is repeated for each radial. The resultant-array of polar coordinates is converted into motion equations in the manner described below, which are used to generate the drive signals used to control the motion of the workpiece and cutting tool.

The spacing of the points in the points file should be selected to enable the desired surface to. be resolved to a desired accuracy. For example, for a lens having a diameter of 80mm, a spacing of l. Omm in a rectangular coordinate points file should be adequate. This would be converted to a polar coordinate array having about 250 radials, each of which has 40 points.

Note that the invention is not limited to use with points files; other methods of representing a three- dimensional surface may be used to describe the desired surface to processor 42. Nor is the invention limited to the points file conversiOn method described, above; other

methods might also be employed to convert a points file into a form suitable for controlling the motion of workpiece and tool. It is only essential that a desired surface be described by some means, and that the invention be capable of receiving the description and synchronizing the motion of the workpiece and cutting tool to realize the desired surface.

Prior to beginning the lathing process (i. e., the process of actually forming the desired surface on the workpiece), the points file (or equivalent three- dimensional surface representation method) is converted into motion equations which can be used to generate the actuators'respective drive signals. One way of accomplishing this is by considering the array of polar coordinates as"rings"of data, with each ring being the set of Z coordinates for points that are a fixed distance from the predefined center point. When seen in this way, a point's X value corresponds to its distance to the center point-and thus to a particular ring of the polar coordinates array, and its C value corresponds to a particular Z coordinate within that ring. Based on this data, the commanded position of the workpiece along the Z axis and the tool along the Z'axis can be defined as functions of X and C, as follows : fi (X, C) =Z f2 (X, C) =Z' with fi and 2 being derived from the 3-dimensional representation of the desired surface provided to processor 42.

With the fi and f2 functions defined, lathing of the workpiece surface can proceed as follows: the system is driven by a clock, with the encoder outputs being processed and the drive signals being updated once per clock period.

The clock frequency is typically set to between 1000 and 2000 Hz, with the actual frequency selected based on the

computational time requirements and the speed of the processor. During each period, the X axis actuator is commanded to move the tool a little closer to the predefined center point, and the C axis actuator is commanded to rotate the workpiece to the next angular position, based on the programmed spindle rpm (discussed below). The commanded X and C values are passed to the fi and f2 functions, and the commanded Z and Z'position values computed; the commanded Z and Z'values are in turn used to generate drive signals to their corresponding actuators (as described below). Because the X and C values may not occur at precisely the same intervals given by the tool-radius compensated array of polar coordinates, it may be necessary to employ polynomial interpolation to provide the precise Z coordinates for the X and C values given.

The Z coordinates of each ring of data are preferably normalized. This is accomplished by computing all of the Z coordinate values for a given ring (referred to as Z, to Zn) t computing the mean Z value Zmean as (Zmax+zmin)/2, and then subtracting Mean from each of Zi to Zn-Then in real time, the values Z1 to Zn correspond to the commanded Z' positions, and the value Zmean corresponds to the commanded Z position. In this way, the tool can reciprocate about its center of travel throughout the lathing operation.

This minimizes the extremes to which the tool must move during the cut, which is important as the tool's travel distance is limited.

Each of the present system's actuators is preferably responsive to a respective drive voltage, with the magnitude of the drive voltage controlling the actuator's velocity and the polarity of the drive voltage controlling the direction of motion. Each drive voltage is preferably made up of three components: 1. Error voltage. The position accuracy of an actuator is maintained by a servo loop. The actual position of the

actuator is provided by the output of the actuator's encoder, which is fed back to the processor. At a predetermined servo update frequency (equal to the clock frequency discussed above), the difference between the actual position and the commanded position (i. e., the "position error") is calculated, and is multiplied by an "error gain"constant to determine the error voltage.

Thus, an error in position produces an adjustment to the drive voltage which will cause the actuator to move in the direction necessary to reduce the error.

2. Dc offset. This is the drive voltage that produces an actuator velocity of zero.

3. Feed forward voltage. The feed forward component of the drive voltage is a function of commanded velocity and one or more constants ; it is calculated once per servo update cycle. For all but the Z'axis (discussed below), , this calculation is simple: the value of current commanded position minus previous commanded position is multiplied by a constant (determined through calibration as discussed below), with the result being the feed forward voltage.

When the constant is calibrated properly, then when the actuator is moving at a constant velocity, the position error averages around zero. Note that, with this simple form of feed forward calculation, if the axis is accelerating or decelerating, the actual position will lag or lead the commanded position, respectively. However, motion along all but the Z'axis preferably proceeds at near constant velocity while the tool is actually. lathing, so that position error is kept near zero.

Each actuator's error voltage, dc offset, and feed forward voltage components are summed together during every servo update cycle. to produce its drive voltage.

The calibration needed to provide the feed forward constants is performed prior to commencing the lathing process. For all but the Z'axis, the feed forward

calibration is accomplished as follows: a drive voltage (produced using a preliminary feed forward constant) is applied to move an actuator at a constant velocity. During the period of constant velocity (i. e., after acceleration and before deceleration), the position error is recorded.

From the recorded position error, the drive voltage needed to produce the commanded velocity can be determined, and with the error voltage and dc offset components known, the amount by which the preliminary feed forward constant should be corrected can be determined.

In contrast to the constant velocity motion typically found along the other axes, the oscillating tool is constantly accelerating and decelerating along the Z'axis.

Therefore, a set of calibration constants are needed to properly compute the feed forward voltage for the Z'axis.

To determine the set of calibration constants, the frequency response of the tool/actuator assembly is first ascertained, as is shown in FIG. 5: the Z'actuator is driven sinusoidally over a range of frequencies (step 70), and the amount by which the amplitude and phase of the drive voltage must be offset in order to minimize the position error recorded (step 72). From this data, an "inverse digital filter"can be realized which receives present and future commanded velocity values and produces a feed forward voltage as an output. In the digital realm, the inverse digital. filter can take the form of a "difference equation"which includes a number of coefficients that are derived from the frequency response data and provided to the processor (step 74); these coefficients comprise the set of calibration constants for the Z'axis. The number n of derived coefficients is related to the"order"R of the filter as follows: n = (2*R) +1. The'processor evaluates the difference equation once per servo update period to produce a feed forward voltage Vff for the actuator reciprocating the tool. The

difference equation has the following form: <BR> <BR> <BR> <BR> <BR> Vff = C1*V1 + C2*V2 + ### + C(n-1)/2*V(n-1)/2 +<BR> <BR> <BR> <BR> <BR> <BR> <BR> <BR> C((n-1)/2)+1#Vff1 + C((n-1)/2)+2*Vff2 + ### + Cn-1*Vff(n-1)/2<BR> <BR> <BR> <BR> <BR> <BR> <BR> <BR> Cn*V where n is the number of coefficients, V is the present commanded velocity, V1-V(n-1)/2 are the commanded velocities one through (n-1)/2 servo update cycles into the future, respectively, and Vffl through Vff (nl)/2 are the feed forward voltages to be applied one through (n-1)/2 servo update cycles into the future, respectively. For example, for a fourth order filter ((2*4)+1 = 9 coefficients), the difference equation has the following form: Vff = C1*V1 + C2*V2 + C3*V3 + C4*V4 + CS*Vffl + C6*Vff2 + C7*Vff3 + C8*Vff4 + C9*V After Vff is evaluated, the values of V and Vff are shifted once per servo update period, as shown below: V4 = V3 <BR> <BR> <BR> <BR> <BR> V3 = V2<BR> V2 = V1 V1 = V Vff4 = Vff3 Vff3 = Vff2 Vff2 = Vff1 Vff1 = Vff Thus, the V and Vff of the current servo update cycle become V4 and Vff4 four cycles-later.

The future commanded velocity values for the Z'axis (i.e., V1, V2, V3, etc.) are determined by first determining the future positions of the X and C axes, and then calculating future Z'position values using the f2 function discussed above. Instantaneous velocity is then derived from successive commanded position values.

Because the dc offset voltages can change over time, they are preferably maintained dynamically. This is preferably accomplished by summing each axis'error voltage

with its dc offset voltage periodically when the axis is stationary.

If motion along the Z axis is controlled using a drive voltage which includes a feed forward component as described above, it is important that the Z drive mechanism and control loop be highly linear, as the feed forward algorithm does not compensate for non-Iinearities in the voice coil mechanism.

To achieve a desired non-rotationally symmetric shape on the workpiece surface, the cutting tool may need to make multiple passes across the surface. This requires the tool to repeatedly trace a path from the outer perimeter to the center of the workpiece, with the tool moved back to the outer edge of the workpiece after each pass. One method by which such multiple passes can be managed is as follows : the processor software computes the amount of material that needs to be removed in order to take the workpiece surface down to. the desired shape and thickness. A"material table"defines the lathe line spacing, the spindle rpm, and the cut amounts. The specified rpm is a maximum value, with the actual rpm calculated based on the limits of the oscillating tool (velocity and acceleration) and the motion required to cut the desired shape. Cut amounts are divided into"rough cut"and"finish cut"amounts. The amount of material to remove minus the finish cut amount is the amount of material to'be. removed by"rough"passes. This amount, divided by the rough cut amount, gives the number of rough passes required. Rough passes preferably take off as much material as possible as quickly as possible, leaving a surface which is just clean enough that the finish pass will clean it up completely. The finish pass is typically much slower, with the cut amount being enough to clean up the surface left by the last rough pass.

Each"pass", rough or finish, includes the following sequence of events :

1. The rotary actuator driving the spindle is commanded to the required rpm (the starting rpm for rough cuts).

2'. The workpiece and tool are moved to initial positions which put the tool near the edge of the workpiece.

3. Spindle rpm stabilizes.

4. Tool reciprocation is initiated and ramps up to full speed.

5. The workpiece is fed into the tool along the Z axis, or the tool is extended into the workpiece along the Z'axis, and lathing commences.

6. The tool is moved along the X axis from the workpiece edge to spindle center as the workpiece and/or tool move along Z and Z'axes to create the desired shape.

7. When the tool reaches spindle center, the workpiece and/or tool move to retract the tool.

8. If additional. passes are needed, the workpiece and tool are moved into initial positions again and the process is repeated.

The present system and method can be used to generate a desired surface on both front and back sides of the workpiece. After generating a desired surface on the front side, the workpiece can be turned over, data defining the back side surface can be provided to the processor, and the lathing process commenced again.

The processor is preferably a conventional personal computer, which includes electronics that provide an interface between the processor and the encoders and actuators. Digital-to-analog (D/A) converters preferably produce the drive voltages to their respective actuators in response to digital inputs received from the processor.

Each encoder preferably outputs quadrature signals, in which two signal lines produce A and B pulses, respectively, as the encoder's axis moves. The pulse rate is proportional to the velocity of axis motion, and the phase relationship between the A and B pulses determines

the direction of motion. The pulses are connected to respective counters which count up or down depending on the frequency and phase relationship of the. A and B pulses, so that each counter's value. indicates the position of a respective axis.

The encoders preferably also output a"home"pulse which goes true at only one spot on. the encoder, and can be used to assist the system to undergo an initialization process. When the system is initialized, a"homing" sequence is commanded for each axis, in which the actuator for each axis is commanded to move slowly until the home pulse is produced. The encoder's corresponding counter is arranged so that it resets to zero upon receipt of the home pulse, thereby defining an"absolute position"for the actuator.

While particular embodiments of the invention have been shown and described, numerous variations and alternate embodiments will occur to those skilled in the art.

Accordingly, it is intended that the invention be limited only in terms of the appended claims.