Application module: Kinematic motion representation | ISO/TS 10303-1796:2019(E) © ISO |
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;
(*
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.
This subclause specifies the ARM types for this application module. The ARM types and definitions are specified below.
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.
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;
(*
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.
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;
(*
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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.
EXPRESS specification:
*)
ENTITY Path_parameter_representation_context
SUBTYPE OF (Geometric_coordinate_space, Parametric_representation_context);
END_ENTITY;
(*
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.
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.
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.
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;
(*
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;
(*
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