Application module: Kinematic topology ISO/TS 10303-1799:2014-02(E)
© ISO

Cover page
Table of contents
Copyright
Foreword
Introduction
1 Scope
2 Normative references
3 Terms, definitions and abbreviated terms
    3.1 Terms and definitions
    3.2 Abbreviated terms

4 Information requirements
   4.1 Required AM ARMs
   4.2 ARM type definition
   4.3 ARM entity definitions
   4.4 ARM subtype constraint definition
   4.5 ARM function definitions
5 Module interpreted model
   5.1 Mapping specification
   5.2 MIM EXPRESS short listing

A MIM short names
B Information object registration
C ARM EXPRESS-G   EXPRESS-G
D MIM EXPRESS-G   EXPRESS-G
E Computer interpretable listings
Bibliography
Index

4 Information requirements

This clause specifies the information requirements for the Kinematic topology application module. The information requirements are specified as the Application Reference Model (ARM) of this application module.

NOTE 1  A graphical representation of the information requirements is given in Annex C.

NOTE 2  The mapping specification is specified in 5.1. It shows how the information requirements are met by using common resources and constructs defined or imported in the MIM schema of this application module.

This clause defines the information requirements to which implementations shall conform using the EXPRESS language as defined in ISO 10303-11. The following begins the Kinematic_topology_arm schema and identifies the necessary external references.

EXPRESS specification:

*)
SCHEMA Kinematic_topology_arm;
(*

4.1 Required AM ARMs

The following EXPRESS interface statements specify the elements imported from the ARMs of other application modules.

EXPRESS specification:

*)
USE FROM Elemental_topology_arm;    --  ISO/TS 10303-1005

USE FROM Foundation_representation_arm;    --  ISO/TS 10303-1006

USE FROM Part_view_definition_arm;    --  ISO/TS 10303-1023

USE FROM Property_assignment_arm;    --  ISO/TS 10303-1030

REFERENCE FROM Foundation_representation_arm    --  ISO/TS 10303-1006
  (using_representations);
(*

NOTE 1   The schemas referenced above are specified in the following part of ISO 10303:

Elemental_topology_arm ISO/TS 10303-1005
Foundation_representation_arm ISO/TS 10303-1006
Part_view_definition_arm ISO/TS 10303-1023
Property_assignment_arm ISO/TS 10303-1030
Foundation_representation_arm ISO/TS 10303-1006

NOTE 2   See Annex C, Figures C.1and C.2 for a graphical representation of this schema.

4.2 ARM type definition

This subclause specifies the ARM type for this application module. The ARM type and definition is specified below.

4.2.1 kinematic_topology_representation_select   EXPRESS-G

The kinematic_topology_representation_select type allows for the designation of the data types Kinematic_topology_structure, Kinematic_topology_directed_structure and Kinematic_topology_network_structure.

EXPRESS specification:

*)
TYPE kinematic_topology_representation_select = SELECT
   (Kinematic_topology_structure,
    Kinematic_topology_directed_structure,
    Kinematic_topology_network_structure);
END_TYPE;
(*

4.3 ARM entity definitions

This subclause specifies the ARM entities for this module. Each ARM application entity is an atomic element that embodies a unique application concept and contains attributes specifying the data elements of the entity. The ARM entities and definitions are specified below.

4.3.1 Kinematic_joint   EXPRESS-GMapping table

A Kinematic_joint is a type of Edge that is a specification of the topological aspect of an ordered connection between two and only two links.

A topological orientation is always implicitly associated with a joint. This orientation is defined as being from the edge start to the edge end.

For a Kinematic_pair referencing a Kinematic_joint, the transform_item_1 shall be an item of the Kinematic_link_representation of the edge_start of the Kinematic_joint.

Similarly, the transform_item_2 shall be an item of the Kinematic_link_representation of the edge_end of the Kinematic_joint.

NOTE 1   The type of constraint on the relative motion is defined by the Kinematic_pair that has the joint as its joint attribute. In a graph representation of the topology, the Kinematic_joint represents an oriented edge connecting two vertices in the graph. The orientation of the Kinematic_joint reflects an implicit orientation which is arbitrary, except for the rack-and-pinion pair, the point-on-surface pair, and the point-on-planar-curve pair.

NOTE 2   If the sequence of edge_start and edge_end is interchanged, both, pair values and pair range values, have to be used with the opposite signs additionally the attributes giving a lower limit are to be interchanged with those giving the corresponding upper limit.

EXPRESS specification:

*)
ENTITY Kinematic_joint
  SUBTYPE OF (Edge);
  SELF\Edge.edge_start : Kinematic_link;
  SELF\Edge.edge_end : Kinematic_link;
UNIQUE
  UR1: edge_start, edge_end;
WHERE
  WR1: edge_start :<>: edge_end;
END_ENTITY;
(*

Attribute definitions:

edge_start: the link through which the joint is entered.

edge_end: the link through which the joint is left.

Formal propositions:

UR1: The combination of edge_start and edge_end shall be unique within a population of Kinematic_joint.

WR1: The edge_start and edge_end shall not be identical.

4.3.2 Kinematic_link   EXPRESS-GMapping table

A Kinematic_link is a type of Vertex representation of the topological aspects associated with a rigid part of a mechanism.

EXPRESS specification:

*)
ENTITY Kinematic_link
  SUBTYPE OF (Vertex);
END_ENTITY;
(*

4.3.3 Kinematic_loop   EXPRESS-GMapping table

A Kinematic_loop is a type of Edge_loop that is a cycle in the subgraph. It is the representation of a closed kinematic chain in a mechanism, where the last link in the chain is again connected to the first link by a joint. The Kinematic_loop is analogous to the loop in the topology model, where the joints correspond to the edges and the links correspond to the vertices of the topology model. The loop shall be pointed to by at least one Oriented_joint.

Every Kinematic_joint shall be oriented such that the list of Kinematic_joints have a common orientation within the loop.

NOTE    This entity is present in an instance of a kinematics model only if the kinematic structure takes the form of a directed graph.

EXPRESS specification:

*)
ENTITY Kinematic_loop
  SUBTYPE OF (Edge_loop);
  SELF\Path.edge_list : LIST[1:?] OF UNIQUE Oriented_joint;
END_ENTITY;
(*

Attribute definitions:

edge_list: an inherited attribute that shall be of type Oriented_joint There shall exist at least one Oriented_joint for the Kinematic_loop.

4.3.4 Kinematic_property_definition_representation   EXPRESS-GMapping table

A Kinematic_property_definition_representation is a type of Property_definition_representation that relates a Representation to a Product_definition_kinematics.

EXPRESS specification:

*)
ENTITY Kinematic_property_definition_representation
  SUBTYPE OF (Property_definition_representation);
  SELF\Property_definition_representation.definition : Product_definition_kinematics;
END_ENTITY;
(*

Attribute definitions:

definition: an inherited attribute that shall be of type Product_definition_kinematics.

4.3.5 Kinematic_property_topology_representation   EXPRESS-GMapping table

A Kinematic_property_topology_representation is a type of Kinematic_property_definition_representation that relates a kinematic_topology_representation_select item to a Kinematic_link.

EXPRESS specification:

*)
ENTITY Kinematic_property_topology_representation
  SUBTYPE OF (Kinematic_property_definition_representation);
  SELF\Property_definition_representation.used_representation : kinematic_topology_representation_select;
  base : Kinematic_link;
WHERE
  WR1: SELF\property_definition_representation.used_representation IN using_representations(base);
END_ENTITY;
(*

Attribute definitions:

used_representation: an inherited attribute that shall be of type kinematic_topology_representation_select.

base: the initial link of the Kinematic_property_topology_representation.

Formal propositions:

WR1: The base shall be founded in the kinematic_topology_representation_select.

4.3.6 Kinematic_topology_directed_structure   EXPRESS-GMapping table

A Kinematic_topology_directed_structure is a type of Representation that identified a directed structure within a parent Kinematic_topology_structure.

EXPRESS specification:

*)
ENTITY Kinematic_topology_directed_structure
  SUBTYPE OF (Representation);
  SELF\Representation.items : SET[1:?] OF Oriented_joint;
  parent : Kinematic_topology_structure;
WHERE
  WR1: context_of_items :=: parent.context_of_items;
  WR2: get_kinematic_joints_from_oriented_joints(items) <= parent.items;
END_ENTITY;
(*

Attribute definitions:

items: an inherited attribute that shall be of type Oriented_joint. There shall exist at least one Oriented_joint for the Kinematic_topology_directed_structure.

parent: the parent Kinematic_topology_structure in which this Kinematic_topology_directed_structure defines a direct subset.

Formal propositions:

WR1: A Kinematic_topology_directed_structure shall have the same context as its parent.

WR2: The Oriented_joints used by the items of a Kinematic_topology_directed_structure shall also be items of its parent.

4.3.7 Kinematic_topology_network_structure   EXPRESS-GMapping table

A Kinematic_topology_network_structure is a type of Representation. A Kinematic_topology_network_structure represents a subgraph of network type; i.e., the mechanism is composed of closed kinematic chains.

NOTE 1   See Figure 1 for an illustration of a kinematic network structure.

NOTE 2   This entity is present in an instance of a kinematics model only if the kinematic structure takes the form of a directed graph.



Figure 1 —  Example of a kinematic network structure

Figure 1 —  Example of a kinematic network structure

EXPRESS specification:

*)
ENTITY Kinematic_topology_network_structure
  SUBTYPE OF (Representation);
  SELF\Representation.items : SET[1:?] OF Kinematic_loop;
  parent : Kinematic_topology_structure;
WHERE
  WR1: context_of_items :=: parent.context_of_items;
  WR2: get_kinematic_joints_from_kinematic_loops(items) <= parent.items;
END_ENTITY;
(*

Attribute definitions:

items: an inherited attribute that shall be of type Kinematic_loop. There shall exist at least one Kinematic_loop for the Kinematic_topology_network_structure.

parent: the parent Kinematic_topology_structure in which this Kinematic_topology_network_structure defines a subset with loops.

Formal propositions:

WR1: A Kinematic_topology_network_structure shall have the same context as the parent.

WR2: The Oriented_joints used by the items of a Kinematic_topology_network_structure shall also be items of its parent.

4.3.8 Kinematic_topology_structure   EXPRESS-GMapping table

A Kinematic_topology_structure is a type of Representation that specifies the topological aspects of a kinematic representation. The topology of the Kinematic_topology_structure is represented by means of Kinematic_joints which, in turn, establish a relationship between pairs of Kinematic_links.

NOTE    Every kinematic structure can be described in terms of its joints and links. Joints constrain the motion between two rigid objects called links. Joints and links are sufficient to describe the topology of kinematic structures, but for computation it is meaningful to introduce additional levels of structure based on graph theory. Information related to the graph representation of a kinematic structure is given in Kinematic_topology_substructure.

EXPRESS specification:

*)
ENTITY Kinematic_topology_structure
  SUBTYPE OF (Representation);
  SELF\Representation.items : SET[1:?] OF Kinematic_joint;
WHERE
  WR1: SIZEOF (QUERY (item <* items | 'FOUNDATION_REPRESENTATION_ARM.ORIENTED_EDGE' in TYPEOF(item))) = 0;
END_ENTITY;
(*

Attribute definitions:

items: the set of Kinematic_joints that compose the Kinematic_topology_structure of a mechanism. There shall exist one or more Kinematic_joints for the Kinematic_topology_structure.

Formal propositions:

WR1: None of the items shall be an Oriented_edge.

4.3.9 Kinematic_topology_substructure   EXPRESS-GMapping table

A Kinematic_topology_substructure is a type of Kinematic_topology_structure that specifies the topological characteristics of a mechanism in terms of tree or network structures.

NOTE 1   Using graph theory, the topology of a mechanism is represented by a directed graph, where the links correspond to the nodes, and the joints correspond to the edges. This graph can be derived from the definition of the links and joints. If the topology of a mechanism is defined only by this minimal information, it is referred to as "lower level topology" within this part of ISO 10303.

Graph theory provides a means to capture connectivity information which may be applied to the describe the topological structure of mechanisms. The geometrical and mechanical properties are not conveyed. If the full topological information including connectivity information is provided explicitly, this is referred to as "higher level topology" within this part of ISO 10303.

A general graph may be composed of two basic types of subgraphs:

  1. Trees;
  2. Networks.

If, in addition to the lower level of topology, the higher level topology is provided in a kinematic model, this higher level of topology is represented by kinematic substructures. These kinematic substructures are:

NOTE 2   See [4]? for methods that can be applied to analyze a kinematic topology substructure.

EXPRESS specification:

*)
ENTITY Kinematic_topology_substructure
  SUBTYPE OF (Kinematic_topology_structure);
  parent : Kinematic_topology_structure;
WHERE
  WR1: SELF\Representation.context_of_items :=: parent\Representation.context_of_items;
  WR2: SELF\Representation.items <= parent\Representation.items;
END_ENTITY;
(*

Attribute definitions:

parent: the Kinematic_topology_structure of which the Kinematic_topology_substructure forms a component.

Formal propositions:

WR1: A Kinematic_topology_substructure shall have the same context as the parent.

WR2: The items of a Kinematic_topology_substructure shall also be items of the parent.

4.3.10 Kinematic_topology_tree_structure   EXPRESS-GMapping table

A Kinematic_topology_tree_structure is a type of Kinematic_topology_directed_structure. A Kinematic_topology_tree_structure represents a subgraph of tree type; i.e., the mechanism is composed of open kinematic chains.

NOTE 1   See Figure 2 for an illustration of a kinematic topology tree structure.

NOTE 2   This entity is present in an instance of a kinematics model only if the kinematic topology structure takes the form of a directed graph.



Figure 2 —  Example of a kinematic topology tree structure

Figure 2 —  Example of a kinematic topology tree structure

EXPRESS specification:

*)
ENTITY Kinematic_topology_tree_structure
  SUBTYPE OF (Kinematic_topology_directed_structure);
END_ENTITY;
(*

4.3.11 Oriented_joint   EXPRESS-GMapping table

An Oriented_joint is a type of Oriented_edge that is a direction of traversal of a joint.

NOTE    This entity is present in an instance of a kinematics model only if the kinematic structure takes the form of a directed graph.

EXPRESS specification:

*)
ENTITY Oriented_joint
  SUBTYPE OF (Oriented_edge);
  SELF\Oriented_edge.edge_definition : Kinematic_joint;
END_ENTITY;
(*

Attribute definitions:

edge_definition: an inherited attribute that shall be of type Kinematic_joint.

4.3.12 Product_definition_kinematics   EXPRESS-GMapping table

A Product_definition_kinematics is a type of Assigned_property. The Product_definition_kinematics specifies the kinematic property of a product.

EXPRESS specification:

*)
ENTITY Product_definition_kinematics
  SUBTYPE OF (Assigned_property);
  SELF\Assigned_property.described_element : Part_view_definition;
INVERSE
  representation_relation : Kinematic_property_definition_representation FOR definition;
UNIQUE
  UR1: described_element;
END_ENTITY;
(*

Attribute definitions:

described_element: an inherited attribute that shall be of type Part_view_definition.

representation_relation: specifies an inverse relationship that specifies that the existence of the Product_definition_kinematics is dependent on the existence of the Kinematic_property_definition_representation that specifies the Product_definition_kinematics as its definition.

Formal propositions:

UR1: The described_element shall be unique within a population of Product_definition_kinematics.

4.4 ARM subtype constraint definition

This subclause specifies the ARM subtype constraint for this module. The subtype constraint places a constraint on the possible super-type / subtype instantiations. The ARM subtype constraint and definition is specified below.

4.4.1 kts_representation_subtypes   EXPRESS-GMapping table

The kts_representation_subtypes constraint specifies a constraint that applies to instances of subtypes of Representation.

EXPRESS specification:

*)
SUBTYPE_CONSTRAINT kts_representation_subtypes FOR Representation;
  ONEOF (Kinematic_topology_structure,
         Kinematic_topology_directed_structure,
         Kinematic_topology_network_structure);
END_SUBTYPE_CONSTRAINT;
(*

4.5 ARM function definitions

This subclause specifies the ARM functions for this module. The ARM functions and definitions are specified below.

4.5.1 get_kinematic_joints_from_kinematic_loops

The get_kinematic_joints_from_kinematic_loops function returns the set of Kinematic_joints associated with the Kinematic_loop as a kls.

EXPRESS specification:

*)
FUNCTION get_kinematic_joints_from_kinematic_loops (kls : SET[0:?] OF Kinematic_loop) : SET[0:?] OF Kinematic_joint;
LOCAL
    result : SET OF Oriented_joint := [];
  END_LOCAL;
  IF SIZEOF(kls) > 0 THEN
    REPEAT i := 1 TO HIINDEX(kls);
      result := result + kls[i].edge_list;
    END_REPEAT;
  END_IF;
  RETURN (get_kinematic_joints_from_oriented_joints(result));
END_FUNCTION;
(*

Argument definitions:

kls: the specified set of Kinematic_loops.

4.5.2 get_kinematic_joints_from_oriented_joints

The get_kinematic_joints_from_oriented_joints function returns the set of Kinematic_joints associated with the Oriented_joint as a ors.

EXPRESS specification:

*)
FUNCTION get_kinematic_joints_from_oriented_joints (ors : SET[0:?] OF Oriented_joint) : SET[0:?] OF Kinematic_joint;
LOCAL
    result : SET OF Kinematic_joint := [];
  END_LOCAL;
  IF SIZEOF(ors) > 0 THEN
    REPEAT i := 1 TO HIINDEX(ors);
      result := result + ors[i].edge_definition;
    END_REPEAT;
  END_IF;
  RETURN (result);
END_FUNCTION;
(*

Argument definitions:

ors: the specified set of Oriented_joints.



*)
END_SCHEMA;  -- Kinematic_topology_arm
(*


© ISO 2014 — All rights reserved