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

(*
ISO/TC 184/SC 4/WG 12 N10318 - ISO/TS 10303-1796 Kinematic motion representation - EXPRESS ARM
Supersedes ISO/TC 184/SC 4/WG 12 N9362
*)



SCHEMA Kinematic_motion_representation_arm;

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);


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

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

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

TYPE link_or_shape_representation = SELECT
   (Kinematic_link_representation,
    Geometric_model);
END_TYPE;

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

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

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;

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

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

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;

ENTITY Interpolated_configuration_segment;
  state : Mechanism_state_representation;
  t_parameter : parameter_value;
  interpolation : interpolation_type;
END_ENTITY;

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;

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

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;

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

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;

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;

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

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;

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;

ENTITY Link_motion_transformation;
  transform_item_1 : rigid_placement;
  transform_item_2 : Kinematic_path;
END_ENTITY;

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;

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;

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

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

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;

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

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

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