Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Thesis
Presented in Partial Fulfillment for the Requirements for the Degree Master of Science
in the Graduate School of the Ohio State University
By
Zhaohui Ning, M.A
Graduate Program in Industrial & System Engineering
Thesis Committee:
Dr. R.Allen Miller, Adviser
Dr. Jerald R. Brevick
Copyright by
Zhaohui Ning
2009
Abstract
The research focuses on the development of a die casting runner system design
process, and the visualization of this process. It provides a simple and flexible data
representation for the runner system data and a user interface in CastView to create this
data. The design process includes two steps. The first step is to create profiles. The
second step is to create runner system data. Profile creation utilizes b-spline curve fitting
algorithms to generate profiles with a uniform number of profile points from user defined
sketches with a none-uniform number of sketch points. Runner system surfaces are
created by sweeping interpolated profiles along user defined curve paths. To fully define
runner system surfaces and promise their smoothness, curve paths shapes and
interpolation methods need to be defined. Different shapes and different interpolation
methods can be applied to a sweep path. In the implementation presented here, circle is
used for path shape and s-function interpolation is applied to normal and planar points.
With these configurations, smooth sweep runner system surfaces have been illustrated.
ii
Dedication
iii
Acknowledgments
I would like to express my sincere gratitude to my advisor, Dr. R. Allen Miller, for
his guidance, support and encouragement over these years. He has been so enthusiasm
and dedicated as a great researcher.
I would like to state my sincere appreciation to Dr. Jerald R. Brevick for
enhancing me with the background knowledge and encouraging me at time I need.
I would like to say thanks to my parents, who brought me up, bestowed me
capacities and skills and taught me never to give up.
I would also like to say thanks to my friends in China, whose sincerity gave me so
much strength to face difficulties.
At last, I would like to express my deepest gratitude to my beloved wife, Hongyan
He, who gave me so much support, attention and consideration for more than ten years.
iv
Vita
January 1st, 1974 Born Qingdao, Shandong, P. R. China
September, 1992 July, 1996 B.S. Mechanical Engineering
Qingdao University
Qingdao, P. R. China
September, 1996 March, 1999 M.S. Mechanical Engineering
Shanghai University
Shanghai, P. R. China
September, 2003 Present Graduate Research Associate
Industrial and Systems Engineering
The Ohio State University
Ohio, USA
Fields of Study
Major Field:
Minor Field:
Areas of Interest:
Table of Contents
1. INTRODUCTION......................................................................................................... 1
1.1. Die Casting............................................................................................................... 1
1.2. Die Casting Process ................................................................................................. 2
1.3. Thesis Outline .......................................................................................................... 3
2. DIE CASTING DIE DESIGN ...................................................................................... 4
2.1. Die Casting Die ........................................................................................................ 4
2.2. Die Casting Shot ...................................................................................................... 5
2.2.1. Cavity ................................................................................................................ 5
2.2.2. Biscuit ............................................................................................................... 5
2.2.3. Runner ............................................................................................................... 5
2.2.4. Gate ................................................................................................................... 6
2.2.5. Overflow ........................................................................................................... 7
2.3. Die Casting Design Principles ................................................................................. 8
2.3.1. Runner design guidelines .................................................................................. 8
2.3.2. Fan gate design guidelines ................................................................................ 8
2.4. CastView .................................................................................................................. 9
3. PROBLEM STATEMENT AND RESEARCH OBJECTIVES ............................. 12
3.1. Problem Statement ................................................................................................. 12
3.2. Research Objectives ............................................................................................... 15
4. DIE CASTING DESIGN LITERATURE REVIEW ............................................... 17
4.1. Parametric Design .................................................................................................. 17
4.2. Die Design Systems ............................................................................................... 17
4.3. Die Casting Process Studies................................................................................... 22
4.4. Conclusions ............................................................................................................ 26
5. CAGD LITERATURE REVIEW .............................................................................. 28
5.1. Introduction ............................................................................................................ 28
5.2. Bezier Curve .......................................................................................................... 28
5.3. B-spline Curve ....................................................................................................... 29
5.4. Open Uniform B-spline Curve ............................................................................... 30
5.5. B-spline Knot Insertion .......................................................................................... 30
5.6. B-spline Curve Fitting............................................................................................ 32
5.7. Surfaces .................................................................................................................. 35
5.7.1. Ruled Surface .................................................................................................. 35
5.7.2. Coons Surface ................................................................................................. 36
5.7.3. B-spline Surface .............................................................................................. 38
5.8. Ray-Curve Intersection .......................................................................................... 38
5.8.1. Bisection Method ............................................................................................ 39
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
TU
UT
UT
TU
UT
TU
UT
TU
UT
vi
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
UT
UT
TU
TU
TU
UT
UT
TU
TU
UT
vii
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
TU
UT
UT
viii
List of Figures
Figure 1: Die Casting Products (NADCA [29]) ......................................................................................1
Figure 2: Diagram of the Die Casting Process (NADCA [34]) ...............................................................2
Figure 3: Die Casting Shot (NADCA [29]) .............................................................................................4
Figure 4: Runner System Example (with Die Cavities, NADCA [29])...................................................6
Figure 5: Common Gate Shapes (NADCA [29]) ....................................................................................7
Figure 6: Main Interface of CastView .....................................................................................................9
Figure 7: Runner System Design of CastView ......................................................................................10
Figure 8: Fill Pattern Simulation of CastView ......................................................................................10
Figure 9: Thermal Simulation of CastView........................................................................................... 11
Figure 10: User Defined Polygon Sketch ..............................................................................................12
Figure 11: User Defined Trajectory Tree...............................................................................................13
Figure 12: Result Runner System Solid ................................................................................................13
Figure 13: Curve Based Approach ........................................................................................................14
Figure 14: Flow chart of die design system (Kim [14]) ........................................................................18
Figure 15: Flow chart for die layout design (Kim [14]) ........................................................................19
Figure 16: The flowchart of gating feature creation and retrieval (Wu [12]) ........................................20
Figure 17: System architecture and menu options (Wu [12])................................................................20
Figure 18: Flowchart of the die design system for die casting (Woon [5]) ...........................................21
Figure 19: Modeling of runner and gating with branch angle (Sulaiman [20]) .................................23
Figure 20: Possible output vector from voxel a (Wang [6]) ..................................................................25
Figure 21: Surfaces Commonly Used in Engineering Design ([48]) ....................................................35
Figure 22: Extrusions and Lofted Surfaces ([41]) .................................................................................36
Figure 23: Coons Surface ([48])............................................................................................................37
Figure 24: Bisection Method ([43]) ......................................................................................................39
Figure 25: Regula-Falsi Method ([44]) .................................................................................................40
Figure 26: Newton Raphson Method ([45]) ..........................................................................................42
Figure 27: Newton Raphson Method ([39]) ..........................................................................................43
Figure 28: The Fat Line for a Bezier Curve ([39]) ................................................................................44
Figure 29: Sederberg-Nishita Bezier Clipping ([39]) ............................................................................45
Figure 30: Four-sided Region Intersection ([47]) .................................................................................47
Figure 31: Surface Lofting Problem......................................................................................................51
Figure 32: Surface Sweeping Problem ..................................................................................................52
Figure 33: Surface Sweeping Result .....................................................................................................53
Figure 34: Convex Hull Subdivision .....................................................................................................56
Figure 35: Point outside Convex Hull Check ........................................................................................57
Figure 36: Failure of Inside/Outside Check ..........................................................................................58
Figure 37: Convex Hull Overlapping Check .........................................................................................59
Figure 38: Line Shape Sweep path ........................................................................................................62
Figure 39: Circle Shape Sweep path .....................................................................................................63
Figure 40: Point Shape Sweep path.......................................................................................................64
Figure 41: Smoothstep S-function.........................................................................................................66
Figure 42: Linear and S-function Planar Point Interpolation Comparison ............................................66
Figure 43: Vector Interpolation .............................................................................................................67
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
UT
TU
TU
UT
ix
UT
UT
TU
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
UT
TU
TU
UT
UT
TU
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
UT
TU
TU
UT
CHAPTER 1
1. INTRODUCTION
Castings of all kinds are used in 90% of all manufactured products. The die casting
industry produces over one-third of all metal castings. Over 500 die casting plants
produce castings for many markets (NADCA [29]).
Die Casting produces components at high production rates. It uses a range of durable
metal alloys and it faithfully captures the most intricate design details. The advantage of
Die Casting is it can produce components of either high volume or lower volume at low
costs (NADCA [29]).
The design of a die is primarily determined by the shape of the finished components.
However, other factors may also impact the design and should be considered in the
design. For example, the sizing of a gate can have an influence on the die life. An
optimum casting condition requires a heat balance between the cooling system and the
hot parts (runners, gates, overflows). This means that the design of the runner, gate and
overflow system is of great importance. To process parts which are difficult to be filled,
an overflow may be located to help casting metal to flow into those parts. To handle
multi-cavity dies with identical impressions, it is important that all runners have the same
path length and cross-sectional area and the gates and overflows are identical.
CHAPTER 2
2.2.1. Cavity
The cavity is the void or empty space in the die that fills with metal to make the casting.
Figure 3 has an illustration of a casting formed from a cavity.
2.2.2. Biscuit
The biscuit is the excess of ladled metal remaining in the shot sleeve of a cold chamber
die casting machine. It is part of the cast shot and is removed from the die with the
casting (NADCA [35]). Figure 3 has an illustration of a biscuit of a cold chamber system.
2.2.3. Runner
The runner is the die passage connecting sprue or plunger holes of a die to the gate where
molten metal enters the cavity or cavities. It is the die casting alloy distribution system
within the casting die (NADCA [29]). Figure 4 is an illustration of a runner system (Wu
[12]).
The Runner System of a die-casting die consists of a series of passages through which the
molten metal can flow into the die and then into the interior of the die to fill the cavity. A
plunger is used to push the molten metal into the gating system.
With the movement of the plunger, molten metal is forced into the cavity through
5
channels which are called runners. The runners are usually approximately trapezoidal in
cross section. There may be more than one runner radiating from the biscuit or sprue, and
any one runner may split into two or more as required to direct the molten metal to
various locations. As the runner approaches the cavity, it blends from the trapezoidal
shape into a slit-like opening, and then enters the cavity. The blended portion is called the
gate runner and the slit-like opening into the cavity is called the gate.
The basic function of the Runner System is to provide a system of passageways for the
molten metal to flow through to get into the cavity. Once in the cavity, the metal will
solidify into the desired casting.
2.2.4. Gate
Gate is the passage for molten metal which connects runner with die cavity. Gate is the
metal entry point to the casting cavity that generally provides the smallest restriction in
the alloy flow path, located at the edge of the casting. It is part of the runner feed system
6
(NADCA [29]). Gate design includes gate location design and gate shape design.
The position of the gates and the thickness and width of the land are critical for the
injection speed of the metal. The gates should be designed to make the injected metal
flowing smoothly and freely into all parts of the cavity. Excessive turbulence of casting
metal can cause erosion of the die.
2.2.5. Overflow
An overflow is a reservoir for the first metal to flow through the cavity. An overflow is a
small pocket located around the edge of the casting. Vents (path from the die cavity to
outside the die) from overflows provide a path for air to get out of the die. Strategically
placed overflows can be used to add heat in a cold area of the die. Overflow also helps
ejecting the casting from the die (NADCA [29]).
2.4. CastView
The best way to improve design efficiency and precision is to apply computer techniques
aiding the design processes. Modern computers and the availability of commercial
simulation codes have opened new avenues in designing, prototyping and analyzing the
die casting system.
CastView is a die design software developed by the Industrial and System Engineering
Department under the supervision of Dr. R. Allen Miller. It is an effective tool to quickly
evaluate key features that affect the diecastability of a part design has been developed. It
can be easily integrated with any CAD tools. Figure 6 is an illustration of the main
interface of CastView, and Figure 7 is an illustration of the runner system design interface
of CastView.
the die casting die, and solidification-related defects in the cast part. Figure 8 is an
illustration of the fill pattern simulation process of CastView, and Figure 9 is an
illustration of the thermal simulation process of CastView.
CastView is developed in C++, using Microsoft Foundational Classes (MFC) and the
OpenGL library. It is executable under Microsoft Windows environment.
11
CHAPTER 3
Considering that user defined polygon sketches might have different number of points at
different locations and parting planes might be stepped, the implementation of the design
system is not trivial.
In a curve base approach, runner system objects are constructed from relatively simple
geometries like polygon profiles and b-spline curves. A surface is described virtually in
B-Spline curves defined by users.
13
A typical design process following the curve based approach is described below.
1) Design runner profiles and gate profiles (Figure 10).
2) Design runner system trajectories (Figure 11).
3) Assign profiles to trajectories (Figure 13, a).
4) Generate edges between profile points (Figure 13, b).
5) Generate curves based on edges (Figure 13, c).
6) Identify facets from curves and edges (Figure 13, d).
7) Triangulate identified facets (Figure 13, e).
14
The curve based approach does not use a real surface representation. It is still possible to
fulfill runner system design objectives, because both input and output of the design
progress are triangle meshes.
This approach does have some drawbacks.
i.
It requires extra user operations on defining curves which is very complex and not
intuitive.
ii.
iii.
iv.
v.
Extra problems might arise due to the lack of a surface representation. For
example, when doing surface-surface intersection, a zigzag intersection line might
be produced.
16
CHAPTER 4
17
Kim [14] proposed an easy die design system for die casting product. The system is
composed of three sub-systems (Figure 14). Specific rules and equations for the
runnergate system are presented to avoid too many trials and errors with expensive
equipment. This system makes it possible for engineers to make an automatic and
efficient die design, and will result in reduction of expense and time. But this system
supports only simple shapes, and can not be applied for solidification, flow analysis, and
numerical control machining data because it is constructed with simple wire frames.
Choi [10] improved Kim [14] s system. In this study, a die design system for the die
casting process has been developed which presents an algorithm for the automation of die
design, especially of the runnergate system. In addition, specific rules and equations for
the runnergate system have been presented to avoid too much trial and errors of
expensive equipment. This makes it possible for engineers to make automatic and
efficient die design of die casting and it will result in the reduction of cost and time
18
required. However, the system is only applicable for simple shapes such as the cap-shape.
Moreover, the system can only be used for single impression dies and products that have
no undercuts.
Figure 15: Flow chart for die layout design (Kim [14])
Wu [12] developed a prototype design of a gating system for a die-casting using a P-Q2
technique and feature-based parametric design. The flowchart of the system is illustrated
in Figure 16. To determine process parameters, the system contains an algorithm (Flow
Estimation in Figure 16) to find an optimal design that characterized by filling time and
gate velocity. Other knowledge in designing the gating system is also applied to evaluate
the user-input data against a known criterion or to determine the geometric parameters of
the gate elements. The system support user-defined gating feature creation. The gating
features are created in five steps:
1. Solid model creation.
19
2. Constraints definition.
3. Control parameters definition.
4. Origin and coordinate system definition.
5. Attributes definition.
Figure 16: The flowchart of gating feature creation and retrieval (Wu [12])
The system is developed on the commercial Unigraphics CAD system. Below is the
system architecture (Figure 17).
Figure 18: Flowchart of the die design system for die casting (Woon [5])
Woon [5] proposed a system consists of seven distinct modules. With these modules,
designers are able to create a die casting die from a product part model. The flowchart of
the system is illustrated below (Figure 18). The proposed system integrates the different
stages of die design process and at the same time facilitates the editing of die casting
design during or after the course of the design process. The approach undertaken in this
research includes:
21
index.
Figure 19: Modeling of runner and gating with branch angle (Sulaiman [20])
Zhang [21] developed an integrated CAD/CAE system for die casting. In this approach,
die designers can determine the location, the shape and the dimension of the runner and
gating systems of die castings according to the characteristics of the die-casting machine,
the geometry of the casting, and the properties of the alloy. After the design process, the
CAE program is used to undertake the sophisticated calculations of the fluid flow and
thermal analysis to check if there are some defects related to the filling and solidification
processes. Through the interactive process of CAD/CAE, an ideal design can be provided
with the best filling pattern and the optimal thermal condition for both the die and the die
casting.
A numerical simulation technique was applied for optimization of the runner and gating
system by Hu [16]. CASTFLOW was used for computer aided gating design.
23
The flow does not change direction until it is obstructed by a cavity wall or a
previously filled region.
An empty voxel can be filled by metal exiting a voxel or can be filled from
multiple voxels, i.e., it can have one or more parent voxels.
Due to the discrete voxel space, there are limited directions for flow from a voxel.
In this algorithm, an interior voxel can have five sets of flow vectors but a gate
voxel has less vectors.
If the flow front is completely obstructed, the flow direction is reversed and each
voxel acts as a point source of a wave.
In discrete voxel space, an input flow vector is "rounded" to the nearest discrete vector
available.
24
2) Corrected the wrong flow pattern when there is an obstruction by calculating the
flow vector based on available empty voxels, original flow vector and near flow
vectors.
3) When a flow hits an obstruction, the flow vector is calculated by the sum of
original vector and position vector (vector from current voxel to empty voxel).
4) An option is provided to allow the user to specify if he wants the cavity fill to
start at multiple gates simultaneously.
5) Fixed the non-symmetric problem caused by the calculation sequence through
reversing the sequence of calculation at each step.
6) Reduced the dispersal of neighboring voxels by grouping flow front and
balancing their vectors and speeds.
7) Special efforts are performed to promise the efficiency of implementation,
including: pre-computing tables of geometry information, rounding real data to
integers, saving variables for later use and optimizing data structure and
computation.
4.4. Conclusions
Generally speaking, die design still depends on passing on experience, due to lack of
analytical ability in die and melting metal flow and heat transfer. Present die design tends
to make limited use of modeling of deformation resulting from material and thermal
expansion and shrinkage of the die.
Although finite-element analysis software is capable of analyzing the flow conditions of
the injected metal, as well as the stress, strain and temperature distribution conditions of
the product (workpiece) under various injection conditions, the establishment of an
analytical model is very difficult. Apart from understanding the die and metal flow and
the solidification process, the user should be fully acquainted with the basic
finite-element software (Tai [18]).
Various analytical finite element method (FEM) tools have been developed for flow
26
processes, including die casting, but they only give information about whether the
predetermined die design is correct. Current shop practice uses trial-and-error methods to
determine new die designs (Kim [14]).
27
CHAPTER 5
5.1. Introduction
Die geometry design is an important part of a die design process. Since the early 60s Bezier and
B-spline representations have been evolved as the major tool to handle curves and surfaces. In this
chapter, some fundermental Bezier and B-spline related concepts and approaches are interduced.
These concepts and approaches can be used to help developing a geometrically more intuitive and
more meaningful design tool for our die design system.
P (t ) = Bi J n ,i (t )
0 t 1
i =0
(0) 0 1
with
n
n!
=
i i!(n i )!
(0) 0 1
Given: b0 , b1 , K , bn 3 and t R ,
set
bir (t ) = (1 t )bir 1 (t ) + tbir+11 (t )
r = 1, K, n
i = 0, K , n r
and bi0 (t ) = bi . Then b0n (t ) is the point with parameter value t on the Bezier curve b n ,
hence b n (t ) = b0n (t ) . The polygon P formed by b0 , b1 , K , bn is called the Bezier polygon
or control polygon of the curve b n .
In this project, the smoothstep S-function (section 7.3.2) used is indeed a special case of a
Bezier curve of degree three in one-dimensional space with the second control point
(value) equals to the first and the third control point (value) equals to the last.
P (t ) = Bi N i ,k (t )
i =1
2 k < n +1
(1)
Where Bi are the position vectors of the n + 1 control polygon vertices, and N i ,k are
normalized B-spline basis functions.
For the ith normalized B-spline basis function of order k (degree k - 1), the basis
functions N i ,k (t ) are defined by the Cox-de Boor recursion formulas. Specifically
1 if x i t < x i +1
N i ,1 (t ) =
otherwise
0
(t xi ) N i ,k 1 (t ) ( xi + k t ) N i +1,k 1 (t )
N i ,k (t ) =
+
xi + k 1 xi
xi + k xi +1
(2)
(3)
The values of xi are elements of a knot vector satisfying the relation xi xi +1 . The
29
P (t ) = Bi N i ,k (t )
i =1
R( s) = C j M j ,k ( s)
j =1
C j = aik, j Bi
1 i n,
1 j m
i =1
y j + k 1 xi
xi + k 1 xi
aik, j 1 +
xi + k y j + k 1
xi + k xi +1
aik+11, j
With m = n, the Oslo algorithm can be used to convert any forms of B-spline curve into
another form, for example open uniform B-spline form.
In the current implementation of this project, the B-spline knot insertion algorithm is not
used. But in case real B-spline surfaces are used to represent runner system sweep surface
data in the future, the B-spline knot insertion algorithm can be used to split a B-spline
curve into pieces to allow a better control of the surface contours along the flow direction.
Section 6.1.2 explains the problem and the solution in details. And also, if we need to
allow more manipulation over runner system profile curves, the B-spline knot insertion
31
[B]T = [B1
B2 ... Bn +1 ]
O
M
[N ] =
M
O
M
N 1, k (t j ) K K N n +1, k (t j )
The parameter value t j for each data point is a measure of the distance of the data point
along the B-spline curve. One useful approximation for this parameter value uses the
chord length between data points. Specifically, for j data points the parameter value at the
lth data point is
t1 = 0
32
tl
t max
l
s =2
j
s =2
Ds Ds 1
Ds Ds 1
l2
The maximum parameter value, t max , is usually taken as the maximum value of the knot
vector.
If 2 k n + 1 = j , then the matrix [N ] is square and the control polygon is obtained
directly by matrix inversion,
[B ] = [N ]-1 [D]
2 k n +1 = j
In this case, the resulting B-spline curve passes through each data point. A curve fit is
obtained.
A fairer or smoother curve is obtained by specifying fewer control polygon points that
data points, i.e., 2 k n + 1 < j . Here,
[N ]
overspecified and can only be solved in a mean sense. The control polygon for a B-spline
curve that fairs or smoothes the data is given by
[D] = [N ][B]
[N ]T [D ] = [N ]T [N ][B]
[B ] = [[N ]T [N ]] [N ]T [D]
-1
Both of these techniques assume that the matrix [N ] is known. Provided that the order
of the B-spline basis k, the number of control polygon vertices n+1, and the parameter
values along the curve are known, then the basis functions N i , k (t j ) and hence the
matrix [N ] can be obtained.
In this project, B-spline curve fitting algorithms are used to generate B-spline profile
curves from user defined polygon sketches. And in the current implementation, it is also
used to generate B-spline curves with constraints over B-spline control points. Though
B-spline curves with constraints are not needed in the current implementation, in the
future, if real B-spline surfaces are used to represent runner system sweep surface data, it
33
provides a way to promise better contours along flow direction than the solution
introduced in Section 6.1.2.
34
5.7. Surfaces
Surfaces commonly used in engineering design are illustrated in Figure 21. They include
plane surfaces (a), single-curved surfaces (b), double-curved surfaces (c), ruled surfaces
(d), warped surfaces (e) and freeform surfaces (f) ([48]).
35
Given a curve
f : [ a , b] R 3
Lofted surfaces are ruled surfaces that interpolate two curves. Definition of lofted surface
is given below. In Figure 22, (b) is an illustration of an extrusion surface ([41], p483)
Given two curves f , g : [a, b] R 3 , the parametric surface p : [a, b] [0,1] R 3 defined
by p (u , v ) = (1 v) f (u ) + vg (u ) is called a lofted surface.
36
Coons approach builds on the lofted surface parameterizations for the boundary curve
pairs p (0, v ) , p (1, v) and p (u ,0) , p (u ,1) . Define operations P1 and P2 on a function of two
variables p (u , v ) by
p(0,0) p(0,1)
p(0, v) 1 v
p(1, v) v
0 1
In the current implementation of this project, Coons surface is not used. It can potentially
37
be used to generate top and bottom surfaces at branch positions of a runner system.
Q(u, w) = Bi , j N i ,k (u ) M j ,l ( w)
i =1 j =1
where N i , k (u ) and M j ,l ( w) are the B-spline basis functions in the biparametric u and w
directions, respectively. The definition for the basis functions is the same as that of
B-spline curve on each u and w directions.
In the current implementation of this project, B-spline surface is not used. It can
potentially be used to represent runner system sweep surface data, hence to allow manual
manipulation of surfaces created.
39
41
The Newton Rphoson Method uses the first order derivative of f(x). It converges very fast.
But the Newton Rphoson Method needs a good initial guess p 0 , otherwise, it may not be
able to converge. Figure 26 illustrates an example of the Newton Rphoson Method.
42
d max = max{d 0 , d 0 ,..., d n }. The convex hull property of Bezier curves implies that the
curve is contained in the fat line defined by the two lines L1 and L2, which are parallel to
L and a distance of d min and d max from L, respectively.
d (u ) = Bi ,n (u )d i
i =0
d i = axi + by i + c
D (u ) = Bi ,n (u ) Di = (u , d (u ))
i =0
where Di = (t i , d i ) and t i = i / n .
If D(u ) d min or D(u ) d max , then p (u ) will not lie on the curve q (u ) . Therefore one can
trim away those parts of p (u ) .We now subdivide the Bezier curve p (u ) at u min and u max
using the de Casteljau algorithm and only keep the part over [ u min , u max ].After clipping
p (u ) against q (u ) , we repeat this process, this time clipping q (u ) against the fat line
associated to the clipped p (u ) . We alternate back and forth between clipping against
p (u ) and q (u ) until we arrive at our intersection point.
The fat line clipping algorithm may not converge if we only clip little at each stage. To
solve this problem, we can subdivide the curve and do a Bezier clip of the other curve
with the two halves. This solves our convergence problem, but if curves are almost
45
tangent or two intersections are very close, then the algorithm reduces to a divideand-conquer binary search type algorithm in the neighborhood of those points.
Turner improved the algorithm in [47]. He uses two approximations that contained the
curve between them. Turner called the region between the two curves a curve-bounding
area. For intersecting situations, Turner defined a special condition that guarantees a
curve-curve intersection point. It is described as below. If these two curve bounding areas
intersect in a four-sided region in which each vertex of the region is formed by the
intersection of a different pair of bounds (one bound from each of the two curves), then
the two curves must intersect within this four-sided region. Figure 30 illustrates the
intersection situation.
If the curve bounding areas of two curves do not intersect, then the curves will not
intersect. If they intersect, then a subdivision process is applied to get a new set of two
curves so that the region between them is a closer fit to the original curve. The preceding
result suggests a hybrid method: Use subdivision until the preceding condition is satisfied
(or until the bounds are found not to intersect). Then apply a numerical method to
compute the actual coordinates of the intersection point. (Any of the corner points of the
four-sided region determined by the two pairs of bounds provides a good starting value
for numerical methods.)
47
The sequence ( ti , ui , vi ) will converge to a point in the intersection of our curve and
surface provided that we do not run into the usual problems associated to
Newton-Raphson methods. Getting all the intersection points hinges on being able to
come up with enough initial guesses.
[ ]
coefficients of two nondegenerate Bernstein polynomials surfaces on [0,1] [0,1], find the
curves of intersection (if any) of the two surfaces.
Surface intersection proceeds as with the curve intersection algorithm, except that instead
of producing points as the intersection of line segments, the surface algorithm line
segments as the intersection of planar segments. Since these line segments are found in a
somewhat arbitrary order, they must be sorted by endpoint matchup to form a connected
curve. In all probability this sorting can be done on (xyz) coefficients alone, but since
parametric surfaces can be multivalued the proper sorting key is the parametric values
associated with each endpoint. These parametric values are easily tracked during the
subdivision process ([46], p44).
In the current implementation of this project, surface-surface intersection is not used. But
if real B-spline surfaces are used to represent runner system sweep surface data in the
future, surface-surface intersection is a problem that needs to be solved. Suppose
surface-surface intersection problems can be converted to curve-curve intersection
problems, section 6.4 introduces the curve-curve intersection problem and a solution in
details.
49
CHAPTER 6
6. ALGORITHM DEVELOPMENT
Figure 31 (a) illustrates a lofted surface constructed directly from two open uniform
b-spline curves of five control points. Both curves have the same knot vector [0 0 0 0 0.5
1 1 1 1] and have two spans. We can see the constructed b-spline surface has non-parallel
contours on the w direction. The simple reason for this situation is: at knot value 0.5,
which is the separation of two spans, these two curves evaluated two totally irrelevant
points.
This situation might be what is expected in some applications. But in our runner and gate
design system, the w direction of surfaces corresponds to the flow direction. A careless
design of contours might cause turbulence of the flow. Figure 31 (b) illustrates the effect
we are expecting. On each curve an extra point is inserted to match the point with knot
value 0.5 on the other curve.
6.1.2. Solution
Figure 31 (b) is rendered in three separate surfaces. To allow this, each curve has been
separated into three pieces before the surface construction. The way to find the parameter
51
value of the matching point is not hard. Plane-curve intersection can do it. Currently we
intersect curves with planes parallel to xoz plane, to promise y values of new curve points
match corresponding points on the other curve. To represent curve pieces in a typical
b-spline data structure, multiple coincident vertices or internal knots can be used.
It is actually a filleting problem. But for the first step, we suppose two end curves are
known. Two guide curves (pink curves in Figure 32) are constructed by users. So, the
problem is how to construct a b-spline surface from four boundary curves.
Section 6.1 discussed how to generate b-spline curves with the same knot vector and
52
number of control points. For here, we suppose each pair of boundary curves have the
same knot vector and number of control points. So, for the resulting b-spline surface,
knot vectors for the u and w directions come directly from boundary curves. The issue is
how to construct control point nets from the boundary curves control points.
6.2.2. Solution
Section 5.7.2 explained Coons surface. Here, we treat the control polygons of four
boundary curves as curves, and apply Coons formula directly to these control polygons.
Suppose I and j are indices of control points along u, w directions. B (i, j ) returns the
control point of boundary curves. The formula below is used to calculate control points of
the result sweeping b-spline surface.
Figure 33 shows the result of an arbitrary test case. Four boundary curves are rendered in
53
blue color. The control net of the result B-spline surface is generated in method provided
above.
need to use ray-curve intersection, which is an expensive operation. And due to the rough
approximation of the B-Spline convex hull, this expensive operation needs to be done a
lot of times in worst cases. Lane and Riesenfelds Recursive Subdivision Method ([46])
utilizes the subdivision property of b-spline curves. It does not need a starting point, and
does not use ray-curve intersection. It might converge slower than the Newton Raphson
Method, but it is very stable.
Generally speaking, a hybrid method is always a good choice, but it is more like an
implementation issue. For this reason, the Recursive Subdivision Method utilizing
curves original convex hulls was studied. This method might be dismissed at the first
place in most textbooks, because convex hull based calculation is treated to be expensive
for recursive situations. In below sections, some convex hull related algorithms are
provided. Based on these algorithms, the original convex hull based recursive subdivision
method has become acceptable in our application, which does not require frequent real
time calculations.
6.4.2. Solution
The problem can be described as follows. For two b-spline curve spans p (u ) and q (v )
in two-dimensional space, find all intersection points between them. The problem is
defined for b-spline spans to simplify the subdivision operation, but it can be easily
extended to b-spline curves. Whether to find one intersection point or all intersection
points doesnt make too much difference for a subdivision based algorithm.
My current solution is described as follows. Convert each b-spline span into open
uniform knot vector form, in another word, Bezier span. Subdivide each span recursively.
At each recursion level, find the convex hull of their control points. Check overlapping of
all four combinations of convex hulls. If any pair of convex hulls overlaps, subdivide
them. Continue this recursive process until the required precision has been reached.
55
After subdividing a Bezier span, convex hulls of the two minor Bezier spans intersect at
one point. So, converting b-spline spans into Bezier spans can reduce the chance of
overlapping between subdivided minor convex hulls, hence reduce the computation
complexity. And also, Bezier span has very nice subdivision features. The subdivision
operation of a Bezier span (curve) involves only middle point calculations.
Only two operations are performed at each subdivision level. One is the convex hull
construction operation. The other is the convex hulls overlapping check. I will discuss
them separately below.
57
Convex Hulls have a property. If two convex hulls do not overlap, then there exists a line
that can separate them into different sub-spaces. See the blue line in Figure 37 for
example. Also, if two convex hulls do not overlap, then at least one edge of them can
separate them into different sub-spaces. Let us call edges satisfying this statement
separation edges. In Figure 37, these two red lines are two separation edges of the two
convex hulls. See the example illustrated in Figure 37. Suppose a separation edge e4
exists. So, all points of the convex hull A locate outside e4. When we run the point
outside convex hull check described in section 0, each point will have an associated list
of edges. As long as a separation edge exists on the other convex hull, associated list of
edges of all points will have a common edge. So to check convex hull overlapping, we
only need to perform this kind of operations on each convex hull.
Performing point outside convex hull check on all points of a convex hull and comparing
result edges lists to find common edge is not as complex as it sounds to be. Because
points and edges are stored in order, later checks only need to be done on existing lists.
For example, if the first point is only outside one edge of the other convex hull, later
points only need to compare to this edge and no need to check all edges.
59
6.5. Conclusion
The surface lofting and surface sweeping algorithms introduced above provide ways to
create B-spline surfaces to represent runner system sweep surface data. The ray-curve
intersection and curve-curve intersection algorithms can help to solve surface-surface
intersection problem. With the runner system surface creation scheme introduced in
section 7.1, a whole system solution for the runner system design is formed.
60
CHAPTER 7
7. SYSTEM DEVELOPMENT
For a given line l 0 defined by start point p 0 and end point p1 , a line shape sweep
path can be defined by specifying its start and end points parameters on line l 0 . An
example line shape sweep path is illustrated in Figure 39.
For any parameter t within range 0 t 1 , a line shape sweep path gives a linearly
interpolated point position on the line and a constant line direction.
p 2 in space, a circle shape sweep path can be defined by specifying the radius of the
circle arc. The creation of the circle arc is a simple geometry problem and is illustrated in
Figure 39.
For any parameter t within range 0 t 1 , circle shape sweep path gives a point
position on the circle and a direction of the circle arc by linearly interpolating the total
angle of the circle arc.
Point shape sweep path is not trivial, because though its spatial position is fixed its
directions still must be interpolated by parameter t . A point shape sweep path will
generate a sharp corner on one side of the resulting sweep surface.
64
0 t 1
For higher dimension points, linear interpolation can be done by applying the calculation
on each dimension separately.
0 t 1
65
This is the S-function we are using in our current implementation. As with linear
interpolation, if we need to apply this interpolation to higher dimension points, we can
simply apply it to each dimension separately.
At the current stage of this project, S-function interpolation provides satisfying smooth
result for a blending of any constant values. Figure 42 illustrates a comparison between
result surfaces generated from a linear (a) and a S-function (b) planar point interpolations.
(a)
(b)
To interpolate vectors, we can not apply a linear interpolation directly to each dimension
of these two vectors. Because it will result in an interpolation in point positions. We need
to interpolate vectors angles and lengths separately. This can be described as a geometry
problem. The illustration of the solution is shown in Figure 43.
The calculation of the result vector can be done in a geometry approach.. Construct a
plane from v0 , v1 . Calculate total angle between v0 and v1 with a dot product. For
specified t within range 0 t 1 , interpolate the total angle linearly to get direction of
the interpolation vector. Interpolate length of v0 and v1 linearly in t. multiply the
interpolated length to interpolated vector direction to get result interpolated vector v.
Figure 44 (a) is an illustration of linearly interpolated vectors with origin of vectors
offseted linearly. We can treat this calculation process as a function. Lets call it
v(t ) = interpolate_vector (v 0 , v1 , t ) , to be referenced later.
(a)
(b)
(a)
(b)
68
69
The goal of the profile definition process is to generate a new set of interpolation points
with controllable number of them from user defined sketch points with arbitrary number
of sketch points, utilizing B-Spline curve fitting algorithm introduced in section 5.6. The
runner system sweep surface generation process relies on a uniform number of points on
70
the profiles.
In the current implementation of this project, only cvProfile is used in the runner system
definition process. BsProfile is used to communicate with the profile definition user
interface to help generating cvProfile data with controllable number of points. After
cvProfile data is generated, BsProfile is not used anymore.
48.
The sketch polygon is separated into top, bottom, left and right pieces. Top and bottom is
always a horizontal line. Currently, dont separate these four pieces automatically from a
user defined polygon; instead, we let the user define left and right side separately.
Figure 49 illustrates the sketch definition interface. The [Left Side] and [Right Side] radio
buttons are used to choose which side of the profile sketch are we defining. The [Insert],
[Move] and [Delete] radio buttons are used to switch between three editing modes.
Currently they are not implemented.
73
The goal of this step is to generate a B-spline curve that has constraints on B-spline
74
control points locations. This step is only necessary if real B-spline surfaces are used to
represent the runner system surface data and contours along the flow direction of
B-spline surfaces need to be controlled. In the current implementation of this project, we
are not using real B-spline surfaces. Instead, we use quad meshes generated from profile
interpolation points (section 0) to represent the runner system surface data. So, this step is
not necessary in the current implementation. It is used now only for testin.
To generate an approximation curve from a fitting curve, fitting curve must first be
sampled. Then, the B-spline curve fitting algorithms introduced in section 5.6 are used to
generate an approximation curve. In the example illustrated in Figure 52, 16 sample
points are calculated from the fitting curve.
Figure 53 illustrates the approximation curve generation interface. The [Left Side] and
[Right Side] radio buttons are used to choose the approximation curve for the side of the
75
profile are we generating. [Number of Sample Points], [Degree] and [Number of Control
Points] can be specified from the approximation curve generation interface.
76
77
cvProfiles points variable is used to hold result interpolation points. Figure 56 illustrated
data structures of these two versions of profiles.
80
81
(a)
(b)
Figure 61: Pick Trajectories
82
Figure 62 illustrates the corresponding user interface of the profile assignment step. A
user can pick a branch of trajectories and assign profiles to each trajectory on the branch.
To select a branch of trajectories, a user can double click to select two trajectory nodes
(Figure 61, a) and then click the [Pick] button. After a branch of trajectories have been
picked, they will be highlighted in red color as illustrated in Figure 61 (b).
Profiles are loaded from files by clicking these two [Load] buttons. To assign profiles
to the selected branch of trajectories, there are two ways. One way is to specify a start
profile and an end profile. In this way, each trajectory on the selected branch will be
assigned with a profile that is a linear interpolation of the start and end profile. The other
way is to specify a start profile and a way of scaling it. In this way, each trajectory on the
selected branch will be assigned with a profile that scaled in the specified way from the
start profile. There are three elements a profile that can be scaled. These are profile area,
u direction length and w direction length. A user can specify scale factors to two of these
three elements to scale a profile. After methods above have been specified, clicking the
[Apply] button will perform the attaching operation.
83
84
To define a sweep path, a user needs to select two connecting trajectories in the 3D view
window, and set parameters of the sweep path. To select two connecting trajectories, a
user only need to double click a trajectory, then the picked trajectory and its parent
trajectory will be selected (Figure 65).
To specify parameters of the sweep path, the sweep path definition interface (Figure 66)
is used. First, a user needs to specify the size of the path by specify either a radius or a
distance from the intersection point of these two trajectories. Then a user needs to specify
methods used for normal and planar point interpolations. Specifying S-function
interpolation methods (section 7.3.2) for both of them can promises a smooth result. A
user also needs to specify number of interpolations. A sweep path will be interpolated for
the specified number of times in the final solid generation step (section 0). After these
parameters mentioned above have been specified, clicking the [Apply] button will
generate a new sweep path.
86
87
Figure 68 illustrates the corresponding user interface of the sweeping step. It allows three
ways of generating sweep path profiles. The generations of profiles at ends of sweep
paths are all the same for these three different ways. An end profile is generated by
interpolating the child trajectory that is associated with the sweep path. The generation of
profiles at the start of sweep paths is different. The [copy parent shape] option will
generate a start profile by interpolating profiles of the associated parent trajectory directly.
The [copy child shape] option will generate a start profile by copying the end profile of a
sweep path. The [divide parent shape] option will generate start profiles by dividing an
interpolated parent trajectory profile according to areas of end profiles of sweep paths
attached to the same trajectory node. The reason that different ways of generating start
sweep path profiles are expected is that it allows users to control areas and shapes of
result runners explicitly at branch positions. In the current implementation of this project,
only the [copy parent shape] option is implemented.
88
89
90
CHAPTER 7
8.1. Conclusion
The profile creation method introduced in this project utilizes b-spline curve fitting
algorithms to generate uniform interpolation points from user-defined none-uniform
sketch points. In this way, hard problems like generating smooth surfaces from polygon
profiles of different number of points have been avoided without losing simplicity or
flexibility.
Sweep paths introduced in this project is a concrete data representation of the runner
system defined conceptually by a user defined trajectory tree. Sweep paths resemble to
machining paths, with no need of providing details like tool sizes. They can make sure
generated surfaces are machinable and reasonable.
Sweep paths and interpolation methods introduced in this project can help designers to
create smooth runner system surfaces in a simple, flexible and controllable way.
The profile definition and the runner system definition user interface implemented in this
project can be used to generate basic data required to construct a runner system.
91
92
REFERENCES
1. K.S. Lee, J.C. Lin, Design of the runner and gating system parameters for a
multi-cavity injection mould using FEM and neural network, International Journal of
Advanced Manufacturing Technology, (2006) 27: 10891096.
2. Kevin Alam, Musa R. Kamal, A robust optimization of injection molding runner
balancing, Computers and Chemical Engineering, 29 (2005), 19341944.
3. M. Masoumi, H. Hu, Effect of Gating Design on Mold Filling, AFS Transactions
2005.
4. Jerald Brevick, R. Allen Miller, Final Report on Understanding the Relationship
between Filling, 2004.
5. Y. K. Woon, K. S. Lee, Development of a die design system for die casting,
International Journal of Advanced Manufacturing Technology, (2004) 23: 399411.
6. Dongtao Wang, Equilibrium temperature analysis and fill pattern reasoning for die
casting process, Ph.Ds Thesis, The Ohio State University, 2004.
7. Lin Suo, Graphical user interface for sketching overflows, runners and gates,
Masters Thesis, The Ohio State University, 2004.
8. Farouk Shehata, Mohamed Abd-Elhamid, Computer aided foundry die-design,
Materials and Design, 24 (2003), 577583.
93
94
18. C. C. Tai, J.C. Lin, The optimal position for the injection gate of a die-casting die,
Journal of Materials Processing Technology, 86 (1999), 87-100.
19. C.C Tai, J.C Lin, A runner-optimization design study of a die-casting die, Journal of
Materials Processing Technology, 84 (1998), 112.
20. Shamsuddin Sulaiman, Tham Chee Keen, Flow Analysis along the Runner and
Gating System of a Casting Process, Journal of Materials Processing Technology,
Volume 63, issue 1-3 (January, 1997), p. 690-695.
21. W. S. Zhang, S. M. Xiong, B. C. Liu, Study on a CAD/CAE system of die casting. J
Mater Process Tech, 1997, 63:707711
22. C. S. Lia, Y. K. Shen, Optimum design of runner system balancing in injection
molding, Previews of Heat and Mass Transfer, Vol: 21, Issue: 3, May 6, 1995, 257.
23. R. Yagel, S. C. Lu, A. B. Rebello, R.A. Miller, Volume-Based Reasoning and
Visualization of Diecastability, 1995.
24. Rohinton K. Irani, Srinivas Kodiyalam, David O. Kazmer, Runner System Balancing
for Injection Molds using Approximation Concepts and Numerical Optimization,
1992.
25. W. R. Jong, K. K. Wang, Automatic and optimal design of runner systems in injection
moulding based on the flow simulation. SPE Annual Technical Conference, 1990, pp
554560
26. Youquan Liu, Xuehui Liu, Enhua Wu, Real-Time 3D Fluid Simulation on GPU with
Complex Obstacles.
27. Rebello, A. B., Visualization of the filling of die-casting dies, PhD dissertation, The
Ohio State University, 1997.
28. Harris, Fast Fluid Dynamics Simulation on the GPU, GPU Gems, 2004
95
UTH
33. John Kluz, Moldmaking and Die Cast Dies for Metalworking Trainees
34. NADCA website, http://www.diecasting.org/faq/default.htm
HTU
UTH
UTH
UTH
43. http://www.physics.arizona.edu/~restrepo/475A/Notes/sourcea/node16.html
HTU
UTH
96
44. http://www.physics.arizona.edu/~restrepo/475A/Notes/sourcea/node17.html
HTU
UTH
45. http://www.physics.arizona.edu/~restrepo/475A/Notes/sourcea/node18.html
HTU
UTH
46. Lane, J.M., and Riesenfeld, R.F., A Theoretical Development for the Computer
Generation and Display of Piecewise Polynomial Surfaces, IEEE Transactions on
Pattern Analysis and Machine Intelligence, PAMI-2(1), January 1980, 3546
47. Turner, Joshua U., Accurate Solid Modeling Using Polyhedral Approximations
CG&A, 8(3), May 1988, 1428.
48. http://www.engr.sjsu.edu/youssefi/me265/notes/Surfaces.ppt
HTU
UTH
97