Application module: Elemental geometric shape | ISO/TS 10303-1004:2021(E) © ISO |
This clause specifies the information requirements for the Elemental geometric shape application module. The information requirements are specified as the Application Reference Model (ARM) of this application module.
NOTE 1 A graphical representation of the information requirements is given in Annex C.
NOTE 2 The mapping specification is specified in 5.1. It shows how the information requirements are met by using common resources and constructs defined or imported in the MIM schema of this application module.
This clause defines the information requirements to which implementations shall conform using the EXPRESS language as defined in ISO 10303-11. The following begins the Elemental_geometric_shape_arm schema and identifies the necessary external references.
EXPRESS specification:
*)
SCHEMA Elemental_geometric_shape_arm;
(*
The following EXPRESS interface statements specify the elements imported from the ARMs of other application modules.
EXPRESS specification:
*)
USE FROM
Elemental_topology_arm;
--
ISO/TS 10303-1005
USE FROM
Foundation_representation_arm;
--
ISO/TS 10303-1006
(*
NOTE 1 The schemas referenced above are specified in the following part of ISO 10303:
Elemental_topology_arm ISO/TS 10303-1005 Foundation_representation_arm ISO/TS 10303-1006
NOTE 2 See Annex C, Figures C.1and C.2 for a graphical representation of this schema.
This subclause specifies the ARM types for this application module. The ARM types and definitions are specified below.
The cartesian_transformation type allows for the designation of the data types Cartesian_transformation_2d and Cartesian_transformation_3d.
The cartesian_transformation type is a mechanism to refer to an instance of either a 2D or 3D cartesian transformation operator.EXPRESS specification:
*)
TYPE
cartesian_transformation =
SELECT
(Cartesian_transformation_2d,
Cartesian_transformation_3d);
END_TYPE;
(*
The geometric_model_item type allows for the designation of the data types Detailed_geometric_model_element and Detailed_topological_model_element.
EXPRESS specification:
*)
TYPE
geometric_model_item =
SELECT
(Detailed_geometric_model_element,
Detailed_topological_model_element);
END_TYPE;
(*
The template_definition_select type is an extensible list of alternate data types that allows for the designation of the data type Geometric_model.
NOTE The list of entity data types may be extended in application modules that use the constructs of this module.
EXPRESS specification:
*)
TYPE
template_definition_select =
EXTENSIBLE
SELECT
(Geometric_model);
END_TYPE;
(*
This subclause specifies the ARM entities for this module. Each ARM application entity is an atomic element that embodies a unique application concept and contains attributes specifying the data elements of the entity. The ARM entities and definitions are specified below.
EXPRESS specification:
*)
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;
(*
Attribute definitions:
axis: the direction of the axis.
Formal propositions:
WR1: The dimensionality of the Axis_placement_2d shall be 3.
WR2: The number of dimension ratios of the axis shall be 3.
NOTE An Axis_placement might be used as a local right-handed, 2D or 3D, coordinate system within its Geometric_coordinate_space.
EXPRESS specification:
*)
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;
(*
Attribute definitions:
location: the Cartesian_point that defines the position of the Axis_placement in the geometric space.
dim: the dimensionality of the Axis_placement. It is equal to the number of coordinates of the location.
EXPRESS specification:
*)
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;
(*
Attribute definitions:
ref_direction: the direction used to determine the direction of the local X axis. The value of this attribute need not be specified. If ref_direction is omitted, this directions is taken from the geometric coordinate system
Formal propositions:
WR1: The dimensionality of the Axis_placement_2d shall be two.
WR2: The dimensionality of the ref_direction shall be two.
The third direction of the coordinate system is defined by the vector product of axis and ref_direction.
EXPRESS specification:
*)
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;
(*
Attribute definitions:
axis: the Direction that defines the second axis of the Axis_placement. The value of this attribute need not be specified.
ref_direction: the direction used to determine the direction of the local X axis. The value of this attribute need not be specified. If axis or ref_direction is omitted, these directions are taken from the geometric coordinate system
Formal propositions:
WR1: The dimensionality of the Axis_placement_3d shall be three.
WR2: The dimensionality of the axis shall be three.
WR3: The dimensionality of the ref_direction shall be three.
Informal propositions:
IP1: If both axis and ref_direction are provided then the vector product of axis and ref_direction shall not be a null vector.
EXPRESS specification:
*)
ENTITY Cartesian_point
SUBTYPE OF (Point);
coordinates : LIST[1:3] OF length_measure;
END_ENTITY;
(*
Attribute definitions:
coordinates: the list of up to 3 length measure values that define the cartesian coordinates of the point.
Let be:
The coordinates of Q shall be obtained by the formula: Q = M*P + A
EXPRESS specification:
*)
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;
(*
Attribute definitions:
multiplication_matrix: the array of two instances of Direction that defines the multiplication matrix of the transformation.
translation: the Cartesian_point that defines the position of the result of the application of the transformation to the origin of the geometric space.
scale: the scaling value specified for the transformation. The value of this attribute need not be specified.
Formal propositions:
WR1: The first element of the matrix shall refer to a two-dimensional Direction.
WR2: The second element of the matrix shall refer to a two-dimensional Direction.
WR3: The translation point shall have two coordinates.
Let be:
The coordinates of Q shall be obtained by the formula: Q = M*P + A
EXPRESS specification:
*)
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;
(*
Attribute definitions:
multiplication_matrix: the array of three instances of Direction that defines the multiplication matrix of the transformation.
translation: the Cartesian_point that defines the position of the result of the application of the transformation to the origin of the geometric space.
scale: the scaling value specified for the transformation. The value of this attribute need not be specified.
Formal propositions:
WR1: The first element of the matrix shall refer to a three-dimensional Direction.
WR2: The second element of the matrix shall refer to a three-dimensional Direction.
WR3: The third element of the matrix shall refer to a three-dimensional Direction.
WR4: The translation point shall have three coordinates.
Only non-abstract specializations of the Detailed_geometric_model_element entity data type can be instantiated.
A Detailed_geometric_model_element is either a Cartesian_point or a Direction or an Axis_placement or a Cartesian_transformation_2d or a Cartesian_transformation_3d or a Geometric_placement_operation or a specialization defined elsewhere.EXPRESS specification:
*)
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;
(*
Informal propositions:
IP1: A Detailed_geometric_model_element shall be an item of a Geometric_model or serve to create an item of a Geometric_model.
IP2: The instances of Geometric_model that contain the Detailed_geometric_model_element shall all have the same space dimensionality.
NOTE 1 A Direction is not located in a geometric space but is used in the definition of geometric entities like Axis_placement.
EXPRESS specification:
*)
ENTITY Direction
SUBTYPE OF (Detailed_geometric_model_element);
direction_ratios : LIST[2:3] OF REAL;
END_ENTITY;
(*
Attribute definitions:
direction_ratios: the list of 2 or 3 length measure values that define the direction ratios of the Direction.
NOTE 2 The direction ratios of a Direction may not be normalised, and the actual magnitudes of the components have no effect upon the direction being defined; only the ratios x:y:z or x:y are significant.
There shall be at least two units specified for the Geometric_coordinate_space: one length unit and one plane angle unit.
The length unit applies to each coordinate direction.
EXAMPLE The length unit millimetre and the angle unit radian are examples of units that may assigned to a Geometric_coordinate_space.
NOTE The origin for coordinate values is implicitly defined as being the cartesian point whose coordinates are all zero.
EXPRESS specification:
*)
ENTITY Geometric_coordinate_space
SUBTYPE OF (Numerical_representation_context);
dimension_count : INTEGER;
WHERE
WR1: dimension_count >0;
END_ENTITY;
(*
Attribute definitions:
dimension_count: the dimensionality of the geometric space.
Formal propositions:
WR1: The dimensionality shall be greater than zero.
The Geometric_model is founded in a Geometric_coordinate_space.
The items of a Geometric_model are instances of Detailed_geometric_model_element and Detailed_topological_model_element.
EXPRESS specification:
*)
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;
(*
Attribute definitions:
version_id: the text that specifies the version identifier of the Geometric_model. The value of this attribute need not be specified.
model_extent: the length_measure that specifies the radius of a sphere that encloses all elements of the geometric model. The centre of the sphere is located at the origin of the Geometric_coordinate_space of the Geometric_model.
The value of this attribute need not be specified.
context_of_items: the Geometric_coordinate_space in which the Geometric_model is defined.
items: the instances of Detailed_geometric_model_element and Detailed_topological_model_element that are included in the Geometric_model.
EXPRESS specification:
*)
ENTITY Geometric_operator_transformation
SUBTYPE OF (Geometric_placement_operation);
target : cartesian_transformation;
END_ENTITY;
(*
Attribute definitions:
target: the cartesian_transformation that identifies the target of the transformation.
EXPRESS specification:
*)
ENTITY Geometric_placement
SUBTYPE OF (Geometric_placement_operation);
target : Axis_placement;
END_ENTITY;
(*
Attribute definitions:
target: the Axis_placement that identifies the target of the placement.
EXPRESS specification:
*)
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;
(*
Attribute definitions:
source: the Axis_placement that identifies the source of the operation.
template_definition: the value from template_definition_select.
EXPRESS specification:
*)
ENTITY Point
SUBTYPE OF (Detailed_geometric_model_element);
END_ENTITY;
(*
*)
END_SCHEMA; -- Elemental_geometric_shape_arm
(*
© ISO 2021 — All rights reserved