There are currently several known devices that are capable, with operator input, of utilizing electronically stored CAD drawings to generate cutting instructions for two-dimensional cutting devices. It will be appreciated that generally X-Y coordinate based instructions are used to provide a physical reference for these types of cutting devices. The cutting instructions are generally written in a control code format (e.g., computer numeric control or "CNC") or other low-level programming language used for the various cutting devices' machine controllers. As those skilled in the art will appreciate, however, low level computer languages, such as the CNC type format, are both difficult and tedious languages in which to program.
Many plans and detailed specifications are now being written with CAD type programs, which generally outputs a standardized file format known as "DXF." One example of a CAD type program is AUTOCAD. The DXF format is a higher level language which includes information on each of the elements in the drawing (i.e., draw primitives), including lines, arcs, etc. The information itself is provided in terms of X-Y coordinates and includes size, location, etc. of the various draw primitives.
The CAD programs and the standardized DXF output includes drawbacks such as rounding errors and does not contain very much information on the drawing--other than the basic information on the draw primitives. Due to these drawbacks, the DXF output cannot be immediately translated into CNC, since the CNC controller cannot compensate for the information missing from the DXF output and the rounding errors.
Programs have previously been created (e.g., NC Autocode) which prompted an operator to manually format and insert certain information into a DXF file. This human interface allowed a transition to occur between the DXF format into the CNC format. By these methods, when an object was to be cut, an operator was required to determine cutting paths by using a "point and click" program to define starting and ending points for each segment that needed to be cut. This was done one after another for each line, segment, arc, which required cutting. The program would then insert the manually entered information in order to make a direct translation of the code into CNC. This method had several drawbacks, including that the programs did not have enough information about the overall CAD design. Therefore, when using these methods, the efficiency and optimization of the translation of DXF into CNC became solely dependent upon the operator's skill. The programs took large amounts of time to operate since they required constant stopping for operator input.
More specifically, in the past the programs which translated CAD generated DXF files into a machine code format required a human operator to determine the cutting outlines, the punch points, and the quickest path from one location to another. It also required the operator to determine when to turn the cutting device on and off, determine when to actuate other elements of the cutting device (i.e., the abrasive in a water jet device), determine the direction to cut each piece, and determine when to free pieces which may be located or cut inside of one another. Still further, the operator had to satisfy the constraint of cutting from left to right or in some other known manner, satisfy the constraint of minimizing the punching of holes, and determine where to punch necessary holes. As noted above, this was typically done in add-on packages to a CAD type program with the results being output directly into CNC instructions. An example of this type of program is CAMBAAL, a program from a manufacturer located in Sweden.
Other programs such as FABRICAM software manufactured by Metalsoft of Santa Anna, Calif. is a full fledged data entry CAD system, and reads CAD format files. However, this program suffers from the same drawbacks as the systems discussed above.
One well known example of a two dimensional cutting tool is a waterjet cutting device manufactured by Ingersoll-Rand. This waterjet uses an X-Y coordinate scheme to accurately cut glass, plastics, metals, and the like with a high pressure waterjet. An abrasive is included in the high pressure stream of water. Many other uses of a waterjet are known. For example, a waterjet can also be used to cut candy, frozen pies, and other foodstuffs. In the latter examples, a different fluid (such as cocoa butter) may be used, and an abrasive may not be necessary. In the waterjet, a low level code is generated by a controller which is fed CNC instructions. The CNC instructions are provided either from a human programmer or from a prior art "point and click" translation program. Thus, this system suffers several drawbacks including detailed operator involvement and inaccuracies generated from the CAD program.
Therefore, as can be appreciated, the prior methods of analyzing and providing instructions to a two-dimensional cutting system is characterized by complex, inefficient, and time consuming programs. The present invention addresses these problems associated with human intervention systems by, among other things, using several programmed algorithms and constraints running in connection with a computing device to automate the procedure of generating instructions to a cutting device from a DXF file.