Object-Oriented Representation of Electro-Mechanical Assemblies Using UML
2003 Wang, Lyons, Technology, Sriram, Feng, Rachuri, Roy, Han 97 pp.

Object-Oriented Representation of Electro-Mechanical Assemblies Using UML

NISTIR 7057

1. Object-Oriented Representation of Electro-Mechanical Assemblies Using UML

Sudarsan Rachuri
Young-Hyun Han
Shaw C Feng
Utpal Roy
Fujun Wang
Ram D Sriram
Kevin W Lyons

NIST

National Institute of Standards and Technology
Technology Administration, U.S. Department of Commerce

NISTIR 7057

2. Object-Oriented Representation of Electro-Mechanical Assemblies Using UML

Sudarsan Rachuri
Young-Hyun Han
Shaw C Feng
Utpal Roy
Fujun Wang
Ram D Sriram
Kevin W Lyons

October 03

Seal of the U.S. Department of Commerce, United States of America

The seal of the U.S. Department of Commerce is circular. It features an eagle with spread wings perched atop a shield. The shield contains a ship. The words "DEPARTMENT OF COMMERCE" are written in a circle around the top, and "UNITED STATES OF AMERICA" around the bottom, separated by two stars.

Seal of the U.S. Department of Commerce, United States of America

U.S. DEPARTMENT OF COMMERCE

Donald L. Evans, Secretary

TECHNOLOGY ADMINISTRATION

Phillip J. Bond, Under Secretary of Commerce for Technology

NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY

Arden L. Bement, Jr., Director

3. Table of Contents

1INTRODUCTION.....2
2PREVIOUS WORK.....3
2.1ISO STANDARD FOR PRODUCT DATA REPRESENTATION .....3
2.2ISO WORKING GROUP PROPOSAL .....6
2.3RESEARCH AT NIST.....8
2.3.1Open Assembly Design Environment Project.....9
2.3.2Design for Tolerancing of Electro-mechanical Assemblies Project.....10
2.3.3NIST Core Product Model.....11
2.3.4Other Systems.....12
3UML REPRESENTATION OF THE OAM ASSEMBLY .....14
3.1OVERVIEW .....14
3.2MAIN SCHEMA OF THE ASSEMBLY MODEL.....14
3.3ASSEMBLY ASSOCIATION.....15
3.4ARTIFACT ASSOCIATION .....16
3.5OAMFEATURE .....18
3.6ASSEMBLY FEATURE.....19
3.7ASSEMBLY FEATURE ASSOCIATION REPRESENTATION .....20
3.8PARAMETRIC ASSEMBLY CONSTRAINTS .....21
3.9KINEMATIC PAIR.....22
3.10KINEMATIC PATH.....24
3.11TOLERANCE .....25
3.11.1Form Tolerance .....28
3.11.2Profile Tolerance .....29
3.11.3Location Tolerance .....29
3.11.4 Orientation Tolerance..... 30
3.11.5 Runout Tolerance..... 31
3.11.6 Statistical Tolerance ..... 31
4 EXAMPLE AND INDUSTRIAL CASE STUDY..... 32
4.1 COMPONENTS IN PLANETARY GEAR SYSTEM..... 33
4.2 ASSEMBLY HIERARCHY ..... 35
4.3 ASSEMBLY RELATIONSHIPS ..... 36
4.3.1 Output Housing Assembly..... 37
4.3.2 Ring Gear Assembly..... 39
4.3.3 Planet Carrier Assembly..... 41
4.3.4 Planet Gear-carrier Assembly ..... 42
4.3.5 Planetary gear system Assembly..... 43
4.4 KINEMATIC INFORMATION REPRESENTATION ..... 53
4.5 TOLERANCE CHAINS IN THE PLANETARY GEAR SYSTEM DESIGN ..... 61
4.6 GEOMETRIC TOLERANCES IN THE PLANETARY GEAR SYSTEM DESIGN ..... 69
5 CONCLUSIONS AND FUTURE WORK..... 79
6 ACKNOWLEDGEMENTS ..... 80
7 DISCLAIMER..... 80
8 REFERENCES..... 80

4. List of Figures

Figure 1: ISO 10303 Part Structure in UML Notation ..... 5
Figure 2: Assembly Model Proposed by JNC. Source [2]..... 8
Figure 3: Entities in the Core Product Model (relationships among entities not shown) ..... 12
Figure 4: Main Schema of Assembly ..... 15
Figure 5: Assembly Association..... 16
Figure 6: Artifact Association ..... 17
Figure 7: OAMFeature..... 18
Figure 8: Assembly Feature..... 19
Figure 9: Assembly Feature Association Representation..... 20
Figure 10: Parametric Assembly Constraints ..... 22
Figure 11: Kinematic Pair..... 23
Figure 12: Derived Kinematic Pairs ..... 23
Figure 13: Revolute Pair Class Diagram..... 24
Figure 14: Kinematic Path ..... 25
Figure 15: Tolerance Package ..... 27
Figure 16: Form Tolerance Package ..... 28
Figure 17: ProfileTolerance Package ..... 29
Figure 18: LocationTolerance Package ..... 30
Figure 19: OrientationTolerance package..... 30
Figure 20: RunoutTolerance Package..... 31
Figure 21: StatisticalTolerance Package ..... 32
Figure 22: Solid Model of a Planetary Gear..... 33
Figure 23: Exploded View of the Planetary Gear Model..... 33
Figure 24: Assembly Hierarchy of Planetary Gear System..... 35
Figure 25: Instance Diagram of Main Assembly Hierarchy..... 36
Figure 26: Artifact Associations ..... 37
Figure 27: Output Housing Assembly..... 38
Figure 28: Instance Diagram of Output Housing Assembly ..... 39
Figure 29: Ring Gear Assembly ..... 40
Figure 30: Instance Diagram of Output Housing Assembly ..... 40
Figure 31: Planet Carrier Assembly..... 41
Figure 32: Instance Diagram of Planet Carrier Assembly ..... 42
Figure 33: Planet Gear Carrier Assembly ..... 42
Figure 34: Instance Diagram of Planet Gear-Carrier Assembly..... 43
Figure 35: Planetary gear system Assembly ..... 44
Figure 36: Output Housing Assembly and Planet Gear-Carrier Assembly ..... 44
Figure 37: Output Housing Assembly and Planet Gear-Carrier Assembly Instance Diagram ..... 45
Figure 38: Sun gear And Planet Gear-Carrier Assembly ..... 46
Figure 39: Sun gear and Planet Gear-Carrier Assembly-Instance Diagram ..... 48
Figure 40: Ring Gear Assembly and Planet Gear-Carrier Assembly ..... 49
Figure 41: Ring Gear Assembly and Planet Gear-Carrier Assembly-Instance Diagram ..... 50
Figure 42: Output Housing Assembly, Ring Gear Assembly, and Screws ..... 50
Figure 43: Output Housing Assembly, Ring Gear Assembly, and Screws-Instance Diagram ..... 52
Figure 44: Input Housing, Ring Gear Assembly, and Screws ..... 52
Figure 45: Input Housing, Ring Gear Assembly, and Screws-Instance Diagram ..... 54
Figure 46: Kinematic Diagram of Planetary Gear System ..... 55
Figure 47 (a), (b): Coordinate Systems Assigned To Kinematic Pairs ..... 56
Figure 48: Instance Diagram of Planetary Gear System ..... 59
Figure 49: Instance Diagram of RevolutePair (RP1: RevolutePair) ..... 60
Figure 50: Instance Diagram of GearPair (GP1: GearPair) ..... 60
Figure 51: The assembly relationship between the sun gear and the planetary gear holder ..... 61
Figure 52: Sun gear Tolerances ..... 62
Figure 53: Tolerance Instance Diagram ..... 63
Figure 54 Sun gear Part Instance Diagram ..... 64
Figure 55: Tolerance Instance Diagram ..... 65
Figure 56: Planetary Gear Tolerances ..... 65
Figure 57: Planetary Gear Part Instance Diagram ..... 66
Figure 58: Ring Gear Tolerances ..... 67
Figure 59: Tolerance Instance Diagram ..... 67
Figure 60: Ring gear part instance diagram ..... 68
Figure 61: Geometric Tolerances In The Planetary Gear System Design ..... 70
Figure 62: Planetary Gear Holder Tolerances ..... 71
Figure 63: Tolerance Instance Diagram ..... 71
Figure 64: Planetary Gear Holder Part Instance Diagram ..... 72
Figure 65: Input Housing Tolerances ..... 73
Figure 66: Tolerance Instance Diagram ..... 73
Figure 67: Input Housing Part Instance Diagram ..... 74
Figure 68: Output Housing Tolerances ..... 76
Figure 69: Tolerance Instance Diagram ..... 77
Figure 70: Output Housing Instance Diagram ..... 78

5. List of Tables

Table 1: Part List of the Planetary Gear System..... 34
Table 2: Assembly relationships of the output end of the planetary gear system..... 39
Table 3: Assembly Relationships of Ring Gear Assembly..... 40
Table 4: Assembly Relationships of Planet Carrier Assembly..... 41
Table 5: Assembly Relationships of Planet Gear-Carrier Assembly..... 43
Table 6: Assembly Relationships Between Output Housing Assembly and Planet Gear-Carrier Assembly..... 45
Table 7: Assembly Relationships Between Sungear and Planet Gear-Carrier Assembly 47
Table 8: Assembly Relationships Between Ring Gear Assembly and Planet Gear-Carrier Assembly..... 49
Table 9: Assembly Relationships Between Output Housing Assembly, Ring Gear Assembly, and Screws..... 51
Table 10: Assembly Relationships Between Input Housing, Ring Gear Assembly, and Screws..... 53
Table 11: Kinematic Pairs and Associated Parts (Links) of Planet Gear System..... 55
Table 12: Frames of Each Kinematic Pair..... 57
Table 13: Frames Associated with Each Link (Part)..... 58
Table 14: Tolerance Table For The Sungear..... 65
Table 15: Tolerance Table For A Planetary Gear..... 66
Table 16: Tolerance table for the ring gear..... 68
Table 17: Tolerance Table For The Planetary Gear Holder..... 72
Table 18: Tolerance Table For The Input Housing..... 75
Table 19: Tolerance Table For The Output Housing..... 79

6. List of Acronyms

ASMEAmerican Society of Mechanical Engineers
BOMBill of Materials
CADComputer Aided Design
CAMComputer Aided Manufacturing
CPMCore Product Model
DAGDirected Acyclic Graph
DFTDesign For Tolerancing
ESPRITEuropean Strategic Program on Research in Information Technology
FABFunction Assembly Behavior
FEMFinite Element Method
ISOInternational Organization for Standardization
MOKAMethodology and tools Oriented to Knowledge based engineering Applications
NISTNational Institute of Standards and Technology
OAMOpen Assembly Model
OpenADEOpen Assembly Design Environment
SIMASystem Integration for Manufacturing Applications
STEPSTandards for the Exchange of Product model data
UMLUnified Modeling Language
VADEVirtual Assembly Design Environment

7. Abstract

The important issue of mechanical assemblies has been a subject of intense research over the past several years. Most electromechanical products are assemblies of several components, for various technical as well as economic reasons. This report provides an object-oriented definition of an assembly model called the Open Assembly Model (OAM) and defines an extension to the NIST Core Product Model (NIST-CPM). The assembly model represent the function, form, and behavior of the assembly and defines both a system level conceptual model and associated hierarchical relationships. The model provides a way for tolerance representation and propagation, kinematics representation, and engineering analysis at the system level. The assembly model is open so as to enable plug-and-play with various applications, such as analysis (FEM, tolerance, assembly), process planning, and virtual assembly (using VR techniques). With the advent of the Internet more and more products are designed and manufactured globally in a distributed and collaborative environment. The class structure defined in OAM can be used by designers to collaborate in such an environment.

The proposed model includes both assembly as a concept and assembly as a data structure. For the latter it uses STEP. The model captures the assembly evolution from the conceptual to the detailed design stages.

It is expected that the proposed OAM will enhance the assembly information content in the STEP standard.. A case study example is discussed to explain the Usecase analysis of the assembly model.

8. 1 Introduction

The design of complex engineering systems is increasingly becoming a collaborative task among designers or design teams that are physically, geographically, and temporally distributed. The complexity of modern products is such that a single designer or design team can no longer manage the complete product development effort. Hence, companies are increasingly staffing only their core competencies in-house and are depending on other firms to provide the complementary design knowledge and design effort needed for a complete product. Designers are no longer merely exchanging geometry data, but also more general knowledge about design and the product development process, including specifications, design rules, constraints, design rationale, etc. Furthermore, this exchange of knowledge more and more often crosses corporate boundaries. As design become increasingly knowledge-intensive and collaborative, the need for computational frameworks to support product engineering in industry becomes more critical. Although CAD vendors have developed many different ways to model parts and represent design information as constraints between parts, it is not clear that all of these representations are capturing the same level of information. The issue of exchanging part and assembly information between heterogeneous modeling systems is critical for unrestricted exchange of product data. However, little has been done in terms of developing standard representations that specify design information and product knowledge.

An assembly information model contains information regarding parts and their assembly relationships. Hence, we wish to emphasize the nature and information requirements for these part features and for these assembly relationships. Furthermore, we need to address the evolution of their corresponding information models during the conceptual and detailed design stages. In this report, we propose an integrated information model for assembly representation that is important for the exchange of information between modeling, analysis and planning systems.

The report is organized as follows. In Section 2, we discuss the existing ISO Standard for product data representation and exchange, ISO TC 184/SC4 [1], the Japanese National Committee (JNC) proposal for a STEP assembly model of products [2] and previous NIST efforts and current works towards assembly representations [3], [4], [5-7]. In Section 3, we present the object-oriented representation of electro-mechanical assemblies using UML [8]. We use bold face notation for classes. The various class definitions including, assembly, feature, kinematics, and tolerance are discussed. In Section 4, we present a Usecase analysis of the assembly model with a planetary gear system and explain how to use OAM in kinematic and tolerance representations. Object diagrams explaining the relationships, as well as the geometric and related data are also provided. Finally, conclusions and recommendations for further research work are presented in Section 5.

9. 2 Previous Work

In this section we discuss the various research efforts toward developing assembly models, product representations, and standards. In Section 2.1, we describe the assembly representation in the ISO 10303 [9] standards. In Section 2.2, we discuss the recent proposal by an ISO working group towards enhancing the assembly representation in ISO 10303. In Section 2.3, we describe the relevant research projects at NIST, including Design for Tolerancing and the Core Product Model. We also present a brief discussion of several other assembly and product representation models developed by other researchers.

9.1. 2.1 ISO Standard for Product Data Representation

ISO 10303-Part 44 [10] provides some limited assembly design representations that capture assembly structure and kinematic joint information during the design process. The assembly model establishes a neutral representation of assemblies of products, which are composed of sets of components. In this model, complete products are called “assemblies,” and the components of the lowest levels in the assemblies are called “parts.” The model focuses on the hierarchy of the product, and on the position and orientation between parts. The application fields of interest to the assembly model are the kinematic analysis of assemblies, the animation of assemblies for digital-mockup technologies, assembly/disassembly process planning from the viewpoint of CAD and CAM systems, and tolerance analysis and synthesis. The product (assembly) data representation is divided into three major schemas:

The Product structure schema defines a product in terms of a nested decomposition into its constituents. It also defines mechanisms for expressing the composition relationship. Product structures are modeled by directed acyclic graphs (DAG). Nodes represent product definitions (PD) and arcs represent relationships (PDRs). Refer to

Figure 1. Product definition usage (PDU) refers to part/whole or composed-of relationships. It is a subtype of PDR and defines two subtypes:

  • – Assembly component usage (ACU) which establishes composed-of relationships between PDs.
  • – Make from usage option – (MFUO), which represents the fact that any actual unit of one design can be manufactured by using or modifying an actual unit of another design.

The entity ACU defines the following subtypes:

  • – quantified_ACU (QACU), which defines the relationship between component and assembly .
  • – next_CUOccurrence (NCUO), which defines the immediate parent/child relationship.
  • – specified_higher_usage_occurrence (SHUO), which defines the specified parent/child relationship.
  • – promissory_usage_occurrence (PUO), which represents the relationship between a constituent and an ancestor assembly within an overall product structure without any specification of the intermediate assemblies being represented. The word “occurrence” is used in a sense to mean appearance/existence. The red lines in Figure 1 refer to the proposed ISO Part 109.

This product structure schema supports at least two forms of product structure:

  1. 1. Bill-of-Materials (BOM), and
  2. 2. Parts List Structure

The BOM data structure is used to represent the assembly aspects of a product structure. It includes only one instance of a single product definition for each kind of product that participates in the assembly structure. A part list structure is a specific form of a bill-of-material that can be represented by a tree (guided by the BOM's DAG structure). A bill-of-material structure may require a more general DAG. The parts list data structure individualizes the relationship between lower-level parts of the product structure with higher-level assemblies in which they are contained.

UML class diagram showing the ISO 10303 Part Structure. The diagram illustrates the relationships between various entities in a product structure. Key entities include ProductDefinitionContext, ProductDefinition, ProductDefinitionRelationship, ProductDefinitionUsage, ComponentAssociation, ComponentAssociationRelationship, ShapeAspectRelationship, AssemblyFeatureAssociation, CharacterizedObject, ProductPropertyDefinition, ShapeAspect, FeatureDefinition, AssemblyFeature, ACU, QACU, NAUO, SHUO, PUO, MFUO, RelativeMotion, Connection, RPO, Movable, Intermittent, Fixed, PiecePartDefinition, AssemblyDefinition, and ComponentAssociation. Relationships are shown with solid and dashed arrows, some labeled 'RelatingProductDefinition'. A red box highlights 'ComponentShapeAssociation' and another red box highlights 'MainComponentUsage' and 'AuxiliaryComponentUsage'.

The diagram illustrates the ISO 10303 Part Structure in UML notation. It shows a hierarchy of entities and their relationships. Key entities include:

  • ProductDefinitionContext (containing ApplicationContextPackage and ProductDefinition)
  • ProductDefinition (related to ProductDefinitionContext via RelatingProductDefinition)
  • ProductDefinitionRelationship (related to ProductDefinition via RelatingProductDefinition)
  • ProductDefinitionUsage (related to ProductDefinitionRelationship)
  • ComponentAssociation (related to ProductDefinitionRelationship)
  • ComponentAssociationRelationship (related to ComponentAssociation)
  • ShapeAspectRelationship (related to ProductDefinitionRelationship)
  • AssemblyFeatureAssociation (related to ProductDefinitionRelationship)
  • CharacterizedObject (related to ProductDefinitionUsage)
  • ProductPropertyDefinition (related to ProductDefinitionUsage)
  • ShapeAspect (related to ProductPropertyDefinition)
  • FeatureDefinition (related to ShapeAspect)
  • AssemblyFeature (related to FeatureDefinition)
  • ACU (related to ProductDefinitionUsage)
  • QACU (related to ACU)
  • NAUO (related to ACU)
  • SHUO (related to NAUO)
  • PUO (related to NAUO)
  • MFUO (related to ACU)
  • RelativeMotion (related to ComponentAssociation)
  • Connection (related to ComponentAssociation)
  • RPO (related to ComponentAssociation)
  • Movable (related to Connection)
  • Intermittent (related to Connection)
  • Fixed (related to Connection)
  • PiecePartDefinition (related to ProductDefinitionRelationship)
  • AssemblyDefinition (related to ProductDefinitionRelationship)
  • ComponentAssociation (related to ProductDefinitionRelationship)
  • ComponentShapeAssociation (related to ProductDefinitionRelationship)
  • MainComponentUsage (related to ACU)
  • AuxiliaryComponentUsage (related to ACU)

Legend: AF(A)P - AssemblyFeature(Association)Property

UML class diagram showing the ISO 10303 Part Structure. The diagram illustrates the relationships between various entities in a product structure. Key entities include ProductDefinitionContext, ProductDefinition, ProductDefinitionRelationship, ProductDefinitionUsage, ComponentAssociation, ComponentAssociationRelationship, ShapeAspectRelationship, AssemblyFeatureAssociation, CharacterizedObject, ProductPropertyDefinition, ShapeAspect, FeatureDefinition, AssemblyFeature, ACU, QACU, NAUO, SHUO, PUO, MFUO, RelativeMotion, Connection, RPO, Movable, Intermittent, Fixed, PiecePartDefinition, AssemblyDefinition, and ComponentAssociation. Relationships are shown with solid and dashed arrows, some labeled 'RelatingProductDefinition'. A red box highlights 'ComponentShapeAssociation' and another red box highlights 'MainComponentUsage' and 'AuxiliaryComponentUsage'.

Figure 1: ISO 10303 Part Structure in UML Notation

Product concept schema describes a product as a set of specifications derived from customer needs analysis. It is limited to specification description only; it does not represent the product evolution process from the conceptual to the detailed design phase.

Configuration management schema manages the structure of the configuration of assemblies and components.

In summary, a primary feature of the entities defined in this part of ISO 10303 is that it provides the data modeler with various types of product structure data structures (e.g., BOM, parts list, etc.,) using the primitive entities. This facilitates meaningful information exchange between users without resorting to costly data model mapping tasks. However, ISO 10303 does not adequately address the following:

  1. 1) The relationship among different product definitions for the same product. For example, the relationship of a product definition for a component in a preliminary design to a corresponding product definition for the same component in a detailed design is not captured.
  2. 2) The change process for a product including the reasons for the change.
  3. 3) The decisions made and their rationale, throughout the entire product life cycle.
  4. 4) The physical connections among components of a product.
  5. 5) The properties that a product constituent may have.
  6. 6) The information for as-built manufacturing, manufacturing planning, and logistical structure and configurations.
  7. 7) Multiple versions of a single product that are not form (the shape of the product), fit (the fit is the way the product interfaces with other products), and function (the purpose that the product serves) equivalent.

9.2. 2.2 ISO Working Group Proposal

The ISO working group (TC 184/SC4/WG12) (JNC proposal [2]) has proposed1 several enhancements to STEP's assembly representation. In the WG12 proposal, the detailed geometric information not only for hierarchical relationships but for peer to peer relationships among component parts via an assembly feature is introduced. Geometric constraints among component parts at the detailed geometric element level are also enabled. The WG12 proposal introduces more information on component association and includes detailed information about appropriate assembly features involved in component association.2

Following ISO definitions, an assembly has been defined as a set of components and is represented in a similar hierarchical fashion. The assembly model includes:

  1. 1) Information about individual parts, which are piece parts defined by users and used in developing the assembly tree as required.
  2. 2) Information about standard parts, which refers to off-the-shelf standard parts such as nuts and bolts, keys, electric motors, etc. Standard parts can be of two

1 The scope of this proposal has been modified to address the kinematic and geometric constraints for assembly models and the current status of this proposal is explained in [20].

2 Assembly feature is defined as an element to specify the relationships between a pair of assembled components. For example, a hole and a cylinder are typical assembly features, which represent the physical connections between a bearing part and a shaft part.

  1. types: (i) standard parts as discussed in other ISO standard parts catalogues (Reference: ISO TC 184/SC4/WG2), and (ii) those defined by the users. Note that the parts are all “solid” parts and non-solid parts are not considered.
    1. 3) Product structure configuration, which represents the hierarchical relationship between the components (assemblies, sub-assemblies and piece parts). Nominal and tolerance values of position and orientation of every component (a part, subassembly, or an assembly) are explicitly defined in its “parent” component (subassembly or assembly).
    2. 4) Component association, which provides detailed information for component association (i) between every pair of physically connected components; (ii) between every pair of components that is not physically connected; and (iii) detailed information about assembly features that are needed to define technological information of component association.
      1. a. For a pair of physically connected components: depending on the type of the associations, it can be of the three subtypes:
        1. i. Fixed Connection, such as a rigid joint. The pair is physically connected and fixed.
        2. ii. Movable Connection, which describes the association when the pair is physically connected and movable. Shaft-bearing joints, slider-guideway joints, gear joints, etc. are examples. Kinematic joint definition is applicable for its representation. It describes the possible relative motions between a pair of components and the properties of the joints, which constrains the components.
        3. iii. Intermittent Connection, which describes the association when the pair is physically connected with each other with only intermittent contacts. Examples are limit switches, cam-follower, etc.
      2. b. For a pair of components that are not physically connected:
        1. i. Relative motion describes the constraints on the relative motion between a pair of components.
        2. ii. Relative position and orientation describes the constraints on the relative position and orientation of a component against another component.
        3. iii. Tolerance of the relative motions, positions, and orientations represents associated tolerances for relative motions, positions, and orientations.
    3. 5) Assembly Features, which represent a region of a component, that is of interest in the assembly context. Assembly features may have (i) a shape-aspect (super class) as defined in 10303, and (ii) an assembly-feature-association. The assembly

feature associations and the assembly features describe the details of the component's associations.

The basic structure of the working group's proposed assembly model is shown in Figure 2. In the figure, boxes describe the components (assemblies, sub-assemblies, and parts), open circles the hierarchical relationships among the component definitions, and filled circles the associations between components. Note in the figure that the component association between sub-assembly3 and sub-assembly4 could be derived from the specified component association between part4 and part1, and hence may be redundant.

Figure 2: Assembly Model Proposed by JNC. Source [2].

The diagram illustrates the Assembly Model Proposed by JNC. It shows a hierarchical structure of components (assemblies, sub-assemblies, and parts) and their associations. The components are represented by boxes, and the relationships are represented by circles. Open circles indicate hierarchical relationships (Assembly_component_usage), and filled circles indicate associations between components (Components_association).

Legend:

  • ○ Assembly_component_usage
  • ● Components_association

Structure:

  • assembly (box) is the root component.
    • It has three children: sub-assembly1 (box), sub-assembly2 (box), and part1 (box).
    • sub-assembly1 has two children: part2 (box) and sub-assembly3 (box).
    • sub-assembly2 has three children: sub-assembly4 (box), sub-assembly5 (box), and part1 (box).
    • sub-assembly3 has two children: part3 (box) and part4 (box).
    • sub-assembly4 has two children: part1 (box) and part1 (box).
    • sub-assembly5 has two children: part1 (box) and part1 (box).
  • Assembly_feature_association (box) is a central node.
    • It has two children: Assembly_feature1 (box) and Assembly_feature2 (box).
    • It is associated with part4 (box) via a filled circle.

Associations (filled circles):

  • sub-assembly2 is associated with part1 (child).
  • sub-assembly3 is associated with sub-assembly4.
  • sub-assembly4 is associated with sub-assembly5.
  • part2 is associated with sub-assembly3.
  • part3 is associated with part4.
  • part4 is associated with part1 (child of sub-assembly4).
  • part1 (child of sub-assembly4) is associated with part1 (child of sub-assembly5).
  • part1 (child of sub-assembly5) is associated with part1 (child of sub-assembly5).
Figure 2: Assembly Model Proposed by JNC. Source [2].

Figure 2: Assembly Model Proposed by JNC. Source [2].

It should be noted that the JNC proposal does not cover configuration management of the assemblies and components. Although the proposal outlines the possible applications of the proposed assembly representation in four fields - kinematic analysis of assemblies, animation of assemblies, assembly/disassembly process planning, and tolerance analysis and synthesis - actual application methodologies are not identified or reported.

9.3. 2.3 Research at NIST

NIST has been actively involved in identifying and developing representational methodologies for the next generation of assembly related standards. The Open

Assembly Design Environment (OpenADE) [7] project seeks ways to assist designers with assembly considerations throughout the different phases of the complete product realization process, from conception to assembly analysis and final process plan development. Readers are encouraged to refer to reference [11] for a brief summary of several ongoing research activities at NIST regarding assembly related activities. In the following sections, we discuss several projects relevant to the proposed OAM.

9.3.1. 2.3.1 Open Assembly Design Environment Project

The OpenADE project is an initiative at NIST to provide an integrated and augmented CAD environment for assembly design. The goals of the project are to: (1) identify representations and issues for the next generation of assembly-related standards; and (2) assist designers with assembly considerations throughout the phases of a product's design - from conception to the final process plan development. OpenADE's open architecture provides standard interfaces that allow it to link to commercial and non-commercial design tools, parametric design systems, virtual reality environments, assembly analysis tools, and assembly process planners. The OpenADE project has explored issues relating to knowledge representation, virtual reality, assembly-level tolerances, constraint-based specifications, and assembly process management. We briefly discuss the representational issues addressed in OpenADE.

Rajan et. al. [5; 6] have primarily emphasized the descriptions of mating constraints between parts (e.g., the description of relative motions between components, fit requirements, and joint strength requirements) in addressing assembly representation issues. In additions to the current ISO and JNC proposed representations, they have explicitly identified and captured the joint kinematics information for assembly modeling during the various stages of design. They propose that some of these kinematics constraints be generated during the conceptual design stage. In addition, other information can be generated by propagating/verifying this information during the preliminary and detailed design stages.

During the conceptual design stage, the designer may have little information to fully characterize a joint. Rajan et. al. [5; 6], suggest for rigid joints to describe the type of joint (welded, brazed, soldered, bolted, integral fastening, etc.), and some process parameters to capture pre- and post- process material characteristics (like strength, hardness, ductibility, surface properties, post-heat treatment and machining requirements, acceptable variations, etc.). For kinematic joints, one can specify the desired range of motion and motion profiles, joint location and orientation, and essential surface mating constraints in order to accomplish the desired kinematic joints (revolute, planar, cylindrical, prismatic, screw, spherical, surface, curve, gear, and rack and pinion). As the assembly process (i.e., the product development process) evolves, some more important process constraints are generally specified. The assembly representation model could be captured and used during the planning process. The mating constraints, joint attributes, and a relational structure (specifying positions and orientations of components in the assembly) explicitly embedded within the hierarchical assembly structure provide comprehensive assembly information and are useful for capturing information generated during the detailed design stage.

The Virtual Assembly Design Environment (VADE) [12] acts as an immersive CAD agent for OpenADE. Washington State University developed VADE under a grant from NIST to investigate the use of virtual reality for assembly design. VADE combines advanced CAD/CAM software with the latest in virtual reality technology to produce an environment that allows engineers to virtually assemble a series of components. This produces an augmented CAD system that provides the user with a fully immersive 3D environment for assembly design and analysis.

9.3.2. 2.3.2 Design for Tolerancing of Electro-mechanical Assemblies Project

Although Rajan et al stress that the assembly information model should be constructed in such a way that it would be useful in all phases of design (conceptual, preliminary and detailed), their proposed model primarily captures mating constraint information generated during the detailed design stage. As discussed before, important mating constraints, joint attributes, and a relational structure are explicitly embedded within the hierarchical assembly structure. The joint kinematic information and component degrees of freedom are readily available from the assembly model.

The design for tolerancing of electro-mechanical assemblies project group [3; 13] advocates a more general and unified assembly representation scheme for the proactive uses in conceptual and detailed design phases. This scheme includes function, behavior and tolerance information models, along with other assembly information, i.e., geometric, topological and mating constraints, in the assembly data model.

The primary goal of this project was to integrate comprehensive function, assembly (artifact) and behavior models. The Function-Assembly-Behavior (FAB) data model was developed to capture product development-related issues from the conceptual design stage to the detailed assembly building process. The proposed aggregate structure of function, behavior and assembly in this data model can support conceptual design as well as design for manufacturing and assembly, starting from an early design stage. The FAB model and the Design for Tolerancing (DFT) framework use both top-down and bottom-up approaches to product design. The FAB model is defined in such a way that the various definitions and concepts concerning tolerance already in use, as well as currently evolving standards, can be easily incorporated into the model. The FAB model can assist the standards community in specifying the representation for assembly models, tolerance, and assembly level tolerancing. The class structure (Function, Behavior, Artifact) defined in FAB helps in unifying the various current and evolving definitions, concepts, and standards.

9.3.3. 2.3.3 NIST Core Product Model

An integrated NIST Core Product Model (NIST-CPM) [4] has been developed to unify and integrate product or assembly information. The NIST-CPM provides a base-level product model that is: not tied to any vendor software; open; non-proprietary; expandable; independent of any one product development process; capable of capturing the engineering context that is most commonly shared in product development activities. The core model focuses on artifact representation including function, form, behavior, and material, physical, and functional decompositions, and relationships among these concepts. The model is heavily influenced by the Entity-Relationship data model; accordingly, it consists of two sets of classes, called object and relationship, equivalent to the UML [8] class and association class, respectively.

Figure 3 illustrates the principal entities of the NIST-CPM. An Artifact refers to a product or one of its components. It is the aggregation of Function, Form and Behavior. Form is the aggregation of Geometry and Material. In addition, an Artifact has attributes of Specification and Feature. Specification refers to the general information that contains all the design requirements pertaining to the artifact's function or form. Feature represents any information in the Artifact that is an aggregation of Function and Form; purely geometric constructs are not treated as features in the NIST-CPM. For more information on the NIST-CPM, including the relationships (associations) defined between the classes shown, please refer to [4]. The proposed assembly model in this report is based on the NIST-CPM.

9.3.4. 2.3.4 Other Systems

In the following subsections, we discuss several related assembly models. First, we discuss the model proposed by the MOKA [14] (Methodology and tools Oriented to Knowledge-based engineering Applications) consortium. This is followed by a brief review of other work conducted at various academic institutions.

UML class diagram showing the entities in the Core Product Model. The diagram includes classes: Specification, Artifact, Feature, Behavior, Function, Form, Geometry, and Material. Artifact is the central entity, connected to Specification, Feature, Behavior, Function, and Form. Feature is connected to Behavior, Function, and Form. Behavior is connected to Function. Function is connected to Form. Form is connected to Geometry and Material. Each class has a self-association line with a diamond at the end.
classDiagram
    class Specification
    class Artifact
    class Feature
    class Behavior
    class Function
    class Form
    class Geometry
    class Material

    Specification --> Artifact
    Artifact --> Feature
    Artifact --> Behavior
    Artifact --> Function
    Artifact --> Form
    Feature --> Behavior
    Feature --> Function
    Feature --> Form
    Behavior --> Function
    Function --> Form
    Form --> Geometry
    Form --> Material
UML class diagram showing the entities in the Core Product Model. The diagram includes classes: Specification, Artifact, Feature, Behavior, Function, Form, Geometry, and Material. Artifact is the central entity, connected to Specification, Feature, Behavior, Function, and Form. Feature is connected to Behavior, Function, and Form. Behavior is connected to Function. Function is connected to Form. Form is connected to Geometry and Material. Each class has a self-association line with a diamond at the end.

Figure 3: Entities in the Core Product Model (relationships among entities not shown)

9.3.4.1. MOKA Consortium

The ESPRIT funded project known as MOKA [14] provides two models: (1) an informal model based on a structured, natural language representation of engineering knowledge using some pre-defined forms; and (2) a formal model using UML based graphical, object-oriented representation of engineering knowledge for artifact descriptions. The MOKA methodology intends to synchronize an artifact's lifecycle development process that includes roles, activities, artifact structure, etc., with the whole knowledge-based engineering (KBE) application development lifecycle. Next it covers the entire gamut of engineering knowledge related to an artifact. Knowledge is grouped into two distinct categories: 1) product knowledge which is the knowledge about the physical entity being designed; and 2) process knowledge which is the knowledge about the steps taken to design the product.

MOKA uses a term “Product Model” to describe a model of the entire product family (e.g., Airbus’ aircraft product family could be represented as a MOKA Product Model). The MOKA Product Model supports five distinct views of a product: structure, function, behavior, technology, and representation. These views represent different perspectives of the underlying product model and are as described below.

  • Structure defines the hierarchical decomposition of a product’s structure into parts, assemblies, and features. It can be either a physical, logical or conceptual structure at any stage of the design.
  • Function defines the functional decomposition of the product, and principles of solutions.
  • Behavior includes a state model of the various states of a product, and the transition from one state to another.
  • Technology includes materials and manufacturing process information.
  • Representation includes any other user defined technological information including some other geometrical information.

In short, the MOKA product representation model is similar in some aspects to the FAB and NIST-CPM models and it includes a considerable amount of assembly information. However, the MOKA system does not represent kinematics, tolerance, and assembly and parametric constraints. The constraints included in MOKA cannot handle mating, assembly, and parametric constraints. The proposed OAM model can handle these types of constraints, in addition to the constraints described in MOKA. These are essential for assembly, kinematics, and tolerance representations. Representations of the physical structure are supported within MOKA by the Representation View, which includes Geometry and Finite Element Method (FEM). A separate class structure for FEM may be useful in design-analysis integration. However, it is presently being used in MOKA more as a place holder.

There are some academic systems that offer limited facilities for representing assembly information. One such system developed by Whitney and Mantripragada [15] represents the high-level assembly information as “key characteristics”. The chains of dimensional relationships and constraints in a product are handled by the so-called Datum Flow Chain concept. Another system called Genesis [16] focuses on representing complex assemblies. The system of van der Net [17] focuses on designing assemblies taking into account requirements from the assembly process planning phase; the goal is to prevent design errors, reduce lead times, and be able to automate process planning. These requirements are captured in the assembly by specifying geometric, assembly and tolerance-specific relationships on and between the assembled parts.

10. 3 UML Representation of the OAM Assembly

We discuss in detail the class definitions and structure of the proposed OAM assembly model. We use UML notation and diagrams to explain the assembly model.

10.1. 3.1 Overview

This section introduces the OAM assembly model schema, represented as a UML class diagram. The assembly model's class diagram is made up of multiple sub-diagrams, each of which is represented by a Package. The concept of a UML Package is that of a collection of multiple classes [8] that can be used as a namespace. The following section defines the main schema of the assembly model which describes the relationships between Assembly, Artifact, AssemblyAssociation, Part, and OAMFeature. In the succeeding sections we describe the class diagrams of AssemblyAssociation, ArtifactAssociation, OAMFeature, AssemblyFeature, Tolerance, and AssemblyFeatureAssociationRepresentation. The lower level class hierarchies of these classes are also explained. The instance diagrams are provided in Section 4. These diagrams will further help illustrate the concepts presented here.

10.2. 3.2 Main Schema of the Assembly model

The main assembly model schema is shown in Figure 4. The model incorporates information about assembly relationship and component composition (part-of). The assembly relationship is represented by a class named AssemblyAssociation. This class is described in detail in the package AssemblyAssociation, shown at the bottom of the diagram and described in Section 3.3

The component composition of the assembly is modeled using the part-of relationship. An Assembly is decomposed into sub-assemblies and parts. A Part is the lowest level component which cannot be further decomposed. The diagram shows that an assembly or a subassembly is made up of at least two parts.

Each assembly component, whether subassembly or part, is made up of one or more features, represented in the model by the OAMFeature class, where OAM refers to Open Assembly Model. The details of the OAMFeature definition are described in the package OAMFeature. The Assembly and Part classes are sub-classes of the NIST-CPM Artifact class, inheriting its definition. OAMFeature is a sub-class of the NIST-CPM Feature class.

UML class diagram showing the main schema of assembly. It includes classes Artifact (from CoreModel), Assembly, Part, AssemblyAssociation (from AssemblyAssociation), and OAMFeature (from OAMFeature). Relationships include sub_assemblies (0..n), sub_assembly_of, part_of (2..n), parts, defined_assembly, feature_of, assembly_relationship, features (1..n), and features (1..n).
classDiagram
    class Artifact["Artifact (from CoreModel)"]
    class Assembly
    class Part
    class AssemblyAssociation["AssemblyAssociation (from AssemblyAssociation)"]
    class OAMFeature["OAMFeature (from OAMFeature)"]

    Artifact <|-- Assembly
    Artifact <|-- Part
    Assembly "0..n" --> "1" Assembly : +sub_assemblies
    Assembly "1" --> "1" Assembly : +sub_assembly_of
    Assembly "1" --> "2..n" Part : +part_of
    Part "1" --> "2..n" Part : +parts
    Assembly "1" --> "1" Assembly : +defined_assembly
    Assembly "1" --> "1..n" OAMFeature : +feature_of
    AssemblyAssociation "1" --> "1..n" Assembly : +assembly_relationship
    OAMFeature "1..n" --> "1..n" OAMFeature : +features
    OAMFeature "1..n" --> "1..n" OAMFeature : +features
  
UML class diagram showing the main schema of assembly. It includes classes Artifact (from CoreModel), Assembly, Part, AssemblyAssociation (from AssemblyAssociation), and OAMFeature (from OAMFeature). Relationships include sub_assemblies (0..n), sub_assembly_of, part_of (2..n), parts, defined_assembly, feature_of, assembly_relationship, features (1..n), and features (1..n).

Figure 4: Main Schema of Assembly

10.3. 3.3 Assembly Association

The package AssemblyAssociation, shown in Figure 5, represents the component assembly relationship of an assembly. It is the aggregation of one or more Artifact Associations. The class ArtifactAssociation is defined in the package ArtifactAssociation.

UML class diagram showing the relationship between AssemblyAssociation and ArtifactAssociation. AssemblyAssociation has a 1..n multiplicity and an association named +artifact_association to ArtifactAssociation. The association is labeled 'ArtifactAssociation (from ArtifactAssociation)' and has a self-association on the ArtifactAssociation end.
classDiagram
    class AssemblyAssociation {
    }
    class ArtifactAssociation {
    }
    AssemblyAssociation "1..n" -- "*" ArtifactAssociation : +artifact_association
    ArtifactAssociation --> ArtifactAssociation
  
UML class diagram showing the relationship between AssemblyAssociation and ArtifactAssociation. AssemblyAssociation has a 1..n multiplicity and an association named +artifact_association to ArtifactAssociation. The association is labeled 'ArtifactAssociation (from ArtifactAssociation)' and has a self-association on the ArtifactAssociation end.

Figure 5: Assembly Association

10.4. 3.4 Artifact Association

Figure 6 shows the package ArtifactAssociation which describes the assembly relationships between artifacts. An ArtifactAssociation class represents the assembly relationship between one or more artifacts. For most cases, the relationship involves two or more artifacts. In some cases, however, it may involve only one artifact to represent a special situation. Such a case may occur when an artifact is to be fixed in space for anchoring the entire assembly with respect to the ground. It can also occur when kinematic information between an artifact at an input point and the ground is to be captured. Such cases can be regarded as relationships between the ground and an artifact. Hence, we allow the artifact association with one artifact associated in these special cases. In Figure 6, this situation is denoted by the multiplicity 1..* at the Artifact end of the association with ArtifactAssociation. The detailed information of ArtifactAssociation is defined using assembly features, assembly feature associations, and assembly feature association representations, which will be described later in Section 3.6.

The ArtifactAssociation is further specialized into the following classes: PositionOrientation, RelativeMotion and Connection.

PositionOrientation represents the relative positions and orientation between two or more artifacts which are not physically connected to each other. This entity is used to describe constraints on the relative position and orientation of two or more artifacts.

RelativeMotion represents the relative motions between two or more artifacts which are not physically connected to each other directly. This entity is used to describe the constraints on the relative motions between two or more artifacts. For instance, the relative motion of a robot hand against the base of a robot can be represented by this class. In this case, the robot hand is not connected directly to the base.

UML Class Diagram for Artifact Association
classDiagram
    class ArtifactAssociation
    class Artifact["Artifact (from CoreModel)"]
    class PositionOrientation
    class RelativeMotion
    class Connection
    class FixedConnection
    class MovableConnection
    class IntermittentConnection

    ArtifactAssociation "1..*" -- "0..*" Artifact
    ArtifactAssociation <|-- PositionOrientation
    ArtifactAssociation <|-- RelativeMotion
    ArtifactAssociation <|-- Connection
    Connection <|-- FixedConnection
    Connection <|-- MovableConnection
    Connection <|-- IntermittentConnection
  

The diagram illustrates the structure of Artifact Association. At the top, the ArtifactAssociation class is associated with the Artifact class (labeled as 'from CoreModel'). The association has a multiplicity of 1..* at the ArtifactAssociation end and 0..* at the Artifact end. Below ArtifactAssociation, three classes are shown: PositionOrientation, RelativeMotion, and Connection. These three classes inherit from ArtifactAssociation, as indicated by the hollow triangle arrows pointing from each to ArtifactAssociation. Further down, three more classes are shown: FixedConnection, MovableConnection, and IntermittentConnection. These three classes inherit from Connection, as indicated by the hollow triangle arrows pointing from each to Connection.

UML Class Diagram for Artifact Association

Figure 6: Artifact Association

Connection represents the connection between artifacts which are physically connected with each other. As Figure 6 shows, the Connection is further specialized as FixedConnection, MovableConnection or IntermittentConnection.

FixedConnection represents a connection in which the participating artifacts are physically connected and fixed. It is used to describe the type and/or properties of fixed joints. For example, attachment (fastening) with screw, pin, or rivet, bonding such as welding, adhering, brazing, or soldering, and fitting (clearance fit, tight or interference fit) are examples of fixed connections.

MovableConnection represents the connection in which the participating artifacts are physically connected and movable with respect to one another. It is used to describe the type and/or properties of kinematic joints. Typical examples of movable connections are kinematic pairs such as shaft-bearing joints or gear joints.

IntermittentConnection represents the connection in which the participating artifacts are physically connected only intermittently. It is used to describe the type and/or properties of intermittently-connected components. For example, limit switches, contacts using bimetal, or pressure valves with springs are examples of intermittent connection.

10.5. 3.5 OAMFeature

The class OAMFeature is a sub-class of the Feature class defined in NIST-CPM. It inherits the function and behavior information from Feature. OAMFeature has tolerance information which is represented by the class Tolerance. OAMFeature has two sub-classes: AssemblyFeature and CompositeFeature.

UML class diagram showing the hierarchy and relationships of OAMFeature, AssemblyFeature, CompositeFeature, Feature, and Tolerance.
classDiagram
    class Feature {
        (from CoreModel)
    }
    class OAMFeature {
    }
    class AssemblyFeature {
        (from AssemblyFeature)
    }
    class CompositeFeature {
    }
    class Tolerance {
        (from Tolerance)
    }
    Feature <|-- OAMFeature
    OAMFeature <|-- AssemblyFeature
    OAMFeature <|-- CompositeFeature
    OAMFeature o--> OAMFeature
    OAMFeature --> Tolerance
    CompositeFeature o--> Tolerance
    

The diagram illustrates the class structure for OAMFeature. At the top is the Feature class, noted as being from CoreModel. Below it is OAMFeature, which inherits from Feature (indicated by a hollow triangle arrow). OAMFeature has a self-referencing association (a line with an open diamond at one end connecting to the class box) and an association to the Tolerance class (a line with an open arrowhead). Below OAMFeature are two subclasses: AssemblyFeature and CompositeFeature, both inheriting from OAMFeature. AssemblyFeature is noted as being from AssemblyFeature. CompositeFeature has an association to the Tolerance class, indicated by a line with an open diamond at the end connecting to the class box. At the bottom, there are two separate boxes labeled AssemblyFeature and Tolerance, which appear to be base or related classes without further associations shown.

UML class diagram showing the hierarchy and relationships of OAMFeature, AssemblyFeature, CompositeFeature, Feature, and Tolerance.

Figure 7: OAMFeature

CompositeFeature represents a composite feature that can be decomposed into multiple simple features.

AssemblyFeature specifies the relationships between a pair of assembled components (e.g., geometrical entities such as faces, edges or vertices of any parts of entities). It is a portion of a constituent and is used for defining the connectivity relationship between constituents of an assembly model.

10.6. 3.6 Assembly Feature

Figure 8 shows the relationship between classes that are related to assembly features. The class AssemblyFeatureAssociation refers to the assembly relationship between one or more assembly features. This assembly relationship is represented by the class AssemblyFeatureAssociationRepresentation. The diagram also shows that the ArtifactAssociation is the aggregation of AssemblyFeatureAssociation. Detailed description of these classes are given below.

UML class diagram showing relationships between AssemblyFeature, ArtifactAssociation, AssemblyFeatureAssociation, AssemblyFeatureAssociationRepresentation, Tolerance, and RelationshipRepresentation.
classDiagram
    class AssemblyFeature
    class ArtifactAssociation["ArtifactAssociation (from ArtifactAssociation)"]
    class AssemblyFeatureAssociation
    class AssemblyFeatureAssociationRepresentation["AssemblyFeatureAssociationRepresentation (from RelationshipRepresentation)"]
    class Tolerance["Tolerance (from Tolerance)"]
    class RelationshipRepresentation

    AssemblyFeature "1..*" -- "1..*" AssemblyFeatureAssociation
    ArtifactAssociation -- AssemblyFeatureAssociation
    AssemblyFeatureAssociation -- AssemblyFeatureAssociationRepresentation
    Tolerance -- AssemblyFeatureAssociationRepresentation
    RelationshipRepresentation -- AssemblyFeatureAssociationRepresentation

The diagram illustrates the relationships between several classes. At the top left is the AssemblyFeature class. A self-association arrow is drawn on it. Below it is the AssemblyFeatureAssociation class. A line connects AssemblyFeature to AssemblyFeatureAssociation with the multiplicity 1..* at the AssemblyFeature end. To the right of AssemblyFeatureAssociation is the ArtifactAssociation (from ArtifactAssociation) class. A line connects ArtifactAssociation to AssemblyFeatureAssociation with the multiplicity 1..* at the ArtifactAssociation end. Below AssemblyFeatureAssociation is the AssemblyFeatureAssociationRepresentation (from RelationshipRepresentation) class. A line connects AssemblyFeatureAssociation to AssemblyFeatureAssociationRepresentation. To the right of AssemblyFeatureAssociationRepresentation is the Tolerance (from Tolerance) class. A line connects Tolerance to AssemblyFeatureAssociationRepresentation. At the bottom is the RelationshipRepresentation class. A line connects RelationshipRepresentation to AssemblyFeatureAssociationRepresentation.

UML class diagram showing relationships between AssemblyFeature, ArtifactAssociation, AssemblyFeatureAssociation, AssemblyFeatureAssociationRepresentation, Tolerance, and RelationshipRepresentation.

Figure 8: Assembly Feature

AssemblyFeature, a sub-class of OAMFeature, is defined to represent assembly features. Assembly features are a collection of geometric entities of artifacts. They may be partial shape elements of any artifact. For example, consider a shaft-bearing connection. A bearing's hole and a shaft's cylinder can be viewed as the assembly features that describe the physical connection between the bearing and the shaft. We can also think of geometric elements such as planes, screws and nuts, spheres, cones, and toruses as assembly features.

AssemblyFeatureAssociation represents the association between mating assembly features through which relevant artifacts are associated. Since associated artifacts can have multiple feature-level associations when assembled, one artifact association may have several assembly features associations at the same time. That is, an artifact association is the aggregation of assembly feature associations as shown in Figure 8. This relationship is also identified by the multiplicity symbol 1..* (see Figure 8). Any assembly feature association relates in general to two or more assembly features. However, as in the special case mentioned earlier (see Section 3.4) where an artifact association involves only one artifact, it may involve only one assembly feature when the relevant artifact association has only one artifact. Hence, the AssemblyFeature end of the association with AssemblyFeatureAssociation in Figure 8 is denoted by the multiplicity symbol 1..*, not by the multiplicity symbol 2..*.

10.7. 3.7 Assembly Feature Association Representation

The specific contents of any assembly feature association is described by the AssemblyFeatureAssociationRepresentation (see Figure 9). The assembly feature association representation is an aggregation of parametric assembly constraints, a kinematic pair, and/or a relative motion between assembly features as shown in Figure 9.

UML class diagram showing the structure of AssemblyFeatureAssociationRepresentation. It is an aggregation of ParametricAssemblyConstraint (0..*), KinematicPair (0..1), and KinematicPath (0..1). Each of these is associated with its base class: ParametricAssemblyConstraint, KinematicStructure, and KinematicMotionRepresentation respectively.
classDiagram
    class AssemblyFeatureAssociationRepresentation {
    }
    class ParametricAssemblyConstraint {
    }
    class KinematicPair {
    }
    class KinematicPath {
    }
    class ParametricAssemblyConstraintBase {
    }
    class KinematicStructure {
    }
    class KinematicMotionRepresentation {
    }

    AssemblyFeatureAssociationRepresentation "0..*" o-- "0..1" ParametricAssemblyConstraint
    AssemblyFeatureAssociationRepresentation "0..1" o-- "0..1" KinematicPair
    AssemblyFeatureAssociationRepresentation "0..1" o-- "0..1" KinematicPath
    ParametricAssemblyConstraint --|> ParametricAssemblyConstraintBase
    KinematicPair --|> KinematicStructure
    KinematicPath --|> KinematicMotionRepresentation
  

The diagram illustrates the structure of the AssemblyFeatureAssociationRepresentation class. It is an aggregation (indicated by hollow diamonds) of three other classes: ParametricAssemblyConstraint (multiplicity 0..*), KinematicPair (multiplicity 0..1), and KinematicPath (multiplicity 0..1). Each of these three classes is a specialization (indicated by hollow triangles) of a base class: ParametricAssemblyConstraint is a specialization of ParametricAssemblyConstraint, KinematicPair is a specialization of KinematicStructure, and KinematicPath is a specialization of KinematicMotionRepresentation. The text inside the boxes for the specialized classes indicates their inheritance: "(from ParametricAssemblyConstraint)" for ParametricAssemblyConstraint, "(from KinematicStructure)" for KinematicPair, and "(from KinematicMotionRepresentation)" for KinematicPath.

UML class diagram showing the structure of AssemblyFeatureAssociationRepresentation. It is an aggregation of ParametricAssemblyConstraint (0..*), KinematicPair (0..1), and KinematicPath (0..1). Each of these is associated with its base class: ParametricAssemblyConstraint, KinematicStructure, and KinematicMotionRepresentation respectively.

Figure 9: Assembly Feature Association Representation

ParametricAssemblyConstraint represents the parametric assembly constraints of assembly feature associations. It is used to specify explicit geometric constraints between artifacts of an assembled product. The parametric assembly constraints are intended to control the position and orientation of artifacts in an assembly. Parametric assembly constraints are defined in ISO 10303 Part 108 (under ballot) and a brief description is given in the next section.

KinematicPair defines the kinematic constraints between two adjacent artifacts (links) at a joint. The kinematic structure schema in ISO 10303 Part 105 defines the kinematic structure of a mechanical product in terms of links, pairs, and joints. The kinematic pair represents the geometric aspects of the kinematic constraints of motion between two assembled components. The description of the kinematic structure is given later in Section 3.9.

KinematicPath represents the relative motion between artifacts. The kinematic motion schema in ISO 10303 Part 105 defines kinematic motion. It is also used to represent the relative motion between artifacts. Details of this are provided in Section 3.10.

In Section 3.8, detailed descriptions of the parametric assembly constraint, kinematic pair, and kinematic path are provided. These three packages defined in the ISO standards are of considerable complexity, and thus the descriptions below are not exhaustive. Only the necessary portions are modeled using UML to explain how they can be utilized to represent electro-mechanical assemblies in conjunction with the proposed UML model. Note that we have introduced some new classes and used different class names from the original ones defined in ISO standards for increased clarity.

10.8. 3.8 Parametric Assembly Constraints

The classes in Figure 10 represent parametric assembly constraints. The parent class of Parametricassemblyconstraint defines the assembly constraints (position and orientation) between two parts in an assembly. From this class we specialize specific types of assembly constraints, as shown in Figure 10. The constrained geometric elements can be a point, a line, a circle, a plane, a cylindrical surface, a conical surface or a spherical surface of the constrained parts. Each type of assembly constraints applies to specific types of geometric elements. One of the two elements may be the reference element when applying the constraint.

Parallel specifies that two geometric elements are mutually parallel. ParallelWithDimension constrains two parallel elements with a distance. SurfaceDistanceWithDimension specifies the distance between two surfaces.

UML class diagram showing ParametricAssemblyConstraint as a base class for FixedComponent, Parallel, ParallelWithDimension, SurfaceDistanceWithDimension, AngleWithDimension, Perpendicular, Incidence, Coaxial, and Tangent.
classDiagram
    ParametricAssemblyConstraint <|-- FixedComponent
    ParametricAssemblyConstraint <|-- Parallel
    ParametricAssemblyConstraint <|-- ParallelWithDimension
    ParametricAssemblyConstraint <|-- SurfaceDistanceWithDimension
    ParametricAssemblyConstraint <|-- AngleWithDimension
    ParametricAssemblyConstraint <|-- Perpendicular
    ParametricAssemblyConstraint <|-- Incidence
    ParametricAssemblyConstraint <|-- Coaxial
    ParametricAssemblyConstraint <|-- Tangent
  
UML class diagram showing ParametricAssemblyConstraint as a base class for FixedComponent, Parallel, ParallelWithDimension, SurfaceDistanceWithDimension, AngleWithDimension, Perpendicular, Incidence, Coaxial, and Tangent.

Figure 10: Parametric Assembly Constraints

The angle between two elements is constrained by AngleWithDimension. Perpendicular constrains two elements to be mutually perpendicular. Incidence represents that one of two elements is included in the other when it is considered as a point set. Coaxial means that the axes of the two elements are coincident. Tangent specifies that two elements are tangent to each other. Finally, FixedComponent is provided to fix the position and orientation of one part thus anchoring its own assembly in space. This constraint can be viewed as an exceptional case as it involves only one part; implicitly, the other part is the ground (i.e., the world coordinate system).

10.9. 3.9 Kinematic Pair

KinematicPair defines the kinematic constraints between two adjacent artifacts (links). Figure 11 shows the relationship between classes that are used to represent the kinematic constraints of kinematic pairs. Specific types of kinematic pairs are specialized from KinematicPair, PairValue, and PairRange.

KinematicPair defines the kinematic constraints between two adjacent links (artifacts) at a joint. PairRange specifies the allowable configuration range of the two links in the form of upper and lower bounds. PairValue specifies the current configuration (value) of the two links between the two bounds. PairFrame represents a coordinate system attached to a link. A kinematic pair needs two coordinate systems to describe its kinematic behavior. The two coordinate systems are attached to the two relevant links, respectively. Thus, the multiplicity at the PairFrame end is shown as 2 in Figure 11.

UML class diagram for Kinematic Pair showing associations with PairValue, PairRange, and PairFrame.
classDiagram
    class KinematicPair {
        +current configuration
    }
    class PairValue {
    }
    class PairRange {
        +allowable range
    }
    class PairFrame {
    }
    KinematicPair "1" -- "1" PairValue
    KinematicPair "1" -- "1" PairRange
    KinematicPair "1" o-- "2" PairFrame : +pair placement
  

The diagram shows a KinematicPair class with an attribute +current configuration. It is associated with PairValue (1 to 1) and PairRange (1 to 1), with PairRange having an attribute +allowable range. It also has a composition relationship with PairFrame (1 to 2), labeled +pair placement.

UML class diagram for Kinematic Pair showing associations with PairValue, PairRange, and PairFrame.

Figure 11: Kinematic Pair

As mentioned above, specific classes of kinematic pairs are derived from the classes shown in Figure 11. Figure 12 shows the derived types of kinematic pairs. The kinematic pairs cover the following types: revolute, prismatic, screw, cylindrical, spherical, universal, planar, gear, rack and pinion, unconstrained, fully constrained, point on surface, sliding surface, rolling surface, point on planar curve, sliding curve, rolling curve.

UML class diagram showing the hierarchy of derived kinematic pairs from KinematicPair.
classDiagram
    class KinematicPair {
    }
    class UnconstrainedPair {
    }
    class FullyConstrainedPair {
    }
    class RevolutePair {
    }
    class PrismaticPair {
    }
    class CylindricalPair {
    }
    class PlanarPair {
    }
    class SphericalPair {
    }
    class ScrewPair {
    }
    class RackAndPinionPair {
    }
    class GearPair {
    }
    class UniversalPair {
    }
    class PointOnSurfacePair {
    }
    class PointOnPlanarCurvePair {
    }
    class PlanarCurvePair {
    }
    class SurfacePair {
    }
    class RollingCurvePair {
    }
    class SlidingCurvePair {
    }
    class RollingSurfacePair {
    }
    class SlidingSurfacePair {
    }

    KinematicPair <|-- UnconstrainedPair
    KinematicPair <|-- FullyConstrainedPair
    KinematicPair <|-- RevolutePair
    KinematicPair <|-- PrismaticPair
    KinematicPair <|-- CylindricalPair
    KinematicPair <|-- PlanarPair
    KinematicPair <|-- SphericalPair
    KinematicPair <|-- ScrewPair
    KinematicPair <|-- RackAndPinionPair
    KinematicPair <|-- GearPair
    KinematicPair <|-- UniversalPair
    KinematicPair <|-- PointOnSurfacePair
    KinematicPair <|-- PointOnPlanarCurvePair
    KinematicPair <|-- PlanarCurvePair
    KinematicPair <|-- SurfacePair
    PlanarCurvePair <|-- RollingCurvePair
    PlanarCurvePair <|-- SlidingCurvePair
    SurfacePair <|-- RollingSurfacePair
    SurfacePair <|-- SlidingSurfacePair
  

The diagram illustrates a hierarchical structure where KinematicPair is the base class. It has direct inheritance from UnconstrainedPair, FullyConstrainedPair, RevolutePair, PrismaticPair, CylindricalPair, PlanarPair, SphericalPair, ScrewPair, RackAndPinionPair, GearPair, UniversalPair, PointOnSurfacePair, and PointOnPlanarCurvePair. PlanarCurvePair and SurfacePair are also direct inheritors. PlanarCurvePair further inherits from RollingCurvePair and SlidingCurvePair. Similarly, SurfacePair inherits from RollingSurfacePair and SlidingSurfacePair.

UML class diagram showing the hierarchy of derived kinematic pairs from KinematicPair.

Figure 12: Derived Kinematic Pairs

Each kinematic pair has two specific classes derived from PairValue and PairRange respectively, to represent the current configuration (value) and the allowable range of the pair variable. For example, the revolute pair class diagram in Figure 13 shows the derived classes RevolutePair, RevolutePairValue, RevolutePairRange, and their associations.

The classes RevolutePairValue and RevolutePairRange are specialized, respectively, from PairValue and PairRange. Other types of kinematic pairs also have specific type of derived classes defined for their own purpose.

UML Class Diagram for Revolute Pair Class Diagram
classDiagram
    class RevolutePair {
    }
    class RevolutePairValue {
    }
    class RevolutePairRange {
    }
    RevolutePair --> RevolutePairValue : +actual_rotation
    RevolutePair --> RevolutePairRange : +limits
  

The diagram shows a class hierarchy. At the top is the RevolutePair class. Below it are two subclasses: RevolutePairValue and RevolutePairRange. A red line connects RevolutePair to RevolutePairValue with the label +actual_rotation. Another red line connects RevolutePair to RevolutePairRange with the label +limits. Each class is represented by a rectangle with a title bar and two empty slots for attributes or methods.

UML Class Diagram for Revolute Pair Class Diagram

Figure 13: Revolute Pair Class Diagram

10.10. 3.10 Kinematic Path

KinematicPath, shown in Figure 14, provides the description of kinematic motion. It is the aggregation of path elements along which the motion is to take place. A path element can specify different types of paths, as explained below. Note that since the kinematic path is composed of a set of path elements, it can describe a composite path as well as a simple path.

PathElement is a path segment with two path nodes, which represent the "from" node and "to" node, respectively. PathNode is used to define the start and end locations of a path. At each path node, the position and rotation of a frame along the "path" need to be defined. This linear transformation is defined by Transformation, which can be expressed by a 4 \times 4 homogeneous transformation matrix.

The path element is further classified into different types of motion according to the intermediate motion characteristics between the "from" and "to" nodes, as shown in Figure 14. PointToPointPath allows free motion between the two nodes; it does not have a prescribed interpolation and leaves the determination of the intermediate motion to specific applications. LinearPath incorporates piecewise linear interpolation between the beginning and end nodes of the path element. CircularPath describes a circular arc path which passes through the beginning and end points of the path element, and also a third point (via point) supplied separately. CurveBasedPath describes the path using a predefined trajectory curve.

UML Class Diagram for Kinematic Path
classDiagram
    class RepresentationItem["RepresentationItem
(from Representation)"] class KinematicPath class PathElement class CompositePath class PathNode class Transform class Translation class SpatialRotation["SpatialRotation
(from KinematicStructure)"] class PathElementConnection class PointToPointPath class LinearPath class CircularPath class CurveBasedPath class CartesianPoint["CartesianPoint
(from Geometry)"] class Curve["Curve
(from Geometry)"] RepresentationItem <|-- KinematicPath KinematicPath <|-- PathElement KinematicPath <|-- CompositePath PathElement <|-- PathNode PathElement <|-- PathElementConnection PathElement <|-- PointToPointPath PathElement <|-- LinearPath PathElement <|-- CircularPath PathElement <|-- CurveBasedPath PathNode --> PathElement : +from & to (1 to 2) PathNode --> Transform : +trans & orient (1 to 1) Transform --> Translation : {Or} Transform --> SpatialRotation : {Or} PathElementConnection --> PathElement : +prev & next (2 to 1) PathElementConnection --> CompositePath : +elements (1 to 1..*) CompositePath --> CartesianPoint : +via point CompositePath --> Curve : +path curve

The diagram illustrates the structure of a Kinematic Path. At the top is the RepresentationItem class, which is a base class for KinematicPath. KinematicPath is further specialized into PathElement and CompositePath. PathElement is specialized into PathNode, PathElementConnection, PointToPointPath, LinearPath, CircularPath, and CurveBasedPath. PathNode is associated with PathElement (1 to 2) via +from & to and with Transform (1 to 1) via +trans & orient. Transform is a base class for Translation and SpatialRotation (from KinematicStructure). PathElementConnection is associated with PathElement (2 to 1) via +prev & next and with CompositePath (1 to 1..*) via +elements. CompositePath is associated with CartesianPoint (from Geometry) via +via point and with Curve (from Geometry) via +path curve.

UML Class Diagram for Kinematic Path

Figure 14: Kinematic Path

10.11. 3.11 Tolerance

Tolerancing is a critical issue in the design of electro-mechanical assemblies. Tolerancing includes both tolerance analysis and tolerance synthesis. In the context of electro-mechanical assembly design, tolerance analysis refers to evaluating the effect of variations of individual part or subassembly dimensions on designated dimensions or functions of the resulting assembly. Tolerance synthesis refers to allocation of tolerances to individual parts or sub-assemblies based on tolerance or functional requirements on the assembly. Tolerance design is the process of deriving a description of geometric tolerance specifications for a product from a given set of desired properties of the product. Existing approaches to tolerance analysis and synthesis entail detailed knowledge of the geometry of the assemblies and are mostly applicable only during advanced stages of design, leading to a less than optimal design. During the design of an assembly, both the assembly structure and the associated tolerance information evolve continuously; significant gains can thus be achieved by effectively using this information to influence the design of that assembly. Any proactive approach to assembly or tolerance analysis in the early design stages will involve making decisions with incomplete information models. In order to carry out early tolerance synthesis and analysis in the conceptual product design stage, we include function, tolerance, and behavior information in the assembly model; this will allow analysis and synthesis of tolerances even with the incomplete data set. In order to achieve this we define a class structure for tolerance specification and we describe this in Figure 15 .

DimensionalTolerance typically controls the variability of linear dimensions that describe location, size and angle, also known as tolerancing of perfect form. This class is included in the model to accommodate the ISO tolerance standard.

GeometricTolerance is the general term applied to the category of tolerances used to control shape, position, and runout. It enables tolerances to be placed on attributes of features, where a feature is one or more ‘pieces of part surface’; feature attributes include size (for certain features), position (certain features), form (flatness, cylindricity, etc.), and relationship (e.g. perpendicular-to).

FormTolerance is applicable to single features or elements of single features.

ProfileTolerance is applicable to profiles. A profile is the outline of an object in a given plane. Profiles are formed by projecting a three-dimensional figure onto a plane or by taking a cross section through the figure.

RunoutTolerance is a composite tolerance used to control the functional relationship of one or more features of a part to a datum axis.

UML class diagram for the Tolerance Package. The diagram shows a hierarchy of tolerance classes. 'Tolerance' is the base class, with 'StatisticalControl (from StatisticalControl)' as an association. 'DimensionalTolerance' and 'GeometricTolerance' inherit from 'Tolerance'. 'GeometricTolerance' has associations with 'MaterialCondition' and 'Geometry (from CoreModel)'. 'FormTolerance (from FormTolerance)', 'ProfileTolerance (from ProfileTolerance)', 'OrientationTolerance (from OrientationTolerance)', 'LocationTolerance (from LocationTolerance)', and 'RunoutTolerance (from RunoutTolerance)' all inherit from 'GeometricTolerance'. 'Datum' is a class associated with 'OrientationTolerance', 'LocationTolerance', and 'RunoutTolerance'. 'Datum' is also associated with 'FeatureOfSize'. 'FeatureOfSize' inherits from 'DatumFeature'. 'DatumFeature' is associated with 'Datum'. 'Datum' is also associated with 'OAMFeature (from OAMFeature)'.
classDiagram
    class Tolerance {
        +StatisticalControl (from StatisticalControl)
    }
    class DimensionalTolerance
    class GeometricTolerance {
        +MaterialCondition
        +Geometry (from CoreModel)
    }
    class FormTolerance {
        (from FormTolerance)
    }
    class ProfileTolerance {
        (from ProfileTolerance)
    }
    class OrientationTolerance {
        (from OrientationTolerance)
    }
    class LocationTolerance {
        (from LocationTolerance)
    }
    class RunoutTolerance {
        (from RunoutTolerance)
    }
    class Datum
    class DatumFeature
    class FeatureOfSize
    class OAMFeature {
        (from OAMFeature)
    }

    Tolerance <|-- DimensionalTolerance
    Tolerance <|-- GeometricTolerance
    GeometricTolerance --> MaterialCondition
    GeometricTolerance --> Geometry : +tolerance, +tolerance_of
    GeometricTolerance <|-- FormTolerance
    GeometricTolerance <|-- ProfileTolerance
    GeometricTolerance <|-- OrientationTolerance
    GeometricTolerance <|-- LocationTolerance
    GeometricTolerance <|-- RunoutTolerance
    OrientationTolerance --> Datum
    LocationTolerance --> Datum
    RunoutTolerance --> Datum
    Datum --> FeatureOfSize
    DatumFeature --|> FeatureOfSize
    DatumFeature --> Datum
    Datum --> OAMFeature
  
UML class diagram for the Tolerance Package. The diagram shows a hierarchy of tolerance classes. 'Tolerance' is the base class, with 'StatisticalControl (from StatisticalControl)' as an association. 'DimensionalTolerance' and 'GeometricTolerance' inherit from 'Tolerance'. 'GeometricTolerance' has associations with 'MaterialCondition' and 'Geometry (from CoreModel)'. 'FormTolerance (from FormTolerance)', 'ProfileTolerance (from ProfileTolerance)', 'OrientationTolerance (from OrientationTolerance)', 'LocationTolerance (from LocationTolerance)', and 'RunoutTolerance (from RunoutTolerance)' all inherit from 'GeometricTolerance'. 'Datum' is a class associated with 'OrientationTolerance', 'LocationTolerance', and 'RunoutTolerance'. 'Datum' is also associated with 'FeatureOfSize'. 'FeatureOfSize' inherits from 'DatumFeature'. 'DatumFeature' is associated with 'Datum'. 'Datum' is also associated with 'OAMFeature (from OAMFeature)'.

Figure 15: Tolerance Package

OrientationTolerance is applicable to feature orientations. Angularity, parallelism, perpendicularity, and in some cases, profile are orientation tolerances applicable to two or more features. These tolerances control the orientation of a feature with respect to another feature.

LocationTolerance deals with the position, concentricity, and symmetry used to control the following relationships:

  • • center distance between such feature as holes, slots, and tabs;
  • • location of features as a group, from datum features, such as a plane and a cylindrical surface;
  • • coaxiality of features; and
  • • concentricity or symmetry of features.

10.11.1. Datum

Datum is a theoretically exact piece of geometry, such as a point, a line, and a plane, from which a tolerance is referenced.

10.11.2. DatumFeature

DatumFeature is a physical feature that is applied to establish a datum.

10.11.2.1. FeatureOfSize

A feature that is associated with a size dimension, such as the diameter of a spherical or cylindrical surface and the distance between two parallel planes.

10.11.3. 3.11.1 Form Tolerance

Figure 16 presents the form tolerance of a component.

10.11.3.1. StraightnessTolerance

Straightness is a condition where an element of a surface, or an axis, is straight line. StraightnessTolerance signifies the allowable variations from this condition.

UML class diagram showing FormTolerance as a base class for StraightnessTolerance, FlatnessTolerance, CylindricityTolerance, and CircularityTolerance.
classDiagram
    class FormTolerance
    class StraightnessTolerance
    class FlatnessTolerance
    class CylindricityTolerance
    class CircularityTolerance
    FormTolerance <|-- StraightnessTolerance
    FormTolerance <|-- FlatnessTolerance
    FormTolerance <|-- CylindricityTolerance
    FormTolerance <|-- CircularityTolerance

The diagram illustrates a class hierarchy for form tolerances. At the top is the FormTolerance class. Below it, four subclasses are shown: StraightnessTolerance, FlatnessTolerance, CylindricityTolerance, and CircularityTolerance. Each subclass is connected to the base class by a vertical line with an open triangle arrowhead pointing towards the base class, indicating a generalization relationship.

UML class diagram showing FormTolerance as a base class for StraightnessTolerance, FlatnessTolerance, CylindricityTolerance, and CircularityTolerance.

Figure 16: Form Tolerance Package

10.11.3.2. FlatnessTolerance

Flatness is the condition of a surface having all elements in one plane. FlatnessTolerance signifies the allowable variations from this condition.

10.11.3.3. CircularityTolerance

Circularity is a condition of a surface where, for a:

  • • feature other than a sphere, all points of the surface intersected by any plane perpendicular to an axis are equidistant from that axis;
  • • sphere, all points of the surface intersected by any plane passing through a common center are equidistant from that center.

CircularityTolerance signifies the allowable variations from this circularity condition.

10.11.3.4. CylindricityTolerance

Cylindricity is a condition of a surface of revolution in which all points of the surface are equidistant from a common axis. CylindricityTolerance signifies the allowable variations from this condition.

10.11.4. 3.11.2 Profile Tolerance

Figure 17 presents the profile tolerance of a component .

UML class diagram showing ProfileTolerance as a base class for ProfileLineTolerance and ProfileSurfaceTolerance.
classDiagram
    class ProfileTolerance {
    }
    class ProfileLineTolerance {
    }
    class ProfileSurfaceTolerance {
    }
    ProfileTolerance <|-- ProfileLineTolerance
    ProfileTolerance <|-- ProfileSurfaceTolerance
  

The diagram illustrates a class hierarchy for profile tolerances. At the top is the ProfileTolerance class, represented by a rectangle with a double-line border. Below it, two lines extend downwards to a horizontal line. From this horizontal line, two vertical lines descend to the top of two separate boxes. The left box is labeled ProfileLineTolerance and the right box is labeled ProfileSurfaceTolerance. Both boxes also have a double-line border. An open triangle arrow points upwards from the horizontal line to the bottom of the ProfileTolerance box, indicating inheritance.

UML class diagram showing ProfileTolerance as a base class for ProfileLineTolerance and ProfileSurfaceTolerance.

Figure 17: ProfileTolerance Package

10.11.4.1. ProfileSurfaceTolerance

The tolerance zone established by the profile of a surface tolerance is three-dimensional, extending along the length and width of the considered feature or features.

10.11.4.2. ProfileofaLine

The tolerance zone established by the profile of a line tolerance is two-dimensional, extending along the length of the considered feature.

10.11.5. 3.11.3 Location Tolerance

Figure 18 presents the location tolerance of a component.

UML class diagram showing LocationTolerance as a base class for PositionTolerance, ConcentricityTolerance, and SymmetryTolerance.
classDiagram
    class LocationTolerance
    class PositionTolerance
    class ConcentricityTolerance
    class SymmetryTolerance
    LocationTolerance <|-- PositionTolerance
    LocationTolerance <|-- ConcentricityTolerance
    LocationTolerance <|-- SymmetryTolerance
  
UML class diagram showing LocationTolerance as a base class for PositionTolerance, ConcentricityTolerance, and SymmetryTolerance.

Figure 18: LocationTolerance Package

PositionTolerance defines either :

  • • a zone within which the center, axis, or center plane of a feature of size is permitted to vary from a true position, or
  • • a boundary, defined as the virtual condition, located at the true position, that may not be violated by the surface or surface of the considered feature.

ConcentricityTolerance is a cylindrical tolerance zone whose axis coincide with the axis of the datum feature.

10.11.5.1. SymmetryTolerance

Symmetry is that condition where the median point of all opposed or correspondingly located elements of two or more feature surfaces are congruent with the axis or center plane of a datum feature.

10.11.6. 3.11.4 Orientation Tolerance

Figure 19 presents the orientation tolerances between components.

UML class diagram showing OrientationTolerance as a base class for AngularityTolerance, PerpendicularityTolerance, and ParallelismTolerance.
classDiagram
    class OrientationTolerance
    class AngularityTolerance
    class PerpendicularityTolerance
    class ParallelismTolerance
    OrientationTolerance <|-- AngularityTolerance
    OrientationTolerance <|-- PerpendicularityTolerance
    OrientationTolerance <|-- ParallelismTolerance
  
UML class diagram showing OrientationTolerance as a base class for AngularityTolerance, PerpendicularityTolerance, and ParallelismTolerance.

Figure 19: OrientationTolerance package

10.11.6.1. AngularityTolerance

Angularity is the condition of a surface, a center plane, or an axis at a specified angle from a datum plane or an axis.

10.11.6.2. ParallelismTolerance

Parallelism is the condition of a surface or a center plane, equidistant at all points from a datum plane; or an axis, equidistant along its length from one or more datum planes or a datum axis.

10.11.6.3. PerpendicularityTolerance

Perpendicularity is the condition of a surface, center plane, or axis at a right angle to a datum plane or axis.

10.11.7. 3.11.5 Runout Tolerance

Figure 20 presents the runout tolerance of a component.

UML class diagram showing RunoutTolerance as a base class for CircularRunoutTolerance and TotalRunoutTolerance.
classDiagram
    class RunoutTolerance
    class CircularRunoutTolerance
    class TotalRunoutTolerance
    RunoutTolerance <|-- CircularRunoutTolerance
    RunoutTolerance <|-- TotalRunoutTolerance

The diagram illustrates a class hierarchy for runout tolerances. At the top is the RunoutTolerance class. Below it, two subclasses are shown: CircularRunoutTolerance and TotalRunoutTolerance. A hollow triangle arrow points from the base of each subclass box up to the RunoutTolerance box, indicating inheritance.

UML class diagram showing RunoutTolerance as a base class for CircularRunoutTolerance and TotalRunoutTolerance.

Figure 20: RunoutTolerance Package

CircularrunoutTolerance provides control of circular elements of a surface. The tolerance is applied independently at each circular measuring position, as the part is rotated 360 degrees.

TotalrunoutTolerance provides composite control of all surface elements. The tolerance is applied simultaneously to all circular and profile measuring position, as the part is rotated 360 degrees.

10.11.8. 3.11.6 Statistical Tolerance

10.11.8.1. StatisticalControl

StatisticalControl is a tolerance that requires statistical process controls on the tolerated feature in manufacturing. ( See Figure 21).

10.11.8.2. RegularControl

RegularControl is a statistical tolerance that is defined by the mean and the standard deviation.

10.11.8.3. DistributedControl

DistributedControl is a statistical tolerance that is defined by a range of distributions of dimensional variations. For example, assume that the tolerance of a 100 mm shaft is \pm 1 mm. At least fifty percent of the produced shafts should be within the tolerance of \pm 0.5 mm. The remaining must be within the tolerance of \pm 1 mm.

10.11.8.4. Range

Range is the definition of the range of dimensional variations. For example, fifty percent of the produced shafts should be within the tolerance of \pm 0.5 mm.

UML class diagram for the StatisticalTolerance Package
classDiagram
    class StatisticalControl
    class RegularControl
    class DistributedControl
    class Range
    StatisticalControl <|-- RegularControl
    StatisticalControl <|-- DistributedControl
    DistributedControl --> Range : +theRange 1..*

The diagram illustrates the class hierarchy for the StatisticalTolerance Package. At the top is the StatisticalControl class. Below it are two subclasses: RegularControl and DistributedControl. Both RegularControl and DistributedControl inherit from StatisticalControl, as indicated by the hollow triangle arrows. The DistributedControl class has an association with the Range class, labeled with the attribute +theRange and the multiplicity 1..*.

UML class diagram for the StatisticalTolerance Package

Figure 21: StatisticalTolerance Package

11. 4 Example and Industrial Case Study

This section illustrates the assembly model with an industrial device: a planetary gear system. The model is generated using a Computer-Aided Design (CAD) system. The first Section 4.1 lists all the parts in the assembly. Section 4.2 describes the principal hierarchy of the assembly. Section 4.3 explains the assembly relationships such as artifact associations, assembly feature associations, assembly constraints, and kinematic pairs. Section 4.4 describes the kinematic relationships in detail. Finally, Section 4.5 illustrates the tolerances that are needed for assembly tolerance analysis.

11.1. 4.1 Components in Planetary Gear System

A planetary gear system is used to illustrate our model. The solid model of the planetary gear system is shown in Figure 22.

Figure 22: Solid Model of a Planetary Gear. The image shows two views of a 3D CAD model of a planetary gear assembly. The left view is a perspective view showing the input shaft on the left and the output housing on the right. The right view is a front view showing the input housing on the left and the output shaft on the right. The assembly consists of a central input shaft, a planet gear carrier, planet gears, a ring gear, and an output shaft.
Figure 22: Solid Model of a Planetary Gear. The image shows two views of a 3D CAD model of a planetary gear assembly. The left view is a perspective view showing the input shaft on the left and the output housing on the right. The right view is a front view showing the input housing on the left and the output shaft on the right. The assembly consists of a central input shaft, a planet gear carrier, planet gears, a ring gear, and an output shaft.

Figure 22: Solid Model of a Planetary Gear

The planetary gear system consists of many components. Figure 23 shows the exploded view of the above solid model.

Figure 23: Exploded View of the Planetary Gear Model. This diagram shows the individual components of the planetary gear system in an exploded view. The components are labeled: Screws, Output Housing, Washer, Planet Gear Pin, Planet Gear, Ring Gear, Input Housing, Bearing, Output Shaft, Ring Gear Pin, and Sun Gear. Arrows indicate the assembly sequence and the relative positions of the components.
Figure 23: Exploded View of the Planetary Gear Model. This diagram shows the individual components of the planetary gear system in an exploded view. The components are labeled: Screws, Output Housing, Washer, Planet Gear Pin, Planet Gear, Ring Gear, Input Housing, Bearing, Output Shaft, Ring Gear Pin, and Sun Gear. Arrows indicate the assembly sequence and the relative positions of the components.

Figure 23: Exploded View of the Planetary Gear Model

The list of all the components of the planetary gear system shown in Figure 23 is given in Table 1.

IDNameQtyFunctional DescriptionGraphical Representation
1Output Housing1Covers output shaft and protects the gears and shafts3D model of the output housing, a blue cast metal part with a large circular opening and mounting flanges.
2Bearing2Supports the output housing and serves as an interface between the output shaft and the housing3D model of a green ball bearing.
3Washer1Separate the two bearings inside the output housing3D model of a blue circular washer or spacer ring.
4Output shaft1Transmits power to the driven device. Also, connects to planetary gears.3D model of a blue output shaft with a flange and keyway.
5Planet gear pin3Holds a planetary gear and attaches it to the output shaft3D model of a blue pin used to secure planet gears.
6Planet gear3Delivers power from the sun gear to the output shaft3D model of a purple planet gear.
7Ring gear1Controls the speed reduction ratio. The planetary gears rotate around it.3D model of a tan-colored ring gear.
8Ring gear pin2Attaches the ring gear to the output housing3D model of a green pin used to secure the ring gear.
9Sun gear1Transmits the power from input shaft to planetary gears. Input shaft and sun gear considered as one part.3D model of an orange sun gear with a central shaft connection.
10Input housing1Covers the input shaft and provides protection from environmental contamination.3D model of a blue input housing with mounting flanges.
11Screw8Fastens the input housing, the ring gear, and the output housing into one assembly.3D model of a grey screw.

Table 1: Part List of the Planetary Gear System

11.2. 4.2 Assembly Hierarchy

Before proceeding further with our case-study example, we first need to define an assembly hierarchy for the planetary gear system. The planetary gear system is assumed to be composed of two parts, namely, the input-housing and the sungear, and three sub-assemblies, as shown in Figure 24. The three sub-assemblies are: (1) the output end assembly that contains the two bearings, the washer, and the output housing; (2) the ring gear assembly that consists of the ring gear and ring-gear pin; and (3) the planet gear holder assembly that consists of the three planet gears and the planet carrier assembly, which further decomposes into the output shaft and the three planet-gear pins.

Figure 24: Assembly Hierarchy of Planetary Gear System. This diagram illustrates the hierarchical structure of a planetary gear system. At the top is the complete assembly, a blue cylindrical housing with a yellow band. Arrows point down to its main components: Screws (represented by a screw icon), Input Housing (a blue cast part), Ring Gear (a tan ring), Sun Gear (an orange gear), Output Shaft (a blue shaft), and Planet Gear (a blue gear). Further decomposition is shown: the Input Housing is composed of two Bearings (green rings), a Washer (a purple ring), and an Output Housing (a blue cast part); the Ring Gear is composed of a Ring Gear Pin (a green pin); the Sun Gear is composed of Ring Gear Pins (green pins); the Output Shaft is composed of Ring Gear Pins (green pins); and the Planet Gear is composed of three Planet Gear Pins (purple pins).
Figure 24: Assembly Hierarchy of Planetary Gear System. This diagram illustrates the hierarchical structure of a planetary gear system. At the top is the complete assembly, a blue cylindrical housing with a yellow band. Arrows point down to its main components: Screws (represented by a screw icon), Input Housing (a blue cast part), Ring Gear (a tan ring), Sun Gear (an orange gear), Output Shaft (a blue shaft), and Planet Gear (a blue gear). Further decomposition is shown: the Input Housing is composed of two Bearings (green rings), a Washer (a purple ring), and an Output Housing (a blue cast part); the Ring Gear is composed of a Ring Gear Pin (a green pin); the Sun Gear is composed of Ring Gear Pins (green pins); the Output Shaft is composed of Ring Gear Pins (green pins); and the Planet Gear is composed of three Planet Gear Pins (purple pins).

Figure 24: Assembly Hierarchy of Planetary Gear System

. Notice that the hierarchy in Figure 24 is introduced to verify and demonstrate the proposed UML assembly model. The sequence of part assembly descriptions does not imply the actual assembly sequence. The assembly sequencing task is outside the scope of this report.

Instance Diagram of Main Assembly Hierarchy showing the hierarchical relationships between components of a planetary gear system.
graph TD
    gearHeadAsm["gearHeadAsm:Assembly"]
    screw1["Screw1:Part"]
    inputHousing["inputHousing:Part"]
    sunGear["sunGear:Part"]
    outputHousingAsm["outputHousingAsm:Assembly"]
    ringGearAsm["ringGearAsm:Assembly"]
    planetGearCarrierAsm["planetGearCarrierAsm:Assembly"]
    screw8["Screw8:Part"]
    bearing2["bearing2:Part"]
    bearing1["bearing1:Part"]
    washer["washer:Part"]
    outputHousingPart["outputHousing:Part"]
    ringGear["ringGear:Part"]
    ringGearPin1["ringGearPin1:Part"]
    ringGearPin2["ringGearPin2:Part"]
    planetGear1["planetGear1:Part"]
    planetGear2["planetGear2:Part"]
    planetGear3["planetGear3:Part"]
    planetGearCarrierAsmSub["planetGearCarrierAsm:Assembly"]
    planetGearPin1Part["planetGearPin1:Part"]
    planetGearPin2Part["planetGearPin2:Part"]
    planetGearPin3Part["planetGearPin3:Part"]
    outputShaft["outputShaft:Part"]

    gearHeadAsm --- screw1
    gearHeadAsm --- inputHousing
    gearHeadAsm --- sunGear
    gearHeadAsm --- outputHousingAsm
    gearHeadAsm --- ringGearAsm
    gearHeadAsm --- planetGearCarrierAsm
    gearHeadAsm -.- screw8
    outputHousingAsm --- bearing2
    outputHousingAsm --- bearing1
    outputHousingAsm --- washer
    outputHousingAsm --- outputHousingPart
    ringGearAsm --- ringGear
    ringGearAsm --- ringGearPin1
    ringGearAsm --- ringGearPin2
    planetGearCarrierAsm --- planetGear1
    planetGearCarrierAsm --- planetGear2
    planetGearCarrierAsm --- planetGear3
    planetGearCarrierAsm --- planetGearCarrierAsmSub
    planetGearCarrierAsmSub --- planetGearPin1Part
    planetGearCarrierAsmSub --- planetGearPin2Part
    planetGearCarrierAsmSub --- planetGearPin3Part
    planetGearCarrierAsmSub --- outputShaft
  
Instance Diagram of Main Assembly Hierarchy showing the hierarchical relationships between components of a planetary gear system.

Figure 25: Instance Diagram of Main Assembly Hierarchy

The hierarchical relationships between the components of the planetary gear system can be represented as an instance diagram as shown in Figure 25. The elements are underlined to show that they are instances. The names take the form of "instance name:class name". The root node is the entire assembly, the interior nodes are sub-assemblies, and the leaf nodes are component parts.

11.3. 4.3 Assembly Relationships

Information besides the hierarchical relationship between artifacts is provided by an instance of AssemblyAssociation, which is an aggregation of instances of ArtifactAssociation. The artifact associations hold relational information such as mating conditions, kinematic pairs, and associations between assembly features. For the gear head assembly shown in Figure 25, a graph of artifact associations is shown in Figure 26. The dotted lines indicate the artifact associations and the solid lines portray the hierarchical assembly relationships. The details of the artifact associations shown in Figure 26 are discussed in the following sections. First we explain the assembly relationship for each subassembly, and then we describe the entire assembly.

Figure 26: Artifact Associations. A complex network diagram showing hierarchical assembly relationships between various mechanical parts. The parts are represented by 3D models and labeled with identifiers in ovals: fc1, fc2, fc3, fc4, fc5, fc6, fc7, fc8, fc9, fc10, fc11, fc12, fc13, mc1, mc2, mc3, mc4, mc5, mc6, mc7, mc8, mc9, mc10, mc11, po1. Solid lines with arrows indicate assembly relationships, while dashed lines with arrows indicate other types of associations. The diagram shows a top-down assembly structure starting from a large blue housing at the top, branching out into various sub-assemblies and components.
Figure 26: Artifact Associations. A complex network diagram showing hierarchical assembly relationships between various mechanical parts. The parts are represented by 3D models and labeled with identifiers in ovals: fc1, fc2, fc3, fc4, fc5, fc6, fc7, fc8, fc9, fc10, fc11, fc12, fc13, mc1, mc2, mc3, mc4, mc5, mc6, mc7, mc8, mc9, mc10, mc11, po1. Solid lines with arrows indicate assembly relationships, while dashed lines with arrows indicate other types of associations. The diagram shows a top-down assembly structure starting from a large blue housing at the top, branching out into various sub-assemblies and components.

Figure 26: Artifact Associations

11.3.1. 4.3.1 Output Housing Assembly

Figure 27 describes the subassembly and the output housing (the output end of the planetary gear system). It consists of four parts: bearing 1, bearing 2, washer, and output housing. The washer goes to the inside groove of the output housing. Both bearings (ball bearings) go into the output housing on both sides of the washer by a tight fit. Bearing 1 stays outside, and Bearing 2 stays inside of the planetary gear system.

The assembly relationships between artifacts are shown in Table 2. The first column shows the names of the artifact associations. The second column lists the participating artifacts in the associations. The relevant assembly features, parametric assembly constraints, and kinematic relationships are also listed. The instance diagram of the assembly relationships in Table 2 is depicted in Figure 28. Some class names are denoted with acronyms instead of their long class names (Figure 28).

Figure 27: Output Housing Assembly. The diagram shows the assembly of an output housing. On the left, the 'Output Housing' (a large blue component) is shown with a green 'Washer' and a green 'Bearing' being positioned around it. An arrow points to the right, showing the final assembled state where the washer and bearing are in place within the housing.
Figure 27: Output Housing Assembly. The diagram shows the assembly of an output housing. On the left, the 'Output Housing' (a large blue component) is shown with a green 'Washer' and a green 'Bearing' being positioned around it. An arrow points to the right, showing the final assembled state where the washer and bearing are in place within the housing.

Figure 27: Output Housing Assembly

The artifact associations are instantiated from the class FixedConnection, one of the subclasses of ArtifactAssociation, since the participating artifacts in the present subassembly have no relative motion with respect to one another. The associations are named fc1, fc2, and so forth. The details of the artifact associations are represented by accompanying instances of assembly features (AFs) and assembly feature associations (AFAs) as shown in Figure 28. The assembly feature association representations (AFARs) contain the parametric assembly constraints to position artifacts with respect to a reference (fixed) artifact. We assume here that the output housing has a fixed position and orientation to anchor the entire assembly. Thus, the output housing itself should have a parametric assembly constraint of FixedComponent. To hold this information, an instance of ArtifactAssociation (fixed connection) fc4, with information regarding assembly feature and assembly feature association is provided, as shown in Table 2. Notice that the artifact association fc4 has only one artifact (the output housing) associated with it, and so does its assembly feature association. The artifact association fc3 between bearing 2 and output housing will have a similar assembly relationships structure to that of fc2 and is not depicted in Figure 28 for brevity.

Artifact associationsArtifactsAssembly featuresAssembly constraintsKinematic relationships
fc1Output housingAll three surfaces of inner groove (groove:AF)Coaxial
Parallel
No relative motion
WasherSurface of outer rim and partial surfaces on both sides (outer Rim:AF)Angle with dimension
fc2Output housingCylindrical surface for the outside bearing seat (bearingSeat1:AF)Coaxial
Parallel
Angle with dimension
No relative motion
Bearing 1Rim of the bearing (outerRace1:AF)
Artifact associationsArtifactsAssembly featuresAssembly constraintsKinematic relationships
fc3Output housingCylindrical surface for the inside bearing seat (bearingSeat2:AF)Coaxial
Parallel
No relative motion
Bearing 2Rim of the bearing (outerRace2:AF)Angle with dimension
fc4Output housingEntire subassemblyFixedNo relative motion

Table 2: Assembly relationships of the output end of the planetary gear system

Instance Diagram of Output Housing Assembly showing relationships between artifacts, features, and constraints.

The diagram illustrates the instance relationships for the Output Housing Assembly. It includes the following components and connections:

  • Artifacts:
    • bearing1:Part (Artifact)
    • bearing2:Part (Artifact)
    • outputHousing:Part (Artifact)
    • washer:Part (Artifact)
    • outerRace1:AF (AssemblyFeature)
    • bearingSeat1:AF (AssemblyFeature)
    • groove:AF (AssemblyFeature)
    • outerRim:AF (AssemblyFeature)
  • Feature Associations (AFA):
    • outerRace1:AF is associated with bearing1:Part via a feature association.
    • bearingSeat1:AF is associated with outputHousing:Part via a feature association.
    • groove:AF is associated with outputHousing:Part via a feature association.
    • outerRim:AF is associated with washer:Part via a feature association.
  • Fixed Connections (FC):
    • fc2:FC is associated with bearing1:Part and outputHousing:Part via artifact associations.
    • fc3:FC is associated with bearing2:Part and outputHousing:Part via artifact associations.
    • fc1:FC is associated with washer:Part and outputHousing:Part via artifact associations.
    • fc4:FC is associated with outputHousing:Part and FixedComponent via artifact associations.
  • Assembly Constraints:
    • Parallel, Coaxial, and AngleWithDimension constraints are associated with fc2:FC via representation.
    • Parallel, Coaxial, and AngleWithDimension constraints are associated with fc4:FC via representation.
    • FixedComponent is associated with fc4:FC via an assembly constraint.

Legend:
FC: FixedConnection
AF: AssemblyFeature
AFA: AssemblyFeatureAssociation
AFAR: AssemblyFeatureAssociationRepresentation

Instance Diagram of Output Housing Assembly showing relationships between artifacts, features, and constraints.

Figure 28: Instance Diagram of Output Housing Assembly

11.3.2. 4.3.2 Ring Gear Assembly

The second subassembly is the ring gear assembly, shown in Figure 29. It consists of three parts: ring gear, ring-gear pin 1 and pin 2. The two ring-gear pins go into the pinholes of the ring gear with a tight fit.

Figure 29: Ring Gear Assembly. The image shows two 3D models of a ring gear assembly. The left model shows the assembly with labels 'Ring Gear' pointing to the outer ring and 'Ring Gear Pin' pointing to a small green pin. An arrow points to the right model, which shows the same assembly from a different perspective.
Figure 29: Ring Gear Assembly. The image shows two 3D models of a ring gear assembly. The left model shows the assembly with labels 'Ring Gear' pointing to the outer ring and 'Ring Gear Pin' pointing to a small green pin. An arrow points to the right model, which shows the same assembly from a different perspective.

Figure 29: Ring Gear Assembly

The assembly relationships are listed in Table 3, and Figure 30 shows the instance diagram of the current assembly. The artifact associations are instantiated from FixedConnection and named fc5 and fc6, since there are no relative motions between participating artifacts. The artifact association fc6 has a similar structure to that of fc5 and is not shown in the figure.

Artifact associationsArtifactsAssembly featuresAssembly constraintsKinematic relationships
fc5Ring gearPinhole surfaces (pinHole1:AF)CoaxialNo relative motion
Ring-gear pin 1Inserted portion of pin surface (pinCylinder1:AF)Parallel
Angle with dimension
fc6Ring gearPinhole surfaces (pinHole2:AF)CoaxialNo relative motion
Ring-gear pin 2Inserted portion of pin surface (pinCylinder2:AF)Parallel
Angle with dimension

Table 3: Assembly Relationships of Ring Gear Assembly

Figure 30: Instance Diagram of Output Housing Assembly. This UML-like diagram shows the relationships between artifacts and features. Artifacts include ringGearPin2:Part, fc6:FC, ringGear:Part, fc5:FC, ringGearPin1:Part, and pinCylinder1:AF. Features include pinHole1:AF, :AFA, and pinCylinder1:AF. Constraints include :Parallel, :Coaxial, and :AngleWithDimension. The diagram uses arrows to represent artifact associations, feature associations, and representations.
graph TD
    ringGearPin2Part[ringGearPin2:Part] -- artifact --> fc6FC[fc6:FC]
    fc6FC -- artifact association --> ringGearPart[ringGear:Part]
    ringGearPart -- artifact --> pinHole1AF[pinHole1:AF]
    fc5FC[fc5:FC] -- artifact association --> ringGearPart
    ringGearPart -- artifact --> ringGearPin1Part[ringGearPin1:Part]
    ringGearPin1Part -- artifact --> pinCylinder1AF[pinCylinder1:AF]
    ringGearPart -- feature --> AFA[:AFA]
    AFA -- feature association --> pinHole1AF
    AFA -- feature association --> pinCylinder1AF
    AFA -- representation --> AFAR[:AFAR]
    AFAR -- assembly constraint --> Parallel[:Parallel]
    AFAR -- assembly constraint --> Coaxial[:Coaxial]
    AFAR -- assembly constraint --> AngleWithDimension[:AngleWithDimension]
  
Figure 30: Instance Diagram of Output Housing Assembly. This UML-like diagram shows the relationships between artifacts and features. Artifacts include ringGearPin2:Part, fc6:FC, ringGear:Part, fc5:FC, ringGearPin1:Part, and pinCylinder1:AF. Features include pinHole1:AF, :AFA, and pinCylinder1:AF. Constraints include :Parallel, :Coaxial, and :AngleWithDimension. The diagram uses arrows to represent artifact associations, feature associations, and representations.

Figure 30: Instance Diagram of Output Housing Assembly

11.3.3. 4.3.3 Planet Carrier Assembly

The planet carrier assembly in Figure 31 is comprised of four parts: three planet-gear pins and an output shaft. The three planet-gear pins are assembled with output shaft by a tight fit.

Figure 31: Planet Carrier Assembly. The image shows two views of the assembly. On the left, three blue planet gear pins are shown being inserted into the holes of a teal-colored planet carrier. An arrow points from the text 'Planet Gear Pin' to one of the pins. Another arrow points from the text 'Output Shaft' to the carrier. On the right, the completed assembly is shown with the three pins fully inserted into the carrier. A large white arrow points from the assembly-in-progress view to the completed assembly view.
Figure 31: Planet Carrier Assembly. The image shows two views of the assembly. On the left, three blue planet gear pins are shown being inserted into the holes of a teal-colored planet carrier. An arrow points from the text 'Planet Gear Pin' to one of the pins. Another arrow points from the text 'Output Shaft' to the carrier. On the right, the completed assembly is shown with the three pins fully inserted into the carrier. A large white arrow points from the assembly-in-progress view to the completed assembly view.

Figure 31: Planet Carrier Assembly

The assembly relationships are listed in Table 4, and the instance diagram is depicted in Figure 32. The artifact associations are instantiated from FixedConnection and named fc7, fc8, and fc9, since there are no relative motions between participating artifacts. The assembly relationships of the current assembly are very similar to those of the ring gear assembly explained previously. The detailed relationships for fc8 and fc9 are not shown in the figure: they have the same structure as that of fc6.

Artifact associationsArtifactsAssembly featuresAssembly constraintsKinematic relationships
fc7Output shaftPinhole surfaces (pinHole3:AF)Coaxial
Parallel
No relative motion
Planet-gear pin 1Inserted portion of pin surface (pinCylinder3:AF)Angle with dimension
fc8Output shaftPinhole surfaces (pinHole4:AF)Coaxial
Parallel
No relative motion
Planet-gear pin 2Inserted portion of pin surface (pinCylinder4:AF)Angle with dimension
fc9Output shaftPinhole surfaces (pinHole5:AF)Coaxial
Parallel
No relative motion
Planet-gear pin 3Inserted portion of pin surface (pinCylinder5:AF)Angle with dimension

Table 4: Assembly Relationships of Planet Carrier Assembly

Figure 32: Instance Diagram of Planet Carrier Assembly. This UML diagram shows the relationships between various artifacts and features in a planet carrier assembly. Artifacts include planetGearPin2:Part, planetGearPin1:Part, planetGearPin3:Part, fc8:FC, fc7:FC, fc9:FC, outputShaft:Part, pinCylinder3:AF, and pinHole3:AF. Features include :AFA and :AFAR. Constraints include :Parallel, :Coaxial, and :AngleWithDimension. Relationships are shown with arrows labeled 'artifact', 'feature', 'feature association', 'representation', and 'assembly constraint'.
classDiagram
    class planetGearPin2Part["planetGearPin2:Part"]
    class planetGearPin1Part["planetGearPin1:Part"]
    class planetGearPin3Part["planetGearPin3:Part"]
    class fc8FC["fc8:FC"]
    class fc7FC["fc7:FC"]
    class fc9FC["fc9:FC"]
    class outputShaftPart["outputShaft:Part"]
    class pinCylinder3AF["pinCylinder3:AF"]
    class pinHole3AF["pinHole3:AF"]
    class AFA[":AFA"]
    class AFAR[":AFAR"]
    class Parallel[":Parallel"]
    class Coaxial[":Coaxial"]
    class AngleWithDimension[":AngleWithDimension"]

    planetGearPin2Part --> fc8FC : artifact
    planetGearPin1Part --> fc7FC : artifact
    planetGearPin3Part --> fc9FC : artifact
    fc8FC --> outputShaftPart : artifact
    fc7FC --> outputShaftPart : artifact
    fc9FC --> outputShaftPart : artifact
    outputShaftPart --> pinHole3AF : feature
    pinCylinder3AF --> AFA : feature
    AFA --> AFAR : feature association
    AFAR --> Parallel : representation
    AFAR --> Coaxial : representation
    AFAR --> AngleWithDimension : representation
    planetGearPin1Part --> pinCylinder3AF : feature
    planetGearPin3Part --> pinHole3AF : feature
  
Figure 32: Instance Diagram of Planet Carrier Assembly. This UML diagram shows the relationships between various artifacts and features in a planet carrier assembly. Artifacts include planetGearPin2:Part, planetGearPin1:Part, planetGearPin3:Part, fc8:FC, fc7:FC, fc9:FC, outputShaft:Part, pinCylinder3:AF, and pinHole3:AF. Features include :AFA and :AFAR. Constraints include :Parallel, :Coaxial, and :AngleWithDimension. Relationships are shown with arrows labeled 'artifact', 'feature', 'feature association', 'representation', and 'assembly constraint'.

Figure 32: Instance Diagram of Planet Carrier Assembly

11.3.4. 4.3.4 Planet Gear-carrier Assembly

The planet gear-carrier assembly shown in Figure 33 is comprised of four artifacts: three parts of planet gears and the planet carrier assembly. The three planet gears are assembled by loose fit with the planet-gear pins of the planet carrier assembly.

Figure 33: Planet Gear Carrier Assembly. This 3D CAD model shows a blue planet carrier assembly with three purple planet gear pins. Three green planet gears are shown being inserted into the pins. Labels with arrows point to 'Planet Gear', 'Planet Gear Pin', and 'Output Shaft'.
Figure 33: Planet Gear Carrier Assembly. This 3D CAD model shows a blue planet carrier assembly with three purple planet gear pins. Three green planet gears are shown being inserted into the pins. Labels with arrows point to 'Planet Gear', 'Planet Gear Pin', and 'Output Shaft'.

Figure 33: Planet Gear Carrier Assembly

Table 5 lists the assembly relationships. These assembly relationships are illustrated in Figure 34. The artifact associations of the current assembly are instantiated from MovableConnection since there are rotational motions between the planet gears and the planet-gear pins. They are named mc1, mc2, and mc3, respectively. Only the details of artifact association mc1 are depicted. The instance of the planet carrier assembly (planetCarrierAsm:Assembly) is also drawn to show the part-of relationships with the planet-gear pins; the output shaft is not shown since it is not directly involved in the current assembly relationship. Note that the part-of relationships are actually stored in the main hierarchy of the proposed UML model. As mentioned above, the artifact associations are instances of MovableConnection. Thus, the associated assembly feature association representations contain the information on the kinematic pair. Instances of

RevolutePair are thus supplied to the assembly feature association representation, as well as the assembly constraints.

Artifact associationsArtifactsAssembly featuresAssembly constraintsKinematic relationships
mc1Planet-gear pin 1
@Planet carrier assembly
Pin surface for planetary gear
(pinCylinder6:AF)
Coaxial
Parallel
Angle with dimension
Relative rotation
(rp2:RevolutePair)
Planet gear 1Gear journal surface
(pinHole6:AF)
mc2Planet-gear pin 2
@Planet carrier assembly
Pin surface for planetary gear
(pinCylinder7:AF)
Coaxial
Parallel
Angle with dimension
Relative rotation
(rp3:RevolutePair)
Planet gear 2Gear journal surface
(pinHole7:AF)
mc3Planet-gear pin 3
@Planet carrier assembly
Pin surface for planetary gear
(pinCylinder8: AF)
Coaxial
Parallel
Angle with dimension
Relative rotation
(rp4:RevolutePair)
Planet gear 3Gear journal surface
(pinHole8:AF)

Table 5: Assembly Relationships of Planet Gear-Carrier Assembly

Instance Diagram of Planet Gear-Carrier Assembly showing hierarchical relationships between assembly, part, artifact, and feature instances, including constraints and kinematic pairs.

The diagram illustrates the instance hierarchy of the Planet Gear-Carrier Assembly. At the top is the assembly instance planetCarrierAsm:Assembly. It branches into three part instances: planetGearPin3, planetGearPin2, and planetGearPin1:part. planetGearPin3 is associated with mc3:MC (MovableConnection), which in turn is associated with planetGear3:part. planetGearPin2 is associated with mc2:MC, which is associated with planetGear2:part. planetGearPin1:part is associated with mc1:MC, which is associated with planetGear1:part. The planetGear1:part instance further branches into two artifact instances: planetGear1:part (labeled as artifact) and planetGear1:part (labeled as artifact). The planetGear1:part (artifact) instance is associated with pinCylinder6:AF (feature) and pinHole6:AF (feature). The planetGear1:part (artifact) instance is associated with pinCylinder6:AF (feature) and pinHole6:AF (feature). The pinCylinder6:AF (feature) instance is associated with :AFA (feature association) and :AFAR (feature association representation). The pinHole6:AF (feature) instance is associated with :AFA (feature association) and :AFAR (feature association representation). The :AFA (feature association) instance is associated with :AFAR (feature association representation). The :AFAR (feature association representation) instance is associated with :Parallel (assembly constraint), :Coaxial (assembly constraint), :AngleWithDimension (assembly constraint), and rp2:RevolutePair (kinematic pair).

Instance Diagram of Planet Gear-Carrier Assembly showing hierarchical relationships between assembly, part, artifact, and feature instances, including constraints and kinematic pairs.

Figure 34: Instance Diagram of Planet Gear-Carrier Assembly

11.3.5. 4.3.5 Planetary gear system Assembly

The planetary gear system assembly in Figure 35 consists of five artifacts: two parts and three assemblies. The planet gear-carrier assembly is pushed into the bearings of the output housing assembly. The ring gear assembly is attached to the output housing assembly, being meshed with the three planet gears of the planet gear-carrier assembly. The sun gear is also meshed with the three planet gears. The input housing is attached to the ring gear. The details of the assembly relationships are explained for some of the artifacts to avoid repetition.

Exploded view diagram of a planetary gear system assembly. The components are arranged in a horizontal line from left to right: Screws (four grey bolts), Output Housing Assembly (a teal cylindrical housing), Planet Gear Carrier Assembly (a teal cylindrical component with three purple gear teeth), Sun Gear (a small orange cylindrical gear), Ring Gear Assembly (a large tan ring gear), and Input Housing Assembly (a teal cylindrical housing with four grey bolts). Arrows point from the labels to their respective components.
Exploded view diagram of a planetary gear system assembly. The components are arranged in a horizontal line from left to right: Screws (four grey bolts), Output Housing Assembly (a teal cylindrical housing), Planet Gear Carrier Assembly (a teal cylindrical component with three purple gear teeth), Sun Gear (a small orange cylindrical gear), Ring Gear Assembly (a large tan ring gear), and Input Housing Assembly (a teal cylindrical housing with four grey bolts). Arrows point from the labels to their respective components.

Figure 35: Planetary gear system Assembly

Consider the output housing assembly and planet gear-carrier assembly shown in Figure 36. The output shaft of the planet gear-assembly is inserted into the bearings of the output housing assembly.

A 3D model showing the Output Housing Assembly and Planet Gear-Carrier Assembly assembled together. The teal cylindrical planet gear-carrier assembly is inserted into the teal cylindrical output housing assembly. The planet gear-carrier assembly has three purple gear teeth visible on its side.
A 3D model showing the Output Housing Assembly and Planet Gear-Carrier Assembly assembled together. The teal cylindrical planet gear-carrier assembly is inserted into the teal cylindrical output housing assembly. The planet gear-carrier assembly has three purple gear teeth visible on its side.

Figure 36: Output Housing Assembly and Planet Gear-Carrier Assembly

Table 6 shows the assembly relationships, and Figure 37 shows the instance diagram of the two artifacts. Note that although there are two assemblies involved, the actual relationships are formed by three parts in the assemblies. The instances of the assemblies are also shown in Figure 37 to illustrate the part-of relationships. The artifact association mc4 involves the three parts of output shaft, bearing 1, and bearing 2. It is instantiated from MovableConnection since the output shaft and two bearings constitute a revolute pair. The artifact association mc4 and the associated assembly feature association are ternary relationships.

Artifact associationsArtifactsAssembly featuresAssembly constraintsKinematic relationships
mc4Output shaft
@Planet carrier assembly
Bearing seat of output shaft surface
(bearingSeat3:AF)
Coaxial
Parallel
Angle with dimension
Relative rotation
(rp5:RevolutePair)
Bearing 1
@Output housing assembly
Inner race surface of bearing (innerRace1:AF)
Bearing 2
@Output housing assembly
Inner race surface of bearing (innerRace2:AF)

Table 6: Assembly Relationships Between Output Housing Assembly and Planet Gear-Carrier Assembly

Figure 37: Output Housing Assembly and Planet Gear-Carrier Assembly Instance Diagram. This is a complex semantic network diagram showing the relationships between various assembly components. At the top left is 'outputHousingAsm:Assembly'. It has a 'part' relationship to 'bearing1:Part' and 'bearing2:Part'. 'bearing1:Part' has a 'feature' relationship to 'innerRace1:AF'. 'bearing2:Part' has a 'feature' relationship to 'innerRace2:AF'. Below 'outputHousingAsm:Assembly' is 'mc4:MC', which has an 'artifact association' relationship to 'outputHousingAsm:Assembly' and an 'artifact' relationship to 'planetCarrierAsm:Assembly'. 'planetCarrierAsm:Assembly' has a 'part' relationship to 'outputShaft:Part'. 'outputShaft:Part' has a 'feature' relationship to 'bearingSeat3:AF'. 'mc4:MC' also has a 'feature association' relationship to ':AFA'. ':AFA' has a 'feature' relationship to 'innerRace1:AF' and 'innerRace2:AF', and a 'representation' relationship to ':AFAR'. ':AFAR' is associated with several constraints: ':Parallel', ':Coaxial', ':AngleWithDimension', and a 'kinematic pair' 'rp5:RevolutePair'.
Figure 37: Output Housing Assembly and Planet Gear-Carrier Assembly Instance Diagram. This is a complex semantic network diagram showing the relationships between various assembly components. At the top left is 'outputHousingAsm:Assembly'. It has a 'part' relationship to 'bearing1:Part' and 'bearing2:Part'. 'bearing1:Part' has a 'feature' relationship to 'innerRace1:AF'. 'bearing2:Part' has a 'feature' relationship to 'innerRace2:AF'. Below 'outputHousingAsm:Assembly' is 'mc4:MC', which has an 'artifact association' relationship to 'outputHousingAsm:Assembly' and an 'artifact' relationship to 'planetCarrierAsm:Assembly'. 'planetCarrierAsm:Assembly' has a 'part' relationship to 'outputShaft:Part'. 'outputShaft:Part' has a 'feature' relationship to 'bearingSeat3:AF'. 'mc4:MC' also has a 'feature association' relationship to ':AFA'. ':AFA' has a 'feature' relationship to 'innerRace1:AF' and 'innerRace2:AF', and a 'representation' relationship to ':AFAR'. ':AFAR' is associated with several constraints: ':Parallel', ':Coaxial', ':AngleWithDimension', and a 'kinematic pair' 'rp5:RevolutePair'.

Figure 37: Output Housing Assembly and Planet Gear-Carrier Assembly Instance Diagram

Let us now consider the sungear and planet gear-carrier assembly, shown in Figure 38. The sungear is assembled with the three planet gears of the planet gear-carrier assembly by gear meshing.

A 3D CAD model of a Sungear And Planet Gear-Carrier Assembly. The assembly consists of a central cyan 'Output Shaft' passing through a grey 'Planet Gear' carrier. Inside the carrier, there are three purple 'Planet Gears' meshing with a larger orange 'Sun Gear' at the center. Arrows point from the labels to their respective components.
A 3D CAD model of a Sungear And Planet Gear-Carrier Assembly. The assembly consists of a central cyan 'Output Shaft' passing through a grey 'Planet Gear' carrier. Inside the carrier, there are three purple 'Planet Gears' meshing with a larger orange 'Sun Gear' at the center. Arrows point from the labels to their respective components.

Figure 38: Sungear And Planet Gear-Carrier Assembly

The assembly relationships are listed in Table 7 and the instance diagrams are illustrated in Figure 39. Five parts participate in the current assembly relationships. Three movable connections mc5, mc6, and mc7 are instantiates of MovableConnection. To describe the details of the gear meshing, three instances of GearPair, namely, gp1, gp2, and gp3 in Figure 39 are attached to the respective artifact associations (movable connections) via matching assembly feature associations. On the other hand, the input shaft portion of the sungear has relative rotation with respect to an unknown support (or ground). Typically, it is coupled with the output shaft of a motor. The output shaft of the motor would have relative rotation with respect to the support (or ground). That is, there is only one artifact (part) involved in this kinematic relationship. To handle this case, we may use an artifact association with one artifact participating, as the instance mc8 described in Table 7 and Figure 39. Its associated assembly feature association also has only one assembly feature. The kinematic relationship is captured by an instance rp1, which is an instance of RevolutePair and attached to the assembly feature association as shown in Figure 39. On the other hand, to position the sungear, parametric assembly constraints need to be assigned.

In this example, it is assumed that the sungear is positioned with respect to the output shaft. Since they are not directly connected, the classes specialized from Connection, which are used for artifacts physically connected, cannot be used to represent this relationship. Instead, the relative position and orientation between two artifacts that are not physically connected can be captured using the PositionOrientation class which is specialized from ArtifactAssociation (see po1 in Figure 39). The two artifacts in the above case do not have a direct contact, and thus the mating assembly features cannot be identified. This situation, however, may be handled by using assembly features representing the whole artifact, or dummy (null) features. In this example, we assume that the artifacts, as a whole, are the involved assembly features. They are named sunGearFeature:AF and outputShaftFeature:AF. An instance of assembly feature association representation incorporating the necessary parametric assembly constraints is shown in Figure 39.

Artifact associationsArtifactsAssembly featuresAssembly constraintsKinematic relationships
mc5Planet-gear 1
@Planet gear-carrier assembly
Gear teeth surface
(teeth7:AF)
NoneGear meshing
(gp1:GearPair)
SungearGear teeth surface
(teeth1:AF)
mc6Planet-gear 2
@Planet gear-carrier assembly
Gear teeth surface
(teeth9:AF)
NoneGear meshing
(gp2:GearPair)
SungearGear teeth surface
(teeth2:AF)
mc7Planet-gear 3
@Planet gear-carrier assembly
Gear teeth surface
(teeth11:AF)
NoneGear meshing
(gp3:GearPair)
SungearGear teeth surface
(teeth3:AF)
po1Output shaft
@Planet carrier assembly
@Planet gear-carrier assembly
Whole part
(outputShaftFeature:AF)
Coaxial
Parallel
Angle
with
dimension
N/A
SungearWhole part
(sunGearFeature: AF)
mc8SungearInput shaft surface
(inputShaft:AF)
NoneRelative rotation
(rp1:RevolutePair)

Table 7: Assembly Relationships Between Sungear and Planet Gear-Carrier Assembly

Figure 39: Sungear and Planet Gear-Carrier Assembly-Instance Diagram. This is a complex hierarchical diagram showing the relationships between various components of a gear assembly. At the top, 'mc5:MC' is associated with 'teeth1:AF' (via artifact association), ':AFA' (via feature association), and 'planetGear1:Part' (via artifact). 'teeth1:AF' is a feature of ':AFA', which is a representation of 'gp1:GearPair' (a kinematic pair). 'planetGear1:Part' is a part of 'planetGearCarrierAsm:Assembly'. Below this, 'mc6:MC' is associated with 'teeth2:AF', ':AFA', and 'planetGear2:Part'. 'teeth2:AF' is a feature of ':AFA', which is a representation of 'gp2:GearPair'. 'planetGear2:Part' is a part of 'planetGearCarrierAsm:Assembly'. Further down, 'mc7:MC' is associated with 'teeth3:AF', ':AFA', and 'planetGear3:Part'. 'teeth3:AF' is a feature of ':AFA', which is a representation of 'gp3:GearPair'. 'planetGear3:Part' is a part of 'planetGearCarrierAsm:Assembly'. At the bottom, 'po1:PositionOrientation' is associated with 'sunGearFeature:AF' (via artifact association), ':AFA' (via feature association), and 'outputShaft:Part' (via artifact). 'sunGearFeature:AF' is a feature of ':AFA', which is a representation of 'Parallel', 'Coaxial', and 'AngleWithDimension' (assembly constraints). 'outputShaft:Part' is a part of 'planetGearCarrierAsm:Assembly'. Finally, 'mc8:MC' is associated with 'inputShaft:AF' (via artifact association), ':AFA' (via feature association), and 'rp1:RevolutePair' (via artifact). 'inputShaft:AF' is a feature of ':AFA', which is a representation of 'rp1:RevolutePair' (a kinematic pair). 'rp1:RevolutePair' is a part of 'planetGearCarrierAsm:Assembly'. The central component, 'planetGearCarrierAsm:Assembly', is the root of the assembly, with all other parts and features connected to it through various associations.
Figure 39: Sungear and Planet Gear-Carrier Assembly-Instance Diagram. This is a complex hierarchical diagram showing the relationships between various components of a gear assembly. At the top, 'mc5:MC' is associated with 'teeth1:AF' (via artifact association), ':AFA' (via feature association), and 'planetGear1:Part' (via artifact). 'teeth1:AF' is a feature of ':AFA', which is a representation of 'gp1:GearPair' (a kinematic pair). 'planetGear1:Part' is a part of 'planetGearCarrierAsm:Assembly'. Below this, 'mc6:MC' is associated with 'teeth2:AF', ':AFA', and 'planetGear2:Part'. 'teeth2:AF' is a feature of ':AFA', which is a representation of 'gp2:GearPair'. 'planetGear2:Part' is a part of 'planetGearCarrierAsm:Assembly'. Further down, 'mc7:MC' is associated with 'teeth3:AF', ':AFA', and 'planetGear3:Part'. 'teeth3:AF' is a feature of ':AFA', which is a representation of 'gp3:GearPair'. 'planetGear3:Part' is a part of 'planetGearCarrierAsm:Assembly'. At the bottom, 'po1:PositionOrientation' is associated with 'sunGearFeature:AF' (via artifact association), ':AFA' (via feature association), and 'outputShaft:Part' (via artifact). 'sunGearFeature:AF' is a feature of ':AFA', which is a representation of 'Parallel', 'Coaxial', and 'AngleWithDimension' (assembly constraints). 'outputShaft:Part' is a part of 'planetGearCarrierAsm:Assembly'. Finally, 'mc8:MC' is associated with 'inputShaft:AF' (via artifact association), ':AFA' (via feature association), and 'rp1:RevolutePair' (via artifact). 'inputShaft:AF' is a feature of ':AFA', which is a representation of 'rp1:RevolutePair' (a kinematic pair). 'rp1:RevolutePair' is a part of 'planetGearCarrierAsm:Assembly'. The central component, 'planetGearCarrierAsm:Assembly', is the root of the assembly, with all other parts and features connected to it through various associations.

Figure 39: Sungear and Planet Gear-Carrier Assembly-Instance Diagram

Next, let us consider the planet gear-carrier assembly and ring gear assembly shown in Figure 40. The ring gear is meshed with the three planet gears of the planet gear-carrier assembly.

Figure 40: A 3D CAD model of a planet gear-carrier assembly. The assembly consists of a central input shaft (cyan) connected to a planet gear carrier (brown) which holds three planet gears (purple). The planet gears are meshed with a large ring gear (brown) which is part of the ring gear assembly. Labels with arrows point to the 'Planet Gear Carrier Assembly' and the 'Ring Gear Assembly'.
Figure 40: A 3D CAD model of a planet gear-carrier assembly. The assembly consists of a central input shaft (cyan) connected to a planet gear carrier (brown) which holds three planet gears (purple). The planet gears are meshed with a large ring gear (brown) which is part of the ring gear assembly. Labels with arrows point to the 'Planet Gear Carrier Assembly' and the 'Ring Gear Assembly'.

Figure 40: Ring Gear Assembly and Planet Gear-Carrier Assembly

The assembly relationships are shown in Table 8, and Figure 41 illustrates the instance diagram of the assembly. The artifact associations are very similar with those of the previous sungear and the planet gear-carrier assembly. As in the previous example, three artifact associations mc9, mc10, and mc11 are instances of MovableConnection, and gp4, gp5, and gp6 are instances of GearPair.

Artifact associationsArtifactsAssembly featuresAssembly constraintsKinematic relationships
mc9Planet-gear 1
@Planet gear-carrier assembly
Gear teeth surface
(teeth8:AF)
NoneGear meshing
(gp4:GearPair)
Ring gear
@Ring gear assembly
Gear teeth surface
(teeth4:AF)
mc10Planet-gear 2
@Planet gear-carrier assembly
Gear teeth surface
(teeth10:AF)
NoneGear meshing
(gp5:GearPair)
Ring gear
@Ring gear assembly
Gear teeth surface
(teeth5:AF)
mc11Planet-gear 3
@Planet gear-carrier assembly
Gear teeth surface
(teeth12:AF)
NoneGear meshing
(gp6:GearPair)
Ring gear
@Ring gear assembly
Gear teeth surface
(teeth6:AF)

Table 8: Assembly Relationships Between Ring Gear Assembly and Planet Gear-Carrier Assembly

43. Second, there is another fixed connection, fc10, which represents the fastening relationship by four screws. It involves six artifacts: output housing, ring gear, and four screws. In addition, it has four assembly feature associations, each of which relates the assembly features, as shown in Figure 43.

Artifact associationsArtifactsAssembly featuresAssembly constraintsKinematic relationships
fc10Ring-gear pin1
@Ring gear assembly
Inserted portion of pin surface (pinCylinder9:AF)Coaxial
Coaxial
Parallel
No relative motion
Ring-gear pin2
@Ring gear assembly
Inserted portion of pin surface (pinCylinder10:AF)
Output housing
@Output housing assembly
Two pin-hole surfaces (pinHole9~10:AF)
fc11Output housing
@Output housing assembly
Four through holes (thruHole1~4:AF)Coaxial
Angle with dimension
No relative motion
Ring gear
@Ring gear assembly
Four threaded holes (threadedHole1~4:AF)Parallel (for each screw)
Screw1 - Screw4Four thread shanks of screws (thread1~4:AF)

Table 9: Assembly Relationships Between Output Housing Assembly, Ring Gear Assembly, and Screws

Finally, consider the input housing and ring gear assembly shown in Figure 44. The input housing is assembled with the ring gear assembly. Four screws are used to fasten the input housing into the ring gear assembly

Figure 43: Output Housing Assembly, Ring Gear Assembly, and Screws-Instance Diagram. This is a complex hierarchical diagram showing the assembly structure. At the top, a ':Parallel' assembly constraint connects ':Coaxial' and ':AFAR' features. Below, various parts like 'outputHousingAsm:Asm', 'outputHousing:Part', 'ringGearPin1:Part', 'ringGear:Part', and 'ringGearAsm:Assembly' are shown. Features such as 'pinHole9:AF', 'pinHole10:AF', 'pinCylinder9:AF', 'pinCylinder10:AF', 'thruHole1:AF', 'thruHole2', 'thruHole3', 'thruHole4', 'threadedHole1:AF', 'threadedHole2', 'threadedHole3', 'threadedHole4', 'thread1:AF', 'thread2:AF', 'thread3:AF', 'thread4:AF' are linked to their respective parts. Assembly constraints like ':AngleWithDimension' and ':Coaxial' are used to define the relationships between these features. The diagram illustrates the hierarchical structure of the assembly, from individual features to the final assembly.
Figure 43: Output Housing Assembly, Ring Gear Assembly, and Screws-Instance Diagram. This is a complex hierarchical diagram showing the assembly structure. At the top, a ':Parallel' assembly constraint connects ':Coaxial' and ':AFAR' features. Below, various parts like 'outputHousingAsm:Asm', 'outputHousing:Part', 'ringGearPin1:Part', 'ringGear:Part', and 'ringGearAsm:Assembly' are shown. Features such as 'pinHole9:AF', 'pinHole10:AF', 'pinCylinder9:AF', 'pinCylinder10:AF', 'thruHole1:AF', 'thruHole2', 'thruHole3', 'thruHole4', 'threadedHole1:AF', 'threadedHole2', 'threadedHole3', 'threadedHole4', 'thread1:AF', 'thread2:AF', 'thread3:AF', 'thread4:AF' are linked to their respective parts. Assembly constraints like ':AngleWithDimension' and ':Coaxial' are used to define the relationships between these features. The diagram illustrates the hierarchical structure of the assembly, from individual features to the final assembly.

Figure 43: Output Housing Assembly, Ring Gear Assembly, and Screws-Instance Diagram

Figure 44: Input Housing, Ring Gear Assembly, and Screws. This image shows a 3D CAD model of the assembly. On the left, the individual components are shown: a yellow ring gear, a blue input housing, and four screws. An arrow points to the right, where the components are shown assembled into a single unit. The input housing is a blue rectangular block with a central circular opening and four mounting holes. The ring gear is a yellow cylindrical component with a central hub and an outer ring. The screws are used to secure the ring gear to the input housing.
Figure 44: Input Housing, Ring Gear Assembly, and Screws. This image shows a 3D CAD model of the assembly. On the left, the individual components are shown: a yellow ring gear, a blue input housing, and four screws. An arrow points to the right, where the components are shown assembled into a single unit. The input housing is a blue rectangular block with a central circular opening and four mounting holes. The ring gear is a yellow cylindrical component with a central hub and an outer ring. The screws are used to secure the ring gear to the input housing.

Figure 44: Input Housing, Ring Gear Assembly, and Screws

Table 10 lists the assembly relationships. Figure 45 shows the instance diagram. The fixed connection fc11 represents the assembly relationships between the input housing and the ring gear of the ring gear assembly. The assembly feature association attached to fc11 defines the parametric assembly constraints to position the input housing with respect to the ring gear. The fixed connection fc12 has a similar structure to that of fc10 as explained previously. It represents the fastening of the input housing and ring gear assembly by four screws.

Artifact associationsArtifactsAssembly featuresAssembly constraintsKinematic relationships
fc12Ring gear
@Ring gear assembly
Input-housing side of ring gear surface
(ringGearSide:AF)
Coaxial
Coaxial
Parallel
No relative motion
Input housingStepped side
(steppedSide:AF)
fc13Ring gear
@Ring gear assembly
Four threaded holes
(threadedHole1~4:AF)
Coaxial
Angle with dimension
Parallel
(for each screw)
No relative motion
Input housingFour through holes
(thruHole5~8:AF)
Screw5 – Screw8Four thread shanks of screws (thread5~6:AF)

Table 10: Assembly Relationships Between Input Housing, Ring Gear Assembly, and Screws

11.4. 4.4 Kinematic Information Representation

Figure 46 shows the kinematic diagram of the planetary gear system, where only the parts (kinematic links) involved in motion (or force) transmission are illustrated. The input motion is transmitted into the sungear through the input shaft that is part of the sungear. Three planet gears are meshed with the sungear, and with the fixed ring gear. The planet carrier assembly (i.e. output shaft + planet-gear pins) holds the three planet gears and rotates with the output shaft that is part of the planet carrier. The output shaft is connected with a bearing. For the input shaft, we assume that it is sustained by an unknown support (or ground).

Kinematic Diagram of Planetary Gear System. The diagram shows a cross-section of a planetary gear system. A central Sun Gear is meshed with three Planet Gears. The Planet Gears are mounted on a Planet Carrier. The Ring Gear is the outermost gear, meshed with the Planet Gears. The Input Shaft is connected to the Sun Gear, and the Output Shaft is connected to the Planet Carrier. The system is supported by bearings. Coordinate axes z1 and z4 are indicated.
Kinematic Diagram of Planetary Gear System. The diagram shows a cross-section of a planetary gear system. A central Sun Gear is meshed with three Planet Gears. The Planet Gears are mounted on a Planet Carrier. The Ring Gear is the outermost gear, meshed with the Planet Gears. The Input Shaft is connected to the Sun Gear, and the Output Shaft is connected to the Planet Carrier. The system is supported by bearings. Coordinate axes z1 and z4 are indicated.

Figure 46: Kinematic Diagram of Planetary Gear System

Table 11 shows the kinematic pairs and the associated parts that are identified from the planetary gear system. For convenience, numbers are used to distinguish the three planet gears and the kinematic pairs of the same type. As shown in Table 11, two types of kinematic pairs (GearPair and RevolutePair) are used in the planetary gear system.

Kinematic PairsAssociated Parts
Revolute Pair 1Unknown Support – Sun gear (Input Shaft)
Gear Pair 1Sun gear – Planet Gear 1
Gear Pair 2Sun gear – Planet Gear 2
Gear Pair 3Sun gear – Planet Gear 3
Gear Pair 4Planet Gear 1 – Ring Gear
Gear Pair 5Planet Gear 2 – Ring Gear
Gear Pair 6Planet Gear 3 – Ring Gear
Revolute Pair 2Planet Gear 1 – Planet Carrier
Revolute Pair 3Planet Gear 2 – Planet Carrier
Revolute Pair 4Planet Gear 3 – Planet Carrier
Revolute Pair 5Planet Carrier – Bearing

Table 11: Kinematic Pairs and Associated Parts (Links) of Planet Gear System

Before proceeding further with the foregoing example, we should first assign necessary frames to each link (part) of the gear system. In general, two coordinate systems, or frames, are needed to describe the kinematic behavior of any kinematic pair, each attached to a link of the pair. Considering that a binary link is associated with two kinematic pairs (one with the preceding link and the other with the following link), there are two frames associated with a link. If any link has more kinematic pairs than two, as many frames are necessary as the number of involved kinematic pairs.

The assignment of frames is actually arbitrary and depends on individual applications. In this example, assume that the necessary frames are assigned as shown in Figure 47. Figure 47(a) and (b) are depicted from positive z_1 and z_4 axes, respectively. Each view shows each of the two kinematic loops of the mechanism, and includes the links involved in each loop. Since the mechanisms in the planetary gear system are planar mechanisms, and the coordinate systems need not be attached directly to each link, the coordinate systems can be thought of as being on any one plane in this example.

Figure 47 (a) and (b): Coordinate Systems Assigned To Kinematic Pairs. The diagram shows two views of a planetary gear system. View (a) is from the positive z1 axis, showing a Support, Sun Gear, Planet Gear, and Ring Gear. View (b) is from the positive z4 axis, showing a Bearing, Planet Carrier, Planet Gear, and Ring Gear. Each component has a local coordinate system (x, y) and a velocity vector (v). The diagram also shows the kinematic loops and the assignment of frames to the kinematic pairs.

Figure 47 (a) and (b) illustrate the coordinate systems assigned to kinematic pairs in a planetary gear system. The diagram is divided into two main sections, (a) and (b), each showing a different view of the mechanism.

Section (a): View from positive z_1 axis.

  • Support: A fixed frame with axes x_1 and y_1.
  • Sun Gear: A frame with axes x_2 and y_2, and a velocity vector v_1.
  • Planet Gear: A frame with axes x_3 and y_3, and a velocity vector v_2.
  • Ring Gear: A frame with axes x_4 and y_4, and a velocity vector v_3.

Section (b): View from positive z_4 axis.

  • Bearing: A frame with axes x_5 and y_5, and a velocity vector v_4.
  • Planet Carrier: A frame with axes x_6 and y_6, and a velocity vector v_5.
  • Planet Gear: A frame with axes x_7 and y_7, and a velocity vector v_6.
  • Ring Gear: A frame with axes x_8 and y_8, and a velocity vector v_7.

The diagram also shows the kinematic loops and the assignment of frames to the kinematic pairs. The frames are labeled with x_i, y_i and the velocity vectors are labeled with v_i.

Figure 47 (a) and (b): Coordinate Systems Assigned To Kinematic Pairs. The diagram shows two views of a planetary gear system. View (a) is from the positive z1 axis, showing a Support, Sun Gear, Planet Gear, and Ring Gear. View (b) is from the positive z4 axis, showing a Bearing, Planet Carrier, Planet Gear, and Ring Gear. Each component has a local coordinate system (x, y) and a velocity vector (v). The diagram also shows the kinematic loops and the assignment of frames to the kinematic pairs.

Figure 47 (a), (b): Coordinate Systems Assigned To Kinematic Pairs

Table 12 shows the frames and the pair variables of each kinematic pair of the planetary gear system. The frame \{x_i, y_i, z_i\} is attached to the preceding link of the pair, and \{u_j, v_j, w_j\} to the following link. A pair variable is a variable parameter of the SU-parameters (see

Appendix A and Reference [18]) defining a kinematic pair. Except the pair variable, other parameters have fixed values. For a revolute pair, the pair variable is defined by the angle between x_i and u_i. In the case of a gear pair, the pair variable is given by the angle from x_i to a common perpendicular between the two frames involved. In Table 12, only one planet gear (Planet Gear 1) and its associated pairs are assigned the necessary coordinate systems for brevity as the three planetary gear are configured symmetrically in space and they play a similar role in the mechanism. The frames associated with the other planet gears are therefore not presented specifically and just denoted as ‘...’ in Table 12. In fact, they are not necessary for the analysis of the gear system due to the symmetry.

Kinematic PairsAssociated PartsFramesPair Variables
Revolute Pair 1Unknown Support – Sun gear (Input Shaft)\{x_1y_1z_1\} - \{u_1v_1w_1\}\theta_1
Gear Pair 1Sun gear – Planet Gear 1\{x_2y_2z_2\} - \{u_2v_2w_2\}\theta_2
Gear Pair 2Sun gear – Planet Gear 2......
Gear Pair 3Sun gear – Planet Gear 3......
Gear Pair 4Planet Gear 1 – Ring Gear\{x_3y_3z_3\} - \{u_3v_3w_3\}\theta_3
Gear Pair 5Planet Gear 2 – Ring Gear......
Gear Pair 6Planet Gear 3 – Ring Gear......
Revolute Pair 2Planet Carrier – Planet Gear 1\{x_5y_5z_5\} - \{u_5v_5w_5\}\theta_5
Revolute Pair 3Planet Carrier – Planet Gear 2......
Revolute Pair 4Planet Carrier – Planet Gear 3......
Revolute Pair 5Bearing – Planet Carrier\{x_4y_4z_4\} - \{u_4v_4w_4\}\theta_4

Table 12: Frames of Each Kinematic Pair

The total number of associated frames on a link depends on the type and usage of the link, as shown in Table 13. The frame \{u_i v_i w_i\} is related with the preceding pair of a link (in conjunction with the previous link), and \{x_j y_j z_j\} with the following pair (in conjunction with the following link). The unknown support and bearing in Table 13 contains only one frame \{x_i y_i z_i\}. These parts are assumed grounded (fixed) links. Hence, they have no associated links preceding them, and thus frame \{u_i v_i w_i\} is not necessary for them. The sun gear, ring gear, and planet carrier will in fact have more frames since they are connected to three planet gears. That is, they are quaternary links and will have four frames in all. However, their configuration in this example is symmetric and thus the frames of the other pairs are left out for brevity. In the case of the ring gear, there are three frames listed. The frame pair \{u_3 v_3 w_3\} and \{x_1 y_1 z_1\} is used in the first loop (Figure 47(a)), and frame pair \{u_3 v_3 w_3\} and \{x_4 y_4 z_4\} in the second loop (Figure 47(b)). The frames \{x_1y_1z_1\} and \{x_4y_4z_4\} represent the same ground frames to which the ring gear is fixed. The reason that two different frames are introduced is for convenience in assigning the frames. We can use the same frame for the ground, if necessary. The planet gears are ternary links. They are respectively connected to sungear, ring gear, and planet carrier, respectively. Thus, there exist three frames for a planet gear, as shown in Table 13.

PartsFrames
Unknown Support (Ground)\{x_1y_1z_1\}
Sungear\{u_1v_1w_1\}, \{x_2y_2z_2\}, \dots
Planet Gear 1 (2, or 3)\{u_2v_2w_2\}, \{u_5v_5w_5\}, \{x_3y_3z_3\}
Ring Gear\{u_3v_3w_3\}, \{x_1y_1z_1\}, \{x_4y_4z_4\}, \dots
Planet Carrier\{u_4v_4w_4\}, \{x_5y_5z_5\}, \dots
Bearing (Ground)\{x_4y_4z_4\}

Table 13: Frames Associated with Each Link (Part)

In the previous subsection 4.3.5, the kinematic pairs were illustrated in the instance diagrams of the planetary gear assembly. To demonstrate the kinematic relationships in more detail, another instance diagram is depicted in Figure 48. When the instances are of the same class, only the first occurrence of them is denoted with the class name. This diagram includes all the parts or assemblies, and other information that are related to the kinematics of the planetary gear system. Notice in Figure 48 that the three planet gear pins and the output shaft are attached by fixed connections (see Section 4.3.3). Thus they are considered to be one rigid body (we name it planet carrier) for the purpose of kinematic analysis in this section.

The first row in Figure 48 shows the individual parts or assemblies (instances of Part or Assembly) that take part in the kinematic relationship. Each part (or assembly) has its own assembly features that are defined to represent the shape aspects of the kinematic pairs. A cylinder/hole-type pair can be defined as assembly features for a revolute pair, and a teeth/teeth-type pair for a gear pair. For example, there are four assembly features for the sungear (ss: cylinder type; t1, t2, and t3: teeth type). The cylinder type is used to represent the revolute pair with the unknown support, and the three teeth types are respectively used to represent the gear pairs with the three planet gears around the sungear.

The assembly feature association captures the topological relationship of kinematic pairs

Figure 48: Instance Diagram of Planetary Gear System. This hierarchical diagram shows the relationships between various components of a planetary gear system. At the top is 'planetCarrier:Assembly'. Below it are 'sunGear:Part' and 'ringGear:part'. 'sunGear:Part' has features 'ss:ΔF', 't1', 't2', 't3', 't4', 't5', 't6'. 'ringGear:part' has features 't7', 't8', 't9', 't10', 't11', 't12'. 'planetCarrier:Assembly' has features 'planetGearPin1-3', 'outputShaft', 'bearing1', 'bearing2'. These features are associated with 'AFs' (Assembly Features) like 'ss:ΔF', 't1', 't2', 't3', 't4', 't5', 't6', 't7', 't8', 't9', 't10', 't11', 't12', 'ss:ΔF', 't1', 't2', 't3', 't4', 't5', 't6', 't7', 't8', 't9', 't10', 't11', 't12'. These AFs are then associated with 'AFARs' (Assembly Feature Association Representations) like 'ss:ΔF', 't1', 't2', 't3', 't4', 't5', 't6', 't7', 't8', 't9', 't10', 't11', 't12'. Finally, these AFARs are associated with 'kinematic pairs' like 'rp1:RevolutePair', 'gp1:GearPair', 'gp2', 'gp3', 'gp4', 'gp5', 'gp6', 'rp2:RevolutePair', 'rp3', 'rp4', 'rp5'. A legend at the bottom defines the abbreviations: ss:shaftShank, t:teeth, ph:pinhole, pc:pinCylinder, bs:bearingSeat, ir:innerRace, AF:Assembly Feature, AFA:Assembly Feature Association, AFAR:Assembly Feature Association Representation.

ss:shaftShank t:teeth ph:pinhole pc:pinCylinder bs:bearingSeat ir:innerRace
AF:Assembly Feature AFA:Assembly Feature Association AFAR:Assembly Feature Association Representation

Figure 48: Instance Diagram of Planetary Gear System. This hierarchical diagram shows the relationships between various components of a planetary gear system. At the top is 'planetCarrier:Assembly'. Below it are 'sunGear:Part' and 'ringGear:part'. 'sunGear:Part' has features 'ss:ΔF', 't1', 't2', 't3', 't4', 't5', 't6'. 'ringGear:part' has features 't7', 't8', 't9', 't10', 't11', 't12'. 'planetCarrier:Assembly' has features 'planetGearPin1-3', 'outputShaft', 'bearing1', 'bearing2'. These features are associated with 'AFs' (Assembly Features) like 'ss:ΔF', 't1', 't2', 't3', 't4', 't5', 't6', 't7', 't8', 't9', 't10', 't11', 't12', 'ss:ΔF', 't1', 't2', 't3', 't4', 't5', 't6', 't7', 't8', 't9', 't10', 't11', 't12'. These AFs are then associated with 'AFARs' (Assembly Feature Association Representations) like 'ss:ΔF', 't1', 't2', 't3', 't4', 't5', 't6', 't7', 't8', 't9', 't10', 't11', 't12'. Finally, these AFARs are associated with 'kinematic pairs' like 'rp1:RevolutePair', 'gp1:GearPair', 'gp2', 'gp3', 'gp4', 'gp5', 'gp6', 'rp2:RevolutePair', 'rp3', 'rp4', 'rp5'. A legend at the bottom defines the abbreviations: ss:shaftShank, t:teeth, ph:pinhole, pc:pinCylinder, bs:bearingSeat, ir:innerRace, AF:Assembly Feature, AFA:Assembly Feature Association, AFAR:Assembly Feature Association Representation.

Figure 48: Instance Diagram of Planetary Gear System

(AFAs in Figure 48). First, it associates two (or more when necessary) assembly features that take part in an assembly relationship (specifically, kinematic relationship). By consulting the ownership of an assembly feature, it can finally specify the links (parts) that take part in the relationship. For example, the second instance of assembly feature association in Figure 48 relates assembly features t1 and t7 to represent the gear-pair relationship between the sun gear and the mating planet gear (planetGear1). Second, it refers to an assembly feature association representation (AFAR in Figure 48), which describes the details of the relationship. In this kinematic example, the relationship to be represented is a kinematic pair (GearPair or RevolutePair). For instance, the second instance of assembly feature association in Figure 48 is associated with assembly feature association representation, by which the kinematic pair gp1:GearPair is associated (see Figure 48).

The kinematic pairs (instances of GearPair and RevolutePair in Figure 48) contain their specific kinematic information (constraints of the pair) to describe their own behavior. For example, the instance diagram about rp1:RevolutePair (unknown support – sun gear pair) in Figure 48 is illustrated in detail in Figure 49. An instance of RevolutePairRange specifies the lower and upper bounds of the rp1:RevolutePair. The current value of the pair variable \theta_1 is specified by an instance of RevolutePairValue. The two frames required for this revolute pair are provided by two instances of PairFrame. Typically, the pair variable \theta_1 is measured by the angle from x_1 to u_1, as shown in Figure 47(a).

Instance Diagram of RevolutePair (RP1: RevolutePair)
classDiagram
    class RP1_RevolutePair {
    }
    class RevolutePairRange {
        lower_bound = "no limit"
        upper_bound = "no limit"
    }
    class RevolutePairValue {
        rotation_angle = "θ1"
    }
    class PairFrame1 {
        frame = "{x1y1z1}"
    }
    class PairFrame2 {
        frame = "{u1v1w1}"
    }

    RP1_RevolutePair --> RevolutePairRange : allowable_range
    RP1_RevolutePair --> RevolutePairValue : current_configuration
    RP1_RevolutePair --> PairFrame1 : frame 1
    RP1_RevolutePair --> PairFrame2 : frame 2
  

The diagram shows an instance rp1:RevolutePair connected to four other instances. It has an allowable_range relationship with :RevolutePairRange (which has lower_bound = "no limit" and upper_bound = "no limit"). It has a current_configuration relationship with :RevolutePairValue (which has rotation_angle = "θ1"). It is associated with two frames: frame 1 (labeled :PairFrame with frame = "{x1y1z1}") and frame 2 (labeled :PairFrame with frame = "{u1v1w1}").

Instance Diagram of RevolutePair (RP1: RevolutePair)

Figure 49: Instance Diagram of RevolutePair (RP1: RevolutePair)

As another example, the instance diagram for gp1:GearPair is shown in Figure 50. The gp1:GearPair contains some key geometric information of the gears such as radii, gear ratio, bevel and helical angles (number 1 denotes the first link, and number 2 the second). Such information is necessary when deriving the kinematic equation of the gear pair. An instance of GearPairRange sets limits on the range of gears' rotation angle. The current rotation angle of the first gear is specified by \theta_2 of an instance of GearPairValue; the rotation angle of the second gear can be derived from the rotation angle of the first gear by multiplying it with the gear ratio.

Instance diagrams for the other kinematic pairs can also be drawn in a similar manner. As mentioned earlier, gp2 and gp3 will have the same structure as gp1 since they are symmetrically configured with gp1. The gear-pair instances gp4, gp5, and gp6 will also have similar instance diagram to that of gp1 (see Figure 50), except that they are internal gearing: their gear ratios are negative values. For other revolute pairs rp2, rp3, rp4, and rp5, instance diagram similar to that of rp1 (see Figure 49) can be depicted.

Instance Diagram of GearPair (GP1: GearPair)
classDiagram
    class GP1_GearPair {
        radius_1 = "0.438"
        radius_2 = "0.406"
        gear_ratio = "1.079"
        bevel_angle = "0"
        helical_angle = "0"
    }
    class GearPairRange {
        lower_bound_1 = "no limit"
        upper_bound_1 = "no limit"
    }
    class GearPairValue {
        rotation_angle_1 = "θ2"
    }
    class PairFrame1 {
        frame = "{x2y2z2}"
    }
    class PairFrame2 {
        frame = "{u2v2w2}"
    }

    GP1_GearPair --> GearPairRange : allowable_range
    GP1_GearPair --> GearPairValue : current_configuration
    GP1_GearPair --> PairFrame1 : frame 1
    GP1_GearPair --> PairFrame2 : frame 2
  

The diagram shows an instance gp1:GearPair with attributes: radius_1 = "0.438", radius_2 = "0.406", gear_ratio = "1.079", bevel_angle = "0", and helical_angle = "0". It is connected to :GearPairRange (with lower_bound_1 = "no limit" and upper_bound_1 = "no limit") via allowable_range, and to :GearPairValue (with rotation_angle_1 = "θ2") via current_configuration. It is also associated with frame 1 (labeled :PairFrame with frame = "{x2y2z2}") and frame 2 (labeled :PairFrame with frame = "{u2v2w2}").

Instance Diagram of GearPair (GP1: GearPair)

Figure 50: Instance Diagram of GearPair (GP1: GearPair)

11.5. 4.5 Tolerance Chains In The Planetary Gear System Design

Tolerance chains are important in a product assembly. The chains are used in the analysis for assembleability and functions such as clearance, tightness, smooth motion, and flow rate. This subsection describes the modeling of tolerance chains. Two specific tolerance chains are found in the planetary gear system assembly. The first one is in the axial direction. Three tolerances are in this chain. They are all defined on the part of the sungear and the input shaft. This chain of the tolerances determines the magnitude of clearance or interference between the Surface B of the sungear and the Surface A on the planetary gear holder, as shown in Figure 51. (Note that Surface B is the end surface of the sungear). Figure 52 shows the chain of the three dimensions and the associated tolerances: 12.95 \text{ mm} \pm 0.01 \text{ mm} on the sungear, 13.59 \text{ mm} \pm 0.03 \text{ mm} on the shank, and 10.8 \text{ mm} \pm 0.1 \text{ mm} on the connector. The total allowable variation of the sungear's length is, therefore, 0.14 \text{ mm}. These three dimensional tolerances can be represented using objects derived from the DimensionalTolerance class described in Section 3.11. Note that not all the dimensions of this part are shown in Figure 52. Only those dimensions related to the tolerance chain are shown.

Exploded view diagram of a planetary gear assembly showing the relationship between the sungear and the planetary gear holder.

The diagram shows an exploded view of a planetary gear assembly. On the left is a blue cylindrical component labeled 'Surface A' with two blue pins extending from its center. In the middle is a tan-colored ring-like component labeled 'Surface B' with four mounting holes. To the right of the ring are two purple cylindrical pins and an orange cylindrical component. Arrows point from the labels 'Surface A' and 'Surface B' to their respective parts.

Exploded view diagram of a planetary gear assembly showing the relationship between the sungear and the planetary gear holder.

Figure 51: The assembly relationship between the sungear and the planetary gear holder

Figure 52 shows an engineering drawing of the sungear. The tolerance instance diagram (Figure 53) shows how the tolerances are represented using UML as discussed in Section 3.11. Figure 53 shows an integrated view of the part, its tolerances, and the assembly features.

In addition to dimensional tolerances, geometric tolerances are also used to control three features of this part. The end surface (Surface B) has two tolerances: a perpendicularity tolerance and a flatness tolerance. Both are for the control of geometric variation of Surface B. The perpendicularity tolerance is used to control the wobbling motion of the surface while the gear is rotating around the datum axis (Datum A1). The flatness tolerance is used to control the proper clearance between Surface B and Surface A on the planetary gear holder. A cylindricity tolerance is applied to the surface of the shank. It is used to control the form variation of the surface. These three tolerances are form tolerances. A fourth tolerance is the coaxiality tolerance. The coaxiality of the connector is controlled by a position tolerance. The detail of coaxiality tolerancing can be found in the dimensioning and tolerancing standard [19]. The three form tolerances are instances of PerpendicularityTolerance, FlatnessTolerance, and CylindricityTolerance classes respectively, described in Section 3.11.1. The position tolerance is an instance of the PositionTolerance class described in Section 3.11.3.

Figure 52: Sun gear tolerances. The figure shows a technical drawing of a sun gear with various dimensions and tolerances. The top view shows a circular gear with a central hole. Dimensions include diameters: <math>\varnothing 15.85-15.90</math>, <math>\varnothing 12.7</math>, and <math>\varnothing 22.23 \pm 0.03</math>. A feature control frame points to the central hole with a position tolerance <math>\varnothing 0.05 \text{ (M)} \text{ (A1)}</math>. The side view shows the gear's profile with dimensions: <math>12.95 \pm 0.01</math>, <math>13.59 \pm 0.03</math>, and <math>10.8 \pm 0.1</math>. Feature control frames indicate a perpendicularity tolerance <math>\perp 0.1</math> on the outer cylindrical surface, a flatness tolerance <math>\text{F} 0.05</math> on the top surface, and a cylindricity tolerance <math>\text{C} 0.05 \text{ (A1)}</math> on the shank. A 3D isometric view of the gear is shown to the right.
Figure 52: Sun gear tolerances. The figure shows a technical drawing of a sun gear with various dimensions and tolerances. The top view shows a circular gear with a central hole. Dimensions include diameters: \varnothing 15.85-15.90, \varnothing 12.7, and \varnothing 22.23 \pm 0.03. A feature control frame points to the central hole with a position tolerance \varnothing 0.05 \text{ (M)} \text{ (A1)}. The side view shows the gear's profile with dimensions: 12.95 \pm 0.01, 13.59 \pm 0.03, and 10.8 \pm 0.1. Feature control frames indicate a perpendicularity tolerance \perp 0.1 on the outer cylindrical surface, a flatness tolerance \text{F} 0.05 on the top surface, and a cylindricity tolerance \text{C} 0.05 \text{ (A1)} on the shank. A 3D isometric view of the gear is shown to the right.

Figure 52: Sun gear Tolerances

UML Tolerance Instance Diagram showing relationships between features and tolerances.
classDiagram
    class endSurface1_OF["endSurface1:OF"]
    class perpTol1_PerpendicularityTolerance["perpTol1:PerpendicularityTolerance"]
    class datumAxis1_Datum["datumAxis1:Datum"]
    class flatTol1_FlatnessTolerance["flatTol1:FlatnessTolerance"]
    class shank_OF["shank:OF"]
    class cylTol1_CylindricityTolerance["cylTol1:CylindricityTolerance"]
    class inputShaft_OF["inputShaft:OF"]
    class posTol_PositionTolerance["posTol:PositionTolerance"]

    endSurface1_OF -- perpTol1_PerpendicularityTolerance : tolerated by
    endSurface1_OF -- flatTol1_FlatnessTolerance : tolerated by
    shank_OF -- cylTol1_CylindricityTolerance : tolerated by
    inputShaft_OF -- posTol_PositionTolerance
    perpTol1_PerpendicularityTolerance -- datumAxis1_Datum : reference to
    posTol_PositionTolerance -- datumAxis1_Datum : reference to

    class perpTol1_PerpendicularityTolerance {
        tolerance_zone = "0.05"
        ...
    }
    class datumAxis1_Datum {
        name = "A1"
        type = "axis"
    }
    class flatTol1_FlatnessTolerance {
        tolerance_zone = "0.05"
    }
    class cylTol1_CylindricityTolerance {
        tolerance_zone = "0.1"
    }
    class posTol_PositionTolerance {
        tolerance_zone = "0.05"
        MC = "MMC"
        ...
    }

OF: OAMFeature
MMC: maximum material condition
MC: Material Condition

UML Tolerance Instance Diagram showing relationships between features and tolerances.

Figure 53: Tolerance Instance Diagram

The second tolerance chain is in the radial direction of the planetary gear system. This chain includes three parts: the sun gear, the planetary gears, and the ring gear. This chain starts from the axis of the sun gear. The pitch diameter of the gear is 22.23 \text{ mm} \pm 0.03 \text{ mm}, as shown in Figure 52.

The second set next to the sun gear in the tolerance chain is the set of three planetary gears. Figure 56 shows the engineering drawing of a planetary gear. The tolerance instance diagram (Figure 55) shows how the tolerances are represented using UML. Figure 57 shows an integrated view of the part, its tolerances, and the assembly features. Table 14 tabulates the features, tolerances, and control frames with the artifact association.

Figure 54: Sungear Part Instance Diagram. This is a hierarchical diagram showing the structure of a 'sunGear:Part' artifact. The artifact has four features: 'axis1:DatumFeature' (datum feature), 'endSurface1:OF' (feature), 'inputShaft:AF' (feature), and 'shanks:OF' (feature). 'axis1:DatumFeature' is associated with 'datumAxis1:Datum' (datum). 'endSurface1:OF' has three tolerances: 'perpTol1:PerpendicularityTolerance' (tolerance), 'flatTol1:FlatnessTolerance' (tolerance), and 'dimTol1:DimensionalTolerance' (tolerance). 'inputShaft:AF' has two tolerances: 'posTol1:PositionTolerance' (tolerance) and 'dimTol5:DimensionalTolerance' (tolerance). 'shanks:OF' has four tolerances: 'dimTol2:DimensionalTolerance' (tolerance), 'cylTol1:CylindricityTolerance' (tolerance), 'dimTol3:DimensionalTolerance' (tolerance), and 'dimTol4:DimensionalTolerance' (tolerance). 'datumAxis1:Datum' is associated with 'datum'.
Figure 54: Sungear Part Instance Diagram. This is a hierarchical diagram showing the structure of a 'sunGear:Part' artifact. The artifact has four features: 'axis1:DatumFeature' (datum feature), 'endSurface1:OF' (feature), 'inputShaft:AF' (feature), and 'shanks:OF' (feature). 'axis1:DatumFeature' is associated with 'datumAxis1:Datum' (datum). 'endSurface1:OF' has three tolerances: 'perpTol1:PerpendicularityTolerance' (tolerance), 'flatTol1:FlatnessTolerance' (tolerance), and 'dimTol1:DimensionalTolerance' (tolerance). 'inputShaft:AF' has two tolerances: 'posTol1:PositionTolerance' (tolerance) and 'dimTol5:DimensionalTolerance' (tolerance). 'shanks:OF' has four tolerances: 'dimTol2:DimensionalTolerance' (tolerance), 'cylTol1:CylindricityTolerance' (tolerance), 'dimTol3:DimensionalTolerance' (tolerance), and 'dimTol4:DimensionalTolerance' (tolerance). 'datumAxis1:Datum' is associated with 'datum'.

Figure 54 Sungear Part Instance Diagram

The pitch diameter of the planetary gear is 10.16 \text{ mm} \pm 0.01 \text{ mm}. The planetary gears have the same tolerance and are assembled with the sungear in the radial direction. There is a form tolerance applied to the planetary gear. A cylindricity tolerance of 0.02 \text{ mm} controls the inner cylindrical surface of the gear. It is used to ensure a tight fit of the gear and the pin, as shown in Figure 51.

FeaturesTolerancesFeature Control Frames
or dimensional tolerance
Artifact
Association
Axis (Datum A1)
(axis1:DatumFeature)
NoneNoneNone
End surface
(endSurface:OF)
Perpendicularity
tolerance
Feature control frame for perpendicularity: a square symbol, 0.05, and datum A1.
(perpTol:PerpendicularityTolerance)
None
Flatness
tolerance
Feature control frame for flatness: a parallelogram symbol and 0.05.
(flatTol:FlatnessTolerance)
Dimensional
tolerance
(\phi 22.23) \pm 0.03
(dimTol1:DimensionalTolerance)
sungear teeth
(sunGearTeeth:OF)
Dimensional
tolerance
(12.95) \pm 0.01
(dimTol2:DimensionalTolerance)
None
Shank
(shank:OF)
Cylindricity
tolerance
Feature control frame for cylindricity: a circle with a diagonal line symbol and 0.1.
(cylTol1:CylindricityTolerance)
None
Dimensional tolerance(13.59) \pm 0.03
(dimTol3:DimensionalTolerance)
Dimensional tolerance\phi 15.85 \sim \phi 15.90
(dimTol4:DimensionalTolerance)
Input shaft*
(inputShaft:AF)
Position tolerancePosition tolerance symbol: a circle with a crosshair 0.05 (M) A1 (M)
(posTol1:PositionTolerance)
mc8
Dimensional tolerance(10.80) \pm 0.10
(dimTol5:DimensionalTolerance)

Table 14: Tolerance Table For The Sungear

(The features postfixed with * are the assembly features that have been used to represent the assembly relationships in previous sections. Their associated artifacts are also shown in the table.)

Tolerance Instance Diagram showing a box labeled 'pinHole6:AF' connected by a line labeled 'toleranced_by' to a box containing 'cylTol2:CylindricityTolerance' and 'tolerance_zone = "0.02"'.
graph LR
    A["pinHole6:AF"] -- toleranced_by --> B["cylTol2:CylindricityTolerance
tolerance_zone = "0.02"
..."]
Tolerance Instance Diagram showing a box labeled 'pinHole6:AF' connected by a line labeled 'toleranced_by' to a box containing 'cylTol2:CylindricityTolerance' and 'tolerance_zone = "0.02"'.

Figure 55: Tolerance Instance Diagram

Figure 56: Planetary Gear Tolerances. The diagram shows a cross-section of a planetary gear set with two concentric circles. The inner circle is labeled with a diameter of 10.16 ± 0.01. The outer circle is labeled with a diameter of 4.9 ± 0.01 and a surface texture symbol (a square with a diagonal line and the number 0.02). Below the cross-section is a side view of the gear set, showing the meshing of the gears. The side view is labeled with a height of 12.7 ± 0.1.
Figure 56: Planetary Gear Tolerances. The diagram shows a cross-section of a planetary gear set with two concentric circles. The inner circle is labeled with a diameter of 10.16 ± 0.01. The outer circle is labeled with a diameter of 4.9 ± 0.01 and a surface texture symbol (a square with a diagonal line and the number 0.02). Below the cross-section is a side view of the gear set, showing the meshing of the gears. The side view is labeled with a height of 12.7 ± 0.1.

Figure 56: Planetary Gear Tolerances

Figure 57: Planetary Gear Part Instance Diagram. This UML diagram shows the hierarchical structure of a planetary gear part. The root node is 'planetGear1:Part'. It has two children: 'pinHole6:AF' (connected via 'feature' and 'artifact' labels) and 'gearCylinder1:OF' (connected via 'feature' and 'artifact' labels). 'pinHole6:AF' has two children: 'cylTol2:' (connected via 'tolerance') and 'dimTol6:' (connected via 'tolerance'). 'gearCylinder1:OF' has two children: 'dimTol7:' (connected via 'tolerance') and 'dimTol8:' (connected via 'tolerance'). Each of these four nodes has a corresponding tolerance instance box below it: 'CylindricityTolerance' for cylTol2:, 'DimensionalTolerance' for dimTol6:, 'DimensionalTolerance' for dimTol7:, and 'DimensionalTolerance' for dimTol8:.
Figure 57: Planetary Gear Part Instance Diagram. This UML diagram shows the hierarchical structure of a planetary gear part. The root node is 'planetGear1:Part'. It has two children: 'pinHole6:AF' (connected via 'feature' and 'artifact' labels) and 'gearCylinder1:OF' (connected via 'feature' and 'artifact' labels). 'pinHole6:AF' has two children: 'cylTol2:' (connected via 'tolerance') and 'dimTol6:' (connected via 'tolerance'). 'gearCylinder1:OF' has two children: 'dimTol7:' (connected via 'tolerance') and 'dimTol8:' (connected via 'tolerance'). Each of these four nodes has a corresponding tolerance instance box below it: 'CylindricityTolerance' for cylTol2:, 'DimensionalTolerance' for dimTol6:, 'DimensionalTolerance' for dimTol7:, and 'DimensionalTolerance' for dimTol8:.

Figure 57: Planetary Gear Part Instance Diagram

FeaturesTolerancesFeature Control FramesArtifact Association
Gear journal hole surfaces*
(pinHole6:AF)
Cylindricity toleranceFeature control frame for cylTol2: showing a cylindricity symbol and a tolerance of 0.02.
(cylTol2:CylindricityTolerance)
mc1~3
Dimensional tolerance(\phi 4.90) \pm 0.01
(dimTol6:DimensionalTolerance)
Gear cylinder
(gearCylinder1:OF)
Dimensional tolerance(12.70) \pm 0.10
(dimTol7:DimensionalTolerance)
None
Dimensional tolerance(\phi 10.16) \pm 0.01
(dimTol8:DimensionalTolerance)

(Planet gears 2, 3 also have similar tolerances to those of planet gear 1.)

Table 15: Tolerance Table For A Planetary Gear

The third part in the chain is the ring gear, which is assembled with the planetary gears. The pitch diameter of the ring gear is 42.62 mm \pm 0.01 mm. Figure 58 shows the engineering design of the ring gear. The tolerance instance diagram (Figure 59) shows how the tolerances are represented using the UML model discussed in Section 3.11.

Figure 60 shows an integrated view of the part, its tolerances, and the assembly features. Table 16 tabulates the features, tolerances, and control frames with the artifact association.

With the dimensional tolerance on the pitch circle of a planetary gear shown in Figure 56 and the dimensional tolerance on the pitch diameter of the sun gear, tolerance analysis can be performed in this chain. Examples are clearance or interference of this set of gears. In addition to dimensional tolerances, there is a geometric tolerance on the part. A parallelism tolerance is applied to a surface of the shape of a ring where the ring gear and the output housing meet. Within a tolerance of 0.05 mm, the surface has to be parallel to Datum A3, which is established from the bottom surface of the ring gear. The bottom surface meets with the input housing. This tolerance is to ensure that in the input housing, the ring gear and the output housing are properly aligned along the rotating axes of the gears.

Figure 58: Ring Gear Tolerances. This figure contains three technical drawings of a ring gear. The top-left drawing is a front view showing a circular ring with six bolt holes. It includes a dimension line for the outer diameter labeled '2X Ø 3.3 ± 0.05' and a parallelism tolerance symbol pointing to the inner bore surface, specifying '0.05 | A3'. The top-right drawing is a perspective view of the ring gear. The bottom drawing is a side view showing the ring gear's profile, with a vertical dimension line indicating a height of '6.35'. Datum A3 is indicated by a feature control symbol pointing to the bottom surface of the ring gear in the side view.
Figure 58: Ring Gear Tolerances. This figure contains three technical drawings of a ring gear. The top-left drawing is a front view showing a circular ring with six bolt holes. It includes a dimension line for the outer diameter labeled '2X Ø 3.3 ± 0.05' and a parallelism tolerance symbol pointing to the inner bore surface, specifying '0.05 | A3'. The top-right drawing is a perspective view of the ring gear. The bottom drawing is a side view showing the ring gear's profile, with a vertical dimension line indicating a height of '6.35'. Datum A3 is indicated by a feature control symbol pointing to the bottom surface of the ring gear in the side view.

Figure 58: Ring Gear Tolerances

Figure 59: Tolerance Instance Diagram. This diagram shows the relationships between a tolerance instance, its target, and its datum. A box on the left labeled 'rimSurface:OF' is connected to a central box labeled 'prlTol:ParallelismTolerance' by a line labeled 'toleranced_by'. The central box also contains the text 'tolerance_zone = "0.05"'. The central box is connected to a box on the right labeled 'datumPlane1:Datum' by a line labeled 'reference_to'. The right box contains the text 'name = "A3"' and 'type = "plane"'.
graph LR
    A["rimSurface:OF"] -- toleranced_by --> B["prlTol:ParallelismTolerance
tolerance_zone = \"0.05\""] B -- reference_to --> C["datumPlane1:Datum
name = \"A3\"
type = \"plane\""]
Figure 59: Tolerance Instance Diagram. This diagram shows the relationships between a tolerance instance, its target, and its datum. A box on the left labeled 'rimSurface:OF' is connected to a central box labeled 'prlTol:ParallelismTolerance' by a line labeled 'toleranced_by'. The central box also contains the text 'tolerance_zone = "0.05"'. The central box is connected to a box on the right labeled 'datumPlane1:Datum' by a line labeled 'reference_to'. The right box contains the text 'name = "A3"' and 'type = "plane"'.

Figure 59: Tolerance Instance Diagram

The chain starts from the axis of the planetary gear system, the same as the axis of the sun gear. The radius of the sun gear is 11.125 mm and the radial tolerance is, therefore, \pm 0.015 mm. The diameter of a planetary gear is 10.16 mm, and its dimensional tolerance is \pm 0.01 mm. In the case that both gears are first assembled together, the combined nominal dimension is 21.285 mm (11.125 mm + 10.16 mm), and the combined tolerance is \pm 0.025 mm (0.015 mm + 0.01 mm). The nominal radius of the ring gear is 21.31 mm, and the radial tolerance is \pm 0.01 mm.

When all three types of gears are assembled, they can be in an extreme tight situation, an extreme loose situation, or any situation in between. In the extreme tight situation, the ring gear radius will be 21.30 mm (21.31 mm – 0.01 mm), and the stack-up is 21.31 mm (21.285 mm + 0.025 mm). In this case, the interference is 0.01 mm. However, in the extreme loose situation, the ring gear radius will be 21.32 mm (21.31 mm + 0.01 mm), and the stack-up will be 21.26 mm (21.285 mm – 0.025 mm). There will be a 0.055 mm clearance among these three kinds of gears.

Figure 60: Ring gear part instance diagram. This is a hierarchical tree diagram showing the structure of a ring gear part. At the top is 'plane1:DatumFeature', which is a 'datum feature' of 'ringGear:Part'. 'ringGear:Part' is an 'artifact' and has four 'feature' children: 'rimSurface:OF', 'gearTeethHole:OF', 'pinHole1:AF', and 'pinHole2:AF'. 'rimSurface:OF' has a 'tolerance' child 'prlTol1: ParallelismTolerance', which in turn has a 'datum' child 'datumPlane1:Datum'. 'gearTeethHole:OF' has a 'tolerance' child 'dimTol9: DimensionalTolerance'. 'pinHole1:AF' has a 'tolerance' child 'dimTol10: DimensionalTolerance'. 'pinHole2:AF' also has a 'tolerance' child 'dimTol10: DimensionalTolerance'.
Figure 60: Ring gear part instance diagram. This is a hierarchical tree diagram showing the structure of a ring gear part. At the top is 'plane1:DatumFeature', which is a 'datum feature' of 'ringGear:Part'. 'ringGear:Part' is an 'artifact' and has four 'feature' children: 'rimSurface:OF', 'gearTeethHole:OF', 'pinHole1:AF', and 'pinHole2:AF'. 'rimSurface:OF' has a 'tolerance' child 'prlTol1: ParallelismTolerance', which in turn has a 'datum' child 'datumPlane1:Datum'. 'gearTeethHole:OF' has a 'tolerance' child 'dimTol9: DimensionalTolerance'. 'pinHole1:AF' has a 'tolerance' child 'dimTol10: DimensionalTolerance'. 'pinHole2:AF' also has a 'tolerance' child 'dimTol10: DimensionalTolerance'.

Figure 60: Ring gear part instance diagram

FeaturesTolerancesFeature Control FramesArtifact Association
Plane (Datum A3)
(plane1:DatumFeature)
NoneNoneNone
Outer rim surface of boss
(rimSurface:OF)
Parallelism tolerance
0.05A3

(prlTol1:ParallelismTolerance)
None
Inner gear teeth hole
(gearTeethHole:OF)
Dimensional tolerance(\phi 42.62) \pm 0.01
(dimTol9:DimensionalTolerance)
None
Two pinhole surfaces*
(pinHole1~2: AF)
Dimensional tolerance(\phi 3.30) \pm 0.05
(dimTol10:DimensionalTolerance)
fc5, fc6

Table 16: Tolerance table for the ring gear

11.6. 4.6 Geometric Tolerances In The Planetary Gear System Design

This section describes geometric tolerances in the design. The geometric tolerances are on the three parts: the planetary gear holder, the output housing, and the input housing. Figure 62, Figure 65, and Figure 68 show the drawings of these three parts. Note that not all the dimensions are shown in the drawings. The shown dimensions are primarily applied to assembly and tolerances. Others are shown for showing the proportion of a feature relative to the entire part. Figure 62 shows the engineering drawing of the planetary gear holder. The tolerance instance diagram (Figure 63) shows how the tolerances are represented using the UML model discussed in Section 3.11. Figure 64 shows an integrated view of the part, its tolerances, and the assembly features. Table 17 tabulates the features, tolerances, and control frames with the artifact association.

All the dimensions in this design are with a default tolerance of 0.05 mm, represented by objects derived from the dimensional tolerance class. Datum axis A is the rotating axis and can be presented using an object derived from the Datum class defined in Section 3.11. In addition to the datum, three geometric tolerances exist on the drawing. Two geometric tolerances are applied to the end surface adjacent to planetary gears. Since the surface provides support to hold gears, both the instances of PerpendicularityTolerance and FlatnessTolerance are applied. The perpendicular tolerance makes a reference to Datum A. The third tolerance is an instance of TotalRunoutTolerance. It is applied to the output shaft with the tolerance value of 0.1 mm. The runout is with respect to Datum A, the shaft/gear axis, to minimize wobbling motion while the shaft is rotating. A surface profile tolerance is applied to the curved surface of the key way. It is used to ensure the key and the shaft that are tightly fit together.

Figure 65 shows the engineering drawing of the input housing. Figure 66 is the tolerance instance diagram, which shows how the tolerances are represented using the UML model discussed in Section 3.11. Figure 67 shows an integrated view of the part, its tolerances, and the assembly features. Table 18 tabulates the features, tolerances, and control frames with the artifact association.

The dimension of the 25.53 mm hole has a statistical tolerance. The statistical tolerance can be represented by an object instantiated from the StatisticalControl class in Section 3.11. The mean and standard deviation can be captured using the class described in Section 3.11.6. The variation of the diameter of the counter-bored hole is also statistically controlled, but the depth of the hole is not because it is not a critical dimension. Datum A to be established from the bottom surface is shown in the front view. Datums B and C are shown in the bottom view of the input housing. One position tolerance is applied to a pattern of four holes, each with a counter-bored hole. The position is measured in a reference to a coordinate system established by Datums A, B, and C. The tolerance is in the condition of the regardless of feature size. Another position tolerance is similarly applied to another pattern of four 5.39 mm holes. The positions of these holes are critical in assembly because the input housing and the ring gear have to be properly aligned and, then, assembled

A diagram showing geometric tolerances for a planetary gear system. It lists four features: Sun gear Radius, Planetary Gear Nominal Diameter, Sun gear and Planetary Gear, and Ring Gear Nominal Radius. Each feature has a green tolerance bar and a numerical tolerance value with a feature control symbol.

Planetary gear system
Rotational

FeatureTolerance ValueFeature Control Symbol
Sun gear Radius11.125 \pm 0.015 \text{ mm}Position (M)
Planetary Gear Nominal Diameter10.16 \pm 0.01 \text{ mm}Position (M)
Sun gear and Planetary Gear21.285 \pm 0.025 \text{ mm}Position (M)
Ring Gear Nominal Radius21.31 \pm 0.01 \text{ mm}Position (M)
A diagram showing geometric tolerances for a planetary gear system. It lists four features: Sun gear Radius, Planetary Gear Nominal Diameter, Sun gear and Planetary Gear, and Ring Gear Nominal Radius. Each feature has a green tolerance bar and a numerical tolerance value with a feature control symbol.

Figure 61: Geometric Tolerances In The Planetary Gear System Design

Figure 62: Planetary Gear Holder Tolerances. This figure contains four technical drawings of a planetary gear holder. The top-left drawing is a top view showing three holes with a diameter of 4.76, spaced equally on a 31.75 B.C. for a 4.76 pin. The top-right drawing is a perspective view of the gear holder. The bottom-left drawing is a side view showing dimensions 49.2, 29.49, and 12.7, with a hole diameter of 12.7. The bottom-right drawing is a front view showing dimensions 1.96, 9.58, 21.59, and 40.34, with a hole diameter of 12.7. Various tolerance zones are indicated by arrows and labels like 'A', '0.1 A', '0.03 A', '0.06', '0.1', and '0.02'.
Figure 62: Planetary Gear Holder Tolerances. This figure contains four technical drawings of a planetary gear holder. The top-left drawing is a top view showing three holes with a diameter of 4.76, spaced equally on a 31.75 B.C. for a 4.76 pin. The top-right drawing is a perspective view of the gear holder. The bottom-left drawing is a side view showing dimensions 49.2, 29.49, and 12.7, with a hole diameter of 12.7. The bottom-right drawing is a front view showing dimensions 1.96, 9.58, 21.59, and 40.34, with a hole diameter of 12.7. Various tolerance zones are indicated by arrows and labels like 'A', '0.1 A', '0.03 A', '0.06', '0.1', and '0.02'.

Figure 62: Planetary Gear Holder Tolerances

Figure 63: Tolerance Instance Diagram. This diagram shows the relationships between various tolerance instances and their target features. The 'endSurface2:OF' feature is tolerated by 'perpTol2:PerpendicularityTolerance' (tolerance_zone = '0.03') and 'flatTol2:FlatnessTolerance' (tolerance_zone = '0.06'). The 'outputShaftShank:OF' feature is tolerated by 'totRunTol1:TotalRunoutTolerance' (tolerance_zone = '0.1'). The 'keyway:OF' feature is tolerated by 'profSurfTol1:ProfileSurfaceTolerance' (tolerance_zone = '0.1'). All three tolerance instances reference the 'datumAxis2:Datum' feature, which has a name of 'A' and a type of 'axis'.
graph LR
    endSurface2[endSurface2:OF] -- tolerated_by --> perpTol2[perpTol2:PerpendicularityTolerance
tolerance_zone = "0.03"
...] endSurface2 -- tolerated_by --> flatTol2[flatTol2:FlatnessTolerance
tolerance_zone = "0.06"
...] outputShaftShank[outputShaftShank:OF] -- tolerated_by --> totRunTol1[totRunTol1:TotalRunoutTolerance
tolerance_zone = "0.1"
...] keyway[keyway:OF] -- tolerated_by --> profSurfTol1[profSurfTol1:ProfileSurfaceTolerance
tolerance_zone = "0.1"
...] perpTol2 -- reference_to --> datumAxis2[datumAxis2:Datum
name = "A"
type = "axis"] totRunTol1 -- reference_to --> datumAxis2 profSurfTol1 -- reference_to --> datumAxis2
Figure 63: Tolerance Instance Diagram. This diagram shows the relationships between various tolerance instances and their target features. The 'endSurface2:OF' feature is tolerated by 'perpTol2:PerpendicularityTolerance' (tolerance_zone = '0.03') and 'flatTol2:FlatnessTolerance' (tolerance_zone = '0.06'). The 'outputShaftShank:OF' feature is tolerated by 'totRunTol1:TotalRunoutTolerance' (tolerance_zone = '0.1'). The 'keyway:OF' feature is tolerated by 'profSurfTol1:ProfileSurfaceTolerance' (tolerance_zone = '0.1'). All three tolerance instances reference the 'datumAxis2:Datum' feature, which has a name of 'A' and a type of 'axis'.

Figure 63: Tolerance Instance Diagram

Figure 64: Planetary Gear Holder Part Instance Diagram. This is a hierarchical tree diagram showing the relationships between various features and tolerances of a planetary gear holder part. The root node is 'outputShaft:Part'. It has three children: 'axis2:DatumFeature' (labeled 'datum feature'), 'endSurface2:OF' (labeled 'feature'), and 'keyway:OF' (labeled 'feature'). 'axis2:DatumFeature' has a child 'datumAxis2:Datum' (labeled 'datum'). 'endSurface2:OF' has two children: 'flatTol2: FlatnessTolerance' (labeled 'tolerance') and 'perpTol2: PerpendicularityTolerance' (labeled 'tolerance'). 'keyway:OF' has a child 'profSurfTol1: ProfileSurfaceTolerance' (labeled 'tolerance'). 'outputShaft:Part' also has two children: 'outputShaftShank:OF' (labeled 'feature') and 'totRunTol1: TotalRunoutTolerance' (labeled 'tolerance'). 'outputShaftShank:OF' has a child 'datumAxis2:Datum' (labeled 'datum'). 'totRunTol1: TotalRunoutTolerance' has a child 'datumAxis2:Datum' (labeled 'datum').
Figure 64: Planetary Gear Holder Part Instance Diagram. This is a hierarchical tree diagram showing the relationships between various features and tolerances of a planetary gear holder part. The root node is 'outputShaft:Part'. It has three children: 'axis2:DatumFeature' (labeled 'datum feature'), 'endSurface2:OF' (labeled 'feature'), and 'keyway:OF' (labeled 'feature'). 'axis2:DatumFeature' has a child 'datumAxis2:Datum' (labeled 'datum'). 'endSurface2:OF' has two children: 'flatTol2: FlatnessTolerance' (labeled 'tolerance') and 'perpTol2: PerpendicularityTolerance' (labeled 'tolerance'). 'keyway:OF' has a child 'profSurfTol1: ProfileSurfaceTolerance' (labeled 'tolerance'). 'outputShaft:Part' also has two children: 'outputShaftShank:OF' (labeled 'feature') and 'totRunTol1: TotalRunoutTolerance' (labeled 'tolerance'). 'outputShaftShank:OF' has a child 'datumAxis2:Datum' (labeled 'datum'). 'totRunTol1: TotalRunoutTolerance' has a child 'datumAxis2:Datum' (labeled 'datum').

Figure 64: Planetary Gear Holder Part Instance Diagram

FeaturesTolerancesFeature Control FramesArtifact Association
Bottom plane of mounting plate (Datum A)
(plane2:DatumFeature)
NoneNoneNone
Side plane of mounting plate (Datum B)
(plane3:DatumFeature)
NoneNoneNone
Side plane of mounting plate (Datum C)
(plane4:DatumFeature)
NoneNoneNone
Four through holes*
(thruHole5~8:AF)
Position toleranceFeature Control Frame for Position Tolerance: Position symbol, 0.05, A, B, C
(posTol2:PositionTolerance)
fc13
Four mounting holes
(mountingHole1~4:OF)
Position toleranceFeature Control Frame for Position Tolerance: Position symbol, 0.05, A, B, C
(posTol2:PositionTolerance)
None
Shaft hole
(ShaftHole:OF)
Dimensional tolerance(\phi 25.53) \pm 0.01
(dimTol11:DimensionalTolerance)
None
Counterbore hole
(CounterboreHole:OF)
Dimensional tolerance\phi 37.64 \sim \phi 38.23 (ST)
(dimTol12:DimensionalTolerance)
None

Table 17: Tolerance Table For The Planetary Gear Holder

Technical drawing of an input housing with various views and tolerances.

Technical drawing of an input housing showing various views and tolerances:

  • Top View: Shows a square flange with a central circular feature. Dimensions include 57.15 SQ. and 4.76. Tolerances are indicated as \pm 0.05 A B C.
  • Bottom View: Shows the underside of the housing with dimensions 27.89, 6.35, and 0.89. A feature is labeled A.
  • Section View (C-C): Shows a cross-section of the housing with dimensions \varnothing 25.53 \pm 0.4 (ST), \varnothing 38.23 (ST), \varnothing 37.64, and 6.35 Deep. A feature is labeled C-C.
  • Isometric View: Shows the 3D shape of the housing.
  • Feature Callouts:
    • 4X \varnothing 4.4 THRU HOLE \varnothing 7.11 COUNTERBORE 9.53 Deep. Equally Spaced on) \varnothing 48.77 B.C. \pm 0.05 A B C
    • 4 X \varnothing 5.39 THRU HOLE \pm 0.05 A B C
Technical drawing of an input housing with various views and tolerances.

Figure 65: Input Housing Tolerances

Tolerance Instance Diagram showing the relationship between features and datums.

Tolerance Instance Diagram showing the relationship between features and datums:

  • thruHole5:AF is toleranced_by posTol2:PositionTolerance.
  • mountingHole1:OF is toleranced_by posTol2:PositionTolerance.
  • posTol2:PositionTolerance has the following properties:
    • tolerance_zone = "\pm 0.05"
    • tolerance_zone_modifier = "RFS"
    • ...
  • posTol2:PositionTolerance reference_to three datums:
    • datumPlane2:Datum (name = "A", type = "plane")
    • datumPlane3:Datum (name = "B", type = "plane")
    • datumPlane4:Datum (name = "C", type = "plane")

RFS: Regardless of Feature Size

Tolerance Instance Diagram showing the relationship between features and datums.

Figure 66: Tolerance Instance Diagram

UML Instance Diagram for Input Housing Part. The central artifact is 'inputHousing:Part'. It is associated with several features: 'shaftHole:OF' (tolerance), 'counterboreHole:OF' (tolerance), 'plane4:DatumFeature', 'plane3:DatumFeature', 'plane2:DatumFeature', 'thruHole5:AF', 'thruHole6:AF', 'thruHole7:AF', 'thruHole8:AF', 'mountingHole1:OF', 'mountingHole2:OF', 'mountingHole3:OF', and 'mountingHole4:OF'. The 'shaftHole:OF' feature is associated with 'dimTol11: DimensionalTolerance' (tolerance) and 'regCtrl1:RegularControl' (statistical control). The 'counterboreHole:OF' feature is associated with 'dimTol12: DimensionalTolerance' (tolerance). The 'mountingHole1:OF' through 'mountingHole4:OF' features are associated with 'posTol2:PositionTolerance' (tolerance). The 'plane2:DatumFeature' through 'plane4:DatumFeature' features are associated with 'datumPlane2:Datum', 'datumPlane3:Datum', and 'datumPlane4:Datum' (Datum feature).
classDiagram
    class inputHousingPart["inputHousing:Part"]
    class shaftHoleOF["shaftHole:OF"]
    class counterboreHoleOF["counterboreHole:OF"]
    class plane4DatumFeature["plane4:DatumFeature"]
    class plane3DatumFeature["plane3:DatumFeature"]
    class plane2DatumFeature["plane2:DatumFeature"]
    class thruHole5AF["thruHole5:AF"]
    class thruHole6AF["thruHole6:AF"]
    class thruHole7AF["thruHole7:AF"]
    class thruHole8AF["thruHole8:AF"]
    class mountingHole1OF["mountingHole1:OF"]
    class mountingHole2OF["mountingHole2:OF"]
    class mountingHole3OF["mountingHole3:OF"]
    class mountingHole4OF["mountingHole4:OF"]
    class dimTol11["dimTol11: DimensionalTolerance"]
    class dimTol12["dimTol12: DimensionalTolerance"]
    class regCtrl1["regCtrl1:RegularControl"]
    class posTol2["posTol2:PositionTolerance"]
    class datumPlane2Datum["datumPlane2:Datum"]
    class datumPlane3Datum["datumPlane3:Datum"]
    class datumPlane4Datum["datumPlane4:Datum"]

    inputHousingPart --> shaftHoleOF : feature
    inputHousingPart --> counterboreHoleOF : feature
    inputHousingPart --> plane4DatumFeature : feature
    inputHousingPart --> plane3DatumFeature : feature
    inputHousingPart --> plane2DatumFeature : feature
    inputHousingPart --> thruHole5AF : feature
    inputHousingPart --> thruHole6AF : feature
    inputHousingPart --> thruHole7AF : feature
    inputHousingPart --> thruHole8AF : feature
    inputHousingPart --> mountingHole1OF : feature
    inputHousingPart --> mountingHole2OF : feature
    inputHousingPart --> mountingHole3OF : feature
    inputHousingPart --> mountingHole4OF : feature

    shaftHoleOF --> dimTol11 : tolerance
    shaftHoleOF --> regCtrl1 : statistical control
    counterboreHoleOF --> dimTol12 : tolerance

    mountingHole1OF --> posTol2 : tolerance
    mountingHole2OF --> posTol2 : tolerance
    mountingHole3OF --> posTol2 : tolerance
    mountingHole4OF --> posTol2 : tolerance

    plane2DatumFeature --> datumPlane2Datum : Datum feature
    plane3DatumFeature --> datumPlane3Datum : Datum feature
    plane4DatumFeature --> datumPlane4Datum : Datum feature
  
UML Instance Diagram for Input Housing Part. The central artifact is 'inputHousing:Part'. It is associated with several features: 'shaftHole:OF' (tolerance), 'counterboreHole:OF' (tolerance), 'plane4:DatumFeature', 'plane3:DatumFeature', 'plane2:DatumFeature', 'thruHole5:AF', 'thruHole6:AF', 'thruHole7:AF', 'thruHole8:AF', 'mountingHole1:OF', 'mountingHole2:OF', 'mountingHole3:OF', and 'mountingHole4:OF'. The 'shaftHole:OF' feature is associated with 'dimTol11: DimensionalTolerance' (tolerance) and 'regCtrl1:RegularControl' (statistical control). The 'counterboreHole:OF' feature is associated with 'dimTol12: DimensionalTolerance' (tolerance). The 'mountingHole1:OF' through 'mountingHole4:OF' features are associated with 'posTol2:PositionTolerance' (tolerance). The 'plane2:DatumFeature' through 'plane4:DatumFeature' features are associated with 'datumPlane2:Datum', 'datumPlane3:Datum', and 'datumPlane4:Datum' (Datum feature).

Figure 67: Input Housing Part Instance Diagram

Figure 68 shows the engineering drawing of the output housing. Figure 69 has the tolerance instance diagram, which shows how the tolerances are represented using the UML model discussed in Section 3.11. Figure 70 shows an integrated view of the part, its tolerances, and the assembly features. Table 19 tabulates the features, tolerances, and control frames with the artifact association.

In the cross-sectional view in Figure 68, the hole with a diameter of the 28.58 mm has a statistical control on the dimension and another statistical control in the position tolerance. Because this hole will contain bearings, both dimension and position have to be toleranced to ensure a tight fit. The depth of the hole is not controlled since it is not critical to the fit between this part and bearings. Datum A to be established from the bottom surface is shown in the front view. Datums B and C are shown in the bottom view of the input housing. Also, the direction and location of the cross-section is shown in this view. One position tolerance is applied to a pattern of four holes, each with the diameter of 5.38 mm. The position is measured in a reference to a coordinate system established by Datums A, B, and C. The tolerance is at the maximum material condition of the hole. Another position tolerance is applied to another pattern of four 7.19 mm holes. The tolerance is also at the maximum condition of the hole. This tolerance is statistically controlled because the positions of these holes are critical in assembly. The output housing and the ring gear have to be properly aligned and assembled. For alignment, there are two pin holes to assist the alignment. Their position is also similarly toleranced with an instance of StatisticalControl.

FeaturesTolerancesFeature Control FramesArtifact Association
Bottom plane of mounting plate (Datum A)
(plane2:DatumFeature)
NoneNoneNone
Side plane of mounting plate (Datum B)
(plane3:DatumFeature)
NoneNoneNone
Side plane of mounting plate (Datum C)
(plane4:DatumFeature)
NoneNoneNone
Four through holes*
(thruHole5~8:AF)
Position tolerance Feature Control Frame for four through holes: Position tolerance, 0.05, Datum A, Datum B, Datum C.
(posTol2:PositionTolerance)
fc13
Four mounting holes
(mountingHole1~4:OF)
Position tolerance Feature Control Frame for four mounting holes: Position tolerance, 0.05, Datum A, Datum B, Datum C.
(posTol2:PositionTolerance)
None
Shaft hole
(ShaftHole:OF)
Dimensional tolerance (\phi 25.53) \pm 0.01
(dimTol11:DimensionalTolerance)
None
Counterbore hole
(CounterboreHole:OF)
Dimensional tolerance \phi 37.64 \sim \phi 38.23 (ST)
(dimTol12:DimensionalTolerance)
None

Table 18: Tolerance Table For The Input Housing

Technical drawing of an output housing showing front, top, and cross-sectional views with detailed dimensions and tolerances.

Front View Dimensions and Tolerances:

  • Top feature: 2 \times \varnothing 3.05-3.56, 12.7 DEEP, Equally Spaced on a \varnothing 48.77 B.C. Tolerance: \oplus 0.010 \text{ (ST)} A B C
  • Bottom feature: 4 \times \varnothing 5.38 Thru Hole. Tolerance: \oplus 0.010 \text{ (ST)} A B C
  • Overall width: \varnothing 57.15
  • Overall height: 24.51
  • Bottom flange thickness: 6.35

Top View Dimensions and Tolerances:

  • Inner hole: 4 \times \varnothing 7.19 Thru Hole, \varnothing 7.19 Counterbore, 4.67 Deep, Equally Spaced on a \varnothing 48.77 B.C. Tolerance: \oplus 0.010 \text{ (ST)} A B C

SECTION C-C Dimensions and Tolerances:

  • Overall outer diameter: \varnothing 54.25
  • Inner bore diameter: \varnothing 43.18
  • Top flange thickness: 8.67
  • Top flange counterbore depth: 1.52
  • Internal bore depth: 12.7
  • Internal bore diameter: \varnothing 38.1
  • Bottom flange thickness: 1.59
  • Internal bore diameter at bottom: \varnothing 28.58 \pm 0.01 \text{ (ST)} Tolerance: \oplus 0.020 \text{ (ST)} A B C
Technical drawing of an output housing showing front, top, and cross-sectional views with detailed dimensions and tolerances.

Figure 68: Output Housing Tolerances

Tolerance Instance Diagram showing relationships between features, tolerances, datums, and regular controls.

The diagram illustrates the relationships between various features, tolerances, datums, and regular controls in a mechanical design. The components and their connections are as follows:

  • posTol3:PositionTolerance
    • tolerance_zone = "φ0.01"
    • tolerance_zone_modifier = "mmc"
    • ... (additional properties)
    • toleranced_by: mountingHole5:AF
    • reference_to: datumPlane5:Datum, datumPlane6:Datum, datumPlane7:Datum
  • posTol4:PositionTolerance
    • tolerance_zone = "φ0.01"
    • tolerance_zone_modifier = "mmc"
    • ... (additional properties)
    • toleranced_by: thruHole1:AF, pinHole9:AF
    • reference_to: datumPlane5:Datum, datumPlane6:Datum, datumPlane7:Datum
    • Associated with: regCtrl2:RegularControl
      • mean = "0.005"
      • standard_deviation = "0.001"
  • posTol5:PositionTolerance
    • tolerance_zone = "φ0.02"
    • tolerance_zone_modifier = "MMC"
    • primary_datum = "A"
    • secondary_datum = "B"
    • tertiary_datum = "C"
    • toleranced_by: bearingHole:AF
    • reference_to: datumPlane5:Datum, datumPlane6:Datum, datumPlane7:Datum
    • Associated with: regCtrl3:RegularControl
      • mean = "0.01"
      • standard_deviation = "0.003"
  • Datum Objects
    • datumPlane5:Datum: name = "A", type = "plane"
    • datumPlane6:Datum: name = "B", type = "plane"
    • datumPlane7:Datum: name = "C", type = "plane"
  • Regular Control Objects
    • regCtrl2:RegularControl: mean = "0.005", standard_deviation = "0.001"
    • regCtrl3:RegularControl: mean = "0.01", standard_deviation = "0.003"

Relationships are indicated by lines labeled "toleranced_by" and "reference_to". The "Statistical Control" label is associated with the regular control objects.

Tolerance Instance Diagram showing relationships between features, tolerances, datums, and regular controls.

Figure 69: Tolerance Instance Diagram

Figure 70: Output Housing Instance Diagram. A complex hierarchical diagram showing the relationships between various features, artifacts, tolerances, and controls for an 'outputHousing:Part'.

The diagram illustrates the relationships between various features, artifacts, tolerances, and controls for an outputHousing:Part. The central node is outputHousing:Part, which is connected to several other nodes:

  • plane5:DatumFeature, plane6:DatumFeature, and plane7:DatumFeature are connected to outputHousing:Part via datum feature relationships.
  • mountingHole5:OF, mountingHole6:OF, mountingHole7:OF, and mountingHole8:OF are connected to outputHousing:Part via feature relationships.
  • thruHole1:AF, thruHole2:AF, thruHole3:AF, and thruHole4:AF are connected to outputHousing:Part via feature relationships.
  • bearingHole:OF, pinHole9:AF, and pinHole10:AF are connected to outputHousing:Part via feature relationships.
  • posTol3: PositionTolerance, posTol5: PositionTolerance, dimTol14: DimensionalTolerance, dimTol13: DimensionalTolerance, and posTol4: PositionTolerance are connected to outputHousing:Part via tolerance relationships.
  • matMMC: MaterialCondition, regCtrl3: RegularControl, regCtrl2: RegularControl, datumPlane5: Datum, datumPlane6:D datum, and datumPlane7:D datum are connected to outputHousing:Part via material condition, statistical control, and datum relationships.

The diagram shows a complex network of relationships, with many lines connecting the central outputHousing:Part to the various features, artifacts, tolerances, and controls. The relationships are labeled with terms like feature, artifact, tolerance, material condition, statistical control, and datum.

Figure 70: Output Housing Instance Diagram. A complex hierarchical diagram showing the relationships between various features, artifacts, tolerances, and controls for an 'outputHousing:Part'.

Figure 70: Output Housing Instance Diagram

Both dimensional and geometric tolerances are described in these two subsections. The tolerances can be captured by objects instantiated from the appropriate tolerance classes, specified in Section 3.11.

FeaturesTolerancesFeature Control FramesArtifact Association
Bottom plane of mounting plate (Datum A)
(plane5:DatumFeature)
NoneNoneNone
Side plane of mounting plate (Datum B)
(Plane6:DatumFeature)
NoneNoneNone
Side plane of mounting plate (Datum C)
(Plane7:DatumFeature)
NoneNoneNone
Four mounting holes
(mountingHole5~8:OF)
Position toleranceFeature Control Frame for mounting holes: Position tolerance, 0.01 (M), A, B, C
(posTol3:PositionTolerance)
None
Four through holes*
(thruHole1~4:AF)
Position toleranceFeature Control Frame for through holes: Position tolerance, 0.01 (M), ST, A, B, C
(posTol4:PositionTolerance)
fc11
Two pin-hole surfaces*
(pinHole9~10:AF)
Position toleranceFeature Control Frame for pin-hole surfaces: Position tolerance, 0.01 (M), ST, A, B, C
(posTol4:PositionTolerance)
fc10
Dimensional tolerance\phi 3.05 \sim \phi 3.56
(dimTol13:DimensionalTolerance)
Bearing hole
(bearingHole:OF)
Position toleranceFeature Control Frame for bearing hole: Position tolerance, 0.02 (M), ST, A, B, C
(posTol5:PositionTolerance)
None
Dimensional tolerance(\phi 28.58) \pm 0.01 ST symbol
(dimTol14:DimensionalTolerance)

Table 19: Tolerance Table For The Output Housing

12. 5 Conclusions and Future Work

In this report, we described an object-oriented UML representation of an assembly model for electro-mechanical products representation. This model incorporates tolerance representation, kinematics, assembly relationships, and assembly features. The Open Assembly Model (OAM) described in this paper is based on the class structure of the NIST Core Product Model [4]. The classes defined in OAM, for example Assembly, inherit function, behavior, and form from the Core Product Model's Artifact class. The UML model of the Assembly is described with an example. Tolerance and kinematics analyses of this system are used to show how such an assembly model can be exploited by designers. We are planning to populate this model further and make it interoperate with various CAD and engineering analysis systems. Further we will explore the possibilities of integrating it with virtual reality systems such as VADE [12]

13. 6 Acknowledgements

The authors wish to acknowledge the valuable comments and improvements suggested by Prof. Steven Fenves. Those comments have substantially improved and shaped the report. This project is funded [in part] by NIST's Systems Integration for Manufacturing Applications (SIMA) Program. SIMA supports NIST projects applying information technologies and standards-based approaches to manufacturing software integration problems

14. 7 Disclaimer

No approval or endorsement of any commercial product by the National Institute of Standards and Technology is intended or implied. Certain commercial equipments, instruments, or materials are identified in this report in order to facilitate better understanding. Such identification does not imply recommendations or endorsement by the National Institute of Standards and Technology, nor does it imply the materials or equipment identified are necessarily the best available for the purpose.

15. 8 References

  1. 1. ISO TC 194/SC4, "Official TC184/SC4 Web Site," http://www.tc184-sc4.org/, 2003.
  2. 2. Nobuhiro Sugimura, and Akihiko Ohtaka, "ISO TC 184/SC4/WG12 N597, JNC Proposal of STEP Assembly Model for Products (June 2000).", ISO, 2000.
  3. 3. R.Sudarsan, Y.Narahari, U.Roy, R.D.Sriram, K.W.Lyons, and N.Pramanik, "Information Models for Design Tolerancing: from conceptual to the detail design," National Institute of Standards and Technology, Gaithersburg, MD 20899, USA, 1999.
  1. 4. Steven J.Fenves, " A Core Product Model For Representing Design Information," National Institute of Standards and Technology, NISTIR6736 , Gaithersburg, MD 20899, USA, 2001.
  2. 5. K.W.Lyons, V.N.Rajan, and R.Sreerangam, "Representations and Methodologies for Assembly Modeling," National Institute of Standards and Technology, NISTIR 6059, Gaithersburg, MD 20899, USA, 1996.
  3. 6. Venkat N.Rajan, Kevin W.Lyons, and Raj Sreerangam, " Assembly Representations for Capturing Mating Constraints and Component Kinematics," Proceedings of the 1997, IEEE International Symposium on Assembly and Task Planning, Marina del Rey, CA (August 1997)., 1997.
  4. 7. K.Lyons, S.Shooter, W.Keirouz, and P.Hart, "The Open Assembly design environment: an architecture for design agent interoperability," ASME, 1998.
  5. 8. G.Booch, J.Rumbaugh, and I.Jacobson, The United Modeling Language User Guide, Addison-Wesley 1997.
  6. 9. Kemmerer, S., "STEP: The Grand Experience, (Editor)," NIST Special Publication 939, National Institute of Standards and Technology, Gaithersburg, MD 20899, USA, 1999.
  7. 10. Philip R.Kennicott, "ISO TC 184/SC4: Product Data Representation and Exchange, Part: 44, Title: Industrial Automation Systems and Integration Product Data Representation and Exchange – Integrated Generic Resources: Product Structure Configuration (November 1994).," ISO , 1994.
  8. 11. Ram D Sriram, "Standards for the Collaborative Design Enterprise, Response to Object Management Group's (OMG) Mfg DTG RFI #4," 1999.
  9. 12. Connacher, H., Sankar Jayaram, and Kevin W Lyons, "Virtual assembly using virtual reality techniques ," Computer-Aided Design, Vol. 29, No. 8, 1997, pp. 575-584.
  10. 13. U.Roy, R.Sudarsan, R.D.Sriram, K.W.Lyons, and M.R.Duffey, "Information Architecture for Design Tolerancing: from Conceptual to the Detail Design," Proc. of DETC'99, 1999 ASME International Design Engineering Technical Conferences, Nevada, Las Vegas, USA , 1999.
  1. 14. MOKA. MOKA: A Framework for structuring and representing engineering knowledge . http://www.kbe.coventry.ac.uk/moka/miginfo.htm . 1999.
  2. 15. Whitney, D. E., and Mantripragada, R., "The Datum Flow Chain: A systematic approach to assembly design and modeling .," Proceedings of the 1998 ASME Design Engineering Technical Conferences and Computers in Engineering Conference', ASME (1998), 1998.
  3. 16. Heissermann, J., and Mattikalli, R., "Representing relationships in hierarchical assemblies," Proceedings of the 1998 ASME De-sign Engineering Technical Conferences and Computers in Engineering Conference', ASME (1998), 1998.
  4. 17. Van der Net, A.. Designing and manufacturing assemblies. 1998. Eindhoven University of Technology .
  5. 18. P.N.Sheth and J.J.Uicker, " A Generalized Symbolic Notation for Mechanisms," Trans.ASME Journal of Engineering for Industry, Vol. 93, No. 1, 1971, pp. 102-112.
  6. 19. ASME, Dimensioning and Tolerancing Y14.5M , ASME 1994.

16. Appendix A SU Parameters And Linear Transformation Matrix

The SU-parameters (Sheth-Uicker parameters; see reference [18]) mean six parameters to describe the spatial relation (position and orientation) between two coordinate systems (frames). By describing the spatial relation between the two frames, the shape of a kinematic link needed for kinematic analysis can be defined. In fact, the exact geometry of the link is not required.

Figure A-1: Definition of SU-Parameters. The diagram illustrates the definition of SU-parameters for a link between two coordinate frames. Frame {x_i, y_i, z_i} is at the left end, and frame {u_i, v_i, w_i} is at the right end. The link is represented by a curved line. A common perpendicular vector t_ij is shown between the axes w_i and z_j. The distance from w_i to t_ij along z_j is a_ij. The distance from t_ij to the origin of {x_j, y_j, z_j} along z_j is b_ij. The angle from w_i to z_j about t_ij is alpha_ij. The angle from x_i to y_i about z_i is beta_ii. The angle from u_i to v_i about w_i is theta_ij. The angle from the common perpendicular to the origin of {x_j, y_j, z_j} along z_j is gamma_ij. The distance from the origin of {x_j, y_j, z_j} to the common perpendicular along z_j is c_ii.
Figure A-1: Definition of SU-Parameters. The diagram illustrates the definition of SU-parameters for a link between two coordinate frames. Frame {x_i, y_i, z_i} is at the left end, and frame {u_i, v_i, w_i} is at the right end. The link is represented by a curved line. A common perpendicular vector t_ij is shown between the axes w_i and z_j. The distance from w_i to t_ij along z_j is a_ij. The distance from t_ij to the origin of {x_j, y_j, z_j} along z_j is b_ij. The angle from w_i to z_j about t_ij is alpha_ij. The angle from x_i to y_i about z_i is beta_ii. The angle from u_i to v_i about w_i is theta_ij. The angle from the common perpendicular to the origin of {x_j, y_j, z_j} along z_j is gamma_ij. The distance from the origin of {x_j, y_j, z_j} to the common perpendicular along z_j is c_ii.

Figure A-1: Definition of SU-Parameters

Figure A-1 shows the SU-parameters defined for Link B. The frame \{u_i v_i w_i\} is established at the beginning end of the link in a kinematic loop, and frame \{x_j y_j z_j\} at the following end. To define the parameters, the common perpendicular is found first between two axes w_i and z_j. The vector t_{ij} in Figure A-1 shows the common perpendicular found. Then the six parameters are defined with the following conventions.

a_{ij} = distance from w_i to z_j along t_{ij}.

\alpha_{ij} = angle from w_i to z_j along the counterclockwise direction about t_{ij}.

b_{ij} = distance from the common perpendicular to the origin of \{x_j y_j z_j\} along z_j.

\beta_{ij} = angle from \mathbf{t}_{ij} to \mathbf{x}_j along the counterclockwise direction about \mathbf{z}_j.

c_{ij} = distance from the origin of \{u_i v_i w_i\} to the common perpendicular along \mathbf{w}_i.

\gamma_{ij} = angle from \mathbf{u}_i to \mathbf{t}_{ij} along the counterclockwise direction about \mathbf{w}_i.

Once the SU-parameters are defined between two frames, we can derive the 4 \times 4 linear transformation matrix as follows:

\mathbf{T}_{ij} = \begin{bmatrix} \cos \gamma_{ij} \cos \beta_{ij} - \sin \gamma_{ij} \cos \alpha_{ij} \sin \beta_{ij} & -\cos \gamma_{ij} \sin \beta_{ij} - \sin \gamma_{ij} \cos \alpha_{ij} \cos \beta_{ij} & \sin \gamma_{ij} \sin \alpha_{ij} & a_{ij} \cos \gamma_{ij} + b_{ij} \sin \gamma_{ij} \sin \alpha_{ij} \\ \sin \gamma_{ij} \cos \beta_{ij} + \cos \gamma_{ij} \cos \alpha_{ij} \sin \beta_{ij} & -\sin \gamma_{ij} \sin \beta_{ij} + \cos \gamma_{ij} \cos \alpha_{ij} \cos \beta_{ij} & -\cos \gamma_{ij} \sin \alpha_{ij} & a_{ij} \sin \gamma_{ij} - b_{ij} \cos \gamma_{ij} \sin \alpha_{ij} \\ \sin \alpha_{ij} \sin \beta_{ij} & \sin \alpha_{ij} \cos \beta_{ij} & \cos \alpha_{ij} & c_{ij} + b_{ij} \cos \alpha_{ij} \\ 0 & 0 & 0 & 1 \end{bmatrix}.

The SU parameters for a kinematic pair can also be defined in a similar manner. The difference is that there is one variable parameter among the six parameters. This variable is called pair variable. Due to the pair variable, the final linear transformation matrix will also have variable elements. In Figure A-1, the link A and B forms a revolute pair. The SU-parameters between frame \{x_i y_i z_i\} and \{u_i v_i w_i\} can be derived using the same convention mentioned previously. One of the parameters \gamma_{ij} and \beta_{ij} may be the pair variable \theta_j, as shown in Figure A-1.

17. Appendix B Derivation Of Kinematic Equations Of Planetary Gear System

To derive the kinematic equation of the planetary gear system in Figure 46, we should first obtain the matrix equation of each loop. To this end, the constant shape matrix and variable pair matrix should first be obtained.

The constant shape matrix refers to the linear transformation matrix between two coordinate systems (frames) of the rigid link. To derive the transformation matrix, six SU-parameters are first determined (they are constants for a rigid link). Once the SU-parameters are obtained, the linear transformation matrix can be derived straightforward. The variable pair matrix describes the linear transformation of a kinematic pair: i.e., the motion of the joint. It can be derived in the same way as the constant shape matrix, except that it contains variable elements originating from its pair variable. Details of the notion of SU-parameters and derivation of the corresponding transformation matrix for each type of kinematic pairs can be found in Reference [18].

With reference to Figure 46(a) and Table 12 the first kinematic loop and associated frames can be derived as follows:

\begin{array}{ccccccc} \text{Support} & \text{Sun Gear } (\mathbf{T}_{12}) & & \text{Planet Gear } (\mathbf{T}_{23}) & & & \text{Ring Gear } (\mathbf{T}_{31}) \\ \{x_1 y_1 z_1\} \Rightarrow [\{u_1 v_1 w_1\} \rightarrow \{x_2 y_2 z_2\}] \Rightarrow [\{u_2 v_2 w_2\} \rightarrow \{x_3 y_3 z_3\}] \Rightarrow [\{u_3 v_3 w_3\} \rightarrow \{x_1 y_1 z_1\}], \\ \Phi_1(\theta_1) & & & \Phi_2(\zeta_2, \theta_2) & & & \Phi_3(\zeta_3, \theta_3) \end{array}

where \Phi_i is a variable pair matrix, \mathbf{T}_{ij} is a const shape matrix, \theta_i is a pair variable, and \zeta_i is a gear ratio. The SU-parameters and corresponding transformation matrices are shown in Table B-1.

Link or PairSU-parameters and Transformation Matrix
Revolute Pair 1 a = 0, \alpha = 0, b = 0, \beta = 0, c = 0, \gamma = \theta_1
\Phi_1(\theta_1) = \begin{bmatrix} \cos \theta_1 & -\sin \theta_1 & 0 & 0 \\ \sin \theta_1 & \cos \theta_1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}
Sungeara = 0, \alpha = 0, b = 0, \beta = 0, c = 0, \gamma = 0
Link or PairSU-parameters and Transformation Matrix
\mathbf{T}_{12} = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}
Gear Pair 1 a = R_1 + R_2, \alpha = 0, b = 0, \beta = \zeta_2 \theta_2, c = 0, \gamma = \theta_2 \Phi_2(\zeta_2, \theta_2) = \begin{bmatrix} \cos(1 + \zeta_2)\theta_2 & -\sin(1 + \zeta_2)\theta_2 & 0 & (1 + \zeta_2)R_2 \cos \theta_2 \\ \sin(1 + \zeta_2)\theta_2 & \cos(1 + \zeta_2)\theta_2 & 0 & (1 + \zeta_2)R_2 \sin \theta_2 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}, \quad \zeta_2 = \frac{R_1}{R_2}
Planetary Gear a = 0, \alpha = 0, b = 0, \beta = 0, c = 0, \gamma = 180^\circ \mathbf{T}_{23} = \begin{bmatrix} -1 & 0 & 0 & 0 \\ 0 & -1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}
Gear Pair 4 a = R_3 - R_2, \alpha = 0, b = 0, \beta = \zeta_3 \theta_3, c = 0, \gamma = \theta_3 \Phi_3(\zeta_3, \theta_3) = \begin{bmatrix} \cos(1 + \zeta_3)\theta_3 & -\sin(1 + \zeta_3)\theta_3 & 0 & (1 + \zeta_3)R_3 \cos \theta_3 \\ \sin(1 + \zeta_3)\theta_3 & \cos(1 + \zeta_3)\theta_3 & 0 & (1 + \zeta_3)R_3 \sin \theta_3 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}, \quad \zeta_3 = -\frac{R_2}{R_3}
Ring Gear a = 0, \alpha = 0, b = 0, \beta = 0, c = 0, \gamma = 0 \mathbf{T}_{31} = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}

Table B-1: SU-Parameters And Transformation Matrices Of The First Loop

Considering that the first loop closes on itself (it starts from the ground of a unknown support and ends in the ground of fixed ring gear), the following matrix equation can be found:

\Phi_1(\theta_1) \mathbf{T}_{12} \Phi_2(\zeta_2, \theta_2) \mathbf{T}_{23} \Phi_3(\zeta_3, \theta_3) \mathbf{T}_{31} = \mathbf{I}, \quad (\text{B-1})

where \mathbf{I} is an identity matrix. Using Eq. (B-1) and the shape and pair matrices in Table B-1, the following equation is obtained:

\begin{bmatrix} -\cos P & \sin P & 0 & -(1 + \zeta_3)R_3 \cos Q + (1 + \zeta_2)R_2 \cos R \\ \sin P & -\cos P & 0 & -(1 + \zeta_3)R_3 \sin Q + (1 + \zeta_2)R_2 \sin R \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} = \mathbf{I}, \quad (\text{B-2})

where P = \theta_1 + (1 + \zeta_2)\theta_2 + (1 + \zeta_3)\theta_3, Q = \theta_1 + (1 + \zeta_2)\theta_2 + \theta_3, and R = \theta_1 + \theta_2.

The kinematic equation for the second loop can also be derived in a similar manner. With reference to Figure 46 (b), the second kinematic loop and associated frames can be derived as follows:

\begin{array}{cccc} \text{Bearing} & \text{Planet Carrier } (\mathbf{T}_{45}) & \text{Planet Gear } (\mathbf{T}_{53}) & \text{Ring Gear } (\mathbf{T}_{34}) \\ \{x_4 y_4 z_4\} \Rightarrow [u_4 v_4 w_4] \rightarrow \{x_5 y_5 z_5\} \Rightarrow [u_5 v_5 w_5] \rightarrow \{x_3 y_3 z_3\} \Rightarrow [u_3 v_3 w_3] \rightarrow \{x_4 y_4 z_4\}, \\ \Phi_4(\theta_4) & & \Phi_5(\theta_5) & \Phi_3(\zeta_3, \theta_3) \end{array}

where \Phi_i is a variable pair matrix, \mathbf{T}_{ij} is a constant shape matrix, \theta_i is a pair variable, and \zeta_i is a gear ratio. The SU-parameters and corresponding transformation matrices are shown in Table B-2.

Link or PairSU-parameters and Transformation Matrix
Revolute Pair 5 a = 0, \alpha = 0, b = 0, \beta = 0, c = 0, \gamma = \theta_4
\Phi_4(\theta_4) = \begin{bmatrix} \cos \theta_4 & -\sin \theta_4 & 0 & 0 \\ \sin \theta_4 & \cos \theta_4 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}
Planet Carrier a = L, \alpha = 0, b = 0, \beta = 0, c = 0, \gamma = 0
\mathbf{T}_{45} = \begin{bmatrix} 1 & 0 & 0 & L \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}, L = R_1 + R_2
Revolute Pair 2 a = 0, \alpha = 0, b = 0, \beta = 0, c = 0, \gamma = \theta_5
\Phi_5(\theta_5) = \begin{bmatrix} \cos \theta_5 & -\sin \theta_5 & 0 & 0 \\ \sin \theta_5 & \cos \theta_5 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}
Planetary Gear a = 0, \alpha = 180^\circ, b = 0, \beta = 0, c = 0, \gamma = 180^\circ
\mathbf{T}_{23} = \begin{bmatrix} -1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & -1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}
Gear Pair 4 a = R_3 - R_2, \alpha = 0, b = 0, \beta = \zeta_3 \theta_3, c = 0, \gamma = \theta_3
\Phi_3(\zeta_3, \theta_3) = \begin{bmatrix} \cos(1 + \zeta_3)\theta_3 & -\sin(1 + \zeta_3)\theta_3 & 0 & (1 + \zeta_3)R_3 \cos \theta_3 \\ \sin(1 + \zeta_3)\theta_3 & \cos(1 + \zeta_3)\theta_3 & 0 & (1 + \zeta_3)R_3 \sin \theta_3 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}, \zeta_3 = -\frac{R_2}{R_3}
Ring Gear a = 0, \alpha = 180^\circ, b = 0, \beta = 0, c = 0, \gamma = 180^\circ
Link or PairSU-parameters and Transformation Matrix
\mathbf{T}_{31} = \begin{bmatrix} -1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & -1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}

Table B-2: SU-Parameters And Transformation Matrices Of The Second Loop

Considering the second loop closes itself, the following matrix equation can be found:

\mathbf{\Phi}_4(\theta_4)\mathbf{T}_{45}\mathbf{\Phi}_5(\theta_5)\mathbf{T}_{53}\mathbf{\Phi}_3(\zeta_3, \theta_3)\mathbf{T}_{34} = \mathbf{I}, \quad (\text{B-3})

where \mathbf{I} is an identity matrix. Using Eq. (B-3) and the shape and pair matrices in Table B-2, the following equation is obtained:

\begin{bmatrix} \cos S & -\sin S & 0 & -(1+\zeta_3)R_3 \cos T + L \cos \theta_4 \\ \sin S & \cos S & 0 & -(1+\zeta_3)R_3 \sin T + L \sin \theta_4 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} = \mathbf{I}, \quad (\text{B-4})

where S = \theta_4 + \theta_5 - (1 + \zeta_3)\theta_3, T = \theta_4 + \theta_5 - \theta_3, and L = R_1 + R_2.

The previously derived equations. (B-2) and (B-4) are the kinematic equations of the planetary gear system. By solving equations (B-2) and (B-4), we can obtain the angular displacement relations of the gear system. Equating the elements of the left-hand sides of equations (B-2) and (B-4) to the corresponding elements of the right-hand sides of identity matrix, the following relations are obtained (\theta_1 is considered here as an input and thus being known):

\begin{aligned} \theta_2 &= -\frac{1}{\zeta_2}\theta_3, \\ \theta_3 &= \frac{\zeta_2}{1 - \zeta_2\zeta_3}(\theta_1 - \pi), \\ \theta_4 &= \frac{\zeta_2\zeta_3}{1 - \zeta_2\zeta_3}(\theta_1 - \pi), \\ \theta_5 &= \theta_3. \end{aligned} \quad (\text{B-5})

18. NOTES