Automated CAD Assembly and its Application ...

Automated CAD Assembly and its Application in DOME
by
Prabhat K. Sinha
Bachelor of Technology in Mechanical Engineering
Indian Institute of Technology, Kanpur, India (2000)
Submitted to the Department of Mechanical Engineering in
Partial Fulfillment of the Requirements for the degree of
Master of Science in Mechanical Engineering
at the
MASSACHUSETTS INSTITUTE OF TECHNOLOGY
June 2002
C2002 Massachusetts Institute of Technology
All rights reserved
Signature of Author.............................
Department of Mechanical Engineering
8, 2002
AIM
Certified by.....................
........
.
.............
Professor David R. Wallace
Esther and Harold Edgerton Professor of Mechanical Engineering
Thesis Supervisor
Accepted by........................................._..
Professor Ain A. Sonin
Chairman, Departmental Committee on Graduate Students
MASSACHUSETTS [NSTITUTrE
OF TECHNOLOGY
OCT 2 5 2002
LIBRARIES
BARKER
MIT
Libraries
Document Services
Room 14-0551
77 Massachusetts Avenue
Cambridge, MA 02139
Ph: 617.253.2800
Email: docs@mit.edu
http://libraries.mit.edu/docs
DISCLAIMER OF QUALITY
Due to the condition of the original material, there are unavoidable
flaws in this reproduction. We have made every effort possible to
provide you with the best copy available. If you are dissatisfied with
this product and find it unusable, please contact Document Services as
soon as possible.
Thank you.
Due to the quality of the original material there is some bleed
through.
el
Automated CAD Assembly and its Application in DOME
by
Prabhat K. Sinha
Submitted to the Department of Mechanical Engineering
on May 8, 2002 in partial fulfillment of the
requirements for the degree of
Master of Science in Mechanical Engineering
Abstract
Solid modeler/CAD (Computer Aided Design) packages do not fully automate the assembly
of parts. This is primarily because solid modelers cannot interpret the design intent of an
assembly and thus think like an assembly engineer. One is required to specify low-level
mating constraints between parts to assemble them together, which can be both tedious and
time consuming. This affects the product development cycle.
This work is intended to provide the basis for an efficient tool to assembly engineers that
will help them in faster assembly of parts, analyze the assembly system efficiently and
produce results quickly. While such a methodology could never replace/substitute for CAD
assembly engineers, it may help to reduce tedious procedural assembly tasks. The thesis
discusses issues associated with trying to increase the level of automation in a CAD
assembly processes.
Considerations that might be helpful for developing an Automatic Assembly Algorithm
(AAA) are detailed. These include dimensions, topology, geometry, feature, functionality,
orthographic views, assembly constraints etc.
This work is a starting step towards automating the assembly of CAD parts. The long- range
vision is to more fully automate the assembly process and do the full analysis of the
assembly in the virtual environment.
The automated assembly concept may also be useful in DOME (Distributed Object-based
Modeling Environment) for building heterogeneous CAD assemblies, where parts from
different distributed CAD systems can be assembled together to create a parametrically
editable assembly.
Thesis Supervisor: David Wallace
Title: Esther and Harold E. Edgerton Associate Professor
3
MassachusettsInstitute of Technology - Computer Aided Design Laboratory
4
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
Acknowledgments
I wish to express my sincere gratitude to Professor David Wallace, my thesis advisor, for his
constant support, encouragement and insightful guidance during my stay at MIT. He offered
just right amounts of structure and flexibility - research support with allowance to go where
the research takes me. I have gained a lot, both academically and in personal life, while
interacting with him. He is a wonderful teacher and a good friend. I thoroughly enjoyed
working with him. I am happy to have had the opportunity to work with him.
Thanks to all the MIT CADlab students, Aubrey Williams, Kristie Yu, Ines Sousa, Qing
Cao, Twiggy Chan, Sane Wu, Rainer, Vishal and Charles for bringing up a family like
atmosphere in the lab that had a great refreshing effect during day to day research work. The
lab has been home-away-from-home during my life at MIT.
Thanks to Leslie Regan and Maureen Lynch for taking care of all the administrative matters.
My very special thanks to Elaine Yang for all the help in the lab. I thoroughly enjoyed
interacting with her. Despite her own busy schedule, she has always been ready to help me
out in various aspects of CATIA@ programming and other computer related problems. She
always encouraged and motivated me. I really admire her for her perseverance and penchant
for perfection and working with her has been a memorable experience.
Special thanks to Darcy for her help in searching papers for my research. She always wholeheartedly welcomed my queries in library related issues.
My very last, but the most precious thanks to my family. Mom and Dad, I really missed you
here. Ajit Bhaiya, I missed you too. Chatting R-brothers had also been refreshing. Thanks
for all the belief in me, and providing me a lifetime emotional support and motivation
without even knowing it.
5
MassachusettsInstitute of Technology - Computer Aided Design Laboratory
Table of Contents
A B ST R AC T ...........................................................................................
3
ACKNOWLEDGEMENTS ..........................................................................
5
TABLE OF CONTENTS...............................................................................6
LIST O F FIGU R ES ......................................................................................
9
LIST OF TABLES ....................................................................................
9
LIST OF ACRONYMS AND SYMBOLS.......................................................10
1.
INTRODUCTION.............................................................................11
1.1 V ision ...............................................................................
12
1.2 Mission: Goal and Deliverables of this Thesis.................................12
1.3 Automated Assembly and its Role in Product Development Process.....12
1.4 Organization of Thesis...............................................................15
2.
BACKGROUND............................................................................17
2.1 Evolution of CAD Package.......................................................17
2.2 Extensive Mouse Click/ Key Pressing Operation and RSI.....................18
2.3 Repetitive Tasks and its Effect on Creativity and Productivity.............19
2.4 Experience of a Ford Engineer..................................................20
2.5 Work in Assembly Planning and Automated Assembly........................20
3.
CAD ASSEMBLY: CURRENT STATUS.............................................22
3.1 Generic Assembly Process In CAD Packages.................................22
3.2 Illustrative Assembly Example in SolidWorks®...............................23
6
Massachusetts Institute of Technology - Computer Aided Design Laboratory
4.
FACTORS FOR AUTOMATING CAD ASSEMBLY...............................28
4.1 Concept Overview................................................................28
4.2 Factors for Automating Assembly.............................................28
4.2.1
Dimension Driven CAD Assembly..............................28
4.2.2
Topology Driven CAD Assembly.............................31
4.2.3
Geometry Driven CAD Assembly............................35
4.2.4
Functionality Driven CAD Assembly.........................36
4.2.5
Feature Driven CAD Assembly..................................36
4.2.6
Orthographic View Driven CAD Assembly.................38
4.2.7
Library Driven CAD Assembly..................................41
4.2.8
Constraints Driven CAD Assembly..............................42
4.2.9
Other Factors Helpful for Automating CAD Assembly.......44
4.3 PROPOSED METHODOLOGY..................................................45
5.
EXTRACTING PART INFORMATION FROM CATIA SOLID MODELS........47
5.1 Introduction to CATIA@.............................................................47
5.2 CATIA@ Plugin.....................................................................48
5.3 Example and Discussion of Obtained information..............................52
6.
AUTOMATED ASSEMBLY AND ITS APPLICATION TO DOME.............55
6.1 Introduction to DOME and Overview of its Architecture.......................55
6.2 Assembly Work in DOME.......................................................56
6.3 ST E P .................................................................................
60
6.4 IG ES .................................................................................
61
7
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
6.5 Proposed Methodology...............................................................63
7.
C O N C LU SIO N S ..............................................................................
66
7.1 Sum mary ..............................................................................
66
7.2 Advantages of Automated CAD Assembly.......................................67
7.3 Challenges and Limitations.........................................................68
7.4 Future W ork...........................................................................70
APPENDIX A: Evolution of CAD Database....................................................71
APPENDIX B: Program for Extracting Part Information in CATIA@.........................72
APPENDIX C: STEP (AP214) of the Peg .......................................................
77
APPENDIX D: IGES of the Peg ..................................................................
83
R EFE R ENC ES ........................................................................................
89
8
Massachusetts Institute of Technology - Computer Aided Design Laboratory
List of Figures
Figure 1: Flow chart: Product Development Process.....................................................13
Figure 2: Assembly in Product Development Process...................................................
Figure 3: A Peg (Part 1).......................................................................................
Figure 4: A Cone (Part 2).....................................................................................23
13
23
Figure 5: Base Part (Part 3)..................................................................................23
Figure 6: Parts in assembly..................................................................................24
Figure 7: Concentric assembly mating........................................................................25
Figure 8: Coincident assembly mating........................................................................25
Figure 9: Other assembly matings..............................................................................26
Figure 10: Assembly automation of angle bracket subassembly using dimension information........30
Figure 11: Difference between geomery and topology of an object....................................32
Figure 12: The geometric (a) and topological (b) elements that define a simple cube...............33
Figure 13: Topologically same and geometrically different Solid Models............................34
Figure 14: Using topological information for automating CAD assembly.............................35
Figure 15: Feature based approach for automating peg, cone and base part CAD assembly...........38
Figure 16: Orthographic views generated in CATIA@..................................................39
Figure 17: The lower figure represents skeletal representations of the figure above.................41
Figure 18: Set of assembly rules for standard library parts..............................................42
Figure 19: Basic flow chart of automated assembly in a CAD package...............................45
Figure 20: Pseudo code for assembling hole-shaft feature..................................................45
Figure 21: Extracting various parameters and properties of the peg (shown top right).................52
Figure 22: Extracting various parameters and properties of the cone (shown top right)...............53
Figure 23: Extracting various parameters and properties of the cone (shown top right)................54
Figure 24: Step 1: The two participants publish their CAD models and wrap them in DOME........56
Figure 25: Step 2: The engineer drives the supplier's CAD model parametrically from DOME......57
Figure 26: Step3: The supplier drives the engineer's neutral file service by linking it to his own....58
Figure 27: The engineer incorporates the new part into his assembly.................................59
Figure 28: The engineer rebuilds his assembly by driving the supplier's model.....................66
Figure 29: Different ways of defining a cone..............................................................69
List of Tables
Table 1: Total number of mouse clicks for the cone-peg assembly....................................27
9
MassachusettsInstitute of Technology - Computer Aided Design Laboratory
List of Acronyms and Symbols
AAA
Automatic Assembly Algorithm
ANSI
American National Standards Institute
CAD
Computer Aided Design
CADLab
Computer Aided Design Laboratory
DFA
Design for Assembly
DOF
Degrees of Freedom
DOME
Distributed Object-based Modeling Environment
H-CAD
Heterogeneous CAD
IGES
Initial Graphics Exchange Specifications
ISO
International Organization for Standardization
KC
Key Characteristics
LUT
Look Up the Table
MIT
Massachusetts Institute of Technology
NF
Neutral File
NIST
National Institute of Standards and Technology
OEM
Original Equipment Manufacturer
PDM
Product Data Management
RADE
Rapid Application Development Environment
RSI
Repetitive Stress Injury
STEP
Standard for the Exchange of Product Model Data
2-D
Two Dimensional
3-D
Three Dimensional
10
MassachusettsInstitute of Technology - Computer Aided Design Laboratory
1
Introduction
Accelerating time to market with improved product quality is one of the driving forces
encouraging companies to seek high level of automation in the product development
process. The corporate world has placed emphasis on reducing cost and increasing the
quality of assembled products and thus improved techniques for producing finished
assembled products are part of this trend.
In a complex product, assembly is often the dominant cost process in comparison to detail
part manufacturing operations. For Example, it has been argued that more than 30% of
manufacturing cost or financial value of a civil aircraft is incurred during assembly [1].
With the automation of CAD assembly, the time and resources to analyze the assembly will
decrease, which, in turn, should drive down the total assembly cost. In addition, for the case
of new products, a thorough and detailed assembly analysis is required before a production
system is conceived, designed and built, and successful assembly operations can be
achieved.
Computer-aided Design (CAD) activities are integral parts of Product Design and
Development. Currently, the process of assembling parts in CAD packages requires the user
to execute many repetitive steps. Thus, the process of assembly within a CAD system might
be further explored to minimize repetitive, low information adding tasks. CAD systems do
not reason about parts in the way assembly engineers think while performing assembly
analysis, or as assembly workers think while working in an assembly plant. Thus,
engineering must build CAD assemblies in an unnatural language. In addition, it is simply
11
MassachusettsInstitute of Technology - Computer Aided Design Laboratory
time consuming to specify low-level assembly mating constraints in cases where parts can
assemble in only one possible way.
1.1 Vision
The long- range vision is to more fully automate assembly process of CAD solid models by
reducing the number of procedural assembly steps, which add little information, and to
provide the full analysis of assemblies in a virtual environment. With the helps of enabling
tools, assembly engineers will be able to assemble parts quickly and analyze assembled
systems in a rapid development cycle.
1.2 Mission: Goal and Deliverables of the Thesis
The goal of the thesis is to identify various factors that can help in the automation of solid
models assemblies in CAD environments and to explore the benefits of such methodology
in a DOME platform. DOME is a modeling infrastructure that is intended to create a global
community, or marketplace, of individuals offering access to simulation services related to
their own specialties, much as the WWW has enabled worldwide access to information
([37], [38] and [39]). There are four major components of the thesis. First, there is a
description of current status of assembly in CAD system. Second, various factors that can
help in automating the assembly process and the methodology for automation of assembly
are discussed. Third, a plugin that extracts various part related information from solid
models of part made in CATIA@ is described. Fourth, there is a discussion on the possible
application of automated assembly methodology in DOME.
Following section describes a generic product development process and identifies stages (of
the product development process) at which automation of CAD assembly can be helpful.
1.3 Automated Assembly and its Role in Product Development Process
A product development process is the sequence of steps or activities, which an enterprise
employs to conceive, design and commercialize a product [2]. Product Design includes
every technical aspect of the product, from the purchasing of components to manufacturing,
assembly, service and obsolescence.
Ulrich and Eppinger's flow chart representation for a
12
MassachusettsInstitute of Technology - Computer Aided Design Laboratory
generic product development process is shown in Figure 1. The process begins with a
mission statement and ends with product launch. There are seven key activities in between.
Mission
Statement
h.
Identify
Ietf
Customer
Needs
Establish
Generate
Target
Specifications
Product
Concept
Select
o Product
Concept(s)
-
4-I
4-I
Set
Final
Specifications
Test
----Product
Concept(s)
Prototype and
10 Downstream
Development
Development
Plan
Figure 1: Flow Chart: Product Development Process
Thinking about the assembly of parts, either directly or indirectly, comes at various stages of
the product development process as shown in Figure 2. The proposed Automated Assembly
Algorithm (AAA) may help in various steps of the product development process.
Mission
Statement
.
Identify
Customer
Needs
Establish
Target
Specifications
S.-ect
froduct
oncept
concept(s)
4,1
Development
Prototype and
Product
Concept(s)
--
Downstream
pDevelopment
Figure 2: Assembly in Product Development Process
13
MassachusettsInstitute of Technology - Computer Aided DesignLaboratory
Plan
Depending upon the need, the CAD may be used in the early stages of the product
development process, starting from the concept generation stage. The goal of the concept
generation stage is to thoroughly explore the space of product concepts that may address the
customer needs and solid modeling may not initially be useful in this stage. However, the
strength of CAD comes into play when designers wants to understand part interactions in an
assembly which otherwise is not possible in 2-D sketching. In addition, CAD models help in
the communication of concepts between team members.
Concept generation activities usually result in a set of 10 to 20 concepts. The next stage in
the product development process is Concept Selection (step 4, Figure 2). Concept selection
is the activity in which product concepts are analyzed and sequentially eliminated to identify
the most promising concept(s). Once a solid model is made (and if it has been made in step
3 of Figure 2) it can help the product design team during concept selection.
In step 5, Test Product Concepts, the shortcomings of selected concept(s) are identified and
many incremental variations are produced. The configuration of an assembly any of its parts
can be modified in a solid modeler and then reassembled automatically with Automatic
Assembly Algorithm (AAA).
Up until step 5 of the product development process, a CAD system may or may not be used
depending upon the need. But, in the following step, Set Final Specifications, it is important
to use CAD systems in most cases. This step requires the careful analysis of the assembly
and setting up final part dimensions and tolerances before prototyping. Error or mistakes in
this phase can lead to large expenses in the prototyping phase. The need and impact of the
automatic assembly process is the most in this phase where parts are designed and changed
iteratively and is assembled together to see if all the parts fit together correctly.
In addition to new product development, the automatic assembly of parts is useful when
some parts of an existing design are modified and parts of the subassembly should
reassemble in the same, similar or different way. Section 2.4 describes experience of a Ford
14
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
engineer where he hard-coded automatic assembly code in I-DEAS@ for assembling
standard engine parts. As a part of his job he had to reassemble modified standard engine
parts which were sent to him from various design specialists (heat and fluid specialist,
assembly engineer, part design engineer etc.). Automating assembly using hard-coded part
specific procedures made him much more efficient in his day-to-day activities, leaving more
time for creative thinking.
1.4 Organization of Thesis
In chapter 2, background materials for the thesis is presented. The evolution of CAD
packages is described with an emphasis on the wide range of capabilities of contemporary
CAD packages. Next, Repetitive Stress Injury (RSI) due to extensive mouse clicking
operations and key pressing is discussed. The effect of repeated tasks on creativity and
productivity is also explained. The experience of a Ford Motor Company engineer is
described who hard-coded an automatic assembly code for assembling a set of standard
engine parts is presented. The chapter concludes with review of past research work in
assembly planning and automated assembly.
In chapter 3, current status of generic assembly process in CAD Packages is described. The
generic assembly process is illustrated by taking example of three simple solid model
designed and assembled in SolidWorks®.
Chapter 4 discusses factors that should be helpful in automating the assembly process. The
overall concept of automated assembly is also provided. An overview of proposed
methodology and description of the knowledge base that is essential for the implementation
of the concept is discussed. A basic flow chart of the process of automated assembly is
provided.
In chapter 5, the CATIA® plugin for extracting part information is described and is
illustrated by taking examples. Discussion on the nature of parameters obtained with the
help of plugin is also presented.
15
Massachusetts Institute of Technology - Computer Aided Design Laboratory
In chapter 6 the concept of DOME is described briefly. An assembly process in the DOME
environment is explained as a methodology has been proposed for implementing automated
assembly in DOME environment [40]. Factors that affect the extent of assembly automation
are also listed.
Chapter 7 summarizes the work presented in the thesis with conclusions and advantages.
Limitations and challenges of the proposed automated methodology are discussed. Direction
for future studies and work is also provided.
16
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
2
Background
2.1 Evolution of CAD Packages
CAD packages have evolved considerably since their advent in the mid 1960s. The design
tasks in earlier CAD packages were restricted to describing parts geometrically by creating
drawings using orthographic projections. The first 3D CAD system appeared in early 1970s
with the capability of simple skeletal wire frame drawings [3]. Thereafter, important
milestones on the road of 3D development involved wire frames with hidden line removal,
two and a half D', 3D surface modeling and then 3D Solid modeling.
CAD systems presently fall into two general categories: those based on entities and those
based on solids or features [4]. The entity based CAD system has basic entities such as line,
circle or arc, spline etc, and it can be thought of as a powerful implementation of the
drawing board. An example of such system is AutoCAD. On the other hand, in solids or
feature based CAD systems, the design process starts with creating a solid model using
primitive shapes or features. Examples include solid extrusions, revolved solids, or solid
created from general surfaces. There are also solid removal features such as holes, cut and
chamfers. In addition, these solid modelers are parametric. This allows the part to be
reshaped by changing dimensions. The parametric CAD system automatically reshapes the
model or part when the dimensions or parameters are modified. Examples of such systems
are Pro/ENGINEER@, I-DEAS@, CATIA® and Unigraphics@.
1Two and a half D means that Drawing objects, like lines, circles etc. having a "Thickness" value. Thickness
in fact means height! All the data is the same size, a zero thickness is stored in the same manner as a height of
1000. This is how AutoCAD started "3D" in 1985 with Version 2.6.
17
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
With the evolution of part design within a CAD system, CAD databases have also evolved
in a parallel. While earlier databases were developed to store 2D drawings, recent databases
are capable of storing data corresponding to the solid model, shape extraction and product
model. Appendix A provides a schematic representation of CAD Database evolution.
The aforesaid development in part design within a CAD package and the corresponding
evolution in the internal representation of a solid model in its database has enabled CAD
systems to understand various aspects of a parts, similar to the way we may understand
geometry. Hence, it is now a natural choice to delve into the automation of CAD assembly
process by investigating the thought process of an assembly engineer and exploring other
factors that can help the automation process.
One of the main drawbacks of the assembly process with current CAD packages is that it
requires extensive clicking of mouse buttons, dragging mouse while holding one of its
buttons and providing various inputs with the help of keys. Next section describes the
adverse effect of such repetitive operations.
2.2 Extensive Mouse Click (mousing)/ Key Pressing (keying) Operation and RSI
References [5] and [6] indicate that the majority of Repetitive Stress Injuries (RSI) are
related to extensive computer use. Repetitive Stress Injuries (RSI) are injuries involving
damage of muscles, tendons and nerves caused by overuse or misuse. Repetitive Stress
Injuries develop slowly over time; thus, they are also called Cumulative Trauma Disorders
(CTD) or Muscular Skeletal Disorders (MSD). They usually affect hands, wrists, elbows,
arms, shoulders, back, or neck. The repetition of small, rapid movements, such as keying or
mousing for concentrated period, results in RSI.
In order to assemble parts in the CAD assembly environment, the user has to perform
several mouse click operations, and hold and drag the part to the desire place for assembly.
Using a CAD environment in itself requires extensive mousing and keying operations, many
of which are essential and necessary. Nevertheless, with concepts developed in this thesis,
18
Massachusetts Institute of Technology - Computer Aided Design Laboratory
the automation of assembly processes should eliminate or minimize keying and mouse click
operations by increasing the level of automation.
2.3 Repetitive Tasks and Effects on Creativity and Productivity
People will be most creative when they feel motivated by the interest, enjoyment,
satisfaction, and challenge of the work itself. Repetition in task leads to lack of interest,
enjoyment, and satisfaction [7]. Creativity is an important tool that organizations can use to
increase their effectiveness, competitiveness, and long-term survival [8]. A repeated task
does not pose new challenges.
The process of specifying low level mating constraints involves several mouse click
operations including selecting parts, performing check button and 'OK' operations are such
tasks. The repetition of such tasks naturally decreases the interest, enjoyment and
satisfaction, which in turn reduces productivity. Within my own and my peers' experience
in using CAD for assembly, I am convinced that spending thought on the procedural
operations of the assembly detracts mental energy from thinking about the key issues of
design and assembly. Hence, the person doing such operations is not at his creative best.
The effect of CAD on creativity had been studied since as early as late 1970s. In 1977,
Negroponte [9] mentioned that the then CAD systems were marked by a complete disregard
for the notion of creativity.
In a CAD article, "Technology, good for the pocket, bad for the soul!" [10], one CAD
Engineer says of his experience, "I cannot help but feel that some of the pride, some of the
soul is gone from the my drawings and instead of feeling like the artist I once was, I feel like
a robot on a production line...". This statement also reveals how the mundane task reduces
the creativity and interest in the job.
Langner et al [11] studied effects of computer aided design work on the design process by
conducting various field experiments. Their study focused on the influence of 3 different
design tasks (standard tasks) and 11 CAD-systems (2D and 3D), taking into account the
performance and strain measurements of 43 subjects (15 design engineers, 8 technicians, 17
19
MassachusettsInstitute of Technology - Computer Aided Design Laboratory
draftsmen, 3 trainees). They found that deficits and complications in handling the CAD
systems increase with the complexity of the system and thus cause an adverse effect on
performance and strain of its operators: creativity is reduced by friction and frustration in
system handling, even if the operator is highly trained.
2.4 Experience of a Ford Engineer
The experience of Ford Motor Company engineer, Rob Mecoli (rmecoli@FORD.com), of
the power train group, is one of my motivations to explore CAD assembly automation. He
wrote automatic assemble code in I-DEAS@ for assembling standard engine parts. He
defined the particular mating surface and the nature of constraints in a code that works like
LISP to generate an assembly. This limits the work that he needs to do repeatedly when
parts are modified parametrically. The example also shows that generic automatic assembly
would be helpful in industry. Ideally, it would also be very useful for new product
development, not just parametric variations of mature designs.
2.5 Work in Assembly Planning and Automated Assembly
There is a large body of work in the area of assembly planning and the automated assembly
of parts using robotic systems ([12], [13], [14], [15], and [16]). Chakraborty, et al [12]
describes representation of an assembly as a hierarchy of assembly structures. Given a
description of an assembly to be manufactured, the assembly sequence planner identifies
subassemblies and generates high-level plan for the construction of each subassembly,
including the final assembly. Mello [13] presents an algorithm for generating all mechanical
assembly sequences by transforming the problem of generating assembly sequences into the
problem of generating disassembly sequences, in which the disassembly tasks are the
inverse of feasible assembly tasks. Weule et al [14] and Gu et al [15] worked on generating
the sequence of operations for assembly lines by evaluating CAD-database and extracting
the necessary information. Dini et al [16] describes a procedure for the selection of the
subassemblies and the assembly sequences of a product based on a mathematical model of
the product, obtained through the definition of three matrices: the interference matrix, the
contact matrix and the connection matrix.
20
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
In contrast, there seems to be little work on automated assembly planning within the CAD
systems themselves. The work presented in this thesis develops a framework whose
implementation will help in automating (either partially or fully) assembly processes in
CAD systems.
The assembly process within solid modelers ideally will have analogies to the actual
manufacturing assembly process. If we are to improve the CAD assembly process, it is
important to think about the following questions:
How do we physically assemble?
What factors does an Assembly Engineer think about while assembling parts?
How a factory worker thinks while assembling parts in assembly line?
It is often required by students (specially in Mechanical Engineering) to draw a solid model
of parts and then assemble those part models into assembly. For these, after making the
parts, students have to do various click operations (similar to what stated in the next chapter,
CAD Assembly: Current Status) to assemble those parts. The simplification of the assembly
process with the help of increased automation will give students more time to think on
actual design and assembly related issues.
21
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
3
CAD Assembly: Current Status
3.1 Generic Assembly Process in CAD Packages
The need for a new type of assembly process within CAD systems comes from the
experience of using several CAD packages (Solid Works@, I-DEAS@, CATIA@, etc.).
This section describes the generic process of assembling parts in various CAD Packages.
Parts defined in CAD packages are stored in different files. To create an assembly using
parts, a new assembly file is opened and the parts to be assembled are brought into the file.
After specifying various mating conditions, like concentric, coincident, perpendicular,
tangent etc, the CAD system generates an assembly using the parts. This highly procedural
process takes a lot of time as it involves many mouse-click operations, selection of part
surfaces, and the clicking of radio buttons in menus to set constraints.
CAD systems force the user to perform various steps that can often be seen as redundant.
Part attributes (like dimensions, geometry, functionality, etc.) might be used to perform
automatic CAD assembly in many cases, or at least perform some assembly steps to provide
a partially complete assembly.
The example presented in the next section illustrates the assembly of parts in SolidWorks®,
which is a common, relatively easy-to-use solid modeler (SolidWorks is the registered
trademark of SolidWorks corporation). SolidWorks@ has chosen as a sample package and
the process of assembly is similar in other CAD packages.
22
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
3.2 Illustrative Assembly Example in SolidWorks@
The following example illustrates the assembly steps while assembling in a solid modeler,
SolidWorks@, with three simple parts viz., a peg, a cone, and a base part having conical and
cylindrical hole features.
Three illustrative parts follow in Figures 3, 4 and 5.
Figure 3: A Peg (Part 1)
Figure 4: A Cone (Part 2)
Figure 5: Base Part (Part 3)
23
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
Parts in Assembly:
Cone
Peg
Base part
Figure 6: Parts in assembly
In order to achieve the configuration above, the following steps are performed. In general,
this is the minimum number of steps one needs to do:
1.
Gross Motion: Move part 1 to a desired location (in some cases this may not be
required).
2. Apply the CONCENTRIC constraint between desired face of part 1 and the base part
using the "Assembly Mating" window shown below in Figure 7.
24
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
....
. .. ....
....
[A-11semb?
Figure 7: Concentric assembly mating
3. Apply COINCIDENT mating condition between appropriate faces of part 1 and the
base part, again using the "Assembly Mating" window shown in Figure 8.
Figure 8: Coincident assembly mating
25
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
4. Gross Motion: Move Part 2 to a desired location with respect to the Base part (in
some cases this may not be required).
5. Apply the CONCENTRIC constraint between desired face of part 2 and the base part
(Figure 9).
6. Apply COINCIDENT mating condition between appropriate faces of part 1 and the
base part (Figure 9).
d9Apply
Items Selected:
Ap
Editing Mate : Concenkric4
C e a ito,
Alignment Conditon
Aligned
SAn -Aligned (On)n
rA.I
t
E ditng Mate Coincddnt4
.~........
d:
G t Condon
Align
r
Wo
Wodnc-
Figure 9: Other assembly matings
As seen from the simple case of assembly described above, we need to perform steps in the
assembly even though it is obvious, at least to human, that which part has to go where and in
what manner they need to be assembled.
The total number of steps for the simple case is 6, and the time taken is around 30 seconds
to achieve the Assembled model. The number of steps involved increases as the number
26
MassachusettsInstitute of Technology - Computer Aided Design Laboratory
parts increases, and hence, the time taken to assemble them together. This clearly shows the
need of work in the area of automatic assembly.
The discussion presented in this thesis is to help provide background for developing an
efficient tool for assembly engineers that will help them faster assembly of parts, analyze
the assembly system efficiently and produce efficient results in short time.
For the case of peg-cone assembly (Figure 6), the total number of mouse clicks required is
18 as shown in Table 1.
Table 1: Total number of mouse clicks for the cone-peg assembly
Operation performed
Step
Mouse Clicks
1
Gross motion of peg
1
2
Concentric mating condition (peg with base part)
4
3
Coincident mating condition (peg with base part)
4
4
Gross motion of cone
1
5
Concentric mating condition (peg with base part)
4
6
Concentric mating condition (peg with base part)
4
Total Mouse Clicks
18
With the proposed methodology, only gross motions are required, in general. So, the mouse
clicks can be reduced to 2.
27
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
4
Factors for Automating CAD Assembly
4.1 Concept Overview
This section details various factors that will provide the basis for the development of
efficient tool(s) for automating CAD assembly. The concept described in this chapter
involves extracting various geometric, dimensional, and topological information etc. using
information that describes a part. In addition, a discussion on how and to what extent other
information, like part functionality or specific features, can be helpful in automating CAD
assembly is provided. The factors proposed in this chapter utilize tools available in current
solid modelers.
4.2 Factors for Automating Assembly
i.
Dimension Driven CAD Assembly
Every part and its features have a set of dimensions that define them. This set of dimensions
is one of the important attributes of a part that help us decide which part goes where.
Parts/features generally have the following three attributes related with dimension.
a. Value of Dimensions (actual numbers).
b. Number of Dimensions used to completely define the part and its features.
c. Nature of Dimension, for example diameter value, angular value, simple length
value etc.
28
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
Not all the dimensions of a part/feature will be used in an assembly. In fact this will seldom
be the case, so it will also be important to decide which dimensions play key roles in an
assembly. It may be that the part itself makes it obvious which dimension is important for
assembly, while in other cases, the CAD assembly engineer may have to decide this. A
CAD designer, while designing a part, can put special notes on certain dimension(s) to
govern the assembly. This will make an automated assembly process easier. For example, a
designer can put a special annotation on the part feature that delivers Key Characteristics
(KCs) for the product. KCs, by definition, are the product requirements that demand
attention because they are critical for performance, safety, or regulations; and they are at a
risk of not being achieved due to process variations. KCs also play a key role in assembly.
The top-level task of an assembly engineer is to create plan for delivering each KCs ([17]
and [18]).
Following example (Figure 10) illustrates the use of dimension information for assembly
automation.
29
Massachusetts Institute of Technology - Computer Aided Design Laboratory
. .. ................ ....
..
0104
05
10
05
05
05
410
010
Note: All Dimensions are in mm
Angle bracket subassembly supporting two plates
Figure 10: Assembly automation of angle bracket subassembly using dimension information
As shown in Figure 10, the assembly environment has four rivets and one bracket which are
used for supporting two plates. Each pair of two rivets (out of four) has same shaft
dimension. Similarly, each pair of two holes in the angle bracket has same hole dimension
30
MassachusettsInstitute of Technology - Computer Aided Design Laboratory
as shown. Based on the dimension value of rivets and holes, it is quite obvious that
subassembly formed should be as shown in Figure 10.
In addition, information about the number of dimensions (to completely define the part) will
help us differentiate between a complex part and a simple one. The assembly decision for a
simple part like a peg will not require extensive analysis, while a complex part like an
engine manifold may require extensive analysis. Separating complex parts from simple ones
will help to decrease computational time and resources required during the assembly
decision making process.
Thus, Dimension Driven CAD Assembly, where the decision of assembly automation is
influenced by dimensions shows promise.
4.2.2
Topology Driven CAD Assembly
Solid modelers store more information (geometry and topology) than wireframe or surface
modelers (geometry only). Since topology and geometry are strongly linked, it is important
to understand the differences between geometry and topology.
The geometry of an object is its representation in space, whereas topology is the
interconnection of some geometrical objects. For example, the geometrical representation of
a circle is the center point and the radius, while its topological representation is a face, with
many edges interconnected to form a circular shape. In other words, geometry is shape, size
and location of geometric elements. Topology is connectivity and associativity of geometric
elements.
As stated previously, solid modelers store more information (geometry and topology) than
wireframe or surface modelers (geometry only). Geometry (sometimes called metric
information) is the actual dimensions that define the entities of the object. The geometry that
defines the object shown in Figure 11 includes the lengths of lines, and, the angles between
the lines, and the radius R and the center of the half-circle. Topology (sometimes called
combinatorial structure), on the other hand, is the connectivity and associativity of object
31
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
entities. It has to do with the notion of neighborhood; that is, it determines the relational
information between object entities. The topology of the object shown in Figure II can be
stated as follows:
Lishares a vertex (point) with L2and; L2 shares a vertex with and L3 ;
L3shares a vertex with C1 and; and do not overlap; PIlies outside the object.
L1
L2
R
C
P1
p1
CL
L3
(a) Same geometry but different topology
R
R
L2
C1
po
C
L2
P
L3
Z
L3
(b) Same to pology but different geometry
Figure 11: Difference between geometry and topology of an object
Based on these definitions, neither geometry nor topology alone can completely model
objects. Wireframe and surface models deal only with geometrical information of objects,
and are therefore considered incomplete and ambiguous. From a user point of view,
geometry is visible, and topology is considered to be non-graphical relational information
that is stored in solid model databases and is not visible to users.
In context of mechanical assembly topology has an entirely different meaning, referring to
the relations between parts in assembly. In the above discussion, it is important to realize
that topology is described with respect to a part and not topology with reference to
assembly.
32
MassachusettsInstitute of Technology - Computer Aided Design Laboratory
Consider the simple cube shown in Figure 12. Three types of geometric elements define the
cube: points, lines, and planes. Eight points define twelve lines that in turn define six planes.
The topological definition of the cube specifies how the geometric elements are bounded
and form topological elements. The topological definition of the cube, then, is a region of
space bounded by six planar faces, bounded by their intersecting edges and connected to
each other at their edges. The edges are derived from the intersecting faces. The edges are
bounded by vertices (points of intersection between one or more edges) and connect to each
other at their common vertices. While the geometric elements of the cube consist of points,
lines, and planes, the topological elements consist of faces bounded by derived edges and
vertices and how those faces, edges, and vertices relate.
-4I-
Figure 12: The geometric (a) and topological (b) elements that define a simple cube
The topological definition doesn't necessarily change if the geometric definition changes. In
the case of the simple cube, parametric changes to its geometry result in a topology
33
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
definition that is unchanged. As shown in Figure 13, one can modify a cube in many ways
and still maintain its original topology.
Figure 13: Topologically Same and Geometrically different Solid Models
Extracting topological information from the CAD database can provide helpful information
in assembling parts as shown in the Figure 14. In this example the assembly environment
consists of 4 pegs and a cylindrical hole in one of the parts in the same assembly
environment. Two out of four parts (Part 1 and part 3) have cylindrical shafts. Third peg
(Part 2) has a rectangular shaft while the fourth (Part 4) one has hexagonal shaft. Since the
topology of the hole is cylindrical, parts having cylindrical shaft as its topology can only be
assembled. With the topological information itself, it can be decided that Part 2 and part 3
can't be assembled with the hole, while Part 2 and Part 3 holds chances of getting assembled
with the hole feature. It is important to note that topological information is insufficient to
determine which one pf Part 1 and Part 2 can be assembled with the hole feature.
34
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
Part
1
Part 3
Part 2
Part 4
I
I
I
I
Figure 14: Using topological information for automating CAD assembly
4.2.3
Geometry Driven CAD Assembly
Contours, faces, edges, corners, geometry of faces, (circle, rectangular, etc., and for 3-D:
sphere, Cuboids) and other attributes such as Thread type (Right hand or Left hand, pitch,
TPI, etc.), offset etc. constitute geometry. Grupen et al [19] worked on the use of geometric
data integration techniques as a means to have formal criteria for recognizing free-form
surfaces in 3-D object.
Some decisions about the assembly can be made right away knowing the high-level
information about geometry. For example, if one part (or rather the contour being
assembled) is prismatic and another one is non-prismatic, the parts cannot be assembled. A
35
Massachusetts Institute of Technology - Computer Aided Design Laboratory
gear tooth profile (involute) has to mate with another tooth profile (involute) of a gear. A
large number of such examples can be found.
Thus "Geometry Driven CAD Assembly" shows promise for assembly automation.
4.2.4
Functionality Driven CAD Assembly
In physical world, one of the most important factors that affect assembly decisions is the
function that a part performs. Assembly is not just specifying constraints. Rather, the aim is
to put parts together to achieve certain desired function(s). In that sense, each part of the
assembly, its various subassemblies and the assembly as a whole serve some specific
function(s).
For example, a spur gear in an assembly environment has to mate with a spur gear to
transmit torque. We typically would not have an unmeshed gear in the assembly. Similarly,
we have rack and pinion pair (where the rack length axis has to be perpendicular to pinion
axis and the tooth profile should be touching each other), bevel gear pairs with tooth profile
touching and axes perpendicular; piston-hole pair where the axes of both match) etc.
Another example includes the functionality of a screw. The function of a screw is to fasten
two or more parts together.
As seen from the aforementioned examples "FunctionalityDriven CAD Assembly " can also
be helpful in automating assembly.
4.2.5
Feature Driven CAD Assembly
Feature based design and feature recognition have been researched extensively for the last
two decades [20]. Recognition of part features such as a hole, shaft, groove, slot, or pocket
is important for performing assembly operations. Every part is composed of many features
that, in many cases, govern the assembly. In the mid 1980s, researchers worked on
extracting feature information from 3-D CAD data. For example, Henderson, R [21]
developed algorithms that are capable of identifying and extracting features of 3-D CAD
data and organizing the resultant information into a feature graph. Vandanbrande [22]
36
Massachusetts Institute of Technology - ComputerAided Design Laboratory
worked on recognition of machinable features using artificial intelligence and computational
geometry techniques. Requicha et al [23] developed a system for generating machining
feature recognition of mechanical parts by using the information available in the solid model
of a part, its design features, tolerances and attributes etc. Currently, most CAD systems
allow users to make parts based on features and then save the information in a feature-based
format. This makes the process of feature recognition rather trivial.
Thus, assembly automation driven by feature(s) of parts also shows promise. Let us again
consider the example of the assembly described in chapter 3 (Figures 3, 4, 5 and 6). The peg
has a cylindrical shaft feature while the cone has conical surface. Correspondingly, the base
part has a conical and cylindrical hole. Based on the feature-based analysis, it is obvious that
conical surface of the cone has to mate with conical hole feature of the base part and the
circular shaft of the peg has to mate with the circular hole feature of the base part. The
assembly process is shown in Figure 15.
37
Massachusetts Institute of Technology - Computer Aided Design Laboratory
Feature=
Conical surface
Feature= Circular shaft
Circular hole
Feature=Conical hole
Figure 15: Feature based approach for automating peg, cone and base part CAD assembly
4.2.6
Orthographic Views (projections) Driven CAD Assembly
Orthographic views are easy to generate and they contain relatively less data than threedimensional objects. For example, in CATIA@, once the solid part model is made the
orthographic views can be obtained by selecting 'Drafting' option (From pull down menu of
CATIA® session: Start-
Mechanical Design 4 Drafting). One of the advantages of going
38
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
from 3-D database to 2-D database is that we have low volume of data which may be easier
to analyze and can provide useful pieces of information in making decisions for assembly.
Figure 16 illustrates the orthographic views (front, top and left side view) generated for an
angle bracket in CATIA®. In addition, depending upon the selection of preferences, six
views (front, bottom, rear, top right side and left side view) can also be generated.
*~1
--
r --
------
I
Lef
I
Ii
Ile
IiL
Ii
FIrO4t view
-
Too view
IScale:
____--
--
--
-l
1: 1
----
-----
___
Figure 16: Orthographic views generated in CATIA®
Depending upon the extent to which the orthographic views are analyzed, various part's
information can be found by generating three-dimensional objects in many cases. The topic
of generating solid 3-D objects from 2-D orthographic views has been studied for a number
of years. Back in 1973, Idesawa [24] laid the foundation for the research topic "3-D objects
from orthographic views." To date, researchers have come up with an array of algorithms to
39
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
generate 3-D objects from the user specified orthographic views. In 1997, Masuda [25]
proposed an efficient method for converting orthographic projections into solid models
based on non-manifold topology and assumption-based truth maintenance system (ATMS).
They also describe an error recovery method for incorrect orthographic projections that may
arise due to human errors. However, in this case, since the orthographic view is generated
by the CAD package itself, it is certainly a correct orthographic projection of the solid under
consideration.
Apart from obtaining solid parts from 2D part drawings, research has also been done to
obtain solid parts from 2D assembly drawings. Tanaka et al [26] proposed a methodology
for decomposing a 2D assembly drawing into 3D parts drawings using a set of solid element
equations. They have tested the methodology on various 2D assembly drawings.
The limitation of using orthographic views is that most of the research in the area of
generating 3-D solid objects from 2-D projections is limited to orthographic projections
consisting of straight lines, circles, or ellipse, and that solid models consist of planes,
cylinders, cones, spheres ([25] and [27]). This shows that all the information about a generic
solid model from its orthographic projections may not be extracted.
Since the organization and representation of internal data corresponding to a solid model is
CAD system specific, it is important to extract information as per the CAD specific
representation of orthographic views. If all the solid model parts are made in the same CAD
package, it is feasible to write an Application Programming Interface (API) that extracts
data for assembly of parts within the same package. For heterogeneous CAD environment, it
may be useful to save the 2D file as an image file, and then apply pattern recognition
software or use any of the many image-processing tools to search for patterns that can help
in assembly. One of such tools is MATLAB@ 2 [28]. People have worked extensively on
developing various algorithms and technique for 2D shape recognition. Mohan and Ozcan
[29] worked on shape recognition using genetic algorithms. Cai and Liu [30] developed a
2 MATLAB@
is an integrated computing environment that uses a combination of visualization, graphics and a
high level programming environment
40
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
technique for using Markov models with spectral feature for recognizing 2D shapes. Neural
Networks also provide powerful tools for solving the shape recognition problem. Seibert
and Waxman [31] worked on recognizing 3D objects from multiple views in a neural
system.
Chin and Teh [32] developed a local feature aggregation method for recognizing twodimensional objects based on their CAD models. Their methodology is capable of handling
objects that are translated, rotated, scaled or occluded.
Apart from orthographic views, skeletal representations of a 3D object, as described by
Gursoz et al [33], can also be helpful. In skeletal representations, solid objects are
represented by lower dimensional entities with associated thickness. In 2D, this means that
objects are represented by line and each point of line has an associated thickness. Figure 17
shows an example.
Figure 17: The lower figure represents skeletal representations of the figure above
4.2.7
Library Driven CAD Assembly
One of the ways our brain works is that it tries to match any new object with familiar objects
and then apply the same rules of interaction as it had applied with the object that most
closely matches the new object.
Similarly, in CAD systems, we can define various standard parts/ features, set up rules of
interaction in assemblies, and put this information in a library. Once the CAD system
41
MassachusettsInstitute of Technology - Computer Aided Design Laboratory
--
-
-
a
--
--
i-ilmilm
n
encounters a new part, it will try to look for the exact (close) match with the previously
stored parts/features, and then will apply the same rules for interaction as it did for those
parts in the assembly. We will call this "LibraryDriven Assembly ".
For example, we can have a set of guiding rules for Peg and Hole Assembly, which require
something matching the centerline and moving along the centerline to place it appropriately.
Especially for subassemblies consisting of standard parts, library driven automated
assembly is easy to implement given the rules governing the assembly are provided in the
knowledge base. As an example, lets consider assembly of a nut, bolt, washers (two) and
hole feature (formed out of assembling two or more parts). The standard way that governs
assembly is shown in the following Figure 18.
Waser
aole Fet%*re
Nut
Figure 18: Set of assembly rules for standard library parts
Similarly, other rules governing assembly of standard parts can be defined.
4.2.8
Constraints Driven CAD Assembly
By considering constraints, an assembly (subassemblies, set of mating conditions) can be
broken down into three main categories depending upon DOF (degrees of freedom):
Under Constraint:Some DOF is left unspecified in assembly.
Over Constraint: Some DOF is constrained more than once.
Properly Constraint:Each DOF is specified once and the system is well defined.
42
MassachusettsInstitute of Technology - Computer Aided Design Laboratory
-N
Most mechanical assemblies are Properly Constraintsystems, although some may be Over
Constrained or Under Constrained systems. Nevertheless, a designer/assembly engineer
knows before hand which part is properly/over/under constraint. Specifying such
information before the assembly phase (possibly by associating information with the part
itself) will help in the automation of assembly.
Hence, exploring "ConstraintDriven Assembly " seems promising.
In an assembly, mating is important; and the mates between the parts reduce the DOF of
both parts relative to one another, though the combined parts does not lose any DOF. It can
be observed from the original example, involving a round peg, a conical peg and the base
part, that the parts become constrained in assembly and thereby lose DOF. This is, in
general, true.
The DOF of parts in an assembly also gives us other useful pieces of information. If the
DOF of any part is 6, the part has not been assembled at all and is free. This refers to
incompatibility of the part for the assembly process.
DOF=O shows that the assembly is a "Structure" and hence has no movable parts. For
O<DOF<6 of a part, the only inference one can draw is that the part is free to move/rotate
with one or more DOF. By analyzing DOF, part-by-part, the designer/engineer/assembly
person can determine whether the design intent is matched or not, or it can serve as a
checkpoint for design part of assembly analysis.
In an assembly consisting of n parts,
Maximum DOF the system can have =6n (completely unassembled)
Minimum DOF for assembly =0 (Structure, e.g., a bridge)
So, the assembly can have a total DOF anywhere from 0 to 6n.
43
MassachusettsInstitute of Technology - Computer Aided Design Laboratory
The concept developed in this thesis does not depend on the assembly sequence. It just
concerns the final assembly. The order in which parts are assembled is independent of
mating constraints between parts.
The application of DOF associated with parts can be implemented in two ways. First, DOF
can be used in deciding which parts go where. If it is clear to a designer that a particular part
has to be, lets say, over constrained, then he attaches an attribute to that part indicating that
the part is over constrained. This attribute will not let the part be assembled where it is either
properly constrained or under constrained. Otherwise, the assembly engineer can use the
DOF information in the verification step as shown in Figure 19.
Techniques based on DOF analysis have also been used to solve the problem of determining
the positions and orientations of a set of rigid objects that satisfy a set of geometric
constraints [34].
4.2.9 Other Factors that are Helpful for Automating CAD Assembly
The above-mentioned eight factors are the major factors that can help in the automation
process; but by no means, this is an exhaustive list of factors.
Another factor that can be helpful is the part the material. Knowing and specifying that a
part of only a particular material should assemble with another part can be a factor driving
assembly. For example, consider an assembly environment having metallic as well as rubber
washers with the same dimension. In this case, the material of the part is the only driving
factor in the assembly and the assembly engineer can specify the material based decisionmaking rules in the Knowledge base/rules (as described in Chapter 5), which will help in
automating the assembly process.
Other factors include surface finish of a part, names of parts, properties like mass, surface
area, volume, center of mass, moment of inertia, supplier of part, manufacturing process,
manufacturing location of the part, etc. Identifying and specifying other helpful factors
depends upon the part as well as the nature of assembled product.
44
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
4.3 Proposed Methodology
An overview of the proposed automated assembly algorithm (AAA) is as follows in Figure
19.
Feedback for reconsideration based
on factors
Factor 1
KO
-
Factor 2
Knowledge
Base/Rules
Parts partially
Assembled
No'
Verification
OK
Lr2
CAD assembly
engineer inputs to
complete assembly
Factor N
Complete Assembly
Fig 19: Basic flow chart of automated assembly in a CAD package
The parts are assembled based on certain rules contained in the knowledge base. The pseudo
code for one of the rules (assembling hole and shaft feature) may look like as shown in
Figure 20.
If (Hole dimension= shaft dimension within the tolerance limit)
Figure 20: Pseudo code for assembling hole-shaft feature
45
MassachusettsInstitute of Technology - Computer Aided Design Laboratory
Either all the rules are applied at once or they can be applied one by one or in combinations.
For a product with small number of parts, all the factors can be applied at once. As the
number of parts increases, the complexity of decision-making process grows exponentially.
So, with products containing many parts (say >15-20), it may be helpful to apply the factors
one by one, and proceed further depending upon its effect. Depending on the outcome of the
application of various factors/rules, the assembly engineer can decide if the particular rule is
helpful in assembly or not. These rules, when applied to a set of parts, give us an assembly.
In many cases this may give us an assembly where parts are partially assembled-let's call
it a loose assembly. This loosely assembled system is subjected to verification, and feedback
is sent to knowledge base as shown in Figure 19 and the parts gets reassembled in a better
way.
For example, if there are parts overlapping with each other beyond tolerance limits, then it is
an incorrect assembly. In this case, either one of the parts is set free and taken out of
assembly, or the part is assembled in a way that gives a better-suited assembly
configuration. After this, the CAD assembly engineer resolves ambiguities, verifies the
system, and then parts will be assembled together in the desired way. Depending upon the
specific nature of the product, some weighted criteria may on the factors to govern the
assembly.
Researchers have worked on knowledge-based systems for automated assembly planning for
robotics applications. Park et al [35] worked on a computer-aided planning system for
automated assembly cells which uses a product description to generate assembly sequences
and finally robot programs. Deitz et al [36] has worked on utilizing the knowledge of
assembly operations and the capabilities of future equipment for planning an assembly cell.
46
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
5
Extracting Part Information From CATIA Solid Models
5.1 Introduction to CATIA®
CATIA@ is one of the leading CAD high-end software packages that handles both surfaces
and solids. CATIA® (Version 5 Release 6) is organized into a collection of workbenches,
each dedicated to a specific application area, viz. Part Design, Sketcher, Wire frame and
Surface, Assembly Design, and Generative and Interactive Drafting. CATIA's Part Design
Workbench contains solid modeling tools to design parts using features. CATIA's feature
classes include sketch-based
features, dress-up features, surface-based features, and
transformation features.
Sketch-based features include pads, pockets, shafts, grooves, holes (standard and threaded),
ribs, stiffeners, lofts, etc. Each feature group covers a wide range of types. For example,
holes support a wide range of geometric configurations, including simple, tapered, counter
bore, counter drill, and countersink, all from a single dialog box. Extension types include
blind, up to next, last, plane, and surface. CATIA's dress-up features include fillets,
chamfers, draft, parting lines, shells, thickness, and threads. CATIA's surface-based features
include splitting a solid with a surface, adding thickness to a surface, closing an open set of
surfaces, and trimming a solid with a surface. Transformation features allow translating,
rotating, scaling, and mirroring solid bodies. Rectangular, circular, and user-defined feature
patterns can also be created.
47
MassachusettsInstitute of Technology - Computer Aided Design Laboratory
The feature based design approach and storing information feature-by-feature inside its
database helps extract corresponding information easily. These extracted part/feature based
pieces of information is then useful in the proposed automated assembly methodology.
5.2 CATIA Plugin
A plugin has been developed for CATIA@ to extract various parameters and properties of
part (that can be helpful for automating assembly as discussed in Chapter 4). The main
program is provided in appendix B. The plugin has been developed in Rapid Application
Development Environment (RADE) using Tool Configuration Key V5R6_T06.
A brief description of the implementation is described below. The program is a main (batch)
program that takes two arguments -
the path to an existing Part document and path of
modified Part document.
STEP 1: Checking Arguments and Opening the Session
int main(intiArgc,
char *IArv)
.
r2p.odd*.ATP0t
dcment
/ return code
int rc .0;
// Checks number of ar uments
/I if( 3!=iArgc.
// retur 1;
// Loads input *.CA
char *pSessionName
CATSessin Wp$ession
d make It
=
Sampe ession"
0;
This first section checks that the number of arguments passed on the command line, and
then opens a session to read the document in memory.
48
MassachusettsInstitute of Technology - Computer Aided Design Laboratory
STEP 2: Reading the Part Document From Disk and Preparing it For Parsing
CATDocument *pDoq = 0;
if( SUCCEEDED(CATou..entSe
CATinII *0OCAsilt
0;OA
if(SUCEEDO~~oc>QuryterfAcefTInI$t, (vo4d*)p~oQ~MinR))
/f et*the par tueof tedument
CATif.tQLOt
*p4peonQiner
(OATIflonAinr)bsit>G.GAoT~otiPr"C~~t~oIne"..');.
.pboc~sft>eIes0()
The 'CATDocumentServices::Open'
static method opens the document from its disk
location and returns it as a CA TDocument. Documents are internally divided in containers.
The analogy is as follows: if a part document is an apartment, then the containers are its
rooms. Each container contains a specific set of data that represent some aspect of the
overall document.
The first container found in a document is a high-level container that gives access to all
other, more specialized containers, in the document. It may contain other data as well.
Along with the apartment metaphor, it is similar to the lobby in which one enters first, and
which provides access to the other rooms in the apartment. This container is called the root
container.
In a Part document, the root container is the container that contains the feature-based
definition of the part being modeled. Such structure is explored through a dedicated
interface, CA TIPrtContainer,which is implemented by the root container. By giving this
interface name as an argument to GetRootContainer, the root container is returned cast to
this interface type, which makes it ready for being parsed as a Part.
49
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
STEP 3: Getting Access to The Object That Represents the Part
if( pSpecContainer)
{
CATIPrtPart~yer epPart (VpSpeontainr-G.t~*tQ)
CATISpeObject yar spoart~peQ (Rpspiceo
-G$at());
pspr-*Rceesb()
The CATIPrtContaineris used to access the object representing the part through the partparsing interface, CA TIPrtPart.After this a navigation facet, namely the CA TIPartRequest
interface is used onto the part object in order to discover its structure.
STEP 4: Getting Part Properties
//Getting Object
Mpete
sPr
mnaSSDfcXp-
CAISpleCUDbjctyar
>GetMechanicatPart perties b1ect();
*roperies
CATMehiPaPr
if(
>QueryinterfcetATIMechcrtes,
-
SUCEE~raspo
&p
prpt))
{K
Owt <<*SuVsM
Vd
QOut <<"V lm~^)<<poete->e~
//Getting Center Of M-sGrty
d.ubie
m( <<ed.
oXcoordQ~
....................................................
cut <"etr
, <<oZcoord << ")<<ent
fMass (XYZ)
<<" ,
b
< ocoord
In this step various part properties like, mass, volume, density and center of mass are
extracted from the object. Other properties of interest, like moment of inertia, surface area
etc. can also be extracted using similar process.
50
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
STEP 5: Getting Part Parameters
I/Getting parameters
CATiPamPblfryar pnrPblisher= spPAt;
CATllstVaICAIISpecObject var lipt;
parmPuhfisher-> GetAfIChikke~n (CATI~kPatCssNam.0,lt);
,....CATICkarImhVBr
OATpC
... 7...... j
pr
parm;......
.
.
tpQOb
speo0b;
coWuA< parm -> Name()
"<
parr --> Show() << endI;
This step extracts various parameters based information of the part, like the total parameters
that defines the part. The number of parameters that define the part reveals the complexity
of the part and its features. A list of part parameter is obtained that contains the description
of the feature, like dimension value and its type, part constraints (like parallel, perpendicular
etc.), the location of the feature within the part, etc.
STEP 6: Changing Part Parameters and Saving the File in Desired Format
This step describes the procedure to change part parameters and saving it as a different file
in a desired format.
//Chngn
"arMet
cout <
al s
cou <"td
q*eShw).CastoCharPtr() << and
w"' i =00,3;
d
pArm --> Vaiuat,(NewValue);
000tNewai
TCharPtr() << end
ut << 1>0how()
pPat~pec -> Up~date); //update part
//
Saves the part document
CATocumentServIces:SaveAs(*ppoc iArgv[2],
$Jgs")
51
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
STEP 7: Saving the File, Closing the Session and Exiting
// Saves the part document
CATDocumentServices::SaveAs(*pDoc, iArgv[2l, igs");
/ Deletes all docwments in session
DeleteSesson(pessionName);
The last section of the program closes the document and exit from the session.
5.3 Examples and Discussion of Obtained Information
This section illustrates the use of above plugin to extract information from parts designed in
CATIA@. The parts are the peg, cone and base described in Chapter 3. In this example, the
emphasis has been put on geometrical, feature and dimension based information only, and
hence the parameters extracted can be used only for the "Dimension Driven CAD
Assembly, "Geometry Driven CAD Assembly" and "Feature Driven CAD Assembly".
The list of parameters obtained for the peg and the cone is shown below ( Figure 21).
Total Number of Parameters : 17
(6)PartI\PartBody\Pad. l\Sketch. \circle\radius 35mm
(2)Partl\PartBody\Pad.2\Activity true
(3)Partl\PartBody\Pad.\FirstLimit\PrismLimitType Dimension
(4)Partl\PartBody\Pad.\FirstLimit\Length 10mm
(5)Partl\PartBody\Pad.\SecondLimit\PrismLimitType Dimension
(6)PartI\PartBody\Pad.I\SecondLimit\Length Omm
(7)Partl\PartBody\Pad.I\SymRel\Activity false
(8)Partl\PartBody\Pad.2\Sketch.2\circle\radius 25mm
(9)Partl\PartBody\Pad.2\Activity true
(I 0)Part I\PartBody\Pad.2\FirstLimit\PrismLimitType Dimension
(I I)Partl\PartBody\Pad.2\FirstLimit\Length 40mm
(12)Part I\PartBody\Pad.2\SecondLimit\PrismLimitType Dimension
(13)Part I\PartBody\Pad.2\SecondLimit\Length Omm
(14)Partl\PartBody\Pad.2\SymRel\Activity false
(I 5)Part I\Mechanical Property\Volume 1.17e-004m3
(I 6)Part I\Mechanical Property\Mass 0.2kg
(1 7)PartI\Mechanical Property\WetArea 0.016m2
Figure 21: Extracting various parameters and properties of the peg (shown top right)
52
MassachusettsInstitute of Technology - Computer Aided Design Laboratory
Total Number of Parameters : 18
(1)Part2\PartBody\Sketch.1\Line. 1 10mm
(2)Part2\PartBody\Sketch. 1\Parallelism.3\mode CstAttrModeConstrained
(3)Part2\PartBody\Sketch. 1\Parallelism.3\Activity true
(4)Part2\PartBody\Sketch. 1\Line.2 20mm
(5)Part2\PartBody\Sketch. 1\Coincidence.4\mode CstAttrModeConstrained
(6)Part2\PartBody\Sketch. I\Coincidence.4\Activity true
(7)Part2\PartBody\Sketch.1\Line.3 22.3607mm
(8)Part2\PartBody\Sketch. 1\Parallelism.5\mode CstAttrModeConstrained
(9)Part2\PartBody\Sketch. 1\Parallelism.5\Activity true
(10)Part2\PartBody\Shaft. 1\Activity true
(11)Part2\PartBody\Shaft. 1\FirstAngle 360deg
(12)Part2\PartBody\Shaft. 1\SecondAngle Odeg
(13)Part2\PartBody\Sketch. 1\Parallelism.3\mode CstAttrModeConstrained
(14)Part2\PartBody\Sketch. 1\Parallelism.3\Activity true
(1 5)Part2\PartBody\Sketch. 1\Coincidence.4\mode CstAttrModeConstrained
(16)Part2\PartBody\Sketch. 1\Coincidence.4\Activity true
(1 7)Part2\PartBody\Sketch. 1\Parallelism.5\mode CstAttrModeConstrained
(1 8)Part2\PartBody\Sketch. I\Parallelism.5\Activity true
Figure 22: Extracting various parameters and properties of the cone (shown top right)
Likewise, the list of parameters obtained for the base part is shown below. Since the number
of parameters obtained is quite large, only the relevant information is shown in Figure 23.
53
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
-
- I
Total number of parameters: 46
(l)Part3\PartBody\Pad. l\sketch. l\rectangle\first length 150mm
(2)Part3\PartBody\Pad. 1\sketch. I\rectangle\second length 75mmU
(6)Part3\PartBody\Pad. I\Activity true
(7)Part3\PartBody\Pad.l\FirstLimit\PrismLimitType Dimension
(8)Part3\PartBody\Pad.l\FirstLimit\Length 100mm
(22)Part3\PartBody\Pad.2\Sketch.2\circle\radius 25mm
(23)Part3\PartBody\Pocket. l\Activity true
(24)Part3\PartBody\Pocket. I\FirstLimit\PrismLimitType Dimension
(25)Part3\PartBody\Pocket. l\FirstLimit\Depth 50mm
(26)Part3\PartBody\Pocket. I\SecondLimit\PrismLimitType Dimension
(3 l)Part3\PartBody\Sketch. I\Line. 1 10mm
(32)Part3\PartBody\Sketch.l \Parallelism.3\mode CstAttrModeConstrained
(33)Part3\PartBody\Sketch.1 \Parallelism.3\Activity true
(34)Part3\PartBody\Sketch.l\Line.2 20mm
(35)Part3\PartBody\Sketch. I\Coincidence.4\mode CstAttrModeConstrained
(36)Part3\PartBody\Sketch.1\Coincidence.4\Activity true
(37)Part3\PartBody\Sketch.1\Line.3 22.3607mm
(38)Part3\PartBody\Groove. I\Activity true
(39)Part3\PartBody\Groove.l\FirstAngle 360deg
(40)Part3\PartBody\Groove.l\SecondAngle Odeg
Figure 23: Extracting various parameters and properties of the cone (shown top right)
As can be seen from the examples (Figures 21, 22 and 23) various geometric, feature and
dimension related information can be extracted using the CATIA@ plugin. For example
consider the base part in Figure 23. The major geometrical, feature and dimension-based
pieces of information obtained are that: the base part is a rectangular pad with rectangular
dimension as 150x75 mm and the height of the pad is 100 mm. In addition, the information
obtained is that it has a pocket and groove feature. The dimension of pocket feature (which
is circular hole) and the groove feature (which is conical hole) is also obtained.
54
MassachusettsInstitute of Technology - Computer Aided DesignLaboratory
-
-WEA.Swffim
- 21"
6
Application of Automated Assembly in DOME
6.1 Introduction to DOME and Overview of its Architecture
DOME stands for Distributed Object-based Modeling Environment. The DOME concept
was originally developed in the MIT CADlab [37]. DOME is a modeling infrastructure that
is intended to create a global community, or marketplace, of individuals offering access to
simulation services related to their own specialties, much as the WWW has enabled
worldwide access to information ([37], [38] and [39]). Within the envisioned simulation
marketplace, it will be possible to quickly create and holistically assess technology systems
from many viewpoints, allowing individuals to design and understand complex technology
systems.
From architecture point of view, DOME is a distributed application. The core functionality
runs on DOME servers, which are much like web servers, except that they provide serviceobjects that can be linked to underlying application models [37]. With the help of specially
written plugins, these servers control all of the data flow, and interface with third-party
applications. Access to the servers is obtained by starting a DOME client, and logging into a
server. Clients can be run from any standard web browser, such as Netscape or Internet
Explorer. Servers are capable of having multiple clients, each with the opportunity to view
the same information simultaneously. DOME servers can also communicate with another
DOME servers, and thereby exchange information remotely across a network.
Enterprise-wide assembly modeling is a challenge for many engineering companies. Next
section describes a virtual modeling paradigm implemented in DOME that allows assembly
of solid model parts defined in multiple CAD system.
55
MassachusettsInstitute of Technology - Computer Aided Design Laboratory
6.2 Assembly Work in DOME
Liteplo [40] describes the following five-step approach for Heterogeneous CAD (H-CAD)
assembly, where for a certain part or subassembly Original Equipment Manufacturer (OEM)
engineer wants to assemble supplier's solid model part made in different CAD system.
Step 1: Selection of supplier
The engineer finds the most suitable supplier to provide this part. He has built a DOME
model that represents the assembly system for which he is responsible. Included in his CAD
assembly interface is an NF import module to act as a placeholder for this part he needs (see
Figure 24). Similarly Supplier has also published a DOME model corresponding to his part.
Engineer's
CAD model
Engineer's DOME model
Supplier's DOME model
CAD
CAD
Inputs,
=
Outputs,
= Part,
Supplier's View
KEY
Engineer's View
=
Supier's
CDae
Aliases,
=
= Assembly, -0
VRML,@ = Neutral File
= New Link
Figure 24: Step 1: The two participants publish their CAD models and wrap them in DOME
Note that the engineer's CAD assembly is incomplete and his neutral file object contains no
data.
After looking for DOME services of various suppliers, the engineer selects one of the
suppliers that provides the best matching part that he is looking for. Assuming privileges
have been given to him or to a guest account, he can log on that supplier's DOME server.
Step 2: Parametric Control if Supplier's part
Once inside the DOME model, the Engineer has permissions to view the CAD services that
have been published. The supplier provides a VRML module of the part, which the
56
Massachusetts Institute of Technology - Computer Aided Design Laboratory
engineer views to be able to conceptualize the geometry. The engineer can paste aliases of
the dimension modules from the supplier's model into his own model, from whence he can
drive them.
Englie
Enginees DOME model Supliers DOEmoe
moalCAD
CAD
CAD
Engineer's View
= Inputs, 0=
Outputs, 0
= Part,
Supplier's
model
CAD
KEY
Aliases, 0=
= Assembly, -*=
VRML,
= Neutral File
New Link
Figure 25: Step 2: The engineer drives the supplier's CAD model parametrically from DOME
Step 3: Getting NF of the Supplier Model
To fully analyze supplier's part, engineer asks the supplier to provide the CAD modeling
services. The supplier does this by logging into the engineer's DOME server, copying the
engineer's NF import module, pasting it into his own DOME model and defining a relation
that sets the engineer's alias equal to the NF module from the supplier's model (see Figure
26). This can be done regardless of the CAD systems used by the two participants. At this
point, each party can log out of the other's DOME server.
57
MassachusettsInstitute of Technology - ComputerAided DesignLaboratory
Engineer's
CAD model
Engineer's DOME model
Supplier's DOME model
CAD
CAD
Supplier's View
KEY:
=
Inputs,
Outputs,
= Part,
Supplier's
CAD model
= VRML,
= Aliases,
= Assembly, -0
= Neutral File
= New Link
Figure 26: Step 3: The supplier drives the engineer's neutral file service by linking it to his
own
The engineer's neutral file object now points to a valid file.
Step 3: Recording assembly steps for incorporating new part into assembly
The engineer now has all the tools he needs to build and analyze his full assembly system.
The working environment shifts back to his CAD system briefly, where he first has to
import the neutral file into his CAD assembly using his CAD system's postprocessor. This
file exists locally due to the remote file transfer property of the NF module.
Next he has to record a sequence of events that assemble the part (or subassembly) into the
desired position in the assembly.
This process of recording is handled differently by
differing CAD packages. This set of commands should add the imported part to the desired
assembly and locate it properly with constraints. Any subsequent assembly tasks should be
recorded as well.
Here it is important to note that recording a robust procedure file is non-trivial. It should be
able to correctly perform its functions given a varying input part. CAD commands driven
by icons or menus are not affected by this variance, but commands driven by screen picks
may not repeat the proper selection reliably. This is highly dependent upon the recording
capabilities of the CAD system. Some (I-DEAS@, for example), record view settings, so
58
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
that picking features with mouse clicks may be appropriate if a consistent view is acquired.
One method to bypass this problem is to refer to features by name. This method is quite
robust given dimensional changes of the originating geometry, but may not be appropriate
when features are added or removed from the original part. Another issue is the visibility of
objects such as centerlines and origins, which, when switched off, will not be available for
selection. Several iterations may be needed to record an adequate procedure file.
Once this procedure file is created, it is published in a manner similar to the various
interface modules, and the I-DEAS@ container module can be reloaded.
Engineer's
CAD m odel
Engineer's DOME model-
Supplier's DOME model
CAD
C AD
Key:
Engineer's View
= Inputs, 0=
Supplier's
CAD model
Outputs,
= Part,
= Aliases,
Assembly, -*
= VRML,
= Neutral File
= New Link
Figure 27: Step 4: The engineer incorporates the new part into his assembly
Step 5: Rebuilding assembly if some of the parameters are changed
Now, a number of things happen when the engineer decides to change an input to the
supplier's model (see the numbered arrows in Figure 27). First, the parameters are changed
(1) and the new information is relayed through DOME to the supplier's model (2). The
CAD model rebuilds (3), sends DOME new output values, and regenerates the neutral file
(4). This causes the NF module on the engineer's DOME server to update (5), the part to be
imported again into the CAD assembly (6), the assembly configuration to be recreated (7),
and new assembly property values to be calculated (8). This is accomplished interactively
over the web with only neutral files passing from the supplier to the OEM engineer. The
supplier's detailed proprietary CAD models remains protected within his organization.
59
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
Engineer
Engineer's
CAD model
The Intentl
CAD
2
CAD
=-03 moemml- =nwn asSE.ihnkadr
).Th SEPstnar
dfieswhtar
clld Aplcaio
pe i Apedi
a: file omag-ite atemptls toincoroaey by mrvge
a jst deemnswaifrmtnapatuarcssfSTPcfrmntos
igmre
(As.Ecr P
phsia
xpand
isl
Potc2s
mplinitio ofel
ordiferntfiedsofuse
Ter
candein.
ae mnydiferntA~
incluienos
t
entrlfe cfyhe, Te
of wittn
asodc acoss
chharagcteritc
functionaly
[41].
desin mnfaue, Sandrdpor thAh63
STEPhuss
file
=(ISML, ha deeoeN weutral
Oranztons fo Sadiation
forma, stndardnumbr,
model
upplier's
CAD model
by Sdrg
rsu DOME model
Ea
specificationsguge)
ofPout
Ito
alle EXRSS
oe
aa
nta
SE)an
einerall tof itsestandrds.ut thse
Inscusets
t etenrtabe Autmt saple SE
and ou VRL CNpteieuesgtLraty
edabein AliaTehsg
hanIntut,
deneto e befoth
Tpe inAernixC). rgnThn STEP standardizefin
(Iwha
fie
elped Apiton Protocls"
(Ao)rmachA nadetemnes what3 inorationpailar clwnaso STEP-conforantr itos
can doeie Theres arie fmay -diferentPs
(whichty
ssachgetts stiuteda. o Tenolog
rtenrordifeamre
fieled
exCmterided esoidd (Lab
ft
of us.thes
IGEratoryth
popular Application Protocol is AP 203, "configuration controlled three-dimensional
designs of mechanical parts and assemblies" [42].
This covers most of the geometric
entities created in CAD.
A main advantage of STEP over other formats is that it is an international standard. This
has clear implications on the fast growing global economy. It also allows an older version
of a compatible CAD system to open models created in later versions. This feature can be
important when partnering departments or organizations use differing CAD versions.
STEP aims to have applications in multiple fields, and is capable of storing product data
regarding design intent.
Peng et al, at National Tsing Hua University in Taiwan have developed a STEP-based
object-oriented database management system [43]. The system is based on the belief that
STEP accurately represents product data from many points of view, including design,
manufacturing, finance, and others.
Currently developers are also working on a new STEP modularization approach to include
all the module of Product Data Management (PDM), which includes product identification,
product structure, engineering change, document and file management validation properties,
properties and shape representation. This shows that as STEP files evolve, it will contain
more information about the solid model parts.
6.4 IGES
Initial Graphics Exchange Specification (IGES) is a neutral file format originated by the
National Institute of Standards and Technology (NIST) in 1979 and adopted by the
American National Standards Institute (ANSI) to facilitate transfer of geometric data. The
first published standard (IGES 1.0) was released in 1981 [44]. Improvements have been
steadily throughout the years, and the most recent version is IGES 5.3, which was released
in 1996. Version 6.0 is currently being developed. IGES files usually have an .igs or .iges
61
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
extension. In practice, IGES has become the standard in CAD/CAM data exchange in the
U.S. [45].
IGES information is based around different types of entities. The main classes of entities
are geometric, annotation, and structural. Geometric entities range from points and lines to
complex 3D surfaces. Other entities include dimensions, annotations, views and properties
(IGES 5.x, 2000). Native CAD files do not necessarily store information as these same
types of entities, and thus must map these entities to their own types.
IGES files are divided into five sections of data: Start, Global, Directory Entry, Parameter
Data, and Terminate. There is also an optional Flag section to denote whether it is in binary
or compressed ASCII form. (See IGES/IGS file of the peg in Appendix D) The Start
section provides descriptive comments about the file. This information is ignored by the
postprocessor and serves mainly as a human-readable description.
The Global section
describes the preprocessor and provides all the high-level parameters needed for the
postprocessor to be able to properly deal with the file. The Directory Entry and Parameter
Data sections contain all the information about the specific entities present in the file. The
Terminate section is a single line at the end of the file that records how many lines long each
section is.
There are both advantages and disadvantages to using IGES files. Some sources complain
about their lack of robustness, but this has become much less of a problem over time. Coles,
et al claims that surfaces are not handled well [46], and yet others advocate that IGES is the
most accepted format for transferring nurbs and other complex surfaces [45]. Thus, one can
infer that the relative usefulness of IGES is not absolute. IGES versions change every few
years, which makes it harder to keep the interoperability multidirectional.
Furthermore,
IGES supports the creation of variations and additions to IGES entities for use with a given
system, known as "flavors". In a best-case scenario, processors will allow you to choose the
flavor you wish to use. However, the use of flavors can often cause problems, as it may
define entities not supported by the postprocessor of the importing system. For this reason,
62
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
flavored IGES files are not truly neutral.
Finally, as IGES is a US standard only,
international businesses may find its use inappropriate.
In the five-step assembly procedure described in section 6.2, step 4 involves creation of the
procedure file for assembling parts. The next section explores the possibility of automation
(partial or full) of the assembly process.
6.5 Proposed Methodology
Even though neutral files are not parametrically editable (and hence, they are known as dead
geometry), they have certain pieces of information that are helpful for assembly automation:
1.
Dimensions: Nature of Dimension as well as value of dimension
2. Topology of the Solid
3. Most of the Geometry related information of the solid
Apart from the above-mentioned pieces of information, neutral files also contain
'annotation'. This is certainly very useful. For example in the engineer-supplier example
presented in section 6.1, supplier can publish information, useful for the automation of
assembly, like: functionality of the part, key features of the part etc.
With the above pieces of information, the assembly automation methodology described in
chapter 5 can be applied to assemble the parts. One of the key differences between general
assembly automation as a part of CAD package and in DOME environment is that in the
former, the solid model is accessible while in the later the automation has to be done with
the help of neutral files.
As seen from Appendix C, STEP file contains some explicit information about geometry,
features and dimension of the part. A relevant excerpt of the step file is shown below.
63
MassachusettsInstitute of Technology - Computer Aided Design Laboratory
#66=ORIENTED EDGE('Oriented Edge',*,#45,.F.);
#67=ORIENTEDEDGE('Oriented Edge',*,*,#52,.T);
#178=FACE_BOUND(Tace Bound',#175,.T.);
#31=CLOSED_SHELL('Closed Shell',(#71,#88,#98,#138,#155,#165,#179));
#35=AXIS2_PLACEMENT 3D('CylinderAzis2P3D',#32,#33,#34);
#48=AXIS2_PLACEMENT
3D('ircle Axis2P3D,#46,#47,$);
#62=AXIS2jPLACEMENT)3D('Circe Axis2P3D',#60,#61,$);
#14=PLANEANGLEMEASURE WITH.UNIT(PLANE ANGLE MEASURE(0.074532925199),#13)
#39=VECTOR('Line Direction',38,1);
#55=VECTOR('Line Direction,#54,1)
#106=VECTOR('Line Direction,#105,1.)
#22=MANIFOLDSOLIDBREP('Manifold Brep',#31);
#49=CIRCLE('generated circle',#48,25.);
#63=CIRCLE('generated circle',#62,25.);
#75=CIRCLE('generated circle',#74,25.);
#36=CYLINDRICALfSURFACE('generated cylinder,#35,25.);
#103=CYLINDRICALSURFACE('generated cylinder',#102,35.);
The STEP file of the peg explicitly contains information like, angle, length of a line;
geometrical information like circle etc. and feature based information like cylindrical
surface etc. On the other hand, IGES file (Appendix D) does not contain such information
explicitly. Hence STEP file shows more promise for assembly automation than IGES file.
Apart from direct part based information, supplier based decision-making can help in
choosing which parts goes into assembly. This is helpful when there are two or more than
64
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
two parts supplied by different suppliers and are equally fit candidate to be put into
assembly at specific places. Assembly engineer in this case either manually choose on part
to be put into the assembly or the information can be fed into the system itself, so that the
system in itself can decide from which supplier to get the part for the assembly.
In the DOME environment, the extent to which assembly automation can take place depends
primarily on following three factors:
(i) Information contained in Neutral Files (NF): As discussed before the data and
information contained in NF is evolving. With this development, more part related
information could be captured in NF without revealing proprietary information of the part.
(ii) Amount of information published by the supplier: the more information published by the
supplier related to part geometry, topology, dimension, functionality etc., the easier it would
be to use the information in implementing automated assembly.
(iii) Level of permission granted by the supplier: If the supplier grants permission to its user
to run customized plugins to extract relevant information, the easier it will be to perform
assembly automation by using the extracted information. If the supply gives specific users
direct access to the solid model then assembly automation in the DOME environment will
be similar to discussion presented for general assembly automation provided the user is
using the same solid modeler as that of the supplier.
65
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
7
Conclusions
7.1 Summary
The proposed methodology is a starting step towards automating the assembly of CAD
parts. Various factors that can help in the assembly of parts have been discussed. These
factors include dimension, topology, geometry, functionality and various features of the
part, its orthographic views, library of parts and associated rules, constraints in assembly
etc. A general framework has been provided in the form of flow chart (Figure 19). The
possible application of this methodology in DOME has been explored. Advantages,
disadvantages and challenges associated with the proposed methodology have also been
discussed.
The proposed framework does not aim at replacing/substituting CAD assembly engineers,
but rather will help to eliminate tedious procedural assembly tasks. The aim is not to ask
questions to the assembly engineer, but rather have system work autonomously through a
decision making process to suggest assembly configurations. In some instances the
assembly designer may be asked to choose one out of some possible options to resolve
ambiguity. In the worst case the assembly designer would be free to choose the currently
available manual CAD assembly operations.
Designers should be given an option of which of the above methodologies to activate. This
will be useful for the case when user knows that a particular methodology will not work in
the assembly under consideration. Or, the assembly engineer may want to activate only one
of the options available in order to do assembly steps by step, or for other reasons.
66
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
The application of automated assembly should give better results for parts which have been
designed using "Design For Assembly"(DFA) [47]. The following items describe a general
DFA method: Reduce part count within assembly, improve the modularity of the assembly
and utilize standard part wherever possible. Since the proposed AAA methodology involves
computation in order to make final decision, reduction in part count will help making faster
decision. The use of standard parts with definitions of standard assembly options will also
help in automatically putting the part in correct location in the assembly.
7.2 Advantages of Automated CAD Assembly
Reducing design iteration time and potentially accelerated time to market. Generally, in the
early phase of product development there is iteration between rough sketches, CAD parts
and CAD assembly. Early phases are widely recognized to be the most influential in the
final product development. Several benefits of automating CAD assembly process are
summarized in this section.
1. Reducing the chances of RSI by eliminating extensive mouse click and keying
operation.
2. Eliminating low-level procedural repetitive tasks helps the CAD assembly
engineer think more on key design and assembly related issues.
3. By concentrating on ideas and design issues, the assembly engineer should feel
more motivated and work with higher creativity. This also enhances his productivity.
4. Files generated by Automated Assembly Algorithm (AAA) can also give valuable
information to decide methods and sequence for real world assembly planning.
5. The type and nature of constraints developed by the algorithm can be sent to an
automated assembly system where the robots will do the operation depending upon
the constraint. For example, in the case of the peg-hole assembly, the robot should
67
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
have final motion as a translation motion along the hole-axis for inserting the peg or
along the peg axis for assembling an object with a hole. Hence, the output of the
AAA can be sent to an Automatic Assembly system involving Robots, whose
manipulator arm motion can be controlled according to the nature of the constraints.
Nevertheless, other issues involved with automatic assembly systems must be
considered, more particularly limitations that are primarily economic in nature, of
implementing the fully automatic assembly systems.
6. DOME assembly applications can be benefit from this approach. Currently,
DOME assembly works on predefined assembly where we make changes that get
propagated. With this algorithm DOME assembly generation too might be
automated.
7.3 Challenges and Limitations
The full automation of CAD assembly is not possible in existing CAD systems. Some open
issues involved are described below.
*
Deformation of parts in assembly, like the snap fit, circlip, spring, orings, bearings etc.
*
How to handle different representations?
Eg: Some representatives of specifying dimension of a right angled cone
are as follows;(h, r), (h, d), (h, 1), (d, 1), (r, 1), (h, a), (r, a), (d, a), (1,a),
(h, 9), (r, 9), (d,9), (1, 9),:
A Right-angled cone and associated parameters that can be used to define the cone are
shown in Figure 29.
68
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
Notation:
r= radius of the base circle
d= diameter of the base circle
1= slant height
h= height of the cone
a= semi-cone angle
O= solid angle
d
h
Total possible ways to represent cone with above 6
variables
6
= ( C2 -{(r,d) and (a,0)}combination)
=15-2
=13 ways
Figure 29: Different ways of defining a cone
So, as revealed by the simple case of the cone, we see that a simple solid entity like a "right
angle cone" can give us 13 different possibilities.
In the case of right circular cylinder, for eg: the (length, angle) pair representation is better
than (length, length) representation, because for the case of assembly, the former
representation will help better in the decision making process than the latter.
User input required to create solid models in existing CAD/CAM systems depends on both
the internal representation scheme used by each system as well as the user interface. It is
crucial to distinguish between the user interface and the internal data representation of a
given CAD/CAM system. The two are quite separate aspects of the systems and can be
linked together by software that is transparent to the user. For example, a system that has a
B-rep (boundary representation) internal data representation may use a CSG (constructive
solid geometry)-oriented user interface; that is, input a solid model by its primitives. Most
systems use the building-block approach (CSG oriented) and sweep operations as the basis
for user interface.
69
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
As discussed before, in the DOME environment, the extent of assembly automation depends
on the information content and robustness of neutral files. In addition, it depends on the
amount of information published by the supplier and the level of permission granted to
access the solid model.
7.4 Future Work
This research work has identified factors that could be useful for assembly automation and a
framework has been proposed based on these factors. The future work in this area is to
deploy implementation of the above-discussed factors and exploring other helpful ways for
the assembly automation. The application of Neural Networks to the CAD assembly process
can be explored. The usefulness of Neural Network comes from the learning experience of
the system. For example, if the assembly engineer has resolved certain conflict in one of the
examples, neural networks will apply the learning in similar cases to further ease the
assembly of parts.
It is important to note that the future work (either theoretical development or
implementation) is highly dependent on the way CAD systems evolve. This is because the
amount and nature of information obtained depends upon the design methodology
implemented in the CAD package and also on the organization of its database. In the DOME
framework, it is important to explore further with the help of implementation the usefulness
of neutral file for automating assembly.
70
MassachusettsInstitute of Technology - Computer Aided Design Laboratory
Appendix A
Evolution of CAD Database
Prot
dMoD1P1
ahap Ex:: tra cin
2 0
Solid Mtodel
Surtface Ext r a di 0n
del
Surfface MV1
3-D Edg Extrti4on 4
VAfireframne Model
Fd -
19601
Source: http://www.me.mtu.edu/~mfyoung/me105web/wireframe/wireframep4.htm
71
Massachusetts Institute of Technology - ComputerAided Design Laboratory
Appendix B
Program for Extracting Part Information in CATIA®
// Type
/ Inputs
//
Batch program
Path to an existing *.CATPart file
Path to modified file (new file)
File read from first path is written to second one with modifications
// Outputs
//
o Document loading in session
/ Illustrates
//
o Access to part within document and extracts various parameters of the part
//
and also its properties
o Modifies part parameters
//
//
o "save as" of the modified document
// compiler includes
#include <iostream.h>
// System includes
#include "CATLib.h"
// ObjectModelerBase includes
#include "CATDocument.h"
#include "CATSessionServices.h"
#include "CATDocumentServices.h"
#include "CATInit.h"
#include "CATIContainer.h"
#include "CATI Descendants.h"
// ObjectSpecsModeler includes
#include "CATISpecObject.h"
#include "CATLISTVCATISpecObject.h"
#include "CATLISTVCATISpecAttribute.h"
// NewTopologicalObjects includes
#include "CATBody.h"
#include "CATGeometry.h"
#include "CATCell.h"
// MechanicalModeler includes
#include "CATIPrtContainer.h"
#include "CATlMfGeometryAccess.h"
72
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
#include
#include
#include
#include
"CATIBRepAccess.h"
"CATMfBRepDecode.h"
"CATIPrtPart.h"
"CATIMechanicalPartProperties.h"
// MechanicalModelerUl Framework
#include "CATPrtUpdateCom.h"
// needed to update the feature according to the user's update settings
// Visualization includes
#include "CATIVisProperties.h"
#include "CATVisPropertiesValues.h"
// Literal Features
#include "CATICkeParm.h"
#include "CATIParmPublisher.h"
#include "CATIPad.h"
#include "CATIPrism.h"
#include "CATISpecAttrAccess.h"
//For Moments of Intertia
#include "CATCollec.h"
* Executes the program: reads the argument,
* and writes the output part document.
opens the input part document,
*/
int main(int iArgc,
char **iArgv)
// iArgv[1]: path to an existing *.CATPart document
// iArgv[2]: path to a new, modified *.CATPart document
{
I/ return code
int rc = 0;
// Checks number of arguments
// if( 3!=iArgc)
// return 1;
// Loads input *.CATPart and make it ready
char *pSessionName = "Sample session";
73
MassachusettsInstitute of Technology - Computer Aided Design Laboratory
CATSession *pSession = 0;
if( SUCCEEDED(CreateSession(pSessionName, pSession)))
{
CATDocument *pDoc = 0;
if( SUCCEEDED(CATDocumentServices::Open(iArgv[1], pDoc)))
{
CATInit *pDocAsInit = 0;
if( SUCCEEDED(pDoc->Querylnterface(I IDCATInit, (void**)&pDocAsInit)))
{
// Gets the part feature of the document
CATIPrtContainer *pSpecContainer =
(CATI PrtContainer*)pDocAsInit->GetRootContainer("CATIPrtContainer");
pDocAslnit->Release(;
if( pSpecContainer)
{
CATIPrtPartvar spPart ( pSpecContainer->GetParto);
CATISpecObject var spPartSpec ( pSpecContainer->GetParto);
pSpecContainer->Releaseo;
//Getting Object Properties
CATISpecObjectvar
mass propI
=spPart
>GetMechanicalPartPropertiesObject(;
CATIMechanicalPartProperties *pproperties =0;
if( SUCCEEDED(massprop_l->Querylnterface(IID_CATIMechanicalPartProperties,
(void**)&pproperties)))
{
cout << "Success"<<endl;
cout <<"Mass of the part[kg]=" << pproperties->GetMass() <<endl;
cout <<"Volume[mA3]=" <<pproperties->GetVolumeo <<endl;
cout <<"Density[kg/mA3]=" <<pproperties->GetDensity() <<endl;
/Getting Center Of Mass/Gravity
double oXcoord=0.;
double oYcoord=0.;
double oZcoord=0.;
pproperties->GetGravityCenterCoord(oXcoord,oYcoord,oZcoord);
cout <<"Center Of Mass (X,Y,Z) = (" << oXcoord <<" , " << oYcoord<<" ,"
<<oZcoord << ")"<<endl;
}
else
cout <<"Failure"<<endl;
//Getting parameters
CATIParmPublisher-var parmPublisher
=
spPart;
74
MassachusettsInstitute of Technology - Computer A ided Design Laboratory
CATListValCATISpecObject var list;
parmPublisher -> GetAllChildren (CATICkeParm::ClassNameo,Iist);
cout << "Total Number of Parameters: " << list.Size() << endl;
CATICkeParmvar parm;
CATISpecObject var specObj;
for
{
(nt k = 1; k <= list.Sizeo; k++)
specObj = list[k];
parm = specObj;
cout << parm -> Nameo << ""<< parm -> Showo << endl;
}
//Changing Parameters
cout << "Old value is " ;
cout << parm->Show(.CastToCharPtr() << endl;
double NewValue = 0.03;
parm -> Valuate(NewValue);
cout << "New value is ";
cout << parm->Show(.CastToCharPtr() << endl;
spPartSpec -> Updateo; // update part
}
else
{
cerr << "spec container not found" << endl;
rc = 1;
}
}
else
{
cerr << "no CATinit on doc" << endl;
rc = 1;
}
// Saves the part document
CATDocumentServices::SaveAs(*pDoc, iArgv[2], "igs");
// Closes the document
CATDocumentServices::Remove(*pDoc);
}
else
{
cerr << "doc not opened" << endl;
rc = 1;
}
// Deletes all documents in session
DeleteSession(pSessionName);
75
MassachusettsInstitute of Technology - Computer Aided Design Laboratory
}
else
{
cerr << "can not open session" << endl;
rc = 1;
}
if( rc
{
cerr << "an error occured" << endl;
}
return rc;
}
76
Massachusetts Institute of Technology - Computer Aided Design Laboratory
Appendix C
STEP (AP214) of the Peg
ISO-10303-21;
HEADER;
FILEDESCRIPTION(('CATIA V5 STEP Exchange'),'2; 1');
FILENAME('D:\\Prabhat\\Research\\thesis examples\\peg.stp','2002-0609T06:24:33+00:00',('none'),('none'),'CATIA Version 5 Release 6 (IN-7)','CATIA V5 STEP AP214',' none');
FILESCHEMA(('AUTOMOTIVEDESIGN
{ 1 2 10303 214 0 1 11 }'));
ENDSEC;
DATA;
#66=ORIENTEDEDGE('Oriented Edge',*,*,#45,.F.) ;
#67=ORIENTEDEDGE('Oriented Edge',*,*,#52,.T.);
#68=ORIENTEDEDGE('Oriented Edge',*,*,#59,.T.);
#69=ORIENTEDEDGE('Oriented Edge',*,*,#64,.F.);
#83=ORIENTEDEDGE('Oriented Edge',*,*,#59,.F.);
#84=ORIENTEDEDGE('Oriented Edge',*,*,#76,.T.);
#85=ORIENTEDEDGE('Oriented Edge',*,*,#45,.T.);
#86=ORIENTEDEDGE('Oriented Edge',*,*,#81,.F.);
#95=ORIENTEDEDGE('Oriented Edge',*,*,#64,.T.);
#96=ORIENTEDEDGE('Oriented Edge',*,*,#81,.T.);
#1 33=ORIENTEDEDGE('Oriented Edge',*,*,#1 12,.F.);
#134=ORIENTEDEDGE('Oriented Edge',*,*,#1 19,.T.);
#135=ORIENTEDEDGE('Oriented Edge',*,*,#126,.T.) ;
#136=ORIENTEDEDGE('Oriented Edge',*,*,#13 1,.F.) ;
#1 50=ORIENTEDEDGE('Oriented Edge',*,*,#126,.F.);
#15 1=ORIENTEDEDGE('Oriented Edge',*,*,#143,.T.);
#1 52=ORIENTEDEDGE('Oriented Edge',*,*,# 1 12,.T.) ;
#1 53=ORIENTEDEDGE('Oriented Edge',*,*,# 1 48,.F.) ;
#1 62=ORIENTEDEDGE('Oriented Edge',*,*,#143,.F.) ;
#163=ORIENTEDEDGE('Oriented Edge',*,*,#1 19,.F.) ;
#1 72=ORIENTEDEDGE('Oriented Edge',*,*,#13 1,.T.) ;
77
MassachusettsInstitute of Technology - Computer Aided Design Laboratory
#173=ORIENTEDEDGE('Oriented Edge',*,*,#1 48,.T.);
#176=ORIENTEDEDGE('Oriented Edge',*,*,#52,.F.) ;
#177=ORIENTEDEDGE('Oriented Edge',*,*,#76,.F.) ;
#1 78=FACEBOUND('Face Bound',# 1 75,.T.) ;
#3 1=CLOSEDSHELL('Closed Shell',(#7 1,#88,#98,#138,#155,#165,#179));
#19=AX1S2_PLACEMENT_3D(' ',#18,$,$);
#35=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#32,#33,#34);
#48=AXS2_PLACEMENT_3D('Circle Axis2P3D',#46,#47,$);
#62=AXS2_PLACEMENT_3D('Circle Axis2P3D',#60,#61,$);
#74=AXS2_PLACEMENT_3D('Circle Axis2P3D',#72,#73,$);
#79=AXS2_PLACEMENT_3D('Circle Axis2P3D',#77,#78,$);
#92=AXS2_PLACEMENT_3D('Plane Axis2P3D',#89,#90,#91);
# 102=AXIS2_PLACEMENT_3D(Cylinder Axis2P3D',#99,#100,#101);
#1 15=AXIS2_PLACEMENT_3D('Circle Axis2P3D',# 113,# 114,$) ;
#129=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#127,#128,$);
#141=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#139,#140,$);
#146=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#144,#145,$);
#159=AXS2_PLACEMENT_3D('Plane Axis2P3D',#156,#157,#158);
#169=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#166,#167,#168);
#1 8=CARTESIANPOINT('',(0.,0.,0.)) ;
#32=CARTESIANPOINT('Axis2P3D Location',(0.,0.,30.));
#37=CARTESIANPOINT('Line Origine',(25.,0.,30.));
#41=CARTESIANPOINT(Cartesian Point',(25.,-6.12303176911 E-0 15,10.)) ;
#43=CARTESIANPOINT('Cartesian Point',(25.,0.,50.)) ;
#46=CARTESIANPOINT('Axis2P3D Location',(0.,0.,10.));
#50=CARTESIANPOINT('Cartesian Point',(-25.,3.06151588456E-0 15,10.)) ;
#53=CARTESIANPOINT('Line Origine',(-25.,3.06151588456E-015,30.));
#57=CARTESIANPOINT('Cartesian Point',(-25.,3.06151588456E-0 15,50.)) ;
#60=CARTESIANPOINT('Axis2P3D Location',(0.,0.,50.));
#72=CARTESIANPOINT('Axis2P3D Location',(0.,0.,10.));
#77=CARTESIANPOINT('Axis2P3D Location',(0.,0.,50.));
#89=CARTESIANPOINT('Axis2P3D Location',(0.,0.,50.));
#99=CARTESIANPOINT('Axis2P3D Location',(0.,0.,5.));
#104=CARTESIANPOINT(Line Origine',(35.,0.,5.));
#108=CARTESIANPOINT('Cartesian Point',(35.,0.,0.));
#1 10=CARTESIAN_POINT(Cartesian Point',(35.,0.,10.));
#113=CARTESIANPOINT('Axis2P3D Location',(0.,0.,0.));
78
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
# 117=CARTESIANPOINT('Cartesian Point',(-35.,4.28612223838E-0 15,0.));
# 120=CARTESIANPOINT('Line Origine',(-3 5.,4.28612223838E-015,5.)) ;
#124=CARTESIANPOINT('Cartesian Point',(-35.,4.28612223838E-015,10.));
#127=CARTESIANPOINT('Axis2P3D Location',(0.,0.,10.));
#139=CARTESIANPOINT('Axis2P3D Location',(0.,0.,0.));
#144=CARTESIANPOINT('Axis2P3D Location',(0.,0.,10.));
#156=CARTESIANPOINT('Axis2P3D Location',(0.,0.,0.));
#166=CARTESIANPOINT('Axis2P3D Location',(0.,0.,10.));
#33=DIRECTION('Axis2P3D Direction',(0.,0.,1.));
#34=DIRECTION('Axis2P3D XDirection',(1.,0.,0.));
#38=DIRECTION('Vector Direction',(0.,0., 1.)) ;
#47=DIRECTION('Axis2P3D Direction',(0.,0.,1.));
#54=DIRECTION('Vector Direction',(0.,0., 1.)) ;
#61=DIRECTION('Axis2P3D Direction',(0.,0.,1.));
#73=DIRECTION('Axis2P3D Direction',(0.,0.,1.));
#78=DIRECTION('Axis2P3D Direction',(0.,0.,1.));
#90=DIRECTION('Axis2P3D Direction',(0.,0.,1.));
#9 1=DIRECTION(Axis2P3D XDirection',(1.,0.,0.));
#100=DIRECTION('Axis2P3D Direction',(0.,0.,1.));
#101=DIRECTION('Axis2P3D XDirection',(1.,0.,0.));
# 105=DIRECTION('Vector Direction',(0.,0., 1.)) ;
# 1 14=DIRECTION('Axis2P3D Direction',(0.,0., 1.)) ;
#12 1=DIRECTION('Vector Direction',(0.,0., 1.)) ;
#128=DIRECTION(Axis2P3D Direction',(0.,0., 1.)) ;
# 140=DIRECTION(Axis2P3D Direction',(0.,0., 1.)) ;
#145=DIRECTION('Axis2P3D Direction',(0.,0.,1.)) ;
#157=DIRECTION('Axis2P3D Direction',(0.,0.,1.));
# 1 58=DIRECTION('Axis2P3D XDirection',(1.,0.,0.));
#167=DIRECTION(Axis2P3D Direction',(0.,0.,1.)) ;
#168=DIRECTION('Axis2P3D XDirection',(1.,0.,0.));
# 1=APPLICATIONCONTEXT('automotive design');
#10=PRODUCTDEFINITION('','',#6,#3);
#6=PRODUCTDEFINITIONFORMATION('Part',' ',#5);
#5=PRODUCT('Part','','',(#2));
#2=PRODUCTCONTEXT('',#,'mechanical');
#3=PRODUCTDEFINITIONCONTEXT('part definition',#1,'');
#I1=PRODUCTDEFINITIONSHAPE('
',,#10) ;
79
MassachusettsInstitute of Technology - Computer Aided Design Laboratory
#l82=MECHANICAL_DESIGNGEOMETRICPRESENTATIONREPRESENTATION('',(#30),#
17);
#20=SHAPEREPRESENTATION('',(# 19),# 17);
#8=PRODUCTRELATEDPRODUCTCATEGORY('part',$,(#5));
#7=PRODUCTCATEGORY('part','specification');
#30=STYLED ITEM(' ',(#29),#22) ;
#29=PRESENTATIONSTYLEASSIGNMENT((#28));
#28=SURFACESTYLEUSAGE(.BOTH.,#27);
#27=SURFACESIDESTYLE('',(#26));
#26=SURFACESTYLEFILLAREA(#25);
#25=FILLAREASTYLE(' ',(#24));
#24=FILLAREASTYLECOLOUR('',#23);
#39=VECTOR('Line Direction',#38, 1.) ;
#55=VECTOR('Line Direction',#54, 1.) ;
# 106=VECTOR('Line Direction',# 105,1.) ;
# 122=VECTOR('Line Direction',#12 1,1.) ;
#16=UNCERTAINTYMEASUREWITH_UNIT(LENGTH_MEASURE(0.001),#12,'TOLCRV','CONFUS
ED CURVE UNCERTAINTY');
#181=SHAPEREPRESENTATIONRELATIONSHIP('','',#20,#180);
#4=APPLICATIONPROTOCOLDEFINITION('Draft International Standard','automotivedesign',1997,#l)
#14=PLANEANGLEMEASUREWITH_UNIT(PLANEANGLEMEASURE(0.0174532925199),#13);
#9=PRODUCTCATEGORYRELATIONSHIP('','',#7,#8);
#21=SHAPEDEFINITIONREPRESENTATION(# 11,#20);
#22=MANIFOLDSOLID BREP('Manifold Brep',#3 1);
#49=CIRCLE('generated circle',#48,25.) ;
#63=CIRCLE('generated circle',#62,25.) ;
#75=CIRCLE('generated circle',#74,25.) ;
#80=CIRCLE('generated circle',#79,25.) ;
#1 16=CIRCLE('generated circle',# 115,35.) ;
#130=CIRCLE('generated circle',# 129,35.) ;
# 142=CIRCLE('generated circle',#141,35.) ;
# 147=CIRCLE('generated circle',#146,35.) ;
#36=CYLINDRICALSURFACE('generated cylinder',#35,25.);
# 103=CYLINDRICALSURFACE('generated cylinder',#102,35.);
#40=LINE('Line',#37,#39) ;
#56=LINE('Line',#53,#55) ;
# 107=LINE('Line',# 104,# 106);
80
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
#123=LINE('Line',#120,#122);
#93=PLANE(Plane',#92) ;
#1 60=PLANE(P1ane',# 159) ;
#1 70=PLANE('Plane',# 169) ;
#45=EDGECURVE('Edge Curve',#42,#44,#40,.T.);
#52=EDGECURVE('Edge Curve',#42,#51,#49,.T.);
#59=EDGECURVE('Edge Curve',#5 1,#58,#56,.T.) ;
#64=EDGECURVE('Edge Curve',#44,#58,#63,.T.);
#76=EDGECURVE('Edge Curve',#5 1,#42,#75,.T.) ;
#81=EDGECURVE(Edge Curve',#58,#44,#80,.T.);
#1 12=EDGECURVE('Edge Curve',#109,# 111,#107,.T.) ;
#1 19=EDGECURVE('Edge Curve',#109,# 118,#1 16,.T.) ;
#126=EDGECURVE('Edge Curve',# 118,#125,#123,.T.) ;
#13 1=EDGECURVE('Edge Curve',#I 1 1,#125,#130,.T.) ;
#143=EDGECURVE('Edge Curve',# 118,#109,#142,.T.) ;
#148=EDGECURVE('Edge Curve',#125,# 111,#147,.T.) ;
#65=EDGELOOP(Oriented Loop',(#66,#67,#68,#69));
#82=EDGELOOP(Oriented Loop',(#83,#84,#85,#86));
#94=EDGELOOP('Oriented Loop',(#95,#96));
#132=EDGELOOP('Oriented Loop',(#133,#134,#135,#136));
# 149=EDGELOOP('Oriented Loop',(#150,# 151,#152,#153));
#16 1=EDGELOOP('Oriented Loop',(# 162,# 163)) ;
#17 1=EDGELOOP('Oriented Loop',(#172,# 173)) ;
#175=EDGELOOP('Oriented Loop',(#176,# 177)) ;
#70=FACEOUTERBOUND('Face Bound',#65,.T.);
#87=FACEOUTERBOUND('Face Bound',#82,.T.);
#97=FACEOUTERBOUND('Face Bound',#94,.T.);
#137=FACEOUTERBOUND('Face Bound',#132,.T.) ;
#154=FACEOUTERBOUND('Face Bound',#149,.T.) ;
#164=FACEOUTERBOUND('Face Bound',#161,.T.) ;
#174=FACEOUTERBOUND('Face Bound',#171,.T.) ;
#42=VERTEXPOINT('Vertex Point',#41) ;
#44=VERTEXPOINT('Vertex Point',#43) ;
#5 1=VERTEXPOINT('Vertex Point',#50) ;
#58=VERTEXPOINT('Vertex Point',#57);
#1 09=VERTEXPOINT('Vertex Point',#108);
#11 1=VERTEXPOINT('Vertex Point',#1 10);
81
MassachusettsInstitute of Technology - Computer Aided Design Laboratory
#118=VERTEXPOINT(Vertex Point',# 117) ;
# 125=VERTEXPOINT('Vertex Point',#124) ;
#23=COLOURRGB('Coulour',0.823529411765,0.823529411765,1.);
#180=ADVANCEDBREPSHAPEREPRESENTATION('NONE',(#22),#17);
#71=ADVANCEDFACE('Advanced Face',(#70),#36,.T.);
#88=ADVANCEDFACE('Advanced Face',(#87),#36,.T.);
#98=ADVANCEDFACE('Advanced Face',(#97),#93,.T.);
#13 8=ADVANCEDFACE('Advanced Face',(# 137),#103,.T.) ;
#1 55=ADVANCEDFACE('Advanced Face',(# 154),#103,.T.) ;
#165=ADVANCEDFACE('Advanced Face',(# 164),#160,.F.) ;
#179=ADVANCEDFACE('Advanced Face',(# 174,#178),# 170,.T.);
#12=(LENGTHUNIToNAMEDUNIT(*)SIUNIT(.MILLI.,.METRE.));
#13=(NAMEDUNIT(*)PLANEANGLEUNIToSIUNIT($,.RADIAN.));
#15=(NAMEDUNIT(*)SIUNIT($,.STERADIAN.)SOLIDANGLEUNITo);
#17=(GEOMETRICREPRESENTATIONCONTEXT(3)GLOBALUNCERTAINTYASSIGNEDCONT
EXT((#16))GLOBALUNITASSIGNEDCONTEXT((#12,#13,#15))REPRESENTATIONCONTEXT('
ENDSEC;
END-ISO-10303-21;
82
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
','
Appendix D
IGES of the Peg
S
START RECORD GO HERE.
I
1 H,, 1 H;,20HCNEXT - IGES PRODUCT,43HD:\Prabhat\Research\thesisexamples\pG
eg.igs,43HIBM CATIA IGES - CATIA Version 5 Release 6 ,26HCATIA Version 5G
314
1
0
0
0
314
0
0
1
0
110
2
0
0
0
110
0
0
1
0
110
3
0
0
0
110
0
0
1
0
120
4
0
0
0
120
0
-1
1
0
124
5
0
0
0
124
0
0
1
0
100
6
0
0
0
100
0
0
1
0
110
7
0
0
0
110
0
0
1
0
124
8
0
0
0
124
0
0
2
0
100
10
0
0
0
100
0
0
1
0
110
11
0
0
0
110
0
0
1
0
102
12
0
0
0
102
0
0
1
0
142
13
0
0
0
142
0
0
1
0
144
14
0
0
0
144
0
-1
1
0
0
000000201D
0
OD
0
0
0
0
0
0
0
0
0
9
0
0
0
OD
0
15
0
0
0
0
0
0
0
0
19
21
23
24
000000001D
Face.
17
22
001020001D
0D
15
20
001020001D
OD
13
18
001020001D
0D
11
16
001020001D
0D
9
14
001020201D
0
7
12
001020001D
OD
5
10
001020001D
OD
3
8
001020201D
OD
1
6
001020001D
OD
4
4
001020001D
OD
G
2
001020001D
OD
2
3
Release 6 ,32,75,6,75,15,,1.0,2,2HMM,1000,1.0,15H20020609.113347,0.001,G
10000.0,,17HDASSAULT SYSTEMES, 11,0,15H20020609.113347,;
I
3D
25
26
83
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
110
15
0
0
0
110
0
0
1
0
110
16
0
0
0
110
0
0
1
0
120
17
0
0
0
120
0
1
0
124
18
0
0
124
0
2
0
100
20
0
0
100
0
0
1
0
124
21
0
0
0
124
0
0
2
0
100
23
0
0
0
100
0
1
0
102
24
0
0
102
0
0
1
0
142
25
0
0
0
142
0
0
1
0
144
26
0
0
0
144
0
1
0
108
27
0
0
108
0
1
0
102
28
0
0
0
102
0
0
1
0
142
29
0
0
0
142
0
0
1
0
144
30
0
0
0
144
0
1
0
110
31
0
0
0
110
0
0
1
0
110
32
0
0
0
110
0
0
1
0
120
33
0
0
0
120
0
1
0
124
34
0
0
0
124
0
0
1
0
100
35
0
0
0
-1
0
0
0
0
0
-1
0
-1
-1
-1
0
0
001020001D
OD
0
0
0
0
0
0
33
0
0
0
37
0
0
0
0
0
0
0
0
2D
0
0
0
0
0
0
0
0
4D
0
0
0
0
0
0
0
61
59
60
001020201D
0D
57
58
001020001D
OD
55
56
001020001D
OD
53
54
001020001D
OD
51
52
000000001D
Face.
49
50
001020001D
0D
47
48
001020001D
OD
45
46
001020001D
OD
43
44
000000001D
Face.
41
42
001020001D
0D
39
40
001020001D
0D
37
38
001020001D
0D
35
36
001020201D
0D
33
34
001020001D
OD
31
32
001020201D
0D
29
30
001020001D
OD
0
28
001020001D
OD
27
61
62
001020001D
63
84
Massachusetts Institute of Technology - ComputerA ided Design Laboratory
100
0
0
1
0
110
36
0
0
0
110
0
0
1
0
124
37
0
0
0
124
0
0
2
0
100
39
0
0
0
100
0
0
1
0
110
40
0
0
0
110
0
0
1
0
102
41
0
0
0
102
0
0
1
0
142
42
0
0
0
142
0
0
1
0
144
43
0
0
0
144
0
1
0
110
44
0
0
0
110
0
0
1
0
110
45
0
0
0
110
0
0
1
0
120
46
0
0
0
120
0
1
0
124
47
0
0
124
0
2
0
100
49
0
0
0
100
0
0
1
0
124
50
0
0
0
124
0
0
1
0
100
51
0
0
0
100
0
0
1
0
102
52
0
0
0
102
0
0
1
0
142
53
0
0
0
142
0
0
1
0
144
54
0
0
0
144
0
1
0
108
55
0
0
108
0
1
0
-1
-1
0
0
-1
0
-1
OD
0
0
001020001D
OD
0
0
67
0
0
0
0
0
0
0
0
0
0
7D
0
0
0
0
0
0
0
85
0
0
0
89
0
0
0
0
0
0
0
0
6D
97
98
001020001D
OD
95
96
000000001D
Face.
93
94
001020001D
OD
91
92
001020001D
OD
89
90
001020001D
OD
87
88
001020201D
OD
85
86
001020001D
OD
83
84
001020201D
OD
81
82
001020001D
OD
79
80
001020001D
OD
77
78
001020001D
OD
75
76
000000001D
Face.
73
74
001020001D
OD
71
72
001020001D
OD
69
70
001020001D
OD
67
68
001020001D
OD
65
66
001020201D
OD
0
64
99
100
85
MassachusettsInstitute of Technology - Computer Aided Design Laboratory
102
56
102
0
142
0
0
0
0
1
0
57
0
0
0
142
0
0
1
0
144
58
0
0
0
144
0
1
0
108
59
0
0
108
0
1
0
102
60
0
0
102
0
1
0
142
61
0
0
142
0
1
0
102
62
0
0
102
0
1
0
142
63
0
0
142
0
1
0
144
64
0
0
0
144
0
-1
1
0
-1
0
-1
0
0
0
0
0
0
0
0
0
0
102
OD
0
0
0
104
000000001D
Face.
0
0
5D
0
001020001D
0
001020001D
0
001020001D
0
001020001D
0
113
114
115
001020001D
116
OD
0
111
112
OD
0
109
110
OD
0
107
108
OD
0
105
106
OD
0
103
001020001D
OD
0
101
001020001D
000000001D
Face.
ID
117
118
314,82.35294118,82.35294118,100.0,5HColor,0,0;
IP
110,0.0,0.0,30.0,0.0,0.0,3 1.0,0,0;
3P
2
5P
110,25.0,0.0,10.0,25.0,0.0,50.0,0,0;
120,3,5,0.0,6.283185307,0,0;
1
7P
3
4
124,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,50.0,0,0;
9P
100,0.0,0.0,0.0,25.0,0.0,-25.0,3.061515885E-015,0,0;
5
1IP
6
1 10,-25.0,3.061515885E-01 5,50.0,-25.0,3.061515885E-015,10.0,0,0;
124,-1.0,1.224606354E-01 6,0.0,0.0,1.224606354E-0 16,1.0,0.0,0.0,
0.0,0.0,-1.0,10.0,0,0;
15P
13P
15P
17P
10
110,25.0,-6.12303 1769E-015,10.0,25.0,0.0,50.0,0,0;
19P
11
21P
12
142,0,7,0,21,0,0,0;
23P
13
144,7,1,0,23,0,0;
25P
14
110,0.0,0.0,30.0,0.0,0.0,31.0,0,0;
27P
15
1 10,-25.0,3.061515885E-01 5,10.0,-25.0,3.061515885E-015,50.0,0,0;
120,27,29,0.0,6.283185307,0,0;
31P
33P
29P
16
17
124,-i.0,-1.224606354E-016,0.0,0.0,1.2246063 54E-01 6,-1.0,0.0,
0.0,0.0,0.0,1.0,50.0,0,0;
8
9
100,0.0,0.0,0.0,25.0,0.0,-25.0,-3.061515885E-0 15,0,0;
102,4,11,13,17,19,0,0;
7
33P
18
19
86
MassachusettsInstitute of Technology - Computer Aided Design Laboratory
100,0.0,0.0,0.0,25.0,0.0,-25.0,-3.061515885E-01
5,0,0;
35P
124,1.0,-2.449212708E-0 16,0.0,0.0,-2.449212708E-016,-1.0,0.0,
0.0,0.0,0.0,-1.0,10.0,0,0;
37P
37P
39P
102,4,35,19,39,13,0,0;
41P
43P
25
144,31,1,0,43,0,0;
45P
26
108,0.0,0.0,1.0,50.0,0,0.0,0.0,50.0,1.0,0,0;
47P
49P
23
24
142,0,31,0,41,0,0,0;
27
28
142,0,47,0,49,0,0,0;
51P
144,47,1,0,51,0,0;
53P
29
30
55P
110,0.0,0.0,5.0,0.0,0.0,6.0,0,0;
31
110,35.0,0.0,0.0,35.0,0.0,10.0,0,0;
57P
32
120,55,57,0.0,6.283185307,0,0;
59P
33
61P
124,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,10.0,0,0;
100,0.0,0.0,0.0,35.0,0.0,-35.0,4.286122238E-015,0,0;
34
63P
35
65P
110,-35.0,4.286122238E-015,10.0,-35.0,4.286122238E-015,0.0,0,0;
67P
124,-1.0,1.224606354E-016,0.0,0.0,1.224606354E-016,1.0,0.0,0.0,
0.0,0.0,-1.0,0.0,0,0;
67P
69P
71P
110,35.0,0.0,0.0,35.0,0.0,10.0,0,0;
73P
75P
42
144,59,1,0,75,0,0;
77P
43
79P
39
40
44
110,-35.0,4.286122238E-015,0.0,-35.0,4.286122238E-015,10.0,0,0;
83P
120,79,81,0.0,6.283185307,0,0;
85P
85P
87P
124,1.0,0.0,0.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,-1.0,0.0,0,0;
89P
100,0.0,0.0,0.0,35.0,0.0,-35.0,-4.286122238E-015,0,0;
91P
93P
95P
53
144,83,1,0,95,0,0;
97P
54
102,2,69,91,0,0;
99P
101P
47
49
50
51
52
142,0,83,0,93,0,0,0;
108,0.0,0.0,1.0,0.0,0,0.0,0.0,0.0,1.0,0,0;
45
48
100,0.0,0.0,0.0,35.0,0.0,-35.0,-4.286122238E-015,0,0;
102,4,87,71,91,65,0,0;
81P
46
124,-1.0,-1.224606354E-016,0.0,0.0,1.224606354E-016,-1.0,0.0,
0.0,0.0,0.0,1.0,10.0,0,0;
37
41
142,0,59,0,73,0,0,0;
110,0.0,0.0,5.0,0.0,0.0,6.0,0,0;
36
38
100,0.0,0.0,0.0,35.0,0.0,-35.0,4.286122238E-015,0,0;
102,4,63,65,69,71,0,0;
21
22
100,0.0,0.0,0.0,25.0,0.0,-25.0,3.061515885E-015,0,0;
102,2,35,11,0,0;
20
55
56
87
MassachusettsInstitute of Technology - Computer Aided Design Laboratory
142,0,99,0,101,0,0,0;
103P
57
144,99,1,0,103,0,0;
105P
58
108,0.0,0.0,1.0,10.0,0,0.0,0.0,10.0,1.0,0,0;
102,2,87,63,0,0;
109P
142,0,107,0,109,0,0,0;
113P
142,0,107,0,113,0,0,0;
IG
4D
118P
61
62
115P
144,107,1,1,111,115,0,0;
64
59
60
HIP
102,2,39,17,0,0;
S
107P
63
117P
T
64
I
88
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
References:
[1] Mathieu L., Marguet B., Integrated Design Method to Improve Producibility Based on
Product Key Characteristics and Assembly Sequences, Annals of CIRP, 2001
[2] Ulrich K. T. and Eppinger S. D., Product Design and Development, The McGraw-Hill
Companies, 2000 (ISBN 0-07-116993-8)
[3] The Development of 3D CAD
http://homepage.dtn.ntl.com/terry.rawkins/acad/solids/History.html
[4] Chapter 15, Computer-Aided Engineering, CRC Handbook of Mechanical Engineering,
Boca Raton, CRC Press, 1998
[5] http://www.engr.unl.edu/ee/eeshop.rsi.html
[6] http:// web.mit.edu/atic/rsi/mitrsi.html
[7] The nature of Creativity Cambridge University Press, Edited by Robert J. Sternberg
[8] Nurturing and Developing Creativity: The emergence of a Discipline, edited by: Isaksen,
S. G., Murdock, M. C., Firestien, R. L., Treffinger D. J., Ablex Publishing Corporation,
Norwood, New Jersey
[9] Negroponte, N., On Being Creative with Computer Aided Design, International
Federation for Information Processing, pp 695-704, 1977
[10] CAD-Forum, http://www.cad-forum.com/links/technology.asp
[11] Langner T., Springer J., Beitz W. and Luczak H., Frictions and frustrations in creativeinformatory work with computer aided design - CAD-systems -, Advances in Human
Factors/Ergonomics, 18A, Human Aspects in Computing, Elsevier, 1991
[12] Sugato Chakrabarty and Jan Wolter, A structure-oriented approach to assembly
sequence planning, IEEE transaction on Robotics and automation, Vol. 13, No. 1, pp14-29,
1997
[13] Luiz S Homen de Mello, A correct and complete algorithm for the generation of
mechanical assembly sequence, IEEE Transaction on Robotics and Automation, Vol. 7, No.
2, pp 228-240, 1991
[14] H Weule, T Friedmann, Computer-aided product analysis in assembly planning, Annals
of CIRP, Vol. 40, No. 1, pp 1-4, 1989
[15] P. Gu and X.Yan, CAD-directed automatic assembly sequence planning, International
Journal of Production Research, Vol. 33, No.11 ,pp 3069-3100, 1995
89
MassachusettsInstitute of Technology - Computer Aided Design Laboratory
[16] G Dini, M Santochi, Automated sequencing and subassembly direction in assembly
planning, Annals of the CIRP, Vol. 41, No. 1, pp 1-4, 1992
[17] Mantripragada, R. and Whitney D. E., The Datum Flow Chain, Research in
Engineering Design, Vol. 10, pp 150-165, 1998
[18] Whitney D. E., Mantripragada R., Adams J. D., Rhee S. J., Designing Assemblies,
Research in Engineering Design, Vol. 11, pp 229-253, 1991
[19] Grupen R., Henderson T. C. and Hansen C., CAD-Based 3-D Object Recognition,
IEEE, pp 168-172, 1989
[20] Gadh R., Liu Shang-Sheng, Determination of Interacting Features as Applied to
Feature-Bease-Design, ASME, pp 107-115, 1994
[21] Henderson M.R., Extraction of Feature information from 3 D CAD data, PhD Thesis,
Purdue University, 1984
[22] Vandenbrande, J. H., Automatic Recognition of Machinable Features in Solid Models,
PhD Thesis, The University of Rochester, 1990.
[23] Requicha A. A. G. and Han J., Feature Recognition from CAD Models, IEEE
Computer Graphics and Applications, pp 80-94, 1988
[24] M. Idesawa, A system to generate a solid figure from a three view. Bulletin of JSME,
Vol. 16, pp 216-225, 1973
[25] Masuda H.and Numao M., A cell-based approach for generating solid objects from
orthographic projections, Computer Aided Design, Vol. 29, pp 177-187, 1997
[26] Tanaka M., Iwama K., Hosoda A., Watanabe T., Decomposition of a 2D Assembly
Drawing into 3D Part Drawing, Computer-Aided-Design, Vol. 30, pp 37-46, 1998
[27] Nagendra I.V. and Gujar U.G., 3-D Objects from 2-D orthographic views - A Survey.
Computers & Graphics, 129(1), pp 111-114, 1988
[28] The Math Works Inc., "MATLAB", Massachusetts, 1998
[29] Mohan C. K., Ozcan E., Shape Recognition using Genetic Algorithms, IEEE, pp 411416, 1996
[30] Cai J., Liu Zhi-Qiang, Hidden Markov Models with Spectral Features for 2D Shape
Recognition, IEEE, pp 1454-1858, 2001
90
MassachusettsInstitute of Technology - ComputerAided Design Laboratory
[31] Seibert M., and Waxman A. M., Learning and Recognizing 3D Objects from Multiple
views in a Neural System, Neural Networks for Perception, Vol. 1, pp 426-444, 1992
[32] Chin R. T., The Cho-Huak, Two Dimensional CAD-Based Object Recognition, IEEE,
pp 382-384, 1998
[33] Gursoz L., Sudhakar A., Hjalmarsson H., Automated Model Building for Moldability
Analysis, ASME, pp 71-85, 1994
[34] Kramer, G. A.., Using degrees of freedom analysis to solve geometric constraint
systems, Proc. Sympo. Solid Modeling Foundations and CAD/CAM Applications ACM
SIGGRAPH, pp 371-378, 1991
[35] Park H. S., Menzel E., Tonshoff H. K., A knowledge-based system for Automated
Assembly Planning, Annals of CIRP, Vol. 41, pp 19-24, 1992
[36] Dietz S., Bley H., Knowledge of Selecting Assembly Cell Components and its
Distributed to CAD and an Expert System for Processing, Annals of the CIRP, Vol. 43, pp
5-8, 1994
[37] David R. Wallace, Shaun Abrahamson, Nicola Senin, Peter Sferro, Integrated Design in
a Service Marketplace, Computer-aidedDesign, Vol. 32, No. 2, pp. 97-107, 2000
[38] Nicola Senin, David R. Wallace, Nicholas Borland, Object-based Simulation in a
Service Marketplace, accepted for publication, ASME Journalof MechanicalDesign, 2000.
[39] Francis Pahng, Seokhoon Bae, David Wallace, A web-based collaborative design
modeling environment, Proceedings of the Seventh IEEE International Workshops on
Enabling Technologies, Infrastructure for Collaborative Enterprises Conference, Stanford
University, pp 161-167, 1998.
[40] Liteplo, Williams, Virtual Assembly Models in Distributed Heterogeneous CAD
Environments, MIT Masters Thesis, 2000.
[41] UK Council for Electronic Business, http://www.ukceb.org/step, 2001
[42] National Research Council - IMTI, (Strategis Industry Canada Online),
http://strategis.ic.gc.ca/SSG/ad03597e.html-http://strategis.ic.gc.ca/SSG/ad03604e.html,
1999
[43] Peng T, Trappey, A J C, A step toward STEP-compatible engineering data
management: the data models of product structure and engineering changes, Robotics and
Computer-Integrated Manufacturing, Vol. 14, pp 89-109, 1998
[44] Magoon G I, Pfrommer C, Ironing Out IGES, Computer Aided Engineering, Vol. 8,
No. 1, pp 52-54, 1989
91
MassachusettsInstitute of Technology - Computer Aided Design Laboratory
[45] Diehl A, Transferring files from CAD to CAM, Computer Aided Engineering, Vol. 15,
No. 1, pp 50-52, 1996
[46] Coles K, Hou C A, Enhancement of IGES Preprocessor for Data Exchange, American
Society of Mechanical Engineers paper, pp 1-5, 1991
[47] Boothroyd G., Alting L., Design for Assembly and Disassembly, Annals of CIRP, Vol.
41, 625-638, 1992
92
MassachusettsInstitute of Technology - Computer Aided Design Laboratory