Academia.eduAcademia.edu

Efficient stock cutting for laminated manufacturing

2002, Computer-Aided Design

When an object is made using Laminated Manufacturing (LM), the output is a rectangular block with the required object trapped inside. In order to enable extraction of the object, the remaining sheet in each layer is cut into square grids that grow into tiny tiles. Thus, the remaining stock inside and surrounding the object is in the form of tiled fragments. The operator`decubes' or removes these tiles using sharp tools and extracts the object. Making use of the remaining stock as support structure and grid cutting to enable extraction of the object are very innovative ideas in the`paste-and-cut' LM approach. However, this method is very inef®cient for two reasons: ®rstly, cutting ef®ciency is poor since laser spends most of its time in grid cutting; secondly, decubing takes several hours. In this paper, an ef®cient method of cutting the remaining stock to extract the object is presented. Extraction of the object from the stock block has analogy with the extraction of casting from its moldÐthe present and proposed methods respectively being analogous to sand casting and permanent mold casting processes. In the proposed method, rather than fragmenting the remaining stock into tiny tiles, it is segmented into two stock halves that open about a parting surface of minimum area. This optimal parting surface is obtained for the convex hull of the object, rather than for the object itself, due to its complete visibility along any pair opposite directions. The convex hull is further segmented into the object and plugs. The plugs are so shaped that they do not get entangled inside the concave portions of the object. The plugs whose drawing directions coincide with the opening direction of the stock halves are merged with the corresponding stock halves. The object, all the plugs and both the stock halves form the stock block. All these pieces are made together in the LM machine. For disassembly, ®rst the convex hull will be extracted by opening the stock halves. Subsequently the plugs that ®ll the concave portions of the object will be extracted from the convex hull. Thus, grid cutting and decubing are eliminated in the proposed method resulting in drastic reduction in prototyping time and improved quality of the prototype.

COMPUTER-AIDED DESIGN Computer-Aided Design 34 (2002) 281±298 www.elsevier.com/locate/cad Ef®cient stock cutting for laminated manufacturing K.P. Karunakaran*, Shivamurthy Dibbi, P. Vivekananda Shanmuganathan, D. Satyanarayana Raju, Srinivasarao Kakaraparti Computer Graphics Laboratory, Department of Mechanical Engineering, Indian Institute of Technology, Powai, Bombay 400076, India Received 28 February 2000; revised 28 November 2000; accepted 21 February 2001 Abstract When an object is made using Laminated Manufacturing (LM), the output is a rectangular block with the required object trapped inside. In order to enable extraction of the object, the remaining sheet in each layer is cut into square grids that grow into tiny tiles. Thus, the remaining stock inside and surrounding the object is in the form of tiled fragments. The operator `decubes' or removes these tiles using sharp tools and extracts the object. Making use of the remaining stock as support structure and grid cutting to enable extraction of the object are very innovative ideas in the `paste-and-cut' LM approach. However, this method is very inef®cient for two reasons: ®rstly, cutting ef®ciency is poor since laser spends most of its time in grid cutting; secondly, decubing takes several hours. In this paper, an ef®cient method of cutting the remaining stock to extract the object is presented. Extraction of the object from the stock block has analogy with the extraction of casting from its moldÐthe present and proposed methods respectively being analogous to sand casting and permanent mold casting processes. In the proposed method, rather than fragmenting the remaining stock into tiny tiles, it is segmented into two stock halves that open about a parting surface of minimum area. This optimal parting surface is obtained for the convex hull of the object, rather than for the object itself, due to its complete visibility along any pair opposite directions. The convex hull is further segmented into the object and plugs. The plugs are so shaped that they do not get entangled inside the concave portions of the object. The plugs whose drawing directions coincide with the opening direction of the stock halves are merged with the corresponding stock halves. The object, all the plugs and both the stock halves form the stock block. All these pieces are made together in the LM machine. For disassembly, ®rst the convex hull will be extracted by opening the stock halves. Subsequently the plugs that ®ll the concave portions of the object will be extracted from the convex hull. Thus, grid cutting and decubing are eliminated in the proposed method resulting in drastic reduction in prototyping time and improved quality of the prototype. q 2002 Elsevier Science Ltd. All rights reserved. Keywords: Rapid prototyping; Layered manufacturing; Convex hulls; Visibility; Parting surfaces; Parting directions 1. Introduction Rapid Prototyping (RP) is the process of manufacturing physical objects in a layer-by-layer manner directly from their CAD models without any human intervention and without the use of any tools, dies or ®xtures speci®c to the geometry of the objects being produced. The principle of RP is illustrated in Fig. 1. First the CAD model of the object is created and a suitable orientation for building is identi®ed. Note that the building orientation of the object in¯uences the number of layers, accuracy and support structure requirements. The CAD model of the object oriented along the building direction is shown in Fig. 1a. This is sliced by parallel planes as shown in Fig. 1b. The edges of these slices thus obtained are squared (Fig. 1c). Thus, a complex 3D object is decomposed into several 2D objects * Corresponding author. E-mail address: [email protected] (K.P. Karunakaran). or slices. These slices are physically realized in one of several ways, stacked and pasted together as shown in Fig. 1d, to obtain the physical prototype (Fig. 1e). The accuracy of these prototypes, due to the staircase effect, can be improved by decreasing the slice thickness. For even better ®nish, polishing can be applied (Fig. 1f). Stereo-lithography (SLA), Solid Ground Curing (SGC), Fused Deposition Modeling (FDM), Laminated Object Manufacturing (LOM) and Selective Laser Sintering (SLS) are some of the most popular RP processes. Apart from the building orientation, two other important issues in RP are the slicing strategy and the mechanism of support [1,2]. While the slicing strategy in¯uences the quality, speed and cost of the process, the mechanism of support is essential to produce shapes of any complexity. Presently, most RP processes use uniform slicing with 0th order edge approximation which is inef®cient due to the staircase effect. Adaptive slicing and higher order shape approximations are preferable wherever possible since they require 0010-4485/02/$ - see front matter q 2002 Elsevier Science Ltd. All rights reserved. PII: S 0010-448 5(01)00087-2 282 K.P. Karunakaran et al. / Computer-Aided Design 34 (2002) 281±298 Nomenclature O Polyhedral Object to be produced using LM. CH Convex hull of the polyhedral object O. B Stock block obtained from the LM machine at the end of building the object. BS Surrounding stock block. This is obtained by subtracting CH from B. PL Parting line of CH. PS Parting surface of CH. SH1 & SH2 Pair of stock halves. This pair is obtained by splitting BS with PS. d Parting direction. This is actually a pair of opposite directions along which the stock halves SH1 and SH2 open. ^ i.e. d ˆ ^d. ^ PSmin Parting surface of the least area corresponding to a given direction d. Optimal parting surface. This is the parting surface of globally least area. PSopt PLopt Optimal parting line. This is the parting line corresponding to PSopt. Optimal parting direction. This is the parting direction corresponding to PSopt. dopt {P} This is a set of solids called plugs obtained by subtracting O from CH. n Number of plugs in the set {P}. Set of drawable plugs. {Pd} nd Number of plugs in the set {Pd}. {Pud} Set of undrawable plugs. nud Number of plugs in the set {Pud}. {p} A set of vertices. {p} ˆ {p0, p1, p2, ¼}. {E} A set of edges. {E} ˆ {E0, E1, E2, ¼}. {F} A set of faces. {F} ˆ {F0, F1, F2, ¼}. U Unit sphere of visibility. Visible hemisphere of U. Uv Ui Invisible hemisphere of U. {c} The set of V-Maps of the faces of CH. {c} ˆ {c0, c1, c2, ¼, cm21} where m is the number of V-Maps. {Vc } Array of V-Cones. {Vc } ˆ {Vc0 ; Vc1 ; Vc2 ; ¼}. {pc } Array of corner points of V-Cones. {pe } Array of representative edge points of V-Cones. {pi } Array of representative interior points of V-Cones. less number of slices for the same accuracy [3±6]. When the object has reentrant or overhanging features, a layer may be larger than the previous one. If the size difference between consecutive layers is too much, the bottom layer may not be able to hold the layer being built on top of it. Therefore, it is necessary to provide some support structures. The material used for support structures is `sacri®cial' in nature as they have to be removed subsequently. In SLA, the buoyancy of the liquid photo-polymer provides some support; if this is not adequate, the part geometry is modi®ed to include bristle like support structures. In SGC, wax is ®lled in the gaps on each layer which acts as the support for the following layer. In processes like FDM, a separate nozzle deposits support material wherever required. This support material has weak adhesion with the modeling material. Furthermore, it is deposited coarse at the required places in each layer so that it can be broken from the model easily. RP processes such as LOM and SLS do not require any explicit support structure since the remaining stock of sheet and unsintered powder respectively act as the support. Thus, it can be seen that support is to be provided explicitly in some processes such as SLA, FDM and SGC and it is inherently present in some processes such as SLS and LOM. The removal of support structures is quite involved in some processes. It may take several hours to remove the support and it may even affect the surface ®nish of the object. At the end of building in processes such as SGC, SLS and LOM, one obtains a block of material with the required object trapped inside. Unlike SLS where the surrounding material is compacted powder, removal of the support structures in SGC and LOM is quite time consuming. The problem of support removal in LOM-like processes is addressed in this paper. One of the most popular methods of RP is to make the required object by gluing the required laminates together. This process is referred as Laminated Manufacturing (LM). One can adopt one of the two approaches in this manufacture. 1. Cut-and-paste approach: each laminate is cut from the sheet of stock and then pasted over the previous layer. K.P. Karunakaran et al. / Computer-Aided Design 34 (2002) 281±298 283 Fig. 1. Principle of rapid prototyping. (a), CAD model; (b), slicing the model; (c), squaring edges of model; (d), stacking and pasting layers; (e), physical prototype; (f), ®nished physical prototype. 2. Paste-and-cut approach: a suf®ciently large sheet of stock is pasted over the previous layer and then the pro®les of the required laminates are cut. In RP, the thinner the layer, the higher is the accuracy. However, since thin laminates are ¯exible, handling them after cutting is cumbersome. The laminates vary widely in shape and size. Positioning such an odd shaped laminate exactly over the previous layer is dif®cult. Even if a laminate is positioned correctly, during the process of pasting, it could slip. Furthermore, each layer may have more than one laminate and hence the manipulation time will be high in cut-and-paste approach. Therefore, the paste-and-cut approach is suitable for non-metallic laminates of lower thicknesses. On the other hand, when metallic sheets or thicker layers are used, the laminates will be suf®ciently stiff for handling and hence paste-and-cut approach can be used. There is no need for an external support mechanism in the paste-and-cut approach since the remaining sheet acts as support. However, the object is trapped inside a block of stock material in this approach and hence a mechanism of support removal is necessary. This is accomplished by gridcutting the remaining material in each layer into small squares. These square pieces grow into tiles of support structure as the building progresses. The required object can be extracted by removing these tiles using sharp hand tools. This process is called decubing. Decubing is illustrated in Fig. 2. Decubing may take several hours depending on the complexity of the object. The cut-and-paste approach does not require decubing but it may require support structures. Huge paper LM objects are ideally suitable and economical for use as patterns for sand casting. LM also has been successfully used to make laminated metallic tools for sheet metal forming operations [7±9]. However, this very promising RP&T process suffers from the following limitations. ² The cutting ef®ciency in LM is very poor during the building process Cutting efficiency ˆ time for cutting object contours : time for cutting object contours 1 time for grid cutting ² The process is further inef®cient due to long decubing time. ² Decubing requires a fair amount of skill. ² The process is not suitable for making small intricate parts. It is also not possible to make hollow parts or 284 K.P. Karunakaran et al. / Computer-Aided Design 34 (2002) 281±298 Fig. 2. Illustration of decubing in conventional laminated manufacturing [courtesy Helisys Inc., USA]. parts with narrow interior features due to the dif®culties in accessing these interior areas for decubing. ² It has an upper limit on the size of the object made. ² There is a lot of material wastage. The reason for the poor cutting ef®ciency in LM is the grid cutting that takes a very long time. Since the grids are very ®ne, the decubing operation is more involved and skilled. As against this grid cutting of the stock, an optimal method of stock cutting is presented in this paper. This approach aims at improving the cutting ef®ciency of LM by drastically reducing the time spent in cutting the stock. This also simpli®es and speeds up the decubing operation. When this method is used, the quality of the prototypes also will improve since they will be free from the grid-cutting marks. Only a few researchers [10±12] have realized the importance of improving cutting ef®ciency in LM and hence no signi®cant solution has yet been reported in the literature so far for this problem. Seoul National University and KIST of Korea have tried a method to remove the stock from hollow or deep interior features [10]. Their process is carried out in two passes of the paper reel; in the ®rst pass, all the unwanted interior cutouts are removed from the reel and in the second pass, the building process takes place as usual. However, apart from its inability to provide a universal solution, there is mismatch between the cuts made in both passes causing serious accuracy problems. The authors of the present paper have also tried another method to represent the unwanted stock in the form of as big cubic chunks as possible using octree solid representation. However, the algorithm to convert an arbitrary polyhedral shape into octree is quite intensive and the resulting cubes are not guaranteed to be `drawable'. Therefore, further complex processing is required to subdivide the `undrawable' cubes based on visibility analysis. The present methodology based on the analogy of permanent mold design will be better than all these methods. 2. Methodology for optimal stock cutting At the end of building an object using LM, one obtains a rectangular block of stock with the object buried inside. Extraction of the object from the stock block has striking similarity with the extraction of casting from its moldÐthe present and proposed methods respectively being analogous to sand casting and permanent mold casting. K.P. Karunakaran et al. / Computer-Aided Design 34 (2002) 281±298 Fig. 3. Analogy of stock removal in laminated manufacturing with extraction of casting from its mold. (a), Extraction of casting from sand mold; (b), extraction of casting from permanent mold. Presently, the remaining stock surrounding and inside the object is in the form of tiny tiles due to the grid cutting of the remaining sheet in each layer. Therefore, the extraction of the object from the stock in the existing LM is very similar to the way a casting is extracted from inside a sand mold as shown in Fig. 3a. After removing the cope and drag, the sand mold is broken using a hammer to take out the casting. The way the mold is broken into chunks of sand is quite arbitrary. Further, the sand core is removed from the internal features of the casting. Similarly, the LM object is taken out by breaking the surrounding and inside stock which is in the form of tiny tiles. These tiny tiles are analogous to the sand particles. On the other hand, the extraction of an aluminum casting or a plastic part from its permanent mold is not achieved by arbitrarily breaking the surrounding mold and cores. Here, the mold opens into two halves to enable the extraction of the casting (Fig. 3b). If the molded part is quite complex with reentrant features, suitable cores are used which may 285 be ®xed or movable or removable. The ef®cient stock cutting method proposed in this paper is similar to the extraction of a casting from its permanent mold. This involves the identi®cation of parting line and surface about which the surrounding stock opens. Let the object to be produced using LM be O and its convex hull be CH. When the object O is subtracted from CH, one will get a set of n pieces {P} ˆ {P0, P1, P2,¼, Pn21} called plugs. When all the n plugs are assembled onto the object O, one gets its convex hull CH. Two examples are shown in Fig. 4 depicting the object O, its convex hull CH and the plugs {P}. If the object O is convex, then, O and CH are one and the same and hence n ˆ 0. If the object O is nonconvex, then O and CH are different and hence n . 0. Let B be the rectangular block of stock at the end of building the object. Among the plugs, some may be `drawable' and some may not be drawable, i.e. they are `undrawable'. A plug is drawable if there exists at least one direction along which the plug can be taken out without interfering or damaging the object O or other plugs; otherwise, it is undrawable. Let there be nd drawable and nud undrawable plugs such that n ˆ nd 1 nud. Let the set of nd drawable plugs be {Pd} and the set of nud undrawable plugs be {Pud}. In Example 1 of Fig. 4, both the plugs are drawable and in Example 2, two plugs are drawable and one is undrawable. A parting line PL of a convex object is a closed silhouette curve lying on its surface. Since objects represented by polyhedral geometric models only are considered in this paper, PL will be represented by an array of points, i.e. PL ˆ {p0, p1, p2, ¼}. The surface joining the parting line PL with the boundary of the stock B is called parting surface PS. PS will be represented by a set of quadrilateral planar patches in this paper. Any convex object has an in®nite number of parting lines. Any given parting line can have an in®nite number of parting surfaces each of which is associated with a pair of opposite directions called parting direc^ tion d along which the stock halves can open, i.e. d ˆ ^d. Each parting direction may be associated with one parting line or an in®nite number of parting lines. In other words, any convex object has in®nite combinations of parting directions, parting lines and parting surfaces. The following are the steps involved in the proposed method of stock removal to extract the object by optimally cutting the surrounding and inside stock. This method is independent of the slicing strategies adopted. These steps are illustrated for the object O shown in Fig. 5a. The stock B from which the object is to be extracted is shown in Fig. 5b. Step 1: Calculate the convex hull CH of the object O (Fig. 6). Step 2: Among these in®nite number of parting surfaces, identify the one that has the least area. Let this optimal parting surface be PSopt and the corresponding parting line and parting direction be PLopt and dopt. These are shown in Fig. 7. Interestingly, PSopt 286 K.P. Karunakaran et al. / Computer-Aided Design 34 (2002) 281±298 Fig. 4. Object O, its convex hull CH and its plugs {P}. Fig. 6. Convex hull CH. Fig. 5. Object and stock. (a), object O; (b), stock B with object O inside. Fig. 7. Optimal parting surface PSopt and the corresponding parting line PLopt and parting direction dopt. K.P. Karunakaran et al. / Computer-Aided Design 34 (2002) 281±298 287 Fig. 9. Plugs {P}. Fig. 10. Splitting of the undrawable plug(s) into drawable plugs. Fig. 8. Surrounding stock and stock halves. (a), Surrounding stock BS; (b), stock halves SH1 and SH2. is sensitive to the dimensions of the block and the position and orientation of CH inside the block. Step 3: Subtract the convex hull CH from the rectangular stock block B to get the stock surrounding CH. Call this as surrounding stock BS. This is shown in Fig. 8a. Split the surrounding stock BS into two stock halves SH1 and SH2 using the optimal parting surface PSopt. These stock halves are shown in Fig. 8b. If the stock halves SH1 and SH2 are opened along the optimal parting direction dopt, the convex hull CH can be extracted. Step 4: Subtract O from CH to get the set of plugs {P}. Identify them as nd drawable plugs {Pd} and nud undrawable plugs {Pud}. Each drawable plug will have one or more parting directions along which they can be extracted from the object O. There are two plugs in this illustration as shown in Fig. 9. One plug is drawable and the other is undrawable, i.e. n ˆ 2 and nd ˆ nud ˆ 1. Step 5: Split each of the undrawable plugs suitably so that the resulting pieces become drawable plugs. Transfer these plugs to the set of drawable plugs {Pd} and delete the corresponding undrawable plug from {Pud}; update the value of nd and nud accordingly. In the illustration, the undrawable plug is split into three drawable plugs as shown in the Fig. 10. Note that there may be more than one way of splitting an undrawable plug and the one that has the least area of the splitting surfaces is to be chosen. Step 6: Among nd drawable plugs {Pd}, it is quite possible that some of them may be able to open along dopt. If so, attach such plugs with the corresponding stock half SH1 or SH2 by Boolean union operation. Such attached pieces are no longer to be considered since they are now integral with one of the stock halves. Accordingly, delete the plugs attached to the die halves from {Pd} and update the value of nd. At the end of Step 5, the present object has four drawable plugs. Since one of them has dopt as one of its opening directions, it is attached to stock halve SH2 as shown in Fig. 11. The change will 288 K.P. Karunakaran et al. / Computer-Aided Design 34 (2002) 281±298 Fig. 11. Modi®ed stock halves SH1 and SH2 after attaching drawable plugs separable along dopt. Fig. 12. Assembly of O, SH1, SH2 and {Pd} ; B. be obvious if the interior details of the stock halve SH2 shown in Figs. 8b and 11 are compared. Step 7: Pack the object O, the stock halves SH1 and SH2 and the set of drawable plugs {Pd} as shown in Fig. 12 to get a contiguous block which is same as the stock block B. Submit this set of packed objects to the slicing algorithm and further make it using the LM machine. Note that, in this method, the laser cuts only at boundaries of the pieces at the corresponding Z-level and it does no grid cutting of the stock. Step 8: The stock cutting for this is optimal. Open both the stock halves SH1 and SH2 to get the object O along with the drawable plugs {Pd}. Remove each of the drawable pieces along appropriate directions. Finally the object O is obtained. Fig. 13 gives a comparison of the stock cutting between the proposed and existing methods. For the purpose of this comparison, the assembly of these pieces were assumed to be built in eight layers each 5 mm thick. The cutting ef®ciency of the proposed method for this case is found to be about six times (88%) that of the existing method (15%). It Fig. 13. Comparison of stock cutting methods. (a), Present method; (b), proposed method. is obvious that higher the number of layers more will be the bene®ts of the proposed method. Most commonly used layer thickness is of the order of 0.25 mm which means that this object will be made in about 160 layers resulting in even more signi®cant improvements in stock cutting. 3. Description of the algorithms for ef®cient stock cutting The methodology to fragment the stock block B optimally, i.e. with minimum area of cutting, was described in the last section. This makes use of a number of algorithms which will be described in this section. K.P. Karunakaran et al. / Computer-Aided Design 34 (2002) 281±298 289 If none of the faces of CH are visible, discard pi as it is already inside CH. Else All the visible faces will form a single contiguous patch. Let {E} ˆ {E0, E1, E2 ¼} be the boundary edges of this contiguous patch. For each Ek do Add the triangular face (Ek, pi) to CH. Delete the face of the contiguous patch corresponding to the edge Ek from CH. The convex hulls of two objects shown Fig. 4 were obtained using this algorithm. The formula used for calculating the volume of the tetrahedron (p0, p1, p2, p3) in this algorithm is Fig. 14. Example of a non-convex object completely visible from a pair of opposite directions. 3.1. Calculation of convex hull For a convex object, there exist an in®nite number of pairs of opposite directions along which it is completely `visible', i.e. each face of the convex body will be visible from one of the opposite directions [13±16]. Some nonconvex objects such as the one shown in Fig. 14 also may have at least one pair of opposite directions along which they are completely visible. However, the existence of such an interference-free parting direction is not guaranteed for a general non-convex object. Due to this very important property of a convex hull, the parting lines, surfaces and directions are calculated for the convex hull CH of the object rather than for the object O itself. However, it may be noted that this approach does not affect ef®ciency considerably since some of the drawable plugs get attached to one of the stock halves subsequently (see Step 6 of Section 2). There are several ef®cient algorithms mentioned in the literature for constructing the convex hull of an object [17]. Gift Wrapping algorithm, Quick Hull algorithm, Incremental algorithm and Divide and Conquer algorithm are some of them. Among these, the authors have chosen the Incremental algorithm for this work. Let {p} ˆ {p0, p1, p2, ¼, pn21} be the set of all vertices of the polyhedral object O. Its convex hull CH is de®ned by a set of triangular faces {F} ˆ {F0, F1, F2, ¼}. Each face Fj is represented by three vertices de®ned in CCW direction about its outward normal. Initially CH is the tetrahedron created from the ®rst four vertices. This CH grows by absorbing a set of tetrahedra formed by its faces and outside points such that the resulting object is also convex. The Incremental algorithm is given below: Initialize CH by the tetrahedron (p0, p1, p2, p3). For i ˆ 4 to n 2 1 do For each face Fj of CH do Compute the volume v of the tetrahedron (Fj, pi). If v , 0, mark Fj as `visible' as it can be seen from pi. x0 y0 z0 1 x1 y1 z1 1 x2 y2 z2 1 x3 y3 z3 1 3.2. Visibility Visibility analysis is used in this work for ² identifying parting directions, parting lines and parting surfaces; ² classifying the plugs into drawable and undrawable ones; and ² segmenting the undrawable plugs into drawable ones. These visibility analyses are generally carried out by mapping the complex 3D object onto a unit sphere at the origin. This way, one can take advantage of simple spherical algorithms to solve complex problems [13]. Every point on the unit sphere is actually a direction of `visibility' or `parting'. Since only polyhedral objects are dealt with in this work, discussions here are restricted to planar faces. The mapping of a planar face onto the unit sphere can be done in the following two ways depending on whether one uses the parallel plane or normal of the face for mapping. 1. One way is to de®ne an in®nite plane passing through origin and parallel to the face and use the intersection of this plane and the unit sphere as the mapping. In this case, the mapping is a unit circle which is a great circle (Great circle of a sphere is any circle whose center and radius are same as that of the sphere). This circle divides the unit sphere U into two hemispheres, viz., visible hemisphere Uv and invisible hemisphere Ui; from every point of Uv the face is completely visible and from every point of Ui the face is completely invisible. The hemisphere Uv is called Visibility Map (V-Map) of the face. 2. Another way is to use the outward unit normal of the face passing through the origin as the mapping. In this case, the mapping of the face on the unit sphere U is a point. This is called Gaussian Map (G-Map). 290 K.P. Karunakaran et al. / Computer-Aided Design 34 (2002) 281±298 Fig. 15. G-Map and V-Map of a planar face. (a), A planar face; (b), its G-Map; (c), its V-Map. It may be noted that these maps are same for all parallel faces and are independent of their boundary. Fig. 15 shows the V-Map and G-Map of a face which are respectively a hemisphere and a point on the sphere. In this paper, only VMaps are used. 3.3. Visibility cones of a convex polyhedral object Since the V-Map of any face will be represented by a great circle on the unit sphere U, a convex polyhedral object will have as many great circles as the number of faces. All these circles divide the surface of U into several regions that look like `3D pies'. Each such region or pie is called Visibility Cone (V-Cone). Interestingly, V-Cones occur in pairs which are mirrors of each other about the origin. The spherical patch of any V-Cone has convex boundary and each point on this patch represents a parting direction. For example, an octahedron has 78 V-Cones as shown in Fig. 16a. 3.3.1. Algorithm to ®nd the V-Cones of a convex polyhedral object Let {F} ˆ {F0, F1, F2, ¼, Fm21} be the set of triangular faces of the convex object. If the object has parallel faces, only one of them will be included in this list since all parallel faces have the same V-Map. If p0, p1 and p2 are the vertices of any face Fi de®ned in CCW direction when looking from outside, then, the outward normal Ni of this face and its outward unit normal n^i are respectively given by j^ k^ Ni ˆ p1 2 p0 † £ p2 2 p1 † ˆ x1 2 x0 y1 2 y0 z1 2 z0 x2 2 x1 y2 2 y1 z2 2 z1 i^ n^i ˆ Ni ˆ ‰ li iNi i mi ni Š The V-Map of a horizontal face, i.e. a face whose normal is n^ ˆ ‰ 0 0 1 0 Š, is a horizontal great circle c. This is Fig. 16. V-Cones. (a), An octahedron and its V-Cones; (b), identifying the pair of V-Cones corresponding to an edge; (c), three types of points in a V-Cone. K.P. Karunakaran et al. / Computer-Aided Design 34 (2002) 281±298 de®ned in terms of a parameter u as c ˆ ‰ cosu sinu 0 1 Š: Therefore, the V-Map of a face Fi whose normal is n^ i ˆ ‰ li mi ni 0 Š is a great circle ci. This is given in terms of a parameter ui as ci ˆ ‰ cosui sinui 0 1 Š 2 ni li 0 2 q 6 q 6 n2 1 l 2 n2i 1 l2i 6 i i 6 6 q 6 li mi m i ni 6 n2i 1 l2i 2 q  6 2 q 6 n2i 1 l2i n2i 1 l2i 6 6 6 6 li mi ni 4 0 0 0 3 07 7 7 7 7 7 07 7 7 7 7 7 07 5 1 1 ˆ q ‰ ni cosui 2 li mi sinui † n2i 1 l2i †sinui 2 ni 1 l2i 2 li cosui 1 mi ni sinui †Š There will be m unique great circles {c0, c1, c2, ¼, cm21} that are the V-Maps of all the m faces of {F}. Any two unique great circles of a sphere shall always intersect at two points and these pair of intersection points are diametrally opposite. Let the intersection points of two such great circles ci and cj be p1 and p2. Let ui1 and uj1 be the parameter values of circles ci and cj respectively corresponding to the point p1 and ui2 and uj2 be the parameter values of circles ci and cj respectively corresponding to the point p2. By solving the equations of ci and cj one can obtain these four parameters as follows: uj1 ˆ tan21 nj li 2 lj ni mj ni nj 1 li lj † 2 mi n2j 1 l2j † uj 2 ˆ uj 1 1 p 3 2 q 2 2 n 1 l j 7 6 j ui1 ˆ sin21 4 q sinuj1 5 2 2 ni 1 li 291 of the circle with which the intersection occurs and ipj is the index of the intersection point in the array {pc }. The following algorithm calculates all these intersection points in parametric and Euclidean spaces and updates the data structures: {c} is an array of m circles. The corresponding m normals are also stored as (l, m, n). {pc } is an array of the intersection points which are actually the corner points of the V-Cones. q is the index of array{pc }. Initialize q ˆ 0. For i ˆ 0 to m 2 2 do For j ˆ i 1 1 to m 2 1 do ± Points_already_exist ˆ False. ± Calculate the pair of intersection points of the circles ci and cj in the parametric spaces of both as follows: uj1 ˆ tan21 nj l i 2 l j ni mj ni nj 1 li lj † 2 mi n2j 1 l2j † uj2 ˆ uj1 1 p 3 2 q 2 2 n 1 l j 7 6 j ui1 ˆ sin21 4 q sinuj1 5 2 2 ni 1 l i ui2 ˆ ui1 1 p ± Calculate the pair intersection points p1 and p2 in Euclidean space using the equation of ci (or cj) ± If p1 and p2 are already present in the array pc, set Points_already_exist ˆ True; Note their indices in {pc } as r and r 1 1; ± Else insert them in {pc }. ± If Points_already_exist ˆ False, insert the triplets (ui1 , j, q) and (ui2 , j, q 1 1) in circle ci and the triplets (uj1 , i, q) and (uj2 , i, q 1 1) in circle cj in the ascending order of u; ± Else insert the triplets (ui1 , j, r) and (ui2 , j, r 1 1) in circle ci and the triplets (uj1 , i, r) and (uj2 , i, r 1 1) in circle cj in the ascending order of u. ± If Points_already_exist ˆ False, q ˆ q 1 2. ui 2 ˆ ui 1 1 p All these intersection points are stored in an array {pc } ˆ {pc0 ; pc1 ; pc2 ; ¼}. There may be situations when more than two circles intersect at the same point. In such cases, the same pair intersections is obtained more than once; however, they are stored only once in the array {pc }. For each circle ci, the unit normal n^i ˆ ‰ li mi ni 0 Š of the corresponding face and the details of its intersections with other circles in the form of a triplet (uj, icj , ipj ) for each such intersection will be stored. In the triplet, uj is the parameter corresponding to the intersection point, icj is the index Once the corners and edges of all V-Cones are obtained using the above algorithm, the next step is to ®nd the vertices and edges belonging to each V-Cone and the order in which these edges are connected. It is also important to get this connectivity information in a ®xed fashion, say, CCW about the outward normal of the sphere. Each V-Cone will be represented by its corner points (in terms of the indices of the array {pc }) in CCW direction. Let the array of all the V-Cones be {Vc } ˆ {Vc0 ;c1 ; Vc2 ; ¼}. The following algorithm identi®es the corner points and their connectivity of each of the 292 K.P. Karunakaran et al. / Computer-Aided Design 34 (2002) 281±298 V-Cones. It makes use of the following two facts: 1. Each edge of the circle ci will be shared by only two VCones. 2. The spherical patch of any V-Cone is convex. Initialize k ˆ 0, the index of the array of V-Cones {Vc }. For i ˆ 0 to m 2 1 do For each edge j of the circle ci between the parameters uj and uj11 do ± Traverse the edge along the direction (uj - . uj11) in CCW direction, i.e. turning left whenever the intersection with another circle is encountered, each time storing the index of the encountered corner point in the array {pc }. The sequence of these indices represents the V-Cone. If this VCone is not already identi®ed, store Vck and increment k by 1 (see Fig. 16b). ± Traverse the edge along the direction (uj11 - . uj) in CCW direction, i.e. turning left whenever the intersection with another circle is encountered, each time storing the index of the encountered corner point in the array {pc }. The sequence of these indices represents the V-Cone. If this cone is not already identi®ed, store Vck and increment k by 1 (see Fig. 16b). Fig. 16b shows the construction of the connectivity information of the pair of V-Cones shared by an edge. The points of any V-Cone will be of three types as shown in Fig. 16c: 1. Points on the interior of the V-Cone 2. Points on the boundary of the V-Cone 3. Points on the corners of the V-Cone. The corner points are calculated and stored in the array {pc } as explained earlier. Let {pc } be an array of points to store a representative point for each edge of the circles {c}. For the sake of simplicity let this representative point be the mid point of the edge. Let {pi } be an array of points to store a representative interior point for each V-Cone. For the sake of simplicity let this representative point be the normalized centroid of the V-Cone. The array of points {pe } is calculated as follows: Initialize k ˆ 0 where k is the index of array {pe }. For i ˆ 0 to m 2 1 do For each edge j of the circle ci de®ned by the end parameters (uj, uj11) do calculate the mid-point pck using the equation of ci for the parameter (uj 1 uj11)/2. k ˆ k 1 1. Finally, the centroid of each V-Cone is calculated and stored in the array of points {pi } after normalization. As there can be hundreds of faces on the convex hull of the object, creation and storage of the V-Cones will take considerable part of the execution time and memory. Since the three arrays of points {pc}, {pe} and {pi} represent all possible parting directions for the purpose of calculating the optimal parting surface PSopt, only they are stored purging the rest of the details of the V-Cones as soon as possible. 3.4. Parting line for a given direction d Since both the object O and its convex hull CH are polyhedral objects, any parting line of CH will be a closed 3D polygon. Let any parting line be PL ˆ {E0, E1, E2, ¼} where Ei is an edge of CH. PL is also the boundary of all visible faces of CH along a given parting direction and hence visibility of the faces is used to identify PL. The following important properties of any V-Cone of a convex object will be made use of for calculating PL: ² From every direction corresponding to an interior point of a V-Cone, the same set of faces is visible. Therefore, it is enough to calculate the parting line for a representative point on the interior of the V-Cone. The normalized centroid of the V-Cone can be used as this representative point. ² From every direction corresponding to an edge point of a V-Cone, the same set of faces is visible. Therefore, it is enough to calculate parting line for a representative point on each edge. The mid point of an edge can be used as this representative point. ² The set of faces visible from the direction corresponding to any corner point of a V-Cone is unique. ² The parting line is same for all interior points of a VCone since no face is parallel to the corresponding parting direction. ² Any edge point of a V-Cone will correspond to an in®nite number of parting lines. This is because, the face corresponding to the edge is parallel the parting direction. If a face is parallel to the parting direction, every possible line on the face gives rise to a parting line. ² Any corner point of a V-Cone will also correspond to an in®nite number of parting lines. This is because, there are more than one face parallel to the corresponding parting direction. Each of the in®nite number of edges of these faces can become a part of the parting line. A unit sphere of visibility represents an in®nite number of parting directions. However, from the above properties, it is clear that one needs to consider only a ®nite number of parting directions corresponding to the three arrays of points {pc}, {pe} and {pi} to compute PSopt. For any of these parting directions, one can ®nd the parting line PL. Interestingly, this algorithm does not distinguish whether the point is an interior, edge or corner point any longer. Let the faces and edges of the convex hull CH be {F} ˆ {F0, F1, F2, ¼} and {E} ˆ {E0, E1, E2, ¼} and let K.P. Karunakaran et al. / Computer-Aided Design 34 (2002) 281±298 293 Fig. 17. Parting line. (a), When none of the faces are parallel to the parting direction; (b), when one or more faces are parallel to the parting direction. PL be the parting line corresponding to the parting direction ^ It is obvious that PL , E. PL is obtained using the followd. ing algorithm. Initialize PL ˆ NULL where PL is an array of edges. For each edge Ei of CH do ± Identify the pair of faces F1 and F2 shared by the edge Ei. Let n^ 1 and n^ 2 be their outward normals. ± Calculate a ˆ n^ 1 : C d^ and b ˆ n^ 2 : C d^ . ± If (ab , 0) or ((a . 0) and (b ˆ 0)) or ((a ˆ 0) and (b . 0)), copy the edge to PL. ± All the edges of PL have been identi®ed but they may be jumbled up. Rearrange the elements of PL to form a closed loop. This algorithm makes use of the fact that `if only one of the faces shared by an edge is visible along a direction, that edge is part of the parting line for that direction'. These cases of parting line are shown in Fig. 17a. If a . 0, then ^ otherwise F1 is not visible. Simiface F1 is visible along d, ^ otherwise F2 is larly, if b . 0, then face F2 is visible along d, not visible. Therefore, in order for an edge to become a member of PL, its a and b shall have opposite signs, i.e. ab , 0. This can happen when d^ is an interior point of a VCone. However, when a or b equals zero, it indicates that the ^ This corresponding face is parallel to the parting direction d. happens when d^ corresponds to an edge or corner point of a V-Cone. When this happens, the above algorithm picks the extremes edge(s) of the parallel face as shown in Fig. 17b and does not consider the in®nite number of line segments in-between them. However, this does not affect the bene®ts much for the following reasons: ² A parallel face can have in®nite number of lines which can become a part of PL. Considering all these lines is not practicable. ² The performance of the algorithm without considering the in-between edges itself is much more ef®cient than the existing method of uniform grid cutting. ² An optimal algorithm that calculates the ¯attest parting line when one or more faces are parallel to the parting direction is reported in literature [16]. However, the ¯attest parting line does not guarantee the minimum parting surface area. 294 K.P. Karunakaran et al. / Computer-Aided Design 34 (2002) 281±298 Fig. 18. Mapping the vertices of the parting line on the faces of stock block. (a), parting line PL and stock block B; (b), six orthogonal images of a vertex pi of PL on stock block B; (c), c set of lines of the minimum parting surface PSmin, one line corresponding to each vertex of the parting line PL. 3.5. Minimum parting surface for a given parting line The parting line PL and the stock block B are shown in Fig. 18a along with the convex hull CH. Any parting line PL can be connected to the boundary of the enclosing stock block B by an in®nite number of parting surfaces PS. However, among them, it is required to locate the parting surface PSmin that has the least area. Let the parting line be de®ned by a sequence of vertices as PL ˆ {p0, p1, p2, ¼}. Any of its parting surface PS can be de®ned by a sequence of quadrilateral planar patches PS ˆ {F0, F1, F2, F3, ¼}. Each vertex pi of PL will have six orthogonal images or projections, one on each of the six faces of the stock block B (Fig. 18b). Let these images be {pi0 , pi1 , pi2 , pi3 , pi4 , pi5 }. Among these six images, choose the image p 0 i such that it is the nearest to pi and the line pip 0 i does not cut the convex hull. It is clear now that the line pip 0 i lies on PSmin. This way, one can obtain a set of lines pip 0 i that lie on PSmin one corresponding to each vertex pi of PL as shown in Fig. 18c. Now, all one needs to do is to identify the surface patch(es) of minimum area that connect(s) each pair of these consecutive lines pip 0 i and pi11p 0 i . pi and pi11 are the two consecutive points de®ning an edge of PL and their images on the stock block are p 0 i and p 0 i11 respectively. Depending on the planes of B on which these images lie, there will be three types of images possible as given below: Type A: Both p 0 i and p 0 i11 lie on the same face of B (Fig. 19a). In this case, the quadrilateral planar patch pip 0 i p 0 i11 pi11 will form the part of PSmin between the lines pip 0 i and pi11p 0 i11 . K.P. Karunakaran et al. / Computer-Aided Design 34 (2002) 281±298 295 Fig. 19. Obtaining minimum parting surface from the three types of images of the edges of the parting line. (a), type A image of the edge of the parting line; (b), type B image of the edge of the parting line; (c), type C image of the edge of the parting line; (d), minimum parting surface PSmin. Type B: p 0 i and p 0 i11 lie on the adjacent faces of B (Fig. 19b). Let the corresponding faces of B be B1 and B2. Choose a point p on the edge pipi11 such that it is equidistant from both B1 and B2. Let the orthogonal images of p on B1 and B2 be q1 and q2 respectively. The following three planar patches will form the part of PSmin between the lines pip 0 i and pi11p 0 i11 : Quadrilateral planar patch pip 0 i q1 p Square with adjacent sides as pq1 and pq2 Quadrilateral planar patch pq2p 0 i11 pi11 Type C: p 0 i and p 0 i11 lie on the opposite faces of B (Fig. 19c). Let the corresponding faces of B be B1 and B3. Choose a point p on the edge pi pi11 such that it is equidistant from B1 and another face, say B2, from among the remaining four faces of the stock block. Let the orthogonal images of p on B1 and B2 be q1 and q2, respectively. Now the following two planar patches will form the part of PSmin between the lines pip 0 i and pq2: Quadrilateral planar patch pip 0 i q1p Square with adjacent sides as pq1 and pq2. The three planar patches that form PSmin between pq2 and pi11p 0 i can be obtained by considering Type B image between these two lines. All the patches obtained in the above procedure constitute PSmin (Fig. 19d) which splits the stock block into two stock halves SH1 and SH2. 3.6. Identifying a plug as drawable or undrawable The set of plugs {P} is obtained by subtracting O from CH. Once again, the visibility analysis using V-Map can be used to classify any of these plugs as drawable or undrawable. Let {F} ˆ {F0, F1, F2, ¼} be the set of faces common to both the given plug and the object O. If all these faces are visible from at least one direction, then the plug is drawable; otherwise, it is undrawable. This is done using the following algorithm: ² For each face Fi, create its V-Map which will be a hemisphere. ² Find the intersection of all these hemispheres. This will be the V-Map of the plug. ² If the V-Map of the plug is NULL, the plug is undrawable; Otherwise, it is drawable. Fig. 4 illustrates two cases where the above algorithm was used to classify the plugs. The V-Map of a drawable plug may be a wire (i.e. a point on unit sphere), a sheet (i.e. an arc on unit sphere) or a V-Cone (i.e. a convex surface patch on unit sphere). If it is a wire, it has only one parting direction; if it is a sheet, it has several parting directions lying on a plane; and if it is a cone, then, every point on the spherical patch of the V-Cone is a parting direction. As mentioned in Step 6 of Section 2, if the V-Map of the plug overlaps with the V-Map of the parting surface PSopt, then, the plug can be attached to the corresponding stock half. 296 K.P. Karunakaran et al. / Computer-Aided Design 34 (2002) 281±298 3.7. Splitting of undrawable plugs into drawable plugs An illustration of splitting an undrawable plug into drawable plugs was given in Fig. 10. However, every case is not so straightforward and often there are in®nite ways of splitting. The authors are yet to develop an ef®cient algorithm for optimal splitting. This algorithm also will make use of visibility analysis. Until such an algorithm is developed, splitting can be done of¯ine manually. Alternatively, the undrawable plugs will be simply not included in the list of pieces to be packed as mentioned in Step 7 of Section 2. Therefore, the LM software will treat them as unwanted stock and hence split them by grid cutting. 4. Experimental veri®cation and illustration Some experiments were conducted on a Helisys LOM machine to verify the proposed method. The object used for these experiments is shown in Fig. 20a. The stock block of this object is its bounding box itself and hence all the plugs obtained using the proposed method are drawable ones. They are nine cylinders, two wedges and six plate-like pieces. All these plugs and the object together form the stock block. Note that there are no die halves in this case since the convex hull of the object is its bounding box itself. The exploded view of the object and its plugs are shown in Fig. 20b. It was realized during the ®rst trial itself that the LOM machine cannot handle objects which ®t together exactly and that all the plugs and the object have to have a clearance at all their interfaces. This is because the laser beam that cuts the paper stock has a ®nite diameter and hence it should move with an offset equal to the beam radius while cutting any pro®le. The primary purpose of these experiments was to identify the optimal value of the clearance. The laser beam diameter was 0.257 mm in this case. One set of object and plugs obtained in these experiments is shown in Fig. 20c. It was concluded from these experiments that a clearance of 0.300 mm will be satisfactory; in other words, the clearance among the pieces has to be little more than the laser beam diameter. Since the present implementation cannot automatically introduce this clearance among the pieces, a simpler piece was used in these experiments. One can specify two types of grid sizes on the Helisys LOM machine; one is the normal grid size and the other is the ®ne grid size. The square cross-section of the tiles will be of the size of the normal grids. This is essential for conventional decubing but can be switched off or set at a high value when the proposed method is used. In these experiments, the authors kept it at 50 mm. When there are horizontal surfaces on the object, the laminates of consecutive layers stick to each other. To prevent this, these zones can be burnt in grids decided by the ®ne grid size. The other alternative is to avoid horizontal surfaces by tilting the object, say by 10± 158 in an appropriate direction. The authors preferred to avoid horizontal surfaces by tilting since cutting of the ®ne grids took longer. The path planning of the laser beam during ®ne grid cutting was not ef®cient in the machine used for these experiments. However, the authors are in favor of using a ®ne grid size of about 0.500 to 1.000 mm if better path planning for it is available. The present implementation was written in Visual C11 and uses a high-end geometric modeling kernel called Parasolid. It can handle objects whose ASCII STL ®les are as large as 2 MB. Since only STL ®les are used, it is proposed to replace Parasolid by a polyhedral kernel in order to handle bigger STL ®les. The STL ®le of the bracket shown in Fig. 1a has a size of 0.5 MB. When this bracket was processed using the proposed method, it resulted in a single undrawable plug and two stock halves. The undrawable plug was split into two drawable plugs by separating the plug of the hole at the eye end. The exploded view of all the pieces, viz., the bracket, the two stock halves and the two plugs, are shown in Fig. 21. 5. Conclusions At the end of building an object using LM, one obtains a rectangular block of stock with the object inside. Conventionally the stock laminates have grid cuts so that the unwanted stock is available in the form of tiny tiles. The stock fragmented this way is removed similar to the way a sand mold is broken to extract the casting. Unlike this, an ef®cient method of stock cutting has been presented in this paper drawing its analogy from permanent mold design. This novel method of extracting the object from inside its rectangular stock will have minimum cutting on the stock. This method drastically reduces the time to build as well as decube the prototypes. This also will improve the quality of the prototypes. The methodology presented in this paper involves combinatorial search at four places, viz. 1. In®nite number of parting directions are encountered for CH (Step 2 of Section 2). 2. In®nite number of parting lines are encountered for the parting directions that are parallel to one or more faces of CH (Step 2 of Section 2). 3. In®nite number of parting surfaces are encountered for each PL (Step 2 of Section 2). 4. In®nite number of ways exist to split the undrawable plug into drawable plugs (Step 5 of Section 2). In the proposed methodology, solutions for the combinatorial problems of (1±3) are obtained in reasonable speed. However, these may not be the optimal solutions. The authors have not yet developed an algorithm for (4), viz. optimal splitting of undrawable plugs. Therefore, presently the undrawable plugs shall be split manually. Alternatively, they will be treated as wastes by the LM machine and removed by grid cutting. Furthermore, an algorithm for K.P. Karunakaran et al. / Computer-Aided Design 34 (2002) 281±298 Fig. 20. Experimental veri®cation of the proposed method. (a), object; (b), exploded view of the object and its plugs, (c), object and plugs built on a Helisys LOM machine using the proposed method. 297 298 K.P. Karunakaran et al. / Computer-Aided Design 34 (2002) 281±298 Fig. 21. Illustrative example. introducing clearance at the interfaces of all the pieces also needs to be developed. When these two features are added to the package, it will become a useful tool to improve the productivity and quality of LM machines. [6] [7] Acknowledgements [8] The authors are grateful to Professor Ajay Joneja of HKUST, Hong Kong for the initial discussions on this problem during the visit of the ®rst author to HKUST in December 1997. The authors also thank the encouraging review of Mr Michael Feygin, Chairman and CTO of Helisys, Inc., USA and his permission to reproduce their illustration as Fig. 2. Furthermore, The authors gratefully acknowledge the help of DaimlerChrysler AG, Stuttgart, Germany for allowing the experiments to be carried out on their Helisys LOM RP machine. References [9] [10] [11] [12] [13] [14] [1] Kai CC, Fai LF. Rapid prototyping: principles and applications in manufacturing. John Wiley & Sons, 1997. [2] Yan X, Gu P. A review of rapid prototyping technologies and systems. Computer-Aided Des. 1996;28(4):307±31. [3] Dolenc A, Maekelae. Simple procedures for Layered Manufacturing techniques. Computer-Aided Des. 1994;26(5):119±26. [4] Kulkarni P, Dutta D. An accurate slicing procedure for Layered Manufacturing. Computer-Aided Des. 1996;28(9):683±97. [5] HorvaÂth I, Vergeest JSM, Broek JJ, RusaÂk Z, de Smit B. Tool pro®le [15] [16] [17] and tool path calculation for free-form thick-layered fabrication. Computer-Aided Des. 1998;30(14):1097±110. Karunakaran KP, Vivekananda Shanmuganathan P, Roth-Koch S, Koch Kai Uwe. Direct rapid prototyping of tools. Ninth Solid Freeform Fabrication Symposium, Austin (August), 1998. p. 105±12. Himmer T, Nakagawa T, Anzai M. Lamination of metal sheets. Proc. Conference on Intelligente ProduktionssystemeÐSolid Freeform Manufacturing, Dresden, Germany (September), 1997. p. 335±41. Dickens PM. Principles of design for laminated tooling. International Journal of Production Research 1997;35(5):1349±57. Walczyk DF, Hardt DE. A comparison of rapid fabrication methods for sheet metal forming dies. ASME Journal of Manufacturing Science and Engineering 1999;121:214±23. Inhaeng Cho, Kunwoo Lee, Woncheol Choi, Yong-Ak Song. Development of a new sheet deposition type Rapid Prototyping system, International Journal of Machine Tools and Manufacture (to appear). Huang Q, Wang Y. Research on cutting meshes in LOM The First International Conference on Rapid Prototyping & Manufacturing Beijing (July), 1998. p. 618±20. Personal E-Mail communications with Michael Feygin, Chairman and CTO, Helisys, Inc., USA. Woo TC. Visibility maps and spherical algorithms. Computer-Aided Des. 1994;26(1):6±16. Chen LL, Chou SY, Woo TC. Parting directions for mould and die design. Computer-Aided Des. 1993;25(12):762±8. Chen LL, Chou SY, Woo TC. Partial visibility for selecting a parting direction in mold and die design. Journal of Manufacturing Systems 1995;14(5):319±20. Majni J, Gupta P, Janardan R, Computing a ¯attest undercut-free parting line for a convex polyhedron with application to mold design, FCRC. 96 Workshop. Springer-Verlag, 1996. p. 121±32. O'Rourke J. Computational geometry in C. Cambridge University Press, 1994.