Schema: shape_tolerance_schema

Source : ISO 10303-47



SCHEMA shape_tolerance_schema;

REFERENCE FROM product_property_definition_schema   -- ISO 10303-41
  (shape_aspect,
   shape_aspect_relationship);

REFERENCE FROM measure_schema   -- ISO 10303-41
  (derive_dimensional_exponents,
   dimensional_exponents,
   measure_with_unit,
   measure_value);

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

REFERENCE FROM support_resource_schema   -- ISO 10303-41
  (label,
   text);

REFERENCE FROM shape_aspect_definition_schema   -- ISO 10303-47
  (datum_reference,
   limit_condition);

REFERENCE FROM shape_dimension_schema   -- ISO 10303-47
  (dimensional_characteristic,
   dimensional_location);


TYPE tolerance_method_definition = SELECT
   (tolerance_value,
    limits_and_fits);
END_TYPE;

TYPE shape_tolerance_select = SELECT
   (geometric_tolerance,
    plus_minus_tolerance);
END_TYPE;

ENTITY dimension_related_tolerance_zone_element;
  related_dimension : dimensional_location;
  related_element : tolerance_zone_definition;
END_ENTITY;

ENTITY geometric_tolerance;
  name : label;
  description : text;
  magnitude : measure_with_unit;
  toleranced_shape_aspect : shape_aspect;
WHERE
  WR1: ('NUMBER' IN TYPEOF (magnitude\measure_with_unit.value_component)) AND (magnitude\measure_with_unit.value_component >= 0.0);
END_ENTITY;

ENTITY geometric_tolerance_relationship;
  name : label;
  description : text;
  relating_geometric_tolerance : geometric_tolerance;
  related_geometric_tolerance : geometric_tolerance;
END_ENTITY;

ENTITY geometric_tolerance_with_datum_reference
  SUBTYPE OF (geometric_tolerance);
  datum_system : SET[1:?] OF datum_reference;
END_ENTITY;

ENTITY geometric_tolerance_with_defined_unit
  SUBTYPE OF (geometric_tolerance);
  unit_size : measure_with_unit;
WHERE
  WR1: ('NUMBER' IN TYPEOF (unit_size\measure_with_unit.value_component)) AND (unit_size\measure_with_unit.value_component > 0.0);
END_ENTITY;

ENTITY modified_geometric_tolerance
  SUBTYPE OF (geometric_tolerance);
  modifier : limit_condition;
END_ENTITY;

ENTITY projected_zone_definition
  SUBTYPE OF (tolerance_zone_definition);
  projection_end : shape_aspect;
  projected_length : measure_with_unit;
WHERE
  WR1: ('NUMBER' IN TYPEOF (projected_length\measure_with_unit.value_component)) AND (projected_length\measure_with_unit.value_component > 0.0);
  WR2: (derive_dimensional_exponents (projected_length\measure_with_unit.unit_component)= dimensional_exponents(1,0,0,0,0,0,0));
END_ENTITY;

ENTITY runout_zone_definition
  SUBTYPE OF (tolerance_zone_definition);
  orientation : runout_zone_orientation;
END_ENTITY;

ENTITY runout_zone_orientation;
  angle : measure_with_unit;
END_ENTITY;

ENTITY runout_zone_orientation_reference_direction
  SUBTYPE OF (runout_zone_orientation);
  orientation_defining_relationship : shape_aspect_relationship;
END_ENTITY;

ENTITY statistical_distribution_for_tolerance
  SUBTYPE OF (representation);
WHERE
  WR1: SIZEOF (QUERY (item <* SELF\representation.items | NOT ('QUALIFIED_MEASURE_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (item)))) = 0;
END_ENTITY;

ENTITY tolerance_with_statistical_distribution;
  associated_tolerance : shape_tolerance_select;
  tolerance_allocation : statistical_distribution_for_tolerance;
END_ENTITY;

ENTITY tolerance_zone
  SUBTYPE OF (shape_aspect);
  defining_tolerance : SET[1:?] OF geometric_tolerance;
  form : tolerance_zone_form;
END_ENTITY;

ENTITY tolerance_zone_form;
  name : label;
END_ENTITY;

ENTITY tolerance_zone_definition
  SUPERTYPE OF (ONEOF (projected_zone_definition,
                       runout_zone_definition));
  zone : tolerance_zone;
  boundaries : SET[1:?] OF shape_aspect;
END_ENTITY;

ENTITY limits_and_fits;
  form_variance : label;
  zone_variance : label;
  grade : label;
  source : text;
END_ENTITY;

ENTITY plus_minus_tolerance;
  range : tolerance_method_definition;
  toleranced_dimension : dimensional_characteristic;
UNIQUE
  UR1: toleranced_dimension;
END_ENTITY;

ENTITY tolerance_value;
  lower_bound : measure_with_unit;
  upper_bound : measure_with_unit;
WHERE
  WR1: upper_bound\measure_with_unit.value_component > lower_bound\measure_with_unit.value_component;
  WR2: upper_bound\measure_with_unit.unit_component = lower_bound\measure_with_unit.unit_component;
END_ENTITY;

END_SCHEMA;  -- shape_tolerance_schema