Application module: Geometric tolerance | ISO/TS 10303-1051:2019(E) © ISO |
This clause specifies the EXPRESS schema derived from the mapping table. It uses elements from the common resources or from other application modules and defines the EXPRESS constructs that are specific to this part of ISO 10303.
This clause constitutes the Module Interpreted Module (MIM) of the application module.
This clause also specifies the modifications that apply to the constructs imported from the common resources.
The following restrictions apply to the use, in this schema, of constructs defined in common resources or in application modules:
Short names of entities defined in this schema are described in Annex A. Unambiguous identification of this schema is defined in Annex B.
EXPRESS specification:
*)
SCHEMA Geometric_tolerance_mim;
USE FROM
Derived_shape_element_mim;
--
ISO/TS 10303-1130
USE FROM
Dimension_tolerance_mim;
--
ISO/TS 10303-1050
USE FROM
Feature_and_connection_zone_mim;
--
ISO/TS 10303-1671
USE FROM
Measure_representation_mim;
--
ISO/TS 10303-1118
USE FROM
Part_shape_mim;
--
ISO/TS 10303-1807
USE FROM
product_property_definition_schema
--
ISO 10303-41
(property_definition,
product_definition_shape,
shape_aspect);
USE FROM
product_property_representation_schema
--
ISO 10303-41
(property_definition_representation,
shape_representation);
USE FROM
Shape_composition_mim;
--
ISO/TS 10303-1742
USE FROM
Support_resource_mim;
--
ISO/TS 10303-1800
USE FROM
shape_aspect_definition_schema
--
ISO 10303-47
(all_around_shape_aspect,
apex,
between_shape_aspect,
centre_of_symmetry,
continuous_shape_aspect,
composite_shape_aspect,
composite_group_shape_aspect,
common_datum,
common_datum_list,
contacting_feature,
datum,
datum_feature,
datum_reference_modifier_with_value,
datum_reference,
datum_reference_compartment,
datum_reference_element,
datum_system,
datum_target,
derived_shape_aspect,
extension,
general_datum_reference,
geometric_alignment,
geometric_contact,
geometric_intersection,
parallel_offset,
perpendicular_to,
referenced_modified_datum,
simple_datum_reference_modifier,
shape_aspect_deriving_relationship,
shape_representation_with_parameters,
symmetric_shape_aspect,
tangent);
USE FROM
shape_tolerance_schema
--
ISO 10303-47
(dimension_related_tolerance_zone_element,
directed_tolerance_zone,
geometric_tolerance,
geometric_tolerance_auxiliary_classification,
geometric_tolerance_relationship,
geometric_tolerance_with_datum_reference,
geometric_tolerance_with_defined_unit,
geometric_tolerance_with_defined_area_unit,
geometric_tolerance_with_maximum_tolerance,
geometric_tolerance_with_modifiers,
gps_filtration_specification,
gps_filter,
modified_geometric_tolerance,
non_uniform_zone_definition,
oriented_tolerance_zone,
projected_zone_definition,
projected_zone_definition_with_offset,
runout_zone_definition,
runout_zone_orientation_reference_direction,
tolerance_zone,
tolerance_zone_definition,
tolerance_zone_form,
tolerance_zone_with_datum,
cylindricity_tolerance,
flatness_tolerance,
line_profile_tolerance,
position_tolerance,
roundness_tolerance,
straightness_tolerance,
surface_profile_tolerance,
angularity_tolerance,
circular_runout_tolerance,
coaxiality_tolerance,
concentricity_tolerance,
parallelism_tolerance,
perpendicularity_tolerance,
symmetry_tolerance,
total_runout_tolerance,
unequally_disposed_geometric_tolerance);
USE FROM
Value_with_unit_extension_mim;
--
ISO/TS 10303-1753
REFERENCE FROM
support_resource_schema
--
ISO 10303-41
(bag_to_set,
type_check_function);
(*
NOTE 1 The schemas referenced above are specified in the following part of ISO 10303:
Derived_shape_element_mim ISO/TS 10303-1130 Dimension_tolerance_mim ISO/TS 10303-1050 Feature_and_connection_zone_mim ISO/TS 10303-1671 Measure_representation_mim ISO/TS 10303-1118 Part_shape_mim ISO/TS 10303-1807 product_property_definition_schema ISO 10303-41 product_property_representation_schema ISO 10303-41 Shape_composition_mim ISO/TS 10303-1742 Support_resource_mim ISO/TS 10303-1800 shape_aspect_definition_schema ISO 10303-47 shape_tolerance_schema ISO 10303-47 Value_with_unit_extension_mim ISO/TS 10303-1753 support_resource_schema ISO 10303-41
NOTE 2 See Annex D, Figures D.1and D.2 for a graphical representation of this schema.
This subclause specifies the MIM entities for this module. The MIM entities and definitions are specified below.
EXPRESS specification:
*)
ENTITY feature_for_datum_target_relationship
SUBTYPE OF (shape_aspect_relationship);
SELF\shape_aspect_relationship.related_shape_aspect : datum_target;
UNIQUE
UR1: related_shape_aspect;
WHERE
WR1: relating_shape_aspect.of_shape :=: related_shape_aspect.of_shape;
WR2: relating_shape_aspect\shape_aspect.product_definitional = TRUE;
END_ENTITY;
(*
Attribute definitions:
related_shape_aspect: an inherited attribute shall be of type datum_target for the feature_for_datum_target_relationship.
Formal propositions:
UR1: The related_shape_aspect shall be unique within a population of feature_for_datum_target_relationship.
WR1: The relating_shape_aspect and the related_shape_aspect shall belong to the same product_definition_shape.
WR2: The relating_shape_aspect shall have the attribute product_definitional set to TRUE.
EXPRESS specification:
*)
ENTITY placed_datum_target_feature
SUBTYPE OF (datum_target);
DERIVE
representation_associations : SET[0:?] OF property_definition_representation := get_shape_aspect_property_definition_representations(SELF);
WHERE
WR1: SELF.description IN ['point','line','rectangle','circle','circular curve'];
WR2: SIZEOF(QUERY(pdr <* representation_associations | 'GEOMETRIC_TOLERANCE_MIM.SHAPE_REPRESENTATION_WITH_PARAMETERS'
IN TYPEOF(pdr.used_representation))) = 1;
WR3: valid_datum_target_parameters(SELF);
END_ENTITY;
(*
Attribute definitions:
representation_associations: the set of instances of property_definition_representation that specifies a representation of the placed_datum_target_feature.
Formal propositions:
WR1: The description attribute of the placed_datum_target_feature shall be either 'point', 'line', 'rectangle', 'circle' or 'circular curve'.
WR2: A placed_datum_target_feature shall have exactly one implicit representation, conveyed by a shape_representation_with_parameters.
WR3: The items of the implicit representation shall be consistent with the type of the placed_datum_target_feature.
This subclause specifies the MIM functions for this module. The MIM functions and definitions are specified below.
NOTE The type of the returned result is declared as a set of instances of property_definition_representation but only instances of shape_definition_representation are included in the returned result at run time.
EXPRESS specification:
*)
FUNCTION get_shape_aspect_property_definition_representations (s_a_instance : shape_aspect) : SET OF property_definition_representation;
LOCAL pd_set : SET OF property_definition := []; pdr_set : SET OF property_definition_representation := []; END_LOCAL; pd_set := bag_to_set(USEDIN(s_a_instance, 'PRODUCT_PROPERTY_DEFINITION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')); IF (SIZEOF(pd_set) < 1) THEN RETURN(pdr_set); END_IF; REPEAT i := 1 TO HIINDEX(pd_set); pdr_set := pdr_set + (QUERY(pdr <* USEDIN(pd_set[i], 'PRODUCT_PROPERTY_REPRESENTATION_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'PRODUCT_PROPERTY_REPRESENTATION_SCHEMA.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF(pdr))); END_REPEAT; RETURN(pdr_set);
END_FUNCTION;
(*
Argument definitions:
s_a_instance: the shape_aspect that is considered.
This representation shall contain:
EXPRESS specification:
*)
FUNCTION valid_datum_target_parameters (pdf : placed_datum_target_feature) : BOOLEAN;
LOCAL rep_set : SET OF representation := []; parameter_representations : SET OF representation; END_LOCAL; REPEAT i := 1 TO HIINDEX(pdf.representation_associations); rep_set := rep_set + pdf.representation_associations[i].used_representation; END_REPEAT; parameter_representations := QUERY(rep <* rep_set | ('GEOMETRIC_TOLERANCE_MIM.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(rep))); IF (SIZEOF(QUERY(srwp <* parameter_representations | (SIZEOF(QUERY(i <* srwp.items | (i.name = 'orientation') AND ('GEOMETRY_SCHEMA.PLACEMENT' IN TYPEOF(i)))) = 1))) <> 1) THEN RETURN(FALSE); END_IF; CASE pdf\shape_aspect.description OF 'point' : RETURN(SIZEOF(QUERY(srwp <* parameter_representations | (SIZEOF(srwp.items) = 1))) = 1); 'circle', 'circular curve' : RETURN((SIZEOF(QUERY(srwp <* parameter_representations | (SIZEOF(srwp.items) = 2))) = 1) AND (SIZEOF(QUERY(srwp <* parameter_representations | (SIZEOF(QUERY(i <* srwp.items | (i.name = 'target diameter') AND (SIZEOF(['GEOMETRIC_TOLERANCE_MIM.MEASURE_REPRESENTATION_ITEM', 'GEOMETRIC_TOLERANCE_MIM.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1)); 'line' : RETURN(SIZEOF(QUERY(srwp <* parameter_representations | (SIZEOF(QUERY(i <* srwp.items | (i.name = 'target length') AND (SIZEOF(['GEOMETRIC_TOLERANCE_MIM.MEASURE_REPRESENTATION_ITEM', 'GEOMETRIC_TOLERANCE_MIM.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1); 'rectangle' : RETURN((SIZEOF(QUERY(srwp <* parameter_representations | (SIZEOF(srwp.items) = 3))) = 1) AND (SIZEOF(QUERY(srwp <* parameter_representations | (SIZEOF(QUERY(i <* srwp.items | (i.name = 'target length') AND (SIZEOF(['GEOMETRIC_TOLERANCE_MIM.MEASURE_REPRESENTATION_ITEM', 'GEOMETRIC_TOLERANCE_MIM.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1) AND (SIZEOF(QUERY(srwp <* parameter_representations | (SIZEOF(QUERY(i <* srwp.items | (i.name = 'target width') AND (SIZEOF(['GEOMETRIC_TOLERANCE_MIM.MEASURE_REPRESENTATION_ITEM', 'GEOMETRIC_TOLERANCE_MIM.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1)); OTHERWISE: RETURN(FALSE); END_CASE;
END_FUNCTION;
(*
Argument definitions:
pdf: the placed_datum_target_feature that is considered and checked.
This subclause specifies the MIM rules for this module. The MIM rules and definitions are specified below.
EXPRESS specification:
*)
RULE non_uniform_zone_definition_constraint FOR
(tolerance_zone_definition, tolerance_zone, tolerance_zone_form);
LOCAL tzf_set : SET OF tolerance_zone_form := QUERY(tzf <* tolerance_zone_form | tzf\tolerance_zone_form.name = 'non uniform'); nuzd_set : SET OF tolerance_zone_definition := QUERY(tzd <* tolerance_zone_definition | 'SHAPE_TOLERANCE_SCHEMA.NON_UNIFORM_ZONE_DEFINITION' IN TYPEOF(tzd)); END_LOCAL;
WHERE
WR1: QUERY(tzd <* nuzd_set | (tzd\tolerance_zone_definition.zone\tolerance_zone.form IN tzf_set)) = nuzd_set;
END_RULE;
(*
Argument definitions:
tolerance_zone_definition : the set of all instances of tolerance_zone_definition.
tolerance_zone : the set of all instances of tolerance_zone.
tolerance_zone_form : the set of all instances of tolerance_zone_form.
Formal propositions:
WR1: A non_uniform_zone_definition ENTITY instance shall be provided if and only if the specified tolerance_zone_form is 'non uniform'.
EXPRESS specification:
*)
RULE unique_gdt_element_id_constraint FOR
(product_definition_shape, dimensional_location, dimensional_size, shape_aspect, shape_aspect_relationship);
LOCAL bss : BAG OF STRING := []; ds : SET OF dimensional_size := QUERY(ds <* dimensional_size | EXISTS(ds\dimensional_size.id)); sa : SET OF shape_aspect := QUERY(sa <* shape_aspect | EXISTS(sa\shape_aspect.id)); sar : SET OF shape_aspect_relationship := QUERY(sar <* shape_aspect_relationship | EXISTS(sar\shape_aspect_relationship.id)); ssa : SET OF shape_aspect := []; pass : BOOLEAN := TRUE; END_LOCAL; REPEAT ii := 1 TO SIZEOF(product_definition_shape) WHILE pass; bss := []; ssa := bag_to_set(USEDIN(product_definition_shape[ii], 'PRODUCT_PROPERTY_DEFINITION_SCHEMA.SHAPE_ASPECT.OF_SHAPE')); REPEAT i := 1 TO SIZEOF(ds); IF (ds[i]\dimensional_size.applies_to IN ssa) THEN bss := bss + ds[i]\dimensional_size.id; END_IF; END_REPEAT; REPEAT i := 1 TO SIZEOF(sa); IF (sa[i] IN ssa) THEN bss := bss + sa[i]\shape_aspect.id; END_IF; END_REPEAT; REPEAT i := 1 TO SIZEOF(sar); IF (sar[i]\shape_aspect_relationship.relating_shape_aspect IN ssa) THEN bss := bss + sar[i]\shape_aspect_relationship.id; END_IF; END_REPEAT; IF (SIZEOF(bag_to_set(bss)) <> SIZEOF(bss)) THEN pass := FALSE; END_IF; END_REPEAT;
WHERE
WR1: pass;
END_RULE;
(*
Argument definitions:
product_definition_shape : the set of all instances of product_definition_shape.
dimensional_location : the set of all instances of dimensional_location.
dimensional_size : the set of all instances of dimensional_size.
shape_aspect : the set of all instances of shape_aspect.
shape_aspect_relationship : the set of all instances of shape_aspect_relationship.
Formal propositions:
WR1: The local pass variable shall evaluate to TRUE.
EXPRESS specification:
*)
RULE tolerance_zone_form_name_constraint FOR
(tolerance_zone_form);
LOCAL names : SET OF STRING := ['within a circle', 'within a cylinder', 'within a cone', 'within a single complex surface', 'within a sphere', 'between two coaxial cylinders', 'between two concentric circles', 'between two equidistant curves', 'between two equidistant complex lines or two parallel straight lines', 'between two equidistant complex surfaces or two parallel planes', 'between two equidistant surfaces', 'between two non-equidistant complex lines or two non-parallel straight lines', 'between two non-equidistant complex surfaces or two non-parallel planes', 'between two parallel circles on a conical surface', 'between two parallel circles of the same diameter', 'non uniform', 'cylindrical or circular', 'spherical', 'unknown']; pass : BOOLEAN := TRUE; END_LOCAL; REPEAT i := 1 TO SIZEOF(tolerance_zone_form) WHILE pass; pass := (tolerance_zone_form[i].name IN names); END_REPEAT;
WHERE
WR1: pass;
END_RULE;
(*
Argument definitions:
tolerance_zone_form : the set of all instances of tolerance_zone_form.
Formal propositions:
WR1: The local pass variable shall evaluate to TRUE.
*)
END_SCHEMA; -- Geometric_tolerance_mim
(*
© ISO 2019 — All rights reserved