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.