Source : ISO 10303-104
SCHEMA kinematic_analysis_control_and_result_schema;
REFERENCE FROM
kinematic_motion_representation_schema -- ISO 10303-105
(kinematic_path,
motion_parameter_measure);
REFERENCE FROM
kinematic_structure_schema -- ISO 10303-105
(kinematic_joint,
kinematic_link_representation,
mechanism,
pair_value,
rigid_placement);
REFERENCE FROM
geometry_schema -- ISO 10303-42
(geometric_representation_context);
REFERENCE FROM
representation_schema -- ISO 10303-43
(representation,
representation_relationship);
TYPE interpolation_type =
ENUMERATION
OF
(undefined,
synchronous,
linear);
END_TYPE;
TYPE kinematic_analysis_definition =
SELECT
(interpolated_configuration_sequence,
prescribed_path);
END_TYPE;
TYPE kinematic_result =
SELECT
(interpolated_configuration_sequence,
resulting_path);
END_TYPE;
ENTITY configuration_interpolation;
previous_configuration_definition : configuration_definition;
next_configuration_definition : configuration_definition;
interpolation : interpolation_type;
END_ENTITY;
ENTITY kinematic_control;
controlled_mechanism : mechanism;
contained_kinematic_programs : SET[1:?] OF kinematic_analysis_definition;
END_ENTITY;
ENTITY founded_kinematic_path
SUBTYPE OF (representation);
SELF\representation.items : SET[1:?] OF kinematic_path;
SELF\representation.context_of_items : geometric_representation_context;
DERIVE
paths : SET[1:?] OF kinematic_path := SELF\representation.items;
founding : geometric_representation_context := SELF\representation.context_of_items;
END_ENTITY;
ENTITY motion_link_relationship
SUPERTYPE OF
(ONEOF (prescribed_path,
resulting_path))
SUBTYPE OF (representation_relationship);
SELF\representation_relationship.rep_1 : founded_kinematic_path;
SELF\representation_relationship.rep_2 : kinematic_link_representation;
related_frame : rigid_placement;
DERIVE
motion : founded_kinematic_path := SELF\representation_relationship.rep_1;
frame_link : kinematic_link_representation := SELF\representation_relationship.rep_2;
WHERE
WR1: related_frame IN frame_link\representation.items;
END_ENTITY;
ENTITY configuration_definition;
pair_values : SET[1:?] OF pair_value;
t_parameter : motion_parameter_measure;
END_ENTITY;
ENTITY interpolated_configuration_sequence;
interpolation : SET[1:?] OF configuration_interpolation;
END_ENTITY;
ENTITY prescribed_path
SUBTYPE OF (motion_link_relationship);
controlling_joints :
OPTIONAL
SET[1:6] OF kinematic_joint;
END_ENTITY;
ENTITY kinematic_analysis_result;
analysed_mechanism : mechanism;
contained_kinematic_results : SET[1:?] OF kinematic_result;
WHERE
WR1: (SIZEOF (QUERY (result <* contained_kinematic_results | 'KINEMATIC_ANALYSIS_CONTROL_AND_RESULT_SCHEMA.RESULTING_PATH'
IN TYPEOF (result))) > 0) XOR (SIZEOF (QUERY (result <* contained_kinematic_results | (('KINEMATIC_ANALYSIS_CONTROL_AND_RESULT_SCHEMA.'+
'INTERPOLATED_CONFIGURATION_SEQUENCE' IN TYPEOF (result)) AND (SIZEOF (QUERY (sequence <* result\
interpolated_configuration_sequence.interpolation | (sequence.interpolation <> undefined ))) > 0)))) = 0);
END_ENTITY;
ENTITY kinematic_analysis_consistency;
control : kinematic_control;
result : kinematic_analysis_result;
WHERE
WR1: control.controlled_mechanism :=: result.analysed_mechanism;
END_ENTITY;
ENTITY resulting_path
SUBTYPE OF (motion_link_relationship);
controlling_joints : SET[1:?] OF kinematic_joint;
END_ENTITY;
END_SCHEMA; -- kinematic_analysis_control_and_result_schema