You are on page 1of 600

... ... ... .... .... ..... .... .... ...

... ... ... ... .... .... ... ... .... ... ...
... ... ... ... ... ... .... ... .... ... ...
... ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... .... ...
... ... ... ... ... ... ... ... .... .... ... ....
... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... ... ...
Principles of
Principles of
Seoul National University
Addison-Wesley Is an Imprint
of Addison Wesley Longman, Inc.
Reading, Massachusetts Harlow, England
Menlo Park, California Berkeley, California
Don Mills, Ontario Sydney Bonn Amsterdam
Tokyo Mexico City
Senior Acquisitions Editor: Denise Olson
Project Manager: Phoebe Ling
Senior Production Editor: Amy Rose
Production Coordinator: Brooke D. Albright
Compositor: Jackie Davies
Cover Designer: Joyce Weston
Text Designer: Debbie Schneck
Technical Dlustrator: Paula Gentile
Copyeditor: Jerry Moore
Indexer: Nancy Fulton
Access the latest information about Addison-Wesley books from our World Wide Web
site: http://www
Many of the designations used by manufacturers and sellers to distinguish their prod-
ucts are claimed as trademarks. Where those designations appear in this book, and
Addison-Wesley was aware of a trademark claim, the designations have been printed in
initial caps or all caps.
The programs and applications presented in this book have been included for their in-
structional value. They have been tested with care, but are not guaranteed for any par-
ticular purpose. The publisher does not offer any warranties or representations, nor does
it accept any liabilities with respect to the programs or applications.
Library of Congress Cataloging-in-Publication Data
Lee, Kunwoo.
Principles of CAD/CAM/CAE systems I Kunwoo Lee.
p. em.
Includes bibliographical references and index.
ISBN 0-201-38036-6
1. CAD/CAM systems. 2. Computer-aided engineering. I. Title.
TS155.6.lA45 1999
670' .285-dc21 98-18040
This book was typeset in QuarkXPress 3.32 on a Macintosh Quadra 840AV. The fonts
used were Times and lTC Kabel. It was printed on Rolland, a recycled paper.
Copyright 1999 by Addison Wesley Longman, Inc.
All rights reserved. No part of this publication may be reproduced, stored in a retrieval
system, or transmitted, in any form or by any means, electronic, mechanical, photo-
copying, recording, or otherwise, without the prior written permission of the publisher.
Printed in the United States of America.
4 5 6 7 8 9 10-MA-050403
To my family and students
Without their support, this book would not have been completed
With the dramatic changes in computing power and wider availability of software
tools for design and production, engineers are now using CAD/CAM/CAE systems
for everyday tasks, not just for demonstrations. International competition, de-
creased availability of skilled labor, and increased emphasis on quality are also
forcing manufacturers to use CAD/CAM/CAE systems to automate their design
and production processes. As a result, educators in engineering schools are experi-
encing a new pressure to change the way they teach design-related courses in order
to equip their students to interact with CAD/CAM/CAE systems and have a knowl-
edge of their fundamental principles.
The objective of this book is to present the fundamental principles and con-
cepts underlying CAD/CAM/CAE systems rather than explain the use of specific
systems. Some people may argue that it is enough to teach a student how to use ex-
isting systems or even a specific popular system because the student as an engineer
will be the user--not the developer-of such systems. However, in order to use ex-
isting software effectively and create usable macros or programs for automated de-
sign, the user must understand both the computing environment and the underlying
system principles. With this knowledge of the fundamentals, the student can
quickly learn a specific system within a specific environment and use it to its maxi-
mum capability. Furthermore, manuals and documentation that are typically pro-
vided with CAD/CAM/CAE systems tend to concentrate on the user interface and
its syntax, assuming that the user has a sound theoretical background. A user who
does not have this background will have trouble understanding the terminology of
system documentation and will also have trouble dealing with system errors.
This book is written primarily about CAD/CAM/CAE systems in mechanical
engineering. But the topics on computer graphics may also appeal to those in many
Viii Preface
other engineering {ields. The book is intended as a course for seniors and first-year
graduate students. Students are required to have a background only in program-
ming, calculus, and matrix and vector algebra, with no prior knowledge of
CAD/CAM/CAE systems. Thus complicated mathematical terminology and expla-
nations have been kept to a minimum. Instead, related topics are explained in an in-
tuitive way as much as possible. Accordingly, if chapters are selected as explained
later, this book can also be used in a course for juniors or as a reference book for
engineers who want a quick overview of CAD/CAM/CAE systems.
In writing the book, my goal was to explain fundamental concepts with an ap-
propriate number of figures and examples without getting bogged down in too
many details. I have seen several textbooks fail to get their main points across by
trying to explain too many details. This overreliance on detail also makes a book so
thick that it scares students away from using it effectively. For details, I recom-
mend that students tum to the References section at the end of the book. The same
goal applied to my choiCe of references. I have tried to recommend only those
sources directly related to each topic so that I could keep the number of references
to a minimum. Some textbooks recommend so many references that students are
overwhelmed by them.
Chapter 1 introduces the role of CAD/CAM/CAE systems in the context of the
product cycle. It also provides the definition of CAD/CAM/CAE systems and ilh
trates their use with case studies in which these systems are used to carry out design
and production process. Case studies clarify how the principles explained in the re-
maining chapters contribute to a new design and production activity using
CAD/CAM/CAE systems. Chapter 2 reviews the available hardware and software
components that make up current CAD/CAM/CAE systems. The instructor should
update this chapter as new hardware and software are introduced. This chapter
could be given as a reading assignment rather than covered in depth.
Chapter 3 introduces all the concepts required for graphics programming with
any graphics library and is not limited to a specific graphics library. However, the
graphics library OpenGL was used in writing the sample graphics programs be-
cause it tends to be the de facto standard library running on both workstations and
personal computers. This chapter serves as good introductory material for anyone
interested in computer graphics in general. Chapter 4 reviews the basic functions
provided by most computer-aided drafting systems. Similar to Chapter 3, it de-
scribes the general concepts and functions provided by most computer-aided draft-
ing systems for product documentation. However, the example commands used in
this chapter are those of AutoCAD because it is currently the most popular drafting
system. The way a specific system is used can be handled in a laboratory class
complementing the course.
Chapter 5 explains the fundamentals underlying geometric modeling systems.
It also introduces a nonmanifold modeling system, an emerging area in geometric
modeling. Some topics that are too advanced for student users are presented in the
appendices for professionals' reference. For those interested only in using geomet-
ric modeling systems, these topics can be ignored. Chapters 6 and 7 cover the rep-
resentation and manipulation of curves and surfaces. These topics provide the
l'reface ix
mathematical basis for geometric modeling systems and even for computer-aided
drafting systems. I have tried to keep the types of curves and surfaces to a mini-
mum, yet sufficient for most applications. To prevent students from being lost, I
have moved the complicated mathematical derivations from the main text to the ap-
pendices. I have also tried to explain the mathematical concepts in an intuitive way
appropriate for engineers, not for mathematicians.
Chapter 8 introduces CAE systems. It explains how the finite-element analysis
program is generated and how information necessary for the analysis program is
provided from the geometric model created by CAD systems. Thus it reviews the
various approaches to automatic finite-element generation. Chapter 9 reviews vari-
ous techniques for optimization. Emerging optimization techniques such as simu-
lated annealing algorithm and genetic algorithm are described in detail. An example
of integrating finite-element analysis and optimization is a fairly new concept
called structural optimization. The structural optimization method can be used for
initial conceptual design of a component to ensure that it has the desired loading ca-
Chapter 10 introduces various process planning methods and software as key
elements in CAD/CAM integration. It also introduces the concept of group technol-
ogy, which enables the encoding of parts to be produced and is the prerequisite for
automated process planning. Chapter 11 describes how NC machines are pro-
grammed once the shape of a part has been defined by a CAD system and the
process to be applied has been determined. Chapter 12 introduces the emerging
manufacturing technology called rapid prototyping as another aspect of CAM.
Unlike production by NC machines, this technology generates a part directly from
its CAD model without requiring complicated process planning. In fact, this tech-
nology completely integrates automatic CAD/CAM for the first time. Chapter 13
introduces another emerging technology called virtual engineering; in this ap-
proach, geometric modeling systems, computer graphics, CAE and CAM systems
are all applied during the product development process.
Chapter 14 reviews several standard data ftle formats that allow communica-
tion between different systems. These standards are indispensable for the integra-
tion of CAD/CAM/CAE systems.
Each chapter of the book ends with a set of problems and/or programming as-
signments written to deepen students' understanding of the material. Some assign-
ments require use of the students' own systems. In these cases, documentation for
those systems should be used as supplements to the text.
As mentioned earlier, this book may be used for a lower level undergraduate
course. In that case, the topics in the appendices may be omitted because they are
presented from the system developer's point of view. Instead, I recommend empha-
sizing the projects related to CAD/CAM/CAE system applications. These projects
include generation of a solid, generation of the corresponding drawing, evaluation
of the design by a finite-element analysis, and production of the corresponding pro-
totype by either an NC milling machine or other machines for rapid prototyping,
such as a stereo lithography apparatus. If the book is to be used in an advanced geo-
metric modeling course for graduate students, Chapters 1, 2, 4, and 14 may be
X Preface
given as reading assignments with the topics presented in the appendices treated
I am indebted to the reviewers for their useful comments and suggestions
which have undoubtedly enhanced the quality of this book. I want to express my
appreciation to Professor David C. Gossard at the Massachusetts Institute of
Technology, who gave me valuable advice during the planning stage of this book. I
also want to thank Professor Kyung Ho Cho, Professor Young ll Kim, Professor
Jongwon Kim, Dr. Woncheol Choi, Dr. Ha-Yong Shin, Mr. Suk Ju Kim, and Mr.
Jin Pyung Chung for providing me with the related materials on optimization, vir-
tual engineering, process planning, and standard data files. Finally, I want to thank
my students, especially Junghoon Hur and Inhaeng Cho, who helped prepare the
manuscript and illustrations.
1.1 Overview 1
1.2 Definitions of CAD, CAM, and CAE 5
1.3 Integrating the Design and Manufacturing Processes through a Common
Database-A Scenario 8
1.4 Using CAD/CAM/CAE Systems for Product Development-A Practical
Example 11
Questions and Problems 17
2.1 Hardware Components 19
2.1.1 Vector-Refresh (Stroke-Refresh) Graphics Devices 20
2.1.2 Raster Graphics Devices 22
2.2 Hardware Configuration 26
2.3 Software Components 28
2.4 Windows-Based CAD Systems 33
Questions and Problems 35
3.1 Graphics Libraries 36
3.2 Coordinate Systems 38
3.3 Window and Viewport 44
44 Basic Concepts of Graphics Programming
Figure 3.8
between coordi-
nate systems
Model tranatormatlon
Vtewlng transformation
These transformations are usually perfomu;;d inside the graphics library, and
the graphics programmer need specify only the necessary information for each
transformation. For example, the translations and rotations of the objects corre-
sponding to their layout are provided for the model transformation; the viewpoint,
the viewsite, and the up vector are provided for viewing transformation; and the
type of projection together with the location of the center of projection and the
screen are specified for the projection transformation. However, graphics libraries
of a primitive level may require the programmer to write code for all those transfor-
mations. We explain the transformations in detail in Section 3.7.
The word window used in the networked computing environment means the sepa-
rate areas on a workstation monitor through which the user interacts with the vari-
ous computational sources connected to the network. However the word window
has a different meaning in computer graphics. It defmes the region in space that
will be projected onto the display monitor so that any object outside the window
will not appear on the monitor. In this sense, it is analogous to the window of a
house through which only a portion of the outside world is visible to a person in-
side the house. This analogy seems to be why the name window was selected. The
window is usually defined to be a rectangle on a projection screen by the corre-
sponding Xv and Yv values in the viewing coordinate system, as illustrated in
Figures 3.9 and 3.10. The visible region, called viewing volume, depends on the
Figure 3.9
Window and view-
Ing volume for par-
allel projection
Figure 3.10
Window and view-
Ing volume for per-
spective projection
Viewing volume
""-.. .............. -
Viewing volume

Center of

3.3 Window and VieWPOrt 45

type of projection (i.e., parallelepiped for the parallel projection and pyramid for
the perspective projection).
The viewing volume can yield a complicated image when projected because it
may include unnecessary objects far from or near the viewer. Thus it is sometimes
desirable to cut the viewing volume by both the near and far planes, as illustrated in
Figure 3.11. The near and far planes for parallel projection are defmed similarly.
The viewport is the area (or areas) on the display monitor where we want the
projected image to appear, as shown in Figure 3.12. It is an area to which the view-
ing volume defmed by the window is mapped. Mapping will involve a translation
and a scaling to take into account the deviation of the viewport center from the cen-
ter of the display monitor and the size difference between the window and the
viewport. In other words, the x. and Ys values of the projection points obtained
from Equations (3.1) and (3.2) have to be increased or decreased by certain values,
respectively, so that the center of the window appears at the center of the viewport
46 Basic Concepts of Graphics Programming
Rgure 3.11
Near plane and far
Rgure 3.12
Examples of view-
,,. Far plane
Display monitor
instead of at the center of the display monitor. They also have to be scaled by cer-
tain factors, respectively, such that the four boundary points of the window become
the four boundary points of the viewport. The aspect ratio of the window must be
the same as that of the viewport to avoid distortion of the image. Otherwise, for ex-
ample, a circle may be displayed as an ellipse.
The following sample code is an example of defining a window and a viewport
by using the graphics library, OpenGL. In OpenGL, the viewport is also defmed as
a three-dimensional volume. However, it results in the same graphics output as the
two-dimensional viewport derived by ignoring the third dimension.
static GLint viewport[]= { 0, 0, 400,400 };
Viewport is specified by the windowS coordinates. The first and second arguments
specify the lower left corner of the viewport, and the third and fourth arguments are
the si:ze of the viewport rectangle.
static GLclamped depth_range[] = { 0.0, 1.0 };
The first and second arguments represent adjustments to the minimum and maxi-
mum values that can be stored in the depth buffer.
This window means the separate area on a workstation monitor through which the user interacts with a
computer. It is opened and handled by the window manager of each operating system (e.g., an X-win-
dow client and Microsoft Windows).
54 Basic Concepts of Graphics Programming
To optimize performance, a display list is a cache of commands rather than a dy-
namic database. In other words, once a display list has been created, it cannot be
modified. If a display list were modifiable, performance could be reduced by the
overhead required to search through the display list and perform memory manage-
ment. As portions of a modifiable display list were changed, memory allocation and
deallocation might lead to memory fragmentation. Using display lists is typically at
least as fast as not using it. In the case of OpenGL, display lists can substantially in-
crease performance--particularly when OpenGL routines are issued over networks-
because display lists reside with the server and network traffic is minimized.
Once a display list has been defined, the following operations can be applied.
Multiple execution: The same display list can be executed many times.
Hierarchical execution: A hierarchical display list is one that executes another
display list by calling the command for executing a child display list in the parent
display list. A hierarchical display list is useful for an object made of compo-
nents, especially if some of those components are used more than once.
Deletion: The display list can be eliminated.
As we explained in Section 3.2, the conversion of coordinates from one coordinate
system to another is essential in calculating the locations of projections of points on
an object in space. First, we need to calculate the coordinates of the points on the
object for the world coordinate system from its model coordinate system. The cur-
rent position of the object is usually specified by how much the object has been
translated and rotated from its initial position, at which its model coordinate system
coincided with the world coordinate system. Thus the world coordinates of the
points on the object at the current location are obtained by translating and rotating
the corresponding points at the initial position, where their model coordinates are
the same as the world coordinates. Most graphics libraries execute these transfor-
mations internally, and the graphics programmer may need provide only the
amount of translation and rotation of each object. However, you still need to under-
stand the transformation clearly in order to draw objects at their correct locations
without trial and error, especially when objects are moving in a complicated way.
We describe the transformation matrix to be applied to the coordinates of the points
for these translations and rotations in the following section.
Once we have obtained the world coordinates of all the points of an object at its
current position, we have to derive the coordinates of the same points with respect to
the viewing coo'roinate system. This conversion of the coordinates among different
coordinate systems is called mapping. The mapping between the world coordinate
system and the viewing coordinate system is usually taken care of internally by the
graphics library when the programmer provides information such as the location of
3.7 Transfonnation Matrix 55
viewpoint, viewsite, and the direction of the up vector, all in world coordinates. The
transformation matrix for this mapping is described in Section 3.7.3.
3. 7.1 Translation
Figure 3.16
Translation of an
When an object is translated by a, b, and c in the x, y, and z directions, respectively,
from its initial position at which its model coordinate system coincides with the
world coordinate system (see Figure 3.16), the world coordinates of a point on the
object at the new position, (Xw, Yw, Zw) are obtained as follows:
Xw =Xm +a
Yw =Ym +b
In Equation (3.3), xm, y m' and zm also are the model coordinates of the same point.
Equation (3.3) can be expressed in the following form, using matrix operations:
~ l = r ~ ~ ~ r ~ = J
Zw 0 0 1 C Zm
1 0 0 0 1 1
It is also possible to represent the coordinates as a row vector, in which case the transfonnation matrix
is placed after the row vector. This transfonnation matrix is the transpose of the one in Equation (3.4). In
Equation (3.4) we are following the OpenGL convention.
3.7 Transformation Matrix 59
An object in space is translated by 5 units in the y direction of the world coordinate
system and then rotated by 90 degrees about the x axis of the world coordinate sys-
tem. If a point on the object has the coordinates (0, 0, 1) with respect to its model
coordinate system, what will be the world coordinates of the same point after the
translation and the rotation?
The coordinates Y after translation can be obtained by
l]T = Trans(0,5,0) [0 0 1 1]T
= [0 5 1 1]T
Then a rotation is applied:
[Xw Yw Zw 1]T =Rot(x,90) [0 5 1 1]T
Thus the coordinates of the new point would be (0, -1, 5). Note that Equations (a)
and (b) can be merged as follows:
[Xw Yw Zw 1]T =Rot(x,90) Trans(0,5,0) [0 0 1 1]T (c)
Equation (c) is a much more convenient expression, especially when the coordinates
of numerous points need to be calculated. In that case the transformation matrices
Rot(x,90) and Trans(0,5,0) are multiplied in advance to give an equivalent transfor-
mation matrix, and then the resulting matrix is applied to all the points involved.
This process of calculating the equivalent transformation matrix by multiplying the
associated transformation matrices in the proper sequence is called concatenation.
This process is one of the benefits of using homogeneous coordinates, which enables
the translation to be expressed by a matrix multiplication instead of an addition.
An object in space is rotated by 90 degrees about an axis that is parallel to the x
axis of the world coordinate system and passes through a point having world coor-
dinates (0, 3, 2). H a point on the object has model coordinates (0, 0, 1), what will
be the world coordinates of the same point after the rotation?