Download as pdf or txt
Download as pdf or txt
You are on page 1of 25

1

Tele-Manufacturing: Techniques and Applications for Rapid Prototyping on the Internet/Intranets


1.1 Introduction
Rapid Prototyping Background Current Access to Prototyping Slicing a Model for Rapid Prototyping Objective and Motivation

1.2 1.3

Preliminaries
Rapid Prototyping Representation Current Slicing Algorithms Java Collaborative Design

Review of Related Works


Slicing Algorithms Cusp Height and Accuracy Decreasing Processing and Build Time Observations from the Reviewed Research

1.4

Computational Aspects and Procedures


Preparing the STL File for Slicing Searching for the Start of a Contour (Trigger Point) Determining the Trigger Point Edge Tracing Out the Contour

1.5

Prototype Implementation and Case Studies


System Architecture of the Prototype Program Initialization Data Input and Manipulation Search Method to Find Trigger Points Contour Tracing Implementation World Wide Web Access Results of Enhanced Algorithm

Utpal Roy
Syracuse University

M. Cargian
Syracuse University

1.6

Conclusions

The fundamental aspects of rapid prototyping systems have steadily matured since their inception in the 1980s. Intricacies of CAD model slicing for layered manufacturing are compounded by construction of a 3-D model from 21/2 -D slices. Surface nish problems, processing time, and accuracy are within the scope of this work, which entails the development of a slicing algorithm that works through the World Wide Web. Additionally, this process extends the current slicing algorithms to one that is more apt to deal with le processing time and connections for collaborative design. The use of the World Wide Web will enable this software to be utilized by others without the need for software at their sites. The software is developed with tools such as Java, HTML, and the Web.

2001 by CRC Press LLC

1.1 Introduction
Manufacturing in todays world has developed and changed due to new technology and worldwide competition. As a consequence, a need for quicker and faster development times for products has arisen. Other design and manufacturing technologies such as concurrent engineering, design for manufacture, just-in-time production, and computer-aided design (CAD) have pushed the design envelope further. To reduce the development times, companies need to be able to create prototypes of their new products quickly and cost effectively.

Rapid Prototyping Background


In todays competitive business arena, companies must continually strive to create new and better products, faster and more efciently than their competitors. The design and manufacture process is continually enhanced to be more responsive to changes, as well as quicker to market. Many technologies and business practices, such as concurrent engineering, just-in-time production, and design for manufacture, have been utilized to decrease design time. In addition to these enhancements, over the past decade, rapid prototyping has evolved to improve the product design cycle. Rapid prototyping is a system for creating immediate prototypes of a new design or change that is used to evaluate it or in actual application. There are many CAD environments available for creating new engineering designs or concepts. As a new design or modication to a current design is developed in a package such as CATIA or Pro/Engineer, this model can then be created in a short time to have an actual prototype for further testing. This prototype, along with analysis tools, helps to quickly dene the success and failures of the new design. Previously, prototypes could be costly and take a long time to create. Once the prototype is complete, further modications may be needed, and again the cost and time increase. With rapid prototyping, there are costs and time associated with making the object, but at much lower expense to the designer. Where prototypes may have previously been measured in days and weeks, they now can be measured in hours. Rapid prototyping is also known as layered manufacturing (LM) as well as several other names. The LM process takes the CAD model of an object and virtually slices the object into many twodimensional (2-D) patterns of the cross section of the object. This stack of slices is then created by an LM machine, one layer at a time. Each layer adheres to the layer below it, eventually creating the nal prototype.

Current Access to Prototyping


After creating an object, a designer who wishes to have a prototype made has a few options. The le can be sent to an outside prototyping agency for price quoting and possible creation. Part of speed of rapid prototyping is lost due to the time spent communicating with the vendor, sending the object, and having it processed. Alternatively, the company can choose to invest in its own prototyping hardware, software, and people to staff it, which can be expensive. Additionally, there are several other factors to consider in the prototyping equipment, all of which have unique features and attributes that result in different prototype quality and nish.

Slicing a Model for Rapid Prototyping


A great deal of work and research has been done in the area of slicing the CAD model for rapid prototyping. These slicing algorithms take a CAD model and, based on a user-dened layer height, slice the model. Prototypes created in a layer-by-layer process exhibit a staircase effect on some surfaces. As shown in Fig. 1.1, the difference at the edge of the CAD model and the sliced model is termed the cusp

2001 by CRC Press LLC

FIGURE 1.1

Comparison of the CAD model to the sliced prototype.

height. Ideally, the cusp height should be a minimum for any object. Although the slice height can be changed by the user of most software packages, and will reduce the cusp height, a decreased xed slice height results in longer computing and processing time on the machine. In general, it would be advantageous for the slicing software to minimize the cusp height while performing the slicing procedure as quickly as possible.

Objective and Motivation


With this brief introduction to rapid prototyping, it can be seen that there are several areas that can be improved. Two of these improvements are in the accessibility of rapid prototyping software and the slicing algorithm. Currently, any institution wishing to implement rapid prototyping on a project must invest a large amount of capital in a free-form fabrication apparatus, software, and training, or have their model created by an outside rapid prototyping agency. This slicing module is aimed at being one of the design services for the collaborative product design environment (CPD) developed in the Knowledge Based Engineering Laboratory at Syracuse University. This CPD framework allows product design across the Internet by virtual collocation of people and services. Once the design work is complete within this environment, there are several Web-based services for testing and analysis of the model. Some of the services available include process planning for the part, casting analysis, and NC path planning. The objective of this work is to develop a module that will allow slicing for rapid prototyping from this environment. Internet prototyping could allow a required model to be sent instantly over the Internet and added to the queue of the layered manufacturing machine. The reduction in processing time of the sliced object needs to be addressed by utilizing a modied slicing algorithm. These objectives are to be met using a number of tools including, Java and the Internet.

1.2 Preliminaries
The essence for rapid prototyping is the need to obtain fast, cost-effective parts to aid in the design of a new product. There are several criteria that describe the layer-by-layer manufacturing process, including le format, slicing algorithms, and manufacturing systems. File format denes the current standards for object and feature information transfer. The prototype nish is directly affected by the slicing algorithm and manufacturing process used.

2001 by CRC Press LLC

FIGURE 1.2

Display of the STL le of a faceted object.

Rapid Prototyping Representation


The current exchange standard for rapid prototyping is the stereolithography (STL) le. The STL le is a triangulation of the surface of the object that creates a set of triangles (facets) that represent the surface of the original model. The triangulation results in a set of nonoverlapping triangles that do not extend outside of the objects boundaries but completely cover the entire surface of the CAD object. A sample tesselated object is shown in Fig. 1.2. The tessellation results in an unordered, feature- and topology-decient le. This le does not have any information on features such as holes, cuts, or protrusions. Additionally, there is no surface or contour data about the object. The STL le does not contain any information to drive the layered manufacturing process, leaving the slicing algorithm to nd all of the contours. Although the STL le does not help the slicing process with information, it is the industry standard that most CAD packages can create and is the neutral format utilized for this Web project.

Current Slicing Algorithms


Many current slicing systems utilize geometric intersections of a plane (horizontal to the stereolithography platform) with the object to dene each slice. Each new slice that needs to be dened is created by moving the intersecting plane further up the object as in Fig. 1.3. Once the line segments are found from these intersections, they must be sorted in a head-to-tail fashion, as in Fig. 1.4, to form the contour.

Java
A new tool for the Web is the Java programming language developed by Sun Microsystems, Inc., in 1991 (Cornell and Horstmann, 1996). It is becoming the next language of the Internet, and changes the way the World Wide Web operates. With Java, Web pages can come alive with graphics, animations, video, and sound. Java is a full-featured, object-oriented programming language that is adaptable to many situations. Within Java, the programmer can create applets (programs that run over the Internet or intranets) or applications. Applets are stored on an Internet/intranet server, and users download them when they

2001 by CRC Press LLC

FIGURE 1.3

Previous slicing algorithms that intersect a plane with the STL object to create each contour.

FIGURE 1.4

Resulting unsorted, unordered contour that needs to be arranged to form a complete contour.

arrive on a Web page which then runs locally on the users machine. An interpreter usually found in the Web browser is required to read and process the neutral Java le. Applications, on the other hand, are stand-alone programs that do not run inside a browser. Java programs are stored as bytecodes, intermediary les that allow the Java program to run on any computer that has an interpreter. There is no longer a barrier caused by differences among operating systems run on a computer. The code for a Java program can be written once, stored on a Web server, and then downloaded by the user onto any machine. Because popular browsers now support Java, and many operating systems are adding Java as a central feature, it is easy to run Java applets or applications. One limitation of the current system is a question of security. Most browsers disable Javas access to read or write to the local users machine. The security feature in the browser limits the Java program to only access les on the server from which it came. By doing so, a malicious program is prevented from erasing or damaging the users computer or data. If access is required to read and write on the local computer, Java can develop stand-alone applications. These applications are full-blown applications such as those created in C++ and can be run directly from the command line. The possibilities for Java-enabled Web pages are endless. Utilizing this programming language opens the possibility to the diskless computer, where all applications are stored on Internet/intranet servers.

2001 by CRC Press LLC

As programs are needed for specic tasks, they would be downloaded from a Web page. Whether or not Internet-centric computing becomes a reality, Java will have an important role in creating dynamic, useful Web pages.

Collaborative Design
The Internet and corporate Intranets have become a powerful tool for communication. Engineers and designers now have the opportunity to work on projects with people all over the world through the Web. Research in this area is being done at Syracuse University to make the collaborative design process possible for product design. Systems are being implemented to connect feature and part information with a sharable object using tools like VRML. This collaborative product design framework allows designers from all over the world to work together on a design. Once the design takes place in this networked enterprise, an Internet/intranet-based rapid prototyping module could then be used to process the CAD model to create the object. This program could be linked directly to a layered manufacturing machine to create the prototype immediately.

1.3 Review of Related Works


To make the rapid prototyping process more accurate and create better parts, a number of possible enhancements have been studied. Research suggests several main areas that help to improve the rapid prototyping process, including slicing algorithms, cusp height, part accuracy, and decreasing both processing and build time. Each of these areas relies heavily on the others because a solution in one area may help or hinder another.

Slicing Algorithms
A great deal of prototyping time is involved in the slicing of the CAD le. The slicing process has a direct effect on the length of time to build the prototype, as well as on the quality of the nished product. Any modications to the slicing process will help with the speed of the program. The current algorithms that create slices by intersecting planes with objects can be enhanced. Each facet that is intersected with a slicing plane, forms a line segment of the contour. Each of these unorganized line segments is then ordered from head to tail to create the closed contour. One method (Chalasani et al., 1991) offers an alternative to plane intersection slicing using the scan-line type approach to nd the contours of an object. By utilizing scan-line type slicing, the contour segments are found in a closed loop. The search starts at an origin point and searches until it intersects the object at either an edge or a vertex. Then, the tracing procedures are executed to generate the contour. This search continues, nding all of the contours that are present on that slice of the object. Although scan-line type slicing is more complex, it yields considerable savings. Two reasons explain this: there is no need to store the contour segments and then sort them at the end, and it reduces the need for difcult geometric calculations to nd the intersections with the facets. After the contours have been traced, a simple hatching routine is formed to drive the laser in the build process. At the time this chapter was written, the scan-line type approach had not yet been implemented. This process requires an exhaustive search of the entire object to nd all of the contours on any given layer. This searching is a computationally expensive procedure. One enhancement to this method utilizes topological information to increase slicing speed (Rock and Wozny, 1991). The rst information generated by this algorithm is connectivity information about the facets. Topology building compensates for some of the deciencies in the STL le by linking the three edges of each facet with the three neighboring facets. By searching through the STL le, the connections between facets and their edges can be saved for future use. A sort is used to nd the neighboring facet for each edge. The connectivity information is used during contour tracing to move from one facet to the next. The facets are then spatially partitioned into areas called bins. These bins store the numbers of the facets that pass through them. A facet may belong to one bin, several, or all of them, depending on the facets orientation and size. Figure 1.5 shows several facets of an object in relation to the different bins. Facet 1
2001 by CRC Press LLC

FIGURE 1.5

The four bins of the object, created in the z-direction.

FIGURE 1.6

Generating a line segment across a facet.

in this gure is completely contained within bin 3, whereas facets 2 and 4 are contained within several bins. Facet 3 lies in all four bins and would be recorded as such in the bin listing. These two steps of the algorithm are important for reducing slicing time. The next step is to nd an intersection of one of the facets with the slicing plane. Once this is found, the line segments of the contour are generated by intersecting the slicing plane with the next facets. This intersection determination is simplied by realizing that the normal to the slicing plane does not change, and the new point can be found through interpolation. The new point is given by:

New point Vertex 2 t ( Vertex 1 Vertex 2 )


The new point is shown in Fig. 1.6. As each edge is used in the tracing procedure, a ag is set so that the edge is not used again later. However, this method does not help to determine the starting point of the contour, as it still needs to be determined by intersecting two planes. Other research (Dolenc and Mkel, 1994) determines proper slicing procedures for handling at areas. During slicing, it is possible for the slice height to miss the beginning of a at feature (at meaning parallel to the slicing plane). Also, the abrupt change of the slope of the object must be noted to minimize
2001 by CRC Press LLC

the cusp height. The algorithm presented varied the slice height based on these problems of at surfaces, changing slopes, and cusp height.

Cusp Height and Accuracy


One methodology (Kulkarni and Dutta, 1995) varies the slicing thickness based on the geometric curvature of the surface at that slice. In areas where there is a large curvature, the slicing thickness is reduced; while in non-curved areas, the slice can be thicker to allow faster processing time. The amount of curvature of a surface is measured based on the changes in the normal to a surface in the area of concern. By computing the local curvature and comparing to the required cusp height for the model, the authors adjust the slicing height as necessary. To demonstrate their work, they use an analytical ellipsoid as a case study. First, the equation of the ellipsoid is parameterized and an equation for the normal curvature is dened. By maximizing the normal curvature with a constraint that the slice thickness must remain the same, the maximum curvature and layer thickness can be found. Typical solutions previously had been to check the cusp height after slicing and to reslice at an intermediate level if the cusp height was too great. By utilizing the new method, greater exibility and control is allowed over the cusp height. The case study presented shows the limitations of this method as it is a precise analytical model of an ellipsoid which has a known equation for its representation. The equation can then be used to test the curvature and set the cusp height accordingly. However, the idea needs to be extended to other objects and ultimately to any shape at all. Another possible modication to help part accuracy is to look at the le format in which the object is stored. When an object is tesselated, the accuracy is only as good as the approximation made by the STL le. The density of the tessellation can be adjusted to give better part accuracy, but at the expense of le size and slice time. Another method (Vuyyuru et al., 1994) gives an alternative le format by slicing the CAD object using non-uniform rational B-spline (NURBS) curves. Utilizing previous research (Rajagopalan, 1992) in which a SDRC I-DEAS solid model is sliced into NURBS for each layer, the curve information is stored in a universal le for later processing. Because the stereolithography apparatus requires two-dimensional vectors to move the laser, the NURBS curves must be changed to short line segments. Using two different methods, the authors create these line segments and create the SLI le from it, which drives the laser. The authors have managed to decrease the le size and increase the nish quality of the part using this method. It is obvious that the rapid prototyping world needs to move to more accurate parts in less time. Currently, there is no standard that allows NURBS slices to be created on all platforms with all CAD packages. The STL le still prevails due to its ease of implementation and acceptance by CAD vendors. In the World Wide Web project presented in this work, the STL le is used because of its commonality between platforms. Other accuracy problems exist in the tolerances that are held within the faceted model and the laser beam width (Kirschman, 1992). Ideally, the width would be zero, as each contour would then be traced out exactly. However, this is not the case. Due to the large creation table area relative to the laser, error is induced as the beam spreads when it is at an angle. Although suggestions are proposed to correct some of these problems, the other errors associated with layered manufacturing need to be xed rst.

Decreasing Processing and Build Time


As the word rapid implies, other methods must be looked at to make the entire process faster. On small parts, the process is governed by the dip and dunk time of the stereolithography apparatus. The ability to create several parts on the same platform would aid in creating more parts in less time. One process (Wodziak et al., 1994) uses a genetic algorithm to optimize the automatic placement of multiple objects on a platform at one time. The process looks at not only the location on the table, but also whether it should be rotated rst. Other work (Frank and Fadel) has been done on part orientation

2001 by CRC Press LLC

to aid in cusp height minimization and surface nish. An expert system is used and works with two of the features of the object to determine its orientation. Another way to decrease processing time is to slice the le using a multi-processor system. Programs (Kirschman and Jara-Altamonte, 1992) that use the parallel processors are able to decrease the processing time of the STL le signicantly. Other le formats and computer processes will evolve to meet the needs of rapid prototyping as it grows. A neutral le format needs to be extended to all CAD vendors to be able to slice any part with the required accuracy and nish. Other researchers are looking into the Internet/intranets to provide additional functionality for the rapid prototyping process. Tele-manufacturing (Bailey, 1995) is one term that has been created to represent the use of rapid prototyping over the Internet. The main area that is presented is the repair of an incorrect STL le. Due to the lack of topology or order in the facets, the le often needs to be repaired to handle cracks, overlapping triangles, and zero-thickness surfaces. Although the STL le is passed across the Internet to the site to be processed, the slicing has not been implemented directly on the Web.

Observations from the Reviewed Research


The main contribution from the research to be implemented in this work is the use of the scan-line type approach for generating contours (Chalasani et al., 1991) along with topological information (Rock and Wozny, 1991). This will be used, in an enhanced form without continuously searching through the entire object, to quickly trace out each contour. In addition to this, the tele-manufacturing (Bailey, 1995) process will be extended to a complete Internet slicing program. Although there are suggestions for better le formats for the unsliced object, the STL le is used to do its neutral le format supported by most CAD packages.

1.4 Computational Aspects and Procedures


This section presents an alternative method for slicing a stereolithography (STL) le. It uses a modied method of the trigger point, contour tracing method with topological information. The basic idea behind this process is to search throughout the object, trying to nd an edge or vertex of any facet on the slicing level, and then trace out the entire contour from there. The algorithm uses vectors between vertices of the facets to create each line segment of the contour. Generating slices by marching around the object eliminates nding unsorted line segments of the contour, and reduces processing time by not calculating complex geometric intersections of planes. An overview of the implementation is shown in Fig. 1.7.

Preparing the STL File for Slicing


All slicing procedures should be preceded by a check for completeness and accuracy of the STL le. Due to the topology-decient format that the object is stored in, it is important to check the le to make sure it can be sliced. The STL le may not have been tessellated properly, resulting in gaps, improper triangulation, or intersecting facet edges. Several criteria have been evaluated for the completeness and accuracy check but most importantly, each face must have three edges, each edge must have two vertices, each vertex must be part of exactly two of the faces edges, and each edge must be part of an even number of faces. If problems exist in the STL le, they must be corrected before slicing. Algorithms have been developed to ll in the missing data from these les (Ngoi et al., 1993). Many layered manufacturing processes require support structures for the base of the object or any overhangs. These structures should be added to the STL le by a preprocessor before slicing in a method similar to the one created by Kirschman et al. (1991). Preprocessing adds facets to the STL le, and results in additional material being added to the object. These structures support other parts of the object so

2001 by CRC Press LLC

FIGURE 1.7

Flow of slicing system architecture.

that overhangs or other unsupported features do not break off during the build process. Once manufacture is complete, these areas are removed, leaving the desired prototype.

Searching for the Start of a Contour (Trigger Point)


To minimize the search time, four zones (spatially partitioned bins) are created in the z-direction, which split the object based on the maximum, minimum, and quarterly points. These zones store the numbers of the facets that pass through them. A facet may belong to one zone, several, or all of them, depending on the facets orientation and size.

2001 by CRC Press LLC

FIGURE 1.8

Interior edges of the object that will not be used for contour tracing.

Without contour or feature information on the object, a search of edges on the slicing level is required to nd all possible contours. During the searching and tracing procedures, it is important that the line segments are never created inside the contour. All contours for prototyping are on the outside of an object of feature. Interior edges that will not be used for contour tracing are shown in Fig. 1.8. These edges are never used in the contour tracing because they are inside the contour for the rst slice. If these edges were used, they would result in an undesirable slice that does not show the true shape of the object. To nd interior edges, each edge is checked to see if the two facets that share this edge are parallel to the slicing plane. If so, the edge is interior to the contours of the object and will not be used for tracing. The search method starts by selecting an unagged edge in the slicing zone. The trigger point is found by comparing each of the unagged edges in the zone to the following rules: 1. If the edge is completely above or below the slicing level, do not use this edge. 2. If either end point of the edge is on the slicing level, use this vertex as the trigger point. 3. If neither rule 1 nor rule 2, then this edge passes through the slicing level. Find the point on the edge at the slice height to use as the trigger point. The contour is traced from this point moving from one facet to the next around the object until a contour is traced out. As each segment is created, the edges that were visited are agged so they are not used again. Next, the search continues within the same level to nd any remaining unagged edges that form other contours on this level. It is important that searching continues through all of the facets on each slicing level to insure that no contours or features are missed.

Determining the Trigger Point Edge


At this step in the algorithm, a possible vertex or edge intersection has been found. To proceed, the edge that the point lies on must be determined. In addition, a validation process is completed with the edge information to ensure that the trigger point is actually on an edge of the facet. The edge determination and validation procedure is comprised of the following steps: Three vectors are created between each of the vertices of the facet as shown in Fig. 1.9. Three vectors are created between the trigger point and the vertices of the facet as shown in Fig. 1.10. The three trigger point vectors and the three vertex vectors are then crossed with each other, resulting in nine cross products.

Cross product Point Vector [] Facet Vector []

2001 by CRC Press LLC

FIGURE 1.9

Vectors created between the trigger point and the vertices.

FIGURE 1.10

Vectors created between the vertices of the facet.

Whenever one of these cross products is zero, the trigger point possibly lies on that edge. In the case of a vertex trigger point, one of the point vectors will be zero. The other two point vectors will coincide with two facet vectors. This results in ve of the nine cross products being zero. As shown in Fig. 1.9, point vector[2] and point vector[1] are aligned with facet vector[1] from Fig. 1.10. When these vectors are crossed, there will be two zero cross products, as is the case for all edge points. In Fig. 1.11, two examples of trigger points are shown. The rst search through the unagged edges results in a vertex trigger point at the corner of the object. Later in the search, a trigger point is found at the hole.

Tracing Out the Contour


Once a trigger point is found, a contour can start to be traced from this point. At each point, information is only known about the current facet and its neighbors. Because there is no other topological information to drive the creation of the contour, some procedures must be dened. In general, the contour will be constructed by creating line segments across each facet around the entire object.

2001 by CRC Press LLC

FIGURE 1.11

Establishment of trigger points on the object during the search pattern.

FIGURE 1.12

Contour segments created for vertex and edge trigger points.

Sample contour segments are shown in Fig. 1.12. The rst trigger point from the search is on vertex 0 of facet 0. The contour will continue by tracing segment 0 to land on the other edge of the facet. Then facet 1 will be used with the new edge trigger point. Segment 1 will then be constructed from edge to edge of facet 1. The process continues around the object until the complete contour is traced. When Tracing Begins from a Vertex For vertex trigger points, there are three possibilities for tracing the next segment of the contour: 1. If the trigger point is above both of the other vertices, or completely below the other vertices, then the trigger point does not change and the next facet is used. 2. If only one of the other vertices is at the same z level as the trigger point, move all the way to that other vertex. 3. If the z level of the trigger point is between the z levels of both of the other points, the segment is constructed across the facet to an edge point between the other two vertices.

2001 by CRC Press LLC

FIGURE 1.13

Vertex trigger point completely below the other vertices of the facet.

FIGURE 1.14

Another vertex of the facet lies on the same slicing level as the trigger point.

In the rst case, the trigger point is on a vertex that is the lowest or highest point on the facet relative to the slicing level. As shown in Fig. 1.13, every other point on facet 1 is above the current trigger point; therefore, the contour will not move because moving to any other point on the facet would not maintain the current slicing level. The tracing will continue directly to facet 2 using this same point as the new point. In the second case, another vertex of the facet (not the trigger point vertex) is on the slicing level. In Fig. 1.14, the trigger point is on vertex 0, while vertex 1 is also on the slicing level. The new segment of the contour is created directly all the way to the other vertex that is on the same level. Because these two points are co-planar and on the slicing level, there is no need to do any computations to determine this segment. In the third case, the facet is as shown in Fig. 1.15. The trigger point lies on vertex 0. The z value of vertex 0 is between the z values of the other two vertices. The contour must be traced across the facet, from the vertex to edge 1 on the facet. When Tracing Begins from an Edge For the case of an edge trigger point, vectors are used to move to the other edge of the facet. As shown in Fig. 1.16, the trigger point lies on edge 0. To move to edge 1, and stay on the slicing level, a similar

2001 by CRC Press LLC

FIGURE 1.15

The vertex trigger point height lies between the levels of the other two vertices of the facet.

FIGURE 1.16

Moving from an edge trigger point to another edge.

method as implemented by Rock and Wozny (1991) has been followed: A vector is constructed from vertex 2 to vertex 1. A percentage of the vector is used to move from vertex 2 to the new point on the slicing level on edge 1. The new point is used as the trigger point for the next segment of the contour on the next facet.

1.5 Prototype Implementation and Case Studies


The Internet and corporate intranets provide a wonderful opportunity for collaborative design. Communication and modeling of a new product can be done over the Web with users participating from everywhere. This rapid prototyping module is one small part of the collaborative design process. Once the design has been nalized, this system can be called to create the prototype. The methodology of Section 1.4 has been implemented in Java to run on the World Wide Web. Each section of the slicing algorithm has several parts associated with it. The sections of the program, including data collection, searching, and slicing, are explained here as they have been implemented.

2001 by CRC Press LLC

System Architecture of the Prototype


The required modules for the slicing program are briey outlined in Fig. 1.17. Each of these modules is executed in sequence to start the slicing procedures. Once a contour has been traced, the search module is called again to continue checking for other contours. The cycle repeats until the object has been completely searched.

Program Initialization
HyperText Markup Language (HTML), the language of the World Wide Web, is used to set up the Web page and launch the Java program. Two windows are created within the page, one running a program that displays the STL le and another that does the slicing. Once the programs are called, Java begins by initializing the window and calling the start method. The start and init methods handle the operations of the program, including setting display colors, adding buttons, and handling events that may be triggered during execution. Some of these events are button pushing, mouse movements, and mouse clicks. After the initialization, the start function calls the rest of the modules needed for the programs execution.

FIGURE 1.17 system.

Flow of information in the prototype

Data Input and Manipulation


The entire slicing process starts by gathering the necessary data, proceeding as shown in Fig. 1.18. The rst procedure is to retrieve the STL information. A class called triangle, shown in Fig. 1.19, is created to store the facet information and contains variables to hold the points of the three vertices as well as the normal of the object. A method creates triangle objects to hold all of the facets and stores each triangle in an array. The class also contains a variable to store the facet number of the three adjacent facets to each edge of the triangle. One of the advantages of Java is the use of the vector class. This class allows the program to create an array to the required size only. Because each STL le will have a different number of facets, it is important to have enough triangle objects while minimizing computer memory usage. With the vector class, an object is created with 20 slots. Each triangle object is added to the vector as the data is read in. If there are more facets, the vector object grows by 10 facets at a time. Finally, the object is capable of trimming to size so that no extra memory
2001 by CRC Press LLC

FIGURE 1.18 slicing.

Preprocessing of the STL le before

FIGURE 1.19 Portion of Java code for the triangle class.

FIGURE 1.20

Java code that opens the STL le and stores the data in a Vector array.

is used up by an array that is larger than the number of facets. The initialization and trim methods are shown in Fig. 1.20. This gure also shows the code to open a le on the server and read in the data. A method is used to determine the minimum and maximum points on the object. All of the vertices of the faceted object are compared to an initial minimum value. If the new point is less than that value, it is selected as the new minimum point. This continues until all of the vertices have been checked. Finding the maximum point is done in a similar manner. To compensate for some of the deciencies in the STL le, some connectivity information must be determined. Each facet has three edges that it shares with three other facets. By searching through the STL le, the connections between facets, and their edges, can be saved for future use. A sort is used to nd the neighboring facet for each edge. These adjacent facets are stored in the neighbor facets array which has three slots, one for each edge. The neighbor information is used during contour tracing to move from one facet to the next. Without sorting and storing the adjacent facets, every facet would need to be searched after nding each segment of every contouran exhaustive computational procedure.

Search Method to Find Trigger Points


The search method scans for an intersection point with the object and follows the procedure in Fig. 1.21. Once the facets are stored, the slicing begins on the lowest level of the object. For each slice height, the appropriate zone is consulted to search for unagged edges. Each edge that is unagged (a 1 value) is checked against the search rules to determine a trigger point.
2001 by CRC Press LLC

For edges that pass through the slicing layer, the trigger point is found by rst constructing a vector from end point to end point of the edge. Then the trigger point is found by moving a percentage of this vector until reaching the slicing level. The entire search method is described by the following pseudo-code: method ScanTriangles() set DX, DY, DZ for each slice height do determine zone while there are unagged edges in zone nd trigger point on edge traceContour() nextslice endMethod Once a trigger point is determined, the edge or FIGURE 1.21 Initialization and scanning of STL le. edges that it lies on are found. The cross products are found for the facet edge vectors and the trigger point vectors. Cross product information is also used to verify that this point is a vertex or an edge point, as will be shown in the next section.

Contour Tracing Implementation


The trigger point and current facet are sent to the contour tracing method. The rst step for the trigger point and facet is a validation process to ensure that the point does lie on a vertex or an edge of the facet. By keeping track of the cross products that are zero, the following validity check is then done: For a vertex match, two of the edges will have two zero cross products each, and one edge will have one. The sum of all the zero cross products will be ve. In the case of an edge match, one of the edges must have two zero cross products, while the other two edges do not. The sum of all the zero cross products will be two. If either of the conditions above are not met, the contour tracing is stopped and program control is returned to the search method. For either type of matching, the tracing starts on one point of the object and continues from one facet to another until it returns to the starting point. Once the contour is traced, it is stored for subsequent processing. method trace_contour while contour_start ! segment start do retrieve facet info (edges, normals, and points) nd next intersection store line segment next intersection segment start end To prevent the same contour from being traced again, the edges of the facets are agged when they have been used in a contour. There is one ag for each edge in a triangle object. When these edges are used, by a trigger point or a line segment, the ag is set so the edge is not used again. These ags show which edges of the facets have already been visited. There are four methods used for agging: isFlagOn, agEdge, eraseContour, and eraseAllEdges. An edge is unagged when its value is 1.

2001 by CRC Press LLC

The tracing may result in several contours on one layer, each of which is numbered. The agEdge method sets the variable for that edge to the contour number. The isFlagOn method checks to see if the ag is on for that edge. If so, it returns control back to the search program. In the event that a contour is not completely traced out, the ags must be cleared. The eraseContour method does this by comparing all of the agged edges with the current contour number and resetting them to 1, the unagged state. Once all contours have been traced, and the program is ready to move to the next slicing level, all of the edges are returned to the unagged state with the eraseAllEdges method. All trigger points and contour segments are checked throughout the tracing process to see if they fall on a agged edge. Vertex Trigger Point Contour Tracing (Cases 1 and 2) Each of the rst two cases of the vertex trigger point are handled in a straightforward manner. In Case 1 above, where the trigger point lies completely above or below the other vertices of the facet, the trigger point remains the same and the next facet is used. The neighbor facets array is consulted to nd the next facet to use. The point becomes the trigger point on the new facet. In Case 2 above, the program moves the contour from the vertex to the new vertex that is on the same slicing level. This new vertex is used as the trigger point for the new facet. In both cases, the edges that the trace has been on are agged so that they are not used in future contour searches. Edge Trigger Point and Vertex Case 3 Trigger Point Tracing Case 3 above is the same method as edge trigger points. To create the new segment, the z terms of the other vertices are compared with the trigger point and the edge that will maintain the slicing level is chosen. Because the tracing method will now move to the other edge, it must determine which point to move to on that edge. A vector is constructed between vertex 0 and vertex 1 of Fig. 1.22 and the new point is found by moving a percentage of that vector to maintain the required slicing level. A variable is set to determine if the trigger point is above or below (z level) the end of the vector. The new point is now found by starting at the other vertex and moving by the vector multiplied by the percentage. The new edge trigger point is used on the next facet. End of Each Segment After the new point has been determined and the next facet found, the information for our new coordinates is written to an array in the addToContour() method. The new point is checked against the starting point of the contour. If the two points are the same, the contour is complete and the tracing is stopped. Otherwise, the new point is used as the trigger point on the next facet. The process continues until the program traverses completely around the contour to the starting point.

FIGURE 1.22

Moving to a new edge.

2001 by CRC Press LLC

World Wide Web Access


The applets for viewing the STL le and for slicing it are stored on a Web server. These two programs can then be started by loading a Web page which calls the two programs. The HTML code for the Web page rst splits the page into two windows. The Web browser will load the view class applet in the left window rst and read in the STL le and display it on the screen. Then the sliceclass applet starts in the right window by reading in the le and beginning the slicing procedure.

Results of Enhanced Algorithm


The output from several samples are shown in this section. All of the examples were run on a Pentium 90-MHz computer with 16 MB of RAM using Netscape 2.0. A discussion of the meaning of these results follows the case studies. Case Study 1 The rst test object was the simple polyhedra with a hole that has been shown throughout this work. This is a simple object that has 116 facets. As can be seen in Fig. 1.23, most of the facets are used for the hole and the rounded rear surface. In the right window, a few slices of the object are shown. This type of object uses vertex matching for the lower and upper slices, while in between it uses edge matching to nd the contours for the hole. Case Study 2 Figure 1.24 depicts a more complex object. In this case, there are no at edges parallel to the slicing plane. All of the slices are created primarily through edge intersections.

FIGURE 1.23

Simple polyhedra with a hole that has been sliced.

2001 by CRC Press LLC

FIGURE 1.24

A more complex object that requires more edge point calculations.

The tessellation of this object is shown in the left window; the protrusion is going away from the viewer. As displayed in the right window, even difcult contoured surfaces can be traced quickly. Case Study 3 This example shows a pinion part which has a number of features. The pinion itself is a long protrusion with a hole through the center and a number of teeth around the outside of the shaft at different angles. The output of the program is shown in Fig. 1.25. Case Study 4 In the nal example, a more complex and resulting larger STL le part is used. This is a gear that has several protrusions to comprise the shaft, as well as a pattern of gear teeth around the radius of the gear. The STL le has over 2600 facets associated with it. The sliced object is shown in Fig. 1.26. The scan-line type approach was implemented using both the exhaustive search method (Chalasani et al., 1991) and the modied unagged edge starting method. The times presented in Fig. 1.27 were noted for the objects shown in the case studies. The times noted reect the improvement of utilizing unagged edges to determine a trigger point to trace from. The exhaustive search method is affected by the number of facets, the size of the part, and the resulting facet vertices precision. The search will not nd suitable matches unless the search increment is small enough to match the data in the STL le. The unagged edge method overcomes this limitation by determining a point that lies on an edge that passes through the slicing plane. Then, only the edges that have not been used yet are consulted for further possible contours, a much faster process. In comparison with the work reported by Rock and Wozny (1991), savings are found in two places. In one improvement, slicing is enhanced in areas of the object where the surfaces are parallel to the slicing plane. The bottom slice of Fig. 1.28 is generated using contour tracing case 1 and 2 only, which require very little computation time.

2001 by CRC Press LLC

FIGURE 1.25

Pinion part with a number of features shown sliced in right view.

FIGURE 1.26

A more complex gear part.

2001 by CRC Press LLC

Case Study Number and Description 1 - Polyhedra with hole and rounded rear surface, (see Fig. 1.23) - 116 facets 2 - Revolved surface (see Fig. 1.24) - 832 facets 3 - Pinion gear (see Fig. 1.25) - 1468 facets 4 - Main gear (see Fig. 1.26) - 2684 facets
a

Time to Create 10 Slices of the Object Using Search Method to Determine Trigger Pointa 11.2 minutes

Time to Create 10 Slices of the Object Using Modied Unagged Edge Method 43 seconds

1.1 hours 2.3 hours 3.4 hours

1.95 minutes 9.2 minutes 14.3 minutes

Based on search increments to 1/100th of object size (x and y-direction).

FIGURE 1.27 Algorithms.

Comparison of Slicing Times for Standard and Enhanced Scan-line Type

FIGURE 1.28 Facets parallel to the slicing plane can be traced out quickly.

The second improvement is the method of determining the starting point for tracing. In the plane-plane intersection method, the normals of the slicing plane and normal of each facet are crossed to determine a vector parallel to their intersection. Then, this vector and a point on the facet are used to nd this line segment. Using the modied unagged edge method, these computations are greatly reduced.

1.6 Conclusions
The proposed algorithm and its implementation have shown an alternative method to extend the rapid prototyping process. By utilizing the World Wide Web and Java, a slicing algorithm has been constructed that can be available to anyone. There are still many areas of research and work that need to be continued to make the process more efcient. Each of the CAD models once translated to an STL le, can be read and sliced by this program and displayed through the VIEW.JAVA program. Once displayed, the slicing program begins the process and displays it on the Web page. The Web-accessible program allows designers to see the faceted and sliced object without the need for expensive software or dedicated hardware at their physical site. All of this can be accessed over the World Wide Web, allowing the possibility of a completely sliced le to be sent directly to a layered manufacturing machine connected to the Internet or intranet. The work presented here emphasizes four issues of rapid prototyping on the Internet or intranets:
2001 by CRC Press LLC

1. Display of an STL le into a local browser showing a projected view of the object that can be rotated 2. Implementation of a modied scan line-contour tracing algorithm to slice the object 3. Platform-independent, sharable software that can be accessed over the Internet/intranet, as well as being able to run locally on a machine; the abilities of the Internet and collaborative design have been extended to the rapid prototyping process 4. Utilizes Java as a rst step toward creating a true Internet-manufacturing process Additionally, this software is one of the services within the collaborative product design environment. This module can be called after the CPD evaluation of an object to start the prototyping process. The framework for this software can be further improved. The graphics of the program can be extended into a complete design environment to cover the entire rapid prototyping process. Viewing of the object could be enhanced with shaded views or views of the completed prototype showing the cusp height. The software will need to be extended to create the hatching patterns and the le that actually drive the layered manufacturing machine. A module of this type could be added directly to the program at any time using the contour information. The continued expansion of the World Wide Web lends this program to possible connections with VRML or collaborative design environments. The Web is an open-ended medium that can extend the method for design and research. Modules could be added to the software to allow other information to be obtained as well. There are many areas of research still left unsolved in the rapid prototyping world. Research areas exist in part orientation, slicing directly from the CAD le (no STL le), and multiple part optimization. Additional work will be done in the area of producing more accurate parts directly from the CAD le. This will require a new common part storage instead of the STL le; perhaps some of the emerging formats that extend STEP will take its place. Ultimately, rapid prototyping will evolve into rapid manufacturing. Many of the parts on those systems are used as is for tooling or in a product. As software and hardware increase in speed and accuracy, additional parts can be made for instant use. Additionally, by harnessing the power of the World Wide Web, the entire prototyping process can reach new levels of power and application in todays design process.

References
Bailey, Michael, Tele-Manufacturing: Rapid Prototyping on the Internet with Automatic Consistency Checking, University of California at San Diego. Chalasani, K.L. et. al., An Algorithm to Slice 3-D Shapes for Reconstruction In Rapid Prototyping Systems, Computers in Engineering, V 1, ASME 1991, 209215. Cornell, Gary, and Horstmann, Cay S., Core Java, SunSoft Press, Prentice Hall, 1996. Dolenc, A., An Overview of Rapid Prototyping Technologies in Manufacturing, http://www.cs.hut./ ~ado/rp/rp.html, Helsinki University of Technology, 1994. Dolenc, A., Mkel, I., Slicing Procedures for Layered Manufacturing Techniques, Computer Aided Design, Vol 26, Number 2, February 1995, 119126. Frank, Dietmar, and Fadel, Georges, Expert System Based Selection of the Preferred Direction of Build for Rapid Prototyping Processes, IWB, Technical University of Munich, Munich, Germany. Kirschman, C.F. et. al., Computer Aided Design of Support Structures for Stereolithographic Components, Proceedings of the 1991 ASME Computers in Engineering Conference, Santa Clara, CA, August 1991, 443448. Kirschman, C.F., Error Compensation of Stereolithographic Parts, Clemson University, Clemson, SC. Kirschman, C.F., Jara-Altamonte, C.C., A Parallel Slicing Algorithm for Solid Free Form Fabrication, Proceedings of the 1992 Solid Freeform Fabrication Symposium, Austin, Texas, August 1992. Kulkarni, Prashant and Dutta, Debasish, Adaptive Slicing of Parametrizable Algebraic Surfaces For Layered Manufacturing, DE-Vol 82, 1995 Design Engineering Technical Conferences, V 1, ASME 1995, 211217.

2001 by CRC Press LLC

Ngoi, B. et. al., Development of a Stereolithography Preprocessor for Model Verication, Computing and Control Engineering Journal, October 1993, 218224. Rajagopalan, M. An Approach to CAD Interface for Stereolithography Using Non-Uniform Rational BSplines, Master of Science Thesis, Clemson University, Clemson, SC, 1992. Rock, S, and Wozny, M., Utilizing Topological Information to Increase Scan Vector Generation Efciency, Proceedings, Solid Freeform Fabrication Symposium, University of Texas at Austin, Austin, Texas, August 1991. Vuyyuru, P. et. al., A NURBS-Based Approach for Rapid Product Realization, Proceedings of the Fifth International Conference on Rapid Prototyping, Dayton, Ohio, June 1994. Wodziak, J., Fadel, G., Kirschman, C., A Genetic Algorithm for Optimizing Multiple Part Placement to Reduce Build Time, Proceedings of the Fifth International Conference on Rapid Prototyping, Dayton, Ohio, June 1994.

2001 by CRC Press LLC

You might also like