| Application module: Elemental geometric shape | ISO/TS 10303-1004:2021(E)  © ISO  | 
         
         (*
ISO/TC 184/SC 4/WG 12 N10666 - ISO/TS 10303-1004 Elemental geometric shape - EXPRESS ARM
Supersedes 
         ISO/TC 184/SC 4/WG 12 N10330
*)
         
SCHEMA Elemental_geometric_shape_arm;
         USE FROM
         Elemental_topology_arm;
            -- ISO/TS 10303-1005
         USE FROM
         Foundation_representation_arm;
            -- ISO/TS 10303-1006
TYPE cartesian_transformation =
         
         
         SELECT
            (Cartesian_transformation_2d, 
    Cartesian_transformation_3d);
         END_TYPE; 
         
TYPE geometric_model_item =
         
         
         SELECT
            (Detailed_geometric_model_element, 
    Detailed_topological_model_element);
         END_TYPE; 
         
TYPE template_definition_select =
         
         EXTENSIBLE
         
         
         SELECT
            (Geometric_model);
         END_TYPE; 
         
ENTITY Axis1_placement
           SUBTYPE OF (Axis_placement);
           axis : 
         OPTIONAL 
         Direction;
WHERE
           WR1: SELF\Axis_placement.dim = 3;
           WR2: SIZEOF(axis\Direction.direction_ratios) = 3;
         
         END_ENTITY;
ENTITY Axis_placement
           ABSTRACT SUPERTYPE
         
         OF (ONEOF (Axis_placement_2d,
                                Axis_placement_3d,
                                Axis1_placement))
           SUBTYPE OF (Detailed_geometric_model_element);
           location : Cartesian_point;
DERIVE
           dim : INTEGER := SIZEOF(location\Cartesian_point.coordinates);
         
         END_ENTITY;
ENTITY Axis_placement_2d
           SUBTYPE OF (Axis_placement);
           ref_direction : 
         OPTIONAL 
         Direction;
WHERE
           WR1: SELF\Axis_placement.dim = 2;
           WR2: SIZEOF(ref_direction\Direction.direction_ratios) = 2;
         
         END_ENTITY;
ENTITY Axis_placement_3d
           SUBTYPE OF (Axis_placement);
           axis : 
         OPTIONAL 
         Direction;
           ref_direction : 
         OPTIONAL 
         Direction;
WHERE
           WR1: SELF\Axis_placement.dim = 3;
           WR2: SIZEOF(axis\Direction.direction_ratios) = 3;
           WR3: SIZEOF(ref_direction\Direction.direction_ratios) = 3;
         
         END_ENTITY;
ENTITY Cartesian_point
           SUBTYPE OF (Point);
           coordinates : LIST[1:3] OF length_measure;
         
         END_ENTITY;
ENTITY Cartesian_transformation_2d
           SUBTYPE OF (Detailed_geometric_model_element);
           multiplication_matrix : ARRAY[1:2] OF Direction;
           translation : Cartesian_point;
           scale : 
         OPTIONAL 
         REAL;
WHERE
           WR1: SIZEOF(multiplication_matrix[1]\Direction.direction_ratios)=2;
           WR2: SIZEOF(multiplication_matrix[2]\Direction.direction_ratios)=2;
           WR3: SIZEOF(translation.coordinates)=2;
         
         END_ENTITY;
ENTITY Cartesian_transformation_3d
           SUBTYPE OF (Detailed_geometric_model_element);
           multiplication_matrix : ARRAY[1:3] OF Direction;
           translation : Cartesian_point;
           scale : 
         OPTIONAL 
         REAL;
WHERE
           WR1: SIZEOF(multiplication_matrix[1]\Direction.direction_ratios)=3;
           WR2: SIZEOF(multiplication_matrix[2]\Direction.direction_ratios)=3;
           WR3: SIZEOF(multiplication_matrix[3]\Direction.direction_ratios)=3;
           WR4: SIZEOF(translation.coordinates)=3;
         
         END_ENTITY;
ENTITY Detailed_geometric_model_element
           ABSTRACT SUPERTYPE
         
         OF (ONEOF (Direction,
                                Axis_placement,
                                Cartesian_transformation_2d,
                                Cartesian_transformation_3d,
                                Geometric_placement_operation,
                                Point))
           SUBTYPE OF (Representation_item);
         
         END_ENTITY;
ENTITY Direction
           SUBTYPE OF (Detailed_geometric_model_element);
           direction_ratios : LIST[2:3] OF REAL;
         
         END_ENTITY;
ENTITY Geometric_coordinate_space
           SUBTYPE OF (Numerical_representation_context);
           dimension_count : INTEGER;
WHERE
           WR1: dimension_count >0;
         
         END_ENTITY;
ENTITY Geometric_model
           SUBTYPE OF (Representation);
           version_id : 
         OPTIONAL 
         STRING;
           model_extent : 
         OPTIONAL 
         length_measure;
           SELF\Representation.context_of_items : Geometric_coordinate_space;
           SELF\Representation.items : SET[1:?] OF geometric_model_item;
         
         END_ENTITY;
ENTITY Geometric_operator_transformation
           SUBTYPE OF (Geometric_placement_operation);
           target : cartesian_transformation;
         
         END_ENTITY;
ENTITY Geometric_placement
           SUBTYPE OF (Geometric_placement_operation);
           target : Axis_placement;
         
         END_ENTITY;
ENTITY Geometric_placement_operation
           ABSTRACT SUPERTYPE
         
         OF (ONEOF (Geometric_placement,
                                Geometric_operator_transformation))
           SUBTYPE OF (Detailed_geometric_model_element);
           source : Axis_placement;
           template_definition : template_definition_select;
         
         END_ENTITY;
ENTITY Point
           SUBTYPE OF (Detailed_geometric_model_element);
         
         END_ENTITY;
         END_SCHEMA;  -- Elemental_geometric_shape_arm
© ISO 2021 — All rights reserved