3D MAPS: Three-dimensional mechanical assembly planning system

3D MAPS: Three-dimensional mechanical assembly planning system

Journal of Manufacturing Systems Volume 12/No. 6 3D MAPS: Three-Dimensional Mechanical Assembly Planning System Alan C. Lin, National Taiwan Institut...

2MB Sizes 3 Downloads 175 Views

Journal of Manufacturing Systems Volume 12/No. 6

3D MAPS: Three-Dimensional Mechanical Assembly Planning System Alan C. Lin, National Taiwan Institute of Technology, Taipei Tien-Chien Chang, Purdue University, West Lafayette, Indiana

Abstract

becomes important. Apart from integrating product design and assembly, there are certain inherent advantages in achieving automation of assembly planning: (1) standardization of assembly plans, (2) improvement of product quality and consistency, (3) reduction of lead time, and (4) saving of manual planning costs. The current industrial trend of dwindling numbers of expert assembly planners also propels assembly planning toward automation. The activity of assembly planning is closely related to product design and production systems. Figure I illustrates a layered architecture for assembly design and manufacturing in an integrated production environment. L2 A critical issue in the framework is the creation of assembly models. Several representation schemes describe the part mating relationships in assembly, such as the location graph by Eastman, a the liaison diagram by Bourjanlt, 4 the virtual link by Lee and Gossard, 5 the constraint graph by Wolter, 6 the relational model graph by Homem de Mello and Sanderson, 7 the functional relationship graph by Roy and Liu, 8 the part position and part relation network by Heemskerk and Van Luttervelt, 9 and the feature mating operation graph by Huang. ~° Common to these representations is the storing of assembly entities-either parts, subassemblies, or parts with assembly operations--as vertices in various types of graphs. The variety of relationships between assembly entities, such as connectivity, geometry, location, and functionality, are characterized in terms of joining edges between graph vertices. The representation of assemblies can also be carried out in terms of high-level languages, ]113 mating feature based approaches,14"~s or solid m o d e l i n g based approaches.16"19 Another study that attempts to provide a mathematical model to represent linkages, functional volumes, tolerances, and allowances in assembly was also reported by Giacometti and Chang. 2°

3D MAPS, an acronym for 3-Dimensional Mechanical Assembly Planning System, is an automated system that generates detailed assembly plans for threedimensional mechanical products. It has three major modules: description of mechanical assembly design, analysis of assembly models, and generation of assembly plans. Both geometric models and nongeometric properties are considered in describing a 3-D assembly design, and the following information is inferred from the system: mating parts, mating faces, mating directions, collision constraints, and nongeometric sequence constraints. The inferred information is then used in the subsequent planning stage for generating detailed assembly instructions. The planning scheme contains two parts: initial assembly planning that considers solely geometric constraints, and plan modification that further considers nongeometric constraints. In this paper, the algorithms developed to implement the above three modules are discussed. Examples of mechanical assemblies are used to illustrate the information flow of the entire planning system, from the assembly design input through the execution of the developed algorithms to the final assembly plan output. Analysis of the results is also included.

Keywords: Assembly Planning, CAD~CAM, Solid Modeling, Geometric Reasoning

Introduction Assembly has traditionally been an area of high direct labor cost and manufacturing time consumption. Product quality is also affected by assembly plan instructions that direct assembly processes. In conventional mass production, automation of assembly planning was unimportant and impractical because special processes and devices for assembly were designed and only a small number of assembly plans were required to be prepared each year. The current trend of constant product changes requires small-batch flexible manufacturing, and therefore an automated planning system

437

Journal of Manufacturing Systems Volume 12/No. 6

CONCEPTUAL---[

Conceptual

pD~:L)M)~,)^ Dv [ ~ _ ] "~I~S~8"N~" { ~ " l

DETAILED DESIGN

~1

modeling I |

.

.

.

.

.

.

.

.

.

.

~

I

Assemblability analysis [

I "~1

Assembly ~ planning I ' Assembl~-lan evaluation .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

~

Detailed part modeling

L .

.

.

.

.

.

.

i ] I

[ / Machining process planning

I

.

design as input, and the outputs are a set of feasible assembly plans. Little human interaction is involved in the planning procedure, and the generated assembly plans are useful in real-life applications. The 3D MAPS is implemented on a Silicon Graphics Personal IRIS workstation using the C language. The major procedure of the 3D MAPS is outlined in Figure 2 (some acronyms used in the figure, such as assembly precedence diagram (APD), part connectivity graph (PCG), mating direction graph (MDG), and spatial constraint graph (SCG), will be explained later.) The three major modules of the 3D MAPS are: creation of assembly CAD models, analysis of assembly CAD models, and automatic generation of assembly plans. Once geometric and nongeometric assembly data are input, the 3D MAPS performs reasoning on the geometric model and converts the nongeometric model into sequence constraints as well. Assembly sequences go through initial planning, based on a proposed three-layer hierarchical planning strategy, and final planning. Assembly plans are generated, and each plan contains an APD and information concerning the process details for the insertion of each individual part. In the following sections, the background and algorithms developed for the 3D MAPS system are discussed.

I

Preliminary ~ asserablymodeling~

PROCESS PLANNING .

I'

.

.

.

.

.

.

. . . .

Figure 1 Layered Architecture for Assembly Design and Manufacturing

An assembly plan shows the procedure and resources to assemble a product. The most basic information in an assembly plan is the assembly sequence. Because product assembly involves assembly practice heuristics, rules can be formulated based on part stacking properties or part spatial configurations to reason about valid subassemblies or part groups from the entire assembly. Final sequences are found by recursively applying the rules to analyze the parts in the subassemblies or part groups. 9'2°'3° Attempts are also made to determine assembly sequences based on the discovery of disassembly sequences. One approach is to model the part connections in an assembly graph. Graph theory in conjunction with artificial intelligence techniques are then applied to repeatedly cut the assembly graph into pieces of subgraphs, The order of graph dissection is then arranged to represent disassembly sequences. 6'7'3z'32 The disassembly sequence can also be obtained by removing selected parts or subassemblies one by one from the assembly. Once the disassembly sequences are determined, assembly sequences can be obtained by reversing the disassembly sequences, a3-3s Other approaches in assembly sequence determination include the analysis of mechanical fasteners 36 and the manipulation of matrices. 37'3s In this paper, the 3D MAPS, which is devoted to generating assembly instructions for 3-D mechanical products, is presented. The system uses an assembly

Description of Mechanical Assembly Design The emphasis of the 3D MAPS is on generating assembly plans automatically from the assembly model. To meet the needs, an assembly model that contains the geometry of individual parts, specified in their designated locations in the assembly, is sufficient. An attempt is also made to include other nongeometric information on assembly properties. This information makes the assembly planning system more complete.

Description of Geometric Assembly Model Using Solid Models In the 3D MAPS, the geometric model of a 3-D mechanical assembly is created by describing the component parts and the spatial relationships among them. The procedure is first to assign a local coordinate system for each part, and the parameters of CSG (constructive solid geometry) primitives for each part are determined based on its local coordinate system. The position of each part in the assembly is then

438

Journal of Manufacturing Systems Volume 12/No. 6

( a . I ) A s s e m b l y g e o m e t r y design

I cremea se~ of second pla~ A P D s

I

part & assembly

solid models

ctmverskm vec and

~.

1•,• ----.---L

(a.2) Assembly design notes I) P a t 1 3 is a ball-beating used to deliver rotational m o t i o n for part I. 2) B e f o r e part 8 is lighten, the allowance between parts 0 and 2 is c l e a r a n c e fiL It is changed to press fit o n c e part 8 is tighten.

find ct~mplex-cyd¢~

and m~-cycle-vertices frtrm I ~ O

3) M e c h a n i c a l fastencl~ used are a s follows: a. part l I : ,square key used to fasten p a n s I and 5 b. p a n s 12 and 13: two screws used to fasten parts 0 and Ill

create fi~t plan APD

(b) ( b . I ) g e o m e t r i c data (partial list)

DO Ior e'~ch

........ I~*rt 0 ........

(b.2) non-geometric ~ SLOTS

primitive: c y l i n d e r base

find APDs for !

o.o

axis 0.0 radius 2,0

the corOplcx'cyclc

I

o.o

FRAME

Sall-Bea~Ing A s s e m b l y I n f o

10.0

0.0

SLOTS

R o t a t i n g Race: l ~ e r

I t

sto~e the aggregated

corner ex

-4.0 4.0

0.0

ey

o.o 0,o

2.0 o.o

ez

operator:

s t a t i o n e r y Race: outer I~r g e c e M e t i n g Part: i outer Race MatinQ P&~t: 0

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

0.0

-1.0 o.o o.o 3.0

M o ~ t l n g Mmtho~ f o r I n n e r Race: p r e s s - f i t Mounting M e t h o d for O u t e r Race: press-flt FRAME

AII~ce

sLOTS

Affectz~ Joint:

-4.0 4.0

ex

ey

1.o 0.0

o.0 0.0

o.o 9.4

ez 0.0 0.0 operator: union

Figure 2 Major Procedure of the 3D MAPS

0--2

Related Joint: N/A -0.05 0.0

o. o 2. o 0, o ey ez 0.0 0.0 0.1 operator: Subtraction primitive: parelielepiped corner - o . 5 0.0 -3.0

J

Variation

Related Part: 8

~ion

p r i m l t i ~ : parelleleplped co~er ex

P a r t ID: 3 Machine g l u m n t TYPe: bearing Aeamlbl¥ I n f o : B a l l - B e a r i n g A g s a a b l y I n f o

o.o

facets 24 primitive: parallslepiped

aggregate the

data

Std, Machine g l ~ n t

0.o

All,ante All~anoe ~

SLOTS

FRAME SLOTs

rssc~er

0.0

1.5 FRAME SLOTS

Before:

clarence

fit

After: p r e s s f i t Mechanlcal Fastener Part IO: 11 Fastener Type: eqfuare key Festenlng Parts: 1, 5 Mechanical F a, t ener Pert I D : 12

TYPe: s c r ~

Fastening Pares: 0, 10 Mechallical Faltener Part ID: 13 ~astener TYpe: e c r n Fastening P a t t i : o, l o

(c)

defined by relating its local coordinate system to the coordinate frame of its "parent" part (a part is a parent of another part if the second part is located relative to the first part). The absolute position of each part can thus be obtained by a current transformation matrix. 39 After size and position parameters of part primitives are determined with respect to the global coordinate system, solid models of all parts are created. This means that the final geometric assembly model is a collection of part solids in their designated positions. Based on this proposed scheme, the geometry of the tail-stock assembly (one of the example assemblies implemented in the 3D MAPS) shown in Figure 3, view a.1, can be described by the data shown in Figure 3, view b. 1. The data clearly specifies the following two pieces of information: (1) CSG primitives, their parameters, and Boolean operators to create a solid for each individual part and (2) the location of each part in the assembly. The data are used as input to the QTC design system, 4° which is a feature-based modeler.

Figure3

(a) Tail-Stock Assembly (b) Input Data to the 3D MAPS (c) Graphical Display of Assembly Geometry on the IRIS Workstation

A polygonal modeler, TWIN, 4] is used to evaluate the feature model into a B-Rep (boundary representation) model. Faces in the B-Rep are linked back to the feature through pointers. 4a The solid image of the tail-stock and its boundary model are also displayed on the IRIS workstation, as shown in Figure 3, view c.

439

Journal of Manufacturing Systems Volume 12/No. 6

Description of Nongeometric Assembly Model Using Frames

• Mounting Method for Outer Race range: (press-fit, fastener) default: press-fit if-needed: IF receive-message-of-usingfastener THEN pointer to fastener frame ELSE press-fit

A frame-based symbolic representation is used in the 3D MAPS to explicitly represent nongeometric information in a mechanical assembly design. Three types of frames are designed for standardized machine elements, mechanical fasteners, and assembly design intents, respectively.

Frames for Standardized Machine Elements Standardized machine elements are machine members that (1) are commonly used parts in mechanical products, (2) have designated mechanical functions, and (3) have standard designs and specifications. Bearings, gears, springs, power chains, and most kinematic pairs belong to this class. The frame representation for standardized machine elements is intended to capture their assembly-related semantics. The basic frame structure of a machine element is as follows: FRAME: Standard Machine Element SLOTS: • Part ID • Machine Element Type • Assembly Info Pointer The "Machine Element Type" slot records the element's name, such as "bearing." Because there are many types of standardized machine elements and each has its own characteristics with respect to product assemblies, various subframes are designed to represent assembly characteristics of each type of machine element. The frame "Standard Machine Element" and the subframe of assembly characteristics are linked together through the "Assembly Info Pointer" slot. The following example shows the subframe for representing the assembly information of a ball beating: FRAME: Ball Bearing Assembly Info SLOTS: • Rotating Race • Stationary Race • Inner Race Mating Part • Outer Race Mating Part • Mounting Method for Inner Race range: (press-fit, fastener) default: press-fit if-needed: IF receive-message-of-usingfastener THEN pointer to fastener frame ELSE press-fit

For the "Mounting Method for Inner Race" and "Mounting Method for Outer Race" slots, the "if-needed" procedure expresses the following information: 1. The value of the slot is either "press-fit" or ' 'fastener." 2. The default value is press-fit. 3. If the frame receives a message indicating that a fastener is to be used, then the slot points to the frame of the fastener employed. Otherwise the default value is used.

Frames for Mechanical Fasteners The insertion of a fastener in an assembly process normally accompanies the fastening parts. For example, when mounting a pulley into a shaft, a setscrew can be used to prevent angular rotation between the two parts. In the 3D MAPS, the information of interest for a mechanical fastener is its fastening process. The following template shows a frame structure designed for a typical fastener: FRAME: Mechanical Fastener SLOTS: • Part ID • Fastener Type • Fastening Parts • Fastening Process The "Fastener T y p e " slot stores the name of the fastener. The process of inserting a fastener, in general, can be symbolically described. The "Fastening Process" slot is designed to store the process description. The database for fastening processes of various mechanical fasteners can be pre-built because those processes are mostly standardized methods in the assembly operations.

Frames for Assembly Design Intent There are numerous types of assembly design intents, each possessing its own characteristics.

440

Journal of Manufacturing Systems Volume 12/No. 6

Only those design intents that impose direct constraints on assembly sequences or assembly processes are considered in the 3D MAPS. They are illustrated below with their frame representations.

during the assembly process. The value of the slot is a list of parts included in the joint. If the allowance variation is caused by a part, then the part is stored in the "Related Part" slot and an " N / A (not applicable)" value is used as the value for "Related Joint." The "'Allowance Before" and "Allowance After" slots store the allowance variation values.

1. Designer-specified subassembly unit FRAME: Subassembly Unit SLOTS: • Subassembly ID • Subassembly Name • Part IDs • ID of Desired Base Part

4. Mandatory precedence FRAME: Mandatory Precedence SLOTS: • First Part • First Joint • Second Part • Second Joint

This frame represents the information of any subassembly assigned by the designer. Frame attributes include the identification and name of the subassembly, the list of parts contained in the subassembly, and the identification of the subassembly base part.

The frame contains information that the first element (part or joint) needs to be completed before the second element (part or joint) can be completed. If the first element is a part, the value for the "First Joint" slot is N/A. On the other hand, if the first element is a joint, the slot of "First Part" is assigned N/A. The same method holds for the second element. Based on the frame-based representation scheme proposed above, the nongeometric information of the tail-stock assembly can be described as shown in Figure 3, view b.2.

2. Designer-specified joining method FRAME: Joining Methods SLOTS: • Part IDs • Insertion Path • Joining Process • Inspection Process • Fixture Requirements This frame specifies any preferred methods for joining two or more parts. The "Part IDs" slot contains a list of identifications for parts involved in the joining. The designer uses the slot of "Insertion Path" to specify special mating paths (for example, the designer can use an analytical equation to define a nonlinear mating path, and the equation can link with the geometric assembly model.) Other slots are used to specify the symbolic information for the joining process.

Algorithms for Analysis of Assembly Models This stage deals with how the assembly models created previously can be analyzed to acquire sufficient information to automate assembly plan generation. Because both geometric and nongeometric models are created for an assembly, different algorithms are developed to analyze these two models. For analysis of the geometric model, algorithms have been developed to generate the following information: (1) mating faces between mating parts, (2) part connectivity relationships, (3) mating directions for part assembly, and (4) part collision information. For analysis of the nongeometric model, a decision tree is introduced to transform the nongeometric information represented by frames into a set of patterns that represent constraints on the determination of feasible assembly sequences.

3. Variation of joint allowance during assembly process FRAME: Allowance Variation SLOTS: • Affected Joint • Related Part • Related Joint • Allowance Before • Allowance After The assignment of joint allowances in an assembly design affects assembly processes. In the above frame representation, the "Affected Joint" slot refers to the joint in which its allowance varies

Analysis of Geometric Assembly Model Any two parts in a given assembly either mate with each other or do not mate at all. Mating parts

441

Journal of Manufacturing Systems Volume 12/No. 6

have connecting constraints that force the associated mating faces to be fully mated so that the mating parts can be completely assembled. For nonmating parts, there may exist collision constraints among them; the constraints inhibit the parts from being assembled together in certain paths.

3. The area of one projecting face into another is greater than zero. In Figure 4, view b, the above three criteria are satisfied between faces fl 1 and f21, and thus they are planar mating faces. For faces flz and f22, the projection area is negative (notice the existence of allowance), and they are not mating faces.

Generating Mating Information for Mating Parts For each pair of mating parts, the information found includes the following:

Determination of Mating Directions If the assembly design for two mating parts, Pi and Pi, is valid, then there exists at least one direction that can be used to assemble these two parts. The collection of all the feasible mating directions is termed the "mating direction set," which can be represented as follows:

1. Mating faces--which faces of each part are mated together, and 2. Mating directions--what are the available directions to insert a part into another part.

Determination of Mating Faces The assembly boundary model, which is evaluated from the assembly CSG model, is a vast collection of boundary entities. To find mating faces between two parts, each individual face of any of the parts is used as the base face and the mating relationships between the base face and faces from another part are then determined. Two kinds of faces are considered in the 3D MAPS--cylindrical and planar. Two cylindrical faces are mating faces if they fulfill the following criteria:

M0

= {M/~, M~, M~, "", M~, ""}

(1)

where

MD~j = mating direction set to insert part i into partj = kth mating direction (a vector) to insert part i into part j

M~

Notice that the number of directions in a mating direction set can be infinite, and in this case MDij is represented by an equation instead of individual vectors.

1. The radius difference of these two faces is within the range of the allowance, ~ (the allowance specified in the assembly design of the two corresponding parts), 2. The loops to which the end cylindrical edges of these two faces belong are inner loops and outer loops, respectively (note that for a solid model using the B-Rep data structure, an object is an unordered ring of faces, a face is a semi-ordered ring of loops, a loop is a semi-ordered ring of edges, and an edge has two ordered vertices), and 3. The projection area of one face, along its radial direction, into another is greater than zero.

(a)

f2

Part I

Pan 2

~//////////k~ I~ end cylindncal edge off1 (hvzated ' -

end cylindrical - '

in an inner loop) (h) • Assembly

edge off2 (kv~ated in an outer loop)

• Parts

PI

• Constraints (c)

An example of using the above principles to determine cylindrical mating faces can be found in Figure 4, view a. Two planar faces are mating faces if the following criteria are satisfied:

from

Constraints from PI on P~ hldf-space badl'-Sl~CC hall c ctxx~xr, uat in con~inl in "~P~ - - dire~tl~ x direoion constr~nl ~ in v dffectio..._~n



mating faces

P:



Mating direction

• Mating direction of P2

mating

direction hall'-~pace co -x dllrcction

1. The distance between the two faces is within the allowance specification, 2. Normals of the two faces are antiparallel, and

~

hall'-~pac¢ t in z dire~tilm

Figure 4 (a) Cylindrical Mating Faces, (b) Planar Mating Faces, (c) Determination of Mating Directions

442

Journal of Manufacturing Systems V o l u m e 12/No. 6

An isolated part in space has six degrees of freedom. When the part mates with other parts, each mating face of its mating parts imposes direction constraints on the part. To determine feasible mating directions for any two parts, the constraints imposed by all mating faces of these two parts need to be considered. Two cylindrical mating faces constrain the two associated parts to be inserted along the cylindrical axis. For two planar mating faces, each face of one part imposes a half-space constraint on another part. Because the number of mating faces between a pair of mating parts may be greater than one, the mating direction set for the two parts is the final direction after considering all the constraints. This can be represented by the following formula: MDij = C~ n g C~ n * c ... c7-' n M~ n g M~ n g M3i "'" M'~-] n

c7 n n e" M'[

m

= (n k=l

n

(n l=l

(2)

the equations can be found in Table 1. The use of the geometry intersecting operator ngto combine two mating direction sets into a new set is also shown in Appendix 1. Figure 4, view c, illustrates an example of determining the mating direction set for the insertion of a peg (part P2) into a hole in part P1)- In the figure, the peg has five mating faces. Each mating face imposes a half-space constraint, which results in a -y mating direction for the insertion operation. The mating directions derived from Eq. (2) need to be evaluated for their feasibility in a mating task. This is because the mating direction sets in Eq. (2) are determined based on parts in their final assembled status, while the collision of parts during the mating process may prohibit some mating directions. For instance, in Figure 5, two mating directions can be found for inserting part P1 into P2 if the directions are determined solely from the mating faces between these two parts; however, it is obvious that only one direction can be used for the assembly task. To verify the feasibility of a mating

where Table 1 Equations Representing Mating Direction Sets Containing Infinite N u m b e r o f D i r e c t i o n s

C~ = mating direction set based on the kth cylindrical mating face of part i = {uc, -uc}, u~ is the vector of the axis of the cylindrical face M~ = mating direction set based on the lth planar mating face of part i : {did • Uli > 0}, Ui1 is the unit normal vector of the lth mating face of part i n = total number of cylindrical mating faces between parts i and j m = total number of planar mating faces between parts i and j f3e = geometry intersecting operator -

Space region represented

Equations

-

half-line = (p, n)

p:

~

line = (/7, n, -n)

-n ~

n

p : a point on the line n : vector of the line

n

p : a point on the line n : vector of the line

po,p : points on the plane n : plane normal k : vectorof an unbounded line which divides the plane

B

I half-plane =

into two unboundedregions

(po,p,n,k,b)

plane = (po,p , n)

In the above formula, C/k contains a finite number of mating directions and is represented by a set of vectors, while M~i contains an infinite number of mating directions and is represented by an equation (half-space equation). The combination of any two -mating direction sets results in a new mating direction set that may contain a finite or infinite number of directions. Five types of equations represent a mating direction set with an infinite number of mating directions: half-plane, plane segment, plane, half-space, and space segment. Graphical illustration of the types and parameters used to characterize

b : vector perpendicular to both n and k and points to the desired plane region

2

o

J

k~C

~lane segment =

(po,p,n,(k,b),

po,:plane p : points normal on the

b

(k', b 9, "" ") region bounded by two half-~lanes

(po,p,n,k,b) and (po,p,n, K',b')

n

....---pl

half-space :

~

~

(pl, n)

~

~

pl : unbounded

surface w h i c h

divides Cartesian space into two unbounded regions

ofpl and points desired space region

n : normal

space segment =

((pt, n), (pl', n'), • • "1

region bounded by two half-spaces (pl, n) and (pl', n')

• symbols in boldface represent vectors

443

to the

Journal of Manufacturing Systems Volume 12/No. 6

direction, the technique o f collision detection is applied. The principle of deciding whether part P1 collides with part P2 in a direction D is to test if the volume created by moving P~ along D intersects with the solid of P2. The detailed algorithm is shown as follows:

does not collide with P2 in direction D; otherwise P1 collides with P2-

Figure 5 shows an example of using the above algorithm to conclude the collision of P~ with P2 when P~ travels in direction D. In general, if Algorithm 1 is to be used to verify whether direction D is a feasible direction for inserting part P~ into part P2, a disassembly approach is taken, that is, it is tested if P1 collides with P2 when P~ is disassembled from P2 using direction -D.

Algorithm 1--Collision Detection 1. Project all vertices of P~ onto a line l = (a,D), where a is an arbitrary point. Assume the projection range is (Rll, R12), where Rll is the vector of the starting position of the projection and R12 is the vector of the end position. Project P2 onto line l using the same method for P~ and find the projection range (R21, R22). 2. If R22-R n is in the negative direction of D, then P1 does not collide with P2 in direction D; otherwise 3. Find the sweeping distance Dswee p = I R22-R11 1. 4. Formulate a solid volume by sweeping the solid of P~ along direction D for distance D~weep. The swept volume is called collision detection volume. 5. If the intersection of the collision detection volume and the stationary part P2 is nil, then PI

P1

Generating Collision Information for Mating a n d N o n m a t i n g Parts Collision information for an assembly needs to be determined for both mating and nonmating parts. The reasons are as follows:

1. A part in a typical assembly has several mating parts. Due to collision constraints, insertion of the part may be prohibited when the assembly precedence between the part and its mating parts is incorrect. For instance, in Figure 6, part P3 mates with two other parts, P1 and P2- If P2 is mated with P1 before P3 is assembled, then P3 cannot be assembled because it collides with P~ or P2. It is therefore needed to determine the collision information between mating parts before correct assembly sequences can be found. 2. During the part insertion process, the part being inserted may collide in its traveling path with its nonmating parts. The discovery of collision information between nonmating parts is therefore needed to determine feasible sequence precedence for parts in an assembly.

P2

t [step 2] Find a collision detection volume and test intersection between the collision detection volume and the stationary part

(a) Assembly

collision detection volume

(b) Parts

v

t"21 ' ] ' I e~I I 1

0 l]

I P3

;

i

J a ,

R22 Dsweep

v I I

Figure5

Figure 6 Example of Assembly

Example of Collision Detection

444

Journal of Manufacturing Systems Volume 12/No. 6

The procedure for generating collision information is outlined below. Algorithm 2-- Generate Collision Information f o r Assembly Planning For each part, Pi, in the assembly: 1. Find all the mating direction sets associated with Pi. The sets can be represented by S i = {MDil, MDiz, MDi3, • • . , MDit }, where MDij is defined as shown in Eq. (1) and t is the total number of parts mated with Pi. Classify Si into two classes: FMDs and IFMDs, where FMDs contain distinct Vectors for finite mating directions and IFMDs contain distinct equations for infinite mating directions. 2. For each part, Pj, which mates with Pi: a. For each vector D m in FMD: a. 1. If D,,, @ MDij, create a spatial constraint graph (SCG) in the format (Pi, Pj, D,,,). (This SCG format will be explained later.) b. For each equation, E t, in IFMD: b.1. If MDq contains a finite number of directions, create an SCG in the format (Pi, Pi, JEt); otherwise b.2. If MDq contains an infinite number of directions and Et ~: MDij, create an SCG in the format (Pi, Pj, Et). 3. For each part, Pk, which does not mate with P~: a. For each vector D m in FMDs: a. 1. Use Algorithm I to test if Pi collides with Pk when Pi is disassembled using direction -D,,, (Pk is the stationary part). If collision is found, create an SCG in the format (Pi, Pk, D,,,). b. For each equation, E t, in IFMDs: b. 1. Use Algorithm 1 to test if Pi collides with Pk when Pi is to be disassembled using an arbitrary direction in -E t (-E t represents the complement of Et). Because there are infinite directions associated with -Et, the direction selected has to be verified by the user in an interactive manner. If collision is found, create an SCG in the format (Pi, Pt,, Et)-

1. Half-plane: - E i = (17o, p, n, k, -b) if E i = (Po, P, n,k,b) 2. Plane: -E i = E i, E i = (Po, P, n) 3. Plane segment: -E i = (Po, P, n, (k, -b), (k', -b'), • " ") if E~ = (Po, P, n, (k, b), (k', b'), • • -) 4. Half-space: -E i = (pl, -n) if E i = (pl, n) 5. Space segment: -E i = ((pl, -n), (pl', -n'), • • .) if E i = ((pl, n), (pl', n'), • • .)

Representation of Part Mating and Collision Information The information of part mating and collision is stored in a database for the subsequent assembly planning stage. Mating faces are stored in records with pointers to the corresponding faces in the assembly boundary model. Other information derived from the data of mating faces is stored in three graphs: part connectivity graphs (PCGs), mating direction graphs (MDGs), and spatial constraint graphs (SCGs). 42 Among the three graphs, PCGs represent the part connectivity relationship, MDGs show possible mating directions for all mating pairs in the assembly, and each SCG depicts the collision conditions for a part in the assembly. Each SCG follows a general form as shown in Figure 7 and can be represented by (r, B, BD). For a branch denoted by (r, b i, BDi), the following information is represented: 1. r and b i represent parts in the assembly. 2. BD i represents a set of mating directions.

In the above algorithm, steps 2 and 3 are used to generate collision information for mating parts and nonmating parts, respectively. In step 3.b.1, the complements for different types of equations are as follows (refer to Table 1):

Figure 7 General Format of the SCG

445

Journal of Manufacturing Systems Volume 12/No. 6

assembly planning stage. In the 3D MAPS, a set of patterns represent those constraints. The patterns are called sequence constraint patterns and are illustrated in Table 2. Each pattern explicitly shows the precedence relationship between part and part, part and joint, or joint and joint. To convert the frames for the three types of nongeometric information into sequence constraint patterns, a decision tree called a frame-to-pattern conversion tree is built (see Figure 9). Through this conversion tree, sequence constraint patterns derived from tail-stock nongeometric information (Figure 3, view b.2) can be found in Figure 10. The tree can be easily expanded to include conversion of other types of nongeometric information into sequence constraint patterns. This implies that an extensive range of nongeometric information, not only the three types considered in this paper, can be handled by the decision tree.

3. If part b i is inserted prior to part r, then the mating directions in BD i become infeasible for the insertion of part r. Figure 8 shows the three graphs generated from analysis of the geometry of the tail-stock assembly. Standardized mechanical fasteners (parts 11, 12, and 13) are not considered in the MDG because the assembly sequences and processes of fasteners are dependent on their fastening parts; however, they are considered in the MDG and SCG so that (1) the mating directions for inserting the fasteners can be found and (2) the insertion of the fasteners can be ensured free of collision. Analysis of Nongeometrie Assembly Model The information inherent to the nongeometric assembly model imposes constraints on the determination of assembly sequences in the subsequent

(a) Part connectivity graph

(c) Spatial cons~'aint graphs (Each of the following spatial constraint graphs is represented in a format (r, b. BDi) as s h o w n in Figm'e 7) (l)

spatial coosuaint gi'apbs [o¢ iron 0 (0,1, ((0.o,I), ( 1,0,01. H$(0,1,0), HP((0,1,0), (0.0,-I))l) (0, 2, {(o,o,l),(L0,0), HS(0,1,0), HP((0,L0), (0,0,-I))}) (0. 3, {(0,0,I),(1,0.01,(0,-1,01,HS(0,1.0), HP((0,1.0),(0,0,-I))}) (0, 4, ((0,-I.0),HP((0,I.0).(0,0,-I))}) (o. 5, {(o,-f.o), ~ ( o . i , o ) . (o,0,.f))}) (o, 6, {H~(0,1,0), (0,0,-t)D (0, 7, ((0.I,0), (1,0,0), (0,- 1,0), HS(0,1,0). HP((0,1,0), (0,0,-I))]) (o, 8, { HS(0,] ,01, HP((0,1.0), (0,0,-111}) (o, 9, { (0,1,0), (1,0.0), (0,-I,o), HS(0,1,0), HP((0,l,0), (0,0,-1)))) (0, IO, ((0,0,l). (I,0,0). HS(0,1,0)}) (0,11, ((0,-I,01, HP((0,1,0), (0,0.-I))}) (0,12, {(0,0,1), (0,1,0). (0,-1.01, HS(0,1,0L HP((0,1,0), (0,0,-1))}) (0,13, {(0,0,11, (0,1.01, (0,-L0), HS(0,1,0), HP((0.1,0), (0,0,-I))})

(2) spatialL~'lsU'alntf~phs fo¢ part I (1, 2, (0,1,0)), (L 3, (0,-1,0)), (1, 4. (0,-1,0)). (1, 5. (0,-I,0)), (1. lf. (0,-I.0))

(b) M a t i n g direction graph

(3) spatial comtralm ~ for part 2 (2,1, (0,-f,0)),(2, 3, (0,-|,O)),(2, 4, (0,-1,01),(2, 5, (0,-I,01), (2,1 I, (0,-I,011 (4)

spalial co~tralnt graphlt for I~t 3 (3, 4. (0,-1.0)). (3, 5. (0,-1,0)). (3, I1. (0,- 1,01)

(5) spatial co~.slralnt graphs fo¢ ~ 4 (4, I, HS(0,-1,0)). (4, 6, HS(O.-1.0)) (6)

rqo.o

%0

"o g

spanal coml~int graphs fm i~an 5 (5, 0, ((0,1,01, HS(0,L0)}), (5, I, {(0.1,01, HS(O, L0), HS(0,-1,0)}) (5, 2, { (0,l.0), HS(0,1,0)}), (5.3, ((0,1,01, HS(0,1,0)}), (5, 4, { (0,.1,01, H$(0,-I,0)}), (5, 6, ( (0,- 1,01, HS(0,-I,0), HS(0,1,0))) (5, 7, HS(0,1,0)), (5, 8, HS(0,I,0)), (5, 9, HS(0,I,0)), (5, 10, {(0,1,0), HS(0,I,0)}) (5,11, {(0,-1,o), HS(0,.1,0), HS(0,I,0)}), (5,12, {(0,1,o), HS(0,I,0)}) (S, 13, [(0,1,0), HS(0,1,0)})

(7) spatial commalm graphs for pan 6: none (8)

spalial constraint graphs for ~ 7 (7, 0, (0,0,11), (7, 9, (0,0,111, (7, 10, (0,o,111

(9) spat~ constraint gtald~ fo¢ pan 8 (8, 0, (0,0,1)), (8, 9, (0,0.1)), (8, 10, (0,0,1)), (8, 5, H$(0,0,-I)), (8, 6, HS(0,0,-I))

.4

(10) spatial ce~suaim graphs for pan 9 (9, 0, HS(0,0,1)), (9, I, HS(0,0,1)), (9, 2, HS(0,0,1)), (9, 3, HS(0,0,1)), (9, 4, HS(0,0,1)). f9. 5, HS(0,0,1)), (9, 7, (0,0,-111, (9, 8, (0,0,-11), (9. 1O. HS(0.0.I)). (9.11. HS(0.0.1)). (9,12. HS(0.0.I)). (9.13. HS(0,0,1))

O, xg.~ / / (~ x.

~

( 11 ) spalial consc~.mt graphs for pan 10 (10. 5. HP((0.1.0). (0,0.-1111. (10.12. HPff0.1.0). (0.0.-1111. (10, 13. HP((0.1.0), (0.0.-I)))

veo.or follows it is vectm n as shown ia Table 1. * *HP repcesen~ a hslf-plan¢ and tb. . . . vecwrs follow it ate vectors k and b as shown m Table l

(12) spatial ~ 3 s ~ i n t graphs lbr pan 11 01, 4, (0,-I.01)

Figure 8 Three Graphs Derived from Analysis of Tail-Stock Geometric Model

446

Journal of Manufacturing Systems Volume 12/No. 6

Table 2

rtiming rat~ il ir,m~. r,lc¢ SCP#11

List of Sequence Constraint Patterns

bail bearing n~illns rmce is out~ r~e std. mw.'hinc

Type

part--p.,u't

Seqnence-constraint Pattern pattern number

pl >p2 p I >> p2

joint--part

SCP#1

clement

Pattern interpretation

spring

insertionof pl precedes p2

SCP #2

p2 needs to be inserled right after pl is inserted

pl--p2 > p3

SCP #3

insertion of p3 comes after the completionof joint pl---p2

p 1--p2 > p l

SCP #4

sub-assembly pl--p2 needs to be done before p l is inserted into the in-process assembly

p I--p2 >> p3

SCP #5

p3 needs to be inserted right afterjoint p l--p2 is done

p 1--p2 >> p I

SCP #6

pl needs to be inserted into the in-process assembly right after sub-assembly p l-----p2 is done

p I > p2--p3

SCP #7 SCP #8

p I >> p2--p3

SCP #9

p 1--p2 > p3--p4

joint pl--p2 needs to be done SCP # 10 beforejoint p3---p4

p l--p2 > p l--p3

SCP #11

joint pl---p2 needs to be done before joint pl--p3

p l--p2 >> p3----p4

SCP #12

joint p3-----p4 needs to be done right afterjoint pl--p2 is done

pl--p2 >> pl--p3

SCP #13

joint pl---p3 needs to be done right afterjoint pl--p2 is done

lastlmcr xu ba..t.~ mbly

SCP #5 (p I, p2: Ik~tening pa~.~; p3: Ik~t~nez)

unit

SCP # I I (p I, p2: parL~Iff the sub.~embly; p3: any pan which is rolla patl tff the ~uh~.,w,embly but ~mn¢ct. with p I ). rclal~l joinl is N/A

i~m-gcl mtctric

i.liwnlaliOn

aih~wancc v'" it ~

joint--joint

SCP #3 (p I, p2: part:ttd tl~ aflct:tctlj~finl; p3: relaled pan) relalcdpan is NIA

SCP # I() (P I ' P2: Iract~ ° f the allca:led ~dnl;

p3. p4: pelts t)f the relatedjoint) firsl~;inl is NIA s¢ccmd ~)inl is N/A

SCP #1 (p l: first patl; p2: seo3nd pan) llrst i~m is a pan

firsl ~rnt is NIA and

,d' the em.'lmd j~dnl

S(pl: C P #first 8 part; first r~qis m~la oart p2: a partof the leta~l joint) of the setmndj~dnt SCP #7 (pl: first pan: p2, p3: paft,~o f the f.eclmd~dnt) sectmd pm i~ a pet SCP #4 first partis N/A and ] of the lirsl plthl (p| : ~et~t~l~tlpla't: set.~mdjoint is N/A ] p2: a p m . f the first j~dnt)

secamd part s NIA

pl needs to be inserted before joint p2--p3 is done

p I > p 1--p2

....

m~.'haniced

manda~my ffecede~'c

part--joint

.... pow~ chain

(pl: ball [s:lting; p2: ~ ~ Immntthg I~rl; p3: oul~ race mortaring [ w l ) SCP #1 I (pl: 1~11 bc..~ng; p2: outer race n ~ g i~m: p3: imlcr lace mourdingpan)

p I and p2 cannot be a sub-~sembly unit joint p2----p3 needs to be done rightafter part p I is inserted

pa~ is not a I second ['~'loflhe fi~t k~int

fir:'~t r m is N/A ~md

SCP #3 (pl: setamd pa~: p2, p3: palls tffthe firsl joint)

I]¢stjoim ~ t l f~t~llld ] .k~thl have a ¢omlmm $CP # I I (pl : ~.atmm~;npan: pagl p2: a p~rl ill" the fil'~t joinl;

Y'e~amdlrartisNIA I lirSlj~JthlN ~ctmtl p3:apartlfftheseetmdp:int) joinl d4m'thwvea c~mrmm pan

SOP # 10 (p I. p2: patt~of the firstj~,im: p3. [14:pafL*lof the scctmdjoint)

Figure 9 Frame-to-Pattern Conversion Tree

Algorithms for Generation of Initial Assembly Plans • P1--P3 > P0---P3 Po--P2 > Ps P1--P5 >> Pl I P0--Plo >> PJ2 P0--PI0 >> PI3

The planning in this stage considers the geometric properties of 3-D assembly. A three-level hierarchical planning strategy 2'42 is developed to determine sequence alternatives to assemble the mechanical product. The input into the planning includes (1) the assembly solid model and (2) the three graphs, namely PCGs, MDGs, and SCGs, which were obtained previously from analysis of the geometric assembly model. The output is a set of assembly precedence diagrams (APDs) representing geometrically feasible assembly sequences. In the following sections, the functions of each planning level and the algorithms developed to implement the planning tasks are detailed.

(derived from the first and the second frames in Figure 3(b.2)) (derived from the third frame in Figure 3(b.2)) (derivedfrom the fourth frame in Figure 3(b.2)) (derivedfrom the fifth frame in Figure 3(b.2)) (derivedfrom the sixth frame in Figure 3(b.2))

Figure 10

Sequence ConstraintPatterns Derived from Nongeometric Model Reasoning on the Tail-Stock Assembly

graph is a simple path of length at least 1 that begins and ends at the same vertex43), and a noncycle vertex is a vertex that does not belong to any compound cycles. The background for the proposed graph decomposition approach is based on the following properties observed from typical assembly processes:

First-Level Planning Using Graph Search Strategies In first-level planning, the PCG is decomposed into a tree that contains two types of vertices: compound cycles and noncycle vertices. A compound cycle is a combination of cycles (a cycle in a

1. When parts are in the same compound cycle, they are interrelated with each other. Within the compound cycle, there are many ways to assemble constituent parts, as long as the compound cycle can be constructed from the vertices of the compound cycle.

447

Journal of Manufacturing Systems Volume 12/No. 6

2. The insertion precedence of a noncycle part depends on its mating parts. A noncycle part can be inserted into the in-process assembly when any of its mating parts are already in the assembly.

(a) Information generated in the first-level planning (a.l) 99mnound-cycles and non-cycle-vertices • compound-cycle • compound-cycle #1

The tree decomposed from the PCG is called "first-plan APD" in the 3D MAPS. To decompose a PCG into a first-plan APD, the base part for the assembly process is first chosen, using the criteria of maximum number of mating links, maximum volume, maximum weight, and so on. From the base part, compound cycles and noncycle vertices are found from the PCG. The first-plan APD is then formulated by first assigning the base part as the root of the tree. The tree is expanded by gradually adding appropriate compound cycles or noncycle vertices as child nodes to the root or to the leaves of the tree. For the tail-stock assembly, the first-plan APD is shown in Figure 11, view a.2. In formulating the first-plan APD, the most difficult step is to determine the compound cycles and noncycle vertices from the PCG. In the 3D MAPS, this task is conducted by introducing cycle search trees to traverse vertices of the graph. The concept of heuristic graph search is also applied to reduce search efforts. The detailed algorithm is outlined below.

(a.2) #2

in the first level

+

• non-cycle-vertices = (P6, Plo) (b) Information generated in the second-level planning (b. 1) APDs for compound-cycle #1 • feasible concurrent mating graphs

V,.o, ~(0,1,o)~0,-I,0)~(0,-1,0)

~(0.1,0)

~(0,-

~PL(0,1,0)



~(0,I,0)

1.0)

*PLI~ptcscm.sa planea~l the vt~lo¢follows it is the planenormal

• list of APD generated

l

Algorithm 3--Find Compound Cycles and Noncycle Vertices

(b.2) APDs for cora_nound-cycle#2 * feasible concurrent mating graphs

• list of APD generated

%_,< V.,, V.,, Vo.,,

1. Create an empty list for compound cycles and another empty list for noncycle vertices. 2. Remove all 1-degree vertices from the PCG (the degree of a vertex is defined as the number of vertices adjacent to the vertex 43) and put these vertices into the list of noncycle vertices. 3. Assign the status of each vertex in the PCG to be " n o t visited." 4. In the current PCG, choose the first vertex v that has the status " n o t visited." 5. If v does not exist, exit with the list of compound cycles and the list of noncycle vertices; otherwise 6. Build a cycle search tree (method shown below) using v as the root of the tree. 7. Find all possible compound cycles from the tree (method shown below). 8. If no compound cycle can be found from the tree, v is a noncycle vertex and the following

(b.3) final APDs generated in the second level

(c) Final A.PDs generated in the third level is identical to that in the second level

Figure 11 Information Generated for Tail-Stock Assembly in Initial Assembly Planning

448

Journal of Manufacturing Systems Volume 12/No. 6

actions are taken: (1) insert v into the list of noncycle vertices, (2) remove v from the current PCG, and (3) remove all 0 ° and 1° vertices from the current PCG; otherwise 9. Insert all compound cycles found from the cycle search tree into the list of compound cycles. 10. Update the status of all vertices in the compound cycles to "visited." 1 1. Go to step 4. In step 2 of the above algorithm, the noncycle vertices, which are of degree 1, are first removed from the PCG and then put into the list of noncycle vertices. Once 1° vertices are removed from the graph, a cycle search tree is built (in step 6) and compound cycles are found (in step 7) by analyzing the relationships between the root of the tree and all the leaf vertices. The compound cycles found from the cycle search tree are appended to the compound cycle list. The process of building cycle search trees continues until the cycle status, which is either a cycle vertex or a noncycle vertex, for all vertices of the PCG has been determined. In the above algorithm, building the cycle trees (step 6) is the most complex procedure. This task is tackled in the 3D MAPS using a breadth-first node expansion process shown below.

Algorithm 4--Build a Cycle Search Tree from the PCG 1. Create a tree containing only vertex v. 2. In the PCG, find the vertices adjacent to v. 3. Expand the tree by using the vertices just found as v's child vertices. 4. Assign " S T O P " to a signal. 5. Use dynamic programming techniques to remove possible leaf vertices. 6. For every leaf not identical with the root: a. If the leaf is identical to the root, the leaf cannot be further expanded; otherwise b. F i n d feasible child vertices of the leaf. c. If no feasible child vertices can be found, the leaf cannot be further expanded; otherwise d. Expand the tree by using the feasible child vertices just found as the children of the leaf. The signal is updated to "'CONTINUE." 7. If the signal equals " S T O P , " exit with the tree created; otherwise go to step 4.

In the algorithm, the tree originally contains only the root vertex that is essentially the assembly base part. To expand the root, the vertices that are adjacent to the root in the PCG are found and used as child vertices of the root. The tree continues to expand by adding the adjacent vertices to the leaves of the current tree. To avoid endless loops, the vertex being added to the leaf vertex must be either identical with the root vertex or different from any ancestors of the leaf vertex. If the added vertex corresponds to the root, then the vertex cannot be further expanded. The process of tree expansion terminates when all leaves are not expandable. Figure 12 shows step-by-step procedures to create two cycle search trees using the above algorithm. In step 5 of the algorithm, the technique of dynamic programming44 is applied to reduce computational efforts. It operates as follows: "Let G represent an intermediate cycle search tree, q denote a vertex of G, and s be one of q's siblings (in a tree, children of the same parent are siblings). If q is identical with any child, c, of s, then q is removed from the tree." The operation is based on the fact that q and s have the same parent and the path from the root to q must be a subgraph of the path from the root to c. To find all possible compound cycles from a cycle search tree (step 7 in Algorithm 3), each leaf of the tree is checked. If the leaf is identical with the root, the ancestor vertices of the leaf constitute a compound cycle. If all leaves are examined and no compound cycles can be found, the root is a noncycle vertex. Using this principle, three compound cycles, PI-P2-P3-P4, Ps-P2-PI-P4-P3, and P5-P2-P3 can be found from the two cycle search trees shown in steps 1.7 and 2.10 of Figure 12. Based on Algorithms 3 and 4, the compound cycles for the tail-stock assembly can be found (see Figure 11, view a.1).

Second-Level Planning Using a State Transition Approach In this level, connectivity relationships for parts in each compound cycle are further investigated to determine feasible sequence alternatives to assemble parts. A constraint-based state transition approach 2"42 is used in the 3D MAPS to conduct the task. The basic idea is first to formulate a number of so-called concurrent mating graphs (CMGs) from the compound cycle of interest. The combination of

449

Journal of Manufacturing Systems Volume 12/No. 6

•~Part connectivitygraph |step@ ~ l~[setp ' 1.2l1 l[step1.31

[s~

[step1.51 [step1-61 [step1.71 (step2.1] (step2.2] [step2.31 Figure 13 Format of a CMG

Istcp2.41

Isu~p

2.51

Isu~p

cycles found for the tail-stock. Because compound cycles are vertices in the APD and CMGs are created from compound cycles, the relationship between the vertices in the APD and those in the CMG has to be taken care of before the CMGs can be used as basic units to transform the initial compound cycle state to the final APD state. This can be done by adjusting the precedence relationships between the parent vertices of the CMG with respect to the current APD. In addition, to ensure that all valid goal states can be generated from the transformed CMGs (so that all feasible assembly sequences can be found), the following principles are established for the adjustment process.

Istep2.~

Ist~ 2.10]

r,)

1. Maintain the degree of the CMG. A set of rules, shown in Appendix 2, are developed in the 3D MAPS to adjust precedence relationships between parent vertices while maintaining the degree of the CMG (so that the degree of the transformed CMG is identical to that of the original graph.) 2. Keep all parts in the transformed CMG insertable. To keep all parts in the transformed CMG insertable, each part needs to be ensured free of collision with all parts that have higher precedence than the part of interest. Before checking the collision constraints for a part, Pi, the mating directions, Si, available to assemble Pi with all its mating parts have to be found. The determination of S/depends on the status of P~. If P~ is a child vertex of the CMG, then Si inherits the mating directions from the CMG. Otherwise S/is determined by finding the common directions among MDil, MDi2, • " ", MDit (MDiy is defined as shown in Eq. (1)). Once the available mating directions, Si, are found, Algorithm 1 can be used to determine whether each of the directions is feasible in providing a collision-free path.

Figure 12 Example of Determining Compound Cycles for the P C G

CMGs transforms the compound cycle (initial state) into a set of APDs (final state) that depict feasible assembly sequences for the compound cycle. One assembly property in typical assembly processes is that when a part is inserted into an in-progress assembly, the part may mate with several existing parts. This property can be represented by CMGs (see Figure 13). In the graph, the part denoted by the child vertex can mate with the parts denoted by the parent vertices in one assembly operation. The directions, denoted by MD, available to the child vertex to mate with its parent vertices are used as an attribute for the child vertex. CMGs for a compound cycle can be formulated by analyzing the edge attributes of the compound cycle's MDG. For a compound cycle, the formulation of CMGs is carried out for each vertex in the compound cycle. Figure 11, views b,1 and b.2, shows the feasible CMGs for the two compound

450

Journal of Manufacturing Systems Volume 12/No. 6

Based on the above methods, the APDs generated in the second-level planning for the tail-stock assembly can be found as shown in Figure 11, view b.3.

Sequence Coordination in Third-Level Planning In this planning level, the precedence relationships between the cycle parts and the noncycle parts are taken care of. If these two kinds of parts have collision constraints, then assembly precedence between them is imposed. Because the existing SCGs include all the information about part collision, the graphs can be used to carry out the task of sequence coordination in this level. Figure 14 shows an example. In this example, parts P~ and P41 have no precedence relationship in the first two levels of planning (because P1 is a noncycle part and Pal is a part belonging to compound cycle CC). Based on the constraint indicated in the SCG, it can be seen that P, has to be inserted before Pal, and this precedence relationship is established in the third-level planning.

previously from analysis of the nongeometric assembly model, to revise the assembly sequences generated in the three-level hierarchical planning, which considers only assembly geometric properties. A rule-based approach is taken to conduct the task. For example, the sequence constraint patterns derived for the tail-stock assembly belong to the following three groups: SCP # 1 1 , SCP # 3 , and SCP # 5 (see Table 2 and Figure I0). The rules for the three groups of sequence constraint patterns are shown in Figure 15. These rules are used to revise the APDs obtained from the initial planning (see Figure 11, view c), and the final results are shown in Figure 16. The following briefly shows the use of the rules to revise the first APD: 1. The first pattem (PI--P3 > Po--P3) satisfies the IF part of case 1 in Rule 11, and a subassembly containing parts P, and Pa is created according to the THEN part of the rule. 2. The second pattern (Po--P2 > Ps) satisfies the IF part of case 3 in Rule 3, and a directed edge from P2 to Ps is created according to the THEN part of the rule.

Use of Rules in Generation of Final Assembly Plans

(a) Rule 3 (rule for A P D revision in final assembly planning under SCP #3, p l - - p 2 • p3) [case 1] IF ANCESTOR(pl, p3) ^ A N ~ R ( p 2 , p3) THEN FEASmLE_APD Ica~ 2) IF ANCESTOR(p3, pl) v ANCESTOR(p3, p2) THEN INFEASIBLE APD [c~e 3l IF (ANCESTOR(pl. p2) ^ INDEP(p2, p3) ^ - ~ R ( p 3 . p I )) v (INDEP(pl, p2) ^ INDEP(p2, p3) ^ ANCF~TOR(pI. p3)

The planning in this stage considers the nongeometric-properties of the 3-D assembly. It uses the sequence constraint patterns, which are obtained (b) Part connectivity graph

(a) A s s e m b l y

~

I Psll~m! Psi

the first level

P2;

(e) APD generated in

the second level

IF

[case 51

"DIFN IF THEN

(AN~R(p2, pl) ^ - AlqCE.STOR(p3, p2) ^ HqDEP(pl, p3)) v (INDEP(pl, p2) ^ ANCESTOR(p2, p3) ^ ~qDEP(pl, p3)) CREATE_DIEDGE(p{, p3) INDEP(pl. p2) A INDEI~p2, p3) ^ INDEPIpl. p3) CREATE DIEDGElpl. p3) ^ CREATE_DIEDGE(pZ p3)

Rule 5 (rule for APD revision in final assembly planning under SCP #5, p l - - p 2 >> p3) [caae ll IF (-AN~R(p2, pl) ^ PAREIq]'(p2, p3) ^ ANCE~TOR(pI~ p3)) MAKE CONT_INSEIITION(p2, p3) I¢tt.se21 IF (-~R(pl, p2) ^ ANCESTOR(p2, p3) ^ PARENTfpl, p3) MAKE CONT INSERTION~ 1. p3) [¢&~e3] IF ~ANCES'rOR(p2, pl) ^ INDEP(p2, p3) A -ANCESTOR(p3, pl ) THEN CREATE DIEDGF./,p2,p3) ^ MAKE CONT~NSERTION(p2, p3) lease 41 IF -ANCESTOR(pl, p2) ^ ~ANCESTOR(Ix]. p2) ^ INDEP(pl, p3) THEN CREATE DIEDGE(pl, p3) ^ MAKE_CONT [NSERTION(p I, p3) Ic~e 51 IF INDEP(pl, p2) ^ pARENT(p2, p3) ^ PARENT(pl, p3) TI,.EN M AKE_CONT_INSERTION(pl, pX p3) lease 61 IF INDEF(pl, p3) ^ INDIgP(pl, p2) A HqDEP(p2, p3) THEN CREATE_DIEDGE(pl, p3) ^ CREATEJ31EDGE(p2, p3) ^ M AKE_CONT_INSERTION(p 1, pZ p3) Ic~me7] I~ none o~ the above cares THEN 1NFEASIBLE_APD

(c) Spatial constraint

ro ~

(d) APD generated in

lease 4]

(]) APD generated in the third level

Rule 11 (rule for APD revision in final assembly planning under SCP #1 1, p l - - p 2 • p l--p3) lc~e tl [F (ANCESTOR(p3, pl) ^ ANCIF~TOR(p3. p2) ^ (PARENT(pl, p2) v (PARENT(p2, pl)))) v ((ANCESTOR(p3, pl) v ANCESTOR(p3, p2)) ^ INDEP(pl, p2)) THEN MAKE_SUBASSEMBLY~I,p2) [case 2] IF ANCESTOR(pl, p2) ^ INDEF(p2, p3) ^ ~ANCESTOR(p3, pl )) CREATE_DIEDGE(p2, p3) [case 31 IF (ANCESTOR(p2, pl) ^ HqDEP(pl, p3) ^ -ANCESTOR(p3, p2)) v (1NDEP(pI, p2) ^ INDEP(pl. p3) ^ ANCESTOR(pZ p3)) THNN CREATE DIEDGE(pl, p3) [cl~e 41 IF INDEP(pl, p2) ^ INDEP(pl, p3) ^ INDEI~o2, p3) THEN CREATE J)IEDGE(pl, p3) ^ CREATE..DIEDGE(p2, p3) [c&te51 IF (ANCESTOR(p I, p2) ^ ANCF~TOR(p2, p3) ^ ANCESTOR(pl, p3)) v (ANCESTOR(p2, pl) ^ A N ~ R ( p l , p3) ^ ANCESTOR(p2, p3)) THEN FEASIBLE APD [c~e 6] IF none of the elx~vecases THEN

hN~ASIBLE AFD

Figure 14 Figure 15(a)

Example of Using Sequence Constraint Graphs to Coordinate Sequences Between Noncycle and Cycle Parts

Partial List of the Rules Used in Final Assembly Planning

451

Journal of Manufacturing Systems Volume 12/No. 6

(square key) is (are) used to fasten parts 5 and 1" (see Figure 16). Similar treatments hold for patterns 4 and 5.

(b) I) ANCESTOR(pl, p2): In the assemblyprecedence diagram, part pl is an ancestor of part p2. 2) PARENT(pl, p2): In the assemblyprecedence diagram, part pl is the parent of part p2. 3) INDEP(pl, p2): In the assembly precedence diagram, there is no precedence relationship between parts p l and p2, 4) FEASIBLE_APD:The assembly precedence diagram is feasible. 5) INFEASIBLE_APD:Tbe assemblyprecedence diagram is thfeasible. 6) CREATE DIEDGE(pl, p2): In the assembly precedence diagram, create a directed edge from pl to p2. Remove any redundant edge, if exists. 7) MAKE CON'r_INSERTION(pl, p2): Parts pl and p2 are assembled continuously, i.e. the assembly of part p2 needs to be done right after the assembly of part pl is completed. PARENT(pl, p2) is the pre-condition of this predicate. Figure CI shows how the assembly precedence diagram is updated to satisfy this predicate. 8) MAKE_SUBASSEMBLY(pl,p2):pl and p2 is a subassembly unit. The subassembly needs to be done before pl or p2 can be inserted.

In addition to generating feasible assembly sequences (in the form of APDs) in final assembly planning, the 3D MAPS also reports the detailed process information concerning the completion of the assembly task in each assembly step. The information includes (1) the base part selected for the assembly task, (2) the mating directions available to insert the parts, (3) the mating parts, and (4) the mating faces. Figure 16 shows the assembly process information generated for the tail-stock assembly. Among the information, mating directions and mating parts can be used to align a part for the assembly task, and mating faces provide a way to ensure the completion of the assembly task.

Figure 15(b) Predicates Used in the Rules

3. The third patterns (P1--Ps > > P1,) satisfies the IF part of case 1 in Rule 5, and according to the THEN part of the rule, the following information is reported in the assembly plan output "part 11

T h e r e is(are)

total 2 assembly plan(s)

for the m e c h a n i c a l p r o d u c t . part 5

*

Assembly

P l a n %1

(i) m a t i n g d i r e c t i o n s info -a v a i l a b l e m a t i n g d i r e c t i o n s a r e as f o l l o w s : ** (0.0 -i.0 0.0) (2) m a t i n g p a r t s info -Part 5 mates with parts 0 and 1 (3) m a t i n g f a c e s info -P l e a s e r e f e r to file ' m a t i n g f a c e _ f ' (4) f a s t e n e r i n f o *p a r t l l ( s q ~ a r e key) is (are) u s e d to f a s t e n parts 5 and 1

*

........................... assembly precedence diagram ........................... p a r t 0 --> s u b a s s e m b l y subasser~bly ll, 3]

II, 3]

part 9

--> p a r t 2

part 5

p a r t i0

p a r t 2 --> p a r t 8 p a r t 5 --> p a r t 4 part 4

: Leaf

p a r t 9 --> p a r t 8 part 8

: Leaf Node

part 7

: Leaf

p a r t I0 part 6

part 6

Node part 7

* A s s e m b l y P l a n #2 * ********************** ...........................

represent ~--

assembly precedence diagram ........................... p a r t 0 --> p a r t 2

Node

: Leaf Node : Leaf

subassembly

Node

a s s e m b l y p r o c e s s info .....................

part 4

p a r t 10

[i, 3l

part 8

[i~ 3] --> p a r t 5

p a r t 5 --> p a r t 4

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

part 0

part 9

p a r t 2 --> s u b a s s e m b l y

part 6

: Leaf Node

: P a r t 0 is the b a s e part. p a r t 9 --> p a r t 8

s u b a s s e m b l y Ii, 31 (I) T h e s u b a s s e m b l y n e e d s to b e c o m p l e t e d b e f o r e it is i n s e r t e d i n t o the i n - p r o c e s s a s s e m b l y . (2] P r o c e s s I n f o f o r the s u b a s s e m b l y - p a r t i is m o u n t e d w i t h p a r t 3, u s i n g the f o l l o w i n g mating directions: ** (0.0 1.0 0.0) (3) P r o c e s s I n f o for i n s e r t i n g t h e s u b a s s e m b l y i n t o the i n - p r o c e s s a s s e m b l y -< I > m a t i n g d i r e c t i o n s info -a v a i l a b l e m a t i n g d i r e c t i o n s a r e as follows: *" (0.0 -1.0 0.0) <2> mating p a r t s info -Part 3 mates with part 0 4 3 > m a t i n g f a c e s Info -P l e a s e r e f e r to file ' m a t i n g _ r a c e r '

part 7

represent

part 8 : Leaf Node part 7 p a r t I0 part

: Leaf Node : Leaf N o d e

6 : Leaf Node

..................... a s s e m b l y p r o c e s s info ..................... part

0 : P a r t 0 is the b a s e part.

Figure 16 Assembly Precedence Diagrams (APDs) and Associated Assembly Process Information Generated for the Tail-Stock Assembly in Final Assembly Planning

452

Journal of Manufacturing Systems Volume 12/No. 6

Conclusions

ent assembly environments, either manual, semiautomatic, automatic, or robot-based assembly systems. In summary, the 3D MAPS provides a tool that assists both the product designer and manufacturing engineer to cope with today's rapidly changing manufacturing environments.

This paper presents our research efforts in developing a 3-D mechanical assembly planning system (3D MAPS). A simple scheme to describe the product assembly design is employed in the 3D MAPS. The scheme also features a framework for representing information other than geometry. Several algorithms have been developed to perform geometric reasoning on the solid model of the assembly. Complete information concerning connectivity relationships and collision constraints is derived from the reasoning process. The information is stored in various graphs and used as basic data for generating assembly sequences as well as assembly process details. Because the reasoning process is done automatically, the user does not need to provide additional information to guide the planning process. In addition to geometric reasoning, a method of handling the nongeometric information associated with an assembly design is also formulated. The method uses a decision tree to derive precedence constraints resulting from the nongeometric assembly information. The proposed two-stage plan generation, which considers first geometric constraints and then nongeometric properties, ensures that the generated plans are feasible and realistic. A three-layer hierarchical planning strategy is introduced to generate all possible sequences that are physically feasible. A number of algorithms are developed to implement the hierarchical planning strategy. The second stage of considering the constraints imposed by the nongeometric properties makes the final plans more applicable to practical mechanical assemblies. For the tail-stock assembly tested in the 3D MAPS, it takes 2 minutes 31 seconds of CPU time to generate the final assembly plans, including 18 seconds to create the assembly solid model, 128 seconds to analyze assembly models, and 5 seconds to execute the two-stage planning stage. It can be seen that the majority of the execution time is spent on reasoning with the assembly geometric model, especially on performing collision detection among parts. Once the part mating and collision information has been derived from the assembly geometry, the assembly plans are generated in a short time. The output assembly plans contain both high-level sequence information and low-level process infor, mation, allowing feasibility of application in differ-

Acknowledgments This research was supported in part by the National Science Foundation under Presidential Young Investigator Award Grant DMC-8552699 to Dr. T.C. Chang and matching funds from Rockwell International and Xerox Corp.

Appendix 1 The following table shows the use of geometry intersecting operator A g under different cases of surface intersection.

Cl

C2

half-rme h i l l (pl,m )

half-line hl2 -- tp, n)

• half-liae h/J ff g(m, n) ---0* • #otllem~

liae b u = ~ , n, -n)

. half-liae ldl if m ll n • ¢otl~rwise

l~alf-plaae hp2 hp2=tpo, p , n , k , b )

. half-liae hh if (nt .Ln aad a(m, b ) ~ 90*) , ¢ otherwi~

planepl2=(po, p,n)

• half-line h/s if m .Ln • # otherwise

half-spaee hs2 = tpl, n)

c~ line lm= (pt, nl, ,nl)

. Imlf-ti~ hl~ if O~m,n) S 90* . ¢ othexwise

c2 half-line hb = (p, n)

*lmlf-linehl2ffntlln • ¢otherwise

l i n e / n : = ~ , n, -n)

*rmelmifmlln • # otherwise

half-plane

. line lm if nt ll k . Imif rme (p,m) if (m .l.n aad O(m, b) < 90*) • lmLf lira (p, m) if (m .l.n aad O(-m, b) < 90 °) . ¢ otherwise

hp2 = (p0,p, n, k, b)

453

c~ ( Y c2

plane pl2 = ~o, p, n)

• line Im if m .1. n

half-space hs2 = (pl, n)

. line ln; if m,l_n • half line ( p , m ) if g,nt, b) < 90 ° • Imlf line (p, -nt) if 6(-ns, b) < 90*

•~ot~rwise

Journal of Manufacturing Systems Volume 12/No. 6

C~ half-plane kp ~ = ~ : , p ~ , a t , k~,bl)

C2 half-tree h/~= ~, n)

tm= q,, n, -n)

half-plan~ hp~ = ~o,p,n,k,b)

plane pl~ = Mo,p, n)

Ct

Ct ('~g C2 • half-rm~ hb if(at.LnandO(n, bl)<90*) • ¢ oOserwise

C1

.lin~ ln~ if n ll la . ha~ ra¢ ~ , n ) if (m I n and O(n,b)<90*) • half line (p, -n) ff (m.Ln and O(n,b) <90 °) • ¢otherwise

plane

pll= (pel,pl, el)

C1 ("~: C2 • half-llne 1112if O ~ m) S 90 °

• ¢ otherwise

.line In2 if m .l.n .half.li~,n)ifO(n,m)<90* • half-line (p, -n) if a(.n, at) < 900

•~af-p~ h~ half-plane hp2=~o,p,n,k,b)

if (k .l.m and 8@, m ) < 90") • 1 i ~ O,o,k, -k) if ( k . l . m andgO* < 6q~,m) < 180 °)

• plane segment(pc, p, n, qt, b),~',b')) otherwise, wl~n~ k ' = line vector of INT HALF LINE( hp2, pll) b'=vectoronhpZb'.Lk', ~b', at) < 90°

• half-plane hpl if (~(m,n) = 0 " ~,ad ~ b h b ) = O o) • plane segment (pet,p1, at, ~ , bO, 0~, b) if(60u, n)f0°and0*< ~ , k b ) < 180") . r ~ (eo, k, .k ) if (8(at, n)--O° and ~bl, b)= 180°) or (O(at, n) *~O* and k ll kl) • half-li~e IN'rHALFJANE(hp~, hp~) otherwise • half-plane hplifm//n • rm¢(,pol, kl,&l) if 0tt/P,~ and k,/.L n) • half-line INT_HAI.~_LINE( hpz, pl2)

plane pl2 = ~o, p, n)

. pl~c pl2if nl ll n • balf-pllmc (pol, p t, m, k, b) otherwise, where k ffi line vector of INTj.,INE(plI, pl2) b = vector on pl~ b J.k, Oqb,at) < 90 °

half-space

-half-space hsl if a(n, m) =0" • plane pl if ~n, m ) = 180 ° • space segmant((pth m), (pl, n)) o~erwisc

h ~ = (pl, n)

~io.

No~ao~

• half-plan~ hpl if ( k j l n and ~ , n) ~90 ° ) • line (p0~. k~, -k0 if ( k J / n andg0* < 0~t,n) <: 1800) • plane scgmeat (peJ,pl, at, qk~,hi), qd.b' )) otherwise, when: k' = line vectvr of ~',rr _~.~d..F Ln',,re( ~ ~,pO b'=vcctoronhpl, b'.l.k', ~'~', n) < 90

C2

half-line h/2 = (p.n) line /m = (p, n,-n)

otherwise haif-spacc tua = (pl, n ) pl = ~o,p, n)

C2

half-spao~ hsl=(pthat)

• half-line hi2 if at I n • $ otherwise

fine In: = q~, n, -n)

.line ln2 if at ± n • ¢ otherwise

haif-plane hp2=~o,p,~,k,b)

• half-plane hp2 if at II n .line~o,k,-k)if(mK~n~mdat.Lk) • ImIf-linc INT_HALF_L1N~plt. hp~) • plane pll if at fln . ~m~ INT_LINE(pll. plz) o ~

half-space h.a = (pt, n)

. plam pll if m /I n • half-plane (p01,pl, at, k, b) otherwise, wbet¢ k = line vector of INT_LINE(pl, pI1) and b=vecmronplt, b J . k , 0(b, nx) < 90 °

tO I~ COIBI~ICd

in~tsccfmg half-fine between plane pll and

half-planehp2

INT_HALF_IJ~(h~ h hp2)

inmrsecfing haif-bne between hail-planes ~1 and 1~2

O(v:, v2)

positive angle between vectors el and vz

Appendix 2 The following rules are used to adjust precedence relationships between parent vertices of the CMG while maintaining the degree of the graph (let CMG represent the concurrent mating graph and cur-APD denote the current assembly precedence diagram): 1. If CMG satisfies the following three requirements, there will be no need of transformation: a. No parent vertices of CMG appear in cur-APD, b. All parent vertices have connections with vertices in cur-APD, and c. No parent vertices of CMG connect with each other (a vertex that connects with another vertex means that the part represented by the first vertex has geometric contact with the part represented by the second vertex). 2. If the child vertex is a member of cur-APD, CMG is removed from the list of the CMGs. 3. If a parent vertex is a member of cur-APD, the vertex is removed from CMG. 4. Assume Vp represents the set of parent vertices in CMG and Vp = (Vc, V,,), where V~ are parents that connect with at least one vertex in cur-APD and V, are parents that do not connect with any

otherwise

plane plz = (po,p, n)

malln~ di/l~O~t ~

in~..cdng fine between planes pll and p12

INT HALF t,~qE(pth hp2)

Ct (.~s C2

half-Ymc ht~= ~ , n )

el, C2 INT LINE(pII, pla)

454

Journal of Manufacturing Systems Volume 12/No. 6

Department of Computer, Information and Control Engineering, 1988). 7. L.S. Homem de Mello and A.C. Sanderson, "A Correct and Complete Algorithm for the Generation of Mechanical Assembly Sequences," IEEE International Conference on Robotics and Automation (Scottsdale, AZ: May 14-19, 1989), pp. 56-61. 8. U. Roy and C.R. Liu, "Establishment of Functional Relationships Between Product Components in Assembly Database," Computer-Aided Design (vol. 20, no. 10, 1989), pp. 570-580. 9. C.J.M. Heemskerk and C.A. Van Luttervelt, "The Use of Heuristics in Assembly Sequence Planning," Annals of the CIRP (vol. 38, no, 1, 1989), pp. 37-40. 10. Y.F. Huang, "A Knowledge-Based Approach to Automatic Generation of Assembly Plans," PhD Thesis (West Lafayette, IN: Purdue University, School of Electrical Engineering, 1991). 11. R.J. Popplestone, A.P. Ambler, and I.M. Bellos, "RAPT: A Language for Describing Assemblies," The Industrial Robot (vol. 5, no. 3, 1978), pp. 131-137. 12. R.J. Popplestone, A.P. Ambler, and I.M. Bellos, "An Interpreter for a Language for Describing Assemblies," Artificial Intelligence (vol. 14, no. 1, 1980), pp. 79-107. 13. H. Takase and N. Nakajima, "A Language for Describing Assembled Machines," Design and Synthesis (North-Holland, 1985), pp. 471-476. 14. Y. Liu and R.J. Popplestone, "Planning for Assembly from Solid Models," IEEE International Conference on Robotics and Automation (Scottsdale, AZ: May 14-19, 1989), pp. 222-227. 15. M.V. Rimscha, "Feature Modeling and Assembly Modeling--A Unified Approach," Advanced Geometric Modeling for Engineering Applications, F.L. Krause and H. Jansen, editors (Berlin: 1989). 16. M.A. Wesley et al., "A Geometric Modeling System for Automated Mechanical Assembly," IBM Journal of Research Developments (vol, 24, no. 1, 1980), pp. 64-74. 17. K. Lee and G. Andrews, "Inference of the Positions of Components in an Assembly," Computer-Aided Design (vol. 17, no. 1, 1985), pp. 20-24. 18. D.N. Rocheleau and K. Lee, "System for Interactive Assembly Modelling," Computer-Aided Design (vol. 19, no. 2, 1987), pp. 65-72. 19. S.H. Kim and K. Lee, "An Assembly Modeling System for Dynamic and Kinematic Analysis," Computer-Aided Design (vol. 21, no. 1, 1989), pp. 2-12. 20. F. Giacometti and T.C. Chang, "A Framework to Model Parts, Assemblies, and Tolerances," Proceedings of Advances in Integrated Product Design and Manufacturing (Dallas: ASME Winter Annual Meeting, Nov. 25-30, 1990-3), pp. 117-125. 21. A.J. Medland and G. Mullineux, "Investigation of a Rule-based Spatial Assembly Procedure Knowledge Engineering and Computer Modeling in CAD," 7th International Conference on the Computer as a Design Tool (Sept. 2-5, 1986), pp. 98-120. 22. H. Ko and K. Lee, "Automatic Assembling Procedure Generation from Mating Conditions," Computer-Aided Design (vol. 19, no. I, 1987), pp. 3-10. 23. W. Jentsch and F. Kaden, "Automatic Generation of Assembly Sequences," Artificial Intelligence and Information Control Systems of Robots, I. Plander, editor (Elsevier Science Publishers B.V. (North-Holland), 1984), pp. 197-200. 24. T.L. DeFazio and D.E. Whitney, "Simplified Generation of All Mechanical Assembly Sequences," IEEE Journal of Robotics and Automation (vol. RA-3, No. 6, December 1987), pp. 640-658. 25. M.M. Lui, "Generation and Evaluation of Mechanical Assembly Sequences Using the Liaison-Sequence Method," MS Thesis (Cambridge, MA: Massachusetts Institute of Technology, Department of Mechanical Engineering, 1988). 26. E. Kroll, "Spatial Reasoning in Assembly Planning," Proceedings, NSF Design and Manufacturing Systems Conference (Austin, TX: January 9-11, 1991). 27. E. Kroll, E. Lenz, and J.R. Wolberg, "Rule-Based Generation of Exploded Views and Assembly Sequences," Artificial Intelligence in Engineering Design, Analysis, and Manufacturing (vol. 3, no. 3, 1989), pp. 143-155. 28. A. Deshmukh, "Knowledge Processing for Assembly Process Planning," MS Thesis (State University of New York at Buffalo, Department of Industrial Engineering, 1989).

vertex in cur-APD. If each vertex, v.i, in V. has a connection with exactly one vertex, vcl, in Vc, then directed edges, each having the format < vci, v.i > , are built to signify the precedence relationships between vertices in Vc and vertices in V.. This can be done by redirecting the directed edge from vcl to vcnaa (child vertex of the CMG) to a directed edge from v.i to vm. 5. In the above case, if not all vertices in V. connect with vertices in V., Vp is represented by a three-tuple (V., V., V.'). V. has the same meaning as in number 4 above. V. contains the parents that connect with no vertex in cur-APD, but each vertex in V. contacts with exactly one vertex in V.. V.' contains parents other than V. and V.. In this case, vertices in V. can be related with vertices in V,, using a similar way as in number 4. Once Vc and V,, are related, they are united into a new V. as in number 4 and V.' becomes another V. as in number 4. The whole transformation process starts again for V. and V.. A recursive procedure can be employed to handle the transformation problem. 6. If after recursive processes numbers 4 and 5, the transformed CMG' still contains parent vertices, Vy, which connect with no vertices in cur-APD and no parent vertices other than Vs. This special case is handled by introducing a vertex, v,,, which is not a member of the CMG' but is an adjacent part, in the PCG, to a vertex v~, in Vs. A directed edge from v,, to v a is constructed to link these two vertices. The process of adding additional vertices and edges continues until all the vertices in the transformed CMG become insertable.

References 1. A.C. Lin and T.C. Chang, "A Framework for Automated Mechanical Assembly Planning," Journal of Mechanical Working Technology (vol. 20, 1989), pp. 237-248. 2. A,C. Lin, "'Automated Assembly Planning for 3-D Mechanical Products," PhD Thesis (West Lafayette, IN: Purdue University, School of Industrial Engineering, 1990). 3. C.M. Eastman, "The Design of Assemblies," Technical Paper Series 0148-7191/81/0223-0197 (Society of Automotive Engineers, 1981). 4. A. Bourjault, "Contribution A Une Approach Methodology de L'assemblage Automatise: Elaboration Automatique des Sequences Operatoires," PhD Thesis (Universite de Franche-Comte, 1984). 5. K. Lee and D.C. Gossard, "A Hierarchical Data Structure for Representing Assemblies," Computer-Aided Design (vol. 17, no. 1, 1985), pp. 15-19. 6. J.D. Wolter, "On the Automatic Generation of Plans for Mechanical Assembly," PhD Thesis (Ann Arbor, MI: University of Michigan

455

Journal of Manufacturing Systems Volume 12/No. 6

29. D.F. Baldwin et al., "An Integrated Computer Aid for Generating and Evaluating Assembly Sequences for Mechanical Products," IEEE Transactions on Robotics and Automation (vol. 7, no. I, 1991), pp. 78-94. 30. Y.F. Huang and C.S.G. Lee, "A Framework of KnowledgeBased Assembly Planning," Proceedings, IEEE International Conference on Robotics and Automation (Sacramento, CA: April 9-11, 1991), pp. 599-604. 31. M. Shpitalni, G. Elber, and E. Lenz, "Automatic Assembly of 3-D Structures via Connectivity Graph," Annals of the CIRP (vol. 38, no. 1, 1989), pp. 25-28. 32. U. Roy, P. Banerjee, and C.R. Liu, "Design of an Automated Assembly Environment," Computer-Aided Design (vol. 21, no. 9, 1989-2), pp. 561-569. 33. T.C. Woo, "Automatic Disassembly and Total Ordering in Three Dimensions," Technical Report (Ann Arbor, MI: University of Michigan, Department of Industrial Engineering, March 1987). 34. R. Hoffman, "Automated Assembly in a CSG Domain," IEEE International Conference on Robotics and Automation (Scottsdale, AZ: May 14-19, 1989), pp. 210-215. 35. P.K. Khosla and R. Mattikali, "Determining the Assembly Sequence From a 3-D Model," Journal of Mechanical Working Technology (vol. 20, 1989), pp. 153-162. 36. J.M. Miller and R.L. Hoffman, "Automatic Assembly Planning with Fasteners," IEEE International Conference on Robotics and Automation (Scottsdale, AZ: May 14-19, 1989), pp. 69-74. 37, H. Sekiguchi et al., "Study on Automatic Determination of Assembly Sequence," Annals of the CIRP (vol. 32, no. 1, 1983), pp. 317-374. 38. A. Gairola, "Design Analysis for Automatic Assembly," International Journal of Production Research (vol. 24, no. 4, 1986-1 ), pp. 839-849. 39. J.D. Foley and A. van Dam, Fundamentals of Interactive Computer Graphics (Reading, MA: Addison-Wesley Publishing Co., 1982).

40. T.C. Chang, Expert Process Planningfor Manufacturing (Reading, MA: Addison-Wesley Publishing Co., 1990). 41. T.A. Mashburn, "A Polygonal Solid Modeling Package," MS Thesis (West Lafayette, IN: Purdue University, School of Mechanical Engineering, 1987). 42. A.C. Lin and T.C. Chang, "Automated Assembly Planning for Three-Dimensional Mechanical Products," Proceedings, 1991 NSF Design and Manufacturing Systems Conference (Austin, TX: University of Texas, January 9-11, 1991). 43. A.V. Aho, J.E. Hopcroft, and J.D. Ullman, The Design and Analysis of Computer Algorithms (Reading, MA: Addison-Wesley Publishing Co., 1974). 44. P.H. Winston, Artificial Intelligence (Reading, MA: AddisonWesley Publishing Co., 1984).

Authors' Biographies Alan C. Lin is an associate professor of mechanical engineering at the National Taiwan Institute of Technology, Taipei. He holds an MS from Columbia University and a PhD from Purdue University. Dr. Lin was previously an assistant professor of mechanical engineering and research associate in the Intelligent Systems Center at the University of Missouri-Rolla. His current research interests include CAD/CAM, automated process planning, and AI applications in manufacturing automation. Tien-Chien Chang is a professor in the School of Industrial Engineering at Purdue University. His current research interests include automated process planning, automated assembly planning, and manufacturing systems integration. Dr. Chang is the author and co-author of several books on process planning and computer-aided manufacturing. He received the Presidential Young Investigator Award from the National Science Foundation in 1986.

456