SCHEMA integrated_cnc_schema; (* AP-238 AIM longform schema 2006-07-14 -- wg3n2096 (shortform), wg3n2097 (longform) schema submitted for IS publication. 2006-05-23 -- Updated with resolutions for IS publication. 2004-10-29 -- wg3n1540 (shortform), wg3n1541 (longform) schema distributed with DIS ballot. 2004-10-22 -- Fixed some EXPRESS warnings for DIS ballot. 2004-10-12 -- Added GD&T definitions harmonized across AP-214, AP-224, and Module 1050. All mappings should now be complete and ready for DIS ballot. 2004-09-09 -- Finished adding subtypes for the action method relationships as discussed in Bath. Rebuilding with the latest IRs and AICs, particularly the AIC 522e2 definitions. 2004-06-09 -- Short and longform to accompany the draft of the DIS (wg3n1360) circulated for discussion at the Bath ISO meeting. 2003-12-16 -- Finalized turning definitions and functions. 2003-11-20 -- Adding new AIM types and updating where rules on existing types to support the turning model. See changelog in AP document for details. 2003-09-03 -- Updating with comment resolutions from NWI/CD. See changelog in AP document for details. 2002-04-24 -- wg3n1111 (shortform), wg3n1112 (longform) schema distributed with NWI/CD ballot. 2002-03-07 -- Added temporary rule restricing use of turning features. Fixed EXPRESS problems in rules (entity value compares changed to instance compares, added group qualifier and guard to nc_variable rule). 2002-02-24 -- Changed return type of verify_* functions to logical, removed three extraneous numeric_expression subtypes brought in by SHTOLO, corrected warnings in a couple local rules. 2002-02-24 -- wg3n1090 (shortform), wg3n1091 (longform) schema distributed with NWI/CD documents for review at Myrtle Beach. All prior dates were distributed with AIM versions prior to v2.8 Prior to this, the longform was hand-edited rather than generated from the shortform. They are now synchronized and the longform is produced using the short-to-long tools. 2001-10-18 -- Added material_designation_characterization 2001-09-25 -- Added machining_operator_instruction and made machining_adaptive_control_strategy a subtype of machining_strategy. 2001-09-24 -- Added machining_offset_vector_representation representation subtype, an action resource subtype machining_cutting_component, and the representation item relationship type from Part 43. 2001-09-17 -- Added the AP-214 value_range entity and the surface_texture_representation. 2001-08-23 -- Added classification assignment and new machining_feature_process subtype 2001-07-25 -- Added machining_strategies subtypes and the freeform milling tolerance representation. 2001-07-13 -- Added machining_tool_dimension_representation 2001-07-05 -- Updated measure_value to add numeric_measure 2001-07-05 -- Updated with new Part 11 subtypes, DTL 2001-06-22 -- Original, DTL *) CONSTANT dummy_gri : geometric_representation_item := representation_item('') || geometric_representation_item(); dummy_tri : topological_representation_item := representation_item('') || topological_representation_item(); END_CONSTANT; 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); END_TYPE; -- 10303-238: integrated_cnc_schema TYPE area_measure = REAL; END_TYPE; -- 10303-41: measure_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 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_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 (externally_defined_representation_with_parameters); END_TYPE; -- 10303-238: integrated_cnc_schema 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_on_surface = SELECT (pcurve, surface_curve, composite_curve_on_surface); END_TYPE; -- 10303-42: geometry_schema TYPE date_and_time_item = SELECT (approval_person_organization, machining_operation, machining_process_executable, machining_toolpath, product, product_definition, product_definition_formation); 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, local_time, date_and_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 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 dimensional_characteristic = SELECT (dimensional_location, dimensional_size); END_TYPE; -- 10303-47: shape_dimension_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 external_identification_item = SELECT (externally_defined_class, externally_defined_general_property); END_TYPE; -- 10303-238: integrated_cnc_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 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); END_TYPE; -- 10303-238: integrated_cnc_schema TYPE identifier = STRING; END_TYPE; -- 10303-41: support_resource_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 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 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 mass_measure = REAL; END_TYPE; -- 10303-41: measure_schema TYPE measure_value = SELECT (length_measure, mass_measure, time_measure, plane_angle_measure, solid_angle_measure, area_measure, volume_measure, ratio_measure, parameter_value, numeric_measure, context_dependent_measure, descriptive_measure, positive_length_measure, positive_plane_angle_measure, count_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 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); 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 = 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 preferred_surface_curve_representation = ENUMERATION OF (curve_3d, pcurve_s1, pcurve_s2); END_TYPE; -- 10303-42: geometry_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 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 role_select = SELECT (approval_assignment, approval_date_time, document_reference, 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 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 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 supported_item = SELECT (action, action_method); END_TYPE; -- 10303-41: action_schema TYPE text = STRING; END_TYPE; -- 10303-41: support_resource_schema TYPE time_measure = REAL; END_TYPE; -- 10303-41: measure_schema TYPE tolerance_method_definition = SELECT (tolerance_value, limits_and_fits); END_TYPE; -- 10303-47: shape_tolerance_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 unit = SELECT (named_unit, derived_unit); END_TYPE; -- 10303-41: measure_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 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_relationship; name : label; description : OPTIONAL text; relating_method : action_method; related_method : action_method; END_ENTITY; -- 10303-41: action_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 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_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 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_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_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_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 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 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 cartesian_point SUBTYPE OF (point); coordinates : LIST [1:3] OF length_measure; END_ENTITY; -- 10303-42: geometry_schema ENTITY cartesian_transformation_operator SUPERTYPE OF (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_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 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_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 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 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_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; 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_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_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 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_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 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 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 dimension_related_tolerance_zone_element; related_dimension : dimensional_location; related_element : tolerance_zone_definition; END_ENTITY; -- 10303-47: shape_tolerance_schema 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 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_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_class SUBTYPE OF (externally_defined_item, class); 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_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_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 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 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; 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 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 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_representation_context SUBTYPE OF (representation_context); coordinate_space_dimension : dimension_count; END_ENTITY; -- 10303-42: geometry_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 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 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 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 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 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 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 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 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_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 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 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_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, 'number of control axis')) AND (verify_count_measure_resource_property (SELF, 'number of control axis'))); WR5: ((verify_optional_resource_property (SELF, 'number of simultaneous axis')) AND (verify_count_measure_resource_property (SELF, 'number of simultaneous axis'))); WR6: ((verify_optional_resource_property (SELF, 'positioning accuracy')) AND (verify_length_measure_resource_property (SELF, 'positioning accuracy'))); WR7: ((verify_optional_resource_property (SELF, 'table indexing')) AND (verify_enumeration_resource_property (SELF, 'table indexing', ['required', 'not required']))); WR8: ((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'))); WR9: ((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)))) )))) )))); WR10: ((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')) ); WR11: (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_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_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_required_tool_body_item (SELF, 'tool identifier')) AND (verify_rep_item_for_tool_body (SELF, 'tool identifier', ['INTEGRATED_CNC_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM'])) ); 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')) AND (verify_optional_action_property (SELF, 'tool carousel')) AND (verify_descriptive_action_property (SELF, 'tool carousel')) ); 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')) ); 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_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; 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 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 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 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_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 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_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 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_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_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_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 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_item; name : label; END_ENTITY; -- 10303-41: external_reference_schema ENTITY precision_qualifier; precision_value : INTEGER; END_ENTITY; -- 10303-45: qualified_measure_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_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_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 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 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 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 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; 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 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 role_association; role : object_role; item_with_role : role_select; END_ENTITY; -- 10303-41: basic_attribute_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 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_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_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); 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 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_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 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_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_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_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_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 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); W