Schema: Elemental_geometric_shape_arm
SCHEMA Elemental_geometric_shape_arm;
USE FROM
Foundation_representation_arm;
-- ISO/TS 10303-1006
USE FROM
Value_with_unit_arm;
-- ISO/TS 10303-1054
TYPE cartesian_transformation =
SELECT
(Cartesian_transformation_2d,
Cartesian_transformation_3d);
END_TYPE;
TYPE geometric_mapping_target =
SELECT
(Axis_placement,
cartesian_transformation);
END_TYPE;
ENTITY Axis_placement
SUBTYPE OF (Detailed_geometric_model_element);
origin : Cartesian_point;
x_axis : Direction;
y_axis : Direction;
DERIVE
dim : INTEGER := SIZEOF(origin.coordinates);
WHERE
WR1: dim >1;
WR2: dim = SIZEOF(x_axis.coordinates);
WR3: dim = SIZEOF(y_axis.coordinates);
END_ENTITY;
ENTITY Axis_placement_mapping;
source : Axis_placement;
target : Axis_placement;
WHERE
WR1: source\Axis_placement.dim = target\Axis_placement.dim;
END_ENTITY;
ENTITY Cartesian_point
SUBTYPE OF (Detailed_geometric_model_element);
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;
WHERE
WR1: SIZEOF(multiplication_matrix[1]\Direction.coordinates)=2;
WR2: SIZEOF(multiplication_matrix[2]\Direction.coordinates)=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;
WHERE
WR1: SIZEOF(multiplication_matrix[1]\Direction.coordinates)=3;
WR2: SIZEOF(multiplication_matrix[2]\Direction.coordinates)=3;
WR3: SIZEOF(multiplication_matrix[3]\Direction.coordinates)=3;
WR4: SIZEOF(translation.coordinates)=3;
END_ENTITY;
ENTITY Detailed_geometric_model_element
ABSTRACT SUPERTYPE
OF (ONEOF (Cartesian_point,
Direction,
Axis_placement,
Cartesian_transformation_2d,
Cartesian_transformation_3d))
SUBTYPE OF (Representation_item);
END_ENTITY;
ENTITY Direction
SUBTYPE OF (Detailed_geometric_model_element);
coordinates : LIST[2:3] OF length_measure;
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 Detailed_geometric_model_element;
END_ENTITY;
END_SCHEMA; -- Elemental_geometric_shape_arm