GENERATION OF MEASUREMENT PROGRAM IN NC MACHINING AND MACHINING MANAGEMENT BASED ON THE MEASUREMENT PROGRAM

Abstract: A method and apparatus for NC machining management based on a measurement program, wherein a machining shape at an arbitrary machining stage is determined by an NC program, a geometric element or a geometric model is generated, and a measurement program is generated on the basis of the geometric model. The measurement program is executed when at least one of the steps of the NC program is completed, and the results of measurement are used as control information for machining measurement.

Description: Field of the Invention The present invention relates to generation of a measurement program used in NC machining and machining management carried out using the measurement program. More specifically, in NC machining carrying out a variety of machining control using numerical control information, the present invention relates to an improved method and device for generating a measurement program from an NC program used in actual machining, and also for machining management based on a measurement result obtained by executing the generated measurement program. In the present invention, a measurement program as described above is generated at any time regardless of whether or not an NC program is on a run. The measurement program has generality so that it can be used at any time not only for machining which is being carried out but also for machining using another machine tool. When an NC program is modified, the measurement program can also be modified based on the modified program. Background of the Invention A numerically controlled machine tool can automatically control an operation of a machine tool by inputting an NC program. Recently, a numerically controlled machine tool has been in wide use in a variety of industrial fields as a computer numerical control machine tool (CNC machine tool) with a combination of techniques such as microprocessor techniques, power electronics techniques, and software techniques. Usually, individual information such as a tool index command, a main spindle rotation command, a feeding rate command, axis movement/interpolation command, and an auxiliary function command, together with machining history, is incorporated in numerical control information such as an NC program or the like. Numerical control information appropriate for a machine tool to be controlled is thus generated as an NC program. An NC program generated as described above is used for a variety of machining. However, for high quality machining, measurement necessary for machining is carried out on a final machining product or during each machining process. Based on the measurement result, machining control compensation is carried out at a subsequent machining process on a workpiece to be used next or on the workpiece measured. In conventional and primitive measurement, size of parts is measured partially using a simple measurement instrument such as a micrometer or slide calipers, according to a process inspection table. At a final inspection stage, all important portions of parts are measured. If there is a problem in the measurement result, it is fed back to NC machining. Reflection of the measurement result on the machining control has conventionally been carried out by skilled workers with considerable experience through oral communication or memorandum between operators. No real time and automatic reflection of the measurement result has been possible. Furthermore, only limited measurement has been possible using a conventional simple inspection process. Therefore, accurate measurement has been dependent on the final inspection, which leads to a delay in realizing the existence of a problem and lower yield by NC machining. To solve the problems described above, an automatic programming method for measurement has been proposed for reflecting a measurement result on NC machining after sequential automatic measurement using a three dimensional coordinate measurement machine during the NC machining with a measurement program previously generated in each machining process or in a final machining process. According to this conventional technique, regarding measurement itself, it has been possible to perform predetermined measurement quickly and accurately without a skilled operator. However, the conventional automatic programming is carried out by CAD and CAM, through complex processes using material data, final workpiece form data, tool data, and the like. Therefore, the conventional automatic programming can not be used in all NC machining, and it requires a large-scale machine. Moreover, it is rarely usable except for a case where a large number of products are machined using one and the same NC program. Moreover, a measurement program by the automatic programming is generated based on final product form data, especially on a working drawing. Therefore, no measurement program optimal for a workpiece form in an operation element, in a machining element or during a machining process in an arbitrary step during an actual execution of the NC program is provided. The machining element here means a group of operation elements at one machining position of a workpiece. In other words, an operation element means single machining carried out by a tool. For example, it means a single operation such as boring and milling. A machining element means to finish machining through a combination of operation elements on one machining position of a workpiece. For example, in a case of threaded hole drilling, a machining element is defined as a combination of center hole drilling, prepared hole, and tapping. In the present specification, a machining process means a series of all machining operations carried out without a posture change of a workpiece fixed on a machine tool. In a recent NC machining trend, NC programs to be used are as open and flexible as they can possible be. During actual machining, programs are often modified for the sake of an optimal machining method. Each program is made as a module or having more generality so that unrestricted changes in the program are possible. As a result, a conventional machining program determined rigidly by a working drawing can not adapt with each step in a machining process, actual operation elements or machining elements, and therefore can not be made applicable to a recent state of the art NC machine tool. Moreover, recent state of the art NC machining carries out CIM (Computer Integrated Manufacturing) using not only a single machine tool but also a combination of other machine tools. In such a case, a conventional, fixed measurement program can neither be applied to other machine tools nor learn in order to be applicable to other machine tools. JP 5-307407 A discloses a device for generating operation data of an operating machine. This device comprises a processor for generating and storing operation data and a processor for outputting such operation data. JP 6-161533 A is concerned with a control system for a three-dimensional measuring device provided with a gauge bead to move after the surface of a measured object. The route of the gauge head is numerically controlled by a computer. To get workpiece form information a CCD camera is used to photograph the object to be measured and the contour shape of this object is recognized by performing image processing for the output signal of the CCD camera. JP 61-230842 A discloses a machining shape display in electric discharge machining to display 3-dimensionally the shape of a work. Three-dimensional coordinates are computed by decoding a numerically controlled program in electric discharge machining and the computed data are sent to a display program through a motion program. The coordinates are sequentially computed and the newly computed coordinates are also sent through the motion program to the display program so as to draw solid lines joining the individual points to be displayed according to the computed coordinates. JP 2-23406 A is concerned with an NC machine tool adaptive control device and discloses a method of controlling a machine tool wherein measured data such as a cutting force, a spindle torque, material, condition of a tool and the contacting position of a tool and the workpiece as well as measured data such as the temperature and the dimension, shape and surface roughness are used together with the target value, allowable value, working conditions, etc., of respective types of the measurement items from a recording part to obtain optimum working conditions using an arithmetic part. The object underlying the present invention is to generate a measurement program through analysis of an actual machining program, not based on working drawings. Another object is to provide a new method for machining process control reflecting a measurement result obtained by measurement program on NC machining. This object is achieved by the machining management device as claimed in claim 1 and by the machining management method as claimed in claim 4. Advantageous developments and refinements of the invention are described in the respective depending claims. In particular, to achieve the objects described above, the present invention analysis an NC program, extracts a workpiece form at each step of an actual machining process provided in the NC program as a geometric model, and generates a measurement program based on the geometric model. When the measurement program is running, real time measurement result can be obtained during machining so that the result can immediately be reflected on the subsequent machining process. A modified machining program can thus be used immediately. Furthermore, according to the present invention, if a machining program is modified, a measurement program is also modified in accordance with the new machining program. It is advantageous that an NC program and a measurement program can always be related to each other and run during actual machining or prior to the subsequent machining step. Brief Description of the Drawings Fig. 1 is a block diagram showing the entire configuration of a numerical control system incorporating measurement program generation and machining control related to the present invention. Fig. 2 is a block diagram showing a measurement program generating device related to the present invention. Fig. 3 is a block diagram showing a workpiece form information extracting unit related to the present invention in the system shown in Fig. 2. Figs. 4A, 4B, and 4C are exemplary lists showing actual machining NC programs used in the embodiments of the present invention. Fig. 5 shows an exemplary material form used in the embodiment of the present invention. Fig. 6 shows a final workpiece form used in the present embodiment. Fig. 7 shows a list of tools used in the present embodiment. Figs. 8A through 8E show a G code development list derived from the actual machining NC program in the present embodiment. Fig. 9 is an explanatory diagram showing a program analysis method, tools to be used, and operation elements in machining elements related to the present embodiment. Fig. 10 shows an explanatory list of operation elements. Fig. 11 is an explanatory diagram showing an example of a machining pattern definition in the present embodiment. Fig. 12A is an explanatory view showing a relationship between two coordinate systems after a workpiece is mounted on a machine tool. Fig. 12B is an explanatory view of a coordinate system in Fig. 12A related to actual workpiece form. Fig. 13 is an explanatory view showing a relationship between other two coordinate systems on the machine tool. Fig. 14 shows a coordinate system list. Fig. 15 shows an explanatory geometric element parameter list. Fig. 16 shows a geometric element list. Fig. 17 is an explanatory view showing a CSG primitive library. Fig. 18 is an explanatory view showing relationships between the CSG primitives. Fig. 19 shows an explanatory view of a geometric element CSG library. Fig. 20 shows an explanatory view of an element measurement path library. Fig. 21 is an explanatory view showing interference check. Fig. 22 is a list of interference check shown in Fig. 21. Fig. 23 is an explanatory view of a safety zone to determine a measurement path. Fig. 24 shows tolerance tables used to make a measurement program. Figs. 25A through 25F show an example of a measurement program generated by the present invention. Fig. 26 is an explanatory diagram showing measurement program execution and measurement result analysis related to the present invention. Fig. 27 shows a flow of measurement data shown in Fig. 26. Fig. 28 shows an exemplary result of the measurement. Best Embodiment for Carrying Out the Invention Hereinafter, a preferred embodiment of the present invention will be explained referring to the accompanying drawings. Fig. 1 shows an entire configuration of the numerical control machine tool system on which the measurement program generating and process management method related to the present invention is applied. An NC program is generated in the same manner as a conventional one using material data and final parts form information. In Fig. 1, the material data contain a form of the material and its composition. NC program generating means 20 generates an NC program using the input material data and the final parts form, as well as know-how data stored in the past and provided by a variety of data bases. In the present embodiment, the data bases comprise an operation development data base 21, a cutting condition data base 22, a tool data base 23, and a machining history data base 24. The NC program generating means are provided by these data bases reference data for NC program generation such as past on-site know-how, on-site specification, conditions necessary for actual machining, and specific conditions for a machine tool to be used. The NC program generated as described above and a tool list are sent to a numerical controller 25 whereby necessary dry run, test cut, or simulation are carried out. After the NC program modification and editing (not shown in Fig. 1), an actual machining NC program to be finally used on site is completed in the numerical controller 25. The numerical controller 25 comprises NC program executing means 27, servo control means 28, and error compensating means 29, all of which are for driving a machine tool 26. The NC program, the tool list, and the material data are input to the NC program executing means 27. The NC program executing means 27 performs interpolation processing based on an appropriate feeding run decided by the input data with reference to a later-described measurement result. The NC program executing means supply a servo control signal to the servo control means 28. The NC program executing means can perform feeding control of the machine tool 26 in accordance with the NC program by an output driving signal supplied from the servo control means 28. The error compensating means 29 is set for compensating an error of workpiece size and position caused by a thermal expansion of the machine tool 26 or the like. The error compensating means can compensate the error caused by the thermal expansion of the machine tool or the like using an output from a measurement device set on the machine tool 26. As described above, according to the NC program, the machine tool 26 performs a desired operation element machining, machining element machining, and machining process machining on a workpiece 30 placed on a table, and finishes machining on the workpiece 30 in a first posture. After finishing the machining process machining on the workpiece 30 in the first posture, a measurement machine 31 measures a coordinate system of the workpiece 30 based on a measurement program in a measurement controller 32. The measurement result is fed back through measurement result analyzing means 33 to the NC program executing means in the numerical controller 25 for the use in the subsequent process. If necessary, the measurement result is also provided to each data base 21, 22, 23, and 24. As described above, according to the embodiment shown in Fig. 1, desired numerical control machining can be carried out on the workpiece 30 based on the NC program generated. After machining process machining has been carried out on the workpiece 30 in the first posture, the posture of the workpiece 30 is changed to a second posture, and machining based on the NC program is carried out on the workpiece in the second posture. What is characteristic about the present invention is that the measurement program provided to the measurement controller 32 is generated using an actual machining NC program supplied to the numerical controller 25. Therefore, a workpiece form information extracting unit 34, a geometric model generating unit 35, and a measurement program generating unit 36 are provided for this purpose. The workpiece form information extracting unit 34 is supplied with the tool list, and the actual machining NC program output from the NC program generating means 20. Based on these input data, workpiece form information is extracted for an arbitrary step of each operation element machining, machining element machining, and machining process machining through analysis of the NC program. The extracted workpiece form information is converted by the geometric model generating unit 35 into a three dimensional geometric element or a geometric model in the arbitrary step. For the geometric element or the geometric model, the measurement program generating unit 36 can generate an optimal measurement program by selecting a measurement path from predetermined measurement paths. As is obvious from Fig. 1, the measurement program generated as described above is provided to the measurement controller 32 while the geometric model generated by the geometric model generating unit 35 is supplied to the measurement result analyzing means 33. The measurement list generated by the measurement program generating unit 36 is also provided to the measurement result analyzing means 33. In the present invention, not only the machining list and the NC program described above but also the material data and the final parts form may be provided to the workpiece form information extracting unit 34. In this case, it enables determination of a more secure and simpler movement path of a measuring probe or the like. Therefore, according to the present invention, a measurement program is always related to an actual machining NC program. It makes it possible to obtain an optimal measurement program in response to an NC program to be used in actual machining. A measurement result obtained by using such a measurement program is always provided to the numerical controller 25, which enables machining control in response to the measurement result. Fig. 2 shows a detailed configuration regarding the measurement program generating unit of the numerical control machine tool system (shown in Fig. 1). In the present embodiment, measurement is carried out by defining a machining element on which NC machining is being carried out as one measurement unit. A measurement timing is defined as the time when an machining element is obtained after a series of machining steps on an operation element is finished. It is of course possible to carry out measurement at the time of machining process completion when a plurality of machining elements have been machined. In an actual measurement program, measurement timing is either completion of machining elements or completion of a machining process. In Fig. 2, an NC program 40 is provided to an NC program analyzing unit 41 in the workpiece form information extracting unit 34. The NC program analyzing unit 41 first divides the NC program into portions classified by operation elements using the NC program 40 and tool data which have been separately provided. The NC program analyzing unit 41 provides the operation element information to a machining element extracting unit 42. In the machining element extracting unit 42, machining elements which are used in the NC program are extracted and output in combination with operation elements. The NC program analyzing unit 41 also provides coordinate data used in the NC program to a coordinate system transforming unit 43 whereby the coordinate system generated for NC machining is transformed into a three dimensional coordinate system for measurement. The thus extracted machining element list or transformed coordinate system list are provided to a geometric element generating unit 44 in the geometric model generating unit 35 whereby the machining element specified by the NC program is transformed and output as a geometric element in an ordinary three dimensional coordinate system. In the present embodiment, the geometric element is further composed into a geometric model by a geometric model generation processing unit 45. The composed model is provided to the measurement program generating unit 36. In the present invention, transformation into a geometric model is of course not necessarily needed, and the geometric element list output from the geometric element generating unit 44 can also be provided directly to the measurement program generating unit 36. Furthermore, the geometric model 46 generated by the geometric model generation processing unit 45 is supplied to the measurement result analyzing means 33 as shown by Fig. 1. The measurement program generating unit 36 is provided with the geometric model or the geometric element list in addition to probe information 47 from the measurement machine 31, tolerance information 48, and other necessary information 49. Based on the input information, a measurement program 50 is generated and the measurement program is provided to the measurement controller 32 shown in Fig. 1. Fig. 2 explains outline procedures for generating the measurement program 50 out of the NC program 40. In the following description, details of the procedures will be explained. Extraction of Operation Elements and Machining Elements A detail of the NC program analyzing unit 41 for extracting the operation elements will first be explained referring to Figs. 3 to 11. Fig. 3 shows a detail of the NC program analyzing unit 41 related to the present invention in the workpiece form information extracting unit 34 (Fig. 2). The NC program analyzing unit 41 is supplied with an actual machining NC program, and a tool list as described above. If necessary, material data and final workpiece form are also provided. In the NC program analyzing unit 41, the input data are stored in a storing device 60. The actual NC program is analyzed block by block, and data are converted by a numerical data converting unit 61. The data are entered as a G code development list by the G code development list generating unit 62. At this time, a plurality of operations are included in one block such as the case for a macro program or sub-programs, they are developed into basic commands according to an RS-274-D format and then entered in the G code development list. The development into G code is not necessarily needed by the present invention. However, they are developed into G code which is easy to interpret, in order to process the actual machining NC program by a computer. In the program analyzing unit 41, the entire actual machining program is divided by a dividing unit 63 into operation elements referring to the G code development list. Division by the dividing unit 63 of the NC program into operation element machining is preferably carried out focusing on a sequence number (N number), tool index (T code), tool exchange (M6), and optional stop (M01). On an actual operation, the program division into operation element machining can be performed by firstly paying attention to a tool exchange. During the time between tool exchanges, a one tool is used, which is utilized as an operation element span. However, it is preferable to perform secure division into operation element machining by reading a path pattern of a tool as well as the tool exchange, since a plurality of operation element machining steps can be carried out using one and the same tool, such as the case where drilling of a plurality of prepared hole is carried out using one drill. Fig. 4A through 4C show an example of an actual machining NC program used in the present embodiment on which a program number O00001 is attached. Fig. 5 shows a material form to be machined by the actual machining NC program, while Fig. 6 shows the form of a final workpiece to be produced from the material shown in Fig. 5 by the actual machining NC program. These material data (including composition of the material) and the final workpiece form are provided to the NC program analyzing unit 41 as described above. As is obvious from Fig. 6, in this machining, upper surface milling, side milling, machining of two tapped holes in the front, drilling of four chamfering tooled hole on the upper surface, and a slot machining need to be carried out. For such machining, the NC program generating unit 20 determines machining procedures, develops the procedure into operation elements, decides a tool to be used in each operation element, and determines a cutting condition for each tool. Fig. 7 shows a tool list to be used in the program O0001. Each tool number is shown in the form of a T code, and data about each tool are listed as shown by Fig. 7. The tool list is provided to the NC program analyzing unit 41. In the program analyzing unit 41, the actual machining NC program is stored in the storing device 60, and converted into G code development list which is easier for a computer to analyze by the G code development list generating unit 62 via the numerical data converting unit 61. In Figs. 8A through 8E, a list of the actual machining NC program O0001 developed into G codes is shown. The actual machining NC program and the G code list are linked by line numbers, and their contents are essentially the same. The actual machining NC program in the present embodiment is partitioned into 9 sequences with sequence numbers 1 to 9 being attached thereto. These 9 sequences are classified as operations using different tools. In the present embodiment, even when one and the same tool is used, if different positions of a material are machined using the tool, it is recognized as different operation elements. In this case, the program is divided into operation elements based on the machining path of the tool, as described above. However, to simplify explanation, a machining condition extraction example is shown for each operation element machining in each of the 9 sequences. Analysis of operation elements in N1 T1 is selected in line 4, and M6 (tool exchange) is performed in line 5. Therefore, it is understood that until line 7 where the following M6 (tool exchange) is commanded, tool T1 is used for machining. In the present embodiment, a group of such lines in the program is expressed as sequence N1. However, it is obvious that in the actual machining NC program, this kind of sequence number is meaningless for tools. It is understood from T code 1 in the tool list shown in Fig. 7 that the tool T1 is a 100 mm diameter face milling cutter. Line 7 specifies a work coordinate system G54. In the present embodiment, the coordinate system G54 shows the upper surface of the final workpiece form shown in Fig. 6. The above procedure is defined as machining in a first process. In line 10, the workpiece is sent for cutting feed for the fist time, and the surface to be cut is Z = 0.1 (line 9). The point where the face milling cutter should descend has the X, Y coordinate values (160, 50) specified by line 7. Lines from 10 to 13 show that a moving axis of the tool alternately moves such as X, Y, X, Y, while the Z coordinate value stays the same. By comparing such a tool path pattern with definition data stored in a pattern definition storing unit 64, this operation element can be judged as machining on a surface. In Fig. 9, a pattern definition example of an operation element, a tool to be used, and a program analyzing method, all of which are for the machining element, is shown. Using such a pattern definition, recognition of operation element machining is performed. In Fig. 10, an example of an operation element list is shown. In the present embodiment, such operation elements are provided to the machining element extracting unit 42 and the coordinate system transforming unit 43. The operation elements shown in Fig. 10 are of course an example, and definition of not only comparatively large operation elements as shown here but also operation elements divided into much smaller elements is preferable in the present invention. Levels of operation element definition can be set arbitrarily in response to precision of a machine tool, or resolution of the entire machining system. Further analysis of the program for the sequence N1 leads to the fact that lines 10, 11, and 12 show the same path as in lines 15, 16, and 17 except for the Z coordinate values. Therefore, it is understood that lines 15, 16, and 17 show finishing, since there is no operation element in which the same tool is used thereafter. The lines 19 through 30 are judged to show a second machining process, since they use a work coordinate system G55 which is the coordinate system for machining on the front of the final workpiece form in the present embodiment shown in Fig. 6. Lines 22, 23, and 24 show the same path as in lines 27, 28, and 29 except for the Z coordinate values, and the Z coordinate value difference is 0.1. Therefore, the lines 22, 23, and 24 are judged to show rough cutting, while the lines 27, 28, and 29 are judged to show finishing. Moreover, since the cut area covers the whole of the workpiece, it is judged to be a surface machining element. Hereinafter, analysis for operation elements in the sequences N2 to N9 will be briefly explained. Analysis of operation elements in N2 In line 31, a main tool is changed to T2, and the procedure moves to operation elements in N2. From the tool list in Fig. 7, T2 is recognized to be a center drill with a 3 mm diameter. As a result, the operation element in N2 is judged to be drilling, and the following 5 operation elements in a first machining process and 2 operation elements in a second machining process are extracted. The first machining process (G54) position 1 (70.000, 50.000), position 2 (-70.000, 50.000), position 3(-70.000, 50.000), position 4 (70.000, -50.000), position 5 (30.000, 0.000) The second machining process (G55) position 1 (40.000, 0.000), position 2 (-40.000, 0.000) Analysis of operation elements in N3 In line 47, a main tool is changed to T3, and the procedure moves to operation elements in N3. From the tool list in Fig. 7, T3 is recognized to be a drill with a 20 mm diameter. As a result, the operation element in N3 is judged to be drilling, and the following 5 operation elements are extracted. A first machining process (G54) position 1 (70.000, 50.000), position 2 (-70.000, 50.000), position 3(-70.000, 50.000), position 4 (70.000, -50.000). Analysis of operation elements in N4 In line 57, a main tool is changed to T4 which is a drill with a 30 mm diameter. As a result, the operation element in N4 is judged to be drilling, and the following 4 operation elements are extracted. A first machining process (G54) position 1 (30.000, 0.000, -19.9) position 2(-70.000, 50.000), position 3 (-70.000, -50.000) position 4 (70.000, -50.000) Analysis of operation elements in N5 In line 68, a main tool is changed to T5 which is an end mill with a 25 mm diameter. End mills and face milling cutters usually have a variety of machining patterns they can handle. Therefore, it is not easy to judge what operation elements are extracted simply from the tool to be used. However, in the present embodiment, this judgment is carried out by comparing a tool machining path to machining pattern definitions by the dividing unit 63 and the machining element extracting unit 42. Some examples have already been shown herein for the cases of a face milling cutter and drills. Moreover, Fig. 11 shows an example of correlation between these machining pattern definitions and machining elements. Now, turn back to operation elements in sequence N5. Lines 71 through 74 show that a tool descends to a surface to be machined (z-19.9) at position 3 (30.0, 0) in machining process 1 (G54). Lines 75 through 81 show a movement on one surface. It is judged that this movement has a closed path, since the position in line 75 (-50.0, 0) are the same as the position in line 80 (-50.0, 0). Moreover, lines 5 through 80 show the inside of the path, since a leftward compensation of G41 is specified in line 75. The path in G41 shifted inside by the radius of the tool from the path described above is set, from which the path further shifted by the radius of the tool is found. In this case, the path has been erased. From these tool paths, no residual stock removal remains inside when the tool moves as lines 75 through 80 indicate. Therefore, it is judged to be a pocket machining element. This is a pattern where an end mill is used in the machining element pocket as shown by machining pattern definition in Fig. 11. As described above, program analysis can be carried out with certainty on a complex program such as above, using the pattern definition in Fig. 11. The movement of the tool in line 75 is judged to be an approach to the workpiece, while the movement in line 81 is judged to be a recession from the workpiece. The amount of the approach and the recession are stored in a pattern list of pocket machining elements shown in Fig. 12. Line 82 shows upward movement from the work surface, and line 83 shows positioning to position (40, 0) in a second machining process (G55). Lines 86 through 88 show movement on one surface. Line 87 shows a movement along a circular path. Line 86 shows a leftward compensation of G41 for the circular path, as described above, and it is judged to show the inside of the path. The path in G41 shifted by the radius of the tool from the circular path described above is found, from which the path further shifted by the radius of the tool is then found. However, the path has been erased as shown by judgment 1. Therefore, it is judged that no residual stock removal remains inside and it is judged to be a pocket machining element. However, it is finally judged to be a drilling element, since the workpiece has been machined at the center position of the pocket machining element in sequences N2 and N4 and the form of the pocket is a circle. As described above, recognition of operation elements can be carried out by using the machining pattern definitions for sequence N5. Analysis of operation elements in N6 Line 97 shows that a main tool is changed to T6 which is a 25 mm diameter end mill. Movement by lines 105 through 108 is carried out on one surface, and the position in lines 105 and 108 are the same. Therefore, the movement is judged to have a closed path. This path and tools are compared by judgment 1. As a result, if there is no residual stock removal inside, it is judged to be a pocket machining element. The path thereof is the same as the path in sequence N5. Therefore, it is judged to be finishing, while the machining of operation element 1 in sequence N5 is judged to be rough cutting. It is also judged that points in lines 105 through 108 show a final form. Analysis of operation elements in N7 Line 111 shows that the main tool is changed to T7 which is an 8.2 mm diameter drill. Therefore, sequence N7 is judged to be a drilling element, and the following operation elements are extracted. A first machining process (G55) position 1 (40.000, 0.000) position 2 (-40.000, 0.000) Analysis of operation elements in N8 Line 119 shows that the main tool is changed to T8 which is a 25 mm diameter chamfering tool. The chamfering tool is fixed by a fixed drilling cycle in G81 while z coordinate value rises as shown by lines 124 through 128. Therefore, the operation element in N8 is judged to be a drilling element. A first machining process (G54) position 1 (70.000, 50.000) position 2 (-70.000, 50.000) position 3 (-70.000, -50.000) position 4 (70.000, -50.000) A second machining process (G55) position 1 (40.000, 0.000) position 2 (-40.000, 0.000) Analysis of operation elements in N9 Line 134 shows that the main tool is changed to T9 which is an M10 tap. Therefore, the operation element in sequence 7 is judged to be a hole drilling element. A first machining process (G55) position 1 (40.000, 0.000) position 2 (-40.000, 0.000) As described above, the actual machining program is sequentially analyzed, divided into operation elements, and operation-element extracted. As described above, the NC program is divided into operation elements. Regarding some operation elements, an analysis result of the actual machining NC program shown in Figs. 4A through 4C is briefly summarized herein. A slot on G54 surface in Fig. 6 has a surface on Z = 0 prior to sequence N1. This surface is cut twice on Z = 0.5 and Z = 0. Since it is deeper on Z = 0, this surface is extracted as the operation element. In the middle of sequence N2, a center hole is drilled on the surface at X = 30 and Y = 0. Therefore, it is understood that a center drilling element is generated herein. The operation element on the above surface is also applicable to the following operation element in the same manner. In the former half of sequence N4, it is understood that a prepared hole is drilled in the center operation element generated above and a hole operation element is being generated therein. In the former half of the sequence N5, a slot is machined and it is understood that slot operation element has been finished. Moreover, in sequence N6, a slot machining for finishing is carried out, and it is understood that a slot operation element has been generated. As described above, in the NC program analyzing unit 41, the NC program 40 can be analyzed by dividing it into operation elements. The operation elements divided and analyzed as described above are converted into a machining element list by the machining element extracting unit 42. Actually, it is preferable to perform measurement during NC machining based on machining elements, not on operation elements . This is because machining to create one form at a position on a materiel is finished by completion of a machining element. Based on the plurality of operation elements described above, operation is focused on a machining element by being classified according to a position to be machined at and a kind of a tool. Relationships between operation elements can be understood from the order of machining in the program. If a center operation element and a hole operation element are taken as an example among the plurality of operation elements, it is understood from their positions to be machined at that no center operation element needs to be considered for the operation element and only the hole operation element is extracted. Likewise, it is understood for a plurality of slot operation elements that only a final slot operation is extracted as the machining element if the slot operations are carried out at one position. As described above, a machining element list necessary for measurement is extracted by the machining element extracting unit 42 and provided to the geometric model generating unit 35. Coordinate transformation Even when the machining element list is obtained as described above, it can not be used for a measurement program as it is. In other words, in an NC program, the machining coordinate system is related to the posture of a workpiece fixed on a pallet. For example, the workpiece form shown in Fig. 6 is actually shown as in Fig. 12A if it is on the pallet of a machine tool. Moreover, machining on its upper surface is shown by the coordinate system G54, while machining on its front surface is shown by the coordinate system G55. In the machining program, machining in G54 and G55 is carried out by changing the posture of either the workpiece on the pallet or the tool reference surface. As a result, the surface which the coordinate system of the machining program is dealing with is different from the coordinate system surface of the actual workpiece form shown in Fig. 12B. In machining by the NC program of the present embodiment, the upper and front surfaces of the form shown in Fig. 6 are on the same pallet and machined in the same machining process. However, this is for the sake of machining convenience, and it is different from the relationship between geometric positions of the upper and front surfaces of the actual form shown in Fig. 12B. As shown by Fig. 12A, in the machining program, the coordinate values of the upper surface are based on the coordinate system G54, while the coordinate values of the front surface is based on the coordinate system G55. In other words, the coordinate system G55 is created by simple parallel translation of the coordinate system G54 in XYZ directions. However, the coordinate system G54 of the actual workpiece form is created by parallel translation in XYZ directions plus rotation of G54, as shown by Fig. 12B. Matrix expression of this transformation is described as follows: Therefore, in the coordinate system transforming unit 43, coordinate system transformation between the NC program coordinate system and the actual form coordinate system is carried out as shown by the above coordinate system transformation, and the transformed coordinate system is provided to the geometric element generating unit 44 of the geometric model generating unit 35. In Fig. 2, coordinate system 51 of the machine tool is input to the coordinate system transforming unit 43. It is effective when a position of a workpiece on a pallet becomes arbitrary upon a change of machining processes, which happens occasionally depending on the machining program in use. In such a case, the coordinate system of the machine tool is input and coordinate system transformation in response to workpiece form can be carried out effectively. For example, in a case where coordinate systems G56 and G57 on a single workpiece are set as shown by Fig. 13, which is different from the workpiece form in Fig. 6, the two coordinate systems are created by simple parallel translation of each other. Therefore, by calculating relative positions of the two, transformation of the coordinate systems is carried out easily, as the following preferable coordinate system transformation equation shows. Measurement during machining is usually carried out at the end of a machining process. In some cases, a workpiece is moved from a machine tool to a measurement machine. In such cases, the workpiece can be fixed on a table of the measurement machine in any direction. Therefore, the measurement device does not know how a reference coordinate system among any one of the coordinate systems G54 and G55 shown in Fig. 12A, for example G54, is placed. Therefore, the measurement device measures geometric elements necessary for obtaining G54 which is the reference coordinate system, using a program to generate a conventional measurement program. In this manner, the measurement device knows the position of the coordinate system G54, and stores a relationship between the coordinate system of its own (machine coordinate system) and the coordinate system G54. As a result, a probe can move based on the coordinate system G54, since the coordinate values of parts form size is based on the coordinate system G54. The measurement machine can thus provide such data to a measurement program during actual measurement operation. The coordinate system transformation equation used in such a measurement device is shown below: Once a reference coordinate system, for example G54, is known, the coordinate system G55 can easily be found by the reference coordinate system G54. Fig. 14 shows a relationship between the coordinate systems. The coordinate system G55 stores the relative position of the reference coordinate system G54 as parameters. The reference coordinate system G54 may also be found by inputting into Equation 3 the parameters previously found through Equation 3 which show a calculation between the coordinate system G54 and the machine coordinate system when fixed on the measurement machine. In actual measurement, the measurement device of course places parts at a fixed position using a fixture, measures the reference coordinate system G54 once, and then stores G54. Individual measurement of G54 in each form is omitted. Generation of geometric model or geometric element list As described above, the machining element list and the coordinate system transformation data are provided to the geometric element generating unit 44, and a geometric element list is generated based on the input information. Fig. 15 shows an example of a geometric element parameter list. A chamfering tooled hole, a stepped hole, a stepped threaded hole, a slot, and a circular slot are shown by coordinate values of sizes, and centers P as partially shown in Fig. 15. A geometric element parameter list of the workpiece form is thus generated. These geometric elements are stored in connection with coordinate systems, which are G54 and G55 in the present embodiment, as a geometric element list shown in Fig. 16. Using this list, the position of a geometric element in the coordinate system can precisely be shown. Therefore, using the geometric element list as described above, a measurement program using a predetermined measurement path can be generated. In the embodiment shown by Fig. 2, the geometric element list is converted by the geometric model generation processing unit 45 into a geometric model. In other words, the geometric element list can be expressed by using a CSG (Constructive Solid Geometry) primitive library or the like which is easier to handle using a computer. An example of such a CSG primitive library is shown in Fig. 17. Relationships between the primitives can be expressed by operators shown in Fig. 18, which are union, intersection, subtraction, and negation. In Fig. 19, an example of geometric elements expressed by the CSG library is shown. For example, a chamfering tooled hole can be expressed using two cones and one cylinder. As shown by Fig. 17, primitives forming the geometric model are composed of simple three dimensional objects such as a block, a sphere, a cylinder, a cone and a pyramid. A form created by a usual machine tool can sufficiently be expressed by such simple primitives. In other words, a plurality of the primitives form a joint part using the operators shown in Fig. 18 and generate a geometric model necessary for measurement. The operators are defined as: 1. Union: The entire of two primitives or a joint part, 2. Intersection: The common portion of two primitives or a joint part, 3. Subtraction: The portion created by subtraction of one primitive or a joint part from the other, and 4. Negation: The portion excluding one primitive or a joint part. Determination of a measurement path The geometric element list output from the geometric element generating unit 44 or the geometric model output from the geometric model generation processing unit 45 sequentially contains data regarding a form of each machining element or a form to be created in each process, and geometric elements to be processed. As described earlier, parameters of each geometric element are also extracted in accordance with data regarding the coordinate system to which the geometric elements belong. Based on these data, the measurement program generating unit 36 firstly determines a measurement path. A measurement path in the vicinity of each geometric element is decided referring to a measurement path library shown in Fig. 20. Upon determination of the measurement path, an interference check is necessary. For example, in the case of a form shown in Fig. 21, two cylinder holes are intersecting. In this intersecting position, an interference portion is created as shown by the hatched areas in Fig. 21. In this interference portion, measurement is not possible. Fig. 22 shows a list of such interference portions. Upon determination of the measurement path, the interference list in Fig. 22 is referred to, and it is preferable to add a measurement point between measurement points excluding the measurement points in the interference portion if interference would actually occur. Once a measurement path for each geometric element is determined as described above, these measurement paths are connected as a measurement path for the entire workpiece. To connect the measurement paths, either one of the following two methods is usually used. A first method is to express a probe movement path by geometric elements and to check an interference between the path and a workpiece form. A measurement path without interference is then selected. A second method is, if material data are available, to set a safety zone around a workpiece form as shown by Fig. 23 and move a probe back to the safety zone after measurement of each geometric element. In Fig. 23, if a probe moves from a hole on the upper surface 4CR to a hole on a side 51CR, the probe would collide with the workpiece if it moves in a straight line. Therefore, the probe always moves back to the safety zone, and moves to a subsequent measurement point of the geometric element through the safety zone. Once the measurement path is determined as described above, the measurement program generating unit 36 generates a measurement program 50 as shown by Fig. 2, referring to the probe information 47, the tolerance information 48, and the other information 49, if necessary. An example of the tolerance information 48 is shown in Fig. 24. The hole tolerances and the size tolerances can be reflected on the measurement program. For example, upon determination of a reference command (a command to compare an nominal value and a measured value), a tolerance of the geometric element is automatically determined by a general tolerance. Using the tolerance determined as described above, the reference command can be determined. Information necessary other than the tolerance information is listed below: 1. Information attributed to a measurement program a. Name of the program b. Name of a program file c. Measurement result output file name d. Measurement result output device e. Measurement result output format f. Others (process control information or the like) 2. Information attributed to a measurement device a. Setting of a datum surface b. unit (mm/inch) c. Movement and measurement speed d. Measurement operation parameter e. Probe (measured value) information f. Reference information g. Others (probe compensation master ball or the like) 3. Information attributed to an initial coordinate system setting a. Switching between automatic and manual measurements b. Calling of a coordinate system The above information is not included in an NC program used in the present invention. Therefore, an operator usually inputs the information in advance. It is not necessary to input initial values regarding a measurement device, since they are pre-set. If desired values are different from the initial values, it is possible to easily input the initial values by selecting a template among templates prepared in advance and having initial values. According to the present invention, the measurement program 50 can easily be generated by analyzing the NC program 40 as described above. Figs. 25A through 25F show an example of a measurement program generated by the measurement program generating method of the present embodiment. The workpiece form information extracting unit 34, the geometric model generating unit 35, and the measurement program generating unit 36 shown in Fig. 1 are composed of programs in a medium storing their procedures. Such medium is provided in a form of a floppy disc, a CD-ROM, a hard disc, or a ROM. Machining management The present invention is characterized in that a measurement program is generated by an NC program as described above so that a measurement program which is closely related to actual machining can be obtained. Moreover, while the measurement program is measuring a workpiece form being machined, the measurement result is fed back to machining management of a machine tool so that a relationship with the NC machining program can be strengthened. Fig. 26 shows a state in which the measurement controller 32 is controlling the measurement machine 31, using the measurement program 50. The measurement controller 32 provides a measurement path defined by the predetermined measurement program to the probe of the measurement machine 31. The probe automatically measures the workpiece form in an arbitrary step. The measured values are sent as measurement data from the measurement controller 32 to a measurement data collecting unit 70. In the measurement data collecting unit 70, desired header information is added to the measurement result, and the data are stored in a data base 71 together with the header information. The measurement result analyzing means 33 comprises the measurement data collecting unit 70, the data base 71 and a process analyzer 72. The analysis result is fed back to the machine tool 26 so that the measurement result can be reflected on the following machining process. Fig. 27 shows a flow of measurement results in each process. In the present embodiment, the measurement operation is carried out for any selected machining process. The obtained measurement data are immediately diagnosed by the process analyzer 72, and the diagnosis result is then fed back to machining management in a subsequent machining process or in all of the machining processes if necessary. Now, returning to Fig. 26, a more detailed explanation will be provided below. The measurement controller 32 immediately notifies the machine tool 26 of a measurement data error if the measurement result from the measurement machine 31 shows a result beyond tolerance or in a out-of-control zone. The measurement controller 32 commands suspension of machining or a change in the amount of residual stock removal in a subsequent machining step. The measurement controller 32 sends normal measurement data to the measurement data collecting unit 70 adding the following header information to the measurement data: 1. Information attributed to a header a. Name of a header b. Header file name c. Date (date of header generation) d. Name of parts e. Unit f. The number of measurement items 2. Information attributed to a measurement item a. Name of the measurement item b. Name of a feature c. Value d. Upper tolerance e. Lower tolerance f. UCL (Upper Control Limit) g. LCL (Lower Control Limit) 3. Information attributed to a machining process a. Factors of errors b. Limit of error c. Relationship between errors d. Environmental temperature The process analyzer 72 performs statistics, analysis, and diagnosis using the measured data accumulated in the data base 71. The process analyzer 72 generates management diagrams such as an X - R diagram, an X -S diagram, or a trend diagram, and notifies the machine tool 26 of the result. Fig. 28 is a graph showing a relationship between measured values and nominal values. If a measured value is greater than the upper limit or smaller than the lower limit, it is immediately notified to the machine tool 26 as a value in a out-of-control zone which is out of the tolerance. A value in a range close to the tolerance limit is also notified as a value in the out-of-control zone to a subsequent machining process or an immediately preceding machining process check. According to the present invention, it is possible to obtain a measurement result in real time during machining. Therefore, the result is immediately sent to a subsequent machining process and reflected in machine tool feeding in the following process, for example. The management data obtained by the process analyzer 62 are analyzed by a known diagnosis program such as FMEA (Failure Mode and Effect Analysis) or FTA (Failure Tree Analysis). These diagnosis programs can improve accuracy by sequentially learning modification of the machining program and the measurement program in the present invention. Moreover, as is obvious from Fig. 32, it is possible to collect data in time series regarding main power from motion dynamics of the machine tool 26, and perform spectrum analysis of the data using FFT (Fast Fourier Transform) or other hardware to obtain numerical values of high frequency components of a waveform and calculate their variances. It is also possible to judge roughness of the surface measured and size measurement result, as well as degradation of tool sharpness, tool wear, a deficiency in workpiece attachment, and a machining error. It is preferable to incorporate the judgment into the diagnosis program such as FTA in the process analyzer. Furthermore, as is obvious from Fig. 32, information regarding a state of the machine tool 26 is provided to the data base 71. A variety of error data from an error data base 73 or error factor diagnosis programs from error factor data base 74 are also provided to the data base 71. Using such information, the process analyzer 72 can provide not only the analysis information described above but also form elements such as size, profile, posture, position, and roughness to the machine tool 26. Therefore, the machine tool 26 can perform optimal machining control in a subsequent step, based on such management data. In the present invention, the programs in the measured data collecting unit 70, the data base 71, and the process analyzer 72 shown in Fig. 26 can store the procedure above in a storing medium, and so do the error data base 73, the error factor data base 74, and the measurement controller 32, if necessary. The storing medium can be provided in the form of a floppy disc, a CD-ROM, a hard disc, and a ROM. Advantageous Results of the Invention According to the present invention described above, in NC machining, a measurement program can be directly generated from an actual machining NC program. Therefore, it becomes possible to easily obtain an optimal, detailed measurement result in any machining step. Furthermore, the measurement program of the present invention can be generated regardless of an NC program size and without a conventional, complex automatic programming. The measurement program is always correlated to an actual NC program, and if one of the programs is modified, the modification can be reflected in the other programs. Therefore, it becomes possible to support machining management using a link between the machining program and the measurement program. Moreover, the measurement program in the present invention can function in the same manner not only for machine tools on which an NC program is applied but also other machine tools. Also, a measurement program with extremely high generality can be generated, since each measurement program is generated as a module assembly of measurement programs in an arbitrary step for an operation element, machining element, or a machining process. The measurement program can always obtain up-to-date know-how which is necessary for the measurement. By retaining the measurement obtained in such a manner, the measurement program can be applicable to other machine tools, which leads to an advantage in superior generality and wide extensibility. The measurement result obtained by carrying out the measurement program related to the present invention can always be reflected in subsequent or preceding steps in a machining process, and extremely superior measured values as machining management data can thus be provided. While there has been described what is at present considered to be a preferred embodiment of the invention, it will be understood that various modifications may be made thereto without departing from the scope of the appended claims.

Claims: A machining management device used in NC machining wherein machining control is carried out by an NC program, said device having a measurement program generating device, comprising: a workpiece form information extracting unit (34) for analyzing the NC program and thereby extracting workpiece form information in any step of each operation element machining, which is a single machining carried out by a tool, machining element machining, which comprises a group of operation elements, or a machining process machining, which means a series of all machining operations carried out without a posture change of a workpiece fixed on a machine tool; a geometric model generating unit (35) for generating a geometric model in a three dimensional coordinate system in any step, based on the workpiece form information; and a measurement program generating unit (36) for generating a measurement program based on the geometric model, wherein the workpiece form information extracting unit (34) comprises: an NC program analyzing unit (41) comprising a dividing unit (63) for dividing the program into operation element machining or machining element machining through analysis of the NC program which gives the information to a machining element extracting and coordinate system transforming unit (42, 43) for extracting workpiece form information in the divided operation element machining or machining element machining. A machining management device with a measurement program generating device according to claim 1, wherein the measurement program generating unit (36) comprises: a measurement path generating unit for determining a measurement path, based on the geometric model, wherein the measurement program generating unit (36) generates a measurement program, based on the measurement path. A machining management device according to claim 1 or 2, which further comprises measurement result analyzing means (33) for analyzing a measurement result information obtained from a measurement controller (32) and a measurement machine (31), the result being obtained by carrying out the measurement program at the end of at least one machining process among machining processes in the NC program; the measurement result analyzing means (33) giving machining control information back to numerical controller in the machining management device. A machining management method including a measurement program generating method used in NC machining wherein machining control is carried out by an NC program, said measurement program generating method comprising the steps of: extraction of workpiece form information in any step of each · operation element machining, which is a single machining carried out by a tool, · machining element machining, which comprises a group of operation elements, or · a machining process machining, which means a series of all machining operations carried out without a posture change of a workpiece fixed on a machine tool; through analysis of the NC program; generation of a geometric model in a three dimensional coordinate system in any step, based on the workpiece form information: and generation of a measurement program based on the geometric model; wherein del the extraction of workpiece form information is carried out after the step of: division of the program into operation element machining or machining element machining, through analysis of the NC program in the dividend operation element machining or machining element machining. A machining management method including a measurement program generating method according to claim 4, wherein the measurement program generating method further comprises the step of: determination of a measurement path, based on the geometric model;whereln the generation of the measurement program is based on the measurement path. A machining management method according to claim 4 or 5, wherein the measurement program is carried out at the end of at least one machining process among machining processes in the NC program and the measurement result is used as machining control information. The machining management method according to claim 6 wherein a form model in the machining process is generated based on the measurement result and provided to a subsequent machining process as machining control information. A machining management method including a measurement program generating method wherein tolerance data are added to the measurement program used in either claim 6 or 7. A data storage means provided with program data of a measurement program generating program including the method as claimed in claim 4 or 5. A data storage means provided with program data of a machining control program including the method as claimed in claim 6, 7 or 8.

Inventors: FUKAYA YASUSHI, MATSUMIYA SADAYUKI, MORITA NAOKI, YAMAZAKI KAZUO, FUKAYA, YASUSHI, MATSUMIYA, SADAYUKI, MORITA, NAOKI, YAMAZAKI, KAZUO, FUKAYA, Yasushi, c/o Okuma Corp., Oguchi Kojo, MATSUMIYA, Sadayuki, c/o Mitutoyo Corp.,, MORITA, Naoki, c/o K.K. Mori Seiki Seisakusho
Applicants: MITUTOYO CORP, MORI SEIKI SEISAKUSHO KK, OKUMA MACHINERY WORKS LTD, YAMAZAKI KAZUO, KABUSHIKI KAISHA MORI SEIKI SEISAKUSHO, MITUTOYO CORPORATION, OKUMA CORPORATION, YAMAZAKI, KAZUO
Application year: 1996
Main classification: B23Q15
IPC codes: G05B19