EFFICIENT SLICING FOR LAYERED MANUFACTURING ... - CiteSeerX

32 downloads 15975 Views 58KB Size Report
An adaptive slicing algorithm that can vary the layer thickness in relation to local geometry ...... for Layered Manufacturing Techniques", Computer Aided Design, ...
EFFICIENT SLICING FOR LAYERED MANUFACTURING Kamesh Tata1, Georges Fadel2, Amit Bagchi3 and Nadim Aziz2 Center for Advanced Manufacturing Clemson University

ABSTRACT An adaptive slicing algorithm that can vary the layer thickness in relation to local geometry is presented. The algorithm is based on three fundamental concepts: (i) choice of criterion for accommodating complexities of surfaces, (ii) recognition of key characteristics and features of the object, and (iii) development of a grouping methodology for facets used to represent the object. Four criteria, cusp height, maximum deviation, chord length and volumetric error per unit length, are identified and the layer thickness is adjusted such that one of the four is met. Next, key characteristics of the object, such as horizontal and vertical surfaces, pointed edges and ends, are identified based on the local changes in surface complexity, and slice based feature recognition is introduced to identify the nature of a feature, protrusion or depression, by studying the slice data. Note that the present approach uses information only from the tessellated model, and thus is different from current implementations. Finally, the concept of grouping of the facets based on their vertex coordinates is developed to minimize the number of searches for possible intersection of the facets with a slice plane. The slicing algorithm is interfaced with adaptive laminated machining and the stereolithography process through a CNC post processor and a hatching algorithm respectively. A comparison of the estimated surface quality and build time indicates that adaptive slicing produces superior parts in a shorter build time. The implementation of this work is protected under US Patent laws (Patent # 5,596,504, January 1997). INTRODUCTION The rapid prototyping process, in its simplest form, involves breaking up of a 3-D CAD model into 2-D slices. The slice data is then translated into a physical model. All of the current RP processes, though adapting completely different techniques, have one common underlying theme: a layered approach to building parts. It is the purpose of this work to study and improve the layered approach in an effort to increase the productivity of RP processes. Assuming that a unit cube with a hole in the center, as shown in Figure 1, has to be built, it is first modeled in any CAD system and an STL (stereolithography) file is obtained. The STL file is a tessellated representation where the solid model is represented by a number of three sided planar facets (triangles), each facet defining part of the external surface of the object. This format, introduced by 3D Systems, has become the de-facto industry standard and is now available for most CAD systems as an integral part of their software. Figure 2 establishes the wide spread use of STL files, and therefore, any work based on using the STL format is immediately applicable to the current RP industry. A slicing algorithm must be used to obtain 2-D contours from the STL file. This is done by intersecting the facets with imaginary horizontal planes (or planes at an angle, as the case may be) and computing the points of intersection at various heights. Straight lines then join the points to obtain the contour of the slice. At each height, depending on the part geometry, there can be a single or multiple contours. This process is known as slicing and the resulting contours in each plane are called slices. In our present example, we have two contours at each height: one representing the outer surface of the cube and the other representing the hole. (Figure 1) Layering Error - Error in Layered Manufacturing As can be seen in Figure 1, it is possible to construct accurately a part like a cube by properly stacking the layers. However, the same is not true with solid models featuring curved or inclined surfaces. These surfaces, when sliced and created from the resulting layers, will suffer an inevitable loss of information. This is illustrated in Figure 3 where a hemisphere is sliced. By superimposing the original CAD model over the layered part, the layering error (LE), also known as stair stepping error, is shown. Layering error is mainly responsible for the poor quality of RP 1

Plynetics Express, Schaumburg, IL Clemson University, Clemson, SC 3 MTD Products, Cleveland, OH. 2

parts. It contributes not only to the surface roughness but also, more importantly, to the form error of the final part. It is therefore imperative that ways to eliminate or reduce layering error be investigated. Methods to Eliminate Layering Error From Figure 3, it can be easily deduced that decreasing the layer thickness can reduce layering error. However, by modifying the process, it is possible to eliminate the layering error. For instance, a 5-axis CNC machine is employed in a recursive mask and deposit process, known as MD* (Burns, 1993), to machine off the excess material in each layer after it is formed and make it conform with the required cross section. (But, addition of a multi axis CNC machine would make the process prohibitively expensive.) Another alternative suggested by Sean O. Riley (1993) is to form each layer slightly smaller than the desired cross section and fill the gaps with liquid material using forces of gravity. Another way to eliminate layering error is by proper orientation of the parts (Frank et al, 1993). This technique, though simple and not requiring any process modification, is incomplete because, it is not always possible to eliminate the error by changing the orientation. When considering a sphere or a cone, for example, layering error persists regardless of the orientation. As the above techniques to eliminate layering error are either expensive or incomplete, the only other immediately available and widely used method is to reduce the layer thickness to a value allowed by the process. Though this is a sure way of reducing the layering error, this also results in increased number of layers, typically leading to higher build times. However, this research demonstrates that it is not always necessary to sacrifice quality to reduce build time. On the contrary, the results of this work conclusively prove that, when compared to existing practices, superior quality parts can be produced with reduced build times. The importance of the slicing process cannot be overemphasized in layered building. It greatly influences the surface roughness, form error, preparation time and actual machine build time. Thus, both quality and processing time are affected by slicing. Slicing speed, accuracy of slices, automatic variations of layer thickness to achieve a pre-determined surface attribute, and recognition and retention of key characteristics are the characteristics of a good slicing algorithm. These characteristics provide a basis to compare various related algorithms and serve as a metric to evaluate them on a common scale. Past efforts to develop slicing algorithms were met with various levels of success. Restricted applicability to simple geometry or to certain processes, failure to vary layer thickness and recognize key characteristics are some of the important limitations. A slicing software is therefore needed that would overcome limitations that inhibit the progress of the RP field. Consequently, this research will propose an efficient slicing algorithm that is fundamental to the success of any layered process. The research objective has two components. i.

The development of a slicing engine constitutes the first of the two components. High speed, high accuracy, capability to vary the layer thickness, capability to recognize and retain key characteristics and to graphically represent slices will be the highlights of the engine. ii. Validation of the concepts of adaptive slicing constitutes the second component. An additive process (Stereolithography) and a subtractive process (CNC machining) are selected for this purpose. This also confirms that the slicing engine can be interfaced to any process regardless of the nature of the process. A hatching algorithm, which is required to build parts on a stereolithography machine, is also developed and incorporated into the software. LITERATURE REVIEW The focus of this paper is on slicing and post-slicing operations on tessellated files, primarily in STL format. Previous work has been done on improving surface quality through orientation, direct CAD interface, better control algorithms, however, these are not of direct bearing on the adaptive slicing idea. Few researchers have addressed the layer thickness issue: Chalasani (1992) proposed a contour tracing scheme, where 2-D contours at a particular height are obtained first by retrieving all the facets at that height from the facet list and then by following along the planes of the facets looking for entry and exit points. The algorithm was successfully implemented to slice STL files at one layer thickness and several parts were built on a SLA-250. Dolenc and Makela (1992, 1994) used cusp height as a criterion to adaptively slice STL files. Backtracking in adaptive slicing was briefly discussed. Peak detection was accomplished by looking for degenerate contours. Sreeram and Dutta (1995) developed a method to determine the variable thickness for a polyhedral object using optimization. Suh and Wozny (1994) developed an adaptive slicing procedure for parametric surfaces where vertical curvature at different points is computed and thickness calculated based on the maximum of these vertical

2

curvatures. Kulkarni and Dutta (1995) developed a procedure for adaptive slicing of parametrizable algebraic surfaces using cusp height criterion. Layer thickness is determined from the value of maximum curvature in the vertical direction. Recently, Sabourin et al, (1996) and Hope et al. (1997) also presented work on adaptive slicing showing the growing interest in this particular topic. Tata (1993, 1995) developed a marching algorithm for adaptive slicing of STL files. The foundation of this paper is the thesis whose public dissemination was delayed because of the patent application. THE SLICING ENGINE The basic function of the slicing engine is to generate two-dimensional slices from a three-dimensional tessellated model. The four key constituents of the slicing engine are: i. ii. iii. iv.

A facet processor for high computational speed, A key characteristic identifier (KCI), A thickness calculator for computing the layer thickness, and A slicer for generating two-dimensional contours.

The architecture of the proposed slicing engine is shown in the block diagram in Figure 4. Arrows show the information flow inside the slicing engine. Input to the engine is an STL file, while output is two-dimensional slice data. The facet processor receives the STL file, sorts and groups facets, and feeds the processed data to the other three members. The KCI recognizes the presence of key characteristics and sends their location to the thickness calculator, which in turn feeds that information along with its own output to the Slicer. The Slicer utilizes all the data received to generate two-dimensional slices and delivers them in the form of a data file or a visual display. The function of each member of the slicing engine is defined and its working details presented next. Definition of Terms Following is a general definition of terms used in this research. i. Facet: Any planar surface bounded by a three-sided polygon. ii. Slice Plane: Imaginary horizontal plane that is used to slice a faceted model. iii. Slice Axis: Axis perpendicular to the slice plane. Facet Processor The function of the facet processor is to arrange the triangular facets in the STL file into groups based on their location with respect to the base of the model. This is necessary because the STL file is an unordered collection of triangular facets and this lack of order is the prime reason for the inefficiency of slicing algorithms. Kirschman and Jara-Almonte (1992) estimated that 60% of the total preparation time of Stereolithography is devoted to slicing which is quite significant. Observations showed that plane facet intersection calculations required to generate the slice data consume only a fraction of the time spent on searching for the facets which intersect with a particular slice plane. For instance, out of 127 facets that define the surface of the sphere, shown in Figure 5, only 12 facets will have an intersection with the slice plane AA. This means 94.4% of the total facets will not have an intersection and the time spent in checking those triangles for an intersection goes to waste. Thus, merely avoiding checking triangles that will not have an intersection with a particular slice plane can save considerable computation time. Our goal should be to identify, for every slice plane, such non-intersecting triangles in the shortest possible time. Sorting of triangles is one method to reduce the checking time and is recommended by 3D Systems (1989). This does not fully alleviate the problem because sorting is unidirectional, either descending or ascending. Too many variations in sizes of triangles coupled with model complexity often diminish the benefits of sorting. A new approach, called grouping, is proposed to achieve this goal. Facet Grouping First, three vertices of each facet are sorted in ascending order with reference to the slice axis. The sorting of facets follows this. Without losing generality, for the purpose of explanation, the slice axis is assumed to be the z-axis. Grouping of facets is then performed considering minimum and maximum z coordinate values as the grouping criteria. As the vertices of each facet were sorted earlier, the first vertex will always contain the minimum z coordinate value (z-min) for that facet. All facets with the same z-min are stored as one group called a facetgroup. Facets in each group are further divided into subgroups called facet-sub-groups based on the maximum z

3

coordinate value (z max). Figure 6 shows arrangement of groups and sub-groups in a tree structure. The functions of the facet processor are summarized in the flow chart shown in Figure 7. The grouping methodology adopted here allows for easy identification of facets that represent a feature. For example, facets that form vertical or horizontal walls would automatically fall into either a group or a sub-group as shown in Figure 8. This important observation of grouping is later utilized for feature recognition. However, facets in each sub-group are not in "geometric" order. By geometric order, we mean, the order of facets according to the geometry of the model. For instance, a sequential arrangement of facets T3 through T10 would form the middle portion of the cube. But facet-sub-group2, in the cube example, though contains facets T3 through T10, may not have them in that order. Such an order is required so as to compute the intersections in minimum time. This problem will be dealt with while describing the fourth component of the engine viz. the slicer. Key Characteristics Identifier A simple knowledge base, supported by a few rules based on simple geometric and engineering principles, is created with an aim to recognize the following from any tessellated model (solid model): i. Base faces of features, ii. Type of features (protrusion or depression), and iii. Geometric shape and orientation of features. The Three Types of Base Faces The top and bottom faces of any feature, including the object, may be termed as base faces. Recognition of base faces is essential to improve the tolerances of layered models. For the purpose of layered manufacturing, the effort must be to identify the existence and then to determine the height (along the slice axis and from a reference point) of a base face so that the slice plane can be forced to assume that height. Since a polygon is comprised of only two basic entities, point and line, only their combinations will result in any topologically significant characteristic. Consequently, any solid represented by planar polygons can have only three types of base faces: i.

Horizontal surface: A horizontal surface is represented by a single or multiple polygons parallel to the slice plane. Figure 9 shows horizontal faces composed of triangular facets. Checking unit normals or ordinate values of facets can identify horizontal and vertical surfaces. If brute force approaches to searching horizontal or vertical facets are used, computational costs will be tremendous as the facet count increases. Fortunately, facet-groups formed earlier will greatly facilitate the searching process. In fact, it can be seen that during grouping, all facets contained in a horizontal or a vertical face are automatically stored in either a facet-group or a facet-sub-group. ii. Pointed edge: When at least two non-coplanar polygons share an edge, the edge may be termed as a pointed edge. This is illustrated in Figure 10 where a block with v-grooves is shown. It is necessary to narrow the definition of a pointed edge. First, none of the polygons sharing an edge should be horizontal or vertical. This is due to that horizontal and vertical faces are already identified and with that all their edges. Further, the common edge must be parallel to the slice plane. (Only then a separate effort is required for its retention in the sliced model). A pointed edge can now be defined as follows: Any non-horizontal and non-vertical facet with two vertices having the same z coordinate value will form a pointed edge provided the second facet that shares these vertices (there will be only one such facet) is not in the same plane as the first facet and is non-horizontal and non vertical. Also, the angle between those two facets needs to be defined by the user. This is to avoid mistakenly identifying the edges of facets approximating curved surfaces as pointed edges. However, identifying two vertices of a facet with the same z coordinate value, the very first step in identifying a pointed edge, demands virtually every vertex of all non-horizontal and non-vertical facets in the model to be searched. This again leads to high execution times. iii. Pointed end: When at least two non-coplanar polygons share a vertex, the vertex may be termed as a pointed end. The tip of a cone and corner of a block are examples of pointed ends. Pointed ends can be identified from an STL file by looking for a single vertex shared by several non-coplanar facets. For example, the apex of a cone is shared by a number of non-co planar facets that form the conical surface. This calls for checking every vertex in the model for the number of facets that share the vertex and their unit normals. Identification of these three types from an STL model format is basically a searching operation. The computational time increases with the number of facts.

4

Base Faces - Change in the Number of Contours Clearly, identifying pointed ends and edges is a time intensive search operation. This problem can be largely overcome by adopting a new strategy. This strategy is based on the fact that whenever there is a change in the number of contours in successive slices, there lies a base face of a feature. The exact location of the base face can be anywhere between the two slice planes or contained in the slice plane which has the greater number of contours. Once a change in the number of contours is observed, the exact location of the base face can be found by considering facet groups in that region and applying the methods suggested above. However, this strategy requires slicing the model and counting the number of closed contours in each slice. Slice Based Feature Recognition - Protrusions or Depressions Protrusions are any projections on the object, such as pads, bosses, and mounds, while depressions are holes of any shape. The easiest way of finding the type of a feature is by studying the slices and the contours within each slice. The following rules will provide methods to distinguish between protrusions and depressions. These rules are simple, definite, unambiguous, and true for any solid. Before going further, it is necessary to define certain key words used in the preceding part of this section. Rule 1: When an imaginary plane slices a solid, the resulting slice may contain a single or multiple, non-intersecting closed contours. This is true regardless of the angle and the position of the slice. Rule 2: If a single or multiple empty contours are surrounded by a single larger contour, all inner contours represent depression features. This can be seen in Figure 11, where a rectangular block with several holes is shown. Slice at AA has several empty contours surrounded by a single large contour. Obviously, all inner contours represent holes and hence rule 2 is satisfied. Rule 3: If two or more contours are nested within each other, all even-numbered contours represent depressions while all odd-numbered contours represent protrusions, the outermost contour being number 1. Figure 12 shows a cylindrical block with multiple holes one inside the other, and illustrates rule 3. Rule 4: Any unbounded contour represents a protrusion feature. Figure 13, where a number of protrusions are shown on the top of a rectangular block, clearly illustrates this point. The slice at AA contains several unbounded contours and clearly all are protrusions. This satisfies rule 4. Shape and Orientation of Features Once location and type of a feature are determined, further details like shape can be obtained by studying the unit normals of the feature’s facets. See Tata and Fadel (1996) for more information. THICKNESS CALCULATOR One of the fundamental problems for better process planning and eventually for greater efficiency (time vs quality) of the RP technologies is the limitation of a slice thickness that cannot be changed within the object (Chalasani, 1992). Since build time increases with number of layers, the objective of any layered process must be to build superior quality parts with fewer layers. Layering error (LE), (Figure 3) which is a function of the part geometry and layer thickness, is mainly responsible for surface roughness and form error. Surface Complexity With regards to layered manufacturing, surfaces can be broadly classified into two categories: i.

Regular surfaces: Surfaces perpendicular to the slice plane do not exhibit LE and may be termed as regular surfaces. An object bounded by any number of regular surfaces but bounded by two and only two horizontal surfaces can be termed as a regular object. Any regular object can theoretically be built in exactly one layer. Examples of regular objects are shown in Figure 14A. There can be multiple regular objects, as shown in Figure 14B, forming a more complex body. In order to build such a body, as many layers as the number of regular objects the body is composed of are required. Regularity, as can be seen in the figure, is dependent not only on the object geometry but also on the orientation of the object.

ii. Non-regular surfaces: Surfaces, which exhibit LE, may be termed as non-regular surfaces. Surfaces featuring slopes with respect to the slice axis are prone to LE because of an inevitable loss of information during slicing.

5

Further, the amount of information lost is related to the slope and the layer thickness. For a given layer thickness, LE increases with slope. Similarly, for a given slope, LE increases with layer thickness. This allows one to define surface complexity in terms of slope. Surface complexity S = tan |θ|

(1)

Where θ is the acute angle between the slice axis z (the axis along which the STL model is sliced) and its projection on the surface. This definition of surface complexity allows surfaces A, B, C and D in Figure 15 to have the same complexity with respect to the slice axis. According to Equation 1, complexity of regular surfaces is zero. For non-regular surfaces, complexity increases with slope and is infinite at θ equals 90º. This gives a zero or no complexity to vertical surfaces and infinite complexity to horizontal surfaces. Layer Thickness for Regular Surfaces Layer thickness for zero complexity surfaces must be chosen such that the fastest build time can be achieved. Such an optimum layer thickness is process dependent. For instance, maximum layer thickness in Stereolithography is decided by type of material, laser power, and other process parameters. Furthermore, as Jacobs (1992) explains, “Contrary to popular misconception, thicker layers do not always result in shorter build times.” The laser scan velocity decreases exponentially with increased cure depth, which accounts for an increase in build time. From the plot between c and θ for various values of l shown in Figure 16, when a uniform layer thickness of lmin is used, cusp height of the part varies from c1 to c2, where c1 = lmin Sin θmin and c2 = lmin Sin θmax and is shown by the bottom curve in the plot. lmin and lmax are the minimum and maximum layer thickness allowed by the process. Similarly, when lmax is the constant layer thickness used to build the part, cusp height varies from c3 to c4, where c3 = lmax Sin θmin and c4 = lmax Sin θmax and is shown by the top curve. In the plot, θ is varied from 0º to 90º and c1, c2, c3 and c4 are calculated accordingly and shown. The constraint equation for cusp height will then be c1 =cdesired = c4. When θ is zero, cusp height is zero for any l suggesting that any thickness can be used without having adverse effect on the surface quality. When θ is 90º, cusp height equals layer thickness. Two other criteria maximum deviation (l Tan θ) and chord length (l / cos θ) are also considered and constraint equations derived. Maximum deviation as a criterion is expected to be useful when it is necessary to contain the deviation of the layered model from the tessellated model within a predetermined value. Chord length as a criterion is expected to be useful when the deviation of the layered model not only from the tessellated model but also from the original model needs to be considered. A fourth criterion based on volumetric error is considered. Typically, a layered model can loose or gain volume over the tessellated model based on whether the LE is positive or negative. Except regular objects or bodies composed of regular objects, all other objects loose or gain volume in layered manufacturing whether the LE is positive or negative. The following analysis is done assuming a negative LE. The results, however, can be applied for both. The volumetric error is a function of perimeter (p) of the layer cross-section in addition to layer thickness (l) and surface complexity (S) and can be shown as Volumetric loss per layer = f (l, S, p)

(2)

It will not be feasible to maintain volumetric error constant between layers, because of the possible variations in the perimeter from layer to layer. Any attempt to keep the volumetric loss constant by varying the layer thickness is likely to lead to unacceptable form errors. One approach could be keeping the volumetric loss per unit length as an attribute. This can be expressed as Volumetric loss per unit length = volumetric loss per layer / perimeter of layer Strategy for Varying the Layer Thickness A criteria independent strategy is used for varying the layer thickness. A few rules, based on observation and logical reasoning, are defined as and when necessary to facilitate the adaptive slicing process. From now on, the terms facets and triangles are used interchangeably. Though the following process is developed primarily for three sided polygons, this process can be easily extended to any n-sided polygon.

6

The first slice plane must always pass through the lowest z-value (assuming slice axis along z) of the object to ensure that the bottom face is retained in the sliced model. This step is common for any object and serves as a good starting point for adaptive slicing. To calculate height of the next slice plane, all triangles that intersect with the current slice plane are to be found. Because of the facet processor, it is not necessary to carry out a triangle by triangle check. Instead, checking is done facet-group by facet-group, saving a very significant computation time. There might be one or more facet-groups that will have an intersection. Again, there might be one or more facetsub-groups in each such facet-group that will have an intersection. All such facet-groups and facet-sub-groups are found by applying a simple equation for intersection and are merged to form a single new group. Interestingly, all triangles in that group form a single or multiple, non-intersecting continuous chains each chain representing a closed surface. For instance, the slice plane at A-A in Figure 13 will pass through three different closed chains of triangles, while slice plane B-B will pass through only one continuous chain of triangles. The three chains of slice A-A represent the three closed surfaces, the cylinder, the rectangular block, and the cone. This leads to an important axiom. Slicing Axiom: For any closed surface, there can be one and only one continuous chain of triangular facets per slice plane. This axiom gives an excellent opportunity to detect any flaws in an STL file. Minor repairs to the STL file, like identifying missing vertices or edges, can be done. Worst Case Analysis Now, to determine the layer thickness, the worst case, the most complex surface, in each layer is considered. The controlling normal, the normal of the most complex surface is obtained from the current chain or chains of triangles. In fact, it is quite possible to obtain as many controlling normals as there are number of chains and vary the layer thickness for each chain separately. The procedure essentially remains the same. It is, however, not implemented in the software developed for this work. Next, depending on the user-defined criteria, any of the four criteria derived earlier or any new relationship developed by the user can be used to calculate the layer thickness l. Then, height of the next probable slice plane (say, ztemp,) is the sum of ztcurrrent and l. ztemp still need not represent the height of the next slice plane, for two reasons. There could be a key characteristic (KC) or a sudden change in complexity level. If a KC is present between zcurrent and ztemp, ztemp is forced to assume the value of zKC. The second issue, because of its complex nature, merits a detailed discussion. Backtracking of Slice Plane Due to Sudden Change in Complexity Level Backtracking is essential to the successful development of a procedure for varying the layer thickness. It is required only in certain cases, when there is a sudden increase in complexity level. Dolenc and Makela (1994) have implemented backtracking, but the implementation details are not known. Backtracking, as the name suggests, is moving the slice plane backward until a pre-defined attribute is satisfied. Backtracking can be classified into two types, simple backtracking and repeated backtracking. The former works for cases when there is only one change of complexity level as shown in Figure 17. It depends not only on the new complexity level but also on the location of the current slice plane with respect to the new complexity levels. When multiple levels of complexity are encountered between the current slice plane and ztemp1, as illustrated in Figure 18, a repeated backtracking procedure is used. Looking for new facet-groups between zcurrent and ztemp1 leads to the identification of transition points, which is the key to a successful implementation of this logic. Each new facet-group marks a possible change in complexity level. When they are found, the lowest of all groups is considered first. The complexity level of the surface being represented by the new group is determined from its controlling normal. If there is an increase in complexity, the procedure described earlier in Case 3 is applied to decide whether backtracking is necessary or not. If backtracking is not necessary, the facet-group immediately above the earlier group is considered and the procedure repeated. However, when backtracking is enforced, ztemp1 assumes a new value of ztemp2. Then, all groups lying between the current group and ztemp2 are considered. The procedure is repeated until there are no more facet-groups to be checked. At the end, znext assumes the lowest of ztemp1, ztemp2... ztempn. The Slicer and the Marching Algorithm The function of the slicer is to compute plane-triangle intersections at any given height in the least expensive way. While the thickness calculator feeds the height of each slice, the facet processor feeds logically arranged facet-groups to the slicer. According to the Slicing Axiom, there will always be one or more continuous chain of triangles through which a particular slice plane passes. Such facet chains can be obtained for every slice

7

plane by determining and later merging all facet-groups and facet-sub-groups that will have an intersection with that slice plane. Intersections are then calculated marching from one triangle to its adjacent triangle using basic analytic geometry. Invariably the march ends at the first triangle that triggered the march and if there are triangles left over, it signifies that there is at least one more chain, representing a protrusion or a depression. In such cases, the process is restarted for the remaining triangles. This is done until there are no more facet-chains. There are two types of intersections, vertex and edge intersections and both need to be separately dealt with. The advantage of the marching algorithm is intersection points are always calculated in the correct sequence and the shape of the contour at any slice plane can be obtained by joining the intersection points in that order. Identifying protrusion and depression features is thus made much easier, because the intersections are calculated chain after chain for each slice plane. Significant reduction in overall computation time is another advantage. POSTPROCESSING OF SLICE DATA FOR STEREOLITHOGRAPHY MACHINES In order to realize the physical model, the slice data generated by the slicing engine needs to be postprocessed. Post-processing for the SLA-250 involves 1. Development of a hatching algorithm, and 2. Conversion of slice data into machine-readable form. Hatching When parts are built in layers, the cross sectional area of each layer has to be defined and filled with a pattern of vectors. This filling process is called hatching and the vectors define the hatch pattern. One of the time consuming tasks of any hatching routine is identifying holes and projections. Holes should not be hatched, while projections should. At the time of hatching, the information about the solid is no more available in a single piece. Most of it is divided and stored in a number of 2-D slices and some of it is lost. This implies that identifying a single hole or a projection might require studying several slices together. This is computationally expensive. Thus there is a need for an efficient hatching algorithm which identifies, in the quickest possible way, areas that need to be filled and areas that should not be. The following rule, developed while dealing with slice based feature recognition, is used for this purpose. Rule: If a contour is surrounded by n contours and n is an even number, the contour represents a protrusion and should be filled. On the other hand, if it is odd, it is a hole and should not be filled. (When n is zero, it is a protrusion.) This rule, which is central to the hatching algorithm developed in this research, can be explained as follows. Generally speaking of solids, i. A solid is always bounded, ii. There cannot be a solid without thickness, iii. And there cannot be a hole without a solid. These three simple and definitive statements ensure that when a solid is sliced the resulting contours are invariably closed and non-intersecting. Also, there will never be two holes adjacent to each other or one contained in the other without being separated by a definite distance. Furthermore, any unbounded contour (contours not surrounded by any other contour) can never be a hole. RESULTS AND DISCUSSION An evaluation of the slicing software developed in this research is followed by the experimental results obtained from prototyping using CNC machining and the stereolithography process. The design and manufacturing related data is analyzed and discussed in the context of layered manufacturing. Adaptive Slicing The effect of adaptive slicing on a faceted solid model composed of three different primitives and a freeform is shown in Figure 19. The STL file of the model consists of 1281 facets. A cusp height of 0.01 inch is chosen as the slicing criterion and the layer thickness is constrained between 0.2 inch and 0.001 inch. The following observations can be made from this figure. i. The maximum layer thickness (0.2 inch) is used for the vertical cylinder. ii. A constant thickness, which is smaller than the maximum value, is used for the cone. iii. For the sphere, layer thickness is varied gradually with the thickness decreasing toward the top.

8

iv.

For the freeform, layer thickness is varied continuously, with the thickness increasing or decreasing depending on the local surface complexity.

Savings in Estimated Build Time For the purpose of this analysis, build time is considered to be the actual machine time required to build the physical model on the machine and does not include pre-processing time. In layered manufacturing, build time can be divided into two components, one preparation time between layers and second process time which can be scan time in Stereolithography and material removal time in CNC machining. Clearly, if there are fewer layers, total preparation time will be reduced. The second component -process time- depends on the cross-sectional area generated in each layer. By approximating a surface with a fewer number of layers, the overall cross-sectional area generated will be smaller and by pegging the maximum layer thickness at optimum value for the process under consideration, the process time can also be smaller. Therefore, in this analysis, the number of layers will be used as a direct measure of the process time. Table 1, Table 2 and Table 3 show, for a predetermined criterion, the number of layers required to build seven different models using uniform layer thickness and adaptive layer thickness. Cusp height, maximum deviation and chord-length are the three criteria used in these tables, respectively. In all three, each model was sliced such that the value of cusp height, maximum deviation or chord length, as the case may be, measured anywhere on the model surface, was not more than the limiting value. Also, in all the three cases, the layer thickness was constrained between 0.02 inch and 0.005 inch. The number of layers saved by adaptive slicing over uniform slicing and the estimated build time are tabulated in the last two columns. These comparisons are made with respect to uniform slicing, since that is considered the current standard for all RP technologies. The reduction of number of layers varies between 30 and close to 12,000. The percentage savings in build-time range from 25% to 95%. Improvement in Estimated Surface Quality Table 4, Table 5 and Table 6 show, for the same three criteria, the improvements in surface quality on all seven models. Here again, the percentage improvements in estimated roughness analytically computed (maximum computed characteristic – chord length, cusp height and maximum deviation – in adaptive slicing versus uniform slicing) vary between 25% and 96%. With a requested deviation of 0.01 inch in all three criteria, the error in measured versus requested values at different locations varied between -0.0001 inch and 0.0006 inch. This very small error could have been introduced at the time of measurement and is negligible. The results are displayed in Table 7, Table 8, and Table 9, and confirm that there is a very good correlation between expected and actual values. Figures 20 and 21 show parts machined on the CNC machine. Savings in Machining Time A part with three cones, each having a different slope, shown in Figure 22, was selected to compare machining time, for a constant cusp height, with uniform and varying layer thickness. The STL file was sliced both uniformly and adaptively using a cusp height of 0.01 inch as the desired value. For adaptive slicing, thickness was constrained between 0.2 and 0.001 inch. Using Equation (1), for θmax= 40o, layer thickness for uniform slicing would be 0.0155 inch and was used for uniform slicing. The slice data obtained by adaptive and uniform slicing was converted into CNC code through a program developed in C and was used to machine the parts. From Table 10, to achieve a cusp height of 0.01 inch, the adaptively sliced model required 14 layers less than the uniformly sliced model. This resulted in a 33.33% saving in machining time for the adaptively sliced model. Moreover, from Table 11, for the adaptively sliced model, measured cusp height deviated from the requested cusp height by -0.0009 to +0.0006 inch. For the uniformly sliced model, measured cusp height deviated from the requested cusp height by -0.0093 to +0.0003 inch. Total width of the error is 0.0015 inch and 0.0096 inch for adaptive and uniform models. Thus, the adaptive slicing algorithm, when applied in layered manufacturing, not only delivers a surface quality requested but also ensures a nearly uniform surface quality throughout the object which is of significance to the industry. Experiments on the SLA-250 The STL file of a 1 inch sphere was sliced using the adaptive slicing algorithm and the slice data was hatched and converted into an .SLI file using the software built for that purpose. Using the .SLI data, two copies of the sphere were built on the SLA-250 with the SOMOS-3110 resin (Figure 23). On each part, measurements were taken at three different locations. An optical comparator was used for the measurements. At each location,

9

distances l and d, shown in Figure 24, were measured and cusp height was then calculated as Cusp height = l sin (θ) = l d / sqrt (d2 + l2) From Table 12 and Table 13, the error between the actual and the requested cusp height is between -0.0007 and 0.007. Out of the total of six measurements taken on the two copies of spheres, three measurements show good correlation with the requested cusp height. However, more measurements are required for a thorough analysis. Several parts were built on the SLA-250 to verify the algorithm's capability in application to the SLA. The procedure followed was to model an object on ARIES and create an STL file, slice and hatch the STL file using the software developed in this research, and feed the resulting SLI file to the SLA-250. The list of parts built is below. 1. 2. 3. 4. 5. 6. 7.

Sphere Cube with multiple holes Trumpet mouth-piece Gear Bottle Hub cap International Manufacturing System's test part 1 (IMS T1)

As can be seen, the parts chosen to build to test the software cover a wide range of geometries and sizes. Especially the IMS T1 part with several steps, holes, and a freeform surface is geometrically complex. Note that a block with tiny holes of 0.001 inch diameter was adaptively sliced. The adaptively sliced model retained all three holes, while the uniformly sliced model did not. This establishes that the algorithm developed recognizes the key characteristics present in the CAD model and retains them in the sliced model and thus eventually in the physical model. In terms of process automation, the .SLI file produced by the software is sent to the build computer of the SLA. This computer does not distinguish between such a file and one generated with the SLA’s own slicing software. Thus issues of crashes are handled similarly to standard operating procedures. A build time estimator can be used with the .SLI files and give the operator an idea of the build time irrespective of the layers thickness. CONCLUSIONS In the reported work, it is demonstrated that the productivity of layered manufacturing processes can be significantly improved by upgrading the slicing software. A new slicing approach is proposed as a part of this research. The strength of the algorithm is its ability to vary the layer thickness according to surface complexity in order to maintain a predefined criterion within a user-defined value. Four different criteria were identified to vary the layer thickness: cusp height, maximum deviation, chord length and volumetric error per unit length. The first three criteria were implemented. Key characteristic recognition is another important achievement of this work. This feature would be essential to make accurate parts for fit and interference testing. Grouping of facets and marching algorithm contribute to the speed of slicing of tessellated objects. The adaptive slicing algorithm was implemented in the C language on a Unix platform. Several 3-D models in STL format, including the International Systems Test Part 1 (IMS T1), were successfully sliced using the software. The algorithm was validated on a SLA-250 and on a 3-axis vertical CNC milling machine. A hatching algorithm was developed for validation on the SLA-250. Freeform surfaces were successfully machined on the CNC using the three criteria mentioned above. REFERENCES 3D Systems Inc., (Valencia, CA), 1989, "Stereolithography Interface Specification." Burns, M., "Automated Fabrication, Improving Productivity in Manufacturing", Prentice-Hall, Inc., Englewood Cliffs, N.J., 1993. Chalasani, K. L., Grogan, B., Bagchi, A., Jara-Almonte, C. C., Ogale, A. A., and Dooley, R. L., "An Algorithm to Slice 3-D Shapes for Reconstruction in Prototyping Systems", Computers in Engineering - Volume One, ASME 1991. Chalasani, K. L., "Design and Implementation of Slicing and Hatching Algorithms for Freeform Fabrication", M. S. Thesis, Clemson University, Clemson, S. C., 1992. Dolenc, A., and Makela, I., "Slicing Procedures for Layered Manufacturing Techniques", Computer Aided Design,

10

Vol. 26 No 2. pp. 119-126, 1994 Frank, D., Geuer, A., and Fadel, G. M., " Definition of Rules for a Preferred Orientation of Rapid Prototyping Parts with the Help of an Expert System", Technical University of Munich and Clemson University, 1993. Frank, D. and Fadel, G. “Expert System Based Selection of the Preferred Direction of Build for Rapid Prototyping Processes”, Journal of Intelligent Manufacturing, 6, pp 339-345, 1995. Hope, R.L., Roth, R.N. and Jacobs, P.A., “Adaptive Slicing with Sloping Layer Surfaces” Rapid Prototyping Journal, Vol. 3 #3 pp. 76-88, 1997. Jacobs, P. F., "Rapid Prototyping & Manufacturing, Fundamentals of Stereolithography", Society of Manufacturing Engineers, 1992. Jara-Almonte, C. C., Bagchi, A., Ogale, A. A., and Dooley, R. L., "A Design Environment for Rapid Prototyping", Center for Advanced Manufacturing, Clemson University, Clemson, S. C., 1991. Kirschman, C., and Jara-Almonte, C. C., "A Parallel Slicing Algorithm For Solid Freeform Fabrication Processes", Proceedings of the 1992 Solid Freeform Fabrication Symposium, Austin, TX, August. Kulkarni, P. and Dutta, D., "Adaptive Slicing of Parameterizable Algebraic Surfaces for Layered Manufacturing", Proceedings of the 1995 ASME Design Technical Conference. Boston, MA, Sept. 1995.3-5. Loney, C. G. and Ozsoy, M. T., "NC Machining of Freeform Surfaces". Computer Aided Design - volume 19, No. 2, March 1987, pp. 85-90. Mortenson, M. E., "Geometric Modeling". John Wiley and Sons, New York, N. Y., 1985. Rahn, C. D., Clemson University, Clemson, SC, Oral Communication, 1995. Riley, S. O., Ford Motor Company, Detroit, MI, Oral Communication, 1993. Sabourin, E., Houser, S.A. and Böhn, J-H., “Adaptive Slicing of Parameterizable Algebraic Surfaces for Layered Manufacturing”, Proceedings of the 1995 ASME Design Technical Conference, Boston, MA, Sept. 1995. Rock, S. J., and Wozny, "A Flexible File Format for Solid Freeform Fabrication", M. J., Rensselaer Design Research Center, Rensselaer Polytechnic Institute, Troy, N.Y., 1991. Sreeram, P. N. and Dutta, D. "Determination of Optimal Orientation Based on Variable Slicing Thickness in Layered Manufacturing," Proceedings of the 1995 ASME Winter Annual Conference, San Francisco, CA, Nov. 1995. Suh, Y. and Wozny, M.J., "Adaptive Slicing of Solid Freeform Fabrication Processes", Proceedings of the Solid Freeform Fabrication Symposium, University of Texas, Austin, August 1994, pp. 404-411. Tata, K. “Efficient Slicing and Realization of Tessellated Objects for Layered Manufacturing” Master Thesis, Mechanical Engineering Department, Clemson University, 1995. Tata, K. and Fadel, G.M., “Feature Extraction for Tessellated and Sliced Data in Layered Manufacturing” Proceedings of the Solid Freeform Fabrication Symposium, University of Texas, Austin, August 1996. TMC-1000TM Mill System, User's Guide for the IBM PC and PS/2, Light Machines Corporation, Manchester, New Hampshire, Issue 3, May 1991. Vouzelaud, A. F., and Bagchi, A., "Adaptive Laminated Machining for Prototyping Dies and Molds", Solid Freeform Fabrication Symposium, Proceedings, August 3-5, 1992, University of Texas at Austin. Zeid, I., "CAD/CAM Theory and Practice", McGraw-Hill, Inc., New York, N. Y., 1991.

11