Integrated application resource: Kinematics ISO 10303-105: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 Kinematic property
   4.1 General
   4.2 Fundamental concepts and assumptions
   4.3 Kinematic property entity definitions
   4.4 Kinematic property subtype constraint definition

5 Kinematic topology
   5.1 General
   5.2 Fundamental concepts and assumptions
   5.3 Kinematic topology type definition
   5.4 Kinematic topology entity definitions
   5.5 Kinematic topology subtype constraint definition
   5.6 Kinematic topology function definitions
6 Kinematic structure
   6.1 General
   6.2 Fundamental concepts and assumptions
   6.3 Kinematic structure type definitions
   6.4 Kinematic structure entity definitions
   6.5 Kinematic structure subtype constraint definition
   6.6 Kinematic structure function definitions

7 Kinematic state
   7.1 General
   7.2 Fundamental concepts and assumptions
   7.3 Kinematic state type definitions
   7.4 Kinematic state entity definitions
   7.5 Kinematic state subtype constraint definition
   7.6 Kinematic state function definitions
8 Kinematic motion representation
   8.1 General
   8.2 Fundamental concepts and assumptions
   8.3 Kinematic motion representation type definitions
   8.4 Kinematic motion representation entity definitions
   8.5 Kinematic motion representation subtype constraint definitions
9 Kinematic analysis control and result
   9.1 General
   9.2 Fundamental concepts and assumptions
   9.3 Kinematic analysis control and result type definitions
   9.4 Kinematic analysis control and result entity definitions
   9.5 Kinematic analysis control and result subtype constraint definition
A Short names of entities
B Information object registration
C Computer interpretable listings
D EXPRESS-G diagrams
E Technical discussion
F Change history
Bibliography
Index

(*
ISO/TC 184/SC 4/WG 12 N8482 - ISO 10303-105 Kinematics - EXPRESS
Supersedes ISO/TC 184/SC 4/WG 12 N7301
*)



SCHEMA kinematic_topology_schema;

REFERENCE FROM representation_schema   -- ISO 10303-43
  (representation);

REFERENCE FROM topology_schema   -- ISO 10303-42
  (connected_edge_set,
   edge,
   edge_loop,
   oriented_edge,
   path,
   vertex);


TYPE kinematic_topology_representation_select = SELECT
   (kinematic_topology_structure,
    kinematic_topology_directed_structure,
    kinematic_topology_network_structure);
END_TYPE;

ENTITY kinematic_joint
  SUBTYPE OF (edge);
  SELF\edge.edge_start : kinematic_link;
  SELF\edge.edge_end : kinematic_link;
UNIQUE
  UR1: edge_start, edge_end;
WHERE
  WR1: edge_start :<>: edge_end;
END_ENTITY;

ENTITY kinematic_link
  SUBTYPE OF (vertex);
END_ENTITY;

ENTITY kinematic_loop
  SUBTYPE OF (edge_loop);
  SELF\path.edge_list : LIST[1:?] OF UNIQUE oriented_joint;
END_ENTITY;

ENTITY kinematic_topology_directed_structure
  SUBTYPE OF (representation);
  SELF\representation.items : SET[1:?] OF oriented_joint;
  parent : kinematic_topology_structure;
WHERE
  WR1: context_of_items :=: parent.context_of_items;
  WR2: get_kinematic_joints_from_oriented_joints(items) <= parent.items;
END_ENTITY;

ENTITY kinematic_topology_network_structure
  SUBTYPE OF (representation);
  SELF\representation.items : SET[1:?] OF kinematic_loop;
  parent : kinematic_topology_structure;
WHERE
  WR1: context_of_items :=: parent.context_of_items;
  WR2: get_kinematic_joints_from_kinematic_loops(items) <= parent.items;
END_ENTITY;

ENTITY kinematic_topology_structure
  SUBTYPE OF (representation);
  SELF\representation.items : SET[1:?] OF kinematic_joint;
WHERE
  WR1: SIZEOF (QUERY (item <* items | 'TOPOLOGY_SCHEMA.ORIENTED_EDGE' in TYPEOF(item))) = 0;
END_ENTITY;

ENTITY kinematic_topology_substructure
  SUBTYPE OF (kinematic_topology_structure);
  parent : kinematic_topology_structure;
WHERE
  WR1: context_of_items :=: parent.context_of_items;
  WR2: SELF\kinematic_topology_structure.items <= parent\kinematic_topology_structure.items;
END_ENTITY;

ENTITY kinematic_topology_tree_structure
  SUBTYPE OF (kinematic_topology_directed_structure);
END_ENTITY;

ENTITY oriented_joint
  SUBTYPE OF (oriented_edge);
  SELF\oriented_edge.edge_element : kinematic_joint;
END_ENTITY;

SUBTYPE_CONSTRAINT kts_representation_subtypes FOR representation;
  ONEOF (kinematic_topology_structure,
         kinematic_topology_directed_structure,
         kinematic_topology_network_structure);
END_SUBTYPE_CONSTRAINT;

FUNCTION get_kinematic_joints_from_kinematic_loops
 (kls : SET[0:?] OF kinematic_loop) : SET[0:?] OF kinematic_joint;
LOCAL
    result : SET OF oriented_joint := [];
  END_LOCAL;
  IF SIZEOF(kls) > 0 THEN
    REPEAT i := 1 TO HIINDEX(kls);
      result := result + kls[i].edge_list;
    END_REPEAT;
  END_IF;
  RETURN (get_kinematic_joints_from_oriented_joints(result));
END_FUNCTION;

FUNCTION get_kinematic_joints_from_oriented_joints
 (ors : SET[0:?] OF oriented_joint) : SET[0:?] OF kinematic_joint;
LOCAL
    result : SET OF kinematic_joint := [];
  END_LOCAL;
  IF SIZEOF(ors) > 0 THEN
    REPEAT i := 1 TO HIINDEX(ors);
      result := result + ors[i].edge_element;
    END_REPEAT;
  END_IF;
  RETURN (result);
END_FUNCTION;

END_SCHEMA;  -- kinematic_topology_schema


© ISO 2019 — All rights reserved