Schema: kinematic_analysis_control_and_result_schema

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