A scheme for functional tolerancing : A product family in 3 D CAD system

Article history: Received 1 August 2011 Available online 10 August 2011 To meet the need for product variety, many companies are shifting from a massproduction mode to mass customization, which demands quick response to the needs of individual customers with high quality and low costs. The multifunctional nature of mechanical components necessitates that a designer redesign them each time when a component’s function changes. The functional Geometric Dimensioning & Tolerancing (GD&T) specification, also called functional tolerancing, must be updated for each component. Currently, this is done by humans, and thus can be very time-consuming and error-prone. Functional tolerancing is one of the main obstacles to practical mechanical product family modeling. In this paper, a graph-based functional tolerancing scheme in 3D CAD is proposed. In the scheme, a product is generated by applying production rules to the graph of the base product, following customers’ or manufacturing engineers’ requirements. Functional tolerancing of each component of a product in the family is formulated as a non-linear constrained optimization (or cost minimization) process. Certain critical aspects of the scheme have been implemented in SolidWorks, by using its Application Programming Interface (API) and C++. LEDA and MATLAB have been used to solve the graph and optimization problems. © 2012 Growing Science Ltd. All rights reserved


Introduction
Traditional production systems, such as produce-to-order or assembly-to-order, work well with a low number of variants, but not when customers require a large product variety.Developing product families with design-to-order strategy has been recognized as means to support product variety with low costs and a minimal data redundancy.In many products, building block design or modular design is used successfully.Based on modular product architecture, product variety can be fulfilled through various combinations of modules.While the modular design method has been successfully applied in Very Large Scale Integration (VLSI) system design and personal computer design, it is hard to use in mechanical product design.The reason is that design economy dominates mechanical design (if one element were selected for each identified function, such systems would inevitably be too big, too heavy, or too wasteful of energy (Whitney, 1996)).The multifunction nature of mechanical components calls designers into redesigning them each time when their functions change.For a mechanical product, about 75% of the final cost is determined in the product design stage.Therefore, design tools are highly demanded to help designers face the challenge of mass customization.Currently, there is no well-defined design process for developing a family of mechanical products, nor is there research work to support designers when a variant product in the same product family is generated.In addition, when detailed design of a component is finished, there is no support for designers to specify geometric tolerances.Tolerance specification is the topic that has been least studied so far.It usually involves a series of activities, such as identifying features to be toleranced and the required datum features, determining types of tolerances needed and material conditions, and finally, assigning some of the tolerance values as per functional requirement.Other tolerance values should be generated in the tolerance synthesis process.Traditionally, these activities heavily rely on the designer's experience, the empirical data, and/or the handbooks for designers and machinists.A systematic method is needed to automate this whole procedure, preferable in a CAD environment, incorporating domain-specific knowledge.

Fig. 1. Map of the scheme
In this paper, a graph grammar-based mechanical assembly family model is introduced.The generation of an assembly in the same family is modeled as the manipulation to the graph that represents the base assembly by applying graph production rules.The generated assembly variant is a graph with components as nodes and joints between components as edges.The joint information between components as well as the feature information of each component can help the designer in component design and tolerance specification.Fig. 1 illustrates the map of the overall scheme of the research in this paper.The research of this paper can be separated into two parts: mechanical product variant generation (product design) and tolerance generation (tolerance design).
In mechanical product variant generation, the user (a customer or a manufacturing engineer) enters his/her selections from a list of predefined requirements.The requirement selections are then mapped to the application conditions of a set of production rules.The production rules whose application conditions are satisfied are fired.The base product, which is represented by the graph of the product's mechanism, is manipulated by the fired production rules.The customized product variant of the mechanical product family, which is also represented as a graph, is then generated after all the fired production rules are applied.Tolerance Generation The graphs that represent the base product and product variants are attributed graphs.The attributes of nodes and edges of the graph are to carry quantitative or qualitative design information.The information is utilized in tolerance generation for tolerancing of each component in the product.The GD&T specification rules are followed to generate Datum Reference Frames (DRFs) on each component.Other features on the component are toleranced to the DRFs, and the tolerance types and material conditions are generated based on the attributes of the features.Tolerance values or ranges of tolerance values are obtained through tolerance synthesis and tolerance mapping.

Review
In the past two to three decades, design methods were continuously being developed, tested, implemented in industry, and taught to the engineering community.Customer needs are first transformed to a repeatable functional representation, then to layouts and solution pieces, then to broad combinations and alternative products, and finally to an embodied realization that we can produce for the customer.
The need in the market for product variety requires formal design process to develop a family of products instead of single products.Characteristics of a product family range from flexible modular designs to robust and scalable designs, to standardized and flexible products.Martin and Ishii (1996) identified commonality, modularity, and standardization; Rothwell and Gardiner (1990) emphasized robust design; Wheelwright and Clark (1992) suggested designing "platform projects" that were capable of meeting the needs of a core group of customers but were easily modified into derivatives through addition, substitution, and removal of features.MacDuffie et al. (1996) looked at how the variety affected manufacturing within the automotive industry by studying empirical data.
Geometry and tolerance requirement of a specific mechanical component may change from one product to another in the same product family.A well-defined mechanical product family model should provide the logical relationships between components.These relationships are very important for component designing and tolerancing.However, none of the methods mentioned above has taken this issue into account.In this work, a graph grammar-based mechanical product family modeling method is presented to generate variants in a product family with the joints between components updated for tolerance specification.
Tolerance specification usually encompasses a series of activities, such as the identification of features to be toleranced and their required datum features, the determination of the types of tolerances needed.As mentioned earlier, tolerance specification is the topic that has been least explored so far.In practice, the tolerances are specifications by the designer, mainly based on experience and/or empirical information.The concept of topologically and technologically related surfaces (TTRS) (Clement, 1996) is used in specifying tolerances on components.Tolerance types are selected based on the geometric relations between the functional features.But the selection of datum features, datum precedence, and selection of material condition are missed in this method.Linares (2002) presented a tolerance specification method by introducing a concept called Functional Group, but very limited cases of tolerance specification are covered.A tolerance specification method based on the influence of contacts is presented by Anselmetti (2002).Kandikjan (2001) proposed a tolerance advisor for tolerance specification.The scheme is totally based on the component, not the assembly.In this paper, the mirror method is proposed for an assembly-oriented functional tolerance specification to cover selection of datum features, datum precedence, selection of material condition, and selection of geometric tolerance types by using information stored in the generated products' graph model.

Graph-based Representation of an Assembly
Figure 2 shows an example of the graph formalism of the graph of a piston assembly, where the bigger circles represent nodes (components), the smaller circles represent ports (features) of the nodes, and the lines between ports are edges (joints).Labels and attributes of nodes, edges, and ports are also illustrated.

Graph grammar of a mechanical product family
The term "graph grammar" generally means a method for generating a set of graphs from a starting graph.Manipulations on the starting graph are carried out by applying production rules.All graphs that can be derived by applying production rules to a starting graph construct the language of this graph grammar.This research adopts graph grammars as tools to model a mechanical product family.
The strategy of graph grammar-based mechanical product family modeling is to design graph grammars to represent the organization of mechanical product family elements and accordingly to transform the variant derivation process into a process of assembly graph derivation.
Graph grammar with ordered production rules is called programmed graph grammar.In a programmed graph grammar, the sequence of executing a set of productions can be expressed in a control diagram.Product variants of the family can be derived by applying production rules according to the control diagram to modify the starting graph which represents the base product.The resultant graphs are the graph models of desired variants.
A Programmed Attributed Graph Grammar (PAGG) is defined as a nine-tuple: where V = {C i } is a set, consisting of node labels (i.e., names or IDs) of all components in the product family; W = {C i ×C j } is a set, consisting of edge labels that indicate the joints between the components; X is a set, consisting of port labels that represent features; A V is a set, consisting of node attributes representing attributes of components; A W is a set, including edge attributes representing attributes of joints; A X is a set, consisting of port attributes; S is the starting graph representing the base product; P = {p i } is a set, including all production rules defined for graph manipulation to generate variants; and CD is the control diagram over P, specifying the order by which productions are applied so that the variants can be derived.
All attributed graphs that can be derived by graph grammar GG as defined above are termed language of the graph grammar.The derivation steps are: 1) starting with a starting graph S; 2) applying all applicable productions P in an order specified by the control diagram CD.where g l is the conditional graph which implies that the base product provides interface for component C to be added; g r is the resultant graph after component C being added; and T is the embedding transformation function that specifies that all the edges connected to the components in g l will be connected to the corresponding components in g r .

Decomposition
This category of operations serves the purpose of resembling the subsequent splitting of components into components that have simpler shapes.This kind of operation may be required by manufacturing or assembly practices.This category shows similar expressions to those in the "addition" category, with the slight difference that the created nodes here only serve part of the functions (joints with other components) of the original components.Decomposition operation can be represented by a fourtuple: Decomposition = (g l , g r , T, P), similar to the "addition" operation.An example of the Decomposition operation is shown in Fig. 5.In the example, component 1 is decomposed into the modified component 1 and component 3, so that the cylindrical feature mating with the gear (component 2) is transformed from the original component 1 to the component 3.This might happen when a component with many functional features is easier or more economical to be manufactured if it can be decomposed into several components.

Modification
Operations belonging to this category are intended not to extend the graph model obtained so far by adding nodes but rather to perform necessary modifications concerning the ports and attributes of nodes or relations among nodes.This may happen when we want to replace a component with one that has similar functions.For example, a customer may want to change a gear with one gear feature into a gear with two gear features to get a larger input/output ratio.This is shown in Figure 6.Modification operation also can be represented by a four-tuple as above: Modification = (g l , g r , T, P).After defining the operations used to modify graphs for variety generation, conditions under which the operations can be performed have to be specified, that is, when components should be added, decomposed, or modified.Application conditions are introduced for this purpose.When application conditions are satisfied, the applicability predicate, π, is TRUE.Otherwise, π is FALSE.Application conditions can be expressed as functions of customers' or manufacturing engineers' selected requirements or requirement values.A production rule is defined as a two-tuple: P = (O, π), where 1) O ∈ {Addition, Decomposition, Modification} is the operation; 2) π ∈ {TRUE, FALSE} is the applicability predicate, which is a logic function of application conditions.A few examples of production rules are given as follows, where R i indicates requirement i of the product.
where α is a function to get the value of the requirement Ri and λ is a function to get the name of the requirement Ri.

3) Graph Derivation
Deriving a product variant may involve more than one step of modification of the base product.The process of modifying a base product to a customized one can be modeled as a series of graph derivations by executing certain production rules.The derivation of a graph, g ' , from a graph, g, by means of a production, p, follows the following procedures: 1. Check whether g l is a subgraph in g, and check if the application condition is true.If both condition s are fulfilled, continue to step 2.
2. Substitute g l , including all incoming and outgoing edges, with the nodes and edges of g r .
3. Transform the embedding of g l in g into g r in g'.
4. Update the ports of nodes in g r .

4) Control Diagram
Usually, a number of productions will be involved in the process of graph derivation.The order for a collection of productions to be invoked is specified by the control diagram.The control diagram in the graph grammar of a product family expresses the order in which productions defined for this product family are to be executed.Our method is to go through this process by imitating a real designer's design practice in three stages: 1) adding new components or modifying existing components in the mechanism to fulfill a customer's or an engineer's functional requirements; 2) increasing performance of the product by adding components, such as gaskets or bearings; and 3) adding positioning or fastening components to secure the relative positioning of the components in the assembly.
To map customers' or manufacturing engineers' requirements to a variant design, the checking of application conditions should start from the production that is at the beginning position of the control diagram.The path in the control diagram with the maximum number of applicable productions (application condition is TRUE) is chosen and all feasible productions along the path will be applied.
A variant is generated when no more production rules in the path of the control diagram can be applied.Figure 7 shows an example of a control diagram.In figure 8, a graph that represents the base product of a planetary gear train is transformed into a graph that represents one possible product in the planetary gear train product family.Figure 9 shows the product's physical model in SolidWorks ® .
For details of the graph generation process, please refer to Wang, 2005.software for their own use.In-house software can therefore be quickly prototyped and tested.SolidWorks has been chosen as the CAD platform to implement the proposed tolerance specification and tolerance synthesis methods owning to the following reasons: • SolidWorks is a very popular CAD system based on a solid model which is 3D in nature.This matches our purpose for 3D tolerance specification and synthesis.• The API is well documented.
• The API is easy to use and sample codes are available.
• There is noo extra charge for the API.The tolerance specification module and the tolerance synthesis module are developed as an add-in DLL (Dynamic Link Library) in SolidWorks by using the Object-Oriented Design method through SolidWorks' API and MS Visual C++.The system structure is in Figure 10.
The user interacts with the tolerance specification module and tolerance synthesis module through SolidWorks Graphical User Interface (GUI) and GUI of the two modules by Microsoft Foundation Class (MFC).

1)Tolerance Specification
A base cover assembly is used to illustrate how the tolerance specification module and the tolerance synthesis module work in SolidWorks.The solid model of the assembly is shown in Figure 11.As can be seen, there are three mates between the Cover and the Base: a coincident mate between 1a and 2a, a concentric mate between 1b and 2b, and a concentric mate between 1c and 2c.The tolerance specification module and tolerance synthesis module are programmed as an add-in to SolidWorks in Dynamic Link Library (DLL) file format.This add-in file can be loaded by opening the file directly in SolidWorks or by checking the respective check box in the Add-ins dialog box.

Conclusions and future work
A graph grammar-based mechanical product modeling scheme has been proposed.A product is generated by applying production rules to the graph of the base product, the mechanism.Both base product and end product are represented by graphs with components as nodes and joints between components as edges.The generated attributed graph is a data structure which represents the joint and feature information of the customized product.In the end product, the joints between a component and other components in the product represent the functions concerning how the components are to be related to each other geometrically.Therefore, the joints information can be used in designing and tolerancing.Further efforts should be made to extend research in the following areas.The users of the scheme of mechanical product family modeling can be roughly classified into "designers" and "experts."While designers only have knowledge of designing the product, experts know how to design the product as well as how to translate the design knowledge to production rules for the product family.As described in section three, the key elements of a graph grammar of a mechanical product family are: a starting graph which represents the mechanism of the product, production rules, and a control diagram.Developing the three elements might not be a problem for an expert (even if it might take him or her months), but it could be very challenging for a designer who has very limited knowledge about graphs, production rules, etc.In order to make the proposed scheme convenient and efficient for all kinds of users, a generic system for mechanical product family modeling should be developed.It should allow users to select and edit starting graphs.Production rules should be generated based on user input such as customers' or manufacturing engineers' requirements, changes of features on components due to said requirements, etc. Users should be able to generate or edit the control diagram by their knowledge of design sequence and the support of the system.
There are two interesting questions about production rules that might indicate the directions of future study.One is "How do we know the production rules of a mechanical product family are complete?" The other is "How do we know if the production rules are optimal?"A complete production rule set should be able to generate product variants that meet all possible combinations of requirements for a product family.It should also represent all possible changes of the product configuration due to one specific requirement.An optimal production rule set is a complete one that has the minimum number of production rules.Future research about criterias that help users in evaluating the completeness of the production rules is needed to help searching for the optimal product design.
Figure 3.6.6-2 Assembly graph of a planetary gearbox design Fig. 3. Crank-Slider mechanism and its graph representation2) Production Rules A production rule P has two parts: the operation (O) and its application conditions (π).The operation O = (g l , g r , T, P) designates how the left-hand side (LHS) graph, g l , is replaced by the right-hand side (RHS) graph, g r , with respect to embedding transformation, denoted by T, or port transformation, denoted by P.AdditionA particular component carrying out certain additional functions can be added to a base product to create a new product variant.Adding a component or subassembly C to a base product BP is equivalent to adding the graph g(C) to the host graph g(BP).Addition operation can be represented by a four-tuple: Addition = (g l , g r , T, P):

Fig. 4 .
Fig. 4.An example of the Addition operation

Fig. 6 .Fig
Fig. 6.An example of the Modification operation

Fig. 7 .
Fig. 7.An example of a control diagram