| Application module: Machining features | ISO/TS 10303-1814:2019(E)  © ISO  | 
         
         (*
ISO/TC 184/SC 4/WG 12 N10172 - ISO/TS 10303-1814 Machining features - EXPRESS ARM
Supersedes 
         ISO/TC 184/SC 4/WG 12 N9618
*)
         
SCHEMA Machining_features_arm;
         USE FROM
         Elemental_geometric_shape_arm;
            -- ISO/TS 10303-1004
         USE FROM
         Feature_and_connection_zone_arm;
            -- ISO/TS 10303-1671
         USE FROM
         Group_arm;
            -- ISO/TS 10303-1113
         USE FROM
         Measure_representation_arm;
            -- ISO/TS 10303-1118
         USE FROM
         Specification_document_arm;
            -- ISO/TS 10303-1747
         USE FROM
         Value_with_unit_arm;
            -- ISO/TS 10303-1054
TYPE angle_or_directed_taper =
         
         
         SELECT
            (Angle_taper, 
    Directed_taper);
         END_TYPE; 
         
TYPE compound_feature_select =
         
         
         SELECT
            (Machining_feature, 
    Transition_feature);
         END_TYPE; 
         
TYPE end_type_select =
         
         
         SELECT
            (Complete_circular_path_feature_component, 
    General_path_feature_component);
         END_TYPE; 
         
TYPE hole_bottom_condition_select =
         
         
         SELECT
            (Blind_bottom_condition, 
    Through_bottom_condition);
         END_TYPE; 
         
TYPE manufacturing_group_select =
         
         
         SELECT
            (Manufacturing_feature, 
    Manufacturing_feature_group);
         END_TYPE; 
         
TYPE mf_additional_application_domain_enumeration =
         
         ENUMERATION
         
         BASED_ON 
         additional_application_domain_enumeration
         WITH 
         
            
         (machining_feature);
         END_TYPE; 
         
TYPE mf_groupable_item =
         
         
         SELECT
         BASED_ON
         groupable_item
         WITH 
         
            (Manufacturing_feature, 
    Manufacturing_feature_group);
         END_TYPE; 
         
TYPE pocket_bottom_condition_select =
         
         
         SELECT
            (Pocket_bottom_condition, 
    Through_pocket_bottom_condition);
         END_TYPE; 
         
TYPE profile_select =
         
         
         SELECT
            (Profile_floor, 
    Through_profile_floor);
         END_TYPE; 
         
TYPE replicate_base_select =
         
         
         SELECT
            (Machining_feature, 
    Replicate_feature);
         END_TYPE; 
         
TYPE taper_select =
         
         
         SELECT
            (Angle_taper, 
    Diameter_taper, 
    Directed_taper);
         END_TYPE; 
         
TYPE thread_hand =
         
         ENUMERATION
         
         OF
         
            
         (left,
    right);
         END_TYPE; 
         
TYPE thread_side =
         
         ENUMERATION
         
         OF
         
            
         (internal,
    external);
         END_TYPE; 
         
TYPE volume_select =
         
         
         SELECT
            (Protrusion, 
    Boss);
         END_TYPE; 
         
ENTITY Angle_taper;
           angle : Numerical_item_with_unit;
         
         END_ENTITY;
ENTITY Bevel_gear
           ABSTRACT SUPERTYPE
         
         OF (ONEOF (Helical_bevel_gear,
                                Straight_bevel_gear))
           SUBTYPE OF (Defined_gear);
           tip_angle : Numerical_item_with_unit;
           root_angle : Numerical_item_with_unit;
         
         END_ENTITY;
ENTITY Blind_bottom_condition
           ABSTRACT SUPERTYPE
         
         OF (ONEOF (Conical_hole_bottom,
                                Flat_hole_bottom,
                                Flat_with_radius_hole_bottom,
                                Flat_with_taper_hole_bottom,
                                Spherical_hole_bottom));
           start_or_end : BOOLEAN;
         
         END_ENTITY;
ENTITY Boss
           ABSTRACT SUPERTYPE
         
         OF (ONEOF (Circular_boss,
                                General_boss,
                                Rectangular_boss))
           SUBTYPE OF (Multi_axis_feature);
           boss_height : Linear_path_feature_component;
           fillet_radius : 
         OPTIONAL 
         Numerical_item_with_unit;
           top_condition : Boss_top_condition;
         
         END_ENTITY;
ENTITY Boss_top_condition
           ABSTRACT SUPERTYPE
         
         OF (ONEOF (General_top_condition,
                                Planar_top_condition));
           top_radius : 
         OPTIONAL 
         Numerical_item_with_unit;
           start_or_end : BOOLEAN;
         
         END_ENTITY;
ENTITY Catalogue_gear
           SUBTYPE OF (Gear);
           documentation : Specification_definition;
         
         END_ENTITY;
ENTITY Catalogue_knurl
           SUBTYPE OF (Knurl);
           documentation : Specification_definition;
         
         END_ENTITY;
ENTITY Catalogue_marking
           SUBTYPE OF (Marking_feature);
           documentation : Specification_definition;
         
         END_ENTITY;
ENTITY Catalogue_thread
           SUBTYPE OF (Thread);
           documentation : Specification_definition;
           major_diameter : 
         OPTIONAL 
         Numerical_item_with_unit;
         
         END_ENTITY;
ENTITY Chamfer
           SUBTYPE OF (Transition_feature);
           chamfer_face : Face_shape_element;
           first_parameter : First_chamfer_offset;
           second_parameter : Second_chamfer_parameter;
         
         END_ENTITY;
ENTITY Chamfer_angle
           SUBTYPE OF (Second_chamfer_parameter);
           angle_amount : Numerical_item_with_unit;
         
         END_ENTITY;
ENTITY Circular_boss
           SUBTYPE OF (Boss);
           circular_profile : Circular_closed_profile;
           change_in_diameter : 
         OPTIONAL 
         taper_select;
         
         END_ENTITY;
ENTITY Circular_closed_profile
           SUBTYPE OF (Closed_profile);
           diameter : Numerical_item_with_unit;
         
         END_ENTITY;
ENTITY Circular_closed_shape_profile
           SUBTYPE OF (Shape_profile);
           closed_boundary : Circular_closed_profile;
         
         END_ENTITY;
ENTITY Circular_cutout
           SUBTYPE OF (Cutout_feature);
           circular_boundary : Circular_closed_profile;
         
         END_ENTITY;
ENTITY Circular_offset_pattern;
           index_number : INTEGER;
           angular_offset : Numerical_item_with_unit;
INVERSE
           relocated_base_feature_for : SET[1:?] OF Circular_pattern FOR relocated_base_feature;
         
         END_ENTITY;
ENTITY Circular_omit_pattern;
           omit_index : INTEGER;
INVERSE
           missing_base_feature_for : SET[1:?] OF Circular_pattern FOR missing_base_feature;
         
         END_ENTITY;
ENTITY Circular_path_feature_component
           ABSTRACT SUPERTYPE
         
         OF (ONEOF (Complete_circular_path_feature_component,
                                Partial_circular_path_feature_component))
           SUBTYPE OF (Path_feature_component);
           radius : length_measure;
         
         END_ENTITY;
ENTITY Circular_pattern
           SUBTYPE OF (Replicate_feature);
           relocated_base_feature : SET[0:?] OF Circular_offset_pattern;
           missing_base_feature : SET[0:?] OF Circular_omit_pattern;
           base_feature_rotation : Numerical_item_with_unit;
           number_of_features : INTEGER;
           base_feature_diameter : 
         OPTIONAL 
         Numerical_item_with_unit;
           angular_spacing : Numerical_item_with_unit;
         
         END_ENTITY;
ENTITY Closed_profile
           ABSTRACT SUPERTYPE
         
         OF (ONEOF (Circular_closed_profile,
                                General_closed_profile,
                                Ngon_profile,
                                Rectangular_closed_profile))
           SUBTYPE OF (Profile);
         
         END_ENTITY;
ENTITY Closed_slot
           SUBTYPE OF (Slot);
           end_condition : Loop_slot_end_type;
           course_of_travel : end_type_select;
         
         END_ENTITY;
ENTITY Complete_circular_path_feature_component
           SUBTYPE OF (Circular_path_feature_component);
         
         END_ENTITY;
ENTITY Compound_feature
           SUBTYPE OF (Machining_feature);
           element : SET[2:?] OF Compound_feature_element;
         
         END_ENTITY;
ENTITY Compound_feature_element;
           element : compound_feature_select;
         
         END_ENTITY;
ENTITY Compound_feature_relationship;
           predecessor : Compound_feature_element;
           successor : Compound_feature_element;
         
         END_ENTITY;
ENTITY Conical_hole_bottom
           SUBTYPE OF (Blind_bottom_condition);
           tip_angle : Numerical_item_with_unit;
           tip_radius : 
         OPTIONAL 
         Numerical_item_with_unit;
         
         END_ENTITY;
ENTITY Constant_radius_edge_round
           SUBTYPE OF (Edge_round);
           first_face_offset : 
         OPTIONAL 
         Numerical_item_with_unit;
           second_face_offset : 
         OPTIONAL 
         Numerical_item_with_unit;
           radius : Numerical_item_with_unit;
         
         END_ENTITY;
ENTITY Constant_radius_fillet
           SUBTYPE OF (Fillet);
           first_face_offset : 
         OPTIONAL 
         Numerical_item_with_unit;
           second_face_offset : 
         OPTIONAL 
         Numerical_item_with_unit;
           radius : Numerical_item_with_unit;
         
         END_ENTITY;
ENTITY Counterbore_hole
           SUBTYPE OF (Hole);
           smaller_hole : Round_hole;
           larger_hole : Round_hole;
WHERE
           WR1: SIZEOF(['MACHINING_FEATURES_ARM.COUNTERSUNK_HOLE',
            'MACHINING_FEATURES_ARM.ROUND_HOLE'] * TYPEOF(SELF)) = 0;
         
         END_ENTITY;
ENTITY Countersunk_hole
           SUBTYPE OF (Hole);
           constant_diameter_hole : Round_hole;
           tapered_hole : Round_hole;
WHERE
           WR1: SIZEOF(['MACHINING_FEATURES_ARM.COUNTERBORE_HOLE',
            'MACHINING_FEATURES_ARM.ROUND_HOLE'] * TYPEOF(SELF)) = 0;
         
         END_ENTITY;
ENTITY Cutout_feature
           ABSTRACT SUPERTYPE
         
         OF (ONEOF (Circular_cutout,
                                General_cutout))
           SUBTYPE OF (Pocket);
           SELF\Pocket.bottom_condition : Through_pocket_bottom_condition;
         
         END_ENTITY;
ENTITY Defined_gear
           ABSTRACT SUPERTYPE
         
         OF (ONEOF (Bevel_gear,
                                Helical_gear,
                                Spur_gear))
           SUBTYPE OF (Gear);
         
         END_ENTITY;
ENTITY Defined_marking
           SUBTYPE OF (Marking_feature);
           font_name : 
         OPTIONAL 
         text;
           special_instruction : 
         OPTIONAL 
         text;
           character_spacing : 
         OPTIONAL 
         Numerical_item_with_unit;
           character_height : 
         OPTIONAL 
         Numerical_item_with_unit;
         
         END_ENTITY;
ENTITY Defined_thread
           SUBTYPE OF (Thread);
           crest : 
         OPTIONAL 
         Numerical_item_with_unit;
           minor_diameter : 
         OPTIONAL 
         Numerical_item_with_unit;
           pitch_diameter : 
         OPTIONAL 
         Numerical_item_with_unit;
           major_diameter : Numerical_item_with_unit;
         
         END_ENTITY;
ENTITY Diagonal_knurl
           SUBTYPE OF (Turned_knurl);
           helix_hand : text;
           helix_angle : Numerical_item_with_unit;
         
         END_ENTITY;
ENTITY Diameter_taper;
           final_diameter : Numerical_item_with_unit;
         
         END_ENTITY;
ENTITY Diamond_knurl
           SUBTYPE OF (Turned_knurl);
           helix_angle : Numerical_item_with_unit;
         
         END_ENTITY;
ENTITY Directed_taper;
           direction : Direction_element;
           angle : Numerical_item_with_unit;
         
         END_ENTITY;
ENTITY Direction_element
           SUBTYPE OF (Shape_element);
         
         END_ENTITY;
ENTITY Edge_round
           SUBTYPE OF (Transition_feature);
           edge_round_face : Face_shape_element;
           first_face_shape : Face_shape_element;
           second_face_shape : Face_shape_element;
         
         END_ENTITY;
ENTITY Face_shape_element
           SUBTYPE OF (Shape_element);
DERIVE
           SELF\Shape_element.product_definitional : BOOLEAN := TRUE;
         
         END_ENTITY;
ENTITY Face_shape_element_relationship
           SUBTYPE OF (Shape_element_relationship);
           SELF\Shape_element_relationship.relating : Face_shape_element;
           SELF\Shape_element_relationship.related : Face_shape_element;
         
         END_ENTITY;
ENTITY Fillet
           SUBTYPE OF (Transition_feature);
           fillet_face : Face_shape_element;
           first_face_shape : Face_shape_element;
           second_face_shape : Face_shape_element;
         
         END_ENTITY;
ENTITY First_chamfer_offset;
           face_shape : Face_shape_element;
           offset_amount : Numerical_item_with_unit;
         
         END_ENTITY;
ENTITY Flat_hole_bottom
           SUBTYPE OF (Blind_bottom_condition);
         
         END_ENTITY;
ENTITY Flat_slot_end_type
           SUBTYPE OF (Slot_end_type);
           first_radius : Numerical_item_with_unit;
           second_radius : Numerical_item_with_unit;
         
         END_ENTITY;
ENTITY Flat_with_radius_hole_bottom
           SUBTYPE OF (Blind_bottom_condition);
           corner_radius : Numerical_item_with_unit;
         
         END_ENTITY;
ENTITY Flat_with_taper_hole_bottom
           SUBTYPE OF (Blind_bottom_condition);
           taper_diameter : Numerical_item_with_unit;
           final_diameter : Numerical_item_with_unit;
         
         END_ENTITY;
ENTITY Gear
           ABSTRACT SUPERTYPE
         
         OF (ONEOF (Catalogue_gear,
                                Defined_gear))
           SUBTYPE OF (Machining_feature);
           nominal_tooth_depth : Numerical_item_with_unit;
           reference_pressure_angle : Numerical_item_with_unit;
           profile_shift : Numerical_item_with_unit;
           number_of_teeth : Numerical_item_with_unit;
           face_width : Numerical_item_with_unit;
           tip_diameter : Numerical_item_with_unit;
           normal_attribute : Numerical_item_with_unit;
           applied_shape : Shape_element;
           internal_or_external_gear : BOOLEAN;
           module_or_diametrical_pitch : BOOLEAN;
           root_fillet_radius : 
         OPTIONAL 
         Numerical_item_with_unit;
WHERE
           WR1: applied_shape.product_definitional = TRUE;
         
         END_ENTITY;
ENTITY General_boss
           SUBTYPE OF (Boss);
           enclosed_boundary : Closed_profile;
           change_in_boundary : 
         OPTIONAL 
         angle_or_directed_taper;
         
         END_ENTITY;
ENTITY General_closed_profile
           SUBTYPE OF (Closed_profile);
           closed_profile_shape : Path_element;
         
         END_ENTITY;
ENTITY General_cutout
           SUBTYPE OF (Cutout_feature);
           boundary : Profile;
         
         END_ENTITY;
ENTITY General_open_profile
           SUBTYPE OF (Open_profile);
           enclosed_boundary : Path_element;
         
         END_ENTITY;
ENTITY General_outside_profile
           SUBTYPE OF (Profile_feature);
           boundary : Profile;
         
         END_ENTITY;
ENTITY General_path_feature_component
           SUBTYPE OF (Path_feature_component);
           sweep_path : Path_element;
         
         END_ENTITY;
ENTITY General_pattern
           SUBTYPE OF (Replicate_feature);
           feature_placement : SET[1:?] OF Axis_placement;
         
         END_ENTITY;
ENTITY General_pocket
           SUBTYPE OF (Pocket);
           volume_not_removed : SET[0:?] OF volume_select;
           boundary : Profile;
         
         END_ENTITY;
ENTITY General_pocket_bottom_condition
           SUBTYPE OF (Pocket_bottom_condition);
           floor : Face_shape_element;
           floor_radius : 
         OPTIONAL 
         Numerical_item_with_unit;
         
         END_ENTITY;
ENTITY General_profile_floor
           SUBTYPE OF (Profile_floor);
           floor : Face_shape_element;
         
         END_ENTITY;
ENTITY General_removal_volume
           SUBTYPE OF (Multi_axis_feature);
           removal_volume : SET[1:?] OF Shape_element;
         
         END_ENTITY;
ENTITY General_revolution
           SUBTYPE OF (Revolved_feature);
           outer_edge_shape : General_open_profile;
         
         END_ENTITY;
ENTITY General_rib_top_floor
           SUBTYPE OF (Rib_top_floor);
           rib_top_face : SET[1:?] OF Face_shape_element;
         
         END_ENTITY;
ENTITY General_shape_profile
           SUBTYPE OF (Shape_profile);
           profile_boundary : Profile;
         
         END_ENTITY;
ENTITY General_top_condition
           SUBTYPE OF (Boss_top_condition);
           top_face : Face_shape_element;
         
         END_ENTITY;
ENTITY Groove
           SUBTYPE OF (Revolved_feature);
           sweep : Open_profile;
         
         END_ENTITY;
ENTITY Helical_bevel_gear
           SUBTYPE OF (Bevel_gear);
           reference_helix_agle : Numerical_item_with_unit;
           left_or_right_hand_tooth : BOOLEAN;
         
         END_ENTITY;
ENTITY Helical_gear
           SUBTYPE OF (Defined_gear);
           left_or_right_hand_tooth : BOOLEAN;
           reference_helix_angle : Numerical_item_with_unit;
         
         END_ENTITY;
ENTITY Hole
         ABSTRACT
           SUBTYPE OF (Multi_axis_feature);
         
         END_ENTITY;
ENTITY Instanced_manufacturing_feature
           SUBTYPE OF (Instanced_feature);
           definition : Manufacturing_feature;
         
         END_ENTITY;
ENTITY Knurl
           ABSTRACT SUPERTYPE
         
         OF (ONEOF (Catalogue_knurl,
                                Turned_knurl))
           SUBTYPE OF (Machining_feature);
           partial_profile : 
         OPTIONAL 
         Partial_area_definition;
           applied_shape : Shape_element;
WHERE
           WR1: applied_shape.product_definitional = TRUE;
         
         END_ENTITY;
ENTITY Linear_path_feature_component
           SUBTYPE OF (Path_feature_component);
           distance : length_measure;
           direction : Direction_element;
         
         END_ENTITY;
ENTITY Linear_profile
           SUBTYPE OF (Open_profile);
           profile_length : Numerical_item_with_unit;
         
         END_ENTITY;
ENTITY Location_element
           SUBTYPE OF (Shape_element);
         
         END_ENTITY;
ENTITY Loop_slot_end_type;
         
         END_ENTITY;
ENTITY Machining_feature
           ABSTRACT SUPERTYPE
         
         OF (ONEOF (Compound_feature,
                                Gear,
                                Knurl,
                                Marking_feature,
                                Multi_axis_feature,
                                Outer_round,
                                Revolved_feature,
                                Spherical_cap,
                                Thread))
           SUBTYPE OF (Manufacturing_feature);
           placement : Axis_placement_3d;
         
         END_ENTITY;
ENTITY Manufacturing_feature
           ABSTRACT SUPERTYPE
         
         OF (ONEOF (Machining_feature,
                                Replicate_feature,
                                Transition_feature))
           SUBTYPE OF (Shape_feature_definition);
         
         END_ENTITY;
ENTITY Manufacturing_feature_group
           SUBTYPE OF (Group);
           SELF\Group.elements : SET[1:?] OF manufacturing_group_select;
         
         END_ENTITY;
ENTITY Marking_feature
           ABSTRACT SUPERTYPE
         
         OF (ONEOF (Catalogue_marking,
                                Defined_marking))
           SUBTYPE OF (Machining_feature);
           text : text;
           applied_to_shape : Shape_element;
         
         END_ENTITY;
ENTITY Multi_axis_feature
           SUPERTYPE OF 
         (ONEOF (Boss,
                       General_removal_volume,
                       Hole,
                       Planar_face,
                       Pocket,
                       Profile_feature,
                       Protrusion,
                       Rib_top,
                       Rounded_end,
                       Slot,
                       Step))
           SUBTYPE OF (Machining_feature);
           maximum_feature_limit : 
         OPTIONAL 
         Planar_element;
         
         END_ENTITY;
ENTITY Ngon_profile
           SUBTYPE OF (Closed_profile);
           diameter : Numerical_item_with_unit;
           number_of_sides : Numerical_item_with_unit;
           corner_radius : 
         OPTIONAL 
         Numerical_item_with_unit;
           circumscribed_or_across_flat : BOOLEAN;
         
         END_ENTITY;
ENTITY Open_profile
           ABSTRACT SUPERTYPE
         
         OF (ONEOF (General_open_profile,
                                Linear_profile,
                                Partial_circular_profile,
                                Rounded_u_profile,
                                Square_u_profile,
                                Tee_profile,
                                Vee_profile))
           SUBTYPE OF (Profile);
           profile_limit : 
         OPTIONAL 
         Planar_element;
         
         END_ENTITY;
ENTITY Open_slot
           SUBTYPE OF (Slot);
           course_of_travel : Path_feature_component;
           end_conditions : SET[2:2] OF Slot_end_type;
         
         END_ENTITY;
ENTITY Open_slot_end_type
           SUBTYPE OF (Slot_end_type);
         
         END_ENTITY;
ENTITY Outer_diameter
           SUBTYPE OF (Outer_round);
           feature_length : Numerical_item_with_unit;
           diameter : Numerical_item_with_unit;
           reduced_size : taper_select;
         
         END_ENTITY;
ENTITY Outer_diameter_to_shoulder
           SUBTYPE OF (Outer_round);
           feature_length : Numerical_item_with_unit;
           diameter : Numerical_item_with_unit;
           v_shape_boundary : Vee_profile;
         
         END_ENTITY;
ENTITY Outer_round
           ABSTRACT SUPERTYPE
         
         OF (ONEOF (Outer_diameter,
                                Outer_diameter_to_shoulder))
           SUBTYPE OF (Machining_feature);
         
         END_ENTITY;
ENTITY Partial_area_definition;
           maximum_length : 
         OPTIONAL 
         Numerical_item_with_unit;
           effective_length : Numerical_item_with_unit;
           placement : Axis_placement;
         
         END_ENTITY;
ENTITY Partial_circular_path_feature_component
           SUBTYPE OF (Circular_path_feature_component);
           sweep_angle : length_measure;
         
         END_ENTITY;
ENTITY Partial_circular_profile
           SUBTYPE OF (Open_profile);
           sweep_angle : Numerical_item_with_unit;
           radius : Numerical_item_with_unit;
         
         END_ENTITY;
ENTITY Partial_circular_shape_profile
           SUBTYPE OF (Shape_profile);
           open_boundary : Partial_circular_profile;
         
         END_ENTITY;
ENTITY Path_element
           SUBTYPE OF (Shape_element);
         
         END_ENTITY;
ENTITY Path_feature_component
           ABSTRACT SUPERTYPE
         
         OF (ONEOF (Circular_path_feature_component,
                                General_path_feature_component,
                                Linear_path_feature_component))
           SUBTYPE OF (Shape_element);
           placement : Axis_placement;
         
         END_ENTITY;
ENTITY Planar_element
           SUBTYPE OF (Shape_element);
           normal : Direction_element;
           location : Location_element;
         
         END_ENTITY;
ENTITY Planar_face
           SUBTYPE OF (Multi_axis_feature);
           removal_boundary : Linear_profile;
           course_of_travel : Linear_path_feature_component;
           face_boundary : 
         OPTIONAL 
         Closed_profile;
           removal_direction : Direction_element;
           volume_not_removed : SET[0:?] OF volume_select;
           removal_depth : 
         OPTIONAL 
         Numerical_item_with_unit;
         
         END_ENTITY;
ENTITY Planar_pocket_bottom_condition
           SUBTYPE OF (Pocket_bottom_condition);
           floor_normal : Direction_element;
           floor_location : Location_element;
           floor_radius : 
         OPTIONAL 
         Numerical_item_with_unit;
         
         END_ENTITY;
ENTITY Planar_profile_floor
           SUBTYPE OF (Profile_floor);
           floor : Planar_element;
         
         END_ENTITY;
ENTITY Planar_rib_top_floor
           SUBTYPE OF (Rib_top_floor);
           floor_face : Planar_element;
           boundary : Closed_profile;
         
         END_ENTITY;
ENTITY Planar_top_condition
           SUBTYPE OF (Boss_top_condition);
           top_normal : Direction_element;
           top_location : Location_element;
         
         END_ENTITY;
ENTITY Pocket
           ABSTRACT SUPERTYPE
         
         OF (ONEOF (Cutout_feature,
                                General_pocket,
                                Recess,
                                Rectangular_closed_pocket,
                                Rectangular_open_pocket))
           SUBTYPE OF (Multi_axis_feature);
           base_radius : Numerical_item_with_unit;
           change_in_boundary : 
         OPTIONAL 
         LIST[1:?] OF angle_or_directed_taper;
           bottom_condition : pocket_bottom_condition_select;
           pocket_depth : Linear_path_feature_component;
         
         END_ENTITY;
ENTITY Pocket_bottom_condition
           ABSTRACT SUPERTYPE
         
         OF (ONEOF (General_pocket_bottom_condition,
                                Planar_pocket_bottom_condition));
           start_or_end : BOOLEAN;
         
         END_ENTITY;
ENTITY Profile
           ABSTRACT SUPERTYPE
         
         OF (ONEOF (Closed_profile,
                                Open_profile));
         
         END_ENTITY;
ENTITY Profile_feature
           ABSTRACT SUPERTYPE
         
         OF (ONEOF (General_outside_profile,
                                Shape_profile))
           SUBTYPE OF (Multi_axis_feature);
           profile_swept_shape : Linear_path_feature_component;
         
         END_ENTITY;
ENTITY Profile_floor
           ABSTRACT SUPERTYPE
         
         OF (ONEOF (General_profile_floor,
                                Planar_profile_floor));
           floor_radius : 
         OPTIONAL 
         Numerical_item_with_unit;
           start_or_end : BOOLEAN;
         
         END_ENTITY;
ENTITY Protrusion
           SUBTYPE OF (Multi_axis_feature);
           shape_volume : SET[1:?] OF Shape_element;
WHERE
           WR1: SIZEOF(QUERY(sv <* shape_volume | NOT (sv.product_definitional = TRUE))) = 0;
         
         END_ENTITY;
ENTITY Radiused_slot_end_type
           SUBTYPE OF (Slot_end_type);
         
         END_ENTITY;
ENTITY Recess
           SUBTYPE OF (Pocket);
           SELF\Pocket.bottom_condition : Pocket_bottom_condition;
           volume_not_removed : SET[0:?] OF volume_select;
           fillet_boundary : Profile;
         
         END_ENTITY;
ENTITY Rectangular_boss
           SUBTYPE OF (Boss);
           rectangular_profile : Rectangular_closed_profile;
           change_in_boundary : 
         OPTIONAL 
         angle_or_directed_taper;
         
         END_ENTITY;
ENTITY Rectangular_closed_pocket
           SUBTYPE OF (Pocket);
           volume_not_removed : SET[0:?] OF volume_select;
           closed_boundary : Rectangular_closed_profile;
         
         END_ENTITY;
ENTITY Rectangular_closed_profile
           SUBTYPE OF (Closed_profile);
           profile_width : Numerical_item_with_unit;
           profile_length : Numerical_item_with_unit;
           corner_radius : 
         OPTIONAL 
         Numerical_item_with_unit;
         
         END_ENTITY;
ENTITY Rectangular_closed_shape_profile
           SUBTYPE OF (Shape_profile);
           closed_boundary : Rectangular_closed_profile;
         
         END_ENTITY;
ENTITY Rectangular_offset_pattern;
           offset_direction : Direction_element;
           offset_distance : Numerical_item_with_unit;
           column_index : INTEGER;
           row_index : INTEGER;
INVERSE
           relocated_base_feature_for : SET[1:?] OF Rectangular_pattern FOR relocated_base_feature;
         
         END_ENTITY;
ENTITY Rectangular_omit_pattern;
           row_index : INTEGER;
           column_index : INTEGER;
INVERSE
           missing_base_feature_for : SET[1:?] OF Rectangular_pattern FOR missing_base_feature;
         
         END_ENTITY;
ENTITY Rectangular_open_pocket
           SUBTYPE OF (Pocket);
           volume_not_removed : SET[0:?] OF volume_select;
           open_boundary : Square_u_profile;
         
         END_ENTITY;
ENTITY Rectangular_open_shape_profile
           SUBTYPE OF (Shape_profile);
           open_boundary : Square_u_profile;
         
         END_ENTITY;
ENTITY Rectangular_pattern
           SUBTYPE OF (Replicate_feature);
           relocated_base_feature : SET[0:?] OF Rectangular_offset_pattern;
           missing_base_feature : SET[0:?] OF Rectangular_omit_pattern;
           column_layout_direction : Direction_element;
           row_spacing : Numerical_item_with_unit;
           rows : INTEGER;
           row_layout_direction : Direction_element;
           columns : INTEGER;
           column_spacing : Numerical_item_with_unit;
         
         END_ENTITY;
ENTITY Replicate_base;
           base_feature : replicate_base_select;
         
         END_ENTITY;
ENTITY Replicate_feature
           ABSTRACT SUPERTYPE
         
         OF (ONEOF (Circular_pattern,
                                General_pattern,
                                Rectangular_pattern))
           SUBTYPE OF (Manufacturing_feature);
           placement : Axis_placement;
           replicate_feature_base : Replicate_base;
         
         END_ENTITY;
ENTITY Revolved_feature
           ABSTRACT SUPERTYPE
         
         OF (ONEOF (General_revolution,
                                Groove,
                                Revolved_flat,
                                Revolved_round))
           SUBTYPE OF (Machining_feature);
           radius : Numerical_item_with_unit;
           material_side : Direction_element;
         
         END_ENTITY;
ENTITY Revolved_flat
           SUBTYPE OF (Revolved_feature);
           flat_edge_shape : Linear_profile;
         
         END_ENTITY;
ENTITY Revolved_round
           SUBTYPE OF (Revolved_feature);
           rounded_edge_shape : Partial_circular_profile;
         
         END_ENTITY;
ENTITY Rib_top
           SUBTYPE OF (Multi_axis_feature);
           removal_direction : Direction;
           floor_condition : Rib_top_floor;
         
         END_ENTITY;
ENTITY Rib_top_floor
           ABSTRACT SUPERTYPE
         
         OF (ONEOF (General_rib_top_floor,
                                Planar_rib_top_floor));
         
         END_ENTITY;
ENTITY Round_hole
           SUBTYPE OF (Hole);
           hole_depth : Linear_path_feature_component;
           diameter : Circular_closed_profile;
           change_in_diameter : 
         OPTIONAL 
         taper_select;
           bottom_condition : hole_bottom_condition_select;
WHERE
           WR1: SIZEOF(['MACHINING_FEATURES_ARM.COUNTERSUNK_HOLE',
            'MACHINING_FEATURES_ARM.COUNTERBORE_HOLE'] * TYPEOF(SELF)) = 0;
         
         END_ENTITY;
ENTITY Rounded_end
           SUBTYPE OF (Multi_axis_feature);
           partial_circular_boundary : Partial_circular_profile;
           course_of_travel : Linear_path_feature_component;
         
         END_ENTITY;
ENTITY Rounded_u_profile
           SUBTYPE OF (Open_profile);
           width : Numerical_item_with_unit;
           depth : 
         OPTIONAL 
         Numerical_item_with_unit;
         
         END_ENTITY;
ENTITY Second_chamfer_offset
           SUBTYPE OF (Second_chamfer_parameter);
           offset_amount : Numerical_item_with_unit;
         
         END_ENTITY;
ENTITY Second_chamfer_parameter
           SUPERTYPE OF 
         (ONEOF (Chamfer_angle,
                       Second_chamfer_offset));
           second_face : Face_shape_element;
         
         END_ENTITY;
ENTITY Shape_profile
           ABSTRACT SUPERTYPE
         
         OF (ONEOF (Circular_closed_shape_profile,
                                General_shape_profile,
                                Partial_circular_shape_profile,
                                Rectangular_closed_shape_profile,
                                Rectangular_open_shape_profile))
           SUBTYPE OF (Profile_feature);
           floor_condition : profile_select;
           removal_direction : Direction_element;
         
         END_ENTITY;
ENTITY Slot
           ABSTRACT SUPERTYPE
         
         OF (ONEOF (Closed_slot,
                                Open_slot))
           SUBTYPE OF (Multi_axis_feature);
         
         END_ENTITY;
ENTITY Slot_end_type
           ABSTRACT SUPERTYPE
         
         OF (ONEOF (Flat_slot_end_type,
                                Open_slot_end_type,
                                Radiused_slot_end_type,
                                Woodruff_slot_end_type));
           first_or_second : BOOLEAN;
         
         END_ENTITY;
ENTITY Spherical_cap
           SUBTYPE OF (Machining_feature);
           internal_angle : Numerical_item_with_unit;
           radius : Numerical_item_with_unit;
         
         END_ENTITY;
ENTITY Spherical_hole_bottom
           SUBTYPE OF (Blind_bottom_condition);
           radius : Numerical_item_with_unit;
         
         END_ENTITY;
ENTITY Spur_gear
           SUBTYPE OF (Defined_gear);
         
         END_ENTITY;
ENTITY Square_u_profile
           SUBTYPE OF (Open_profile);
           first_angle : Numerical_item_with_unit;
           second_angle : Numerical_item_with_unit;
           first_radius : 
         OPTIONAL 
         Numerical_item_with_unit;
           second_radius : 
         OPTIONAL 
         Numerical_item_with_unit;
           depth : Numerical_item_with_unit;
           width : 
         OPTIONAL 
         Numerical_item_with_unit;
         
         END_ENTITY;
ENTITY Step
           SUBTYPE OF (Multi_axis_feature);
           removal_boundary : Vee_profile;
           course_of_travel : Linear_path_feature_component;
           volume_not_removed : SET[0:?] OF volume_select;
         
         END_ENTITY;
ENTITY Straight_bevel_gear
           SUBTYPE OF (Bevel_gear);
         
         END_ENTITY;
ENTITY Straight_knurl
           SUBTYPE OF (Turned_knurl);
         
         END_ENTITY;
ENTITY Tee_profile
           SUBTYPE OF (Open_profile);
           first_angle : Numerical_item_with_unit;
           second_angle : Numerical_item_with_unit;
           first_offset : Numerical_item_with_unit;
           second_offset : Numerical_item_with_unit;
           depth : Numerical_item_with_unit;
           radius : 
         OPTIONAL 
         Numerical_item_with_unit;
           width : Numerical_item_with_unit;
           cross_bar_width : Numerical_item_with_unit;
           cross_bar_depth : Numerical_item_with_unit;
         
         END_ENTITY;
ENTITY Thread
           ABSTRACT SUPERTYPE
         
         OF (ONEOF (Catalogue_thread,
                                Defined_thread))
           SUBTYPE OF (Machining_feature);
           partial_profile : Partial_area_definition;
           runout : 
         OPTIONAL 
         Thread_runout;
           fit_class : text;
           form : text;
           number_of_threads : 
         OPTIONAL 
         Numerical_item_with_unit;
           hand : thread_hand;
           side : thread_side;
           qualifier : text;
           nominal_size : 
         OPTIONAL 
         Numerical_item_with_unit;
           applied_shape : Shape_element;
           fit_class_2 : 
         OPTIONAL 
         text;
WHERE
           WR1: applied_shape.product_definitional = TRUE;
         
         END_ENTITY;
ENTITY Thread_runout;
           length_of_runout : Numerical_item_with_unit;
           pitch_or_dimension : BOOLEAN;
           included_or_extra : BOOLEAN;
         
         END_ENTITY;
ENTITY Through_bottom_condition;
         
         END_ENTITY;
ENTITY Through_pocket_bottom_condition;
         
         END_ENTITY;
ENTITY Through_profile_floor;
         
         END_ENTITY;
ENTITY Transition_feature
           SUPERTYPE OF 
         (ONEOF (Chamfer,
                       Edge_round,
                       Fillet))
           SUBTYPE OF (Manufacturing_feature);
         
         END_ENTITY;
ENTITY Turned_knurl
           ABSTRACT SUPERTYPE
         
         OF (ONEOF (Diagonal_knurl,
                                Diamond_knurl,
                                Straight_knurl))
           SUBTYPE OF (Knurl);
           nominal_diameter : Numerical_item_with_unit;
           diametrical_pitch : Numerical_item_with_unit;
           root_fillet : 
         OPTIONAL 
         Numerical_item_with_unit;
           number_of_teeth : 
         OPTIONAL 
         Numerical_item_with_unit;
           tooth_depth : 
         OPTIONAL 
         Numerical_item_with_unit;
           major_diameter : Numerical_item_with_unit;
         
         END_ENTITY;
ENTITY Vee_profile
           SUBTYPE OF (Open_profile);
           profile_radius : 
         OPTIONAL 
         Numerical_item_with_unit;
           profile_angle : Numerical_item_with_unit;
           tilt_angle : Numerical_item_with_unit;
           first_length : 
         OPTIONAL 
         Numerical_item_with_unit;
           second_length : 
         OPTIONAL 
         Numerical_item_with_unit;
         
         END_ENTITY;
ENTITY Woodruff_slot_end_type
           SUBTYPE OF (Slot_end_type);
           radius : Numerical_item_with_unit;
         
         END_ENTITY;
SUBTYPE_CONSTRAINT mf_shape_element_subtypes FOR Shape_element;
           ONEOF (Path_element,
         Planar_element,
         Direction_element,
         Location_element,
         Face_shape_element);
      
         END_SUBTYPE_CONSTRAINT;
         END_SCHEMA;  -- Machining_features_arm
© ISO 2019 — All rights reserved