The present disclosure relates generally to machine tools. Specifically disclosed is a method and apparatus which simulates execution of a NC program and resultant operating conditions of at least the machine tool, and generates data predictive of the values of such operating conditions. Also disclosed is a method and apparatus which compares operating conditions that exist during actual machining with predicted values of the operating conditions.
Computer control of a machining system that involves the CAD/CAM based support has been widely accepted to improve productivity and reduce production cost. Recently, more intelligent functions have been developed and integrated into CNC machine tools. CAD/CAM provides the facilities to create and monitor tool paths to use on the workpiece. In some CAM software programs, machine tools and machine virtual environments can be utilized to dynamically simulate the machining operations. These dynamic simulations provide NC program generation and verification, material removal analysis and collision detection error. With the process simulation, the tool path can be analyzed and verified before actually machining the part. It has become easier to machine complex parts more accurately and more quickly with the advancement of simulation tools. However, in selection of machining strategies, the methods offered by CAM software often are based on the parts' geometrical information with little or no consideration of the machine tool capability or the physics of metal cutting. On the other hand, machine tools (or operators) have limited information about NC programs, hence it is difficult to judge whether machining is performed properly. Running machine tools under undesirable operating conditions can cause damage to tools, the machine tools or workpiece. Operating at, near or over the machine limits, for a short time or over a long period of time, can lead to damage to the tool, the machine tool or workpiece.
Moreover, in practice, operating parameters are still mainly selected based on either on machining handbooks and/or tool manufacturer's catalogues which are typically very conservative and aggressive, respectively. Therefore, it has been difficult to perform the machining under an optimal condition, which either leads to low productivity or deterioration in machining accuracy and surface roughness. Moreover, when the tool is a cutting tool which is engaged in cutting with a rapidly increasing cutting load, damage easily occurs to the cutting tool as well as work material to be machined.
The accompanying drawings together with specification, including the detailed description which follows, serve to explain the principles of the present invention.
In the following description, like reference characters designate like or corresponding parts throughout the several views. Also, in the following description, it is to be understood that terms such as front, back, inside, outside, and the like are words of convenience and are not to be construed as limiting terms. Terminology used in this patent is not meant to be limiting insofar as devices described herein, or portions thereof, may be attached or utilized in other orientations. Referring in more detail to the drawings, an embodiment constructed according to the teachings of the present invention is described.
As used herein, tool refers to any type of tool which may be carried by a tool holder of a machine tool and manipulated by the machine tool to alter the characteristics of a workpiece. Although herein a cutting tool is frequently referenced in describing aspects and/or embodiments of the invention hereof, as used herein, tool is not limited to any specific type of tool, and references to cutting tool are to be considered and interpreted as not limiting the invention hereof to operations of a machine tool involving cutting unless specifically so limited. Although cut or cutting can mean the removal of material from a workpiece by means of shear deformation, as used herein, cut and cutting is to be considered and interpreted as not limiting the invention hereof to removal of material by means of shear deformation, unless specifically so indicated, but instead is to be considered and interpreted as an operation which alters any characteristic of a workpiece. Although a spindle is frequently referenced in describing aspects and/or embodiments of the invention hereof, as used herein, spindle is not limited to any specific type of tool holder, and references to tool holder are to be considered and interpreted as not limited to any specific type of tool holder. To the extent necessary, the disclosure as explicitly set forth herein supersedes any conflicting material incorporated herein by reference.
Referring to
As illustrated in
In the embodiment depicted, pre-process simulation 100 simulates the machining process based on the NC program, motion step by motion step. The simulation and associated calculations to model the execution of each motion step of the NC program is represented at step 106. For each motion step of the NC program, pre-process simulation 100 may calculate machining conditions for the current motion step. As used herein, motion step refers to a change of the position of the tool relative to the workpiece. The motion step resolution of pre-process simulation 100 may be set during step 104. Machining conditions comprise information relevant to the subsequent calculation at step 108 of operating conditions which may lead to undesirable results, such as damage to the tool, the machine tool or workpiece, or inaccuracy of the machining process. At step 106, pre-process simulation 100 may calculate the volume of material removed and the cutting tool-material contact area based on the geometrical Boolean operation. Based on the calculated material removal and contact area, simulation 100 may calculate the axial depth of cut and width of cut. The chip load for each flute of the tool may also be calculated based on attributes of the motion step of the NC program being simulated, such as operational attributes such as feed rate and spindle speed and such as tool attributes such as the number of flutes of the cutting tool. The radial engagement may be calculated based on the cutting tool diameter. Simulation of an NC program in this manner is well known in the art, and can be implemented by any of several commercially available existing CAM simulation programs including for example Vericut Optipath software available from CGTech.
In the embodiment depicted, as illustrated in
At step 110, simulation 100 determines, for the current motion step, whether any predicted value calculated at step 108 exceeds a limit, which may be a predetermined limit, which is relevant to that operating condition. In more general terms, simulation 100 makes a determination for the current motion step whether to continue the simulation of the NC program in its then current form based on whether an assessment of one or more predicted values relative to predetermined criteria indicates an undesirable operating condition, such as an operating condition that will or might lead to damage to the tool, the machine tool or workpiece, or lead to inaccuracy of the machining process. Such an assessment may, for example, be a comparison of the predicted values to machine tool specifications (e.g., power and torque limits), thrust force limit for one or more drive axis and cutting tool limits, such as but not limited to cutting tool's characteristic temperature below which the cutting tool material can maintain its mechanical strength, and workpiece attributes. Such assessment may include whether the respective predicted values are outside of respective predetermined tolerances of the limit.
If the predicted values for the current motion step are considered acceptable relative to the relevant limits plus any tolerances, simulation 100 may proceed to step 112, where simulation 100 may consider whether all motion steps have been analyzed, and if all motions steps have not been analyzed, may proceed to the next motion step, returning to step 106 to repeat steps 106, 108 and 110 for the next motion step. Once all motion steps have been analyzed, simulation 100 may proceed to step 114 from step 112 and create a data file containing the predicted values for each motion step. The data file may have any suitable structure.
If, at step 110, it is determined that simulation of the NC program in its current form should not continue, revision to the NC program may be necessary for one or more motion steps. Such revision may be necessary for the current motion step, may be necessary for one or more previous motion steps, and/or may be necessary for one or more subsequent motion steps.
Simulation 100 may create such revision to the NC program automatically at step 116, proceeding from step 110 to step 116 as indicated by the dashed line. For example, simulation 100 may reduce the feed rate. Simulation 100 may then return to an appropriate step of simulation 100. For example, if at step 116 no revisions were implemented that affected one or more motion steps prior to the current motion step, then simulation 100 may proceed to step 106 and proceed with the simulation beginning at the revised current motion step. If at step 116, one or more motion steps prior to the current motion step is revised, simulation 100 may proceed to step 106 and proceed with the simulation beginning at an appropriate motion step such as, for example, the earliest revised motion step, or simulation 100 may proceed to an earlier step in the simulation, such as for re-initialization, data input, etc. Simulation 100 may proceed to step 106 and proceed at the first motion step regardless of what motion steps were revised. If the revision required a change in initialization or data input at step 104, simulation 100 may proceed to step 104.
Alternately, simulation 100 may not automatically create a revision to the NC program. If not, then simulation 100, proceeding from step 110 to step 118 as indicated by the dashed line, may stop the simulation and provide an output indicating that simulation 100 determined that continuation of the simulation of the NC program in its current form should not continue. Such output may be in humanly perceptible form, such as an audible or a visual alarm, a pop up notice on a screen, etc. or may be in a form usable by system responsive to the form of the output. Revision to the NC program may be created, such as by a programmer, and simulation 100 restarted or resumed at an appropriate step.
Alternately, simulation 100 may provide, following a yes at step 110, for proceeding to step 116 under certain circumstances and proceeding to step 118 under other circumstances.
It is noted that if there are any revisions to the NC program following step 110, simulation 100 simulates, at some point, all or part of the revised NC program. It is also noted that the embodiment of simulation 100 depicted is but one way in which predicted values may be calculated based on an NC program. For example, step 106 could be executed for every motion step, followed by executing steps 108 and 110 for every motion step, or executing step 108 for every motion step then proceeding to step 110 for every motion step and reporting every condition that exceeds a predetermined limit.
Calculation of temperature may be done using any methods known in the art. As is known, once shear and friction forces are known from force calculations, shearing power and friction power may be calculated with these two forces times shear velocity and chip flow speed, respectively. The shear plane temperature may be calculated based on the assumption that all shearing power is converted to heat, which may be done according to the formula
Returning to
After predicted values correlated to the motion steps have been inputted and sorted into a data dictionary (see
It may be determined at 208 that the actual values not are not within the dynamic limit of the predicted values, such as being higher than the upper value of the dynamic limit or being lower than the lower value of the dynamic limit. Actual values which are lower than the lower value of the dynamic limit may be indicative of a problem, such as a broken or missing tool, and real time monitoring system 200 may proceed to step 216 and output an alarm and/or a warning message, and may stop the machine waiting for user input.
In the case that any of the actual values are higher than the upper value of the dynamic limit, monitoring system 200 may proceed to step 214 and adjust the tool feed rate with the goal of lowering subsequent actual values to lower than the upper value of the dynamic limit. Monitoring system 200 may provide an alarm or notice, such as a pop up message on a screen, to indicate that action was taken at step 214. Monitoring system 200 may then proceed to step 202.
Monitoring system 200 may allow actual values of an operating condition to exceed its upper value of the dynamic limit or to be lower than its lower value of the dynamic limit for the then current position for a predetermined period of time. For example, following an adjustment to the feed rate at step 214, monitoring system 200 may execute the loop 202-204-206-208-214-202 for a period of time, which may be a predetermined period of time, even through the actual value that prompted the first tool feed rate adjustment in the chain is not lower than the upper value of the dynamic limit. During such a period of time, in one embodiment, monitoring system 200 may not make an adjustment, reaching step 202 after step 208 without making an adjustment to the tool feed rate, whether the actual value of an operating condition is higher than the upper value or is lower than the lower value of the dynamic limit.
Alternately, monitoring system 200 may not automatically make such an adjustment to the feed rate. For example monitoring system 200 may proceed to step 216, and an alarm and/or warning message may be outputted, such as a pop up message on a screen, and stop the machining process waiting for user input. In one embodiment, monitoring system 200 may not stop the machining process at step 216, but proceed to step 202, allowing the actual values of an operating condition to exceed its upper value of the dynamic limit or to be less than the lower value of the dynamic limit for the then current position for a predetermined period of time, similar to as described in the preceding paragraph.
If the distance between the current cutting tool position and the closest data point considered at step 226 is not within the tolerance range, such as within the motion step resolution of simulation 100, the closest data point may not be considered a matching point at step 226, indicating a matching point is not found. If a matching point is not found at 226, which may mean for example a tool change command is being executed by machine tool controller 300 or the cutting tool is not engaged in cutting, a zero output may be made at 240 and real time monitoring system 200 may proceed to 234, without feedback to machine tool controller 300.
The upper and lower limits for each respective point may be determined in any suitable manner, such as, but limited to, based on a predicted value for the operating condition which may be determined through a simulation embodiment described herein, plus or minus a tolerance. Or, the predicted value for the operating condition for each position may be determined by any other methodology, and, in combination with a dynamic limit range, be used to set a dynamic limit for actual machining.
In an operating environment such as shown in
Variations on the operating environment of
In accordance with various aspects of the disclosure, an element, or any portion of an element, or any combination of elements may be implemented with a “processing system” that includes one or more physical devices comprising processors. Examples of processors include microprocessors, microcontrollers, digital signal processors (DSPs), field programmable gate arrays (FPGAs), programmable logic devices (PLDs), programmable logic controllers (PLCs), state machines, gated logic, discrete hardware circuits, and other suitable hardware configured to perform the various functionality described throughout this disclosure. One or more processors in the processing system may execute processor-executable instructions. A processing system that executes instructions to effect a result is a processing system which is configured to perform tasks causing the result, such as by providing instructions to one or more components of the processing system which would cause those components to perform acts which, either on their own or in combination with other acts performed by other components of the processing system would cause the result. Software shall be construed broadly to mean instructions, instruction sets, code, code segments, program code, programs, subprograms, software modules, applications, software applications, software packages, routines, subroutines, objects, executables, threads of execution, procedures, functions, etc., whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise. The software may reside on a computer-readable medium. The computer-readable medium may be a non-transitory computer-readable medium. Computer-readable medium includes, by way of example, a magnetic storage device (e.g., hard disk, floppy disk, magnetic strip), an optical disk (e.g., compact disk (CD), digital versatile disk (DVD)), a smart card, a flash memory device (e.g., card, stick, key drive), random access memory (RAM), read only memory (ROM), programmable ROM (PROM), erasable PROM (EPROM), electrically erasable PROM (EEPROM), a register, a removable disk, and any other suitable medium for storing software and/or instructions that may be accessed and read by a computer. The computer-readable medium may be resident in the processing system, external to the processing system, or distributed across multiple entities including the processing system. The computer-readable medium may be embodied in a computer-program product. By way of example, a computer-program product may include a computer-readable medium in packaging materials. Those skilled in the art will recognize how best to implement the described functionality presented throughout this disclosure depending on the particular application and the overall design constraints imposed on the overall system.
“Based on” means that something is determined at least in part by the thing that it is indicated as being “based on.” When something is completely determined by a thing, it will be described as being “based exclusively on” the thing.
“Processor” means devices which can be configured to perform the various functionality set forth in this disclosure, either individually or in combination with other devices. Examples of “processors” include microprocessors, microcontrollers, digital signal processors (DSPs), field programmable gate arrays (FPGAs), programmable logic devices (PLDs), programmable logic controllers (PLCs), state machines, gated logic, and discrete hardware circuits. The phrase “processing system” is used to refer to one or more processors, which may be included in a single device, or distributed among multiple physical devices.
“Instructions” means data which can be used to specify physical or logical operations which can be performed by a processor. Instructions should be interpreted broadly to include, code, code segments, program code, programs, subprograms, software modules, applications, software applications, software packages, routines, subroutines, objects, dynamic linked libraries, executables, threads of execution, procedures, functions, hardware description language, middleware, etc., whether encoded in software, firmware, hardware, microcode, or otherwise.
A statement that a processing system is “configured” to perform one or more acts means that the processing system includes data (which may include instructions) which can be used in performing the specific acts the processing system is “configured” to do. For example, in the case of a computer (a type of “processing system”) installing Microsoft WORD on a computer “configures” that computer to function as a word processor, which it does using the instructions for Microsoft WORD in combination with other inputs, such as an operating system, and various peripherals (e.g., a keyboard, monitor, etc.).
The foregoing description has been presented for purposes of illustration and description of this invention. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Examples given, such as involving the use of phrases such as “for example”, “by way of example” and “an example”, are to be interpreted as non-limiting. Obvious modifications or variations are possible in light of the above teachings. The embodiment was chosen and described in order to best illustrate the principles of the invention and their practical application to thereby enable one of ordinary skill in the art to utilize the invention in various embodiments and forms, and with various modifications as are suited to the particular use contemplated. Although only a limited number of embodiments is explained in detail, it is to be understood that the invention is not limited in its scope to the details of construction and arrangement of components set forth in the preceding description or illustrated in the drawings. The innovation is capable of being practiced or carried out in various ways and in various forms and other embodiments. Also specific terminology was used for the sake of clarity. It is to be understood that each specific term includes all technical equivalents which operate in a similar manner to accomplish a similar purpose. It is intended that the scope of the invention be defined by the claims submitted herewith.
Number | Name | Date | Kind |
---|---|---|---|
4748554 | Gebauer et al. | May 1988 | A |
4787049 | Hirata et al. | Nov 1988 | A |
4833617 | Wang | May 1989 | A |
5374884 | Koren et al. | Dec 1994 | A |
5598076 | Neubauer et al. | Jan 1997 | A |
5631851 | Tanaka et al. | May 1997 | A |
6266572 | Yamazaki | Jul 2001 | B1 |
6269284 | Lau et al. | Jul 2001 | B1 |
6291959 | Yoshida | Sep 2001 | B1 |
6502007 | Kanamoto et al. | Dec 2002 | B1 |
6512961 | Fukaya et al. | Jan 2003 | B1 |
6584415 | Uneme | Jun 2003 | B1 |
6662073 | Fujishima | Dec 2003 | B1 |
6671571 | Matsumiya et al. | Dec 2003 | B1 |
6885984 | Suzuki et al. | Apr 2005 | B1 |
6889114 | Nakamura | May 2005 | B2 |
6909937 | Sugiyama et al. | Jun 2005 | B2 |
6985792 | Tomelleri | Jan 2006 | B2 |
7219041 | Hamann | May 2007 | B2 |
7260446 | Besuchet | Aug 2007 | B2 |
7477960 | Willis et al. | Jan 2009 | B2 |
7933679 | Kulkarni | Apr 2011 | B1 |
7979254 | Ohashi et al. | Jul 2011 | B2 |
8010328 | Frisken et al. | Aug 2011 | B2 |
8014892 | Glasser | Sep 2011 | B2 |
8090557 | Koch et al. | Jan 2012 | B2 |
8229594 | Ichikawa | Jul 2012 | B2 |
8271118 | Pietsch et al. | Sep 2012 | B2 |
8326448 | Schneider | Dec 2012 | B2 |
8380462 | Jalluri et al. | Feb 2013 | B2 |
8538574 | Hahn | Sep 2013 | B2 |
8655476 | Wang | Feb 2014 | B2 |
8655479 | Coffignal et al. | Feb 2014 | B2 |
8666533 | Lorenz et al. | Mar 2014 | B2 |
20040267508 | Huang et al. | Dec 2004 | A1 |
20090204249 | Koch | Aug 2009 | A1 |
20130253694 | Chung et al. | Sep 2013 | A1 |
20140025192 | Seya | Jan 2014 | A1 |
20140129024 | Lee et al. | May 2014 | A1 |
20140288692 | Kawashima | Sep 2014 | A1 |
20140371905 | Eberst et al. | Dec 2014 | A1 |
20150039122 | Barakchi Fard | Feb 2015 | A1 |
20150088301 | Erdim et al. | Mar 2015 | A1 |
20150127139 | Bolin et al. | May 2015 | A1 |
20150227133 | Kurohara | Aug 2015 | A1 |
20150268661 | Ogawa | Sep 2015 | A1 |
Number | Date | Country |
---|---|---|
H07-132440 | May 1994 | JP |
501172 | Sep 2002 | TW |
533467 | May 2003 | TW |
579424 | Mar 2004 | TW |
I379074 | Dec 2012 | TW |
201319527 | May 2013 | TW |
Entry |
---|
Wang, Zhigang et al., “Model Development for Cutting Optimization in High Performance Titanium Machining”, 2013, Makino, Inc., pp. 1-16. |
International Search Report and Written Opinion dated Jun. 29, 2017 for Application No. PCT/US2017/016382, 14 pgs. |
Number | Date | Country | |
---|---|---|---|
20170227945 A1 | Aug 2017 | US |