Source : ISO 10303-113
SCHEMA counterbore_countersink_schema;
REFERENCE FROM
geometry_schema -- ISO 10303-42
(axis2_placement_3d);
REFERENCE FROM
machining_feature_schema -- ISO 10303-113
(composite_hole,
round_hole);
REFERENCE FROM
measure_schema -- ISO 10303-41
(length_measure_with_unit,
plane_angle_measure_with_unit,
positive_length_measure_with_unit,
positive_plane_angle_measure_with_unit);
REFERENCE FROM
product_definition_schema -- ISO 10303-41
(product_definition);
REFERENCE FROM
product_property_definition_schema -- ISO 10303-41
(characterized_object,
property_definition,
shape_aspect,
shape_aspect_occurrence);
REFERENCE FROM
product_property_representation_schema -- ISO 10303-41
(item_identified_representation_usage,
item_identified_representation_usage_definition,
shape_representation);
REFERENCE FROM
product_structure_schema -- ISO 10303-44
(multi_level_reference_designator);
REFERENCE FROM
representation_schema -- ISO 10303-43
(representation);
REFERENCE FROM
shape_tolerance_schema -- ISO 10303-47
(limits_and_fits,
tolerance_value);
TYPE ccs_item_identified_representation_usage_definition =
SELECT
BASED_ON
item_identified_representation_usage_definition
WITH
(characterized_object);
END_TYPE;
TYPE tolerance_value_or_limits_and_fits =
SELECT
(tolerance_value,
limits_and_fits);
END_TYPE;
ENTITY basic_round_hole
SUBTYPE OF (round_hole);
depth :
OPTIONAL
positive_length_measure_with_unit;
depth_tolerance :
OPTIONAL
tolerance_value;
diameter : positive_length_measure_with_unit;
diameter_tolerance :
OPTIONAL
tolerance_value_or_limits_and_fits;
placement : shape_representation;
through_hole : BOOLEAN;
WHERE
WR1: SIZEOF(placement\representation.items) = 1;
WR2: SIZEOF(QUERY( ri <* placement\representation.items |
('GEOMETRY_SCHEMA.AXIS2_PLACEMENT_3D' IN TYPEOF (ri))
)) = 1;
WR3: 'MEASURE_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(depth_tolerance\tolerance_value.lower_bound);
WR4: 'MEASURE_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(depth_tolerance\tolerance_value.upper_bound);
WR5: NOT('SHAPE_TOLERANCE_SCHEMA.TOLERANCE_VALUE' IN TYPEOF(diameter_tolerance)) OR
('MEASURE_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(diameter_tolerance\tolerance_value.lower_bound));
WR6: NOT('SHAPE_TOLERANCE_SCHEMA.TOLERANCE_VALUE' IN TYPEOF(diameter_tolerance)) OR
('MEASURE_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(diameter_tolerance\tolerance_value.upper_bound));
WR7: through_hole XOR EXISTS(depth);
END_ENTITY;
ENTITY basic_round_hole_occurrence
SUBTYPE OF (shape_aspect_occurrence);
SELF\shape_aspect_occurrence.definition : basic_round_hole;
WHERE
WR1: 'PRODUCT_DEFINITION_SCHEMA.PRODUCT_DEFINITION' IN TYPEOF(SELF\shape_aspect.of_shape\property_definition.definition);
WR2: SELF\shape_aspect.product_definitional = TRUE;
END_ENTITY;
ENTITY basic_round_hole_occurrence_in_assembly
SUBTYPE OF (basic_round_hole_occurrence);
modified_components : LIST[1:?] OF
UNIQUE
multi_level_reference_designator;
END_ENTITY;
ENTITY counterbore_hole_definition
SUBTYPE OF (explicit_composite_hole);
counterbore : LIST[1:?] OF
UNIQUE
explicit_round_hole;
drilled_hole_depth :
OPTIONAL
positive_length_measure_with_unit;
drilled_hole_depth_tolerance :
OPTIONAL
tolerance_value;
drilled_hole_diameter : positive_length_measure_with_unit;
drilled_hole_diameter_tolerance :
OPTIONAL
tolerance_value_or_limits_and_fits;
through_hole : BOOLEAN;
WHERE
WR1: through_hole XOR EXISTS(drilled_hole_depth);
WR2: 'MEASURE_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(drilled_hole_depth_tolerance\tolerance_value.lower_bound);
WR3: 'MEASURE_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(drilled_hole_depth_tolerance\tolerance_value.upper_bound);
WR4: NOT('SHAPE_TOLERANCE_SCHEMA.TOLERANCE_VALUE' IN TYPEOF(drilled_hole_diameter_tolerance)) OR
('MEASURE_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(drilled_hole_diameter_tolerance\tolerance_value.lower_bound));
WR5: NOT('SHAPE_TOLERANCE_SCHEMA.TOLERANCE_VALUE' IN TYPEOF(drilled_hole_diameter_tolerance)) OR
('MEASURE_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(drilled_hole_diameter_tolerance\tolerance_value.upper_bound));
END_ENTITY;
ENTITY counterbore_hole_occurrence
SUBTYPE OF (shape_aspect_occurrence);
SELF\shape_aspect_occurrence.definition : counterbore_hole_definition;
WHERE
WR1: 'PRODUCT_DEFINITION_SCHEMA.PRODUCT_DEFINITION' IN TYPEOF(SELF\shape_aspect.of_shape\property_definition.definition);
WR2: SELF\shape_aspect.product_definitional = TRUE;
END_ENTITY;
ENTITY counterbore_hole_occurrence_in_assembly
SUBTYPE OF (counterbore_hole_occurrence);
modified_components : LIST[1:?] OF
UNIQUE
multi_level_reference_designator;
END_ENTITY;
ENTITY counterdrill_hole_definition
SUBTYPE OF (explicit_composite_hole);
counterbore : explicit_round_hole;
counterdrill_angle : positive_plane_angle_measure_with_unit;
counterdrill_angle_tolerance :
OPTIONAL
tolerance_value;
drilled_hole_depth :
OPTIONAL
positive_length_measure_with_unit;
drilled_hole_depth_tolerance :
OPTIONAL
tolerance_value;
drilled_hole_diameter : positive_length_measure_with_unit;
drilled_hole_diameter_tolerance :
OPTIONAL
tolerance_value_or_limits_and_fits;
through_hole : BOOLEAN;
WHERE
WR1: through_hole XOR EXISTS(drilled_hole_depth);
WR2: 'MEASURE_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' IN TYPEOF(counterdrill_angle_tolerance\tolerance_value.lower_bound);
WR3: 'MEASURE_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' IN TYPEOF(counterdrill_angle_tolerance\tolerance_value.upper_bound);
WR4: 'MEASURE_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(drilled_hole_depth_tolerance\tolerance_value.lower_bound);
WR5: 'MEASURE_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(drilled_hole_depth_tolerance\tolerance_value.upper_bound);
WR6: NOT('SHAPE_TOLERANCE_SCHEMA.TOLERANCE_VALUE' IN TYPEOF(drilled_hole_diameter_tolerance)) OR
('MEASURE_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(drilled_hole_diameter_tolerance\tolerance_value.lower_bound));
WR7: NOT('SHAPE_TOLERANCE_SCHEMA.TOLERANCE_VALUE' IN TYPEOF(drilled_hole_diameter_tolerance)) OR
('MEASURE_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(drilled_hole_diameter_tolerance\tolerance_value.upper_bound));
END_ENTITY;
ENTITY counterdrill_hole_occurrence
SUBTYPE OF (shape_aspect_occurrence);
SELF\shape_aspect_occurrence.definition : counterdrill_hole_definition;
WHERE
WR1: 'PRODUCT_DEFINITION_SCHEMA.PRODUCT_DEFINITION' IN TYPEOF(SELF\shape_aspect.of_shape\property_definition.definition);
WR2: SELF\shape_aspect.product_definitional = TRUE;
END_ENTITY;
ENTITY counterdrill_hole_occurrence_in_assembly
SUBTYPE OF (counterdrill_hole_occurrence);
modified_components : LIST[1:?] OF
UNIQUE
multi_level_reference_designator;
END_ENTITY;
ENTITY countersink_hole_definition
SUBTYPE OF (explicit_composite_hole);
countersink_angle : positive_plane_angle_measure_with_unit;
countersink_angle_tolerance :
OPTIONAL
tolerance_value;
countersink_diameter : positive_length_measure_with_unit;
countersink_diameter_tolerance :
OPTIONAL
tolerance_value_or_limits_and_fits;
drilled_hole_depth :
OPTIONAL
positive_length_measure_with_unit;
drilled_hole_depth_tolerance :
OPTIONAL
tolerance_value;
drilled_hole_diameter : positive_length_measure_with_unit;
drilled_hole_diameter_tolerance :
OPTIONAL
tolerance_value_or_limits_and_fits;
through_hole : BOOLEAN;
WHERE
WR1: through_hole XOR EXISTS(drilled_hole_depth);
WR2: 'MEASURE_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' IN TYPEOF(countersink_angle_tolerance\tolerance_value.lower_bound);
WR3: 'MEASURE_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' IN TYPEOF(countersink_angle_tolerance\tolerance_value.upper_bound);
WR4: NOT('SHAPE_TOLERANCE_SCHEMA.TOLERANCE_VALUE' IN TYPEOF(countersink_diameter_tolerance)) OR
('MEASURE_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(countersink_diameter_tolerance\tolerance_value.lower_bound));
WR5: NOT('SHAPE_TOLERANCE_SCHEMA.TOLERANCE_VALUE' IN TYPEOF(countersink_diameter_tolerance)) OR
('MEASURE_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(countersink_diameter_tolerance\tolerance_value.upper_bound));
WR6: 'MEASURE_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(drilled_hole_depth_tolerance\tolerance_value.lower_bound);
WR7: 'MEASURE_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(drilled_hole_depth_tolerance\tolerance_value.upper_bound);
WR8: NOT('SHAPE_TOLERANCE_SCHEMA.TOLERANCE_VALUE' IN TYPEOF(drilled_hole_diameter_tolerance)) OR
('MEASURE_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(drilled_hole_diameter_tolerance\tolerance_value.lower_bound));
WR9: NOT('SHAPE_TOLERANCE_SCHEMA.TOLERANCE_VALUE' IN TYPEOF(drilled_hole_diameter_tolerance)) OR
('MEASURE_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(drilled_hole_diameter_tolerance\tolerance_value.upper_bound));
END_ENTITY;
ENTITY countersink_hole_occurrence
SUBTYPE OF (shape_aspect_occurrence);
SELF\shape_aspect_occurrence.definition : countersink_hole_definition;
WHERE
WR1: 'PRODUCT_DEFINITION_SCHEMA.PRODUCT_DEFINITION' IN TYPEOF(SELF\shape_aspect.of_shape\property_definition.definition);
WR2: SELF\shape_aspect.product_definitional = TRUE;
END_ENTITY;
ENTITY countersink_hole_occurrence_in_assembly
SUBTYPE OF (countersink_hole_occurrence);
modified_components : LIST[1:?] OF
UNIQUE
multi_level_reference_designator;
END_ENTITY;
ENTITY explicit_composite_hole
SUBTYPE OF (composite_hole);
placement : shape_representation;
INVERSE
explicit_shape : SET[0:?] OF item_identified_representation_usage FOR definition;
WHERE
WR1: SIZEOF(QUERY( ri <* placement\representation.items |
('GEOMETRY_SCHEMA.AXIS2_PLACEMENT_3D' IN TYPEOF (ri))
)) = 1;
WR2: (SIZEOF(explicit_shape) = 0) OR
(SIZEOF(QUERY(es <* explicit_shape |
NOT (placement = es\item_identified_representation_usage.used_representation)
)) = 0);
END_ENTITY;
ENTITY explicit_round_hole
SUBTYPE OF (round_hole);
depth : positive_length_measure_with_unit;
depth_tolerance :
OPTIONAL
tolerance_value;
diameter : positive_length_measure_with_unit;
diameter_tolerance :
OPTIONAL
tolerance_value_or_limits_and_fits;
placement : shape_representation;
WHERE
WR1: SIZEOF(QUERY( ri <* placement\representation.items |
('GEOMETRY_SCHEMA.AXIS2_PLACEMENT_3D' IN TYPEOF (ri))
)) = 1;
WR2: 'MEASURE_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(depth_tolerance\tolerance_value.lower_bound);
WR3: 'MEASURE_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(depth_tolerance\tolerance_value.upper_bound);
WR4: NOT('SHAPE_TOLERANCE_SCHEMA.TOLERANCE_VALUE' IN TYPEOF(diameter_tolerance)) OR
('MEASURE_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(diameter_tolerance\tolerance_value.lower_bound));
WR5: NOT('SHAPE_TOLERANCE_SCHEMA.TOLERANCE_VALUE' IN TYPEOF(diameter_tolerance)) OR
('MEASURE_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(diameter_tolerance\tolerance_value.upper_bound));
END_ENTITY;
ENTITY simplified_counterbore_hole_definition
SUBTYPE OF (counterbore_hole_definition);
WHERE
WR1: SIZEOF(SELF\explicit_composite_hole.placement\representation.items) = 1;
END_ENTITY;
ENTITY simplified_counterdrill_hole_definition
SUBTYPE OF (counterdrill_hole_definition);
WHERE
WR1: SIZEOF(SELF\explicit_composite_hole.placement\representation.items) = 1;
END_ENTITY;
ENTITY simplified_countersink_hole_definition
SUBTYPE OF (countersink_hole_definition);
WHERE
WR1: SIZEOF(SELF\explicit_composite_hole.placement\representation.items) = 1;
END_ENTITY;
ENTITY simplified_spotface_hole_definition
SUBTYPE OF (spotface_hole_definition, simplified_counterbore_hole_definition);
END_ENTITY;
ENTITY spotface_definition
SUBTYPE OF (explicit_round_hole);
spotface_radius : positive_length_measure_with_unit;
spotface_radius_tolerance :
OPTIONAL
tolerance_value;
WHERE
WR1: 'MEASURE_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(spotface_radius_tolerance\tolerance_value.lower_bound);
WR2: 'MEASURE_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(spotface_radius_tolerance\tolerance_value.upper_bound);
END_ENTITY;
ENTITY spotface_hole_definition
SUBTYPE OF (counterbore_hole_definition);
SELF\counterbore_hole_definition.counterbore RENAMED spotface : LIST[1:?] OF
UNIQUE
spotface_definition;
END_ENTITY;
ENTITY spotface_occurrence
SUBTYPE OF (counterbore_hole_occurrence);
SELF\counterbore_hole_occurrence.definition : spotface_hole_definition;
END_ENTITY;
ENTITY spotface_occurrence_in_assembly
SUBTYPE OF (counterbore_hole_occurrence_in_assembly);
SELF\counterbore_hole_occurrence.definition : spotface_hole_definition;
END_ENTITY;
SUBTYPE_CONSTRAINT round_hole_subtypes FOR round_hole;
ONEOF (basic_round_hole,
explicit_round_hole);
END_SUBTYPE_CONSTRAINT;
END_SCHEMA; -- counterbore_countersink_schema