The present invention is directed to methods for forming three-dimensional objects on a layer-by-layer basis and, more particularly, is directed to a method of identifying vertices of triangles used in the STL (stereolithography file format) data that is input from Computer Aided Design (CAD) data so that the contour data is accurate, smooth and with no lost features.
In recent years many different techniques for the fast production of three-dimensional models have been developed for industrial use. These are sometimes referred to as rapid prototyping and manufacturing (xe2x80x9cRPandMxe2x80x9d) techniques. In general, rapid prototyping and manufacturing techniques build three-dimensional objects layer by layer from a working medium utilizing a sliced data set representing cross-sections of the object to be formed. Typically, an object representation is initially provided by a CAD system.
Stereolithography, presently the most common RPandM technique, may be defined as a technique for the automated fabrication of three-dimensional objects from a fluid-like material utilizing selective exposure of layers of the material at a working surface to solidify and adhere successive layers of the object (i.e., laminae). In stereolithography, data representing the three-dimensional object is input as, or converted into, two-dimensional layer data representing cross-sections of the object. Layers of material are successively formed and selectively transformed or solidified (i.e., cured) using a computer controlled laser beam of ultraviolet (UV) light into successive laminae according to the two-dimensional layer data. During transformation, the successive laminae are bonded to previously formed laminae to allow integral formation of the three-dimensional object.
Stereolithography represents an unprecedented way to quickly make complex or simple parts without tooling. Since this technology depends on using a computer to generate its cross-sectional patterns, there is a natural data link to CAD/CAM. However, such systems have encountered difficulties relating to shrinkage, curl and other distortions, as well as resolution, accuracy, and difficulties in producing certain object shapes.
Although stereolithography has shown itself to be an effective technique for forming three-dimensional objects, various improvements addressing the technology""s difficulties have been desired for some time. Many improvements have addressed the aforementioned difficulties and have been made to increase object accuracy and appearance, as well as optimize slicing speed of the build object over the years. However, there still remains a need for further improving the build object appearance and ease of making certain object shapes. Various aspects of the stereolithographic building process can impact the build object appearance and ease of generation of the three-dimensional object. For instance, one aspect and area for needed improvement is the accuracy of contour data generated by slicing the triangles in the STL file format.
Slice(trademark) software is the stereolithographic software program that converts the three-dimensional STL file triangle information or model data into two-dimensional contour SLI data. The Slice software program defines the geometric pattern which the laser in the stereolithography (SLA(copyright)) system scans to solidify the photopolymer liquid that is used to form the build object. The STL file triangle data is processed into layer vector data, or the Slice files with the aforementioned SLI data. This is accomplished by taking successive cross-section slices at a specified thickness starting at the bottom of the model. Each slice then represents a two-dimensional cross-section at the given Z-height of the model. The functioning of an SLA(copyright) system and utilization of a slicing program is explained in U.S. Pat. Nos. 5,059,359; 5,137,662; 5,184,307; 5,345,391; 5,776,409; 5,854,748; 5,870,307; 5,943,235; 6,027,682; and 6,084,980, all assigned to the assignee of the present invention.
The STL model is defined by a series of triangles that represent the surface of the model. Each triangle is represented by three vertex points, as seen in FIG. 3. The normal formed by these vertex points defines the surface angle of the triangle. The three vertices and the normal define a triangle. The coordinates of each vertex (X, Y, Z) are represented in CAD floating point units. The typical resolution of these points would be at least a 0.0001 for inch and 0.0025 for mm STL models. The contour data produced by the slicing operation is translated from the three-dimensional CAD floating point data to two-dimensional integer SLI data using the slice resolution parameter. Slice resolution defines how many integer slice units are in one CAD unit. A typical slice resolution for inch CAD models is 2,000. This means there are 2,000 slice units per one inch CAD unit.
As the CAD STL data is being read into memory from the file, the triangle vertices are converted from CAD floating point data to SLI integer data using the slice resolution conversion factor. Therefore upon completion of the STL input, all triangle data is represented in integer format. The process of slicing the triangle data is now ready to start, but first an initial Z-starting point must be selected. The optimum Z-starting point is the real Z-bottom of the model. However, a starting Z-plane for a particular model must be selected, keeping in mind any other models that may be being built on the same SLA system platform in the same build cycle so that all the Z-planes at a given slice interval are aligned. Even where the starting slice layers of models being concurrently built are even multiples of the slice thickness, there are many orientations of triangles where the actual triangle Z-components do not lie on a Z-slice boundary layer. This is problematic because, if a model""s features lie within the slice layer boundaries and not on the boundaries, those features will be lost. If corrective measures are employed, such as xe2x80x9csnappingxe2x80x9d or moving all Z-vertices on even slice boundaries, part features may be preserved but part distortion is created. Where triangle vertices lie between layers, the xe2x80x9csnappingxe2x80x9d of the Z-vertices can create contour data that is inaccurate, rough and therefore undesirable. In some cases the contour data will produce undesired slivers and projections. These problems are solved in the method of the present invention wherein smooth contour data is obtained, eliminating the undesired elements and side effects of prior techniques.
It is an aspect of the present invention that a smoother contoured build object or part is obtained that does not modify the original STL model data.
It is another aspect of the present invention that the vertices of the triangles in the tessellated build object or model are considered at their exact SLI unit location while performing the slice function.
It is a feature of the present invention that the vertices of the triangles in the STL files are not snapped or moved as the STL data is processed into layer vector data during the slice function.
It is another feature of the present invention that the vertices of the triangles in the tessellated build object or model are identified during the slice function and a slice layer is performed such that intermediate slice layers are inserted between slice layers so that the intermediate slice layers pass through intermediate vertices to produce a smooth contour.
It is yet another feature of the present invention that the intermediate slice layers and the original slice layers are united in a Boolean union function to produce one smooth contour representing the slice layers at n and n+1 in the Z-direction.
It is still another feature of the present invention that intermediate slice layering is performed only on layers that have intermediate triangle vertices.
It is an advantage of the present invention that the contours generated by the micro-slicing technique employing intermediate slicing are smooth and a more accurate representation of the actual STL model than achieved by prior slicing techniques.
It is another advantage of the present invention that the slicing technique does not expend time slicing accurately if a slice layer does not have intermediate vertices.
It is still another advantage of the present invention that the final build object or model obtained by using the micro-slicing or intermediate slicing technique is smoother and more accurate than parts obtained by using prior slicing techniques.
It is yet another advantage of the present invention that the build object has a better surface appearance than parts obtained by using prior slicing techniques.
These and other aspects, features, and advantages are obtained by the present invention through the use of a technique employing micro-slicing or intermediate slices in the original slice layer that pass through the vertices of triangles in the tessellated build object to create a better appearing final part with smoother contours and which is a more accurate representation of the actual STL model.