Computers in Industry 21 (1993) 61 86 Elsevier
61
Survey
Feature modelling and conversion Key concepts to concurrent engineering W i l l e m F. B r o n s v o o r t and F r e d e r i k W. J a n s e n Faculty of Technical Mathematics and lnformatics, Delft Unicersity of Technology, Delft, The Netherlands Received June 6, 1992; accepted July 17, 1992
Feature modelling is a relatively new development in C A D / CAM. W h e r e a s in solid modelling only information about the geometry of products is stored, in feature modelling also functional information is stored in the product model. One aim of this article is to give an overview of the main concepts in feature modelling, another is to indicate the issues in feature modelling that are relevant for further research. There is much confusion about what features actually are, and therefore definitions, classifications and examples of features are first given. Because feature modelling builds on solid modelling, an overview of advanced solid modelling is given, with emphasis on the concepts of parametric and constraintbased modelling. Attention is next focused on representation of features. The two most important ways to define features in a product model, feature recognition from a geometric model and design by features, are then discussed. Design by features is illustrated by the GeoNode system. One of the main themes in this article is that for different applications, different features are required, and that therefore there is a need for automatic conversion between features. Such conversion is of particular importance for the support of concurrent engineering, in which several engineers from different disciplines work simultaneously on the design of a product.
Keywords: Solid modelling; Parametric modelling; Constraintbased modelling; Feature modelling; Feature recognition; Design by features; Feature conversion; Concurrent engineering
Correspondence to: Dr. W.F. Bronsvoort, Faculty of Technical Mathematics and Informatics, Delft University of Technology, Julianalaan 132, 2628 BL Delft, The Netherlands. Fax: +3115-787141.
1. Introduction
Feature modelling is a relatively new way of storing information about objects in C A D / C A M systems. First a brief overview of the evolutionary development towards feature modelling is given (Section 1.1). Then an overview of the article is given (Section 1.2).
1.1. From technical drawings towards feature modelling In C A D / C A M systems, information about the shape and other relevant aspects of objects is stored in a database. This information can be used by application programs for, among other things, stress analysis and process planning. The choice of information, and the form in which it is stored, determine the fraction of the application programs that can use it, and this fraction is a measure of the degree of integration of the system. The traditional way to store information about the shape of objects is by technical drawings. Because drawings are two-dimensional (2-D), three orthogonal views of the object, and possibly some extra views to resolve certain ambiguities and highlight details, are needed. The main problem with technical drawings, however, is that the drawings do not always unambiguously represent a three-dimensional (3-D) object. As a conse-
0166-3615/93/$06.00 ~ 1993 - Elsevier Science Publishers B.V. All rights reserved
62
Surcey
quence, it is impossible to have application programs that require an unambiguous representation. Therefore, technical drawings cannot serve as a general model of an object that is usable for all kinds of application programs in the C A D / CAM system. An important advance in the description of the shape of 3-D objects was the introduction in the eighties of solid modelling systems that unambiguously determine the shape of an object, by storing sufficient information about the 3-D geometry and topology of the object. The two most important representation schemes in solid modelling are boundary representations and constructive solid geometry. Such representations can indeed be used by many application programs, but it is now becoming clear that more than just shape information is needed to realize fully integrated C A D / C A M systems. A very important development in this context is feature modelling. With feature modelling, beside shape information, also other information about an object is stored in a so-called product model. The most important addition is functional information about the object. This may either be the function for the user of some part of the object, or infor-
Witlem F. Bronsvoort is associate professor of C A D / C A M at Delft University of Technology, The Netherlands. He received his master's degree in Computer Science from the University of Groningen in 1978, and his PhD degree from Delft University of Technology in 1990. He has several publications in international journals and conference proceedings, and is a member of the editorial board of Computer-Aided Design. His main research interests are geometric modelling, finite-element mesh generation, feature modelling, and assembly planning. Frederik W. Jansen is full professor of Computer Graphics at Delft University of Technology, The Netherlands. He received a master's degree in Industrial Design in 1975 and worked for several years in industry. In 1979 he became a staff member at the Department of Industrial Design of Delft University of Technology for research in C A D / C A M . After obtaining his PhD in 1987, he worked for a year as a visiting researcher at ........ IBM Research in Yorktown Heights, NY. In 1989 he became full professor at the Faculty of Technical Mathematics and Informatics in the Section Technical Applications. His research interests include rendering and interactive design of 3-D objects.
Uomputers in Industry
mation about the way some part of the object is manufactured or assembled. Much of this functional information can be modelled with form features, which are form elements with some function or meaning. Examples of form features are holes and slots. So not only the geometric description of form features is of importance, but also the functional information. Although the term " f e a t u r e " is sometimes also used for other information about objects, such as material properties, usage information and maintenance information, it is here mostly restricted to form feature. There are several applications that can use features. In particular in process planning for manufacturing, which has been the main motivation for the development of the feature concept, features have already been used for several years. Here features can identify areas in a product that can be manufactured in one operation with one type of equipment. As examples one can think of a hole that can be bored with a particular type of boring machine, or a slot that can be milled with a particular type of milling machine. Applications in other areas are also emerging now. For example, in analysis applications, features can identify. areas of objects that require, for whatever reason, extra attention in the analysis, and in assembly process planning, features can identify connections between subparts. In the design of objects, features can be used as well. Design features allow the designer to model objects with elements that are on a higher level, and closer to his way of thinking, than the lower level geometric elements used in solid modelling. Another use of features is in product model standardization and product data exchange. Using product models with features and other types of information mentioned, complete C A D / CAM integration becomes possible, at least in theory. All application programs of a system would have access to the central product model, and a user would not have to enter new, specific information for each application. In the ideal engineering environment, engineers from different disciplines could simultaneously work on the design of a product. After an initial conceptual model of an object has been defined, several engineers could simultaneously work on the product model, adding details to the design, but also running application programs for,
Computers in Industo'
14dF. Bronsvoort, F. IV. Jansen / Feature modelling and com'ersion
say, stress analysis, cost analysis or process planning. This approach is called concurrent or simultaneous engineering. Each engineer has his own way of looking at the object, i.e. his own view of the object. Many of the activities will result in modifications of the design. For example, stress analysis may show that some part needs to be modified. All modifications must be handled in a consistent way by the modelling system. If features are used in the context of concurrent engineering, this means that all design processes (conceptual and more detailed), and all applications, have their own specific set of features, and that each engineer should have that specific set of features at his disposal in his view of the object. This requires automatic conversion between features from one view to features from another view, which is still an open research issue. 1.2. Overview of the article As was already indicated, the term feature is not uniquely defined. The first reason is that there is no agreement on one definition, the second that features have different meanings in different al~plication areas. In Section 2, several definitions that have been attempted are given. Also a classification of features is given, and the fact that different applications require different sets of features is worked out to the concept of multiple feature views. An important aim of the section is to clarify the concept of features in general. After this section, only form features are considered. Feature modelling builds on a number of advanced solid modelling techniques, such as parametric modelling and constraint-based modelling. Objects can often be characterised by a restricted number of parameters, instead of by a complete geometric description. With parametric modelling, generic descriptions of objects can be defined, and instances of an object can be created by specifying the relevant parameters. Constraints are relations that must be satisfied between elements of a geometric model, for example that two faces must be parallel. In a constraint-based modelling system, constraints are automatically maintained by the system when variants of an object are created by varying parameters of the object description. Features can
63
also be described by parametric models, with constraints to maintain the validity of a feature and its relations with other features. Attention is given to these and some other relevant advanced solid modelling techniques in Section 3. In Section 4, a number of possibilities to represent individual features, based on the representation schemes used in solid modelling, and ways to represent relations between features, based on graphs, are discussed. Given an understanding of what features are, and how to represent them, the next question is how to incorporate them into the product model. The first possibility is to automatically recognize them in a solid model. Several feature recognition methods for both representation schemes used in solid modelling are discussed in Section 5. Also the problems occurring in feature recognition are discussed here. The second possibility is to design with features from the beginning, i.e. have the designer input a model in terms of features instead of pure geometric elements. The basic ideas behind this, and an example of a feature modelling system (GeoNode) are given in Section 6. The third possibility is to automatically derive a feature model for a particular purpose from an already existing feature model; this process is called feature conversion, and is worked out in Section 7. The main aim of this article is to emphasize the importance of constraint-based parametric modelling techniques for feature modelling, and of feature conversion to relate various views in a feature-based concurrent engineering environment. Conclusions about these, and some other issues, are collected in Section 8.
2. Definition and classification of features
The term feature is used with different meanings in the context of C A D / C A M . In this section, an attempt is made to clarify what is generally meant by it, mainly by giving previously published definitions, and examples. First several definitions are given (Section 2,1). Next examples, some basic distinctions and a classification are given; it turns out that features are mostly application specific (Section 2.2). Finally the concept of multiple views on a feature model is introduced (Section 2.3).
64
Survey
Computers in Industry cylindrical protrusion
2.1. Definition of features Collins Concise Dictionary [l] defines a feature
slot
~ocket
....
----_._/..__
"..;
i/
as"
-
"a prominent or distinctive part, as of a landscape, book, etc.". Three aspects are relevant in this definition. First, a feature is a part of a larger entity. Second, the part has some properties that distinguish it from the whole. Third, features can occur in all kinds of entities, and have a specific meaning for each such entity. In the context of C A D / C A M , several more specific definitions for the term feature have been given during recent years. In these definitions, a feature always refers to some aspect of a product model. Some definitions are tied to specific applications and are geometry oriented; examples of this are: - "geometry that corresponds to primary machining operations" [2]; - "a distinctive or characteristic part of a work piece, defining a geometrical shape, which is either specific for a machining process or can be used for fixturing a n d / o r measuring purposes" [3]. Other definitions are application independent, but still geometry oriented: "an area of interest on the surface of a part" -
[4];
"a region of interest in a part model" [5]. Some application-independent and more general, in the sense of not being restricted to geometrical aspects, definitions are: "a set of information related to a part's description" [6]; "elements used in generating, analyzing or evaluating designs" [2]; "a functional shape aspect for design and manufacturing" [7]. In the last sequence of definitions, not only the shape, or form, of parts, determined by the geometry, but also other information is mentioned. In particular, functional information plays an important role in these definitions. In Section 1.1, it was already argued that functional aspects are becoming more and more important in modelling. Often, the function of a part is more important than the exact shape of it, and it suffices to store functional information. Features can, however, also describe other product information, such as -
-
-
L_~
hole
~ -" 5_
3 f
Fig. 1. Examples o f form features.
material properties, technological parameters, and required manufacturing precision. On the other hand, the, often not completely specified, form plays a predominant role in many features, and such features are called form features. This article concentrates on form features.
2.2. Examples and a classification of features In this section, an attempt is made to further clarify the notion of feature. In Fig. 1, several examples of form features in an example part are given. A distinction can be made between elementary and compound features. Elementary features, also called atomic features, are simple features that cannot be decomposed into still simpler features. An example of an elementary feature is a hole. Compound features are more complex features composed of several elementary features. An example of a compound feature is a stepped hole, consisting of two concentric holes (see Fig. 2). Another distinction can be made between implicit and explicit features. Implicit or unecaluated or procedural features are features that are unambiguously defined, for example by a generic
-
Fig. 2. C o m p o u n d feature: a stepped hole.
Computers in Industry
W.F. Bronsvoort, F.W. Jansen / Feature modelling and conversion
description and a number of parameters for the specific occurrence (see also Section 3.4), but are not evaluated into an explicit geometrical description. An example of this is a screw whose type and sizes have been specified, which completely determines the screw, but whose exact shape, especially of the screwthread, is not represented, because it is not relevant for many purposes. Explicit or evaluated or enumerative features are features whose shape is explicitly described by a geometric model (see Section 3.1). In hierarchical modelling (see Section 6.1), some feature may be implicit at high levels of the model, and explicit at lower levels. The most important advantage of implicit features is that less detail occurs in a model. For example, if a rounded edge is modelled by a simple attribute for the edge indicating that it is rounded, together with the radius of the rounding, this is much simpler to represent than the complete geometry of the rounding, which can be very complex. Several attempts have been made to make a general classification of features, i.e. an application-independent classification. The classification given by Wilson and Pratt [5] was one of the first, and has seiwed as a basis for the Form-Feature Information Model developed for the STEP dataexchange standard [8]. The latter is shown in Fig. 3. In fact, it turns out that it is very difficult to make an application-independent classification of
~
features: different applications simply require different features. Some examples will be given now of such applications, and of features relevant for those applications. In designing an object, generic shapes and the results of shape operations that are easy to use by the designer to model the object can be considered as features. Examples are blind holes, through holes, slots, and blends. If a model is built with such features, this is called design by features. Modelling systems based on this principle are now becoming available. In Section 6, design by features is further explained. A good example of features used for design analysis, in particular stress analysis with the finite-element method, are local stiffeners. Part of process planning, which is concerned with the transition from design to manufacturing, is to determine the types and order of manufacturing operations needed to produce an object. In this application, subparts of a part that can be manufactured in one machining operation are often considered as features. Examples are a cylindrical hole that can be bored in one operation, and a slot that can be milled in one operation. It is obvious that the features to be used in a process planning application depend on the manufacturing operations available. Several classifications of features for process planning have therefore been proposed, and it is possible to define complete libraries of features to be manufactured by certain types of manufacturing equipment.
ORMFEATURES
~[E~sPtLIfCd"~un( nF~sA¢ nTalRyE~ ~.~ shapeelements / /
~MDLICIT FEATURES~
1 DEPRESSION
DEFORMATION PROTRUSION AREAFEATURE PASSAGE
TRANSITION
definition end bounds boundary end blends interruptions
TYPE : bend emboss partial cutout tubedeform twist
TYPE : edge blend comer blend
definition end bound end blend
65
TYPE : knurl thread marking coupling
Fig. 3. Feature classification of STEP,
definition end bounds boundary blends interruptions
66
Survey
( 'omputers in Industry
As a final example, in assembly planning, in which the order is determined in which parts can be assembled into a complete product, typical concepts related to assembly, such as screws and screw holes, can be used as features. From the examples above it can be seen that a general classification of features is very difficult, if not impossible. First, many basic entities would have to occur at many places in the classification, with different meanings. For example, a cylindrical hole could be a functional form feature in a design, an analysis feature with special properties in finite-element analysis, a process planning feature for a boring operation, and an assembly feature for connecting it to other parts. Second, the list of features would become very large anyhow if everything had to be covered. As already mentioned above, in process planning alone, many classifications are possible. The conclusion from this is that in many cases it is best to work with application-dependent feature classifications. 2.3. Multiple
feature
views on a product model
From the definitions given in Section 2.1 and the examples and the classification given in Section 2.2, it becomes clear that a feature is a general concept to describe some aspect of a part. Often, but not always, shape plays a role in a feature. This, however, is mostly a general notion of the shape, and not a specific geometrical description. Most important is the function of the feature in the context of the specific application. Features can play an important role in the integration of the design and manufacturing phases in a C A D / C A M system. Many problems in C A D / C A M systems working with a geometric model only are caused by a lack of information in such a model. If a product model with features is used instead, much more information on the product is available. This information can profitably be used by the applications in the C A D / CAM system, and makes integration of the applications feasible. However, as shown before, each application has its own set of features. So what is needed is the possibility that each application can have its own view of an object, i.e. its own "way of looking at the object" or definition of the object, with features relevant for that application. So there
stiffeners
slots
J //-:
/;/ //
//
finite-element view
process planning view
Fig. 4. Multiple views of an object. In the finite-element view the stiffeners are the features, in the process planning view the slots.
can, for example, be a design view, a finite-element view, a process planning view, and an assembly planning view. An example of multiple views of an object is a block with a cylindrical hole. Just as in the last example in the previous section, the cylindrical hole can be considered as different features, now with different relevant information in the different views. In the design view, the center line, the radius and the function of the hole might be considered, in the process planning view the center line, the radius, the starting surface and the boring method, and in the assembly planning view the center line and the radius and their tolerances. Another example is given in Fig. 4. It is a sheet metal plate with a number of stiffeners. In the finite-element view the stiffeners will be considered as features. The plate can, however, be manufactured not by putting the stiffeners onto a plate, but instead by starting with a somewhat thicker plate, and removing the material between the stiffeners by milling operations. So in the process planning view, the slots between the stiffeners will be considered as features. From the above two examples, it can be seen that one geometric element can be considered as different features in different views, but also that in different views different geometric elements can be considered as features. So each view distinguishes its own features. During the whole design and manufacturing process of an object, the different views have to be maintained simultaneously and kept consistent to support concurrent engineering. For this, possibilities to convert
Computers in Industry
W.F. Bronst,oort, F. lie Jansen / Feature modelling and conz'ersion
one feature view into other feature views, i.e. feature conversion techniques, are required. This concept is further elaborated in Section 7. Feature modelling in general, and feature conversion in particular, are strongly dependent on parametric and constraint-based modelling. Therefore, first these, and some other, advanced solid modelling techniques are reviewed in the next section.
67
v4
e4
v1
3. Advanced solid modelling After the era in which only computer-aided drafting was used to describe the shape of objects by 2-D drawings, solid modelling has emerged as a technique to unambiguously describe the 3-D shape of objects. A short overview of solid modelling is given (Section 3.1). An important aspect in design and manufacturing are dimensions and tolerances (Section 3.2). Non-manifold modelling (Section 3.3), parametric modelling (Section 3.4), and constraint-based modelling (Section 3.5) are useful techniques to extend solid modelling with dimensions and tolerances, or, more generally, form the basis for feature modelling.
3.1. Solid modelling The field of study concerned with input, representation and interrogation of the shape of 3-D solid objects is known as solid modelling. A solid modeller is a software system that implements the functions mentioned. It consists of a user interface for input of shape information, data structures for representation of the shape, display algorithms to generate an image of a model, and algorithms to generate shape information required by application programs. A number of books and articles are available that deal with the fundamentals of solid modelling in detail, such as Requicha [9], Mortenson [10], Mhntylh [11], and Bronsvoort et al. [12]. Only a brief overview of the theory is given here, without further references. Several unambiguous representation schemes for solid models, i.e. methods for representing shapes and the related data structures, have been developed. The most important are boundary representation and constructive solid geometry (CSG).
Fig. 5. B o u n d a r y r e p r e s e n t a t i o n of a t e t r a h e d r o n .
3.1.1. Boundary representation Boundary representations are based on the observation that a solid object can be considered as being bounded by a number of faces, which are bounded by a number of edges, which in turn are bounded by two vertices. Information is stored about these boundary elements and their adjacency relations. A face, which may be planar or curved, can be represented by the equation of the surface of which it is a part, and references to its bounding edges. An edge can be represented by the equation of the line or curve of which it is a part, and references to its bounding vertices. A vertex can be represented by its (X,Y,Z)-coordinates. The data structure is a graph, with nodes (records) for the boundary elements, and links (pointers) for the references between these elements. The links between the nodes represent the adjacency relations between the boundary elements. In fact there are many variants, both in the types of references stored (the topological information), and in the types of equations and coordinates stored (the geometrical information). See Fig. 5 for a possible boundary representation of a tetrahedron. Many boundary modellers provide only planar faces, because the representation is simpler, and many operations, e.g. display, are simpler and faster. The disadvantage is that curved faces have to be approximated by planar faces, which gives inaccurate results and requires more memory.
68
Survey
Fig. 6. CSG model and its CSG tree.
The main advantage of boundary representations is that information about faces, edges and vertices is explicitly stored in the representation, which is useful for many purposes, e.g. fast display. The main disadvantages are the complexity of the data structure and the rather large amount of memory needed.
3.1.2. Constructive solid geometry CSG is based on a collection of primitive solids, such as cubes, cylinders and spheres. Instances of these are scaled, rotated and translated in 3-D space. Each of the transformed primitives determines a set of 3-D points, and they can be combined by applying the set operations union (U), difference ( - ) and intersection ( n ) to form more complex, composite objects. The data structure is a binary tree called the CSG tree. All nodes in the tree are again records. At a leaf node, also referred to as a primitive node here, information about a primitive is stored. At an internal node, also referred to as a composite node here, the set operation to be applied to the objects defined by the left and right branches of that node, together with pointers to these branches, are stored. See Fig. 6 for a CSG model and a schematic representation of its CSG tree. The primitives can be represented by the equations of a number of surfaces, each of which divides space into two halfspaces, one on each side of the surface. A primitive is then the intersection of a number of such halfspaces. For example, a cube is defined as the intersection of six
(omputers in lndusto,
halfspaces, each defined by a plane. Explicitly expanding a CSG tree with primitives into a CSG tree with halfspaces, results in a CSG halfspace model. An alternative is to represent a primitive by a boundary representation, as previously described. The main advantages of CSG are that it can serve very well as a basis for specification of models because of its compactness (quite complicated objects can be modelled, even with a restricted number of primitives), and the simplicity of the data structure. The main disadvantage is that there is no explicit information in the representation about the faces, edges and vertices of the composite object, which makes it less suitable for certain purposes.
3.1.3. Boundary evaluation The conversion from a CSG representation into a boundary representation, usually called boundary evaluation, is important, because in many solid modellers CSG is usable during model specification, or is even the main representation, and a boundary representation is used for applications. The input for a boundary evaluation algorithm consists of a CSG tree, its output is a boundary representation of the composite object. All boundary evaluation algorithms come down to intersecting the primitives with each other, subdividing the boundaries of the primitives into parts, selecting the relevant parts, and combining these into the boundary of the resulting object. The conversion is very complicated, even if it is approximated with planar faces only. 3.2. Dimensions and tolerances The main representations used in solid modelling are based on mathematical equations of, and relations between, the elementary geometrical elements faces, edges and vertices (boundary representations), and on set combinations of transformed primitive objects (CSG). These representations do not directly correspond to entities normally used in engineering practice, in particular dimensions and tolerances. For example, a cylindrical hole is represented by the equation of the surface in a boundary representation, and by a subtracted primitive cylinder in a CSG representation. For many applications, however, a representation in terms of
Computers in Industry
W.F. Bronst'oort, F.W. Jansen / Feature modelling and com,ersion
the center line and the radius of the hole is preferred. The position and orientation of the center line relative to other entities, and the radius, are then the dimensions of the hole. The relations between the solid modelling representation and the dimensions are not always straightforward. The dimensions of an object specify a nominal object. In practice, however, it is impossible to produce an object exactly according to the nominal dimensions, due to finite precision of manufacturing equipment. Therefore some deviation of the nominal dimensions must be allowed. To specify the deviations that are allowed, tolerances are used. A tolerance for a dimension specifies the range the dimension must be inside. In general, one can say that the tighter the tolerances, the higher the manufacturing costs. Each object with dimensions within the tolerance ranges is considered to be an acceptable instance of the nominal object. Dimensioning and tolerancing information is indispensable in many C A D / C A M applications, in particular process planning for manufacturing and assembly. A number of theories for handling dimensions and tolerances in solid modellers have been proposed [13,14]. Such theories give ways to specify, represent and analyze dimensions and tolerances in a solid model. The current theories are still inadequate. Although it is possible now to equip a solid modeller with techniques to represent tolerances, it is still very difficult to determine how dimensions and tolerances of parts influence tolerances of the whole object. Both discrete methods working with upper and lower limits for dimensions only, which lead to a worstcase analysis, and statistical methods working with statistical distributions for dimensions, which lead to more realistic results, are used. Also, sometimes deviations from the nominal dimensions of parts can even change the topology, i.e. the structure, of an object. How the validity of resulting objects can be guaranteed in all cases is not clear yet. As a result, simple models can now be handled with the theories, but complicated models with all sorts of tolerances cannot. To make solid modelling with dimensions and tolerances and, more generally, feature modelling possible, techniques are needed from other areas: from non-manifold modelling to specify reference lines and surfaces; from parametric modelling to
69
specify dimensions; and from constraint-based modelling to specify tolerances. These advanced solid modelling techniques, which have many other applications too, are discussed in the next sections.
3.3. Non-manifold modelling With conventional boundary and CSG representations, only two-manifold objects, or manifold objects for short, can be represented. These are formally defined in mathematical terms as objects from which each point on the boundary of the object has a neighbourhood that is equivalent to a 2-D disk. In practice this means, among other things, that: - each edge belongs to exactly two faces; - each vertex is surrounded by one sequence of edges and faces; - faces intersect only at common edges and vertices; - there is a volume on only one side of a face. For specifying dimensions and tolerances, for feature modelling in general, and for many other purposes, such as finite-element analysis where a solid object is subdivided into a mesh of tetrahedrons, representation of non-manifold objects is also required. Such objects can have faces, edges and vertices that do not meet the requirements of manifold objects. Non-manifold modelling offers the following possibilities and advantages: - the shape domain of non-manifold representations is much larger than of manifold representations: for example, it is possible that two edges or faces touch in a non-manifold model, and dangling faces and edges are possible (see Fig. 7 for a typical non-manifold object); - wire frame, boundary and volumetric models can all be integrated in one representation, which is useful in several applications;
Fig. 7. Non-manifold obiect.
70
Surcey
geometric information such as reference lines and surfaces can be included in the basic geometric model. A disadvantage of non-manifold modelling is the increased complexity of the data structure and its access routines. For a more comprehensive discussion on non-manifold modelling, including the underlying theory and a suitable data structure see [15]. -
3. 4. Parametric modelling In solid modelling, objects can often be characterized by a restricted number of parameters. The simplest examples are the primitive objects in CSG modelling systems. For example, a block can be characterized by its length, width and height, and a cylinder by its radius and height. Such objects are called parametrized objects. Parametrization is not restricted to these primitive objects: in Fig. 8, a block with a parametrized V-shaped slot is shown. The basic idea, however, is the same: by varying one or more parameters, different objects can be defined. If objects can be defined in this way in a modelling system, this is called parametric modelling. Collections of predefined objects are available, and the modelling system provides a mechanism to specify the parameters for a specific object. The parameters are mostly dimensions of the object. To implement parametric modelling, a system should provide a mechanism to create a parametrized description of an object, and store this in a library. Such a description is called the generic definition of the object, and each occurrence of the object is called an instance of the object. Several instances of one generic object can occur in a model. On the basis of the specified parameters and the generic definition, the required representation of an instance in a particular solid modelling system, i.e. a boundary or a CSG representation, can be derived. If the
t 'omputers in lndusto' 4 holes in circular pattern
6 holes in circular pattern
@
Fig. 9. Objects with a circular pattern of holes. The number of holes is one of the parameters (topological parametrization).
generic definition of an object is modified, all occurrences are automatically modified according to the new definition. A generic definition can be compared to a procedure declaration in a programming language, an instantiation to a procedure call. Two types of parametrization can be distinguished: geometrical and topological parametrization. In geometrical parametrization, only the geometry, or the position and dimensions, of an object can vary, but not its structure. In topological parametrization or structural parametrization, also the structure of an object can vary. An example of topological parametrization is the occurrence of a number of instances of a simple part in a regular pattern. A pattern has as one of its parameters the number of instances of the simple part in the pattern. The pattern can, for example, be linear, rectangular or circular (see Fig. 9 for an example). There are two important advantages of parametric modelling. First, model specification of often-used objects by specifying a restricted number of parameters is much simpler for a designer than in a modelling system without parametrized objects. Although the generic definition of an object has to be specified before instances can be created, this can be done by a specialist in writing such definitions. Second, standardization can easily be enforced by allowing designers to use only standard parametrized objects. The power of parametric modelling can be further increased by making available constraints, which is the subject of the next section.
3.5. Constraint-based modelling
Fig. 8. Block with a parametrized V-shaped slot.
With parametric modelling, several instances of a generic object can be created by specifying the appropriate parameters. Often, in all in-
Computers in Industry
IJ,LF. Bronst,oort, F. H4 Jansen / Feature modelling and ~om ersion
stances certain relations between elements of the object should be maintained. Examples are that two points should have the same X-, Y- or Z-coordinate or have a fixed distance, that the axes of two cylinders or that two faces should be parallel, and that the bottom face of some block should be coplanar with the top face of another block. Constraints can help to maintain such relations, and thus enable a high-level way of modelling. The elements of the model do not all have to be explicitly positioned in 3-D space, but can be defined in relation to each other. Also tolerances can be specified with constraints. A constraint defines a relation between two elements in a generic object definition. After the user has defined a set of constraints in the generic definition, various instances of the object that match the constraints can be generated by varying the parameters of the object definition. Constraints are automatically maintained by the modelling system, i.e. the system takes care that in each instance of the object the relations are satisfied. For example, if a face is declared to be parallel to another face, and the latter face is rotated, the first face is automatically rotated too, in such a way that the two faces are still parallel. It thus frees the user from maintaining the relations. Such modelling is called constraint-based modelling. Several constraints can be specified for one model, Processing the constraints for some set of p a r a m e t e r values by the modelling system is called constraint soh'ing. This can be a very complicated process, especially if many constraints are specified, because of interdependence between different constraints. Computing times can become very high if many constraints are specified, which is particularly undesirable in interactive modelling systems. Problems arise if constraints are contradictory, i.e. if no configuration of the object exists that satisfies all constraints, or if the specified set of constraints is incomplete, i.e. if the constraints do not uniquely determine all variable entities, so that several configurations are still possible. These situations are also called ot~er- and under-constrained respectively. An over-constrained situation may be handled either by preventing the specification of conflicting constraints, or by giving priorities to the constraints. An under-constrained situation is best handled by assuming plausible defaults for undetermined entities.
71
There are three main types of constraint solving techniques: numerical techniques, symbolic methods, and geometric reasoning [16]. Numerical techniques try to simultaneously solve the whole constraint set using numerical computations. An initial guess is made of the values of the variables, an estimate is made of the error, and a next guess is made of the values of the variables. This iteratively continues until there has been sufficient convergence to the solution. Examples of numerical techniques are N e w t o n Raphson iteration and relaxation. Symbolic methods try, by manipulating symbols, to rewrite the constraint equations in such a way that the equations become simpler. As soon as the equations cannot be further simplified, either the values of the variables have been determined or the resulting set of equations has to be solved by, for example, a numerical technique. Examples of symbolic methods are local propagation and term rewriting. Both numerical techniques and symbolic methods are generally applicable, and therefore do not exploit specific information from the application. Geometric reasoning, on the other hand, does exploit the fact that a solution is searched for a set of geometric constraints. Intermediate results no longer consist only of numbers, but also of information about the geometric meaning of these numbers. Geometric reasoning techniques can make use of numerical techniques or symbolic methods to solve subproblems. An interesting example of the geometric reasoning approach is propagation of geometric constraints with quantum labels [17]. A distinction can be made between simultaneous and incremental constraint solving. With simultaneous constraint soh'ing, all constraints are simultaneously handled. With incremental constraint soh~ing, constraints are handled one by one [18,19]. The sequence in which the constraints are handled may follow automatically from the model specification, or may have to be separately specified by the user. Incremental constraint solving is preferable, because the result is more predictable as it is easier to foresee the effect of individual constraints, local re-evaluation is possible after changes, and it is in general the more efficient technique. Constraint-based parametric modelling offers a very powerful way of modelling, and is a key to
72
Survey
Computers in Industry
feature modelling: parametrization and straints play a dominant role in that field.
4. Representation
con-
of features
The main approaches to the representation of elementary form features are closely related to the main representations used in solid modelling: there are boundary features models, CSG feature models, and halfspace feature models (Section 4.1). The relations between elementary features in a compound feature, and the adjacency relations between features, can be described by a feature graph (Section 4.2).
4.1. Boundary and CSG feature models Both representation techniques for solid modelling mentioned in Section 3.1, boundary representation and CSG, are suitable for representing elementary form features. A boundary representation of an object contains explicit information about the faces, edges and vertices of the object, and the relations between these elements. A CSG representation describes how the object is composed of primitive objects, and contains information about the faces, edges and vertices of the object only implicitly.
4.1.1. Boundary feature models Two types of feature models are possible using boundary representations for representing form features: surface features and volume features. Surface features are form features represented by a number of faces (and edges and vertices) that do not form a closed volume. Volume features are form features represented by a number of faces that do form a closed volume. The difference between the two is the set of closing faces of a feature that are not present in a surface feature, nor in the real object, but are present in a volume feature. See Fig. 10 for two examples of surface features (Fig. 10(a)) and of volume features (Fig. 10(b)). The model with the volume features is a non-manifold, because there is a volume on two sides of several faces of the features, and three faces intersect at several edges of the features. The closing faces are in principle superfluous for the model.
(a)
(~)
Fig. 10. (a) Surface features and (b) volume features.
There are, however, several advantages of using volume features, for example [20]: - removal and repositioning of volume features is simple, because the closing faces of a volume feature indicate the old boundary of the object; using surface features, this information is lost; - representation of more complex features composed of a number of simpler features is simpler using volume features; - for manufacturing operations, such as milling a slot and boring a hole, the start surface of the tools is present in volume features in the form of a closing face; using surface features, this information is not present. The disadvantage of volume features is the higher complexity of the model: faces are included in the model that do not belong to the geometry of the object. The main advantages of using boundary feature models are: - features can be connected to individual faces, edges or vertices, because these are explicitly present in the model; - interference detection between two features, an important operation in some applications, is relatively simple.
4.1.2. CSG feature models In a CSG feature model, features are represented by primitive objects that are combined with an initial object by set operators, mostly the difference operator. The main advantages of CSG feature models are: there is a close connection between entities, such as parameters and axes, in features and in CSG models; a model can be built in a fast, simple and intuitive way; a model is always valid.
Computers in Industry
W.F. Bronscoort, F. lie Jansen / Feature modelling and conversion
73
4.2. Feature graphs
~'
~i~ i"
Fig. 11. Slot m o d e l l e d w i t h t h r e e h a l f s p a c e s .
4.1.3. Halfspace feature models Faux [4] and Van Emmerik [7] combine the best of boundary and CSG feature models by using a halfspace representation. Halfspaces were introduced in Section 3.1 as a representation technique for the primitives in a CSG representation: a primitive can be represented as the intersection of a number of halfspaces. Features are also represented by a number of halfspaces, but the intersection of these halfspaces does not necessarily have to be a closed volume, as for the primitives in a CSG representation. In Fig. 11, a slot is modelled as the intersection of three halfspaces. The main advantages of halfspace feature models are: features can be connected to individual halfspaces; - models can be compact; for example, removal of a corner of an object can be modelled by subtracting one halfspace, whereas in a CSG feature model this requires a block with six halfspaces; - halfspaces are closely connected to elementary manufacturing operations, as they represent both the delta-volume of the operation and the resulting surface. A disadvantage is that the validity of an object is no longer guaranteed. This disadvantage can be overcome by using constraints (see Section 3.5) which can fix certain relations between halfspaces of a feature in such a way that the validity is guaranteed. For example, in the slot of Fig. 11, a constraint can be defined to guarantee that the distance between the two side planes is larger than zero, i.e. that the slot has a positive width. -
Beside techniques to represent elementary form features, techniques are required to represent relations between several features in a feature model. For this purpose a feature relationship graph, or feature graph for short, is mostly used. The leaf nodes in the graph are used to store information about the elementary features in the model, and the links between the nodes to store relations between the features. Storing information about the geometry and the topology in a graph increases the efficiency of building, changing and accessing the model. Shah and Rogers [6] mention two types of relations that can be represented in a feature graph. First, relations between elementary features in a compound feature can be stored. In a compound feature, it is often possible to consider one feature as the basic feature, and the other features as dependent features. The basic feature is then first defined and positioned, and the dependent features are defined and positioned relative to the basic feature. Modifications in the basic feature will be automatically passed on to the dependent features. Of course, dependent features can be basic features again for other dependent features. In this way a hierarchical structure, which can very well be represented by a graph, arises. Second, the adjacency relations between features can be represented. These relations are important for, among other things, determining the order of machining operations. The adjacency of features can be represented by pointers between adjacent features. Building feature graphs that include information about individual features, is the subject of the following sections. There are three basic methods to determine features in a product model. Feature recognition starts from a geometric model, and tries to identify features that are relevant for a particular application in that model. This is discussed in Section 5. An alternative is to work with a feature model right from the beginning, i.e. the designer does not specify a geometric model but a feature model. This has several advantages, and is discussed in Section 6. Finally, given a feature model of an object, it may be necessary to have a model of that object with other features. If this model can be automatically
74
Survey
derived from the existing feature model, this is called feature conversion, which is discussed in Section 7.
5. Feature recognition The first applications in which features were used, which were in particular applications for process planning for manufacturing, were based on feature recognition: given a geometric model of an object, try to find the relevant features in this model. Although alternative approaches are now emerging, feature recognition techniques will probably play an important role in the future too. In this section, first the basic ideas of feature recognition are given (Section 5.1). Several methods for feature recognition have been developed; some of these are discussed (Sections 5.2 and 5.3). Finally some inherent problems of feature recognition are enumerated (Section 5.4).
5.1. Basic ideas Feature recognition is the interpretation of a geometric model of an object to identify the relevant features. The features to be recognized can be application specific. If nothing more than the geometric model is present, this is in fact the only way to go. If, on the other hand, features are already used in the design phase, or feature conversion techniques are used, alternative approaches become feasible (see the next two sections). Feature recognition can, in principle, be done by the user [2]. In this approach, the user can, after having defined the geometric model, pick certain entities in an image of the model on the screen, for example some faces, and define these as a feature. As an example, the user can pick three faces, and define that these form a slot. Although this approach is feasible for simple objects with a restricted number of features, it is not for more complex objects with many features. Also for each application, the specific features have to be selected by the user. If complete integration of C A D / C A M is to be realized, feature recognition should be automated. In the ASU Features Testbed, the user can pick some entities that are part of a feature, and have the system search for the rest of the entities of the
Cbmputers in Industry
feature [21]. So this is a mixture of feature recognition by the user and automatic feature recognition, which can increase the efficiency of the recognition process. Feature recognition by the user will, however, not be considered any further here, and in the following only automatic feature recognition techniques are discussed. The input of an automatic feature recognizer is a formal description of the geometry of the object, i.e. a geometric model, and a formal description of the generic features that should be recognized. The output is a list of recognized instances of features with their parameters and their organization. Parts of the geometric model and the formal description of the features are matched to recognize common patterns. A distinction can be made between several phases, for example: recognition, parameter determination, extraction, and organization [22,23]. In the recognition phase, the features are identified, in the parameter determination phase, the parameters of the features, for example the diameter and depth of a hole, are computed from the geometric model. In the extraction phase, the features are removed from the geometric model. In the organization phase, the features are arranged in a feature graph (see Section 4.2). As the recognition phase is the most difficult and interesting, we will concentrate on this. Depending on the type of geometric model of the object, a boundary representation or a CSG model, different approaches to feature recognition have to be taken. Having a boundary representation, combinations of faces, edges and vertices have to be recognized as features. There are several approaches to this, basically differing on the type of the formal description of the geometric model and the generic features. Some important approaches are discussed in Section 5.2. Having a CSG model, primitives and combinations of primitives have to be recognized as features. Problems associated with this, and the most important approach reported until now, are discussed in Section 5.3.
5.2. Recognition techniques for boundary representations Many proposals for methods for feature recognition from a boundary representation have been made, Some of the methods can recognize only a
Computers in Industry
fl
convex
I~ F. Bronsvoort, F. 14I.Jansen / Feature modelling and com,ersion
f fl
c°9vex
3 /',, '~ ~
f4
Fig. 12. A slot and a protrusion have a different sequence of edges.
very restricted set of features, other methods a much larger set. Not all methods are mentioned here, but only some representative ones. The first three classes of methods, syntacticpattern methods, rule-based methods, and graphbased methods, are all based on matching patterns of faces, edges and vertices, but differ in the way the patterns for the features and in the model are described. In fact, many methods use concepts from more than one class. Both the topology, for example the number of faces and their adjacency, and the geometry of the patterns have to be taken into account in these methods: two elements can be topologically the same, but constitute a different feature. As an example, consider a rectangular block that is removed from another object, and a rectangular block that is on top of another object (see Fig. 12); topologically the two blocks are the same, but the first block is a slot and the second a protrusion. The difference between the two can, for example, be detected by geometrically classifying the edges as convex or concave, depending on the angle of the two faces meeting at the edge [24]. For the slot in Fig. 12, there is a sequence of edges of the types convex, concave, concave, and convex, for the protrusion a sequence of edges of the types concave, convex, convex, and concave. The methods from the fourth class, the volume-decomposition methods, take a completely different approach.
5.2.1. Syntactic-pattern methods" Syntactic-pattern methods [24,25] use sequences of geometric elements, such as directed straight line segments and circular segments, to describe 2-D geometric patterns. Such a sequence of geometric elements is represented as a string
75
of codes, each code representing a particular geometric element. This string is searched for substrings representing particular features, or, more specific, a parser checks whether substrings of the string can be generated by a grammar describing the features. Syntactic-pattern methods work only in 2-D, and not in 3-D, because of sequencing problems of geometric elements in 3-D. For example, the faces of a 3-D object do not have a unique sequential order, because of their adjacency to several other faces. Therefore, the methods are restricted to 2-D cross-sections, and thus to 2½-D features.
5.2.2. Rule-based methods Rule-based methods [22,25] use production rules to describe features. A production rule specifies a series of necessary and sufficient conditions for elements in the model, for example convexity, perpendicularity or adjacency, to constitute a particular type of feature. An example of such a rule for a simple cylindrical hole from Henderson and Anderson [22] is: if a hole entrance exists, and the face adjacent to the entrance is cylindrical, and the face is convex, and the next adjacent face is a plane, and this plane is adjacent only to the cylinder, then the entrance face, cylindrical face and plane comprise a cylindrical hole.
The rules are actually formalized as clauses in Prolog, and the model is converted into facts in Prolog. Patterns are searched with Prolog's standard matching mechanism. Rule-based methods can deal with general 3-D features, but writing a rule for every type of feature is rather cumbersome, and the recognition process is slow.
5.2.3. Graph-based methods As already remarked in Section 3.1, a common data structure for boundary representations is the graph. The nodes represent the boundary elements, and the links between the nodes represent the adjacency relations between the boundary elements. In Fig. 5, an example of a graph was given with links from the faces to the edges, and from the edges to the vertices. Other graphs are also possible, and sometimes more useful.
76
Survey
Computers in Industry
that it is therefore easier to teach new patterns to the recognizer with this approach. Graph-based methods are probably the most frequently applied feature recognition technique at the moment, in particular because of their efficiency. Fig. 13. Face-edge graph of the tetrahedron of Fig. 5.
In feature recognition, in particular the faceedge graph has become popular. All faces are represented by a node, and all edges by the link between the nodes of the two adjacent faces. So there are no longer nodes for the edges here, but these are now represented by a link between two face nodes (see Fig. 13 for the f a c e - e d g e graph of the tetrahedron of Fig. 5). In fact often an attributed, or augmented, face-edge graph is used in feature recognition, which means that, for example, an attribute describing the convexity classification of the edge is added to each link. Joshi and Chang [26] were among the first who used an attributed f a c e - e d g e graph for feature recognition. All features that must be recognized are described by such a graph, and so is the boundary representation of the model. Graph matching, i.e. checking whether subgraphs of the model graph correspond to feature graphs, is executed to recognize features. See Fig. 14 for the attributed f a c e - e d g e graphs of the slot and the protrusion of Fig. 12. The method is able to recognize polyhedral features only. Sakurai and Gossard [27] use more properties to describe features, such as the geometric type of a face, and parallelism and perpendicularity of faces. Their method can therefore recognize more types of features. Chuang and Henderson [28] use a vertex-edge graph instead of a f a c e - e d g e graph. They claim that patterns are easier to define, and
5. 2.4. Volume-decomposition methods Volume-decomposition methods are completely different from the methods of the three previous classes. The idea is to determine the material that has to be removed from a base part to get the object that is searched for features, and to decompose this material into several volumes. There is a close correspondence to machining: the volumes can be considered as machining operations. Woo [29] uses a decreasing convex-hull algorithm to decompose the material. In this algorithm, the set difference between the object and its convex hull is recursively determined until a convex object remains. The object can then be represented as a sequence of convex volumes with alternating union and difference operators. This method can, however, result in volumes that do not correspond to real features. Also, the algorithm is not robust: it does not always terminate before decomposition is complete. Recent advances [30,31] might, however, solve the latter problem. In the method of CAM-I [32], the material to be removed is determined by subtracting the object from the base part by a difference set operation. This material is then decomposed into delta volumes. First a number of primitive delta volumes is recognized and extracted from the material. More complex delta volumes are determined by intersecting the material with a number of parallel planes, relating the resulting subsequent cross-sections to determine super delta volumes, and decomposing these into delta volumes. Finally the delta volumes are compared to the set of generic features that must be recognized.
sl0t
5.3. Recognition techniques for CSG models protrusion cv= convex cc= concave Fig. 14. Attributed face-edge graphs of slot and protrusion of Fig. 12.
By far most research on feature recognition until now has been done for boundary representations; only a few attempts have been made for CSG models. In a way, this is somewhat surprising, because one might say that in CSG models
Computers in Industry
W.F. Bronsz~oort, F. 14~ Jansen / Feature modelling and cont,ersion
many features of interest are already there in the geometric model in the form of primitives that are unioned with, or subtracted from, other primitives, and as such could, in principle, be easily recognized. Feature recognition in boundary representations has some inherent difficulties related to this that are not present in feature recognition in CSG models. Woodwark [33] signals two such inherent problems. The first is a general problem of boundary representations. Consider the object of Fig. 15, in which part of a cylinder is removed from a second cylinder. The CSG model of this object is very simple: it is the set difference of the two cylinders. The boundary representation, however, requires that, during a boundary evaluation (see Section 3.1), the equation of the intersection curve of the two cylinders is computed, and this is very difficult. Additionally, the equation is not really required for many applications, for example shaded display [12], and possibly also feature recognition, and its computation should therefore be avoided if possible by directly operating on the CSG model. The second problem is that often certain spatial information is hard to compute from a boundary representation. Consider the example of Fig. 16, in which two intersecting blocks are removed from a third block. For some applications, it is required that the disconnected slots A and B are considered as one feature, because their faces are aligned. This is difficult to determine from a boundary representation, because there is no topological connection between the two slots, but easy to determine from a CSG model, because the two slots arise by subtracting one single block.
Fig. 15. Intersection curves of two cylinders, which are required in a boundary representation, but not in a CSG model.
77
A B
Fig. 16. From a boundary representation of this object it is difficult to determine that slots A and B constitute one feature, whereas this is easy for a CSG model.
On the other hand, Woodwark [33] argues that feature recognition in CSG models also suffers from some difficult problems. He mentions in particular the non-uniqueness of a CSG model, i.e. that one object can be represented by several CSG models, and the global nature of a CSG model, i.e. that primitives that constitute some local shape aspect, and thus feature, in the composite object are not necessarily isolated in one part of the CSG tree but can instead be distributed throughout it. However, he also suggests that solutions for these problems might be possible. The first solution suggested is restricting the complexity of the CSG models by restricting the range of primitives, their orientation and spatial interaction with other primitives, and the allowable types of expressions; this may, however, lead to unacceptable restrictions in the types of models that can be handled. The second is using templates for features, consisting of combinations of primitives, and attempting to match these to the CSG model. The third is trying to use a kind of boundary representation that is easier to compute than traditional boundary representations by avoiding explicit computations as far as possible, and is additionally more spatially oriented. Some of these ideas have already been tried by Lee and Fu [34] in the most important attempt published so far to do feature recognition from a CSG model. Lee and Fu [34] use rearrangement of the CSG model for a rather restricted class of objects. They also observe that CSG models are non-unique and are hard, or even not at all, to unify, and have therefore developed a technique to at least unify feature representations. To illustrate the non-uniqueness of CSG models, they
78
Survey
Computers in lndust~
5.4. Problems with feature recognition
er_(" cube_A cube_B
cu~_A'~ cubeD cylinder_C
Fig. 17. Two ways to model a rounded block with CSG.
give an example of two ways to model a rounded block with CSG: one way is as the union of two blocks and a cylinder, and the other as the difference of a block and another block from which a cylinder has been subtracted (see Fig. 17). So the rounding feature can be modelled in more than one way, and, in general, the primitives and operations involved in a specific feature can be quite different and, additionally, be distributed throughout the CSG tree in several ways. The question addressed by the authors is now how equivalent configurations of primitives corresponding to a particular feature can be transformed into a unified representation that is most desirable for, for example, manufacturing purposes (in Fig. 17 this is the second representation). They use the principal axes of the primitives of the model for this. First, all these axes are determined, and partitioned into clusters based on spatial relationships. Within these clusters, axes involved in a particular feature can be located according to conditions specified for that feature. The final step is to unify the feature representations by restructuring the CSG tree, first by bringing together in the CSG tree the nodes that belong together but are far away from each other in the original CSG tree. After nodes participating in a feature are grouped in a subtree according to a unified order, the representation of the feature has also become unified, or can now be transformed into a unified representation by replacing the subtree by an equivalent subtree. The approach of Lee and Fu [34] is very interesting, but it is questionable whether it can be generalized to arbitrary geometric models and features [33].
Feature recognition offers a way to extract features from a geometric model without any further, more feature-oriented information being known about the object. As such it has shown its value, in particular in process planning for manufacturing [35]. There are, however, several inherent problems to this approach: - as will be obvious from the previous sections, the recognition process is very complex and often works for a restricted class of geometry only, and, especially in recognizing complex compound features, things can easily go wrong; - the recognition algorithms are application dependent, i.e. they recognize only features for the application they are programmed for (this can, however, be considered as an advantage too); - information that is not present in the geometric model, for example tolerances and surface finish, cannot be recognized. In a way, feature recognition is a redundant activity: in the design phase, high-level conceptual product information is translated by the designer into low-level geometric information, which in turn is processed in the feature recognition phase to recover high-level product information again. Extraction of features would be much easier if the product model would contain such a high-level description, instead of a low-level geometric description, from the beginning. This is the case if design by features is applied, which is the subject of the next section.
6. Design by features
Design by features, the construction of a product model by features, is a relatively new approach [36,37]. Assignment of a (functional) meaning to parts of an object is here not done by feature recognition after creating a geometric model, but during the design phase: the designer can put his intent for parts of the object into the product model. Also, a model can be designed with high-level operands and operations, such as slots and blendings, which is considerably easier for the designer than working with a conventional
Computers in Industry
W.F. BronsL~oort, F. W. Jansen / Feature modelling and cont:ersion
geometric modelling system. First the requirements for feature modelling systems are discussed and some example systems are mentioned (Section 6.1). A rather extensive description is given of the GeoNode system (Section 6.2).
6.1. Requirements for feature modelling systems There are several requirements with regard to the functionality of a feature modelling system: (i) The system should be interactive and graphical, because this is the best way to adequately support the modelling process. (ii) There must be a mechanism to define generic descriptions of features, and store these in a feature library; both geometric and topological parametrization (Section 3.4) must be provided. (iii) There must be a mechanism to create instances of a feature by specifying the required parameters; the system is then able to determine the shape of the feature on the basis of the generic definition and the parameters. (iv) Constraints (Section 3.5) must be available to guarantee the validity of features, for example that the faces of a slot have a minimum distance, or, stated differently, that the slot has a minimum width (see Fig. 18), and to define geometric relations between features, for example that two slots have a minimum distance to each other (see again Fig. 18); if a modification is made to the model that implies other modifications on the basis of a constraint, then the system should automatically take care of these modifications; (v) Both top-down design, in which first a highlevel conceptual design is made that is later refined to a low-level detail design, and bottom-up design, in which an object can be constructed from simlbler parts, must be sup-
Fig. 18. A constraint within a feature (B > 10 cm), and a constraint between two features (D > 15 cm).
79
ported; feature hierarchies (Section 4.2) must be available to support compound features consisting of several elementary features. These requirements will be further illustrated in the next section, by showing their fulfilment in the GeoNode system. The above list of requirements makes the object-oriented approach ideally suitable for implementation of a feature modelling system. In the object-oriented approach, data structures and operations on them are combined in objects. Activating an operation on an object is achieved by sending a message to the object. Objects are hierarchically ordered in classes. Subclasses are specializations of their superclasses, and inherit all structures and operations from all their superclasses in the hierarchy. Modifications in a superclass automatically result in modifications in all subclasses. In a feature modelling system, adding a new generic feature can be implemented by adding a new subclass to the class of an existing generic feature. Instantiation of a feature can occur by sending a message to the appropriate object. A complex model can be created by combining object instances from several classes, in which the hierarchy of the complex model is reflected in the hierarchy of the object instances. Examples of feature modelling systems are the prototype systems ASU Features Testbed [21] and GeoNode, which is discussed in the next section, and the commercially available systems P r o / E n g i n e e r and IDEAS.
6.2. The GeoNode system GeoNode is an experimental modelling system developed at Delft University of Technology [7]. The system offers an interactive graphical user interface for modelling objects with features. It uses a geometric structuring technique (the geometric tree), direct manipulation, a procedural representation, parametrization, and constraints.
6. 2.1. The geometric tree A model is structured by putting coordinate systems, which are used for positioning, orientation and dimensioning of objects, into a hierarchy, the so-called geometric tree. The position and orientation of a primitive object are defined by the basis coordinate system of the object. The
80
Survey
Computers in Industry
, n3
I
.'C:. : .,"
n2
nl'
,/
/ /
Fig. 19. Geometric tree with some coordinate systems and objects.
system, and l/3 the dimensioning coordinate system. A coordinate system is always defined relative to an existing coordinate system, the parent coordinate system. The new coordinate system inherits the global position, scaling and orientation of the parent, after which these can be modified by a transformation relative to the parent. In Fig. 19,
dimensions of the object are determined by one or more dimensioning coordinate systems: the distances between the basis and dimensioning coordinate systems determine the dimensions of the object. In Fig. 19, n 1 is the basis coordinate system of the block, and the dimensions are determined by the dimensioning coordinate system n 3. For the cylinder, n 2 is the basis coordinate
Ready
IDlreetory: /hole
1
ibllnd
nl = i c s (root) n l . tx = 20.00 n l . zx para i le l->roo t
Iobround Irectangular jsquare
n2
_
~p£en
ics
(root) n2.tx = 125.00 lz = 60.00
I dlstance->nl > 100.00
/~2 )
I~yx
= 35.00 distance->n2
<
50.00
/nY) .ix = 4 0 . 0 0 n4. ty = 35. O0 n4. tz = - 3 0 . 0 0 n5 = I c ~ ( n l ) n5.tx = 5.00 n6 = n6.tx = 185.00 n6.ty = 65.00 n6. tz = - 5 0 . O 0 n7 = i c s ( r o o t ) n7. y _ e q u a l - > n 6 n8 = i c s ( n 7 )
ics(root)
....~[::~iiiii~ .. .... ..... ~:~ii~!ii::~ .~ i% ....
n 8. x --eq u a I - > n 6 n 8 . tz = - 7 . 0 0 - -
nSty=
ol
= /raw/block (root,n6) ol.mat = 02 = / h o l e / r e c t a n g ular (nl,n4,n5) 03 = / p a t t e r n / c i r h o l e (n2, n3 ) = 0.8 04 = / f e a £ u r e / b l e n d ( n U , n 8 ) exp " [ (oi)- 02+03+04) ] "
steel
o3.surf
Fig. 20. U s e r interface for feature modelling with GeoNode.
Computers in Industry
W.F. BronsL'oort, F.W. Jansen / Feature modelling and conL:ersion
n~ is the parent coordinate system of n 2, which is in turn the parent of n 3. Modification of the position of n~ moves the object, but does not change its shape, since n 2 and n 3 are defined relative to n ~ en thus move along. Modification of n 2 implies that the position of n 3 relative to n~ also changes, and thus that the dimensions of the block change. Additionally the position of the cylinder also changes, because n 2 is its basis coordinate system, and in such a way that the cylinder remains connected to the block in the same manner. 6.2.2. Direct manipulation A graphical representation of the geometric tree in a window on the screen of a workstation provides a natural medium for direct manipulation of the model (see Fig. 20). With a 2-D input device, in particular a mouse, modifications can be made to the 3-D model. Manipulation consists of dragging the origin or the end of one of the axes of the projection of a coordinate system. By dragging the origin, the coordinate system is moved, by dragging the end of an axis along that axis, scaling is performed, and by dragging the end of an axis parallel to one of the other axes, the coordinate system is rotated. In this way, position, dimensions and orientation of objects can be changed. 6.Z3. Procedural representation Beside the graphical representation, a procedural representation of the model is maintained. The procedural representation consists of a number of modelling statements that describe the model; these statements are shown in another window (see Fig. 20). There are, for example, statements for creating coordinate systems, for arithmetical operations on and assignments to the X-, Y- and Z-components of a coordinate system, for connecting objects to coordinate systems, and for defining a number of objects with similar properties in a pattern. Statements can be created both by graphical interaction on the geometric tree and by textual input via the keyboard. For example, for creating a new object, graphical interaction is fastest, but for exactly positioning an object, textual input is more suitable. The geometric tree and the procedural representation are automatically kept consistent: if something is modified in one represen-
81
tation, the corresponding change in the other representation also occurs. 6.2.4. Parameterized objects An important advantage of procedural representations is that these allow geometric and topological parametrization. It is possible to create generic descriptions of objects with a number of parameters, which can determine both the geometry (position, dimensions and orientation) and the topology (the structure). Parameters for the geometry can be a basis coordinate system and one or more dimensioning coordinate systems. Generic descriptions can be stored in libraries. To get an instance of an object, the parameters, which can be coordinate systems in the geometric tree for the geometric parameters, have to be specified. If the generic description of an object is modified, all instances of the object automatically change. To change the position, dimensions and orientation of one instance, only the parameters of that instance must be changed. 6.2.5. Constramts Constraints in GeoNode fix relations between coordinate systems, and not directly between objects. Constraints directly between objects often require complex geometric computations to find a solution, which is not the case with constraints between coordinate systems. Therefore constraints are much easier to solve in the latter case, and interactive processing becomes possible. There are a number of standard constraints available in the system, such as distance and parallel constraints. Constraints can be graphically defined between coordinate systems in the geometric tree, and are graphically represented in the tree by special symbols. 6.2.6. Feature modelling Feature modelling in GeoNode is done by parametrized procedural representations and constraints. A generic description of a simple feature can be created by constructing a shape from primitive objects or surfaces, using constraints to guarantee the validity of the feature. Complex features can be defined by combining simple features. Instances of features can be created in the same way as with parametrized objects.
82
Survey
(/omputers in lndusto,
In Fig. 20, the user interface of the system for feature modelling is shown. There are, among others, windows with the geometric tree and the features, with the procedural representation, and with a shaded image of the model. i
____q
7. Feature conversion In Section 2.3, it has been argued that each application has its own view of an object, i.e. its own way of looking at the object. Each view contains features relevant for the application the view belongs to. Feature conversion, also called feature transformation and feature mapping, is defined as the process of converting features from one view of an object to another view of the object. Feature conversions are in particular needed to support the concept of concurrent engineering with multiple feature views. The idea of feature conversion is rather new, and only a few attempts have been made to implement it. In a relatively simple implementation, for each application the design features are automatically converted into features specific for that application. All modifications have to be made via the design features. This is the approach that has attracted most attention until now, and some implementations are discussed (Section 7.1). In the ideal situation, however, also conversions directly from application views to the design view, and to other application views, are possible. Some speculations about this possibility are given (Section 7.2).
7.1. Current approaches to feature conversion In the current approaches to feature conversion, the features in an application view are derived from the features in the design view. The designer has to input a design feature model, which is also called the primary view, and conversion modules are available to generate application-view feature models, which are also called secondary views. This leads to the architecture of a feature modelling system shown in Fig. 21 [36]. This architecture implies that modifications in the design view, for example modifications in the values of parameters of design features, automatically result in the corresponding modifications in the application views when these are regenerated,
vi:w
: ............
g,_. . . . . . . . . . . . . . .
J1
I
~_ . . . . . . . . . . . . . . . . . . .
Fig. 21. Architecture of feature modelling system with primary view and secondary views.
but that modifications in an application view do not automatically result in the corresponding modifications in the design view and the other application views. Instead, if a modification is required on the basis of the outcome of an application, this modification has to be entered in the design view, after which new application views can be generated when needed. Even conversion from the primary view to a secondary view only, is a very complex process. Such feature conversion resembles feature recognition as discussed in Section 5, where a set of features is derived from a geometric model, whereas now a set of application-specific features is derived from the set of design features. No generally accepted method for feature conversion is available yet, and in fact, beside some new problems, some of the problems of feature recognition reappear in feature conversion, For example, it is very hard to generalize the conversion, because the secondary view features are application specific. For conversions from a view A to a view B in general, i.e. not necessarily between a primary and a secondary view, Shah [38] distinguishes four types of transformations that are possible: (i) identity transformation: a feature from A is converted into an overlapping feature in B; an example is the conversion from a design hole into a manufacturing hole; (ii) projection transformation: a feature from A is converted into a feature in B with less
Computers in Industry
W.F. Bronscoort, F.W. Jansen / Feature modelling and cont,ersion
information; an example is the conversion from a blended corner into a sharp corner; (iii) adjoint transformation: a feature from A is converted into a feature in B that is logically associated with it; an example is the conversion of a design rib into a load feature for finite-element analysis; (iv) conjugate transformation: a (group of) feature(s) from A is converted into a (group of) feature(s) in B by rearranging the entities of the features; an example is the conversion of the stiffener features into the slot features of Fig. 4. Not all transformations are invertible. In particular in projection transformations, information is lost by simplifying features, and this information cannot be recovered automatically. The most difficult, and therefore most interesting, is the conjugate transformation. Entities, i.e. faces, edges and vertices, of features in A are grouped in a different way to constitute features in B. This can be implemented by first decomposing the features from A into their entities, then resynthesizing these entities in different combinations by, for example, feature recognition or geometric reasoning techniques, and finally augmenting the synthesized entities with information relevant for B. In the ASU Features Testbed, a shell has been implemented that includes conjugate mapping between the primary view and secondary views [38]. Another example of implemented feature conversion is the process planning system of Anderson and Chang [39]. They use geometric reasoning to realize what they call feature refinement. Feature refinement converts design features into process planning features, and includes the following steps: classification of features: the basic manufacturing features are refinements of the design features, and in this step these basic manufacturing features are generated by using a classification of the design features, and rules that describe the refinements; identification of feature relations: relations between basic manufacturing features, such as patterns, nesting and intersection, are of importance for, for example, determining the order of manufacturing operations, and in this step these relations, and the corresponding constraints, are determined; -
-
83
-
joining of features: basic features are combined into more complex features that can be manufactured in one operation. As will be obvious from the examples, feature conversion as implemented until now, indeed very much resembles feature recognition, the difference being that the starting point is now not a geometric model, but a feature model. This can certainly be an advantage, because the high-level feature information in the primary view, instead of the low-level geometric information, can simplify the conversion. The advantage is, however, lost to some extent when the features are decomposed into low-level geometric entities again. It is also obvious that these feature conversion processes are one-way processes: the inverse conversion from a secondary view to the primary view, or a conversion into another secondary view, are impossible because information has got lost during the conversion. In the next section, it will be argued that an alternative approach to the conversion problem has inherent advantages.
7.2. The ideal situation If concurrent engineering using multiple feature views has to be supported, the solution with a primary design view and a number of secondary application views is far from ideal. If an engineer running an application program discovers that for some reason, for example, a dimension of the designed object has to be adjusted, he has to switch from his application view to the design view to make the adjustment. In this view, however, there are features different from the features in his own view. Therefore it may be difficult to find the right adjustments in the parameters of the features in that view, whereas in his own view the adjustments would be straightforward for him, because the features in that view correspond to his way of looking at the object. In the ideal situation, it would therefore be possible to make adjustments in an arbitrary view and not only in a primary view. Modifications in one view should then be automatically propagated to all other views by applying feature conversion, resulting in the corresponding modifications in these views. Thus the consistency between all views is automatically maintained. All views are equally treated in this situation, so
84
Survey
there is no longer a primary view and a number of secondary views. To implement this ideal situation, feature conversions between arbitrary feature views should thus be possible. This implies, among other things, that conversions in one direction are no longer sufficient, as in the implementation with a primary and a number of secondary views, but that the inverse conversions must also be possible. Further, the propagation of modifications by feature conversion should not only maintain the consistency between the views, but also the validity of the individual views. Finally, it is desirable that the conversion techniques are of a general nature, i.e. that they are usable for all conversions. At Delft University of Technology, we are currently extending the GeoNode feature modelling system (see Section 6.2) with facilities for multiple feature views and feature conversions between arbitrary views. The basic idea behind this implementation of multiple feature views is that in each view there is a geometric tree with coordinate systems and a procedural representation, with parameters and constraints, which determine the features in that view. The user of a view can manipulate his geometric tree and procedural representation in the ways sketched in Section 6.2. A node of the tree in one view can also be used in another view after it has been imported in the latter via a central geometric tree, which contains the nodes from all geometric trees in the various views. The central geometric tree is not a primary view in the sense discussed before, because it is not used in any view as such, but its only purpose is to link the various views. The geometric trees in the views are subtrees of the central geometric tree. Modifications in the geometric tree, for example by direct manipulation, and in the procedural representation in one view, are automatically propagated by feature conversion to the geometric trees and procedural representations in the other views by using the central geometric tree. It has turned out that the constraints in the feature views play a major role in this concept. To convert modifications in one view to the other views, all constraints in all views have to be maintained. This means that a solution has to be found for the set of constraints that is collected in the central geometric tree. Currently, work is
('omputers in Industry
being done to develop efficient ways to solve this set of constraints that, additionally, find solutions that appear logical to the users, also in case of over- and under-constrained situations. More research has also to be done on how to derive an initial feature view for a new application, and how to easily define and manipulate features in the various views.
8. Conclusions and further developments Based on observations in the previous sections, conclusions on the state-of-the-art in feature modelling are given, and directions for further research are indicated. This is done separately for feature recognition and design by features (Section 8.1), and for feature conversion and concurrent engineering (Section 8.2).
8.1. Feature recognition and design by features 8.1.1. General It is obvious that the concept of features is getting on firm grounds now, certainly in the research world, but also in industry. Consensus is arising on the definition and meaning of the concept, and basic representation problems have been solved.
8.1.2. Feature recognition Reasonably functioning feature recognition techniques are available, and finding their way into commercial software products now, in particular for process planning. Although most success has been achieved with techniques for boundary representations so far, and these will be improved further, also further work on techniques for CSG models is emerging. Woodwark [33] rightly remarks that algorithms for CSG have for several applications followed algorithms for boundary representations, and often turned out to be faster, more robust and theoretically easier to justify. Although many problems remain t o be solved, it is interesting to see whether the same happens for feature recognition from CSG models.
8.1.3. Design by features The rise of design by features has been faster than that of feature recognition. Within a few years, the first commercial systems have become
Computers in Industry
FKF. Bronst,oort, F.W. Jansen / Feature modelling and com,ersion
85
available, and these systems offer a very attractive way of modelling. Parametrized features, highlevel operations, the possibility to use constraints, and the link of geometry and functional meaning, bring product modelling onto a much higher level. It is therefore expected that design by feature systems will become very popular in the years to come, and will ultimately supersede drawing and solid modelling systems.
tem. Each application has its own feature view. Propagation of modifications in such a system has to be implemented by feature conversions between arbitrary views. If this can indeed be realized, an important step towards full integration in C A D / C A M systems has been taken.
8.1.4. Integration of recognition and design An interesting development is the integration of feature recognition and design by features [23]. Features can be brought into a product model by a designer, but can also be automatically recognised in the product model as it stands. All features are represented and processed in a uniform way.
We are indebted to Maarten van Emmerik, Christian Bakker and Hans van der Meij for their contributions to the research on multiple-view feature modelling at Delft University of Technology, to Denis McConalogue for valuable comments on an earlier version of the paper, and to Kees Seebregts for producing all figures.
8.2. Feature contgersion and concurrent engineering
References
8.2.1. Feature conversion Feature conversion techniques are only in their infancy. If only conversions from a primary feature view of an object to a secondary feature view are considered, things are relatively simple, and for this some progress has been made. For the situation that two-way conversions between all feature views are required, no working solution has been developed, but work in that direction is starting.
[1] Collins Concise Dictionary Plus, Collins, London, 1989. [2] P.R. Wilson, "Feature modeling overview", in: SIGGRAPH Course Notes: Solid Modeling--Arehitectures, Mathematics and Algorithms, SIGGRAPH'90 Conference, Dallas, TX, 1990. [3] A.H. van 't Erve, "Computer aided process planning for part manufacturing--An expert system approach", PhD Thesis, University of Twente, Enschede, The Netherlands, 1988. [4] I.D. Faux, "Reconciliation of design and manufacturing requirements for product description data using functional primitive part features", CAM-I Report R-86ANC/GM/PP-01.1, CAM-I, Arlington, TX, 1986. [5] P.R. Wilson and M.J. Pratt, "A taxonomy of features for solid modeling", in: M.J. Wozny, H.W. McLaughlin and J.L. Encarna~fio (eds.), Geometric Modeling for CAD Applications, North-Holland, Amsterdam, 1988, pp. 125-136. [6] J.J. Shah and M.T. Rogers, "Expert form feature modelling shell", Comput. Aid. Des., Vol. 20, No. 9, 1988, pp. 515-524. [7] M.J.G.M. van Emmerik, "Interactive design of parametrized 3D models by direct manipulation", PhD Thesis, Delft University of Technology, Delft University Press, Delft, The Netherlands, 1990. [8] J.J. Shah and A. Mathew, "Experimental investigation of the STEP Form-Feature Information Model", Comput. Aid. Des., Vol. 23, No. 4, 1991, pp. 282-296. [9] A.A.G. Requicha, "Representations for rigid solids: Theory, methods and systems", ACM Comput. Surv., Vol. 12, No. 4, 1980, pp. 437-464. [10] M.E. Mortenson, Geometric Modeling, John Wiley, New York, 1985. [11] M. Miintyl~i, An Introduction to Solid Modeling, Computer Science Press, Rockville, TN, 1988. [12] W.F. Bronsvoort, F.W. Jansen and F.H. Post, "'Design and display of solid models", in: G. Garcia and I. Her-
8.2.2. Concurrent engineering Beside feature modelling, probably the most exciting development in C A D / C A M at the moment is concurrent engineering. With several engineers simultaneously working on the design of a product, a considerable reduction in design time can be realized. One of the main problems in the support of concurrent engineering by a C A D / CAM system, is the propagation of modifications from one view on the product model to the other views. 8.2.3. The ideal combination A concurrent engineering system supporting multiple feature views, seems to be an ideal combination. Modelling with features has many advantages compared to the more traditional ways of modelling, and as such forms a good basis for all applications in a concurrent engineering sys-
Acknowledgements
86
Survey
man (eds.), Aduances in Computer Graphics VI, Springer-Verlag, Berlin, 1991, pp. 1-57. [13] U. Roy, C.R. Liu and T.C. Woo, "Review of dimensioning and tolerancing: Representation and processing", Comput. Aid. Des., Vol. 23, No. 7, 1991, pp. 466-483. [14] N.P. Juster, "Modelling and representation of dimensions and tolerances: A survey", Comput. Aid. Des., Vol. 24, No. 1, 1992, pp. 3-17. [15] K. Weiler, "Non-manifold geometric boundary modeling", in: SIGGRAPH Course Notes: Solid Modeling - - Architectures, Mathematics and Algorithms, SIGGRAPH'90 Conference, Dallas, TX, 1990. [16] W. Leler, Constraint Programming Languages: Their Speczfication and Generation, Addison-Wesley, Reading, MA, 1988. [17] R.C. Veltkamp and F. Arbab, "Geometric constraint satisfaction", Report CS-R9141, Centre for Mathematics and Computer Science, Amsterdam, 1991. [18] J.R. Rossignac, "Constraints in constructive solid geometry", in: 1986 ACM Workshop on Interactive 3D Graphics, ACM Press, 1986, pp. 93-110. [19] B.N. Freeman-Benson, J. Maloney and A. Borning, "An incremental constraint solver", Commun. ACM, Vol. 33, No. 1, 1990, pp. 54-63. [20] M.J. Pratt, "Synthesis of an optimal approach to form feature modelling", in: Proc. 1988 Computers in Engineering Conf., Vol. 1, ASME, 1988, pp. 263-274. [21] J.J. Shah, M.T. Rogers, P.C. Sreevalsan, D.W. Hsiao, A. Mathew, A. Bhatnagar, B.B. Liou and D.W. Miller, "The ASU Features Testbed: An overview", in: Computers in Engineering 1990, Vol. 1, ASME, 1990, pp. 233-241. [22] M.R. Henderson and D.C. Anderson, "Computer recognition and extraction of form features: A C A D / C A M link", Computers in Industry, Vol. 5, 1984, pp. 329-339. [23] J.J. Shah, "Assessment of features technology", Comput. Aid. Des., Vol. 23, No. 5, 1991, pp. 331-343. [24] L.K. Kyprianou, "Shape classification in computer-aided design", PhD Thesis, Cambridge, UK, 1980. [25] B.K. Choi, M.M, Barash and D.C. Anderson, "Automatic recognition of machined surfaces from a 3-D solid model", Comput. Aid. Des., Vol. 16, No. 2, 1984, pp. 81-86. [26] S. Joshi and T.C. Chang, "Graph-based heuristics for recognition of machined features from a 3-D solid
Computers in Industry
[27]
[28]
[29]
[30]
[31]
[32] [33]
[34]
[35]
[36]
[37]
[38]
[39]
model", Comput. Aid. Des., Vol. 20. No. 2, 1988, pp. 58-64. H. Sakurai and D.C. Gossard, "Shape feature recognition from 3D solid models", in: Proc. 1988 Computers in Engineering Conf., Vol. 1, ASME, 1988, pp. 515"519. S.H. Chuang and M.R. Henderson, "Three-dimensional shape pattern recognition using vertex-edge graphs", Comput. Aid. Des., Vol. 22, No. 6, 1990, pp. 377-387. T.C. Woo, "Feature extraction by volume decomposition", in: Proc. Conf. on CAD~CAM Technology in Mechanical Engineering, MIT, Cambridge, MA, 1982, pp. 76-94. K. Tang and T. Woo, "Algorithmic aspects of alternating sum of volumes. Part 1: Data structure and difference operation", Comput. Aid. Des., Vol. 23, No. 5, 1991, pp. 357-366. K. Tang and T. Woo, "Algorithmic aspects of alternating sum of volumes. Part 2: Nonconvergence and its remedy", Comput. AM. Des., Vol. 23, No. 6, pp. 435-443, CAM-I, "Volume decomposition algorithm", CAM-I Report R-82-ANC-01, CAM-I, Arlington, TX, 1985. J.R. Woodwark, "Some speculations on feature recognition", Comput. Aid. Des., Vol. 20, No. 4, 1988, pp. 189-196. Y.C. Lee and K.S. Fu, "Machine understanding of CSG: Extraction and unification of manufacturing features", IEEE Comput. Graph. Appl., Vol. 7, No. 1, 1987, pp. 20-32. F.J.A.M. van Houten, "PART: a computer aided process planning system", PhD Thesis, University of Twente, Enschede, The Netherlands, 1991. J.J. Cunningham and J.R. Dixon, "Designing with features: the origin of features", in: Proc. 1988 Computers in Engineering Conf., Vol. 1, ASME, 1988, pp. 237-243. D. Roller, "Design by features: an approach to high level shape manipulations", Computers in Industry, Vol. 12, 1989, pp. 185-191. J.J. Shah, "Feature transformations between applicationspecific feature spaces", Comput. Aid. Eng. J., Vol. 5, No. 6, 1988, pp. 247-255. D.C. Anderson and T.C. Chang, "Geometric reasoning in feature-based design and process planning", Comput. Graph., Vol. 14, No. 2, 1990, pp. 225-235.