Application module: Kinematic motion representation ISO/TS 10303-1796:2019(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 definitions
   4.3 ARM entity definitions
   4.4 ARM subtype constraint 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
F Change history
Bibliography
Index

4 Information requirements

This clause specifies the information requirements for the Kinematic motion representation 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_motion_representation_arm schema and identifies the necessary external references.

EXPRESS specification:

*)
SCHEMA Kinematic_motion_representation_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 B_spline_geometry_arm;    --  ISO/TS 10303-1801

USE FROM Contextual_shape_positioning_arm;    --  ISO/TS 10303-1027

USE FROM Kinematic_state_arm;    --  ISO/TS 10303-1798

USE FROM Parametric_representation_arm;    --  ISO/TS 10303-1813

USE FROM Product_occurrence_arm;    --  ISO/TS 10303-1063

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:

B_spline_geometry_arm ISO/TS 10303-1801
Contextual_shape_positioning_arm ISO/TS 10303-1027
Kinematic_state_arm ISO/TS 10303-1798
Parametric_representation_arm ISO/TS 10303-1813
Product_occurrence_arm ISO/TS 10303-1063
Foundation_representation_arm ISO/TS 10303-1006

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

4.2 ARM type definitions

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

4.2.1 interpolation_type   EXPRESS-G

The interpolation_type describes the method of interpolation between two configuration definitions of a kinematic structure.

EXPRESS specification:

*)
TYPE interpolation_type = ENUMERATION OF
   (undefined_interpolation_type,
    discontinuous_interpolation_type,
    synchronous_interpolation_type,
    linear_interpolation_type);
END_TYPE;
(*

Enumerated item definitions:

undefined_interpolation_type: an interpolation in which all pair parameters shall match the set of pair parameter values defined in the next configuration definition.

discontinuous_interpolation_type: the pair parameters are changing abruptly.

synchronous_interpolation_type: an interpolation in which all pair parameters are interpolated such that the pair parameters pass from one value to the next one at the same rate. The rate may vary proportionally among the pairs.

linear_interpolation_type: an interpolation in which all pair parameters are interpolated such that the pair parameters pass from one value to the next one at the same rate. The rate remains constant.

4.2.2 kmr_geometric_representation_select   EXPRESS-G

The kmr_geometric_representation_select type is an extension of the geometric_representation_select type. It adds the data type Link_motion_representation_along_path to the list of alternate data types.

NOTE  The list of entity data types may be extended in application modules that use the constructs of this module.

EXPRESS specification:

*)
TYPE kmr_geometric_representation_select = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON geometric_representation_select WITH
   (Link_motion_representation_along_path);
END_TYPE;
(*

4.2.3 kmr_initial_application_domain_enumeration   EXPRESS-G

The kmr_initial_application_domain_enumeration provides predefined identifiers for the initial application domains of Product_view_definitions.

EXPRESS specification:

*)
TYPE kmr_initial_application_domain_enumeration = ENUMERATION BASED_ON initial_application_domain_enumeration WITH
   (motion);
END_TYPE;
(*

Enumerated item definitions:

motion: the application domain is motion.

4.2.4 link_or_shape_representation   EXPRESS-G

The link_or_shape_representation type allows for the designation of the data types Kinematic_link_representation and Geometric_model.

EXPRESS specification:

*)
TYPE link_or_shape_representation = SELECT
   (Kinematic_link_representation,
    Geometric_model);
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 Circular_path   EXPRESS-GMapping table

A Circular_path is a type of Path_node. A Circular_path describes a portion of a complete Kinematic_path such that the interpolation rule gives a circle for the translational part of the motion of the origin of the frame of the Kinematic_link. The interpolation for the orientation is performed in synchronous fashion with the interpolation of translation.

EXPRESS specification:

*)
ENTITY Circular_path
  SUBTYPE OF (Path_node);
  via_point : Cartesian_point;
END_ENTITY;
(*

Attribute definitions:

via_point: an intermediate point through which the Circular_path passes.

4.3.2 Curve_based_path   EXPRESS-GMapping table

A Curve_based_path is a type of Path_node. A Curve_based_path describes a portion of a complete Kinematic_path such that the interpolation rule follows a curve for the translational part of the motion of the origin of the frame of the Kinematic_link. The interpolation for the orientation is performed in synchronous fashion with the interpolation of translation.

EXPRESS specification:

*)
ENTITY Curve_based_path
  SUBTYPE OF (Path_node);
  path_curve : Curve;
END_ENTITY;
(*

Attribute definitions:

path_curve: the curve which defines the translational interpolation between the Path_nodes that are connected by the Curve_based_path.

4.3.3 Curve_based_path_with_orientation   EXPRESS-GMapping table

A Curve_based_path_with_orientation is a type of Kinematic_path_segment that controls both, the position and orientation of a link along curves. The origin of the link frame shall move along the position_curve. The orientation_curve in respect to the position_curve for the same parametrisation value specifies the z-direction of the link frame. The direction of the position_curve specifies the x-direction of the link frame. Both curves shall have the same parametrization and shall not touch or intersect each other.

EXPRESS specification:

*)
ENTITY Curve_based_path_with_orientation
  SUBTYPE OF (Kinematic_path_segment);
  position_curve : Bounded_curve;
  orientation_curve : Bounded_curve;
WHERE
  WR1: TYPEOF(position_curve) = TYPEOF(orientation_curve);
END_ENTITY;
(*

Attribute definitions:

position_curve: specifies the curve along which the origin of the link frame is moved.

orientation_curve: specifies the rotation of the link frame relative to the position_curve for the same parametrisation value.

Formal propositions:

WR1: The Bounded_curve referenced by position_curve shall match the Bounded_curve referenced by orientation_curve.

4.3.4 Curve_based_path_with_orientation_and_parameters   EXPRESS-GMapping table

A Curve_based_path_with_orientation_and_parameters is a type of Curve_based_path_with_orientation.

EXPRESS specification:

*)
ENTITY Curve_based_path_with_orientation_and_parameters
  SUBTYPE OF (Curve_based_path_with_orientation);
  parameters : Path_parameter_representation;
END_ENTITY;
(*

Attribute definitions:

parameters: specifies the Path_parameter_representation for the Curve_based_path_with_orientation_and_parameters.

4.3.5 Geometric_representation_context_with_parameter   EXPRESS-GMapping table

A Geometric_representation_context_with_parameter is a type of Geometric_coordinate_space with an additional parameter.

EXPRESS specification:

*)
ENTITY Geometric_representation_context_with_parameter
  SUBTYPE OF (Geometric_coordinate_space);
  parameter_unit : OPTIONAL Unit;
END_ENTITY;
(*

Attribute definitions:

parameter_unit: specifies an additional parameter for the Geometric_representation_context_with_parameter. The value of this attribute need not be specified.

4.3.6 Interpolated_configuration_representation   EXPRESS-GMapping table

An Interpolated_configuration_representation is a type of Representation that specifies a motion (forward analysis) of a Kinematic_topology_structure.

EXPRESS specification:

*)
ENTITY Interpolated_configuration_representation
  SUBTYPE OF (Representation);
  SELF\Representation.context_of_items : Geometric_representation_context_with_parameter;
  SELF\Representation.items : SET[1:?] OF Interpolated_configuration_sequence;
END_ENTITY;
(*

Attribute definitions:

context_of_items: an inherited attribute that shall be of type Geometric_representation_context_with_parameter.

items: an inherited attribute whose members shall be of type Interpolated_configuration_sequence.

4.3.7 Interpolated_configuration_segment   EXPRESS-GMapping table

An Interpolated_configuration_segment is a specification of a single segment of an Interpolated_configuration_sequence. An Interpolated_configuration_segment is defined by a Mechanism_state_representation at a particular parameter value and the interpolation instruction to the next or first segment in the list.

EXPRESS specification:

*)
ENTITY Interpolated_configuration_segment;
  state : Mechanism_state_representation;
  t_parameter : parameter_value;
  interpolation : interpolation_type;
END_ENTITY;
(*

Attribute definitions:

state: the Mechanism_state_representation the Interpolated_configuration_segment refers to.

t_parameter: the parameter associated to the Interpolated_configuration_segment.

interpolation: the interpolation_type for the Interpolated_configuration_segment.

4.3.8 Interpolated_configuration_sequence   EXPRESS-GMapping table

An Interpolated_configuration_sequence is a type of Detailed_geometric_model_element that represents a sequence of Interpolated_configuration_segments, each consisting of a Mechanism_state_representation at a particular parameter value and an interpolation type to the next segment in the sequence, or, in the case of the last segment in the sequence, to the first Interpolated_configuration_segment.

EXPRESS specification:

*)
ENTITY Interpolated_configuration_sequence
  SUBTYPE OF (Detailed_geometric_model_element);
  segments : LIST[2:?] OF Interpolated_configuration_segment;
DERIVE
  n_segments : INTEGER := SIZEOF(segments);
  closed_interpolation : LOGICAL := segments[n_segments].interpolation <> discontinuous_interpolation_type;
  configured_mechanism : Mechanism_representation := segments[1].state.represented_mechanism;
WHERE
  WR1: SIZEOF( QUERY(ics <* segments | ics.state.represented_mechanism :<>: configured_mechanism)) = 0;
END_ENTITY;
(*

Attribute definitions:

segments: the list of Interpolated_configuration_segments for the Interpolated_configuration_sequence. There shall exist at least two Interpolated_configuration_segments for the Interpolated_configuration_sequence.

n_segments: the number of segments.

closed_interpolation: an indication of whether the interpolation shall continue with the first segment after the last one is reached, resulting in a cyclic movement.

configured_mechanism: the Mechanism_representation that is interpolated by this Interpolated_configuration_sequence.

Formal propositions:

WR1: All segments of an Interpolated_configuration_sequence shall be based on the same Mechanism_representation.

4.3.9 Item_link_motion_relationship   EXPRESS-GMapping table

An Item_link_motion_relationship is a type of Link_motion_relationship.

EXPRESS specification:

*)
ENTITY Item_link_motion_relationship
  SUBTYPE OF (Link_motion_relationship);
  SELF\Representation_relationship.rep_1 : Geometric_model;
  item : Detailed_geometric_model_element;
END_ENTITY;
(*

Attribute definitions:

rep_1: an inherited attribute shall be of type Geometric_model for the Item_link_motion_relationship.

item: specifies the role of the Detailed_geometric_model_element for the Item_link_motion_relationship.

4.3.10 Kinematic_path   EXPRESS-GMapping table

A Kinematic_path is a type of Detailed_geometric_model_element. A Kinematic_path describes a path or a segment of a path along which motion is to take place. Each Kinematic_path is either a Kinematic_path_defined_by_nodes or a Kinematic_path_defined_by_curves.

EXPRESS specification:

*)
ENTITY Kinematic_path
  ABSTRACT SUPERTYPE OF (ONEOF (Kinematic_path_defined_by_nodes,
                                Kinematic_path_defined_by_curves))
  SUBTYPE OF (Detailed_geometric_model_element);
  segments : LIST[1:?] OF Kinematic_path_segment;
  t_start : parameter_value;
DERIVE
  n_segments : INTEGER := SIZEOF(segments);
  closed_path : LOGICAL := segments[n_segments].transition <> curve_transition_code.discontinuous;
WHERE
  WR1: SIZEOF(QUERY(using_rep <* using_representations(SELF)| NOT('KINEMATIC_MOTION_REPRESENTATION_ARM.GEOMETRIC_REPRESENTATION_CONTEXT_WITH_PARAMETER' IN TYPEOF(using_rep.context_of_items))))= 0;
  WR2: ('KINEMATIC_MOTION_REPRESENTATION_ARM.CURVE_BASED_PATH_WITH_ORIENTATION' IN TYPEOF(segments[1])) OR (n_segments > 1);
END_ENTITY;
(*

Attribute definitions:

segments: the list of Kinematic_path_segments for the Kinematic_path. There shall exist at least one Kinematic_path_segment for the Kinematic_path.

t_start: the parameter value at the start of the Kinematic_path.

n_segments: a number of segments for the Kinematic_path.

closed_path: if the curve_transition_code of the last segment is not discontinuous, then this defines a cyclic movement.

Formal propositions:

WR1: A Kinematic_path shall only be used with a Geometric_representation_context_with_parameter.

WR2: The first segment shall be of type Curve_based_path_with_orientation, or there shall be more than one segment.

4.3.11 Kinematic_path_defined_by_curves   EXPRESS-GMapping table

A Kinematic_path_defined_by_curves is a type of Kinematic_path whose segments are defined by Curve_based_path_with_orientation.

EXPRESS specification:

*)
ENTITY Kinematic_path_defined_by_curves
  SUBTYPE OF (Kinematic_path);
  SELF\Kinematic_path.segments : LIST[1:?] OF Curve_based_path_with_orientation;
END_ENTITY;
(*

Attribute definitions:

segments: an inherited attribute shall be of type Curve_based_path_with_orientation for the Kinematic_path_defined_by_curves. There shall exist at least one Curve_based_path_with_orientation for the Kinematic_path_defined_by_curves.

4.3.12 Kinematic_path_defined_by_nodes   EXPRESS-GMapping table

A Kinematic_path_defined_by_nodes is a type of Kinematic_path whose segments are defined by Path_nodes.

EXPRESS specification:

*)
ENTITY Kinematic_path_defined_by_nodes
  SUBTYPE OF (Kinematic_path);
  SELF\Kinematic_path.segments : LIST[1:?] OF Path_node;
  placement_start : Axis_placement;
END_ENTITY;
(*

Attribute definitions:

segments: an inherited attribute shall be of type Path_node for the Kinematic_path_defined_by_nodes. There shall exist at least one Path_node for the Kinematic_path_defined_by_nodes.

placement_start: specifies the role of the Axis_placement for the Kinematic_path_defined_by_nodes.

4.3.13 Kinematic_path_segment   EXPRESS-GMapping table

A Kinematic_path_segment is either a Path_node or a Curve_based_path_with_orientation, which defines one of potentially several segments of a Kinematic_path.

EXPRESS specification:

*)
ENTITY Kinematic_path_segment
  ABSTRACT SUPERTYPE OF (ONEOF (Path_node,
                                Curve_based_path_with_orientation));
  t_end : parameter_value;
  transition : curve_transition_code;
END_ENTITY;
(*

Attribute definitions:

t_end: the parameter value at the end of the Kinematic_path_segment.

transition: the curve_transition_code that defines how to continue with the next following segment (if any).

4.3.14 Linear_path   EXPRESS-GMapping table

A Linear_path is a type of Path_node. A Linear_path is an arcwise connected bounded linear path element defined by the two transforms of the Path_nodes at the beginning and the end of the path element. The transforms between the values of the motion parameters given in these Path_nodes are obtained by linear interpolation between the transforms specified in the node from and node to of the Linear_path.

EXPRESS specification:

*)
ENTITY Linear_path
  SUBTYPE OF (Path_node);
DERIVE
  SELF\Kinematic_path_segment.transition : curve_transition_code := curve_transition_code.continuous;
END_ENTITY;
(*

Attribute definitions:

transition: an inherited attribute that shall be of type curve_transition_code which value is continuous.

4.3.15 Link_motion_relationship   EXPRESS-GMapping table

A Link_motion_relationship is a type of Definitional_representation_relationship and a type of Geometric_model_relationship_with_transformation. A Link_motion_relationship describes the relation of a Link_motion_representation_along_path with a frame on a Link_motion_transformation.

EXPRESS specification:

*)
ENTITY Link_motion_relationship
  SUBTYPE OF (Definitional_representation_relationship, Geometric_model_relationship_with_transformation);
  SELF\Geometric_model_relationship.rep_1 : link_or_shape_representation;
  SELF\Geometric_model_relationship.rep_2 : Link_motion_representation_along_path;
  transformation_operator : Link_motion_transformation;
WHERE
  WR1: transformation_operator.transform_item_1 IN rep_1.items;
  WR2: transformation_operator.transform_item_2 IN rep_2.items;
END_ENTITY;
(*

Attribute definitions:

rep_1: a link_or_shape_representation which specifies a motion.

rep_2: a Link_motion_representation_along_path that is to be moved.

transformation_operator: the Link_motion_transformation that relates the context_of_items of the related link_or_shape_representation and Link_motion_representation_along_path.

Formal propositions:

WR1: The first item of the transformation_operator shall be a member of the items of rep_1.

WR2: The second item of the transformation_operator shall be a member of the items of rep_2.

4.3.16 Link_motion_representation_along_path   EXPRESS-GMapping table

A Link_motion_representation_along_path is a type of Representation.

EXPRESS specification:

*)
ENTITY Link_motion_representation_along_path
  SUBTYPE OF (Representation);
  SELF\Representation.items : SET[1:?] OF Kinematic_path;
  SELF\Representation.context_of_items : Geometric_representation_context_with_parameter;
END_ENTITY;
(*

Attribute definitions:

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

context_of_items: a Geometric_representation_context_with_parameter in which the items are related to form a representation of some concept.

4.3.17 Link_motion_transformation   EXPRESS-GMapping table

A Link_motion_transformation is a specification of the transformation that transforms a rigid_placement of a Kinematic_link_representation along a Kinematic_path.

EXPRESS specification:

*)
ENTITY Link_motion_transformation;
  transform_item_1 : rigid_placement;
  transform_item_2 : Kinematic_path;
END_ENTITY;
(*

Attribute definitions:

transform_item_1: specifies the rigid_placement for the Link_motion_transformation.

transform_item_2: specifies the Kinematic_path for the Link_motion_transformation.

4.3.18 Path_node   EXPRESS-GMapping table

A Path_node is a type of Kinematic_path_segment that is a constituent of a path definition. It consists of a linear transformation and its associated motion parameter. Each Path_node is either a Point_to_point_path, a Circular_path, a Linear_path, or a Curve_based_path.

EXPRESS specification:

*)
ENTITY Path_node
  ABSTRACT SUPERTYPE OF (ONEOF (Point_to_point_path,
                                Circular_path,
                                Linear_path,
                                Curve_based_path))
  SUBTYPE OF (Kinematic_path_segment);
  placement_end : Axis_placement;
END_ENTITY;
(*

Attribute definitions:

placement_end: a linear transformation that specifies a local frame on a path.

4.3.19 Path_parameter_representation   EXPRESS-GMapping table

A Path_parameter_representation is a type of Definitional_representation.

EXPRESS specification:

*)
ENTITY Path_parameter_representation
  SUBTYPE OF (Definitional_representation);
  SELF\Representation.context_of_items : Path_parameter_representation_context;
  SELF\Representation.items : SET[1:?] OF Bounded_curve;
WHERE
  WR1: SELF\Representation.context_of_items\Geometric_coordinate_space.dimension_count = 2;
END_ENTITY;
(*

Attribute definitions:

context_of_items: the Path_parameter_representation_context that is a context of the Path_parameter_representation.

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

Formal propositions:

WR1: A Path_parameter_representation shall only be used in a two dimensional context.

4.3.20 Path_parameter_representation_context   EXPRESS-GMapping table

A Path_parameter_representation_context is a type of Geometric_coordinate_space and a type of Parametric_representation_context.

EXPRESS specification:

*)
ENTITY Path_parameter_representation_context
  SUBTYPE OF (Geometric_coordinate_space, Parametric_representation_context);
END_ENTITY;
(*

4.3.21 Point_to_point_path   EXPRESS-GMapping table

A Point_to_point_path is a type of Path_node. A Point_to_point_path defines the frames which are to be traversed. It does not have a prescribed interpolation.

NOTE    The interpolation is left to the software that uses the data.

EXPRESS specification:

*)
ENTITY Point_to_point_path
  SUBTYPE OF (Path_node);
DERIVE
  SELF\Kinematic_path_segment.transition : curve_transition_code := curve_transition_code.discontinuous;
END_ENTITY;
(*

Attribute definitions:

transition: an inherited attribute that shall be of type curve_transition_code which value is discontinuous.

4.3.22 Product_structure_link_motion_association   EXPRESS-GMapping table

A Product_structure_link_motion_association is a type of Contextual_shape_representation that links a Link_motion_relationship to a corresponding Product_occurrence or Specified_occurrence of an assembly structure.

EXPRESS specification:

*)
ENTITY Product_structure_link_motion_association
  SUBTYPE OF (Contextual_shape_representation);
  SELF\Contextual_shape_representation.product_context : Assembly_component_relationship;
  SELF\Contextual_shape_representation.shape_representing_relationship : Link_motion_relationship;
  subStructure : OPTIONAL Specified_occurrence;
END_ENTITY;
(*

Attribute definitions:

product_context: an inherited attribute that shall be of type Assembly_component_relationship and whose related_view indicates the Product_occurrence that is either completely or in part of represented by the Link_motion_relationship.

shape_representing_relationship: an inherited attribute that shall be of type Link_motion_relationship.

subStructure: specifies an optional Specified_occurrence. The value of this attribute need not be specified.

4.4 ARM subtype constraint definitions

This subclause specifies the ARM subtype constraints for this module. Each subtype constraint places constraints on the possible super-type / subtype instantiations. The ARM subtype constraints and definitions are specified below.

4.4.1 kmr_geometric_representation_context_subtypes   EXPRESS-GMapping table

The kmr_geometric_representation_context_subtypes constraint specifies a constraint that applies to instances of Geometric_coordinate_space and enforces the rule that its subtypes Geometric_representation_context_with_parameter and Path_parameter_representation_context are exclusive.

EXPRESS specification:

*)
SUBTYPE_CONSTRAINT kmr_geometric_representation_context_subtypes FOR Geometric_coordinate_space;
  ONEOF (Geometric_representation_context_with_parameter,
         Path_parameter_representation_context);
END_SUBTYPE_CONSTRAINT;
(*

4.4.2 kmr_geometric_representation_item_subtypes   EXPRESS-GMapping table

The kmr_geometric_representation_item_subtypes constraint specifies a constraint that applies to instances of Detailed_geometric_model_element and enforces the rule that its subtypes Kinematic_path and Axis_placement are exclusive.

EXPRESS specification:

*)
SUBTYPE_CONSTRAINT kmr_geometric_representation_item_subtypes FOR Detailed_geometric_model_element;
  ONEOF (Kinematic_path,
         Axis_placement);
END_SUBTYPE_CONSTRAINT;
(*

4.4.3 kmr_representation_subtypes   EXPRESS-GMapping table

The kmr_representation_subtypes constraint specifies a constraint that applies to instances of Representation and enforces the rule that its subtypes Interpolated_configuration_representation and Link_motion_representation_along_path are exclusive.

EXPRESS specification:

*)
SUBTYPE_CONSTRAINT kmr_representation_subtypes FOR Representation;
  ONEOF (Interpolated_configuration_representation,
         Link_motion_representation_along_path);
END_SUBTYPE_CONSTRAINT;
(*



*)
END_SCHEMA;  -- Kinematic_motion_representation_arm
(*


© ISO 2019 — All rights reserved