10
Journalof MechanicalWorkingTechnology, 20 (1989) 195-204 Elsevier SciencePublishers B.V., Amsterdam - Printed inThe Netherlands 195 PROTOTYPING A FEATURE BASED MODELLING SYSTEM FOR AUTOMATED PROCESS PLANNING S.K. SIM1 and K.F. LEONG2 lSenior Lecturer, Applied Mechanics Division, School of Mechanical and Production Engineering, Nanyang Technological Institute, Nanyang Avenue (Singapore) 2Lecturer, Engineering Production Division, School of Mechanical and Production Engineering, Nanyang Technological Institute Nanyang Avenue (Singapore) SUMMARY In recent years, there have been tremendous amount of interest in manufacturing automation and Computer-integrated Manufacturing (CIM). To attain a high level of automation in CIM, there has been relentless effort in trying to integrate the islands of automation in manufacturing. These are often fraught with much frustrations and difficulties. The main calamity in integration is due to the mismatch of information available from the CAD system and that required by CAPP system. The geometric information generated by the solid modellers in most CAD systems are low level whilst the CAPPs will operate efficiently only at a higher level of abstraction. CAPP systems thrives on feature information but such information in CAD databases are rather implicit and at times not even available. Although there has been much research and development work in making these feature information in CAD databases more explicit through feature recognition and extraction, this is really a regressive step. A much better approach is to define features as they exist right at the start at the modelling stage and store these feature definitions in a feature database which can be assessed directly by CAPP. In this way the likelihood of making errors in interpretation is minimized as the feature information are derived at source. This paper describes the prototyping of a feature-based modelling system in an AI logic language, Prolog. Feature hierarchy depicting the part-feature relationships can be defined by the designer when he is making the design of the part. By defining features as objects and through object oriented programming, generic and specialized feature properties can be defined or inherited through a child/parent relationship. These constituent features are composed semantically and meaningfully through a bottom-up strategy based on feature composition rules and feature primitives. The result of the parsing exercise is a solid representation of the global model depicted as a CSG tree of features. This solid model will ultimately be translated into solid modeller specific commands and further evaluated to give active boundaries representing geometric and topological information for rendering. INTRODUCTION Computer-aided Design (CAD), Computer-aided Manufacturing (CAM) and Computer-aided Process Planning (CAPP) are important components in improving the overall efficiency and performance in the automation of manufacturing. To attain a high level of automation in computer integrated manufacturing (CIM) and widespread use in manufacturing applications, it is desirable to integrate these islands of automation together. Process planning is that function within a manufacturing facility that establishes which machining process and parameters are to be 0378-3804/89/$03.50 ©1989 EIsevierSciencePublishersBN.

Prototyping a feature based modelling system for automated process planning

  • Upload
    sk-sim

  • View
    214

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Prototyping a feature based modelling system for automated process planning

Journal of Mechanical Working Technology, 20 (1989) 195-204 Elsevier Science Publishers B.V., Amsterdam - Printed inThe Netherlands 195

PROTOTYPING A FEATURE BASED MODELLING SYSTEM FOR AUTOMATED

PROCESS PLANNING

S.K. SIM1 and K.F. LEONG2

lSenior Lecturer, Applied Mechanics Division, School of Mechanical and Production Engineering, Nanyang Technological Institute, Nanyang Avenue (Singapore)

2Lecturer, Engineering Production Division, School of Mechanical and Production Engineering, Nanyang Technological Institute Nanyang Avenue (Singapore)

SUMMARY In recent years, there have been tremendous amount of interest in manufacturing automation

and Computer-integrated Manufacturing (CIM). To attain a high level of automation in CIM, there has been relentless effort in trying to integrate the islands of automation in manufacturing. These are often fraught with much frustrations and difficulties. The main calamity in integration is due to the mismatch of information available from the CAD system and that required by CAPP system. The geometric information generated by the solid modellers in most CAD systems are low level whilst the CAPPs will operate efficiently only at a higher level of abstraction. CAPP systems thrives on feature information but such information in CAD databases are rather implicit and at times not even available. Although there has been much research and development work in making these feature information in CAD databases more explicit through feature recognition and extraction, this is really a regressive step. A much better approach is to define features as they exist right at the start at the modelling stage and store these feature definitions in a feature database which can be assessed directly by CAPP. In this way the likelihood of making errors in interpretation is minimized as the feature information are derived at source.

This paper describes the prototyping of a feature-based modelling system in an AI logic language, Prolog. Feature hierarchy depicting the part-feature relationships can be defined by the designer when he is making the design of the part. By defining features as objects and through object oriented programming, generic and specialized feature properties can be defined or inherited through a child/parent relationship. These constituent features are composed semantically and meaningfully through a bottom-up strategy based on feature composition rules and feature primitives. The result of the parsing exercise is a solid representation of the global model depicted as a CSG tree of features. This solid model will ultimately be translated into solid modeller specific commands and further evaluated to give active boundaries representing geometric and topological information for rendering.

INTRODUCTION

Computer-aided Design (CAD), Computer-aided Manufacturing (CAM) and Computer-aided

Process Planning (CAPP) are important components in improving the overall efficiency and

performance in the automation of manufacturing. To attain a high level of automation in

computer integrated manufacturing (CIM) and widespread use in manufacturing applications, it is

desirable to integrate these islands of automation together. Process planning is that function

within a manufacturing facility that establishes which machining process and parameters are to be

0378-3804/89/$03.50 ©1989 EIsevierSciencePublishersBN.

Page 2: Prototyping a feature based modelling system for automated process planning

used to convert a piece part from its initial from to a final form pre-determined from an

engineering drawing. (ref. 1) It therefore seem obvious that the key to integration is to use CAPP

as the link up between CAD and CAM. Thus much effort has been put into the development of

effective CAPP systems that will be capable of this link up. Unfortunately, even with the

application of artificial intelligence, manual intervention has not been totally eliminated thus not

achieving total automation. (ref. 2-3)

The main calamity in full integration and automation of these systems is due to the mismatch

of the information available from the CAD systems and that required by the CAPP systems.

Geometric information generated by the solid modellers in most CAD systems are low level 2-

D, 2-and-a-half-D CAD systems, wireframe systems are in even deeper predicament as far as total

integration is concerned. CAPPs operate effectively only at a higher level of abstraction where

features information are important. (ref. 4-5) To understand why this is so, it is necessary to first

understand the characteristics and limitations of the existing CAD solid modelling systems.

SOLID MODELLING SYSTEM FOR CAPP

The Solid Modelling Systems

The term geometric modelling refers to a collection of methods used to define the shape and

other geometric characteristics of an object. (ref. 6) There are three distinct aspects of geometric

modelling:

1. Representation: Computing a mathematical approximation of the physical shape of an

object.

2. Design: Creating a new shape to satisfy some operational or aesthetics objectives. The

variables defining the shape is manipulated until the objectives are met.

3. Rendering: Generating the image of the model so that it can be interpreted visually.

Solid modelling centered more on the first two aspects of geometric modelling. It is a branch

of geometric modelling that emphasizes the general applicability of models, and insists on

creating only complete representation of physical solid models.

There are several approaches to achieve this goal of which two of these representation

schemes are most popular: boundary representation (B-rep) and constructive solid geometry

(CSG). (ref. 6)

a. Boundary Representation, (B-rep) : B-rep modellers store the evaluated geometry as a

redundant hierarchy of topological entities (face, edges, vertices) with pointers to

geometric entities (surfaces, curves, points). Euler-Poincar~ equations are used to

ensure the validity of the objects (ie. that they are solids). Point sets are classified as

inside, on or outside the object, using a convention for the direction of surface normals.

b. Constructive Solid Geometry. (CSG) : CSG is a modelling method that defines

complex solids as compositions of simpler solids (called primitives). Boolean

operators are used to execute the composition. CSG representations of objects are

ordered binary trees whose terminal nodes are either primitives or transformation data

Page 3: Prototyping a feature based modelling system for automated process planning

197

for rigid-body motions. The nonterminal nodes are either regularized Boolean

operators (union, difference, and intersect) or rigid-body motions (translation and/or

rotation) that operate on their two subnodes. Each subtree of a node represents a solid

resulting from the combination and transformation operations indicated below it. The

root represents the final object. If valid primitives are used with Boolean operations,

then no validity check is required. A boundary evaiuator is used to determined the

active boundaries of the final object.

These two solid modellers (as well as the others) have two major deficiencies (ref.4) :

1. Insufficient product definition : Only the complete representation of the geometric

model is defined; specific precision data like tolerances and surface finishes and

technological data like material specifications and surface treatments are not

represented in the system. Such information are important and essential in process

planning.

2. Low-level product representation : Part and product representation are in low-level

details, ie. geometry and topology for B-rep and primitives and operators in CSG. The

data only become comprehensible when an image is displayed. Thus the interpretation

of the data is done by the human viewer. High level information, such as form

features, which should be available is missing.

Therefore it is very difficult to use these existing solid modelling systems alone to drive

automated applications such as process planning because the information essential to these tasks

is virtually absent from the solid modeller databases. Work has to be done to gather these

information in order to work the CAPP systems.

The Need for Feature-Based Modelling System

A feature is a set of information related to a part's description. The description could be for

design purposes, or manufacturing and inspection or even for administration purposes. It is

convenient to classify features relating to the product as follows: (ref. 4)

1. form features : functional, aesthetic, assembly aids.

2. material features : properties, specifications, treatment (materials and surfaces).

3. precision features : tolerances, surface finishes.

4. technological features : performance parameters, operating variables, design

constraints.

Since designers and engineers utilize these features for their work, it is therefore necessary

that they are supported in a fully integrated engineering system, like in CIM. The first three

categories of features are especially important in supporting process planning systems. Thus any

automated CAPP systems that is to be used with a solid modelling CAD system must have the

means to get these feature information from that CAD system. There are three fundamental

approaches which can achieve this, namely human-assisted feature recognition, automated feature

recognition and extraction, and feature based modelling.

Page 4: Prototyping a feature based modelling system for automated process planning

198

Human-assisted feature recognition in CAPP is rather primitive and does not qualify for total

automation. Automated feature recognition and extraction is a step that attempts to make explicit,

usually by the application of artificial intelligence techniques, the features information that are

available in the CAD databases. This is in essence a regressive step in automation. A much

better approach is to define features as they exist right at the start at the modelling stage and store

these feature definitions in a feature database which can be assessed directly by the CAPP system.

This is a feature based modelling approach. In this way the likelihood of making errors in

interpretation is minimized as the feature information are derived at source. It also makes better

engineering sense that the designer's efforts will have to be more attuned to manufacturing needs,

thus providing the opportunity to implement simultaneous engineering. (ref. 7) Hence a feature

based modelling system is essential to the implementation of total integration of these systems.

THE FEATURE BASED MODELLING SYSTEM

The Feature based Modelling System contains all the necessary facilities for creating a

product database at multi-levels of abstraction. A distribution system approach is adopted where

each subsystem supports one type of feature. Essentially there are four subsystems :

1. solid modeller.

2. form feature modeller.

3. precision feature modeller.

4. material feature modeller.

The underlying knowledge representation scheme is framed-based system where generic

features such as user-defined parameters, inheritance rules and solid representation specifications

can be defined.

The Solid Modeller

The solid modeller serves the function of representing the physical solid models of the

product to be manufactured. The CSG modeller is used here because it can effectively represents

knowledge of the product at a higher level of abstraction and thus better able to support feature

modelling and extraction. It also provides the means for user interface and interpretation of the

model.

The Form Feature Modeller

The form feature modeller allows the definition of the nominal part geometry through a three

tier database. At the top level is a feature relationship graph which depicts both adjacency links

and child-parent links or primary feature-subfeature links. Primary features are major shapes

modified by subfeatures. Primary features therefore do not inherit any parameters from any other

features while subfeature inherit parameters from one or more features.

The second level in the form feature modeller database is the definition of each form feature

consisting of generic properties and instance data. The third level is the solid representation of the

Page 5: Prototyping a feature based modelling system for automated process planning

199

form feature stored as a CSG tree of features producing volume of all features constructed

through Boolean operation. This is expressed in a context free grammar for CSG which is later converted to solid modeller interface. Such a form feature database can be extracted directly by a CAPP for process planning without the need for an interface for feature extraction and feature recognition.

Feature-Based }dodelling System

Solid Modeller i . ' I

Form Feature User Modeller I

Interface Precision Feature [

Modeller I

] [ Material Feature I Modeller

lntelli ent C omputer-Ai_ded Process Planning

_ ~ , Process Selection I

Machine Tools ] Selection

l Sequencing User Operations I

Interface Selection of Holding Devices

Operations and Machines Data

Process Optimization

I Cost and Time [ Analysis

Process Plan Output

1

System

I I I I

Product Database

Technological l)aLabase

Fig. 1 : Schematic diagram of the modelling system, the planning system and the databases.

Page 6: Prototyping a feature based modelling system for automated process planning

200

Th.e Precision Feature Modener

The purpose of the precision feature modeller is to enable the definition of allowable

deviations from nominal form and size i.e dimensional tolerances and surface finish by creating a

library for generic precision features. These generic features can be instanced and attached to

form features and their geometric entities.

The Material Feature Modeller

The purpose of the material feature modeller is to associate material information with form

features. These information can be the material name, type, composition, physical and

mechanical properties, material processing and treatment, etc. Material features can be defined

and stored in a library. This again can be linked to a form feature.

Fig. 1 shows the main subsystems of the Feature based modelling system and the modules of the

intelligent generative process planner to be developed.

PROTOTYPE OF FEATURE BASED SYSTEM

Because of the complexities in the feature based modelling system, it is necessary to first

develop this system by prototyping with due consideration to multiple level representation (ref.9).

Several ideas for the prototype are proposed and tested. One of the most successful is discussed

in the following sections.

Part Fcalme Grammar

The part-feature structure can be described formally by a context free grammar for CSG,

G( Vn, Vt, P, S) where:

Vn denotes the set of non-terminals

= { <part>, <object>, <part-primitive>,<set operator>, <feature>, <movement> }

Vt denotes the set of terminals

= { cube, cylinder, cone, sphere, torus, wedge, union, intersect, difference,

x-translation, y-translation, z-translation, x-rotation, y-rotation, z-rotation }

S is the start symbol.

The set of P contains the following context-free productions listed as below:

<part>

<object>

<primitive>

<set-operator>

<feature>

<movement>

<sub-feature>

: := < o b j e c t >

::= <primitive> I <object> <set-operator> <object> I

<object> <set-operator> <feature> I <object> <movement>

::= cube I cylinder I cone I sphere I torus I wedge

::= union I intersect I difference

::= <primitive> I <feature> <set-operator> <sub-feature>

::= x-translation I y-translation I z-translation I

x-rotation I y-rotation I z-rotation

::= primitive

Page 7: Prototyping a feature based modelling system for automated process planning

201

The def'mition of CSG in context free grammar lends itself to parsing in building a tree

structure that defines the constituents of the part. A parser uses a parsing algorithm along with the

CSG grammar and the universal primitive set to produce a CSG tree that corresponds to a given

sequence of compositions.

A bottom-up parsing strategy begins with the primitives and looks for productions rules

whose right-hand sides match sequence of adjacent objects that can be combined into a

constituent as identified by the left-hand side. Under an appropriate parsing algorithm such as the

Chart Parser, (ref. 8) the CSG tree for form feature can be derived.

BUILDING THE CSG TREE USING CHART PARSING.

For automatic process planning, the very basic geometric requirement is that the planning

system must know the type of feature as well as its dimension and orientation. By feature base

modelling approach, these features are defined by the designer at the beginning. These features

must be composed into a CSG tree so that geometric relationships between features are clearly

defined. The CSG tree is however not a unique representation scheme. A designer can arbitrary

create two or more different CSG trees to represent an identical object (ref. 9). A similar problem

also exists in the area of natural language processing (NLP) expressed in CSG notation.

Ambiguous syntactic structures do exist. In order to capture these syntactic structures, a good

parsing algorithm is necessary. Amongst the many parsing algorithms developed (ref. 8), chart

parsing offers a strategy that derives single or multiple syntactic structures without the overhead

of backtracking.

Chart Parsing

Often a parsing strategy tries to analyze a string as a constituent of a certain category in

natural language or primitive in solid modelling parlance. While doing so it recognizes the

categories of substrings. If it turns out that the whole string is not of the category hoped for, so

that the main parsing effort has to be abandoned, all the perfectly valid categories of the

substrings get forgotten too. Chart parsing tries to avoid wasting that effort. The central idea is

that all possible syntactic structures are represented in a data structure called a chart as soon as

they are found. (ref. 10)

A chart is a directed graph consisting of ordered collection of edges or arcs. Each edge has

two vertices, a starting and ending vertex and is denoted by a label. Each label depicts what the

syntactic category of the substring between the starting and ending vertex of the arc are and

comprises of two parts known as 'Found' or 'Unfound'; found part represents (parts of)

constituents already discovered and unfound part represents constituents which must still be

found to complete a partial analysis.

In general, the label of an arc is:

TotalCat = FoundCat... I UnFoundCat... in NLP or

Part -- FoundPrimitive... I UnFoundt~mitive... in Solid Modelling (SM).

Page 8: Prototyping a feature based modelling system for automated process planning

202

Either FoundPrimitive... or UnFoundPrimitive... may be null as are FoundCat..+ or

UnFoundCat... in NLP. Arcs without UnFoundPrimitive in their label are said to be inactive; all

others are active.

The Parsing Process

A parse has been found when there is an inactive arc of the sought category from the

beginning to the end of the entire string.

The complete parsing process consists of iterations between two basic operations, namely

combine or fundamental event and the propose event. Before describing these operations the

following terminology are defined:

Let I, J, K ..... be integer variables over vertices in the chart.

Let X, Y, Z ..... be variables over constituents of the grammar.

Let [A], [B], [C],... be variables over (possibly null, []) strings of constituents.

The two basic operations, the fundamental event and the propose event, are discussed in the

following sections.

Fundamental Event

The fundamental event rule is stated as follows:

(i) x = [A] J Y [B] (J) (J) Y = [ C ] I [ ] (K) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

(I) X =[A]YI[B] (K)

unless the resulting edge is already present.

When an active edge from vertex I to J, looking for a constituent Y in its remainder meets a

complete edge from vertex J to K whose label bears a constituent Y then the two edges combine.

The result is a new edge from vertex I to vertex K whose remainder is the remainder of the active

edge reduced by the constituent Y.

Propose Event

The chart initially contains only inactive arcs, from the primitive elements of the sentence

that were fed in. For the fundamental event to take place there must be some active edges. An

active edge corresponds to a hypothesis about what may be present in the string. Hypothesis can

be formed either top-down or bottom-up. For natural language processing either strategy can be

used. But for composing mechanical parts, the bottom-up strategy of defining what the primitives

are and composing them by the composition grammar is more appropriate.

Formally, the bottom-up propose rule is stated as follows:

(I) X = [ A ] I [ ] (J) Y ::=X [C]

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

(I) Y = [ ] I X [ C ] (I)

unless the resulting edge is already present.

Page 9: Prototyping a feature based modelling system for automated process planning

203

IMPLEMENTATION

The chart parsing strategy has been implemented in Pmlog. From the definition of the solid

modelling primitives, a CSG tree of the mechanical part is derived through the parsing process.

The CSG tree defines hierarchically the composition of the mechanical part. The details of each

primitive is spelled out by the set-up mode in which feature class/name is defined together with

geometrical properties and orientation with respect the world coordinates. The expert system for

automatic process planning can directly access the feature set-up database and generate process

plans from these feature definitions.

The sample consultation in the attached appendix illustrates the derivation a CSG tree for a

mechanical part as defined by the following CSG phrase: cube union cylinder intersect wedge.

The spanning arc from the starting vertex to the end vertex is given by the fourth argument of the

edge predicate. It defines in Prolog list notation the final CSG tree that is being built from the

primitives according to the CSG phrase.

CONCLUSION

The use of a chart parser in developing CSG tree is elegant. However the work done towards

the building of a feature based modelling system for automatic process planning is still somewhat

incomplete. In order that ambiguities that arises from the parsing effort can be resolved, the

system has m be supported by a geometric reasoner which checks the geometric relationships of

the various primitives. The features defined in the set-up model can then successfully drives the

automated process planning system.

REFERENCES

1 T.C. Chang, R.A. Wysk, An Introduction to Automated Process Planning System, Prentice- Hall, Englewood, NJ, 1985.

2 H.P. Wang, R.A. Wysk, Intelligent Reasoning for Process Planning, Computers in Industries, 8(1987), pp 293-309.

3 S. Joshi, N.N. Vissa, T.C. Chang, Expert Process Planning Systems with Solid Model Interface, International Journal of Production Research, 1988, Vo126 No 5, pp 863-885.

4 J.J. Shah, M.T. Rogers, Functional Requirements and Conceptual Design of Feature-Based Modelling System, Computer-Aided Engineering Design Journal, Feb. 1988, pp 9-15.

5 S.K. Sim, K.F. Leong, The Role of Solid Modelling in the Development of a Generative Process Planning System, MANUTECH 88, NTI Symposium on Manufacturing Technology, 1988, ppl 1-20.

6 M.E. Mortensen, Geometric Modelling, John Wiley & Sons, NY, 1985. 7 J.M. Martin, The Final Piece to the Puzzle, Special Report, Manufacturing Engineering, Sept

1988, pp 46-51. 8 T. Winograd, Language as a Cognitive Process, Vol 1, Addison Wesley Publishing Co.,

1983. 9 Y.C. Ime, K.S. Fu, Machine Understanding of CSG: Extraction and Unification of

Manufacturing Features, IEEE Computer Graphics & Applications, 1987, Vol 7 No 1, pp 20- 31.

10 S. Steel, A. De Roeck, Bidirectional Chart Parsing, Cognitive Science Centre, Department of Computer Science, University of Essex, Colchester CO4 3SQ, UK, 1986.

Page 10: Prototyping a feature based modelling system for automated process planning

Quintus

Prclog

Release

1.5

{VAX/VM.S)

Copyright

(C)

1986

, Quintus

Computer

Systems,

Inc.

All

rights

reserved•

I ?-

[chartl,comprule,prim].

[LMPE:[MSKSIM~CHARTI.PL

consulted

(1.040

sec

6052 bytes))

[LMP

E: [MSKSIM)COMPRULE.PL

consulted

(0.080

sec 576 bytes)]

[LMP

E: [MSKSIM]PKIM.PL

consulted

(0.130

sec 74

8 bytes))

let •

parse (up) ,

CHART

PA~S ~ NG

Parse the following

CSG phrase

cube u

cylinder

n wedge,

Bottom up parse

FINAL CHART

edge (

l,pr

im,

[] , (prim(cube) ] ,2)

edge (

2, operator, [ ]

, [operator (u)) .

3)

edge (3~ prl

m. [] , [pr~m(cylinder[

I . 4

) edge (4, operator, [) ~ ]operator(n) ] . 5)

edge (

5, pri

m, [ ]

. [prim (

wedg

e) ] . 6)

edge ( 1,

feature. [p

rim[

, ] ]

, 1 )

edge (

I, feature, [ )

, [feature ( [prim (

cube

) ) ) ] , 2

)

edge (

i. Object. [p

rim]

. [] , I )

edge (

I, object, [ )

, [object ( [prim (

cube

) ] ) ) , 2)

edge (

3, feature. [p

rim}

. [ ]

, 3)

edge [3, feat=re. [I , [feature( [prim (

cylinder) ] ) ] . 4)

edge (

3, object, [p

rim]

, [[ . 3)

edge (3, obj

ect.

[ ]

, [ object ( [p

rim

( cy I inde r ) ) ) ] . 4 )

edge (5, feature. [p

rim]

. [ ] , 5

) edge (

5, feature, [] , [ feature [ ]prim]wedge) ] ) ] . 6)

edge (5, Object, [p

rim}

, [) , 5)

edge (

5, object, [ ]

, [ob

ject

( [p

rim

(wedge)) ) ] , 6 )

edge (

I, feature, [feature,0perator,

sub feature) , [) , i)

edge (

I, feature, [o

pera

tOr,

sub feature~,

[ I f

eature ( [prim (

cube

) ] ) ] ] , 2

) edge (

i, feature, [ s

ub feature ) , [ [ [ f

eature ( [prim (

cube

) 1 )

] , operator (u) ~

, edge (

1,pa

rt,

[obj

ectY

, [), i)

edge (

I, par

t. [ ]

. [pa

rt (

[ object ( [p

r im

(cu

be))

) ) I ~ , 2

) edge (

l,ob

ject

, {object,movement

1 , [] , i)

edge (

I, obj

ect,

[movement) , [ [object ( [prim (

cube

) I ) I ] ~ 2)

edge (

1, object ,

I object, movement, ob j oct ] , [ ] , 1 )

edge (

1, obj

ect,

[m

ovem

ent,

object ] , [ [object ( [prim (

cube

) ~ ) ] ] , 2

) edge (

1, obj

ect,

[O

bjec

t, operator, object ) , [ ] , 1 )

edge (

1, obj

ect,

[operator, ~bject ]

, [ [object ( [p

rim

(cub

e) ] ) ] ] , 2

) edge (

i, obj

ect,

[o

bjec

t) , [ [ [o

bjec

t ( [prim (

cube

) ]) ] , operator (u) [ ) , 3)

edge (

I, obj

ect,

[ ]

, [ob

ject

( [ [ [object ( [prim (

cube

) ] ) ] , o

perator (u) [ , o

bject ( [p

ri~

(c5'i

inde

r) ])

)) ]

,4)

edge (

I, par

t, [ ~

, [pa

rt ( [o

bjec

t ( [ [ [object ( [prim (c

ubel

] ) ] , o

perator (u) i , o

bject < [p

rim

(cyl

inde

r) 1 )

] ) ] ) ] , 4)

edge(l,object,

(object,operator,

feature], [3

,i)

edge (i, obj

mct,

[o

pera

tor,

featurel , I 1 o

bject ( Iprim (

cube

)) ) ] ] , 2)

edge (

i, obj

ect,

[f

eatu

re[

, [ [ [o

bjec

t ( [prim (

cube

[ ] ) ] , o

perator (u) ] ] ~ 3

) edge (

1, object , [ 1

, [ob

ject

( [ [ [object ( [prim (

cube

)) ) ] , o

perator (u) I . feature ( !p

rzm

(cy

find

er)

]) ]) 1,

4)

edge

(l,

part

, [ )

, [pa

rt (

[ob

ject

( [ [ [object ( [prim (

cube

) ] ) ) , o

perator (u) ] , ~

eatuze ( [

pri

m (c

ylin

der)

] ) ) ) ] ) ] , 4)

edge

(3,

feat

ure,

(feature.operate(,

sub

featurel, ~I, Z)

edge (

3, fea

ture

, [o

pera

tor,

su

b featu~e~. [ I f

eature ~ [p

r~m

Icyl

~nde

r! ~) ! ~ ~ ~)

edge(3,feature,

(sub

feature[

[~ feature{

pri~

c},li~e~l}

~cpe;at:~

: i

~ eJge!3~p~rt

ioD~ect~

[~ ~3}

edge(3,part,[],[part([object([prim(cylinder}])])],4}

~w~

edge(3,object,[object,movement],[],3)

edge(3,object,[movement],[[object([prim(cylinder)])]],4)

edge(3,object,

lobject,movement,object],[],3)

edge(3,object,[movement,object],[[object([prim(cylinder)])]],4)

edge{3,object,[objeet,operator,object],[],3)

edge(3,object,[operator,object],(Iobject([prim(cylinder)])]],4)

edge(3,obJect,[ebJect],[[[object([prim(cylinder)])),operator(n)]];5)

edge(3,object,[],[object([[[object([prim(cylinder)))],operator(n)],object([prim

(wedge)[)[)],6]

> edge(l,obJect,[),[object([[[object([prim(cube)])],operator(u)],object([[[object

([pri~(cyllnder)])],operatoz(n)),obj~ct(~primlwedge)])])])],6)

edge(l,part,[],[part([object([[[object([prim(cube)])),operator(u)],object{[[[ob

ject([prim[cylinder]])],operator(n)],object([prim(wedge)])))])])],6)

edge(3,object,[object,operator,

feature],[],3)

edge(3,object,[operator,

feature],[[object([prim(cylinder)])]],4)

edgQ(3,obJect,[feature],[[[object([prim(cylinder)))],operator(n)]],5)

edge(3,obJect,[[,[dbject([[[object([prim(cylinder)])~,operator(nll,~e~ture{[pr~

O m(.edge)][])[,~)

edge(1,object,[],[object([[[object([prim(cube)))].operator(u)].object([[[ob~ect

([prim(cylinder)])),operator(n)],feature[[prim(wedge)))))])],6)

edge(l,part,[[,[part([object([[[object([prim(cube)])],operator(u)],object([[[ob

Ject([prim(cylinder)])].operator(n)].feature([prim(wedge)])])])])).6)

edge(5.feature,[feature,operator,

sub feature[.]).5)

e~Q(5.foature,~operator,eubfeature~,[[feature([prim(wedge)])]].6)

> edge(5,part,[obJect],[],5)

edge(5,part,[],[part([object([prim(wedge

)])]

6)

edge(5,obJect,[obJect.movement].[],5)

edge[5,obJect,[movement],[[object([prim(wedge)])]],6)

edge (5,ob~ect. [object, movement,object).

[).5

) e~e(5,ob~ect,(movement,obJect],[~object([prim(wedge)~))[,6)

edgi(5,obj~ct,[obJectroperator,object],[],5)

edge(5,object,

(operator,object),

[[object([prim(wedge)))iB,6)

edge(5,obJect,[object,operator,feature],[],5)

edge(5,obJect,[operator,

feature],[[object([prim(wedge)~l]].6!

>

Spanning

Arc

edge(l,part,[],[part([object([[[ob3ect([prim(cube)]}],operatcr[ui,~,ch~eqti[c!

ject([prim(cylinder)])],operator(n)],object([prim(wedgel]}])!l]l~,6!

edge(l,part,[),[part([ob3ecti[[[object([prim(cube)!)]

o~er

atc~

r~u

i,chject

[[~t

ject([pri~(cylinder) il~cperatcr{n)],feature[[prir~;wedge)!i))~!~;~,~)

~#~

O >

yes

i ?-