Abstract:
A numerically controlled machine tool system which is responsive to a succession of stored data sequences to control the position of a cutting element with respect to a workpiece affixed to a workpiece positioning table. Each data sequence is associated with a point on a desired workpiece contour and includes data representative of a desired offset path which is parallel to and offset from a direct path of a selected type which intersects that point. During the machining mode of operation, the system determines a path segment for the cutting element to follow in association with a selected current sequence. For the current sequence, the system addresses only sequences in a contiguous group of sequences that includes the current sequence, and that relates to an identified portion of the desired workpiece contour. The system considers that contiguous group of sequences as forming an endless loop wherein the last sequence of the group precedes the first sequence of the group. For a current sequence, the system looks ahead to the next subsequent sequence and looks behind to the next previous sequence, determines offset paths associated with those sequences (in accordance with the offset data stored in association with the respective sequences), identifies the point of intersection of those offset paths, and then controls the cutting element to this intersection point. This operation is repeated in the machining mode of operation for each sequence in succession as the respective ones of the sequences become the current sequence, thereby permitting automatic cutting element path control together with desired selection offset values for use with individual machining operations.

Description:
REFERENCE TO RELATED PATENT AND APPLICATIONS 
     The present application is related to U.S. Pat. No. 3,878,983 to Samuel M. Hamill III and James C. Kilbane, issued Apr. 22, 1975, and to U.S. Patent Application Ser. No. 652,143 of Samuel M. Hamill III, James C. Kilbane, filed Jan. 26, 1976 now U.S. Pat. No. 4,135,238, and U.S. Patent Application Ser. No. 688,891, of Samuel M. Hamill III, James C. Kilbane and Stanley F. Zamkow, filed May 21, 1976 and now U.S. Pat. No. 4,135,239. The above-referenced patent and application are incorporated by reference into the present application. 
     BACKGROUND OF THE INVENTION 
     This invention relates to numerically controlled machine tool systems, and more particularly, to numerically controlled machine tool systems having programmable tool offset. 
     Many machine tools, such as grinding machines and milling machines, include a workpiece positioning table and a rotating cutting element, with the cutting element having a cutting surface laterally disposed about the rotational axis of the cutting element. In operation, a workpiece is affixed to the positioning table. The machine tool controls the relative motion of the cutting element rotational axis with respect to the workpiece so that the cutting element is offset from a desired workpiece by the cutting element radius, establishing a contact point between the cutting surface and the desired contour. The motion of the cutting element is typically controlled so that the contact point lies in a plane perpendicular to the rotational axis of the cutting element. As the cutting element wears, its decrease in radius must be accommodated in order to maintain a contact point with the desired contour. 
     In addition to the effect of cutting element wear, various cutting elements exhibit differing cutting efficiencies, depending upon the cutting element material, the workpiece material, or the dynamics (such as direction-related efficiencies) of the cutting element driving servos. As a result of all of these factors, the establishing of control of the cutting element axis to achieve a desired workpiece contour is a complex problem. 
     A numerically controlled machine tool operator, or programmer, may work from a drawing of a part to be machined which defines edge points on a workpiece. Typically, the operator must generate data signals for the machine tool which define a desired path for the cutting element with respect to the workpiece so that the cutting surface of the cutting element includes a contact point in common with the desired workpiece contour at each of the points defined in the drawing, or other specification of the workpiece. 
     In one prior art approach to this programming procedure, the operator may calculate the location of points with respect to the workpiece which are offset from the desired workpiece contour by the current radius of the cutting element. By generating an appropriate number of these desired cutting element path points, and controlling the cutting element axis to follow that path, the workpiece may be machined to the desired contour. This approach requires substantial operator effort to work from the drawing and from the known cutting element radius to determine the precise points for that cutting element path. 
     In an alternative approach, a numerically controlled machine tool system may require the operator only to program in the coordinate values representative of selected points on the desired contour of the workpiece, together with a desired offset which the cutting element is to be displaced in a predetermined direction from the path defined by the programmed desired contour points. This approach is, of course, a much simpler task for the operator to perform compared with the previously mentioned approach wherein the operator must compute the actual offset path for the cutting element. In the latter approach, the machine tool system includes a computing apparatus which performs the necessary calculations to generate appropriate signals for directing the cutting element along the offset path. However, in this latter approach, the prior art systems are suitable only for providing a single offset value for complete programming machine tool operation. While this approach is effective for relatively short machining sequences and for sequences wherein the machine cutting is achieved with equal facility in different directions, there are substantial disadvantages in applications where it is desired to accomplish a series of different machining operations having different offset values. 
     In addition, many conventional machine tool systems are characterized by different efficiencies in different directions, for example, cutting along a first axis may be performed with one degree of efficiency while cutting along a second axis perpendicular to the first axis may be characterized by a somewhat different efficiency. In such cases, the prior art systems requiring a single offset value to be programmed for a set of operations are not suitable for these applications. 
     In some applications of machine tool systems, it is required to provide a milling or grinding operation along portions of a workpiece contour which may be characterized as locally convex, i.e. where interconnecting straight line segments for three successive points on the workpiece contour are defined by an angle exterior to the workpiece which is greater than 180 degrees. In some applications, the desired contour connecting three successive points A 1 , A 2  and A 3  defining a locally convex contour is characterized by a piecewise continuous, or step, first derivative at point A 2  (for example, where the contour for A 1 , A 2  and A 3  is piecewise linear, or where the contour is formed by two circular arcs of differing radius and intersecting at A 2 , or where the contour is formed by a straight line segment and a circular arc intersecting at A 2 ). Using the conventional approach to perform such operations for points A 1 , A 2  and A 3 , the cutting element is controlled with respect to the workpiece so that the cutting element axis is directed along a first offset path substantially parallel to a first line segment joining points A 1  and A 2  (and which is offset from that line segment by the cutting element radius) to an intermediate point along that first path which is sufficiently beyond the point A 2  so that the cutting element axis may then be controlled to pass along a second offset path substantially parallel to a second line segment joining points A 2  and A 3  (and which is offset from that second line segment by the cutting element radius). With this approach, the line segments and corresponding offset paths may be either straight or curved. 
     In these cases, as the cutting element axis approaches the neighborhood of the intermediate point (corresponding to the intersection of the first and second offset paths), the cutting surface is separated from the desired workpiece contour (as defined by points A 1 , A 2  and A 3 ) and thus the cutting element does not at all times maintain a contact point with the desired workpiece contour. As a result, in these applications, there is an inefficiency in time utilization in requiring the cutting element to travel while not maintaining a contact point with the workpiece. 
     A further disadvantage to this prior art technique arises when the cutting element is required to machine a workpiece at two points simultaneously, for example, when grinding a slot or groove. Where the desired slot or groove has a locally convex boundary that follows a curve having a piecewise continuous first derivative at one or more points, the above-noted approach requires that the cutting element cut a substantial amount of excess material from the side of the groove opposite to the locally convex portion while the cutting element is in the neighborhood of the intermediate point along the offset path. An alternative prior art approach to machining such a slot or groove is to program a circular motion for the cutting element axis at the locally convex portions. While this latter approach does reduce the requirement for the excess material cutting, the resultant groove has a smoothed contour at the step derivative points, rather than a sharp edge which may be achieved by the first noted approach of overshooting and then returning along a second line segment. 
     Accordingly, it is an object of the present invention to provide a numerically controlled machine tool system having a tool offset capability wherein selected points on a desired workpiece contour may be programmed for individually tailored offset characteristics. 
     A further object is to provide a numerically controlled machine tool system which may automatically accommodate programmed machining operations, with each machining operation having a characteristic tool offset. 
     Still another object is to provide a numerically controlled machine tool system which may accommodate sharp corner machining operations with minimum material cutting requirements. 
     SUMMARY OF THE INVENTION 
     Briefly, the present invention provides a numerically controlled machine tool system which controls the position of a cutting element with respect to a workpiece affixed to a workpiece positioning table. The relative position of the cutting element is controlled in response to a succession of stored data sequences. Each data sequence is associated with a point on a desired workpiece contour and includes data representative of a selected path type for the cutting element to approach the associated contour point, for example, straight line or circular. Each sequence further includes offset data representative of a desired offset path which is parallel to and offset from a direct path of the selected type which intersects that point. The offset data is representative of a magnitude and a direction for the offset of the offset path. 
     In one form of the invention, each sequence additionally includes data representative of the type of that sequence, with each sequence being either a start/stop type or an intermediate type. The start/stop type sequence denotes the first of a contiguous group of sequences where the associated spatial points of that group of sequences define a shape. The remaining sequences in that contiguous group are intermediate type sequences. The associated points of the workpiece contour associated with the contiguous group define a shape, with the shape being a closed shape when the points associated with the first and last sequences in the group are identical, and the shape being an open shape otherwise. 
     In this form of the invention, each of the sequences may be successively selected as a current sequence during a run or machining mode. During the machining mode of operation, the system determines a path segment for the cutting element to follow in association with the current sequence. For the current sequence, the system effectively considers only sequences in the contiguous group that includes the current sequence, and considers those sequences as forming an endless loop wherein the last sequence of the group precedes the start/stop sequence of the group. For a current sequence, the system effectively looks ahead to the next subsequent sequence (i.e. following the current sequence in the contiguous group) and looks behind to the next previous sequence (i.e. preceding the current sequence in the contiguous group), determines offset paths associated with those sequences (in accordance with the offset data stored in association with the respective sequence), identifies the point of intersection of those offset paths, and then controls the cutting element to this intersection point. This operation is repeated in the machining mode of operation for each sequence in succession as the respective ones of the sequences become the current sequence, thereby permitting automatic cutting element path control together with desired selection offset values for use with individual machining operations. 
     In accordance with another aspect of the invention, a machine tool system may control a cutting element with respect to a workpiece in the manner maintaining a contact point on a locally convex portion of a desired workpiece contour at all times, even when the desired contour is characterized by a piece-wise continuous first derivative. To perform this operation, the system requires a succession of four data sequences associated with three successive points (A 1 , A 2  and A 3 , respectively) which define a locally convex portion of the desired contour. The four data sequences include coordinate data representative of the spatial points A 1 , A 2 , A 2  and A 3 , respectively, offset data representative of the radius of the cutting element and an offset direction, path data for the third of the four data sequences which defines a circular path having a center at point A 2  and a zero radius, and path data for the first, second and fourth of the four data sequences defining either a straight line or circular path. 
     In this form of the invention, each of the for data sequences may be successively selected as a current sequence during the machining mode. In response to the selection of the first sequence as the current sequence, the system positions the cutting element axis to a first point I 1  lying along a first offset path which is parallel to a line segment connecting the points A 1  and A 2 , and offset from that line segment by the radius of the cutting element. In response to the selection of the second sequence as the current sequence, the system controls the cutting element axis to pass along the first offset path until reaching the intersection point I 2  of that first offset path and a line segment extending from A 2  and which is perpendicular to the line segment connecting points A 1  and A 2  at point A 2 . 
     In response to the selection of the third sequence as current sequence, the cutting element contact point is maintained at point A 2  and the cutting element is effectively rotated at about that point so that its axis passes from point I 2  to a point I 3  which is at the intersection of a second offset path (which is parallel to a line segment connecting the points A 2  and A 3  and offset from that line segment by the radius of the cutting element) and a line segment extending from A 2  which is perpendicular to the line segment connecting points A 2  and A 3  at point A 2 . In response to the fourth sequence, the cutting element axis is controlled to pass from point I 3  and along the second offset path. 
     In accordance with this aspect of the invention, the cutting element effectively produces a sharp corner at the point of discontinuity of the first derivative of the workpiece contour. Furthermore, the machining time is minimized compared to the prior art techniques due to the reduction in distance that the cutting element must travel while precisely following the locally convex portion of the contour. In addition, in cases where the cutting element is required to cut two contours at once, as in a groove or slot, the amount of material required to be cut is minimized, permitting relatively high productivity compared to that of the prior art. 
    
    
     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 shows in block diagram form a machine tool and interface section for the system of FIG. 1; 
     FIG. 3 shows a plan view of a portion of the operator control panel for use with the operator control/programming station of FIG. 1; and 
     FIGS. 4-6 show exemplary trajectories of the relative motion of the cutting element of FIG. 1 in response to an exemplary succession of data sequences. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     The presently-described embodiment includes the system described in the above-referenced U.S. Pat. No. 3,878,983, incorporated by reference herein. Accordingly, FIGS. 1-3 from that patent are incorporated as FIGS. 1-3 of this application to depict portions of the preferred embodiment. Reference numerals used for identifying various components of the referenced patent are used herein to identify corresponding components of the present embodiment. 
     The preferred embodiment of the means for determining the offset paths from stored data sequences of the present invention, and the cutting element driving means responsive thereto, is incorporated in the embodiment of FIGS. 1-3. Alternatively, that means may be incorporated with other forms of prior art systems, for example, systems which control cutting element relative motion in response to stored data sequences programmed by way of a keyboard data entry means, or the like, or by way of operator controlled cutting element positioning operations. 
     The embodiment illustrated in FIG. 1 is that of a milling or a grinding machine tool as connected to the control means of the present invention. In this particular embodiment, the workpiece positioning table 16 may be translated in the horizontal X-Y plane, while the cutting element 14 is arranged to rotate about a vertical axis perpendicular to that X-Y plane and to reciprocate along that vertical axis in the Z direction. In addition, the table 16 may be rotated about the Z axis. In other embodiments, the table 16 may be configured to be rotated about the X or Y axes. Of course, as noted in the incorporated reference patent and applications, still other machine tools may be embodied in accordance with both the prior invention and with the present invention. 
     In the presently-described embodiment, all the components of the embodiment of FIGS. 1-3 may be the same as those in the incorporated reference, including: integrated circuits (flip-flops, shift registers, counters and logic gates), resistors, capacitors, push button and thumb wheel switches, indicator lamps and display devices. These devices are configured in a well-known manner to perform the functional operations described below and in the incorporated references. More particularly, as with the embodiment of the referenced patent, interface circuits associated with computer 30 are configured in accordance with the well-known interface techniques described in the Digital Equipment Corporation&#39;s PDP-8/L User&#39;s Handbook. 
     The digital computer 30 for the present embodiment of this invention is programmed in accordance with the computer program set forth in Appendix I to this application, providing features described in the incorporated reference patent and applications. In addition, the computer 30, when so programmed, includes a specific portion of the random access memory of memory section 35 dedicated to provide the means for controlling the functional operation of the system in accordance with the present invention. This specific portion of the memory section 35 includes memory cells set to binary states that are not changed during normal operation of the system. This portion of the memory in effect is hardwired, and may in alternative configurations be replaced by an equivalent point-to-point wired matrix panel or by a read-only memory, having the same interconnection pin configuration as the random access memory portion of section 35. In operation, this specific portion of the memory section 35 interacts with the remainder of the system, in a conventional manner, to implement the cutting element path determining functions of the invention. 
     In this form of the invention, the memory section 35 also stores an ordered succession of data sequences, entered by an operator, for example, by keyboard, tape, or manual positioning operations. The sequences may be two coordinate or one coordinate sequences for defining cutting element motion in a plane or direction, respectively. While in the present embodiment, the two coordinate sequences define motion in the X-Y plane and the one coordinate sequences define motion in the Z plane, other embodiments of the present invention may readily provide motion definition in alternative planes and axes. In operation, in the run mode, the computer 30 controls the motion of cutting element 14 along a path defined by one sequence at a time from the succession of stored sequences which may include interleaved two and one coordinate sequences, as described more fully in the incorporated references. The present invention relates to cutting element motion control in a plane, and so in the following description, the described sequences are two coordinate sequences unless explicitly stated to be one coordinate sequence. 
     In the present embodiment, each stored sequence includes identification data representative of the relative position of that sequence in the ordered succession, coordinate data representative of an associated spatial point measured with respect to the positioning table 16, and path data representative of a selected path type for the cutting element 14 to approach its associated spatial point. Each sequence also includes offset data and sequence type data. The offset data is representative of an offset path which is parallel to and offset from a direct path of the selected type which intersects the spatial point associated with the sequence, where the offset data is representative of a magnitude and direction for the offset of the offset path. The sequence type data representative of the type of the sequence, where a sequence is defined to be start/stop type when the sequence is the first of a contiguous group of sequences in the succession, which is terminated by the sequence immediately preceding the next start/stop type sequence in the succession and where the sequence is defined to be an intermediate type when it is one of the other sequences in the contiguous group. In the present embodiment, the offset data and sequence type data are related so that the start/stop sequences include offset data representative of a zero offset, and intermediate type sequences include offset data representative of some finite offset. In alternative systems, the start/stop and intermediate type sequences may be distinguished by a specific data word associated with the respective sequences. 
     With this data sequence format, the associated spatial points of each of said contiguous group define a shape, where the shape is a closed shape when the spatial points associated with the first and last sequences in the group are identical, and where the shape is an open shape otherwise. 
     In the run mode, the computer 30 selects one of said succession of sequences as a current sequence, and then, in conjunction with the path determining portion of memory section 35, determines a tool path to be followed by said cutting element 14 for that current sequence comprising a line segment extending from the current coordinates of the cutting element to a final point. 
     When the current sequence is a start/stop type, and the shape defined by the contiguous group including the current sequence is open, the final point is defined by the intersection of an offset path defined by the next subsequent sequence and a straight line segment. The offset path is uniformly separated from a direct path which connects the spatial points associated with the current and next subsequent sequences, and which is the type specified by the path data of the next subsequent sequence, with the separation being in accordance with the offset data of that next subsequent sequence. The straight line segment is perpendicular to the direct path at the spatial point associated with the current sequence. 
     When the current sequence is a start/stop sequence and the shape defined by the contiguous group is closed, the final point is defined by the intersection of a first offset path defined by the next subsequent sequence and a second offset path defined by the last sequence in the contiguous group including the current sequence. The first offset path is uniformly separated from a first direct path which connects spatial points associated with the current and next subsequent sequences and which is the type specified by the path data of the next subsequent sequence, with the separation being in accordance with the offset data of that next subsequent sequence. The second offset path is uniformly separated from a second direct path which connects the spatial points associated with the last and next to last sequences of the contiguous group of the current sequence, and which is the type specified by the path data of the last sequence in the contiguous group, with the separation being in accordance with the offset data of that last sequence. 
     When the current sequence and the next subsequent sequence are intermediate types, the final point is defined by the intersection of a first offset path defined by the current sequence and a second offset path defined by the next subsequent sequence. The first offset path is uniformly separated from a direct path which connects the spatial points associated with the current and next previous sequences and which is the type specified by the path data of the current sequence in accordance with the offset data of that current sequence. The second offset path is uniformly separated from a direct path which connects the spatial points associated with the current and next subsequent sequences, and which is the type specified by the path data of the current sequence in accordance with the offset data of the next subsequent sequence. 
     When the current sequence is an intermediate type and the next subsequent sequence is a start/stop type, and the shape defined by the contiguous group including the current sequence is open, the final point is defined by the intersection of an offset path defined by the current sequence and a straight line segment. The offset path is uniformly separated from the direct path which connects the spatial points associated with the current and next previous sequences, and which is of the type specified by the path data of the current sequence with the separation in accordance with the offset data of that current sequence. The straight line segment is perpendicular to the direct path at the spatial point associated with the current sequence. 
     When the current sequence is an intermediate type, and the next subsequent sequence is a start/stop type, and the shape defined by the contiguous group including the current sequence is closed, the final point is defined by the intersection of a first offset path defined by the current sequence and a second offset path defined by the first intermediate sequence of the contiguous group including the current sequence. The first offset path is uniformly separated from a direct path which connects the spatial points associated with the current and next previous sequences, and which is of the type specified by the path data of the current sequence in accordance with the offset data of the current sequence. The second offset path is uniformly separated from a direct path which connects the points associated with the current and first intermediate sequence of the contiguous group, and which is of the type specified by the path data of that first intermediate sequence in accordance with the offset data of that first intermediate sequence. 
     Following the determination of the tool path for each sequence, the computer 30 controls the relative motion of the cutting element 14 along that path in the same manner as described in conjunction with the incorporated references. 
     FIG. 4 shows two exemplary piecewise linear workpiece contours: the first defined by the direct path straight line segments 490 (connecting points A 1  and A 2 ) and 492 (connecting points A 2  and A 3 ), and the second defined by the direct path straight line segments 494 (connecting points A 4  and A 5 ), 496 (connecting points A 5  and A 6 ), and 498 (connecting points A 6  and A 7 ), where points A 4  and A 7  are identical. FIG. 4 also shows an initial point A 0  and a final point A 8  for the cutting element. In this example, it is desired that the cutting first pass from point A 0  to an intermediate point I 1  without offset and then along a path offset by Δ 2  to the left of the direct path 490 and then pass along a path offset by Δ 3  to the left of direct path 492, and then to an intermediate point I 4  without offset and thereafter pass along a path offset by Δ.sub. 5 to the right of direct path 494, pass along a path offset by Δ 6  to the right by an increment of direct path 496, and pass along a path offset by Δ 7  to the right of direct path 498, before finally passing to the point A 8  without offset. 
     Table I illustrates an exemplary set of partial data sequences suitable for performing this operation with the present embodiment. Each sequence is identified with ordered sequence number data, coordinate point data representative of one of the coordinate points A 1  through A 8 , a sequence type data, either start/stop (S/S) or intermediate (I), offset data having magnitude and direction either left (L) or right (R), and path type data, which in this example is denoted by ST, representing straight line paths. In accordance with the present invention, the sequences 1 through 7 form two contiguous groups set off by start/stop sequences (i.e. sequences 1 and 4) with the first group defining an opening shape (since the initial and final points of the shape defined by A 1 , A 2 , A 3  are not identical) the second group defining a closed shape (since the initial and final points of the shape defined by A 4 , A 5 , A 6 , A 7  are identical). The sequence 8 is assumed to be the first sequence of another contiguous group defining a subsequent shape to be machined. 
     
                       TABLE I______________________________________SEQ    COORD     SEQ      OFFSET     PATHNO     PT        TYPE     MAG    DIR   TYPE______________________________________1      A.sub.1   S/S      O      --    ST2      A.sub.2   I        Δ.sub.2                            L     ST3      A.sub.3   I        Δ.sub.3                            L     ST4      A.sub.4   S/S      0      --    ST5      A.sub.5   I        Δ.sub.5                            R     ST6      A.sub.6   I        Δ.sub.6                            R     ST7      A.sub.7   I        Δ.sub.7                            R     ST8      A.sub.8   S/S      0      --    ST______________________________________ 
    
     In operation, in response to the selection of sequence 1 as the current sequence in the run mode, the cutting element 14 is directed along a direct path (denoted by arrow 500) to the point I 1  at the intersection of the offset segment 502 (which is parallel to and offset by Δ 2  to the left of direct path 490) and line segment 506 (which is perpendicular to the direct path 490 at point A 1 ). When sequence 2 is selected as the current sequence, the cutting element is directed to the point I 2  defined by the intersection of line segment 502 and line segment 510 (which is parallel to and offset by Δ 3  to the left of the direct path 492). When the cutting element 14 is located at point I 1  at the time sequence 2 is selected as the current sequence, the cutting element passes from I 1  to point I 2  along the path denoted by arrow 512. When the sequence is selected as the current sequence, the cutting element is directed to a point I 3  defined by the intersection of line segment 510 and line segment 514 (which is perpendicular to the direct path 492 at point A 3 . When cutting element 14 is located at point I 2  at the time sequence 3 is selected as the current sequence, the cutting element passes from point I 2  to point I 3  along the path denoted by arrow 516. 
     When sequence 4 is selected as the current sequence, the cutting element 14 is directed without offset from its current location to point I 4  defined by the intersection of offset paths 520 and 524, parallel to direct paths 494 and 498 respectively. When cutting element 14 is located at point I 3  when sequence 4 is selected as the current sequence, the cutting element passes from point I 3  to point I 4  along the path denoted by arrow 518. Furthermore, for the operation when the respective ones of sequences 5, 6, 7 and 8 are selected as current sequence, the cutting element 14 is directed to intermediate points I 5 , I 6  and I 7 , respectively. When these sequences are selected in succession following sequence 4, the cutting element follows the path denoted by arrows 520, 522, 524 and 526. The points I 5 , I 6 , I 7  and A 8  for these path segments are determined in accordance with the offset and path type data associated with the respective sequences in a manner similar to those noted above. 
     Accordingly, with this form of the present invention, each of the path segments for cutting element 14 may be separately adjusted to provide an individual offset from the associated direct path. In applications wherein a plurality of contour portions are to be machined such as those defined by the two contiguous groups of the above-noted example, the present system provides a means for automatically computing the cutting element offset path for performing these machining operations, as well as for controlling the movement of the cutting element between the respective machining operations without offset (e.g. path 518 in FIG. 4). With respect to controlled motion between machining operations, it should be noted that generally there would be no offset associated with such motion. Accordingly, in the present embodiment, a zero value for the offset magnitude data of a sequence denotes that sequence as a start/stop sequence, while finite value offset magnitude data denotes that sequence as an intermediate sequence. 
     FIG. 5 illustrates another exemplary tool path for machining a complex contour associated with a pair of discs 530 and 532 (having radius R 0  and center points O 1  and O 2 ) coupled by a web 534 (having width W and being symmetrically disposed about the line segment connecting the points O 1  and O 2 ). FIG. 5 also shows an initial point A 0  and a final point A 4  for the cutting element. Table II illustrates a succession of sequences suitable for generating this contour with a cutting element 14 having a radius r. 
     Table II shows an exemplary set of sequences suitable for controlling this machining operation. Sequences 1-6 are a contiguous group which define the cutting element path from a general point A 0  along straight line path segment denoted by arrow 540 to point I 1  (sequence 1), and then to point I 2  along offset circular path segment denoted by arrow 542 (sequence 2), to point I 3  along offset straight line path segment denoted by arrow 544 (sequence 3), to point I 4  along offset circular path segment denoted by arrow 546 (sequence 4), to point I 5  along offset straight line path segment denoted by arrow 548 (sequence 5), and to point I 6  along offset circular path segment denoted by arrow 550 (sequence 6). The circular path sequences are denoted as such by the circular interpolation path type designation CI, together with data representative of the center point radius and clockwise/counter-clockwise (CW/CCW) direction data. Sequence 7 defines the cutting element path to point A 4  along straight line path segment denoted by arrow 552, which may lead to the next shape to be machined. 
     
                                           TABLE II__________________________________________________________________________SEQ COORD SEQ  OFFSET   PATHNO  PT    TYPE MAG  DIR TYPE CTR RAD  DIR__________________________________________________________________________1   A.sub.1     S/S  0    --  ST   --  --   --2   A.sub.2     I    r    R   CI   0.sub.1                            R.sub.0                                 CCW3   A.sub.3     I           ##STR1##               R   ST   --  --   --4   A.sub.3     I    r    R   CI   0.sub.2                            R.sub.0                                 CCW5   A.sub.2     I           ##STR2##               R   ST   --  --   --6   A.sub.1     I    r    R   CI   0.sub.1                            R.sub.0                                 CCW7   A.sub.4     S/S  0    --  ST   --  --   --__________________________________________________________________________ 
    
     accordingly, with the present invention, the complex contour illustrated in FIG. 5 may be machined with only six sequences (since sequence 7 may be considered to be the first sequence of another shape), which require only specification of the cutting element radius and location of the desired workpiece contour (e.g. as specified by points A 1 , A 2 , A 3 ). The remaining information may be readily utilized by an operator from a drawing of the part to be machined together with appropriate offset data, so that the system may determine the path as shown in FIG. 5. 
     FIG. 6 illustrates the cutting element movement for a cutting element (having radius r) for machining a locally convex, piecewise workpiece contour defined by the direct path line segments 556 (connecting points A 1  and A 2 ) and 558 (connecting points A 2  and A 3 ). FIG. 6 also shows an initial point A 0  and a final point A 4  for the cutting element. Table III shows an exemplary set of sequences suitable for controlling this machining operation with the present embodiment. Sequences 1-4 define the cutting element offset path from a general point A 0  along straight line segment denoted by arrow 560 to point I 1  (sequence 1), and then to point I 2  along offset straight line path segment denoted by arrow 566 (sequence 2), to point I 3  along offset circular path segment denoted by arrow 570 (sequence 3), to point I 4  along offset path segment denoted by arrow 574 (segment 4). Sequence 5 defines the cutting element path to point A 4  along straight line path segment denoted by arrow 582 (sequence 5), which may lead to the next shape to be machined. 
     
                                           TABLE III__________________________________________________________________________SEQ COORD SEQ  OFFSET   PATHNO  PT    TYPE MAG  DIR TYPE                       CTR RAD DIR__________________________________________________________________________1   A.sub.1     S/S  O    --  ST  --  --  --2   A.sub.2     I    r    R   ST  --  --  --3   A.sub.2     I    r    R   CI  A.sub.2                           O   CCW4   A.sub.3     I    r    R   ST  --  --  --5   A.sub.4     S/S  O    --  ST  --  --  --__________________________________________________________________________ 
    
     The following operations are performed when in response to the successive selection of sequences 1-5 as current sequences in the run mode. When sequence 1 is selected as the current sequence, the cutting element 14 is directed to the point I 1  (where point I 1  is defined by the intersection of the line segment 562 which is parallel to and offset by r from the direct path 566) and the line segment 564 (which is perpendicular to direct path 566 at point A 1 . When sequence 2 is selected as the current sequence, the cutting element is directed from point I 1  along path 562 (arrow 566) to point I 2 . Point I 2  is defined by the intersection of the offset path 562 and the offset path 568 associated with sequence 3. Since sequence 3 defines a circular path having zero radius with an offset r and a center at point A 2 , then the point I 3  is located on the circular line segment 568 which is a circle of radius r about point A 2 . Accordingly, point I 2  is the tangent point of circular segment 568 with line segment 562. 
     When sequence 3 is selected as the current sequence, the cutting element is directed from point I 2  to point I 3  along the portion of segment 568 denoted by arrow 570. Point I 3  is defined in a similar manner as point I 2  and, more particularly, by the intersection of the offset path 572 associated with sequence 4 (whereline segment 572 is parallel to an offset by r from the direct path 558) with the circular line segment 568. When sequence 4 is selected as the current sequence, the cutting element is directed from point I 3  along path 572 (arrow 574) to point I 4  (which is defined as the intersection of line segment 572 and line segment 584 (which is perpendicular to direct path 558 at point A 3 ). When sequence 5 is selected as the current sequence, the cutting element is directed from point I 4  along the path denoted by arrow 584. 
     Accordingly, in this example, the composite cutting element path established by sequences 1-4 is denoted by arrows 560, 570, 574 and 582. With this cutting element path, the cutting element effectively maintains a point in contact with the desired workpiece contour between points A 1  and A 2 , and then, while maintaining that contact point, rotates about point A 2  and then continues along the desired contour while maintaining a contact point between the points A 2  and A 3 . In this configuration, the resultant contour on the locally convex portion defined by points A 1 , A 2  and A 3  has a piecewise continuous derivative at point A 2 . As noted above, in order to achieve such a contour in the prior art, it would be necessary for the cutting element to pass along path 562 to the intersection point 588 of path 562 and path 572 before continuing on path 572 toward point A 3 . Under such circumstances, the cutting element passes a somewhat longer path than that for the present invention since the point 588 is bypassed in the present invention by the path 570. Furthermore, in contrast to the prior art systems, the present system maintains a contact point at all times between the cutting element and the workpiece contour, even when the cutting element is in the vicinity of point 588. 
     Furthermore, in applications where it is desired that the cutting element cut a groove while maintaining two contact points with the workpiece, the present invention may control the cutting element in the manner described in conjunction with FIG. 6 to machine the groove defined on one side by line segments 556 and 558 and on the other side by straight line segments 590 and 594 and circular line segment 592. This path for the cutting element provides a minimum material cutting requirement and path length. In contrast, the prior art systems require passage along the longer path 562 to point 580 before continuing along path 572. In the latter case, the cutting element must cut considerably more material than in the former case, with the excess material denoted in FIG. 6 by the shaded area. 
     In accordance with another aspect of the present invention, a portion of memory section 35 is adapted to permit an operator in the program-edit mode to readily generate and store a new set of n sequences which are substantially identical to a previously stored set of n sequences except for the offset magnitude data. 
     In one form, the offset magnitude data for each intermediate type sequence in the newly-generated set is changed to a selected new value, with the new sequences being the same as the corresponding original sequences otherwise. For the present embodiment, as augmented by a data format control 222 such as described in the referenced applications, the operator may achieve this operation by selectively activating controls 46, 54, 56, 101, 103, 105, 134, 136, and 222. 
     In a second form, the offset magnitude data for each intermediate type sequence in the newly-generated set is changed to a new value which differs from the offset magnitude value of the corresponding original sequence by a selected increment, with the new sequences being the same as the corresponding original sequences otherwise. For the present embodiment, as augmented by a data format control 224 such as described in the referenced applications, the operator may achieve this operation by selectively activating controls 46, 54, 56, 101, 103, 105, 134, 136, and 224. 
     Subsequently, when selected as a current sequence in the run mode, each of these new sequences is transformed to appropriate cutting element drive signals in the same manner as any other sequence. 
     As a result of this feature, an operator may work with an existing set of sequences for controlling a machining operation (which may comprise one or more shapes, either open or closed), and generate related new sequences, for finishing operations for example, by simply adjusting the offset data along, while maintaining the sequences otherwise unchanged. Since only the intermediate sequences are changed, there is no requirement that the operator manually tailor the various sequences, even those which control cutting element motion between shapes (i.e. start/stop sequences). In response to the selection of these new sequences as current sequences in the run mode, the cutting element is automatically controlled to pass in a path based on the amended offset data. 
     The invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. The present embodiments are therefore to be considered in all respects as illustrative and not restrictive, the scope of the invention being indicated by the appended claims rather than by the foregoing description, and all changes which come within the meaning and range of equivalency of the claims are therefore intended to be embraced therein. ##SPC1## ##SPC2## ##SPC3## ##SPC4## ##SPC5## ##SPC6## ##SPC7## ##SPC8## ##SPC9## ##SPC10## ##SPC11## ##SPC12## ##SPC13## ##SPC14## ##SPC15## ##SPC16## ##SPC17## ##SPC18## ##SPC19## ##SPC20## ##SPC21##