SCHEMA integrated_cnc_schema; (* AP-238 AIM longform schema ISO TC184/SC4/WG3 N2097 (superceeds wg3n1541) Author: David Loffredo (loffredo@steptools.com) 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, security_classification); 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, security_classification); END_TYPE; -- 10303-238: integrated_cnc_schema TYPE date_item = SELECT (product, product_definition, product_definition_formation); END_TYPE; -- 10303-238: integrated_cnc_schema TYPE date_time_select = SELECT (date, 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, security_classification); END_TYPE; -- 10303-238: integrated_cnc_schema TYPE person_organization_select = SELECT (person, organization, person_and_organization); END_TYPE; -- 10303-41: person_organization_schema TYPE plane_angle_measure = REAL; END_TYPE; -- 10303-41: measure_schema TYPE positive_length_measure = 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, '