System for numerical control of a machine tool
United States Patent [19] Hamill, III et a1.  
 [ SYSTEM FOR NUMERICAL CONTROL OF A MACHINE TOOL [76] Inventors: Samuel M. Hamill, III, 105 Gilson Rd., Scituate, Mass. 02066; James C. Kilbane, 49A Cedar Rd., Belmont, Mass. 02178 221 Filed: on. 29, 1973 [21] Appl. No.: 410,315  
 [52] US. Cl. 235/Il.ll; 318/569; 318/574 [51] Int. Cl. G061 15/46 [58] Field of Search 235/151.l1; 340/172.5;  
 - [56] References Cited UNITED STATES PATENTS 3,596,266 7/1971 Slawson ct a1. 235/151.11 3,597,740 8/1971 Daw ct al 235/l5l.1l 3,629,560 12/1971 Slawson 235/151.11 3,634,662 1/1972 Slawson 235/l51.11 3,646,419 2/1972 Holy et a1. 235/I51.1l 3,763,360 10/1973 Nishimura et al. 235/l51.l1 3,777,128 12/1973 Kirkham 235/15l.11 3,783,253 1/1974 Anderson ct a1. 235/151.11  
 FOREIGN PATENTS OR APPLICATIONS 1,187,378 8/1970 United Kingdom 235/l5l.11  
 OTHER PUBLICATIONS Unimation Inc., Industrial Robots Machinery, August 1968, Vol. 74, No. 12. p. 63-67. Wortzman: A Soft Ware Interpolation Scheme for Di- 1 51 Apr. 22, 1975 rect Numerical Control, Proceedings of the 7th Annual Meeting and Technical Conference of the Numerical Control Society, April 8-10, 1970, Boston, Mass, p. 307-330.  
 Primary Eraminer-Felix D. Gruber Attorney, Agent, or FirmKenway &amp; Jenney [57] ABSTRACT A system in which a machine tool is controlled by a digital computer and an operator to perform a sequence of machining operations. In a programming mode, the machine tool cutting element is positioned by an operator relative to an object to be machined. The relative position of the cutting element is adjusted so that the cutting element passes through a sequence of spatial points at which a subsequent machining operation isdesired. In association with each point, a sequence of digital signals is generated in a programming mode in response to an operator directive and that sequence is stored in a digital computer memory. Subsequently, in a machining mode, stored sequence is translated to a machine tool control signal which drives the machine tool. An operator may direct the digital computer in an editing mode to select ones or groups of the stored sequences and to modify those selected sequences. The operator may also direct the computer in the machining mode to generate the corresponding control signals for selected ones or groups of the stored sequences so that the corresponding machining operations are performed.  
 101 Claims, 6 Drawing Figures TAPE CONTROL r STATION j I MACHINE I ,2 I TOOL DIGITAL COMPUTER s3 MEMORY g l SECTION 25 CENTRAL ERFACE PROCESSING &#34;E UNIT 3 l 260-c AR M iiiIIT 7 X? 32 34 l MANuAL &#39;RcisrnON l setw. l OPERATOR CONTROL/PROGAMMING STATION PATENTEllAmzzasvs 3,878,983  
 , swan u (If 5 H H 20.6mm  
 FIG.  
 SYSTEM FOR NUMERICAL CONTROL OF A MACHINE TOOL BACKGROUND OF THE INVENTION This invention relates to machine tools and more particularly to computer controlled machine tools having an operator-directed editing and control function.  
  It is well known in the art to provide a machine tool with a controlling device for directing the cutting or milling operations to be performed by that tool. Early systems in this field produced such control by a paper tape program of machine tool instructions. In such systems, a paper tape having perforations in an encoded form is applied to a reading device which transforms the encoded field of perforations into digital signals. These digital signals are subsequently applied to an appropriate driving means to control the relative position of a cutting element with respect to the position of an object to be machined. Such devices, however, provide an extremely limited and inflexible degree of automatic machine tooling due to the difficulty associated with the programming of the device to perform the desired operations. In addition, modifying or editing an established program to provide for minor changes or to accommodate the wear of the edge of the cutting element is not practical.  
  A further difficulty in programming known machine tool controls is encountered due to the requirement that the programmer define each of the points of relevance, i.e., points where machining operations are to take place, with a high degree of precision. Further developments in the field have produced methods which enabled an accurate specification of machining points. In such systems, a tracing element is directed by an operator to move about a pattern related to the shape of g the object to be machined. Rotary encoders in both the x and y directions provide digital signals representative of the points traversed by the tracing element and those signals are converted into a digital code and automatically punched on a papepr tape. As a result, such systems provide an improvement over the earlier art of numerically controlled machine tools. However, such systems continue to be subject to the substantial disadvantages clue to the inflexibility of the system wherein portions of a program tape cannot be changed without great difficulty, or reconstructing the entire program commencing with the tracing operation. In addition, there is little or no operator intervention which is possible to provide variations for cutting element wear and the like.  
  Still further development in the art has resulted in the use of on-line digital computers for controlling the operation of one or more machine tools. In such systems, a general purpose communication link permits the operator of a machine tool to communicate with the data processor to modify the machining operations which the machine tool would otherwise perform under the control of an existing stored program or to add a stored program for a new or partly new operation for subsequent performance by a machine tool. Although such systems-represent a substantial improvement in the art compared with the previous systems, there are still substantial disadvantages and consequent limitations associated therewith. While this type of system provides a considerable amount of flexibility derived from operator intervention, there exists the substantial drawback in that the operator must be specially trained to be able to use a programming language and further to operate the computer input/output device at the operator station.  
  In the art encompassing the operation of computer controlled machine tools, it is well known to use a lin ear interpolation technique where the cutting element of such a tool is directed to translate relative to the object to be machined along a series of straight line paths. Such systems however lack the required flexibility for the rapid and efficient accomplishment of many machining operations. For example, to direct a cutting element at a first pointto approach a second point while avoiding a third point located along the straight line segment connecting the first and second points, the path traveled by the cutting element must be performed in at least straight line segments, i.e., in the piece-wise linear fashion. Each intermediate point at the juncture of the straight line segments must have an associated programmed instruction. Consequently a great number of programming steps are required and a large proportion of the associated memory devices must be allocated to accommodate the many points involved in a simple operation.  
  Numerieally controlled machine tools in the prior art are subject to severe limitations in the positioning of the cutting element due to the backlash associated with the position control means. In such machine tools where the position control backlash is not taken up in a controlled manner, or otherwise accounted for, cutting element position error occurs. It is common in the art to interrupt the succession of machining operations frequently in order to control the current position of the cutting element. This procedure is both time consuming and expensive to implement.  
  It is further known in the art to incorporate overshoot control methods in the operations of numerical control machine tools. In such systems, the operation of the nu merically controlled machine tool is controlled so that a constant deceleration factor is applied to the cutting element as it approaches the desired point for the machining operation. Often in practical situations, where, for example, the distance between a point to be approached and the cutting element is not sufficiently large so that the deceleration factor will offset the cutting element overshoot, a round-about path must be programmed for the cutting element so that the approach to the point is along a path which includes a sufficiently large line segment. As in the case of systems using linear interpolation techniques where the piecewise linear paths are used, as described above, such overshoot control systems are required to have a substantially large number of intermediate points in the piece-wise linear decelerating approach path. As a result, considerable programmer time is required in addition to having the outstanding requirement of a substantially large capacity memory.  
  In addition to the above mentioned shortcomings in numerical controlled machine tools in the prior art, it is further required of the operator to generate machine tool instructions for each operation to be performed even where, for example, a simple sequence of machining operations is to be performed at a plurality of locations on a workpiece. Such instructions must be laboriously programmed on an instruction-by-instruction basis by the programmer/operator for each location on the workpiece.  
 . or a combination thereof.  
 SUMMARY OF THE INVENTION 7 An object of this invention is to provide a computer controlled machine tool which may be readily programmed by an operator-directed movement of the cutting element relative to the object to be machined through a sequence of spatial points at which a subsequent machining operation is to be performed.  
  Another object of the invention is to provide a computer controlled machine tool having an automatic backlash take-up control.  
 Still another object is to provide a computer controlled machine&#39;toolhaving automatic overshoot control.  
 (A further object is to provide a computer controlled rnachine tool in whichv the cutter element may selec- ,tively approach a desired point by way of a substantially straight line path or a path following a circular arc In accordance with the present invention, an apparatus is provided in which a machine tool may be controlled by a digital computer and an operator to perform a series of machining operations. The present invention&#39; may operate in either of two modes: a programming. mode (PROGRAM-EDIT) and a machining mode (RUN In the PROGRAM-EDIT mode, an operator manually positions the machine tool cutting element relative to the object to be machined so that the cutting element passes through a sequence of spatial points at which a subsequent machining operation is desired. Associated with each spatial point is a set of i I Cartesian coordinates (.r, y. z) to reference the distance from an origin point (0,0,0) located on the object to be machined. For each of the successive spatial points the operator produces a set of digital data signals hereinafter referred to as aSEQUENCE, prior to controlling the relative position of the cutting element to approach the next sequential spatial point. V  
  For each of the succession of spatial points, an X-Y SEQUENCE may be generated comprising digital signals which are representative of the Cartesian coordinates .r, y corresponding to the respective spatial point. Associated with each X-Y SEQUENCE are additional approach direction digital signals, generated for each spatial point, which are representative of the direction from which the current spatial point was approached an X-Y SEQUENCE or (2) a coordinate, an approach speed and peck cycle signal for a Z SEQUENCE. A SE- QUENCE maybe generated by the operator for each of the successive spatial points to which the cutting element is directedAs a part of the programming operation ateach point, the operator may activate a SE- QUENCE ENTER control to generate a signal which is effective toenter, or store, the corresponding SE- QUENCE into the memory of a digital computer, thereby providing a segment of a stored PROGRAM.  
 In the computer, each of the sequentially entered SE- QUENCES is assigned a SEQUENCE number which is used in subsequent operations as a reference designation for that SEQUENCE. The computer memory may store a plurality ofPROGRAMS, each comprising at least one SEQUENCE.  
  The operator may also generatePROGRAM and. EDIT control signals in the PROGRAM-EDIT mode. 7  
 These control signals are associated with the various ones of the stored SEQUENCES and provide editing and modification of the stored PROGRAM. The stored PROGRAM may be modified by the operator directly at the times of generation and storage of the various SEQUENCES by generating an appropriate .PRO  
 &#39; operations, it indicates to the computer that the maby the cutting element during the positioning by the operator, i.e., in a one of the four combinations corre- 1 j&#39;sponding to the positive and negative directions along 7 tion, a signal is generated which is representative of the speed at&#39;which the operator desires the cutting element to approach the respective point in a subsequent machining operation. V  
  Alternatively, at a current spatial point, the operator may generate a Z SEQUENCE comprising data signals 1 1 representative of the z coordinate of the cutting ele- I ment and the speed at which the operator desires the cutting element to approach the stored 2 coordinate ln addition, a peck cycle digital signal may also be entered &#39;ina SEQUENCE associated with a z coordinate.  
 Thus in the PROGRAM-EDIT mode, the operator may generate and store a SEQUENCE for a PRO- GRAM by moving the .cutting element to a succession of spatial points and, for each point generating digital;  
 chine tool should continue operation with the next SE- QUENCE in a program; the lack of a PASS signal associated with a SEQUENCE indicates that thecomputer should interrupt its continuing processing of the suc cessive segments in a programuntil the operator inter? venes to restart operation.  
  A third such PROGRAM controlsignal is an OF PROGRAM signal. Upon identification of a SE- QUENCE having a signal of this type in the RUN mode andcompletion of the associated operation, the cornputer reverts to the first SEQUENCE in the PRO- signals representative of either (I) an x, y coordinate set, an approach direction and an approach speed for GRAM.  
 In the PROGRAM-EDIT mode, the operator may modify a previously stored SEQUENCE by selecting that SEQUENCE to be a current SEQUENCE by first setting a manual selection switch to-the associated SEQUENCE reference number and then activating a SEQUENCE select control. &#34;In response&#39;to a SE- QUENCE selection, the digital computer withdraws fromits memory section and displays to the operator,  
 certain of the&#39;data signals stored in association with the SEQUENCE. More particularly, the stored data is displayed by means of a first indicator lamp which is illuminated in the case where the selected SEQUENCE is an X-Y SEQUENCE, or a second indicator lamp which is illuminated in the case of a Z SEQUENCEJn addition, indicator lamps are illuminated&#39;to respectively in-&#39; dicate to the operator the storage of one or more PRO- GRAM control signals in association with the SE- QUENCE.  
 control signal is a- END 7 The operator may then add one or more PROGRAM control signals to the selected stored SEQUENCE by generating the appropriate PROGRAM control signal followed .by activating the SEQUENCE ENTER control.  
  Also in the PROGRAM-EDIT mode, the operator may generate one of four EDIT control signals to accomplish a further desired modification of the selected SEQUENCE of the stored PROGRAM. These EDIT control signals include the SEQUENCE INSERT, MEMORY ERASE, SEQUENCE CORRECT and CANCEL signals. In response to a SEQUENCE IN- SERT signal followed by activation of the SEQUENCE ENTER control, the computer inserts in the stored PROGRAM a new X-Y (or Z SEQUENCE) corresponding to the operator generated PROGRAM signals for the current .r, y (or z) coordinates of the cutting element, with associated speed and direction signals (or speed and peck cycle signals). That new SEQUENCE is inserted prior to the current selected SEQUENCE and is assigned the SEQUENCE number formerly associated with the current SEQUENCE. The SEQUENCE numbers associated with the current and all subsequent SEQUENCES are all increased by one to accommodate the inserted SEQUENCE.  
  In response to an operator generated MEMORY ERASE signal, the current SEQUENCE and all SE- QUENCES which follow the current SEQUENCE in the stored succession of SEQUENCES are removed from the computer memory.  
  A SEQUENCE CORRECT signal applied, and followed by activation of the SEQUENCE ENTER control, directs the computer to change the stored data in an X-Y (or Z) SEQUENCE in the computer memory to be representative of the x, v (or z) coordinates, selected speed, and direction (or peck cycle) signals of the current coordinates of the cutting element and the corresponding parameters as indicated by the operator generated control and PROGRAM signals.  
  The generation of the fourth type of EDIT control signal, the CANCEL signal, following the selection of a SEQUENCE as a current SEQUENCE and the activation of the SEQUENCE ENTER control effectively removes any of the above described PROGRAM signals from the selected SEQUENCE as stored in the computer memory. The CANCEL signal does not affect the .r, y (or z) coordinate, selected speed and direction (or z) coordinate, selected speed and direction (or peck cycle) data stored with the SEQUENCE.  
  The operator may also program to be a TOOL OFF- SET SEQUENCE. A TOOL OFFSET SEQUENCE in cludes a correction factor in the .r, y coordinates of the cutting element path between two spatial points to offset wear of the cutting edge during machining operations. This feature permits the operator to modify a portion of the cutting element path by storing a relatively simple data signal in conjunction with the already programmed SEQUENCE, rather than reprogramming the two entire SEQUENCES which define the endpoints of the path to be modified. Such reprogramming would involve accurately positioning the cutting element to be modified endpoints. When the TOOL OFF- SET SEQUENCE is subsequently performed in the RUN mode, the cutting element is directed to follow the modified path.  
  The operator may also in the PROGRAM-EDIT mode, direct the computer to select a program from a conventional-type perforated plastic or paper tape and store the associated SEQUENCES in the memory for subsequent use in directing the machine tool in the RUN mode. After such storage, the SEQUENCES may be readily modified in the PROGRAM-EDIT mode (following selection by the operator) by using the above described EDIT control signals. Alternatively, the operator may direct the central processing unit to generate a punched tape from the SEQUENCES stored in the memory.  
  Thus, in the PROGRAM-EDIT mode the operator may first program the digital computer to perform a series of machining operations by providing relative movement of the cutting element through a succession of spatial points corresponding to points at which subsequent machining operations are desired. The operator may generate appropriate X-Y (or Z) SE- QUENCES of data signals corresponding to the desired machining operation at each point. Coincident with, or subsequent to, the generation of these SEQUENCES the operator may select various ones of the X-Y (or Z) SEQUENCES and modify the instructions stored in association therewith. Further, SEQUENCES may be added to the program stored in the computer memory. These added SEQUENCES may be added so that they are interleaved with the stored succession of SE- QUENCES. In addition, selected SEQUENCES may be deleted from the succession in the program. All these operations are performed in the PROGRAM-EDIT mode of operation.  
  In addition to the above described operator-directed programming and editing operations, the operator may in the PROGRAM-EDIT mode direct the computer to add further SEQUENCES to the stored program using a REPEAT SEQUENCE control. Using the REPEAT SEQUENCE control in the PROGRAM-EDIT mode, an operator may readily program the computer to direct the machine tool to perform an identical series of machining operations at a plurality of locations on a workpiece. The operator first programs the series of operations at a first location on the workpiece and then re-positions the cutting element to a second location on the workpiece and activates the REPEAT SEQUENCE control. In response to the latter steps, the computer selects the SEQUENCES of the stored program (for the first location on the workpiece) in the computer memory then modifies the x, y and z coordinate values associated with each selected SEQUENCE of that existing program to reflect a second location and finally adds the modified versions .of the selected SE- QUENCES to the existing stored program.  
  In the second mode, RUN mode, the operator may direct the digital computer to provide appropriate control signals to the positioning table and cutting element of a machine tool, or similar elements thereof, so that the programmed machining operations are performed. In this RUN mode, the central processing unit commences with the SEQUENCE selected by the operator via a manual selection switch and continues to sequentially process the successive SEQUENCES until either a SEQUENCE is reached having an END-OF- PROGRAM signal stored in association therewith, or a sequence is reached having no PASS signal stored in association therewith. (The PASS control signal indicates whether or not the associated SEQUENCE is to be performed followed by a direct and automatic continuation with the next higher referenced numbered SEQUENCE having noassociated SEQUENCE DE- LETE signal). The detectionof an END-OF-- PROGRAM signal causes the computer to next process the first SEQUENCE in the PROGRAM, rather than the next successive SEQUENCE (which may be a part of another PROGRAM). At all times the operator may discontinue the operations performed by the digital computer by generating an appropriate STOP control 7 ing operation, the computer produces control signals which controlthe approach speed so that the overshoot of the spatial point is minimal. To do so, the computer decelerates the positioning table in the final approach to the spatial point of each SEQUENCE.  
  A further RUN mode operator control permits the operator to insert a BACKLASl-I control signal to indicate to the computer whether an anti-backlash subltrol signals in the RUN mode which direct the cutting element along a path which will automatically control the direction of the computer-directed cutting element movementas that element approaches each programmed&#39;spatial point. In this manner, the backlash in the positioning stepping motors, clutch assemblies, lead screw and machine ways may be taken-up in a desired direction (i.e., in accordance with the data generated by the operator-directed movement in the PROGRAM- EDIT mode). When the BACKLASH control is activated in association with the various SEQUENCES in the RUN mode, the central processing unit is effective to determine the direction of approach to be followed by the cuttingelement for each X-Y SEQUENCE. The computer then determines from the current position of the cutting element and the .r, y coordinate data for the current SEQUENCE, whether a straight line path connecting those points would require the cutting element to approach the spatial point while traveling in accordance with the stored approach direction of signals. If so, the computer directs the cutting element along that path.  
 In cases where the previously performed SE- QUENCE (orwhere the current position of the cutting element as adjusted by the operator manually) is such that the programmed direction ordinarily could not be followed using a straight line path, i.e., where it is not possible for the cutting element to proceed in a straight line in the required direction from&#39;the y coordinates of the previous SEQUENCE to the .r, y coordinates of the current SEQUENCE, the computer first generates appropriate control signals to direct the relative position of the cutting element to an intermediate spatial point which lies alonga straight line in the programmed direction a predetermined distance from the x, y coordinates of the point associated with the current SE- QUENCE. The coordinates of theintermediate point are selected by the computer so that movement along the straight line path from the intermediate point to the current point requires travel to a predetermined distance by the cutting element in the programmed direction of approach along the x and y axes. Then the com- I; puter generates appropriate control signals to direct the cutting element to approach the current SE- QUENCE point along such a path. Thus, in the RUN mode, the anti-backlash sub-program directs the computer to control the relative position of the cutting element so that the cutting element is positioned first to an intermediate point and then to the point associated with the SEQUENCE along a programmed direction and, in this manner, take up the backlash in the cutting element and positioning table stepping motors, clutch assemblies, and lead screws in a desired direction. I I  
 The above description relates to straight line relative motions of the cutting element. In addition, a one of a family of circular approach paths for cutter element relative motion may also be selected by the operator I for use in conjunction with the above referenced operations. To select such an approach path for either a new or modified X-Y SEQUENCE, the operator, in the PROGRAM-EDIT mode, generates a CIRCULAR IN- TERPOLATION SELECT control signal for storage in the computer memory associated with the X-Y SE- QUENCE. In addition, the operator generates a CEN- TER CIRCLE control signal, a RADIUS control signal, a CLOCKWISE/COUNTERCLOCKWISE PATH (CW/CCW) SELECTION&#39;control signals. These signals are stored in association with the X-Y SE- QUENCE in response to the SEQUENCE ENTER signal generated by the operator. In the RUN mode, the computer produces control signals for a CIRCULAR INTERPOLA&#39;IION SEQUENCE which directs the relative motion of the cutting element in approaching the, programmed spatial point to be along a&#34; curved path having the programmed center, radius and clockwise or counterclockwise direction. The operator may unprogram a circular interpolation SEQUENCE in the PROGRAM-EDIT mode using the above-described succession of points about a workpiece. The perform-=7.  
  ance of program SEQUENCES in the RUN mode in the order of their generation would not require the computer to process more than one SEQUENCE at a time. However, even though in the present invention, the various X-Y and Z SEQUENCES are independently programmed, the machining operations specified by the X-Y and Z SEQUENCES areinterrelatedbecause the cutting element remains ata x, y or z coordinate position until repositioned by a subsequent SEQUENCE, &#34;thereby implicitly specifying a z coordinate for each &#34;X Y SEQUENCE and an x, y coordinate set for each 60 Z SEQUENCE. In addition, the operator may select for performance any one of the stored X-Y and Z SE- QUENCES forming a program regardless of the current x, y or current z position of the cutting element relative to the object being machined so that the positioning of the cutting element to the x, y, z coordinates of the selected SEQUENCE might cause the cutting ele ment to interferingly engage the workpiece, and cause damage to either. To accommodate the X Y and Z SE- QUENCES interrelationship and to eliminate the possibility of damage during repositioning, the X-Y SE- QUENCES and Z SEQUENCES are interlaced in the RUN mode by the CPU.  
  This interlacing of X-Y SEQUENCES with Z SE- QUENCES may be understood from the following description. If in the RUN mode, the operator selects a Z SEQUENCE from a plurality of SEQUENCES forming a program, then the central processing unit is effective to first generate the appropriate control signals to first retract the cutting element to a reference 2 coordinate beyond the work-piece and then to position the cutting element at the x and y coordinates of the first X-Y SE- QUENCE preceding the currently selected Z SE- QUENCE in the program stored in the computer memory. Thereafter; the Z SEQUENCE operation is performed. Thus, the selected Z SEQUENCE is associated with the preceding X-Y SEQUENCE, or, in other words, the x, y coordinate set from the previous XY SEQUENCE is used in the performance of the selected Z SEQUENCE.  
  Similarly, if a X-Y SEQUENCE is selected in the RUN mode by the operator, the cutting element is re tracted to a reference 2 coordinate after which the cutting element is positioned to the and y coordinates of the selected X-Y SEQUENCE. Then the cutting element is repositioned to the z coordinates of the first Z SEQUENCE prior to the selected X-Y SEQUENCE. Thus, the cutting tool is automatically retracted to a reference position so that the cutting element cannot interferingly engage with the workpiece during the positioning operation.  
  In addition to the above operations, the operator may use the X-Y MIRROR FUNCTION control in the RUN mode to readily and with little effort direct the computer to perform a series of machining operations at workpiece locations symmetrically disposed about a reference axis positions the workpiece so that the reference axis coincides with either the .r or y axis. The operator then programs (or uses a previously stored PRO- GRAM for) a series of operations on a first side of a reference axis of symmetry. The operator then switches the system to the RUN mode and appropriately activates the mirror control. In response, the computer then selects the current stored program SEQUENCE and substitutes new .r, y coordinate values (having the same absolute values but with the appropriate signs) in that SEQUENCE. As a result the computer directs the cutting element to perform the same operations defined by the previously stored PROGRAM but at a location symmetrically disposed about the reference axis.  
 BRIEF DESCRIPTION OF THE DRAWINGS The foregoing and other objects of this invention, the various features thereof, as well as the invention itself, may be more fully understood from the following description, when read together with the accompanying drawings in which:  
  FIG. 1 shows in block diagram form a numerically controlled machine tool system in accordance with the present invention,  
  FIG. 2 showsin block diagram form the machine tool and interface section of FIG. 1,  
  FIG. 3 shows a plan view of an operator control panel for use with the operator control/programming station of FIG. 1.,  
 .\&#39;- plane of the relative motion of the cutting element of FIG. 1 in response to tool offset SEQUENCE data.  
 DESCRIPTION OF THE PREFERRED EMBODIMENT A computer controlled machine tool system is shown in FIG. I. The system includes a machine tool 12, a digital computer 30, an operator control/programming station 40, a tape control station 42 and an interface section 28 interconnecting each of these sub-systems.  
  The machine tool 12 in the presently described embodiment is shown having a cutting element 14 and a workpiece positioning table 16 for supporting an object to be machined. In other embodiments, the machine tool may have the form of a lathe, milling machine or grinding machine. For reference purposes, a set of Cartesian coordinate axes 18 is shown having an origin point 18a located at a point on the top surface of table 16. The axes 18 are disposed so that the top surface of positioning table 16 lies in the plane defined by the and y axes.  
  Manual position controls 21 and 22 may be used by an operator to manually position the positioning table 16 so that a reference point of that table may lie at an operator-selected x, y coordinate point. Manual position control 23 may be operated to position cutting element 14 along a path in the vertical direction. Thus the relative position of cutting element 14 to the reference point 18a on table 16 may be manually adjusted by an operator using controls 21-23. In addition, tool 12 includes means, such as rotary encoders, for generating cutter position signals, indicative of the coordinates of the cutting element 14 in relation to the reference point 18a of table 16. These coordinates define the points which are hereinafter referred to as the spatial points through which cutting element 14 is moved, i.e., by the motion of element 14 relative to table 16.  
  The machine tool 12 also includes three stepper motors (not shown in FIG. 1): one stepper-motor for driving table 16 in the x direction in response to control signals on line 25a, one stepper-motor for driving table 16 in the y direction in response to control signals on line 25b and one for positioning cutting element 14 along a path in the z direction in response to control signals applied via line 250. Machine tool 12 further has x, y, z servo-control lines 26a-c for transferring the cutting element position signals from rotary encoders in tool 12 to interface section 28.  
  The computer 30 may be one of many general purpose digital computers known in the art and generally may be described as having a central processing unit 32, a memory section 35 and an arithmetic unit 36. A typical computer which may be selected for the present invention is model D-l l2, manufactured by Digital Computer Controls, Inc. Alternatively, a PDP-S/L manufactured by Digital Equipment Corporation, may be used. Briefly, the computer 30 is interconnected to interface section 28 via lines 33 and 34. Line 34 provides a 12 bit parallel data input connection to the accumulator in arithmetic unit 36 (denoted ACI 0-1 I Line 33 provides a 12 bit parallel data output connection from the accumulator (denoted ACO 0-1 1). Line 33 also provides a computer command signal connec- &#39;tion from the 12bit memory buffer portion of memory section 35. Included are parallelinput/output transfer pulse connections (denoted IOP 1,2, 4) for the transfer pulses generated by computer 30 from bits -2 and 9 l ;l of the computer memory buffer. Also included in line 33.are parallel device selection bit connections (denoted BMB 3--8) for the device selection signals transferred directly from bits 3-8 of the memory bufand functioning of computer 30 is provided below.  
 &#39; The operator control/programming station 40 provides for&#39;operator direction of the system in either of &#39;two modes, PROGRAM-EDIT or RUN. In the PRO- GRAM-EDIT mode, the operator directs the computer 30 to store one or more programs, each comprising a plurality of digital data SEQUENCES. From these programs, machine tool 12 control signalsmay be generated In the RUN mode, computer 30, together with interface section &#39;28, automatically&#39;generates such control signals and applies those signals to tool 12, whereupon the tool performs the corresponding machining operation. I  
 - In the RUN mode, the operator may select one of two sub-modes, STOP and CYCLE. In the STOP sub-modethe system&#39;is in a standby state awaiting an operator control signal. In the CYCLE sub-mode, computer 30 continuously processes stored SEQUENCES to perform the programmed instructions without operator&#39;intervention until a particular PROGRAM is ended or a STOPsignal is generated by the computer 30.  
 In operation, an operator&#39;may secure an object to be machinedu pon positioning table 16 of the machine tool. Thereafter, the operator may manually position table l6and cutting element 14 by way of controls 21, 22, and 23 so that the cutting element passes through asuCcession of spatial pointshaving desired coordi- &#39;ferJA more detailed description of the programming nates as measured with respect to the Cartesian coordinate system&#39; l8.  
  In&#39;the PROGRAM-EDIT mode at each of the spatial points,the operator may generate a program instruction, generally comprising a sequence of data signals, hereinafter referred to as a SEQUENCE, wherein each SEQUENCE comprises a set of digital signals. The digital signals&#39;are generated at the operator control/programming station 40 by means of a plurality of switches. In response to an operator generated SE- QUENCE ENTER signal, the data signals (forming a SEQUENCE) sogenerated are transferred to digital v computer 30 where they are stored under the direction of, computer 30 in the memory section 35. V a 2 Subsequently, the operator may switch the system to operate inlthe RUNmode. In this lattermode, the operator may; select a starting SEQUENCE (corresponding. toa one of the cutting element position spatial points in the above described succession). The operator may then direct computer 30 to the CYCLE sub-mode. Computer30 is effective in the CYCLE sub-mode to I sequentially processthe SEQUENCES storedin memorysection 35, commencing with the initial current&#34; SEQUENCE selected by the operator. Computer 30 together with interface section 28 sequentially converts the respective on&#39;esof the stored SEQUENCES into a corresponding succession of control signals, which sig na ls are then applied to machine tool 12. In response,  
 machine tool 12 performs the machining operations indicated by thestored SEQUENCES Throughout this operation, an operator may freely I interrupt from station 40 the performance in the RUN mode, and he may switch to the PROGRAM-EDIT mode and either revise, add, or delete SEQUENCES in accordance with possible new requirements, or to provide corrections of earlier program&#39;ferrors. The operator may then switch back to the RUN&#39;mode and select stored by computer 30. This tape may be then applied at a latertime to the computer 30; In the RUN mode,  
 the operator may direct the machine tool toperform the particular machining operation defined by the tape in the PROGRAM-EDIT mode &#39;or he may modify the SEQUENCES entered from the tape.  
 A more detailed description of the blocks in FIG. 1  
 now follows. Machine tool 12 may be in&#39;the form of a V I lathe, drill press, or milling machine or&#39;other similar de-&#39; i vice which has a cutting element and a workpiece positioning element, each of .which may be manually posi- J tioned along one or more axes of a Cartesian co0rdinate system and also may be automatically positioned along such an axis system by&#39;stepper-motors controlled by an external signal generator. By way of example,  
 machine tool 12 may be a Series I Bridgeport miller having a Sigma series 20 stepper motor for driving each axis, and Trump-Ross Trim-step encoders for producing position signals.  
 In the machine tool 12 of FIG. l,&#39;a milling machine is shown having a cutting element 14 which may be positioned along the vertical direction (parallel to the z-&#39; axis) and a positioning table 16 which provides a surface with a reference coordinate point 18a which may be translated in the plane formed by the .r and y axes.  
 Position controls 21, 22, and 23 represent manual co&#39;ntrols for independently moving table 16 in the x direction, moving table 16 in the y direction, and moving cutting element 14 in the z direction, respectively. The x, y, and z servo-control signals for the stepper-motors are in pulse form and are applied to machine tool 12 via lines 25a-c. The associated stepper-motors and clutch assemblies for automatically moving these elements are not shown in FIG. &#39;1.  
  Machine tooll2also has a set of rotary encoders for generating three cutting element displacement indicating signals, indicating the relative x, y, and z displacements of the cutting element 14 from the. reference point 18a. The cutting element displacement signals are appliedby the position encoders of tool l2to lines,  
 26a-c. The lattersignals are in suitable form so that the magnitude and direction of incremental changes inposition of the cutting element 14 with respect to the respective axes may be determined. In the present exemplary embodiment, a two channel square wave signal is produced for each axis to indicate a constant rate of I change in position along that axis. In this exemplary signal, the first channel square wave is displaced in time to lead the second channel square wave for a&#39; change in position in a first (or positive) direction&#39;along an axis. The first square wave lags the second square wave for a change in position in a second (negative). direction. V  
 The period of the two signals is representative of the magnitude of the rate of change in position.  
  In FIG. 2 machine tool 12 is shown in block diagram form having positioning table 16, cutting element 14, manual position controls 21-23, drive stepping-motors 27a-c, and position encoders 28a-c. Also shown in FIG. 2 is interface section 28 having x-control section 210a, y-control section 21012, z-control section 2106, and data buffer 216. Controls 2l0a-c are identical and so only .r-control 210a is shown in detail in FIG. 2 and described herein.  
  As described above, the respective ones of lines 25a-c and 26a-c interconnect the appropriate position drive motors and position encoders to the corresponding control sections of interface section 28. In addition, interface section 28 has input and output connections 33 and 34 to computer 30.  
  X-control 210a includes four device selectors 221a-224a, .r-drive pulse generator 226a, .\&#39;-position pulse generator 230a, up/down counter (.r-position) 232a and up/down counter (.r-stall) 234a. The device selectors 22111-22311 are connected in an appropriate manner to decode the computer command signals which appear on line 33 and to appropriately apply enabling control signals to the connected devices 2260, 232a. and 234a. The particular circuit configuration and use of such device selectors is well known in the art and is fully described in the PDP-8/L Users Handbook published by Digital Equipment Corporation.  
  In the RUN mode, computer may generate and apply an appropriate command signal on line 33 to direct movement of positioning table in the direction. This signal is decoded be device selector 221a which in turn activates .r drive pulse generator 226a. A pulse signal is generated in response thereto by .r drive pulse generator 22611. This signal is applied via line 25a to .r drive motor 27a which responds by incrementing positioning table 16 a signal unit in the .r direction. The  
 change-indicating position signals produced in response thereto by x position encoder 28a are applied by line 26a to x position pulse-generator 230a. The output of generator 230a includes both a pulse signal indicating that positioning table 16 has moved one increment in the x direction and a direction signal indicative of the 7 sign (either plus or minus) of the motion. These signals are applied to up/down counter 232a to increment the count state of that counter in the up direction for a positive direction signal or in the down direction for a negative direction signal. Counter 232a maintains a cumulative count of all changes in the x direction of positioning table 16. Thus, the output of counter 232a provides an actual cutting element position signal.  
  In accordance with its program, as described below, the computer directs a burst of incremental movements which are sufficient to direct cutting element 14 to the desired point and then applies an appropriate computer command signal on line 33, to interrogate counter 232a. In response thereto, the computer input/output transfer pulse IO? 4 is effective to enable data buffer 216 to transfer a signal representative of the counter 232a count state via line 232aa, data buffer 216 and line 34 to the accumulator of computer 30. This computer interrogation of counter 2320 is thus performed only on command and not following each incremental movement. In other embodiments, the computer may monitor counter 232a following each incremental movement.  
  The output pulse signal from generator 226a and the output pulse signal from generator 230a are applied respectively to the up and down count inputs of the x-stall up/down counter 234a. This counter is used to provide the operator with an indication as to whether the computer commanded movements are appropriately being followed by machine tool 12. In addition, the direction signal produced by generator 230a is applied via line 230aa to data buffer 216 where that information may be transferred to computer 30 by the application of an appropriate command signal on line 33.  
  In operation, at an initial reference time, computer 30 generates an appropriate command signal to cause device selector 222a to set counter 234a to a predetermined state. Then, if the number of drive pulses produced by generator 226a is sufficiently close &#39;to the number of response pulses produced by generator 230a, i.e., so that there is no over or underflow of counter 234a, then no output signal is provided from that counter. However, if counter 234a reaches either an overflow or underflow state because of a failure of machine tool 12 to track the commands provided by computer30 on line 33, a control signal is generated by counter 234a and applied via line 234aa to operate control/programming station 40 where, as described below. a STALL warning lamp is illuminated to apprise the operator of this condition and the system enters the STOP sub-mode.  
  Thus, for example, if the moving elements of machine tool 12 are prevented from reaching their computer-directed positions along any axes by some obstruction, then the operator is apprised of this situation by the STALL lamp at station 40. It will be understood that yand z-controls 210b and 210C operate in a similar manner to that described for .r control 2101: for computer directed movements in the y and z directions.  
  The series of command signals which are applied by computer 30 to line 33 are produced in accordance with the main program stored in memory section 34 of that computer at a uniform clock rate. Briefly, the main program provides a path determining means which treats X-Y SEQUENCES and Z SEQUENCES separately. For Z SEQUENCES, the program directs computer 30 to activate Z control 2106 to move cutting element 14 directly in a series of z moves to the associated z coordinate in a straight line. For X-Y SEQUENCES, to determine the relative motion of cutting element 14 between two spatial points, in the XY plane, computer 30 performs an algorithm which produces the best straight line between those points. (It will be noted here that the performance of X-Y and Z SEQUENCES in the RUN mode are related, as described more fully below in conjunction with the X-Y SEQUENCE CON- TROL and Z SEQUENCE CONTROL of operator station 40). In the X-Y plane, there are generally two sets of moves which may be generated by the computer: major moves and minor moves. A minor move comprises a simultaneous movement in both the x and y directions. A x-major or y-major move comprises a single increment in the corresponding x or y direction. The algorithm programmed into the computer generates the appropriate command signals so that the best line is followed and the cutting element 14 is never more than a single minor move for the straight line connecting the two points. In addition, the speed of the cutting element is controlled by the computer by interleaving zero moves with the above described 2, x-  
 major, y-major and minor moves. In response to a computer directed zero move, the cutting element relative position is unchanged. Further, ingenerating theappropriate control signal the computer also accommodates the stepping motor limitations in starting speed i and stoppingfspeed by combining the best straight line computation with a ramping function. This is accomplished by limiting the drive pulse rate (using zero moves) at the initial portion of a move to a SE- QUENCE point so that the resultant computer commanded moves are not faster than the stepping motor acceleration response speed. As described above, the computer 30 generates a sequence of command signals on line 33 which is sufficient to direct cutting element 1 4 tothe desired point, At the time when the computer expects the cutting&#39;element 14 to be a predetermined distance from the desired point, the pulse rate is appropriately decreased to match the stepping motor braking response speed. V  
  lnaddition, the path determining means provided by the main program, of computer 30 also determines the path which cutting element 14 is to follow in accordance with the stored circular interpolation, tool offset,  
  and backlash take-updata signals, as described below.  
  In the above manner, the computer performs the positioning algorithm and determines the sequence of command signals which are required to move the cutused to program computer 30 for operating machine tool 12. Alternatively, computer 30 may activate station 42 to read a pre-punched tape having such encoded SEQUENCE datasignals and transfer those signals for storage in memorysection 35.,The stored sequence data signals may be subsequently modified and then transformed, or directly transformed, into control signals for directing the movement of cutting element 14 of machine tool 12.  
  Operator control station 40 receives input signals from computer 30 by way of line 33, interface section 28, and line 33a. Line 33a provides parallel input lines for buffer memory bits 3-8 (BMB 3-8), input/output transfer pulses (lOP l, 2, 4) and then 12 bit accumulator data word .(ACO -1 1 In addition, station 40 receives x, y, 2 position and stall data from lines 232aa-cc and 234aa-cc, respectively. Control data is transferred from station 40 to the accumulator of computer by way of line 40a to data buffer 216 of section 28, and then by way of line 34 to computer 30. Zero set lines 75a and 85a are also connected to section 28 from station &#39;40. v  
  The control console for operator control/programming station 40 is shown in detailed form in FIG. 3. An operatormay generate a program to instruct computer 30 to subsequently perform asequence of machining ting element 14 to the appropriately programmed point. The computer then applies those command signals to line 33. Following the last of these command 7 signals, computer 30 generates and transfers on line 33 a further command signal which isdecoded by data buffer 26 to effectively interrogate the up/down position counters 232a-c in the.\&#39;, v, and z controls 210a-c. The computer then determines from this position data whether the&#39; desired spatial point has been reached. If a so, then the computer advances to the next SE- QUENCE. If the desired spatial point h as&#39;not been reached, then the algorithm-is repeated to determine a new best straight line&#34; from the current point to the desired point. (Of course, if one of the moving elements of machine tool 12 has been prevented from movement along one or more of the x, y and z axes such thatthe stall counterv 234a (or its equivalent in the y and z controls 210b and c) is in an over or underflow state, then the stall lamp will beilluminated at operator station 40 and the system enters the STOP&#39;sub-mode).  
  The operator can identify the reference point 18a of the coordinate axes set 18 bygenerating an appropriate control signal at station 40 on line 75a which directly resets the .r-position counter 232a to its zero state.  
 (Similarly, the corresponding counters in controls 21% and&#39;c may be set to zero by generating the appropriate signals on lines 75a and 85a). As a further feature upon restart operations following power shutdown at the machine tool 12,-the computer 30 generates the appropriate command signal which is decoded by device selec- QUENCE data signalsThe tape may be subsequently operations, from this station 40 and in conjunction with manual controls 21, 22, and 23 of machine tool 12. The operator may direct computer 30 to perform one of the following operations: 1 generate and/or modify a program or portions thereof for storage in the memory section 35 of the computer (for later translation by computer 30 into control signals for machine tool 12); (2) produce a paper or magnetic tape having encoded thereon a sequence of data signals (for later translation by computer 30 into control signals for machine tool 12); and (3,) provide on-line machining operation by generating appropriate control signals formachine tool 12.  
  Station 40 is divided in FIG. 3 to show the control signal generating devices in a functional grouping. The groupings include MODE control 44, CURRENT SE- QUENCE control 50, SEQUENCE PROGRAM- EDIT control 60, X Y SEQUENCE control 70, Z SE- QUENCE control 80, CIRCULAR lNTERPOLATlON control ,90, TOOL OFFSET control 100, BACKLASl-T 2 control 110, TAPE STATION control 115, and PRO- GRAMMING AlD control 120. Each grouping is described in detail below. The blocks having circular regions connected thereto are provided with an indicator lamp which is responsive to a control signal from com-&#39; puter 30&#39;and from the switch in the associated block.  
  It will be understood that the electronic circuitry included in each block shown in FIG. 3belongs to one of three classes. In all three classes, the circuits are comprised of well known circuit elements including: integrated circuits (flipflops, shift registers, counters, and  
  logic gates), resistors, capacitors, pushbutton and,  
 thumbwheel switches, indicator lamps and display devices. These devices are configured, in a well known manner to perform the hereafter described functional operations. More particularly, the computer 30 inter facecircuits are configured in accordance with the exemplary circuits shown in the DigitalEquipment Corporations PDP-8/L Users Handbook.  
 In the first class, block 52 is a decode and display device which transforms signals applied from the accumulator of computer 30 upon an appropriate command signal from line 33a to provide a decimal display indicative of the current SEQUENCE number (for block 52). Blocks 71, 72, and 81 are decode and display devices which transform signals applied directly thereto from .t, y and z counters 232a-c into a visual decimal display.  
  The second class includes all blocks excepting SE- QUENCE ENTER 68, CYCLE 48, STOP 49, SE- QUENCE SELECT 54, MEMORY ERASE 67, X, Y-, and Z-STALL 76, 77, and 78 and TAPE START 117. The blocks in this second class all include a single or multiple bit data register which may be loaded in response to signals generated by operator controlled pushbutton (or thumbwheel) switches at station 40 or by signals applied from the accumulator of computer 30 following an appropriately decoded computer command signal applied by line 33a. Each of these registers may be cleared by an operator-pushbutton generated CANCEL signal or by an appropriate computer command signal. The data outputs of each register in this second class is applied by way ofline 40a to data buffer 216 for transfer on command to the accumulator of computer 30. Where appropriate. the register outputs are also connected by way of lamp driving circuits to indicator lamps.  
  The remaining blocks, i.e., blocks 48, 49, 54, 67, 68, 76, 77, 86 and 117 include single bit data registers which are loaded by a corresponding pushbutton switch (blocks 48, 49, 54, 67, 68, and 117) or by stall data on lines 234aa-cc (blocks 76, 77, and 86). These .registers provide input/output device flags for the computer 30 and are interconnected to the computer program interrupt and skip facility. Thus the computer 30 continually checks the status of these flag registers and, in response the detection of the loading thereof, interrupts its normal processing to enter the data stored in g the registers (via line 40a, data buffer 216 and line 34) and to perform the approriate sub-routine called for by the flag when so provided for in the computer program.  
  At this point, it will be assumed that all of the blocks shown in FIG. 3 have the appropriate switches, data registers, decoding and logic networks, and the interconnecting signal lines to accomplish the functional description that follows.  
  To briefly outline the procedure by which an operator may generate and modify a stored program from station 40, it will be assumed that initially the operator sets MODE control 44 to the PROGRAM-EDIT mode. The operator then directs the cutting element 14 to a desired spatial point by means of manual position controls 2l23, and may establish that point as the reference point 18a for subsequent operations by activating zero set controls in X-Y SEQUENCE control 70 and Z SEQUENCE control 80. The operator continues by adjusting manual position controls 21-23 so that the cutting element 14 is positioned at a spatial point where a subsequent machining operation is desired. The x, y coordinates and the z coordinates of this point are displayed to the operator by display devices located in X-Y SEQUENCE control 70 and Z SEQUENCE control 80, respectively.  
  Following the positioning of cutting element 14, the operator then activates either (1) an on/off switch and a speed selection switch in X-Y SEQUENCE control 70 (for producing an X-Y SEQUENCE) or (2) an onloff switch, a speed selection switch and a peak cycle switch in Z SEQUENCE control (for producing a Z SEQUENCE). He next activates desired ones of the three PROGRAM controls in SEQUENCE PRO- GRAM-EDIT control 60 (PASS control 61, END OF PROGRAM control 62, and SEQUENCE DELETE control 63), the on/off, circular path, center, and radius switches in CIRCULAR INTERPOLATION control (if the SEQUENCE is an X-Y SEQUENCE and the operator desires a circular approach path), and the on/ff, offset amount, and direction data switches in TOOL OFFSET control (if tool offset is desired for the SEQUENCE).  
  Following the setting of the data switches for the various controls, the operator activates a SEQUENCE ENTER switch in SEQUENCE PROGRAM-EDIT control 60. The signal produced in response thereto directs computer 30 to store the data signals generated by the various data switches at a location in memory 35 allocated for the current SEQUENCE. In addition, .r, y (or z) coordinate position signals and direction of approach control signals (as determined by computer 30 from the position-indicating signals on line 34 from lines 232aa-cc and 234aa-cc of interface unit 28) are also stored in memory 35 with the current SEQUENCE data.  
 The operator then may repeat the above procedure to generate and store a SEQUENCE for a next spatial 7 point in order to provide a next SEQUENCE in a program. Alternatively, the operator may switch to the RUN mode and select the just programmed SE- QUENCE using CURRENT SEQUENCE control 50 and thereby direct computer 30 to perform the machining operation specified by the stored data in the sequence.  
  The operator may at some later time select the programmed SEQUENCE using CURRENT SEQUENCE control 50 with mode control 40 in the PROGRAM- EDIT mode. He may then prepare to modify, or delete that SEQUENCE or add a subsequent SEQUENCE by activating the appropriate ones of the appropriate switches in X-Y SEQUENCE control 70, Z SE- QUENCE control 80, CIRCULAR INTERPOLATION control 90 and TOOL OFFSET control 100. The selected SEQUENCE is modified, deleted or the new SE- QUENCE added in, from, or to memory 35, respectively by activating the appropriate one of the four EDIT controls followed by the SEQUENCE ENTER control of SEQUENCE PROGRAM-EDIT control 60.  
  The various controls of operator control/programming station 40 and their functions will now be described in detail.  
 MODE CONTROL The MODE control 44 has two mode selection switches. The first, PROGRAM-EDIT/RUN select 46, is used by the operator to determine the mode of station 40 to be in either the PROGRAM-EDIT or RUN mode. In the PROGRAM-EDIT mode, as described in detail below, the operator may generate program SE- QUENCES which are to be subsequently converted by computer 30 into control signals for machine tool 12. In this mode, the operator may also modify or delete already stored program SEQUENCES. In the RUN mode, computer 30 is effective to generate the appropriate control signals for machine tool 12 corresponding to the data stored in a current selected program SE- QUENCE.  
 When the computer is switched&#39;to the PROGRAM- I EDIT modeby select 46, computer 30 automatically advances to the next numbered-SEQUENCE following the entry of a new or modified SEQUENCE into memory 35. by activation of SEQUENCE ENTER 68. When the CYCLEcontrol v48 is activated in the RUN mode, .cmpufter30 sequentially processes successive ones of the storedprogram SEQUENCES to generate the cor- 30-successively displays certain stored SEQUENCE data to the operator as described in detail below. Following activation of .STOP control .49 in the RUN mode, computer 30 enters the, STOP sub-mode and awaits the nextoperator-activation of CYCLE control 48. The STOP sub -mode&#39;may be entered&#34; in response to the activation of STOPcontrol 49 by the operator, or  
 &#39; may be activated automatically by computer 30 following detection of a SEQUENCE having noassociated PASS signal as described below.  
 &#39; V CURRENT SEQUENCE CONTROL amanual SEQUENCE select switch 56. i  
 During operation in both the PROGRAM-EDIT and V RUN, display 52 responds to the appropriate computer command signal applied via line 33a to decode and display the referencenumber applied from the accumulator&#39;of computer which is associated with the program Q {SEQUENCE currently being processed by the computer 30. Computer 30 advances automatically from a current SEQUENCE to process the next&#39;numbered SE- ;QUENCE following entry of a new or modified SE-,  
  which provides a digital signal representative of the I state of the switch to computer 30 in-response to&#39;activation of the SEQUENCE ENTER control 68 bythe operator. I  
 Following the advance by computer30&#39;to a selected current program SEQUENCE (selected via CURRENT V responding tool -12&#39;control signals. Additionally, in both&#39;the PROGRAM-EDIT andRUn modes, computer SEQUENCE control 50, or automatically by computer 30) which the operator desires to program or to either. modify or delete, or to which the operator desires to add a prior programmed SEQUENCE, the operator may select the PROGRAM-EDlTmode i/ia select control .46. The operator is then apprised of certain portions of the stored data from the current SEQUENCE QUENCE (in thePROGRAM-EDIT mode) or following performance ofa SEQUENCE (in the RUN mode). 1  
 Following activation of STOP control 49, the operator may select the first unprogrammed SEQUENCE to be programmed (in the PROGRAM-EDIT mode), or he mayselect aparticular SEQUENCE from those already comprisingthe program to be modified (in the PRO- GRAM-EDIT mode), or to be performed (in&#39;the&#39; RUN mode) by&#39;adjusting manual select switch 56to the asso- -ciated reference number. The operator then directs nthat computer 3 0 advance to that SEQUENCE, i .e.,  
 &#39; change the current SEQUENCE to the selected SE- QUENCE, by operating the SEQUENCE select 54. In  
 the RUN mode, when the CYCLE control 48 is next activated by the operator, computer 30&#39;will move the cutting element as directed &#39;by the selected 55- QUENCE in the RUN mode and continue with the next numbered SEQUENCE following the selected SE- QUENCE, unless directed to the STOP sub-mode by the activation ofthe STOP control 49 by the operator or the current selectedSEQUENCE.  
 &#39; SEQUENCE PROGRAM-EDITJCONTROL The. SEQUENCEPROGRAM-EDIT control 60 in c&#39;lu des three PROGRAM controls 61-63, four EDIT fcontrols 64-67 an d&#39;aSEQUENCE ENTER control 68.  
 Each of controls 6l+67 includes a two, position switch control having the corresponding one of the&#39;above I by way of the indicator lamps 61a-63u of SEQUENCE. program-edit control 60 and the indicator lamps 73a, 82a,9la, 101a, and 112a of the remaining controlsat station 40. More. particularly, the indicator lamps 61a-63a indicate to the operator the data stored in the current selected SEQUENCE in the memory section 34 associated with thePROGRAM controls, i.e., the PASS control 61, END-OF-PROGRAM control 62, and- SE- QUENCE DELETE control 63. i I  
  If, in the current SEQUENCE, a PASS signal is stored in memory 35, the indicator lamp 61a will turn on. A stored PASS signal indicates that, for subsequent operation in the RUN mode and CYCLE; sub-mode, computer 30 will automatically continue to the next SEQUENCE following completion of the current SE- QUENCE. A SEQUENCE having j no PASS signal stored therewith will be identified by computer 30 in the RUN mode and in turn will directthe system ,to enter the STOP sub-mode. However, operator rnay activate the PASS control 61 inthe RUN mode while the computer is currently positioning cutting element 14 during performance of a SEQUENCE which may; have no PASS signal associated therewithpln thiscase,-  
 upon completion of the SEQUENCE, computer notes the activation of PASScontrol6l and continues in the CYCLE sub-mode to the next SEQUENCE following the current SEQUENCE, i.e., as if a PASSQsignal had been stored with the current SEQUENCE, and is, in ef: fect, a temporary override control operation;  
  If,&#34; in the current SEQUENCE, an END-OF- PROGRAMsignal is stored, the indicator lamp 62a will turn on, indicating that the current SEQUENCE marks theend of a stored progranr During subsequent operation in the RUN mode, computer 30 will identify the END-OF-PROGRAM signal and automatically select the first SEQUENCE in the program as the current SE- QUENCE. If the current SEQUENCE includes a SE- QUENCE DELETE signal the lamp 63a will be illuminate d. During subsequent operation in the RUN mode,  
 computer 30 will identify the SEQUENCEDELETE signal and respond thereto by skipping the machining operation specified by the SEQUENCE. The SE- y QUENCE datawill remain in the computer memory 32. Additional indicator lamps at station 40 further apprise the operator of the current SEQUENCE stored data associated with theX-Y SEQUENCE control (lamp 73a), Z SEQUENCE control (lamp 82a),  
 CIRCULAR INTERPOLATION control (lamp 91a), TOOL OFFSET control (lamp 101a), and BACKLASl-l control (lamp 112a). These latter controls are discussed in more detail below, However, each of those controls includes an ON/OFF SELECT cited indicator lamps illuminated in the PROGRAM- EDIT mode to indicate to the operator when data from the associated control is stored in the current SE- QUENCE.  
  Once the operator is informed of the stored data associated with the current SEQUENCE, he may either add a new SEQUENCE to follow the stored program or he may modify the stored SEQUENCE using the EDIT controls in the following manner.  
  To add a new SEQUENCE to follow the last already programmed SEQUENCE, the operator may first position cutting element 14 to the desired .r, and z coordinates by manual controls 21-23, and then activate any of the PASS, END-OF-PROGRAM, or SE- QUENCE DELETE controls 6l-63, as desired, and activate any of the data switches associated with controls 70, 80, 90, and 100, as desired to generate the data for the new SEQUENCE. After then activating the SE- QUENCE ENTER control 68, the new SEQUENCE data is stored in the appropriate location in memory 35. This data includes .r, y, and z coordinate data from position counters 232a-c, direction of approach data from pulse generators 230a-c, and any X-Y or Z SE- QUENCE data as determined by the operator by way of controls 60, 70, 80, 90, and 100. All position, direction and SEQUENCE data is entered into the accumulator of arithmetic unit 36 by way of data buffer 216 and line 34 in response to the appropriate computer command signal applied of line 33.  
  To modify a current SEQUENCE, the operator may first activate the CANCEL control 64 and then SE- QUENCE ENTER 68. This results in all data signals stored in memory 35 with this SEQUENCE, except the .r, y, z coordinate data and approach direction and speed data being deleted from the memory. In addition,  
 - the corresponding ones of operator indicator lamps 61a63a, 91a and 101a are extinguished. The operator may then activate, any of the PROGRAM controls 61-63 and data switches associated with controls 70, 80, 90, and 100 to generate data from the modified SE- QUENCE. The newly generated data is then stored in memory 35 following activation of SEQUENCE ENTER 68. Alternatively, the operator may modify all the data of a selected SEQUENCE, including the x, y (and z) coordinate and direction data, by first activating the CANCEL control 64 and then manually repositioning cutting element 14 to the desired spatial point (either by manual controls 21-23 or automatically in the RUN mode). The operator then activates any of the PASS, END-OF-PROGRAM or SEQUENCE DELETE controls 61-63, as desired, and activates any of the data switches associated with controls 70, 80, 90, and 100, as desired to generate the data for the modified SEQUENCE. After activating the SEQUENCE COR- RECT control 66 and finally SEQUENCE ENTER 68, the modified data (including new x, y and z coordinate data and direction of approach data) is stored as a SE- QUENCE by computer 30 in the appropriate location in memory 35.  
  The operator may also activate the CANCEL control 64 in the RUN mode during the positioning of element 14 for a current SEQUENCE. In response thereto, computer 30 ignores the presence of any PASS or END-OF-PROGRAM data stored with the current SE- QUENCE, i.e., the computer processes the SE- QUENCE as if no such signals were stored therewith,  
 and is, in effect, a temporary override control operation.  
  To insert a SEQUENCE between two existing SE- QUENCES of a program, the operator directs computer 30 to the PROGRAM-EDIT mode using MODE control 44 and selects the second of the existing SE- QUENCES using CURRENT SEQUENCE control 50. He then positions the cutting element 14 to the desired SEQUENCE in the same manner that a new SE- QUENCE would be generated. The operator then activates SEQUENCE INSERT control 65 followed by SE- QUENCE ENTER 68. In response thereto, computer 30 stores the new SEQUENCE with an appropriate reference number so that the SEQUENCE is in the desired order in the stored program i.e., between the two existing SEQUENCES. The SEQUENCE number of the second and all subsequent SEQUENCES are incremented by one. The new SEQUENCE is associated with the SEQUENCE number formerly associated with the second of the two existing SEQUENCES.  
  In order to erase from the computer memory all SE- QUENCES beyond a selected SEQUENCE in a stored succession of SEQUENCES, the operator first directs the computer 30 to the PROGRAM-EDIT mode using MODE control 44 and selects as current SEQUENCE the first SEQUENCE to be removed. He then activates the MEMORY ERASE control 67 in response to which the computer 30 removes the current SEQUENCE and all following stored SEQUENCES from memory 35.  
  Thus in the PROGRAM-EDIT mode the operator may construct new stored program SEQUENCES or modify or delete existing ones through the use of the controls 61-68 in conjunction with the associated controls discussed below.  
 X-Y SEQUENCE CONTROL The X-Y SEQUENCE control 70 informs the operator at all times of the current .r and y coordinates of the relative displacement of the cutting element 14 from the reference point 18a on the positioning table 16. In particular, X-Display 71 and Y-Display 72 decode the x and y position data applied by way of lines 232aa and bb and display these coordinate values in decimal form.  
  The x and y coordinates of the origin reference point 18a may be separately defined for computer 30 at an initial time by means of the ZERO SET control 75. To do so, the operator activates the appropriate portion of control which in turn applies a suitable pulse signal by way of line 75a to set the x-, y-, or both position counters 232a and b to their zero count state. In all subsequent processing, computer 30 will perform the appropriate translation to transform the various coordinates with respect with the new origin point.  
  Following the advance by computer 30 to a selected SEQUENCE in the PROGRAM-EDIT mode, the indicator lamp 73a associated with ON/OFF SELECT 73 will be illuminated if the selected SEQUENCE is an X-Y SEQUENCE. The operator may then prepare to enter a new X-Y SEQUENCE or to modify the selected X-Y SEQUENCE by manually adjusting the position of the cutting element 14 via controls 21 and 22 to a desired spatial point. The position-indicating signals from xand yencoders 28a and b are transformed by xand ypulse generators 230a and b to include data signals representative of the direction at which the spatial point was approached. In this embodiment, the approach direction signals may indicate one of four possible approaches, i.e., +y; -.r, +y; .r, v. (Subsequently in the RUN mode, the computer will determine the path of cutting element 14 in terms of major and minor move signals described above in conjunction with the computer best straight line&#34; algorithm.) The operator may select a speed of approach from a range allowed by SPEED select switch 74. SPEED select 74 produces a coded data signal in its register which is to be stored with the SEQUENCE data in memory section 34 along with the y and z coordinate and direction data. I  
 Following the manual positioning of cutting element 5 l4 and the setting of the speed select controls in X-Y SEQUENCEcontrol 70, in conjunction with any of the PROGRAM controls of control 60, described above,  
 and possibly of controls 90 and 100 as described below, the operator may store the newly generated X-Y SE- QUENCE by activatingthe SEQUENCE ENTER control 68, or he may modify the current X-Y SE- QUENCE data by activating a one of the EDIT controls 64-67 followed by SEQUENCE ENTER control 68.  
  During the RUN mode, computer 30 generates the appropriate control signals to direct stepping motors 27a and 27b to control the relative speed and direction of element 14 to be in accordance with the programmed values until the cutting element 14 is within a predetermined distance from the spatial point associated with the SEQUENCE. For the remainder of the approach of element 14 to the spatial point, in accordance with the computer algorithm, computer 30 generatesv the appropriate command signals to decelerate element 14 in a series of steps so that the final step is achieved while keeping overshoot to a minimal level. In the presently described embodiment, the machining operations specified by the X-Y SEQUENCES are interrelated in the RUN mode with the Z SEQUENCES (which are programmed as described below). The cutting element 14 remains at the x, y, and z coordinate position following the processing of a SEQUENCE in the RUN mode until repositioned by the processing of a subsequent SEQUENCE in the RUN mode (unless manually repositioned by the operator), thereby implicitly specifying a z coordinate for each X-Y SE- QUENCE and an y coordinate pair for each Z SE- QUENCE. Therefore, in order to permit an operator to select a single X-Y SEQUENCE from a program for operation in the RUN mode, computer 30 determines the z coordinate for the operation from the first Z SE- QUENCE preceding the current X-Y SEQUENCE. In  
 7 addition, when the current SEQUENCE is an X-Y SE- QUENCE, computer 30first generates control signals to direct cutting element 14 to retract to a reference 2 coordinate before directing element 14 to the x, y coordinate pair associated with the current SEQUENCE. The cutting element 14 is positioned to the x, y coordinates associated with the current X-Y SEQUENCE.  
 &#39; tion enables an operator to select an X-Y SEQUENCE out oforder in a program and insuring that the cutter element 14 will not interferingly engage with the object to be machined during the required positioning operation. In addition, the interlacing of the z coordinate data from the next previous Z SEQUENCE with the current X-Y SEQUENCE data permits the independent generation of X-Y SEQUENCES and Z SE- QUENCES, thereby reducing the operator complexity.  
  In an alternative embodiment, there may be no interlace between the X-Y and Z SEQUENCES. ln such an embodiment, following the operator selection of an X-Y SEQUENCE as a current SEQUENCE, the computer 30 repositions the cutting element to the x, y coordinates associated with the current SEQUENCE but maintains the cutting element at the same Z coordinate (i .e., no retraction to a reference z coordinate followed by repositioning to an implicitly defined Z coordinate). If the positioning table 16 is prevented from reaching its computer directed position in the x or y axis by more than the predetermined amount allowed by stall counters 234a-b, then the stall data signal on one or more of lines 234aa-bb is effective to energize the corresponding lamp drivers which comprise X-STALL 76 and Y- STALL 77 and the associated indicator lamps 76a and 77a.  
 Z SEQUENCE CONTROL The Z SEQUENCE control 80 is used by the operator in the PROGRAM-EDIT mode to program and modify Z SEQUENCES. ln a manner similar to displays 71 and 72 of the XY SEQUENCE control 70, Z DlS- PLAY 81 provides a decimal display apprising the operator of the z coordinate of the relative position of the cutting element 14. I  
  The z coordinate of the origin reference point 18a may be defined for computer 30 at an initial time by means of the ZERO SET control 85. To do so, the operator activates control which in turn applies a pulse signal by way of line 85a to set z-position counter 232C to its zero count state. In all subsequent&#39;processing,  
 computer 30 will perform the appropriate translation to transform the various coordinates with respect with the new origin point.  
  Following the advance of computer 30 to a selected current SEQUENCE in the PROGRAM-EDIT mode, the indicator lamp 82a associated with the ON/OFF SELECT control 82 will be illuminated if the selected sequence is a Z SEQUENCE. The operator may then prepare to enter a new Z SEQUENCE or modify the selected, current Z SEQUENCE by adjusting the position of the cutting element 14 via manual control 23&#34;to&#39; f the desired spatial point. The direction portion of the position-indicating signal as generated by xpulse generator 230C in interface unit 28 is applied to computer 30 in response to the appropriate computer command signal on line 33. The operator may also select the speed of approach by generating a coded speed data signal by means of speed select 83 from a range offered by that control.  
  In addition, theoperator may program, via PECK CYCLE control 84, a peck cycle operation which is to be followed by the cutting element 14 in the subsequent performance of the Z SEQUENCE in the RUN mode. The PECK CYCLE control 84 generates a coded data signal to direct computer to select from a range of options which may be selected by the operator. In a first of the PECK CYCLE selection options, the cutting element 14 is controlled by computer 30 in the RUN mode to approach the stored z coordinate associated with the current Z SEQUENCE from the 2 coordinate associated with the previous Z SEQUENCE in I a single increment. The approach is performed at the speed selected by the operator via SPEED SELECT 83. From the remaining selection options offered by PECK CYCLE control 84, the operator may select a PECK CYCLE for a SEQUENCE in which the cutting element 14 is controlled by computer in the RUN mode to approach the z coordinate associated with the current Z SEQUENCE in a series of incremental approach movements alternated with a series of retraction movements. The number of incremental approach movements is determined by the computer 30 in response to the operator-selected PEC K CYCLE signal generated by PECK CYCLE control 84. During each incremental approach movement, the cutting element is advanced toward the associated z coordinate at the speed selected by the operator via SPEED SELECT 83. In an alternative embodiment, the cutting element may advance toward the z coordinate during each incremental approach movement at a predetermined speed until reaching an intermediate point lying a predetermined distance from the end of each incremental path and at the selected speed thereafter. Following each incremental approach to the z coordinate, the cutting element 14 is retracted at a predetermined speed to the z coordinate associated with the previous Z SE- QUENCE. In this manner, a machine tool such as a drill press may provide for alternate periods of retraction of the drilling element between incremental advances, thereby allowing drilling chips removal.  
  Following the positioning of cutting element 14 and the setting of the speed select control 83 and the PECK CYCLE control 84 in conjunction with any of the PROGRAM controls of control 60, as described above, the operator may store the newly generated Z SE- QUENCE by activating the SEQUENCE ENTER control 68, or he may modify the current Z SEQUENCE data by activating a one of the EDIT controls 64-67 followed by SEQUENCE ENTER 68.  
  In the presently described embodiment, as with the X-Y SEQUENCES, the Z SEQUENCES are interlaced by computer 30 with the X-Y SEQUENCES during operation in the RUN mode so that when a Z SE- QUENCE is selected from a succession of SE- QUENCES by an operator, computer 30 first selects the x, y coordinates associated with the first previous XY SEQUENCE and those coordinate points are used in conjunction with the z coordinate of the current Z SEQUENCE. In addition, the cutting element is retracted to a reference 2 coordinate (to clear the workpiece) prior to the translation to the implicitly defined x, y coordinates associated with the current Z SE- QUENCE. In this manner, as with control 70, the operator may select a single Z SEQUENCE from a program without regard for the interfering action of the cutting element with the object to be machined.  
  In an alternative embodiment, there may be no interlace between the X-Y and Z SEQUENCES. In such an embodiment, a selected Z SEQUENCE is performed at the current x, y coordinates of the cutting element.  
  The Z-STALL block 86 includes a lampdriver (for lamp 86a) which is responsive to the appropriate signal on line 232cc which is indicative of either an overflow or underflow of the Z-STALL counter 232e, i.e., indicating that the desired 2 position (as directed by computer 30) has not been reached and that the actual position difference exceeds a predeterminedvalue.  
 CIRCULAR INTERPOLATION CONTROL The X-Y SEQUENCES are generally processed by computer 30 in the RUN mode so that the relative cutting element 14 position is changed in straight-line increments in the .r-y plane in accordance with the stored approach direction data signals associated with an X-Y SEQUENCE, as indicated above. However, in the PROGRAM-EDIT mode the operator may use CIRCU- LAR INTERPOLATION control to generate a SE- QUENCE which will in the RUN mode direct the cutting element 14 to approach the associated .r, y coordinates using a one of a family of circular paths. To generate such a circular interpolation SEQUENCE in the PROGRAM-EDIT mode, ON/OFF SELECT control 91 is activated by the operator during the original operation of the SEQUENCE, (using SEQUENCE ENTER 68 or SEQUENCE INSERT 65 followed by SE- QUENCE ENTER 68) or during the modification to an already programmed SEQUENCE (using SEQUENCE CORRECT 66 followed by SEQUENCE ENTER 68).  
  To generate the circular interpolation data for the specification of the direction of approach to be clockwise or counterclockwise along the selected circular path, the operator appropriately activates the CW/CCW PATH SELECT control 92. In addition, the operator further determines the circular path by generating a desired radius signal through the setting of manual radius select switch 93. In addition, the operator completes the specification of the path by selecting the center of the circle via the left/right center select control 94. Center select 94 is used to determine whether the center of the circle is located to the left or the right of the chord between the current x, y coordinates and the y coordinates associated with the previous X-Y SEQUENCE, where the left and right directions are determined with respect to the starting point of the chord, i.e., the .r, y coordinates from the previous X-Y SE- QUENCE. The right center select position of switch 94 indicates that the center is to the right of the chord when viewed from the starting point of that chord. The circular interpolation data is then stored with the X-Y SEQUENCE data (as generated by controls 60, 70, and by activating the SEQUENCE ENTER control 68 (for the generation of a new SEQUENCE at the following of the last SEQUENCE of a program), or by activating SEQUENCE INSERT 65 followed by SE- QUENCE ENTER 68, (for generation of a new SE- QUENCE between two already programmed SE- QUENCES), or by activating SEQUENCE CORRECT 66 followed by SEQUENCE ENTER 68 (for modifying an existing SEQUENCE).  
  As described above in conjunction with PROGRAM- EDIT control 60, the operator may modify a circular interpolation SEQUENCE to transform that SE QUENCE to a linear interpolation SEQUENCE (which specifies a straight line approach path) by selecting the SEQUENCE in question (using control 50 in the PRO- GRAM-EDIT mode) and activating CANCEL 64 followed by SEQUENCE ENTER 68.  
  In the RUN mode, computer 30 examines the circular interpolation data stored in association with a current X-Y SEQUENCE and compares the current relative position of the cutting element 14 to the stored x, y coordinates of the X-Y SEQUENCE preceding the current X-Y SEQUENCE having associated circular {interpolation data. Computer 30 then generates the appropriate control signals for tool 12.  
 For the presently described embodiment, the circular reference to coordinate axes l8) and the following examples. It will be assumed that computer 30 has se lected (as a current SEQUENCE) an X-Y SE- QUENCE having circular interpolation data associated therewith. namely, SEQUENCE B relating to spatial point B in FIG. 4. It will further be assumed that the next previous X-Y SEQUENCE is SEQUENCE A relating to spatial point A in FIG. 4. It will further be assumed that&#39;the circular interpolation data stored in association with SEQUENCE B indicated that the desired clockwise circular path has a radius R and a center to the&#39;right of, the chord AB (with refrence to the starting point A). FIG. 4 shows the circular path having radius R extending clockwise from point A to point B.  
  Computer. 30 processes the circular interpolation data associated with the current SEQUENCE to deter [mine the appropriate control signals to be applied to &#39;machine tool 12 in the following mannerrlf the x, y position of the cutting element 14 prior to performing SE- QUENCE B is at point A, as would be the case if the 7, computer 30 were processing the stored SEQUENCES in succession as in the CYCLE sub-mode, then com- If, however. the y position of the cutting element 14 is located elsewhere priorto the selection of SE- QUENCE B, as in the case where SEQUENCE B is selected by the operator following the processing of some &#34;other SEQUENCE in a program, then computer 30 compares that prior relative position of the cutting element 14 to the stored .r, coordinates of the SE- &#39;QUENCE B and SEQUENCE A. If the current x, y position of the cutting element 14 is within a first region I (region I in FIG. 4) bounded by a line segment R, ex-  
 tending from the center of the circle (as defined by the circular interpolation data) and passing through the x,  
  y coo rdinates of point B and bounded by a second line segment R extending from the center of the circle passing through the coordinates of point A, and including the circular path, then computer 30 is effective to.  
 generate the appropriate control signals to direct the relative position of cutting element 14 along a radial line segment extending from the center of the circle to the prior x, y position of the cutting-element untilthe position of the cutting element reaches the circle.  
 I &#39;j Thereafter the relative position-of element 14 is along the circular path having the stored radius and center and terminating at thepoint B. As shown in FIG. 4, the  
 first region includes the area bounded bythe line segments R and R and including circular pathC. Thus,  
  for example, from a point 8,, the cutting element would approach point B along line segment R until reaching I circular path C, after which cutting element 14 would approach point B along path C.  
 If the current 2:, y positionof the cutting element is 7 in .a second region (region II of FIG. 4) defined to include the set of points bounded by the line segment R from the circle center and passing through point A and bounded by the perpendicular bisector P of the chord connecting points A and&#39;B, and not including the first region, computer&#39;30 is effective to generate control signals to direct cutting element 14 to first approach point A and thereafter follow circular path C to point B.&#39;As shown in FIG. 4, from point S cutting element 14 would proceed directly to point A along line segment S A and thereafter proceed alongcircular path C until reaching point B.  
 less of the circular interpolation data. Thus, from point S;;, cutting element 14 would approach point B directly 7 I along the line segment 5 B. v  
  In an alternative embodiment, the processing associated with a current circular interpolation SEQUENCE may differ in that the computer 30 may compare the current y coordinates of the cutting element 30 with.  
 the data stored in association with the current SE-g QUENCE. Otherwise, the cutting element is directed along astraig ht line path from its current coordinates to the x, y coordinates associated with the current SE- QUENCE.  
 TOOL OFFSET CONTROL TOOL OFFSET control provides the operator with the option of programming for each SEQUENCE a correction factor in the cutting element x, y (or z) coordinates to offset wear of the cutting edge during machining operations without requiring the operator to, perform extensive reprogramming. A X-Y SE- QUENCE having tool offset data associated&#39;therewith may best be understood in conjunction with FIGS. 5a and b (showing the v plane with reference to coordinate axes l8) and the following examples. It will be assumed that a stored program includes the sequential X-Y SEQUENCES associated with spatial points C, D, E, F, and G, hereinafter denoted SEQUENCE QSE- QUENCE D, SEQUENCE E, SEQUENCEF, and SE- QUENCE G, respectively. f  
 When performing SEQUENCES C, D, E, F, and G in the RUN mode, when those SEQUENCES have no tool offset data associated therewith, computer. 30 generates the appropriate control signals to direct cutting el-.  
 ement 14 along the path shown in FIG. 5a between points C, D, E, F, and G. This path comprises the line segments (as defined by their endpoints) CD, DE, EF, and then FG. v  
  If, for example, the operator programs SEQUENCE F to be left offset by amount L then in. the RUN mode computer 30 directs element 14 to follow the path shown in FIG. 5a between points C, D, E, E,, F,, F and G while sequentially performing the correspsonding SEQUENCES C through G. This path comprises line segments ,(asdefined by their endpoints) CD, DE, EE E F FF and FG. It will be noted that the new path, which is nominally between points E and F, i.e., E,F is offset to the left(as referenced to the direction of motion along original path EF) by an amount