Application module: Mechanical design features and requirements ISO/TS 10303-1846:2021(E)
© ISO

Cover page
Table of contents
Copyright
Foreword
Introduction
1 Scope
2 Normative references
3 Terms, definitions and abbreviated terms
    3.1 Terms and definitions
    3.2 Abbreviated terms

4 Information requirements
   4.1 Required AM ARMs
   4.2 ARM type definitions
   4.3 ARM entity definitions
   4.4 ARM function definition
5 Module interpreted model
   5.1 Mapping specification
   5.2 MIM EXPRESS short listing
     5.2.1 MIM type definitions
     5.2.2 MIM entity definition

A MIM short names
B Information object registration
C ARM EXPRESS-G   EXPRESS-G
D MIM EXPRESS-G   EXPRESS-G
E Computer interpretable listings
F Change history
Bibliography
Index

(*
ISO/TC 184/SC 4/WG 12 N10896 - ISO/TS 10303-1846 Mechanical design features and requirements - EXPRESS ARM
Supersedes ISO/TC 184/SC 4/WG 12 N10175
*)



SCHEMA Mechanical_design_features_and_requirements_arm;

USE FROM Assembly_structure_arm;    -- ISO/TS 10303-1026

USE FROM Associative_draughting_elements_arm;    -- ISO/TS 10303-1311

USE FROM Characterizable_object_arm;    -- ISO/TS 10303-1765

USE FROM Dimension_tolerance_arm;    -- ISO/TS 10303-1050

USE FROM Elemental_geometric_shape_arm;    -- ISO/TS 10303-1004

USE FROM Geometric_tolerance_arm;    -- ISO/TS 10303-1051

USE FROM Machining_features_arm;    -- ISO/TS 10303-1814

USE FROM Part_view_definition_arm;    -- ISO/TS 10303-1023

USE FROM Requirement_assignment_arm;    -- ISO/TS 10303-1233

USE FROM Shape_property_assignment_arm;    -- ISO/TS 10303-1032

USE FROM Value_with_unit_extension_arm;    -- ISO/TS 10303-1753


TYPE md_requirement_assignment_item = SELECT BASED_ON requirement_assignment_item WITH
   (Characterizable_object,
    Geometric_dimension,
    Geometric_tolerance,
    Product,
    Product_version,
    Product_view_definition,
    Shape_element,
    View_definition_relationship);
END_TYPE;

TYPE md_requirement_source_item = SELECT BASED_ON requirement_source_item WITH
   (Characterizable_object,
    Geometric_dimension,
    Geometric_tolerance,
    Product,
    Product_version,
    Product_view_definition,
    Shape_element,
    View_definition_relationship);
END_TYPE;

TYPE md_tolerance_value_or_limits_and_fits = SELECT
   (Length_plus_minus_bounds,
    Limits_and_fits);
END_TYPE;

ENTITY Basic_round_hole
  SUBTYPE OF (Hole);
  depth : OPTIONAL Positive_length_data_element;
  depth_tolerance : OPTIONAL Length_plus_minus_bounds;
  diameter : Positive_length_data_element;
  diameter_tolerance : OPTIONAL md_tolerance_value_or_limits_and_fits;
  through_hole : BOOLEAN;
  SELF\Characterizable_object.primary_shape_representation RENAMED placement_model : Geometric_model;
DERIVE
  SELF\Machining_feature.placement : Axis_placement_3d := get_the_placement(placement_model);
WHERE
  WR1: SIZEOF(QUERY(ri <* placement_model\Geometric_model.items | ('ELEMENTAL_GEOMETRIC_SHAPE_ARM.AXIS_PLACEMENT_3D' IN TYPEOF(ri)))) = 1;
  WR2: SIZEOF(['MACHINING_FEATURES_ARM.COUNTERBORE_HOLE', 'MACHINING_FEATURES_ARM.COUNTERSUNK_HOLE', 'MACHINING_FEATURES_ARM.ROUND_HOLE', 'MECHANICAL_DESIGN_FEATURES_AND_REQUIREMENTS_ARM.EXPLICIT_COMPOSITE_HOLE'] * TYPEOF(SELF)) = 0;
  WR3: NOT EXISTS(SELF\Multi_axis_feature.maximum_feature_limit);
  WR4: NOT EXISTS(SELF\Characterizable_object.auxiliary_shape_representations);
  WR5: NOT EXISTS(SELF\Characterizable_object.shape_type);
  WR6: NOT EXISTS(SELF\Characterizable_object.description);
  WR7: through_hole XOR EXISTS(depth);
END_ENTITY;

ENTITY Basic_round_hole_occurrence
  SUBTYPE OF (Shape_element);
  definition : Basic_round_hole;
WHERE
  WR1: 'PART_VIEW_DEFINITION_ARM.PART_VIEW_DEFINITION' IN TYPEOF(SELF\Shape_element.associated_definition);
  WR2: SELF\Shape_element.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 Explicit_composite_hole
  SUBTYPE OF (Hole);
  SELF\Characterizable_object.primary_shape_representation RENAMED placement_model : Geometric_model;
DERIVE
  SELF\Machining_feature.placement : Axis_placement_3d := get_the_placement(placement_model);
WHERE
  WR1: SIZEOF(QUERY(ri <* placement_model\Geometric_model.items | ('ELEMENTAL_GEOMETRIC_SHAPE_ARM.AXIS_PLACEMENT_3D' IN TYPEOF(ri)))) = 1;
  WR2: SIZEOF(['MACHINING_FEATURES_ARM.COUNTERBORE_HOLE', 'MACHINING_FEATURES_ARM.COUNTERSUNK_HOLE', 'MACHINING_FEATURES_ARM.ROUND_HOLE', 'MECHANICAL_DESIGN_FEATURES_AND_REQUIREMENTS_ARM.EXPLICIT_ROUND_HOLE'] * TYPEOF(SELF)) = 0;
  WR3: NOT EXISTS(SELF\Multi_axis_feature.maximum_feature_limit);
  WR4: NOT EXISTS(SELF\Characterizable_object.auxiliary_shape_representations);
  WR5: NOT EXISTS(SELF\Characterizable_object.shape_type);
  WR6: NOT EXISTS(SELF\Characterizable_object.description);
END_ENTITY;

ENTITY Explicit_round_hole
  SUBTYPE OF (Hole);
  depth : Positive_length_data_element;
  depth_tolerance : OPTIONAL Length_plus_minus_bounds;
  diameter : Positive_length_data_element;
  diameter_tolerance : OPTIONAL md_tolerance_value_or_limits_and_fits;
  SELF\Characterizable_object.primary_shape_representation RENAMED placement_model : Geometric_model;
DERIVE
  SELF\Machining_feature.placement : Axis_placement_3d := get_the_placement(placement_model);
WHERE
  WR1: SIZEOF(QUERY(ri <* placement_model\Geometric_model.items | ('ELEMENTAL_GEOMETRIC_SHAPE_ARM.AXIS_PLACEMENT_3D' IN TYPEOF(ri)))) = 1;
  WR2: SIZEOF(['MACHINING_FEATURES_ARM.COUNTERBORE_HOLE', 'MACHINING_FEATURES_ARM.COUNTERSUNK_HOLE', 'MACHINING_FEATURES_ARM.ROUND_HOLE', 'MECHANICAL_DESIGN_FEATURES_AND_REQUIREMENTS_ARM.EXPLICIT_COMPOSITE_HOLE'] * TYPEOF(SELF)) = 0;
  WR3: NOT EXISTS(SELF\Multi_axis_feature.maximum_feature_limit);
  WR4: NOT EXISTS(SELF\Characterizable_object.auxiliary_shape_representations);
  WR5: NOT EXISTS(SELF\Characterizable_object.shape_type);
  WR6: NOT EXISTS(SELF\Characterizable_object.description);
END_ENTITY;

ENTITY Md_counterbore_hole_definition
  SUBTYPE OF (Explicit_composite_hole);
  counterbore_definition : LIST[1:?] OF UNIQUE Explicit_round_hole;
  drilled_hole_depth : OPTIONAL Positive_length_data_element;
  drilled_hole_depth_tolerance : OPTIONAL Length_plus_minus_bounds;
  drilled_hole_diameter : Positive_length_data_element;
  drilled_hole_diameter_tolerance : OPTIONAL md_tolerance_value_or_limits_and_fits;
  through_hole : BOOLEAN;
  shape_model : Geometric_model;
WHERE
  WR1: through_hole XOR EXISTS(drilled_hole_depth);
END_ENTITY;

ENTITY Md_counterbore_hole_occurrence
  SUBTYPE OF (Shape_element);
  definition : Md_counterbore_hole_definition;
WHERE
  WR1: 'PART_VIEW_DEFINITION_ARM.PART_VIEW_DEFINITION' IN TYPEOF(SELF\Shape_element.associated_definition);
  WR2: SELF\Shape_element.product_definitional = TRUE;
END_ENTITY;

ENTITY Md_counterbore_hole_occurrence_in_assembly
  SUBTYPE OF (Md_counterbore_hole_occurrence);
  modified_components : LIST[1:?] OF UNIQUE Multi_level_reference_designator;
END_ENTITY;

ENTITY Md_counterdrill_hole_definition
  SUBTYPE OF (Explicit_composite_hole);
  counterbore : Explicit_round_hole;
  counterdrill_angle : Positive_angle_data_element;
  counterdrill_angle_tolerance : OPTIONAL Angle_plus_minus_bounds;
  drilled_hole_depth : OPTIONAL Positive_length_data_element;
  drilled_hole_depth_tolerance : OPTIONAL Length_plus_minus_bounds;
  drilled_hole_diameter : Positive_length_data_element;
  drilled_hole_diameter_tolerance : OPTIONAL md_tolerance_value_or_limits_and_fits;
  through_hole : BOOLEAN;
  shape_model : Geometric_model;
WHERE
  WR1: through_hole XOR EXISTS(drilled_hole_depth);
END_ENTITY;

ENTITY Md_counterdrill_hole_occurrence
  SUBTYPE OF (Shape_element);
  definition : Md_counterdrill_hole_definition;
WHERE
  WR1: 'PART_VIEW_DEFINITION_ARM.PART_VIEW_DEFINITION' IN TYPEOF(SELF\Shape_element.associated_definition);
  WR2: SELF\Shape_element.product_definitional = TRUE;
END_ENTITY;

ENTITY Md_counterdrill_hole_occurrence_in_assembly
  SUBTYPE OF (Md_counterdrill_hole_occurrence);
  modified_components : LIST[1:?] OF UNIQUE Multi_level_reference_designator;
END_ENTITY;

ENTITY Md_countersink_hole_definition
  SUBTYPE OF (Explicit_composite_hole);
  countersink_diameter : Positive_length_data_element;
  countersink_diameter_tolerance : OPTIONAL md_tolerance_value_or_limits_and_fits;
  countersink_angle : Positive_angle_data_element;
  countersink_angle_tolerance : OPTIONAL Angle_plus_minus_bounds;
  drilled_hole_depth : OPTIONAL Positive_length_data_element;
  drilled_hole_depth_tolerance : OPTIONAL Length_plus_minus_bounds;
  drilled_hole_diameter : Positive_length_data_element;
  drilled_hole_diameter_tolerance : OPTIONAL md_tolerance_value_or_limits_and_fits;
  through_hole : BOOLEAN;
  shape_model : Geometric_model;
WHERE
  WR1: through_hole XOR EXISTS(drilled_hole_depth);
END_ENTITY;

ENTITY Md_countersink_hole_occurrence
  SUBTYPE OF (Shape_element);
  definition : Md_countersink_hole_definition;
WHERE
  WR1: 'PART_VIEW_DEFINITION_ARM.PART_VIEW_DEFINITION' IN TYPEOF(SELF\Shape_element.associated_definition);
  WR2: SELF\Shape_element.product_definitional = TRUE;
END_ENTITY;

ENTITY Md_countersink_hole_occurrence_in_assembly
  SUBTYPE OF (Md_countersink_hole_occurrence);
  modified_components : LIST[1:?] OF UNIQUE Multi_level_reference_designator;
END_ENTITY;

ENTITY Mechanical_design_requirement_item_association
  SUBTYPE OF (Item_identified_representation_usage);
  requirement : Requirement_assignment;
END_ENTITY;

ENTITY Simplified_md_counterbore_hole_definition
  SUBTYPE OF (Md_counterbore_hole_definition);
  SELF\Md_counterbore_hole_definition.shape_model RENAMED position : Geometric_model;
WHERE
  WR1: SIZEOF(position\Geometric_model.items) = 1;
END_ENTITY;

ENTITY Simplified_md_counterdrill_hole_definition
  SUBTYPE OF (Md_counterdrill_hole_definition);
  SELF\Md_counterdrill_hole_definition.shape_model RENAMED position : Geometric_model;
WHERE
  WR1: SIZEOF(position\Geometric_model.items) = 1;
END_ENTITY;

ENTITY Simplified_md_countersink_hole_definition
  SUBTYPE OF (Md_countersink_hole_definition);
  SELF\Md_countersink_hole_definition.shape_model RENAMED position : Geometric_model;
WHERE
  WR1: SIZEOF(position\Geometric_model.items) = 1;
END_ENTITY;

ENTITY Simplified_spotface_hole_definition
  SUBTYPE OF (Spotface_hole_definition, Simplified_md_counterbore_hole_definition);
END_ENTITY;

ENTITY Spotface_definition
  SUBTYPE OF (Explicit_round_hole);
  spotface_radius : Positive_length_data_element;
  spotface_radius_tolerance : OPTIONAL Length_plus_minus_bounds;
END_ENTITY;

ENTITY Spotface_hole_definition
  SUBTYPE OF (Md_counterbore_hole_definition);
  SELF\Md_counterbore_hole_definition.counterbore_definition RENAMED spotface : LIST[1:?] OF UNIQUE Spotface_definition;
END_ENTITY;

ENTITY Spotface_occurrence
  SUBTYPE OF (Md_counterbore_hole_occurrence);
  SELF\Md_counterbore_hole_occurrence.definition : Spotface_hole_definition;
END_ENTITY;

ENTITY Spotface_occurrence_in_assembly
  SUBTYPE OF (Md_counterbore_hole_occurrence_in_assembly);
  SELF\Md_counterbore_hole_occurrence.definition : Spotface_hole_definition;
END_ENTITY;

FUNCTION get_the_placement
 (input : Geometric_model) : Axis_placement_3d;
  LOCAL
  ap : SET OF Axis_placement_3d := QUERY(ri
                                         <* input\Geometric_model.items
                                         | ('ELEMENTAL_GEOMETRIC_SHAPE_ARM.AXIS_PLACEMENT_3D' IN TYPEOF(ri)));
    END_LOCAL;
      RETURN(ap[LOINDEX(ap)]);
END_FUNCTION;

END_SCHEMA;  -- Mechanical_design_features_and_requirements_arm


© ISO 2021 — All rights reserved