SCHEMA integrated_cnc_schema; (* AP-238 AIM longform schema ISO TC184/SC4/WG3 N--- (superceeds wg3n2097) Author: David Loffredo (loffredo@steptools.com) 2011-12-06 -- Added annotation_plane, which had been omitted by mistake in the last build. 2011-11-18 -- Changed externally_defined_class to reverse the order of the supertypes, following AP214/242 usage rather than AP224 usage. Also added external_class_library to harmonize with the Part 1275 external class module. Added general_feature, shape_feature_definition, and placed_feature to harmonize with AP214 and Part 1764 shape feature module. Extended classification_item to harmonize with AP242 range of usage. 2011-11-16 -- Added new Part 105e2 AIM subtypes to support the machine tool kinematics. 2010-09-03 -- Added new AIM subtypes to support the closed-loop programming model. 2009-09-25 -- Added conversion_based_unit fix from p41e3tc2 2009-01-20 -- Proposed extension containing TC1 additions, plus definitions required to support the AP203e2/AP214 presentation and GDT drawing information. 2008-09-03 -- Updates for the draft TC1. The added/changed definitions are at the end of the schema. *) CONSTANT schema_prefix : STRING := 'INTEGRATED_CNC_SCHEMA.'; dummy_gri : geometric_representation_item := representation_item('' ) || geometric_representation_item(); dummy_tri : topological_representation_item := representation_item( '') || topological_representation_item(); END_CONSTANT; TYPE action_method_item = SELECT (dimensional_location, dimensional_size, geometric_tolerance); END_TYPE; -- 10303-238: integrated_cnc_schema TYPE actuated_direction = ENUMERATION OF (bidirectional, positive_only, negative_only, not_actuated); END_TYPE; -- 10303-238: integrated_cnc_schema TYPE ahead_or_behind = ENUMERATION OF (ahead, exact, behind); END_TYPE; -- 10303-41: date_time_schema TYPE angle_relator = ENUMERATION OF (equal, large, small); END_TYPE; -- 10303-47: shape_dimension_schema TYPE approval_item = SELECT (product, product_definition, product_definition_formation, security_classification); END_TYPE; -- 10303-238: integrated_cnc_schema TYPE approximation_method = ENUMERATION OF (chordal_deviation, chordal_length); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE area_measure = REAL; END_TYPE; -- 10303-41: measure_schema TYPE area_or_view = SELECT (presentation_area, presentation_view); END_TYPE; -- 10303-46: presentation_organization_schema TYPE axis2_placement = SELECT (axis2_placement_2d, axis2_placement_3d); END_TYPE; -- 10303-42: geometry_schema TYPE b_spline_curve_form = ENUMERATION OF (polyline_form, circular_arc, elliptic_arc, parabolic_arc, hyperbolic_arc, unspecified); END_TYPE; -- 10303-42: geometry_schema TYPE b_spline_surface_form = ENUMERATION OF (plane_surf, cylindrical_surf, conical_surf, spherical_surf, toroidal_surf, surf_of_revolution, ruled_surf, generalised_cone, quadric_surf, surf_of_linear_extrusion, unspecified); END_TYPE; -- 10303-42: geometry_schema TYPE box_characteristic_select = SELECT (box_height, box_width, box_slant_angle, box_rotate_angle); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE box_height = positive_ratio_measure; END_TYPE; -- 10303-46: presentation_appearance_schema TYPE box_rotate_angle = plane_angle_measure; END_TYPE; -- 10303-46: presentation_appearance_schema TYPE box_slant_angle = plane_angle_measure; END_TYPE; -- 10303-46: presentation_appearance_schema TYPE box_width = positive_ratio_measure; END_TYPE; -- 10303-46: presentation_appearance_schema TYPE central_or_parallel = ENUMERATION OF (central, parallel); END_TYPE; -- 10303-46: presentation_organization_schema TYPE chained_representation_link = SELECT (mapped_item, representation_context, representation_relationship); END_TYPE; -- 10303-238: integrated_cnc_schema TYPE character_spacing_select = SELECT (length_measure, ratio_measure, measure_with_unit, descriptive_measure); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE character_style_select = SELECT (text_style_for_defined_font); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE characterized_action_definition = SELECT (action, action_method, action_method_relationship, action_relationship); END_TYPE; -- 10303-49: process_property_schema TYPE characterized_definition = SELECT (characterized_object, characterized_product_definition, shape_definition); END_TYPE; -- 10303-41: product_property_definition_schema TYPE characterized_material_property = SELECT (material_property_representation); END_TYPE; -- 10303-45: material_property_definition_schema TYPE characterized_product_composition_value = SELECT (measure_with_unit); END_TYPE; -- 10303-238: integrated_cnc_schema TYPE characterized_product_definition = SELECT (product_definition, product_definition_relationship); END_TYPE; -- 10303-41: product_property_definition_schema TYPE characterized_resource_definition = SELECT (action_resource, action_resource_relationship, action_resource_requirement, action_resource_requirement_relationship); END_TYPE; -- 10303-49: process_property_schema TYPE classification_item = SELECT (action, action_method, action_property, action_relationship, address, applied_approval_assignment, applied_date_and_time_assignment, applied_date_assignment, applied_document_reference, applied_document_usage_constraint_assignment, applied_external_identification_assignment, applied_identification_assignment, applied_organization_assignment, applied_person_and_organization_assignment, applied_security_classification_assignment, approval, approval_person_organization, approval_relationship, approval_status, calendar_date, characterized_object, class, context_dependent_unit, conversion_based_unit, date_and_time, date_and_time_assignment, date_assignment, derived_unit, descriptive_representation_item, document_file, externally_defined_representation_with_parameters, general_property, group, identification_assignment, measure_representation_item, measure_with_unit, named_unit, organization, organizational_address, person, product, product_definition, product_definition_context, product_definition_formation, product_definition_relationship, property_definition, property_definition_representation, representation, representation_context, representation_item, security_classification, uncertainty_measure_with_unit ); END_TYPE; TYPE compound_item_definition = SELECT (list_representation_item, set_representation_item); END_TYPE; -- 10303-43: representation_schema TYPE context_dependent_measure = REAL; END_TYPE; -- 10303-41: measure_schema TYPE count_measure = NUMBER; END_TYPE; -- 10303-41: measure_schema TYPE curve_font_or_scaled_curve_font_select = SELECT (curve_style_font_select); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE curve_on_surface = SELECT (pcurve, surface_curve, composite_curve_on_surface); END_TYPE; -- 10303-42: geometry_schema TYPE curve_or_annotation_curve_occurrence = SELECT (curve, annotation_curve_occurrence); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE curve_or_render = SELECT (curve_style, curve_style_rendering); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE curve_style_font_select = SELECT (curve_style_font, pre_defined_curve_font, externally_defined_curve_font); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE curve_tolerance_deviation = positive_length_measure; END_TYPE; -- 10303-46: presentation_appearance_schema TYPE curve_tolerance_parameter = REAL; END_TYPE; -- 10303-46: presentation_appearance_schema TYPE date_and_time_item = SELECT (approval_person_organization, machining_operation, machining_process_executable, machining_toolpath, product, product_definition, product_definition_formation, security_classification); END_TYPE; -- 10303-238: integrated_cnc_schema TYPE date_item = SELECT (product, product_definition, product_definition_formation); END_TYPE; -- 10303-238: integrated_cnc_schema TYPE date_time_select = SELECT (date, date_and_time, local_time); END_TYPE; -- 10303-41: date_time_schema TYPE day_in_month_number = INTEGER; WHERE WR1: (1 <= SELF) AND (SELF <= 31); END_TYPE; -- 10303-41: date_time_schema TYPE day_in_week_number = INTEGER; WHERE WR1: (1 <= SELF) AND (SELF <= 7); END_TYPE; -- 10303-41: date_time_schema TYPE day_in_year_number = INTEGER; WHERE WR1: (1 <= SELF) AND (SELF <= 366); END_TYPE; -- 10303-41: date_time_schema TYPE defined_glyph_select = SELECT (externally_defined_character_glyph); END_TYPE; -- 10303-46: presentation_definition_schema TYPE defined_symbol_select = SELECT (pre_defined_symbol, externally_defined_symbol); END_TYPE; -- 10303-46: presentation_definition_schema TYPE derived_property_select = SELECT (property_definition, action_property, resource_property); END_TYPE; -- 10303-41: product_property_definition_schema TYPE description_attribute_select = SELECT (application_context, approval_role, date_role, date_time_role, context_dependent_shape_representation, external_source, organization_role, person_and_organization_role, person_and_organization, property_definition_representation, representation); END_TYPE; -- 10303-41: basic_attribute_schema TYPE descriptive_measure = STRING; END_TYPE; -- 10303-41: measure_schema TYPE dimension_count = INTEGER; WHERE WR1: SELF > 0; END_TYPE; -- 10303-42: geometry_schema TYPE dimension_extent_usage = ENUMERATION OF (origin, target); END_TYPE; -- 10303-101: draughting_element_schema TYPE dimensional_characteristic = SELECT (dimensional_location, dimensional_size); END_TYPE; -- 10303-47: shape_dimension_schema TYPE direction_count_select = SELECT (u_direction_count, v_direction_count); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE document_reference_item = SELECT (externally_defined_dimension_definition, externally_defined_feature_definition, material_designation, property_definition); END_TYPE; -- 10303-238: integrated_cnc_schema TYPE draughting_callout_element = SELECT (annotation_text_occurrence, annotation_symbol_occurrence, annotation_curve_occurrence); END_TYPE; -- 10303-101: draughting_element_schema TYPE draughting_model_item_association_select = SELECT (annotation_occurrence, draughting_callout); END_TYPE; -- 10303-238: integrated_cnc_schema TYPE draughting_titled_item = SELECT (drawing_revision, drawing_sheet_revision); END_TYPE; -- 10303-101: drawing_definition_schema TYPE external_identification_item = SELECT (externally_defined_class, externally_defined_general_property); END_TYPE; -- 10303-238: integrated_cnc_schema TYPE fill_area_style_tile_shape_select = SELECT (fill_area_style_tile_symbol_with_style); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE fill_style_select = SELECT (fill_area_style_colour, externally_defined_tile_style, fill_area_style_tiles, externally_defined_hatch_style, fill_area_style_hatching); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE font_select = SELECT (pre_defined_text_font, externally_defined_text_font); END_TYPE; -- 10303-46: presentation_resource_schema TYPE founded_item_select = SELECT (founded_item, representation_item); END_TYPE; -- 10303-43: representation_schema TYPE geometric_set_select = SELECT (point, curve, surface); END_TYPE; -- 10303-42: geometric_model_schema TYPE group_item = SELECT (geometric_representation_item, mapped_item, shape_aspect, styled_item, topological_representation_item); END_TYPE; -- 10303-238: integrated_cnc_schema TYPE hiding_or_blanking_select = SELECT (presentation_area, presentation_view, annotation_fill_area); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE hour_in_day = INTEGER; WHERE WR1: (0 <= SELF) AND (SELF < 24); END_TYPE; -- 10303-41: date_time_schema TYPE id_attribute_select = SELECT (action, address, product_category, property_definition, shape_aspect, shape_aspect_relationship, application_context, group, representation); END_TYPE; -- 10303-41: basic_attribute_schema TYPE identification_item = SELECT (dimensional_size, presentation_area, representation); END_TYPE; -- 10303-238: integrated_cnc_schema TYPE identifier = STRING; END_TYPE; -- 10303-41: support_resource_schema TYPE interpolation_type = ENUMERATION OF (undefined_interpolation_type, discontinuous_interpolation_type, synchronous_interpolation_type, linear_interpolation_type); END_TYPE; -- 10303-238: integrated_cnc_schema TYPE invisibility_context = SELECT (presentation_representation, presentation_set); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE invisible_item = SELECT (styled_item, presentation_layer_assignment, representation); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE kinematic_analysis_definition = SELECT (interpolated_configuration_sequence, prescribed_path); END_TYPE; -- 10303-238: integrated_cnc_schema TYPE kinematic_link_representation_items = SELECT (curve, point, rigid_placement, surface); END_TYPE; -- 10303-238: integrated_cnc_schema TYPE kinematic_result = SELECT (interpolated_configuration_sequence, resulting_path); END_TYPE; -- 10303-238: integrated_cnc_schema TYPE kinematic_topology_representation_select = SELECT (kinematic_topology_structure, kinematic_topology_directed_structure, kinematic_topology_network_structure); END_TYPE; -- 10303-238: integrated_cnc_schema TYPE knot_type = ENUMERATION OF (uniform_knots, quasi_uniform_knots, piecewise_bezier_knots, unspecified); END_TYPE; -- 10303-42: geometry_schema TYPE label = STRING; END_TYPE; -- 10303-41: support_resource_schema TYPE layered_item = SELECT (presentation_representation, representation_item); END_TYPE; -- 10303-46: presentation_organization_schema TYPE length_measure = REAL; END_TYPE; -- 10303-41: measure_schema TYPE limit_condition = ENUMERATION OF (maximum_material_condition, least_material_condition, regardless_of_feature_size); END_TYPE; -- 10303-47: shape_aspect_definition_schema TYPE link_or_shape_representation = SELECT (kinematic_link_representation, shape_representation); END_TYPE; -- 10303-238: integrated_cnc_schema TYPE list_of_reversible_topology_item = LIST [0:?] OF reversible_topology_item; END_TYPE; -- 10303-42: topology_schema TYPE list_representation_item = LIST [1:?] OF representation_item; END_TYPE; -- 10303-43: representation_schema TYPE marker_select = SELECT (marker_type, pre_defined_marker); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE marker_type = ENUMERATION OF (dot, x, plus, asterisk, ring, square, triangle); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE mass_measure = REAL; END_TYPE; -- 10303-41: measure_schema TYPE maths_expression = SELECT (generic_expression); END_TYPE; -- 10303-238: integrated_cnc_schema TYPE maths_value = SELECT (generic_expression); WHERE CONSTANCY: NOT ('GENERIC_EXPRESSION' IN stripped_typeof(SELF)) OR expression_is_constant(SELF); END_TYPE; -- 10303-238: integrated_cnc_schema TYPE measure_value = SELECT (area_measure, context_dependent_measure, count_measure, descriptive_measure, length_measure, mass_measure, numeric_measure, non_negative_length_measure, parameter_value, plane_angle_measure, positive_length_measure, positive_plane_angle_measure, positive_ratio_measure, ratio_measure, solid_angle_measure, time_measure, volume_measure); END_TYPE; -- 10303-41: measure_schema TYPE minute_in_hour = INTEGER; WHERE WR1: (0 <= SELF) AND (SELF <= 59); END_TYPE; -- 10303-41: date_time_schema TYPE month_in_year_number = INTEGER; WHERE WR1: (1 <= SELF) AND (SELF <= 12); END_TYPE; -- 10303-41: date_time_schema TYPE name_attribute_select = SELECT (address, context_dependent_shape_representation, derived_unit, person_and_organization, product_definition, property_definition_representation); END_TYPE; -- 10303-41: basic_attribute_schema TYPE non_negative_length_measure = length_measure; WHERE WR1: SELF >= 0.0; END_TYPE; -- 10303-41: measure_schema TYPE null_style = ENUMERATION OF (null); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE numeric_measure = NUMBER; END_TYPE; -- 10303-41: measure_schema TYPE organization_item = SELECT (product, product_definition, product_definition_formation, known_source); END_TYPE; -- 10303-238: integrated_cnc_schema TYPE parameter_value = REAL; END_TYPE; -- 10303-41: measure_schema TYPE pcurve_or_surface = SELECT (pcurve, surface); END_TYPE; -- 10303-42: geometry_schema TYPE person_and_organization_item = SELECT (product, product_definition, product_definition_formation, security_classification); END_TYPE; -- 10303-238: integrated_cnc_schema TYPE person_organization_select = SELECT (person, organization, person_and_organization); END_TYPE; -- 10303-41: person_organization_schema TYPE plane_angle_measure = REAL; END_TYPE; -- 10303-41: measure_schema TYPE positive_length_measure = non_negative_length_measure; WHERE WR1: SELF > 0.0; END_TYPE; -- 10303-41: measure_schema TYPE positive_plane_angle_measure = plane_angle_measure; WHERE WR1: SELF > 0.0; END_TYPE; -- 10303-41: measure_schema TYPE positive_ratio_measure = ratio_measure; WHERE WR1: SELF > 0.0; END_TYPE; -- 10303-41: measure_schema TYPE preferred_surface_curve_representation = ENUMERATION OF (curve_3d, pcurve_s1, pcurve_s2); END_TYPE; -- 10303-42: geometry_schema TYPE presentable_text = STRING; END_TYPE; -- 10303-46: presentation_resource_schema TYPE presentation_representation_select = SELECT (presentation_representation, presentation_set); END_TYPE; -- 10303-46: presentation_organization_schema TYPE presentation_size_assignment_select = SELECT (presentation_view, presentation_area, area_in_set); END_TYPE; -- 10303-46: presentation_organization_schema TYPE presentation_style_select = SELECT (pre_defined_presentation_style, point_style, curve_style, surface_style_usage, symbol_style, fill_area_style, text_style, approximation_tolerance, externally_defined_style, null_style); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE presented_item_select = SELECT (action, action_method, action_relationship, product_definition, product_definition_formation, product_definition_relationship); END_TYPE; -- 10303-238: integrated_cnc_schema TYPE product_or_presentation_space = ENUMERATION OF (product_shape_space, presentation_area_space); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE property_or_shape_select = SELECT (property_definition, shape_definition); END_TYPE; -- 10303-49: process_property_schema TYPE ratio_measure = REAL; END_TYPE; -- 10303-41: measure_schema TYPE rendering_properties_select = SELECT (surface_style_reflectance_ambient, surface_style_transparent); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE represented_definition = SELECT (general_property, property_definition, shape_aspect, shape_aspect_relationship); END_TYPE; -- 10303-41: product_property_representation_schema TYPE reversible_topology = SELECT (reversible_topology_item, list_of_reversible_topology_item, set_of_reversible_topology_item); END_TYPE; -- 10303-42: topology_schema TYPE reversible_topology_item = SELECT (edge, path, face, face_bound, closed_shell, open_shell); END_TYPE; -- 10303-42: topology_schema TYPE rigid_placement = SELECT (axis2_placement_3d, su_parameters); END_TYPE; -- 10303-238: integrated_cnc_schema TYPE role_select = SELECT (approval_assignment, approval_date_time, document_reference, group_assignment, security_classification_assignment); END_TYPE; -- 10303-41: basic_attribute_schema TYPE second_in_minute = REAL; WHERE WR1: (0 <= SELF) AND (SELF <= 60.0); END_TYPE; -- 10303-41: date_time_schema TYPE security_classification_item = SELECT (machining_operation, machining_process_executable, machining_toolpath, product_definition, product_definition_formation); END_TYPE; -- 10303-238: integrated_cnc_schema TYPE set_of_reversible_topology_item = SET [0:?] OF reversible_topology_item; END_TYPE; -- 10303-42: topology_schema TYPE set_representation_item = SET [1:?] OF representation_item; END_TYPE; -- 10303-43: representation_schema TYPE shading_curve_method = ENUMERATION OF (constant_colour, linear_colour); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE shading_surface_method = ENUMERATION OF (constant_shading, colour_shading, dot_shading, normal_shading); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE shape_definition = SELECT (product_definition_shape, shape_aspect, shape_aspect_relationship); END_TYPE; -- 10303-41: product_property_definition_schema TYPE shell = SELECT (vertex_shell, wire_shell, open_shell, closed_shell); END_TYPE; -- 10303-42: topology_schema TYPE si_prefix = ENUMERATION OF (exa, peta, tera, giga, mega, kilo, hecto, deca, deci, centi, milli, micro, nano, pico, femto, atto); END_TYPE; -- 10303-41: measure_schema TYPE si_unit_name = ENUMERATION OF (metre, gram, second, ampere, kelvin, mole, candela, radian, steradian, hertz, newton, pascal, joule, watt, coulomb, volt, farad, ohm, siemens, weber, tesla, henry, degree_celsius, lumen, lux, becquerel, gray, sievert); END_TYPE; -- 10303-41: measure_schema TYPE size_select = SELECT (positive_length_measure, measure_with_unit, descriptive_measure); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE solid_angle_measure = REAL; END_TYPE; -- 10303-41: measure_schema TYPE source = ENUMERATION OF (made, bought, not_known); END_TYPE; -- 10303-41: product_definition_schema TYPE source_item = SELECT (identifier); END_TYPE; -- 10303-41: external_reference_schema TYPE spatial_rotation = SELECT (ypr_rotation, rotation_about_direction); END_TYPE; -- 10303-238: integrated_cnc_schema TYPE specified_item = SELECT (drawing_revision); END_TYPE; -- 10303-238: integrated_cnc_schema TYPE spherical_pair_select = SELECT (spherical_pair, spherical_pair_with_pin); END_TYPE; -- 10303-238: integrated_cnc_schema TYPE style_context_select = SELECT (group, presentation_layer_assignment, representation, representation_item, presentation_set); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE supported_item = SELECT (action, action_method); END_TYPE; -- 10303-41: action_schema TYPE surface_side = ENUMERATION OF (positive, negative, both); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE surface_side_style_select = SELECT (surface_side_style); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE surface_style_element_select = SELECT (surface_style_fill_area, surface_style_boundary, surface_style_silhouette, surface_style_segmentation_curve, surface_style_control_grid, surface_style_parameter_line, surface_style_rendering); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE surface_tolerance_deviation = positive_length_measure; END_TYPE; -- 10303-46: presentation_appearance_schema TYPE surface_tolerance_parameter = REAL; END_TYPE; -- 10303-46: presentation_appearance_schema TYPE symbol_style_select = SELECT (symbol_colour); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE text = STRING; END_TYPE; -- 10303-41: support_resource_schema TYPE text_alignment = label; END_TYPE; -- 10303-46: presentation_definition_schema TYPE text_delineation = label; END_TYPE; -- 10303-46: presentation_definition_schema TYPE text_or_character = SELECT (annotation_text, annotation_text_character, defined_character_glyph, composite_text, text_literal); END_TYPE; -- 10303-46: presentation_definition_schema TYPE text_path = ENUMERATION OF (left, right, up, down); END_TYPE; -- 10303-46: presentation_definition_schema TYPE time_measure = REAL; END_TYPE; -- 10303-41: measure_schema TYPE tolerance_deviation_select = SELECT (curve_tolerance_deviation, surface_tolerance_deviation); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE tolerance_method_definition = SELECT (tolerance_value, limits_and_fits); END_TYPE; -- 10303-47: shape_tolerance_schema TYPE tolerance_parameter_select = SELECT (curve_tolerance_parameter, surface_tolerance_parameter); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE tolerance_select = SELECT (approximation_tolerance_deviation, approximation_tolerance_parameter); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE transformation = SELECT (item_defined_transformation, functionally_defined_transformation); END_TYPE; -- 10303-43: representation_schema TYPE transition_code = ENUMERATION OF (discontinuous, continuous, cont_same_gradient, cont_same_gradient_same_curvature); END_TYPE; -- 10303-42: geometry_schema TYPE trimming_preference = ENUMERATION OF (cartesian, parameter, unspecified); END_TYPE; -- 10303-42: geometry_schema TYPE trimming_select = SELECT (cartesian_point, parameter_value); END_TYPE; -- 10303-42: geometry_schema TYPE u_direction_count = INTEGER; WHERE WR1: SELF > 1; END_TYPE; -- 10303-46: presentation_appearance_schema TYPE unit = SELECT (derived_unit, named_unit); END_TYPE; -- 10303-41: measure_schema TYPE v_direction_count = INTEGER; WHERE WR1: SELF > 1; END_TYPE; -- 10303-46: presentation_appearance_schema TYPE value_qualifier = SELECT (precision_qualifier, type_qualifier, uncertainty_qualifier); END_TYPE; -- 10303-45: qualified_measure_schema TYPE vector_or_direction = SELECT (vector, direction); END_TYPE; -- 10303-42: geometry_schema TYPE volume_measure = REAL; END_TYPE; -- 10303-41: measure_schema TYPE week_in_year_number = INTEGER; WHERE WR1: (1 <= SELF) AND (SELF <= 53); END_TYPE; -- 10303-41: date_time_schema TYPE wireframe_model = SELECT (shell_based_wireframe_model, edge_based_wireframe_model); END_TYPE; -- 10303-42: geometric_model_schema TYPE year_number = INTEGER; END_TYPE; -- 10303-41: date_time_schema TYPE ypr_enumeration = ENUMERATION OF (yaw, pitch, roll); END_TYPE; -- 10303-238: integrated_cnc_schema TYPE ypr_rotation = ARRAY [ypr_index (yaw):ypr_index (roll)] OF plane_angle_measure; END_TYPE; -- 10303-238: integrated_cnc_schema ENTITY action; name : label; description : OPTIONAL text; chosen_method : action_method; DERIVE id : identifier := get_id_value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; END_ENTITY; -- 10303-41: action_schema ENTITY action_method; name : label; description : OPTIONAL text; consequence : text; purpose : text; END_ENTITY; -- 10303-41: action_schema ENTITY action_method_assignment ABSTRACT SUPERTYPE; assigned_action_method : action_method; role : action_method_role; END_ENTITY; -- 10303-41: management_resources_schema ENTITY action_method_relationship; name : label; description : OPTIONAL text; relating_method : action_method; related_method : action_method; END_ENTITY; -- 10303-41: action_schema ENTITY action_method_role; name : label; description : OPTIONAL text; END_ENTITY; -- 10303-41: management_resources_schema ENTITY action_method_with_associated_documents SUBTYPE OF (action_method); documents : SET [1:?] OF document; END_ENTITY; -- 10303-49: method_definition_schema ENTITY action_property; name : label; description : text; definition : characterized_action_definition; END_ENTITY; -- 10303-49: process_property_schema ENTITY action_property_representation; name : label; description : text; property : action_property; representation : representation; END_ENTITY; -- 10303-49: process_property_representation_schema ENTITY action_relationship; name : label; description : OPTIONAL text; relating_action : action; related_action : action; END_ENTITY; -- 10303-41: action_schema ENTITY action_resource; name : label; description : OPTIONAL text; usage : SET [1:?] OF supported_item; kind : action_resource_type; END_ENTITY; -- 10303-41: action_schema ENTITY action_resource_relationship; name : label; description : OPTIONAL text; relating_resource : action_resource; related_resource : action_resource; END_ENTITY; -- 10303-41: action_schema ENTITY action_resource_requirement; name : label; description : text; kind : resource_requirement_type; operations : SET [1:?] OF characterized_action_definition; END_ENTITY; -- 10303-49: process_property_schema ENTITY action_resource_requirement_relationship; name : label; description : text; relating_action_resource_requirement : action_resource_requirement; related_action_resource_requirement : action_resource_requirement; WHERE WR1: relating_action_resource_requirement :<>: related_action_resource_requirement; END_ENTITY; -- 10303-49: process_property_schema ENTITY action_resource_type; name : label; END_ENTITY; -- 10303-41: action_schema ENTITY actuated_kinematic_pair SUBTYPE OF (kinematic_pair); t_x : OPTIONAL actuated_direction; t_y : OPTIONAL actuated_direction; t_z : OPTIONAL actuated_direction; r_x : OPTIONAL actuated_direction; r_y : OPTIONAL actuated_direction; r_z : OPTIONAL actuated_direction; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY address; internal_location : OPTIONAL label; street_number : OPTIONAL label; street : OPTIONAL label; postal_box : OPTIONAL label; town : OPTIONAL label; region : OPTIONAL label; postal_code : OPTIONAL label; country : OPTIONAL label; facsimile_number : OPTIONAL label; telephone_number : OPTIONAL label; electronic_mail_address : OPTIONAL label; telex_number : OPTIONAL label; DERIVE name : label := get_name_value(SELF); url : identifier := get_id_value(SELF); WHERE WR1: ((((((((((EXISTS(internal_location) OR EXISTS(street_number)) OR EXISTS(street)) OR EXISTS(postal_box)) OR EXISTS(town)) OR EXISTS(region)) OR EXISTS(postal_code)) OR EXISTS(country)) OR EXISTS(facsimile_number)) OR EXISTS(telephone_number)) OR EXISTS(electronic_mail_address)) OR EXISTS(telex_number); END_ENTITY; -- 10303-41: person_organization_schema ENTITY advanced_brep_shape_representation SUBTYPE OF (shape_representation); WHERE WR1: SIZEOF(QUERY (it <* SELF.items| NOT (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MANIFOLD_SOLID_BREP', 'INTEGRATED_CNC_SCHEMA.FACETED_BREP', 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM', 'INTEGRATED_CNC_SCHEMA.AXIS2_PLACEMENT_3D' ] * TYPEOF(it)) = 1))) = 0; WR2: SIZEOF(QUERY (it <* SELF.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MANIFOLD_SOLID_BREP', 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM' ] * TYPEOF(it)) = 1))) > 0; WR3: SIZEOF(QUERY (msb <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.MANIFOLD_SOLID_BREP' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (csh <* msb_shells(msb)| NOT (SIZEOF(QUERY (fcs <* csh\connected_face_set.cfs_faces| NOT ( 'INTEGRATED_CNC_SCHEMA.ADVANCED_FACE' IN TYPEOF(fcs)))) = 0)) ) = 0))) = 0; WR4: SIZEOF(QUERY (msb <* QUERY (it <* items| ( 'INTEGRATED_CNC_SCHEMA.MANIFOLD_SOLID_BREP' IN TYPEOF(it)))| ('INTEGRATED_CNC_SCHEMA.ORIENTED_CLOSED_SHELL' IN TYPEOF(msb\ manifold_solid_brep.outer)))) = 0; WR5: SIZEOF(QUERY (brv <* QUERY (it <* items| ( 'INTEGRATED_CNC_SCHEMA.BREP_WITH_VOIDS' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (csh <* brv\brep_with_voids.voids| csh\ oriented_closed_shell.orientation)) = 0))) = 0; WR6: SIZEOF(QUERY (mi <* QUERY (it <* items| ( 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM' IN TYPEOF(it)))| NOT ( 'INTEGRATED_CNC_SCHEMA.ADVANCED_BREP_SHAPE_REPRESENTATION' IN TYPEOF(mi\mapped_item.mapping_source.mapped_representation)) )) = 0; END_ENTITY; -- 10303-514: aic_advanced_brep ENTITY advanced_face SUBTYPE OF (face_surface); WHERE WR1: SIZEOF([ 'INTEGRATED_CNC_SCHEMA.ELEMENTARY_SURFACE', 'INTEGRATED_CNC_SCHEMA.B_SPLINE_SURFACE', 'INTEGRATED_CNC_SCHEMA.SWEPT_SURFACE' ] * TYPEOF( face_geometry)) = 1; WR2: SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* bounds| ( 'INTEGRATED_CNC_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds.bound\path.edge_list| NOT ('INTEGRATED_CNC_SCHEMA.EDGE_CURVE' IN TYPEOF(oe\ oriented_edge.edge_element)))) = 0))) = 0; WR3: SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* bounds| ( 'INTEGRATED_CNC_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds.bound\path.edge_list| NOT (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.LINE', 'INTEGRATED_CNC_SCHEMA.CONIC', 'INTEGRATED_CNC_SCHEMA.POLYLINE', 'INTEGRATED_CNC_SCHEMA.SURFACE_CURVE', 'INTEGRATED_CNC_SCHEMA.B_SPLINE_CURVE' ] * TYPEOF(oe. edge_element\edge_curve.edge_geometry)) = 1))) = 0))) = 0; WR4: SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* bounds| ( 'INTEGRATED_CNC_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds.bound\path.edge_list| NOT ((('INTEGRATED_CNC_SCHEMA.VERTEX_POINT' IN TYPEOF(oe\edge. edge_start)) AND ('INTEGRATED_CNC_SCHEMA.CARTESIAN_POINT' IN TYPEOF(oe\edge.edge_start\vertex_point.vertex_geometry))) AND (('INTEGRATED_CNC_SCHEMA.VERTEX_POINT' IN TYPEOF(oe\edge. edge_end)) AND ('INTEGRATED_CNC_SCHEMA.CARTESIAN_POINT' IN TYPEOF(oe\edge.edge_end\vertex_point.vertex_geometry)))))) = 0))) = 0; WR5: SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* bounds| ( 'INTEGRATED_CNC_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| ( 'INTEGRATED_CNC_SCHEMA.ORIENTED_PATH' IN TYPEOF(elp_fbnds. bound)))) = 0; WR6: NOT ('INTEGRATED_CNC_SCHEMA.SWEPT_SURFACE' IN TYPEOF(face_geometry )) OR (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.LINE', 'INTEGRATED_CNC_SCHEMA.CONIC', 'INTEGRATED_CNC_SCHEMA.POLYLINE', 'INTEGRATED_CNC_SCHEMA.B_SPLINE_CURVE' ] * TYPEOF( face_geometry\swept_surface.swept_curve)) = 1); WR7: SIZEOF(QUERY (vlp_fbnds <* QUERY (bnds <* bounds| ( 'INTEGRATED_CNC_SCHEMA.VERTEX_LOOP' IN TYPEOF(bnds.bound)))| NOT (('INTEGRATED_CNC_SCHEMA.VERTEX_POINT' IN TYPEOF( vlp_fbnds\face_bound.bound\vertex_loop.loop_vertex)) AND ( 'INTEGRATED_CNC_SCHEMA.CARTESIAN_POINT' IN TYPEOF(vlp_fbnds\ face_bound.bound\vertex_loop.loop_vertex\vertex_point. vertex_geometry))))) = 0; WR8: SIZEOF(QUERY (bnd <* bounds| NOT (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.EDGE_LOOP', 'INTEGRATED_CNC_SCHEMA.VERTEX_LOOP' ] * TYPEOF(bnd.bound)) = 1))) = 0; WR9: SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* bounds| ( 'INTEGRATED_CNC_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds.bound\path.edge_list| ( 'INTEGRATED_CNC_SCHEMA.SURFACE_CURVE' IN TYPEOF(oe\ oriented_edge.edge_element\edge_curve.edge_geometry)) AND NOT (SIZEOF(QUERY (sc_ag <* oe.edge_element\edge_curve. edge_geometry\surface_curve.associated_geometry| NOT ( 'INTEGRATED_CNC_SCHEMA.PCURVE' IN TYPEOF(sc_ag)))) = 0))) = 0 ))) = 0; WR10: (NOT ('INTEGRATED_CNC_SCHEMA.SWEPT_SURFACE' IN TYPEOF( face_geometry)) OR (NOT ('INTEGRATED_CNC_SCHEMA.POLYLINE' IN TYPEOF(face_geometry\swept_surface.swept_curve)) OR (SIZEOF( face_geometry\swept_surface.swept_curve\polyline.points) >= 3 ))) AND (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* bounds| ( 'INTEGRATED_CNC_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds.bound\path.edge_list| ( 'INTEGRATED_CNC_SCHEMA.POLYLINE' IN TYPEOF(oe\oriented_edge. edge_element\edge_curve.edge_geometry)) AND NOT (SIZEOF(oe\ oriented_edge.edge_element\edge_curve.edge_geometry\polyline. points) >= 3))) = 0))) = 0); END_ENTITY; -- 10303-511: aic_topologically_bounded_surface ENTITY and_expression SUBTYPE OF (multiple_arity_boolean_expression); END_ENTITY; -- 13584-20: iso13584_expressions_schema ENTITY angular_dimension SUBTYPE OF (dimension_curve_directed_callout); END_ENTITY; -- 10303-506: aic_draughting_elements ENTITY angular_location SUBTYPE OF (dimensional_location); angle_selection : angle_relator; END_ENTITY; -- 10303-47: shape_dimension_schema ENTITY angular_size SUBTYPE OF (dimensional_size); angle_selection : angle_relator; END_ENTITY; -- 10303-47: shape_dimension_schema ENTITY angularity_tolerance SUBTYPE OF (geometric_tolerance_with_datum_reference); WHERE WR1: SIZEOF(SELF\geometric_tolerance_with_datum_reference.datum_system) < 3; END_ENTITY; -- 10303-519: aic_geometric_tolerances ENTITY annotation_curve_occurrence SUBTYPE OF (annotation_occurrence); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.CURVE' IN TYPEOF(SELF\styled_item.item); END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY annotation_fill_area SUBTYPE OF (geometric_representation_item); boundaries : SET [1:?] OF curve; END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY annotation_fill_area_occurrence SUBTYPE OF (annotation_occurrence); fill_style_target : point; WHERE WR1: 'INTEGRATED_CNC_SCHEMA.ANNOTATION_FILL_AREA' IN TYPEOF(SELF.item); END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY annotation_occurrence SUPERTYPE OF (ONEOF(annotation_curve_occurrence, annotation_fill_area_occurrence, annotation_text_occurrence, annotation_symbol_occurrence)) SUBTYPE OF (styled_item); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( SELF); END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY annotation_occurrence_associativity SUBTYPE OF (annotation_occurrence_relationship); WHERE WR1: SIZEOF(TYPEOF(SELF.related_annotation_occurrence) * [ 'INTEGRATED_CNC_SCHEMA.ANNOTATION_FILL_AREA_OCCURRENCE', 'INTEGRATED_CNC_SCHEMA.PROJECTION_CURVE', 'INTEGRATED_CNC_SCHEMA.LEADER_CURVE' ]) = 1; END_ENTITY; -- 10303-520: aic_associative_draughting_elements ENTITY annotation_occurrence_relationship; name : label; description : text; relating_annotation_occurrence : annotation_occurrence; related_annotation_occurrence : annotation_occurrence; END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY annotation_subfigure_occurrence SUBTYPE OF (annotation_symbol_occurrence); WHERE WR1: SIZEOF(QUERY (sty <* SELF.styles| NOT (SIZEOF(sty.styles) = 1))) = 0; WR2: SIZEOF(QUERY (sty <* SELF.styles| NOT ( 'INTEGRATED_CNC_SCHEMA.NULL_STYLE' IN TYPEOF(sty.styles[1]))) ) = 0; WR3: 'INTEGRATED_CNC_SCHEMA.ANNOTATION_SYMBOL' IN TYPEOF(SELF.item); WR4: 'INTEGRATED_CNC_SCHEMA.DRAUGHTING_SUBFIGURE_REPRESENTATION' IN TYPEOF(SELF.item\mapped_item.mapping_source. mapped_representation); END_ENTITY; -- 10303-504: aic_draughting_annotation ENTITY annotation_symbol SUBTYPE OF (mapped_item); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.SYMBOL_REPRESENTATION_MAP' IN TYPEOF(SELF\ mapped_item.mapping_source); WR2: 'INTEGRATED_CNC_SCHEMA.SYMBOL_TARGET' IN TYPEOF(SELF\mapped_item. mapping_target); WR3: 'INTEGRATED_CNC_SCHEMA.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( SELF); END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY annotation_symbol_occurrence SUBTYPE OF (annotation_occurrence); WHERE WR1: SIZEOF([ 'INTEGRATED_CNC_SCHEMA.ANNOTATION_SYMBOL', 'INTEGRATED_CNC_SCHEMA.DEFINED_SYMBOL' ] * TYPEOF(SELF\ styled_item.item)) > 0; END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY annotation_text SUBTYPE OF (mapped_item); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.AXIS2_PLACEMENT' IN TYPEOF(SELF\mapped_item .mapping_target); WR2: 'INTEGRATED_CNC_SCHEMA.TEXT_STRING_REPRESENTATION' IN TYPEOF(SELF\ mapped_item.mapping_source.mapped_representation); WR3: 'INTEGRATED_CNC_SCHEMA.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( SELF); END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY annotation_text_character SUBTYPE OF (mapped_item); alignment : text_alignment; WHERE WR1: 'INTEGRATED_CNC_SCHEMA.CHARACTER_GLYPH_SYMBOL' IN TYPEOF(SELF\ mapped_item.mapping_source.mapped_representation); WR2: 'INTEGRATED_CNC_SCHEMA.AXIS2_PLACEMENT' IN TYPEOF(SELF\mapped_item .mapping_target); WR3: 'INTEGRATED_CNC_SCHEMA.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( SELF); END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY annotation_text_occurrence SUBTYPE OF (annotation_occurrence); WHERE WR1: SIZEOF([ 'INTEGRATED_CNC_SCHEMA.TEXT_LITERAL', 'INTEGRATED_CNC_SCHEMA.ANNOTATION_TEXT', 'INTEGRATED_CNC_SCHEMA.ANNOTATION_TEXT_CHARACTER', 'INTEGRATED_CNC_SCHEMA.DEFINED_CHARACTER_GLYPH', 'INTEGRATED_CNC_SCHEMA.COMPOSITE_TEXT' ] * TYPEOF(SELF\ styled_item.item)) > 0; END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY apex SUBTYPE OF (derived_shape_aspect); END_ENTITY; -- 10303-47: shape_aspect_definition_schema ENTITY application_context; application : label; DERIVE description : text := get_description_value(SELF); id : identifier := get_id_value(SELF); INVERSE context_elements : SET [1:?] OF application_context_element FOR frame_of_reference; WHERE WR1: SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; WR2: SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; END_ENTITY; -- 10303-41: application_context_schema ENTITY application_context_element SUPERTYPE OF (ONEOF(product_context, product_definition_context)); name : label; frame_of_reference : application_context; END_ENTITY; -- 10303-41: application_context_schema ENTITY application_protocol_definition; status : label; application_interpreted_model_schema_name : label; application_protocol_year : year_number; application : application_context; END_ENTITY; -- 10303-41: application_context_schema ENTITY applied_action_method_assignment SUBTYPE OF (action_method_assignment); items : SET [1:?] OF approval_item; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY applied_approval_assignment SUBTYPE OF (approval_assignment); items : SET [1:?] OF approval_item; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY applied_area SUBTYPE OF (shape_aspect); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(SELF. of_shape); WR2: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))) = 1))) = 0; WR3: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT ((2 <= SIZEOF(impl_rep. used_representation.items)) AND (SIZEOF(impl_rep. used_representation.items) <= 3)))) = 0))) = 0; WR4: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)) AND (SIZEOF(QUERY (srwp_i <* pdr. used_representation.items| NOT (srwp_i.name IN [ 'orientation', 'effective length', 'maximum length' ]))) > 0) )) = 0))) = 0; WR5: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'effective length'))) = 1))) = 0))) <= 1; WR6: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'maximum length'))) <= 1))) = 0))) = 0; WR7: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| ('INTEGRATED_CNC_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY applied_classification_assignment SUBTYPE OF (classification_assignment); items : SET [1:?] OF classification_item; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY applied_date_and_time_assignment SUBTYPE OF (date_and_time_assignment); items : SET [1:?] OF date_and_time_item; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY applied_date_assignment SUBTYPE OF (date_assignment); items : SET [1:?] OF date_item; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY applied_document_reference SUBTYPE OF (document_reference); items : SET [1:?] OF document_reference_item; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY applied_document_usage_constraint_assignment SUBTYPE OF (document_usage_constraint_assignment); items : SET [1:?] OF document_reference_item; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY applied_external_identification_assignment SUBTYPE OF (external_identification_assignment); items : SET [1:?] OF external_identification_item; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY applied_group_assignment SUBTYPE OF (group_assignment); items : SET [1:?] OF group_item; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY applied_identification_assignment SUBTYPE OF (identification_assignment); items : SET [1:?] OF identification_item; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY applied_organization_assignment SUBTYPE OF (organization_assignment); items : SET [1:?] OF organization_item; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY applied_person_and_organization_assignment SUBTYPE OF (person_and_organization_assignment); items : SET [1:?] OF person_and_organization_item; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY applied_presented_item SUBTYPE OF (presented_item); items : SET [1:?] OF presented_item_select; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY applied_security_classification_assignment SUBTYPE OF (security_classification_assignment); items : SET [1:?] OF security_classification_item; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY approval; status : approval_status; level : label; END_ENTITY; -- 10303-41: approval_schema ENTITY approval_assignment ABSTRACT SUPERTYPE; assigned_approval : approval; DERIVE role : object_role := get_role(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY; -- 10303-41: management_resources_schema ENTITY approval_date_time; date_time : date_time_select; dated_approval : approval; DERIVE role : object_role := get_role(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY; -- 10303-41: approval_schema ENTITY approval_person_organization; person_organization : person_organization_select; authorized_approval : approval; role : approval_role; END_ENTITY; -- 10303-41: approval_schema ENTITY approval_relationship; name : label; description : OPTIONAL text; relating_approval : approval; related_approval : approval; END_ENTITY; -- 10303-41: approval_schema ENTITY approval_role; role : label; DERIVE description : text := get_description_value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY; -- 10303-41: approval_schema ENTITY approval_status; name : label; END_ENTITY; -- 10303-41: approval_schema ENTITY approximation_tolerance; tolerance : tolerance_select; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY approximation_tolerance_deviation; tessellation_type : approximation_method; tolerances : SET [1:2] OF tolerance_deviation_select; definition_space : product_or_presentation_space; WHERE WR1: (HIINDEX(SELF.tolerances) = 1) XOR (TYPEOF(SELF.tolerances[1]) <> TYPEOF(SELF.tolerances[2])); END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY approximation_tolerance_parameter; tolerances : SET [1:2] OF tolerance_parameter_select; WHERE WR1: (HIINDEX(SELF.tolerances) = 1) XOR (TYPEOF(SELF.tolerances[1]) <> TYPEOF(SELF.tolerances[2])); END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY area_in_set; area : presentation_area; in_set : presentation_set; END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY assembly_component_usage SUPERTYPE OF (next_assembly_usage_occurrence) SUBTYPE OF (product_definition_usage); reference_designator : OPTIONAL identifier; END_ENTITY; -- 10303-44: product_structure_schema ENTITY axis1_placement SUBTYPE OF (placement); axis : OPTIONAL direction; DERIVE z : direction := NVL(normalise(axis), dummy_gri || direction([ 0.0, 0.0 , 1.0 ])); WHERE WR1: SELF\geometric_representation_item.dim = 3; END_ENTITY; -- 10303-42: geometry_schema ENTITY axis2_placement_2d SUBTYPE OF (placement); ref_direction : OPTIONAL direction; DERIVE p : LIST [2:2] OF direction := build_2axes(ref_direction); WHERE WR1: SELF\geometric_representation_item.dim = 2; END_ENTITY; -- 10303-42: geometry_schema ENTITY axis2_placement_3d SUBTYPE OF (placement); axis : OPTIONAL direction; ref_direction : OPTIONAL direction; DERIVE p : LIST [3:3] OF direction := build_axes(axis, ref_direction); WHERE WR1: SELF\placement.location.dim = 3; WR2: NOT EXISTS(axis) OR (axis.dim = 3); WR3: NOT EXISTS(ref_direction) OR (ref_direction.dim = 3); WR4: (NOT EXISTS(axis) OR NOT EXISTS(ref_direction)) OR (cross_product( axis, ref_direction).magnitude > 0.0); END_ENTITY; -- 10303-42: geometry_schema ENTITY b_spline_curve SUPERTYPE OF (ONEOF(uniform_curve, b_spline_curve_with_knots, quasi_uniform_curve, bezier_curve) ANDOR rational_b_spline_curve) SUBTYPE OF (bounded_curve); degree : INTEGER; control_points_list : LIST [2:?] OF cartesian_point; curve_form : b_spline_curve_form; closed_curve : LOGICAL; self_intersect : LOGICAL; DERIVE upper_index_on_control_points : INTEGER := SIZEOF(control_points_list) - 1; control_points : ARRAY [0:upper_index_on_control_points] OF cartesian_point := list_to_array (control_points_list, 0, upper_index_on_control_points); WHERE WR1: ((('INTEGRATED_CNC_SCHEMA.UNIFORM_CURVE' IN TYPEOF(SELF)) OR ( 'INTEGRATED_CNC_SCHEMA.QUASI_UNIFORM_CURVE' IN TYPEOF(SELF))) OR ('INTEGRATED_CNC_SCHEMA.BEZIER_CURVE' IN TYPEOF(SELF))) OR ('INTEGRATED_CNC_SCHEMA.B_SPLINE_CURVE_WITH_KNOTS' IN TYPEOF(SELF)); END_ENTITY; -- 10303-42: geometry_schema ENTITY b_spline_curve_with_knots SUBTYPE OF (b_spline_curve); knot_multiplicities : LIST [2:?] OF INTEGER; knots : LIST [2:?] OF parameter_value; knot_spec : knot_type; DERIVE upper_index_on_knots : INTEGER := SIZEOF(knots); WHERE WR1: constraints_param_b_spline(degree, upper_index_on_knots, upper_index_on_control_points, knot_multiplicities, knots); WR2: SIZEOF(knot_multiplicities) = upper_index_on_knots; END_ENTITY; -- 10303-42: geometry_schema ENTITY b_spline_surface SUPERTYPE OF (ONEOF(b_spline_surface_with_knots, uniform_surface, quasi_uniform_surface, bezier_surface) ANDOR rational_b_spline_surface) SUBTYPE OF (bounded_surface); u_degree : INTEGER; v_degree : INTEGER; control_points_list : LIST [2:?] OF LIST [2:?] OF cartesian_point; surface_form : b_spline_surface_form; u_closed : LOGICAL; v_closed : LOGICAL; self_intersect : LOGICAL; DERIVE u_upper : INTEGER := SIZEOF(control_points_list) - 1; v_upper : INTEGER := SIZEOF(control_points_list[1]) - 1; control_points : ARRAY [0:u_upper] OF ARRAY [0:v_upper] OF cartesian_point := make_array_of_array( control_points_list, 0, u_upper, 0, v_upper); WHERE WR1: ((('INTEGRATED_CNC_SCHEMA.UNIFORM_SURFACE' IN TYPEOF(SELF)) OR ( 'INTEGRATED_CNC_SCHEMA.QUASI_UNIFORM_SURFACE' IN TYPEOF(SELF) )) OR ('INTEGRATED_CNC_SCHEMA.BEZIER_SURFACE' IN TYPEOF(SELF) )) OR ('INTEGRATED_CNC_SCHEMA.B_SPLINE_SURFACE_WITH_KNOTS' IN TYPEOF(SELF)); END_ENTITY; -- 10303-42: geometry_schema ENTITY b_spline_surface_with_knots SUBTYPE OF (b_spline_surface); u_multiplicities : LIST [2:?] OF INTEGER; v_multiplicities : LIST [2:?] OF INTEGER; u_knots : LIST [2:?] OF parameter_value; v_knots : LIST [2:?] OF parameter_value; knot_spec : knot_type; DERIVE knot_u_upper : INTEGER := SIZEOF(u_knots); knot_v_upper : INTEGER := SIZEOF(v_knots); WHERE WR1: constraints_param_b_spline(SELF\b_spline_surface.u_degree, knot_u_upper, SELF\b_spline_surface.u_upper, u_multiplicities , u_knots); WR2: constraints_param_b_spline(SELF\b_spline_surface.v_degree, knot_v_upper, SELF\b_spline_surface.v_upper, v_multiplicities , v_knots); WR3: SIZEOF(u_multiplicities) = knot_u_upper; WR4: SIZEOF(v_multiplicities) = knot_v_upper; END_ENTITY; -- 10303-42: geometry_schema ENTITY back_boring_operation SUBTYPE OF (drilling_type_operation); WHERE WR1: (0 = SIZEOF (QUERY (amr <* get_relating_amr (SELF) | ('INTEGRATED_CNC_SCHEMA.MACHINING_FUNCTIONS_RELATIONSHIP' IN TYPEOF (amr)) AND NOT (verify_required_action_property (amr.related_method, 'oriented spindle stop'))))); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY background_colour SUBTYPE OF (colour); presentation : area_or_view; UNIQUE UR1: presentation; END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY bezier_curve SUBTYPE OF (b_spline_curve); END_ENTITY; -- 10303-42: geometry_schema ENTITY bezier_surface SUBTYPE OF (b_spline_surface); END_ENTITY; -- 10303-42: geometry_schema ENTITY binary_boolean_expression ABSTRACT SUPERTYPE OF (xor_expression) SUBTYPE OF (boolean_expression, binary_generic_expression); END_ENTITY; -- 13584-20: iso13584_expressions_schema ENTITY binary_generic_expression ABSTRACT SUPERTYPE SUBTYPE OF (generic_expression); operands : LIST [2:2] OF generic_expression; END_ENTITY; -- 13584-20: iso13584_generic_expressions_schema ENTITY block SUBTYPE OF (geometric_representation_item); position : axis2_placement_3d; x : positive_length_measure; y : positive_length_measure; z : positive_length_measure; END_ENTITY; -- 10303-42: geometric_model_schema ENTITY block_shape_representation SUBTYPE OF (shape_representation_with_parameters); WHERE WR1: SIZEOF(SELF.items) = 4; WR2: SIZEOF(QUERY (it <* SELF.items| ('INTEGRATED_CNC_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1; WR3: SIZEOF(QUERY (it <* SELF.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'length'))) = 1; WR4: SIZEOF(QUERY (it <* SELF.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'width'))) = 1; WR5: SIZEOF(QUERY (it <* SELF.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'height'))) = 1; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY boolean_expression ABSTRACT SUPERTYPE OF (ONEOF (unary_boolean_expression, binary_boolean_expression,multiple_arity_boolean_expression, comparison_expression)) SUBTYPE OF (expression); END_ENTITY; -- 13584-20: iso13584_expressions_schema ENTITY boring_operation SUBTYPE OF (drilling_type_operation); WHERE WR1: (SELF.description IN ['boring','reaming']); WR2: (verify_optional_action_property (SELF, 'spindle stop')) AND (verify_enumeration_action_property (SELF, 'spindle stop', ['spindle stop at bottom', 'spindle nonstop'])); WR3: (verify_optional_action_property (SELF, 'testcut depth')) AND (verify_length_measure_action_property (SELF, 'testcut depth')); WR4: (verify_optional_action_property (SELF, 'waiting position')) AND (verify_rep_item_for_action_property (SELF, 'waiting position', ['INTEGRATED_CNC_SCHEMA.CARTESIAN_POINT'])); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY boss SUBTYPE OF (feature_definition); WHERE WR1: SELF\characterized_object.description IN [ 'circular', 'complex', 'rectangular' ]; WR2: SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'boss height occurrence') AND (SIZEOF(QUERY ( sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'path feature component usage') AND ('INTEGRATED_CNC_SCHEMA.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| (( 'INTEGRATED_CNC_SCHEMA.PATH_FEATURE_COMPONENT' IN TYPEOF(sdr. relating_shape_aspect)) AND (sdr.relating_shape_aspect. description = 'linear')) AND (sdr.name = 'boss height'))) = 1 ))) = 1))) = 0; WR3: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)) AND ((1 <= SIZEOF(pdr. used_representation.items)) AND (SIZEOF(pdr. used_representation.items) <= 2)))) = 1))) = 1; WR4: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)) AND (SIZEOF(QUERY (srwp_i <* pdr. used_representation.items| (srwp_i.name = 'orientation') OR ( srwp_i.name = 'fillet radius'))) = SIZEOF(pdr. used_representation.items)))) = 1))) = 1; WR5: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'fillet radius'))) <= 1))) = 0))) = 0; WR6: NOT (SELF\characterized_object.description = 'circular') OR ( SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'circular profile occurrence') AND (SIZEOF( QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ( 'INTEGRATED_CNC_SCHEMA.CIRCULAR_CLOSED_PROFILE' IN TYPEOF(sdr .relating_shape_aspect)))) = 1))) = 1))) = 0); WR7: SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'top condition occurrence') AND (SIZEOF(QUERY ( fcr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' )| (sar.description = 'boss top usage') AND ( 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| ('INTEGRATED_CNC_SCHEMA.BOSS_TOP' IN TYPEOF( fcr.relating_shape_aspect)))) = 1))) = 1))) = 0; WR8: NOT (SELF\characterized_object.description = 'circular') OR ( SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'change in diameter occurrence') AND (SIZEOF( QUERY (fcr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'taper usage') AND ('INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| ('INTEGRATED_CNC_SCHEMA.TAPER' IN TYPEOF( fcr.related_shape_aspect)) AND ('INTEGRATED_CNC_SCHEMA.BOSS' IN TYPEOF(fcr.relating_shape_aspect)))) = 1))) <= 1))) = 0); WR9: NOT (SELF\characterized_object.description = 'complex') OR (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'enclosed boundary occurrence') AND (SIZEOF( QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.NGON_CLOSED_PROFILE', 'INTEGRATED_CNC_SCHEMA.CLOSED_PATH_PROFILE' ] * TYPEOF(sdr. relating_shape_aspect)) = 1))) = 1))) = 1))) = 0); WR10: NOT (SELF\characterized_object.description IN [ 'complex', 'rectangular' ]) OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN (SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION' )| ('INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'change in boundary occurrence') AND (SIZEOF( QUERY (fcr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT')| (sar.description = 'taper usage') AND ('INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| (('INTEGRATED_CNC_SCHEMA.TAPER' IN TYPEOF( fcr.related_shape_aspect)) AND ('INTEGRATED_CNC_SCHEMA.BOSS' IN TYPEOF(fcr.relating_shape_aspect))) AND (fcr. related_shape_aspect.description IN [ 'angle taper', 'directed taper' ]))) = 1))) <= 1))) = 0); WR11: NOT (SELF\characterized_object.description = 'rectangular') OR ( SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'rectangular profile occurrence') AND (SIZEOF( QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ( 'INTEGRATED_CNC_SCHEMA.RECTANGULAR_CLOSED_PROFILE' IN TYPEOF( sdr.relating_shape_aspect)))) = 1))) = 1))) = 0); WR12: SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF )| ('INTEGRATED_CNC_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation .name = 'maximum feature limit'))) >= 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY boss_top SUBTYPE OF (shape_aspect); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape.definition); WR2: SELF.description IN [ 'planar', 'complex' ]; WR3: NOT (SELF.description = 'planar') OR (SIZEOF(QUERY (pd <* USEDIN( SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)))) = 1))) = 0); WR4: NOT (SELF.description = 'planar') OR (SIZEOF(QUERY (pd <* USEDIN( SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.LOCATION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)))) = 1))) = 0); WR5: NOT (SELF.description = 'complex') OR (SIZEOF(QUERY (pd <* USEDIN( SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation)))) = 1))) = 0); WR6: SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT')| ((sar.description = 'boss top usage') AND (sar.name IN [ 'boss height start', 'boss height end' ])) AND ( 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| ((fcr.related_shape_aspect.description = 'top condition occurrence') AND ('INTEGRATED_CNC_SCHEMA.BOSS' IN TYPEOF(fcr.related_shape_aspect.of_shape.definition))) AND ('INTEGRATED_CNC_SCHEMA.BOSS_TOP' IN TYPEOF(fcr. relating_shape_aspect)))) >= 1; WR7: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))) <= 1))) = 0; WR8: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(impl_rep. used_representation.items) = 1))) = 0))) = 0; WR9: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'top radius'))) <= 1))) = 0))) = 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY bottom_and_side_milling_operation SUBTYPE OF (milling_type_operation); WHERE WR1: (SELF.description IN ['roughing','finishing']); WR2: (verify_optional_action_property (SELF, 'axial cutting depth')) AND (verify_length_measure_action_property (SELF, 'axial cutting depth')); WR3: (verify_optional_action_property (SELF, 'radial cutting depth')) AND (verify_length_measure_action_property (SELF, 'radial cutting depth')); WR4: (verify_optional_action_property (SELF, 'allowance side')) AND (verify_length_measure_action_property (SELF, 'allowance side')); WR5: (verify_optional_action_property (SELF, 'allowance bottom')) AND (verify_length_measure_action_property (SELF, 'allowance bottom')); WR6: NOT (SELF.description = 'roughing') OR ((verify_required_action_property (SELF, 'allowance side')) AND (verify_required_action_property (SELF, 'allowance bottom'))); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY boundary_curve SUBTYPE OF (composite_curve_on_surface); WHERE WR1: SELF\composite_curve.closed_curve; END_ENTITY; -- 10303-42: geometry_schema ENTITY bounded_curve SUPERTYPE OF (ONEOF(polyline, b_spline_curve, trimmed_curve, bounded_pcurve, bounded_surface_curve, composite_curve)) SUBTYPE OF (curve); END_ENTITY; -- 10303-42: geometry_schema ENTITY bounded_pcurve SUBTYPE OF (pcurve, bounded_curve); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.BOUNDED_CURVE' IN TYPEOF(SELF\pcurve. reference_to_curve.items[1]); END_ENTITY; -- 10303-42: geometry_schema ENTITY bounded_surface SUPERTYPE OF (ONEOF(b_spline_surface, rectangular_trimmed_surface, curve_bounded_surface, rectangular_composite_surface)) SUBTYPE OF (surface); END_ENTITY; -- 10303-42: geometry_schema ENTITY bounded_surface_curve SUBTYPE OF (surface_curve, bounded_curve); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.BOUNDED_CURVE' IN TYPEOF(SELF\surface_curve .curve_3d); END_ENTITY; -- 10303-42: geometry_schema ENTITY brep_with_voids SUBTYPE OF (manifold_solid_brep); voids : SET [1:?] OF oriented_closed_shell; END_ENTITY; -- 10303-42: geometric_model_schema ENTITY calendar_date SUBTYPE OF (date); day_component : day_in_month_number; month_component : month_in_year_number; WHERE WR1: valid_calendar_date(SELF); END_ENTITY; -- 10303-41: date_time_schema ENTITY camera_image SUBTYPE OF (mapped_item); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.CAMERA_USAGE' IN TYPEOF(SELF\mapped_item. mapping_source); WR2: 'INTEGRATED_CNC_SCHEMA.PLANAR_BOX' IN TYPEOF(SELF\mapped_item. mapping_target); WR3: 'INTEGRATED_CNC_SCHEMA.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( SELF); END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY camera_image_2d_with_scale SUBTYPE OF (camera_image); DERIVE scale : positive_ratio_measure := SELF\mapped_item.mapping_target\ planar_extent.size_in_x / SELF\mapped_item.mapping_source. mapping_origin\camera_model_d2.view_window\planar_extent. size_in_x; WHERE WR1: 'INTEGRATED_CNC_SCHEMA.' + 'CAMERA_MODEL_D2' IN TYPEOF(SELF\ mapped_item.mapping_source.mapping_origin); WR2: aspect_ratio(SELF\mapped_item.mapping_target) = aspect_ratio(SELF\ mapped_item.mapping_source.mapping_origin\camera_model_d2. view_window); WR3: SELF\mapped_item.mapping_source.mapping_origin\camera_model_d2. view_window_clipping; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY camera_image_3d_with_scale SUBTYPE OF (camera_image); DERIVE scale : positive_ratio_measure := SELF\mapped_item.mapping_target\ planar_extent.size_in_x / SELF\mapped_item.mapping_source. mapping_origin\camera_model_d3.perspective_of_volume. view_window.size_in_x; WHERE WR1: 'INTEGRATED_CNC_SCHEMA.CAMERA_MODEL_D3' IN TYPEOF(SELF\mapped_item .mapping_source.mapping_origin); WR2: aspect_ratio(SELF\mapped_item.mapping_target) = aspect_ratio(SELF\ mapped_item.mapping_source.mapping_origin\camera_model_d3. perspective_of_volume.view_window); WR3: SELF\mapped_item.mapping_source.mapping_origin\camera_model_d3. perspective_of_volume.front_plane_clipping AND SELF\ mapped_item.mapping_source.mapping_origin\camera_model_d3. perspective_of_volume.view_volume_sides_clipping; WR4: (SELF\mapped_item.mapping_target\planar_extent.size_in_x > 0) AND (SELF\mapped_item.mapping_target\planar_extent.size_in_y > 0) ; WR5: (SELF\mapped_item.mapping_source.mapping_origin\camera_model_d3. perspective_of_volume.view_window.size_in_x > 0) AND (SELF\ mapped_item.mapping_source.mapping_origin\camera_model_d3. perspective_of_volume.view_window.size_in_y > 0); WR6: ('INTEGRATED_CNC_SCHEMA.' + 'AXIS2_PLACEMENT_2D' IN TYPEOF(SELF\ mapped_item.mapping_target\planar_box.placement)) AND NOT ( 'INTEGRATED_CNC_SCHEMA.' + 'AXIS2_PLACEMENT_3D' IN TYPEOF( SELF\mapped_item.mapping_target\planar_box.placement)); END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY camera_model SUPERTYPE OF (ONEOF(camera_model_d2, camera_model_d3)) SUBTYPE OF (geometric_representation_item); WHERE WR1: SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'ITEM_DEFINED_TRANSFORMATION.' + 'TRANSFORM_ITEM_1')) + SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'REPRESENTATION_MAP.MAPPING_ORIGIN')) > 0; WR2: SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'STYLED_ITEM.ITEM') ) = 0; END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY camera_model_d2 SUBTYPE OF (camera_model); view_window : planar_box; view_window_clipping : BOOLEAN; WHERE WR1: SELF\geometric_representation_item.dim = 2; END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY camera_model_d3 SUBTYPE OF (camera_model); view_reference_system : axis2_placement_3d; perspective_of_volume : view_volume; WHERE WR1: (dot_product(SELF.view_reference_system.p[3], SELF. perspective_of_volume.view_window.placement.p[3]) = 1.0) AND (SELF.view_reference_system.location.coordinates[3] = SELF. perspective_of_volume.view_window.placement.location. coordinates[3]); WR2: SELF\geometric_representation_item.dim = 3; END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY camera_model_d3_with_hlhsr SUBTYPE OF (camera_model_d3); hidden_line_surface_removal : BOOLEAN; END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY camera_model_with_light_sources SUBTYPE OF (camera_model_d3); sources : SET [1:?] OF light_source; END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY camera_usage SUBTYPE OF (representation_map); WHERE WR1: NOT ('INTEGRATED_CNC_SCHEMA.PRESENTATION_REPRESENTATION' IN TYPEOF (SELF\representation_map.mapped_representation)); WR2: 'INTEGRATED_CNC_SCHEMA.CAMERA_MODEL' IN TYPEOF(SELF\ representation_map.mapping_origin); END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY cartesian_point SUBTYPE OF (point); coordinates : LIST [1:3] OF length_measure; END_ENTITY; -- 10303-42: geometry_schema ENTITY cartesian_transformation_operator SUPERTYPE OF (ONEOF(cartesian_transformation_operator_2d, cartesian_transformation_operator_3d)) SUBTYPE OF (geometric_representation_item, functionally_defined_transformation); axis1 : OPTIONAL direction; axis2 : OPTIONAL direction; local_origin : cartesian_point; scale : OPTIONAL REAL; DERIVE scl : REAL := NVL(scale, 1.0); WHERE WR1: scl > 0.0; END_ENTITY; -- 10303-42: geometry_schema ENTITY cartesian_transformation_operator_2d SUBTYPE OF (cartesian_transformation_operator); DERIVE u : LIST [2:2] OF direction := base_axis(2, SELF\ cartesian_transformation_operator.axis1, SELF\ cartesian_transformation_operator.axis2, ?); WHERE WR1: SELF\geometric_representation_item.dim = 2; END_ENTITY; -- 10303-42: geometry_schema ENTITY cartesian_transformation_operator_3d SUBTYPE OF (cartesian_transformation_operator); axis3 : OPTIONAL direction; DERIVE u : LIST [3:3] OF direction := base_axis(3, SELF\ cartesian_transformation_operator.axis1, SELF\ cartesian_transformation_operator.axis2, axis3); WHERE WR1: SELF\geometric_representation_item.dim = 3; END_ENTITY; -- 10303-42: geometry_schema ENTITY centre_of_symmetry SUBTYPE OF (derived_shape_aspect); WHERE WR1: SIZEOF(QUERY (sadr <* SELF\derived_shape_aspect. deriving_relationships| NOT ( 'INTEGRATED_CNC_SCHEMA.SYMMETRIC_SHAPE_ASPECT' IN TYPEOF(sadr \shape_aspect_relationship.related_shape_aspect)))) = 0; END_ENTITY; -- 10303-47: shape_aspect_definition_schema ENTITY chamfer SUBTYPE OF (transition_feature); WHERE WR1: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation)) AND (pdr.used_representation.name = 'chamfer face'))) <= 1))) = 0; WR2: SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT')| ( 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| (('INTEGRATED_CNC_SCHEMA.CHAMFER_OFFSET' IN TYPEOF(fcr.related_shape_aspect)) AND ( 'INTEGRATED_CNC_SCHEMA.CHAMFER' IN TYPEOF(fcr. relating_shape_aspect))) AND (fcr.related_shape_aspect. description = 'first offset'))) = 1; WR3: SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT')| ( 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| (('INTEGRATED_CNC_SCHEMA.CHAMFER_OFFSET' IN TYPEOF(fcr.related_shape_aspect)) AND ( 'INTEGRATED_CNC_SCHEMA.CHAMFER' IN TYPEOF(fcr. relating_shape_aspect))) AND (fcr.related_shape_aspect. description = 'second offset'))) = 1; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY chamfer_offset SUBTYPE OF (shape_aspect); WHERE WR1: SELF.description IN [ 'first offset', 'second offset' ]; WR2: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))) = 1))) = 0; WR3: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(impl_rep. used_representation.items) = 1))) = 0))) = 0; WR4: NOT (SELF.description = 'first offset') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'offset amount'))) = 1))) = 0))) = 0 ); WR5: NOT (SELF.description = 'first offset') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation)) AND (pdr.used_representation.name = 'first face shape'))) <= 1))) = 0); WR6: NOT (SELF.description = 'second offset') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'offset amount') OR (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'offset angle'))) = 1))) = 0) )) = 0); WR7: NOT (SELF.description = 'second offset') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation)) AND (pdr.used_representation.name = 'second face shape'))) <= 1))) = 0); WR8: SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| ('INTEGRATED_CNC_SCHEMA.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| ( 'INTEGRATED_CNC_SCHEMA.CHAMFER' IN TYPEOF(sdr. relating_shape_aspect)) AND ( 'INTEGRATED_CNC_SCHEMA.CHAMFER_OFFSET' IN TYPEOF(sdr. related_shape_aspect)))) = 1; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY character_glyph_symbol SUBTYPE OF (symbol_representation); character_box : planar_extent; baseline_ratio : ratio_measure; DERIVE box_height : length_measure := character_box.size_in_y; WHERE WR1: (0.0 <= baseline_ratio) AND (baseline_ratio <= 1.0); WR2: item_in_context(SELF.character_box, SELF\representation. context_of_items); WR3: 'INTEGRATED_CNC_SCHEMA.POSITIVE_LENGTH_MEASURE' IN TYPEOF(SELF. box_height); END_ENTITY; -- 10303-46: presentation_resource_schema ENTITY characterized_object; name : label; description : OPTIONAL text; END_ENTITY; -- 10303-41: product_property_definition_schema ENTITY circle SUBTYPE OF (conic); radius : positive_length_measure; END_ENTITY; -- 10303-42: geometry_schema ENTITY circular_closed_profile SUBTYPE OF (shape_aspect); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape.definition); WR2: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))) = 1))) = 0; WR3: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(impl_rep. used_representation.items) = 2))) = 0))) = 0; WR4: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| ('INTEGRATED_CNC_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0; WR5: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'diameter'))) = 1))) = 0))) = 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY circular_path SUBTYPE OF (path_node); via_point : cartesian_point; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY circular_pattern SUBTYPE OF (replicate_feature); WHERE WR1: SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT')| ( 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| ('INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sdr.related_shape_aspect)))) = 1))) <= 3))) = 0; WR2: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))) = 1))) = 0; WR3: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT ((SIZEOF(impl_rep. used_representation.items) >= 3) AND (SIZEOF(impl_rep. used_representation.items) <= 5)))) = 0))) = 0; WR4: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'diameter'))) <= 1))) = 0))) = 0; WR5: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'base feature rotation'))) <= 1))) = 0))) = 0; WR6: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (( 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (it)) AND ('INTEGRATED_CNC_SCHEMA.COUNT_MEASURE' IN TYPEOF(it \measure_with_unit.value_component))) AND (it.name = 'number of features'))) = 1))) = 0))) = 0; WR7: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'angular spacing'))) = 1))) = 0))) = 0; WR8: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| ('INTEGRATED_CNC_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY circular_runout_tolerance SUBTYPE OF (geometric_tolerance_with_datum_reference); WHERE WR1: SIZEOF(SELF\geometric_tolerance_with_datum_reference.datum_system) <= 2; END_ENTITY; -- 10303-519: aic_geometric_tolerances ENTITY class SUBTYPE OF (group); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY classification_assignment ABSTRACT SUPERTYPE; assigned_class : group; role : classification_role; END_ENTITY; -- 10303-41: management_resources_schema ENTITY classification_role; name : label; description : OPTIONAL text; END_ENTITY; -- 10303-41: management_resources_schema ENTITY closed_path_profile SUBTYPE OF (shape_aspect); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape.definition); WR2: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.' + 'DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))) = 1))) = 0; WR3: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(impl_rep. used_representation.items) = 1))) = 0))) = 0; WR4: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| ('INTEGRATED_CNC_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0; WR5: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.' + 'DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PATH_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation)))) = 1))) = 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY closed_shell SUBTYPE OF (connected_face_set); END_ENTITY; -- 10303-42: topology_schema ENTITY coaxiality_tolerance SUBTYPE OF (geometric_tolerance_with_datum_reference); WHERE WR1: SIZEOF(SELF\geometric_tolerance_with_datum_reference.datum_system) <= 2; END_ENTITY; -- 10303-519: aic_geometric_tolerances ENTITY colour; END_ENTITY; -- 10303-46: presentation_resource_schema ENTITY colour_rgb SUBTYPE OF (colour_specification); red : REAL; green : REAL; blue : REAL; WHERE WR1: (0.0 <= red) AND (red <= 1.0); WR2: (0.0 <= green) AND (green <= 1.0); WR3: (0.0 <= blue) AND (blue <= 1.0); END_ENTITY; -- 10303-46: presentation_resource_schema ENTITY colour_specification SUBTYPE OF (colour); name : label; END_ENTITY; -- 10303-46: presentation_resource_schema ENTITY common_datum SUBTYPE OF (composite_shape_aspect, datum); WHERE WR1: SIZEOF(SELF.component_relationships) = 2; WR2: SIZEOF(QUERY (sar <* SELF.component_relationships| NOT (( 'INTEGRATED_CNC_SCHEMA.DATUM' IN TYPEOF(sar. related_shape_aspect)) AND NOT ( 'INTEGRATED_CNC_SCHEMA.COMMON_DATUM' IN TYPEOF(sar. related_shape_aspect))))) = 0; END_ENTITY; -- 10303-519: aic_geometric_tolerances ENTITY comparison_equal SUBTYPE OF (comparison_expression); END_ENTITY; -- 13584-20: iso13584_expressions_schema ENTITY comparison_expression ABSTRACT SUPERTYPE OF (ONEOF (comparison_equal,comparison_greater, comparison_greater_equal,comparison_less,comparison_less_equal, comparison_not_equal)) SUBTYPE OF (boolean_expression, binary_generic_expression); SELF\binary_generic_expression.operands : LIST [2:2] OF expression; WHERE WR1: (('INTEGRATED_CNC_SCHEMA.NUMERIC_EXPRESSION' IN TYPEOF(SELF\binary_generic_expression.operands[1])) AND ('INTEGRATED_CNC_SCHEMA.NUMERIC_EXPRESSION' IN TYPEOF(SELF\binary_generic_expression.operands[2])) OR (('INTEGRATED_CNC_SCHEMA.BOOLEAN_EXPRESSION' IN TYPEOF(SELF\binary_generic_expression.operands[1])) AND ('INTEGRATED_CNC_SCHEMA.BOOLEAN_EXPRESSION' IN TYPEOF(SELF\binary_generic_expression.operands[2])))); END_ENTITY; -- 13584-20: iso13584_expressions_schema ENTITY comparison_greater SUBTYPE OF (comparison_expression); END_ENTITY; -- 13584-20: iso13584_expressions_schema ENTITY comparison_greater_equal SUBTYPE OF (comparison_expression); END_ENTITY; -- 13584-20: iso13584_expressions_schema ENTITY comparison_less SUBTYPE OF (comparison_expression); END_ENTITY; -- 13584-20: iso13584_expressions_schema ENTITY comparison_less_equal SUBTYPE OF (comparison_expression); END_ENTITY; -- 13584-20: iso13584_expressions_schema ENTITY comparison_not_equal SUBTYPE OF (comparison_expression); END_ENTITY; -- 13584-20: iso13584_expressions_schema ENTITY composite_curve SUBTYPE OF (bounded_curve); segments : LIST [1:?] OF composite_curve_segment; self_intersect : LOGICAL; DERIVE n_segments : INTEGER := SIZEOF(segments); closed_curve : LOGICAL := segments[n_segments].transition <> discontinuous; WHERE WR1: NOT closed_curve AND (SIZEOF(QUERY (temp <* segments| (temp. transition = discontinuous))) = 1) OR closed_curve AND ( SIZEOF(QUERY (temp <* segments| (temp.transition = discontinuous))) = 0); END_ENTITY; -- 10303-42: geometry_schema ENTITY composite_curve_on_surface SUPERTYPE OF (boundary_curve) SUBTYPE OF (composite_curve); DERIVE basis_surface : SET [0:2] OF surface := get_basis_surface(SELF); WHERE WR1: SIZEOF(basis_surface) > 0; WR2: constraints_composite_curve_on_surface(SELF); END_ENTITY; -- 10303-42: geometry_schema ENTITY composite_curve_segment SUBTYPE OF (founded_item); transition : transition_code; same_sense : BOOLEAN; parent_curve : curve; INVERSE using_curves : BAG [1:?] OF composite_curve FOR segments; WHERE WR1: 'INTEGRATED_CNC_SCHEMA.BOUNDED_CURVE' IN TYPEOF(parent_curve); END_ENTITY; -- 10303-42: geometry_schema ENTITY composite_hole SUBTYPE OF (compound_feature); WHERE WR1: SELF\characterized_object.description IN [ 'counterbore', 'countersunk' ]; WR2: SIZEOF(QUERY (pds <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds)) AND (SIZEOF(QUERY (csa <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| ( 'INTEGRATED_CNC_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa) ) AND (SIZEOF(QUERY (sar <* csa.component_relationships| ( 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND ('INTEGRATED_CNC_SCHEMA.ROUND_HOLE' IN TYPEOF(sar.related_shape_aspect)))) = 2))) = 1))) = 1; WR3: NOT (SELF\characterized_object.description = 'countersunk') OR ( SIZEOF(QUERY (pds <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds)) AND (SIZEOF(QUERY (csa <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| ( 'INTEGRATED_CNC_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa) ) AND (SIZEOF(QUERY (sar <* csa.component_relationships| ( 'INTEGRATED_CNC_SCHEMA.ROUND_HOLE' IN TYPEOF(sar. related_shape_aspect)) AND NOT (SIZEOF(QUERY (pds <* QUERY ( pd <* USEDIN(sar.related_shape_aspect, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'change in diameter occurrence') AND (SIZEOF( QUERY (fcr2 <* QUERY (sar2 <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' )| (sar2.description = 'taper usage') AND ( 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar2)))| ('INTEGRATED_CNC_SCHEMA.TAPER' IN TYPEOF(fcr2 .related_shape_aspect)))) = 1))) = 0))) = 0))) = 1))) = 1))) = 1); END_ENTITY; -- 10303-522: aic_machining_feature ENTITY composite_shape_aspect SUBTYPE OF (shape_aspect); INVERSE component_relationships : SET [2:?] OF shape_aspect_relationship FOR relating_shape_aspect; END_ENTITY; -- 10303-47: shape_aspect_definition_schema ENTITY composite_text SUBTYPE OF (geometric_representation_item); collected_text : SET [2:?] OF text_or_character; WHERE WR1: acyclic_composite_text(SELF, SELF.collected_text); END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY composite_text_with_associated_curves SUBTYPE OF (composite_text); associated_curves : SET [1:?] OF curve; END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY composite_text_with_blanking_box SUBTYPE OF (composite_text); blanking : planar_box; END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY composite_text_with_extent SUBTYPE OF (composite_text); extent : planar_extent; END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY compound_feature SUBTYPE OF (feature_definition); WHERE WR1: SIZEOF(QUERY (pds <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds)) AND (SIZEOF(QUERY (csa <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (csa.name = 'compound feature in solid') AND ( 'INTEGRATED_CNC_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa) ))) = 1))) = 1; WR2: SIZEOF(QUERY (pds <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds)) AND (SIZEOF(QUERY (csa <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| ( 'INTEGRATED_CNC_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa) ))) = 1))) = 1; WR3: SIZEOF(QUERY (pds <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds)) AND (SIZEOF(QUERY (csa <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| ( 'INTEGRATED_CNC_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa) ) AND (SIZEOF(QUERY (fcr <* csa.component_relationships| NOT ('INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(fcr)))) = 0))) = 1))) = 1; WR4: SIZEOF(QUERY (pds <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds)) AND (SIZEOF(QUERY (csa <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| ( 'INTEGRATED_CNC_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa) ))) = 1))) = 1; WR5: SIZEOF(QUERY (pds <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds)) AND (SIZEOF(QUERY (csa <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| ( 'INTEGRATED_CNC_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa) ) AND (SIZEOF(QUERY (sar <* csa.component_relationships| ( 'INTEGRATED_CNC_SCHEMA.THREAD' IN TYPEOF(sar. related_shape_aspect)))) = 0))) = 1))) = 1; WR6: SIZEOF(QUERY (pds <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds)) AND (SIZEOF(QUERY (csa <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| ( 'INTEGRATED_CNC_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa) ) AND (SIZEOF(QUERY (sar <* csa.component_relationships| ( 'INTEGRATED_CNC_SCHEMA.COMPOUND_FEATURE' IN TYPEOF(sar. related_shape_aspect)) AND (sar.related_shape_aspect\ characterized_object.name <> SELF\characterized_object.name)) ) = 0))) = 1))) = 1; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY compound_representation_item SUBTYPE OF (representation_item); item_element : compound_item_definition; END_ENTITY; -- 10303-43: representation_schema ENTITY concentricity_tolerance SUBTYPE OF (geometric_tolerance_with_datum_reference); WHERE WR1: SIZEOF(SELF\geometric_tolerance_with_datum_reference.datum_system) = 1; END_ENTITY; -- 10303-519: aic_geometric_tolerances ENTITY concurrent_action_method SUBTYPE OF (action_method_relationship); END_ENTITY; -- 10303-49: method_definition_schema ENTITY conic SUPERTYPE OF (ONEOF(circle, ellipse, hyperbola, parabola)) SUBTYPE OF (curve); position : axis2_placement; END_ENTITY; -- 10303-42: geometry_schema ENTITY conical_surface SUBTYPE OF (elementary_surface); radius : length_measure; semi_angle : plane_angle_measure; WHERE WR1: radius >= 0.0; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY connected_edge_set SUBTYPE OF (topological_representation_item); ces_edges : SET [1:?] OF edge; END_ENTITY; -- 10303-42: topology_schema ENTITY connected_face_set SUPERTYPE OF (ONEOF(closed_shell, open_shell)) SUBTYPE OF (topological_representation_item); cfs_faces : SET [1:?] OF face; END_ENTITY; -- 10303-42: topology_schema ENTITY context_dependent_invisibility SUBTYPE OF (invisibility); presentation_context : invisibility_context; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY context_dependent_kinematic_link_representation; representation_relation : kinematic_link_representation_association ; represented_product_relation : product_definition_relationship_kinematics ; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY context_dependent_over_riding_styled_item SUBTYPE OF (over_riding_styled_item); style_context : SET [1:2] OF style_context_select; WHERE WR1: (SIZEOF(QUERY (sc <* SELF.style_context| ( 'INTEGRATED_CNC_SCHEMA.REPRESENTATION' IN TYPEOF(sc)))) = 1) AND (SIZEOF(QUERY (sc <* SELF.style_context| ( 'INTEGRATED_CNC_SCHEMA.REPRESENTATION_ITEM' IN TYPEOF(sc)))) = 1); END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY context_dependent_shape_representation; representation_relation : shape_representation_relationship; represented_product_relation : product_definition_shape; DERIVE description : text := get_description_value(SELF); name : label := get_name_value(SELF); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_RELATIONSHIP' IN TYPEOF( SELF.represented_product_relation.definition); WR2: SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; WR3: SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; END_ENTITY; -- 10303-41: product_property_representation_schema ENTITY context_dependent_unit SUBTYPE OF (named_unit); name : label; END_ENTITY; -- 10303-41: measure_schema ENTITY contouring_turning_operation SUBTYPE OF (turning_type_operation); WHERE WR1: (SELF.description IN ['roughing','finishing']); WR2: (verify_optional_action_property (SELF, 'allowance')) AND (verify_length_measure_action_property (SELF, 'allowance')); WR3: NOT (SELF.description = 'roughing') OR (verify_required_action_property (SELF, 'allowance')); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY conversion_based_unit SUBTYPE OF (named_unit); name : label; conversion_factor : measure_with_unit; WHERE WR1: SELF\named_unit.dimensions = derive_dimensional_exponents( conversion_factor\measure_with_unit.unit_component); END_ENTITY; -- 10303-41: measure_schema ENTITY coordinated_universal_time_offset; hour_offset : INTEGER; minute_offset : OPTIONAL INTEGER; sense : ahead_or_behind; DERIVE actual_minute_offset : INTEGER := NVL(minute_offset, 0); WHERE WR1: (0 <= hour_offset) AND (hour_offset < 24); WR2: (0 <= actual_minute_offset) AND (actual_minute_offset <= 59); WR3: NOT (((hour_offset <> 0) OR (actual_minute_offset <> 0)) AND ( sense = exact)); END_ENTITY; -- 10303-41: date_time_schema ENTITY curve SUPERTYPE OF (ONEOF(line, conic, pcurve, surface_curve, offset_curve_3d, curve_replica)) SUBTYPE OF (geometric_representation_item); END_ENTITY; -- 10303-42: geometry_schema ENTITY curve_based_path SUBTYPE OF (path_node); path_curve : curve; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY curve_based_path_with_orientation SUBTYPE OF (kinematic_path_segment); position_curve : bounded_curve; orientation_curve : bounded_curve; WHERE WR1: TYPEOF(position_curve) = TYPEOF(orientation_curve); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY curve_based_path_with_orientation_and_parameters SUBTYPE OF (curve_based_path_with_orientation); parameters : path_parameter_representation; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY curve_bounded_surface SUBTYPE OF (bounded_surface); basis_surface : surface; boundaries : SET [1:?] OF boundary_curve; implicit_outer : BOOLEAN; WHERE WR1: NOT implicit_outer OR (SIZEOF(QUERY (temp <* boundaries| ( 'INTEGRATED_CNC_SCHEMA.OUTER_BOUNDARY_CURVE' IN TYPEOF(temp)) )) = 0); WR2: NOT implicit_outer OR ('INTEGRATED_CNC_SCHEMA.BOUNDED_SURFACE' IN TYPEOF(basis_surface)); WR3: SIZEOF(QUERY (temp <* boundaries| ( 'INTEGRATED_CNC_SCHEMA.OUTER_BOUNDARY_CURVE' IN TYPEOF(temp)) )) <= 1; WR4: SIZEOF(QUERY (temp <* boundaries| (temp\composite_curve_on_surface .basis_surface[1] <> SELF.basis_surface))) = 0; END_ENTITY; -- 10303-42: geometry_schema ENTITY curve_dimension SUBTYPE OF (dimension_curve_directed_callout); END_ENTITY; -- 10303-506: aic_draughting_elements ENTITY curve_replica SUBTYPE OF (curve); parent_curve : curve; transformation : cartesian_transformation_operator; WHERE WR1: transformation.dim = parent_curve.dim; WR2: acyclic_curve_replica(SELF, parent_curve); END_ENTITY; -- 10303-42: geometry_schema ENTITY curve_style; name : label; curve_font : curve_font_or_scaled_curve_font_select; curve_width : size_select; curve_colour : colour; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY curve_style_font; name : label; pattern_list : LIST [1:?] OF curve_style_font_pattern; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY curve_style_font_pattern; visible_segment_length : positive_length_measure; invisible_segment_length : positive_length_measure; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY curve_style_rendering; rendering_method : shading_curve_method; rendering_properties : surface_rendering_properties; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY cylindrical_pair SUBTYPE OF (low_order_kinematic_pair); DERIVE SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.t_z : BOOLEAN := TRUE; SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY cylindrical_pair_value SUBTYPE OF (pair_value); SELF\pair_value.applies_to_pair : cylindrical_pair; actual_translation : length_measure; actual_rotation : plane_angle_measure; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY cylindrical_pair_with_range SUBTYPE OF (cylindrical_pair); lower_limit_actual_translation : OPTIONAL length_measure; upper_limit_actual_translation : OPTIONAL length_measure; lower_limit_actual_rotation : OPTIONAL plane_angle_measure; upper_limit_actual_rotation : OPTIONAL plane_angle_measure; WHERE WR1: (NOT EXISTS(lower_limit_actual_translation) OR NOT EXISTS( upper_limit_actual_translation)) XOR ( lower_limit_actual_translation < upper_limit_actual_translation); WR2: (NOT EXISTS(lower_limit_actual_rotation) OR NOT EXISTS( upper_limit_actual_rotation)) XOR ( lower_limit_actual_rotation < upper_limit_actual_rotation); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY cylindrical_shape_representation SUBTYPE OF (shape_representation_with_parameters); WHERE WR1: SIZEOF(SELF.items) = 3; WR2: SIZEOF(QUERY (it <* SELF.items| ('INTEGRATED_CNC_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1; WR3: SIZEOF(QUERY (it <* SELF.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'length'))) = 1; WR4: SIZEOF(QUERY (it <* SELF.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'diameter'))) = 1; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY cylindrical_surface SUBTYPE OF (elementary_surface); radius : positive_length_measure; END_ENTITY; -- 10303-42: geometry_schema ENTITY cylindricity_tolerance SUBTYPE OF (geometric_tolerance); WHERE WR1: NOT ('INTEGRATED_CNC_SCHEMA.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF(SELF)); END_ENTITY; -- 10303-519: aic_geometric_tolerances ENTITY data_environment; name : label; description : text; elements : SET [1:?] OF property_definition_representation; END_ENTITY; -- 10303-45: material_property_representation_schema ENTITY date SUPERTYPE OF (ONEOF(calendar_date, ordinal_date, week_of_year_and_day_date)); year_component : year_number; END_ENTITY; -- 10303-41: date_time_schema ENTITY date_and_time; date_component : date; time_component : local_time; END_ENTITY; -- 10303-41: date_time_schema ENTITY date_and_time_assignment ABSTRACT SUPERTYPE; assigned_date_and_time : date_and_time; role : date_time_role; END_ENTITY; -- 10303-41: management_resources_schema ENTITY date_assignment ABSTRACT SUPERTYPE; assigned_date : date; role : date_role; END_ENTITY; -- 10303-41: management_resources_schema ENTITY date_role; name : label; DERIVE description : text := get_description_value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY; -- 10303-41: date_time_schema ENTITY date_time_role; name : label; DERIVE description : text := get_description_value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY; -- 10303-41: date_time_schema ENTITY datum SUBTYPE OF (shape_aspect); identification : identifier; INVERSE established_by_relationships : SET [1:?] OF shape_aspect_relationship FOR related_shape_aspect; WHERE WR1: SIZEOF(QUERY (x <* SELF\datum.established_by_relationships| ( SIZEOF(TYPEOF(x\shape_aspect_relationship. relating_shape_aspect) * [ 'INTEGRATED_CNC_SCHEMA.DATUM_FEATURE', 'INTEGRATED_CNC_SCHEMA.DATUM_TARGET' ]) <> 1))) = 0; END_ENTITY; -- 10303-47: shape_aspect_definition_schema ENTITY datum_feature SUBTYPE OF (shape_aspect); INVERSE feature_basis_relationship : shape_aspect_relationship FOR relating_shape_aspect; WHERE WR1: SIZEOF(QUERY (sar <* bag_to_set(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT'))| NOT ('INTEGRATED_CNC_SCHEMA.DATUM' IN TYPEOF(sar\shape_aspect_relationship.related_shape_aspect )))) = 0; WR2: SELF\shape_aspect.product_definitional = TRUE; END_ENTITY; -- 10303-47: shape_aspect_definition_schema ENTITY datum_feature_callout SUBTYPE OF (draughting_callout); END_ENTITY; -- 10303-506: aic_draughting_elements ENTITY datum_reference; precedence : INTEGER; referenced_datum : datum; WHERE WR1: precedence > 0; END_ENTITY; -- 10303-47: shape_aspect_definition_schema ENTITY datum_target SUBTYPE OF (shape_aspect); target_id : identifier; INVERSE target_basis_relationship : shape_aspect_relationship FOR relating_shape_aspect; WHERE WR1: SIZEOF(QUERY (sar <* bag_to_set(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT'))| NOT ('INTEGRATED_CNC_SCHEMA.DATUM' IN TYPEOF(sar\shape_aspect_relationship.related_shape_aspect )))) = 0; WR2: SELF\shape_aspect.product_definitional = TRUE; END_ENTITY; -- 10303-47: shape_aspect_definition_schema ENTITY datum_target_callout SUBTYPE OF (draughting_callout); END_ENTITY; -- 10303-506: aic_draughting_elements ENTITY defined_character_glyph SUBTYPE OF (geometric_representation_item); definition : defined_glyph_select; placement : axis2_placement; END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY defined_symbol SUBTYPE OF (geometric_representation_item); definition : defined_symbol_select; target : symbol_target; END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY definitional_representation SUBTYPE OF (representation); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.PARAMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(SELF\representation.context_of_items); END_ENTITY; -- 10303-43: representation_schema ENTITY definitional_representation_relationship SUBTYPE OF (representation_relationship); WHERE WR1: acyclic_representation_relationship(SELF, [ SELF\ representation_relationship.rep_2 ], 'INTEGRATED_CNC_SCHEMA.' + 'REPRESENTATION'); WR2: NOT ('INTEGRATED_CNC_SCHEMA.' + 'DEFINITIONAL_REPRESENTATION_RELATIONSHIP_WITH_SAME_CONTEXT' IN TYPEOF(SELF)) XOR (SELF\representation_relationship.rep_1. context_of_items = SELF\representation_relationship.rep_2. context_of_items); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY degenerate_pcurve SUBTYPE OF (point); basis_surface : surface; reference_to_curve : definitional_representation; WHERE WR1: SIZEOF(reference_to_curve\representation.items) = 1; WR2: 'INTEGRATED_CNC_SCHEMA.CURVE' IN TYPEOF(reference_to_curve\ representation.items[1]); WR3: reference_to_curve\representation.items[1]\ geometric_representation_item.dim = 2; END_ENTITY; -- 10303-42: geometry_schema ENTITY degenerate_toroidal_surface SUBTYPE OF (toroidal_surface); select_outer : BOOLEAN; WHERE WR1: major_radius < minor_radius; END_ENTITY; -- 10303-42: geometry_schema ENTITY derived_shape_aspect SUPERTYPE OF (ONEOF(apex, centre_of_symmetry, geometric_alignment, geometric_intersection, parallel_offset, perpendicular_to, extension, tangent)) SUBTYPE OF (shape_aspect); INVERSE deriving_relationships : SET [1:?] OF shape_aspect_relationship FOR relating_shape_aspect; WHERE WR1: SIZEOF(QUERY (dr <* SELF\derived_shape_aspect. deriving_relationships| NOT ('INTEGRATED_CNC_SCHEMA.' + 'SHAPE_ASPECT_DERIVING_RELATIONSHIP' IN TYPEOF(dr)))) = 0; END_ENTITY; -- 10303-47: shape_aspect_definition_schema ENTITY derived_unit; elements : SET [1:?] OF derived_unit_element; DERIVE name : label := get_name_value(SELF); WHERE WR1: (SIZEOF(elements) > 1) OR (SIZEOF(elements) = 1) AND (elements[1]. exponent <> 1.0); WR2: SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; END_ENTITY; -- 10303-41: measure_schema ENTITY derived_unit_element; unit : named_unit; exponent : REAL; END_ENTITY; -- 10303-41: measure_schema ENTITY description_attribute; attribute_value : text; described_item : description_attribute_select; END_ENTITY; -- 10303-41: basic_attribute_schema ENTITY descriptive_representation_item SUBTYPE OF (representation_item); description : text; END_ENTITY; -- 10303-45: qualified_measure_schema ENTITY diameter_dimension SUBTYPE OF (dimension_curve_directed_callout); END_ENTITY; -- 10303-506: aic_draughting_elements ENTITY dimension_callout SUBTYPE OF (draughting_callout); WHERE WR1: ('INTEGRATED_CNC_SCHEMA.LEADER_DIRECTED_CALLOUT' IN TYPEOF(SELF)) XOR (SIZEOF(QUERY (dce_1 <* SELF\draughting_callout.contents| ('INTEGRATED_CNC_SCHEMA.LEADER_CURVE' IN TYPEOF(dce_1)))) = 0); WR2: ('INTEGRATED_CNC_SCHEMA.PROJECTION_DIRECTED_CALLOUT' IN TYPEOF( SELF)) XOR (SIZEOF(QUERY (dce_1 <* SELF\draughting_callout. contents| ('INTEGRATED_CNC_SCHEMA.PROJECTION_CURVE' IN TYPEOF (dce_1)))) = 0); WR3: ('INTEGRATED_CNC_SCHEMA.DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF(SELF)) XOR (SIZEOF(QUERY (dce_1 <* SELF\ draughting_callout.contents| ( 'INTEGRATED_CNC_SCHEMA.DIMENSION_CURVE' IN TYPEOF(dce_1)))) = 0); END_ENTITY; -- 10303-101: draughting_dimension_schema ENTITY dimension_callout_component_relationship SUBTYPE OF (draughting_callout_relationship); WHERE WR1: SELF.name IN [ 'prefix', 'suffix' ]; WR2: 'INTEGRATED_CNC_SCHEMA.STRUCTURED_DIMENSION_CALLOUT' IN TYPEOF( SELF.relating_draughting_callout); WR3: SIZEOF(TYPEOF(SELF.related_draughting_callout) * [ 'INTEGRATED_CNC_SCHEMA.LEADER_DIRECTED_CALLOUT', 'INTEGRATED_CNC_SCHEMA.PROJECTION_DIRECTED_CALLOUT', 'INTEGRATED_CNC_SCHEMA.DIMENSION_CURVE_DIRECTED_CALLOUT', 'INTEGRATED_CNC_SCHEMA.STRUCTURED_DIMENSION_CALLOUT' ]) = 0; WR4: SELF.related_draughting_callout.contents * SELF. relating_draughting_callout.contents = SELF. related_draughting_callout.contents; WR5: (SELF.name = 'prefix') AND (SIZEOF(QUERY (ato <* QUERY (con <* SELF.related_draughting_callout.contents| ( 'INTEGRATED_CNC_SCHEMA.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( con)))| NOT (ato.name = 'prefix text'))) = 0); WR6: (SELF.name = 'suffix') AND (SIZEOF(QUERY (ato <* QUERY (con <* SELF.related_draughting_callout.contents| ( 'INTEGRATED_CNC_SCHEMA.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( con)))| NOT (ato.name = 'suffix text'))) = 0); END_ENTITY; -- 10303-506: aic_draughting_elements ENTITY dimension_callout_relationship SUBTYPE OF (draughting_callout_relationship); WHERE WR1: SELF.name IN [ 'primary', 'secondary' ]; WR2: SIZEOF(TYPEOF(SELF.relating_draughting_callout) * [ 'INTEGRATED_CNC_SCHEMA.ANGULAR_DIMENSION', 'INTEGRATED_CNC_SCHEMA.CURVE_DIMENSION', 'INTEGRATED_CNC_SCHEMA.DIAMETER_DIMENSION', 'INTEGRATED_CNC_SCHEMA.LEADER_DIRECTED_DIMENSION', 'INTEGRATED_CNC_SCHEMA.LINEAR_DIMENSION', 'INTEGRATED_CNC_SCHEMA.ORDINATE_DIMENSION', 'INTEGRATED_CNC_SCHEMA.RADIUS_DIMENSION' ]) >= 1; WR3: SIZEOF(TYPEOF(SELF.related_draughting_callout) * [ 'INTEGRATED_CNC_SCHEMA.DIMENSION_CURVE_DIRECTED_CALLOUT', 'INTEGRATED_CNC_SCHEMA.PROJECTION_DIRECTED_CALLOUT', 'INTEGRATED_CNC_SCHEMA.LEADER_DIRECTED_CALLOUT' ]) = 0; WR4: SELF.related_draughting_callout.contents * SELF. relating_draughting_callout.contents = SELF. related_draughting_callout.contents; END_ENTITY; -- 10303-506: aic_draughting_elements ENTITY dimension_curve SUBTYPE OF (annotation_curve_occurrence); WHERE WR1: SIZEOF(QUERY (dct <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'TERMINATOR_SYMBOL.ANNOTATED_CURVE')| ( 'INTEGRATED_CNC_SCHEMA.' + 'DIMENSION_CURVE_TERMINATOR' IN TYPEOF(dct)))) <= 2; WR2: SIZEOF(QUERY (dcdc <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_CALLOUT.CONTENTS')| ('INTEGRATED_CNC_SCHEMA.' + 'DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF(dcdc)))) >= 1; WR3: (SIZEOF(QUERY (dct1 <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'TERMINATOR_SYMBOL.ANNOTATED_CURVE')| ( 'INTEGRATED_CNC_SCHEMA.' + 'DIMENSION_CURVE_TERMINATOR' IN TYPEOF(dct1)) AND (dct1.role = origin))) <= 1) AND (SIZEOF( QUERY (dct2 <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'TERMINATOR_SYMBOL.ANNOTATED_CURVE')| ( 'INTEGRATED_CNC_SCHEMA.' + 'DIMENSION_CURVE_TERMINATOR' IN TYPEOF(dct2)) AND (dct2.role = target))) <= 1); END_ENTITY; -- 10303-101: draughting_element_schema ENTITY dimension_curve_directed_callout SUBTYPE OF (draughting_callout); WHERE WR1: SIZEOF(QUERY (d_c <* SELF\draughting_callout.contents| ( 'INTEGRATED_CNC_SCHEMA.DIMENSION_CURVE' IN TYPEOF(d_c)))) = 1 ; WR2: SIZEOF(SELF\draughting_callout.contents) >= 2; END_ENTITY; -- 10303-101: draughting_element_schema ENTITY dimension_curve_terminator SUBTYPE OF (terminator_symbol); role : dimension_extent_usage; WHERE WR1: 'INTEGRATED_CNC_SCHEMA.DIMENSION_CURVE' IN TYPEOF(SELF\ terminator_symbol.annotated_curve); END_ENTITY; -- 10303-101: draughting_element_schema ENTITY dimension_pair SUBTYPE OF (draughting_callout_relationship); WHERE WR1: SELF.name IN [ 'chained', 'parallel' ]; WR2: SIZEOF(TYPEOF(SELF.relating_draughting_callout) * [ 'INTEGRATED_CNC_SCHEMA.ANGULAR_DIMENSION', 'INTEGRATED_CNC_SCHEMA.CURVE_DIMENSION', 'INTEGRATED_CNC_SCHEMA.DIAMETER_DIMENSION', 'INTEGRATED_CNC_SCHEMA.LINEAR_DIMENSION', 'INTEGRATED_CNC_SCHEMA.ORDINATE_DIMENSION', 'INTEGRATED_CNC_SCHEMA.RADIUS_DIMENSION' ]) = 1; WR3: SIZEOF(TYPEOF(SELF.related_draughting_callout) * [ 'INTEGRATED_CNC_SCHEMA.ANGULAR_DIMENSION', 'INTEGRATED_CNC_SCHEMA.CURVE_DIMENSION', 'INTEGRATED_CNC_SCHEMA.DIAMETER_DIMENSION', 'INTEGRATED_CNC_SCHEMA.LINEAR_DIMENSION', 'INTEGRATED_CNC_SCHEMA.ORDINATE_DIMENSION', 'INTEGRATED_CNC_SCHEMA.RADIUS_DIMENSION' ]) = 1; END_ENTITY; -- 10303-506: aic_draughting_elements ENTITY dimension_related_tolerance_zone_element; related_dimension : dimensional_location; related_element : tolerance_zone_definition; END_ENTITY; -- 10303-47: shape_tolerance_schema ENTITY dimension_text_associativity SUBTYPE OF (text_literal, mapped_item); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.SHAPE_DIMENSION_REPRESENTATION' IN TYPEOF( SELF\mapped_item.mapping_source.mapped_representation); WR2: 'INTEGRATED_CNC_SCHEMA.DRAUGHTING_CALLOUT' IN TYPEOF(SELF\ mapped_item.mapping_target); WR3: SIZEOF(QUERY (ato <* QUERY (si <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.STYLED_ITEM.ITEM')| ( 'INTEGRATED_CNC_SCHEMA.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( si)))| NOT (SIZEOF(QUERY (dc <* USEDIN(ato, ( 'INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_CALLOUT.CONTENTS'))| ( 'INTEGRATED_CNC_SCHEMA.DRAUGHTING_CALLOUT' IN TYPEOF(dc))) * [ SELF\mapped_item.mapping_target ]) = 1))) = 0; END_ENTITY; -- 10303-520: aic_associative_draughting_elements ENTITY dimensional_characteristic_representation; dimension : dimensional_characteristic; representation : shape_dimension_representation; END_ENTITY; -- 10303-47: shape_dimension_schema ENTITY dimensional_exponents; length_exponent : REAL; mass_exponent : REAL; time_exponent : REAL; electric_current_exponent : REAL; thermodynamic_temperature_exponent : REAL; amount_of_substance_exponent : REAL; luminous_intensity_exponent : REAL; END_ENTITY; -- 10303-41: measure_schema ENTITY dimensional_location SUPERTYPE OF (ONEOF(angular_location, dimensional_location_with_path)) SUBTYPE OF (shape_aspect_relationship); END_ENTITY; -- 10303-47: shape_dimension_schema ENTITY dimensional_location_with_path SUBTYPE OF (dimensional_location); path : shape_aspect; END_ENTITY; -- 10303-47: shape_dimension_schema ENTITY dimensional_size SUPERTYPE OF (ONEOF(angular_size, dimensional_size_with_path)); applies_to : shape_aspect; name : label; WHERE WR1: applies_to.product_definitional = TRUE; END_ENTITY; -- 10303-47: shape_dimension_schema ENTITY dimensional_size_with_path SUBTYPE OF (dimensional_size); path : shape_aspect; END_ENTITY; -- 10303-47: shape_dimension_schema ENTITY directed_dimensional_location SUBTYPE OF (dimensional_location); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY direction SUBTYPE OF (geometric_representation_item); direction_ratios : LIST [2:3] OF REAL; WHERE WR1: SIZEOF(QUERY (tmp <* direction_ratios| (tmp <> 0.0))) > 0; END_ENTITY; -- 10303-42: geometry_schema ENTITY direction_shape_representation SUBTYPE OF (shape_representation); WHERE WR1: SIZEOF(SELF.items) = 1; WR2: SIZEOF(QUERY (it <* SELF.items| NOT ( 'INTEGRATED_CNC_SCHEMA.DIRECTION' IN TYPEOF(it)))) = 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY document; id : identifier; name : label; description : OPTIONAL text; kind : document_type; INVERSE representation_types : SET [0:?] OF document_representation_type FOR represented_document; END_ENTITY; -- 10303-41: document_schema ENTITY document_file SUBTYPE OF (characterized_object, document); WHERE WR1: (SIZEOF(QUERY (adr <* QUERY (dr <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.DOCUMENT_REFERENCE.ASSIGNED_DOCUMENT') | ('INTEGRATED_CNC_SCHEMA.APPLIED_DOCUMENT_REFERENCE' IN TYPEOF(dr)))| ( 'INTEGRATED_CNC_SCHEMA.EXTERNALLY_DEFINED_FEATURE_DEFINITION' IN TYPEOF(adr.items)))) = 1) OR (SIZEOF(QUERY (duc <* USEDIN (SELF, 'INTEGRATED_CNC_SCHEMA.DOCUMENT_USAGE_CONSTRAINT.SOURCE')| NOT (SIZEOF(QUERY (aduc <* QUERY (duca <* USEDIN(duc, 'INTEGRATED_CNC_SCHEMA.DOCUMENT_USAGE_CONSTRAINT_ASSIGNMENT.' + 'ASSIGNED_DOCUMENT_USAGE')| ('INTEGRATED_CNC_SCHEMA.' + 'APPLIED_DOCUMENT_USAGE_CONSTRAINT_ASSIGNMENT' IN TYPEOF(duca )))| ( 'INTEGRATED_CNC_SCHEMA.EXTERNALLY_DEFINED_FEATURE_DEFINITION' IN TYPEOF(aduc.items)))) = 1))) = 0); WR2: SIZEOF(QUERY (drt <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'DOCUMENT_REPRESENTATION_TYPE.REPRESENTED_DOCUMENT')| (drt. name = 'physical'))) = 1; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY document_reference ABSTRACT SUPERTYPE; assigned_document : document; source : label; DERIVE role : object_role := get_role(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY; -- 10303-41: management_resources_schema ENTITY document_representation_type; name : label; represented_document : document; END_ENTITY; -- 10303-41: document_schema ENTITY document_type; product_data_type : label; END_ENTITY; -- 10303-41: document_schema ENTITY document_usage_constraint; source : document; subject_element : label; subject_element_value : text; END_ENTITY; -- 10303-41: document_schema ENTITY document_usage_constraint_assignment ABSTRACT SUPERTYPE; assigned_document_usage : document_usage_constraint; role : document_usage_role; END_ENTITY; -- 10303-41: management_resources_schema ENTITY document_usage_role; name : label; description : OPTIONAL text; END_ENTITY; -- 10303-41: management_resources_schema ENTITY document_with_class SUBTYPE OF (document); class : identifier; END_ENTITY; -- 10303-41: document_schema ENTITY draughting_annotation_occurrence SUBTYPE OF (annotation_occurrence); WHERE WR1: NOT ('INTEGRATED_CNC_SCHEMA.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF (SELF)) OR (SIZEOF(QUERY (sty <* SELF.styles| NOT ((SIZEOF( sty.styles) = 1) AND ('INTEGRATED_CNC_SCHEMA.CURVE_STYLE' IN TYPEOF(sty.styles[1]))))) = 0); WR2: NOT ('INTEGRATED_CNC_SCHEMA.ANNOTATION_FILL_AREA_OCCURRENCE' IN TYPEOF(SELF)) OR (SIZEOF(QUERY (sty <* SELF.styles| NOT (( SIZEOF(sty.styles) = 1) AND ( 'INTEGRATED_CNC_SCHEMA.FILL_AREA_STYLE' IN TYPEOF(sty.styles[ 1]))))) = 0); WR3: NOT ('INTEGRATED_CNC_SCHEMA.ANNOTATION_FILL_AREA_OCCURRENCE' IN TYPEOF(SELF)) OR (SIZEOF(QUERY (bound <* SELF.item\ annotation_fill_area.boundaries| NOT (SIZEOF(QUERY (si <* USEDIN(bound, 'INTEGRATED_CNC_SCHEMA.' + 'STYLED_ITEM.ITEM')| ('INTEGRATED_CNC_SCHEMA.' + 'ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF(si)))) > 0))) = 0); WR4: NOT ('INTEGRATED_CNC_SCHEMA.ANNOTATION_SYMBOL_OCCURRENCE' IN TYPEOF(SELF)) OR (SIZEOF(QUERY (sty <* SELF.styles| NOT (( SIZEOF(sty.styles) = 1) AND (SIZEOF(TYPEOF(sty.styles[1]) * [ 'INTEGRATED_CNC_SCHEMA.SYMBOL_STYLE', 'INTEGRATED_CNC_SCHEMA.NULL_STYLE' ]) = 1)))) = 0); WR5: NOT (('INTEGRATED_CNC_SCHEMA.ANNOTATION_SYMBOL_OCCURRENCE' IN TYPEOF(SELF)) AND ('INTEGRATED_CNC_SCHEMA.ANNOTATION_SYMBOL' IN TYPEOF(SELF.item))) OR (SIZEOF([ ('INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_SYMBOL_REPRESENTATION'), ( 'INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_SUBFIGURE_REPRESENTATION') ] * TYPEOF(SELF.item\ mapped_item.mapping_source.mapped_representation)) = 1); WR6: NOT ('INTEGRATED_CNC_SCHEMA.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF)) OR (SIZEOF(QUERY (sty <* SELF.styles| NOT ((SIZEOF(sty .styles) = 1) AND ('INTEGRATED_CNC_SCHEMA.TEXT_STYLE' IN TYPEOF(sty.styles[1]))))) = 0); WR7: ('INTEGRATED_CNC_SCHEMA.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF )) OR (SIZEOF(TYPEOF(SELF.item) * [ 'INTEGRATED_CNC_SCHEMA.COMPOSITE_TEXT', 'INTEGRATED_CNC_SCHEMA.TEXT_LITERAL' ]) = 1); WR8: NOT (('INTEGRATED_CNC_SCHEMA.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF (SELF)) AND ('INTEGRATED_CNC_SCHEMA.COMPOSITE_TEXT' IN TYPEOF (SELF.item))) OR (SIZEOF(QUERY (tl <* SELF.item\ composite_text.collected_text| NOT ( 'INTEGRATED_CNC_SCHEMA.TEXT_LITERAL' IN TYPEOF(tl)))) = 0); WR9: NOT (('INTEGRATED_CNC_SCHEMA.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF (SELF)) AND ('INTEGRATED_CNC_SCHEMA.TEXT_LITERAL' IN TYPEOF( SELF.item))) OR (SELF.item\text_literal.alignment IN [ 'baseline left', 'baseline centre', 'baseline right' ]); WR10: NOT (('INTEGRATED_CNC_SCHEMA.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ('INTEGRATED_CNC_SCHEMA.COMPOSITE_TEXT' IN TYPEOF(SELF.item))) OR (SIZEOF(QUERY (tl <* QUERY (text <* SELF.item\composite_text.collected_text| ( 'INTEGRATED_CNC_SCHEMA.TEXT_LITERAL' IN TYPEOF(text)))| NOT ( tl\text_literal.alignment IN [ 'baseline left', 'baseline centre', 'baseline right' ]))) = 0); WR11: NOT (('INTEGRATED_CNC_SCHEMA.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ('INTEGRATED_CNC_SCHEMA.COMPOSITE_TEXT' IN TYPEOF(SELF.item))) OR check_text_alignment(SELF.item); WR12: NOT (('INTEGRATED_CNC_SCHEMA.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ('INTEGRATED_CNC_SCHEMA.COMPOSITE_TEXT' IN TYPEOF(SELF.item))) OR check_text_font(SELF.item); WR13: NOT (('INTEGRATED_CNC_SCHEMA.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ('INTEGRATED_CNC_SCHEMA.COMPOSITE_TEXT' IN TYPEOF(SELF.item))) OR (SIZEOF(QUERY (tl <* QUERY (text <* SELF.item\composite_text.collected_text| ( 'INTEGRATED_CNC_SCHEMA.TEXT_LITERAL' IN TYPEOF(text)))| NOT ( SIZEOF(TYPEOF(tl) * [ ('INTEGRATED_CNC_SCHEMA.' + 'TEXT_LITERAL_WITH_BLANKING_BOX'), ('INTEGRATED_CNC_SCHEMA.' + 'TEXT_LITERAL_WITH_ASSOCIATED_CURVES') ]) = 0))) = 0); WR14: NOT (('INTEGRATED_CNC_SCHEMA.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ( 'INTEGRATED_CNC_SCHEMA.TEXT_LITERAL_WITH_ASSOCIATED_CURVES' IN TYPEOF(SELF.item))) OR (SIZEOF(QUERY (crv <* SELF.item\ text_literal_with_associated_curves.associated_curves| NOT ( SIZEOF(QUERY (si <* USEDIN(crv, 'INTEGRATED_CNC_SCHEMA.STYLED_ITEM.ITEM')| ( 'INTEGRATED_CNC_SCHEMA.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF (si)))) > 0))) = 0); WR15: NOT (('INTEGRATED_CNC_SCHEMA.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ( 'INTEGRATED_CNC_SCHEMA.COMPOSITE_TEXT_WITH_ASSOCIATED_CURVES' IN TYPEOF(SELF.item))) OR (SIZEOF(QUERY (crv <* SELF.item\ composite_text_with_associated_curves.associated_curves| NOT (SIZEOF(QUERY (si <* USEDIN(crv, 'INTEGRATED_CNC_SCHEMA.STYLED_ITEM.ITEM')| ( 'INTEGRATED_CNC_SCHEMA.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF (si)))) > 0))) = 0); WR16: SIZEOF(QUERY (cs <* QUERY (sty <* SELF.styles| ( 'INTEGRATED_CNC_SCHEMA.CURVE_STYLE' IN TYPEOF(sty.styles[1])) )| NOT (('INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(cs.styles[1]\curve_style.curve_width)) AND ( 'INTEGRATED_CNC_SCHEMA.POSITIVE_LENGTH_MEASURE' IN TYPEOF(cs. styles[1]\curve_style.curve_width\measure_with_unit. value_component))))) = 0; WR17: SIZEOF(QUERY (fas <* QUERY (sty <* SELF.styles| ( 'INTEGRATED_CNC_SCHEMA.FILL_AREA_STYLE' IN TYPEOF(sty.styles[ 1])))| NOT ((SIZEOF(QUERY (fs <* fas.styles[1]\ fill_area_style.fill_styles| ( 'INTEGRATED_CNC_SCHEMA.FILL_AREA_STYLE_TILES' IN TYPEOF(fs))) ) <= 1) AND (SIZEOF(QUERY (fst <* QUERY (fs <* fas.styles[1]\ fill_area_style.fill_styles| ( 'INTEGRATED_CNC_SCHEMA.FILL_AREA_STYLE_TILES' IN TYPEOF(fs))) | NOT (SIZEOF(fst\fill_area_style_tiles.tiles) = 1))) = 0)))) = 0; WR18: SIZEOF(QUERY (fas <* QUERY (sty <* SELF.styles| ( 'INTEGRATED_CNC_SCHEMA.FILL_AREA_STYLE' IN TYPEOF(sty.styles[ 1])))| NOT (SIZEOF(QUERY (fsh <* QUERY (fs <* fas.styles[1]\ fill_area_style.fill_styles| ( 'INTEGRATED_CNC_SCHEMA.FILL_AREA_STYLE_HATCHING' IN TYPEOF(fs )))| NOT (fsh\fill_area_style_hatching. point_of_reference_hatch_line :=: fsh\ fill_area_style_hatching.pattern_start))) = 0))) = 0; WR19: SIZEOF(QUERY (ts <* QUERY (sty <* SELF.styles| ( 'INTEGRATED_CNC_SCHEMA.TEXT_STYLE' IN TYPEOF(sty.styles[1]))) | NOT ('INTEGRATED_CNC_SCHEMA.' + 'TEXT_STYLE_WITH_BOX_CHARACTERISTICS' IN TYPEOF(ts.styles[1]) ))) = 0; WR20: SIZEOF(QUERY (ts <* QUERY (sty <* SELF.styles| ( 'INTEGRATED_CNC_SCHEMA.TEXT_STYLE_WITH_BOX_CHARACTERISTICS' IN TYPEOF(sty.styles[1])))| NOT (SIZEOF(ts.styles[1]\ text_style_with_box_characteristics.characteristics) = 4))) = 0; END_ENTITY; -- 10303-504: aic_draughting_annotation ENTITY draughting_callout SUBTYPE OF (geometric_representation_item); contents : SET [1:?] OF draughting_callout_element; END_ENTITY; -- 10303-101: draughting_element_schema ENTITY draughting_callout_relationship; name : label; description : text; relating_draughting_callout : draughting_callout; related_draughting_callout : draughting_callout; END_ENTITY; -- 10303-101: draughting_element_schema ENTITY draughting_elements SUBTYPE OF (draughting_callout); WHERE WR1: SIZEOF(QUERY (l_c <* QUERY (con <* SELF.contents| ( 'INTEGRATED_CNC_SCHEMA.LEADER_CURVE' IN TYPEOF(con)))| NOT ( SIZEOF(QUERY (ldc <* USEDIN(l_c, 'INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_CALLOUT.CONTENTS')| ( 'INTEGRATED_CNC_SCHEMA.LEADER_DIRECTED_CALLOUT' IN TYPEOF(ldc )))) <= 1))) = 0; WR2: NOT ('INTEGRATED_CNC_SCHEMA.DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF(SELF)) OR (SIZEOF(QUERY (con <* SELF.contents| ( 'INTEGRATED_CNC_SCHEMA.PROJECTION_CURVE' IN TYPEOF(con)))) <= 2); WR3: SIZEOF(QUERY (rc <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.DRAUGHTING_CALLOUT_' + 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT')| ( 'INTEGRATED_CNC_SCHEMA.' + 'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF(rc)) AND (rc.name = 'primary'))) <= 1; WR4: SIZEOF(QUERY (rc <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.DRAUGHTING_CALLOUT_' + 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT')| ( 'INTEGRATED_CNC_SCHEMA.' + 'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF(rc)) AND (rc.name = 'secondary'))) <= 1; WR5: SIZEOF(QUERY (sec <* QUERY (rc <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.DRAUGHTING_CALLOUT_' + 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT')| ( 'INTEGRATED_CNC_SCHEMA.' + 'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF(rc)) AND (rc.name = 'secondary'))| NOT (SIZEOF( QUERY (prim <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.DRAUGHTING_CALLOUT_' + 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT')| ( 'INTEGRATED_CNC_SCHEMA.' + 'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF(prim)) AND (prim.name = 'primary'))) = 1))) = 0; END_ENTITY; -- 10303-506: aic_draughting_elements ENTITY draughting_model SUBTYPE OF (representation); UNIQUE UR1: SELF\representation.name; WHERE WR1: SIZEOF(QUERY (it <* SELF.items| NOT (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM', 'INTEGRATED_CNC_SCHEMA.STYLED_ITEM', 'INTEGRATED_CNC_SCHEMA.AXIS2_PLACEMENT', 'INTEGRATED_CNC_SCHEMA.CAMERA_MODEL' ] * TYPEOF(it)) = 1))) = 0; WR2: SIZEOF(QUERY (mi <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM' IN TYPEOF(it)))| NOT ( SIZEOF([ 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION', 'INTEGRATED_CNC_SCHEMA.DRAUGHTING_MODEL' ] * TYPEOF(mi\ mapped_item.mapping_source.mapped_representation)) = 1))) = 0 ; WR3: SIZEOF(QUERY (smi <* QUERY (si <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| ( 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM' IN TYPEOF(si\styled_item. item)))| NOT (('INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION' IN TYPEOF(smi\styled_item.item\mapped_item.mapping_source. mapped_representation)) AND (SIZEOF(QUERY (sty <* smi\ styled_item.styles| NOT (SIZEOF(QUERY (psa <* sty.styles| NOT ('INTEGRATED_CNC_SCHEMA.CURVE_STYLE' IN TYPEOF(psa)))) = 1)) ) = 1)))) = 0; END_ENTITY; -- 10303-520: aic_associative_draughting_elements ENTITY draughting_model_item_association SUBTYPE OF (item_identified_representation_usage); SELF\item_identified_representation_usage.definition : shape_aspect; SELF\item_identified_representation_usage.identified_item : draughting_model_item_association_select; SELF\item_identified_representation_usage.used_representation : draughting_model; WHERE WR1: NOT ('INTEGRATED_CNC_SCHEMA.' + 'DATUM_FEATURE_CALLOUT' IN TYPEOF( SELF\item_identified_representation_usage.identified_item)) OR ('INTEGRATED_CNC_SCHEMA.' + 'DATUM_FEATURE' IN TYPEOF(SELF \item_identified_representation_usage.definition)); WR2: NOT ('INTEGRATED_CNC_SCHEMA.' + 'DATUM_TARGET_CALLOUT' IN TYPEOF( SELF\item_identified_representation_usage.identified_item)) OR ('INTEGRATED_CNC_SCHEMA.' + 'DATUM_TARGET' IN TYPEOF(SELF\ item_identified_representation_usage.definition)); WR3: NOT ('INTEGRATED_CNC_SCHEMA.' + 'ANGULAR_DIMENSION' IN TYPEOF(SELF \item_identified_representation_usage.identified_item)) OR ( 'INTEGRATED_CNC_SCHEMA.' + 'ANGULAR_SIZE' IN TYPEOF(SELF\ item_identified_representation_usage.definition)); WR4: NOT ('INTEGRATED_CNC_SCHEMA.' + 'CURVE_DIMENSION' IN TYPEOF(SELF\ item_identified_representation_usage.identified_item)) OR ( 'INTEGRATED_CNC_SCHEMA.' + 'DIMENSIONAL_SIZE' IN TYPEOF(SELF\ item_identified_representation_usage.definition)) AND (SELF\ item_identified_representation_usage.definition.name = 'curve dimension'); WR5: NOT ('INTEGRATED_CNC_SCHEMA.' + 'DIAMETER_DIMENSION' IN TYPEOF( SELF\item_identified_representation_usage.identified_item)) OR ('INTEGRATED_CNC_SCHEMA.' + 'DIMENSIONAL_SIZE' IN TYPEOF( SELF\item_identified_representation_usage.definition)) AND ( SELF\item_identified_representation_usage.definition.name = 'diameter'); WR6: NOT ('INTEGRATED_CNC_SCHEMA.' + 'LINEAR_DIMENSION' IN TYPEOF(SELF\ item_identified_representation_usage.identified_item)) OR ( 'INTEGRATED_CNC_SCHEMA.' + 'DIMENSIONAL_SIZE' IN TYPEOF(SELF\ item_identified_representation_usage.definition)) AND (((SELF \item_identified_representation_usage.definition.name = 'heigth') OR (SELF\item_identified_representation_usage. definition.name = 'length')) OR (SELF\ item_identified_representation_usage.definition.name = 'width')); WR7: NOT ('INTEGRATED_CNC_SCHEMA.' + 'RADIUS_DIMENSION' IN TYPEOF(SELF\ item_identified_representation_usage.identified_item)) OR ( 'INTEGRATED_CNC_SCHEMA.' + 'DIMENSIONAL_SIZE' IN TYPEOF(SELF\ item_identified_representation_usage.definition)) AND (SELF\ item_identified_representation_usage.definition.name = 'radius'); WR8: NOT ('INTEGRATED_CNC_SCHEMA.' + 'GEOMETRICAL_TOLERANCE_CALLOUT' IN TYPEOF(SELF\item_identified_representation_usage. identified_item)) OR ('INTEGRATED_CNC_SCHEMA.' + 'GEOMETRIC_TOLERANCE' IN TYPEOF(SELF\ item_identified_representation_usage.definition)); WR9: NOT ('INTEGRATED_CNC_SCHEMA.' + 'DIMENSIONAL_SIZE' IN TYPEOF(SELF\ item_identified_representation_usage.definition)) OR ((((( 'INTEGRATED_CNC_SCHEMA.' + 'DIMENSION_CALLOUT' IN TYPEOF(SELF \item_identified_representation_usage.identified_item)) OR ( 'INTEGRATED_CNC_SCHEMA.' + 'DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF(SELF\item_identified_representation_usage. identified_item))) OR ('INTEGRATED_CNC_SCHEMA.' + 'LEADER_DIRECTED_DIMENSION' IN TYPEOF(SELF\ item_identified_representation_usage.identified_item))) OR ( 'INTEGRATED_CNC_SCHEMA.' + 'ORDINATE_DIMENSION' IN TYPEOF( SELF\item_identified_representation_usage.identified_item))) OR ('INTEGRATED_CNC_SCHEMA.' + 'STRUCTURED_DIMENSION_CALLOUT' IN TYPEOF(SELF\item_identified_representation_usage. identified_item))); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY draughting_pre_defined_colour SUBTYPE OF (pre_defined_colour); WHERE WR1: SELF.name IN [ 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan' , 'black', 'white' ]; END_ENTITY; -- 10303-46: presentation_resource_schema ENTITY draughting_pre_defined_curve_font SUBTYPE OF (pre_defined_curve_font); WHERE WR1: SELF.name IN [ 'continuous', 'chain', 'chain double dash', 'dashed', 'dotted' ]; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY draughting_pre_defined_text_font SUBTYPE OF (pre_defined_text_font); WHERE WR1: SELF.name[[ 8 : 1 ]] = 'ISO 3098'; END_ENTITY; -- 10303-46: presentation_resource_schema ENTITY draughting_specification_reference SUBTYPE OF (document_reference); specified_items : SET [1:?] OF specified_item; WHERE WR1: SELF.assigned_document.kind.product_data_type = 'draughting specification'; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY draughting_subfigure_representation SUBTYPE OF (symbol_representation); WHERE WR1: SIZEOF(QUERY (item <* SELF\representation.items| NOT (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.ANNOTATION_OCCURRENCE', 'INTEGRATED_CNC_SCHEMA.DRAUGHTING_CALLOUT', 'INTEGRATED_CNC_SCHEMA.AXIS2_PLACEMENT' ] * TYPEOF(item)) = 1 ))) = 0; WR2: SIZEOF(QUERY (item <* SELF\representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.ANNOTATION_OCCURRENCE', 'INTEGRATED_CNC_SCHEMA.DRAUGHTING_CALLOUT' ] * TYPEOF(item)) = 1))) >= 1; WR3: SIZEOF(QUERY (srm <* QUERY (rm <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'REPRESENTATION_MAP.MAPPED_REPRESENTATION')| ( 'INTEGRATED_CNC_SCHEMA.SYMBOL_REPRESENTATION_MAP' IN TYPEOF( rm)))| NOT (SIZEOF(QUERY (a_s <* QUERY (mi <* srm.map_usage| ('INTEGRATED_CNC_SCHEMA.ANNOTATION_SYMBOL' IN TYPEOF(mi)))| NOT (SIZEOF(QUERY (aso <* USEDIN(a_s, 'INTEGRATED_CNC_SCHEMA.' + 'STYLED_ITEM.ITEM')| NOT ( 'INTEGRATED_CNC_SCHEMA.ANNOTATION_SUBFIGURE_OCCURRENCE' IN TYPEOF(aso)))) = 0))) = 0))) > 0; WR4: NOT acyclic_mapped_item_usage(SELF); WR5: SIZEOF(SELF.context_of_items.representations_in_context) = 1; END_ENTITY; -- 10303-504: aic_draughting_annotation ENTITY draughting_symbol_representation SUBTYPE OF (symbol_representation); UNIQUE UR1: SELF\representation.name; WHERE WR1: SIZEOF(QUERY (item <* SELF\representation.items| NOT (SIZEOF( TYPEOF(item) * [ 'INTEGRATED_CNC_SCHEMA.ANNOTATION_CURVE_OCCURRENCE', 'INTEGRATED_CNC_SCHEMA.ANNOTATION_SYMBOL_OCCURRENCE', 'INTEGRATED_CNC_SCHEMA.ANNOTATION_FILL_AREA_OCCURRENCE', 'INTEGRATED_CNC_SCHEMA.ANNOTATION_TEXT_OCCURRENCE', 'INTEGRATED_CNC_SCHEMA.AXIS2_PLACEMENT' ]) = 1))) = 0; WR2: SIZEOF(QUERY (item <* SELF\representation.items| (SIZEOF(TYPEOF( item) * [ 'INTEGRATED_CNC_SCHEMA.ANNOTATION_CURVE_OCCURRENCE' , 'INTEGRATED_CNC_SCHEMA.ANNOTATION_SYMBOL_OCCURRENCE', 'INTEGRATED_CNC_SCHEMA.ANNOTATION_FILL_AREA_OCCURRENCE', 'INTEGRATED_CNC_SCHEMA.ANNOTATION_TEXT_OCCURRENCE' ]) = 1))) >= 1; WR3: SIZEOF(QUERY (item <* SELF\representation.items| ( 'INTEGRATED_CNC_SCHEMA.ANNOTATION_SUBFIGURE_OCCURRENCE' IN TYPEOF(item)))) = 0; WR4: SIZEOF(QUERY (srm <* QUERY (rm <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'REPRESENTATION_MAP.MAPPED_REPRESENTATION')| ( 'INTEGRATED_CNC_SCHEMA.SYMBOL_REPRESENTATION_MAP' IN TYPEOF( rm)))| NOT (SIZEOF(QUERY (a_s <* QUERY (mi <* srm.map_usage| ('INTEGRATED_CNC_SCHEMA.ANNOTATION_SYMBOL' IN TYPEOF(mi)))| NOT (SIZEOF(QUERY (aso <* USEDIN(a_s, 'INTEGRATED_CNC_SCHEMA.' + 'STYLED_ITEM.ITEM')| NOT ( 'INTEGRATED_CNC_SCHEMA.ANNOTATION_SYMBOL_OCCURRENCE' IN TYPEOF(aso)))) = 0))) = 0))) > 0; WR5: NOT acyclic_mapped_item_usage(SELF); WR6: SIZEOF(SELF.context_of_items.representations_in_context) = 1; END_ENTITY; -- 10303-504: aic_draughting_annotation ENTITY draughting_text_literal_with_delineation SUBTYPE OF (text_literal_with_delineation); WHERE WR1: SELF.delineation IN [ 'underline', 'overline' ]; END_ENTITY; -- 10303-504: aic_draughting_annotation ENTITY draughting_title; items : SET [1:?] OF draughting_titled_item; language : label; contents : text; END_ENTITY; -- 10303-101: drawing_definition_schema ENTITY drawing_definition; drawing_number : identifier; drawing_type : OPTIONAL label; END_ENTITY; -- 10303-101: drawing_definition_schema ENTITY drawing_revision SUBTYPE OF (presentation_set); revision_identifier : identifier; drawing_identifier : drawing_definition; intended_scale : OPTIONAL text; UNIQUE UR1: revision_identifier, drawing_identifier; END_ENTITY; -- 10303-101: drawing_definition_schema ENTITY drawing_revision_sequence; predecessor : drawing_revision; successor : drawing_revision; WHERE WR1: predecessor :<>: successor; END_ENTITY; -- 10303-101: drawing_definition_schema ENTITY drawing_sheet_revision SUBTYPE OF (presentation_area); revision_identifier : identifier; WHERE WR1: SIZEOF(QUERY (item <* SELF\representation.items| ( 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM' IN TYPEOF(item)) AND ( 'INTEGRATED_CNC_SCHEMA.DRAWING_SHEET_REVISION' IN TYPEOF(item \mapped_item.mapping_source.mapped_representation)))) = 0; END_ENTITY; -- 10303-101: drawing_definition_schema ENTITY drawing_sheet_revision_sequence SUBTYPE OF (representation_relationship); WHERE WR1: SELF\representation_relationship.rep_1 :<>: SELF\ representation_relationship.rep_2; WR2: 'INTEGRATED_CNC_SCHEMA.DRAWING_SHEET_REVISION' IN TYPEOF(SELF\ representation_relationship.rep_1); WR3: 'INTEGRATED_CNC_SCHEMA.DRAWING_SHEET_REVISION' IN TYPEOF(SELF\ representation_relationship.rep_2); END_ENTITY; -- 10303-101: drawing_definition_schema ENTITY drawing_sheet_revision_usage SUBTYPE OF (area_in_set); sheet_number : identifier; UNIQUE UR1: sheet_number, in_set; WHERE WR1: ('INTEGRATED_CNC_SCHEMA.DRAWING_SHEET_REVISION' IN TYPEOF(SELF\ area_in_set.area)) AND ( 'INTEGRATED_CNC_SCHEMA.DRAWING_REVISION' IN TYPEOF(SELF\ area_in_set.in_set)); END_ENTITY; -- 10303-101: drawing_definition_schema ENTITY drilling_operation SUBTYPE OF (drilling_type_operation); WHERE WR1: (SELF.description IN ['drilling','counter sinking', 'center drilling', 'multistep drilling']); WR2: NOT (SELF.description = 'multistep drilling') OR ((verify_required_action_property (SELF, 'retract distance')) AND (verify_length_measure_action_property (SELF, 'retract distance')) AND (verify_required_action_property (SELF, 'first depth')) AND (verify_length_measure_action_property (SELF, 'first depth')) AND (verify_required_action_property (SELF, 'depth of step')) AND (verify_length_measure_action_property (SELF, 'depth of step')) AND (verify_optional_action_property (SELF, 'dwell time step')) AND (verify_rep_type_for_action_property (SELF, 'dwell time step', ['INTEGRATED_CNC_SCHEMA.MACHINING_DWELL_TIME_REPRESENTATION'])) AND (verify_rep_name_for_action_property (SELF, 'dwell time step', ['dwell time'])) ); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY drilling_type_operation SUBTYPE OF (machining_operation); WHERE WR1: (verify_optional_action_property (SELF, 'overcut length')) AND (verify_length_measure_action_property (SELF, 'overcut length')); WR2: (verify_optional_action_property (SELF, 'cutting depth')) AND (verify_length_measure_action_property (SELF, 'cutting depth')); WR3: (verify_optional_action_property (SELF, 'previous diameter')) AND (verify_length_measure_action_property (SELF, 'previous diameter')); WR4: (verify_optional_action_property (SELF, 'dwell time bottom')) AND (verify_rep_type_for_action_property (SELF, 'dwell time bottom', ['INTEGRATED_CNC_SCHEMA.MACHINING_DWELL_TIME_REPRESENTATION'])) AND (verify_rep_name_for_action_property (SELF, 'dwell time bottom', ['dwell time'])); WR5: (verify_optional_action_property (SELF, 'feedrate on retract')) AND (verify_rep_type_for_action_property (SELF, 'feedrate on retract', ['INTEGRATED_CNC_SCHEMA.MACHINING_FEED_SPEED_REPRESENTATION'])) AND (verify_rep_name_for_action_property (SELF, 'feedrate on retract', ['relative speed'])); WR6: ((verify_optional_relating_amr_with_name (SELF, 'machining', ['INTEGRATED_CNC_SCHEMA.MACHINING_STRATEGY_RELATIONSHIP'])) AND (verify_related_type_for_amr_with_name (SELF, 'machining', ['INTEGRATED_CNC_SCHEMA.MACHINING_STRATEGY_RELATIONSHIP'], ['INTEGRATED_CNC_SCHEMA.DRILLING_TYPE_STRATEGY'])) ); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY drilling_type_strategy SUBTYPE OF (machining_strategy); WHERE WR1: (verify_optional_action_property (SELF, 'reduced cut at start')) AND (verify_rep_type_for_action_property (SELF, 'reduced cut at start', ['INTEGRATED_CNC_SCHEMA.MACHINING_SPINDLE_SPEED_REPRESENTATION'])) AND (verify_rep_name_for_action_property (SELF, 'reduced cut at start', ['relative speed'])); WR2: (verify_optional_action_property (SELF, 'reduced feedrate at start')) AND (verify_rep_type_for_action_property (SELF, 'reduced feedrate at start', ['INTEGRATED_CNC_SCHEMA.MACHINING_FEED_SPEED_REPRESENTATION'])) AND (verify_rep_name_for_action_property (SELF, 'reduced feedrate at start', ['relative speed'])); WR3: (verify_optional_action_property (SELF, 'depth of start')) AND (verify_length_measure_action_property (SELF, 'depth of start')); WR4: (verify_optional_action_property (SELF, 'reduced cut at end')) AND (verify_rep_type_for_action_property (SELF, 'reduced cut at end', ['INTEGRATED_CNC_SCHEMA.MACHINING_SPINDLE_SPEED_REPRESENTATION'])) AND (verify_rep_name_for_action_property (SELF, 'reduced cut at end', ['relative speed'])); WR5: (verify_optional_action_property (SELF, 'reduced feedrate at end')) AND (verify_rep_type_for_action_property (SELF, 'reduced feedrate at end', ['INTEGRATED_CNC_SCHEMA.MACHINING_FEED_SPEED_REPRESENTATION'])) AND (verify_rep_name_for_action_property (SELF, 'reduced feedrate at end', ['relative speed'])); WR6: (verify_optional_action_property (SELF, 'depth of end')) AND (verify_length_measure_action_property (SELF, 'depth of end')); WR7: (verify_required_action_property (SELF, 'depth of start')) OR ((0 = SIZEOF (get_action_property (SELF, 'reduced cut at start'))) AND (0 = SIZEOF (get_action_property (SELF, 'reduced feedrate at start')))); WR8: (verify_required_action_property (SELF, 'depth of end')) OR ((0 = SIZEOF (get_action_property (SELF, 'reduced cut at end'))) AND (0 = SIZEOF (get_action_property (SELF, 'reduced feedrate at end')))); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY edge SUPERTYPE OF (ONEOF(edge_curve, oriented_edge)) SUBTYPE OF (topological_representation_item); edge_start : vertex; edge_end : vertex; END_ENTITY; -- 10303-42: topology_schema ENTITY edge_based_wireframe_model SUBTYPE OF (geometric_representation_item); ebwm_boundary : SET [1:?] OF connected_edge_set; END_ENTITY; -- 10303-42: geometric_model_schema ENTITY edge_based_wireframe_shape_representation SUBTYPE OF (shape_representation); WHERE WR1: SIZEOF(QUERY (it <* SELF.items| NOT (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.EDGE_BASED_WIREFRAME_MODEL', 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM', 'INTEGRATED_CNC_SCHEMA.AXIS2_PLACEMENT_3D' ] * TYPEOF(it)) = 1))) = 0; WR2: SIZEOF(QUERY (it <* SELF.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.EDGE_BASED_WIREFRAME_MODEL', 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM' ] * TYPEOF(it)) = 1))) >= 1; WR3: SIZEOF(QUERY (ebwm <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF( it)))| NOT (SIZEOF(QUERY (eb <* ebwm\ edge_based_wireframe_model.ebwm_boundary| NOT (SIZEOF(QUERY ( edges <* eb.ces_edges| NOT ( 'INTEGRATED_CNC_SCHEMA.EDGE_CURVE' IN TYPEOF(edges)))) = 0))) = 0))) = 0; WR4: SIZEOF(QUERY (ebwm <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF( it)))| NOT (SIZEOF(QUERY (eb <* ebwm\ edge_based_wireframe_model.ebwm_boundary| NOT (SIZEOF(QUERY ( pline_edges <* QUERY (edges <* eb.ces_edges| ( 'INTEGRATED_CNC_SCHEMA.POLYLINE' IN TYPEOF(edges\edge_curve. edge_geometry)))| NOT (SIZEOF(pline_edges\edge_curve. edge_geometry\polyline.points) > 2))) = 0))) = 0))) = 0; WR5: SIZEOF(QUERY (ebwm <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF( it)))| NOT (SIZEOF(QUERY (eb <* ebwm\ edge_based_wireframe_model.ebwm_boundary| NOT (SIZEOF(QUERY ( edges <* eb.ces_edges| NOT (( 'INTEGRATED_CNC_SCHEMA.VERTEX_POINT' IN TYPEOF(edges. edge_start)) AND ('INTEGRATED_CNC_SCHEMA.VERTEX_POINT' IN TYPEOF(edges.edge_end))))) = 0))) = 0))) = 0; WR6: SIZEOF(QUERY (ebwm <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF( it)))| NOT (SIZEOF(QUERY (eb <* ebwm\ edge_based_wireframe_model.ebwm_boundary| NOT (SIZEOF(QUERY ( edges <* eb.ces_edges| NOT valid_wireframe_edge_curve(edges\ edge_curve.edge_geometry))) = 0))) = 0))) = 0; WR7: SIZEOF(QUERY (ebwm <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF( it)))| NOT (SIZEOF(QUERY (eb <* ebwm\ edge_based_wireframe_model.ebwm_boundary| NOT (SIZEOF(QUERY ( edges <* eb.ces_edges| NOT (valid_wireframe_vertex_point( edges.edge_start\vertex_point.vertex_geometry) AND valid_wireframe_vertex_point(edges.edge_end\vertex_point. vertex_geometry)))) = 0))) = 0))) = 0; WR8: SIZEOF(QUERY (mi <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM' IN TYPEOF(it)))| NOT ( 'INTEGRATED_CNC_SCHEMA.' + 'EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION' IN TYPEOF(mi\ mapped_item.mapping_source.mapped_representation)))) = 0; WR9: SELF.context_of_items\geometric_representation_context. coordinate_space_dimension = 3; END_ENTITY; -- 10303-501: aic_edge_based_wireframe ENTITY edge_curve SUBTYPE OF (edge, geometric_representation_item); edge_geometry : curve; same_sense : BOOLEAN; END_ENTITY; -- 10303-42: topology_schema ENTITY edge_loop SUBTYPE OF (loop, path); DERIVE ne : INTEGER := SIZEOF(SELF\path.edge_list); WHERE WR1: SELF\path.edge_list[1].edge_start :=: SELF\path.edge_list[ne]. edge_end; END_ENTITY; -- 10303-42: topology_schema ENTITY edge_round SUBTYPE OF (transition_feature); WHERE WR1: NOT (SELF\shape_aspect.description = 'constant radius') OR (SIZEOF (QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1))) = 0); WR2: NOT (SELF\shape_aspect.description = 'constant radius') OR (SIZEOF (QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep. used_representation.items) >= 1) AND (SIZEOF(impl_rep. used_representation.items) <= 3))) = 0))) = 0); WR3: NOT (SELF.description = 'constant radius') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'radius'))) = 1))) = 0))) = 0); WR4: NOT (SELF.description = 'constant radius') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'first offset'))) <= 1))) = 0))) = 0 ); WR5: NOT (SELF.description = 'constant radius') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'second offset'))) <= 1))) = 0))) = 0); WR6: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation)) AND (pdr.used_representation.name = 'edge round face'))) <= 1))) = 0; WR7: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation)) AND (pdr.used_representation.name = 'first face shape'))) <= 1))) = 0; WR8: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation)) AND (pdr.used_representation.name = 'second face shape'))) <= 1))) = 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY elementary_surface SUPERTYPE OF (ONEOF(plane, cylindrical_surface, conical_surface, spherical_surface, toroidal_surface)) SUBTYPE OF (surface); position : axis2_placement_3d; END_ENTITY; -- 10303-42: geometry_schema ENTITY ellipse SUBTYPE OF (conic); semi_axis_1 : positive_length_measure; semi_axis_2 : positive_length_measure; END_ENTITY; -- 10303-42: geometry_schema ENTITY environment; syntactic_representation : generic_variable; semantics : variable_semantics; END_ENTITY; -- 13584-20: iso13584_generic_expressions_schema ENTITY evaluated_degenerate_pcurve SUBTYPE OF (degenerate_pcurve); equivalent_point : cartesian_point; END_ENTITY; -- 10303-42: geometry_schema ENTITY expanded_uncertainty SUBTYPE OF (standard_uncertainty); coverage_factor : REAL; END_ENTITY; -- 10303-45: qualified_measure_schema ENTITY expression ABSTRACT SUPERTYPE OF (ONEOF(numeric_expression, boolean_expression)) SUBTYPE OF (generic_expression); END_ENTITY; -- 13584-20: iso13584_expressions_schema ENTITY expression_representation_item SUBTYPE OF (representation_item, generic_expression); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY extension SUBTYPE OF (derived_shape_aspect); WHERE WR1: SIZEOF(SELF\derived_shape_aspect.deriving_relationships) = 1; END_ENTITY; -- 10303-47: shape_aspect_definition_schema ENTITY external_class_library SUBTYPE OF (external_source); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY external_identification_assignment ABSTRACT SUPERTYPE SUBTYPE OF (identification_assignment); source : external_source; END_ENTITY; -- 10303-41: management_resources_schema ENTITY external_source; source_id : source_item; DERIVE description : text := get_description_value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY; -- 10303-41: external_reference_schema ENTITY externally_defined_character_glyph SUBTYPE OF (externally_defined_item); END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY externally_defined_class SUBTYPE OF (class, externally_defined_item); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.KNOWN_SOURCE' IN TYPEOF(SELF.source); WR2: SELF.source.name = 'ISO 13584 library'; WR3: SIZEOF(QUERY (aoa <* USEDIN(SELF.source, 'INTEGRATED_CNC_SCHEMA.APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS' )| (aoa.role.name = 'library supplier'))) = 1; WR4: SIZEOF(QUERY (aoa <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT.ITEMS')| (aoa. role.name = 'class version'))) = 1; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY externally_defined_curve_font SUBTYPE OF (externally_defined_item); END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY externally_defined_dimension_definition SUBTYPE OF (externally_defined_item, dimensional_size); WHERE WR1: (SELF\externally_defined_item.item_id = 'external size dimension') AND (SELF\externally_defined_item.source.source_id = 'external size dimension specification'); WR2: 1 >= SIZEOF(QUERY (adr <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.APPLIED_DOCUMENT_REFERENCE.ITEMS')| ( adr.assigned_document.description = 'external size dimension specification'))); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY externally_defined_feature_definition SUBTYPE OF (feature_definition, externally_defined_item); WHERE WR1: ((((SELF\characterized_object.description = 'thread') AND (SELF\ externally_defined_item.item_id = 'external thread')) AND ( SELF\externally_defined_item.source.source_id = 'external feature specification') OR ((SELF\ characterized_object.description = 'gear') AND (SELF\ externally_defined_item.item_id = 'external gear')) AND (SELF \externally_defined_item.source.source_id = 'external feature specification')) OR ((SELF\ characterized_object.description = 'marking') AND (SELF\ externally_defined_item.item_id = 'external marking')) AND ( SELF\externally_defined_item.source.source_id = 'external feature specification')) OR ((SELF\ characterized_object.description = 'knurl') AND (SELF\ externally_defined_item.item_id = 'external knurl')) AND ( SELF\externally_defined_item.source.source_id = 'external feature specification'); WR2: NOT (SELF\characterized_object.description = 'thread') OR (SIZEOF( QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)) AND ((5 <= SIZEOF(pdr. used_representation.items)) AND (SIZEOF(pdr. used_representation.items) <= 10)))) = 1))) = 1); WR3: NOT (SELF\characterized_object.description = 'marking') OR (SIZEOF (QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)) AND (SIZEOF(pdr.used_representation. items) = 2))) = 1))) = 1); WR4: NOT (SELF\characterized_object.description = 'knurl') OR (SIZEOF( QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)) AND (SIZEOF(pdr.used_representation. items) = 1))) = 1))) = 1); WR5: NOT (SELF\characterized_object.description IN [ 'knurl', 'thread' ]) OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'partial area occurrence') AND (SIZEOF(QUERY ( sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'applied area usage') AND ( 'INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF (sar)))| ('INTEGRATED_CNC_SCHEMA.APPLIED_AREA' IN TYPEOF(sdr. relating_shape_aspect)))) = 1))) <= 1))) = 0); WR6: NOT (SELF\characterized_object.description = 'marking') OR (SIZEOF (QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| ( 'INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'marking text'))) = 1))) = 0))) = 0); WR7: NOT (SELF\characterized_object.description = 'thread') OR (SIZEOF( QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (( 'INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'removal direction')) AND ((it. description = 'internal') OR (it.description = 'external')))) = 1))) = 0))) = 0); WR8: NOT (SELF\characterized_object.description = 'thread') OR (SIZEOF( QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| ( 'INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'qualifier'))) <= 1))) = 0))) = 0) ; WR9: NOT (SELF\characterized_object.description = 'thread') OR (SIZEOF( QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| ( 'INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'hand'))) = 1))) = 0))) = 0); WR10: NOT (SELF\characterized_object.description = 'thread') OR (SIZEOF (QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| ( 'INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'fit class'))) = 1))) = 0))) = 0); WR11: NOT (SELF\characterized_object.description = 'thread') OR (SIZEOF (QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| ( 'INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'form'))) = 1))) = 0))) = 0); WR12: NOT (SELF\characterized_object.description = 'thread') OR (SIZEOF (QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'major diameter'))) <= 1))) = 0))) = 0); WR13: NOT (SELF\characterized_object.description = 'thread') OR (SIZEOF (QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.RATIO_MEASURE_WITH_UNIT' ] * TYPEOF(it )) = 2) AND (it.name = 'number of threads'))) = 1))) = 0))) = 0); WR14: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| ( 'INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'fit class 2'))) <= 1))) = 0))) = 0; WR15: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'nominal size'))) <= 1))) = 0))) = 0 ; WR16: NOT (SELF\characterized_object.description IN [ 'knurl', 'gear', 'thread' ]) OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF , 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'applied shape') AND ('INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sdr.relating_shape_aspect)))) = 1))) <= 1))) = 0); WR17: NOT (SELF\characterized_object.description IN [ 'gear' ]) OR ( SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| (( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)) AND (10 <= SIZEOF(pdr. used_representation.items))) AND (SIZEOF(pdr. used_representation.items) >= 11))) = 1))) = 1); WR18: NOT (SELF\characterized_object.description IN [ 'gear' ]) OR ( SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.RATIO_MEASURE_WITH_UNIT' ] * TYPEOF(it )) = 2) AND (it.name = 'number of teeth'))) = 1))) = 0))) = 0 ); WR19: NOT (SELF\characterized_object.description IN [ 'gear' ]) OR ( SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'reference pressure angle'))) = 1))) = 0))) = 0); WR20: NOT (SELF\characterized_object.description IN [ 'gear' ]) OR ( SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'rake shift factor'))) = 1))) = 0))) = 0); WR21: NOT (SELF\characterized_object.description IN [ 'gear' ]) OR ( SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'nominal tooth depth'))) = 1))) = 0) )) = 0); WR22: NOT (SELF\characterized_object.description IN [ 'gear' ]) OR ( SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'face width'))) = 1))) = 0))) = 0); WR23: NOT (SELF\characterized_object.description IN [ 'gear' ]) OR ( SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'tip diameter'))) = 1))) = 0))) = 0) ; WR24: NOT (SELF\characterized_object.description IN [ 'gear' ]) OR ( SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (( 'INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'module or diametral pitch')) AND ((it.description = 'module') OR (it.description = 'diametral pitch')))) = 1))) = 0))) = 0); WR25: NOT (SELF\characterized_object.description IN [ 'gear' ]) OR ( SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'normal attribute'))) = 1))) = 0))) = 0); WR26: NOT (SELF\characterized_object.description IN [ 'gear' ]) OR ( SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (( 'INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'internal or external gear')) AND ((it.description = 'internal') OR (it.description = 'external')))) = 1))) = 0))) = 0); WR27: NOT (SELF\characterized_object.description IN [ 'gear' ]) OR ( SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'root fillet radius'))) <= 1) )) = 0))) = 0); END_ENTITY; -- 10303-522: aic_machining_feature ENTITY externally_defined_general_property SUBTYPE OF (general_property, externally_defined_item); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.KNOWN_SOURCE' IN TYPEOF(SELF.source); WR2: SELF.source.name = 'ISO 13584 library'; WR3: SIZEOF(QUERY (aoa <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT.ITEMS')| (aoa. role.name = 'property version'))) = 1; WR4: SIZEOF(QUERY (ap <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'EXTERNALLY_DEFINED_ITEM_RELATIONSHIP.RELATING_ITEM')| (ap. name = 'name scope') AND ( 'INTEGRATED_CNC_SCHEMA.EXTERNALLY_DEFINED_CLASS' IN TYPEOF(ap .related_item)))) >= 1; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY externally_defined_hatch_style SUBTYPE OF (externally_defined_item, geometric_representation_item); END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY externally_defined_item; item_id : source_item; source : external_source; END_ENTITY; -- 10303-41: external_reference_schema ENTITY externally_defined_item_relationship; name : label; description : OPTIONAL text; relating_item : externally_defined_item; related_item : externally_defined_item; END_ENTITY; -- 10303-41: external_reference_schema ENTITY externally_defined_representation_with_parameters SUBTYPE OF (representation); WHERE WR1: SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'APPLIED_CLASSIFICATION_ASSIGNMENT.ITEMS')) = 1; WR2: SIZEOF(QUERY (adr <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.PLACEMENT' IN TYPEOF(adr)))) <= 1; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY externally_defined_style SUBTYPE OF (externally_defined_item); END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY externally_defined_symbol SUBTYPE OF (externally_defined_item); END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY externally_defined_text_font SUBTYPE OF (externally_defined_item); END_ENTITY; -- 10303-46: presentation_resource_schema ENTITY externally_defined_tile_style SUBTYPE OF (externally_defined_item, geometric_representation_item); END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY face SUPERTYPE OF (ONEOF(face_surface, oriented_face)) SUBTYPE OF (topological_representation_item); bounds : SET [1:?] OF face_bound; WHERE WR1: NOT mixed_loop_type_set(list_to_set(list_face_loops(SELF))); WR2: SIZEOF(QUERY (temp <* bounds| ( 'INTEGRATED_CNC_SCHEMA.FACE_OUTER_BOUND' IN TYPEOF(temp)))) <= 1; END_ENTITY; -- 10303-42: topology_schema ENTITY face_based_surface_model SUBTYPE OF (geometric_representation_item); fbsm_faces : SET [1:?] OF connected_face_set; END_ENTITY; -- 10303-42: geometric_model_schema ENTITY face_bound SUBTYPE OF (topological_representation_item); bound : loop; orientation : BOOLEAN; END_ENTITY; -- 10303-42: topology_schema ENTITY face_outer_bound SUBTYPE OF (face_bound); END_ENTITY; -- 10303-42: topology_schema ENTITY face_shape_representation SUBTYPE OF (shape_representation); WHERE WR1: SIZEOF(SELF.items) >= 1; WR2: SIZEOF(QUERY (it <* SELF.items| NOT (( 'INTEGRATED_CNC_SCHEMA.FACE_SURFACE' IN TYPEOF(it)) OR ( 'INTEGRATED_CNC_SCHEMA.ORIENTED_FACE' IN TYPEOF(it))))) = 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY face_surface SUBTYPE OF (face, geometric_representation_item); face_geometry : surface; same_sense : BOOLEAN; -- WHERE -- WR1: NOT ('INTEGRATED_CNC_SCHEMA.ORIENTED_SURFACE' IN TYPEOF( -- face_geometry)); END_ENTITY; -- 10303-42: topology_schema ENTITY faceted_brep SUBTYPE OF (manifold_solid_brep); END_ENTITY; -- 10303-42: geometric_model_schema ENTITY faceted_brep_shape_representation SUBTYPE OF (shape_representation); WHERE WR1: SIZEOF(QUERY (it <* items| NOT (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.FACETED_BREP', 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM', 'INTEGRATED_CNC_SCHEMA.AXIS2_PLACEMENT_3D' ] * TYPEOF(it)) = 1))) = 0; WR2: SIZEOF(QUERY (it <* items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.FACETED_BREP', 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM' ] * TYPEOF(it)) = 1))) > 0; WR3: SIZEOF(QUERY (fbrep <* QUERY (it <* items| ( 'INTEGRATED_CNC_SCHEMA.FACETED_BREP' IN TYPEOF(it)))| NOT ( SIZEOF(QUERY (csh <* msb_shells(fbrep)| NOT (SIZEOF(QUERY ( fcs <* csh\connected_face_set.cfs_faces| NOT (( 'INTEGRATED_CNC_SCHEMA.FACE_SURFACE' IN TYPEOF(fcs)) AND (( 'INTEGRATED_CNC_SCHEMA.PLANE' IN TYPEOF(fcs\face_surface. face_geometry)) AND ('INTEGRATED_CNC_SCHEMA.CARTESIAN_POINT' IN TYPEOF(fcs\face_surface.face_geometry\elementary_surface. position.location)))))) = 0))) = 0))) = 0; WR4: SIZEOF(QUERY (fbrep <* QUERY (it <* items| ( 'INTEGRATED_CNC_SCHEMA.FACETED_BREP' IN TYPEOF(it)))| NOT ( SIZEOF(QUERY (csh <* msb_shells(fbrep)| NOT (SIZEOF(QUERY ( fcs <* csh\connected_face_set.cfs_faces| NOT (SIZEOF(QUERY ( bnds <* fcs.bounds| ('INTEGRATED_CNC_SCHEMA.FACE_OUTER_BOUND' IN TYPEOF(bnds)))) = 1))) = 0))) = 0))) = 0; WR5: SIZEOF(QUERY (msb <* QUERY (it <* items| ( 'INTEGRATED_CNC_SCHEMA.MANIFOLD_SOLID_BREP' IN TYPEOF(it)))| ('INTEGRATED_CNC_SCHEMA.ORIENTED_CLOSED_SHELL' IN TYPEOF(msb\ manifold_solid_brep.outer)))) = 0; WR6: SIZEOF(QUERY (brv <* QUERY (it <* items| ( 'INTEGRATED_CNC_SCHEMA.BREP_WITH_VOIDS' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (csh <* brv\brep_with_voids.voids| csh\ oriented_closed_shell.orientation)) = 0))) = 0; WR7: SIZEOF(QUERY (mi <* QUERY (it <* items| ( 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM' IN TYPEOF(it)))| NOT ( 'INTEGRATED_CNC_SCHEMA.FACETED_BREP_SHAPE_REPRESENTATION' IN TYPEOF(mi\mapped_item.mapping_source.mapped_representation))) ) = 0; END_ENTITY; -- 10303-512: aic_faceted_brep ENTITY facing_turning_operation SUBTYPE OF (turning_type_operation); WHERE WR1: (SELF.description IN ['roughing','finishing']); WR2: (verify_optional_action_property (SELF, 'allowance')) AND (verify_length_measure_action_property (SELF, 'allowance')); WR3: NOT (SELF.description = 'roughing') OR (verify_required_action_property (SELF, 'allowance')); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY feature_component_definition SUBTYPE OF (characterized_object); WHERE WR1: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')) = 1))) = 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY feature_component_relationship SUPERTYPE OF (ONEOF(pattern_omit_membership, pattern_offset_membership)) SUBTYPE OF (shape_aspect_relationship); WHERE WR1: ((SIZEOF([ 'INTEGRATED_CNC_SCHEMA.COMPOSITE_SHAPE_ASPECT', 'INTEGRATED_CNC_SCHEMA.REPLICATE_FEATURE', 'INTEGRATED_CNC_SCHEMA.TRANSITION_FEATURE', 'INTEGRATED_CNC_SCHEMA.MODIFIED_PATTERN' ] * TYPEOF(SELF. relating_shape_aspect)) = 1) OR ( 'INTEGRATED_CNC_SCHEMA.FEATURE_DEFINITION' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition))) OR ( 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition)); END_ENTITY; -- 10303-522: aic_machining_feature ENTITY feature_definition SUBTYPE OF (characterized_object); WHERE WR1: SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF) | ( 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) <= 1; WR2: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| ('INTEGRATED_CNC_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0; WR3: SIZEOF([ 'INTEGRATED_CNC_SCHEMA.BOSS', 'INTEGRATED_CNC_SCHEMA.TURNED_KNURL', 'INTEGRATED_CNC_SCHEMA.THREAD', 'INTEGRATED_CNC_SCHEMA.GEAR', 'INTEGRATED_CNC_SCHEMA.MARKING', 'INTEGRATED_CNC_SCHEMA.RIB_TOP', 'INTEGRATED_CNC_SCHEMA.ROUND_HOLE', 'INTEGRATED_CNC_SCHEMA.OUTSIDE_PROFILE', 'INTEGRATED_CNC_SCHEMA.POCKET', 'INTEGRATED_CNC_SCHEMA.REMOVAL_VOLUME', 'INTEGRATED_CNC_SCHEMA.REVOLVED_PROFILE', 'INTEGRATED_CNC_SCHEMA.OUTER_ROUND', 'INTEGRATED_CNC_SCHEMA.FLAT_FACE', 'INTEGRATED_CNC_SCHEMA.PROTRUSION', 'INTEGRATED_CNC_SCHEMA.ROUNDED_END', 'INTEGRATED_CNC_SCHEMA.SLOT', 'INTEGRATED_CNC_SCHEMA.SPHERICAL_CAP', 'INTEGRATED_CNC_SCHEMA.STEP', 'INTEGRATED_CNC_SCHEMA.COMPOUND_FEATURE', 'INTEGRATED_CNC_SCHEMA.REPLICATE_FEATURE', 'INTEGRATED_CNC_SCHEMA.EXTERNALLY_DEFINED_FEATURE_DEFINITION' ] * TYPEOF(SELF)) <= 1; WR4: NOT (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.ROUND_HOLE', 'INTEGRATED_CNC_SCHEMA.BOSS', 'INTEGRATED_CNC_SCHEMA.OUTSIDE_PROFILE', 'INTEGRATED_CNC_SCHEMA.REMOVAL_VOLUME', 'INTEGRATED_CNC_SCHEMA.FLAT_FACE', 'INTEGRATED_CNC_SCHEMA.POCKET', 'INTEGRATED_CNC_SCHEMA.PROTRUSION', 'INTEGRATED_CNC_SCHEMA.RIB_TOP', 'INTEGRATED_CNC_SCHEMA.ROUNDED_END', 'INTEGRATED_CNC_SCHEMA.SLOT', 'INTEGRATED_CNC_SCHEMA.STEP' ] * TYPEOF(SELF)) = 1) OR (SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ( 'INTEGRATED_CNC_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF (pdr.used_representation)) AND (pdr.used_representation.name = 'maximum feature limit'))) >= 0); END_ENTITY; -- 10303-522: aic_machining_feature ENTITY feature_pattern SUBTYPE OF (replicate_feature); WHERE WR1: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)) AND (SIZEOF(QUERY (srwp_i <* pdr. used_representation.items| NOT ( 'INTEGRATED_CNC_SCHEMA.PLACEMENT' IN TYPEOF(srwp_i)))) > 0))) > 0))) = 0; WR2: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| ('INTEGRATED_CNC_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'base feature placement'))) > 1))) = 0))) = 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY fill_area_style; name : label; fill_styles : SET [1:?] OF fill_style_select; WHERE WR1: SIZEOF(QUERY (fill_style <* SELF.fill_styles| ( 'INTEGRATED_CNC_SCHEMA.' + 'FILL_AREA_STYLE_COLOUR' IN TYPEOF (fill_style)))) <= 1; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY fill_area_style_colour; name : label; fill_colour : colour; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY fill_area_style_hatching SUBTYPE OF (geometric_representation_item); hatch_line_appearance : curve_style; start_of_next_hatch_line : one_direction_repeat_factor; point_of_reference_hatch_line : cartesian_point; pattern_start : cartesian_point; hatch_line_angle : plane_angle_measure; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY fill_area_style_tile_symbol_with_style SUBTYPE OF (geometric_representation_item); symbol : annotation_symbol_occurrence; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY fill_area_style_tiles SUBTYPE OF (geometric_representation_item); tiling_pattern : two_direction_repeat_factor; tiles : SET [1:?] OF fill_area_style_tile_shape_select; tiling_scale : positive_ratio_measure; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY fillet SUBTYPE OF (transition_feature); WHERE WR1: NOT (SELF\shape_aspect.description = 'constant radius') OR (SIZEOF (QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))) = 1))) = 0); WR2: NOT (SELF\shape_aspect.description = 'constant radius') OR (SIZEOF (QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(impl_rep. used_representation.items) >= 1) AND (SIZEOF(impl_rep. used_representation.items) <= 3))) = 0))) = 0); WR3: NOT (SELF.description = 'constant radius') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'radius'))) = 1))) = 0))) = 0); WR4: NOT (SELF.description = 'constant radius') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'first offset'))) <= 1))) = 0))) = 0 ); WR5: NOT (SELF.description = 'constant radius') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'second offset'))) <= 1))) = 0))) = 0); WR6: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.' + 'DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation)) AND (pdr.used_representation.name = 'fillet face'))) = 1))) = 0; WR7: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.' + 'DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation)) AND (pdr.used_representation.name = 'first face shape'))) = 1))) = 0; WR8: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.' + 'DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation)) AND (pdr.used_representation.name = 'second face shape'))) = 1))) = 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY flat_face SUBTYPE OF (feature_definition); WHERE WR1: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation .name = 'removal direction'))) = 1))) = 0; WR2: SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'course of travel occurrence') AND (SIZEOF( QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'path feature component usage') AND ( 'INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF (sar)))| (('INTEGRATED_CNC_SCHEMA.PATH_FEATURE_COMPONENT' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr. relating_shape_aspect.description = 'linear')) AND (sdr.name = 'course of travel'))) = 1))) = 1))) = 0; WR3: SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'removal boundary occurrence') AND (SIZEOF( QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('INTEGRATED_CNC_SCHEMA.LINEAR_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr.name = 'removal boundary'))) = 1))) = 1))) = 0; WR4: SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'enclosed boundary occurrence') AND (SIZEOF( QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.CIRCULAR_CLOSED_PROFILE', 'INTEGRATED_CNC_SCHEMA.NGON_CLOSED_PROFILE', 'INTEGRATED_CNC_SCHEMA.RECTANGULAR_CLOSED_PROFILE', 'INTEGRATED_CNC_SCHEMA.CLOSED_PATH_PROFILE' ] * TYPEOF(sdr. relating_shape_aspect)) = 1) AND (sdr.relating_shape_aspect. description = 'boundary'))) = 1))) <= 1))) = 0; WR5: SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF) | ('INTEGRATED_CNC_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation .name = 'maximum feature limit'))) >= 0; WR6: SIZEOF(QUERY (pds <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds)) AND (SIZEOF(QUERY (csa <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (( 'INTEGRATED_CNC_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa) ) AND (csa.name = 'uncut volume')) AND (SIZEOF(QUERY (sar <* csa.component_relationships| ( 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.BOSS', 'INTEGRATED_CNC_SCHEMA.PROTRUSION' ] * TYPEOF(sar. related_shape_aspect)) = 1))) = 1))) <= 1))) = 1; WR7: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'removal depth'))) <= 1))) = 0))) = 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY flatness_tolerance SUBTYPE OF (geometric_tolerance); WHERE WR1: NOT ('INTEGRATED_CNC_SCHEMA.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF(SELF)); END_ENTITY; -- 10303-519: aic_geometric_tolerances ENTITY founded_item; DERIVE users : SET [0:?] OF founded_item_select := using_items(SELF, []); WHERE WR1: SIZEOF(users) > 0; WR2: NOT (SELF IN users); END_ENTITY; -- 10303-43: representation_schema ENTITY freeform_milling_operation SUBTYPE OF (milling_type_operation); WHERE WR1: ((verify_optional_relating_amr_with_name (SELF, 'machining', ['INTEGRATED_CNC_SCHEMA.MACHINING_STRATEGY_RELATIONSHIP'])) AND (verify_related_type_for_amr_with_name (SELF, 'machining', ['INTEGRATED_CNC_SCHEMA.MACHINING_STRATEGY_RELATIONSHIP'], ['INTEGRATED_CNC_SCHEMA.FREEFORM_MILLING_STRATEGY'])) ); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY freeform_milling_strategy SUBTYPE OF (milling_type_strategy); WHERE WR1: NOT (SELF.description IN ['leading line', 'plane cutter contact', 'plane cutter location', 'uv']) OR ((verify_required_action_property (SELF, 'pathmode')) AND (verify_enumeration_action_property (SELF, 'pathmode', ['forward', 'zigzag'])) AND (verify_required_action_property (SELF, 'cutmode')) AND (verify_enumeration_action_property (SELF, 'cutmode', ['climb', 'conventional'])) AND (verify_required_action_property (SELF, 'milling tolerances')) AND (verify_rep_type_for_action_property (SELF, 'milling tolerances', ['INTEGRATED_CNC_SCHEMA.FREEFORM_MILLING_TOLERANCE_REPRESENTATION'])) AND (verify_optional_action_property (SELF, 'stepover length')) AND (verify_length_measure_action_property (SELF, 'stepover length')) ); WR2: NOT (SELF.description = 'leading line') OR ((verify_required_action_property (SELF, 'leading line')) AND (verify_rep_item_for_action_property (SELF, 'leading line', ['INTEGRATED_CNC_SCHEMA.BOUNDED_CURVE'])) ); WR3: NOT (SELF.description IN ['plane cutter contact', 'plane cutter location']) OR ((verify_required_action_property (SELF, 'plane normal')) AND (verify_rep_item_for_action_property (SELF, 'plane normal', ['INTEGRATED_CNC_SCHEMA.DIRECTION'])) ); WR4: NOT (SELF.description = 'uv') OR ((verify_required_action_property (SELF, 'forward direction')) AND (verify_rep_item_for_action_property (SELF, 'forward direction', ['INTEGRATED_CNC_SCHEMA.DIRECTION'])) AND (verify_required_action_property (SELF, 'sideward direction')) AND (verify_rep_item_for_action_property (SELF, 'sideward direction', ['INTEGRATED_CNC_SCHEMA.DIRECTION'])) ); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY freeform_milling_tolerance_representation SUBTYPE OF (representation); WHERE WR1: (verify_required_rep_item (SELF, 'chordal tolerance')) AND (verify_length_measure_rep_item (SELF, 'chordal tolerance')); WR2: (verify_required_rep_item (SELF, 'scallop height')) AND (verify_length_measure_rep_item (SELF, 'scallop height')); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY fully_constrained_pair SUBTYPE OF (low_order_kinematic_pair); DERIVE SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_z : BOOLEAN := FALSE; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY functionally_defined_transformation; name : label; description : OPTIONAL text; END_ENTITY; -- 10303-43: representation_schema ENTITY gear SUBTYPE OF (feature_definition); WHERE WR1: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' )| (( 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (10 <= SIZEOF(pdr. used_representation.items))) AND (SIZEOF(pdr. used_representation.items) <= 13))) = 1))) = 1; WR2: NOT (SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', 'helical gear' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' )| ( 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.RATIO_MEASURE_WITH_UNIT' ] * TYPEOF(it )) = 2) AND (it.name = 'number of teeth'))) = 1))) = 0))) = 0 ); WR3: NOT (SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', 'helical gear' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' )| ( 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'reference pressure angle'))) = 1))) = 0))) = 0); WR4: NOT (SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', 'helical gear' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' )| ( 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'rake shift factor'))) = 1))) = 0))) = 0); WR5: NOT (SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', 'helical gear' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' )| ( 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'nominal tooth depth'))) = 1))) = 0) )) = 0); WR6: NOT (SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', 'helical gear' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' )| ( 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'face width'))) = 1))) = 0))) = 0); WR7: NOT (SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', 'helical gear' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' )| ( 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'tip diameter'))) = 1))) = 0))) = 0) ; WR8: NOT (SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', 'helical gear' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' )| ( 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (( 'INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'module or diametral pitch')) AND ((it.description = 'module') OR (it.description = 'diametral pitch')))) = 1))) = 0))) = 0); WR9: NOT (SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', 'helical gear' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' )| ( 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (( 'INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'internal or external gear')) AND ((it.description = 'internal') OR (it.description = 'external')))) = 1))) = 0))) = 0); WR10: NOT (SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', 'helical gear' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' )| ( 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'normal attribute'))) = 1))) = 0))) = 0); WR11: NOT (SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', 'helical gear' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' )| ( 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'root fillet radius'))) <= 1))) = 0) )) = 0); WR12: NOT (SELF\characterized_object.description IN [ 'helix gear', 'helical bevel gear' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' )| ( 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'reference helix angle'))) = 1))) = 0))) = 0); WR13: NOT (SELF\characterized_object.description IN [ 'helix gear', 'helical bevel gear' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' )| ( 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (( 'INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'gear tooth')) AND ((it. description = 'left hand tooth') OR (it.description = 'right hand tooth')))) = 1))) = 0))) = 0); WR14: NOT (SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear' ]) OR (SIZEOF( QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' )| ( 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'tip angle'))) = 1))) = 0))) = 0); WR15: NOT (SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear' ]) OR (SIZEOF( QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' )| ( 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'root angle'))) = 1))) = 0))) = 0); WR16: SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' )| (sar.description = 'applied shape') AND ( 'INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF (sar)))| ('INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sdr. relating_shape_aspect)))) = 1))) = 1))) = 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY gear_pair SUBTYPE OF (low_order_kinematic_pair_with_motion_coupling); radius_first_link : length_measure; radius_second_link : length_measure; bevel : plane_angle_measure; helical_angle : plane_angle_measure; gear_ratio : REAL; WHERE WR1: SIZEOF(QUERY (lr <* SELF\kinematic_pair. associated_link_representations_1| NOT ( 'INTEGRATED_CNC_SCHEMA.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr)))) = 0; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY gear_pair_value SUBTYPE OF (pair_value); SELF\pair_value.applies_to_pair : gear_pair; actual_rotation_1 : plane_angle_measure; DERIVE actual_rotation_2 : plane_angle_measure := -actual_rotation_1 * SELF\ pair_value.applies_to_pair\gear_pair.gear_ratio; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY gear_pair_with_range SUBTYPE OF (gear_pair); lower_limit_actual_rotation_1 : OPTIONAL plane_angle_measure; upper_limit_actual_rotation_1 : OPTIONAL plane_angle_measure; WHERE WR1: (NOT EXISTS(lower_limit_actual_rotation_1) OR NOT EXISTS( upper_limit_actual_rotation_1)) XOR ( lower_limit_actual_rotation_1 < upper_limit_actual_rotation_1 ); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY general_feature SUBTYPE OF (shape_feature_definition); WHERE WR1: (SIZEOF(get_property_definition_representations(SELF)) <= 1) AND ( SIZEOF(QUERY (pdr <* get_property_definition_representations( SELF)| ( 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) <= 1); WR2: SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| (sa.description = 'course of travel occurrence'))) = SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| (sa.description = 'course of travel occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' )| ('INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'course of travel'))) = 1))); WR3: SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| (sa.description = 'course of travel occurrence'))) = SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| (sa.description = 'course of travel occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' )| ('INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND ( 'INTEGRATED_CNC_SCHEMA.PATH_FEATURE_COMPONENT' IN TYPEOF(sar. relating_shape_aspect)))) = 1))); WR4: SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| (sa.description = 'boundary occurrence'))) = SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| (sa.description = 'boundary occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' )| ('INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage'))) = 1))) ; WR5: (SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| ( 'INTEGRATED_CNC_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(sa)) )) <= 1) AND (SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| (( 'INTEGRATED_CNC_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(sa)) AND (sa.name = 'general compound feature')) AND (SIZEOF( QUERY (sar <* USEDIN(sa, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' )| ('INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND ('INTEGRATED_CNC_SCHEMA.INSTANCED_FEATURE' IN TYPEOF(sar.related_shape_aspect)))) >= 2))) <= 1); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY general_property; id : identifier; name : label; description : OPTIONAL text; END_ENTITY; -- 10303-41: product_property_definition_schema ENTITY general_property_association; name : label; description : OPTIONAL text; base_definition : general_property; derived_definition : derived_property_select; WHERE WR1: SIZEOF(USEDIN(derived_definition, 'INTEGRATED_CNC_SCHEMA.' + 'GENERAL_PROPERTY_ASSOCIATION.' + 'DERIVED_DEFINITION')) = 1; WR2: derived_definition.name = base_definition.name; END_ENTITY; -- 10303-41: product_property_definition_schema ENTITY generic_expression ABSTRACT SUPERTYPE OF (ONEOF(simple_generic_expression, unary_generic_expression, binary_generic_expression, multiple_arity_generic_expression)); WHERE WR1: is_acyclic(SELF); END_ENTITY; -- 13584-20: iso13584_generic_expressions_schema ENTITY generic_literal ABSTRACT SUPERTYPE SUBTYPE OF (simple_generic_expression); END_ENTITY; -- 13584-20: iso13584_generic_expressions_schema ENTITY generic_variable ABSTRACT SUPERTYPE SUBTYPE OF (simple_generic_expression); INVERSE interpretation : environment FOR syntactic_representation; END_ENTITY; -- 13584-20: iso13584_generic_expressions_schema ENTITY geometric_alignment SUBTYPE OF (derived_shape_aspect); WHERE WR1: SIZEOF(SELF\derived_shape_aspect.deriving_relationships) > 1; END_ENTITY; -- 10303-47: shape_aspect_definition_schema ENTITY geometric_curve_set SUBTYPE OF (geometric_set); WHERE WR1: SIZEOF(QUERY (temp <* SELF\geometric_set.elements| ( 'INTEGRATED_CNC_SCHEMA.SURFACE' IN TYPEOF(temp)))) = 0; END_ENTITY; -- 10303-42: geometric_model_schema ENTITY geometric_intersection SUBTYPE OF (derived_shape_aspect); WHERE WR1: SIZEOF(SELF\derived_shape_aspect.deriving_relationships) > 1; END_ENTITY; -- 10303-47: shape_aspect_definition_schema ENTITY geometric_item_specific_usage SUBTYPE OF (item_identified_representation_usage); SELF\item_identified_representation_usage.definition : shape_aspect; SELF\item_identified_representation_usage.identified_item : geometric_representation_item; SELF\item_identified_representation_usage.used_representation : shape_representation; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY geometric_representation_context SUBTYPE OF (representation_context); coordinate_space_dimension : dimension_count; END_ENTITY; -- 10303-42: geometry_schema ENTITY geometric_representation_context_with_parameter SUBTYPE OF (geometric_representation_context); parameter_unit : OPTIONAL unit; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY geometric_representation_item SUPERTYPE OF (ONEOF(point, direction, vector, placement, cartesian_transformation_operator, curve, surface, edge_curve, face_surface, poly_loop, vertex_point, solid_model, right_circular_cylinder, block, shell_based_surface_model, face_based_surface_model, shell_based_wireframe_model, edge_based_wireframe_model, geometric_set)) SUBTYPE OF (representation_item); DERIVE dim : dimension_count := dimension_of(SELF); WHERE WR1: SIZEOF(QUERY (using_rep <* using_representations(SELF)| NOT ( 'INTEGRATED_CNC_SCHEMA.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(using_rep.context_of_items)))) = 0; END_ENTITY; -- 10303-42: geometry_schema ENTITY geometric_set SUPERTYPE OF (geometric_curve_set) SUBTYPE OF (geometric_representation_item); elements : SET [1:?] OF geometric_set_select; END_ENTITY; -- 10303-42: geometric_model_schema 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; -- 10303-47: shape_tolerance_schema ENTITY geometric_tolerance_relationship; name : label; description : text; relating_geometric_tolerance : geometric_tolerance; related_geometric_tolerance : geometric_tolerance; END_ENTITY; -- 10303-47: shape_tolerance_schema ENTITY geometric_tolerance_with_datum_reference SUBTYPE OF (geometric_tolerance); datum_system : SET [1:?] OF datum_reference; END_ENTITY; -- 10303-47: shape_tolerance_schema 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; -- 10303-47: shape_tolerance_schema ENTITY geometrical_tolerance_callout SUBTYPE OF (draughting_callout); END_ENTITY; -- 10303-506: aic_draughting_elements ENTITY geometrically_bounded_surface_shape_representation SUBTYPE OF (shape_representation); WHERE WR1: SIZEOF(QUERY (it <* SELF.items| NOT (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.GEOMETRIC_SET', 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM', 'INTEGRATED_CNC_SCHEMA.AXIS2_PLACEMENT_3D' ] * TYPEOF(it)) = 1))) = 0; WR2: SIZEOF(QUERY (it <* SELF.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.GEOMETRIC_SET', 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM' ] * TYPEOF(it)) = 1))) > 0; WR3: SIZEOF(QUERY (mi <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM' IN TYPEOF(it)))| NOT (( 'INTEGRATED_CNC_SCHEMA.' + 'GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION' IN TYPEOF(mi\mapped_item.mapping_source.mapped_representation)) AND (SIZEOF(QUERY (mr_it <* mi\mapped_item.mapping_source. mapped_representation.items| ( 'INTEGRATED_CNC_SCHEMA.GEOMETRIC_SET' IN TYPEOF(mr_it)))) > 0 )))) = 0; WR4: SIZEOF(QUERY (gs <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.GEOMETRIC_SET' IN TYPEOF(it)))| NOT ( SIZEOF(QUERY (pnt <* QUERY (gsel <* gs\geometric_set.elements | ('INTEGRATED_CNC_SCHEMA.POINT' IN TYPEOF(gsel)))| NOT gbsf_check_point(pnt))) = 0))) = 0; WR5: SIZEOF(QUERY (gs <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.GEOMETRIC_SET' IN TYPEOF(it)))| NOT ( SIZEOF(QUERY (cv <* QUERY (gsel <* gs\geometric_set.elements| ('INTEGRATED_CNC_SCHEMA.CURVE' IN TYPEOF(gsel)))| NOT gbsf_check_curve(cv))) = 0))) = 0; WR6: SIZEOF(QUERY (gs <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.GEOMETRIC_SET' IN TYPEOF(it)))| NOT ( SIZEOF(QUERY (sf <* QUERY (gsel <* gs\geometric_set.elements| ('INTEGRATED_CNC_SCHEMA.SURFACE' IN TYPEOF(gsel)))| NOT gbsf_check_surface(sf))) = 0))) = 0; WR7: SIZEOF(QUERY (gs <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.GEOMETRIC_SET' IN TYPEOF(it)))| ( SIZEOF(QUERY (gsel <* gs\geometric_set.elements| ( 'INTEGRATED_CNC_SCHEMA.SURFACE' IN TYPEOF(gsel)))) > 0))) > 0 ; END_ENTITY; -- 10303-507: aic_geometrically_bounded_surface ENTITY geometrically_bounded_wireframe_shape_representation SUBTYPE OF (shape_representation); WHERE WR1: SIZEOF(QUERY (it <* SELF.items| NOT (SIZEOF(TYPEOF(it) * [ 'INTEGRATED_CNC_SCHEMA.GEOMETRIC_CURVE_SET', 'INTEGRATED_CNC_SCHEMA.AXIS2_PLACEMENT_3D', 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM' ]) = 1))) = 0; WR2: SIZEOF(QUERY (it <* SELF.items| (SIZEOF(TYPEOF(it) * [ 'INTEGRATED_CNC_SCHEMA.GEOMETRIC_CURVE_SET', 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM' ]) = 1))) >= 1; WR3: SIZEOF(QUERY (gcs <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.GEOMETRIC_CURVE_SET' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (crv <* QUERY (elem <* gcs\geometric_set. elements| ('INTEGRATED_CNC_SCHEMA.CURVE' IN TYPEOF(elem)))| NOT valid_geometrically_bounded_wf_curve(crv))) = 0))) = 0; WR4: SIZEOF(QUERY (gcs <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.GEOMETRIC_CURVE_SET' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (pnts <* QUERY (elem <* gcs\geometric_set. elements| ('INTEGRATED_CNC_SCHEMA.POINT' IN TYPEOF(elem)))| NOT valid_geometrically_bounded_wf_point(pnts))) = 0))) = 0; WR5: SIZEOF(QUERY (gcs <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.GEOMETRIC_CURVE_SET' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (cnc <* QUERY (elem <* gcs\geometric_set. elements| ('INTEGRATED_CNC_SCHEMA.CONIC' IN TYPEOF(elem)))| NOT ('INTEGRATED_CNC_SCHEMA.AXIS2_PLACEMENT_3D' IN TYPEOF(cnc \conic.position)))) = 0))) = 0; WR6: SIZEOF(QUERY (gcs <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.GEOMETRIC_CURVE_SET' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (pline <* QUERY (elem <* gcs\geometric_set. elements| ('INTEGRATED_CNC_SCHEMA.POLYLINE' IN TYPEOF(elem))) | NOT (SIZEOF(pline\polyline.points) > 2))) = 0))) = 0; WR7: SIZEOF(QUERY (mi <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM' IN TYPEOF(it)))| NOT ( 'INTEGRATED_CNC_SCHEMA.' + 'GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION' IN TYPEOF(mi\mapped_item.mapping_source.mapped_representation))) ) = 0; END_ENTITY; -- 10303-510: aic_geometrically_bounded_wireframe ENTITY global_uncertainty_assigned_context SUBTYPE OF (representation_context); uncertainty : SET [1:?] OF uncertainty_measure_with_unit; END_ENTITY; -- 10303-43: representation_schema ENTITY global_unit_assigned_context SUBTYPE OF (representation_context); units : SET [1:?] OF unit; END_ENTITY; -- 10303-41: measure_schema ENTITY grooving_turning_operation SUBTYPE OF (turning_type_operation); WHERE WR1: (SELF.description IN ['roughing', 'finishing', 'cutting in']); WR2: (verify_optional_action_property (SELF, 'dwell')) AND (verify_rep_type_for_action_property (SELF, 'dwell', ['INTEGRATED_CNC_SCHEMA.MACHINING_DWELL_TIME_REPRESENTATION'])); WR3: (verify_optional_action_property (SELF, 'allowance')) AND (verify_length_measure_action_property (SELF, 'allowance')); -- allowance propery required for roughing WR4: NOT (SELF.description = 'roughing') OR (verify_required_action_property (SELF, 'allowance')); -- allowance propery forbidden for cutting in WR5: NOT (SELF.description = 'cutting in') OR (0 = SIZEOF (get_action_property (SELF, 'allowance'))); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY group; name : label; description : OPTIONAL text; DERIVE id : identifier := get_id_value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; END_ENTITY; -- 10303-41: group_schema ENTITY group_assignment ABSTRACT SUPERTYPE; assigned_group : group; DERIVE role : object_role := get_role(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY; -- 10303-41: management_resources_schema ENTITY group_relationship; name : label; description : OPTIONAL text; relating_group : group; related_group : group; END_ENTITY; -- 10303-41: group_schema ENTITY hidden_element_over_riding_styled_item SUBTYPE OF (context_dependent_over_riding_styled_item); WHERE WR1: SIZEOF(SELF.style_context) = 1; WR2: 'INTEGRATED_CNC_SCHEMA.' + 'PRESENTATION_VIEW' IN TYPEOF(SELF. style_context[1]); WR3: 'INTEGRATED_CNC_SCHEMA.' + 'CAMERA_IMAGE' IN TYPEOF(SELF.item); WR4: 'INTEGRATED_CNC_SCHEMA.' + 'CAMERA_MODEL_D3_WITH_HLHSR' IN TYPEOF( SELF.item\mapped_item.mapping_source.mapping_origin); WR5: SIZEOF(QUERY (rep <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.REPRESENTATION.ITEMS')| ( 'INTEGRATED_CNC_SCHEMA.' + 'PRESENTATION_VIEW' IN TYPEOF(rep) ))) > 0; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY high_order_kinematic_pair ABSTRACT SUPERTYPE OF (ONEOF(linear_flexible_and_planar_curve_pair, point_on_surface_pair, point_on_planar_curve_pair, planar_curve_pair, surface_pair)) SUBTYPE OF (kinematic_pair); WHERE WR1: SIZEOF(QUERY (lr <* SELF\kinematic_pair. associated_link_representations_2| NOT ( 'INTEGRATED_CNC_SCHEMA.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr)))) = 0; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY hole_bottom SUBTYPE OF (shape_aspect); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape.definition); WR2: SELF.description IN [ 'through', 'flat', 'flat with radius', 'flat with taper', 'spherical', 'conical' ]; WR3: NOT (SELF.description = 'through') OR (SIZEOF(QUERY (pd <* USEDIN( SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) = 0))) = 0) ; WR4: NOT (SELF.description IN [ 'flat with radius', 'flat with taper', 'spherical', 'conical' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF , 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))) = 1))) = 0); WR5: NOT (SELF.description = 'flat') OR (SIZEOF(QUERY (pd <* USEDIN( SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(impl_rep. used_representation.items) = 0))) = 0))) = 0); WR6: NOT (SELF.description IN [ 'flat with radius', 'spherical' ]) OR ( SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(impl_rep. used_representation.items) = 1))) = 0))) = 0); WR7: NOT (SELF.description = 'flat with taper') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(impl_rep. used_representation.items) = 2))) = 0))) = 0); WR8: NOT (SELF.description = 'conical') OR (SIZEOF(QUERY (pd <* USEDIN( SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(impl_rep. used_representation.items) >= 1) AND (SIZEOF(impl_rep. used_representation.items) <= 2))) = 0))) = 0); WR9: (SELF.description = 'through') OR (SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT')| (sar.description = 'hole bottom usage') AND ( 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| (fcr.name IN [ 'hole depth start', 'hole depth end' ]))) >= 1); WR10: NOT (SELF.description = 'flat with radius') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'corner radius'))) = 1))) = 0))) = 0 ); WR11: NOT (SELF.description = 'spherical') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'radius'))) = 1))) = 0))) = 0); WR12: NOT (SELF.description = 'conical') OR (SIZEOF(QUERY (pd <* USEDIN (SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION' )| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'tip radius'))) <= 1))) = 0))) = 0); WR13: NOT (SELF.description = 'conical') OR (SIZEOF(QUERY (pd <* USEDIN (SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION' )| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'tip angle'))) = 1))) = 0))) = 0); WR14: SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT')| (sar.description = 'hole bottom usage') AND ( 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| ((fcr.related_shape_aspect.description = 'bottom condition occurrence') AND ( 'INTEGRATED_CNC_SCHEMA.ROUND_HOLE' IN TYPEOF(fcr. related_shape_aspect.of_shape.definition))) AND ( 'INTEGRATED_CNC_SCHEMA.HOLE_BOTTOM' IN TYPEOF(fcr. relating_shape_aspect)))) >= 1; WR15: NOT (SELF.description = 'flat with taper') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'final diameter'))) = 1))) = 0))) = 0); WR16: NOT (SELF.description = 'flat with taper') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'taper diameter'))) = 1))) = 0))) = 0); END_ENTITY; -- 10303-522: aic_machining_feature ENTITY homokinetic_pair SUBTYPE OF (universal_pair); WHERE WR1: NOT EXISTS(SELF.input_skew_angle); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY hyperbola SUBTYPE OF (conic); semi_axis : positive_length_measure; semi_imag_axis : positive_length_measure; END_ENTITY; -- 10303-42: geometry_schema ENTITY id_attribute; attribute_value : identifier; identified_item : id_attribute_select; END_ENTITY; -- 10303-41: basic_attribute_schema ENTITY identification_assignment ABSTRACT SUPERTYPE; assigned_id : identifier; role : identification_role; END_ENTITY; -- 10303-41: management_resources_schema ENTITY identification_role; name : label; description : OPTIONAL text; END_ENTITY; -- 10303-41: management_resources_schema ENTITY instanced_feature SUBTYPE OF (feature_definition, shape_aspect); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION' IN TYPEOF(SELF.of_shape .definition); WR2: SELF.product_definitional; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY int_literal SUBTYPE OF (literal_number); SELF\literal_number.the_value : INTEGER; END_ENTITY; -- 13584-20: iso13584_expressions_schema ENTITY int_numeric_variable SUBTYPE OF (numeric_variable); END_ENTITY; -- 13584-20: iso13584_expressions_schema ENTITY interpolated_configuration_representation SUBTYPE OF (representation); SELF\representation.context_of_items : geometric_representation_context_with_parameter; SELF\representation.items : SET [1:?] OF interpolated_configuration_sequence; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY interpolated_configuration_segment SUBTYPE OF (founded_item); state : mechanism_state_representation; t_parameter : parameter_value; interpolation : interpolation_type; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY interpolated_configuration_sequence SUBTYPE OF (representation_item); segments : LIST [2:?] OF interpolated_configuration_segment; DERIVE n_segments : INTEGER := SIZEOF(segments); closed_interpolation : LOGICAL := segments[n_segments].interpolation <> discontinuous_interpolation_type; configured_mechanism : mechanism_representation := segments[1].state. represented_mechanism; WHERE WR1: SIZEOF(QUERY (ics <* segments| (ics.state.represented_mechanism :<>: configured_mechanism))) = 0; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY intersection_curve SUBTYPE OF (surface_curve); WHERE WR1: SIZEOF(SELF\surface_curve.associated_geometry) = 2; WR2: associated_surface(SELF\surface_curve.associated_geometry[1]) <> associated_surface(SELF\surface_curve.associated_geometry[2]) ; END_ENTITY; -- 10303-42: geometry_schema ENTITY invisibility; invisible_items : SET [1:?] OF invisible_item; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY item_defined_transformation; name : label; description : OPTIONAL text; transform_item_1 : representation_item; transform_item_2 : representation_item; END_ENTITY; -- 10303-43: representation_schema ENTITY item_identified_representation_usage; name : label; description : OPTIONAL text; definition : represented_definition; used_representation : representation; identified_item : representation_item; WHERE WR1: SELF.used_representation IN using_representations(SELF. identified_item); END_ENTITY; -- 10303-41: product_property_representation_schema ENTITY item_link_motion_relationship SUBTYPE OF (link_motion_relationship); SELF\representation_relationship.rep_1 : shape_representation; item : geometric_representation_item; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY kinematic_analysis_consistency; control : kinematic_control; result : kinematic_analysis_result; WHERE WR1: control.controlled_mechanism :=: result.analysed_mechanism; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY kinematic_analysis_result; analysed_mechanism : mechanism_representation; result : kinematic_result; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY kinematic_control; controlled_mechanism : mechanism_representation; contained_kinematic_programs : kinematic_analysis_definition; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY kinematic_joint SUBTYPE OF (edge); SELF\edge.edge_start : kinematic_link; SELF\edge.edge_end : kinematic_link; UNIQUE UR1: edge_start, edge_end; WHERE WR1: edge_start :<>: edge_end; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY kinematic_link SUBTYPE OF (vertex); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY kinematic_link_representation ABSTRACT SUPERTYPE OF (ONEOF(linear_flexible_link_representation, rigid_link_representation)) SUBTYPE OF (representation); SELF\representation.context_of_items : geometric_representation_context ; SELF\representation.items : SET [1:?] OF kinematic_link_representation_items; represented_link : kinematic_link; INVERSE associated_shape_representation : SET [0:1] OF kinematic_link_representation_association FOR rep_1; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY kinematic_link_representation_association SUBTYPE OF (representation_relationship); SELF\representation_relationship.rep_1 : kinematic_link_representation; SELF\representation_relationship.rep_2 : shape_representation; WHERE WR1: (SELF\representation_relationship.rep_2.context_of_items :=: SELF\ representation_relationship.rep_1.context_of_items) OR ( 'INTEGRATED_CNC_SCHEMA.REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION' IN TYPEOF(SELF)); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY kinematic_loop SUBTYPE OF (edge_loop); SELF\path.edge_list : LIST [1:?] OF UNIQUE oriented_joint; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY kinematic_pair ABSTRACT SUPERTYPE OF (ONEOF(high_order_kinematic_pair, low_order_kinematic_pair_with_motion_coupling, low_order_kinematic_pair) ANDOR actuated_kinematic_pair) SUBTYPE OF (geometric_representation_item, item_defined_transformation); joint : kinematic_joint; SELF\item_defined_transformation.transform_item_1 : rigid_placement; SELF\item_defined_transformation.transform_item_2 : rigid_placement; DERIVE associated_link_representations_1 : SET [1:?] OF kinematic_link_representation := sort_link_associations( link_representation_associations , TRUE); associated_link_representations_2 : SET [1:?] OF kinematic_link_representation := sort_link_associations( link_representation_associations , FALSE); SELF\item_defined_transformation.name : label := SELF\ representation_item.name; INVERSE link_representation_associations : SET [1:?] OF pair_representation_relationship FOR transformation_operator; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY kinematic_path ABSTRACT SUPERTYPE OF (ONEOF(kinematic_path_defined_by_nodes, kinematic_path_defined_by_curves)) SUBTYPE OF (geometric_representation_item); segments : LIST [1:?] OF kinematic_path_segment; t_start : parameter_value; DERIVE n_segments : INTEGER := SIZEOF(segments); closed_path : LOGICAL := segments[n_segments].transition <> discontinuous; WHERE WR1: SIZEOF(QUERY (using_rep <* using_representations(SELF)| NOT ( 'INTEGRATED_CNC_SCHEMA.GEOMETRIC_REPRESENTATION_CONTEXT_WITH_PARAMETER' IN TYPEOF(using_rep.context_of_items)))) = 0; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY kinematic_path_defined_by_curves SUBTYPE OF (kinematic_path); SELF\kinematic_path.segments : LIST [1:?] OF curve_based_path_with_orientation; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY kinematic_path_defined_by_nodes SUBTYPE OF (kinematic_path); SELF\kinematic_path.segments : LIST [1:?] OF path_node; placement_start : placement; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY kinematic_path_segment ABSTRACT SUPERTYPE OF (ONEOF(path_node, curve_based_path_with_orientation )) SUBTYPE OF (founded_item); t_end : parameter_value; transition : transition_code; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY kinematic_property_definition_representation ABSTRACT SUPERTYPE OF (ONEOF(kinematic_property_topology_representation, kinematic_property_mechanism_representation)) SUBTYPE OF (property_definition_representation); SELF\property_definition_representation.definition : product_definition_kinematics; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY kinematic_property_mechanism_representation SUBTYPE OF (kinematic_property_definition_representation); SELF\property_definition_representation.used_representation : mechanism_representation; base : kinematic_link_representation; WHERE WR1: SIZEOF(QUERY (i <* used_representation.items| (base :=: i\ representation_relationship.rep_1) OR (base :=: i\ representation_relationship.rep_2))) > 0; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY kinematic_property_topology_representation SUBTYPE OF (kinematic_property_definition_representation); SELF\property_definition_representation.used_representation : kinematic_topology_representation_select; base : kinematic_link; WHERE WR1: used_representation IN using_representations(base); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY kinematic_topology_directed_structure SUBTYPE OF (representation); SELF\representation.items : SET [1:?] OF oriented_joint; parent : kinematic_topology_structure; WHERE WR1: context_of_items :=: parent.context_of_items; WR2: get_kinematic_joints_from_oriented_joints(items) <= parent.items; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY kinematic_topology_network_structure SUBTYPE OF (representation); SELF\representation.items : SET [1:?] OF kinematic_loop; parent : kinematic_topology_structure; WHERE WR1: context_of_items :=: parent.context_of_items; WR2: get_kinematic_joints_from_kinematic_loops(items) <= parent.items; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY kinematic_topology_structure SUBTYPE OF (representation); SELF\representation.items : SET [1:?] OF kinematic_joint; WHERE WR1: SIZEOF(QUERY (item <* items| ( 'INTEGRATED_CNC_SCHEMA.ORIENTED_EDGE' IN TYPEOF(item)))) = 0; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY kinematic_topology_substructure SUBTYPE OF (kinematic_topology_structure); parent : kinematic_topology_structure; WHERE WR1: context_of_items :=: parent.context_of_items; WR2: SELF\kinematic_topology_structure.items <= parent\ kinematic_topology_structure.items; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY kinematic_topology_tree_structure SUBTYPE OF (kinematic_topology_directed_structure); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY known_source SUBTYPE OF (external_source, pre_defined_item); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY knurling_turning_operation SUBTYPE OF (turning_type_operation); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY leader_curve SUBTYPE OF (annotation_curve_occurrence); WHERE WR1: SIZEOF(QUERY (ldc <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_CALLOUT.CONTENTS')| ('INTEGRATED_CNC_SCHEMA.' + 'LEADER_DIRECTED_CALLOUT' IN TYPEOF(ldc)))) >= 1; END_ENTITY; -- 10303-101: draughting_element_schema ENTITY leader_directed_callout SUBTYPE OF (draughting_callout); WHERE WR1: SIZEOF(QUERY (l_1 <* SELF\draughting_callout.contents| ( 'INTEGRATED_CNC_SCHEMA.LEADER_CURVE' IN TYPEOF(l_1)))) >= 1; WR2: SIZEOF(SELF\draughting_callout.contents) >= 2; END_ENTITY; -- 10303-101: draughting_element_schema ENTITY leader_directed_dimension SUBTYPE OF (leader_directed_callout); WHERE WR1: SIZEOF(QUERY (con <* SELF.contents| ( 'INTEGRATED_CNC_SCHEMA.LEADER_CURVE' IN TYPEOF(con)))) = 1; END_ENTITY; -- 10303-506: aic_draughting_elements ENTITY leader_terminator SUBTYPE OF (terminator_symbol); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.LEADER_CURVE' IN TYPEOF(SELF\ terminator_symbol.annotated_curve); END_ENTITY; -- 10303-101: draughting_element_schema ENTITY length_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.LENGTH_UNIT' IN TYPEOF(SELF\ measure_with_unit.unit_component); END_ENTITY; -- 10303-41: measure_schema ENTITY length_unit SUBTYPE OF (named_unit); WHERE WR1: ((((((SELF\named_unit.dimensions.length_exponent = 1.0) AND (SELF\ named_unit.dimensions.mass_exponent = 0.0)) AND (SELF\ named_unit.dimensions.time_exponent = 0.0)) AND (SELF\ named_unit.dimensions.electric_current_exponent = 0.0)) AND ( SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0)) AND (SELF\named_unit.dimensions. amount_of_substance_exponent = 0.0)) AND (SELF\named_unit. dimensions.luminous_intensity_exponent = 0.0); END_ENTITY; -- 10303-41: measure_schema ENTITY light_source SUPERTYPE OF (ONEOF(light_source_ambient, light_source_directional, light_source_positional, light_source_spot)) SUBTYPE OF (geometric_representation_item); light_colour : colour; WHERE WR1: SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'STYLED_ITEM.ITEM') ) = 0; END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY light_source_ambient SUBTYPE OF (light_source); END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY light_source_directional SUBTYPE OF (light_source); orientation : direction; END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY light_source_positional SUBTYPE OF (light_source); position : cartesian_point; constant_attenuation : REAL; distance_attenuation : REAL; END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY light_source_spot SUBTYPE OF (light_source); position : cartesian_point; orientation : direction; concentration_exponent : REAL; constant_attenuation : REAL; distance_attenuation : REAL; spread_angle : positive_plane_angle_measure; END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY limits_and_fits; form_variance : label; zone_variance : label; grade : label; source : text; END_ENTITY; -- 10303-47: shape_tolerance_schema ENTITY line SUBTYPE OF (curve); pnt : cartesian_point; dir : vector; WHERE WR1: dir.dim = pnt.dim; END_ENTITY; -- 10303-42: geometry_schema ENTITY line_profile_tolerance SUBTYPE OF (geometric_tolerance); WHERE WR1: NOT ('INTEGRATED_CNC_SCHEMA.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF(SELF)) OR (SIZEOF(SELF\geometric_tolerance_with_datum_reference. datum_system) <= 3); WR2: SIZEOF(QUERY (sar <* USEDIN(SELF\geometric_tolerance. toleranced_shape_aspect, 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')| (sar.name IN [ 'affected plane association', 'resulting intersection curve association' ]))) = 1; END_ENTITY; -- 10303-519: aic_geometric_tolerances ENTITY linear_dimension SUBTYPE OF (dimension_curve_directed_callout); END_ENTITY; -- 10303-506: aic_draughting_elements ENTITY linear_flexible_and_pinion_pair SUBTYPE OF (low_order_kinematic_pair_with_motion_coupling); pinion_radius : length_measure; WHERE WR1: SIZEOF(QUERY (lr <* SELF\kinematic_pair. associated_link_representations_1| NOT ( 'INTEGRATED_CNC_SCHEMA.LINEAR_FLEXIBLE_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY linear_flexible_and_planar_curve_pair SUBTYPE OF (high_order_kinematic_pair); pair_curve : curve; orientation : BOOLEAN; WHERE WR1: SIZEOF(QUERY (r <* SELF\kinematic_pair. associated_link_representations_1| NOT (pair_curve IN r.items ))) = 0; WR2: SIZEOF(QUERY (lr <* SELF\kinematic_pair. associated_link_representations_1| NOT ( 'INTEGRATED_CNC_SCHEMA.LINEAR_FLEXIBLE_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY linear_flexible_link_representation SUBTYPE OF (kinematic_link_representation); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY linear_path SUBTYPE OF (path_node); DERIVE SELF\kinematic_path_segment.transition : transition_code := continuous; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY linear_profile SUBTYPE OF (shape_aspect); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape.definition); WR2: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))) = 1))) = 0; WR3: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(impl_rep. used_representation.items) = 2))) = 0))) = 0; WR4: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| ('INTEGRATED_CNC_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0; WR5: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'profile length'))) = 1))) = 0))) = 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY link_motion_relationship SUBTYPE OF (definitional_representation_relationship, representation_relationship_with_transformation); SELF\representation_relationship.rep_1 : link_or_shape_representation; SELF\representation_relationship.rep_2 : link_motion_representation_along_path; SELF\representation_relationship_with_transformation. transformation_operator : link_motion_transformation; WHERE WR1: transformation_operator\item_defined_transformation. transform_item_1 IN rep_1.items; WR2: transformation_operator\item_defined_transformation. transform_item_2 IN rep_2.items; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY link_motion_representation_along_path SUBTYPE OF (representation); SELF\representation.items : SET [1:?] OF kinematic_path; SELF\representation.context_of_items : geometric_representation_context_with_parameter; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY link_motion_transformation SUBTYPE OF (item_defined_transformation); SELF\item_defined_transformation.transform_item_1 : rigid_placement; SELF\item_defined_transformation.transform_item_2 : kinematic_path; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY literal_number ABSTRACT SUPERTYPE OF (ONEOF(int_literal, real_literal)) SUBTYPE OF (simple_numeric_expression, generic_literal); the_value : NUMBER; END_ENTITY; -- 13584-20: iso13584_expressions_schema ENTITY local_time; hour_component : hour_in_day; minute_component : OPTIONAL minute_in_hour; second_component : OPTIONAL second_in_minute; zone : coordinated_universal_time_offset; WHERE WR1: valid_time(SELF); END_ENTITY; -- 10303-41: date_time_schema ENTITY location_shape_representation SUBTYPE OF (shape_representation); WHERE WR1: SIZEOF(SELF.items) = 1; WR2: SIZEOF(QUERY (it <* SELF.items| NOT ('INTEGRATED_CNC_SCHEMA.POINT' IN TYPEOF(it)))) = 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY loop SUPERTYPE OF (ONEOF(vertex_loop, edge_loop, poly_loop)) SUBTYPE OF (topological_representation_item); END_ENTITY; -- 10303-42: topology_schema ENTITY low_order_kinematic_pair SUPERTYPE OF (ONEOF(revolute_pair, cylindrical_pair, spherical_pair, spherical_pair_with_pin, planar_pair, unconstrained_pair, fully_constrained_pair, prismatic_pair, universal_pair, low_order_kinematic_pair_with_range)) SUBTYPE OF (kinematic_pair); t_x : BOOLEAN; t_y : BOOLEAN; t_z : BOOLEAN; r_x : BOOLEAN; r_y : BOOLEAN; r_z : BOOLEAN; WHERE WR1: SIZEOF(QUERY (lr <* SELF\kinematic_pair. associated_link_representations_1| NOT ( 'INTEGRATED_CNC_SCHEMA.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr)))) = 0; WR2: SIZEOF(QUERY (lr <* SELF\kinematic_pair. associated_link_representations_2| NOT ( 'INTEGRATED_CNC_SCHEMA.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr)))) = 0; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY low_order_kinematic_pair_value SUBTYPE OF (pair_value); SELF\pair_value.applies_to_pair : low_order_kinematic_pair; actual_translation_x : length_measure; actual_translation_y : length_measure; actual_translation_z : length_measure; actual_rotation_x : plane_angle_measure; actual_rotation_y : plane_angle_measure; actual_rotation_z : plane_angle_measure; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY low_order_kinematic_pair_with_motion_coupling ABSTRACT SUPERTYPE OF (ONEOF(gear_pair, linear_flexible_and_pinion_pair, rack_and_pinion_pair, screw_pair)) SUBTYPE OF (kinematic_pair); WHERE WR1: SIZEOF(QUERY (lr <* SELF\kinematic_pair. associated_link_representations_2| NOT ( 'INTEGRATED_CNC_SCHEMA.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr)))) = 0; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY low_order_kinematic_pair_with_range SUBTYPE OF (low_order_kinematic_pair); lower_limit_actual_rotation_x : OPTIONAL plane_angle_measure; upper_limit_actual_rotation_x : OPTIONAL plane_angle_measure; lower_limit_actual_rotation_y : OPTIONAL plane_angle_measure; upper_limit_actual_rotation_y : OPTIONAL plane_angle_measure; lower_limit_actual_rotation_z : OPTIONAL plane_angle_measure; upper_limit_actual_rotation_z : OPTIONAL plane_angle_measure; lower_limit_actual_translation_x : OPTIONAL length_measure; upper_limit_actual_translation_x : OPTIONAL length_measure; lower_limit_actual_translation_y : OPTIONAL length_measure; upper_limit_actual_translation_y : OPTIONAL length_measure; lower_limit_actual_translation_z : OPTIONAL length_measure; upper_limit_actual_translation_z : OPTIONAL length_measure; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_adaptive_control_relationship SUBTYPE OF (action_method_relationship); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_approach_retract_strategy SUBTYPE OF (machining_strategy); WHERE WR1: (SELF.description IN ['along path', 'approach retract angle', 'approach retract tangent', 'plunge helix', 'plunge ramp', 'plunge toolaxis', 'plunge zigzag']); WR2: (verify_optional_action_property (SELF, 'tool orientation')) AND (verify_rep_item_for_action_property (SELF, 'tool orientation', ['INTEGRATED_CNC_SCHEMA.DIRECTION'])); WR3: NOT (SELF.description = 'along path') OR ((1 <= get_count_of_relating_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_TOOLPATH_SEQUENCE_RELATIONSHIP'])) AND (verify_related_type_for_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_TOOLPATH_SEQUENCE_RELATIONSHIP'], ['INTEGRATED_CNC_SCHEMA.MACHINING_TOOLPATH'])) ); WR4: NOT (SELF.description = 'approach retract angle') OR ((verify_required_action_property (SELF, 'travel angle')) AND (verify_angle_measure_action_property (SELF, 'travel angle')) AND (verify_required_action_property (SELF, 'travel length')) AND (verify_length_measure_action_property (SELF, 'travel length'))); WR5: NOT (SELF.description = 'approach retract tangent') OR ((verify_required_action_property (SELF, 'travel radius')) AND (verify_length_measure_action_property (SELF, 'travel radius'))); WR6: NOT (SELF.description IN ['plunge helix', 'plunge ramp', 'plunge zigzag']) OR ((verify_required_action_property (SELF, 'plunge angle')) AND (verify_angle_measure_action_property (SELF, 'plunge angle'))); WR7: NOT (SELF.description = 'plunge helix') OR ((verify_required_action_property (SELF, 'plunge radius')) AND (verify_length_measure_action_property (SELF, 'plunge radius'))); WR8: NOT (SELF.description = 'plunge zigzag') OR ((verify_required_action_property (SELF, 'plunge width')) AND (verify_length_measure_action_property (SELF, 'plunge width'))); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_compensation_definition SUBTYPE OF (action_method); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_compensation_definition_relationship SUBTYPE OF (action_method_relationship); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_compensation_error_control SUBTYPE OF (action_method); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_compensation_error_control_relationship SUBTYPE OF (action_method_relationship); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_compensation_stage SUBTYPE OF (action_method); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_compensation_stage_relationship SUBTYPE OF (action_method_relationship); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_compensation_test_cut SUBTYPE OF (action_method); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_compensation_test_cut_relationship SUBTYPE OF (action_method_relationship); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_cutting_component SUBTYPE OF (action_resource,characterized_object); WHERE WR1: (1 >= SIZEOF (USEDIN (SELF, 'INTEGRATED_CNC_SCHEMA.' + 'MATERIAL_DESIGNATION.DEFINITIONS'))); WR2: (1 >= SIZEOF (QUERY (arr <* USEDIN (SELF, 'INTEGRATED_CNC_SCHEMA.REQUIREMENT_FOR_ACTION_RESOURCE.RESOURCES') | (arr.kind.name = 'cutting component') AND (0 < SIZEOF (QUERY (mt <* arr.operations | 'INTEGRATED_CNC_SCHEMA.MACHINING_TECHNOLOGY' IN TYPEOF (mt)))) ))); WR3: (verify_optional_resource_property (SELF, 'expected life')) AND (verify_time_measure_resource_property (SELF, 'expected life')); WR4: NOT (SELF.kind.name = 'milling cutting edge') OR ((verify_required_resource_property (SELF, 'functional length')) AND (verify_length_measure_resource_property (SELF, 'functional length')) ); WR5: NOT (SELF.kind.name = 'turning cutting edge') OR ((verify_optional_resource_property (SELF, 'cutting edge length')) AND (verify_length_measure_resource_property (SELF, 'cutting edge length')) AND (verify_optional_resource_property (SELF, 'cutting edge angle')) AND (verify_angle_measure_resource_property (SELF, 'cutting edge angle')) AND (verify_optional_resource_property (SELF, 'cutting edge angle type')) AND (verify_rep_item_for_resource_property (SELF, 'cutting edge angle type', ['INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM'])) AND (verify_optional_resource_property (SELF, 'tool included angle')) AND (verify_angle_measure_resource_property (SELF, 'tool included angle')) AND (verify_rep_type_for_resource_property (SELF, 'corner transitions', ['INTEGRATED_CNC_SCHEMA.'+ 'MACHINING_CUTTING_CORNER_REPRESENTATION'])) AND (verify_optional_resource_property (SELF, 'maximum side cutting depth')) AND (verify_length_measure_resource_property (SELF, 'maximum side cutting depth')) AND (verify_optional_resource_property (SELF, 'maximum end cutting depth')) AND (verify_length_measure_resource_property (SELF, 'maximum end cutting depth')) ); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_cutting_corner_representation SUBTYPE OF (representation); WHERE WR1: ((verify_required_rep_item (SELF, 'corner identity')) AND (verify_count_measure_rep_item (SELF, 'corner identity')) ); WR2: NOT (SELF.name = 'chamfered corner') OR ((verify_required_rep_item (SELF, 'chamfer angle')) AND (verify_angle_measure_rep_item (SELF, 'chamfer angle')) AND (verify_optional_rep_item (SELF, 'chamfer length')) AND (verify_length_measure_rep_item (SELF, 'chamfer length')) AND (verify_optional_rep_item (SELF, 'chamfer width')) AND (verify_length_measure_rep_item (SELF, 'chamfer width')) ); WR3: NOT (SELF.name = 'rounded corner') OR ((verify_required_rep_item (SELF, 'radius')) AND (verify_length_measure_rep_item (SELF, 'radius')) ); WR4: NOT (SELF.name = 'profiled corner') OR (1 = SIZEOF (QUERY (prep <* USEDIN (SELF, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | (('INTEGRATED_CNC_SCHEMA.LINEAR_PROFILE' IN TYPEOF(prep.definition)) OR ('INTEGRATED_CNC_SCHEMA.OPEN_PATH_PROFILE' IN TYPEOF(prep.definition)) OR ('INTEGRATED_CNC_SCHEMA.PARTIAL_CIRCULAR_PROFILE' IN TYPEOF(prep.definition)) OR ('INTEGRATED_CNC_SCHEMA.ROUNDED_U_PROFILE' IN TYPEOF(prep.definition)) OR ('INTEGRATED_CNC_SCHEMA.SQUARE_U_PROFILE' IN TYPEOF(prep.definition)) OR ('INTEGRATED_CNC_SCHEMA.TEE_PROFILE' IN TYPEOF(prep.definition)) OR ('INTEGRATED_CNC_SCHEMA.VEE_PROFILE' IN TYPEOF(prep.definition))) ))); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_dwell_time_representation SUBTYPE OF (representation); WHERE WR1: (SELF.name IN ['dwell time', 'dwell revolution']); WR2: NOT (SELF.name = 'dwell time') OR ((verify_required_rep_item (SELF, 'dwell time')) AND (verify_time_measure_rep_item (SELF, 'dwell time')) ); WR3: NOT (SELF.name = 'dwell revolution') OR ((verify_required_rep_item (SELF, 'dwell revolution')) AND (verify_count_measure_rep_item (SELF, 'dwell revolution')) ); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_execution_resource SUBTYPE OF (action_resource); WHERE WR1: ((verify_optional_resource_property (SELF, 'feedrate')) AND (verify_rep_type_for_resource_property (SELF, 'feedrate', ['INTEGRATED_CNC_SCHEMA.MACHINING_FEED_SPEED_REPRESENTATION']))); WR2: ((verify_optional_resource_property (SELF, 'spindle')) AND (verify_rep_type_for_resource_property (SELF, 'spindle', ['INTEGRATED_CNC_SCHEMA.MACHINING_SPINDLE_SPEED_REPRESENTATION']))); WR3: ((verify_optional_resource_property (SELF, 'spindle power')) AND (verify_rep_item_for_resource_property (SELF, 'spindle power', ['INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM']))); WR4: ((verify_optional_resource_property (SELF, 'spindle torque')) AND (verify_rep_item_for_resource_property (SELF, 'spindle torque', ['INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM']))); WR5: ((verify_optional_resource_property (SELF, 'number of control axis')) AND (verify_count_measure_resource_property (SELF, 'number of control axis'))); WR6: ((verify_optional_resource_property (SELF, 'number of simultaneous axis')) AND (verify_count_measure_resource_property (SELF, 'number of simultaneous axis'))); WR7: ((verify_optional_resource_property (SELF, 'positioning accuracy')) AND (verify_length_measure_resource_property (SELF, 'positioning accuracy'))); WR8: ((verify_optional_resource_property (SELF, 'table indexing')) AND (verify_enumeration_resource_property (SELF, 'table indexing', ['required', 'not required']))); WR9: ((verify_optional_resource_property (SELF, 'table length')) AND (verify_length_measure_resource_property (SELF, 'table length')) AND (verify_optional_resource_property (SELF, 'table width')) AND (verify_length_measure_resource_property (SELF, 'table width'))); WR10: ((verify_optional_resource_property (SELF, 'axis travel')) AND (0 = SIZEOF (QUERY (prop <* get_resource_property (SELF, 'axis travel') | NOT ((0 < SIZEOF (QUERY (prep <* USEDIN (prop, 'INTEGRATED_CNC_SCHEMA.RESOURCE_PROPERTY_REPRESENTATION.PROPERTY') | (1 <= SIZEOF (QUERY ( it <* prep.representation.items | (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2)))) )))) )))); WR11: ((verify_optional_resource_property (SELF, 'work volume length')) AND (verify_length_measure_resource_property (SELF, 'work volume length')) AND (verify_optional_resource_property (SELF, 'work volume width')) AND (verify_length_measure_resource_property (SELF, 'work volume width')) AND (verify_optional_resource_property (SELF, 'work volume height')) AND (verify_length_measure_resource_property (SELF, 'work volume height')) ); WR12: (0 = SIZEOF (get_action_property (SELF, 'axis travel'))) OR ((0 = SIZEOF (get_action_property (SELF, 'work volume length'))) AND (0 = SIZEOF (get_action_property (SELF, 'work volume width'))) AND (0 = SIZEOF (get_action_property (SELF, 'work volume height')))); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_feature_process SUBTYPE OF (machining_process_executable); WHERE WR1: (1 = SIZEOF (QUERY (act <* USEDIN (SELF, 'INTEGRATED_CNC_SCHEMA.ACTION.CHOSEN_METHOD') | (act.name = 'machining')))) AND (0 = SIZEOF (QUERY (act <* USEDIN (SELF, 'INTEGRATED_CNC_SCHEMA.ACTION.CHOSEN_METHOD') | (act.name = 'machining') AND NOT ('INTEGRATED_CNC_SCHEMA.PROPERTY_PROCESS' IN TYPEOF (act)) ))); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_feature_relationship SUBTYPE OF (action_method_relationship); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_feature_sequence_relationship SUBTYPE OF (machining_feature_relationship, sequential_method); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_feed_speed_representation SUBTYPE OF (representation); WHERE WR1: (SELF.name IN ['feed speed', 'feed per revolution', 'feed per tooth', 'relative speed']); WR2: NOT (SELF.name = 'feed speed') OR ((verify_required_rep_item (SELF, 'feed speed')) AND (verify_linear_speed_measure_rep_item (SELF, 'feed speed')) ); WR3: NOT (SELF.name = 'feed per revolution') OR ((verify_required_rep_item (SELF, 'feed per revolution')) AND (0 = SIZEOF (QUERY ( it <* SELF.items | (it.name = 'feed per revolution') AND NOT ( 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it))))) ); WR4: NOT (SELF.name = 'feed per tooth') OR ((verify_required_rep_item (SELF, 'feed per tooth')) AND (0 = SIZEOF (QUERY ( it <* SELF.items | (it.name = 'feed per tooth') AND NOT ( 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it))))) ); WR5: NOT (SELF.name = 'relative speed') OR ((verify_required_rep_item (SELF, 'relative speed')) AND (verify_ratio_measure_rep_item (SELF, 'relative speed')) ); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_final_feature_relationship SUBTYPE OF (action_method_relationship); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_fixture_usage SUBTYPE OF (action_method); -- WHERE -- add rules for mappings in second pass END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_functions SUBTYPE OF (action_method); WHERE WR1: NOT (SELF.description = 'milling') OR ((verify_required_action_property (SELF, 'coolant')) AND (verify_enumeration_action_property (SELF, 'coolant', ['coolant on', 'coolant off'])) AND (verify_optional_action_property (SELF, 'coolant pressure')) AND (verify_pressure_measure_action_property (SELF, 'coolant pressure')) AND (verify_optional_action_property (SELF, 'mist')) AND (verify_enumeration_action_property (SELF, 'mist', ['mist on', 'mist off'])) AND (verify_optional_action_property (SELF, 'through spindle coolant')) AND (verify_enumeration_action_property (SELF, 'through spindle coolant', ['through spindle coolant on', 'through spindle coolant off'])) AND (verify_optional_action_property (SELF, 'through spindle pressure')) AND (verify_pressure_measure_action_property (SELF, 'through spindle pressure')) AND -- axis constraints property must contain zero or more ranges (0 = SIZEOF (QUERY (prop <* get_action_property (SELF, 'axis constraints') | NOT ((0 < SIZEOF (QUERY (prep <* USEDIN (prop, 'INTEGRATED_CNC_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY') | (0 <= SIZEOF (QUERY (it <* prep.representation.items | ('INTEGRATED_CNC_SCHEMA.VALUE_RANGE' in TYPEOF(it))))) ))))))) ); WR2: NOT (SELF.description = 'turning') OR ((verify_required_action_property (SELF, 'coolant')) AND (verify_enumeration_action_property (SELF, 'coolant', ['coolant on', 'coolant off'])) AND (verify_optional_action_property (SELF, 'coolant type')) AND (verify_enumeration_action_property (SELF, 'coolant type', ['flood', 'mist', 'through tool'])) AND (verify_optional_action_property (SELF, 'coolant pressure')) AND (verify_pressure_measure_action_property (SELF, 'coolant pressure')) AND (verify_optional_action_property (SELF, 'tail stock')) AND (verify_enumeration_action_property (SELF, 'tail stock', ['tail stock used', 'tail stock not used'])) AND (verify_optional_action_property (SELF, 'steady rest')) AND (verify_enumeration_action_property (SELF, 'steady rest', ['steady rest used', 'steady rest not used'])) AND (verify_optional_action_property (SELF, 'follow rest')) AND (verify_enumeration_action_property (SELF, 'follow rest', ['follow rest used', 'follow rest not used'])) ); WR3: NOT (SELF.description IN ['milling', 'turning']) OR ((verify_optional_action_property (SELF, 'axis clamping')) AND (0 = SIZEOF (QUERY (prop <* get_action_property (SELF, 'axis clamping') | NOT (0 < SIZEOF (QUERY (prep <* USEDIN (prop, 'INTEGRATED_CNC_SCHEMA.' + 'ACTION_PROPERTY_REPRESENTATION.PROPERTY') | (1 = SIZEOF (QUERY (it <* prep.representation.items | (('INTEGRATED_CNC_SCHEMA.COMPOUND_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('INTEGRATED_CNC_SCHEMA.LIST_REPRESENTATION_ITEM' IN TYPEOF(it.item_element)) AND (0 = SIZEOF (QUERY (ie <* it.item_element | NOT ('INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(ie)) ))) )))) ))) ))) AND (verify_optional_action_property (SELF, 'chip removal')) AND (verify_enumeration_action_property (SELF, 'chip removal', ['chip removal on', 'chip removal off'])) AND (verify_optional_action_property (SELF, 'oriented spindle stop')) AND (verify_rep_item_for_action_property (SELF, 'oriented spindle stop', ['INTEGRATED_CNC_SCHEMA.DIRECTION'])) AND (verify_related_type_for_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_PROCESS_MODEL_RELATIONSHIP'], ['INTEGRATED_CNC_SCHEMA.MACHINING_PROCESS_MODEL'])) AND (verify_optional_action_property (SELF, 'other functions')) AND (0 = SIZEOF (QUERY (prop <* get_action_property (SELF, 'other functions') | NOT (0 < SIZEOF (QUERY (prep <* USEDIN (prop, 'INTEGRATED_CNC_SCHEMA.' + 'ACTION_PROPERTY_REPRESENTATION.PROPERTY') | (1 = SIZEOF (QUERY (it <* prep.representation.items | (('INTEGRATED_CNC_SCHEMA.COMPOUND_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('INTEGRATED_CNC_SCHEMA.SET_REPRESENTATION_ITEM' IN TYPEOF(it.item_element))) ))) ))) ))) ); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_functions_relationship SUBTYPE OF (action_method_relationship); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_measurement_evaluation SUBTYPE OF (action_method); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_measurement_evaluation_relationship SUBTYPE OF (action_method_relationship); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_measurement_target SUBTYPE OF (action_method); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_measurement_target_relationship SUBTYPE OF (action_method_relationship); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_nc_function SUBTYPE OF (machining_process_executable); WHERE WR1: (SELF.description IN ['display message', 'optional stop', 'program stop', 'set mark', 'wait for mark', 'exchange pallet', 'index pallet', 'index table', 'load tool', 'unload tool', 'legacy function']); WR2: NOT (SELF.description = 'display message') OR ((verify_required_action_property (SELF, 'message text')) AND (verify_descriptive_action_property (SELF, 'message text'))); WR3: NOT (SELF.description = 'wait for mark') OR ((verify_required_action_property (SELF, 'channel'))); WR4: NOT (SELF.description = 'index pallet') OR ((verify_required_action_property (SELF, 'pallet index')) AND (verify_count_measure_action_property (SELF, 'pallet index'))); WR5: NOT (SELF.description = 'index table') OR ((verify_required_action_property (SELF, 'table index')) AND (verify_count_measure_action_property (SELF, 'table index'))); WR6: NOT (SELF.description = 'load tool') OR (1 = SIZEOF (QUERY (mt <* USEDIN (SELF, 'INTEGRATED_CNC_SCHEMA.ACTION_RESOURCE.USAGE') | ('INTEGRATED_CNC_SCHEMA.MACHINING_TOOL' in TYPEOF(mt))))); WR7: NOT (SELF.description = 'unload tool') OR (1 >= SIZEOF (QUERY (mt <* USEDIN (SELF, 'INTEGRATED_CNC_SCHEMA.ACTION_RESOURCE.USAGE') | ('INTEGRATED_CNC_SCHEMA.MACHINING_TOOL' in TYPEOF(mt))))); WR8: NOT (SELF.description = 'legacy function') OR ((verify_required_action_property (SELF, 'function text')) AND (verify_descriptive_action_property (SELF, 'function text'))); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_offset_vector_representation SUBTYPE OF (representation); WHERE WR1: (1 = SIZEOF (QUERY ( it <* SELF.items | (it.name = 'translate')))) AND (0 = SIZEOF (QUERY ( it <* SELF.items | (it.name = 'translate') AND NOT (('INTEGRATED_CNC_SCHEMA.COMPOUND_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('INTEGRATED_CNC_SCHEMA.LIST_REPRESENTATION_ITEM' IN TYPEOF(it.item_element)) AND (SIZEOF(it.item_element) = 3) AND (0 = SIZEOF (QUERY (ie <* it.item_element | NOT (('INTEGRATED_CNC_SCHEMA.EXPRESSION_REPRESENTATION_ITEM' IN TYPEOF(ie)) AND ('INTEGRATED_CNC_SCHEMA.NUMERIC_VARIABLE' IN TYPEOF(ie)))))) ) ))); WR2: (1 >= SIZEOF (QUERY ( it <* SELF.items | (it.name = 'rotate')))) AND (0 = SIZEOF (QUERY ( it <* SELF.items | (it.name = 'rotate') AND NOT (('INTEGRATED_CNC_SCHEMA.COMPOUND_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('INTEGRATED_CNC_SCHEMA.LIST_REPRESENTATION_ITEM' IN TYPEOF(it.item_element)) AND (SIZEOF(it.item_element) = 3) AND (0 = SIZEOF (QUERY (ie <* it.item_element | NOT (('INTEGRATED_CNC_SCHEMA.EXPRESSION_REPRESENTATION_ITEM' IN TYPEOF(ie)) AND ('INTEGRATED_CNC_SCHEMA.NUMERIC_VARIABLE' IN TYPEOF(ie)))))) ) ))); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_operation SUBTYPE OF (action_method); WHERE WR1: ((verify_related_type_for_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_TOOLPATH_SEQUENCE_RELATIONSHIP'], ['INTEGRATED_CNC_SCHEMA.MACHINING_TOOLPATH'])) ); WR2: (verify_optional_action_property (SELF, 'tool direction')) AND (verify_rep_type_for_action_property (SELF, 'tool direction', ['INTEGRATED_CNC_SCHEMA.MACHINING_TOOL_DIRECTION_REPRESENTATION'])); WR3: ('INTEGRATED_CNC_SCHEMA.MACHINING_RAPID_MOVEMENT' IN TYPEOF(SELF)) OR ('INTEGRATED_CNC_SCHEMA.MACHINING_TOUCH_PROBING' IN TYPEOF(SELF)) OR ((verify_optional_action_property (SELF, 'retract plane')) AND (verify_length_measure_action_property (SELF, 'retract plane')) AND (verify_optional_action_property (SELF, 'cut start point')) AND (verify_rep_item_for_action_property (SELF, 'cut start point', ['INTEGRATED_CNC_SCHEMA.CARTESIAN_POINT'])) AND (1 = SIZEOF (QUERY (mt <* USEDIN (SELF, 'INTEGRATED_CNC_SCHEMA.ACTION_RESOURCE.USAGE') | ('INTEGRATED_CNC_SCHEMA.MACHINING_TOOL' in TYPEOF(mt))))) AND (verify_required_relating_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_TECHNOLOGY_RELATIONSHIP'])) AND (verify_related_type_for_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_TECHNOLOGY_RELATIONSHIP'], ['INTEGRATED_CNC_SCHEMA.MACHINING_TECHNOLOGY'])) AND (verify_required_relating_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_FUNCTIONS_RELATIONSHIP'])) AND (verify_related_type_for_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_FUNCTIONS_RELATIONSHIP'], ['INTEGRATED_CNC_SCHEMA.MACHINING_FUNCTIONS'])) ); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_operation_relationship SUBTYPE OF (action_method_relationship); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_operator_instruction SUBTYPE OF (action_method_with_associated_documents); WHERE WR1: EXISTS (self.description) OR (0 < SIZEOF(self.documents)); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_operator_instruction_relationship SUBTYPE OF (sequential_method); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_process_body_relationship SUBTYPE OF (action_method_relationship); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_process_branch_relationship SUBTYPE OF (machining_process_body_relationship); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_process_concurrent_relationship SUBTYPE OF (machining_process_body_relationship, concurrent_action_method); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_process_executable SUBTYPE OF (action_method); WHERE WR1: NOT (0 = SIZEOF (TYPEOF (SELF) * ['INTEGRATED_CNC_SCHEMA.MACHINING_FEATURE_PROCESS', 'INTEGRATED_CNC_SCHEMA.MACHINING_NC_FUNCTION', 'INTEGRATED_CNC_SCHEMA.MACHINING_RAPID_MOVEMENT', 'INTEGRATED_CNC_SCHEMA.MACHINING_TOUCH_PROBING', 'INTEGRATED_CNC_SCHEMA.MACHINING_WORKINGSTEP', 'INTEGRATED_CNC_SCHEMA.MACHINING_WORKPLAN'] )) OR (SELF.description IN ['assignment', 'if statement', 'non-sequential', 'parallel', 'selective', 'while statement', 'setup instructions']); WR2: NOT (SELF.description = 'assignment') OR ((verify_required_action_property (SELF, 'lvalue')) AND (verify_rep_item_for_action_property (SELF, 'lvalue', ['INTEGRATED_CNC_SCHEMA.EXPRESSION_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.NUMERIC_VARIABLE'])) AND (verify_required_action_property (SELF, 'rvalue')) AND (verify_rep_item_for_action_property (SELF, 'rvalue', ['INTEGRATED_CNC_SCHEMA.EXPRESSION_REPRESENTATION_ITEM']))); WR3: NOT (SELF.description = 'if statement') OR ((verify_required_action_property (SELF, 'condition')) AND (verify_rep_item_for_action_property (SELF, 'condition', ['INTEGRATED_CNC_SCHEMA.EXPRESSION_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.BOOLEAN_EXPRESSION'])) AND (verify_required_relating_amr_with_name (SELF, 'true branch', ['INTEGRATED_CNC_SCHEMA.MACHINING_PROCESS_BRANCH_RELATIONSHIP'])) AND (verify_related_type_for_amr_with_name (SELF, 'true branch', ['INTEGRATED_CNC_SCHEMA.MACHINING_PROCESS_BRANCH_RELATIONSHIP'], ['INTEGRATED_CNC_SCHEMA.MACHINING_PROCESS_EXECUTABLE'])) AND (verify_optional_relating_amr_with_name (SELF, 'false branch', ['INTEGRATED_CNC_SCHEMA.MACHINING_PROCESS_BRANCH_RELATIONSHIP'])) AND (verify_related_type_for_amr_with_name (SELF, 'false branch', ['INTEGRATED_CNC_SCHEMA.MACHINING_PROCESS_BRANCH_RELATIONSHIP'], ['INTEGRATED_CNC_SCHEMA.MACHINING_PROCESS_EXECUTABLE'])) ); WR4: NOT (SELF.description = 'while statement') OR ((verify_required_action_property (SELF, 'condition')) AND (verify_rep_item_for_action_property (SELF, 'condition', ['INTEGRATED_CNC_SCHEMA.EXPRESSION_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.BOOLEAN_EXPRESSION'])) AND (verify_required_relating_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_PROCESS_BODY_RELATIONSHIP'])) AND (verify_related_type_for_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_PROCESS_BODY_RELATIONSHIP'], ['INTEGRATED_CNC_SCHEMA.MACHINING_PROCESS_EXECUTABLE'])) ); WR5: NOT (SELF.description = 'parallel') OR ((2 <= get_count_of_relating_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_PROCESS_CONCURRENT_RELATIONSHIP'])) AND (verify_related_type_for_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_PROCESS_CONCURRENT_RELATIONSHIP'], ['INTEGRATED_CNC_SCHEMA.MACHINING_PROCESS_EXECUTABLE'])) ); WR6: NOT (SELF.description = 'non-sequential') OR ((2 <= get_count_of_relating_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_PROCESS_BODY_RELATIONSHIP'])) AND (verify_related_type_for_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_PROCESS_BODY_RELATIONSHIP'], ['INTEGRATED_CNC_SCHEMA.MACHINING_PROCESS_EXECUTABLE'])) ); WR7: NOT (SELF.description = 'selective') OR ((2 <= get_count_of_relating_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_PROCESS_BRANCH_RELATIONSHIP'])) AND (verify_related_type_for_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_PROCESS_BRANCH_RELATIONSHIP'], ['INTEGRATED_CNC_SCHEMA.MACHINING_PROCESS_EXECUTABLE'])) ); WR8: NOT (SELF.description = 'setup instructions') OR ((verify_related_type_for_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_OPERATOR_INSTRUCTION_RELATIONSHIP'], ['INTEGRATED_CNC_SCHEMA.MACHINING_OPERATOR_INSTRUCTION'])) ); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_process_model SUBTYPE OF (action_method); WHERE WR1: (verify_required_action_property (SELF, 'initialization data')) AND (verify_descriptive_action_property (SELF, 'initialization data')); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_process_model_relationship SUBTYPE OF (sequential_method); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_process_sequence_relationship SUBTYPE OF (machining_process_body_relationship, sequential_method); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_project SUBTYPE OF (product); WHERE WR1: (0 = SIZEOF (QUERY (pdf <* USEDIN (SELF, 'INTEGRATED_CNC_SCHEMA.' + 'PRODUCT_DEFINITION_FORMATION.OF_PRODUCT') | NOT -- it has at most one associated owner. (1 >= SIZEOF (QUERY (poa <* USEDIN (pdf, 'INTEGRATED_CNC_SCHEMA.' + 'APPLIED_PERSON_AND_ORGANIZATION_ASSIGNMENT.ITEMS') | (poa.role.name = 'owner')))) ))); WR2: (0 = SIZEOF (QUERY (pdf <* USEDIN (SELF, 'INTEGRATED_CNC_SCHEMA.' + 'PRODUCT_DEFINITION_FORMATION.OF_PRODUCT') | NOT -- it has at most one associated release date. (1 >= SIZEOF (QUERY (dta <* USEDIN (pdf, 'INTEGRATED_CNC_SCHEMA.' + 'APPLIED_DATE_AND_TIME_ASSIGNMENT.ITEMS') | (dta.role.name = 'release date')))) ))); WR3: (0 = SIZEOF (QUERY (pdf <* USEDIN (SELF, 'INTEGRATED_CNC_SCHEMA.' + 'PRODUCT_DEFINITION_FORMATION.OF_PRODUCT') | NOT (0 = SIZEOF (QUERY (pd <* USEDIN (pdf, 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION.FORMATION') | NOT -- it has one associated workplan. (1 = SIZEOF (QUERY (ppa <* USEDIN (pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROCESS_PRODUCT_ASSOCIATION.DEFINED_PRODUCT') | (ppa.process.name = 'machining') AND ('INTEGRATED_CNC_SCHEMA.MACHINING_WORKPLAN' IN TYPEOF (ppa.process.chosen_method))))) ))) ))); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_project_workpiece_relationship SUBTYPE OF (product_definition_relationship); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_rapid_movement SUBTYPE OF (machining_process_executable, machining_operation); WHERE WR1: ((verify_required_action_property (SELF, 'security plane')) AND (verify_rep_item_for_action_property (SELF, 'security plane', ['INTEGRATED_CNC_SCHEMA.ELEMENTARY_SURFACE']))); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_setup SUBTYPE OF (product); WHERE WR1: (0 = SIZEOF (QUERY (pdf <* USEDIN (SELF, 'INTEGRATED_CNC_SCHEMA.' + 'PRODUCT_DEFINITION_FORMATION.OF_PRODUCT') | NOT (0 = SIZEOF (QUERY (pd <* USEDIN (pdf, 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION.FORMATION') | NOT -- it has one associated security plane. (1 = SIZEOF (QUERY (prop <* USEDIN (pd, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (prop.name = 'security plane')))) ))) ))); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_setup_workpiece_relationship SUBTYPE OF (product_definition_relationship); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_spindle_speed_representation SUBTYPE OF (representation); WHERE WR1: (SELF.name IN ['spindle speed', 'cutting speed', 'relative speed']); WR2: NOT (SELF.name = 'spindle speed') OR ((verify_required_rep_item (SELF, 'rotational speed')) AND (verify_rotary_speed_measure_rep_item (SELF, 'rotational speed')) ); WR3: NOT (SELF.name = 'cutting speed') OR ((verify_required_rep_item (SELF, 'surface speed')) AND (verify_linear_speed_measure_rep_item (SELF, 'surface speed')) AND (verify_optional_rep_item (SELF, 'maximum rotational speed')) AND (verify_rotary_speed_measure_rep_item (SELF, 'maximum rotational speed')) ); WR4: NOT (SELF.name = 'relative speed') OR ((verify_required_rep_item (SELF, 'relative speed')) AND (verify_ratio_measure_rep_item (SELF, 'relative speed')) ); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_strategy SUBTYPE OF (action_method); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_strategy_relationship SUBTYPE OF (action_method_relationship); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_technology SUBTYPE OF (action_method); WHERE WR1: (verify_optional_action_property (SELF, 'feedrate')) AND (verify_rep_type_for_action_property (SELF, 'feedrate', ['INTEGRATED_CNC_SCHEMA.MACHINING_FEED_SPEED_REPRESENTATION'])); WR2: (verify_optional_action_property (SELF, 'feedrate reference')) AND (verify_enumeration_action_property (SELF, 'feedrate reference', ['tool center point', 'cutter contact point'])); WR3: NOT (SELF.description = 'milling') OR ((verify_optional_action_property (SELF, 'spindle')) AND (verify_rep_type_for_action_property (SELF, 'spindle', ['INTEGRATED_CNC_SCHEMA.MACHINING_SPINDLE_SPEED_REPRESENTATION'])) AND (verify_optional_action_property (SELF, 'synchronize spindle with feed')) AND (verify_enumeration_action_property (SELF, 'synchronize spindle with feed', ['synchronized', 'not synchronized'])) AND (verify_optional_action_property (SELF, 'inhibit feedrate override')) AND (verify_enumeration_action_property (SELF, 'inhibit feedrate override', ['override allowed', 'override not allowed'])) AND (verify_optional_action_property (SELF, 'inhibit spindle override')) AND (verify_enumeration_action_property (SELF, 'inhibit spindle override', ['override allowed', 'override not allowed'])) AND (verify_optional_relating_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_ADAPTIVE_CONTROL_RELATIONSHIP'])) AND (verify_related_type_for_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_ADAPTIVE_CONTROL_RELATIONSHIP'], ['INTEGRATED_CNC_SCHEMA.MACHINING_TECHNOLOGY'])) ); WR4: NOT (SELF.description = 'milling') OR ((verify_required_relating_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_ADAPTIVE_CONTROL_RELATIONSHIP'])) OR (verify_required_action_property (SELF, 'spindle') AND verify_rep_name_for_action_property (SELF, 'spindle', ['spindle speed', 'cutting speed'])) ); WR5: NOT (SELF.description = 'milling') OR ((verify_required_relating_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_ADAPTIVE_CONTROL_RELATIONSHIP'])) OR (verify_required_action_property (SELF, 'feedrate') AND verify_rep_name_for_action_property (SELF, 'feedrate', ['feed speed', 'feed per tooth'])) ); WR6: NOT (SELF.description = 'turning') OR ((verify_optional_action_property (SELF, 'spindle')) AND (verify_rep_type_for_action_property (SELF, 'spindle', ['INTEGRATED_CNC_SCHEMA.MACHINING_SPINDLE_SPEED_REPRESENTATION'])) AND (verify_rep_name_for_action_property (SELF, 'spindle', ['spindle speed', 'cutting speed'])) AND (verify_rep_name_for_action_property (SELF, 'feedrate', ['feed speed', 'feed per revolution'])) AND (verify_optional_action_property (SELF, 'synchronize spindle with z feed')) AND (verify_enumeration_action_property (SELF, 'synchronize spindle with z feed', ['synchronized', 'not synchronized'])) AND (verify_optional_action_property (SELF, 'inhibit feedrate override')) AND (verify_enumeration_action_property (SELF, 'inhibit feedrate override', ['override allowed', 'override not allowed'])) AND (verify_optional_action_property (SELF, 'inhibit spindle override')) AND (verify_enumeration_action_property (SELF, 'inhibit spindle override', ['override allowed', 'override not allowed'])) AND (verify_optional_relating_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_ADAPTIVE_CONTROL_RELATIONSHIP'])) AND (verify_related_type_for_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_ADAPTIVE_CONTROL_RELATIONSHIP'], ['INTEGRATED_CNC_SCHEMA.MACHINING_TECHNOLOGY'])) ); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_technology_relationship SUBTYPE OF (action_method_relationship); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_tool SUBTYPE OF (action_resource); WHERE WR1: NOT (SELF.kind.name = 'milling cutting tool') OR ((0 <= SIZEOF (QUERY (arr <* USEDIN (SELF, 'INTEGRATED_CNC_SCHEMA.ACTION_RESOURCE_RELATIONSHIP.RELATING_RESOURCE') | (('INTEGRATED_CNC_SCHEMA.MACHINING_CUTTING_COMPONENT' IN TYPEOF (arr.related_resource)) AND (arr.related_resource.kind.name = 'milling cutting edge') )))) AND (verify_optional_tool_body_item (SELF, 'overall assembly length')) AND (verify_length_measure_tool_body_item (SELF, 'overall assembly length')) AND (verify_optional_tool_body_item (SELF, 'effective cutting diameter')) AND (verify_length_measure_tool_body_item (SELF, 'effective cutting diameter')) AND (verify_optional_tool_body_item (SELF, 'maximum depth of cut')) AND (verify_length_measure_tool_body_item (SELF, 'maximum depth of cut')) AND (verify_optional_tool_body_item (SELF, 'hand of cut')) AND (verify_enumeration_tool_body_item (SELF, 'hand of cut', ['left', 'right', 'neutral'])) AND (verify_optional_tool_body_item (SELF, 'coolant through tool')) AND (verify_enumeration_tool_body_item (SELF, 'coolant through tool', ['supported', 'not supported'])) ); WR2: NOT ((SELF.kind.name = 'milling cutting tool') AND (SELF.description IN [ 'counterbore', 'countersink', 'spade drill', 'spot drill', 'step drill', 'tapered drill', 'twist drill', 'drill'])) OR ((verify_optional_tool_body_item (SELF, 'point angle')) AND (verify_angle_measure_tool_body_item (SELF, 'point angle')) ); WR3: NOT ((SELF.kind.name = 'milling cutting tool') AND (SELF.description = 'countersink')) OR ((verify_optional_tool_body_item (SELF, 'minimum cutting diameter')) AND (verify_length_measure_tool_body_item (SELF, 'minimum cutting diameter')) AND (verify_required_tool_body_item (SELF, 'maximum usable length')) AND (verify_length_measure_tool_body_item (SELF, 'maximum usable length')) ); WR4: NOT ((SELF.kind.name = 'milling cutting tool') AND (SELF.description = 'tapered drill')) OR ((verify_required_tool_body_item (SELF, 'taper angle')) AND (verify_angle_measure_tool_body_item (SELF, 'taper angle')) ); -- Could make this stronger if we want WR5: NOT ((SELF.kind.name = 'milling cutting tool') AND (SELF.description = 'step drill')) OR ((verify_required_tool_body_item (SELF, 'step diameters')) AND (verify_rep_item_for_tool_body (SELF, 'step diameters', ['INTEGRATED_CNC_SCHEMA.COMPOUND_REPRESENTATION_ITEM'])) AND (verify_required_tool_body_item (SELF, 'step lengths')) AND (verify_rep_item_for_tool_body (SELF, 'step lengths', ['INTEGRATED_CNC_SCHEMA.COMPOUND_REPRESENTATION_ITEM'])) ); WR6: NOT ((SELF.kind.name = 'milling cutting tool') AND (SELF.description IN [ 'ballnose endmill', 'bullnose endmill', 'dovetail mill', 'endmill', 'facemill', 'profiled endmill', 'shoulder mill', 'tee slot mill', 'thread mill', 'side mill'])) OR ((verify_optional_tool_body_item (SELF, 'number of effective teeth')) AND (verify_count_measure_tool_body_item (SELF, 'number of effective teeth')) AND (verify_optional_tool_body_item (SELF, 'edge radius')) AND (verify_length_measure_tool_body_item (SELF, 'edge radius')) ); WR7: NOT ((SELF.kind.name = 'milling cutting tool') AND (SELF.description IN [ 'ballnose endmill', 'bullnose endmill', 'endmill', 'facemill', 'profiled endmill'])) OR ((verify_optional_tool_body_item (SELF, 'tool cutting edge angle')) AND (verify_angle_measure_tool_body_item (SELF, 'tool cutting edge angle')) ); WR8: NOT ((SELF.kind.name = 'milling cutting tool') AND (SELF.description = 'ballnose endmill')) OR verify_ballnose_endmill_dimensions (SELF); WR9: NOT ((SELF.kind.name = 'milling cutting tool') AND (SELF.description = 'bullnose endmill')) OR verify_bullnose_endmill_dimensions (SELF); WR10: NOT ((SELF.kind.name = 'milling cutting tool') AND (SELF.description = 'tee slot mill')) OR ((verify_optional_tool_body_item (SELF, 'cutting width')) AND (verify_length_measure_tool_body_item (SELF, 'cutting width')) ); WR11: NOT ((SELF.kind.name = 'milling cutting tool') AND (SELF.description = 'dovetail mill')) OR ((verify_optional_tool_body_item (SELF, 'included angle')) AND (verify_angle_measure_tool_body_item (SELF, 'included angle')) ); WR12: NOT ((SELF.kind.name = 'milling cutting tool') AND (SELF.description = 'side mill')) OR ((verify_optional_tool_body_item (SELF, 'cutter width')) AND (verify_length_measure_tool_body_item (SELF, 'cutter width')) ); WR13: NOT ((SELF.kind.name = 'milling cutting tool') AND (SELF.description IN [ 'thread mill', 'tapping tool', 'combined drill and tap'])) OR ((verify_required_tool_body_item (SELF, 'thread form type')) AND (verify_rep_item_for_tool_body (SELF, 'thread form type', ['INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM'])) AND (verify_required_tool_body_item (SELF, 'thread size')) AND (verify_length_measure_tool_body_item (SELF, 'thread size')) AND (verify_required_tool_body_item (SELF, 'thread pitch')) AND (verify_length_measure_tool_body_item (SELF, 'thread pitch')) ); WR14: NOT ((SELF.kind.name = 'milling cutting tool') AND (SELF.description IN [ 'tapping tool', 'combined drill and tap'])) OR ((verify_required_tool_body_item (SELF, 'taper thread count')) AND (verify_count_measure_tool_body_item (SELF, 'taper thread count')) ); WR15: NOT ((SELF.kind.name = 'milling cutting tool') AND (SELF.description IN [ 'reamer', 'combined drill and reamer', 'tapered reamer'])) OR ((verify_required_tool_body_item (SELF, 'taper length')) AND (verify_length_measure_tool_body_item (SELF, 'taper length')) ); WR16: NOT ((SELF.kind.name = 'milling cutting tool') AND (SELF.description = 'tapered reamer')) OR ((verify_required_tool_body_item (SELF, 'taper angle')) AND (verify_angle_measure_tool_body_item (SELF, 'taper angle')) ); WR17: NOT ((SELF.kind.name = 'milling cutting tool') AND (SELF.description IN [ 'combined drill and reamer', 'combined drill and tap'])) OR ((verify_required_tool_body_item (SELF, 'drill length')) AND (verify_length_measure_tool_body_item (SELF, 'drill length')) ); WR18: NOT ((SELF.kind.name = 'milling cutting tool') AND (SELF.description = 'boring tool')) OR ((verify_required_tool_body_item (SELF, 'retract movement')) AND (verify_enumeration_tool_body_item (SELF, 'retract movement', ['permitted', 'forbidden'])) ); WR19: NOT ((SELF.kind.name = 'milling cutting tool') AND (SELF.description = 'user defined milling tool')) OR ((verify_optional_tool_body_item (SELF, 'tool description')) AND (verify_rep_item_for_tool_body (SELF, 'tool description', ['INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM'])) AND (verify_optional_tool_body_item (SELF, 'corner radius')) AND (verify_length_measure_tool_body_item (SELF, 'corner radius')) AND (verify_optional_tool_body_item (SELF, 'corner radius center horizontal')) AND (verify_length_measure_tool_body_item (SELF, 'corner radius center horizontal')) AND (verify_optional_tool_body_item (SELF, 'corner radius center vertical')) AND (verify_length_measure_tool_body_item (SELF, 'corner radius center vertical')) AND (verify_optional_tool_body_item (SELF, 'taper angle')) AND (verify_angle_measure_tool_body_item (SELF, 'taper angle')) AND (verify_optional_tool_body_item (SELF, 'tip outer angle')) AND (verify_angle_measure_tool_body_item (SELF, 'tip outer angle')) ); WR20: NOT (SELF.kind.name = 'turning cutting tool') OR ((verify_required_tool_body_item (SELF, 'functional length')) AND (verify_length_measure_tool_body_item (SELF, 'functional length')) AND (verify_required_tool_body_item (SELF, 'f dimension')) AND (verify_length_measure_tool_body_item (SELF, 'f dimension')) AND (verify_optional_tool_body_item (SELF, 'minimum cutting diameter')) AND (verify_length_measure_tool_body_item (SELF, 'minimum cutting diameter')) AND (verify_optional_tool_body_item (SELF, 'a dimension on f')) AND (verify_length_measure_tool_body_item (SELF, 'a dimension on f')) AND (verify_optional_tool_body_item (SELF, 'a dimension on lf')) AND (verify_length_measure_tool_body_item (SELF, 'a dimension on lf')) AND (verify_optional_tool_body_item (SELF, 'hand of cut')) AND (verify_enumeration_tool_body_item (SELF, 'hand of cut', ['left', 'right', 'neutral'])) AND (0 <= SIZEOF (QUERY (arr <* USEDIN (SELF, 'INTEGRATED_CNC_SCHEMA.ACTION_RESOURCE_RELATIONSHIP.RELATING_RESOURCE') | (('INTEGRATED_CNC_SCHEMA.MACHINING_CUTTING_COMPONENT' IN TYPEOF (arr.related_resource)) AND (arr.related_resource.kind.name = 'turning cutting edge') )))) ); WR21: NOT ((SELF.kind.name = 'turning cutting tool') AND (SELF.description = 'turning threading tool')) OR ((verify_required_tool_body_item (SELF, 'thread pitch')) AND (verify_length_measure_tool_body_item (SELF, 'thread pitch')) AND (verify_required_tool_body_item (SELF, 'thread hand')) AND (verify_enumeration_tool_body_item (SELF, 'thread hand', ['left', 'right'])) AND (verify_required_tool_body_item (SELF, 'thread type')) AND (verify_enumeration_tool_body_item (SELF, 'thread type', ['internal', 'external'])) AND (verify_required_tool_body_item (SELF, 'thread profile')) AND (verify_enumeration_tool_body_item (SELF, 'thread profile', ['full', 'partial'])) AND (verify_required_tool_body_item (SELF, 'thread form type')) AND (verify_rep_item_for_tool_body (SELF, 'thread form type', ['INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM'])) ); WR22: NOT ((SELF.kind.name = 'turning cutting tool') AND (SELF.description = 'grooving tool')) OR ((verify_required_tool_body_item (SELF, 'cutting width')) AND (verify_length_measure_tool_body_item (SELF, 'cutting width')) AND (verify_required_tool_body_item (SELF, 'maximum grooving depth')) AND (verify_length_measure_tool_body_item (SELF, 'maximum grooving depth')) AND (verify_optional_tool_body_item (SELF, 'corner radius')) AND (verify_length_measure_tool_body_item (SELF, 'corner radius')) AND (verify_optional_tool_body_item (SELF, 'maximum axial grooving diameter')) AND (verify_length_measure_tool_body_item (SELF, 'maximum axial grooving diameter')) AND (verify_optional_tool_body_item (SELF, 'minimum axial grooving diameter')) AND (verify_length_measure_tool_body_item (SELF, 'minimum axial grooving diameter')) ); WR23: NOT ((SELF.kind.name = 'turning cutting tool') AND (SELF.description = 'knurling tool')) OR ((verify_required_tool_body_item (SELF, 'knurl pattern')) AND (verify_enumeration_tool_body_item (SELF, 'knurl pattern', ['straight', 'diagonal', 'diamond'])) AND (verify_optional_tool_body_item (SELF, 'cutting length')) AND (verify_length_measure_tool_body_item (SELF, 'cutting length')) AND (verify_optional_tool_body_item (SELF, 'cutting angle')) AND (verify_angle_measure_tool_body_item (SELF, 'cutting angle')) AND (verify_optional_tool_body_item (SELF, 'cutting pitch')) AND (verify_length_measure_tool_body_item (SELF, 'cutting pitch')) ); WR24: NOT ((SELF.kind.name = 'turning cutting tool') AND (SELF.description = 'user defined turning tool')) OR ((verify_required_tool_body_item (SELF, 'tool identifier')) AND (verify_rep_item_for_tool_body (SELF, 'tool identifier', ['INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM'])) ); WR25: (1 >= SIZEOF (QUERY (rar <* USEDIN (SELF, 'INTEGRATED_CNC_SCHEMA.REQUIREMENT_FOR_ACTION_RESOURCE.RESOURCES') | ((1 = SIZEOF(rar.operations)) AND ('INTEGRATED_CNC_SCHEMA.MACHINING_TOOL_USAGE' IN TYPEOF (rar\action_resource_requirement.operations[1]))) ))); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_tool_body_representation SUBTYPE OF (representation); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_tool_direction_representation SUBTYPE OF (representation); WHERE WR1: (SELF.name IN ['two axes', 'three axes', 'three axes tilted tool', 'five axes const tilt yaw', 'five axes var tilt yaw']); WR2: NOT (SELF.name = 'three axes tilted tool') OR ((verify_required_rep_item (SELF, 'tool direction orientation')) AND (0 = SIZEOF (QUERY ( it <* SELF.items | (it.name = 'tool direction orientation') AND NOT ('INTEGRATED_CNC_SCHEMA.DIRECTION' IN TYPEOF(it))))) ); WR3: NOT (SELF.name = 'five axes const tilt yaw') OR ((verify_required_rep_item (SELF, 'tool direction tilt angle')) AND (verify_angle_measure_rep_item (SELF, 'tool direction tilt angle')) AND (verify_required_rep_item (SELF, 'tool direction yaw angle')) AND (verify_angle_measure_rep_item (SELF, 'tool direction yaw angle')) ); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_tool_usage SUBTYPE OF (action_method); WHERE WR1: ((verify_optional_action_property (SELF, 'tool position')) AND (verify_descriptive_action_property (SELF, 'tool position'))); WR2: ((verify_optional_action_property (SELF, 'tool carousel')) AND (verify_descriptive_action_property (SELF, 'tool carousel'))); WR3: (1 >= SIZEOF (QUERY (act <* USEDIN (SELF, 'INTEGRATED_CNC_SCHEMA.ACTION.CHOSEN_METHOD') | (act.name = 'tool usage')))) AND (0 = SIZEOF (QUERY (act <* USEDIN (SELF, 'INTEGRATED_CNC_SCHEMA.ACTION.CHOSEN_METHOD') | (act.name = 'tool usage') AND NOT ('INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_PROCESS' IN TYPEOF (act)) ))); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_toolpath SUBTYPE OF (action_method); WHERE WR1: (SELF.description IN ['feedstop', 'axis trajectory', 'cutter location trajectory', 'cutter contact trajectory', 'approach lift path angle', 'approach lift path tangent', 'connect security plane', 'connect direct']); WR2: (verify_optional_action_property (SELF, 'priority')) AND (verify_enumeration_action_property (SELF, 'priority', ['required', 'suggested'])); WR3: (verify_optional_action_property (SELF, 'trajectory type')) AND (verify_enumeration_action_property (SELF, 'trajectory type', ['approach', 'lift', 'connect', 'non-contact', 'contact', 'trajectory path'])); WR4: ((verify_optional_action_property (SELF, 'speed profile')) AND (0 = SIZEOF (QUERY (prop <* get_action_property (SELF, 'speed profile') | NOT (0 < SIZEOF (QUERY (prep <* USEDIN (prop, 'INTEGRATED_CNC_SCHEMA.' + 'ACTION_PROPERTY_REPRESENTATION.PROPERTY') | ('INTEGRATED_CNC_SCHEMA.' + 'MACHINING_TOOLPATH_SPEED_PROFILE_REPRESENTATION' IN TYPEOF(prep.representation)) ))) ))) ); WR5: (verify_optional_relating_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_TECHNOLOGY_RELATIONSHIP'])) AND (verify_related_type_for_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_TECHNOLOGY_RELATIONSHIP'], ['INTEGRATED_CNC_SCHEMA.MACHINING_TECHNOLOGY'])); WR6: (verify_optional_relating_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_FUNCTIONS_RELATIONSHIP'])) AND (verify_related_type_for_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_FUNCTIONS_RELATIONSHIP'], ['INTEGRATED_CNC_SCHEMA.MACHINING_FUNCTIONS'])); WR7: NOT (SELF.description IN ['axis trajectory', 'cutter location trajectory', 'cutter contact trajectory']) OR ((verify_optional_action_property (SELF, 'direction')) AND (verify_enumeration_action_property (SELF, 'direction', ['beginning to end', 'end to beginning'])) ); WR8: NOT (SELF.description = 'connect security plane') OR ((verify_optional_action_property (SELF, 'up direction')) AND (verify_rep_item_for_action_property (SELF, 'up direction', ['INTEGRATED_CNC_SCHEMA.DIRECTION'])) AND (verify_optional_action_property (SELF, 'down direction')) AND (verify_rep_item_for_action_property (SELF, 'down direction', ['INTEGRATED_CNC_SCHEMA.DIRECTION'])) ); WR9: NOT (SELF.description = 'feedstop') OR ((verify_required_action_property (SELF, 'dwell')) AND (verify_time_measure_action_property (SELF, 'dwell')) ); WR10: NOT (SELF.description = 'axis trajectory') OR ((verify_required_action_property (SELF, 'axis commands')) AND -- axis commands property must contain one or more bounded curves (0 = SIZEOF (QUERY (prop <* get_action_property (SELF, 'axis commands') | NOT ((0 < SIZEOF (QUERY (prep <* USEDIN (prop, 'INTEGRATED_CNC_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY') | (1 <= SIZEOF (QUERY (it <* prep.representation.items | ('INTEGRATED_CNC_SCHEMA.BOUNDED_CURVE' in TYPEOF(it))))) ))))))) ); WR11: NOT (SELF.description IN ['approach lift path angle', 'approach lift path tangent']) OR ((verify_required_action_property (SELF, 'fix point')) AND (verify_rep_item_for_action_property (SELF, 'fix point', ['INTEGRATED_CNC_SCHEMA.CARTESIAN_POINT'])) AND (verify_optional_action_property (SELF, 'fix point direction')) AND (verify_rep_item_for_action_property (SELF, 'fix point direction', ['INTEGRATED_CNC_SCHEMA.DIRECTION'])) ); WR12: NOT (SELF.description = 'approach lift path angle') OR ((verify_required_action_property (SELF, 'angle')) AND (verify_angle_measure_action_property (SELF, 'angle')) AND (verify_required_action_property (SELF, 'bend distance')) AND (verify_length_measure_action_property (SELF, 'bend distance')) ); WR13: NOT (SELF.description = 'approach lift path tangent') OR ((verify_required_action_property (SELF, 'radius')) AND (verify_length_measure_action_property (SELF, 'radius')) ); WR14: NOT (SELF.description = 'cutter location trajectory') OR ((verify_required_action_property (SELF, 'basic curve')) AND (verify_rep_item_for_action_property (SELF, 'basic curve', ['INTEGRATED_CNC_SCHEMA.BOUNDED_CURVE'])) AND (verify_optional_action_property (SELF, 'surface normal')) AND (verify_rep_item_for_action_property (SELF, 'surface normal', ['INTEGRATED_CNC_SCHEMA.BOUNDED_CURVE'])) AND (verify_optional_action_property (SELF, 'tool axis')) AND (verify_rep_item_for_action_property (SELF, 'tool axis', ['INTEGRATED_CNC_SCHEMA.BOUNDED_CURVE'])) AND (verify_optional_action_property (SELF, 'path maximum deviation')) AND (verify_length_measure_action_property (SELF, 'path maximum deviation')) AND (verify_optional_action_property (SELF, 'tool axis maximum deviation')) AND (verify_angle_measure_action_property (SELF, 'tool axis maximum deviation')) ); WR15: NOT (SELF.description = 'cutter contact trajectory') OR ((((verify_required_action_property (SELF, 'basic curve')) AND (verify_rep_item_for_action_property (SELF, 'basic curve', ['INTEGRATED_CNC_SCHEMA.BOUNDED_PCURVE'])) ) OR ((verify_required_action_property (SELF, 'basic curve')) AND (verify_rep_item_for_action_property (SELF, 'basic curve', ['INTEGRATED_CNC_SCHEMA.BOUNDED_CURVE'])) AND (verify_required_action_property (SELF, 'surface normal')) AND (verify_rep_item_for_action_property (SELF, 'surface normal', ['INTEGRATED_CNC_SCHEMA.BOUNDED_CURVE'])) ) ) AND (verify_optional_action_property (SELF, 'tool axis')) AND (verify_rep_item_for_action_property (SELF, 'tool axis', ['INTEGRATED_CNC_SCHEMA.BOUNDED_CURVE'])) AND (verify_optional_action_property (SELF, 'contact type')) AND (verify_enumeration_action_property (SELF, 'contact type', ['side', 'front'])) AND (verify_optional_action_property (SELF, 'path maximum deviation')) AND (verify_length_measure_action_property (SELF, 'path maximum deviation')) AND (verify_optional_action_property (SELF, 'tool axis maximum deviation')) AND (verify_angle_measure_action_property (SELF, 'tool axis maximum deviation')) ); WR16: NOT (SELF.description IN ['axis trajectory', 'cutter location trajectory', 'cutter contact trajectory']) OR ((verify_optional_action_property (SELF, 'material removal depth')) AND ((verify_length_measure_action_property (SELF, 'material removal depth')) OR (verify_rep_item_for_action_property (SELF, 'material removal depth', ['INTEGRATED_CNC_SCHEMA.BOUNDED_CURVE']))) AND (verify_optional_action_property (SELF, 'material removal overcut')) AND ((verify_length_measure_action_property (SELF, 'material removal overcut')) OR (verify_rep_item_for_action_property (SELF, 'material removal overcut', ['INTEGRATED_CNC_SCHEMA.BOUNDED_CURVE']))) AND (verify_optional_action_property (SELF, 'material removal total volume')) AND (verify_rep_item_for_action_property (SELF, 'material removal total volume', ['INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM'])) ); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_toolpath_relationship SUBTYPE OF (action_method_relationship); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_toolpath_sequence_relationship SUBTYPE OF (sequential_method); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_toolpath_speed_profile_representation SUBTYPE OF (representation); WHERE WR1: (1 = SIZEOF (QUERY ( it <* SELF.items | ( (('INTEGRATED_CNC_SCHEMA.BOUNDED_CURVE' IN TYPEOF(it))) OR (('INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.description IN ['rapid'])) OR ((SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.RATIO_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2)) ) ))); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_touch_probing SUBTYPE OF (machining_process_executable, machining_operation); WHERE WR1: (SELF.description IN ['tool length probing', 'tool radius probing', 'workpiece probing', 'workpiece complete probing']); WR2: ((verify_required_action_property (SELF, 'security plane')) AND (verify_rep_item_for_action_property (SELF, 'security plane', ['INTEGRATED_CNC_SCHEMA.ELEMENTARY_SURFACE']))); WR3: ((verify_required_action_property (SELF, 'measured offset')) AND (verify_rep_item_for_action_property (SELF, 'measured offset', ['INTEGRATED_CNC_SCHEMA.EXPRESSION_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.NUMERIC_VARIABLE']))); WR4: NOT (SELF.description = 'workpiece probing') OR ((verify_required_action_property (SELF, 'start position')) AND (verify_rep_item_for_action_property (SELF, 'start position', ['INTEGRATED_CNC_SCHEMA.AXIS2_PLACEMENT_3D'])) AND (1 = SIZEOF (QUERY (act <* USEDIN (SELF, 'INTEGRATED_CNC_SCHEMA.ACTION.CHOSEN_METHOD') | (act.name = 'workpiece probing')))) AND (0 = SIZEOF (QUERY (act <* USEDIN (SELF, 'INTEGRATED_CNC_SCHEMA.ACTION.CHOSEN_METHOD') | (act.name = 'workpiece probing') AND NOT ('INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_PROCESS' IN TYPEOF (act))))) AND (verify_required_action_property (SELF, 'direction')) AND (verify_rep_item_for_action_property (SELF, 'direction', ['INTEGRATED_CNC_SCHEMA.DIRECTION'])) AND (verify_required_action_property (SELF, 'expected value')) AND (verify_rep_item_for_action_property (SELF, 'expected value', ['INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT', 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.QUALIFIED_REPRESENTATION_ITEM'])) AND (verify_required_action_property (SELF, 'probe')) ); WR5: NOT (SELF.description = 'workpiece complete probing') OR ((1 = SIZEOF (QUERY (act <* USEDIN (SELF, 'INTEGRATED_CNC_SCHEMA.ACTION.CHOSEN_METHOD') | (act.name = 'workpiece complete probing')))) AND (0 = SIZEOF (QUERY (act <* USEDIN (SELF, 'INTEGRATED_CNC_SCHEMA.ACTION.CHOSEN_METHOD') | (act.name = 'workpiece complete probing') AND NOT ('INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_PROCESS' IN TYPEOF (act))))) AND (verify_required_action_property (SELF, 'probing distance')) AND (verify_rep_item_for_action_property (SELF, 'probing distance', ['INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT', 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.QUALIFIED_REPRESENTATION_ITEM'])) AND (verify_required_action_property (SELF, 'probe')) AND (verify_required_action_property (SELF, 'computed offset')) AND (verify_rep_type_for_action_property (SELF, 'computed offset', ['INTEGRATED_CNC_SCHEMA.MACHINING_OFFSET_VECTOR_REPRESENTATION'])) ); WR6: NOT (SELF.description IN ['tool length probing', 'tool radius probing']) OR ((verify_required_action_property (SELF, 'offset')) AND (verify_rep_item_for_action_property (SELF, 'offset', ['INTEGRATED_CNC_SCHEMA.CARTESIAN_POINT'])) AND (verify_required_action_property (SELF, 'maximum wear')) AND (verify_length_measure_action_property (SELF, 'maximum wear')) AND (1 = SIZEOF (QUERY (mt <* USEDIN (SELF, 'INTEGRATED_CNC_SCHEMA.ACTION_RESOURCE.USAGE') | ('INTEGRATED_CNC_SCHEMA.MACHINING_TOOL' in TYPEOF(mt))))) ); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_touch_probing_relationship SUBTYPE OF (action_method_relationship); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_workingstep SUBTYPE OF (machining_process_executable); WHERE WR1: ((verify_optional_action_property (SELF, 'security plane')) AND (verify_rep_item_for_action_property (SELF, 'security plane', ['INTEGRATED_CNC_SCHEMA.ELEMENTARY_SURFACE']))); WR2: NOT (SELF.description = 'machining') OR ((verify_required_relating_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_FEATURE_RELATIONSHIP'])) AND (verify_related_type_for_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_FEATURE_RELATIONSHIP'], ['INTEGRATED_CNC_SCHEMA.MACHINING_FEATURE_PROCESS'])) AND (verify_related_type_for_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_FINAL_FEATURE_RELATIONSHIP'], ['INTEGRATED_CNC_SCHEMA.MACHINING_FEATURE_PROCESS'])) AND (verify_required_relating_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_OPERATION_RELATIONSHIP'])) AND (verify_related_type_for_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_OPERATION_RELATIONSHIP'], ['INTEGRATED_CNC_SCHEMA.MACHINING_OPERATION'])) ); WR3: NOT (SELF.description = 'turning') OR ((2 <= get_count_of_relating_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_FEATURE_SEQUENCE_RELATIONSHIP'])) AND (verify_related_type_for_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_FEATURE_SEQUENCE_RELATIONSHIP'], ['INTEGRATED_CNC_SCHEMA.MACHINING_FEATURE_PROCESS'])) AND (verify_required_relating_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_OPERATION_RELATIONSHIP'])) AND (verify_related_type_for_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_OPERATION_RELATIONSHIP'], ['INTEGRATED_CNC_SCHEMA.TURNING_TYPE_OPERATION'])) ); WR4: NOT (SELF.description IN ['machining', 'turning']) OR (verify_optional_in_process_geometry (SELF)); WR5: ((verify_optional_action_property (SELF, 'toolpath orientation')) AND (verify_rep_item_for_action_property (SELF, 'toolpath orientation', ['INTEGRATED_CNC_SCHEMA.AXIS2_PLACEMENT_3D']))); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY machining_workplan SUBTYPE OF (machining_process_executable); WHERE WR1: (1 <= get_count_of_relating_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_PROCESS_SEQUENCE_RELATIONSHIP'])) AND (verify_related_type_for_amr (SELF, ['INTEGRATED_CNC_SCHEMA.MACHINING_PROCESS_SEQUENCE_RELATIONSHIP'], ['INTEGRATED_CNC_SCHEMA.MACHINING_PROCESS_EXECUTABLE'])); WR2: (verify_optional_action_property (SELF, 'channel')); WR3: (1 >= SIZEOF (QUERY (act <* USEDIN (SELF, 'INTEGRATED_CNC_SCHEMA.ACTION.CHOSEN_METHOD') | (act.name = 'setup')))) AND (0 = SIZEOF (QUERY (act <* USEDIN (SELF, 'INTEGRATED_CNC_SCHEMA.ACTION.CHOSEN_METHOD') | (act.name = 'setup') AND NOT ('INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_PROCESS' IN TYPEOF (act)) ))); WR4: (verify_optional_in_process_geometry (SELF)); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY make_from_usage_option SUBTYPE OF (product_definition_usage); ranking : INTEGER; ranking_rationale : text; quantity : measure_with_unit; WHERE WR1: NOT ('NUMBER' IN TYPEOF(quantity.value_component)) OR (quantity. value_component > 0); END_ENTITY; -- 10303-44: product_structure_schema ENTITY manifold_solid_brep SUBTYPE OF (solid_model); outer : closed_shell; END_ENTITY; -- 10303-42: geometric_model_schema ENTITY manifold_surface_shape_representation SUBTYPE OF (shape_representation); WHERE WR1: SIZEOF(QUERY (it <* SELF.items| NOT (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.SHELL_BASED_SURFACE_MODEL', 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM', 'INTEGRATED_CNC_SCHEMA.AXIS2_PLACEMENT_3D' ] * TYPEOF(it)) = 1))) = 0; WR2: SIZEOF(QUERY (it <* SELF.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.SHELL_BASED_SURFACE_MODEL', 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM' ] * TYPEOF(it)) = 1))) > 0; WR3: SIZEOF(QUERY (mi <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM' IN TYPEOF(it)))| NOT (( 'INTEGRATED_CNC_SCHEMA.MANIFOLD_SURFACE_SHAPE_REPRESENTATION' IN TYPEOF(mi\mapped_item.mapping_source. mapped_representation)) AND (SIZEOF(QUERY (mr_it <* mi\ mapped_item.mapping_source.mapped_representation.items| ( 'INTEGRATED_CNC_SCHEMA.SHELL_BASED_SURFACE_MODEL' IN TYPEOF( mr_it)))) > 0)))) = 0; WR4: SIZEOF(QUERY (sbsm <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.SHELL_BASED_SURFACE_MODEL' IN TYPEOF( it)))| NOT (SIZEOF(QUERY (sh <* sbsm\ shell_based_surface_model.sbsm_boundary| NOT (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.OPEN_SHELL', 'INTEGRATED_CNC_SCHEMA.ORIENTED_CLOSED_SHELL', 'INTEGRATED_CNC_SCHEMA.CLOSED_SHELL' ] * TYPEOF(sh)) = 1))) = 0))) = 0; WR5: SIZEOF(QUERY (sbsm <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.SHELL_BASED_SURFACE_MODEL' IN TYPEOF( it)))| NOT (SIZEOF(QUERY (cfs <* sbsm\ shell_based_surface_model.sbsm_boundary| NOT (SIZEOF(QUERY ( fa <* cfs\connected_face_set.cfs_faces| NOT ( 'INTEGRATED_CNC_SCHEMA.FACE_SURFACE' IN TYPEOF(fa)))) = 0))) = 0))) = 0; WR6: SIZEOF(QUERY (sbsm <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.SHELL_BASED_SURFACE_MODEL' IN TYPEOF( it)))| NOT (SIZEOF(QUERY (cfs <* sbsm\ shell_based_surface_model.sbsm_boundary| NOT (SIZEOF(QUERY ( fa <* cfs\connected_face_set.cfs_faces| NOT (( 'INTEGRATED_CNC_SCHEMA.ADVANCED_FACE' IN TYPEOF(fa)) OR msf_surface_check(fa\face_surface.face_geometry)))) = 0))) = 0))) = 0; WR7: SIZEOF(QUERY (sbsm <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.SHELL_BASED_SURFACE_MODEL' IN TYPEOF( it)))| NOT (SIZEOF(QUERY (cfs <* sbsm\ shell_based_surface_model.sbsm_boundary| NOT (SIZEOF(QUERY ( fa <* cfs\connected_face_set.cfs_faces| NOT (( 'INTEGRATED_CNC_SCHEMA.ADVANCED_FACE' IN TYPEOF(fa)) OR ( SIZEOF(QUERY (bnds <* fa.bounds| NOT (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.EDGE_LOOP', 'INTEGRATED_CNC_SCHEMA.VERTEX_LOOP' ] * TYPEOF(bnds.bound)) = 1))) = 0)))) = 0))) = 0))) = 0; WR8: SIZEOF(QUERY (sbsm <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.SHELL_BASED_SURFACE_MODEL' IN TYPEOF( it)))| NOT (SIZEOF(QUERY (cfs <* sbsm\ shell_based_surface_model.sbsm_boundary| NOT (SIZEOF(QUERY ( fa <* cfs\connected_face_set.cfs_faces| NOT (( 'INTEGRATED_CNC_SCHEMA.ADVANCED_FACE' IN TYPEOF(fa)) OR ( SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds| ( 'INTEGRATED_CNC_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds\path.edge_list| NOT ( 'INTEGRATED_CNC_SCHEMA.EDGE_CURVE' IN TYPEOF(oe.edge_element) ))) = 0))) = 0)))) = 0))) = 0))) = 0; WR9: SIZEOF(QUERY (sbsm <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.SHELL_BASED_SURFACE_MODEL' IN TYPEOF( it)))| NOT (SIZEOF(QUERY (cfs <* sbsm\ shell_based_surface_model.sbsm_boundary| NOT (SIZEOF(QUERY ( fa <* cfs\connected_face_set.cfs_faces| NOT (( 'INTEGRATED_CNC_SCHEMA.ADVANCED_FACE' IN TYPEOF(fa)) OR ( SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds| ( 'INTEGRATED_CNC_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe_cv <* QUERY (oe <* elp_fbnds\path. edge_list| ('INTEGRATED_CNC_SCHEMA.EDGE_CURVE' IN TYPEOF(oe. edge_element)))| NOT (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.B_SPLINE_CURVE', 'INTEGRATED_CNC_SCHEMA.CONIC', 'INTEGRATED_CNC_SCHEMA.CURVE_REPLICA', 'INTEGRATED_CNC_SCHEMA.LINE', 'INTEGRATED_CNC_SCHEMA.OFFSET_CURVE_3D', 'INTEGRATED_CNC_SCHEMA.PCURVE', 'INTEGRATED_CNC_SCHEMA.POLYLINE', 'INTEGRATED_CNC_SCHEMA.SURFACE_CURVE' ] * TYPEOF(oe_cv. edge_element\edge_curve.edge_geometry)) = 1))) = 0))) = 0)))) = 0))) = 0))) = 0; WR10: SIZEOF(QUERY (sbsm <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.SHELL_BASED_SURFACE_MODEL' IN TYPEOF( it)))| NOT (SIZEOF(QUERY (cfs <* sbsm\ shell_based_surface_model.sbsm_boundary| NOT (SIZEOF(QUERY ( fa <* cfs\connected_face_set.cfs_faces| NOT (( 'INTEGRATED_CNC_SCHEMA.ADVANCED_FACE' IN TYPEOF(fa)) OR ( SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds| ( 'INTEGRATED_CNC_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds\path.edge_list| NOT msf_curve_check(oe.edge_element\edge_curve.edge_geometry))) = 0))) = 0)))) = 0))) = 0))) = 0; WR11: SIZEOF(QUERY (sbsm <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.SHELL_BASED_SURFACE_MODEL' IN TYPEOF( it)))| NOT (SIZEOF(QUERY (cfs <* sbsm\ shell_based_surface_model.sbsm_boundary| NOT (SIZEOF(QUERY ( fa <* cfs\connected_face_set.cfs_faces| NOT (( 'INTEGRATED_CNC_SCHEMA.ADVANCED_FACE' IN TYPEOF(fa)) OR ( SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds| ( 'INTEGRATED_CNC_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds\path.edge_list| NOT (( 'INTEGRATED_CNC_SCHEMA.VERTEX_POINT' IN TYPEOF(oe. edge_element.edge_start)) AND ( 'INTEGRATED_CNC_SCHEMA.VERTEX_POINT' IN TYPEOF(oe. edge_element.edge_end))))) = 0))) = 0)))) = 0))) = 0))) = 0; WR12: SIZEOF(QUERY (sbsm <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.SHELL_BASED_SURFACE_MODEL' IN TYPEOF( it)))| NOT (SIZEOF(QUERY (cfs <* sbsm\ shell_based_surface_model.sbsm_boundary| NOT (SIZEOF(QUERY ( fa <* cfs\connected_face_set.cfs_faces| NOT (( 'INTEGRATED_CNC_SCHEMA.ADVANCED_FACE' IN TYPEOF(fa)) OR ( SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds| ( 'INTEGRATED_CNC_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds\path.edge_list| NOT (( SIZEOF([ 'INTEGRATED_CNC_SCHEMA.CARTESIAN_POINT', 'INTEGRATED_CNC_SCHEMA.DEGENERATE_PCURVE', 'INTEGRATED_CNC_SCHEMA.POINT_ON_CURVE', 'INTEGRATED_CNC_SCHEMA.POINT_ON_SURFACE' ] * TYPEOF(oe. edge_element.edge_start\vertex_point.vertex_geometry)) = 1) AND (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.CARTESIAN_POINT', 'INTEGRATED_CNC_SCHEMA.DEGENERATE_PCURVE', 'INTEGRATED_CNC_SCHEMA.POINT_ON_CURVE', 'INTEGRATED_CNC_SCHEMA.POINT_ON_SURFACE' ] * TYPEOF(oe. edge_element.edge_end\vertex_point.vertex_geometry)) = 1)))) = 0))) = 0)))) = 0))) = 0))) = 0; WR13: SIZEOF(QUERY (sbsm <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.SHELL_BASED_SURFACE_MODEL' IN TYPEOF( it)))| NOT (SIZEOF(QUERY (cfs <* sbsm\ shell_based_surface_model.sbsm_boundary| NOT (SIZEOF(QUERY ( fa <* cfs\connected_face_set.cfs_faces| NOT (( 'INTEGRATED_CNC_SCHEMA.ADVANCED_FACE' IN TYPEOF(fa)) OR ( SIZEOF(QUERY (vlp_fbnds <* QUERY (bnds <* fa.bounds| ( 'INTEGRATED_CNC_SCHEMA.VERTEX_LOOP' IN TYPEOF(bnds.bound)))| NOT ('INTEGRATED_CNC_SCHEMA.VERTEX_POINT' IN TYPEOF(vlp_fbnds \vertex_loop.loop_vertex)))) = 0)))) = 0))) = 0))) = 0; WR14: SIZEOF(QUERY (sbsm <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.SHELL_BASED_SURFACE_MODEL' IN TYPEOF( it)))| NOT (SIZEOF(QUERY (cfs <* sbsm\ shell_based_surface_model.sbsm_boundary| NOT (SIZEOF(QUERY ( fa <* cfs\connected_face_set.cfs_faces| NOT (( 'INTEGRATED_CNC_SCHEMA.ADVANCED_FACE' IN TYPEOF(fa)) OR ( SIZEOF(QUERY (vlp_fbnds <* QUERY (bnds <* fa.bounds| ( 'INTEGRATED_CNC_SCHEMA.VERTEX_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.CARTESIAN_POINT', 'INTEGRATED_CNC_SCHEMA.DEGENERATE_PCURVE', 'INTEGRATED_CNC_SCHEMA.POINT_ON_CURVE', 'INTEGRATED_CNC_SCHEMA.POINT_ON_SURFACE' ] * TYPEOF(vlp_fbnds \vertex_loop.loop_vertex\vertex_point.vertex_geometry)) = 1)) ) = 0)))) = 0))) = 0))) = 0; END_ENTITY; -- 10303-509: aic_manifold_surface ENTITY mapped_item SUBTYPE OF (representation_item); mapping_source : representation_map; mapping_target : representation_item; WHERE WR1: acyclic_mapped_representation(using_representations(SELF), [ SELF ]); END_ENTITY; -- 10303-43: representation_schema ENTITY marking SUBTYPE OF (feature_definition); WHERE WR1: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)) AND ((2 <= SIZEOF(pdr. used_representation.items)) AND (SIZEOF(pdr. used_representation.items) <= 6)))) = 1))) = 1; WR2: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| ( 'INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'marking text'))) = 1))) = 0))) = 0; WR3: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| ( 'INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'special instructions'))) <= 1))) = 0))) = 0; WR4: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| ( 'INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'font name'))) <= 1))) = 0))) = 0; WR5: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'character height'))) <= 1))) = 0))) = 0; WR6: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'character spacing'))) <= 1))) = 0)) ) = 0; WR7: SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'applied shape') AND ('INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sdr.relating_shape_aspect)))) = 1))) = 1))) = 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY mass_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.MASS_UNIT' IN TYPEOF(SELF\measure_with_unit .unit_component); END_ENTITY; -- 10303-41: measure_schema ENTITY mass_unit SUBTYPE OF (named_unit); WHERE WR1: ((((((SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\ named_unit.dimensions.mass_exponent = 1.0)) AND (SELF\ named_unit.dimensions.time_exponent = 0.0)) AND (SELF\ named_unit.dimensions.electric_current_exponent = 0.0)) AND ( SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0)) AND (SELF\named_unit.dimensions. amount_of_substance_exponent = 0.0)) AND (SELF\named_unit. dimensions.luminous_intensity_exponent = 0.0); END_ENTITY; -- 10303-41: measure_schema ENTITY material_designation; name : label; definitions : SET [1:?] OF characterized_definition; END_ENTITY; -- 10303-45: material_property_definition_schema ENTITY material_designation_characterization; name : label; description : text; designation : material_designation; property : characterized_material_property; END_ENTITY; -- 10303-45: material_property_definition_schema ENTITY material_property SUBTYPE OF (property_definition); UNIQUE UR1: SELF\property_definition.name, SELF\property_definition.definition; WHERE WR1: ('INTEGRATED_CNC_SCHEMA.CHARACTERIZED_OBJECT' IN TYPEOF(SELF\ property_definition.definition)) OR (SIZEOF(bag_to_set(USEDIN (SELF, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) - QUERY ( temp <* bag_to_set(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION'))| ( 'INTEGRATED_CNC_SCHEMA.' + 'MATERIAL_PROPERTY_REPRESENTATION' IN TYPEOF(temp)))) = 0); END_ENTITY; -- 10303-45: material_property_definition_schema ENTITY material_property_representation SUBTYPE OF (property_definition_representation); dependent_environment : data_environment; END_ENTITY; -- 10303-45: material_property_representation_schema ENTITY measure_qualification; name : label; description : text; qualified_measure : measure_with_unit; qualifiers : SET [1:?] OF value_qualifier; WHERE WR1: SIZEOF(QUERY (temp <* qualifiers| ( 'INTEGRATED_CNC_SCHEMA.PRECISION_QUALIFIER' IN TYPEOF(temp))) ) < 2; WR2: NOT ('INTEGRATED_CNC_SCHEMA.REPRESENTATION_ITEM' IN TYPEOF(SELF\ measure_qualification.qualified_measure)); END_ENTITY; -- 10303-45: qualified_measure_schema ENTITY measure_representation_item SUBTYPE OF (representation_item, measure_with_unit); END_ENTITY; -- 10303-45: qualified_measure_schema ENTITY measure_with_unit SUPERTYPE OF (ONEOF(length_measure_with_unit, mass_measure_with_unit, time_measure_with_unit, plane_angle_measure_with_unit, solid_angle_measure_with_unit, ratio_measure_with_unit)); value_component : measure_value; unit_component : unit; WHERE WR1: valid_units(SELF); END_ENTITY; -- 10303-41: measure_schema ENTITY mechanical_design_geometric_presentation_area SUBTYPE OF (presentation_area); WHERE WR1: SIZEOF(QUERY (it1 <* SELF.items| NOT (( 'INTEGRATED_CNC_SCHEMA.AXIS2_PLACEMENT' IN TYPEOF(it1)) OR ( 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM' IN TYPEOF(it1)) AND ( 'INTEGRATED_CNC_SCHEMA.PRESENTATION_VIEW' IN TYPEOF(it1\ mapped_item.mapping_source.mapped_representation))))) = 0; WR2: SIZEOF(QUERY (pv <* QUERY (mi1 <* QUERY (it1 <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM' IN TYPEOF(it1)))| ( 'INTEGRATED_CNC_SCHEMA.PRESENTATION_VIEW' IN TYPEOF(mi1\ mapped_item.mapping_source.mapped_representation)))| NOT ( SIZEOF(QUERY (it2 <* pv\mapped_item.mapping_source. mapped_representation\representation.items| NOT (( 'INTEGRATED_CNC_SCHEMA.AXIS2_PLACEMENT' IN TYPEOF(it2)) OR (( 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM' IN TYPEOF(it2)) AND NOT ( 'INTEGRATED_CNC_SCHEMA.' + 'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2))) AND NOT ( 'INTEGRATED_CNC_SCHEMA.PRESENTATION_VIEW' IN TYPEOF(it2\ mapped_item.mapping_source.mapped_representation))) OR ( 'INTEGRATED_CNC_SCHEMA.' + 'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2)) AND NOT ('INTEGRATED_CNC_SCHEMA.' + 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' IN TYPEOF(it2\mapped_item.mapping_source.mapped_representation)) )) = 0))) = 0; WR3: (SIZEOF(QUERY (ps <* USEDIN(SELF\presentation_area, 'INTEGRATED_CNC_SCHEMA.' + 'PRESENTATION_SIZE.UNIT')| (ps. size\planar_extent.size_in_x <= 0) OR (ps.size\planar_extent. size_in_y <= 0))) = 0) AND (SIZEOF(QUERY (ais <* USEDIN(SELF\ presentation_area, 'INTEGRATED_CNC_SCHEMA.' + 'AREA_IN_SET.AREA')| (SIZEOF(QUERY (ps <* USEDIN(ais, 'INTEGRATED_CNC_SCHEMA.' + 'PRESENTATION_SIZE.UNIT')| (ps. size\planar_extent.size_in_x <= 0) OR (ps.size\planar_extent. size_in_y <= 0))) > 0))) = 0); WR4: (SIZEOF(QUERY (ps <* USEDIN(SELF\presentation_area, 'INTEGRATED_CNC_SCHEMA.' + 'PRESENTATION_SIZE.UNIT')| ( 'INTEGRATED_CNC_SCHEMA.' + 'AXIS2_PLACEMENT_2D' IN TYPEOF(ps. size.placement)))) = 1) AND (SIZEOF(QUERY (ps <* USEDIN(SELF\ presentation_area, 'INTEGRATED_CNC_SCHEMA.' + 'PRESENTATION_SIZE.UNIT')| ('INTEGRATED_CNC_SCHEMA.' + 'AXIS2_PLACEMENT_3D' IN TYPEOF(ps.size.placement)))) = 0) OR (SIZEOF(QUERY (ais <* USEDIN(SELF\presentation_area, 'INTEGRATED_CNC_SCHEMA.' + 'AREA_IN_SET.AREA')| (SIZEOF(QUERY (ps <* USEDIN(ais, 'INTEGRATED_CNC_SCHEMA.' + 'PRESENTATION_SIZE.UNIT')| ('INTEGRATED_CNC_SCHEMA.' + 'AXIS2_PLACEMENT_2D' IN TYPEOF(ps.size.placement)))) = 1))) = 1) AND (SIZEOF(QUERY (ais <* USEDIN(SELF\presentation_area, 'INTEGRATED_CNC_SCHEMA.' + 'AREA_IN_SET.AREA')| (SIZEOF(QUERY (ps <* USEDIN(ais, 'INTEGRATED_CNC_SCHEMA.' + 'PRESENTATION_SIZE.UNIT')| ('INTEGRATED_CNC_SCHEMA.' + 'AXIS2_PLACEMENT_3D' IN TYPEOF(ps.size.placement)))) = 0))) = 1); END_ENTITY; -- 10303-517: aic_mechanical_design_geometric_presentation ENTITY mechanical_design_geometric_presentation_representation SUBTYPE OF (representation); WHERE WR1: SIZEOF(QUERY (it <* SELF.items| NOT (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM', 'INTEGRATED_CNC_SCHEMA.STYLED_ITEM', 'INTEGRATED_CNC_SCHEMA.AXIS2_PLACEMENT', 'INTEGRATED_CNC_SCHEMA.CAMERA_MODEL_D3' ] * TYPEOF(it)) = 1)) ) = 0; WR2: SIZEOF(QUERY (mi <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM' IN TYPEOF(it)))| NOT ( SIZEOF([ ('INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION'), ('INTEGRATED_CNC_SCHEMA.' + 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION') ] * TYPEOF(mi\mapped_item.mapping_source.mapped_representation) ) = 1))) = 0; WR3: SIZEOF(QUERY (smi <* QUERY (si <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| ( 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM' IN TYPEOF(si\styled_item. item)))| NOT ('INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION' IN TYPEOF(smi\styled_item.item\ mapped_item.mapping_source.mapped_representation)))) = 0; WR4: SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT ( SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (pss <* psa.styles| NOT (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.POINT_STYLE', 'INTEGRATED_CNC_SCHEMA.CURVE_STYLE', 'INTEGRATED_CNC_SCHEMA.SURFACE_STYLE_USAGE' ] * TYPEOF(pss)) = 1))) = 0))) = 0))) = 0; WR5: SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT ( SIZEOF(QUERY (psbc <* QUERY (psa <* si\styled_item.styles| ( 'INTEGRATED_CNC_SCHEMA.' + 'PRESENTATION_STYLE_BY_CONTEXT' IN TYPEOF(psa)))| NOT (SIZEOF([ ('INTEGRATED_CNC_SCHEMA.' + 'REPRESENTATION_ITEM'), 'INTEGRATED_CNC_SCHEMA.REPRESENTATION' ] * TYPEOF(psbc\ presentation_style_by_context.style_context)) = 1))) = 0))) = 0; WR6: SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT ( SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (ps <* QUERY (pss <* psa.styles| ( 'INTEGRATED_CNC_SCHEMA.POINT_STYLE' IN TYPEOF(pss)))| NOT (( 'INTEGRATED_CNC_SCHEMA.' + 'POSITIVE_LENGTH_MEASURE' IN TYPEOF(ps\point_style.marker_size)) AND (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.COLOUR_RGB', ('INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(ps\point_style .marker_colour)) = 1)))) = 0))) = 0))) = 0; WR7: SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT ( SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (cs <* QUERY (pss <* psa.styles| ( 'INTEGRATED_CNC_SCHEMA.CURVE_STYLE' IN TYPEOF(pss)))| NOT ((( SIZEOF([ 'INTEGRATED_CNC_SCHEMA.COLOUR_RGB', ( 'INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(cs\curve_style.curve_colour)) = 1) AND ( 'INTEGRATED_CNC_SCHEMA.' + 'POSITIVE_LENGTH_MEASURE' IN TYPEOF(cs\curve_style.curve_width))) AND (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.CURVE_STYLE_FONT', ( 'INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT') ] * TYPEOF(cs\ curve_style.curve_font)) = 1)))) = 0))) = 0))) = 0; WR8: SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT ( SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (ssu <* QUERY (pss <* psa.styles| ( 'INTEGRATED_CNC_SCHEMA.SURFACE_STYLE_USAGE' IN TYPEOF(pss)))| NOT ('INTEGRATED_CNC_SCHEMA.' + 'SURFACE_SIDE_STYLE' IN TYPEOF(ssu\surface_style_usage.style)))) = 0))) = 0))) = 0; WR9: SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT ( SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (ssu <* QUERY (pss <* psa.styles| ( 'INTEGRATED_CNC_SCHEMA.SURFACE_STYLE_USAGE' IN TYPEOF(pss)))| NOT (SIZEOF(QUERY (sses <* ssu\surface_style_usage.style\ surface_side_style.styles| NOT (SIZEOF([ ( 'INTEGRATED_CNC_SCHEMA.' + 'SURFACE_STYLE_PARAMETER_LINE'), ( 'INTEGRATED_CNC_SCHEMA.' + 'SURFACE_STYLE_CONTROL_GRID'), ( 'INTEGRATED_CNC_SCHEMA.' + 'SURFACE_STYLE_SILHOUETTE'), ( 'INTEGRATED_CNC_SCHEMA.' + 'SURFACE_STYLE_SEGMENTATION_CURVE' ), ('INTEGRATED_CNC_SCHEMA.' + 'SURFACE_STYLE_FILL_AREA'), ( 'INTEGRATED_CNC_SCHEMA.' + 'SURFACE_STYLE_BOUNDARY') ] * TYPEOF(sses)) = 1))) = 0))) = 0))) = 0))) = 0; WR10: SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT ( SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (ssu <* QUERY (pss <* psa.styles| ( 'INTEGRATED_CNC_SCHEMA.SURFACE_STYLE_USAGE' IN TYPEOF(pss)))| NOT (SIZEOF(QUERY (sspl <* QUERY (sses <* ssu\ surface_style_usage.style\surface_side_style.styles| ( 'INTEGRATED_CNC_SCHEMA.' + 'SURFACE_STYLE_PARAMETER_LINE' IN TYPEOF(sses)))| NOT (((('INTEGRATED_CNC_SCHEMA.CURVE_STYLE' IN TYPEOF(sspl\surface_style_parameter_line. style_of_parameter_lines)) AND (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.COLOUR_RGB', ('INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(sspl\ surface_style_parameter_line.style_of_parameter_lines\ curve_style.curve_colour)) = 1)) AND ( 'INTEGRATED_CNC_SCHEMA.' + 'POSITIVE_LENGTH_MEASURE' IN TYPEOF(sspl\surface_style_parameter_line. style_of_parameter_lines\curve_style.curve_width))) AND ( SIZEOF([ 'INTEGRATED_CNC_SCHEMA.CURVE_STYLE_FONT', ( 'INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT') ] * TYPEOF(sspl\ surface_style_parameter_line.style_of_parameter_lines\ curve_style.curve_font)) = 1)))) = 0))) = 0))) = 0))) = 0; WR11: SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT ( SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (ssu <* QUERY (pss <* psa.styles| ( 'INTEGRATED_CNC_SCHEMA.SURFACE_STYLE_USAGE' IN TYPEOF(pss)))| NOT (SIZEOF(QUERY (sscg <* QUERY (sses <* ssu\ surface_style_usage.style\surface_side_style.styles| ( 'INTEGRATED_CNC_SCHEMA.' + 'SURFACE_STYLE_CONTROL_GRID' IN TYPEOF(sses)))| NOT (((('INTEGRATED_CNC_SCHEMA.CURVE_STYLE' IN TYPEOF(sscg\surface_style_control_grid. style_of_control_grid)) AND (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.COLOUR_RGB', ('INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(sscg\ surface_style_control_grid.style_of_control_grid\curve_style. curve_colour)) = 1)) AND ('INTEGRATED_CNC_SCHEMA.' + 'POSITIVE_LENGTH_MEASURE' IN TYPEOF(sscg\ surface_style_control_grid.style_of_control_grid\curve_style. curve_width))) AND (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.CURVE_STYLE_FONT', ( 'INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT') ] * TYPEOF(sscg\ surface_style_control_grid.style_of_control_grid\curve_style. curve_font)) = 1)))) = 0))) = 0))) = 0))) = 0; WR12: SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT ( SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (ssu <* QUERY (pss <* psa.styles| ( 'INTEGRATED_CNC_SCHEMA.SURFACE_STYLE_USAGE' IN TYPEOF(pss)))| NOT (SIZEOF(QUERY (sssh <* QUERY (sses <* ssu\ surface_style_usage.style\surface_side_style.styles| ( 'INTEGRATED_CNC_SCHEMA.' + 'SURFACE_STYLE_SILHOUETTE' IN TYPEOF(sses)))| NOT (((('INTEGRATED_CNC_SCHEMA.CURVE_STYLE' IN TYPEOF(sssh\surface_style_silhouette.style_of_silhouette)) AND (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.COLOUR_RGB', ( 'INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(sssh\surface_style_silhouette.style_of_silhouette\ curve_style.curve_colour)) = 1)) AND ( 'INTEGRATED_CNC_SCHEMA.' + 'POSITIVE_LENGTH_MEASURE' IN TYPEOF(sssh\surface_style_silhouette.style_of_silhouette\ curve_style.curve_width))) AND (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.CURVE_STYLE_FONT', ( 'INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT') ] * TYPEOF(sssh\ surface_style_silhouette.style_of_silhouette\curve_style. curve_font)) = 1)))) = 0))) = 0))) = 0))) = 0; WR13: SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT ( SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (ssu <* QUERY (pss <* psa.styles| ( 'INTEGRATED_CNC_SCHEMA.SURFACE_STYLE_USAGE' IN TYPEOF(pss)))| NOT (SIZEOF(QUERY (sssc <* QUERY (sses <* ssu\ surface_style_usage.style\surface_side_style.styles| ( 'INTEGRATED_CNC_SCHEMA.' + 'SURFACE_STYLE_SEGMENTATION_CURVE' IN TYPEOF(sses)))| NOT (((( 'INTEGRATED_CNC_SCHEMA.CURVE_STYLE' IN TYPEOF(sssc\ surface_style_segmentation_curve.style_of_segmentation_curve) ) AND (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.COLOUR_RGB', ( 'INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(sssc\surface_style_segmentation_curve. style_of_segmentation_curve\curve_style.curve_colour)) = 1)) AND ('INTEGRATED_CNC_SCHEMA.' + 'POSITIVE_LENGTH_MEASURE' IN TYPEOF(sssc\surface_style_segmentation_curve. style_of_segmentation_curve\curve_style.curve_width))) AND ( SIZEOF([ 'INTEGRATED_CNC_SCHEMA.CURVE_STYLE_FONT', ( 'INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT') ] * TYPEOF(sssc\ surface_style_segmentation_curve.style_of_segmentation_curve\ curve_style.curve_font)) = 1)))) = 0))) = 0))) = 0))) = 0; WR14: SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT ( SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (ssu <* QUERY (pss <* psa.styles| ( 'INTEGRATED_CNC_SCHEMA.SURFACE_STYLE_USAGE' IN TYPEOF(pss)))| NOT (SIZEOF(QUERY (ssbd <* QUERY (sses <* ssu\ surface_style_usage.style\surface_side_style.styles| ( 'INTEGRATED_CNC_SCHEMA.' + 'SURFACE_STYLE_BOUNDARY' IN TYPEOF (sses)))| NOT (((('INTEGRATED_CNC_SCHEMA.CURVE_STYLE' IN TYPEOF(ssbd\surface_style_boundary.style_of_boundary)) AND ( SIZEOF([ 'INTEGRATED_CNC_SCHEMA.COLOUR_RGB', ( 'INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(ssbd\surface_style_boundary.style_of_boundary\ curve_style.curve_colour)) = 1)) AND ( 'INTEGRATED_CNC_SCHEMA.' + 'POSITIVE_LENGTH_MEASURE' IN TYPEOF(ssbd\surface_style_boundary.style_of_boundary\ curve_style.curve_width))) AND (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.CURVE_STYLE_FONT', ( 'INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT') ] * TYPEOF(ssbd\ surface_style_boundary.style_of_boundary\curve_style. curve_font)) = 1)))) = 0))) = 0))) = 0))) = 0; END_ENTITY; -- 10303-517: aic_mechanical_design_geometric_presentation ENTITY mechanical_design_shaded_presentation_area SUBTYPE OF (presentation_area); WHERE WR1: SIZEOF(QUERY (it1 <* SELF.items| NOT (( 'INTEGRATED_CNC_SCHEMA.AXIS2_PLACEMENT' IN TYPEOF(it1)) OR ( 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM' IN TYPEOF(it1)) AND ( 'INTEGRATED_CNC_SCHEMA.PRESENTATION_VIEW' IN TYPEOF(it1\ mapped_item.mapping_source.mapped_representation))))) = 0; WR2: SIZEOF(QUERY (pv <* QUERY (mi1 <* QUERY (it1 <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM' IN TYPEOF(it1)))| ( 'INTEGRATED_CNC_SCHEMA.PRESENTATION_VIEW' IN TYPEOF(mi1\ mapped_item.mapping_source.mapped_representation)))| NOT ( SIZEOF(QUERY (it2 <* pv\mapped_item.mapping_source. mapped_representation\representation.items| NOT (( 'INTEGRATED_CNC_SCHEMA.AXIS2_PLACEMENT' IN TYPEOF(it2)) OR (( 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM' IN TYPEOF(it2)) AND NOT ( 'INTEGRATED_CNC_SCHEMA.' + 'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2))) AND NOT ( 'INTEGRATED_CNC_SCHEMA.PRESENTATION_VIEW' IN TYPEOF(it2\ mapped_item.mapping_source.mapped_representation))) OR ( 'INTEGRATED_CNC_SCHEMA.' + 'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2)) AND NOT ('INTEGRATED_CNC_SCHEMA.' + 'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' IN TYPEOF(it2\mapped_item.mapping_source.mapped_representation)) )) = 0))) = 0; WR3: (SIZEOF(QUERY (ps <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'PRESENTATION_SIZE.UNIT')| NOT ((ps.size\planar_extent. size_in_x > 0) AND (ps.size\planar_extent.size_in_y > 0)))) = 0) AND (SIZEOF(QUERY (pset <* QUERY (ais <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'AREA_IN_SET.AREA')| ( 'INTEGRATED_CNC_SCHEMA.' + 'PRESENTATION_SET' IN TYPEOF(ais. in_set)))| (SIZEOF(QUERY (psize <* USEDIN(pset, 'INTEGRATED_CNC_SCHEMA.' + 'PRESENTATION_SIZE.UNIT')| NOT (( psize.size\planar_extent.size_in_x > 0) AND (psize.size\ planar_extent.size_in_y > 0)))) = 0))) = 0); WR4: (SIZEOF(QUERY (psize <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'PRESENTATION_SIZE.UNIT')| ('INTEGRATED_CNC_SCHEMA.' + 'AXIS2_PLACEMENT_2D' IN TYPEOF(psize.size.placement)))) = 1) AND (SIZEOF(QUERY (pset <* QUERY (ais <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'AREA_IN_SET.AREA')| ( 'INTEGRATED_CNC_SCHEMA.' + 'PRESENTATION_SET' IN TYPEOF(ais. in_set)))| (SIZEOF(QUERY (psize <* USEDIN(pset, 'INTEGRATED_CNC_SCHEMA.' + 'PRESENTATION_SIZE.UNIT')| NOT ( 'INTEGRATED_CNC_SCHEMA.' + 'AXIS2_PLACEMENT_2D' IN TYPEOF( psize.size.placement)))) = 0))) = 0); WR5: SIZEOF(QUERY (pv <* QUERY (mi1 <* QUERY (it1 <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM' IN TYPEOF(it1)))| ( 'INTEGRATED_CNC_SCHEMA.PRESENTATION_VIEW' IN TYPEOF(mi1\ mapped_item.mapping_source.mapped_representation)))| NOT ( SIZEOF(QUERY (ci <* pv\mapped_item.mapping_source. mapped_representation\representation.items| ( 'INTEGRATED_CNC_SCHEMA.' + 'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(ci)) AND (SIZEOF([ ('INTEGRATED_CNC_SCHEMA.' + 'CAMERA_MODEL_D3'), ('INTEGRATED_CNC_SCHEMA.' + 'CAMERA_MODEL_D3_WITH_HLHSR'), ('INTEGRATED_CNC_SCHEMA.' + 'CAMERA_MODEL_WITH_LIGHT_SOURCES') ] * TYPEOF(ci\ mapped_item.mapping_source.mapping_origin)) = 1))) = 0))) = 0; END_ENTITY; -- 10303-518: aic_mechanical_design_shaded_presentation ENTITY mechanical_design_shaded_presentation_representation SUBTYPE OF (representation); WHERE WR1: SIZEOF(QUERY (it <* SELF.items| NOT (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM', 'INTEGRATED_CNC_SCHEMA.STYLED_ITEM', 'INTEGRATED_CNC_SCHEMA.AXIS2_PLACEMENT', 'INTEGRATED_CNC_SCHEMA.CAMERA_MODEL_D3' ] * TYPEOF(it)) = 1)) ) = 0; WR2: SIZEOF(QUERY (mi <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM' IN TYPEOF(it)))| NOT ( SIZEOF([ ('INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION'), ('INTEGRATED_CNC_SCHEMA.' + 'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION') ] * TYPEOF(mi\mapped_item.mapping_source.mapped_representation)) = 1))) = 0; WR3: SIZEOF(QUERY (smi <* QUERY (si <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| ( 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM' IN TYPEOF(si\styled_item. item)))| NOT ('INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION' IN TYPEOF(smi\styled_item.item\ mapped_item.mapping_source.mapped_representation)))) = 0; WR4: SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT ( SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (pss <* psa.styles| NOT (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.POINT_STYLE', 'INTEGRATED_CNC_SCHEMA.CURVE_STYLE', 'INTEGRATED_CNC_SCHEMA.SURFACE_STYLE_USAGE' ] * TYPEOF(pss)) = 1))) = 0))) = 0))) = 0; WR5: SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT ( SIZEOF(QUERY (psbc <* QUERY (psa <* si\styled_item.styles| ( 'INTEGRATED_CNC_SCHEMA.' + 'PRESENTATION_STYLE_BY_CONTEXT' IN TYPEOF(psa)))| NOT (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.REPRESENTATION' ] * TYPEOF(psbc\ presentation_style_by_context.style_context)) = 1))) = 0))) = 0; WR6: SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT ( SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (ps <* QUERY (pss <* psa.styles| ( 'INTEGRATED_CNC_SCHEMA.POINT_STYLE' IN TYPEOF(pss)))| NOT ((( 'INTEGRATED_CNC_SCHEMA.MARKER_TYPE' IN TYPEOF(ps\point_style. marker)) AND ('INTEGRATED_CNC_SCHEMA.POSITIVE_LENGTH_MEASURE' IN TYPEOF(ps\point_style.marker_size))) AND (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.COLOUR_RGB', ('INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(ps\point_style .marker_colour)) = 1)))) = 0))) = 0))) = 0; WR7: SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT ( SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (cs <* QUERY (pss <* psa.styles| ( 'INTEGRATED_CNC_SCHEMA.CURVE_STYLE' IN TYPEOF(pss)))| NOT ((( SIZEOF([ 'INTEGRATED_CNC_SCHEMA.COLOUR_RGB', ( 'INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(cs\curve_style.curve_colour)) = 1) AND ( 'INTEGRATED_CNC_SCHEMA.POSITIVE_LENGTH_MEASURE' IN TYPEOF(cs\ curve_style.curve_width))) AND (SIZEOF([ ( 'INTEGRATED_CNC_SCHEMA.' + 'CURVE_STYLE_FONT'), ( 'INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT') ] * TYPEOF(cs\ curve_style.curve_font)) = 1)))) = 0))) = 0))) = 0; WR8: SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT ( SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (ssu <* QUERY (pss <* psa.styles| ( 'INTEGRATED_CNC_SCHEMA.SURFACE_STYLE_USAGE' IN TYPEOF(pss)))| NOT ('INTEGRATED_CNC_SCHEMA.SURFACE_SIDE_STYLE' IN TYPEOF( ssu\surface_style_usage.style)))) = 0))) = 0))) = 0; WR9: SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT ( SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (ssu <* QUERY (pss <* psa.styles| ( 'INTEGRATED_CNC_SCHEMA.SURFACE_STYLE_USAGE' IN TYPEOF(pss)))| NOT (SIZEOF(QUERY (sses <* ssu\surface_style_usage.style\ surface_side_style.styles| NOT (SIZEOF([ ( 'INTEGRATED_CNC_SCHEMA.' + 'SURFACE_STYLE_PARAMETER_LINE'), ( 'INTEGRATED_CNC_SCHEMA.' + 'SURFACE_STYLE_CONTROL_GRID'), ( 'INTEGRATED_CNC_SCHEMA.' + 'SURFACE_STYLE_SILHOUETTE'), ( 'INTEGRATED_CNC_SCHEMA.' + 'SURFACE_STYLE_SEGMENTATION_CURVE' ), ('INTEGRATED_CNC_SCHEMA.' + 'SURFACE_STYLE_BOUNDARY'), ( 'INTEGRATED_CNC_SCHEMA.' + 'SURFACE_STYLE_FILL_AREA'), ( 'INTEGRATED_CNC_SCHEMA.' + 'SURFACE_STYLE_RENDERING') ] * TYPEOF(sses)) = 1))) = 0))) = 0))) = 0))) = 0; WR10: SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT ( SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (ssu <* QUERY (pss <* psa.styles| ( 'INTEGRATED_CNC_SCHEMA.SURFACE_STYLE_USAGE' IN TYPEOF(pss)))| NOT (SIZEOF(QUERY (ssfa <* QUERY (sses <* ssu\ surface_style_usage.style\surface_side_style.styles| ( 'INTEGRATED_CNC_SCHEMA.SURFACE_STYLE_FILL_AREA' IN TYPEOF( sses)))| NOT (SIZEOF(QUERY (fss <* ssfa\ surface_style_fill_area.fill_area.fill_styles| NOT (( 'INTEGRATED_CNC_SCHEMA.' + 'FILL_AREA_STYLE_COLOUR' IN TYPEOF (fss)) AND (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.COLOUR_RGB', ( 'INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(fss\fill_area_style_colour.fill_colour)) = 1)))) = 0))) = 0))) = 0))) = 0))) = 0; WR11: SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT ( SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (ssu <* QUERY (pss <* psa.styles| ( 'INTEGRATED_CNC_SCHEMA.SURFACE_STYLE_USAGE' IN TYPEOF(pss)))| NOT (SIZEOF(QUERY (sspl <* QUERY (sses <* ssu\ surface_style_usage.style\surface_side_style.styles| ( 'INTEGRATED_CNC_SCHEMA.' + 'SURFACE_STYLE_PARAMETER_LINE' IN TYPEOF(sses)))| NOT (((('INTEGRATED_CNC_SCHEMA.CURVE_STYLE' IN TYPEOF(sspl\surface_style_parameter_line. style_of_parameter_lines)) AND (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.COLOUR_RGB', ('INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(sspl\ surface_style_parameter_line.style_of_parameter_lines\ curve_style.curve_colour)) = 1)) AND ( 'INTEGRATED_CNC_SCHEMA.POSITIVE_LENGTH_MEASURE' IN TYPEOF( sspl\surface_style_parameter_line.style_of_parameter_lines\ curve_style.curve_width))) AND (SIZEOF([ ( 'INTEGRATED_CNC_SCHEMA.' + 'CURVE_STYLE_FONT'), ( 'INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT') ] * TYPEOF(sspl\ surface_style_parameter_line.style_of_parameter_lines\ curve_style.curve_font)) = 1) OR ( 'INTEGRATED_CNC_SCHEMA.CURVE_STYLE_RENDERING' IN TYPEOF(sspl\ surface_style_parameter_line.style_of_parameter_lines)) AND ( SIZEOF([ 'INTEGRATED_CNC_SCHEMA.COLOUR_RGB', ( 'INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(sspl\surface_style_parameter_line. style_of_parameter_lines\curve_style_rendering. rendering_properties.rendered_colour)) = 1)))) = 0))) = 0))) = 0))) = 0; WR12: SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT ( SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (ssu <* QUERY (pss <* psa.styles| ( 'INTEGRATED_CNC_SCHEMA.SURFACE_STYLE_USAGE' IN TYPEOF(pss)))| NOT (SIZEOF(QUERY (sscg <* QUERY (sses <* ssu\ surface_style_usage.style\surface_side_style.styles| ( 'INTEGRATED_CNC_SCHEMA.' + 'SURFACE_STYLE_CONTROL_GRID' IN TYPEOF(sses)))| NOT (((('INTEGRATED_CNC_SCHEMA.CURVE_STYLE' IN TYPEOF(sscg\surface_style_control_grid. style_of_control_grid)) AND (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.COLOUR_RGB', ('INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(sscg\ surface_style_control_grid.style_of_control_grid\curve_style. curve_colour)) = 1)) AND ( 'INTEGRATED_CNC_SCHEMA.POSITIVE_LENGTH_MEASURE' IN TYPEOF( sscg\surface_style_control_grid.style_of_control_grid\ curve_style.curve_width))) AND (SIZEOF([ ( 'INTEGRATED_CNC_SCHEMA.' + 'CURVE_STYLE_FONT'), ( 'INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT') ] * TYPEOF(sscg\ surface_style_control_grid.style_of_control_grid\curve_style. curve_font)) = 1) OR ( 'INTEGRATED_CNC_SCHEMA.CURVE_STYLE_RENDERING' IN TYPEOF(sscg\ surface_style_control_grid.style_of_control_grid)) AND ( SIZEOF([ 'INTEGRATED_CNC_SCHEMA.COLOUR_RGB', ( 'INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(sscg\surface_style_control_grid. style_of_control_grid\curve_style_rendering. rendering_properties.rendered_colour)) = 1)))) = 0))) = 0))) = 0))) = 0; WR13: SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT ( SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (ssu <* QUERY (pss <* psa.styles| ( 'INTEGRATED_CNC_SCHEMA.SURFACE_STYLE_USAGE' IN TYPEOF(pss)))| NOT (SIZEOF(QUERY (sssh <* QUERY (sses <* ssu\ surface_style_usage.style\surface_side_style.styles| ( 'INTEGRATED_CNC_SCHEMA.' + 'SURFACE_STYLE_SILHOUETTE' IN TYPEOF(sses)))| NOT (((('INTEGRATED_CNC_SCHEMA.CURVE_STYLE' IN TYPEOF(sssh\surface_style_silhouette.style_of_silhouette)) AND (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.COLOUR_RGB', ( 'INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(sssh\surface_style_silhouette.style_of_silhouette\ curve_style.curve_colour)) = 1)) AND ( 'INTEGRATED_CNC_SCHEMA.POSITIVE_LENGTH_MEASURE' IN TYPEOF( sssh\surface_style_silhouette.style_of_silhouette\curve_style .curve_width))) AND (SIZEOF([ ('INTEGRATED_CNC_SCHEMA.' + 'CURVE_STYLE_FONT'), ('INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT') ] * TYPEOF(sssh\ surface_style_silhouette.style_of_silhouette\curve_style. curve_font)) = 1) OR ( 'INTEGRATED_CNC_SCHEMA.CURVE_STYLE_RENDERING' IN TYPEOF(sssh\ surface_style_silhouette.style_of_silhouette)) AND (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.COLOUR_RGB', ('INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(sssh\ surface_style_silhouette.style_of_silhouette\ curve_style_rendering.rendering_properties.rendered_colour)) = 1)))) = 0))) = 0))) = 0))) = 0; WR14: SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT ( SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (ssu <* QUERY (pss <* psa.styles| ( 'INTEGRATED_CNC_SCHEMA.SURFACE_STYLE_USAGE' IN TYPEOF(pss)))| NOT (SIZEOF(QUERY (sssc <* QUERY (sses <* ssu\ surface_style_usage.style\surface_side_style.styles| ( 'INTEGRATED_CNC_SCHEMA.' + 'SURFACE_STYLE_SEGMENTATION_CURVE' IN TYPEOF(sses)))| NOT (((( 'INTEGRATED_CNC_SCHEMA.CURVE_STYLE' IN TYPEOF(sssc\ surface_style_segmentation_curve.style_of_segmentation_curve) ) AND (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.COLOUR_RGB', ( 'INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(sssc\surface_style_segmentation_curve. style_of_segmentation_curve\curve_style.curve_colour)) = 1)) AND ('INTEGRATED_CNC_SCHEMA.POSITIVE_LENGTH_MEASURE' IN TYPEOF(sssc\surface_style_segmentation_curve. style_of_segmentation_curve\curve_style.curve_width))) AND ( SIZEOF([ ('INTEGRATED_CNC_SCHEMA.' + 'CURVE_STYLE_FONT'), ( 'INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT') ] * TYPEOF(sssc\ surface_style_segmentation_curve.style_of_segmentation_curve\ curve_style.curve_font)) = 1) OR ( 'INTEGRATED_CNC_SCHEMA.CURVE_STYLE_RENDERING' IN TYPEOF(sssc\ surface_style_segmentation_curve.style_of_segmentation_curve) ) AND (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.COLOUR_RGB', ( 'INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(sssc\surface_style_segmentation_curve. style_of_segmentation_curve\curve_style_rendering. rendering_properties.rendered_colour)) = 1)))) = 0))) = 0))) = 0))) = 0; WR15: SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT ( SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (ssu <* QUERY (pss <* psa.styles| ( 'INTEGRATED_CNC_SCHEMA.SURFACE_STYLE_USAGE' IN TYPEOF(pss)))| NOT (SIZEOF(QUERY (ssbd <* QUERY (sses <* ssu\ surface_style_usage.style\surface_side_style.styles| ( 'INTEGRATED_CNC_SCHEMA.' + 'SURFACE_STYLE_BOUNDARY' IN TYPEOF (sses)))| NOT (((('INTEGRATED_CNC_SCHEMA.CURVE_STYLE' IN TYPEOF(ssbd\surface_style_boundary.style_of_boundary)) AND ( SIZEOF([ 'INTEGRATED_CNC_SCHEMA.COLOUR_RGB', ( 'INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(ssbd\surface_style_boundary.style_of_boundary\ curve_style.curve_colour)) = 1)) AND ( 'INTEGRATED_CNC_SCHEMA.POSITIVE_LENGTH_MEASURE' IN TYPEOF( ssbd\surface_style_boundary.style_of_boundary\curve_style. curve_width))) AND (SIZEOF([ ('INTEGRATED_CNC_SCHEMA.' + 'CURVE_STYLE_FONT'), ('INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT') ] * TYPEOF(ssbd\ surface_style_boundary.style_of_boundary\curve_style. curve_font)) = 1) OR ( 'INTEGRATED_CNC_SCHEMA.CURVE_STYLE_RENDERING' IN TYPEOF(ssbd\ surface_style_boundary.style_of_boundary)) AND (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.COLOUR_RGB', ('INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(ssbd\ surface_style_boundary.style_of_boundary\ curve_style_rendering.rendering_properties.rendered_colour)) = 1)))) = 0))) = 0))) = 0))) = 0; WR16: SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT ( SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (ssu <* QUERY (pss <* psa.styles| ( 'INTEGRATED_CNC_SCHEMA.SURFACE_STYLE_USAGE' IN TYPEOF(pss)))| NOT (SIZEOF(QUERY (ssre <* QUERY (sses <* ssu\ surface_style_usage.style\surface_side_style.styles| ( 'INTEGRATED_CNC_SCHEMA.' + 'SURFACE_STYLE_RENDERING' IN TYPEOF(sses)))| NOT (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.COLOUR_RGB', ('INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(ssre\ surface_style_rendering.surface_colour)) = 1))) = 0))) = 0))) = 0))) = 0; END_ENTITY; -- 10303-518: aic_mechanical_design_shaded_presentation ENTITY mechanism_representation SUBTYPE OF (representation); SELF\representation.context_of_items : geometric_representation_context ; SELF\representation.items : SET [1:?] OF pair_representation_relationship; represented_topology : kinematic_topology_representation_select; DERIVE represented_joints : SET [1:?] OF kinematic_joint := collect_joints( items); WHERE WR1: (('INTEGRATED_CNC_SCHEMA.KINEMATIC_TOPOLOGY_STRUCTURE' IN TYPEOF( represented_topology)) AND (represented_joints :=: represented_topology.items) OR ( 'INTEGRATED_CNC_SCHEMA.KINEMATIC_TOPOLOGY_DIRECTED_STRUCTURE' IN TYPEOF(represented_topology)) AND (represented_joints :=: get_kinematic_joints_from_oriented_joints( represented_topology.items))) OR ( 'INTEGRATED_CNC_SCHEMA.KINEMATIC_TOPOLOGY_NETWORK_STRUCTURE' IN TYPEOF(represented_topology)) AND (represented_joints :=: get_kinematic_joints_from_kinematic_loops( represented_topology.items)); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY mechanism_state_representation SUBTYPE OF (representation); SELF\representation.items : SET [1:?] OF pair_value; represented_mechanism : mechanism_representation; DERIVE SELF\representation.context_of_items : geometric_representation_context := represented_mechanism.context_of_items; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY milling_type_operation SUBTYPE OF (machining_operation); WHERE WR1: (verify_optional_action_property (SELF, 'overcut length')) AND (verify_length_measure_action_property (SELF, 'overcut length')); WR2: ((verify_optional_relating_amr_with_name (SELF, 'approach', ['INTEGRATED_CNC_SCHEMA.MACHINING_STRATEGY_RELATIONSHIP'])) AND (verify_related_type_for_amr_with_name (SELF, 'approach', ['INTEGRATED_CNC_SCHEMA.MACHINING_STRATEGY_RELATIONSHIP'], ['INTEGRATED_CNC_SCHEMA.MACHINING_APPROACH_RETRACT_STRATEGY'])) ); WR3: ((verify_optional_relating_amr_with_name (SELF, 'retract', ['INTEGRATED_CNC_SCHEMA.MACHINING_STRATEGY_RELATIONSHIP'])) AND (verify_related_type_for_amr_with_name (SELF, 'retract', ['INTEGRATED_CNC_SCHEMA.MACHINING_STRATEGY_RELATIONSHIP'], ['INTEGRATED_CNC_SCHEMA.MACHINING_APPROACH_RETRACT_STRATEGY'])) ); WR4: ((verify_optional_relating_amr_with_name (SELF, 'machining', ['INTEGRATED_CNC_SCHEMA.MACHINING_STRATEGY_RELATIONSHIP'])) AND (verify_related_type_for_amr_with_name (SELF, 'machining', ['INTEGRATED_CNC_SCHEMA.MACHINING_STRATEGY_RELATIONSHIP'], ['INTEGRATED_CNC_SCHEMA.MILLING_TYPE_STRATEGY'])) ); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY milling_type_strategy SUBTYPE OF (machining_strategy); WHERE WR1: NOT (SELF.description IN ['bidirectional', 'bidirectional contour', 'center milling', 'contour bidirectional', 'contour parallel', 'contour spiral', 'explicit', 'unidirectional']) OR ((verify_optional_action_property (SELF, 'overlap ratio')) AND (verify_ratio_measure_action_property (SELF, 'overlap ratio')) AND (verify_optional_action_property (SELF, 'multiple passes')) AND (verify_enumeration_action_property (SELF, 'multiple passes', ['multiple passes allowed', 'multiple passes not allowed'])) ); WR2: NOT (SELF.description = 'bidirectional') OR ((verify_optional_action_property (SELF, 'feed direction')) AND (verify_rep_item_for_action_property (SELF, 'feed direction', ['INTEGRATED_CNC_SCHEMA.DIRECTION'])) AND (verify_optional_action_property (SELF, 'stepover direction')) AND (verify_enumeration_action_property (SELF, 'stepover direction', ['left', 'right'])) AND (verify_optional_action_property (SELF, 'connection strategy')) AND (verify_enumeration_action_property (SELF, 'connection strategy', ['straight line', 'lift shift plunge', 'degouge', 'loop back'])) ); WR3: NOT (SELF.description IN ['bidirectional contour', 'contour bidirectional']) OR ((verify_optional_action_property (SELF, 'feed direction')) AND (verify_rep_item_for_action_property (SELF, 'feed direction', ['INTEGRATED_CNC_SCHEMA.DIRECTION'])) AND (verify_optional_action_property (SELF, 'stepover direction')) AND (verify_enumeration_action_property (SELF, 'stepover direction', ['left', 'right'])) AND (verify_optional_action_property (SELF, 'rotation direction')) AND (verify_enumeration_action_property (SELF, 'rotation direction', ['clockwise', 'counterclockwise'])) AND (verify_optional_action_property (SELF, 'spiral cutmode')) AND (verify_enumeration_action_property (SELF, 'spiral cutmode', ['climb', 'conventional'])) ); WR4: NOT (SELF.description IN ['contour parallel', 'contour spiral']) OR ((verify_optional_action_property (SELF, 'rotation direction')) AND (verify_enumeration_action_property (SELF, 'rotation direction', ['clockwise', 'counterclockwise'])) AND (verify_optional_action_property (SELF, 'cutmode')) AND (verify_enumeration_action_property (SELF, 'cutmode', ['climb', 'conventional'])) ); WR5: NOT (SELF.description = 'unidirectional') OR ((verify_optional_action_property (SELF, 'feed direction')) AND (verify_rep_item_for_action_property (SELF, 'feed direction', ['INTEGRATED_CNC_SCHEMA.DIRECTION'])) AND (verify_optional_action_property (SELF, 'cutmode')) AND (verify_enumeration_action_property (SELF, 'cutmode', ['climb', 'conventional'])) ); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY modified_geometric_tolerance SUBTYPE OF (geometric_tolerance); modifier : limit_condition; END_ENTITY; -- 10303-47: shape_tolerance_schema ENTITY modified_pattern SUBTYPE OF (shape_aspect); WHERE WR1: SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT')| ( 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.REPLICATE_FEATURE', 'INTEGRATED_CNC_SCHEMA.INSTANCED_FEATURE' ] * TYPEOF(fcr. related_shape_aspect.of_shape.definition)) >= 1) AND (fcr. description = 'base shape'))) = 1; WR2: SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT')| ( 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.CIRCULAR_PATTERN', 'INTEGRATED_CNC_SCHEMA.RECTANGULAR_PATTERN' ] * TYPEOF(fcr. related_shape_aspect.of_shape.definition)) = 1) AND (fcr. description = 'base pattern'))) = 1; WR3: SIZEOF(QUERY (sar <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT')| (SIZEOF(QUERY (msar <* USEDIN(sar. related_shape_aspect, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| ((SIZEOF([ 'INTEGRATED_CNC_SCHEMA.PATTERN_OFFSET_MEMBERSHIP', 'INTEGRATED_CNC_SCHEMA.PATTERN_OMIT_MEMBERSHIP' ] * TYPEOF( sar)) = 1) AND (sar.description = 'modified pattern')) AND ( sar :<>: msar))) >= 1))) = 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY multiple_arity_boolean_expression ABSTRACT SUPERTYPE OF (ONEOF(and_expression, or_expression)) SUBTYPE OF (boolean_expression, multiple_arity_generic_expression); SELF\multiple_arity_generic_expression.operands : LIST [2:?] OF boolean_expression; END_ENTITY; -- 13584-20: iso13584_expressions_schema ENTITY multiple_arity_generic_expression ABSTRACT SUPERTYPE SUBTYPE OF (generic_expression); operands : LIST [2:?] OF generic_expression; END_ENTITY; -- 13584-20: iso13584_generic_expressions_schema ENTITY name_attribute; attribute_value : label; named_item : name_attribute_select; END_ENTITY; -- 10303-41: basic_attribute_schema ENTITY named_unit SUPERTYPE OF (ONEOF(si_unit, conversion_based_unit, context_dependent_unit) ANDOR ONEOF(length_unit, mass_unit, time_unit , plane_angle_unit, solid_angle_unit, ratio_unit)); dimensions : dimensional_exponents; END_ENTITY; -- 10303-41: measure_schema ENTITY next_assembly_usage_occurrence SUBTYPE OF (assembly_component_usage); END_ENTITY; -- 10303-44: product_structure_schema ENTITY ngon_closed_profile SUBTYPE OF (shape_aspect); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape.definition); WR2: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))) = 1))) = 0; WR3: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT ((SIZEOF(impl_rep. used_representation.items) >= 3) AND (SIZEOF(impl_rep. used_representation.items) <= 4)))) = 0))) = 0; WR4: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)) AND (SIZEOF(QUERY (srwp_i <* pdr. used_representation.items| ((((srwp_i.name = 'orientation') OR (srwp_i.name = 'number of sides')) OR (srwp_i.name = 'circumscribed diameter')) OR (srwp_i.name = 'corner radius') ) OR (srwp_i.name = 'diameter across flats'))) = SIZEOF(pdr. used_representation.items)))) = 1))) = 1; WR5: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| ('INTEGRATED_CNC_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0; WR6: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (( 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (it)) AND ('INTEGRATED_CNC_SCHEMA.COUNT_MEASURE' IN TYPEOF(it \measure_with_unit.value_component))) AND (it.name = 'number of sides'))) = 1))) = 0))) = 0; WR7: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name IN [ 'circumscribed diameter', 'diameter across flats' ]))) = 1))) = 0))) = 0; WR8: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'corner radius'))) <= 1))) = 0))) = 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY ngon_shape_representation SUBTYPE OF (shape_representation_with_parameters); WHERE WR1: SIZEOF(SELF.items) = 5; WR2: SIZEOF(QUERY (it <* SELF.items| ('INTEGRATED_CNC_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1; WR3: SIZEOF(QUERY (it <* SELF.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'length'))) = 1; WR4: SIZEOF(QUERY (it <* SELF.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'corner radius'))) = 1; WR5: SIZEOF(QUERY (it <* SELF.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name IN [ 'circumscribed diameter', 'diameter across flats' ]))) = 1; WR6: SIZEOF(QUERY (it <* SELF.items| (( 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (it)) AND ('INTEGRATED_CNC_SCHEMA.COUNT_MEASURE' IN TYPEOF(it \measure_with_unit.value_component))) AND (it.name = 'number of sides'))) = 1; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY non_manifold_surface_shape_representation SUBTYPE OF (shape_representation); WHERE WR1: SIZEOF(QUERY (it <* SELF.items| NOT (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.FACE_BASED_SURFACE_MODEL', 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM', 'INTEGRATED_CNC_SCHEMA.AXIS2_PLACEMENT_3D' ] * TYPEOF(it)) = 1))) = 0; WR2: SIZEOF(QUERY (it <* SELF.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.FACE_BASED_SURFACE_MODEL', 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM' ] * TYPEOF(it)) = 1))) > 0; WR3: SIZEOF(QUERY (mi <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM' IN TYPEOF(it)))| NOT (( 'INTEGRATED_CNC_SCHEMA.' + 'NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION' IN TYPEOF(mi\ mapped_item.mapping_source.mapped_representation)) AND ( SIZEOF(QUERY (mr_it <* mi\mapped_item.mapping_source. mapped_representation.items| ( 'INTEGRATED_CNC_SCHEMA.FACE_BASED_SURFACE_MODEL' IN TYPEOF( mr_it)))) > 0)))) = 0; WR4: SIZEOF(QUERY (fbsm <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.FACE_BASED_SURFACE_MODEL' IN TYPEOF(it )))| NOT (SIZEOF(QUERY (cfs <* fbsm\face_based_surface_model. fbsm_faces| NOT (SIZEOF(QUERY (fa <* cfs.cfs_faces| NOT ( SIZEOF([ 'INTEGRATED_CNC_SCHEMA.FACE_SURFACE', 'INTEGRATED_CNC_SCHEMA.ORIENTED_FACE' ] * TYPEOF(fa)) = 1))) = 0))) = 0))) = 0; WR5: SIZEOF(QUERY (fbsm <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.FACE_BASED_SURFACE_MODEL' IN TYPEOF(it )))| NOT (SIZEOF(QUERY (cfs <* fbsm\face_based_surface_model. fbsm_faces| NOT (SIZEOF(QUERY (f_sf <* QUERY (fa <* cfs. cfs_faces| ('INTEGRATED_CNC_SCHEMA.FACE_SURFACE' IN TYPEOF(fa )))| NOT (('INTEGRATED_CNC_SCHEMA.ADVANCED_FACE' IN TYPEOF( f_sf)) OR nmsf_surface_check(f_sf\face_surface.face_geometry) ))) = 0))) = 0))) = 0; WR6: SIZEOF(QUERY (fbsm <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.FACE_BASED_SURFACE_MODEL' IN TYPEOF(it )))| NOT (SIZEOF(QUERY (cfs <* fbsm\face_based_surface_model. fbsm_faces| NOT (SIZEOF(QUERY (o_fa <* QUERY (fa <* cfs. cfs_faces| ('INTEGRATED_CNC_SCHEMA.ORIENTED_FACE' IN TYPEOF( fa)))| NOT (('INTEGRATED_CNC_SCHEMA.ADVANCED_FACE' IN TYPEOF( o_fa\oriented_face.face_element)) OR nmsf_surface_check(o_fa\ oriented_face.face_element\face_surface.face_geometry)))) = 0 ))) = 0))) = 0; WR7: SIZEOF(QUERY (fbsm <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.FACE_BASED_SURFACE_MODEL' IN TYPEOF(it )))| NOT (SIZEOF(QUERY (cfs <* fbsm\face_based_surface_model. fbsm_faces| NOT (SIZEOF(QUERY (fa <* cfs.cfs_faces| NOT (( 'INTEGRATED_CNC_SCHEMA.ADVANCED_FACE' IN TYPEOF(fa)) OR ( SIZEOF(QUERY (bnds <* fa.bounds| NOT (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.EDGE_LOOP', 'INTEGRATED_CNC_SCHEMA.VERTEX_LOOP' ] * TYPEOF(bnds.bound)) = 1))) = 0)))) = 0))) = 0))) = 0; WR8: SIZEOF(QUERY (fbsm <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.FACE_BASED_SURFACE_MODEL' IN TYPEOF(it )))| NOT (SIZEOF(QUERY (cfs <* fbsm\face_based_surface_model. fbsm_faces| NOT (SIZEOF(QUERY (fa <* cfs.cfs_faces| NOT (( 'INTEGRATED_CNC_SCHEMA.ADVANCED_FACE' IN TYPEOF(fa)) OR ( SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds| ( 'INTEGRATED_CNC_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds\path.edge_list| NOT ( 'INTEGRATED_CNC_SCHEMA.EDGE_CURVE' IN TYPEOF(oe.edge_element) ))) = 0))) = 0)))) = 0))) = 0))) = 0; WR9: SIZEOF(QUERY (fbsm <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.FACE_BASED_SURFACE_MODEL' IN TYPEOF(it )))| NOT (SIZEOF(QUERY (cfs <* fbsm\face_based_surface_model. fbsm_faces| NOT (SIZEOF(QUERY (fa <* cfs.cfs_faces| NOT (( 'INTEGRATED_CNC_SCHEMA.ADVANCED_FACE' IN TYPEOF(fa)) OR ( SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds| ( 'INTEGRATED_CNC_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe_cv <* QUERY (oe <* elp_fbnds\path. edge_list| ('INTEGRATED_CNC_SCHEMA.EDGE_CURVE' IN TYPEOF(oe. edge_element)))| NOT (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.B_SPLINE_CURVE', 'INTEGRATED_CNC_SCHEMA.CONIC', 'INTEGRATED_CNC_SCHEMA.CURVE_REPLICA', 'INTEGRATED_CNC_SCHEMA.LINE', 'INTEGRATED_CNC_SCHEMA.OFFSET_CURVE_3D', 'INTEGRATED_CNC_SCHEMA.PCURVE', 'INTEGRATED_CNC_SCHEMA.POLYLINE', 'INTEGRATED_CNC_SCHEMA.SURFACE_CURVE' ] * TYPEOF(oe_cv. edge_element\edge_curve.edge_geometry)) = 1))) = 0))) = 0)))) = 0))) = 0))) = 0; WR10: SIZEOF(QUERY (fbsm <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.FACE_BASED_SURFACE_MODEL' IN TYPEOF(it )))| NOT (SIZEOF(QUERY (cfs <* fbsm\face_based_surface_model. fbsm_faces| NOT (SIZEOF(QUERY (fa <* cfs.cfs_faces| NOT (( 'INTEGRATED_CNC_SCHEMA.ADVANCED_FACE' IN TYPEOF(fa)) OR ( SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds| ( 'INTEGRATED_CNC_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds\path.edge_list| NOT nmsf_curve_check(oe.edge_element\edge_curve.edge_geometry))) = 0))) = 0)))) = 0))) = 0))) = 0; WR11: SIZEOF(QUERY (fbsm <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.FACE_BASED_SURFACE_MODEL' IN TYPEOF(it )))| NOT (SIZEOF(QUERY (cfs <* fbsm\face_based_surface_model. fbsm_faces| NOT (SIZEOF(QUERY (fa <* cfs.cfs_faces| NOT (( 'INTEGRATED_CNC_SCHEMA.ADVANCED_FACE' IN TYPEOF(fa)) OR ( SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds| ( 'INTEGRATED_CNC_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds\path.edge_list| NOT (( 'INTEGRATED_CNC_SCHEMA.VERTEX_POINT' IN TYPEOF(oe. edge_element.edge_start)) AND ( 'INTEGRATED_CNC_SCHEMA.VERTEX_POINT' IN TYPEOF(oe. edge_element.edge_end))))) = 0))) = 0)))) = 0))) = 0))) = 0; WR12: SIZEOF(QUERY (fbsm <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.FACE_BASED_SURFACE_MODEL' IN TYPEOF(it )))| NOT (SIZEOF(QUERY (cfs <* fbsm\face_based_surface_model. fbsm_faces| NOT (SIZEOF(QUERY (fa <* cfs.cfs_faces| NOT (( 'INTEGRATED_CNC_SCHEMA.ADVANCED_FACE' IN TYPEOF(fa)) OR ( SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds| ( 'INTEGRATED_CNC_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds\path.edge_list| NOT (( SIZEOF([ 'INTEGRATED_CNC_SCHEMA.CARTESIAN_POINT', 'INTEGRATED_CNC_SCHEMA.DEGENERATE_PCURVE', 'INTEGRATED_CNC_SCHEMA.POINT_ON_CURVE', 'INTEGRATED_CNC_SCHEMA.POINT_ON_SURFACE' ] * TYPEOF(oe. edge_element.edge_start\vertex_point.vertex_geometry)) = 1) AND (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.CARTESIAN_POINT', 'INTEGRATED_CNC_SCHEMA.DEGENERATE_PCURVE', 'INTEGRATED_CNC_SCHEMA.POINT_ON_CURVE', 'INTEGRATED_CNC_SCHEMA.POINT_ON_SURFACE' ] * TYPEOF(oe. edge_element.edge_end\vertex_point.vertex_geometry)) = 1)))) = 0))) = 0)))) = 0))) = 0))) = 0; WR13: SIZEOF(QUERY (fbsm <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.FACE_BASED_SURFACE_MODEL' IN TYPEOF(it )))| NOT (SIZEOF(QUERY (cfs <* fbsm\face_based_surface_model. fbsm_faces| NOT (SIZEOF(QUERY (fa <* cfs.cfs_faces| NOT (( 'INTEGRATED_CNC_SCHEMA.ADVANCED_FACE' IN TYPEOF(fa)) OR ( SIZEOF(QUERY (vlp_fbnds <* QUERY (bnds <* fa.bounds| ( 'INTEGRATED_CNC_SCHEMA.VERTEX_LOOP' IN TYPEOF(bnds.bound)))| NOT ('INTEGRATED_CNC_SCHEMA.VERTEX_POINT' IN TYPEOF(vlp_fbnds \vertex_loop.loop_vertex)))) = 0)))) = 0))) = 0))) = 0; WR14: SIZEOF(QUERY (fbsm <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.FACE_BASED_SURFACE_MODEL' IN TYPEOF(it )))| NOT (SIZEOF(QUERY (cfs <* fbsm\face_based_surface_model. fbsm_faces| NOT (SIZEOF(QUERY (fa <* cfs.cfs_faces| NOT (( 'INTEGRATED_CNC_SCHEMA.ADVANCED_FACE' IN TYPEOF(fa)) OR ( SIZEOF(QUERY (vlp_fbnds <* QUERY (bnds <* fa.bounds| ( 'INTEGRATED_CNC_SCHEMA.VERTEX_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.CARTESIAN_POINT', 'INTEGRATED_CNC_SCHEMA.DEGENERATE_PCURVE', 'INTEGRATED_CNC_SCHEMA.POINT_ON_CURVE', 'INTEGRATED_CNC_SCHEMA.POINT_ON_SURFACE' ] * TYPEOF(vlp_fbnds \vertex_loop.loop_vertex\vertex_point.vertex_geometry)) = 1)) ) = 0)))) = 0))) = 0))) = 0; END_ENTITY; -- 10303-508: aic_non_manifold_surface ENTITY not_expression SUBTYPE OF (unary_boolean_expression); SELF\unary_generic_expression.operand : boolean_expression; END_ENTITY; -- 13584-20: iso13584_expressions_schema ENTITY numeric_expression ABSTRACT SUPERTYPE OF (ONEOF(simple_numeric_expression)) SUBTYPE OF (expression); DERIVE is_int : BOOLEAN := is_int_expr(SELF); sql_mappable : BOOLEAN := is_SQL_mappable(SELF); END_ENTITY; -- 13584-20: iso13584_expressions_schema ENTITY numeric_variable SUPERTYPE OF (ONEOF(int_numeric_variable, real_numeric_variable)) SUBTYPE OF (simple_numeric_expression, variable); WHERE WR1: ('INTEGRATED_CNC_SCHEMA.INT_NUMERIC_VARIABLE' IN TYPEOF(SELF)) OR ('INTEGRATED_CNC_SCHEMA.REAL_NUMERIC_VARIABLE' IN TYPEOF(SELF )); END_ENTITY; -- 13584-20: iso13584_expressions_schema ENTITY object_role; name : label; description : OPTIONAL text; END_ENTITY; -- 10303-41: basic_attribute_schema ENTITY offset_curve_3d SUBTYPE OF (curve); basis_curve : curve; distance : length_measure; self_intersect : LOGICAL; ref_direction : direction; WHERE WR1: (basis_curve.dim = 3) AND (ref_direction.dim = 3); END_ENTITY; -- 10303-42: geometry_schema ENTITY offset_surface SUBTYPE OF (surface); basis_surface : surface; distance : length_measure; self_intersect : LOGICAL; END_ENTITY; -- 10303-42: geometry_schema ENTITY one_direction_repeat_factor SUBTYPE OF (geometric_representation_item); repeat_factor : vector; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY open_path_profile SUBTYPE OF (shape_aspect); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape.definition); WR2: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))) = 1))) = 0; WR3: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(impl_rep. used_representation.items) = 1))) = 0))) = 0; WR4: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| ('INTEGRATED_CNC_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0; WR5: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PATH_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation)))) = 1))) = 0; WR6: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF (pdr.used_representation)) AND (pdr.used_representation.name = 'profile limit'))) <= 1))) = 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY open_shell SUBTYPE OF (connected_face_set); END_ENTITY; -- 10303-42: topology_schema ENTITY or_expression SUBTYPE OF (multiple_arity_boolean_expression); END_ENTITY; -- 13584-20: iso13584_expressions_schema ENTITY ordinal_date SUBTYPE OF (date); day_component : day_in_year_number; WHERE WR1: NOT leap_year(SELF.year_component) AND ((1 <= day_component) AND ( day_component <= 365)) OR leap_year(SELF.year_component) AND ((1 <= day_component) AND (day_component <= 366)); END_ENTITY; -- 10303-41: date_time_schema ENTITY ordinate_dimension SUBTYPE OF (projection_directed_callout); END_ENTITY; -- 10303-506: aic_draughting_elements ENTITY organization; id : OPTIONAL identifier; name : label; description : OPTIONAL text; END_ENTITY; -- 10303-41: person_organization_schema ENTITY organization_assignment ABSTRACT SUPERTYPE; assigned_organization : organization; role : organization_role; END_ENTITY; -- 10303-41: management_resources_schema ENTITY organization_role; name : label; DERIVE description : text := get_description_value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY; -- 10303-41: person_organization_schema ENTITY organizational_address SUBTYPE OF (address); organizations : SET [1:?] OF organization; description : OPTIONAL text; END_ENTITY; -- 10303-41: person_organization_schema ENTITY oriented_closed_shell SUBTYPE OF (closed_shell); closed_shell_element : closed_shell; orientation : BOOLEAN; DERIVE SELF\connected_face_set.cfs_faces : SET [1:?] OF face := conditional_reverse(SELF.orientation, SELF. closed_shell_element.cfs_faces); WHERE WR1: NOT ('INTEGRATED_CNC_SCHEMA.ORIENTED_CLOSED_SHELL' IN TYPEOF(SELF. closed_shell_element)); END_ENTITY; -- 10303-42: topology_schema ENTITY oriented_edge SUBTYPE OF (edge); edge_element : edge; orientation : BOOLEAN; DERIVE SELF\edge.edge_start : vertex := boolean_choose(SELF.orientation, SELF. edge_element.edge_start, SELF.edge_element.edge_end); SELF\edge.edge_end : vertex := boolean_choose(SELF.orientation, SELF. edge_element.edge_end, SELF.edge_element.edge_start); WHERE WR1: NOT ('INTEGRATED_CNC_SCHEMA.ORIENTED_EDGE' IN TYPEOF(SELF. edge_element)); END_ENTITY; -- 10303-42: topology_schema ENTITY oriented_face SUBTYPE OF (face); face_element : face; orientation : BOOLEAN; DERIVE SELF\face.bounds : SET [1:?] OF face_bound := conditional_reverse(SELF. orientation, SELF.face_element.bounds); WHERE WR1: NOT ('INTEGRATED_CNC_SCHEMA.ORIENTED_FACE' IN TYPEOF(SELF. face_element)); END_ENTITY; -- 10303-42: topology_schema ENTITY oriented_joint SUBTYPE OF (oriented_edge); SELF\oriented_edge.edge_element : kinematic_joint; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY oriented_open_shell SUBTYPE OF (open_shell); open_shell_element : open_shell; orientation : BOOLEAN; DERIVE SELF\connected_face_set.cfs_faces : SET [1:?] OF face := conditional_reverse(SELF.orientation, SELF. open_shell_element.cfs_faces); WHERE WR1: NOT ('INTEGRATED_CNC_SCHEMA.ORIENTED_OPEN_SHELL' IN TYPEOF(SELF. open_shell_element)); END_ENTITY; -- 10303-42: topology_schema ENTITY oriented_path SUBTYPE OF (path); path_element : path; orientation : BOOLEAN; DERIVE SELF\path.edge_list : LIST [1:?] OF UNIQUE oriented_edge := conditional_reverse(SELF.orientation, SELF.path_element. edge_list); WHERE WR1: NOT ('INTEGRATED_CNC_SCHEMA.ORIENTED_PATH' IN TYPEOF(SELF. path_element)); END_ENTITY; -- 10303-42: topology_schema ENTITY outer_boundary_curve SUBTYPE OF (boundary_curve); END_ENTITY; -- 10303-42: geometry_schema ENTITY outer_round SUBTYPE OF (feature_definition); WHERE WR1: NOT (SELF\characterized_object.description = 'outer diameter') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr. used_representation.items) = 3))) = 1))) = 1); WR2: NOT (SELF\characterized_object.description = 'outer diameter to shoulder') OR (SIZEOF(QUERY (pd <* USEDIN( SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND ((2 <= SIZEOF(pdr. used_representation.items)) AND (SIZEOF(pdr. used_representation.items) <= 3)))) = 1))) = 1); WR3: SELF\characterized_object.description IN [ 'outer diameter', 'outer diameter to shoulder' ]; WR4: NOT (SELF\characterized_object.description = 'outer diameter') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'length'))) = 1))) = 0))) = 0); WR5: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'diameter'))) = 1))) = 0))) = 0; WR6: NOT (SELF\characterized_object.description = 'outer diameter to shoulder') OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'v-shape boundary occurrence') AND (SIZEOF( QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('INTEGRATED_CNC_SCHEMA.VEE_PROFILE' IN TYPEOF (sdr.relating_shape_aspect)) AND (sdr.relating_shape_aspect. description = 'v-shape'))) = 1))) = 1))) = 0); WR7: NOT (SELF\characterized_object.description = 'outer diameter') OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'reduced size occurrence') AND (SIZEOF(QUERY ( sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'taper usage') AND ('INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| (('INTEGRATED_CNC_SCHEMA.TAPER' IN TYPEOF( sdr.relating_shape_aspect)) AND ( 'INTEGRATED_CNC_SCHEMA.OUTER_ROUND' IN TYPEOF(sdr. related_shape_aspect.of_shape.definition))) AND (sdr.name = 'reduced size'))) = 1))) <= 1))) = 0); WR8: NOT (SELF\characterized_object.description = 'outer diameter to shoulder') OR (SIZEOF(QUERY (pd <* USEDIN( SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'length'))) <= 1))) = 0))) = 0); WR9: NOT (SELF\characterized_object.description = 'outer diameter to shoulder') OR (SIZEOF(QUERY (pd <* USEDIN( SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'feature length'))) <= 1))) = 0))) = 0); END_ENTITY; -- 10303-522: aic_machining_feature ENTITY outside_profile SUBTYPE OF (feature_definition); WHERE WR1: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr. used_representation.items) = 1))) = 1))) = 1; WR2: SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description IN [ 'boundary occurrence', 'non-planar boundary occurrence', 'partial circular boundary occurrence', 'closed circular boundary occurrence', 'open rectangular boundary occurrence', 'closed rectangular boundary occurrence' ]))) = 1))) = 0; WR3: NOT (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'boundary occurrence'))) = 1))) = 0) OR (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('INTEGRATED_CNC_SCHEMA.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.CIRCULAR_CLOSED_PROFILE', 'INTEGRATED_CNC_SCHEMA.NGON_CLOSED_PROFILE', 'INTEGRATED_CNC_SCHEMA.RECTANGULAR_CLOSED_PROFILE', 'INTEGRATED_CNC_SCHEMA.CLOSED_PATH_PROFILE', 'INTEGRATED_CNC_SCHEMA.SQUARE_U_PROFILE', 'INTEGRATED_CNC_SCHEMA.PARTIAL_CIRCULAR_PROFILE', 'INTEGRATED_CNC_SCHEMA.ROUNDED_U_PROFILE', 'INTEGRATED_CNC_SCHEMA.LINEAR_PROFILE', 'INTEGRATED_CNC_SCHEMA.VEE_PROFILE', 'INTEGRATED_CNC_SCHEMA.TEE_PROFILE', 'INTEGRATED_CNC_SCHEMA.OPEN_PATH_PROFILE' ] * TYPEOF(sdr. relating_shape_aspect)) = 1) AND (sdr.relating_shape_aspect. description = 'outside boundary'))) = 1))) = 1))) = 0); WR4: NOT (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description IN [ 'complex boundary occurrence', 'partial circular boundary occurrence', 'closed circular boundary occurrence', 'open rectangular boundary occurrence', 'closed rectangular boundary occurrence' ]))) = 1))) = 0) OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| NOT (SIZEOF( QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'profile floor usage') AND ( 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| ('INTEGRATED_CNC_SCHEMA.PROFILE_FLOOR' IN TYPEOF(sdr.relating_shape_aspect)) AND ( 'INTEGRATED_CNC_SCHEMA.OUTSIDE_PROFILE' IN TYPEOF(sdr. related_shape_aspect.of_shape.definition)))) = 1))) = 0))) = 0); WR5: NOT (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description IN [ 'outside boundary', 'complex boundary occurrence', 'partial circular boundary occurrence', 'closed circular boundary occurrence', 'open rectangular boundary occurrence', 'closed rectangular boundary occurrence' ]))) = 1))) = 0) OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'path feature component usage') AND ('INTEGRATED_CNC_SCHEMA.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ((SIZEOF([ 'INTEGRATED_CNC_SCHEMA.PATH_FEATURE_COMPONENT' ] * TYPEOF( sdr.relating_shape_aspect)) = 1) AND (sdr.name = 'profile swept shape')) AND (sdr.relating_shape_aspect. description = 'linear'))) = 1))) = 1))) = 0); WR6: NOT (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'complex boundary occurrence'))) = 1))) = 0) OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.CIRCULAR_CLOSED_PROFILE', 'INTEGRATED_CNC_SCHEMA.NGON_CLOSED_PROFILE', 'INTEGRATED_CNC_SCHEMA.RECTANGULAR_CLOSED_PROFILE', 'INTEGRATED_CNC_SCHEMA.CLOSED_PATH_PROFILE', 'INTEGRATED_CNC_SCHEMA.SQUARE_U_PROFILE', 'INTEGRATED_CNC_SCHEMA.PARTIAL_CIRCULAR_PROFILE', 'INTEGRATED_CNC_SCHEMA.ROUNDED_U_PROFILE', 'INTEGRATED_CNC_SCHEMA.VEE_PROFILE', 'INTEGRATED_CNC_SCHEMA.TEE_PROFILE', 'INTEGRATED_CNC_SCHEMA.LINEAR_PROFILE', 'INTEGRATED_CNC_SCHEMA.OPEN_PATH_PROFILE' ] * TYPEOF(sdr. relating_shape_aspect)) = 1))) = 1))) = 1))) = 0); WR7: NOT (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'partial circular boundary occurrence'))) = 1)) ) = 0) OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ( 'INTEGRATED_CNC_SCHEMA.PARTIAL_CIRCULAR_PROFILE' IN TYPEOF( sdr.relating_shape_aspect)))) = 1))) = 1))) = 0); WR8: NOT (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'closed circular boundary occurrence'))) = 1))) = 0) OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ( 'INTEGRATED_CNC_SCHEMA.CIRCULAR_CLOSED_PROFILE' IN TYPEOF(sdr .relating_shape_aspect)))) = 1))) = 1))) = 0); WR9: NOT (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'open rectangular boundary occurrence'))) = 1)) ) = 0) OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('INTEGRATED_CNC_SCHEMA.SQUARE_U_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)))) = 1))) = 1))) = 0); WR10: NOT (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'closed rectangular boundary occurrence'))) = 1 ))) = 0) OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ( 'INTEGRATED_CNC_SCHEMA.RECTANGULAR_CLOSED_PROFILE' IN TYPEOF( sdr.relating_shape_aspect)))) = 1))) = 1))) = 0); WR11: (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description IN [ 'boundary occurrence', 'complex boundary occurrence', 'partial circular boundary occurrence', 'closed circular boundary occurrence', 'open rectangular boundary occurrence', 'closed rectangular boundary occurrence' ]))) = 1))) = 0) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation .name = 'removal direction'))) = 1))) = 0); WR12: SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF )| ('INTEGRATED_CNC_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation .name = 'maximum feature limit'))) >= 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY over_riding_styled_item SUBTYPE OF (styled_item); over_ridden_style : styled_item; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY pair_representation_relationship SUBTYPE OF (geometric_representation_item, representation_relationship_with_transformation); SELF\representation_relationship.rep_1 : kinematic_link_representation; SELF\representation_relationship.rep_2 : kinematic_link_representation; SELF\representation_relationship_with_transformation. transformation_operator : kinematic_pair; WHERE WR1: transformation_operator\item_defined_transformation. transform_item_1 IN rep_1.items; WR2: transformation_operator\item_defined_transformation. transform_item_2 IN rep_2.items; WR3: rep_1\kinematic_link_representation.represented_link = transformation_operator\kinematic_pair.joint.edge_start; WR4: rep_2\kinematic_link_representation.represented_link = transformation_operator\kinematic_pair.joint.edge_end; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY pair_value ABSTRACT SUPERTYPE OF (ONEOF(sliding_surface_pair_value, rolling_surface_pair_value, revolute_pair_value, prismatic_pair_value , screw_pair_value, cylindrical_pair_value, spherical_pair_value, sliding_curve_pair_value, rolling_curve_pair_value, gear_pair_value, rack_and_pinion_pair_value, universal_pair_value, planar_pair_value, unconstrained_pair_value, point_on_surface_pair_value, point_on_planar_curve_pair_value, low_order_kinematic_pair_value)) SUBTYPE OF (geometric_representation_item); applies_to_pair : kinematic_pair; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY parabola SUBTYPE OF (conic); focal_dist : length_measure; WHERE WR1: focal_dist <> 0.0; END_ENTITY; -- 10303-42: geometry_schema ENTITY parallel_offset SUBTYPE OF (derived_shape_aspect); offset : measure_with_unit; WHERE WR1: SIZEOF(SELF\derived_shape_aspect.deriving_relationships) = 1; END_ENTITY; -- 10303-47: shape_aspect_definition_schema ENTITY parallelism_tolerance SUBTYPE OF (geometric_tolerance_with_datum_reference); WHERE WR1: SIZEOF(SELF\geometric_tolerance_with_datum_reference.datum_system) < 3; END_ENTITY; -- 10303-519: aic_geometric_tolerances ENTITY parametric_representation_context SUBTYPE OF (representation_context); END_ENTITY; -- 10303-43: representation_schema ENTITY partial_circular_profile SUBTYPE OF (shape_aspect); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape.definition); WR2: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))) = 1))) = 0; WR3: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(impl_rep. used_representation.items) >= 3))) = 0))) = 0; WR4: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| ('INTEGRATED_CNC_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0; WR5: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'radius'))) = 1))) = 0))) = 0; WR6: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'sweep angle'))) = 1))) = 0)) ) = 0; WR7: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF (pdr.used_representation)) AND (pdr.used_representation.name = 'profile limit'))) <= 1))) = 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY path SUPERTYPE OF (ONEOF(edge_loop, oriented_path)) SUBTYPE OF (topological_representation_item); edge_list : LIST [1:?] OF UNIQUE oriented_edge; WHERE WR1: path_head_to_tail(SELF); END_ENTITY; -- 10303-42: topology_schema ENTITY path_feature_component SUBTYPE OF (shape_aspect); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape.definition); WR2: SELF.description IN [ 'partial circular', 'complete circular', 'linear', 'complex' ]; WR3: NOT (SELF.description = 'complex') OR (SIZEOF(QUERY (pd <* USEDIN( SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))) = 1))) = 0); WR4: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| ('INTEGRATED_CNC_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0; WR5: NOT (SELF.description = 'partial circular') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(impl_rep. used_representation.items) = 3))) = 0))) = 0); WR6: NOT (SELF.description = 'partial circular') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'radius'))) = 1))) = 0))) = 0); WR7: NOT (SELF.description = 'partial circular') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'sweep angle'))) = 1))) = 0)) ) = 0); WR8: NOT (SELF.description = 'complete circular') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(impl_rep. used_representation.items) = 2))) = 0))) = 0); WR9: NOT (SELF.description = 'complete circular') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'radius'))) = 1))) = 0))) = 0); WR10: NOT (SELF.description = 'linear') OR (SIZEOF(QUERY (pd <* USEDIN( SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(impl_rep. used_representation.items) = 2))) = 0))) = 0); WR11: NOT (SELF.description = 'linear') OR (SIZEOF(QUERY (pd <* USEDIN( SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'distance'))) = 1))) = 0))) = 0); WR12: NOT (SELF.description = 'linear') OR (SIZEOF(QUERY (pd <* USEDIN( SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)))) = 1))) = 0); WR13: NOT (SELF.description = 'complex') OR (SIZEOF(QUERY (pd <* USEDIN (SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION' )| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| (( 'INTEGRATED_CNC_SCHEMA.PATH_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation)) AND (pdr.used_representation.name = 'sweep path')) AND (SIZEOF(QUERY (srwp_i <* pdr. used_representation.items| (srwp_i.name = 'profile shape'))) = 1))) = 1))) = 0); END_ENTITY; -- 10303-522: aic_machining_feature ENTITY path_node ABSTRACT SUPERTYPE OF (ONEOF(point_to_point_path, circular_path, linear_path, curve_based_path)) SUBTYPE OF (kinematic_path_segment); placement_end : placement; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY path_parameter_representation SUBTYPE OF (definitional_representation); SELF\representation.context_of_items : path_parameter_representation_context; SELF\representation.items : SET [1:?] OF bounded_curve; WHERE WR1: SELF\representation.context_of_items\ geometric_representation_context.coordinate_space_dimension = 2; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY path_parameter_representation_context SUBTYPE OF (geometric_representation_context, parametric_representation_context); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY path_shape_representation SUBTYPE OF (shape_representation); WHERE WR1: SIZEOF(SELF.items) >= 1; WR2: SIZEOF(QUERY (i <* SELF.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.BOUNDED_CURVE', 'INTEGRATED_CNC_SCHEMA.EDGE_CURVE', 'INTEGRATED_CNC_SCHEMA.PATH' ] * TYPEOF(i)) = 1))) >= 1; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY pattern_offset_membership SUBTYPE OF (feature_component_relationship); WHERE WR1: SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(SELF. relating_shape_aspect, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT')| ( 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar :<>: SELF))| (SIZEOF(QUERY (pdr <* QUERY (pd <* USEDIN(fcr.related_shape_aspect.of_shape, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.CIRCULAR_PATTERN', 'INTEGRATED_CNC_SCHEMA.RECTANGULAR_PATTERN' ] * TYPEOF(pdr. definition)) = 1))) = 0))) = 0; WR2: SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(SELF. related_shape_aspect, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| ( 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar :<>: SELF))| (fcr.description = 'modified pattern') AND ( 'INTEGRATED_CNC_SCHEMA.MODIFIED_PATTERN' IN TYPEOF(fcr. relating_shape_aspect)))) >= 1; WR3: SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(SELF. related_shape_aspect, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| ( 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar :<>: SELF))| ( 'INTEGRATED_CNC_SCHEMA.MODIFIED_PATTERN' IN TYPEOF(fcr. relating_shape_aspect)) AND NOT (SIZEOF(QUERY (modfcr <* QUERY (modsar <* USEDIN(fcr.relating_shape_aspect, 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.CIRCULAR_PATTERN', 'INTEGRATED_CNC_SCHEMA.RECTANGULAR_PATTERN' ] * TYPEOF(modsar .related_shape_aspect.of_shape.definition)) = 1) AND (modsar :<>: fcr))| NOT (modfcr.related_shape_aspect.of_shape. definition :=: SELF.relating_shape_aspect.of_shape.definition ))) = 0))) = 0; WR4: NOT ('INTEGRATED_CNC_SCHEMA.RECTANGULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY (pd <* USEDIN(SELF.related_shape_aspect, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) = 2))) = 0) ; WR5: NOT ('INTEGRATED_CNC_SCHEMA.CIRCULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY (pd <* USEDIN(SELF.related_shape_aspect, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) = 1))) = 0) ; WR6: NOT ('INTEGRATED_CNC_SCHEMA.CIRCULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY (pd <* USEDIN(SELF.related_shape_aspect, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| NOT (SIZEOF (pdr.used_representation.items) = 2))) = 0))) = 0); WR7: NOT ('INTEGRATED_CNC_SCHEMA.CIRCULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY (pd <* USEDIN(SELF.related_shape_aspect, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (( 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (it)) AND ('INTEGRATED_CNC_SCHEMA.COUNT_MEASURE' IN TYPEOF(it \measure_with_unit.value_component))) AND (it.name = 'index number'))) = 1))) = 0))) = 0); WR8: NOT ('INTEGRATED_CNC_SCHEMA.CIRCULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY (pd <* USEDIN(SELF.related_shape_aspect, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| ( 'INTEGRATED_CNC_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' IN TYPEOF(it)) AND (it.name = 'offset'))) = 1))) = 0))) = 0); WR9: NOT ('INTEGRATED_CNC_SCHEMA.RECTANGULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY (pd <* USEDIN(SELF.related_shape_aspect, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(impl_rep. used_representation.items) = 3))) = 0))) = 0); WR10: NOT ('INTEGRATED_CNC_SCHEMA.RECTANGULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY (pd <* USEDIN(SELF.related_shape_aspect, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (( 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (it)) AND ('INTEGRATED_CNC_SCHEMA.COUNT_MEASURE' IN TYPEOF(it \measure_with_unit.value_component))) AND (it.name = 'row index'))) = 1))) = 0))) = 0); WR11: NOT ('INTEGRATED_CNC_SCHEMA.RECTANGULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY (pd <* USEDIN(SELF.related_shape_aspect, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (( 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (it)) AND ('INTEGRATED_CNC_SCHEMA.COUNT_MEASURE' IN TYPEOF(it \measure_with_unit.value_component))) AND (it.name = 'column index'))) = 1))) = 0))) = 0); WR12: NOT ('INTEGRATED_CNC_SCHEMA.RECTANGULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY (pd <* USEDIN(SELF.related_shape_aspect, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| ( 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(it )) AND (it.name = 'offset distance'))) = 1))) = 0))) = 0); WR13: NOT ('INTEGRATED_CNC_SCHEMA.RECTANGULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY (pd <* USEDIN(SELF.related_shape_aspect, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation .name = 'offset direction'))) = 1))) = 0); END_ENTITY; -- 10303-522: aic_machining_feature ENTITY pattern_omit_membership SUBTYPE OF (feature_component_relationship); WHERE WR1: SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(SELF. relating_shape_aspect, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT')| ( 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar :<>: SELF))| (SIZEOF(QUERY (pdr <* QUERY (pd <* USEDIN(fcr.related_shape_aspect.of_shape, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.CIRCULAR_PATTERN', 'INTEGRATED_CNC_SCHEMA.RECTANGULAR_PATTERN' ] * TYPEOF(pdr. definition)) = 1))) = 0))) = 0; WR2: SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(SELF. related_shape_aspect, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| ( 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar :<>: SELF))| (fcr.description = 'modified pattern') AND ( 'INTEGRATED_CNC_SCHEMA.MODIFIED_PATTERN' IN TYPEOF(fcr. relating_shape_aspect)))) >= 1; WR3: SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(SELF. related_shape_aspect, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| ( 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar :<>: SELF))| ( 'INTEGRATED_CNC_SCHEMA.MODIFIED_PATTERN' IN TYPEOF(fcr. relating_shape_aspect)) AND NOT (SIZEOF(QUERY (modfcr <* QUERY (modsar <* USEDIN(fcr.relating_shape_aspect, 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.CIRCULAR_PATTERN', 'INTEGRATED_CNC_SCHEMA.RECTANGULAR_PATTERN' ] * TYPEOF(modsar .related_shape_aspect.of_shape.definition)) = 1) AND (modsar :<>: fcr))| NOT (modfcr.related_shape_aspect.of_shape. definition :=: SELF.relating_shape_aspect.of_shape.definition ))) = 0))) = 0; WR4: SIZEOF(QUERY (pd <* USEDIN(SELF.related_shape_aspect, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) = 1))) = 0; WR5: NOT ('INTEGRATED_CNC_SCHEMA.CIRCULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY (pd <* USEDIN(SELF.related_shape_aspect, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| NOT (SIZEOF (pdr.used_representation.items) = 1))) = 0))) = 0); WR6: NOT ('INTEGRATED_CNC_SCHEMA.CIRCULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY (pd <* USEDIN(SELF.related_shape_aspect, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (( 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (it)) AND ('INTEGRATED_CNC_SCHEMA.COUNT_MEASURE' IN TYPEOF(it \measure_with_unit.value_component))) AND (it.name = 'index number'))) = 1))) = 0))) = 0); WR7: NOT ('INTEGRATED_CNC_SCHEMA.RECTANGULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY (pd <* USEDIN(SELF.related_shape_aspect, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| NOT (SIZEOF (pdr.used_representation.items) = 2))) = 0))) = 0); WR8: NOT ('INTEGRATED_CNC_SCHEMA.RECTANGULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY (pd <* USEDIN(SELF.related_shape_aspect, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (( 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (it)) AND ('INTEGRATED_CNC_SCHEMA.COUNT_MEASURE' IN TYPEOF(it \measure_with_unit.value_component))) AND (it.name = 'row index'))) = 1))) = 0))) = 0); WR9: NOT ('INTEGRATED_CNC_SCHEMA.RECTANGULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY (pd <* USEDIN(SELF.related_shape_aspect, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (( 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (it)) AND ('INTEGRATED_CNC_SCHEMA.COUNT_MEASURE' IN TYPEOF(it \measure_with_unit.value_component))) AND (it.name = 'column index'))) = 1))) = 0))) = 0); END_ENTITY; -- 10303-522: aic_machining_feature ENTITY pcurve SUBTYPE OF (curve); basis_surface : surface; reference_to_curve : definitional_representation; WHERE WR1: SIZEOF(reference_to_curve\representation.items) = 1; WR2: 'INTEGRATED_CNC_SCHEMA.CURVE' IN TYPEOF(reference_to_curve\ representation.items[1]); WR3: reference_to_curve\representation.items[1]\ geometric_representation_item.dim = 2; END_ENTITY; -- 10303-42: geometry_schema ENTITY perpendicular_to SUBTYPE OF (derived_shape_aspect); WHERE WR1: SIZEOF(SELF\derived_shape_aspect.deriving_relationships) = 1; END_ENTITY; -- 10303-47: shape_aspect_definition_schema ENTITY perpendicularity_tolerance SUBTYPE OF (geometric_tolerance_with_datum_reference); WHERE WR1: SIZEOF(SELF\geometric_tolerance_with_datum_reference.datum_system) <= 3; END_ENTITY; -- 10303-519: aic_geometric_tolerances ENTITY person; id : identifier; last_name : OPTIONAL label; first_name : OPTIONAL label; middle_names : OPTIONAL LIST [1:?] OF label; prefix_titles : OPTIONAL LIST [1:?] OF label; suffix_titles : OPTIONAL LIST [1:?] OF label; WHERE WR1: EXISTS(last_name) OR EXISTS(first_name); END_ENTITY; -- 10303-41: person_organization_schema ENTITY person_and_organization; the_person : person; the_organization : organization; DERIVE name : label := get_name_value(SELF); description : text := get_description_value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; WR2: SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY; -- 10303-41: person_organization_schema ENTITY person_and_organization_assignment ABSTRACT SUPERTYPE; assigned_person_and_organization : person_and_organization; role : person_and_organization_role; END_ENTITY; -- 10303-41: management_resources_schema ENTITY person_and_organization_role; name : label; DERIVE description : text := get_description_value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY; -- 10303-41: person_organization_schema ENTITY personal_address SUBTYPE OF (address); people : SET [1:?] OF person; description : OPTIONAL text; END_ENTITY; -- 10303-41: person_organization_schema ENTITY placed_datum_target_feature SUBTYPE OF (datum_target); WHERE WR1: SELF.description IN [ 'point', 'line', 'rectangle', 'circle' ]; WR2: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))) = 1))) = 0; WR3: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (dtm_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* dtm_rep. used_representation.items| ('INTEGRATED_CNC_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0; WR4: NOT (SELF.description = 'point') OR (SIZEOF(QUERY (pd <* USEDIN( SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY (dtm_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(dtm_rep. used_representation.items) = 1))) = 0))) = 0); WR5: NOT (SELF.description IN [ 'line', 'circle' ]) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (dtm_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(dtm_rep. used_representation.items) = 2))) = 0))) = 0); WR6: NOT (SELF.description = 'rectangle') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (dtm_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(dtm_rep. used_representation.items) = 3))) = 0))) = 0); WR7: NOT (SELF.description = 'circle') OR (SIZEOF(QUERY (pd <* USEDIN( SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY (dtm_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* dtm_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'target diameter'))) = 1))) = 0))) = 0); WR8: NOT (SELF.description = 'line') OR (SIZEOF(QUERY (pd <* USEDIN( SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY (dtm_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* dtm_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'target length'))) = 1))) = 0))) = 0 ); WR9: NOT (SELF.description = 'rectangle') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (dtm_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* dtm_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'target length'))) = 1))) = 0))) = 0 ); WR10: NOT (SELF.description = 'rectangle') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (dtm_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* dtm_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'target width'))) = 1))) = 0))) = 0) ; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY placed_feature SUBTYPE OF (shape_aspect); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY placement SUPERTYPE OF (ONEOF(axis1_placement, axis2_placement_2d, axis2_placement_3d)) SUBTYPE OF (geometric_representation_item); location : cartesian_point; END_ENTITY; -- 10303-42: geometry_schema ENTITY planar_box SUBTYPE OF (planar_extent); placement : axis2_placement; END_ENTITY; -- 10303-46: presentation_resource_schema ENTITY planar_curve_pair SUPERTYPE OF (ONEOF(sliding_curve_pair, rolling_curve_pair) ANDOR planar_curve_pair_range) SUBTYPE OF (high_order_kinematic_pair); curve_1 : curve; curve_2 : curve; orientation : BOOLEAN; WHERE WR1: SIZEOF(QUERY (r <* SELF\kinematic_pair. associated_link_representations_1| NOT (curve_1 IN r.items))) = 0; WR2: SIZEOF(QUERY (r <* SELF\kinematic_pair. associated_link_representations_2| NOT (curve_2 IN r.items))) = 0; WR3: SIZEOF(QUERY (lr <* SELF\kinematic_pair. associated_link_representations_1| NOT ( 'INTEGRATED_CNC_SCHEMA.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr)))) = 0; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY planar_curve_pair_range SUBTYPE OF (planar_curve_pair); range_on_curve_1 : trimmed_curve; range_on_curve_2 : trimmed_curve; WHERE WR1: SELF\planar_curve_pair.curve_1 :=: range_on_curve_1.basis_curve; WR2: SELF\planar_curve_pair.curve_2 :=: range_on_curve_2.basis_curve; WR3: SIZEOF(QUERY (r <* SELF\kinematic_pair. associated_link_representations_1| NOT (range_on_curve_1 IN r .items))) = 0; WR4: SIZEOF(QUERY (r <* SELF\kinematic_pair. associated_link_representations_2| NOT (range_on_curve_2 IN r .items))) = 0; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY planar_extent SUBTYPE OF (geometric_representation_item); size_in_x : length_measure; size_in_y : length_measure; END_ENTITY; -- 10303-46: presentation_resource_schema ENTITY planar_pair SUBTYPE OF (low_order_kinematic_pair); DERIVE SELF\low_order_kinematic_pair.t_x : BOOLEAN := TRUE; SELF\low_order_kinematic_pair.t_y : BOOLEAN := TRUE; SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY planar_pair_value SUBTYPE OF (pair_value); SELF\pair_value.applies_to_pair : planar_pair; actual_rotation : plane_angle_measure; actual_translation_x : length_measure; actual_translation_y : length_measure; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY planar_pair_with_range SUBTYPE OF (planar_pair); lower_limit_actual_rotation : OPTIONAL plane_angle_measure; upper_limit_actual_rotation : OPTIONAL plane_angle_measure; lower_limit_actual_translation_x : OPTIONAL length_measure; upper_limit_actual_translation_x : OPTIONAL length_measure; lower_limit_actual_translation_y : OPTIONAL length_measure; upper_limit_actual_translation_y : OPTIONAL length_measure; WHERE WR1: (NOT EXISTS(lower_limit_actual_rotation) OR NOT EXISTS( upper_limit_actual_rotation)) XOR ( lower_limit_actual_rotation < upper_limit_actual_rotation); WR2: (NOT EXISTS(lower_limit_actual_translation_x) OR NOT EXISTS( upper_limit_actual_translation_x)) XOR ( lower_limit_actual_translation_x < upper_limit_actual_translation_x); WR3: (NOT EXISTS(lower_limit_actual_translation_y) OR NOT EXISTS( upper_limit_actual_translation_y)) XOR ( lower_limit_actual_translation_y < upper_limit_actual_translation_y); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY planar_shape_representation SUBTYPE OF (shape_representation); WHERE WR1: SIZEOF(SELF.items) = 1; WR2: SIZEOF(QUERY (it <* SELF.items| ('INTEGRATED_CNC_SCHEMA.PLANE' IN TYPEOF(it)))) = 1; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY plane SUBTYPE OF (elementary_surface); END_ENTITY; -- 10303-42: geometry_schema ENTITY plane_angle_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.PLANE_ANGLE_UNIT' IN TYPEOF(SELF\ measure_with_unit.unit_component); END_ENTITY; -- 10303-41: measure_schema ENTITY plane_angle_unit SUBTYPE OF (named_unit); WHERE WR1: ((((((SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\ named_unit.dimensions.mass_exponent = 0.0)) AND (SELF\ named_unit.dimensions.time_exponent = 0.0)) AND (SELF\ named_unit.dimensions.electric_current_exponent = 0.0)) AND ( SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0)) AND (SELF\named_unit.dimensions. amount_of_substance_exponent = 0.0)) AND (SELF\named_unit. dimensions.luminous_intensity_exponent = 0.0); END_ENTITY; -- 10303-41: measure_schema ENTITY plane_milling_operation SUBTYPE OF (milling_type_operation); WHERE WR1: (SELF.description IN ['roughing','finishing']); WR2: (verify_optional_action_property (SELF, 'axial cutting depth')) AND (verify_length_measure_action_property (SELF, 'axial cutting depth')); WR3: (verify_optional_action_property (SELF, 'allowance bottom')) AND (verify_length_measure_action_property (SELF, 'allowance bottom')); WR4: NOT (SELF.description = 'roughing') OR (verify_required_action_property (SELF, 'allowance bottom')); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY plus_minus_tolerance; range : tolerance_method_definition; toleranced_dimension : dimensional_characteristic; UNIQUE UR1: toleranced_dimension; END_ENTITY; -- 10303-47: shape_tolerance_schema ENTITY pocket SUBTYPE OF (feature_definition); WHERE WR1: SELF\characterized_object.description IN [ 'closed rectangular', 'open rectangular', 'complex', 'circular cutout', 'complex cutout', 'recess' ]; WR2: SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'pocket depth occurrence') AND (SIZEOF(QUERY ( sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| ((sar.description = 'path feature component usage') AND (sar.name = 'pocket depth')) AND ( 'INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF (sar)))| ('INTEGRATED_CNC_SCHEMA.PATH_FEATURE_COMPONENT' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr. relating_shape_aspect.description = 'linear'))) = 1))) = 1))) = 0; WR3: SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF) | ( 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1; WR4: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)) AND ((1 <= SIZEOF(pdr. used_representation.items)) AND (SIZEOF(pdr. used_representation.items) <= 2)))) = 1))) = 1; WR5: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)) AND (SIZEOF(QUERY (srwp_i <* pdr. used_representation.items| (srwp_i.name = 'orientation') OR ( srwp_i.name = 'fillet radius'))) = SIZEOF(pdr. used_representation.items)))) = 1))) = 1; WR6: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'fillet radius'))) <= 1))) = 0))) = 0; WR7: NOT (SELF\characterized_object.description IN [ 'complex', 'non-circular cutout', 'recess' ]) OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'boundary occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.CIRCULAR_CLOSED_PROFILE', 'INTEGRATED_CNC_SCHEMA.NGON_CLOSED_PROFILE', 'INTEGRATED_CNC_SCHEMA.RECTANGULAR_CLOSED_PROFILE', 'INTEGRATED_CNC_SCHEMA.CLOSED_PATH_PROFILE', 'INTEGRATED_CNC_SCHEMA.SQUARE_U_PROFILE', 'INTEGRATED_CNC_SCHEMA.PARTIAL_CIRCULAR_PROFILE', 'INTEGRATED_CNC_SCHEMA.ROUNDED_U_PROFILE', 'INTEGRATED_CNC_SCHEMA.VEE_PROFILE', 'INTEGRATED_CNC_SCHEMA.TEE_PROFILE', 'INTEGRATED_CNC_SCHEMA.OPEN_PATH_PROFILE' ] * TYPEOF(sdr. relating_shape_aspect)) = 1))) = 1))) = 1))) = 0); WR8: NOT (SELF\characterized_object.description = 'closed rectangular') OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'closed boundary occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ( 'INTEGRATED_CNC_SCHEMA.RECTANGULAR_CLOSED_PROFILE' IN TYPEOF( sdr.relating_shape_aspect)))) = 1))) = 1))) = 0); WR9: NOT (SELF\characterized_object.description = 'open rectangular') OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'open boundary occurrence') AND (SIZEOF(QUERY ( sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('INTEGRATED_CNC_SCHEMA.SQUARE_U_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)))) = 1))) = 1))) = 0); WR10: SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'bottom condition occurrence') AND (SIZEOF( QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'pocket bottom usage') AND ( 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| ('INTEGRATED_CNC_SCHEMA.POCKET_BOTTOM' IN TYPEOF(sdr.relating_shape_aspect)) AND ( 'INTEGRATED_CNC_SCHEMA.POCKET' IN TYPEOF(sdr. related_shape_aspect.of_shape.definition)))) = 1))) = 1))) = 0; WR11: NOT (SELF\characterized_object.description IN [ 'complex', 'non-circular cutout', 'recess' ]) OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'change in boundary occurrence') AND (SIZEOF( QUERY (fcr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT')| (sar.description = 'taper usage') AND ('INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| (('INTEGRATED_CNC_SCHEMA.TAPER' IN TYPEOF( fcr.relating_shape_aspect)) AND ( 'INTEGRATED_CNC_SCHEMA.POCKET' IN TYPEOF(fcr. related_shape_aspect.of_shape.definition))) AND (fcr. related_shape_aspect.description IN [ 'angle taper', 'directed taper' ]))) = 1))) <= 1))) = 0); WR12: NOT (SELF\characterized_object.description = 'circular cutout') OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'enclosed boundary occurrence') AND (SIZEOF( QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ( 'INTEGRATED_CNC_SCHEMA.CIRCULAR_CLOSED_PROFILE' IN TYPEOF(sdr .relating_shape_aspect)))) = 1))) = 1))) = 0); WR13: NOT (SELF\characterized_object.description IN [ 'circular cutout' , 'complex cutout' ]) OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'bottom condition occurrence') AND (SIZEOF( QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'pocket bottom usage') AND ( 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| (('INTEGRATED_CNC_SCHEMA.POCKET_BOTTOM' IN TYPEOF(sdr.relating_shape_aspect)) AND ( 'INTEGRATED_CNC_SCHEMA.POCKET' IN TYPEOF(sdr. related_shape_aspect.of_shape.definition))) AND (sdr. relating_shape_aspect.description = 'through'))) = 1))) = 1)) ) = 0); WR14: NOT (SELF\characterized_object.description = 'recess') OR (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'bottom condition occurrence') AND (SIZEOF( QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'pocket bottom usage') AND ( 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| (('INTEGRATED_CNC_SCHEMA.POCKET_BOTTOM' IN TYPEOF(sdr.relating_shape_aspect)) AND ( 'INTEGRATED_CNC_SCHEMA.POCKET' IN TYPEOF(sdr. related_shape_aspect.of_shape.definition))) AND (sdr. relating_shape_aspect.description IN [ 'planar', 'complex' ]) )) = 1))) = 1))) = 0); WR15: SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF )| ('INTEGRATED_CNC_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation .name = 'maximum feature limit'))) >= 0; WR16: NOT (SELF\characterized_object.description IN [ 'closed rectangular', 'open rectangular', 'complex', 'recess' ]) OR (SIZEOF(QUERY (pds <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds)) AND (SIZEOF(QUERY (csa <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (( 'INTEGRATED_CNC_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa) ) AND (csa.name = 'uncut volume')) AND (SIZEOF(QUERY (sar <* csa.component_relationships| ( 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.BOSS', 'INTEGRATED_CNC_SCHEMA.PROTRUSION' ] * TYPEOF(sar. related_shape_aspect)) = 1))) = 1))) <= 1))) = 1); WR17: NOT (SELF\characterized_object.description IN [ 'closed rectangular', 'open rectangular' ]) OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'change in boundary occurrence') AND (SIZEOF( QUERY (fcr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT')| (sar.description = 'taper usage') AND ('INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| (('INTEGRATED_CNC_SCHEMA.TAPER' IN TYPEOF( fcr.relating_shape_aspect)) AND ( 'INTEGRATED_CNC_SCHEMA.POCKET' IN TYPEOF(fcr. related_shape_aspect.of_shape.definition))) AND (fcr. related_shape_aspect.description IN [ 'angle taper', 'directed taper' ]))) >= 1))) <= 1))) = 0); END_ENTITY; -- 10303-522: aic_machining_feature ENTITY pocket_bottom SUBTYPE OF (shape_aspect); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape.definition); WR2: SELF.description IN [ 'planar', 'complex', 'through' ]; WR3: NOT (SELF.description = 'planar') OR (SIZEOF(QUERY (pd <* USEDIN( SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation .name = 'floor normal'))) = 1))) = 0); WR4: NOT (SELF.description = 'planar') OR (SIZEOF(QUERY (pd <* USEDIN( SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.LOCATION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation .name = 'floor location'))) = 1))) = 0); WR5: NOT (SELF.description = 'complex') OR (SIZEOF(QUERY (pd <* USEDIN( SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation)) AND (pdr.used_representation.name = 'floor face'))) = 1))) = 0); WR6: NOT (SELF.description IN [ 'planar', 'complex' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))) = 1))) = 0); WR7: NOT (SELF.description IN [ 'planar', 'complex' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(impl_rep. used_representation.items) <= 1))) = 0))) = 0); WR8: NOT (SELF.description = 'through') OR (SIZEOF(QUERY (pd <* USEDIN( SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))) = 0))) = 0); WR9: NOT (SELF.description IN [ 'planar', 'complex' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'radius'))) <= 1))) = 0))) = 0); WR10: SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT')| (sar.description = 'pocket bottom usage') AND ( 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| ((fcr.related_shape_aspect.description = 'bottom condition occurrence') AND ( 'INTEGRATED_CNC_SCHEMA.POCKET' IN TYPEOF(fcr. related_shape_aspect.of_shape.definition))) AND ( 'INTEGRATED_CNC_SCHEMA.POCKET_BOTTOM' IN TYPEOF(fcr. relating_shape_aspect)))) >= 1; WR11: NOT (SELF.description IN [ 'planar', 'complex' ]) OR (SIZEOF( QUERY (fcr <* QUERY (sar <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT')| (sar.description = 'pocket bottom usage') AND ( 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| (fcr.related_shape_aspect.description = 'bottom condition occurrence') AND (fcr.related_shape_aspect. name IN [ 'pocket depth start', 'pocket depth end' ]))) = 0); END_ENTITY; -- 10303-522: aic_machining_feature ENTITY point SUPERTYPE OF (ONEOF(cartesian_point, point_on_curve, point_on_surface, point_replica, degenerate_pcurve)) SUBTYPE OF (geometric_representation_item); END_ENTITY; -- 10303-42: geometry_schema ENTITY point_on_curve SUBTYPE OF (point); basis_curve : curve; point_parameter : parameter_value; END_ENTITY; -- 10303-42: geometry_schema ENTITY point_on_planar_curve_pair SUBTYPE OF (high_order_kinematic_pair); pair_curve : curve; orientation : BOOLEAN; WHERE WR1: SIZEOF(QUERY (r <* SELF\kinematic_pair. associated_link_representations_1| NOT (pair_curve IN r.items ))) = 0; WR2: SIZEOF(QUERY (lr <* SELF\kinematic_pair. associated_link_representations_1| NOT ( 'INTEGRATED_CNC_SCHEMA.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr)))) = 0; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY point_on_planar_curve_pair_value SUBTYPE OF (pair_value); SELF\pair_value.applies_to_pair : point_on_planar_curve_pair; actual_point_on_curve : point_on_curve; input_orientation : spatial_rotation; DERIVE actual_orientation : ypr_rotation := convert_spatial_to_ypr_rotation( SELF\pair_value.applies_to_pair, input_orientation); WHERE WR1: SELF\pair_value.applies_to_pair\point_on_planar_curve_pair. pair_curve :=: actual_point_on_curve.basis_curve; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY point_on_planar_curve_pair_with_range SUBTYPE OF (point_on_planar_curve_pair); range_on_pair_curve : trimmed_curve; lower_limit_yaw : OPTIONAL plane_angle_measure; upper_limit_yaw : OPTIONAL plane_angle_measure; lower_limit_pitch : OPTIONAL plane_angle_measure; upper_limit_pitch : OPTIONAL plane_angle_measure; lower_limit_roll : OPTIONAL plane_angle_measure; upper_limit_roll : OPTIONAL plane_angle_measure; WHERE WR1: (NOT EXISTS(lower_limit_pitch) OR NOT EXISTS(upper_limit_pitch)) XOR (lower_limit_pitch < upper_limit_pitch); WR2: (NOT EXISTS(lower_limit_yaw) OR NOT EXISTS(upper_limit_yaw)) XOR ( lower_limit_yaw < upper_limit_yaw); WR3: (NOT EXISTS(lower_limit_roll) OR NOT EXISTS(upper_limit_roll)) XOR (lower_limit_roll < upper_limit_roll); WR4: SIZEOF(QUERY (r <* SELF\kinematic_pair. associated_link_representations_1| NOT (range_on_pair_curve IN r.items))) = 0; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY point_on_surface SUBTYPE OF (point); basis_surface : surface; point_parameter_u : parameter_value; point_parameter_v : parameter_value; END_ENTITY; -- 10303-42: geometry_schema ENTITY point_on_surface_pair SUBTYPE OF (high_order_kinematic_pair); pair_surface : surface; WHERE WR1: SIZEOF(QUERY (r <* SELF\kinematic_pair. associated_link_representations_1| NOT (pair_surface IN r. items))) = 0; WR2: SIZEOF(QUERY (lr <* SELF\kinematic_pair. associated_link_representations_1| NOT ( 'INTEGRATED_CNC_SCHEMA.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr)))) = 0; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY point_on_surface_pair_value SUBTYPE OF (pair_value); SELF\pair_value.applies_to_pair : point_on_surface_pair; actual_point_on_surface : point_on_surface; input_orientation : spatial_rotation; DERIVE actual_orientation : ypr_rotation := convert_spatial_to_ypr_rotation( SELF\pair_value.applies_to_pair, input_orientation); WHERE WR1: SELF\pair_value.applies_to_pair\point_on_surface_pair.pair_surface :=: actual_point_on_surface.basis_surface; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY point_on_surface_pair_with_range SUBTYPE OF (point_on_surface_pair); range_on_pair_surface : rectangular_trimmed_surface; lower_limit_yaw : OPTIONAL plane_angle_measure; upper_limit_yaw : OPTIONAL plane_angle_measure; lower_limit_pitch : OPTIONAL plane_angle_measure; upper_limit_pitch : OPTIONAL plane_angle_measure; lower_limit_roll : OPTIONAL plane_angle_measure; upper_limit_roll : OPTIONAL plane_angle_measure; WHERE WR1: (NOT EXISTS(lower_limit_pitch) OR NOT EXISTS(upper_limit_pitch)) XOR (lower_limit_pitch < upper_limit_pitch); WR2: (NOT EXISTS(lower_limit_yaw) OR NOT EXISTS(upper_limit_yaw)) XOR ( lower_limit_yaw < upper_limit_yaw); WR3: (NOT EXISTS(lower_limit_roll) OR NOT EXISTS(upper_limit_roll)) XOR (lower_limit_roll < upper_limit_roll); WR4: SIZEOF(QUERY (r <* SELF\kinematic_pair. associated_link_representations_1| NOT (range_on_pair_surface IN r.items))) = 0; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY point_replica SUBTYPE OF (point); parent_pt : point; transformation : cartesian_transformation_operator; WHERE WR1: transformation.dim = parent_pt.dim; WR2: acyclic_point_replica(SELF, parent_pt); END_ENTITY; -- 10303-42: geometry_schema ENTITY point_style; name : label; marker : marker_select; marker_size : size_select; marker_colour : colour; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY point_to_point_path SUBTYPE OF (path_node); DERIVE SELF\kinematic_path_segment.transition : transition_code := discontinuous; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY poly_loop SUBTYPE OF (loop, geometric_representation_item); polygon : LIST [3:?] OF UNIQUE cartesian_point; END_ENTITY; -- 10303-42: topology_schema ENTITY polyline SUBTYPE OF (bounded_curve); points : LIST [2:?] OF cartesian_point; END_ENTITY; -- 10303-42: geometry_schema ENTITY position_tolerance SUBTYPE OF (geometric_tolerance); WHERE WR1: NOT ('INTEGRATED_CNC_SCHEMA.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF(SELF)) OR (SIZEOF(SELF\geometric_tolerance_with_datum_reference. datum_system) <= 3); END_ENTITY; -- 10303-519: aic_geometric_tolerances ENTITY pre_defined_colour SUBTYPE OF (pre_defined_item, colour); END_ENTITY; -- 10303-46: presentation_resource_schema ENTITY pre_defined_curve_font SUBTYPE OF (pre_defined_item); END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY pre_defined_dimension_symbol SUBTYPE OF (pre_defined_symbol); WHERE WR1: SELF.name IN [ 'arc length', 'conical taper', 'counterbore', 'countersink', 'depth', 'diameter', 'plus minus', 'radius', 'slope', 'spherical diameter', 'spherical radius', 'square' ] ; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY pre_defined_geometrical_tolerance_symbol SUBTYPE OF (pre_defined_symbol); WHERE WR1: SELF.name IN [ 'angularity', 'basic dimension', 'blanked datum reference', 'circular runout', 'circularity', 'concentricity', 'cylindricity', 'datum target identification', 'diameter', 'filled datum reference', 'flatness', 'least material condition', 'maximum material condition', 'parallelism', 'perpendicularity', 'position', 'profile of a line', 'profile of a surface', 'projected tolerance zone', 'regardless of feature size', 'straightness', 'symmetry', 'total runout' ]; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY pre_defined_item; name : label; END_ENTITY; -- 10303-41: external_reference_schema ENTITY pre_defined_marker SUBTYPE OF (pre_defined_item); END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY pre_defined_point_marker_symbol SUBTYPE OF (pre_defined_marker, pre_defined_symbol); WHERE WR1: SELF.name IN [ 'asterisk', 'circle', 'dot', 'plus', 'square', 'triangle', 'x' ]; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY pre_defined_presentation_style SUBTYPE OF (pre_defined_item); END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY pre_defined_surface_condition_symbol SUBTYPE OF (pre_defined_symbol); WHERE WR1: SELF.name IN [ '000', '010', '020', '030', '040', '050', '060', '070', '001', '011', '021', '031', '041', '051', '061', '071' , '100', '110', '120', '130', '140', '150', '160', '170', '101', '111', '121', '131', '141', '151', '161', '171', '200' , '210', '220', '230', '240', '250', '260', '270', '201', '211', '221', '231', '241', '251', '261', '271' ]; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY pre_defined_symbol SUBTYPE OF (pre_defined_item); END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY pre_defined_terminator_symbol SUBTYPE OF (pre_defined_symbol); WHERE WR1: SELF.name IN [ 'blanked arrow', 'blanked box', 'blanked dot', 'dimension origin', 'filled arrow', 'filled box', 'filled dot', 'integral symbol', 'open arrow', 'slash', 'unfilled arrow' ]; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY pre_defined_text_font SUBTYPE OF (pre_defined_item); END_ENTITY; -- 10303-46: presentation_resource_schema ENTITY precision_qualifier; precision_value : INTEGER; END_ENTITY; -- 10303-45: qualified_measure_schema ENTITY prescribed_path SUBTYPE OF (link_motion_representation_along_path); controlling_joints : OPTIONAL SET [1:6] OF kinematic_joint; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY presentation_area SUBTYPE OF (presentation_representation); WHERE WR1: (SIZEOF(QUERY (ais <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'AREA_IN_SET.AREA')| (SIZEOF(USEDIN(ais, 'INTEGRATED_CNC_SCHEMA.' + 'PRESENTATION_SIZE.UNIT')) = 1))) > 0) OR (SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'PRESENTATION_SIZE.UNIT')) = 1); END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY presentation_layer_assignment; name : label; description : text; assigned_items : SET [1:?] OF layered_item; END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY presentation_representation SUBTYPE OF (representation); WHERE WR1: SELF\representation.context_of_items\ geometric_representation_context.coordinate_space_dimension = 2; WR2: 'INTEGRATED_CNC_SCHEMA.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF (SELF\representation.context_of_items); END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY presentation_set; INVERSE areas : SET [1:?] OF area_in_set FOR in_set; END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY presentation_size; unit : presentation_size_assignment_select; size : planar_box; WHERE WR1: ('INTEGRATED_CNC_SCHEMA.PRESENTATION_REPRESENTATION' IN TYPEOF( SELF.unit)) AND item_in_context(SELF.size, SELF.unit\ representation.context_of_items) OR ( 'INTEGRATED_CNC_SCHEMA.AREA_IN_SET' IN TYPEOF(SELF.unit)) AND (SIZEOF(QUERY (ais <* SELF.unit\area_in_set.in_set.areas| NOT item_in_context(SELF.size, ais.area\representation. context_of_items))) = 0); END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY presentation_style_assignment; styles : SET [1:?] OF presentation_style_select; WHERE WR1: SIZEOF(QUERY (style1 <* SELF.styles| NOT (SIZEOF(QUERY (style2 <* SELF.styles - style1| NOT ((TYPEOF(style1) <> TYPEOF(style2)) OR (SIZEOF([ ('INTEGRATED_CNC_SCHEMA.' + 'SURFACE_STYLE_USAGE'), ('INTEGRATED_CNC_SCHEMA.' + 'EXTERNALLY_DEFINED_STYLE') ] * TYPEOF(style1)) = 1)))) = 0)) ) = 0; WR2: SIZEOF(QUERY (style1 <* SELF.styles| ( 'INTEGRATED_CNC_SCHEMA.SURFACE_STYLE_USAGE' IN TYPEOF(style1) ))) <= 2; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY presentation_style_by_context SUBTYPE OF (presentation_style_assignment); style_context : style_context_select; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY presentation_view SUBTYPE OF (presentation_representation); END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY presented_item ABSTRACT SUPERTYPE; END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY presented_item_representation; presentation : presentation_representation_select; item : presented_item; END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY prismatic_pair SUBTYPE OF (low_order_kinematic_pair); DERIVE SELF\low_order_kinematic_pair.t_x : BOOLEAN := TRUE; SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_z : BOOLEAN := FALSE; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY prismatic_pair_value SUBTYPE OF (pair_value); SELF\pair_value.applies_to_pair : prismatic_pair; actual_translation : length_measure; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY prismatic_pair_with_range SUBTYPE OF (prismatic_pair); lower_limit_actual_translation : OPTIONAL length_measure; upper_limit_actual_translation : OPTIONAL length_measure; WHERE WR1: (NOT EXISTS(lower_limit_actual_translation) OR NOT EXISTS( upper_limit_actual_translation)) XOR ( lower_limit_actual_translation < upper_limit_actual_translation); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY process_product_association; name : label; description : text; defined_product : characterized_product_definition; process : product_definition_process; END_ENTITY; -- 10303-49: process_property_schema ENTITY process_property_association; name : label; description : text; process : property_process; property_or_shape : property_or_shape_select; END_ENTITY; -- 10303-49: process_property_schema ENTITY product; id : identifier; name : label; description : OPTIONAL text; frame_of_reference : SET [1:?] OF product_context; END_ENTITY; -- 10303-41: product_definition_schema ENTITY product_category; name : label; description : OPTIONAL text; DERIVE id : identifier := get_id_value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; END_ENTITY; -- 10303-41: product_definition_schema ENTITY product_category_relationship; name : label; description : OPTIONAL text; category : product_category; sub_category : product_category; WHERE WR1: acyclic_product_category_relationship(SELF, [ SELF.sub_category ]) ; END_ENTITY; -- 10303-41: product_definition_schema ENTITY product_context SUBTYPE OF (application_context_element); discipline_type : label; END_ENTITY; -- 10303-41: application_context_schema ENTITY product_definition; id : identifier; description : OPTIONAL text; formation : product_definition_formation; frame_of_reference : product_definition_context; DERIVE name : label := get_name_value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; END_ENTITY; -- 10303-41: product_definition_schema ENTITY product_definition_context SUBTYPE OF (application_context_element); life_cycle_stage : label; END_ENTITY; -- 10303-41: application_context_schema ENTITY product_definition_formation; id : identifier; description : OPTIONAL text; of_product : product; UNIQUE UR1: id, of_product; END_ENTITY; -- 10303-41: product_definition_schema ENTITY product_definition_formation_with_specified_source SUBTYPE OF (product_definition_formation); make_or_buy : source; END_ENTITY; -- 10303-41: product_definition_schema ENTITY product_definition_kinematics SUBTYPE OF (property_definition); SELF\property_definition.definition : product_definition; INVERSE representation_relation : kinematic_property_definition_representation FOR definition; UNIQUE UR1: definition; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY product_definition_process SUBTYPE OF (action); identification : identifier; INVERSE product_definitions : SET [1:?] OF process_product_association FOR process; END_ENTITY; -- 10303-49: process_property_schema ENTITY product_definition_relationship; id : identifier; name : label; description : OPTIONAL text; relating_product_definition : product_definition; related_product_definition : product_definition; END_ENTITY; -- 10303-41: product_definition_schema ENTITY product_definition_relationship_kinematics SUBTYPE OF (property_definition); SELF\property_definition.definition : product_definition_relationship; UNIQUE UR1: definition; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY product_definition_shape SUBTYPE OF (property_definition); UNIQUE UR1: SELF\property_definition.definition; WHERE WR1: SIZEOF([ 'INTEGRATED_CNC_SCHEMA.CHARACTERIZED_PRODUCT_DEFINITION', 'INTEGRATED_CNC_SCHEMA.CHARACTERIZED_OBJECT' ] * TYPEOF(SELF \property_definition.definition)) > 0; END_ENTITY; -- 10303-41: product_property_definition_schema ENTITY product_definition_usage SUPERTYPE OF (ONEOF(make_from_usage_option, assembly_component_usage)) SUBTYPE OF (product_definition_relationship); UNIQUE UR1: SELF\product_definition_relationship.id, SELF\product_definition_relationship.relating_product_definition, SELF\product_definition_relationship.related_product_definition; WHERE WR1: acyclic_product_definition_relationship(SELF, [ SELF\ product_definition_relationship.related_product_definition ], 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_USAGE'); END_ENTITY; -- 10303-44: product_structure_schema ENTITY product_definition_with_associated_documents SUBTYPE OF (product_definition); documentation_ids : SET [1:?] OF document; END_ENTITY; -- 10303-41: product_definition_schema ENTITY product_related_product_category SUBTYPE OF (product_category); products : SET [1:?] OF product; END_ENTITY; -- 10303-41: product_definition_schema ENTITY profile_floor SUBTYPE OF (shape_aspect); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape.definition); WR2: SELF.description IN [ 'planar', 'complex', 'through' ]; WR3: NOT (SELF.description IN [ 'planar', 'complex' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))) = 1))) = 0); WR4: NOT (SELF.description IN [ 'planar', 'complex' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(impl_rep. used_representation.items) >= 1) AND (SIZEOF(impl_rep. used_representation.items) <= 2))) = 0))) = 0); WR5: NOT (SELF.description = 'through') OR (SIZEOF(QUERY (pd <* USEDIN( SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))) = 0))) = 0); WR6: NOT (SELF.description IN [ 'planar', 'complex' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'radius'))) = 1))) = 0))) = 0); WR7: SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT')| (sar.description = 'profile floor usage') AND ( 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| ('INTEGRATED_CNC_SCHEMA.OUTSIDE_PROFILE' IN TYPEOF(fcr.related_shape_aspect.of_shape.definition)) AND ( 'INTEGRATED_CNC_SCHEMA.PROFILE_FLOOR' IN TYPEOF(fcr. relating_shape_aspect)))) >= 1; WR8: NOT (SELF.description IN [ 'planar', 'complex' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (( 'INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'shape profile floor orientation') ) AND (it.description IN [ 'shape profile start', 'shape profile end' ]))) = 1))) = 0))) = 0); WR9: NOT (SELF.description = 'complex') OR (SIZEOF(QUERY (pd <* USEDIN( SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation)) AND (pdr.used_representation.name = 'floor'))) = 1))) = 1); WR10: NOT (SELF.description = 'planar') OR (SIZEOF(QUERY (pd <* USEDIN( SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF (pdr.used_representation)) AND (pdr.used_representation.name = 'floor'))) = 1))) = 1); END_ENTITY; -- 10303-522: aic_machining_feature 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; -- 10303-47: shape_tolerance_schema ENTITY projection_curve SUBTYPE OF (annotation_curve_occurrence); END_ENTITY; -- 10303-101: draughting_element_schema ENTITY projection_directed_callout SUBTYPE OF (draughting_callout); WHERE WR1: SIZEOF(QUERY (p_1 <* SELF\draughting_callout.contents| ( 'INTEGRATED_CNC_SCHEMA.PROJECTION_CURVE' IN TYPEOF(p_1)))) = 1; WR2: SIZEOF(SELF\draughting_callout.contents) >= 2; END_ENTITY; -- 10303-101: draughting_element_schema ENTITY property_definition; name : label; description : OPTIONAL text; definition : characterized_definition; DERIVE id : identifier := get_id_value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; END_ENTITY; -- 10303-41: product_property_definition_schema ENTITY property_definition_representation; definition : represented_definition; used_representation : representation; DERIVE description : text := get_description_value(SELF); name : label := get_name_value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; WR2: SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; END_ENTITY; -- 10303-41: product_property_representation_schema ENTITY property_process SUBTYPE OF (action); identification : identifier; INVERSE properties : SET [1:?] OF process_property_association FOR process; END_ENTITY; -- 10303-49: process_property_schema ENTITY protrusion SUBTYPE OF (feature_definition); WHERE WR1: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(impl_rep. used_representation.items) = 1))) = 0))) = 0; WR2: SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'shape volume occurrence') AND (SIZEOF(QUERY ( sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'volume shape usage') AND ( 'INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF (sar)))| (sdr.relating_shape_aspect.description = 'volume shape'))) = 1))) = 1))) = 0; WR3: SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF) | ('INTEGRATED_CNC_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation .name = 'maximum feature limit'))) >= 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY qualified_representation_item SUBTYPE OF (representation_item); qualifiers : SET [1:?] OF value_qualifier; WHERE WR1: SIZEOF(QUERY (temp <* qualifiers| ( 'INTEGRATED_CNC_SCHEMA.PRECISION_QUALIFIER' IN TYPEOF(temp))) ) < 2; END_ENTITY; -- 10303-45: qualified_measure_schema ENTITY qualitative_uncertainty SUBTYPE OF (uncertainty_qualifier); uncertainty_value : text; END_ENTITY; -- 10303-45: qualified_measure_schema ENTITY quantifier_expression ABSTRACT SUPERTYPE SUBTYPE OF (multiple_arity_generic_expression); variables : LIST [1:?] OF UNIQUE generic_variable; WHERE WR1: SIZEOF(QUERY (vrbl <* variables| NOT (vrbl IN SELF\ multiple_arity_generic_expression.operands))) = 0; WR2: SIZEOF(QUERY (vrbl <* variables| NOT (schema_prefix + 'BOUND_VARIABLE_SEMANTICS' IN TYPEOF(vrbl.interpretation. semantics)))) = 0; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY quasi_uniform_curve SUBTYPE OF (b_spline_curve); END_ENTITY; -- 10303-42: geometry_schema ENTITY quasi_uniform_surface SUBTYPE OF (b_spline_surface); END_ENTITY; -- 10303-42: geometry_schema ENTITY rack_and_pinion_pair SUBTYPE OF (low_order_kinematic_pair_with_motion_coupling); pinion_radius : length_measure; WHERE WR1: SIZEOF(QUERY (lr <* SELF\kinematic_pair. associated_link_representations_1| NOT ( 'INTEGRATED_CNC_SCHEMA.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr)))) = 0; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY rack_and_pinion_pair_value SUBTYPE OF (pair_value); SELF\pair_value.applies_to_pair : rack_and_pinion_pair; actual_displacement : length_measure; DERIVE actual_rotation : plane_angle_measure := 0.0; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY rack_and_pinion_pair_with_range SUBTYPE OF (rack_and_pinion_pair); lower_limit_rack_displacement : OPTIONAL length_measure; upper_limit_rack_displacement : OPTIONAL length_measure; WHERE WR1: (NOT EXISTS(lower_limit_rack_displacement) OR NOT EXISTS( upper_limit_rack_displacement)) XOR ( lower_limit_rack_displacement < upper_limit_rack_displacement ); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY radius_dimension SUBTYPE OF (dimension_curve_directed_callout); WHERE WR1: SIZEOF(QUERY (con <* SELF.contents| ( 'INTEGRATED_CNC_SCHEMA.PROJECTION_CURVE' IN TYPEOF(con)))) <= 1; END_ENTITY; -- 10303-506: aic_draughting_elements ENTITY ratio_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.RATIO_UNIT' IN TYPEOF(SELF\ measure_with_unit.unit_component); END_ENTITY; -- 10303-41: measure_schema ENTITY ratio_unit SUBTYPE OF (named_unit); WHERE WR1: ((((((SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\ named_unit.dimensions.mass_exponent = 0.0)) AND (SELF\ named_unit.dimensions.time_exponent = 0.0)) AND (SELF\ named_unit.dimensions.electric_current_exponent = 0.0)) AND ( SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0)) AND (SELF\named_unit.dimensions. amount_of_substance_exponent = 0.0)) AND (SELF\named_unit. dimensions.luminous_intensity_exponent = 0.0); END_ENTITY; -- 10303-41: measure_schema ENTITY rational_b_spline_curve SUBTYPE OF (b_spline_curve); weights_data : LIST [2:?] OF REAL; DERIVE weights : ARRAY [0:upper_index_on_control_points] OF REAL := list_to_array(weights_data, 0, upper_index_on_control_points); WHERE WR1: SIZEOF(weights_data) = SIZEOF(SELF\b_spline_curve. control_points_list); WR2: curve_weights_positive(SELF); END_ENTITY; -- 10303-42: geometry_schema ENTITY rational_b_spline_surface SUBTYPE OF (b_spline_surface); weights_data : LIST [2:?] OF LIST [2:?] OF REAL; DERIVE weights : ARRAY [0:u_upper] OF ARRAY [0:v_upper] OF REAL := make_array_of_array(weights_data, 0, u_upper, 0, v_upper); WHERE WR1: (SIZEOF(weights_data) = SIZEOF(SELF\b_spline_surface. control_points_list)) AND (SIZEOF(weights_data[1]) = SIZEOF( SELF\b_spline_surface.control_points_list[1])); WR2: surface_weights_positive(SELF); END_ENTITY; -- 10303-42: geometry_schema ENTITY real_literal SUBTYPE OF (literal_number); SELF\literal_number.the_value : REAL; END_ENTITY; -- 13584-20: iso13584_expressions_schema ENTITY real_numeric_variable SUBTYPE OF (numeric_variable); END_ENTITY; -- 13584-20: iso13584_expressions_schema ENTITY rectangular_closed_profile SUBTYPE OF (shape_aspect); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape.definition); WR2: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))) = 1))) = 0; WR3: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT ((SIZEOF(impl_rep. used_representation.items) >= 3) AND (SIZEOF(impl_rep. used_representation.items) <= 4)))) = 0))) = 0; WR4: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION.DEFINITION')| (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (srwp_i <* pdr.used_representation.items| (((srwp_i.name = 'orientation') OR (srwp_i.name = 'length')) OR (srwp_i.name = 'width')) OR (srwp_i.name = 'corner radius'))) = SIZEOF(pdr. used_representation.items)))) = 1))) = 1; WR5: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| ('INTEGRATED_CNC_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0; WR6: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'width'))) = 1))) = 0))) = 0; WR7: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'length'))) = 1))) = 0))) = 0; WR8: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'corner radius'))) <= 1))) = 0))) = 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY rectangular_composite_surface SUBTYPE OF (bounded_surface); segments : LIST [1:?] OF LIST [1:?] OF surface_patch; DERIVE n_u : INTEGER := SIZEOF(segments); n_v : INTEGER := SIZEOF(segments[1]); WHERE WR1: SIZEOF(QUERY (s <* segments| (n_v <> SIZEOF(s)))) = 0; WR2: constraints_rectangular_composite_surface(SELF); END_ENTITY; -- 10303-42: geometry_schema ENTITY rectangular_pattern SUBTYPE OF (replicate_feature); WHERE WR1: SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT')| ( 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| ('INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sdr.related_shape_aspect)))) = 1))) <= 5))) = 0; WR2: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation .name = 'row layout direction'))) = 1))) = 0; WR3: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation .name = 'column layout direction'))) = 1))) = 0; WR4: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.' + 'DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))) = 1))) = 0; WR5: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(impl_rep. used_representation.items) = 5))) = 0))) = 0; WR6: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (( 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (it)) AND ('INTEGRATED_CNC_SCHEMA.COUNT_MEASURE' IN TYPEOF(it \measure_with_unit.value_component))) AND (it.name = 'number of rows'))) = 1))) = 0))) = 0; WR7: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (( 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (it)) AND ('INTEGRATED_CNC_SCHEMA.COUNT_MEASURE' IN TYPEOF(it \measure_with_unit.value_component))) AND (it.name = 'number of columns'))) = 1))) = 0))) = 0; WR8: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'row spacing'))) = 1))) = 0))) = 0; WR9: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'column spacing'))) = 1))) = 0))) = 0; WR10: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| ('INTEGRATED_CNC_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY rectangular_trimmed_surface SUBTYPE OF (bounded_surface); basis_surface : surface; u1 : parameter_value; u2 : parameter_value; v1 : parameter_value; v2 : parameter_value; usense : BOOLEAN; vsense : BOOLEAN; WHERE WR1: u1 <> u2; WR2: v1 <> v2; WR3: (('INTEGRATED_CNC_SCHEMA.ELEMENTARY_SURFACE' IN TYPEOF( basis_surface)) AND NOT ('INTEGRATED_CNC_SCHEMA.PLANE' IN TYPEOF(basis_surface)) OR ( 'INTEGRATED_CNC_SCHEMA.SURFACE_OF_REVOLUTION' IN TYPEOF( basis_surface))) OR (usense = (u2 > u1)); WR4: (('INTEGRATED_CNC_SCHEMA.SPHERICAL_SURFACE' IN TYPEOF( basis_surface)) OR ('INTEGRATED_CNC_SCHEMA.TOROIDAL_SURFACE' IN TYPEOF(basis_surface))) OR (vsense = (v2 > v1)); END_ENTITY; -- 10303-42: geometry_schema ENTITY referenced_modified_datum SUBTYPE OF (datum_reference); modifier : limit_condition; END_ENTITY; -- 10303-47: shape_aspect_definition_schema ENTITY removal_volume SUBTYPE OF (feature_definition); WHERE WR1: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(impl_rep. used_representation.items) = 1))) = 0))) = 0; WR2: SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'shape volume occurrence') AND (SIZEOF(QUERY ( sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'volume shape usage') AND ('INTEGRATED_CNC_SCHEMA.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| (sdr. relating_shape_aspect.description = 'volume shape'))) = 1))) = 1))) = 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY rep_item_group SUBTYPE OF (group, representation_item); WHERE WR1: SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'PRESENTATION_LAYER_ASSIGNMENT.' + 'ASSIGNED_ITEMS')) > 0; WR2: SIZEOF(QUERY (r <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'REPRESENTATION.' + 'ITEMS')| (r.name = 'group representation'))) > 0; WR3: SIZEOF(QUERY (ga <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'GROUP_ASSIGNMENT.' + 'ASSIGNED_GROUP')| (ga.role.name <> 'group membership'))) = 0; WR4: SIZEOF([ ('INTEGRATED_CNC_SCHEMA.' + 'GEOMETRIC_REPRESENTATION_ITEM'), ('INTEGRATED_CNC_SCHEMA.' + 'TOPOLOGICAL_REPRESENTATION_ITEM'), ( 'INTEGRATED_CNC_SCHEMA.' + 'MAPPED_ITEM'), ( 'INTEGRATED_CNC_SCHEMA.' + 'STYLED_ITEM') ] * TYPEOF(SELF)) = 1; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY reparametrised_composite_curve_segment SUBTYPE OF (composite_curve_segment); param_length : parameter_value; WHERE WR1: param_length > 0.0; END_ENTITY; -- 10303-42: geometry_schema ENTITY replicate_feature SUPERTYPE OF (ONEOF(circular_pattern, rectangular_pattern, feature_pattern)) SUBTYPE OF (feature_definition); WHERE WR1: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))) = 1))) = 0; WR2: SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT')| ( 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.REPLICATE_FEATURE', 'INTEGRATED_CNC_SCHEMA.INSTANCED_FEATURE' ] * TYPEOF(fcr. related_shape_aspect)) >= 1) AND (fcr.name = 'pattern basis') )) = 1; WR3: SIZEOF(QUERY (sar <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT')| NOT ( 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))) + SIZEOF(QUERY (sar <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| NOT ( 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))) = 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY representation; name : label; items : SET [1:?] OF representation_item; context_of_items : representation_context; DERIVE id : identifier := get_id_value(SELF); description : text := get_description_value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; WR2: SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY; -- 10303-43: representation_schema ENTITY representation_context; context_identifier : identifier; context_type : text; INVERSE representations_in_context : SET [1:?] OF representation FOR context_of_items; END_ENTITY; -- 10303-43: representation_schema ENTITY representation_item SUPERTYPE OF (ONEOF(compound_representation_item, mapped_item, value_representation_item)); name : label; WHERE WR1: SIZEOF(using_representations(SELF)) > 0; END_ENTITY; -- 10303-43: representation_schema ENTITY representation_item_relationship; name : label; description : OPTIONAL text; relating_representation_item : representation_item; related_representation_item : representation_item; END_ENTITY; -- 10303-43: representation_schema ENTITY representation_map; mapping_origin : representation_item; mapped_representation : representation; INVERSE map_usage : SET [1:?] OF mapped_item FOR mapping_source; WHERE WR1: item_in_context(SELF.mapping_origin, SELF.mapped_representation. context_of_items); END_ENTITY; -- 10303-43: representation_schema ENTITY representation_relationship; name : label; description : OPTIONAL text; rep_1 : representation; rep_2 : representation; END_ENTITY; -- 10303-43: representation_schema ENTITY representation_relationship_with_transformation SUBTYPE OF (representation_relationship); transformation_operator : transformation; WHERE WR1: SELF\representation_relationship.rep_1.context_of_items :<>: SELF\ representation_relationship.rep_2.context_of_items; END_ENTITY; -- 10303-43: representation_schema ENTITY requirement_for_action_resource SUBTYPE OF (action_resource_requirement); resources : SET [1:?] OF action_resource; END_ENTITY; -- 10303-49: process_property_schema ENTITY resource_property; name : label; description : text; resource : characterized_resource_definition; END_ENTITY; -- 10303-49: process_property_schema ENTITY resource_property_representation; name : label; description : text; property : resource_property; representation : representation; END_ENTITY; -- 10303-49: process_property_representation_schema ENTITY resource_requirement_type; name : label; description : text; END_ENTITY; -- 10303-49: process_property_schema ENTITY resulting_path SUBTYPE OF (link_motion_representation_along_path); controlling_joints : SET [1:?] OF kinematic_joint; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY revolute_pair SUBTYPE OF (low_order_kinematic_pair); DERIVE SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY revolute_pair_value SUBTYPE OF (pair_value); SELF\pair_value.applies_to_pair : revolute_pair; actual_rotation : plane_angle_measure; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY revolute_pair_with_range SUBTYPE OF (revolute_pair); lower_limit_actual_rotation : OPTIONAL plane_angle_measure; upper_limit_actual_rotation : OPTIONAL plane_angle_measure; WHERE WR1: (NOT EXISTS(lower_limit_actual_rotation) OR NOT EXISTS( upper_limit_actual_rotation)) XOR ( lower_limit_actual_rotation < upper_limit_actual_rotation); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY revolved_profile SUBTYPE OF (feature_definition); WHERE WR1: SELF\characterized_object.description IN [ 'groove', 'flat', 'round', 'open profile' ]; WR2: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(impl_rep. used_representation.items) = 2))) = 0))) = 0; WR3: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'radius'))) = 1))) = 0))) = 0; WR4: SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF) | ('INTEGRATED_CNC_SCHEMA.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation .name = 'removal direction'))) = 1; WR5: NOT (SELF\characterized_object.description = 'open profile') OR ( SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'outer edge shape occurrence') AND (SIZEOF( QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('INTEGRATED_CNC_SCHEMA.OPEN_PATH_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr. relating_shape_aspect.description = 'outer edge shape'))) = 1 ))) = 1))) = 0); WR6: NOT (SELF\characterized_object.description = 'flat') OR (SIZEOF( QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'flat edge shape occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('INTEGRATED_CNC_SCHEMA.LINEAR_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr. relating_shape_aspect.description = 'flat edge shape'))) = 1) )) = 1))) = 0); WR7: NOT (SELF\characterized_object.description = 'round') OR (SIZEOF( QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'rounded edge shape occurrence') AND (SIZEOF( QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ( 'INTEGRATED_CNC_SCHEMA.PARTIAL_CIRCULAR_PROFILE' IN TYPEOF( sdr.relating_shape_aspect)) AND (sdr.relating_shape_aspect. description = 'rounded edge shape'))) = 1))) = 1))) = 0); WR8: NOT (SELF\characterized_object.description = 'groove') OR (SIZEOF( QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'sweep occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.SQUARE_U_PROFILE', 'INTEGRATED_CNC_SCHEMA.PARTIAL_CIRCULAR_PROFILE', 'INTEGRATED_CNC_SCHEMA.ROUNDED_U_PROFILE', 'INTEGRATED_CNC_SCHEMA.VEE_PROFILE', 'INTEGRATED_CNC_SCHEMA.TEE_PROFILE', 'INTEGRATED_CNC_SCHEMA.OPEN_PATH_PROFILE' ] * TYPEOF(sdr. relating_shape_aspect)) = 1) AND (sdr.relating_shape_aspect. description = 'sweep'))) = 1))) = 1))) = 0); WR9: SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF) | ('INTEGRATED_CNC_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation .name = 'maximum feature limit'))) >= 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY rib_top SUBTYPE OF (feature_definition); WHERE WR1: SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'rib top condition occurrence') AND (SIZEOF( QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'rib top usage') AND ('INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| ('INTEGRATED_CNC_SCHEMA.RIB_TOP_FLOOR' IN TYPEOF(sdr.relating_shape_aspect)) AND ( 'INTEGRATED_CNC_SCHEMA.RIB_TOP' IN TYPEOF(sdr. related_shape_aspect.of_shape.definition)))) = 1))) = 1))) = 0; WR2: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation .name = 'removal direction'))) = 1))) = 1; WR3: SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF) | ('INTEGRATED_CNC_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation .name = 'maximum feature limit'))) >= 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY rib_top_floor SUBTYPE OF (shape_aspect); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape.definition); WR2: SELF.description IN [ 'planar', 'complex' ]; WR3: SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT')| (sar.description = 'rib top usage') AND ('INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| ((fcr.related_shape_aspect.description = 'rib top condition occurrence') AND ( 'INTEGRATED_CNC_SCHEMA.RIB_TOP' IN TYPEOF(fcr. related_shape_aspect.of_shape.definition))) AND ( 'INTEGRATED_CNC_SCHEMA.RIB_TOP_FLOOR' IN TYPEOF(fcr. relating_shape_aspect)))) >= 1; WR4: NOT (SELF.description = 'complex') OR (SIZEOF(QUERY (pd <* USEDIN( SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation)) AND (pdr.used_representation.name = 'rib top face'))) = 1))) = 0); WR5: NOT (SELF.description = 'planar') OR (SIZEOF(QUERY (pd <* USEDIN( SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF (pdr.used_representation)) AND (pdr.used_representation.name = 'rib top face'))) = 1))) = 0); WR6: NOT (SELF.description = 'planar') OR (SIZEOF(QUERY (pds <* QUERY ( pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'boundary occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.CIRCULAR_CLOSED_PROFILE', 'INTEGRATED_CNC_SCHEMA.NGON_CLOSED_PROFILE', 'INTEGRATED_CNC_SCHEMA.RECTANGULAR_CLOSED_PROFILE', 'INTEGRATED_CNC_SCHEMA.CLOSED_PATH_PROFILE' ] * TYPEOF(sdr. relating_shape_aspect)) = 1) AND (sdr.relating_shape_aspect. description = 'rib top floor boundary'))) = 1))) = 1))) = 0); END_ENTITY; -- 10303-522: aic_machining_feature ENTITY right_circular_cylinder SUBTYPE OF (geometric_representation_item); position : axis1_placement; height : positive_length_measure; radius : positive_length_measure; END_ENTITY; -- 10303-42: geometric_model_schema ENTITY rigid_link_representation SUBTYPE OF (kinematic_link_representation); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY role_association; role : object_role; item_with_role : role_select; END_ENTITY; -- 10303-41: basic_attribute_schema ENTITY rolling_curve_pair SUBTYPE OF (planar_curve_pair); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY rolling_curve_pair_value SUBTYPE OF (pair_value); SELF\pair_value.applies_to_pair : rolling_curve_pair; actual_point_on_curve_1 : point_on_curve; WHERE WR1: SELF\pair_value.applies_to_pair\planar_curve_pair.curve_1 :=: actual_point_on_curve_1.basis_curve; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY rolling_surface_pair SUBTYPE OF (surface_pair); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY rolling_surface_pair_value SUBTYPE OF (pair_value); SELF\pair_value.applies_to_pair : rolling_surface_pair; actual_point_on_surface : point_on_surface; actual_rotation : plane_angle_measure; WHERE WR1: SELF\pair_value.applies_to_pair\surface_pair.surface_1 :=: actual_point_on_surface.basis_surface; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY rotation_about_direction SUBTYPE OF (geometric_representation_item); direction_of_axis : direction; rotation_angle : plane_angle_measure; WHERE WR1: SIZEOF(direction_of_axis.direction_ratios) = 3; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY round_hole SUBTYPE OF (feature_definition); WHERE WR1: SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'diameter occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ( 'INTEGRATED_CNC_SCHEMA.CIRCULAR_CLOSED_PROFILE' IN TYPEOF(sdr .relating_shape_aspect)) AND (sdr.name = 'diameter'))) = 1))) = 1))) = 0; WR2: SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'hole depth occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'path feature component usage') AND ( 'INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF (sar)))| (('INTEGRATED_CNC_SCHEMA.PATH_FEATURE_COMPONENT' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr.name = 'hole depth')) AND (sdr.relating_shape_aspect.description = 'linear'))) = 1))) = 1))) = 0; WR3: SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'bottom condition occurrence') AND (SIZEOF( QUERY (fcr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'hole bottom usage') AND ( 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| ('INTEGRATED_CNC_SCHEMA.HOLE_BOTTOM' IN TYPEOF (fcr.relating_shape_aspect)) AND ( 'INTEGRATED_CNC_SCHEMA.ROUND_HOLE' IN TYPEOF(fcr. related_shape_aspect.of_shape.definition)))) = 1))) = 1))) = 0; WR4: SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'change in diameter occurrence') AND (SIZEOF( QUERY (fcr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'taper usage') AND ('INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| ('INTEGRATED_CNC_SCHEMA.TAPER' IN TYPEOF( fcr.relating_shape_aspect)) AND ( 'INTEGRATED_CNC_SCHEMA.ROUND_HOLE' IN TYPEOF(fcr. related_shape_aspect.of_shape.definition)))) = 1))) <= 1))) = 0; WR5: SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF) | ( 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY rounded_end SUBTYPE OF (feature_definition); WHERE WR1: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(impl_rep. used_representation.items) = 1))) = 0))) = 0; WR2: SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'partial circular boundary occurrence') AND ( SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ( 'INTEGRATED_CNC_SCHEMA.PARTIAL_CIRCULAR_PROFILE' IN TYPEOF( sdr.relating_shape_aspect)))) = 1))) = 1))) = 0; WR3: SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'course of travel occurrence') AND (SIZEOF( QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'path feature component usage') AND ( 'INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF (sar)))| ('INTEGRATED_CNC_SCHEMA.PATH_FEATURE_COMPONENT' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr. relating_shape_aspect.description = 'linear'))) = 1))) = 1))) = 0; WR4: SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF) | ('INTEGRATED_CNC_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation .name = 'maximum feature limit'))) >= 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY rounded_u_profile SUBTYPE OF (shape_aspect); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape.definition); WR2: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))) = 1))) = 0; WR3: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(impl_rep. used_representation.items) >= 1) AND (SIZEOF(impl_rep. used_representation.items) <= 2))) = 0))) = 0; WR4: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)) AND (SIZEOF(QUERY (srwp_i <* pdr. used_representation.items| (srwp_i.name = 'orientation') OR ( srwp_i.name = 'depth'))) = SIZEOF(pdr.used_representation. items)))) = 1))) = 1; WR5: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'width'))) = 1))) = 0))) = 0; WR6: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF (pdr.used_representation)) AND (pdr.used_representation.name = 'profile limit'))) <= 1))) = 0; WR7: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'depth'))) <= 1))) = 0))) = 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY roundness_tolerance SUBTYPE OF (geometric_tolerance); WHERE WR1: NOT ('INTEGRATED_CNC_SCHEMA.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF(SELF)); END_ENTITY; -- 10303-519: aic_geometric_tolerances ENTITY runout_zone_definition SUBTYPE OF (tolerance_zone_definition); orientation : runout_zone_orientation; END_ENTITY; -- 10303-47: shape_tolerance_schema ENTITY runout_zone_orientation; angle : measure_with_unit; END_ENTITY; -- 10303-47: shape_tolerance_schema ENTITY runout_zone_orientation_reference_direction SUBTYPE OF (runout_zone_orientation); orientation_defining_relationship : shape_aspect_relationship; END_ENTITY; -- 10303-47: shape_tolerance_schema ENTITY screw_pair SUBTYPE OF (low_order_kinematic_pair_with_motion_coupling); pitch : length_measure; WHERE WR1: SIZEOF(QUERY (lr <* SELF\kinematic_pair. associated_link_representations_1| NOT ( 'INTEGRATED_CNC_SCHEMA.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr)))) = 0; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY screw_pair_value SUBTYPE OF (pair_value); SELF\pair_value.applies_to_pair : screw_pair; actual_rotation : plane_angle_measure; DERIVE actual_translation : length_measure := SELF\pair_value.applies_to_pair\ screw_pair.pitch * plane_angle_for_pair_in_radian(SELF\pair_value. applies_to_pair, actual_rotation) / 2 * 3.14159 ; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY screw_pair_with_range SUBTYPE OF (screw_pair); lower_limit_actual_rotation : OPTIONAL plane_angle_measure; upper_limit_actual_rotation : OPTIONAL plane_angle_measure; WHERE WR1: (NOT EXISTS(lower_limit_actual_rotation) OR NOT EXISTS( upper_limit_actual_rotation)) XOR ( lower_limit_actual_rotation < upper_limit_actual_rotation); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY seam_curve SUBTYPE OF (surface_curve); WHERE WR1: SIZEOF(SELF\surface_curve.associated_geometry) = 2; WR2: associated_surface(SELF\surface_curve.associated_geometry[1]) = associated_surface(SELF\surface_curve.associated_geometry[2]) ; WR3: 'INTEGRATED_CNC_SCHEMA.PCURVE' IN TYPEOF(SELF\surface_curve. associated_geometry[1]); WR4: 'INTEGRATED_CNC_SCHEMA.PCURVE' IN TYPEOF(SELF\surface_curve. associated_geometry[2]); END_ENTITY; -- 10303-42: geometry_schema ENTITY security_classification; name : label; purpose : text; security_level : security_classification_level; END_ENTITY; -- 10303-41: security_classification_schema ENTITY security_classification_assignment ABSTRACT SUPERTYPE; assigned_security_classification : security_classification; DERIVE role : object_role := get_role(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY; -- 10303-41: management_resources_schema ENTITY security_classification_level; name : label; END_ENTITY; -- 10303-41: security_classification_schema ENTITY sequential_method SUBTYPE OF (serial_action_method); sequence_position : count_measure; END_ENTITY; -- 10303-49: method_definition_schema ENTITY serial_action_method SUBTYPE OF (action_method_relationship); END_ENTITY; -- 10303-49: method_definition_schema ENTITY shape_aspect; name : label; description : OPTIONAL text; of_shape : product_definition_shape; product_definitional : LOGICAL; DERIVE id : identifier := get_id_value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; END_ENTITY; -- 10303-41: product_property_definition_schema ENTITY shape_aspect_associativity SUBTYPE OF (shape_aspect_relationship); WHERE WR1: SELF.relating_shape_aspect.product_definitional; WR2: NOT SELF.related_shape_aspect.product_definitional; WR3: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (sdr <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF(pdr)))| NOT (SIZEOF(QUERY (it <* sdr. used_representation.items| NOT ('INTEGRATED_CNC_SCHEMA.CURVE' IN TYPEOF(it)) AND (SIZEOF(QUERY (aco <* USEDIN(it, 'INTEGRATED_CNC_SCHEMA.STYLED_ITEM.ITEM')| (SIZEOF(TYPEOF(aco ) * [ 'INTEGRATED_CNC_SCHEMA.LEADER_CURVE', 'INTEGRATED_CNC_SCHEMA.PROJECTION_CURVE' ]) = 1))) + SIZEOF( USEDIN(it, 'INTEGRATED_CNC_SCHEMA.' + 'ANNOTATION_FILL_AREA.BOUNDARIES')) >= 1))) = 1))) = 0))) = 0 ; WR4: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (sdr <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF(pdr)))| NOT check_associative_shape_aspects(sdr))) = 0 ))) = 0; END_ENTITY; -- 10303-520: aic_associative_draughting_elements ENTITY shape_aspect_deriving_relationship SUBTYPE OF (shape_aspect_relationship); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.DERIVED_SHAPE_ASPECT' IN TYPEOF(SELF\ shape_aspect_relationship.relating_shape_aspect); END_ENTITY; -- 10303-47: shape_aspect_definition_schema ENTITY shape_aspect_relationship; name : label; description : OPTIONAL text; relating_shape_aspect : shape_aspect; related_shape_aspect : shape_aspect; DERIVE id : identifier := get_id_value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; END_ENTITY; -- 10303-41: product_property_definition_schema ENTITY shape_defining_relationship SUBTYPE OF (shape_aspect_relationship); END_ENTITY; -- 10303-522: aic_machining_feature ENTITY shape_definition_representation SUBTYPE OF (property_definition_representation); WHERE WR1: ('INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(SELF. definition)) OR ('INTEGRATED_CNC_SCHEMA.SHAPE_DEFINITION' IN TYPEOF(SELF.definition.definition)); WR2: 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION' IN TYPEOF(SELF. used_representation); END_ENTITY; -- 10303-41: product_property_representation_schema ENTITY shape_dimension_representation SUBTYPE OF (shape_representation); WHERE WR1: SIZEOF(QUERY (temp <* SELF\representation.items| NOT ( 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (temp)))) = 0; WR2: SIZEOF(SELF\representation.items) <= 3; WR3: SIZEOF(QUERY (pos_mri <* QUERY (real_mri <* SELF\representation. items| ('REAL' IN TYPEOF(real_mri\measure_with_unit. value_component)))| NOT (pos_mri\measure_with_unit. value_component > 0.0))) = 0; END_ENTITY; -- 10303-47: shape_dimension_schema ENTITY shape_feature_definition SUBTYPE OF (feature_definition); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY shape_representation SUBTYPE OF (representation); END_ENTITY; -- 10303-41: product_property_representation_schema ENTITY shape_representation_relationship SUBTYPE OF (representation_relationship); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION' IN TYPEOF(SELF\ representation_relationship.rep_1) + TYPEOF(SELF\ representation_relationship.rep_2); END_ENTITY; -- 10303-41: product_property_representation_schema ENTITY shape_representation_with_parameters SUBTYPE OF (shape_representation); WHERE WR1: SIZEOF(QUERY (it <* SELF.items| NOT (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.PLACEMENT', 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' ] * TYPEOF(it)) = 1))) = 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY shell_based_surface_model SUBTYPE OF (geometric_representation_item); sbsm_boundary : SET [1:?] OF shell; WHERE WR1: constraints_geometry_shell_based_surface_model(SELF); END_ENTITY; -- 10303-42: geometric_model_schema ENTITY shell_based_wireframe_model SUBTYPE OF (geometric_representation_item); sbwm_boundary : SET [1:?] OF shell; WHERE WR1: constraints_geometry_shell_based_wireframe_model(SELF); END_ENTITY; -- 10303-42: geometric_model_schema ENTITY shell_based_wireframe_shape_representation SUBTYPE OF (shape_representation); WHERE WR1: SIZEOF(QUERY (it <* SELF.items| NOT (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.SHELL_BASED_WIREFRAME_MODEL', 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM', 'INTEGRATED_CNC_SCHEMA.AXIS2_PLACEMENT_3D' ] * TYPEOF(it)) = 1))) = 0; WR2: SIZEOF(QUERY (it <* SELF.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.SHELL_BASED_WIREFRAME_MODEL', 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM' ] * TYPEOF(it)) = 1))) >= 1; WR3: SIZEOF(QUERY (sbwm <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)))| NOT (SIZEOF(QUERY (ws <* QUERY (sb <* sbwm\ shell_based_wireframe_model.sbwm_boundary| ( 'INTEGRATED_CNC_SCHEMA.WIRE_SHELL' IN TYPEOF(sb)))| NOT ( SIZEOF(QUERY (eloop <* QUERY (wsb <* ws\wire_shell. wire_shell_extent| ('INTEGRATED_CNC_SCHEMA.EDGE_LOOP' IN TYPEOF(wsb)))| NOT (SIZEOF(QUERY (el <* eloop\path.edge_list| NOT ('INTEGRATED_CNC_SCHEMA.EDGE_CURVE' IN TYPEOF(el. edge_element)))) = 0))) = 0))) = 0))) = 0; WR4: SIZEOF(QUERY (sbwm <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)))| NOT (SIZEOF(QUERY (ws <* QUERY (sb <* sbwm\ shell_based_wireframe_model.sbwm_boundary| ( 'INTEGRATED_CNC_SCHEMA.WIRE_SHELL' IN TYPEOF(sb)))| NOT ( SIZEOF(QUERY (eloop <* QUERY (wsb <* ws\wire_shell. wire_shell_extent| ('INTEGRATED_CNC_SCHEMA.EDGE_LOOP' IN TYPEOF(wsb)))| NOT (SIZEOF(QUERY (pline_el <* QUERY (el <* eloop\path.edge_list| ('INTEGRATED_CNC_SCHEMA.POLYLINE' IN TYPEOF(el.edge_element\edge_curve.edge_geometry)))| NOT ( SIZEOF(pline_el.edge_element\edge_curve.edge_geometry\ polyline.points) > 2))) = 0))) = 0))) = 0))) = 0; WR5: SIZEOF(QUERY (sbwm <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)))| NOT (SIZEOF(QUERY (ws <* QUERY (sb <* sbwm\ shell_based_wireframe_model.sbwm_boundary| ( 'INTEGRATED_CNC_SCHEMA.WIRE_SHELL' IN TYPEOF(sb)))| NOT ( SIZEOF(QUERY (eloop <* QUERY (wsb <* ws\wire_shell. wire_shell_extent| ('INTEGRATED_CNC_SCHEMA.EDGE_LOOP' IN TYPEOF(wsb)))| NOT (SIZEOF(QUERY (el <* eloop\path.edge_list| NOT valid_wireframe_edge_curve(el.edge_element\edge_curve. edge_geometry))) = 0))) = 0))) = 0))) = 0; WR6: SIZEOF(QUERY (sbwm <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)))| NOT (SIZEOF(QUERY (ws <* QUERY (sb <* sbwm\ shell_based_wireframe_model.sbwm_boundary| ( 'INTEGRATED_CNC_SCHEMA.WIRE_SHELL' IN TYPEOF(sb)))| NOT ( SIZEOF(QUERY (eloop <* QUERY (wsb <* ws\wire_shell. wire_shell_extent| ('INTEGRATED_CNC_SCHEMA.EDGE_LOOP' IN TYPEOF(wsb)))| NOT (SIZEOF(QUERY (el <* eloop\path.edge_list| NOT (('INTEGRATED_CNC_SCHEMA.VERTEX_POINT' IN TYPEOF(el. edge_element.edge_start)) AND ( 'INTEGRATED_CNC_SCHEMA.VERTEX_POINT' IN TYPEOF(el. edge_element.edge_end))))) = 0))) = 0))) = 0))) = 0; WR7: SIZEOF(QUERY (sbwm <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)))| NOT (SIZEOF(QUERY (ws <* QUERY (sb <* sbwm\ shell_based_wireframe_model.sbwm_boundary| ( 'INTEGRATED_CNC_SCHEMA.WIRE_SHELL' IN TYPEOF(sb)))| NOT ( SIZEOF(QUERY (eloop <* QUERY (wsb <* ws\wire_shell. wire_shell_extent| ('INTEGRATED_CNC_SCHEMA.EDGE_LOOP' IN TYPEOF(wsb)))| NOT (SIZEOF(QUERY (el <* eloop\path.edge_list| NOT (valid_wireframe_vertex_point(el.edge_element.edge_start \vertex_point.vertex_geometry) AND valid_wireframe_vertex_point(el.edge_element.edge_end\ vertex_point.vertex_geometry)))) = 0))) = 0))) = 0))) = 0; WR8: SIZEOF(QUERY (sbwm <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)))| NOT (SIZEOF(QUERY (ws <* QUERY (sb <* sbwm\ shell_based_wireframe_model.sbwm_boundary| ( 'INTEGRATED_CNC_SCHEMA.WIRE_SHELL' IN TYPEOF(sb)))| NOT ( SIZEOF(QUERY (vloop <* QUERY (wsb <* ws\wire_shell. wire_shell_extent| ('INTEGRATED_CNC_SCHEMA.VERTEX_LOOP' IN TYPEOF(wsb)))| NOT ('INTEGRATED_CNC_SCHEMA.VERTEX_POINT' IN TYPEOF(vloop\vertex_loop.loop_vertex)))) = 0))) = 0))) = 0; WR9: SIZEOF(QUERY (sbwm <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)))| NOT (SIZEOF(QUERY (ws <* QUERY (sb <* sbwm\ shell_based_wireframe_model.sbwm_boundary| ( 'INTEGRATED_CNC_SCHEMA.WIRE_SHELL' IN TYPEOF(sb)))| NOT ( SIZEOF(QUERY (vloop <* QUERY (wsb <* ws\wire_shell. wire_shell_extent| ('INTEGRATED_CNC_SCHEMA.VERTEX_LOOP' IN TYPEOF(wsb)))| NOT valid_wireframe_vertex_point(vloop\ vertex_loop.loop_vertex\vertex_point.vertex_geometry))) = 0)) ) = 0))) = 0; WR10: SIZEOF(QUERY (sbwm <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)))| NOT (SIZEOF(QUERY (vs <* QUERY (sb <* sbwm\ shell_based_wireframe_model.sbwm_boundary| ( 'INTEGRATED_CNC_SCHEMA.VERTEX_SHELL' IN TYPEOF(sb)))| NOT ( 'INTEGRATED_CNC_SCHEMA.VERTEX_POINT' IN TYPEOF(vs\ vertex_shell.vertex_shell_extent.loop_vertex)))) = 0))) = 0; WR11: SIZEOF(QUERY (sbwm <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)))| NOT (SIZEOF(QUERY (vs <* QUERY (sb <* sbwm\ shell_based_wireframe_model.sbwm_boundary| ( 'INTEGRATED_CNC_SCHEMA.VERTEX_SHELL' IN TYPEOF(sb)))| NOT valid_wireframe_vertex_point(vs\vertex_shell. vertex_shell_extent.loop_vertex\vertex_point.vertex_geometry) )) = 0))) = 0; WR12: SIZEOF(QUERY (mi <* QUERY (it <* SELF.items| ( 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM' IN TYPEOF(it)))| NOT ( 'INTEGRATED_CNC_SCHEMA.' + 'SHELL_BASED_WIREFRAME_SHAPE_REPRESENTATION' IN TYPEOF(mi\ mapped_item.mapping_source.mapped_representation)))) = 0; WR13: SELF.context_of_items\geometric_representation_context. coordinate_space_dimension = 3; END_ENTITY; -- 10303-502: aic_shell_based_wireframe ENTITY si_unit SUBTYPE OF (named_unit); prefix : OPTIONAL si_prefix; name : si_unit_name; DERIVE SELF\named_unit.dimensions : dimensional_exponents := dimensions_for_si_unit(name); WHERE WR1: NOT (('INTEGRATED_CNC_SCHEMA.MASS_UNIT' IN TYPEOF(SELF)) AND ( SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.DERIVED_UNIT_ELEMENT.UNIT')) > 0)) OR (prefix = si_prefix.kilo); END_ENTITY; -- 10303-41: measure_schema ENTITY side_milling_operation SUBTYPE OF (milling_type_operation); WHERE WR1: (SELF.description IN ['roughing','finishing']); WR2: (verify_optional_action_property (SELF, 'axial cutting depth')) AND (verify_length_measure_action_property (SELF, 'axial cutting depth')); WR3: (verify_optional_action_property (SELF, 'radial cutting depth')) AND (verify_length_measure_action_property (SELF, 'radial cutting depth')); WR4: (verify_optional_action_property (SELF, 'allowance side')) AND (verify_length_measure_action_property (SELF, 'allowance side')); WR5: NOT (SELF.description = 'roughing') OR (verify_required_action_property (SELF, 'allowance side')); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY simple_generic_expression ABSTRACT SUPERTYPE OF (ONEOF(generic_literal, generic_variable)) SUBTYPE OF (generic_expression); END_ENTITY; -- 13584-20: iso13584_generic_expressions_schema ENTITY simple_numeric_expression ABSTRACT SUPERTYPE OF (ONEOF(literal_number, numeric_variable)) SUBTYPE OF (numeric_expression, simple_generic_expression); END_ENTITY; -- 13584-20: iso13584_expressions_schema ENTITY sliding_curve_pair SUBTYPE OF (planar_curve_pair); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY sliding_curve_pair_value SUBTYPE OF (pair_value); SELF\pair_value.applies_to_pair : sliding_curve_pair; actual_point_on_curve_1 : point_on_curve; actual_point_on_curve_2 : point_on_curve; WHERE WR1: SELF\pair_value.applies_to_pair\planar_curve_pair.curve_1 :=: actual_point_on_curve_1.basis_curve; WR2: SELF\pair_value.applies_to_pair\planar_curve_pair.curve_2 :=: actual_point_on_curve_2.basis_curve; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY sliding_surface_pair SUBTYPE OF (surface_pair); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY sliding_surface_pair_value SUBTYPE OF (pair_value); SELF\pair_value.applies_to_pair : sliding_surface_pair; actual_point_on_surface_1 : point_on_surface; actual_point_on_surface_2 : point_on_surface; actual_rotation : plane_angle_measure; WHERE WR1: SELF\pair_value.applies_to_pair\surface_pair.surface_1 :=: actual_point_on_surface_1.basis_surface; WR2: SELF\pair_value.applies_to_pair\surface_pair.surface_2 :=: actual_point_on_surface_2.basis_surface; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY slot SUBTYPE OF (feature_definition); WHERE WR1: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(impl_rep. used_representation.items) = 1))) = 0))) = 0; WR2: SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'swept shape occurrence') AND (SIZEOF(QUERY ( sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.SQUARE_U_PROFILE', 'INTEGRATED_CNC_SCHEMA.PARTIAL_CIRCULAR_PROFILE', 'INTEGRATED_CNC_SCHEMA.ROUNDED_U_PROFILE', 'INTEGRATED_CNC_SCHEMA.VEE_PROFILE', 'INTEGRATED_CNC_SCHEMA.TEE_PROFILE', 'INTEGRATED_CNC_SCHEMA.OPEN_PATH_PROFILE' ] * TYPEOF(sdr. relating_shape_aspect)) = 1))) = 1))) = 1))) = 0; WR3: SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'course of travel occurrence') AND (SIZEOF( QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'path feature component usage') AND ((sar.name = 'course of travel') AND ( 'INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF (sar))))| ('INTEGRATED_CNC_SCHEMA.PATH_FEATURE_COMPONENT' IN TYPEOF(sdr.relating_shape_aspect)))) = 1))) = 1))) = 0; WR4: SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT ((SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'end condition occurrence') AND (SIZEOF(QUERY ( fcr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| ((sar. description = 'slot end usage') AND (sar.name IN [ 'course of travel start', 'course of travel end' ])) AND ( 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| (('INTEGRATED_CNC_SCHEMA.SLOT_END' IN TYPEOF( fcr.relating_shape_aspect)) AND (fcr.relating_shape_aspect. description IN [ 'open', 'radiused', 'flat', 'woodruff' ])) AND ('INTEGRATED_CNC_SCHEMA.SLOT' IN TYPEOF(fcr. related_shape_aspect.of_shape.definition)))) = 1))) = 2) OR ( SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'end condition occurrence') AND (SIZEOF(QUERY ( fcr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| ((sar. description = 'slot end usage') AND (sar.name IN [ 'course of travel start', 'course of travel end' ])) AND ( 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| (('INTEGRATED_CNC_SCHEMA.SLOT_END' IN TYPEOF( fcr.relating_shape_aspect)) AND (fcr.relating_shape_aspect. description IN [ 'loop' ])) AND ('INTEGRATED_CNC_SCHEMA.SLOT' IN TYPEOF(fcr.related_shape_aspect.of_shape.definition)))) = 1))) = 1)))) = 0; WR5: NOT (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'end condition occurrence') AND (SIZEOF(QUERY ( fcr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| ((sar.description = 'slot end usage' ) AND (sar.name IN [ 'course of travel start', 'course of travel end' ])) AND ( 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| (('INTEGRATED_CNC_SCHEMA.SLOT_END' IN TYPEOF( fcr.relating_shape_aspect)) AND (fcr.relating_shape_aspect. description IN [ 'loop' ])) AND ('INTEGRATED_CNC_SCHEMA.SLOT' IN TYPEOF(fcr.related_shape_aspect.of_shape.definition)))) = 1))) = 1))) = 0) OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'course of travel occurrence') AND (SIZEOF( QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'path feature component usage') AND ((sar.name = 'course of travel') AND ( 'INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF (sar))))| ('INTEGRATED_CNC_SCHEMA.PATH_FEATURE_COMPONENT' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr. relating_shape_aspect.description IN [ 'complex', 'complete circular' ]))) = 1))) = 1))) = 0); WR6: SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF) | ('INTEGRATED_CNC_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation .name = 'maximum feature limit'))) >= 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY slot_end SUBTYPE OF (shape_aspect); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape.definition); WR2: SELF.description IN [ 'open', 'radiused', 'flat', 'woodruff', 'loop' ]; WR3: NOT (SELF.description IN [ 'open', 'radiused', 'loop' ]) OR ( SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 0))) = 0); WR4: NOT (SELF.description IN [ 'flat', 'woodruff' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1))) = 0); WR5: NOT (SELF.description IN [ 'flat' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep. used_representation.items) = 2))) = 0))) = 0); WR6: NOT (SELF.description = 'flat') OR (SIZEOF(QUERY (pd <* USEDIN( SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'first radius'))) = 1))) = 0))) = 0) ; WR7: NOT (SELF.description = 'flat') OR (SIZEOF(QUERY (pd <* USEDIN( SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'second radius'))) = 1))) = 0))) = 0 ); WR8: NOT (SELF.description = 'woodruff') OR (SIZEOF(QUERY (pd <* USEDIN (SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION' )| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| ( 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(it )) AND (it.name = 'radius'))) = 1))) = 0))) = 0); WR9: NOT (SELF.description IN [ 'woodruff' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep. used_representation.items) = 1))) = 0))) = 0); WR10: SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT')| ((sar.description = 'slot end usage') AND (sar.name IN [ 'course of travel start' , 'course of travel end' ])) AND ( 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| ((fcr.related_shape_aspect.description = 'end condition occurrence') AND ('INTEGRATED_CNC_SCHEMA.SLOT' IN TYPEOF(fcr.related_shape_aspect.of_shape.definition))) AND ('INTEGRATED_CNC_SCHEMA.SLOT_END' IN TYPEOF(fcr. relating_shape_aspect)))) >= 1; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY solid_angle_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.SOLID_ANGLE_UNIT' IN TYPEOF(SELF\ measure_with_unit.unit_component); END_ENTITY; -- 10303-41: measure_schema ENTITY solid_angle_unit SUBTYPE OF (named_unit); WHERE WR1: ((((((SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\ named_unit.dimensions.mass_exponent = 0.0)) AND (SELF\ named_unit.dimensions.time_exponent = 0.0)) AND (SELF\ named_unit.dimensions.electric_current_exponent = 0.0)) AND ( SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0)) AND (SELF\named_unit.dimensions. amount_of_substance_exponent = 0.0)) AND (SELF\named_unit. dimensions.luminous_intensity_exponent = 0.0); END_ENTITY; -- 10303-41: measure_schema ENTITY solid_model SUPERTYPE OF (manifold_solid_brep) SUBTYPE OF (geometric_representation_item); END_ENTITY; -- 10303-42: geometric_model_schema ENTITY spherical_cap SUBTYPE OF (feature_definition); WHERE WR1: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(impl_rep. used_representation.items) = 3))) = 0))) = 0; WR2: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'radius'))) = 1))) = 0))) = 0; WR3: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'internal angle'))) = 1))) = 0))) = 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY spherical_pair SUBTYPE OF (low_order_kinematic_pair); DERIVE SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_x : BOOLEAN := TRUE; SELF\low_order_kinematic_pair.r_y : BOOLEAN := TRUE; SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY spherical_pair_value SUBTYPE OF (pair_value); SELF\pair_value.applies_to_pair : spherical_pair_select; input_orientation : spatial_rotation; DERIVE actual_orientation : ypr_rotation := convert_spatial_to_ypr_rotation( SELF\pair_value.applies_to_pair, input_orientation); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY spherical_pair_with_pin SUBTYPE OF (low_order_kinematic_pair); DERIVE SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_y : BOOLEAN := TRUE; SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY spherical_pair_with_pin_and_range SUBTYPE OF (spherical_pair_with_pin); lower_limit_yaw : OPTIONAL plane_angle_measure; upper_limit_yaw : OPTIONAL plane_angle_measure; lower_limit_roll : OPTIONAL plane_angle_measure; upper_limit_roll : OPTIONAL plane_angle_measure; WHERE WR1: (NOT EXISTS(lower_limit_yaw) OR NOT EXISTS(upper_limit_yaw)) XOR ( lower_limit_yaw < upper_limit_yaw); WR2: (NOT EXISTS(lower_limit_roll) OR NOT EXISTS(upper_limit_roll)) XOR (lower_limit_roll < upper_limit_roll); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY spherical_pair_with_range SUBTYPE OF (spherical_pair); lower_limit_yaw : OPTIONAL plane_angle_measure; upper_limit_yaw : OPTIONAL plane_angle_measure; lower_limit_pitch : OPTIONAL plane_angle_measure; upper_limit_pitch : OPTIONAL plane_angle_measure; lower_limit_roll : OPTIONAL plane_angle_measure; upper_limit_roll : OPTIONAL plane_angle_measure; WHERE WR1: (NOT EXISTS(lower_limit_yaw) OR NOT EXISTS(upper_limit_yaw)) XOR ( lower_limit_yaw < upper_limit_yaw); WR2: (NOT EXISTS(lower_limit_pitch) OR NOT EXISTS(upper_limit_pitch)) XOR (lower_limit_pitch < upper_limit_pitch); WR3: (NOT EXISTS(lower_limit_roll) OR NOT EXISTS(upper_limit_roll)) XOR (lower_limit_roll < upper_limit_roll); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY spherical_surface SUBTYPE OF (elementary_surface); radius : positive_length_measure; END_ENTITY; -- 10303-42: geometry_schema ENTITY square_u_profile SUBTYPE OF (shape_aspect); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape.definition); WR2: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))) = 1))) = 0; WR3: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(impl_rep. used_representation.items) >= 4) AND (SIZEOF(impl_rep. used_representation.items) <= 7))) = 0))) = 0; WR4: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)) AND (SIZEOF(QUERY (srwp_i <* pdr. used_representation.items| (((((((srwp_i.name = 'orientation' ) OR (srwp_i.name = 'width')) OR (srwp_i.name = 'first angle' )) OR (srwp_i.name = 'second angle')) OR (srwp_i.name = 'first radius')) OR (srwp_i.name = 'second radius')) OR ( srwp_i.name = 'profile limit')) OR (srwp_i.name = 'depth'))) = SIZEOF(pdr.used_representation.items)))) = 1))) = 1; WR5: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| ('INTEGRATED_CNC_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0; WR6: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'width'))) = 1))) = 0))) = 0; WR7: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'first radius'))) <= 1))) = 0))) = 0 ; WR8: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'second radius'))) <= 1))) = 0))) = 0; WR9: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'first angle'))) = 1))) = 0)) ) = 0; WR10: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'second angle'))) = 1))) = 0) )) = 0; WR11: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.' + 'DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF (pdr.used_representation)) AND (pdr.used_representation.name = 'profile limit'))) <= 1))) = 0; WR12: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'depth'))) <= 1))) = 0))) = 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY standard_uncertainty SUPERTYPE OF (expanded_uncertainty) SUBTYPE OF (uncertainty_qualifier); uncertainty_value : REAL; END_ENTITY; -- 10303-45: qualified_measure_schema ENTITY step SUBTYPE OF (feature_definition); WHERE WR1: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(impl_rep. used_representation.items) = 1))) = 0))) = 0; WR2: SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'course of travel occurrence') AND (SIZEOF( QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'path feature component usage') AND ( 'INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF (sar)))| ('INTEGRATED_CNC_SCHEMA.PATH_FEATURE_COMPONENT' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr. relating_shape_aspect.description = 'linear'))) = 1))) = 1))) = 0; WR3: SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'removal boundary occurrence') AND (SIZEOF( QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('INTEGRATED_CNC_SCHEMA.VEE_PROFILE' IN TYPEOF (sdr.relating_shape_aspect)))) = 1))) = 1))) = 0; WR4: SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF) | ('INTEGRATED_CNC_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation .name = 'maximum feature limit'))) >= 0; WR5: SIZEOF(QUERY (pds <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds)) AND (SIZEOF(QUERY (csa <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (( 'INTEGRATED_CNC_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa) ) AND (csa.name = 'uncut volume')) AND (SIZEOF(QUERY (sar <* csa.component_relationships| ( 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.BOSS', 'INTEGRATED_CNC_SCHEMA.PROTRUSION' ] * TYPEOF(sar. related_shape_aspect)) = 1))) = 1))) <= 1))) = 1; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY straightness_tolerance SUBTYPE OF (geometric_tolerance); WHERE WR1: NOT ('INTEGRATED_CNC_SCHEMA.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF(SELF)); END_ENTITY; -- 10303-519: aic_geometric_tolerances ENTITY structured_dimension_callout SUBTYPE OF (draughting_callout); WHERE WR1: SIZEOF(TYPEOF(SELF) * [ 'INTEGRATED_CNC_SCHEMA.DATUM_FEATURE_CALLOUT', 'INTEGRATED_CNC_SCHEMA.DATUM_TARGET_CALLOUT', 'INTEGRATED_CNC_SCHEMA.GEOMETRICAL_TOLERANCE_CALLOUT', 'INTEGRATED_CNC_SCHEMA.LEADER_DIRECTED_CALLOUT', 'INTEGRATED_CNC_SCHEMA.PROJECTION_DIRECTED_CALLOUT', 'INTEGRATED_CNC_SCHEMA.DIMENSION_CURVE_DIRECTED_CALLOUT' ]) = 0; WR2: SIZEOF(QUERY (ato <* QUERY (con <* SELF.contents| ( 'INTEGRATED_CNC_SCHEMA.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( con)))| NOT (ato.name IN [ 'dimension value', 'tolerance value', 'unit text', 'prefix text', 'suffix text' ]))) = 0; WR3: SIZEOF(QUERY (ato <* QUERY (con <* SELF.contents| ( 'INTEGRATED_CNC_SCHEMA.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( con)))| (ato.name = 'dimension value'))) >= 1; WR4: SIZEOF(QUERY (dcr <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + 'RELATING_DRAUGHTING_CALLOUT')| ('INTEGRATED_CNC_SCHEMA.' + 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF(dcr)) AND (dcr.name = 'prefix'))) <= 1; WR5: SIZEOF(QUERY (dcr <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + 'RELATING_DRAUGHTING_CALLOUT')| ('INTEGRATED_CNC_SCHEMA.' + 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF(dcr)) AND (dcr.name = 'suffix'))) <= 1; WR6: NOT (SIZEOF(QUERY (ato <* QUERY (con <* SELF.contents| ( 'INTEGRATED_CNC_SCHEMA.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( con)))| (ato.name = 'prefix text'))) > 0) OR (SIZEOF(QUERY ( dcr <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + 'RELATING_DRAUGHTING_CALLOUT')| ('INTEGRATED_CNC_SCHEMA.' + 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF(dcr)) AND (dcr.name = 'prefix'))) = 1); WR7: NOT (SIZEOF(QUERY (ato <* QUERY (con <* SELF.contents| ( 'INTEGRATED_CNC_SCHEMA.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( con)))| (ato.name = 'suffix text'))) > 0) OR (SIZEOF(QUERY ( dcr <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + 'RELATING_DRAUGHTING_CALLOUT')| ('INTEGRATED_CNC_SCHEMA.' + 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF(dcr)) AND (dcr.name = 'suffix'))) = 1); END_ENTITY; -- 10303-506: aic_draughting_elements ENTITY styled_item SUBTYPE OF (representation_item); styles : SET [1:?] OF presentation_style_assignment; item : representation_item; WHERE WR1: (SIZEOF(SELF.styles) = 1) XOR (SIZEOF(QUERY (pres_style <* SELF. styles| NOT ('INTEGRATED_CNC_SCHEMA.' + 'PRESENTATION_STYLE_BY_CONTEXT' IN TYPEOF(pres_style)))) = 0) ; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY su_parameters SUBTYPE OF (geometric_representation_item); a : length_measure; alpha : plane_angle_measure; b : length_measure; beta : plane_angle_measure; c : length_measure; gamma : plane_angle_measure; WHERE WR1: SELF\geometric_representation_item.dim = 3; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY surface SUPERTYPE OF (ONEOF(elementary_surface, swept_surface, bounded_surface, offset_surface, surface_replica)) SUBTYPE OF (geometric_representation_item); END_ENTITY; -- 10303-42: geometry_schema ENTITY surface_condition_callout SUBTYPE OF (draughting_callout); WHERE WR1: SIZEOF(QUERY (c <* SELF.contents| (SIZEOF([ ( 'INTEGRATED_CNC_SCHEMA.' + 'ANNOTATION_CURVE_OCCURRENCE'), ( 'INTEGRATED_CNC_SCHEMA.' + 'ANNOTATION_SYMBOL_OCCURRENCE'), ( 'INTEGRATED_CNC_SCHEMA.' + 'ANNOTATION_TEXT_OCCURRENCE') ] * TYPEOF(c)) <> 1))) = 0; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY surface_curve SUPERTYPE OF (ONEOF(intersection_curve, seam_curve) ANDOR bounded_surface_curve) SUBTYPE OF (curve); curve_3d : curve; associated_geometry : LIST [1:2] OF pcurve_or_surface; master_representation : preferred_surface_curve_representation; DERIVE basis_surface : SET [1:2] OF surface := get_basis_surface(SELF); WHERE WR1: curve_3d.dim = 3; WR2: ('INTEGRATED_CNC_SCHEMA.PCURVE' IN TYPEOF(associated_geometry[1])) OR (master_representation <> pcurve_s1); WR3: ('INTEGRATED_CNC_SCHEMA.PCURVE' IN TYPEOF(associated_geometry[2])) OR (master_representation <> pcurve_s2); WR4: NOT ('INTEGRATED_CNC_SCHEMA.PCURVE' IN TYPEOF(curve_3d)); END_ENTITY; -- 10303-42: geometry_schema ENTITY surface_of_linear_extrusion SUBTYPE OF (swept_surface); extrusion_axis : vector; END_ENTITY; -- 10303-42: geometry_schema ENTITY surface_of_revolution SUBTYPE OF (swept_surface); axis_position : axis1_placement; DERIVE axis_line : line := representation_item('') || geometric_representation_item() || curve() || line( axis_position.location, representation_item('') || geometric_representation_item() || vector(axis_position. z, 1.0)); END_ENTITY; -- 10303-42: geometry_schema ENTITY surface_pair ABSTRACT SUPERTYPE OF (ONEOF(sliding_surface_pair, rolling_surface_pair) ANDOR surface_pair_with_range) SUBTYPE OF (high_order_kinematic_pair); surface_1 : surface; surface_2 : surface; orientation : BOOLEAN; WHERE WR1: SIZEOF(QUERY (r <* SELF\kinematic_pair. associated_link_representations_1| NOT (surface_1 IN r.items) )) = 0; WR2: SIZEOF(QUERY (r <* SELF\kinematic_pair. associated_link_representations_2| NOT (surface_2 IN r.items) )) = 0; WR3: SIZEOF(QUERY (lr <* SELF\kinematic_pair. associated_link_representations_1| NOT ( 'INTEGRATED_CNC_SCHEMA.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr)))) = 0; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY surface_pair_with_range SUBTYPE OF (surface_pair); range_on_surface_1 : rectangular_trimmed_surface; range_on_surface_2 : rectangular_trimmed_surface; lower_limit_actual_rotation : OPTIONAL plane_angle_measure; upper_limit_actual_rotation : OPTIONAL plane_angle_measure; WHERE WR1: SELF\surface_pair.surface_1 :=: range_on_surface_1.basis_surface; WR2: SELF\surface_pair.surface_2 :=: range_on_surface_2.basis_surface; WR3: (NOT EXISTS(lower_limit_actual_rotation) OR NOT EXISTS( upper_limit_actual_rotation)) XOR ( lower_limit_actual_rotation < upper_limit_actual_rotation); WR4: SIZEOF(QUERY (r <* SELF\kinematic_pair. associated_link_representations_1| NOT (range_on_surface_1 IN r.items))) = 0; WR5: SIZEOF(QUERY (r <* SELF\kinematic_pair. associated_link_representations_2| NOT (range_on_surface_2 IN r.items))) = 0; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY surface_patch SUBTYPE OF (founded_item); parent_surface : bounded_surface; u_transition : transition_code; v_transition : transition_code; u_sense : BOOLEAN; v_sense : BOOLEAN; INVERSE using_surfaces : BAG [1:?] OF rectangular_composite_surface FOR segments; WHERE WR1: NOT ('INTEGRATED_CNC_SCHEMA.CURVE_BOUNDED_SURFACE' IN TYPEOF( parent_surface)); END_ENTITY; -- 10303-42: geometry_schema ENTITY surface_profile_tolerance SUBTYPE OF (geometric_tolerance); WHERE WR1: NOT ('INTEGRATED_CNC_SCHEMA.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF(SELF)) OR (SIZEOF(SELF\geometric_tolerance_with_datum_reference. datum_system) <= 3); END_ENTITY; -- 10303-519: aic_geometric_tolerances ENTITY surface_rendering_properties; rendered_colour : colour; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY surface_replica SUBTYPE OF (surface); parent_surface : surface; transformation : cartesian_transformation_operator_3d; WHERE WR1: acyclic_surface_replica(SELF, parent_surface); END_ENTITY; -- 10303-42: geometry_schema ENTITY surface_side_style; name : label; styles : SET [1:7] OF surface_style_element_select; WHERE WR1: SIZEOF(QUERY (style1 <* SELF.styles| (SIZEOF(QUERY (style2 <* SELF .styles - style1| (TYPEOF(style1) = TYPEOF(style2)))) > 0))) = 0; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY surface_style_boundary; style_of_boundary : curve_or_render; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY surface_style_control_grid; style_of_control_grid : curve_or_render; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY surface_style_fill_area; fill_area : fill_area_style; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY surface_style_parameter_line; style_of_parameter_lines : curve_or_render; direction_counts : SET [1:2] OF direction_count_select; WHERE WR1: (HIINDEX(SELF.direction_counts) = 1) XOR (TYPEOF(SELF. direction_counts[1]) <> TYPEOF(SELF.direction_counts[2])); END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY surface_style_reflectance_ambient; ambient_reflectance : REAL; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY surface_style_reflectance_ambient_diffuse SUBTYPE OF (surface_style_reflectance_ambient); diffuse_reflectance : REAL; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY surface_style_reflectance_ambient_diffuse_specular SUBTYPE OF (surface_style_reflectance_ambient_diffuse); specular_reflectance : REAL; specular_exponent : REAL; specular_colour : colour; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY surface_style_rendering; rendering_method : shading_surface_method; surface_colour : colour; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY surface_style_rendering_with_properties SUBTYPE OF (surface_style_rendering); properties : SET [1:2] OF rendering_properties_select; WHERE WR1: (HIINDEX(SELF.properties) = 1) XOR (TYPEOF(SELF.properties[1]) <> TYPEOF(SELF.properties[2])); END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY surface_style_segmentation_curve; style_of_segmentation_curve : curve_or_render; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY surface_style_silhouette; style_of_silhouette : curve_or_render; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY surface_style_transparent; transparency : REAL; WHERE WR1: (0.0 <= transparency) AND (transparency <= 1.0); END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY surface_style_usage; side : surface_side; style : surface_side_style_select; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY surface_texture_representation SUBTYPE OF (representation); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY swept_surface SUPERTYPE OF (ONEOF(surface_of_linear_extrusion, surface_of_revolution)) SUBTYPE OF (surface); swept_curve : curve; END_ENTITY; -- 10303-42: geometry_schema ENTITY symbol_colour; colour_of_symbol : colour; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY symbol_representation SUBTYPE OF (representation); END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY symbol_representation_map SUBTYPE OF (representation_map); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.SYMBOL_REPRESENTATION' IN TYPEOF(SELF\ representation_map.mapped_representation); WR2: 'INTEGRATED_CNC_SCHEMA.AXIS2_PLACEMENT' IN TYPEOF(SELF\ representation_map.mapping_origin); END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY symbol_style; name : label; style_of_symbol : symbol_style_select; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY symbol_target SUBTYPE OF (geometric_representation_item); placement : axis2_placement; x_scale : positive_ratio_measure; y_scale : positive_ratio_measure; END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY symmetric_shape_aspect SUBTYPE OF (shape_aspect); INVERSE basis_relationships : SET [1:?] OF shape_aspect_relationship FOR relating_shape_aspect; WHERE WR1: SIZEOF(QUERY (x <* SELF\symmetric_shape_aspect.basis_relationships | ('INTEGRATED_CNC_SCHEMA.CENTRE_OF_SYMMETRY' IN TYPEOF(x\ shape_aspect_relationship.related_shape_aspect)))) >= 1; END_ENTITY; -- 10303-47: shape_aspect_definition_schema ENTITY symmetry_tolerance SUBTYPE OF (geometric_tolerance_with_datum_reference); WHERE WR1: SIZEOF(SELF\geometric_tolerance_with_datum_reference.datum_system) <= 3; END_ENTITY; -- 10303-519: aic_geometric_tolerances ENTITY tangent SUBTYPE OF (derived_shape_aspect); WHERE WR1: SIZEOF(SELF\derived_shape_aspect.deriving_relationships) = 1; END_ENTITY; -- 10303-47: shape_aspect_definition_schema ENTITY taper SUBTYPE OF (shape_aspect); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape.definition); WR2: SELF.description IN [ 'angle taper', 'diameter taper', 'directed taper' ]; WR3: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))) = 1))) = 0; WR4: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(impl_rep. used_representation.items) = 1))) = 0))) = 0; WR5: NOT (SELF.description = 'angle taper') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'taper angle'))) = 1))) = 0)) ) = 0); WR6: NOT (SELF.description = 'diameter taper') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'final diameter'))) = 1))) = 0))) = 0); WR7: NOT (SELF.description = 'directed taper') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'angle'))) = 1))) = 0))) = 0) ; WR8: NOT (SELF.description = 'directed taper') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation .name = 'direction'))) = 1))) = 0); END_ENTITY; -- 10303-522: aic_machining_feature ENTITY tapping_operation SUBTYPE OF (drilling_type_operation); WHERE WR1: (SELF.description IN ['tapping','thread drilling']); WR2: NOT (SELF.description = 'tapping') OR ((verify_optional_action_property (SELF, 'compensation chuck')) AND (verify_enumeration_action_property (SELF, 'compensation chuck', ['compensation chuck used', 'compensation chuck not used']))); WR3: NOT (SELF.description = 'thread drilling') OR ((verify_optional_action_property (SELF, 'helical movement on forward')) AND (verify_enumeration_action_property (SELF, 'helical movement on forward', ['helical movement on forward', 'no helical movement on forward']))); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY tee_profile SUBTYPE OF (shape_aspect); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape.definition); WR2: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))) = 1))) = 0; WR3: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(impl_rep. used_representation.items) >= 9) AND (SIZEOF(impl_rep. used_representation.items) <= 10))) = 0))) = 0; WR4: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)) AND (SIZEOF(QUERY (srwp_i <* pdr. used_representation.items| (((((((((srwp_i.name = 'orientation') OR (srwp_i.name = 'width')) OR (srwp_i.name = 'depth')) OR (srwp_i.name = 'cross bar width')) OR (srwp_i. name = 'cross bar depth')) OR (srwp_i.name = 'first offset')) OR (srwp_i.name = 'second offset')) OR (srwp_i.name = 'first angle')) OR (srwp_i.name = 'second angle')) OR (srwp_i .name = 'radius'))) = SIZEOF(pdr.used_representation.items))) ) = 1))) = 1; WR5: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| ('INTEGRATED_CNC_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0; WR6: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'width'))) = 1))) = 0))) = 0; WR7: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'depth'))) = 1))) = 0))) = 0; WR8: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'cross bar width'))) = 1))) = 0))) = 0; WR9: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'cross bar depth'))) = 1))) = 0))) = 0; WR10: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'first offset'))) = 1))) = 0))) = 0; WR11: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'second offset'))) = 1))) = 0))) = 0 ; WR12: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'first angle'))) = 1))) = 0)) ) = 0; WR13: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'second angle'))) = 1))) = 0) )) = 0; WR14: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'radius'))) <= 1))) = 0))) = 0; WR15: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.' + 'DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF (pdr.used_representation)) AND (pdr.used_representation.name = 'profile limit'))) <= 1))) = 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY terminator_symbol SUBTYPE OF (annotation_symbol_occurrence); annotated_curve : annotation_curve_occurrence; END_ENTITY; -- 10303-101: draughting_element_schema ENTITY text_literal SUBTYPE OF (geometric_representation_item); literal : presentable_text; placement : axis2_placement; alignment : text_alignment; path : text_path; font : font_select; END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY text_literal_with_associated_curves SUBTYPE OF (text_literal); associated_curves : SET [1:?] OF curve; END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY text_literal_with_blanking_box SUBTYPE OF (text_literal); blanking : planar_box; END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY text_literal_with_delineation SUBTYPE OF (text_literal); delineation : text_delineation; END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY text_literal_with_extent SUBTYPE OF (text_literal); extent : planar_extent; END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY text_string_representation SUBTYPE OF (representation); WHERE WR1: SIZEOF(QUERY (item <* SELF\representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.TEXT_LITERAL', 'INTEGRATED_CNC_SCHEMA.ANNOTATION_TEXT', 'INTEGRATED_CNC_SCHEMA.ANNOTATION_TEXT_CHARACTER', 'INTEGRATED_CNC_SCHEMA.DEFINED_CHARACTER_GLYPH', 'INTEGRATED_CNC_SCHEMA.COMPOSITE_TEXT', 'INTEGRATED_CNC_SCHEMA.AXIS2_PLACEMENT' ] * TYPEOF(item)) = 0 ))) = 0; WR2: SIZEOF(QUERY (item <* SELF\representation.items| NOT (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.TEXT_LITERAL', 'INTEGRATED_CNC_SCHEMA.ANNOTATION_TEXT', 'INTEGRATED_CNC_SCHEMA.ANNOTATION_TEXT_CHARACTER', 'INTEGRATED_CNC_SCHEMA.DEFINED_CHARACTER_GLYPH', 'INTEGRATED_CNC_SCHEMA.COMPOSITE_TEXT' ] * TYPEOF(item)) = 0) )) >= 1; WR3: SIZEOF(QUERY (a2p <* QUERY (item <* SELF\representation.items| ( 'INTEGRATED_CNC_SCHEMA.AXIS2_PLACEMENT' IN TYPEOF(item)))| NOT ((SIZEOF(QUERY (at <* QUERY (item <* SELF\representation. items| ('INTEGRATED_CNC_SCHEMA.' + 'ANNOTATION_TEXT' IN TYPEOF(item)))| (at\mapped_item.mapping_target :=: a2p))) >= 1) OR (SIZEOF(QUERY (atc <* QUERY (item <* SELF\ representation.items| ('INTEGRATED_CNC_SCHEMA.' + 'ANNOTATION_TEXT_CHARACTER' IN TYPEOF(item)))| (atc\ mapped_item.mapping_target :=: a2p))) >= 1)))) = 0; END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY text_style; name : label; character_appearance : character_style_select; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY text_style_for_defined_font; text_colour : colour; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY text_style_with_box_characteristics SUBTYPE OF (text_style); characteristics : SET [1:4] OF box_characteristic_select; WHERE WR1: SIZEOF(QUERY (c1 <* SELF.characteristics| (SIZEOF(QUERY (c2 <* SELF.characteristics - c1| (TYPEOF(c1) = TYPEOF(c2)))) > 0))) = 0; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY text_style_with_mirror SUBTYPE OF (text_style); mirror_placement : axis2_placement; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY text_style_with_spacing SUBTYPE OF (text_style); character_spacing : character_spacing_select; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY thread SUBTYPE OF (feature_definition); WHERE WR1: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| (( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)) AND (8 <= SIZEOF(pdr. used_representation.items))) AND (SIZEOF(pdr. used_representation.items) <= 11))) = 1))) = 1; WR2: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'major diameter'))) = 1))) = 0))) = 0; WR3: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'minor diameter'))) <= 1))) = 0))) = 0; WR4: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'pitch diameter'))) <= 1))) = 0))) = 0; WR5: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.RATIO_MEASURE_WITH_UNIT' ] * TYPEOF(it )) = 2) AND (it.name = 'number of threads'))) = 1))) = 0))) = 0; WR6: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| ( 'INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'fit class'))) = 1))) = 0))) = 0; WR7: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| ( 'INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'form'))) = 1))) = 0))) = 0; WR8: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (( 'INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'hand')) AND (it.description IN [ 'left', 'right' ]))) = 1))) = 0))) = 0; WR9: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| ( 'INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'qualifier'))) <= 1))) = 0))) = 0; WR10: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (( 'INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'thread side')) AND ((it. description = 'internal') OR (it.description = 'external')))) = 1))) = 0))) = 0; WR11: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'crest'))) <= 1))) = 0))) = 0; WR12: SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'partial area occurrence') AND (SIZEOF(QUERY ( sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'applied area usage') AND ( 'INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF (sar)))| ('INTEGRATED_CNC_SCHEMA.APPLIED_AREA' IN TYPEOF(sdr. relating_shape_aspect)))) = 1))) = 1))) = 0; WR13: SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'applied shape') AND ('INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sdr.relating_shape_aspect)))) = 1))) = 1))) = 0; WR14: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| ( 'INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'fit class 2'))) <= 1))) = 0))) = 0; WR15: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'nominal size'))) <= 1))) = 0))) = 0 ; WR16: SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'thread runout') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'thread runout usage') AND ( 'INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF (sar)))| ('INTEGRATED_CNC_SCHEMA.THREAD_RUNOUT' IN TYPEOF(sdr .relating_shape_aspect)))) <= 1))) = 1))) = 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY thread_runout SUBTYPE OF (shape_aspect); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(SELF. of_shape); WR2: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))) = 1))) = 0; WR3: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(impl_rep. used_representation.items) = 3))) = 0))) = 0; WR4: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)) AND (SIZEOF(QUERY (srwp_i <* pdr. used_representation.items| NOT (srwp_i.name IN [ 'length of runout', 'pitch or dimension', 'included or extra' ]))) > 0))) = 0))) = 0; WR5: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'length of runout'))) = 1))) = 0))) <= 1; WR6: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (( 'INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'pitch or dimension')) AND (it. description IN [ 'pitch', 'pitch or dimension' ]))) = 1))) = 0))) = 0; WR7: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (( 'INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'included or extra')) AND (it. description IN [ 'included', 'extra' ]))) = 1))) = 0))) = 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY threading_turning_operation SUBTYPE OF (turning_type_operation); WHERE WR1: (SELF.description IN ['roughing','finishing']); WR2: (verify_optional_action_property (SELF, 'allowance')) AND (verify_length_measure_action_property (SELF, 'allowance')); WR3: NOT (SELF.description = 'roughing') OR (verify_required_action_property (SELF, 'allowance')); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY time_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.TIME_UNIT' IN TYPEOF(SELF\measure_with_unit .unit_component); END_ENTITY; -- 10303-41: measure_schema ENTITY time_unit SUBTYPE OF (named_unit); WHERE WR1: ((((((SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\ named_unit.dimensions.mass_exponent = 0.0)) AND (SELF\ named_unit.dimensions.time_exponent = 1.0)) AND (SELF\ named_unit.dimensions.electric_current_exponent = 0.0)) AND ( SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0)) AND (SELF\named_unit.dimensions. amount_of_substance_exponent = 0.0)) AND (SELF\named_unit. dimensions.luminous_intensity_exponent = 0.0); END_ENTITY; -- 10303-41: measure_schema 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; -- 10303-47: shape_tolerance_schema ENTITY tolerance_zone SUBTYPE OF (shape_aspect); defining_tolerance : SET [1:?] OF geometric_tolerance; form : tolerance_zone_form; END_ENTITY; -- 10303-47: shape_tolerance_schema ENTITY tolerance_zone_definition SUPERTYPE OF (ONEOF(projected_zone_definition, runout_zone_definition)); zone : tolerance_zone; boundaries : SET [1:?] OF shape_aspect; END_ENTITY; -- 10303-47: shape_tolerance_schema ENTITY tolerance_zone_form; name : label; END_ENTITY; -- 10303-47: shape_tolerance_schema ENTITY topological_representation_item SUPERTYPE OF (ONEOF(vertex, edge, face_bound, face, vertex_shell, wire_shell, connected_edge_set, connected_face_set, loop ANDOR path)) SUBTYPE OF (representation_item); END_ENTITY; -- 10303-42: topology_schema ENTITY toroidal_surface SUBTYPE OF (elementary_surface); major_radius : positive_length_measure; minor_radius : positive_length_measure; END_ENTITY; -- 10303-42: geometry_schema ENTITY total_runout_tolerance SUBTYPE OF (geometric_tolerance_with_datum_reference); WHERE WR1: SIZEOF(SELF\geometric_tolerance_with_datum_reference.datum_system) <= 2; END_ENTITY; -- 10303-519: aic_geometric_tolerances ENTITY transition_feature SUPERTYPE OF (ONEOF(chamfer, edge_round, fillet)) SUBTYPE OF (shape_aspect); WHERE WR1: SIZEOF([ 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION', 'INTEGRATED_CNC_SCHEMA.COMPOUND_FEATURE' ] * TYPEOF(SELF. of_shape.definition)) = 1; WR2: SIZEOF([ 'INTEGRATED_CNC_SCHEMA.CHAMFER', 'INTEGRATED_CNC_SCHEMA.EDGE_ROUND', 'INTEGRATED_CNC_SCHEMA.FILLET' ] * TYPEOF(SELF)) = 1; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY trimmed_curve SUBTYPE OF (bounded_curve); basis_curve : curve; trim_1 : SET [1:2] OF trimming_select; trim_2 : SET [1:2] OF trimming_select; sense_agreement : BOOLEAN; master_representation : trimming_preference; WHERE WR1: (HIINDEX(trim_1) = 1) OR (TYPEOF(trim_1[1]) <> TYPEOF(trim_1[2])); WR2: (HIINDEX(trim_2) = 1) OR (TYPEOF(trim_2[1]) <> TYPEOF(trim_2[2])); END_ENTITY; -- 10303-42: geometry_schema ENTITY turned_knurl SUBTYPE OF (feature_definition); WHERE WR1: SELF\characterized_object.description IN [ 'diamond', 'diagonal', 'straight' ]; WR2: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)) AND ((6 <= SIZEOF(pdr. used_representation.items)) AND (SIZEOF(pdr. used_representation.items) <= 9)))) = 1))) = 1; WR3: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (( 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (it)) AND ('INTEGRATED_CNC_SCHEMA.COUNT_MEASURE' IN TYPEOF(it \measure_with_unit.value_component))) AND (it.name = 'number of teeth'))) <= 1))) = 0))) = 0; WR4: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'major diameter'))) = 1))) = 0))) = 0; WR5: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'nominal diameter'))) = 1))) = 0))) = 0; WR6: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.' + 'DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'tooth depth'))) <= 1))) = 0))) = 0; WR7: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'root fillet'))) <= 1))) = 0))) = 0; WR8: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it)) = 2) AND (it.name = 'diametral pitch'))) = 1))) = 0))) = 0; WR9: NOT (SELF\characterized_object.description IN [ 'diamond', 'diagonal' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'helix angle'))) = 1))) = 0)) ) = 0); WR10: NOT (SELF\characterized_object.description = 'diagonal') OR ( SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| ( 'INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'helix hand'))) = 1))) = 0))) = 0) ; WR11: SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ. description = 'partial area occurrence') AND (SIZEOF(QUERY ( sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'applied area usage') AND ('INTEGRATED_CNC_SCHEMA.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ( 'INTEGRATED_CNC_SCHEMA.APPLIED_AREA' IN TYPEOF(sdr. relating_shape_aspect)))) = 1))) = 1))) = 0; WR12: SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd )))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'applied shape') AND ('INTEGRATED_CNC_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sdr.relating_shape_aspect)))) = 1))) = 1))) = 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY turning_type_operation SUBTYPE OF (machining_operation); WHERE WR1: ((verify_optional_relating_amr_with_name (SELF, 'approach', ['INTEGRATED_CNC_SCHEMA.MACHINING_STRATEGY_RELATIONSHIP'])) AND (verify_related_type_for_amr_with_name (SELF, 'approach', ['INTEGRATED_CNC_SCHEMA.MACHINING_STRATEGY_RELATIONSHIP'], ['INTEGRATED_CNC_SCHEMA.MACHINING_APPROACH_RETRACT_STRATEGY'])) ); WR2: ((verify_optional_relating_amr_with_name (SELF, 'retract', ['INTEGRATED_CNC_SCHEMA.MACHINING_STRATEGY_RELATIONSHIP'])) AND (verify_related_type_for_amr_with_name (SELF, 'retract', ['INTEGRATED_CNC_SCHEMA.MACHINING_STRATEGY_RELATIONSHIP'], ['INTEGRATED_CNC_SCHEMA.MACHINING_APPROACH_RETRACT_STRATEGY'])) ); WR3: ((verify_optional_relating_amr_with_name (SELF, 'machining', ['INTEGRATED_CNC_SCHEMA.MACHINING_STRATEGY_RELATIONSHIP'])) AND (verify_related_type_for_amr_with_name (SELF, 'machining', ['INTEGRATED_CNC_SCHEMA.MACHINING_STRATEGY_RELATIONSHIP'], ['INTEGRATED_CNC_SCHEMA.TURNING_TYPE_STRATEGY'])) ); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY turning_type_strategy SUBTYPE OF (machining_strategy); WHERE WR1: (SELF.description IN ['unidirectional', 'bidirectional', 'contour', 'thread', 'grooving', 'multistep grooving', 'explicit']); WR2: ((verify_optional_action_property (SELF, 'overcut length')) AND (verify_length_measure_action_property (SELF, 'overcut length')) ); WR3: ((verify_optional_action_property (SELF, 'multiple passes')) AND (verify_enumeration_action_property (SELF, 'multiple passes', ['multiple passes allowed', 'multiple passes not allowed'])) ); WR4: ((verify_optional_action_property (SELF, 'cutting depth')) AND (0 = SIZEOF (QUERY (prop <* get_action_property (SELF, 'cutting depth') | NOT (0 < SIZEOF (QUERY (prep <* USEDIN (prop, 'INTEGRATED_CNC_SCHEMA.' + 'ACTION_PROPERTY_REPRESENTATION.PROPERTY') | (1 = SIZEOF (QUERY (it <* prep.representation.items | (('INTEGRATED_CNC_SCHEMA.COMPOUND_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('INTEGRATED_CNC_SCHEMA.LIST_REPRESENTATION_ITEM' IN TYPEOF(it.item_element)) AND (0 = SIZEOF (QUERY (ie <* it.item_element | NOT (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(ie)) = 2)))) )))) ))) ))) ); WR5: ((verify_optional_action_property (SELF, 'variable feedrate')) AND (verify_rep_type_for_action_property (SELF, 'variable feedrate', ['INTEGRATED_CNC_SCHEMA.MACHINING_FEED_SPEED_REPRESENTATION'])) AND (verify_rep_name_for_action_property (SELF, 'variable feedrate', ['relative speed'])) ); WR6: NOT (SELF.description = 'unidirectional') OR ((verify_optional_action_property (SELF, 'feed direction')) AND (verify_rep_item_for_action_property (SELF, 'feed direction', ['INTEGRATED_CNC_SCHEMA.DIRECTION'])) AND (verify_optional_action_property (SELF, 'back path direction')) AND (verify_rep_item_for_action_property (SELF, 'back path direction', ['INTEGRATED_CNC_SCHEMA.DIRECTION'])) AND (verify_optional_action_property (SELF, 'lift direction')) AND (verify_rep_item_for_action_property (SELF, 'lift direction', ['INTEGRATED_CNC_SCHEMA.DIRECTION'])) AND (verify_optional_action_property (SELF, 'stepover direction')) AND (verify_rep_item_for_action_property (SELF, 'stepover direction', ['INTEGRATED_CNC_SCHEMA.DIRECTION'])) AND (verify_optional_action_property (SELF, 'lift height')) AND (verify_length_measure_action_property (SELF, 'lift height')) AND (verify_optional_action_property (SELF, 'lift feedrate')) AND (verify_rep_type_for_action_property (SELF, 'lift feedrate', ['INTEGRATED_CNC_SCHEMA.MACHINING_FEED_SPEED_REPRESENTATION'])) AND (verify_rep_name_for_action_property (SELF, 'lift feedrate', ['feed speed', 'feed per revolution'])) AND (verify_optional_action_property (SELF, 'stepover feedrate')) AND (verify_rep_type_for_action_property (SELF, 'stepover feedrate', ['INTEGRATED_CNC_SCHEMA.MACHINING_FEED_SPEED_REPRESENTATION'])) AND (verify_rep_name_for_action_property (SELF, 'stepover feedrate', ['feed speed', 'feed per revolution'])) ); WR7: NOT (SELF.description = 'bidirectional') OR ((verify_optional_action_property (SELF, 'feed direction')) AND (verify_rep_item_for_action_property (SELF, 'feed direction', ['INTEGRATED_CNC_SCHEMA.DIRECTION'])) AND (verify_optional_action_property (SELF, 'stepover direction')) AND (verify_rep_item_for_action_property (SELF, 'stepover direction', ['INTEGRATED_CNC_SCHEMA.DIRECTION'])) AND (verify_optional_action_property (SELF, 'stepover feedrate')) AND (verify_rep_type_for_action_property (SELF, 'stepover feedrate', ['INTEGRATED_CNC_SCHEMA.MACHINING_FEED_SPEED_REPRESENTATION'])) AND (verify_rep_name_for_action_property (SELF, 'stepover feedrate', ['feed speed', 'feed per revolution'])) ); WR8: NOT (SELF.description = 'contour') OR ((verify_optional_action_property (SELF, 'feed direction')) AND (verify_rep_item_for_action_property (SELF, 'feed direction', ['INTEGRATED_CNC_SCHEMA.DIRECTION'])) AND (verify_optional_action_property (SELF, 'back path direction')) AND (verify_rep_item_for_action_property (SELF, 'back path direction', ['INTEGRATED_CNC_SCHEMA.DIRECTION'])) AND (verify_optional_action_property (SELF, 'lift direction')) AND (verify_rep_item_for_action_property (SELF, 'lift direction', ['INTEGRATED_CNC_SCHEMA.DIRECTION'])) AND (verify_optional_action_property (SELF, 'stepover direction')) AND (verify_rep_item_for_action_property (SELF, 'stepover direction', ['INTEGRATED_CNC_SCHEMA.DIRECTION'])) AND (verify_optional_action_property (SELF, 'lift height')) AND (verify_length_measure_action_property (SELF, 'lift height')) AND (verify_optional_action_property (SELF, 'lift feedrate')) AND (verify_rep_type_for_action_property (SELF, 'lift feedrate', ['INTEGRATED_CNC_SCHEMA.MACHINING_FEED_SPEED_REPRESENTATION'])) AND (verify_rep_name_for_action_property (SELF, 'lift feedrate', ['feed speed', 'feed per revolution'])) AND (verify_optional_action_property (SELF, 'stepover feedrate')) AND (verify_rep_type_for_action_property (SELF, 'stepover feedrate', ['INTEGRATED_CNC_SCHEMA.MACHINING_FEED_SPEED_REPRESENTATION'])) AND (verify_rep_name_for_action_property (SELF, 'stepover feedrate', ['feed speed', 'feed per revolution'])) AND (verify_optional_action_property (SELF, 'variable stepover feedrate')) AND (verify_rep_type_for_action_property (SELF, 'variable stepover feedrate', ['INTEGRATED_CNC_SCHEMA.MACHINING_FEED_SPEED_REPRESENTATION'])) AND (verify_rep_name_for_action_property (SELF, 'variable stepover feedrate', ['relative speed'])) ); WR9: NOT (SELF.description = 'thread') OR ((verify_required_action_property (SELF, 'cut in amount')) AND (verify_enumeration_action_property (SELF, 'cut in amount', ['constant depth', 'variable depth', 'constant removal amount'])) AND (verify_required_action_property (SELF, 'threading direction')) AND (verify_enumeration_action_property (SELF, 'threading direction', ['left', 'right', 'center', 'left zigzag', 'right zigzag'])) AND (verify_optional_action_property (SELF, 'path return angle')) AND (verify_angle_measure_action_property (SELF, 'path return angle')) AND (verify_optional_action_property (SELF, 'lift height')) AND (verify_length_measure_action_property (SELF, 'lift height')) ); WR10: NOT (SELF.description IN ['grooving', 'multistep grooving']) OR ((verify_optional_action_property (SELF, 'grooving direction')) AND (verify_rep_item_for_action_property (SELF, 'grooving direction', ['INTEGRATED_CNC_SCHEMA.DIRECTION'])) AND (verify_optional_action_property (SELF, 'travel distance')) AND (verify_length_measure_action_property (SELF, 'travel distance')) ); WR11: NOT (SELF.description = 'multistep grooving') OR ((verify_optional_action_property (SELF, 'retract distance')) AND (verify_length_measure_action_property (SELF, 'retract distance')) ); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY two_direction_repeat_factor SUBTYPE OF (one_direction_repeat_factor); second_repeat_factor : vector; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY type_qualifier; name : label; END_ENTITY; -- 10303-45: qualified_measure_schema ENTITY unary_boolean_expression ABSTRACT SUPERTYPE OF (not_expression) SUBTYPE OF (boolean_expression, unary_generic_expression); END_ENTITY; -- 13584-20: iso13584_expressions_schema ENTITY unary_generic_expression ABSTRACT SUPERTYPE SUBTYPE OF (generic_expression); operand : generic_expression; END_ENTITY; -- 13584-20: iso13584_generic_expressions_schema ENTITY uncertainty_measure_with_unit SUBTYPE OF (measure_with_unit); name : label; description : OPTIONAL text; WHERE WR1: valid_measure_value(SELF\measure_with_unit.value_component); END_ENTITY; -- 10303-43: representation_schema ENTITY uncertainty_qualifier SUPERTYPE OF (ONEOF(standard_uncertainty, qualitative_uncertainty)); measure_name : label; description : text; END_ENTITY; -- 10303-45: qualified_measure_schema ENTITY unconstrained_pair SUBTYPE OF (low_order_kinematic_pair); DERIVE SELF\low_order_kinematic_pair.t_x : BOOLEAN := TRUE; SELF\low_order_kinematic_pair.t_y : BOOLEAN := TRUE; SELF\low_order_kinematic_pair.t_z : BOOLEAN := TRUE; SELF\low_order_kinematic_pair.r_x : BOOLEAN := TRUE; SELF\low_order_kinematic_pair.r_y : BOOLEAN := TRUE; SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY unconstrained_pair_value SUBTYPE OF (pair_value); SELF\pair_value.applies_to_pair : unconstrained_pair; actual_placement : axis2_placement_3d; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY uniform_curve SUBTYPE OF (b_spline_curve); END_ENTITY; -- 10303-42: geometry_schema ENTITY uniform_surface SUBTYPE OF (b_spline_surface); END_ENTITY; -- 10303-42: geometry_schema ENTITY universal_pair SUBTYPE OF (low_order_kinematic_pair); input_skew_angle : OPTIONAL plane_angle_measure; DERIVE SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_x : BOOLEAN := TRUE; SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; skew_angle : plane_angle_measure := NVL(input_skew_angle, 0.0); WHERE WR1: COS(plane_angle_for_pair_in_radian(SELF, skew_angle)) > 0.0; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY universal_pair_value SUBTYPE OF (pair_value); SELF\pair_value.applies_to_pair : universal_pair; first_rotation_angle : plane_angle_measure; second_rotation_angle : plane_angle_measure; END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY universal_pair_with_range SUBTYPE OF (universal_pair); lower_limit_first_rotation : OPTIONAL plane_angle_measure; upper_limit_first_rotation : OPTIONAL plane_angle_measure; lower_limit_second_rotation : OPTIONAL plane_angle_measure; upper_limit_second_rotation : OPTIONAL plane_angle_measure; WHERE WR1: (NOT EXISTS(lower_limit_first_rotation) OR NOT EXISTS( upper_limit_first_rotation)) XOR (lower_limit_first_rotation < upper_limit_first_rotation); WR2: (NOT EXISTS(lower_limit_second_rotation) OR NOT EXISTS( upper_limit_second_rotation)) XOR ( lower_limit_second_rotation < upper_limit_second_rotation); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY value_range SUBTYPE OF (compound_representation_item); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY value_representation_item SUBTYPE OF (representation_item); value_component : measure_value; WHERE WR1: SIZEOF(QUERY (rep <* using_representations(SELF)| NOT ( 'INTEGRATED_CNC_SCHEMA.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN TYPEOF(rep.context_of_items)))) = 0; END_ENTITY; -- 10303-43: representation_schema ENTITY variable ABSTRACT SUPERTYPE OF (numeric_variable) SUBTYPE OF (generic_variable); END_ENTITY; -- 13584-20: iso13584_expressions_schema ENTITY variable_semantics ABSTRACT SUPERTYPE; END_ENTITY; -- 13584-20: iso13584_generic_expressions_schema ENTITY vector SUBTYPE OF (geometric_representation_item); orientation : direction; magnitude : length_measure; WHERE WR1: magnitude >= 0.0; END_ENTITY; -- 10303-42: geometry_schema ENTITY vector_style SUBTYPE OF (pre_defined_terminator_symbol, curve_style); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY vee_profile SUBTYPE OF (shape_aspect); WHERE WR1: 'INTEGRATED_CNC_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape.definition); WR2: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))) = 1))) = 0; WR3: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(impl_rep. used_representation.items) >= 3) AND (SIZEOF(impl_rep. used_representation.items) <= 6))) = 0))) = 0; WR4: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ( SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)) AND (SIZEOF(QUERY (srwp_i <* pdr. used_representation.items| (((((srwp_i.name = 'orientation') OR (srwp_i.name = 'profile angle')) OR (srwp_i.name = 'tilt angle')) OR (srwp_i.name = 'profile radius')) OR ( srwp_i.name = 'first length')) OR (srwp_i.name = 'second length'))) = SIZEOF(pdr.used_representation.items)))) = 1))) = 1; WR5: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| ('INTEGRATED_CNC_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0; WR6: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (( 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (it)) AND ('INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(it\measure_with_unit.value_component))) AND (it. name = 'profile radius'))) <= 1))) = 0))) = 0; WR7: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'profile angle'))) = 1))) = 0 ))) = 0; WR8: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'tilt angle'))) = 1))) = 0))) = 0; WR9: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF (pdr.used_representation)) AND (pdr.used_representation.name = 'profile limit'))) <= 1))) = 0; WR10: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (( 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (it)) AND ('INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(it\measure_with_unit.value_component))) AND (it. name = 'first length'))) <= 1))) = 0))) = 0; WR11: SIZEOF(QUERY (pd <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ( 'INTEGRATED_CNC_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr. used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep. used_representation.items| (( 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (it)) AND ('INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(it\measure_with_unit.value_component))) AND (it. name = 'second length'))) <= 1))) = 0))) = 0; END_ENTITY; -- 10303-522: aic_machining_feature ENTITY vertex SUBTYPE OF (topological_representation_item); END_ENTITY; -- 10303-42: topology_schema ENTITY vertex_loop SUBTYPE OF (loop); loop_vertex : vertex; END_ENTITY; -- 10303-42: topology_schema ENTITY vertex_point SUBTYPE OF (vertex, geometric_representation_item); vertex_geometry : point; END_ENTITY; -- 10303-42: topology_schema ENTITY vertex_shell SUBTYPE OF (topological_representation_item); vertex_shell_extent : vertex_loop; END_ENTITY; -- 10303-42: topology_schema ENTITY via_arc_point SUBTYPE OF (cartesian_point); WHERE WR1: SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.POLYLINE.POINTS')) > 0; WR2: (0 = SIZEOF (QUERY (pl <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.POLYLINE.POINTS') | ((pl.points[1] = SELF) OR (pl.points[HiIndex(pl.points)] = SELF)) ))); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY via_helix_point SUBTYPE OF (cartesian_point); WHERE WR1: SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.POLYLINE.POINTS')) > 0; WR2: (0 = SIZEOF (QUERY (pl <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.POLYLINE.POINTS') | ((pl.points[1] = SELF) OR (pl.points[HiIndex(pl.points)] = SELF)) ))); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY view_volume SUBTYPE OF (founded_item); projection_type : central_or_parallel; projection_point : cartesian_point; view_plane_distance : length_measure; front_plane_distance : length_measure; front_plane_clipping : BOOLEAN; back_plane_distance : length_measure; back_plane_clipping : BOOLEAN; view_volume_sides_clipping : BOOLEAN; view_window : planar_box; END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY visual_appearance_representation SUBTYPE OF (representation); WHERE WR1: ((3 <= SIZEOF(SELF.items)) AND (SIZEOF(SELF.items) <= 9)) AND ( SIZEOF(QUERY (i <* items| ('INTEGRATED_CNC_SCHEMA.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name IN [ 'colour id', 'colour name', 'lustre', 'pattern', 'transparency', 'orientation' ]))) + SIZEOF(QUERY (i <* items | (SIZEOF([ ('INTEGRATED_CNC_SCHEMA.' + 'MEASURE_REPRESENTATION_ITEM'), ('INTEGRATED_CNC_SCHEMA.' + 'VALUE_RANGE') ] * TYPEOF(i)) = 1) AND (i.name IN [ 'refraction index', 'opacity' ]))) + SIZEOF(QUERY (i <* items | ('INTEGRATED_CNC_SCHEMA.' + 'DOCUMENT_FILE' IN TYPEOF(i)) AND (i.name IN [ 'texture map' ]))) = SIZEOF(SELF.items)); WR2: SIZEOF(QUERY (i <* SELF.items| (i.name = 'colour id'))) = 1; WR3: SIZEOF(QUERY (i <* SELF.items| (i.name = 'lustre'))) = 1; WR4: SIZEOF(QUERY (i <* SELF.items| (i.name = 'colour name'))) <= 1; WR5: SIZEOF(QUERY (i <* SELF.items| (i.name = 'pattern'))) <= 1; WR6: SIZEOF(QUERY (i <* SELF.items| (i.name = 'transparency'))) <= 1; WR7: SIZEOF(QUERY (i <* SELF.items| (i.name = 'texture map'))) <= 1; WR8: SIZEOF(QUERY (i <* SELF.items| (i.name = 'refraction index'))) <= 1; WR9: SIZEOF(QUERY (i <* SELF.items| (i.name = 'opacity'))) <= 1; WR10: SIZEOF(QUERY (i <* SELF.items| (i.name = 'orientation'))) <= 1; WR11: (SIZEOF(USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION' )) = 1) AND (SIZEOF(QUERY (pdr <* USEDIN(SELF, 'INTEGRATED_CNC_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION' )| (SIZEOF(QUERY (gpa <* USEDIN(pdr.definition, 'INTEGRATED_CNC_SCHEMA.' + 'GENERAL_PROPERTY_ASSOCIATION.' + 'DERIVED_DEFINITION')| ('INTEGRATED_CNC_SCHEMA.' + 'GENERAL_PROPERTY' IN TYPEOF(gpa.base_definition)) AND (gpa. base_definition.name = 'surface_condition'))) = 1))) = 1); END_ENTITY; -- 10303-238: integrated_cnc_schema ENTITY week_of_year_and_day_date SUBTYPE OF (date); week_component : week_in_year_number; day_component : OPTIONAL day_in_week_number; END_ENTITY; -- 10303-41: date_time_schema ENTITY wire_shell SUBTYPE OF (topological_representation_item); wire_shell_extent : SET [1:?] OF loop; WHERE WR1: NOT mixed_loop_type_set(wire_shell_extent); END_ENTITY; -- 10303-42: topology_schema ENTITY xor_expression SUBTYPE OF (binary_boolean_expression); SELF\binary_generic_expression.operands : LIST [2:2] OF boolean_expression; END_ENTITY; -- 13584-20: iso13584_expressions_schema RULE application_context_requires_ap_definition FOR (application_context, application_protocol_definition); WHERE WR1: (0 = SIZEOF (QUERY (ac <* application_context | NOT (1 = SIZEOF (QUERY (apd <* application_protocol_definition | (apd.application :=: ac) AND (apd.application_interpreted_model_schema_name = 'integrated_cnc_schema')))) ))); END_RULE; -- 10303-238: integrated_cnc_schema RULE approval_requires_approval_person_organization FOR (approval, approval_person_organization); WHERE WR1: (0 = SIZEOF (QUERY (app <* approval | NOT (1 <= SIZEOF (QUERY (apo <* approval_person_organization | (app :=: apo.authorized_approval)))) ))); END_RULE; -- 10303-238: integrated_cnc_schema RULE approval_requires_assignment FOR (approval, approval_assignment); WHERE WR1: (0 = SIZEOF (QUERY (app <* approval | NOT (1 <= SIZEOF (QUERY (aa <* approval_assignment | (app :=: aa.assigned_approval)))) ))); END_RULE; -- 10303-238: integrated_cnc_schema RULE chamfer_requires_faces_or_features FOR (chamfer, property_definition_representation, feature_component_relationship); WHERE WR1: (0 = SIZEOF (QUERY (cf <* chamfer | NOT ( -- chamfer relates two sets of faces in AP-224 style ((1 = SIZEOF (QUERY (pdr <* property_definition_representation | ((pdr.used_representation.name = 'chamfer face') AND (pdr.definition.definition :=: cf) AND ('INTEGRATED_CNC_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF (pdr.used_representation)))))) AND (1 = SIZEOF (QUERY (fcr <* feature_component_relationship | ((fcr.relating_shape_aspect :=: cf) AND (fcr.related_shape_aspect.description = 'first offset') AND ('INTEGRATED_CNC_SCHEMA.CHAMFER_OFFSET' IN TYPEOF (fcr.related_shape_aspect)) AND ((1 = SIZEOF (QUERY (pdr <* property_definition_representation | ((pdr.used_representation.name = 'first face shape') AND (pdr.definition.definition :=: fcr.related_shape_aspect) AND ('INTEGRATED_CNC_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF (pdr.used_representation))) )))) )))) AND (1 = SIZEOF (QUERY (fcr <* feature_component_relationship | ((fcr.relating_shape_aspect :=: cf) AND (fcr.related_shape_aspect.description = 'second offset') AND ('INTEGRATED_CNC_SCHEMA.CHAMFER_OFFSET' IN TYPEOF (fcr.related_shape_aspect)) AND ((1 = SIZEOF (QUERY (pdr <* property_definition_representation | ((pdr.used_representation.name = 'second face shape') AND (pdr.definition.definition :=: fcr.related_shape_aspect) AND ('INTEGRATED_CNC_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF (pdr.used_representation))) )))) )))) ) OR -- chamfer relates two features in ISO 14649 style ((1 = SIZEOF (QUERY (fcr <* feature_component_relationship | ((fcr.name = 'first feature') AND (fcr.relating_shape_aspect.of_shape.definition :=: cf) AND ('INTEGRATED_CNC_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF (fcr.relating_shape_aspect)))))) AND (1 = SIZEOF (QUERY (fcr <* feature_component_relationship | ((fcr.name = 'second feature') AND (fcr.relating_shape_aspect.of_shape.definition :=: cf) AND ('INTEGRATED_CNC_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF (fcr.relating_shape_aspect))))))) )))); END_RULE; -- 10303-238: integrated_cnc_schema RULE compatible_dimension FOR (cartesian_point, direction, representation_context, geometric_representation_context); WHERE WR1: SIZEOF(QUERY (x <* cartesian_point| (SIZEOF(QUERY (y <* geometric_representation_context| item_in_context(x, y) AND ( HIINDEX(x.coordinates) <> y.coordinate_space_dimension))) > 0 ))) = 0; WR2: SIZEOF(QUERY (x <* direction| (SIZEOF(QUERY (y <* geometric_representation_context| item_in_context(x, y) AND ( HIINDEX(x.direction_ratios) <> y.coordinate_space_dimension)) ) > 0))) = 0; END_RULE; -- 10303-42: geometry_schema RULE dependent_instantiable_approval_status FOR (approval_status); WHERE WR1: (0 = SIZEOF (QUERY (ast <* approval_status | NOT (1 <= SIZEOF (USEDIN (ast, ''))) ))); END_RULE; -- 10303-238: integrated_cnc_schema RULE dependent_instantiable_derived_unit FOR (derived_unit); WHERE WR1: (0 = SIZEOF (QUERY (du <* derived_unit | NOT (1 <= SIZEOF (USEDIN (du, ''))) ))); END_RULE; -- 10303-238: integrated_cnc_schema RULE dependent_instantiable_named_unit FOR (named_unit); WHERE WR1: (0 = SIZEOF (QUERY (nu <* named_unit | NOT (1 <= SIZEOF (USEDIN (nu, ''))) ))); END_RULE; -- 10303-238: integrated_cnc_schema RULE edge_round_requires_faces_or_features FOR (edge_round, property_definition_representation, feature_component_relationship); WHERE WR1: (0 = SIZEOF (QUERY (er <* edge_round | NOT ( -- edge round relates two sets of faces in AP-224 style ((1 = SIZEOF (QUERY (pdr <* property_definition_representation | ((pdr.used_representation.name = 'edge round face') AND (pdr.definition.definition :=: er) AND ('INTEGRATED_CNC_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF (pdr.used_representation)))))) AND (1 = SIZEOF (QUERY (pdr <* property_definition_representation | ((pdr.used_representation.name = 'first face shape') AND (pdr.definition.definition :=: er) AND ('INTEGRATED_CNC_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF (pdr.used_representation)))))) AND (1 = SIZEOF (QUERY (pdr <* property_definition_representation | ((pdr.used_representation.name = 'second face shape') AND (pdr.definition.definition :=: er) AND ('INTEGRATED_CNC_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF (pdr.used_representation)))))) ) OR -- edge round relates two features in ISO 14649 style ((1 = SIZEOF (QUERY (fcr <* feature_component_relationship | ((fcr.name = 'first feature') AND (fcr.relating_shape_aspect.of_shape.definition :=: er) AND ('INTEGRATED_CNC_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF (fcr.relating_shape_aspect)))))) AND (1 = SIZEOF (QUERY (fcr <* feature_component_relationship | ((fcr.name = 'second feature') AND (fcr.relating_shape_aspect.of_shape.definition :=: er) AND ('INTEGRATED_CNC_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF (fcr.relating_shape_aspect))))))) )))); END_RULE; -- 10303-238: integrated_cnc_schema RULE feature_optional_machining_property_process FOR (shape_aspect, process_property_association); WHERE WR1: (0 = SIZEOF (QUERY (sa <* shape_aspect | (('INTEGRATED_CNC_SCHEMA.FEATURE_DEFINITION' IN TYPEOF (sa)) OR ('INTEGRATED_CNC_SCHEMA.TRANSITION_FEATURE' IN TYPEOF (sa))) AND NOT (1 >= SIZEOF (QUERY (ppa <* process_property_association | ((ppa.property_or_shape :=: sa) AND (ppa.process.name = 'machining'))))) ))); END_RULE; -- 10303-238: integrated_cnc_schema RULE nc_variable_compatible_initial_value FOR (expression_representation_item, representation_item_relationship); WHERE -- each nc_variable has at most one one initial value WR1: (0 = SIZEOF (QUERY (nv <* expression_representation_item | ('INTEGRATED_CNC_SCHEMA.NUMERIC_VARIABLE' IN TYPEOF (nv)) AND NOT (1 >= SIZEOF (QUERY (rir <* representation_item_relationship | (rir.description = 'initial value') AND (rir.relating_representation_item :=: nv) )))))); -- the types on either side of the initial value relationship must match -- each nc_variable has at most one one initial value WR2: (0 = SIZEOF (QUERY (rir <* representation_item_relationship | (rir.description = 'initial value') AND ('INTEGRATED_CNC_SCHEMA.NUMERIC_VARIABLE' IN TYPEOF (rir.relating_representation_item)) AND NOT ((('INTEGRATED_CNC_SCHEMA.INT_NUMERIC_VARIABLE' IN TYPEOF (rir.relating_representation_item)) AND ('INTEGRATED_CNC_SCHEMA.INT_LITERAL' IN TYPEOF (rir.related_representation_item))) OR ((('INTEGRATED_CNC_SCHEMA.REAL_NUMERIC_VARIABLE' IN TYPEOF (rir.relating_representation_item)) AND ('INTEGRATED_CNC_SCHEMA.REAL_LITERAL' IN TYPEOF (rir.related_representation_item) ))))))); END_RULE; -- 10303-238: integrated_cnc_schema RULE product_requires_version FOR (product, product_definition_formation); WHERE WR1: (0 = SIZEOF (QUERY (prod <* product | NOT (1 <= SIZEOF (QUERY (pdf <* product_definition_formation | (prod :=: pdf.of_product)))) ))); END_RULE; -- 10303-238: integrated_cnc_schema RULE restrict_unneeded_feature_usage FOR (feature_definition); WHERE WR1: (0 = SIZEOF (QUERY (fd <* feature_definition | ('INTEGRATED_CNC_SCHEMA.FILLET' IN TYPEOF(fd)) OR ('INTEGRATED_CNC_SCHEMA.GEAR' IN TYPEOF(fd)) OR ('INTEGRATED_CNC_SCHEMA.MARKING' IN TYPEOF(fd)) OR ('INTEGRATED_CNC_SCHEMA.PROTRUSION' IN TYPEOF(fd)) OR ('INTEGRATED_CNC_SCHEMA.RIB_TOP' IN TYPEOF(fd)) ))); END_RULE; -- 10303-238: integrated_cnc_schema RULE security_classification_requires_assignment FOR (security_classification, security_classification_assignment); WHERE WR1: (0 = SIZEOF (QUERY (sc <* security_classification | NOT (1 <= SIZEOF (QUERY (sca <* security_classification_assignment | (sc :=: sca.assigned_security_classification)))) ))); END_RULE; -- 10303-238: integrated_cnc_schema FUNCTION acyclic ( arg1 : generic_expression; arg2 : SET OF generic_expression ) : BOOLEAN; LOCAL result : BOOLEAN; END_LOCAL; IF 'INTEGRATED_CNC_SCHEMA.SIMPLE_GENERIC_EXPRESSION' IN TYPEOF(arg1) THEN RETURN (TRUE); END_IF; IF arg1 IN arg2 THEN RETURN (FALSE); END_IF; IF 'INTEGRATED_CNC_SCHEMA.UNARY_GENERIC_EXPRESSION' IN TYPEOF(arg1) THEN RETURN (acyclic(arg1\unary_generic_expression.operand, arg2 + [ arg1 ])); END_IF; IF 'INTEGRATED_CNC_SCHEMA.BINARY_GENERIC_EXPRESSION' IN TYPEOF(arg1) THEN RETURN (acyclic(arg1\binary_generic_expression.operands[1], (arg2 + [ arg1 ])) AND acyclic(arg1\binary_generic_expression.operands[2], ( arg2 + [ arg1 ]))); END_IF; IF 'INTEGRATED_CNC_SCHEMA.MULTIPLE_ARITY_GENERIC_EXPRESSION' IN TYPEOF( arg1) THEN result := TRUE; REPEAT i := 1 TO SIZEOF(arg1\multiple_arity_generic_expression. operands); result := result AND acyclic(arg1\multiple_arity_generic_expression .operands[i], (arg2 + [ arg1 ])); END_REPEAT; RETURN (result); END_IF; END_FUNCTION; -- 13584-20: iso13584_generic_expressions_schema FUNCTION acyclic_composite_text ( start_composite : composite_text; child_text : SET [1:?] OF text_or_character ) : LOGICAL; LOCAL i : INTEGER; local_composite_text : SET [0:?] OF composite_text; local_annotation_text : SET [0:?] OF annotation_text; local_children : SET [0:?] OF text_or_character; END_LOCAL; local_composite_text := QUERY (child <* child_text| 'INTEGRATED_CNC_SCHEMA.COMPOSITE_TEXT' IN TYPEOF(child)); IF SIZEOF(local_composite_text) > 0 THEN REPEAT i := 1 TO HIINDEX(local_composite_text); IF start_composite :=: local_composite_text[i] THEN RETURN (FALSE); END_IF; END_REPEAT; END_IF; local_children := child_text; IF SIZEOF(local_composite_text) > 0 THEN REPEAT i := 1 TO HIINDEX(local_composite_text); local_children := local_children + local_composite_text[i]. collected_text; END_REPEAT; END_IF; local_annotation_text := QUERY (child <* child_text| 'INTEGRATED_CNC_SCHEMA.ANNOTATION_TEXT' IN TYPEOF(child)); IF SIZEOF(local_annotation_text) > 0 THEN REPEAT i := 1 TO HIINDEX(local_annotation_text); local_children := local_children + QUERY (item <* local_annotation_text[i]\mapped_item.mapping_source. mapped_representation.items| (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.ANNOTATION_TEXT', 'INTEGRATED_CNC_SCHEMA.COMPOSITE_TEXT' ] * TYPEOF(item)) > 0)); END_REPEAT; END_IF; IF local_children :<>: child_text THEN RETURN (acyclic_composite_text(start_composite, local_children)); ELSE RETURN (TRUE); END_IF; END_FUNCTION; -- 10303-46: presentation_definition_schema FUNCTION acyclic_curve_replica ( rep : curve_replica; parent : curve ) : BOOLEAN; IF NOT ('INTEGRATED_CNC_SCHEMA.CURVE_REPLICA' IN TYPEOF(parent)) THEN RETURN (TRUE); END_IF; IF parent :=: rep THEN RETURN (FALSE); ELSE RETURN (acyclic_curve_replica(rep, parent\curve_replica.parent_curve) ); END_IF; END_FUNCTION; -- 10303-42: geometry_schema FUNCTION acyclic_mapped_item_usage ( rep : representation ) : BOOLEAN; LOCAL items : SET OF representation_item; END_LOCAL; items := QUERY (item <* rep.items| 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM' IN TYPEOF(item)); IF SIZEOF(items) = 0 THEN RETURN (FALSE); ELSE REPEAT i := 1 TO HIINDEX(items); IF items[i]\mapped_item.mapping_source.mapped_representation :=: rep THEN RETURN (TRUE); ELSE RETURN (acyclic_mapped_item_usage(items[i]\mapped_item. mapping_source.mapped_representation)); END_IF; END_REPEAT; RETURN (FALSE); END_IF; END_FUNCTION; -- 10303-504: aic_draughting_annotation FUNCTION acyclic_mapped_representation ( parent_set : SET OF representation; children_set : SET OF representation_item ) : BOOLEAN; LOCAL x : SET OF representation_item; y : SET OF representation_item; END_LOCAL; x := QUERY (z <* children_set| 'INTEGRATED_CNC_SCHEMA.MAPPED_ITEM' IN TYPEOF(z)); IF SIZEOF(x) > 0 THEN REPEAT i := 1 TO HIINDEX(x); IF x[i]\mapped_item.mapping_source.mapped_representation IN parent_set THEN RETURN (FALSE); END_IF; IF NOT acyclic_mapped_representation((parent_set + x[i]\mapped_item .mapping_source.mapped_representation), x[i]\mapped_item. mapping_source.mapped_representation.items) THEN RETURN (FALSE); END_IF; END_REPEAT; END_IF; x := children_set - x; IF SIZEOF(x) > 0 THEN REPEAT i := 1 TO HIINDEX(x); y := QUERY (z <* bag_to_set(USEDIN(x[i], ''))| 'INTEGRATED_CNC_SCHEMA.REPRESENTATION_ITEM' IN TYPEOF(z)); IF NOT acyclic_mapped_representation(parent_set, y) THEN RETURN (FALSE); END_IF; END_REPEAT; END_IF; RETURN (TRUE); END_FUNCTION; -- 10303-43: representation_schema FUNCTION acyclic_point_replica ( rep : point_replica; parent : point ) : BOOLEAN; IF NOT ('INTEGRATED_CNC_SCHEMA.POINT_REPLICA' IN TYPEOF(parent)) THEN RETURN (TRUE); END_IF; IF parent :=: rep THEN RETURN (FALSE); ELSE RETURN (acyclic_point_replica(rep, parent\point_replica.parent_pt)); END_IF; END_FUNCTION; -- 10303-42: geometry_schema FUNCTION acyclic_product_category_relationship ( relation : product_category_relationship; children : SET OF product_category ) : BOOLEAN; LOCAL x : SET OF product_category_relationship; local_children : SET OF product_category; END_LOCAL; REPEAT i := 1 TO HIINDEX(children); IF relation.category :=: children[i] THEN RETURN (FALSE); END_IF; END_REPEAT; x := bag_to_set(USEDIN(relation.category, 'INTEGRATED_CNC_SCHEMA.' + 'PRODUCT_CATEGORY_RELATIONSHIP.SUB_CATEGORY')); local_children := children + relation.category; IF SIZEOF(x) > 0 THEN REPEAT i := 1 TO HIINDEX(x); IF NOT acyclic_product_category_relationship(x[i], local_children) THEN RETURN (FALSE); END_IF; END_REPEAT; END_IF; RETURN (TRUE); END_FUNCTION; -- 10303-41: product_definition_schema FUNCTION acyclic_product_definition_relationship ( relation : product_definition_relationship; relatives : SET [1:?] OF product_definition; specific_relation : STRING ) : BOOLEAN; LOCAL x : SET OF product_definition_relationship; END_LOCAL; IF relation.relating_product_definition IN relatives THEN RETURN (FALSE); END_IF; x := QUERY (pd <* bag_to_set(USEDIN(relation. relating_product_definition, 'INTEGRATED_CNC_SCHEMA.' + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATED_PRODUCT_DEFINITION'))| specific_relation IN TYPEOF(pd)); REPEAT i := 1 TO HIINDEX(x); IF NOT acyclic_product_definition_relationship(x[i], (relatives + relation.relating_product_definition), specific_relation) THEN RETURN (FALSE); END_IF; END_REPEAT; RETURN (TRUE); END_FUNCTION; -- 10303-41: product_definition_schema FUNCTION acyclic_representation_relationship ( relation : representation_relationship; relatives : SET [1:?] OF representation; specific_relation : STRING ) : BOOLEAN; LOCAL x : SET OF representation_relationship; END_LOCAL; IF relation.rep_1 IN relatives THEN RETURN (FALSE); END_IF; x := QUERY (r <* bag_to_set(USEDIN(relation.rep_1, 'INTEGRATED_CNC_SCHEMA.' + 'REPRESENTATION_RELATIONSHIP.' + 'REP_2')) | specific_relation IN TYPEOF(r)); REPEAT i := 1 TO HIINDEX(x); IF NOT acyclic_representation_relationship(x[i], (relatives + relation.rep_1), specific_relation) THEN RETURN (FALSE); END_IF; END_REPEAT; RETURN (TRUE); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION acyclic_surface_replica ( rep : surface_replica; parent : surface ) : BOOLEAN; IF NOT ('INTEGRATED_CNC_SCHEMA.SURFACE_REPLICA' IN TYPEOF(parent)) THEN RETURN (TRUE); END_IF; IF parent :=: rep THEN RETURN (FALSE); ELSE RETURN (acyclic_surface_replica(rep, parent\surface_replica. parent_surface)); END_IF; END_FUNCTION; -- 10303-42: geometry_schema FUNCTION aspect_ratio ( p : planar_box ) : positive_ratio_measure; IF (p.size_in_x > 0.0) AND (p.size_in_y > 0.0) THEN RETURN (p.size_in_x / p.size_in_y); ELSE RETURN (?); END_IF; END_FUNCTION; -- 10303-46: presentation_organization_schema FUNCTION associated_surface ( arg : pcurve_or_surface ) : surface; LOCAL surf : surface; END_LOCAL; IF 'INTEGRATED_CNC_SCHEMA.PCURVE' IN TYPEOF(arg) THEN surf := arg\pcurve.basis_surface; ELSE surf := arg; END_IF; RETURN (surf); END_FUNCTION; -- 10303-42: geometry_schema FUNCTION bag_to_set ( the_bag : BAG OF GENERIC : intype ) : SET OF GENERIC : intype; LOCAL the_set : SET OF GENERIC : intype := []; END_LOCAL; IF SIZEOF(the_bag) > 0 THEN REPEAT i := 1 TO HIINDEX(the_bag); the_set := the_set + the_bag[i]; END_REPEAT; END_IF; RETURN (the_set); END_FUNCTION; -- 10303-41: support_resource_schema FUNCTION base_axis ( dim : INTEGER; axis1 : direction; axis2 : direction; axis3 : direction ) : LIST [2:3] OF direction; LOCAL u : LIST [2:3] OF direction; factor : REAL; d1 : direction; d2 : direction; END_LOCAL; IF dim = 3 THEN d1 := NVL(normalise(axis3), dummy_gri || direction([ 0.0, 0.0, 1.0 ]) ); d2 := first_proj_axis(d1, axis1); u := [ d2, second_proj_axis(d1, d2, axis2), d1 ]; ELSE IF EXISTS(axis1) THEN d1 := normalise(axis1); u := [ d1, orthogonal_complement(d1) ]; IF EXISTS(axis2) THEN factor := dot_product(axis2, u[2]); IF factor < 0.0 THEN u[2].direction_ratios[1] := -u[2].direction_ratios[1]; u[2].direction_ratios[2] := -u[2].direction_ratios[2]; END_IF; END_IF; ELSE IF EXISTS(axis2) THEN d1 := normalise(axis2); u := [ orthogonal_complement(d1), d1 ]; u[1].direction_ratios[1] := -u[1].direction_ratios[1]; u[1].direction_ratios[2] := -u[1].direction_ratios[2]; ELSE u := [ dummy_gri || direction([ 1.0, 0.0 ]), dummy_gri || direction([ 0.0, 1.0 ]) ]; END_IF; END_IF; END_IF; RETURN (u); END_FUNCTION; -- 10303-42: geometry_schema FUNCTION bool ( lgcl : LOGICAL ) : BOOLEAN; IF NOT EXISTS(lgcl) THEN RETURN (FALSE); END_IF; IF lgcl <> TRUE THEN RETURN (FALSE); END_IF; RETURN (TRUE); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION boolean_choose ( b : BOOLEAN; choice1 : GENERIC : item; choice2 : GENERIC : item ) : GENERIC : item; IF b THEN RETURN (choice1); ELSE RETURN (choice2); END_IF; END_FUNCTION; -- 10303-42: topology_schema FUNCTION build_2axes ( ref_direction : direction ) : LIST [2:2] OF direction; LOCAL d : direction := NVL(normalise(ref_direction), dummy_gri || direction([ 1.0, 0.0 ])); END_LOCAL; RETURN ([ d, orthogonal_complement(d) ]); END_FUNCTION; -- 10303-42: geometry_schema FUNCTION build_axes ( axis : direction; ref_direction : direction ) : LIST [3:3] OF direction; LOCAL d1 : direction; d2 : direction; END_LOCAL; d1 := NVL(normalise(axis), dummy_gri || direction([ 0.0, 0.0, 1.0 ])); d2 := first_proj_axis(d1, ref_direction); RETURN ([ d2, normalise(cross_product(d1, d2))\vector.orientation, d1 ] ); END_FUNCTION; -- 10303-42: geometry_schema FUNCTION check_associative_shape_aspects ( sdr : shape_definition_representation ) : BOOLEAN; LOCAL sr1 : SET OF representation; sr2 : SET OF representation; dm : SET OF representation; pv : SET OF representation; END_LOCAL; IF SIZEOF(sdr.used_representation.items) <> 2 THEN RETURN (FALSE); END_IF; sr1 := using_representations(sdr.used_representation.items[1]); sr2 := using_representations(sdr.used_representation.items[2]); REPEAT i := 1 TO HIINDEX(sr1); dm := representations_mapped_into(sr1[i]); REPEAT j := 1 TO HIINDEX(dm); IF 'INTEGRATED_CNC_SCHEMA.DRAUGHTING_MODEL' IN TYPEOF(dm[j]) THEN IF dm[j] IN sr2 THEN RETURN (TRUE); END_IF; pv := representations_mapped_into(dm[j]); REPEAT k := 1 TO HIINDEX(pv); IF 'INTEGRATED_CNC_SCHEMA.PRESENTATION_VIEW' IN TYPEOF(pv[k]) THEN IF pv[k] IN sr2 THEN RETURN (TRUE); END_IF; END_IF; END_REPEAT; END_IF; END_REPEAT; END_REPEAT; REPEAT i := 1 TO HIINDEX(sr2); dm := representations_mapped_into(sr2[i]); REPEAT j := 1 TO HIINDEX(dm); IF 'INTEGRATED_CNC_SCHEMA.DRAUGHTING_MODEL' IN TYPEOF(dm[j]) THEN IF dm[j] IN sr1 THEN RETURN (TRUE); END_IF; pv := representations_mapped_into(dm[j]); REPEAT k := 1 TO HIINDEX(pv); IF 'INTEGRATED_CNC_SCHEMA.PRESENTATION_VIEW' IN TYPEOF(pv[k]) THEN IF pv[k] IN sr1 THEN RETURN (TRUE); END_IF; END_IF; END_REPEAT; END_IF; END_REPEAT; END_REPEAT; RETURN (FALSE); END_FUNCTION; -- 10303-520: aic_associative_draughting_elements FUNCTION check_text_alignment ( ct : composite_text ) : BOOLEAN; LOCAL a : SET OF text_alignment := []; END_LOCAL; REPEAT i := 1 TO HIINDEX(ct.collected_text); a := a + [ ct.collected_text[i]\text_literal.alignment ]; END_REPEAT; RETURN (SIZEOF(a) = 1); END_FUNCTION; -- 10303-504: aic_draughting_annotation FUNCTION check_text_font ( ct : composite_text ) : BOOLEAN; LOCAL f : SET OF font_select := []; END_LOCAL; REPEAT i := 1 TO HIINDEX(ct.collected_text); f := f + [ ct.collected_text[i]\text_literal.font ]; END_REPEAT; RETURN (SIZEOF(f) <= 1); END_FUNCTION; -- 10303-504: aic_draughting_annotation FUNCTION closed_shell_reversed ( a_shell : closed_shell ) : oriented_closed_shell; LOCAL the_reverse : oriented_closed_shell; END_LOCAL; IF 'INTEGRATED_CNC_SCHEMA.ORIENTED_CLOSED_SHELL' IN TYPEOF(a_shell) THEN the_reverse := dummy_tri || connected_face_set(a_shell\ connected_face_set.cfs_faces) || closed_shell() || oriented_closed_shell(a_shell\oriented_closed_shell. closed_shell_element, NOT a_shell\oriented_closed_shell.orientation ); ELSE the_reverse := dummy_tri || connected_face_set(a_shell\ connected_face_set.cfs_faces) || closed_shell() || oriented_closed_shell(a_shell, FALSE); END_IF; RETURN (the_reverse); END_FUNCTION; -- 10303-42: topology_schema FUNCTION collect_joints ( items : SET [1:?] OF pair_representation_relationship ) : SET OF kinematic_joint; LOCAL result : SET OF kinematic_joint := []; END_LOCAL; REPEAT i := 1 TO HIINDEX(items); result := result + items[i].transformation_operator.joint; END_REPEAT; RETURN (result); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION conditional_reverse ( p : BOOLEAN; an_item : reversible_topology ) : reversible_topology; IF p THEN RETURN (an_item); ELSE RETURN (topology_reversed(an_item)); END_IF; END_FUNCTION; -- 10303-42: topology_schema FUNCTION constraints_composite_curve_on_surface ( c : composite_curve_on_surface ) : BOOLEAN; LOCAL n_segments : INTEGER := SIZEOF(c.segments); END_LOCAL; REPEAT k := 1 TO n_segments; IF (NOT ('INTEGRATED_CNC_SCHEMA.PCURVE' IN TYPEOF(c\composite_curve. segments[k].parent_curve)) AND NOT ( 'INTEGRATED_CNC_SCHEMA.SURFACE_CURVE' IN TYPEOF(c\composite_curve. segments[k].parent_curve))) AND NOT ( 'INTEGRATED_CNC_SCHEMA.COMPOSITE_CURVE_ON_SURFACE' IN TYPEOF(c\ composite_curve.segments[k].parent_curve)) THEN RETURN (FALSE); END_IF; END_REPEAT; RETURN (TRUE); END_FUNCTION; -- 10303-42: geometry_schema FUNCTION constraints_geometry_shell_based_surface_model ( m : shell_based_surface_model ) : BOOLEAN; LOCAL result : BOOLEAN := TRUE; END_LOCAL; REPEAT j := 1 TO SIZEOF(m.sbsm_boundary); IF NOT ('INTEGRATED_CNC_SCHEMA.OPEN_SHELL' IN TYPEOF(m.sbsm_boundary[ j])) AND NOT ('INTEGRATED_CNC_SCHEMA.CLOSED_SHELL' IN TYPEOF(m. sbsm_boundary[j])) THEN result := FALSE; RETURN (result); END_IF; END_REPEAT; RETURN (result); END_FUNCTION; -- 10303-42: geometric_model_schema FUNCTION constraints_geometry_shell_based_wireframe_model ( m : shell_based_wireframe_model ) : BOOLEAN; LOCAL result : BOOLEAN := TRUE; END_LOCAL; REPEAT j := 1 TO SIZEOF(m.sbwm_boundary); IF NOT ('INTEGRATED_CNC_SCHEMA.WIRE_SHELL' IN TYPEOF(m.sbwm_boundary[ j])) AND NOT ('INTEGRATED_CNC_SCHEMA.VERTEX_SHELL' IN TYPEOF(m. sbwm_boundary[j])) THEN result := FALSE; RETURN (result); END_IF; END_REPEAT; RETURN (result); END_FUNCTION; -- 10303-42: geometric_model_schema FUNCTION constraints_param_b_spline ( degree : INTEGER; up_knots : INTEGER; up_cp : INTEGER; knot_mult : LIST OF INTEGER; knots : LIST OF parameter_value ) : BOOLEAN; LOCAL result : BOOLEAN := TRUE; k : INTEGER; sum : INTEGER; END_LOCAL; sum := knot_mult[1]; REPEAT i := 2 TO up_knots; sum := sum + knot_mult[i]; END_REPEAT; IF (((degree < 1) OR (up_knots < 2)) OR (up_cp < degree)) OR (sum <> degree + up_cp + 2) THEN result := FALSE; RETURN (result); END_IF; k := knot_mult[1]; IF (k < 1) OR (k > degree + 1) THEN result := FALSE; RETURN (result); END_IF; REPEAT i := 2 TO up_knots; IF (knot_mult[i] < 1) OR (knots[i] <= knots[(i - 1)]) THEN result := FALSE; RETURN (result); END_IF; k := knot_mult[i]; IF (i < up_knots) AND (k > degree) THEN result := FALSE; RETURN (result); END_IF; IF (i = up_knots) AND (k > degree + 1) THEN result := FALSE; RETURN (result); END_IF; END_REPEAT; RETURN (result); END_FUNCTION; -- 10303-42: geometry_schema FUNCTION constraints_rectangular_composite_surface ( s : rectangular_composite_surface ) : BOOLEAN; REPEAT i := 1 TO s.n_u; REPEAT j := 1 TO s.n_v; IF NOT (('INTEGRATED_CNC_SCHEMA.B_SPLINE_SURFACE' IN TYPEOF(s. segments[i][j].parent_surface)) OR ( 'INTEGRATED_CNC_SCHEMA.RECTANGULAR_TRIMMED_SURFACE' IN TYPEOF(s. segments[i][j].parent_surface))) THEN RETURN (FALSE); END_IF; END_REPEAT; END_REPEAT; REPEAT i := 1 TO s.n_u - 1; REPEAT j := 1 TO s.n_v; IF s.segments[i][j].u_transition = discontinuous THEN RETURN (FALSE); END_IF; END_REPEAT; END_REPEAT; REPEAT i := 1 TO s.n_u; REPEAT j := 1 TO s.n_v - 1; IF s.segments[i][j].v_transition = discontinuous THEN RETURN (FALSE); END_IF; END_REPEAT; END_REPEAT; RETURN (TRUE); END_FUNCTION; -- 10303-42: geometry_schema FUNCTION convert_spatial_to_ypr_rotation ( pair : kinematic_pair; rotation : spatial_rotation ) : ypr_rotation; LOCAL axis : direction; angle : plane_angle_measure; conv_angle : plane_angle_measure; ya : plane_angle_measure; pa : plane_angle_measure; ra : plane_angle_measure; ucf : REAL; dx : REAL; dy : REAL; dz : REAL; s_a : REAL; c_a : REAL; rotmat : ARRAY [1:3] OF ARRAY [1:3] OF REAL; cm1 : REAL; s_y : REAL; c_y : REAL; s_r : REAL; c_r : REAL; END_LOCAL; IF 'INTEGRATED_CNC_SCHEMA.YPR_ROTATION' IN TYPEOF(rotation) THEN RETURN (rotation); END_IF; axis := normalise(rotation\rotation_about_direction.direction_of_axis); angle := rotation\rotation_about_direction.rotation_angle; IF angle = 0.0 THEN RETURN ([ 0.0, 0.0, 0.0 ]); END_IF; dx := axis.direction_ratios[1]; dy := axis.direction_ratios[2]; dz := axis.direction_ratios[3]; conv_angle := plane_angle_for_pair_in_radian(pair, angle); IF NOT ('INTEGRATED_CNC_SCHEMA.PLANE_ANGLE_MEASURE' IN TYPEOF( conv_angle)) THEN RETURN (?); END_IF; ucf := angle / conv_angle; s_a := SIN(conv_angle); c_a := COS(conv_angle); IF (dy = 0.0) AND (dx * dz = 0.0) THEN REPEAT WHILE conv_angle <= -3.14159; conv_angle := conv_angle + 2.0 * 3.14159; END_REPEAT; REPEAT WHILE conv_angle > 3.14159; conv_angle := conv_angle - 2.0 * 3.14159; END_REPEAT; ya := ucf * conv_angle; IF conv_angle <> 3.14159 THEN ra := -ya; ELSE ra := ya; END_IF; IF dx <> 0.0 THEN IF dx > 0.0 THEN RETURN ([ 0.0, 0.0, ya ]); ELSE RETURN ([ 0.0, 0.0, ra ]); END_IF; ELSE IF dz > 0.0 THEN RETURN ([ ya, 0.0, 0.0 ]); ELSE RETURN ([ ra, 0.0, 0.0 ]); END_IF; END_IF; END_IF; IF ((dy <> 0.0) AND (dx = 0.0)) AND (dz = 0.0) THEN IF c_a >= 0.0 THEN ya := 0.0; ra := 0.0; ELSE ya := ucf * 3.14159; ra := ya; END_IF; pa := ucf * ATAN(s_a, ABS(c_a)); IF dy < 0.0 THEN pa := -pa; END_IF; RETURN ([ ya, pa, ra ]); END_IF; cm1 := 1.0 - c_a; rotmat := [ [ dx * dx * cm1 + c_a, dx * dy * cm1 - dz * s_a, dx * dz * cm1 + dy * s_a ], [ dx * dy * cm1 + dz * s_a, dy * dy * cm1 + c_a, dy * dz * cm1 - dx * s_a ], [ dx * dz * cm1 - dy * s_a, dy * dz * cm1 + dx * s_a, dz * dz * cm1 + c_a ] ]; IF ABS(rotmat[1][3]) = 1.0 THEN BEGIN IF rotmat[1][3] = 1.0 THEN pa := 0.500000 * 3.14159; ELSE pa := -0.500000 * 3.14159; END_IF; ra := 0.0; ya := ATAN(rotmat[2][1], rotmat[2][2]); IF rotmat[2][2] < 0.0 THEN IF ya <= 0.0 THEN ya := ya + 3.14159; ELSE ya := ya - 3.14159; END_IF; END_IF; END; ELSE BEGIN ya := ATAN(-rotmat[1][2], rotmat[1][1]); IF rotmat[1][1] < 0.0 THEN IF ya <= 0.0 THEN ya := ya + 3.14159; ELSE ya := ya - 3.14159; END_IF; END_IF; ra := ATAN(-rotmat[2][3], rotmat[3][3]); IF rotmat[3][3] < 0.0 THEN IF ra <= 0.0 THEN ra := ra + 3.14159; ELSE ra := ra - 3.14159; END_IF; END_IF; s_y := SIN(ya); c_y := COS(ya); s_r := SIN(ra); c_r := COS(ra); IF ((ABS(s_y) > ABS(c_y)) AND (ABS(s_y) > ABS(s_r))) AND (ABS(s_y) > ABS(c_r)) THEN cm1 := -rotmat[1][2] / s_y; ELSE IF (ABS(c_y) > ABS(s_r)) AND (ABS(c_y) > ABS(c_r)) THEN cm1 := rotmat[1][1] / c_y; ELSE IF ABS(s_r) > ABS(c_r) THEN cm1 := -rotmat[2][3] / s_r; ELSE cm1 := rotmat[3][3] / c_r; END_IF; END_IF; END_IF; pa := ATAN(rotmat[1][3], cm1); END; END_IF; ya := ya * ucf; pa := pa * ucf; ra := ra * ucf; RETURN ([ ya, pa, ra ]); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION cross_product ( arg1 : direction; arg2 : direction ) : vector; LOCAL mag : REAL; res : direction; v1 : LIST [3:3] OF REAL; v2 : LIST [3:3] OF REAL; result : vector; END_LOCAL; IF (NOT EXISTS(arg1) OR (arg1.dim = 2)) OR (NOT EXISTS(arg2) OR (arg2. dim = 2)) THEN RETURN (?); ELSE BEGIN v1 := normalise(arg1).direction_ratios; v2 := normalise(arg2).direction_ratios; res := dummy_gri || direction([ (v1[2] * v2[3] - v1[3] * v2[2]), ( v1[3] * v2[1] - v1[1] * v2[3]), (v1[1] * v2[2] - v1[2] * v2[1]) ] ); mag := 0.0; REPEAT i := 1 TO 3; mag := mag + res.direction_ratios[i] * res.direction_ratios[i]; END_REPEAT; IF mag > 0.0 THEN result := dummy_gri || vector(res, sqrt(mag)); ELSE result := dummy_gri || vector(arg1, 0.0); END_IF; RETURN (result); END; END_IF; END_FUNCTION; -- 10303-42: geometry_schema FUNCTION curve_weights_positive ( b : rational_b_spline_curve ) : BOOLEAN; LOCAL result : BOOLEAN := TRUE; END_LOCAL; REPEAT i := 0 TO b.upper_index_on_control_points; IF b.weights[i] <= 0.0 THEN result := FALSE; RETURN (result); END_IF; END_REPEAT; RETURN (result); END_FUNCTION; -- 10303-42: geometry_schema FUNCTION derive_dimensional_exponents ( x : unit ) : dimensional_exponents; LOCAL result : dimensional_exponents := dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); END_LOCAL; IF 'INTEGRATED_CNC_SCHEMA.DERIVED_UNIT' IN TYPEOF(x) THEN REPEAT i := LOINDEX(x\derived_unit.elements) TO HIINDEX(x\ derived_unit.elements); result.length_exponent := result.length_exponent + x\derived_unit. elements[i]\derived_unit_element.exponent * x\derived_unit. elements[i]\derived_unit_element.unit\named_unit.dimensions. length_exponent; result.mass_exponent := result.mass_exponent + x\derived_unit. elements[i]\derived_unit_element.exponent * x\derived_unit. elements[i]\derived_unit_element.unit\named_unit.dimensions. mass_exponent; result.time_exponent := result.time_exponent + x\derived_unit. elements[i]\derived_unit_element.exponent * x\derived_unit. elements[i]\derived_unit_element.unit\named_unit.dimensions. time_exponent; result.electric_current_exponent := result. electric_current_exponent + x\derived_unit.elements[i]\ derived_unit_element.exponent * x\derived_unit.elements[i]\ derived_unit_element.unit\named_unit.dimensions. electric_current_exponent; result.thermodynamic_temperature_exponent := result. thermodynamic_temperature_exponent + x\derived_unit.elements[i]\ derived_unit_element.exponent * x\derived_unit.elements[i]\ derived_unit_element.unit\named_unit.dimensions. thermodynamic_temperature_exponent; result.amount_of_substance_exponent := result. amount_of_substance_exponent + x\derived_unit.elements[i]\ derived_unit_element.exponent * x\derived_unit.elements[i]\ derived_unit_element.unit\named_unit.dimensions. amount_of_substance_exponent; result.luminous_intensity_exponent := result. luminous_intensity_exponent + x\derived_unit.elements[i]\ derived_unit_element.exponent * x\derived_unit.elements[i]\ derived_unit_element.unit\named_unit.dimensions. luminous_intensity_exponent; END_REPEAT; ELSE result := x\named_unit.dimensions; END_IF; RETURN (result); END_FUNCTION; -- 10303-41: measure_schema FUNCTION dimension_of ( item : geometric_representation_item ) : dimension_count; LOCAL x : SET OF representation; y : representation_context; dim : dimension_count; END_LOCAL; IF 'INTEGRATED_CNC_SCHEMA.CARTESIAN_POINT' IN TYPEOF(item) THEN dim := SIZEOF(item\cartesian_point.coordinates); RETURN (dim); END_IF; IF 'INTEGRATED_CNC_SCHEMA.DIRECTION' IN TYPEOF(item) THEN dim := SIZEOF(item\direction.direction_ratios); RETURN (dim); END_IF; IF 'INTEGRATED_CNC_SCHEMA.VECTOR' IN TYPEOF(item) THEN dim := SIZEOF(item\vector.orientation\direction.direction_ratios); RETURN (dim); END_IF; x := using_representations(item); y := x[1].context_of_items; dim := y\geometric_representation_context.coordinate_space_dimension; RETURN (dim); END_FUNCTION; -- 10303-42: geometry_schema FUNCTION dimensions_for_si_unit ( n : si_unit_name ) : dimensional_exponents; CASE n OF metre : RETURN (dimensional_exponents(1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)) ; gram : RETURN (dimensional_exponents(0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0)) ; second : RETURN (dimensional_exponents(0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0)) ; ampere : RETURN (dimensional_exponents(0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0)) ; kelvin : RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0)) ; mole : RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0)) ; candela : RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0)) ; radian : RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)) ; steradian : RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)) ; hertz : RETURN (dimensional_exponents(0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0) ); newton : RETURN (dimensional_exponents(1.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0) ); pascal : RETURN (dimensional_exponents(-1.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0 )); joule : RETURN (dimensional_exponents(2.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0) ); watt : RETURN (dimensional_exponents(2.0, 1.0, -3.0, 0.0, 0.0, 0.0, 0.0) ); coulomb : RETURN (dimensional_exponents(0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0)) ; volt : RETURN (dimensional_exponents(2.0, 1.0, -3.0, -1.0, 0.0, 0.0, 0.0 )); farad : RETURN (dimensional_exponents(-2.0, -1.0, 4.0, 1.0, 0.0, 0.0, 0.0 )); ohm : RETURN (dimensional_exponents(2.0, 1.0, -3.0, -2.0, 0.0, 0.0, 0.0 )); siemens : RETURN (dimensional_exponents(-2.0, -1.0, 3.0, 2.0, 0.0, 0.0, 0.0 )); weber : RETURN (dimensional_exponents(2.0, 1.0, -2.0, -1.0, 0.0, 0.0, 0.0 )); tesla : RETURN (dimensional_exponents(0.0, 1.0, -2.0, -1.0, 0.0, 0.0, 0.0 )); henry : RETURN (dimensional_exponents(2.0, 1.0, -2.0, -2.0, 0.0, 0.0, 0.0 )); degree_celsius : RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0)) ; lumen : RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0)) ; lux : RETURN (dimensional_exponents(-2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0) ); becquerel : RETURN (dimensional_exponents(0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0) ); gray : RETURN (dimensional_exponents(2.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0) ); sievert : RETURN (dimensional_exponents(2.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0) ); OTHERWISE : RETURN (?); END_CASE; END_FUNCTION; -- 10303-41: measure_schema FUNCTION dot_product ( arg1 : direction; arg2 : direction ) : REAL; LOCAL scalar : REAL; vec1 : direction; vec2 : direction; ndim : INTEGER; END_LOCAL; IF NOT EXISTS(arg1) OR NOT EXISTS(arg2) THEN scalar := ?; ELSE IF arg1.dim <> arg2.dim THEN scalar := ?; ELSE BEGIN vec1 := normalise(arg1); vec2 := normalise(arg2); ndim := arg1.dim; scalar := 0.0; REPEAT i := 1 TO ndim; scalar := scalar + vec1.direction_ratios[i] * vec2. direction_ratios[i]; END_REPEAT; END; END_IF; END_IF; RETURN (scalar); END_FUNCTION; -- 10303-42: geometry_schema FUNCTION edge_reversed ( an_edge : edge ) : oriented_edge; LOCAL the_reverse : oriented_edge; END_LOCAL; IF 'INTEGRATED_CNC_SCHEMA.ORIENTED_EDGE' IN TYPEOF(an_edge) THEN the_reverse := dummy_tri || edge(an_edge.edge_end, an_edge.edge_start ) || oriented_edge(an_edge\oriented_edge.edge_element, NOT an_edge\ oriented_edge.orientation); ELSE the_reverse := dummy_tri || edge(an_edge.edge_end, an_edge.edge_start ) || oriented_edge(an_edge, FALSE); END_IF; RETURN (the_reverse); END_FUNCTION; -- 10303-42: topology_schema FUNCTION expression_is_constant ( expr : generic_expression ) : BOOLEAN; RETURN (bool(SIZEOF(free_variables_of(expr)) = 0)); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION face_bound_reversed ( a_face_bound : face_bound ) : face_bound; LOCAL the_reverse : face_bound; END_LOCAL; IF 'INTEGRATED_CNC_SCHEMA.FACE_OUTER_BOUND' IN TYPEOF(a_face_bound) THEN the_reverse := dummy_tri || face_bound(a_face_bound\face_bound.bound, NOT a_face_bound\face_bound.orientation) || face_outer_bound(); ELSE the_reverse := dummy_tri || face_bound(a_face_bound.bound, NOT a_face_bound.orientation); END_IF; RETURN (the_reverse); END_FUNCTION; -- 10303-42: topology_schema FUNCTION face_reversed ( a_face : face ) : oriented_face; LOCAL the_reverse : oriented_face; END_LOCAL; IF 'INTEGRATED_CNC_SCHEMA.ORIENTED_FACE' IN TYPEOF(a_face) THEN the_reverse := dummy_tri || face(set_of_topology_reversed(a_face. bounds)) || oriented_face(a_face\oriented_face.face_element, NOT a_face\oriented_face.orientation); ELSE the_reverse := dummy_tri || face(set_of_topology_reversed(a_face. bounds)) || oriented_face(a_face, FALSE); END_IF; RETURN (the_reverse); END_FUNCTION; -- 10303-42: topology_schema FUNCTION first_proj_axis ( z_axis : direction; arg : direction ) : direction; LOCAL x_axis : direction; v : direction; z : direction; x_vec : vector; END_LOCAL; IF NOT EXISTS(z_axis) THEN RETURN (?); ELSE z := normalise(z_axis); IF NOT EXISTS(arg) THEN IF (z.direction_ratios <> [ 1.0, 0.0, 0.0 ]) AND (z. direction_ratios <> [ -1.0, 0.0, 0.0 ]) THEN v := dummy_gri || direction([ 1.0, 0.0, 0.0 ]); ELSE v := dummy_gri || direction([ 0.0, 1.0, 0.0 ]); END_IF; ELSE IF arg.dim <> 3 THEN RETURN (?); END_IF; IF cross_product(arg, z).magnitude = 0.0 THEN RETURN (?); ELSE v := normalise(arg); END_IF; END_IF; x_vec := scalar_times_vector(dot_product(v, z), z); x_axis := vector_difference(v, x_vec).orientation; x_axis := normalise(x_axis); END_IF; RETURN (x_axis); END_FUNCTION; -- 10303-42: geometry_schema FUNCTION free_variables_of ( expr : generic_expression ) : SET OF generic_variable; LOCAL typenames : SET OF STRING := stripped_typeof(expr); result : SET OF generic_variable := []; exprs : LIST OF generic_expression := []; END_LOCAL; IF 'GENERIC_LITERAL' IN typenames THEN RETURN (result); END_IF; IF 'GENERIC_VARIABLE' IN typenames THEN result := result + expr; RETURN (result); END_IF; IF 'QUANTIFIER_EXPRESSION' IN typenames THEN exprs := QUERY (ge <* expr\multiple_arity_generic_expression.operands | NOT (ge IN expr\quantifier_expression.variables)); REPEAT i := 1 TO SIZEOF(exprs); result := result + free_variables_of(exprs[i]); END_REPEAT; REPEAT i := 1 TO SIZEOF(expr\quantifier_expression.variables); result := result - expr\quantifier_expression.variables[i]; END_REPEAT; RETURN (result); END_IF; IF 'UNARY_GENERIC_EXPRESSION' IN typenames THEN RETURN (free_variables_of(expr\unary_generic_expression.operand)); END_IF; IF 'BINARY_GENERIC_EXPRESSION' IN typenames THEN result := free_variables_of(expr\binary_generic_expression.operands[1 ]); RETURN (result + free_variables_of(expr\binary_generic_expression. operands[2])); END_IF; IF 'MULTIPLE_ARITY_GENERIC_EXPRESSION' IN typenames THEN REPEAT i := 1 TO SIZEOF(expr\multiple_arity_generic_expression. operands); result := result + free_variables_of(expr\ multiple_arity_generic_expression.operands[i]); END_REPEAT; RETURN (result); END_IF; RETURN (result); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION gbsf_check_curve ( cv : representation_item ) : BOOLEAN; IF SIZEOF([ 'INTEGRATED_CNC_SCHEMA.BOUNDED_CURVE', 'INTEGRATED_CNC_SCHEMA.CONIC', 'INTEGRATED_CNC_SCHEMA.CURVE_REPLICA', 'INTEGRATED_CNC_SCHEMA.LINE', 'INTEGRATED_CNC_SCHEMA.OFFSET_CURVE_3D' ] * TYPEOF(cv)) > 1 THEN RETURN (FALSE); END_IF; IF SIZEOF([ 'INTEGRATED_CNC_SCHEMA.CIRCLE', 'INTEGRATED_CNC_SCHEMA.ELLIPSE', 'INTEGRATED_CNC_SCHEMA.TRIMMED_CURVE' ] * TYPEOF(cv)) = 1 THEN RETURN (TRUE); ELSE IF ('INTEGRATED_CNC_SCHEMA.B_SPLINE_CURVE' IN TYPEOF(cv)) AND (cv\ b_spline_curve.self_intersect = FALSE) OR (cv\b_spline_curve. self_intersect = UNKNOWN) THEN RETURN (TRUE); ELSE IF ('INTEGRATED_CNC_SCHEMA.COMPOSITE_CURVE' IN TYPEOF(cv)) AND (cv\ composite_curve.self_intersect = FALSE) OR (cv\composite_curve. self_intersect = UNKNOWN) THEN RETURN (SIZEOF(QUERY (seg <* cv\composite_curve.segments| NOT gbsf_check_curve(seg.parent_curve))) = 0); ELSE IF 'INTEGRATED_CNC_SCHEMA.CURVE_REPLICA' IN TYPEOF(cv) THEN RETURN (gbsf_check_curve(cv\curve_replica.parent_curve)); ELSE IF (('INTEGRATED_CNC_SCHEMA.OFFSET_CURVE_3D' IN TYPEOF(cv)) AND ((cv\offset_curve_3d.self_intersect = FALSE) OR (cv\ offset_curve_3d.self_intersect = UNKNOWN))) AND NOT ( 'INTEGRATED_CNC_SCHEMA.POLYLINE' IN TYPEOF(cv\offset_curve_3d .basis_curve)) THEN RETURN (gbsf_check_curve(cv\offset_curve_3d.basis_curve)); ELSE IF 'INTEGRATED_CNC_SCHEMA.PCURVE' IN TYPEOF(cv) THEN RETURN (gbsf_check_curve(cv\pcurve.reference_to_curve\ representation.items[1]) AND gbsf_check_surface(cv\pcurve .basis_surface)); ELSE IF 'INTEGRATED_CNC_SCHEMA.POLYLINE' IN TYPEOF(cv) THEN IF SIZEOF(cv\polyline.points) >= 3 THEN RETURN (TRUE); END_IF; ELSE IF 'INTEGRATED_CNC_SCHEMA.SURFACE_CURVE' IN TYPEOF(cv) THEN IF gbsf_check_curve(cv\surface_curve.curve_3d) THEN REPEAT i := 1 TO SIZEOF(cv\surface_curve. associated_geometry); IF 'INTEGRATED_CNC_SCHEMA.SURFACE' IN TYPEOF(cv\ surface_curve.associated_geometry[i]) THEN IF NOT gbsf_check_surface(cv\surface_curve. associated_geometry[i]) THEN RETURN (FALSE); END_IF; ELSE IF 'INTEGRATED_CNC_SCHEMA.PCURVE' IN TYPEOF(cv\ surface_curve.associated_geometry[i]) THEN IF NOT gbsf_check_curve(cv\surface_curve. associated_geometry[i]) THEN RETURN (FALSE); END_IF; END_IF; END_IF; END_REPEAT; RETURN (TRUE); END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; RETURN (FALSE); END_FUNCTION; -- 10303-507: aic_geometrically_bounded_surface FUNCTION gbsf_check_point ( pnt : point ) : BOOLEAN; IF 'INTEGRATED_CNC_SCHEMA.CARTESIAN_POINT' IN TYPEOF(pnt) THEN RETURN (TRUE); ELSE IF 'INTEGRATED_CNC_SCHEMA.POINT_ON_CURVE' IN TYPEOF(pnt) THEN RETURN (gbsf_check_curve(pnt\point_on_curve.basis_curve)); ELSE IF 'INTEGRATED_CNC_SCHEMA.POINT_ON_SURFACE' IN TYPEOF(pnt) THEN RETURN (gbsf_check_surface(pnt\point_on_surface.basis_surface)); ELSE IF 'INTEGRATED_CNC_SCHEMA.DEGENERATE_PCURVE' IN TYPEOF(pnt) THEN RETURN (gbsf_check_curve(pnt\degenerate_pcurve. reference_to_curve\representation.items[1]) AND gbsf_check_surface(pnt\degenerate_pcurve.basis_surface)); END_IF; END_IF; END_IF; END_IF; RETURN (FALSE); END_FUNCTION; -- 10303-507: aic_geometrically_bounded_surface FUNCTION gbsf_check_surface ( sf : surface ) : BOOLEAN; IF ('INTEGRATED_CNC_SCHEMA.B_SPLINE_SURFACE' IN TYPEOF(sf)) AND (sf\ b_spline_surface.self_intersect = FALSE) OR (sf\b_spline_surface. self_intersect = UNKNOWN) THEN RETURN (TRUE); ELSE IF SIZEOF([ 'INTEGRATED_CNC_SCHEMA.SPHERICAL_SURFACE', 'INTEGRATED_CNC_SCHEMA.TOROIDAL_SURFACE', 'INTEGRATED_CNC_SCHEMA.CURVE_BOUNDED_SURFACE', 'INTEGRATED_CNC_SCHEMA.RECTANGULAR_TRIMMED_SURFACE' ] * TYPEOF(sf)) = 1 THEN RETURN (TRUE); ELSE IF ('INTEGRATED_CNC_SCHEMA.OFFSET_SURFACE' IN TYPEOF(sf)) AND (sf\ offset_surface.self_intersect = FALSE) OR (sf\offset_surface. self_intersect = UNKNOWN) THEN RETURN (gbsf_check_surface(sf\offset_surface.basis_surface)); ELSE IF 'INTEGRATED_CNC_SCHEMA.RECTANGULAR_COMPOSITE_SURFACE' IN TYPEOF(sf) THEN REPEAT i := 1 TO SIZEOF(sf\rectangular_composite_surface. segments); REPEAT j := 1 TO SIZEOF(sf\rectangular_composite_surface. segments[i]); IF NOT gbsf_check_surface(sf\rectangular_composite_surface. segments[i][j].parent_surface) THEN RETURN (FALSE); END_IF; END_REPEAT; END_REPEAT; RETURN (TRUE); ELSE IF 'INTEGRATED_CNC_SCHEMA.SURFACE_REPLICA' IN TYPEOF(sf) THEN RETURN (gbsf_check_surface(sf\surface_replica.parent_surface) ); ELSE IF 'INTEGRATED_CNC_SCHEMA.SURFACE_OF_REVOLUTION' IN TYPEOF(sf ) THEN RETURN (gbsf_check_curve(sf\swept_surface.swept_curve)); END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; RETURN (FALSE); END_FUNCTION; -- 10303-507: aic_geometrically_bounded_surface FUNCTION get_action_property ( cad : characterized_action_definition; prop_name : STRING ): SET OF action_property; RETURN (bag_to_set (QUERY (ap <* USEDIN (cad, 'INTEGRATED_CNC_SCHEMA.ACTION_PROPERTY.DEFINITION') | (ap.name = prop_name)))); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION get_basis_surface ( c : curve_on_surface ) : SET [0:2] OF surface; LOCAL surfs : SET [0:2] OF surface; n : INTEGER; END_LOCAL; surfs := []; IF 'INTEGRATED_CNC_SCHEMA.PCURVE' IN TYPEOF(c) THEN surfs := [ c\pcurve.basis_surface ]; ELSE IF 'INTEGRATED_CNC_SCHEMA.SURFACE_CURVE' IN TYPEOF(c) THEN n := SIZEOF(c\surface_curve.associated_geometry); REPEAT i := 1 TO n; surfs := surfs + associated_surface(c\surface_curve. associated_geometry[i]); END_REPEAT; END_IF; END_IF; IF 'INTEGRATED_CNC_SCHEMA.COMPOSITE_CURVE_ON_SURFACE' IN TYPEOF(c) THEN n := SIZEOF(c\composite_curve.segments); surfs := get_basis_surface(c\composite_curve.segments[1].parent_curve ); IF n > 1 THEN REPEAT i := 2 TO n; surfs := surfs * get_basis_surface(c\composite_curve.segments[i]. parent_curve); END_REPEAT; END_IF; END_IF; RETURN (surfs); END_FUNCTION; -- 10303-42: geometry_schema FUNCTION get_count_of_relating_amr ( am : action_method; amr_types : SET OF STRING ): INTEGER; RETURN (SIZEOF (QUERY (amr <* get_relating_amr (am) | (SIZEOF(amr_types * TYPEOF(amr)) = SIZEOF(amr_types)) ))); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION get_count_of_relating_amr_with_name ( am : action_method; amr_name : STRING; amr_types : SET OF STRING ): INTEGER; RETURN (SIZEOF (QUERY (amr <* get_relating_amr (am) | ((amr.name = amr_name) AND (SIZEOF(amr_types * TYPEOF(amr)) = SIZEOF(amr_types))) ))); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION get_description_value ( obj : description_attribute_select ) : text; LOCAL description_bag : BAG OF description_attribute := USEDIN(obj, 'INTEGRATED_CNC_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.' + 'DESCRIBED_ITEM'); END_LOCAL; IF SIZEOF(description_bag) = 1 THEN RETURN (description_bag[1].attribute_value); ELSE RETURN (?); END_IF; END_FUNCTION; -- 10303-41: basic_attribute_schema FUNCTION get_id_value ( obj : id_attribute_select ) : identifier; LOCAL id_bag : BAG OF id_attribute := USEDIN(obj, 'INTEGRATED_CNC_SCHEMA.' + 'ID_ATTRIBUTE.' + 'IDENTIFIED_ITEM'); END_LOCAL; IF SIZEOF(id_bag) = 1 THEN RETURN (id_bag[1].attribute_value); ELSE RETURN (?); END_IF; END_FUNCTION; -- 10303-41: basic_attribute_schema FUNCTION get_kinematic_joints_from_kinematic_loops ( kls : SET OF kinematic_loop ) : SET OF kinematic_joint; LOCAL result : SET OF oriented_joint := []; END_LOCAL; IF SIZEOF(kls) > 0 THEN REPEAT i := 1 TO HIINDEX(kls); result := result + kls[i].edge_list; END_REPEAT; END_IF; RETURN (get_kinematic_joints_from_oriented_joints(result)); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION get_kinematic_joints_from_oriented_joints ( ors : SET OF oriented_joint ) : SET OF kinematic_joint; LOCAL result : SET OF kinematic_joint := []; END_LOCAL; IF SIZEOF(ors) > 0 THEN REPEAT i := 1 TO HIINDEX(ors); result := result + ors[i].edge_element; END_REPEAT; END_IF; RETURN (result); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION get_name_value ( obj : name_attribute_select ) : label; LOCAL name_bag : BAG OF name_attribute := USEDIN(obj, 'INTEGRATED_CNC_SCHEMA.' + 'NAME_ATTRIBUTE.' + 'NAMED_ITEM'); END_LOCAL; IF SIZEOF(name_bag) = 1 THEN RETURN (name_bag[1].attribute_value); ELSE RETURN (?); END_IF; END_FUNCTION; -- 10303-41: basic_attribute_schema FUNCTION get_property_definition_representations ( c_def_instance : characterized_definition ) : 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(c_def_instance, 'INTEGRATED_CNC_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 + bag_to_set(USEDIN(pd_set[i], 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' )); END_REPEAT; RETURN (pdr_set); END_FUNCTION; -- 10303-41: product_property_representation_schema FUNCTION get_relating_amr ( am : action_method ) : SET OF action_method_relationship; RETURN (bag_to_set (USEDIN (am, 'INTEGRATED_CNC_SCHEMA.ACTION_METHOD_RELATIONSHIP.RELATING_METHOD'))); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION get_resource_property ( crd : characterized_resource_definition; prop_name : STRING ): SET OF resource_property; RETURN (bag_to_set (QUERY (rp <* USEDIN (crd, 'INTEGRATED_CNC_SCHEMA.RESOURCE_PROPERTY.RESOURCE') | (rp.name = prop_name)))); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION get_role ( obj : role_select ) : object_role; LOCAL role_bag : BAG OF role_association := USEDIN(obj, 'INTEGRATED_CNC_SCHEMA.' + 'ROLE_ASSOCIATION.' + 'ITEM_WITH_ROLE'); END_LOCAL; IF SIZEOF(role_bag) = 1 THEN RETURN (role_bag[1].role); ELSE RETURN (?); END_IF; END_FUNCTION; -- 10303-41: basic_attribute_schema FUNCTION get_shape_aspects ( c_def_instance : characterized_definition ) : SET OF shape_aspect; LOCAL pd_set : SET OF product_definition_shape := []; pdr_set : SET OF shape_aspect := []; END_LOCAL; pd_set := bag_to_set(QUERY (pd <* USEDIN(c_def_instance, 'INTEGRATED_CNC_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| 'INTEGRATED_CNC_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))); IF SIZEOF(pd_set) < 1 THEN RETURN (pdr_set); END_IF; REPEAT i := 1 TO HIINDEX(pd_set); pdr_set := pdr_set + bag_to_set(USEDIN(pd_set[i], 'INTEGRATED_CNC_SCHEMA.SHAPE_ASPECT.OF_SHAPE')); END_REPEAT; RETURN (pdr_set); END_FUNCTION; -- 10303-41: product_property_definition_schema FUNCTION get_tool_body_item ( mt : machining_tool; prop_name : STRING ): SET OF representation_item; LOCAL props : SET OF resource_property; preps : SET OF resource_property_representation; items : SET OF representation_item; END_LOCAL; props := get_resource_property (mt, 'tool body'); REPEAT i := 1 TO HIINDEX(props); preps := preps + USEDIN (props[i], 'INTEGRATED_CNC_SCHEMA.'+ 'RESOURCE_PROPERTY_REPRESENTATION.PROPERTY'); END_REPEAT; REPEAT i := 1 TO HIINDEX(preps); IF ('INTEGRATED_CNC_SCHEMA.MACHINING_TOOL_BODY_REPRESENTATION' IN TYPEOF (preps[i].representation)) THEN items := items + preps[i].representation.items; END_IF; END_REPEAT; RETURN (bag_to_set (QUERY (it <* items | (it.name = prop_name)))); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION is_acyclic ( arg : generic_expression ) : BOOLEAN; RETURN (acyclic(arg, [])); END_FUNCTION; -- 13584-20: iso13584_generic_expressions_schema FUNCTION is_int_expr ( arg : numeric_expression ) : BOOLEAN; IF 'INTEGRATED_CNC_SCHEMA.INT_LITERAL' IN TYPEOF(arg) THEN RETURN (TRUE); END_IF; IF 'INTEGRATED_CNC_SCHEMA.REAL_LITERAL' IN TYPEOF(arg) THEN RETURN (FALSE); END_IF; IF 'INTEGRATED_CNC_SCHEMA.INT_NUMERIC_VARIABLE' IN TYPEOF(arg) THEN RETURN (TRUE); END_IF; IF 'INTEGRATED_CNC_SCHEMA.REAL_NUMERIC_VARIABLE' IN TYPEOF(arg) THEN RETURN (FALSE); END_IF; RETURN (FALSE); END_FUNCTION; -- 13584-20: iso13584_expressions_schema FUNCTION is_SQL_mappable ( arg : expression ) : BOOLEAN; IF 'INTEGRATED_CNC_SCHEMA.SIMPLE_NUMERIC_EXPRESSION' IN TYPEOF(arg) THEN RETURN (TRUE); END_IF; IF 'INTEGRATED_CNC_SCHEMA.NOT_EXPRESSION' IN TYPEOF(arg) THEN RETURN (is_SQL_mappable(arg\unary_generic_expression.operand)); END_IF; IF ('INTEGRATED_CNC_SCHEMA.XOR_EXPRESSION' IN TYPEOF(arg)) THEN RETURN (FALSE); END_IF; IF ('INTEGRATED_CNC_SCHEMA.AND_EXPRESSION' IN TYPEOF(arg)) OR ( 'INTEGRATED_CNC_SCHEMA.OR_EXPRESSION' IN TYPEOF(arg)) THEN REPEAT i := 1 TO SIZEOF(arg\multiple_arity_boolean_expression. operands); IF NOT is_SQL_mappable(arg\multiple_arity_boolean_expression. operands[i]) THEN RETURN (FALSE); END_IF; END_REPEAT; RETURN (TRUE); END_IF; IF (((((('INTEGRATED_CNC_SCHEMA.COMPARISON_EQUAL' IN TYPEOF(arg)) OR ( 'INTEGRATED_CNC_SCHEMA.COMPARISON_GREATER' IN TYPEOF(arg))) OR ( 'INTEGRATED_CNC_SCHEMA.COMPARISON_GREATER_EQUAL' IN TYPEOF(arg))) OR ('INTEGRATED_CNC_SCHEMA.COMPARISON_LESS' IN TYPEOF(arg))) OR ( 'INTEGRATED_CNC_SCHEMA.COMPARISON_LESS_EQUAL' IN TYPEOF(arg))) OR ( 'INTEGRATED_CNC_SCHEMA.COMPARISON_NOT_EQUAL' IN TYPEOF(arg))) THEN RETURN (is_SQL_mappable(arg\comparison_expression.operands[1]) AND is_SQL_mappable(arg\comparison_expression.operands[2])); END_IF; RETURN (FALSE); END_FUNCTION; -- 13584-20: iso13584_expressions_schema FUNCTION item_in_context ( item : representation_item; cntxt : representation_context ) : BOOLEAN; LOCAL y : BAG OF representation_item; END_LOCAL; IF SIZEOF(USEDIN(item, 'INTEGRATED_CNC_SCHEMA.REPRESENTATION.ITEMS') * cntxt.representations_in_context) > 0 THEN RETURN (TRUE); ELSE y := QUERY (z <* USEDIN(item, '')| 'INTEGRATED_CNC_SCHEMA.REPRESENTATION_ITEM' IN TYPEOF(z)); IF SIZEOF(y) > 0 THEN REPEAT i := 1 TO HIINDEX(y); IF item_in_context(y[i], cntxt) THEN RETURN (TRUE); END_IF; END_REPEAT; END_IF; END_IF; RETURN (FALSE); END_FUNCTION; -- 10303-43: representation_schema FUNCTION leap_year ( year : year_number ) : BOOLEAN; IF (year MOD 4 = 0) AND (year MOD 100 <> 0) OR (year MOD 400 = 0) THEN RETURN (TRUE); ELSE RETURN (FALSE); END_IF; END_FUNCTION; -- 10303-41: date_time_schema FUNCTION list_face_loops ( f : face ) : LIST [0:?] OF loop; LOCAL loops : LIST [0:?] OF loop := []; END_LOCAL; REPEAT i := 1 TO SIZEOF(f.bounds); loops := loops + f.bounds[i].bound; END_REPEAT; RETURN (loops); END_FUNCTION; -- 10303-42: topology_schema FUNCTION list_of_topology_reversed ( a_list : list_of_reversible_topology_item ) : list_of_reversible_topology_item; LOCAL the_reverse : list_of_reversible_topology_item; END_LOCAL; the_reverse := []; REPEAT i := 1 TO SIZEOF(a_list); the_reverse := topology_reversed(a_list[i]) + the_reverse; END_REPEAT; RETURN (the_reverse); END_FUNCTION; -- 10303-42: topology_schema FUNCTION list_to_array ( lis : LIST [0:?] OF GENERIC : T; low : INTEGER; u : INTEGER ) : ARRAY [low:u] OF GENERIC : T; LOCAL n : INTEGER; res : ARRAY [low:u] OF GENERIC : T; END_LOCAL; n := SIZEOF(lis); IF n <> u - low + 1 THEN RETURN (?); ELSE res := [ lis[1] ]; REPEAT i := 2 TO n; res[(low + i - 1)] := lis[i]; END_REPEAT; RETURN (res); END_IF; END_FUNCTION; -- 10303-42: geometry_schema FUNCTION list_to_set ( l : LIST [0:?] OF GENERIC : T ) : SET OF GENERIC : T; LOCAL s : SET OF GENERIC : T := []; END_LOCAL; REPEAT i := 1 TO SIZEOF(l); s := s + l[i]; END_REPEAT; RETURN (s); END_FUNCTION; -- 10303-42: topology_schema FUNCTION make_array_of_array ( lis : LIST [1:?] OF LIST [1:?] OF GENERIC : T; low1 : INTEGER; u1 : INTEGER; low2 : INTEGER; u2 : INTEGER ) : ARRAY [low1:u1] OF ARRAY [low2:u2] OF GENERIC : T; LOCAL res : ARRAY [low1:u1] OF ARRAY [low2:u2] OF GENERIC : T; END_LOCAL; IF u1 - low1 + 1 <> SIZEOF(lis) THEN RETURN (?); END_IF; IF u2 - low2 + 1 <> SIZEOF(lis[1]) THEN RETURN (?); END_IF; res := [ list_to_array(lis[1], low2, u2) ]; REPEAT i := 2 TO HIINDEX(lis); IF u2 - low2 + 1 <> SIZEOF(lis[i]) THEN RETURN (?); END_IF; res[(low1 + i - 1)] := list_to_array(lis[i], low2, u2); END_REPEAT; RETURN (res); END_FUNCTION; -- 10303-42: geometry_schema FUNCTION mixed_loop_type_set ( l : SET [0:?] OF loop ) : LOGICAL; LOCAL poly_loop_type : LOGICAL; END_LOCAL; IF SIZEOF(l) <= 1 THEN RETURN (FALSE); END_IF; poly_loop_type := 'INTEGRATED_CNC_SCHEMA.POLY_LOOP' IN TYPEOF(l[1]); REPEAT i := 2 TO SIZEOF(l); IF ('INTEGRATED_CNC_SCHEMA.POLY_LOOP' IN TYPEOF(l[i])) <> poly_loop_type THEN RETURN (TRUE); END_IF; END_REPEAT; RETURN (FALSE); END_FUNCTION; -- 10303-42: topology_schema FUNCTION msb_shells ( brep : manifold_solid_brep ) : SET [1:?] OF closed_shell; LOCAL return_set : SET [1:?] OF closed_shell := [ brep.outer ]; END_LOCAL; IF SIZEOF(QUERY (msbtype <* TYPEOF(brep)| msbtype LIKE '*BREP_WITH_VOIDS')) >= 1 THEN return_set := return_set + brep\brep_with_voids.voids; END_IF; RETURN (return_set); END_FUNCTION; -- 10303-42: geometric_model_schema FUNCTION msf_curve_check ( cv : representation_item ) : BOOLEAN; IF SIZEOF([ 'INTEGRATED_CNC_SCHEMA.BOUNDED_CURVE', 'INTEGRATED_CNC_SCHEMA.CONIC', 'INTEGRATED_CNC_SCHEMA.CURVE_REPLICA', 'INTEGRATED_CNC_SCHEMA.LINE', 'INTEGRATED_CNC_SCHEMA.OFFSET_CURVE_3D' ] * TYPEOF(cv)) > 1 THEN RETURN (FALSE); END_IF; IF ('INTEGRATED_CNC_SCHEMA.B_SPLINE_CURVE' IN TYPEOF(cv)) AND (cv\ b_spline_curve.self_intersect = FALSE) OR (cv\b_spline_curve. self_intersect = UNKNOWN) THEN RETURN (TRUE); ELSE IF SIZEOF([ 'INTEGRATED_CNC_SCHEMA.CONIC', 'INTEGRATED_CNC_SCHEMA.LINE' ] * TYPEOF(cv)) = 1 THEN RETURN (TRUE); ELSE IF 'INTEGRATED_CNC_SCHEMA.CURVE_REPLICA' IN TYPEOF(cv) THEN RETURN (msf_curve_check(cv\curve_replica.parent_curve)); ELSE IF (('INTEGRATED_CNC_SCHEMA.OFFSET_CURVE_3D' IN TYPEOF(cv)) AND ( (cv\offset_curve_3d.self_intersect = FALSE) OR (cv\ offset_curve_3d.self_intersect = UNKNOWN))) AND NOT ( 'INTEGRATED_CNC_SCHEMA.POLYLINE' IN TYPEOF(cv\offset_curve_3d. basis_curve)) THEN RETURN (msf_curve_check(cv\offset_curve_3d.basis_curve)); ELSE IF 'INTEGRATED_CNC_SCHEMA.PCURVE' IN TYPEOF(cv) THEN RETURN (msf_curve_check(cv\pcurve.reference_to_curve\ representation.items[1]) AND msf_surface_check(cv\pcurve. basis_surface)); ELSE IF 'INTEGRATED_CNC_SCHEMA.SURFACE_CURVE' IN TYPEOF(cv) THEN IF msf_curve_check(cv\surface_curve.curve_3d) THEN REPEAT i := 1 TO SIZEOF(cv\surface_curve. associated_geometry); IF 'INTEGRATED_CNC_SCHEMA.SURFACE' IN TYPEOF(cv\ surface_curve.associated_geometry[i]) THEN IF NOT msf_surface_check(cv\surface_curve. associated_geometry[i]) THEN RETURN (FALSE); END_IF; ELSE IF 'INTEGRATED_CNC_SCHEMA.PCURVE' IN TYPEOF(cv\ surface_curve.associated_geometry[i]) THEN IF NOT msf_curve_check(cv\surface_curve. associated_geometry[i]) THEN RETURN (FALSE); END_IF; END_IF; END_IF; END_REPEAT; RETURN (TRUE); END_IF; ELSE IF 'INTEGRATED_CNC_SCHEMA.POLYLINE' IN TYPEOF(cv) THEN IF SIZEOF(cv\polyline.points) >= 3 THEN RETURN (TRUE); END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; RETURN (FALSE); END_FUNCTION; -- 10303-509: aic_manifold_surface FUNCTION msf_surface_check ( surf : surface ) : BOOLEAN; IF 'INTEGRATED_CNC_SCHEMA.ELEMENTARY_SURFACE' IN TYPEOF(surf) THEN RETURN (TRUE); ELSE IF 'INTEGRATED_CNC_SCHEMA.SWEPT_SURFACE' IN TYPEOF(surf) THEN RETURN (msf_curve_check(surf\swept_surface.swept_curve)); ELSE IF ('INTEGRATED_CNC_SCHEMA.OFFSET_SURFACE' IN TYPEOF(surf)) AND ( surf\offset_surface.self_intersect = FALSE) OR (surf\ offset_surface.self_intersect = UNKNOWN) THEN RETURN (msf_surface_check(surf\offset_surface.basis_surface)); ELSE IF 'INTEGRATED_CNC_SCHEMA.SURFACE_REPLICA' IN TYPEOF(surf) THEN RETURN (msf_surface_check(surf\surface_replica.parent_surface)) ; ELSE IF ('INTEGRATED_CNC_SCHEMA.B_SPLINE_SURFACE' IN TYPEOF(surf)) AND (surf\b_spline_surface.self_intersect = FALSE) OR (surf\ b_spline_surface.self_intersect = UNKNOWN) THEN RETURN (TRUE); END_IF; END_IF; END_IF; END_IF; END_IF; RETURN (FALSE); END_FUNCTION; -- 10303-509: aic_manifold_surface FUNCTION nmsf_curve_check ( cv : representation_item ) : BOOLEAN; IF SIZEOF([ 'INTEGRATED_CNC_SCHEMA.BOUNDED_CURVE', 'INTEGRATED_CNC_SCHEMA.CONIC', 'INTEGRATED_CNC_SCHEMA.CURVE_REPLICA', 'INTEGRATED_CNC_SCHEMA.LINE', 'INTEGRATED_CNC_SCHEMA.OFFSET_CURVE_3D' ] * TYPEOF(cv)) > 1 THEN RETURN (FALSE); ELSE IF ('INTEGRATED_CNC_SCHEMA.B_SPLINE_CURVE' IN TYPEOF(cv)) AND (cv\ b_spline_curve.self_intersect = FALSE) OR (cv\b_spline_curve. self_intersect = UNKNOWN) THEN RETURN (TRUE); ELSE IF SIZEOF([ 'INTEGRATED_CNC_SCHEMA.CONIC', 'INTEGRATED_CNC_SCHEMA.LINE' ] * TYPEOF(cv)) = 1 THEN RETURN (TRUE); ELSE IF 'INTEGRATED_CNC_SCHEMA.CURVE_REPLICA' IN TYPEOF(cv) THEN RETURN (nmsf_curve_check(cv\curve_replica.parent_curve)); ELSE IF (('INTEGRATED_CNC_SCHEMA.OFFSET_CURVE_3D' IN TYPEOF(cv)) AND ((cv\offset_curve_3d.self_intersect = FALSE) OR (cv\ offset_curve_3d.self_intersect = UNKNOWN))) AND NOT ( 'INTEGRATED_CNC_SCHEMA.POLYLINE' IN TYPEOF(cv\offset_curve_3d .basis_curve)) THEN RETURN (nmsf_curve_check(cv\offset_curve_3d.basis_curve)); ELSE IF 'INTEGRATED_CNC_SCHEMA.PCURVE' IN TYPEOF(cv) THEN RETURN (nmsf_curve_check(cv\pcurve.reference_to_curve\ representation.items[1]) AND nmsf_surface_check(cv\pcurve .basis_surface)); ELSE IF 'INTEGRATED_CNC_SCHEMA.SURFACE_CURVE' IN TYPEOF(cv) THEN IF nmsf_curve_check(cv\surface_curve.curve_3d) THEN REPEAT i := 1 TO SIZEOF(cv\surface_curve. associated_geometry); IF 'INTEGRATED_CNC_SCHEMA.SURFACE' IN TYPEOF(cv\ surface_curve.associated_geometry[i]) THEN IF NOT nmsf_surface_check(cv\surface_curve. associated_geometry[i]) THEN RETURN (FALSE); END_IF; ELSE IF 'INTEGRATED_CNC_SCHEMA.PCURVE' IN TYPEOF(cv\ surface_curve.associated_geometry[i]) THEN IF NOT nmsf_curve_check(cv\surface_curve. associated_geometry[i]) THEN RETURN (FALSE); END_IF; END_IF; END_IF; END_REPEAT; RETURN (TRUE); END_IF; ELSE IF 'INTEGRATED_CNC_SCHEMA.POLYLINE' IN TYPEOF(cv) THEN IF SIZEOF(cv\polyline.points) >= 3 THEN RETURN (TRUE); END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; RETURN (FALSE); END_FUNCTION; -- 10303-508: aic_non_manifold_surface FUNCTION nmsf_surface_check ( surf : surface ) : BOOLEAN; IF 'INTEGRATED_CNC_SCHEMA.ELEMENTARY_SURFACE' IN TYPEOF(surf) THEN RETURN (TRUE); ELSE IF 'INTEGRATED_CNC_SCHEMA.SWEPT_SURFACE' IN TYPEOF(surf) THEN RETURN (nmsf_curve_check(surf\swept_surface.swept_curve)); ELSE IF ('INTEGRATED_CNC_SCHEMA.OFFSET_SURFACE' IN TYPEOF(surf)) AND ( surf\offset_surface.self_intersect = FALSE) OR (surf\ offset_surface.self_intersect = UNKNOWN) THEN RETURN (nmsf_surface_check(surf\offset_surface.basis_surface)); ELSE IF 'INTEGRATED_CNC_SCHEMA.SURFACE_REPLICA' IN TYPEOF(surf) THEN RETURN (nmsf_surface_check(surf\surface_replica.parent_surface) ); ELSE IF ('INTEGRATED_CNC_SCHEMA.B_SPLINE_SURFACE' IN TYPEOF(surf)) AND (surf\b_spline_surface.self_intersect = FALSE) OR (surf\ b_spline_surface.self_intersect = UNKNOWN) THEN RETURN (TRUE); END_IF; END_IF; END_IF; END_IF; END_IF; RETURN (FALSE); END_FUNCTION; -- 10303-508: aic_non_manifold_surface FUNCTION normalise ( arg : vector_or_direction ) : vector_or_direction; LOCAL ndim : INTEGER; v : direction; result : vector_or_direction; vec : vector; mag : REAL; END_LOCAL; IF NOT EXISTS(arg) THEN result := ?; ELSE ndim := arg.dim; IF 'INTEGRATED_CNC_SCHEMA.VECTOR' IN TYPEOF(arg) THEN BEGIN v := dummy_gri || direction(arg\vector.orientation. direction_ratios); IF arg.magnitude = 0.0 THEN RETURN (?); ELSE vec := dummy_gri || vector(v, 1.0); END_IF; END; ELSE v := dummy_gri || direction(arg.direction_ratios); END_IF; mag := 0.0; REPEAT i := 1 TO ndim; mag := mag + v.direction_ratios[i] * v.direction_ratios[i]; END_REPEAT; IF mag > 0.0 THEN mag := sqrt(mag); REPEAT i := 1 TO ndim; v.direction_ratios[i] := v.direction_ratios[i] / mag; END_REPEAT; IF 'INTEGRATED_CNC_SCHEMA.VECTOR' IN TYPEOF(arg) THEN vec.orientation := v; result := vec; ELSE result := v; END_IF; ELSE RETURN (?); END_IF; END_IF; RETURN (result); END_FUNCTION; -- 10303-42: geometry_schema FUNCTION open_shell_reversed ( a_shell : open_shell ) : oriented_open_shell; LOCAL the_reverse : oriented_open_shell; END_LOCAL; IF 'INTEGRATED_CNC_SCHEMA.ORIENTED_OPEN_SHELL' IN TYPEOF(a_shell) THEN the_reverse := dummy_tri || connected_face_set(a_shell\ connected_face_set.cfs_faces) || open_shell() || oriented_open_shell(a_shell\oriented_open_shell.open_shell_element, NOT a_shell\oriented_open_shell.orientation); ELSE the_reverse := dummy_tri || connected_face_set(a_shell\ connected_face_set.cfs_faces) || open_shell() || oriented_open_shell(a_shell, FALSE); END_IF; RETURN (the_reverse); END_FUNCTION; -- 10303-42: topology_schema FUNCTION orthogonal_complement ( vec : direction ) : direction; LOCAL result : direction; END_LOCAL; IF (vec.dim <> 2) OR NOT EXISTS(vec) THEN RETURN (?); ELSE result := dummy_gri || direction([ -vec.direction_ratios[2], vec. direction_ratios[1] ]); RETURN (result); END_IF; END_FUNCTION; -- 10303-42: geometry_schema FUNCTION path_head_to_tail ( a_path : path ) : LOGICAL; LOCAL n : INTEGER; p : LOGICAL := TRUE; END_LOCAL; n := SIZEOF(a_path.edge_list); REPEAT i := 2 TO n; p := p AND (a_path.edge_list[(i - 1)].edge_end :=: a_path.edge_list[i ].edge_start); END_REPEAT; RETURN (p); END_FUNCTION; -- 10303-42: topology_schema FUNCTION path_reversed ( a_path : path ) : oriented_path; LOCAL the_reverse : oriented_path; END_LOCAL; IF 'INTEGRATED_CNC_SCHEMA.ORIENTED_PATH' IN TYPEOF(a_path) THEN the_reverse := dummy_tri || path(list_of_topology_reversed(a_path. edge_list)) || oriented_path(a_path\oriented_path.path_element, NOT a_path\oriented_path.orientation); ELSE the_reverse := dummy_tri || path(list_of_topology_reversed(a_path. edge_list)) || oriented_path(a_path, FALSE); END_IF; RETURN (the_reverse); END_FUNCTION; -- 10303-42: topology_schema FUNCTION plane_angle_for_pair_in_radian ( pair : kinematic_pair; angle : plane_angle_measure ) : plane_angle_measure; LOCAL converted_angle : plane_angle_measure := angle; link_rep : kinematic_link_representation := representation_of_link(pair .joint.edge_start); link_cntxt : representation_context; pa_units : SET OF unit := []; pau : unit; END_LOCAL; link_cntxt := link_rep\representation.context_of_items; IF NOT ('INTEGRATED_CNC_SCHEMA.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN TYPEOF( link_cntxt)) THEN RETURN (?); END_IF; pa_units := QUERY (unit <* link_cntxt\global_unit_assigned_context. units| 'INTEGRATED_CNC_SCHEMA.PLANE_ANGLE_UNIT' IN TYPEOF(unit)); IF SIZEOF(pa_units) <> 1 THEN RETURN (?); END_IF; pau := pa_units[1]; IF NOT ('INTEGRATED_CNC_SCHEMA.SI_UNIT' IN TYPEOF(pau)) AND NOT ( 'INTEGRATED_CNC_SCHEMA.CONVERSION_BASED_UNIT' IN TYPEOF(pau)) THEN RETURN (?); END_IF; REPEAT WHILE 'INTEGRATED_CNC_SCHEMA.CONVERSION_BASED_UNIT' IN TYPEOF( pau); converted_angle := converted_angle * pau\conversion_based_unit. conversion_factor.value_component; pau := pau\conversion_based_unit.conversion_factor.unit_component; IF NOT ('INTEGRATED_CNC_SCHEMA.SI_UNIT' IN TYPEOF(pau)) AND NOT ( 'INTEGRATED_CNC_SCHEMA.CONVERSION_BASED_UNIT' IN TYPEOF(pau)) OR NOT ('INTEGRATED_CNC_SCHEMA.PLANE_ANGLE_UNIT' IN TYPEOF(pau)) THEN RETURN (?); END_IF; END_REPEAT; IF pau\si_unit.name <> si_unit_name.radian THEN RETURN (?); END_IF; CASE pau\si_unit.prefix OF si_prefix.exa : RETURN (1.0E+018 * converted_angle); si_prefix.peta : RETURN (1.0E+015 * converted_angle); si_prefix.tera : RETURN (1.0E+012 * converted_angle); si_prefix.giga : RETURN (1.0E+009 * converted_angle); si_prefix.mega : RETURN (1.0E+006 * converted_angle); si_prefix.kilo : RETURN (1000.00 * converted_angle); si_prefix.hecto : RETURN (100.000 * converted_angle); si_prefix.deca : RETURN (10.0 * converted_angle); si_prefix.deci : RETURN (0.100000 * converted_angle); si_prefix.centi : RETURN (0.0100000 * converted_angle); si_prefix.milli : RETURN (0.00100000 * converted_angle); si_prefix.micro : RETURN (1.0E-006 * converted_angle); si_prefix.nano : RETURN (1.0E-009 * converted_angle); si_prefix.pico : RETURN (1.0E-012 * converted_angle); si_prefix.femto : RETURN (1.0E-015 * converted_angle); si_prefix.atto : RETURN (1.0E-018 * converted_angle); OTHERWISE : RETURN (converted_angle); END_CASE; END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION representation_of_link ( link : kinematic_link ) : kinematic_link_representation; RETURN (?); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION representations_mapped_into ( rep : representation ) : SET OF representation; LOCAL results : SET OF representation := []; rm : SET OF representation_map; mi : SET OF mapped_item := []; END_LOCAL; rm := bag_to_set(USEDIN(rep, 'INTEGRATED_CNC_SCHEMA.' + 'REPRESENTATION_MAP.MAPPED_REPRESENTATION')); REPEAT i := 1 TO HIINDEX(rm); mi := mi + rm[i].map_usage; END_REPEAT; REPEAT j := 1 TO HIINDEX(mi); results := results + USEDIN(mi[j], 'INTEGRATED_CNC_SCHEMA.' + 'REPRESENTATION.ITEMS'); END_REPEAT; RETURN (results); END_FUNCTION; -- 10303-520: aic_associative_draughting_elements FUNCTION scalar_times_vector ( scalar : REAL; vec : vector_or_direction ) : vector; LOCAL v : direction; mag : REAL; result : vector; END_LOCAL; IF NOT EXISTS(scalar) OR NOT EXISTS(vec) THEN RETURN (?); ELSE IF 'INTEGRATED_CNC_SCHEMA.VECTOR' IN TYPEOF(vec) THEN v := dummy_gri || direction(vec\vector.orientation.direction_ratios ); mag := scalar * vec.magnitude; ELSE v := dummy_gri || direction(vec.direction_ratios); mag := scalar; END_IF; IF mag < 0.0 THEN REPEAT i := 1 TO SIZEOF(v.direction_ratios); v.direction_ratios[i] := -v.direction_ratios[i]; END_REPEAT; mag := -mag; END_IF; result := dummy_gri || vector(normalise(v), mag); END_IF; RETURN (result); END_FUNCTION; -- 10303-42: geometry_schema FUNCTION second_proj_axis ( z_axis : direction; x_axis : direction; arg : direction ) : direction; LOCAL y_axis : vector; v : direction; temp : vector; END_LOCAL; IF NOT EXISTS(arg) THEN v := dummy_gri || direction([ 0.0, 1.0, 0.0 ]); ELSE v := arg; END_IF; temp := scalar_times_vector(dot_product(v, z_axis), z_axis); y_axis := vector_difference(v, temp); temp := scalar_times_vector(dot_product(v, x_axis), x_axis); y_axis := vector_difference(y_axis, temp); y_axis := normalise(y_axis); RETURN (y_axis.orientation); END_FUNCTION; -- 10303-42: geometry_schema FUNCTION set_of_topology_reversed ( a_set : set_of_reversible_topology_item ) : set_of_reversible_topology_item; LOCAL the_reverse : set_of_reversible_topology_item; END_LOCAL; the_reverse := []; REPEAT i := 1 TO SIZEOF(a_set); the_reverse := the_reverse + topology_reversed(a_set[i]); END_REPEAT; RETURN (the_reverse); END_FUNCTION; -- 10303-42: topology_schema FUNCTION shell_reversed ( a_shell : shell ) : shell; IF 'INTEGRATED_CNC_SCHEMA.OPEN_SHELL' IN TYPEOF(a_shell) THEN RETURN (open_shell_reversed(a_shell)); ELSE IF 'INTEGRATED_CNC_SCHEMA.CLOSED_SHELL' IN TYPEOF(a_shell) THEN RETURN (closed_shell_reversed(a_shell)); ELSE RETURN (?); END_IF; END_IF; END_FUNCTION; -- 10303-42: topology_schema FUNCTION sort_link_associations ( aprr : SET [1:?] OF pair_representation_relationship; one_not_two : BOOLEAN ) : SET OF kinematic_link_representation; LOCAL result : SET OF kinematic_link_representation := []; END_LOCAL; IF one_not_two THEN REPEAT i := 1 TO HIINDEX(aprr); result := result + aprr[i].rep_1; END_REPEAT; ELSE REPEAT i := 1 TO HIINDEX(aprr); result := result + aprr[i].rep_2; END_REPEAT; END_IF; RETURN (result); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION stripped_typeof ( arg : GENERIC : G ) : SET OF STRING; LOCAL types : SET OF STRING := TYPEOF(arg); stypes : SET OF STRING := []; n : INTEGER := LENGTH(schema_prefix); END_LOCAL; REPEAT i := 1 TO SIZEOF(types); IF types[i][[ n : 1 ]] = schema_prefix THEN stypes := stypes + [ types[i][[ LENGTH(types[i]) : (n + 1) ]] ]; ELSE stypes := stypes + [ types[i] ]; END_IF; END_REPEAT; RETURN (stypes); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION surface_weights_positive ( b : rational_b_spline_surface ) : BOOLEAN; LOCAL result : BOOLEAN := TRUE; END_LOCAL; REPEAT i := 0 TO b.u_upper; REPEAT j := 0 TO b.v_upper; IF b.weights[i][j] <= 0.0 THEN result := FALSE; RETURN (result); END_IF; END_REPEAT; END_REPEAT; RETURN (result); END_FUNCTION; -- 10303-42: geometry_schema FUNCTION topology_reversed ( an_item : reversible_topology ) : reversible_topology; IF 'INTEGRATED_CNC_SCHEMA.EDGE' IN TYPEOF(an_item) THEN RETURN (edge_reversed(an_item)); END_IF; IF 'INTEGRATED_CNC_SCHEMA.PATH' IN TYPEOF(an_item) THEN RETURN (path_reversed(an_item)); END_IF; IF 'INTEGRATED_CNC_SCHEMA.FACE_BOUND' IN TYPEOF(an_item) THEN RETURN (face_bound_reversed(an_item)); END_IF; IF 'INTEGRATED_CNC_SCHEMA.FACE' IN TYPEOF(an_item) THEN RETURN (face_reversed(an_item)); END_IF; IF 'INTEGRATED_CNC_SCHEMA.SHELL' IN TYPEOF(an_item) THEN RETURN (shell_reversed(an_item)); END_IF; IF 'SET' IN TYPEOF(an_item) THEN RETURN (set_of_topology_reversed(an_item)); END_IF; IF 'LIST' IN TYPEOF(an_item) THEN RETURN (list_of_topology_reversed(an_item)); END_IF; RETURN (?); END_FUNCTION; -- 10303-42: topology_schema FUNCTION using_items ( item : founded_item_select; checked_items : SET OF founded_item_select ) : SET OF founded_item_select; LOCAL new_check_items : SET OF founded_item_select; result_items : SET OF founded_item_select; next_items : SET OF founded_item_select; END_LOCAL; result_items := []; new_check_items := checked_items + item; next_items := QUERY (z <* bag_to_set(USEDIN(item, ''))| ( 'INTEGRATED_CNC_SCHEMA.REPRESENTATION_ITEM' IN TYPEOF(z)) OR ( 'INTEGRATED_CNC_SCHEMA.FOUNDED_ITEM' IN TYPEOF(z))); IF SIZEOF(next_items) > 0 THEN REPEAT i := 1 TO HIINDEX(next_items); IF NOT (next_items[i] IN new_check_items) THEN result_items := result_items + next_items[i] + using_items( next_items[i], new_check_items); END_IF; END_REPEAT; END_IF; RETURN (result_items); END_FUNCTION; -- 10303-43: representation_schema FUNCTION using_representations ( item : founded_item_select ) : SET OF representation; LOCAL results : SET OF representation; result_bag : BAG OF representation; intermediate_items : SET OF founded_item_select; END_LOCAL; results := []; result_bag := USEDIN(item, 'INTEGRATED_CNC_SCHEMA.REPRESENTATION.ITEMS' ); IF SIZEOF(result_bag) > 0 THEN REPEAT i := 1 TO HIINDEX(result_bag); results := results + result_bag[i]; END_REPEAT; END_IF; intermediate_items := using_items(item, []); IF SIZEOF(intermediate_items) > 0 THEN REPEAT i := 1 TO HIINDEX(intermediate_items); result_bag := USEDIN(intermediate_items[i], 'INTEGRATED_CNC_SCHEMA.REPRESENTATION.ITEMS'); IF SIZEOF(result_bag) > 0 THEN REPEAT j := 1 TO HIINDEX(result_bag); results := results + result_bag[j]; END_REPEAT; END_IF; END_REPEAT; END_IF; RETURN (results); END_FUNCTION; -- 10303-43: representation_schema FUNCTION valid_calendar_date ( date : calendar_date ) : LOGICAL; CASE date.month_component OF 1 : RETURN ((1 <= date.day_component) AND (date.day_component <= 31)) ; 2 : BEGIN IF leap_year(date.year_component) THEN RETURN ((1 <= date.day_component) AND (date.day_component <= 29)); ELSE RETURN ((1 <= date.day_component) AND (date.day_component <= 28)); END_IF; END; 3 : RETURN ((1 <= date.day_component) AND (date.day_component <= 31)) ; 4 : RETURN ((1 <= date.day_component) AND (date.day_component <= 30)) ; 5 : RETURN ((1 <= date.day_component) AND (date.day_component <= 31)) ; 6 : RETURN ((1 <= date.day_component) AND (date.day_component <= 30)) ; 7 : RETURN ((1 <= date.day_component) AND (date.day_component <= 31)) ; 8 : RETURN ((1 <= date.day_component) AND (date.day_component <= 31)) ; 9 : RETURN ((1 <= date.day_component) AND (date.day_component <= 30)) ; 10 : RETURN ((1 <= date.day_component) AND (date.day_component <= 31)) ; 11 : RETURN ((1 <= date.day_component) AND (date.day_component <= 30)) ; 12 : RETURN ((1 <= date.day_component) AND (date.day_component <= 31)) ; END_CASE; RETURN (FALSE); END_FUNCTION; -- 10303-41: date_time_schema FUNCTION valid_geometrically_bounded_wf_curve ( crv : curve ) : BOOLEAN; IF SIZEOF([ 'INTEGRATED_CNC_SCHEMA.POLYLINE', 'INTEGRATED_CNC_SCHEMA.B_SPLINE_CURVE', 'INTEGRATED_CNC_SCHEMA.ELLIPSE', 'INTEGRATED_CNC_SCHEMA.CIRCLE' ] * TYPEOF(crv)) = 1 THEN RETURN (TRUE); ELSE IF 'INTEGRATED_CNC_SCHEMA.TRIMMED_CURVE' IN TYPEOF(crv) THEN IF SIZEOF([ 'INTEGRATED_CNC_SCHEMA.LINE', 'INTEGRATED_CNC_SCHEMA.PARABOLA', 'INTEGRATED_CNC_SCHEMA.HYPERBOLA' ] * TYPEOF(crv\trimmed_curve. basis_curve)) = 1 THEN RETURN (TRUE); ELSE RETURN (valid_geometrically_bounded_wf_curve(crv\trimmed_curve. basis_curve)); END_IF; ELSE IF 'INTEGRATED_CNC_SCHEMA.OFFSET_CURVE_3D' IN TYPEOF(crv) THEN RETURN (valid_geometrically_bounded_wf_curve(crv\offset_curve_3d. basis_curve)); ELSE IF 'INTEGRATED_CNC_SCHEMA.CURVE_REPLICA' IN TYPEOF(crv) THEN RETURN (valid_geometrically_bounded_wf_curve(crv\curve_replica. parent_curve)); ELSE IF 'INTEGRATED_CNC_SCHEMA.COMPOSITE_CURVE' IN TYPEOF(crv) THEN RETURN (SIZEOF(QUERY (ccs <* crv\composite_curve.segments| NOT valid_geometrically_bounded_wf_curve(ccs.parent_curve)) ) = 0); END_IF; END_IF; END_IF; END_IF; END_IF; RETURN (FALSE); END_FUNCTION; -- 10303-510: aic_geometrically_bounded_wireframe FUNCTION valid_geometrically_bounded_wf_point ( pnt : point ) : BOOLEAN; IF 'INTEGRATED_CNC_SCHEMA.CARTESIAN_POINT' IN TYPEOF(pnt) THEN RETURN (TRUE); ELSE IF 'INTEGRATED_CNC_SCHEMA.POINT_ON_CURVE' IN TYPEOF(pnt) THEN RETURN (valid_geometrically_bounded_wf_curve(pnt\point_on_curve. basis_curve)); ELSE IF 'INTEGRATED_CNC_SCHEMA.POINT_REPLICA' IN TYPEOF(pnt) THEN RETURN (valid_geometrically_bounded_wf_point(pnt\point_replica. parent_pt)); END_IF; END_IF; END_IF; RETURN (FALSE); END_FUNCTION; -- 10303-510: aic_geometrically_bounded_wireframe FUNCTION valid_measure_value ( m : measure_value ) : BOOLEAN; IF 'REAL' IN TYPEOF(m) THEN RETURN (m > 0.0); ELSE IF 'INTEGER' IN TYPEOF(m) THEN RETURN (m > 0); ELSE RETURN (TRUE); END_IF; END_IF; END_FUNCTION; -- 10303-43: representation_schema FUNCTION valid_time ( time : local_time ) : BOOLEAN; IF EXISTS(time.second_component) THEN RETURN (EXISTS(time.minute_component)); ELSE RETURN (TRUE); END_IF; END_FUNCTION; -- 10303-41: date_time_schema FUNCTION valid_units ( m : measure_with_unit ) : BOOLEAN; IF 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(1, 0, 0, 0, 0, 0, 0) THEN RETURN (FALSE); END_IF; END_IF; IF 'INTEGRATED_CNC_SCHEMA.TIME_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0, 0, 1, 0, 0, 0, 0) THEN RETURN (FALSE); END_IF; END_IF; IF 'INTEGRATED_CNC_SCHEMA.PLANE_ANGLE_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0, 0, 0, 0, 0, 0, 0) THEN RETURN (FALSE); END_IF; END_IF; IF 'INTEGRATED_CNC_SCHEMA.SOLID_ANGLE_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0, 0, 0, 0, 0, 0, 0) THEN RETURN (FALSE); END_IF; END_IF; IF 'INTEGRATED_CNC_SCHEMA.RATIO_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0, 0, 0, 0, 0, 0, 0) THEN RETURN (FALSE); END_IF; END_IF; IF 'INTEGRATED_CNC_SCHEMA.POSITIVE_LENGTH_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(1, 0, 0, 0, 0, 0, 0) THEN RETURN (FALSE); END_IF; END_IF; IF 'INTEGRATED_CNC_SCHEMA.POSITIVE_PLANE_ANGLE_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0, 0, 0, 0, 0, 0, 0) THEN RETURN (FALSE); END_IF; END_IF; RETURN (TRUE); END_FUNCTION; -- 10303-41: measure_schema FUNCTION valid_wireframe_edge_curve ( crv : curve ) : BOOLEAN; IF SIZEOF([ 'INTEGRATED_CNC_SCHEMA.LINE', 'INTEGRATED_CNC_SCHEMA.CONIC' , 'INTEGRATED_CNC_SCHEMA.B_SPLINE_CURVE', 'INTEGRATED_CNC_SCHEMA.POLYLINE' ] * TYPEOF(crv)) = 1 THEN RETURN (TRUE); ELSE IF 'INTEGRATED_CNC_SCHEMA.CURVE_REPLICA' IN TYPEOF(crv) THEN RETURN (valid_wireframe_edge_curve(crv\curve_replica.parent_curve)) ; ELSE IF 'INTEGRATED_CNC_SCHEMA.OFFSET_CURVE_3D' IN TYPEOF(crv) THEN RETURN (valid_wireframe_edge_curve(crv\offset_curve_3d. basis_curve)); END_IF; END_IF; END_IF; RETURN (FALSE); END_FUNCTION; -- 10303-502: aic_shell_based_wireframe FUNCTION valid_wireframe_vertex_point ( pnt : point ) : BOOLEAN; IF 'INTEGRATED_CNC_SCHEMA.CARTESIAN_POINT' IN TYPEOF(pnt) THEN RETURN (TRUE); ELSE IF 'INTEGRATED_CNC_SCHEMA.POINT_REPLICA' IN TYPEOF(pnt) THEN RETURN (valid_wireframe_vertex_point(pnt\point_replica.parent_pt)); END_IF; END_IF; RETURN (FALSE); END_FUNCTION; -- 10303-502: aic_shell_based_wireframe FUNCTION vector_difference ( arg1 : vector_or_direction; arg2 : vector_or_direction ) : vector; LOCAL result : vector; res : direction; vec1 : direction; vec2 : direction; mag : REAL; mag1 : REAL; mag2 : REAL; ndim : INTEGER; END_LOCAL; IF (NOT EXISTS(arg1) OR NOT EXISTS(arg2)) OR (arg1.dim <> arg2.dim) THEN RETURN (?); ELSE BEGIN IF 'INTEGRATED_CNC_SCHEMA.VECTOR' IN TYPEOF(arg1) THEN mag1 := arg1.magnitude; vec1 := arg1\vector.orientation; ELSE mag1 := 1.0; vec1 := arg1; END_IF; IF 'INTEGRATED_CNC_SCHEMA.VECTOR' IN TYPEOF(arg2) THEN mag2 := arg2.magnitude; vec2 := arg2\vector.orientation; ELSE mag2 := 1.0; vec2 := arg2; END_IF; vec1 := normalise(vec1); vec2 := normalise(vec2); ndim := SIZEOF(vec1.direction_ratios); mag := 0.0; res := dummy_gri || direction(vec1.direction_ratios); REPEAT i := 1 TO ndim; res.direction_ratios[i] := mag1 * vec1.direction_ratios[i] - mag2 * vec2.direction_ratios[i]; mag := mag + res.direction_ratios[i] * res.direction_ratios[i]; END_REPEAT; IF mag > 0.0 THEN result := dummy_gri || vector(res, sqrt(mag)); ELSE result := dummy_gri || vector(vec1, 0.0); END_IF; END; END_IF; RETURN (result); END_FUNCTION; -- 10303-42: geometry_schema FUNCTION verify_angle_measure_action_property ( cad : characterized_action_definition; prop_name : STRING ): LOGICAL; RETURN (verify_rep_item_for_action_property(cad, prop_name, ['INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT'])); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_angle_measure_rep_item ( rep : representation; prop_name : STRING ): LOGICAL; RETURN (0 = SIZEOF (QUERY ( it <* rep.items | (it.name = prop_name) AND NOT (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2)))); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_angle_measure_resource_property ( crd : characterized_resource_definition; prop_name : STRING ): LOGICAL; RETURN (verify_rep_item_for_resource_property (crd, prop_name, ['INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT'])); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_angle_measure_tool_body_item ( mt : machining_tool; prop_name : STRING ): LOGICAL; RETURN (verify_rep_item_for_tool_body(mt, prop_name, ['INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT'])); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_ballnose_endmill_dimensions ( mt : machining_tool ): LOGICAL; LOCAL rads : SET OF REPRESENTATION_ITEM := get_tool_body_item (mt, 'edge radius'); dias : SET OF REPRESENTATION_ITEM := get_tool_body_item (mt, 'effective cutting diameter'); END_LOCAL; RETURN ((0 = SIZEOF(rads)) OR ((1 = SIZEOF(rads)) AND (1 = SIZEOF(dias)) AND (rads[1].value_component = dias[1].value_component/2)) ); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_bullnose_endmill_dimensions ( mt : machining_tool ): LOGICAL; LOCAL rads : SET OF REPRESENTATION_ITEM := get_tool_body_item (mt, 'edge radius'); dias : SET OF REPRESENTATION_ITEM := get_tool_body_item (mt, 'effective cutting diameter'); END_LOCAL; RETURN ((1 = SIZEOF(rads)) AND (1 = SIZEOF(dias)) AND (rads[1].value_component < dias[1].value_component/2) ); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_count_measure_action_property ( cad : characterized_action_definition; prop_name : STRING ): LOGICAL; -- All properties have matching representations. The reason we test -- for "nothing matching the negation" rather than "something matching -- the positive" is so that we return true if there are no properties. -- RETURN (0 = SIZEOF (QUERY (prop <* get_action_property (cad, prop_name) | -- property has no matching representations NOT ( -- there is at least one rep with matching rep items (0 < SIZEOF (QUERY (prep <* USEDIN (prop, 'INTEGRATED_CNC_SCHEMA.' + 'ACTION_PROPERTY_REPRESENTATION.PROPERTY') | -- property representation has at least one matching rep item (0 < SIZEOF (QUERY (it <* prep.representation.items | (('INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('INTEGRATED_CNC_SCHEMA.COUNT_MEASURE' IN TYPEOF(it.value_component))) ))) ))) )))); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_count_measure_rep_item ( rep : representation; prop_name : STRING ): LOGICAL; RETURN (0 = SIZEOF (QUERY ( it <* rep.items | (it.name = prop_name) AND NOT (('INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('INTEGRATED_CNC_SCHEMA.COUNT_MEASURE' IN TYPEOF(it.value_component)))))); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_count_measure_resource_property ( crd : characterized_resource_definition; prop_name : STRING ): LOGICAL; -- All properties have matching representations. The reason we test -- for "nothing matching the negation" rather than "something matching -- the positive" is so that we return true if there are no properties. -- RETURN (0 = SIZEOF (QUERY (prop <* get_resource_property (crd, prop_name) | -- property has no matching representations NOT ( -- there is at least one rep with matching rep items (0 < SIZEOF (QUERY (prep <* USEDIN (prop, 'INTEGRATED_CNC_SCHEMA.' + 'RESOURCE_PROPERTY_REPRESENTATION.PROPERTY') | -- property representation has at least one matching rep item (0 < SIZEOF (QUERY (it <* prep.representation.items | (('INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('INTEGRATED_CNC_SCHEMA.COUNT_MEASURE' IN TYPEOF(it.value_component))) ))) ))) )))); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_count_measure_tool_body_item ( mt : machining_tool; prop_name : STRING ): LOGICAL; RETURN (0 = SIZEOF (QUERY (it <* get_tool_body_item (mt, prop_name) | NOT (('INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('INTEGRATED_CNC_SCHEMA.COUNT_MEASURE' IN TYPEOF(it.value_component))) ))); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_descriptive_action_property ( cad : characterized_action_definition; prop_name : STRING ): LOGICAL; RETURN (verify_rep_item_for_action_property(cad, prop_name, ['INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM'])); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_enumeration_action_property ( cad : characterized_action_definition; prop_name : STRING; prop_values : SET OF STRING ): LOGICAL; -- Each action property has at least one representation that contains -- a descriptive rep item, and that descriptive rep item has a value -- drawn from the prop_values set. -- there are no properties that do not have matching representations RETURN (0 = SIZEOF (QUERY (prop <* get_action_property (cad, prop_name) | NOT ( -- there is at least one rep with matching rep items (0 < SIZEOF (QUERY (prep <* USEDIN (prop, 'INTEGRATED_CNC_SCHEMA.' + 'ACTION_PROPERTY_REPRESENTATION.PROPERTY') | -- property representation has at least one matching rep item (0 < SIZEOF (QUERY (it <* prep.representation.items | (('INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.description IN prop_values)) ))) ))) )))); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_enumeration_resource_property ( crd : characterized_resource_definition; prop_name : STRING; prop_values : SET OF STRING ): LOGICAL; RETURN (0 = SIZEOF (QUERY (prop <* get_resource_property (crd, prop_name) | NOT ( -- there is at least one rep with matching rep items (0 < SIZEOF (QUERY (prep <* USEDIN (prop, 'INTEGRATED_CNC_SCHEMA.' + 'RESOURCE_PROPERTY_REPRESENTATION.PROPERTY') | -- property representation has at least one matching rep item (0 < SIZEOF (QUERY (it <* prep.representation.items | (('INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.description IN prop_values)) ))) ))) )))); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_enumeration_tool_body_item ( mt : machining_tool; prop_name : STRING; prop_values : SET OF STRING ): LOGICAL; RETURN (0 = SIZEOF (QUERY (it <* get_tool_body_item (mt, prop_name) | NOT (('INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.description IN prop_values)) ))); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_length_measure_action_property ( cad : characterized_action_definition; prop_name : STRING ): LOGICAL; RETURN (verify_rep_item_for_action_property (cad, prop_name, ['INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT'])); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_length_measure_rep_item ( rep : representation; prop_name : STRING ): LOGICAL; RETURN (0 = SIZEOF (QUERY ( it <* rep.items | (it.name = prop_name) AND NOT (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2)))); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_length_measure_resource_property ( crd : characterized_resource_definition; prop_name : STRING ): LOGICAL; RETURN (verify_rep_item_for_resource_property (crd, prop_name, ['INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT'])); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_length_measure_tool_body_item ( mt : machining_tool; prop_name : STRING ): LOGICAL; RETURN (verify_rep_item_for_tool_body(mt, prop_name, ['INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.LENGTH_MEASURE_WITH_UNIT'])); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_linear_speed_measure_rep_item ( rep : representation; prop_name : STRING ): LOGICAL; RETURN (0 = SIZEOF (QUERY ( it <* rep.items | (it.name = prop_name) AND NOT (('INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('INTEGRATED_CNC_SCHEMA.NUMERIC_MEASURE' IN TYPEOF(it.value_component)))))); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_numeric_measure_action_property ( cad : characterized_action_definition; prop_name : STRING ): LOGICAL; -- All properties have matching representations. The reason we test -- for "nothing matching the negation" rather than "something matching -- the positive" is so that we return true if there are no properties. -- RETURN (0 = SIZEOF (QUERY (prop <* get_action_property (cad, prop_name) | -- property has no matching representations NOT ( -- there is at least one rep with matching rep items (0 < SIZEOF (QUERY (prep <* USEDIN (prop, 'INTEGRATED_CNC_SCHEMA.' + 'ACTION_PROPERTY_REPRESENTATION.PROPERTY') | -- property representation has at least one matching rep item (0 < SIZEOF (QUERY (it <* prep.representation.items | (('INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('INTEGRATED_CNC_SCHEMA.NUMERIC_MEASURE' IN TYPEOF(it.value_component))) ))) ))) )))); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_optional_action_property ( cad : characterized_action_definition; prop_name : STRING ): LOGICAL; RETURN (1 >= SIZEOF (get_action_property (cad, prop_name))); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_optional_in_process_geometry ( mpe : machining_process_executable ): LOGICAL; RETURN ((verify_optional_action_property (mpe, 'as-is shape')) AND (verify_optional_action_property (mpe, 'to-be shape')) AND (verify_optional_action_property (mpe, 'removal shape')) AND -- All properties need advanced brep shape reps (0 = SIZEOF (QUERY (prop <* USEDIN (mpe, 'INTEGRATED_CNC_SCHEMA.ACTION_PROPERTY.DEFINITION') | ((prop.name IN ['as-is shape', 'to-be shape', 'removal shape']) AND (0 = SIZEOF (QUERY (prep <* USEDIN (prop, 'INTEGRATED_CNC_SCHEMA.' + 'ACTION_PROPERTY_REPRESENTATION.PROPERTY') | ('INTEGRATED_CNC_SCHEMA.SHAPE_REPRESENTATION' IN TYPEOF (prep.representation)))))) ))) ); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_optional_relating_amr ( am : action_method; amr_types : SET OF STRING ): LOGICAL; RETURN (1 >= get_count_of_relating_amr (am, amr_types)); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_optional_relating_amr_with_name ( am : action_method; amr_name : STRING; amr_types : SET OF STRING ): LOGICAL; RETURN (1 >= get_count_of_relating_amr_with_name ( am, amr_name, amr_types)); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_optional_rep_item ( rep : representation; prop_name : STRING ): LOGICAL; RETURN (1 >= SIZEOF (QUERY ( it <* rep.items | (it.name = prop_name)))); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_optional_resource_property ( crd : characterized_resource_definition; prop_name : STRING ): LOGICAL; RETURN (1 >= SIZEOF (get_resource_property (crd, prop_name))); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_optional_tool_body_item ( mt : machining_tool; prop_name : STRING ): LOGICAL; RETURN (1 >= SIZEOF (get_tool_body_item (mt, prop_name))); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_pressure_measure_action_property ( cad : characterized_action_definition; prop_name : STRING ): LOGICAL; RETURN (verify_numeric_measure_action_property (cad, prop_name)); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_ratio_measure_action_property ( cad : characterized_action_definition; prop_name : STRING ): LOGICAL; RETURN (verify_rep_item_for_action_property (cad, prop_name, ['INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.RATIO_MEASURE_WITH_UNIT'])); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_ratio_measure_rep_item ( rep : representation; prop_name : STRING ): LOGICAL; RETURN (0 = SIZEOF (QUERY ( it <* rep.items | (it.name = prop_name) AND NOT (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.RATIO_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2)))); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_related_type_for_amr ( am : action_method; amr_types : SET OF STRING; types : SET OF STRING ): LOGICAL; RETURN (0 = SIZEOF (QUERY (amr <* get_relating_amr (am) | (SIZEOF(amr_types * TYPEOF(amr)) = SIZEOF(amr_types)) AND NOT (SIZEOF(types * TYPEOF(amr.related_method)) = SIZEOF(types)) ))); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_related_type_for_amr_with_name ( am : action_method; amr_name : STRING; amr_types : SET OF STRING; types : SET OF STRING ): LOGICAL; RETURN (0 = SIZEOF (QUERY (amr <* get_relating_amr (am) | (amr.name = amr_name) AND (SIZEOF(amr_types * TYPEOF(amr)) = SIZEOF(amr_types)) AND NOT (SIZEOF(types * TYPEOF(amr.related_method)) = SIZEOF(types)) ))); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_rep_item_for_action_property ( cad : characterized_action_definition; prop_name : STRING; rep_item_types : SET OF STRING ): LOGICAL; -- All properties have matching representations. The reason we test -- for "nothing matching the negation" rather than "something matching -- the positive" is so that we return true if there are no properties. -- RETURN (0 = SIZEOF (QUERY (prop <* get_action_property (cad, prop_name) | -- property has no matching representations NOT ( -- there is at least one rep with matching rep items (0 < SIZEOF (QUERY (prep <* USEDIN (prop, 'INTEGRATED_CNC_SCHEMA.' + 'ACTION_PROPERTY_REPRESENTATION.PROPERTY') | -- property representation has at least one matching rep item (0 < SIZEOF (QUERY (it <* prep.representation.items | (SIZEOF (rep_item_types * TYPEOF(it)) = SIZEOF (rep_item_types)))) ))) )) ))); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_rep_item_for_resource_property ( crd : characterized_resource_definition; prop_name : STRING; rep_item_types : SET OF STRING ): LOGICAL; RETURN (0 = SIZEOF (QUERY (prop <* get_resource_property (crd, prop_name) | NOT (0 < SIZEOF (QUERY (prep <* USEDIN (prop, 'INTEGRATED_CNC_SCHEMA.' + 'RESOURCE_PROPERTY_REPRESENTATION.PROPERTY') | (0 < SIZEOF (QUERY (it <* prep.representation.items | (SIZEOF (rep_item_types * TYPEOF(it)) = SIZEOF (rep_item_types))))) ))) ))); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_rep_item_for_tool_body ( mt : machining_tool; prop_name : STRING; rep_item_types : SET OF STRING ): LOGICAL; RETURN (0 = SIZEOF (QUERY (it <* get_tool_body_item (mt, prop_name) | NOT ((SIZEOF (rep_item_types * TYPEOF(it)) = SIZEOF (rep_item_types))) ))); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_rep_name_for_action_property ( cad : characterized_action_definition; prop_name : STRING; desc_names : SET OF STRING ): LOGICAL; RETURN (0 = SIZEOF (QUERY (prop <* get_action_property (cad, prop_name) | NOT (0 < SIZEOF (QUERY (prep <* USEDIN (prop, 'INTEGRATED_CNC_SCHEMA.'+ 'ACTION_PROPERTY_REPRESENTATION.PROPERTY') | (prep.representation.name IN desc_names) ))) ))); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_rep_type_for_action_property ( cad : characterized_action_definition; prop_name : STRING; rep_types : SET OF STRING ): LOGICAL; RETURN (0 = SIZEOF (QUERY (prop <* get_action_property (cad, prop_name) | NOT (0 < SIZEOF (QUERY (prep <* USEDIN (prop, 'INTEGRATED_CNC_SCHEMA.'+ 'ACTION_PROPERTY_REPRESENTATION.PROPERTY') | (SIZEOF(rep_types * TYPEOF(prep.representation)) = SIZEOF(rep_types)) ))) ))); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_rep_type_for_resource_property ( crd : characterized_resource_definition; prop_name : STRING; rep_types : SET OF STRING ): LOGICAL; RETURN (0 = SIZEOF (QUERY (prop <* get_resource_property (crd, prop_name) | NOT (0 < SIZEOF (QUERY (prep <* USEDIN (prop, 'INTEGRATED_CNC_SCHEMA.'+ 'RESOURCE_PROPERTY_REPRESENTATION.PROPERTY') | (SIZEOF(rep_types * TYPEOF(prep.representation)) = SIZEOF(rep_types)) ))) ))); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_required_action_property ( cad : characterized_action_definition; prop_name : STRING ): LOGICAL; RETURN (1 = SIZEOF (get_action_property (cad, prop_name))); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_required_relating_amr ( am : action_method; amr_types : SET OF STRING ): LOGICAL; RETURN (1 = get_count_of_relating_amr (am, amr_types)); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_required_relating_amr_with_name ( am : action_method; amr_name : STRING; amr_types : SET OF STRING ): LOGICAL; RETURN (1 = get_count_of_relating_amr_with_name ( am, amr_name, amr_types)); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_required_rep_item ( rep : representation; prop_name : STRING ): LOGICAL; RETURN (1 = SIZEOF (QUERY ( it <* rep.items | (it.name = prop_name)))); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_required_resource_property ( crd : characterized_resource_definition; prop_name : STRING ): LOGICAL; RETURN (1 = SIZEOF (get_resource_property (crd, prop_name))); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_required_tool_body_item ( mt : machining_tool; prop_name : STRING ): LOGICAL; RETURN (1 = SIZEOF (get_tool_body_item (mt, prop_name))); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_rotary_speed_measure_rep_item ( rep : representation; prop_name : STRING ): LOGICAL; RETURN (0 = SIZEOF (QUERY ( it <* rep.items | (it.name = prop_name) AND NOT (('INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('INTEGRATED_CNC_SCHEMA.NUMERIC_MEASURE' IN TYPEOF(it.value_component)))))); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_time_measure_action_property ( cad : characterized_action_definition; prop_name : STRING ): LOGICAL; RETURN (verify_rep_item_for_action_property(cad, prop_name, ['INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.TIME_MEASURE_WITH_UNIT'])); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_time_measure_rep_item ( rep : representation; prop_name : STRING ): LOGICAL; RETURN (0 = SIZEOF (QUERY ( it <* rep.items | (it.name = prop_name) AND NOT (SIZEOF([ 'INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.TIME_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2)))); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION verify_time_measure_resource_property ( crd : characterized_resource_definition; prop_name : STRING ): LOGICAL; RETURN (verify_rep_item_for_resource_property (crd, prop_name, ['INTEGRATED_CNC_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'INTEGRATED_CNC_SCHEMA.TIME_MEASURE_WITH_UNIT'])); END_FUNCTION; -- 10303-238: integrated_cnc_schema FUNCTION ypr_index (ypr : ypr_enumeration) : INTEGER; CASE ypr OF yaw : RETURN (1); pitch : RETURN (2); roll : RETURN (3); END_CASE; RETURN (?); END_FUNCTION; TYPE annotation_plane_element = SELECT (draughting_callout, styled_item); END_TYPE; TYPE plane_or_planar_box = SELECT (plane, planar_box); END_TYPE; ENTITY annotation_plane SUBTYPE OF (annotation_occurrence, geometric_representation_item); elements : OPTIONAL SET[1:?] OF annotation_plane_element; SELF\styled_item.item : plane_or_planar_box; WHERE WR1: SELF\geometric_representation_item.dim = 3; WR2: NOT('INTEGRATED_CNC_SCHEMA.'+'PLANAR_BOX' IN TYPEOF(SELF\styled_item.item)) OR ('INTEGRATED_CNC_SCHEMA.'+'AXIS2_PLACEMENT_3D' IN TYPEOF(SELF\styled_item.item\planar_box.placement)); WR3: (('INTEGRATED_CNC_SCHEMA.'+'PLANAR_BOX' IN TYPEOF(SELF\styled_item.item)) AND ('INTEGRATED_CNC_SCHEMA.'+'CURVE_STYLE' IN TYPEOF(SELF\styled_item.styles[1]\presentation_style_assignment.styles[1]))) OR (('INTEGRATED_CNC_SCHEMA.'+'PLANE' IN TYPEOF(SELF\styled_item.item)) AND ('INTEGRATED_CNC_SCHEMA.'+'FILL_AREA_STYLE' IN TYPEOF(SELF\styled_item.styles[1]\presentation_style_assignment.styles[1]))); WR4: (SIZEOF(SELF\styled_item.styles) = 1) AND (SIZEOF(SELF\styled_item.styles[1]\presentation_style_assignment.styles) = 1); END_ENTITY; END_SCHEMA; -- integrated_cnc_schema