Computers in Industry 49 (2002) 217±233
Freeform feature modelling: concepts and prospects Eelco van den Berga,*, Willem F. Bronsvoorta, Joris S.M. Vergeestb a
b
Faculty of Information Technology and Systems, Delft University of Technology, Mekelweg 4, 2628 CD Delft, The Netherlands Faculty of Design, Engineering and Production, Delft University of Technology, Landbergstraat 15, 2628 CE Delft, The Netherlands Received 14 February 2001; accepted 6 April 2002
Abstract Much research has already been done on regular-shaped features, but more complicated, freeform features are now demanded by product designers. Freeform shapes are mostly represented by low-level representations, such as BeÂzier, B-Spline and NURBS patches. Freeform features provide a high-level interface to these low-level representations. The purpose of freeform features is faster and more intuitive modelling with more guarantees for a high-quality design. In contrast to the traditional ways of modelling with freeform surfaces, where low-level entities such as control points and weights are used to interact with a freeform surface, the user is offered a set of freeform features whose basic shape is fully de®ned by intuitive parameters. The design-by-features approach offers good opportunities for validity maintenance, by which only models that satisfy certain prede®ned validity conditions can be created. In this paper, the most important concepts in design by freeform features are surveyed, and issues such as classi®cation and parameterisation of freeform features and freeform feature recognition are described. Wherever appropriate, promising research prospects are indicated. # 2002 Elsevier Science B.V. All rights reserved. Keywords: Freeform features; Feature modelling; Parametric modelling; Design by features; Feature recognition
1. Introduction In product modelling, the term feature was ®rst used in the context of manufacturing planning. Features, corresponding to volumes in a product that could be machined with a single or a sequence of operations, were recognised from a geometric model of the product. Later, features were also used in other contexts, and socalled feature modelling systems were introduced [1,2]. Nowadays, many modelling systems are labelled feature modelling systems. The modelling facilities of these systems are, however, quite diverse. On the one *
Corresponding author. Tel.: 31-15-27-84564; fax: 31-15-27-87141. E-mail address:
[email protected] (E. van den Berg).
extreme there are straightforward parametric modelling systems, in which a model consists of a number of volumetric shapes that have been de®ned by determining several parameter values, such as length, height and width, but where no information on the individual shapes is kept within the resulting model. Such systems are actually advanced geometric modelling systems. On the other extreme there are real designby-features systems, in which functional information is kept with speci®c volumetric shapes, i.e. the features, in a model. Ideally, the semantics of the features is maintained throughout the entire modelling process, and for this purpose validity checks are performed after every modelling operation [3]. In practice, because of strength, ¯ow, aesthetic or other requirements, products often contain freeform
0166-3615/02/$ ± see front matter # 2002 Elsevier Science B.V. All rights reserved. PII: S 0 1 6 6 - 3 6 1 5 ( 0 2 ) 0 0 0 8 0 - 5
218
E. van den Berg et al. / Computers in Industry 49 (2002) 217±233
surfaces [4]. Current feature modelling systems, however, usually only supply regular shapes to the user, in particular prismatic and cylindrical shapes. Extending such systems with capabilities for freeform shapes is therefore much desired. Although some feature modelling systems have been developed that can handle certain freeform shapes, several issues are yet to be resolved in order to turn such systems into full-¯edged design-by-features systems. First, it is desirable to offer users functionality for modelling with a set of useful, well-de®ned freeform features. Usually, several classes of standard prede®ned features will be available to the user, but, because of the large variety in freeform features, a good mechanism to de®ne new classes is also required. Suitable parameters must be assigned to classes of features, in such a way that users can intuitively specify instances and modify them. The user can then design with these freeform features, instead of the low-level entities of, for example, the widely used NURBS representation [5]. The features actually constitute a high-level interface to the lowlevel NURBS surfaces. Of course, a suitable mapping between the two levels of representation has to be de®ned. Several additional requirements can be speci®ed for freeform feature modelling systems. In the context of Computer-Aided Manufacturing, for example, it is very important that a product is manufacturable [6]. Therefore, the validity of the product model, seen from the manufacturing viewpoint, must be guaranteed. In general, ways should become available to de®ne and maintain the semantics of freeform features. Also, different designers within a team may prefer different, application-speci®c views on a product. This can be re¯ected in the modelling system by offering multiple views on a product, e.g. for design and manufacturing planning, and performing conversions between these views [7,8]. This paper surveys the current state of the art in freeform feature modelling, without elaborating the mathematical background. The products to be modelled are assumed to be solid objects, and the features to be volumes, which in no way is a restriction: although objects like plates are traditionally modelled as surfaces, in reality these are solid objects. The goal of the paper is to describe the most important concepts, and to outline the most interesting
prospects, of this emerging ®eld. Some research plans pursued in our groups are brie¯y mentioned to illustrate the prospects. Section 2 gives an overview of the most important concepts in regular-shaped feature modelling, and indicates how these concepts can be mapped to freeform feature modelling. Section 3 shows several classi®cations of freeform features and an example of parameterisation of a freeform feature. Section 4 gives an overview of techniques that can be used in design by freeform features. Section 5 then surveys several techniques for performing freeform feature recognition. Finally, Section 6 gives some conclusions and mentions several issues that are to be addressed in future research. 2. Major concepts in freeform feature modelling Freeform feature modelling for solid objects can be regarded as an extension of feature modelling in which only regular-shaped features can be used. Therefore, ®rst the major concepts in modelling with regularshaped features will be summarised, after which their counterparts in freeform feature modelling will be introduced. 2.1. Modelling with regular-shaped features There is now more or less consensus in the modelling community that a feature is a representation of shape aspects of a product that are mappable to a generic shape and functionally signi®cant for some product life-cycle phase, at least if we restrict ourselves to form feature modelling. Functional information, e.g. on the use of the shape for the end-user or on the way the shape can be manufactured, can be associated with the shape information [2]. In almost all current feature modelling systems, only regularshaped features, i.e. features having (rounded) prismatic and cylindrical shapes, can be used. Several types of features can be distinguished; protrusions, holes, slots and pockets are typical examples of frequently used ones. Although several attempts have been made, it has turned out to be very dif®cult to make a general classi®cation of features. It is therefore important that new types of features can be easily introduced in a feature modelling system. All
E. van den Berg et al. / Computers in Industry 49 (2002) 217±233
Fig. 1. Regular-shaped feature model.
properties of a feature type are speci®ed in the corresponding feature class, which de®nes a template for all its instances. This always includes the canonical shape of the feature and a number of parameters that characterise this shape, e.g. the width and depth for a rectangular slot. By determining values for the parameters, an instance of a feature class can be de®ned in a model. The instance is normally attached to other features in the model, i.e. some of its faces are coupled to faces of other features. Fig. 1 shows a model that was built with several regular-shaped features. In advanced feature modelling systems, several properties that correspond to functional information can also be speci®ed. In a feature class, feature validity conditions that all instances of the class should satisfy can be given. Examples are that the radius of a blind hole should be between 5 and 15 cm, and that the top face of the hole should remain open, i.e. not be covered by any other feature. In addition to feature validity conditions, there can also be model validity conditions, which specify relations on or between speci®c instances in a feature model. Examples of model validity conditions are that (the side faces of) two slots should be parallel, and that the diameter of a hole should be half of the width of the protrusion it is attached to. Model validity conditions are speci®ed on the instances involved. Validity conditions can be speci®ed with constraints on feature entities, in particular faces or dimensions of the features. A good set of validity conditions is indispensable for speci®cation of features. A feature model is usually represented by a graph and a geometric model of the resulting shape. The graph contains all feature instances, with their shape
219
and feature validity constraints, attach relations and model validity constraints. The geometric model can be a boundary representation, but also a more extended representation, such as a cellular model [9], that is more suitable for advanced facilities such as validity maintenance and feature conversion (see further on in this section). There are many applications of features. In product design, generic shapes with some function for the enduser of the product can be considered as features. In design analysis, in particular stress analysis with the ®nite-element method, features may represent local stiffeners or other areas relevant for the analysis. In process planning for manufacturing, volumes in a product that can be machined with a single or a sequence of operations are considered as features. Each application has its own way of looking at a product, i.e. its own feature model of the product, with features relevant for that application. Such an application-speci®c feature model is called a view on the product [1]. Independent from their application, there are basically three ways to create a feature model: design by features, feature recognition and feature conversion. In design by features, the designer speci®es a feature model. He can create instances from feature classes in a library, by specifying values for the parameters, and add them to the model. In some systems, also new feature classes, so-called userde®ned features [10] can be created by a user, after which instances from these can be added to the model. Feature instances can also be modi®ed, by changing their parameters, or be removed from the model. The features that are speci®ed may well have a functional meaning for the end-user of the product, but can also be manufacturing features. In the latter case, the designer speci®es a model that, more or less, corresponds to the way the product will be manufactured. An important aspect of design by features is validity maintenance. The feature validity conditions speci®ed in the feature classes of all instances in a model, and the model validity conditions speci®ed on or between the instances, should be maintained by the system. In practice, most feature modelling systems have only a very rudimentary form of validity maintenance. Although some functional information is stored with the features in a model using constraints, the validity of models is not adequately maintained throughout the
220
E. van den Berg et al. / Computers in Industry 49 (2002) 217±233
modelling process. Ideally, all validity conditions of the features, i.e. their semantics, should be checked by the system after each modelling operation. If some validity condition is no longer satis®ed, e.g. the top face of a hole is no longer open, this should be noti®ed by the system, and preferably the user should be assisted in overcoming this situation. An approach that supports these ideas is semantic feature modelling [3]. Such an approach can guarantee that all design intent once captured in a model is maintained, which brings feature modelling to a level really higher than advanced geometric modelling. In feature recognition, features are recognised from a geometric model of a product. Historically, this was the ®rst method to identify features in a model, introduced in the context of manufacturing planning. Many methods for feature recognition exist, each with its own advantages and disadvantages [2]. The four most important categories of feature recognition methods are: rule-based, graph-based, volume decomposition and geometric reasoning methods. Some successful feature recognition systems use combinations of these methods. Once a feature model of a product has been created, either by design by features or by feature recognition, other feature models of that product, which correspond to other views, can be derived by feature conversion. For example, a manufacturing planning view can be derived from a design view. Feature conversion is a relatively new technique, and forms the basis for multiple-view feature modelling systems [7,8,11]. In such systems, several views on a product can be simultaneously maintained by the system. Modi®cations made in one view, are automatically propagated to the other views on the product. This can be used to, among other things, support design for manufacturing: while a model is being built with design features, it is immediately converted into a manufacturing planning view, which can be used to check the manufacturability of the product. 2.2. Modelling with freeform features Many concepts from modelling with regular-shaped features, introduced in the previous subsection, can be mapped to freeform feature modelling. It will be brie¯y indicated what has already been achieved there, and which issues are still open.
Freeform features can be de®ned in the same way as regular-shaped features. Such features still correspond to generic shapes, the only difference being that there is more modelling freedom for the shape of the features; typically, their faces can be modelled with NURBS. Notice that although freeform features can have very complex shapes, their shape can also be simple, or even regular. In freeform feature modelling, the general outline of a product is created in the initial phase of the modelling process by de®ning a primary feature, which here can be a freeform volumetric shape. Secondary features can be attached to the primary feature in order to adjust the product, while preserving the global outline of the product. Secondary freeform features are also referred to as detail features. Features like protrusions, holes, slots and pockets can still be used in this context, but now with freeform faces. In addition, however, many new types of useful features can be de®ned (see Section 3 for classi®cations of freeform features). The de®nition of a freeform feature class is more complicated: not only does the canonical shape have to be modelled with, for example, NURBS, also a set of parameters has to be chosen that makes intuitive instantiation and modi®cation of the feature possible, and a mapping between these parameters and the low-level de®nition entities of the NURBS has to be established. In Section 3, an example of a freeform feature and its complete parameterisation is given. Instances can again be de®ned in a model by determining values for the parameters, but their ``attachment'' to other features is more complicated than for regular-shaped feature classes. In Fig. 2, two models with some freeform features are shown. Two feature parameters have been varied, namely `length' of the right-side arm and `radius' of the middle cylindrical hole. Notice that the freeform rib deforms as the shape of its attach faces changes. Au and Yuen [12] emphasise the importance of the connections between individual freeform features in a feature model, i.e. the order of continuity between adjacent faces of the features. Vosniakos [13] considers continuity as a constraint for the surface patches from which the features are built, and distinguishes internal continuity constraints, concerning surface patches belonging to one feature, and external continuity constraints, concerning inter-feature relations. Smooth transitions between adjacent faces are often
E. van den Berg et al. / Computers in Industry 49 (2002) 217±233
Fig. 2. Variations of a feature model: (a) is standard model, (b) has increased `length' of the right-side arm, and larger `radius' of the middle cylindrical hole; the freeform rib has been deformed accordingly.
realised by blends. They are mainly used to prevent sharp cuts, but can also be useful in closing gaps that occur when adjacent faces do not connect properly. The idea that properties which correspond to functional information can be included in freeform feature classes, and also be set on or between freeform feature instances, by validity conditions, has not yet been explored, but seems nevertheless very promising. One can easily imagine conditions that all instances from some freeform feature class have to satisfy, e.g. that the curvature of their side faces is limited, or conditions on interaction between feature instances, e.g. that the volume modi®ed by another feature is limited. Such validity conditions can again be speci®ed with constraints, although these may become quite complex. A freeform feature model can still be represented by a graph, with all feature instances, attach relations and model validity constraints, and a geometric model of the resulting shape, e.g. a boundary representation with NURBS patches. A more advanced geometric model than a boundary representation may be desirable here too. The possible applications of freeform features, the corresponding views on a product, and the ways to
221
create a feature model, are similar to those for regularshaped features. This is why freeform feature modelling can be regarded as an extension of modelling with regular-shaped features. However, many dif®cult problems have to be solved to make freeform feature modelling mature. Some of these problems are brie¯y mentioned here. In design by freeform features, the creation of individual freeform features by specifying values for their parameters is again the basic idea. Because of the large shape domain of freeform features, a good mechanism to de®ne new feature classes, in which the canonical shape, the parameterisation and the validity conditions are easy to specify, is indispensable. In addition, ways to indicate how individual freeform features in an object have to be ``attached'' to the model, including the order of continuity between adjacent faces of features, have to be provided. In Section 4, design by freeform features will be elaborated. Validity maintenance has hardly been explored for regular-shaped features, let alone for freeform features. As already remarked earlier, one can easily imagine useful validity conditions for freeform features. However, these become only really useful if they are maintained during the modelling process, e.g. to preserve the design intent once captured in a model, or to guarantee manufacturability of the product. How this can be achieved, will be a major issue of our future research in this area. Although some methods have been proposed for freeform feature recognition, see Section 5, these are not yet mature. Considering the long history in, and large variety of currently available methods for, recognition of regular-shaped features, much more research is foreseen here. Feature conversion and multiple-view feature modelling are other subjects that have not yet been tackled in the context of freeform features. Several topics mentioned earlier come together here, such as parameterisation of features, validity speci®cation and maintenance, and feature recognition. 3. Parameterisation and classi®cation of freeform features To better understand what freeform features are, it is shown how freeform features can be parameterised.
222
E. van den Berg et al. / Computers in Industry 49 (2002) 217±233
Two classi®cation schemes for freeform features are given. 3.1. Parameterisation of freeform features As pointed out in Section 2, feature instances are determined by specifying values for the parameters in the corresponding generic feature class. For regularshaped features, it is relatively easy to think of parameters that uniquely specify the shape of a feature, e.g. height and radius of a cylindrical protrusion. Also, it is easy for a user to understand what the in¯uence of changing a parameter like height or radius is. It is more dif®cult to assign intuitive parameters to freeform features than to regular-shaped features. Poldermann and HorvaÂth [14] asserted that for the parameters of freeform surface features, two requirements should be taken into account. First, the parameters should be related to the parameters preferably used in design, e.g. radius, height, angle, etc. Secondly, they must be related to the entities of their
geometric representation, such as the control network, weights and knot vectors of a NURBS surface. The control points of a NURBS surface generally do not lie on the surface itself, so that when they are manipulated by designers who do not have knowledge of the mathematical background of the representation, these do not perceive their behaviour as intuitive and predictable. Therefore, a high-level representation with parameters that seem logical to the designer is desired. As a designer can only handle a limited number of parameters at a time, the number of parameters assigned to a feature class should be restricted [15]. In Fig. 3, an example of a parameterised freeform feature, a four-sided freeform protrusion, is shown, along with a set of parameters that uniquely de®nes the feature and is easy to comprehend by a user. To implement it, a mapping has to be performed from the set of parameters to a set of surface patches, which in the case of NURBS are determined by a control network, weights and knot vectors. An unambiguous mapping must be performed, so that for every
Fig. 3. Freeform protrusion feature with parameters.
E. van den Berg et al. / Computers in Industry 49 (2002) 217±233
feature instance whose parameters have been speci®ed, a unique mathematical representation can be generated. 3.2. Classi®cations of freeform features Most feature modelling systems will come with a library of pre-de®ned feature classes. Which feature classes are useful depends on the application domain. Some classi®cation schemes have been proposed, two of which are discussed here. Poldermann and HorvaÂth [14] provide a general classi®cation of freeform surface features. This classi®cation resembles the traditional feature taxonomies, extended with more complex surfaces. Four major classes of freeform surface features are introduced, namely primary surface features, modifying surface features, auxiliary surface features and transition surface features (see Table 1). The primary surface features de®ne the global shape of a product, whereas the modifying surface features represent secondary features that modify the primary surface features. The auxiliary surface feature class includes well-known mechanical features, such as holes and ribs. The transition surface features, corresponding to blends, are included to be able to enforce continuity at surface boundary connections. Fontana et al. [16] present a freeform feature taxonomy for secondary features, speci®cally suited for design by features. As shown in Table 2, the classi®cation contains two types of features, namely dfeatures, which are basically deformations of freeform surfaces, and t-features, which are eliminations of areas in a freeform surface. The two types of features are in fact a subset of the features presented by Poldermann and HorvaÂth, but more formally de®ned. Three types of deformations are distinguished, namely border deformations, internal deformations and n-channel deformations, depending on the placement of the feature on the surface. Every deformation can be directed into the product (intrusion) or out of the product (extrusion). Two types of eliminations are listed, namely a sharp cut and a ®nished cut. A ®nished cut is actually a combination of a sharp cut and a deformation around the edge of the cut in order to smoothen the cut. Both sharp and ®nished cuts can be divided into inlets, holes and n-gaps, depending on the resulting connectivity of
223
Table 1 Classi®cation by Poldermann and HorvaÂth [14] Freeform features Primary surface features Closed Single or double curved Amorphous Opened Non-isometric Isometric Modifying surface features Local Protrusion Depression Global Bend Wave Blending Transition surface features Simple Blending Rounding Compound Blending Rounding Auxiliary surface features Holes Simple Threaded Cuttings Lifted Lowered Ears Single Double Fillets Arc Chamfer Ribs Cross Fix-length Slicing Deformed Non-deformed
the surface, respectively simply connected, connected but not simply connected, and disconnected. Fontana et al. do not associate any parameterisations with the proposed freeform feature classes. An
224
E. van den Berg et al. / Computers in Industry 49 (2002) 217±233
Table 2 Classi®cation by Fontana et al. [16]
4. Design by freeform features
Freeform features
Design by features is one way to create feature models. Although full-¯edged design-by-freeformfeatures systems do not yet exist, some research in this direction has been done. First it is shown how traditional surface modelling systems can support users in designing freeform surfaces and objects. Then several design-by-freeform-feature techniques are described.
Freeform d-features Border Intrusion (step-up) Extrusion (step-down) Internal Intrusion (cavity) Extrusion (bump) N-channel Intrusion (N-groove) Extrusion (N-rib) Freeform t-features Sharp Inlet Hole N-gap Finished Inlet Hole N-gap
indication is, however, given as to which types of parameters and conditions might be useful for design by features. It is, among other things, proposed that designers can mark the boundary of the in¯uence area for a feature operation. It is also postulated that continuity conditions should be supported, so that a designer can specify the degree of continuity at a transition between two features. Poldermann and HorvaÂth [14] and Fontana et al. [16] in fact present freeform features as ways to modify a given freeform surface. They distinguish adding, deforming (or substituting) and removing regions of such a surface, and their freeform features are related to these operations. If freeform features are considered as volumes bounded by one or more freeform faces, instead of operations on freeform surfaces, similar types of features can be distinguished (see also Section 4). Since there are many application domains, it is dif®cult for a modelling system to offer a complete library of features. It is therefore very important that users have a method at their disposal to de®ne their own freeform feature classes, as also stated by Poldermann and HorvaÂth [14] and Au and Yuen [12].
4.1. Freeform surface design techniques Traditionally, modelling freeform objects was done by directly modifying its surfaces, e.g. by selecting a point on the surface of the model and dragging it to another position, thereby deforming the object. The effect of such an operation depends, of course, heavily on the representation that is used for the freeform object. Suitable representations for freeform surfaces include BeÂzier surfaces, B-Spline surfaces and NonUniform Rational B-Spline (NURBS) surfaces [4]. These representations all use a control point network that generally lies outside the actual surface, making direct modi®cation of the surface by dragging control points unintuitive. NURBS are a frequently used representation in state-of-the-art freeform modelling systems. They offer a uni®ed mathematical representation for freeform and analytical surfaces. An important advantage of NURBS over BeÂzier surfaces, another frequently used representation, is that NURBS can be locally modi®ed. NURBS are described in detail by Piegl and Tiller [5]. In the remainder of this subsection, four typical examples of existing freeform surface design techniques are described. Each provides an interface on top of the low-level surface representations, which makes it somewhat easier for a designer to modify the surfaces. Sederberg and Parry [17] developed a freeform deformation design technique that is based on physically meaningful changes in geometry, such as bending, scaling, stretching and twisting deformation operations. A geometric object, either a volume or a surface, is enclosed in a user-de®ned parallelepiped. A user-de®ned vector transformation, which deforms the
E. van den Berg et al. / Computers in Industry 49 (2002) 217±233
parallelepiped, is executed, after which the proportionately deformed geometric object is extracted again. It is possible to de®ne adjacent parallelepipeds that together enclose an object, and execute different freeform deformations on each of them, while preserving cross-boundary geometric continuity. LeÂon and Trompette [18] present another way of deforming freeform surfaces that is somewhat more sophisticated than directly manipulating the control point network of the basic representation. Interaction with a surface results in predictable modi®cations. The control point network is linked to a model of a mechanical system, which simulates the physical behaviour of a membrane and reduces the number of parameters controlled by the user. The control point network can be deformed by changing the mechanical parameters, i.e. by applying simulated forces. A set of vertices of the control point network, to which the forces are applied, must be selected. Several deformation modes are available, e.g. press, stretch and tweak, each having a different impact on the surface. The mechanical system is represented by a linear system of equations, and therefore deformations can be executed in real-time. Qin and Terzopoulos [19] developed a more complex method, using a physics-based generalisation of NURBS surfaces. Dynamic NURBS (D-NURBS) incorporate physical quantities, such as deformation energy, into the NURBS formulation. Control points and weights respond to applied forces, changing the resulting shape of the surface in a natural and predictable way. Modelling requirements can be expressed and satis®ed through the use of energies, forces and constraints, taking into account several physical parameters, such as mass and elasticity. The proposed model results in a non-linear system of differential equations, which is solved using an ef®cient ®nite-element technique. This allows realtime sculpturing of freeform surfaces. The method has been implemented in a prototype system, in which conventional geometric design methods, such as de®ning control point networks and sketching pro®le curves, are used alongside the physics-based method. Sanchez-Reyes [20] demonstrates a simple, but intuitive technique for modifying NURBS curves. It translates a control point along a speci®ed axis, simultaneously modifying the weight value of this control point. The translation corresponds to a per-
225
Fig. 4. Constrained curve manipulation.
spective transformation of a designated part of the curve around an arbitrary centre on the speci®ed axis. Pulling a control point away from the centre moves the curve further away from the centre, whereas pushing the control point towards the centre moves the curve closer to the centre. The technique can easily be extended to handle NURBS surfaces, again using a combined point and weight transformation around an arbitrary centre. One of the applications of the described technique is constrained curve and surface manipulation. Smartly choosing the centre of transformation gives the designer limited, but more intuitive freedom for modifying the curve or surface. Fig. 4 shows how part of a curve is changed by moving a control point (Pk) towards or away from an arbitrary centre point (O). Although the surface design techniques described earlier provide a higher level of interaction with a model than control point manipulation techniques, a designer still has to have notion of the low-level representation with its control points. This is one of the reasons that freeform features were introduced: they provide an even higher level of interaction. 4.2. Design-by-freeform-features techniques The interface of a design-by-freeform-features system offers a set of features with parameters that re¯ect the shape of a feature in a way that seems natural to the designer, such as height, width and steepness. Design
226
E. van den Berg et al. / Computers in Industry 49 (2002) 217±233
Fig. 5. Primary, secondary and transition surfaces.
by freeform features therefore closely resembles design by features for regular-shaped objects. Parameterisation of freeform features has already been demonstrated in Section 3.1. Some design-by-freeform-features techniques will be brie¯y described here. Cavendish and Marin [21] describe a feature-based surface design technique. An in¯uence area (O0) is marked on the primary surface (S0) by drawing a closed curve (C0), as shown in Fig. 5. Another closed curve (C1) is drawn on a secondary surface (S1), marking the top or bottom face (O1) of the feature. A transition area (OT, not shown) is automatically created, forming a smooth transition between the primary surface and the feature face marked on the secondary surface. By generating this transition surface, and integrating it with the secondary surface, a new feature surface has been constructed. It is easy to modify this new surface, e.g. by modifying the boundary curve on the primary or secondary surface. Features, once de®ned, can easily be replicated at other positions on the surface by applying the same sequence of operations there. Cavendish [22] later recommended that a combination of this feature-based technique and Sederberg and Parry's surface deformation design techniques (see Section 4.1) should be used, which together constitute a two-stage design-by-freeform-features approach. The combination of the techniques allows surfaces to be designed that are infeasible using only one of the methods. Poldermann and HorvaÂth [14] extend the traditional feature approach for regular-shaped objects to freeform surface design. Surface features have geometric, aesthetic or machining signi®cance, and can carry
semantic information for a particular application. A feature library offers the designer a set of pre-de®ned surface modifying features, which can be instantiated by supplying the necessary parameters. A feature classi®cation, including several parameterised feature classes, is proposed (see also Section 3.2). It is, however, also acknowledged that designers need to be able to de®ne their own feature classes, because every application requires its own speci®c set of features. The concepts and feature library proposed by Poldermann and HorvaÂth were not implemented at the time of publication. Takahashi et al. [23] present a method for designing objects with smooth surfaces, dividing the modelling process into several steps. First, the topology of the object is de®ned using an iconic representation, a socalled Reeb graph, in which features are stored. Features are here critical points such as top, bottom and saddle points. The Reeb graph also represents the orientations of the object surfaces. Fig. 6a shows the mapping from critical points (left) to a Reeb graph (right) for a torus. The second step in the modelling process is the creation of ¯ow curves, which are curves that run between the critical points de®ned in the Reeb graph, and roughly outline the geometry of the object. Fig. 6b shows the ¯ow curves for the torus that is displayed in Fig. 6a. A control network for the BeÂzier patches that represent the surface of the ®nished product is automatically generated from the ¯ow curves. The individual patches are joined, blending them into a complete product. van Elsas and Vergeest [24] describe a way of modelling with displacement features, such as protrusions and depressions. These displacement features are characterised in the same way as was done by Cavendish and Marin [21,22], including a primary surface, a closed or rail curve de®ning the in¯uence area on the primary surface, and a secondary, feature surface. Here, however, the shape of the surface feature is more explicitly controlled by several parameters, such as displacement distance and slope of the blend, than was the case with the technique described by Cavendish and Marin. Close attention is given to the issue of creating appropriate blends, such that a smooth transition from primary surface to feature surface is achieved, avoiding local self-intersection of the blending geometry.
E. van den Berg et al. / Computers in Industry 49 (2002) 217±233
Fig. 6. Reeb graph and ¯ow curves.
Fontana et al. [16] characterise a feature as a modi®cation of a surface, which can be executed in three ways: adding, substituting or removing a region. The add operation can be associated with a union operation of the existing surface with a new region. The substitute operation is closely related to a deformation of a surface region, where points in 3D space are transformed to new points in 3D space. The remove operation is analogous to elimination of a surface region, where points in 3D space are removed, e.g. by trimming the surface. Fontana et al. concentrate on deformation and elimination of surfaces, and provide a classi®cation of surface modi®cation types (see also Section 3.2). Possible parameterisations are, however, not discussed. How modelling is exactly done, is not described either.
227
Vosniakos [13] describes a simple modelling system based on parameterised surface features, of which templates were custom-made using a commercial CAD system. An example feature model is created, and it is shown how changing parameters in¯uences the shape of the entire model. Parameters that are used in the example are roundness, width, depth, etc. Besides shape information, also simple constraints can be included in the feature model. For example, distances between features can be ensured, and for manufacturing reasons curvature can be restricted. Also manufacturing data, e.g. NC programs, can be attached to features. The system does not, however, have facilities for validity maintenance. Simple constraints can be checked, as mentioned earlier, but it cannot be guaranteed that design efforts result in a valid model. Reverse engineering of mechanical parts is the process of obtaining a geometric model from measurements of an existing artefact [25±27]. It can be a pre-processing operation for feature recognition, as a set of unordered points is upgraded to a higher level representation, e.g. a boundary representation. Features can then be recognised from this representation and combined into a feature model. Several techniques for recognising freeform features are described in Section 5. Another application for designers is to not only recognise features in a model, but to also be able to copy a particular feature onto another position in the model or even another model. This technique, called copy-and-paste of features, is described for freeform features by Vergeest et al. [27]. A particular feature instance is recognised from an existing object and transferred onto another, adapting the parameters of the feature instance to its new environment if required. Two types of parameters are introduced to support this operation, namely feature parameters, which are linked to the application and purpose of a feature, and circumstantial parameters, which could, for example, control the scale of a feature and its blending to the primary feature. The latter category of parameters is used for adjusting the feature to ®t in its new environment. The feature recognition technique most suitable for supporting copy-and-paste of freeform features is template matching, because it is insensitive to noise in the data and is reasonably suitable to handle intersecting features. Template matching is discussed in Section 5.3.
228
E. van den Berg et al. / Computers in Industry 49 (2002) 217±233
The design-by-freeform-features techniques described so far focus on the creation and modi®cation of an individual feature. However, in product design, the relations between features are as important as the shapes of the individual features. Au and Yuen [12] describe a formal, semantic feature language that contains features and the relations between them, as in a traditional feature graph. A linguistic approach is followed, since features in a feature library and rules for manipulating them resemble vocabularies and grammar rules. The vocabulary here consists of vertices, containing features and objects built from several features, and edges, containing object±feature and feature±feature links. The feature±feature links are used to register adjacent features, so that their continuity can be ensured. The feature language grammar consists of start, terminal and non-terminal symbols, all part of the vocabulary, and production rules. The described feature language provides a generic mechanism for de®ning and manipulating features and their constraints. It allows users to build a custom feature library suited for a speci®c application. Userde®ned features should always be available in freeform feature modelling, since the variety of feature types is much larger than for regular-shaped modelling. 4.3. Design by volumetric freeform features In the previous subsection, a wide range of designby-freeform-features techniques has been described. These techniques have in common that they result in a model in which features are individually identi®able and modi®able through a limited set of relevant parameters. It has to be noted that, although most of the described techniques are presented as operations on freeform surfaces, these operations can easily be adapted for freeform solids. The operations on volumetric freeform features are: adding a freeform feature, which involves adding a volume bounded by one or more freeform faces; modifying a freeform feature, which involves changing the parameters of the corresponding volume bounded by one or more freeform faces, without changing the type of the feature; removing a freeform feature, which involves removing a volume bounded by one or more freeform faces.
Fig. 7. Volumetric feature operations.
A change in the shape of a product that might be realised by a deformation feature in the context of freeform surface modelling, may, dependent on the underlying model, here require either a feature add operation (see Fig. 7a, in which the surface bounds a solid object), or a feature remove operation followed by an add operation of another feature type (see Fig. 7b, in which the volume represents a thin, plate-like object). If, however, a freeform feature has the appropriate parameters, the change may also be achieved by modifying these parameters (see Fig. 7c). One of the disadvantages of the design-by-freeform-features approach is that only a limited set of shapes can be modelled, in comparison to lower-level freeform surface modelling systems. However, the usefulness of being able to design products with completely arbitrary shape can be questioned, because some products might not even be manufacturable. Using a freeform feature approach, including the appropriate semantic information in freeform feature classes, it is feasible to provide validity maintenance functionality to guarantee manufacturability. Another requirement imposed by the design-byfreeform-features approach is that a suitable mapping between a feature and its representation must be supplied in advance. Even with user-de®ned freeform features, a feature class must be de®ned before it can be used to model a product. However, this could be worth the effort, since after a feature class has been de®ned, it can easily be used in future models, and with a guarantee that all its instances have certain properties.
E. van den Berg et al. / Computers in Industry 49 (2002) 217±233
229
5. Freeform feature recognition One of the applications of feature recognition has been described in Section 4: supporting copy-andpaste operations in design by features. Other applications are in process planning for manufacturing. The area of freeform feature recognition has hardly been explored, and only a few methods are known. First, a method for feature recognition of 2.5D freeform machining features is described, a technique that has evolved from regular-shaped feature recognition methods. Second, a general technique that is suitable for handling freeform features is described, feature recognition by detecting principle curvatures. Finally, a method that is speci®cally aimed at recognising freeform features, template matching, is described. 5.1. 2.5D freeform machining features recognition Machining features are features that correspond to a sequence of machining operations. Often, machining features are restricted to 2.5D features, which are de®ned by a pro®le that is swept in a single direction, having a ¯at bottom. Little et al. [28] present an algorithm to construct machinable 2.5D removal volumes from a boundary representation. The method is based on the work of Corney [29]. One tool approach direction, also called aspect direction, is considered at a time. Vertical faces, whose normal is perpendicular to the aspect direction, are detected and their edges are traversed counterclockwise. A distinction is made between on-edges, parallel to the aspect direction, and off-edges, antiparallel to the aspect direction (see Fig. 8a). The edges between the on-edges and the off-edges are not considered. Paths are generated from on-edges to offedges, for all vertical faces, as shown in Fig. 8b. Paths are connected tip-to-tail, and only the closed cycles are considered. Cycles that run counterclockwise, viewed from the aspect direction, indicate protrusion features. These are not relevant in a machining context, and are therefore ignored. Cycles that run clockwise are the 2D pro®les for the removal volumes. A ray ®ring algorithm ensures that only removal volumes are found that are accessible from the aspect direction. For each accessible 2D pro®le, a depth is determined, such that it can be swept into a removal volume. Multiple aspect directions are considered if necessary.
Fig. 8. Path determination for 2.5D feature recognition.
The described technique can be used to recognise 2.5D freeform features. No pre-de®ned feature library is necessary to compare volumes against. However, the set of features that can be recognised is limited to swept 2D pro®les. Lim et al. [30] describe an extension to the work of Little et al. It supports detection of blends and sloping faces. Faces that are vertical, taking into account some angular tolerance, are divided into laminae. Laminae are portions of a face containing only one off-edge and one on-edge. Cycles are then again formed by connecting paths that run from on-edges to off-edges, as was done in the work of Little et al. Using the direction of the cycles, again protrusions and depressions can be recognised.
230
E. van den Berg et al. / Computers in Industry 49 (2002) 217±233
5.2. Detecting principal curvatures Sonthi et al. [31] present a method for recognising features through principal curvatures. Depressions and protrusions are detected in a boundary representation, after which features are built from these primitives using a rule-based mechanism. This technique is suitable for both regular-shaped and freeform objects. There exists a minimal and maximal curvature, which is the slope of the surface derivative, in every point on a surface. The directions of the minimal and maximal curvatures are orthogonal. The curvature can take three values: positive (concave, ), negative (convex, ) and neutral (¯at, 0). Therefore, every point on a surface can be characterised by its curvature values for the minimal and maximal curvature in that point, introducing the following curvature types: [,], [ , ], [0,0], [, ], [,0] and [ ,0]. For every vertex, edge and face in the boundary representation it is determined what the curvature type is. It is assumed that individual edges and faces consist of regions with a single curvature type. Vertices, edges and faces with the same curvature type are connected, forming curvature regions (CRs). Four types of CRs occur, namely pure protrusions ([ , ] and [ ,0]), pure depressions ([,] and [,0]), transition regions ([, ]) and ¯at regions ([0,0]). This is demonstrated in Fig. 9, using the freeform protrusion depicted earlier in Fig. 3. Using speci®c rules, also edges and vertices are assigned curvature values. Thereby, the whole boundary representation is mapped to a CR representation, which is stored in a CR graph. Without loss of information, this CR graph is simpli®ed, taking
Fig. 9. Curvature regions.
together nodes in the graph that contain entities with the same CR type. From the simpli®ed CR graph, primitives can be obtained. For example, ¯at regions that are completely surrounded by pure protrusion regions are taken together as protrusions, whereas ¯at regions that are completely surrounded by pure depressions are taken together as depressions. Using so-called Grouping Rules, sets of primitives are mapped to features, which can be speci®c for a certain application. The described method is suitable for detecting freeform features, ®rst connecting regions having the same curvature, and then combining such regions into features. This can be done for every structure that can be captured in a boundary representation, since for every point on a surface the minimal and maximal curvature can always be determined, regardless of the complexity of the surface. 5.3. Template matching With template matching, it is checked whether a pre-de®ned example of a feature, i.e. a template, occurs in an existing model or scanned set of points. The template matching technique proposed by Li and Hui [32] involves ®tting a template of a freeform feature to part of a boundary representation, but has so far only been implemented for 2D curves. The template matching process consists of two phases. First, in the hunting phase, areas in the model are detected that are likely to contain a feature. Second, in the re®nement phase, the best match location is determined. The template that is considered does not need to have a static shape, i.e. a transformation can be applied to it in order to get a better ®t. Every different shape for a template is called a con®guration of the template. To measure the resemblance of a particular con®guration and part of the model, the ratio of the template that coincides with the part of the model is computed. Since the method has only been implemented for 2D curves, only features can be detected from, for example, the pro®le of a product. Further research is planned on 3D matching. Vergeest et al. [27] use parameterised shape templates (see Fig. 10a) to ®nd 3D freeform features in digitised point sets, which are obtained by either physically scanning objects or analysing existing CAD models. An instance of a feature is looked for
E. van den Berg et al. / Computers in Industry 49 (2002) 217±233
231
Fig. 10. Matching a parameterised template to a point set.
by varying the parameters of a template, including orientation and location parameters, and measuring the distance between the point set and the template (see Fig. 10b). This is done until an optimal ®t has been found. Measuring the distance is done by using a variant of the directed Hausdorff distance. The template is represented by a NURBS surface, from which sample points are obtained in order to be able to measure the distance. It is expected that user involvement in the ®tting procedure will be very advantageous. Users can indicate areas where certain features are present, which can reduce ®tting time, and occasionally solve ambiguities. 6. Conclusions and future research This paper has put forward the major concepts in freeform feature modelling, and identi®ed several prospects that exist in this area. Much research effort has been put in both modelling with freeform surfaces
and modelling with regular-shaped features, but the combination of both ®elds has hardly been taken advantage of. As has been shown in this paper, interesting research on freeform feature modelling is currently going on. Several important issues, mentioned in the following sections, still need to be resolved. 6.1. Representation A suitable representation has to be chosen. Most freeform feature literature describes freeform surface manipulation. In a solid modelling context, it seems more appropriate to have volumetric features. The boundaries of volumetric features can be described by NURBS surfaces. 6.2. User-de®ned features Besides an extensive feature library readily available to users, containing mappings from sets of intuitive parameters to 3D shapes, also facilities for user-de®ned
232
E. van den Berg et al. / Computers in Industry 49 (2002) 217±233
features have to be supplied. The enormous variety in shapes cannot be caught in a static feature library. A good de®nition mechanism must therefore be provided, allowing new feature classes to be de®ned. 6.3. Continuity issues In freeform feature modelling, the smoothness of the surface of a model is an important issue, e.g. for aesthetic, ergonomic or aerodynamic reasons. For some applications, it is therefore important to maintain a certain degree of continuity at several areas in the model, or even throughout the entire model. 6.4. Validity maintenance Maintenance of validity conditions during the modelling process is indispensable for any real freeform feature modelling system. The semantics of every feature in a feature model, as well as the semantics imposed between features, must be respected in order to, for example, ensure the manufacturability of products. Since the boundary of a freeform feature can be much more complex, validity maintenance is more dif®cult than in regular-shaped feature modelling. 6.5. Feature conversion Currently, no results have been achieved for freeform feature conversion. Just as in regular-shaped feature modelling systems, multiple views on a freeform product could provide support for different design stages. 6.6. General Freeform feature modelling is obviously still an immature area. It has, however, great potential of extending the current regular-shaped feature approach signi®cantly, thus increasing its value for many real applications. Acknowledgements Eelco van den Berg's work is supported by the Netherlands Organization for Scienti®c Research (NWO).
References [1] W.F. Bronsvoort, F.W. Jansen, Feature modelling and conversionÐkey concepts to concurrent engineering, Computers in Industry 21 (1) (1993) 61±86. [2] J.J. Shah, M. MaÈntylaÈ, Parametric and Feature-Based CAD/ CAM-Concepts, Techniques and Applications, Wiley, New York, 1995. [3] R. Bidarra, W.F. Bronsvoort, Semantic feature modelling, Computer-Aided Design 32 (3) (2000) 201±225. [4] G.E. Farin, Curves and Surfaces for Computer-Aided Geometric Design: A Practical Guide, 4th Edition, Academic Press, San Diego, 1996. [5] L.A. Piegl, W. Tiller, The NURBS Book, 2nd Edition, Springer, Berlin, 1997. [6] K.T. Ulrich, S.D. Eppinger, Product Design and Development, 2nd Edition, Irwin (Richard D.)/McGraw-Hill, Homewood/Boston, 2000. [7] K.J. de Kraker, M. Dohmen, W.F. Bronsvoort, Multiple-way feature conversion to support concurrent engineering, in: C.M. Hoffmann, J. Rossignac (Eds.), Proceedings of the Third Symposium on Solid Modeling and Applications, Solid Modeling, 17±19 May 1995, Salt Lake City, USA, ACM Press, New York, 1995, pp. 105±114. [8] K.J. de Kraker, M. Dohmen, W.F. Bronsvoort, Maintaining multiple views in feature modeling, in: C.M. Hoffmann, W.F. Bronsvoort (Eds.), Proceedings of the Fourth Symposium on Solid Modeling and Applications, Solid Modeling, 14±16 May 1997, Atlanta, USA, ACM Press, New York, 1997, pp. 123±130. [9] R. Bidarra, K.J. de Kraker, W.F. Bronsvoort, Representation and management of feature information in a cellular model, Computer-Aided Design 30 (4) (1998) 301±313. [10] C.M. Hoffmann, R. Joan-Arinyo, On user-de®ned features, Computer-Aided Design 30 (5) (1998) 321±332. [11] A. Noort, W.F. Bronsvoort, Enhanced multiple-view feature modelling, in: P. Brunet, C. Hoffmann, D. Roller (Eds.), CAD Tools and Algorithms for Product Design, Springer, Berlin, 2000, pp. 80±94. [12] C.K. Au, M.M.F. Yuen, A semantic feature language for sculptured object modelling, Computer-Aided Design 32 (1) (2000) 63±74. [13] G. Vosniakos, Investigation of feature-based shape modelling for mechanical parts with free form surfaces, International Journal of Advanced Manufacturing Technology 15 (3) (1999) 188±199. [14] B. Poldermann, I. HorvaÂth, Surface-based design based on parametrized surface features, in: I. HorvaÂth, K. Varadi (Eds.), Proceedings of the International Symposium on Tools and Methods for Concurrent Engineering, 29±31 May, Budapest, Hungary, Institute of Machine Design, Budapest, 1996, pp. 432±446. [15] J.S.M. Vergeest, I. HorvaÂth, S. Spanjaard, Parameterization of freeform features, in: A. Pasko, M. Spagnuolo (Eds.), Proceedings of the International Conference on Shape Modelling and Applications, Shape Modelling International 2001, 7±11 May, Genoa, Italy, IEEE, Piscataway, 2001, pp. 20±29.
E. van den Berg et al. / Computers in Industry 49 (2002) 217±233 [16] M. Fontana, F. Giannini, M. Meirana, A free form feature taxonomy, in: P. Brunet, R. Scopigno (Eds.), Proceedings of Eurographics 1999, Computer Graphics Forum, 18 (3), 1999, pp. 107±118. [17] T.W. Sederberg, S.R. Parry, Free-form deformation of solid geometric models, in: D.C. Evans, R.J. Athay (Eds.), Proceedings of SIGGRAPH 1986, August 18±22, Dallas, Texas, Computer Graphics 20 (4), 1986, pp. 151±160. [18] J.C. LeÂon, P. Trompette, A new approach towards free-form surfaces control, Computer Aided Geometric Design 12 (4) (1995) 395±416. [19] H. Qin, D. Terzopoulos, D-NURBS: A physics-based framework for geometric design, IEEE Transactions on Visualization and Computer Graphics 2 (1) (1996) 85±96. [20] J. Sanchez-Reyes, A simple technique for NURBS shape modi®cation, IEEE Computer Graphics and Applications 17 (1) (1997) 52±59. [21] J.C. Cavendish, S.P. Marin, A procedural feature-based approach for designing functional surfaces, in: H. Hagen (Ed.), Topics in Surface Modeling, Geometric Design Publications, Philadelphia, 1992, pp. 145±168. [22] J.C. Cavendish, Integrating feature-based surface design with freeform deformation, Computer-Aided Design 27 (9) (1995) 703±711. [23] S. Takahashi, Y. Shinagawa, T.L. Kunii, A feature-based approach for smooth surfaces, in: C.M. Hoffmann, W.F. Bronsvoort (Eds.), Proceedings of the Fourth Symposium on Solid Modeling and Applications, Solid Modeling 1997, 14±16 May, Atlanta, USA, ACM Press, New York, 1997, pp. 97±110. [24] P.A. van Elsas, J.S.M. Vergeest, Displacement feature modelling for conceptual design, Computer-Aided Design 30 (1) (1998) 19±27. [25] K.A. Ingle, Reverse Engineering, McGraw-Hill, New York, 1994. [26] T. VaÂrady, R.R. Martin, J. Cox, Reverse engineering of geometric modelsÐan introduction, Computer-Aided Design 29 (4) (1997) 255±268. [27] J.S.M. Vergeest, I. HorvaÂth, J. Jelier, Z. Rusak, Freeform surface copy and paste techniques for shape synthesis, in: I. HorvaÂth, A.J. Medland, J.S.M. Vergeest (Eds.), Proceedings of the Third International Symposium on Tools and Competitive Engineering, 18±21 April, Delft, The Netherlands, Delft University Press, Delft, 2000, pp. 395±406. [28] G. Little, D.E.R. Clark, J.R. Corney, J.R. Tuttle, Deltavolume decomposition for multi-sided components, Computer-Aided Design 30 (9) (1998) 695±705. [29] J.R. Corney, Graph-based feature recognition, Ph.D. Thesis, Heriot-Watt University, Edinburgh, 1993. [30] T. Lim, J.R. Corney, D.E.R. Clark, A laminae approach to constructing geometric feature volumes, in: D.C. Anderson, K. Lee (Eds.), Proceedings of the Sixth Symposium on Solid Modeling and Applications, Solid Modeling 2001, 6±8 June, Ann Arbor, USA, ACM Press, New York, 2001, pp. 183±193. [31] R. Sonthi, G. Kunjur, R. Gadh, Shape feature determination using the curvature region representation, in: C.M. Hoffmann,
233
W.F. Bronsvoort (Eds.), Proceedings of the Fourth Symposium on Solid Modeling and Applications, Solid Modeling 1997, 14±16 May, Atlanta, USA, ACM Press, New York, 1997, pp. 285±296. [32] C.L. Li, K.C. Hui, Feature recognition by template matching, Computers & Graphics 24 (4) (2000) 569±582. Eelco van den Berg is a PhD student at the Computer Graphics and CAD/CAM Group at Delft University of Technology, The Netherlands. He received his master's degree in computer science from Delft University of Technology in 2000. His research interests include freeform feature modelling and collaborative modelling. Willem F. Bronsvoort is associate professor CAD/CAM at the Faculty of Information Technology and Systems of 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. His main research interests are geometric modelling, including display algorithms for geometric models and ®nite-element mesh generation, and feature modelling, including assembly feature modelling, feature validity maintenance and multiple-view feature conversion. He has published numerous papers in international journals, books and conference proceedings, is book review editor of the Computer-Aided Design journal, and has served as program co-chair of Solid Modeling 1997 and 1999 and as member of several program committees. Joris S.M. Vergeest received his master's degree in physics and computer science in 1974 from the University of Nijmegen, The Netherlands. From the same institute he obtained his PhD degree in experimental high energy physics in 1979. Since 1984 he is associate professor at Delft University of Technology, Faculty of Design, Engineering and Production, and is involved in lecturing and research. His primary research topics include image processing, computer graphics, 3D geometric modelling, automatic shape design based on constraints and optimisation, robust processing of imprecise geometric models, product data representation and conversions, product model standardisation, CAD model sharing among dissimilar systems, reverse engineering, freeform shape pattern recognition, and shape reuse methods.